1 #ifndef BCM43xx_ASM_MAIN_H_
2 #define BCM43xx_ASM_MAIN_H_
10 /* The header that fwcutter also puts in to every .fw file */
12 /* Type of the firmware data */
14 /* Version number of the firmware data format */
17 /* Size of the data. For ucode and PCM this is in bytes.
18 * For IV this is in number-of-ivs. (big-endian!) */
20 } __attribute__ ((__packed__));
22 /* struct fw_header -> type */
23 #define FW_TYPE_UCODE 'u'
24 #define FW_TYPE_PCM 'p'
25 #define FW_TYPE_IV 'i'
26 /* struct fw_header -> ver */
27 #define FW_HDR_VER 0x01
30 /* Maximum number of allowed instructions in the code output.
31 * This is what device memory can hold at maximum.
33 #define NUM_INSN_LIMIT_R5 4096
42 extern struct lineinfo cur_lineinfo;
54 int type; /* SPR, GPR or OFFR */
63 /* Offset immediate */
65 /* Offset Register number (only MEM_INDIRECT) */
72 /* direction is only used for label references. */
75 LABELREF_RELATIVE_BACK,
76 LABELREF_RELATIVE_FORWARD,
90 struct immediate *imm;
100 struct operand *oper[5];
105 struct operlist *operands;
106 unsigned int opcode; /* only for RAW */
127 struct instruction *insn;
129 struct asmdir *asmdir;
131 struct lineinfo info;
133 struct list_head list;
138 /* The (microcode) statement list */
140 /* The initvals sections list */
141 struct list_head ivals;
142 /* The file descriptor */
147 extern struct file infile;
148 extern const char *infile_name;
149 extern const char *outfile_name;
151 #endif /* BCM43xx_ASM_MAIN_H_ */