C6474 required changes
[keystone-rtos/ibl.git] / src / interp / coff / params.h
1 /****************************************************************************/
2 /*  PARAMS.H  - Target dependent parameters.                                */
3 /****************************************************************************/
5 #if TMS340
6 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
7 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
8 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
9 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
10 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
12 #define MAGIC         MAGIC_340
13 /* #define NEW_SYM_NDX   1 USE 32-bit SYMBOL INDEX, NO DISP */
14 #define BYTETOLOC(x)  ((T_ADDR)(x)<<3)  /* CONVERT ADDRESSES TO BYTES       */
15 #define LOCTOBYTE(x)  ((x)>>3)          /* CONVERT BYTES TO ADDRESSES       */
16 #define BIT_OFFSET(a) ((a)&7)           /* BIT OFFSET OF ADDR WITHIN BYTE   */
18 #ifdef OTIS
19 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
20 #else
21 #define LOADBUFSIZE   0x1000            /* 16K BUFFER FOR LOADING DATA      */
22 #endif
24 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
25 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
26 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
27 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
28 #endif
30 #if TMS32030 || TMS32040
31 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
32 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
33 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
34 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
35 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
37 #define MAGIC MAGIC_C30                 /* Magic number for C30             */
39 #define LOCTOBYTE(x)   ((x)<<2)         /* C30 word addrs to byte addrs     */
40 #define BYTETOLOC(x)   ((x)>>2)         /* byte addrs to word addrs         */
41 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
43 #ifdef OTIS
44 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
45 #else
46 #define LOADBUFSIZE   0x0FF8            /* 4K-8 BUFFER FOR LOADING DATA     */
47 #endif
49 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
50 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
51 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
52 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
53 #endif
55 #if TMS32025 || TMS32050
56 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
57 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
58 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
59 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
60 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
62 #define MAGIC MAGIC_DSP                 /* Magic number for C25            */
64 #define LOCTOBYTE(x)   ((x)<<1)         /* 16-bit word addrs to byte addrs */
65 #define BYTETOLOC(x)   ((x)>>1)         /* byte addrs to word addrs        */
66 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
68 #ifdef OTIS
69 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
70 #else
71 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
72 #endif /* ifdef OTIS */
74 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
75 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
76 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
77 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
79 #endif /* TMS32025 || TMS32050 */
81 #if TMS380
82 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
83 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
84 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
85 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
86 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
88 #define MAGIC MAGIC_380                 /* Magic number for TMS380         */
90 #define LOCTOBYTE(x)   x                /* 16-bit byte addrs to byte addrs */
91 #define BYTETOLOC(x)   x                /* byte addrs to byte addrs        */
92 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
94 #ifdef OTIS
95 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
96 #else
97 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
98 #endif
100 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
101 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
102 #define INIT_ALIGN    2                 /* ALIGNMENT OF CINIT RECORDS       */
103 #define INIT_WSIZE    1                 /* SIZE IN BYTES OF INIT DATA ITEMS */
104 #endif
106 #if TMS370 || TMS370C8
107 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
108 typedef unsigned char  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
109 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
110 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
111 typedef unsigned char  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
113 #define MAGIC MAGIC_370                 /* 370 Magic Number                 */
115 #define LOCTOBYTE(x)   x                /* 370 addresses are same as bytes  */
116 #define BYTETOLOC(x)   x
117 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
119 #ifdef OTIS
120 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
121 #else
122 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
123 #endif
125 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
126 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
127 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
128 #define INIT_WSIZE    1                 /* SIZE IN BYTES OF INIT DATA ITEMS */
129 #endif
131 #if MVP_PP
132 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
133 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
134 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
135 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
137 typedef struct {unsigned int ins_h; unsigned int ins_l; } T_INSTRUCT;      
138                                         /* TYPE FOR INSTRUCTION OPCODE      */
140 #define MAGIC MAGIC_MVP                 /* PP  Magic Number                 */
142 #define LOCTOBYTE(x)   (x)              /* PP  addresses are same as bytes  */
143 #define BYTETOLOC(x)   (x)
144 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
146 #ifdef OTIS
147 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
148 #else
149 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
150 #endif
152 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
153 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
154 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
155 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
156 #endif
158 #if MVP_MP
159 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
160 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
161 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
162 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
163 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
165 #define FT_IEEE_FLT             1
166 #define FT_IEEE_DBL             2
167 #define FLT_PRECISION           4
169 typedef struct trg_fval {
170         unsigned int    fval1;
171         unsigned int    fval2;
172 } TRG_FVAL;
174 #define MAGIC MAGIC_MVP                 /* MP  Magic Number                 */
176 #define LOCTOBYTE(x)   (x)              /* MP  addresses are same as bytes  */
177 #define BYTETOLOC(x)   (x)
178 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
180 #ifdef OTIS
181 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
182 #else
183 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
184 #endif
186 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
187 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
188 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
189 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
190 #endif
192 #if LEAD
193 typedef unsigned short T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
194 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
195 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
196 typedef unsigned short T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
197 typedef unsigned short T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
199 #define MAGIC MAGIC_LEAD                /* Magic number for C25            */
201 #define LOCTOBYTE(x)   ((x)<<1)         /* 16-bit word addrs to byte addrs */
202 #define BYTETOLOC(x)   ((x)>>1)         /* byte addrs to word addrs        */
203 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
205 #ifdef OTIS
206 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
207 #else
208 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
209 #endif /* ifdef OTIS */
211 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
212 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
213 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
214 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
216 #endif /* LEAD */
218 #if LEAD3
219 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
220 typedef unsigned short T_DATA;          /* TYPE FOR TARGET DATA WORD        */
221 typedef unsigned short T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
222 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
223 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
225 #define MAGIC MAGIC_LEAD3               /* Magic number for C55             */
227 #define LOCTOBYTE(x)   (x)              /* LEAD3 is byte addressable        */
228 #define BYTETOLOC(x)   (x)              /* LEAD3 is byte addressable        */
229 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
231 #ifdef OTIS
232 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
233 #else
234 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
235 #endif /* ifdef OTIS */
237 #define LOADWORDSIZE  2                 /* MINIMUM DIVISOR OF LOAD SIZE     */
238 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
239 #define INIT_ALIGN    1                 /* ALIGNMENT OF CINIT RECORDS       */
240 #define INIT_WSIZE    2                 /* SIZE IN BYTES OF INIT DATA ITEMS */
242 #endif /* LEAD3 */
244 #if ARM
245 typedef unsigned int T_ADDR;           /* TYPE FOR TARGET ADDRESS          */
246 typedef unsigned int T_DATA;           /* TYPE FOR TARGET DATA WORD        */
247 typedef unsigned int T_SIZE;           /* TYPE FOR CINIT SIZE FIELD        */
248 typedef unsigned int T_IADDR;          /* TYPE FOR CINIT ADDRESS FIELD     */
249 typedef unsigned int T_INSTRUCT;       /* TYPE FOR INSTRUCTION OPCODE      */
251 #define MAGIC MAGIC_ARM                 /* Magic number for ARM             */
253 #define LOCTOBYTE(x)   (x)              /* ARM addresses are same as bytes  */
254 #define BYTETOLOC(x)   (x)
255 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
257 #ifdef OTIS
258 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
259 #else
260 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
261 #endif
263 #define LOADWORDSIZE  4                 /* MINIMUM DIVISOR OF LOAD SIZE     */
264 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
265 #define INIT_ALIGN    4                 /* ALIGNMENT OF CINIT RECORDS       */
266 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
268 #endif /* ARM */
270 #if TMS32060
271 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
272 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
273 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
274 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
275 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
277 #define FT_IEEE_FLT             1
278 #define FT_IEEE_DBL             2
279 #define FLT_PRECISION           4
281 typedef struct trg_fval {
282         unsigned int    fval1;
283         unsigned int    fval2;
284 } TRG_FVAL;
286 #define MAGIC MAGIC_C60                 /* C60 Magic Number                 */
288 #define LOCTOBYTE(x)   (x)              /* C60 addresses are same as bytes  */
289 #define BYTETOLOC(x)   (x)
290 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
292 #ifdef OTIS
293 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
294 #else
295 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
296 //#define UNBUFFERED            1
297 #endif
299 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
300 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
301 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
302 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
303 #endif
305 #if VIVID
306 typedef unsigned int  T_ADDR;          /* TYPE FOR TARGET ADDRESS          */
307 typedef unsigned int  T_DATA;          /* TYPE FOR TARGET DATA WORD        */
308 typedef unsigned int  T_SIZE;          /* TYPE FOR CINIT SIZE FIELD        */
309 typedef unsigned int  T_IADDR;         /* TYPE FOR CINIT ADDRESS FIELD     */
310 typedef unsigned int  T_INSTRUCT;      /* TYPE FOR INSTRUCTION OPCODE      */
312 #define FT_IEEE_FLT             1
313 #define FT_IEEE_DBL             2
314 #define FLT_PRECISION           4
316 typedef struct trg_fval {
317         unsigned int    fval1;
318         unsigned int    fval2;
319 } TRG_FVAL;
321 #define MAGIC MAGIC_VIVID               /* Vivid Magic Number               */
323 #define LOCTOBYTE(x)   (x)              /* Vivid addresses are same as bytes*/
324 #define BYTETOLOC(x)   (x)
325 #define BIT_OFFSET(a)  (0)              /* BIT OFFSET OF ADDR WITHIN BYTE   */
327 #ifdef OTIS
328 #define LOADBUFSIZE   (TRG_MAX_MBLK/8)  /* USE OTIS BUFFER SIZE             */
329 #else
330 #define LOADBUFSIZE   0x4000            /* 16K BUFFER FOR LOADING DATA      */
331 #endif
333 #define LOADWORDSIZE  8                 /* MINIMUM DIVISOR OF LOAD SIZE     */
334 #define CINIT         ".cinit"          /* NAME OF CINIT SECTION            */
335 #define INIT_ALIGN    8                 /* ALIGNMENT OF CINIT RECORDS       */
336 #define INIT_WSIZE    4                 /* SIZE IN BYTES OF INIT DATA ITEMS */
337 #endif