1 | /* Intel ix86 running OS/2 or DOS */
|
---|
2 |
|
---|
3 | #ifndef __I386EMX__H__
|
---|
4 | #define __I386EMX__H__
|
---|
5 |
|
---|
6 | #define EMX
|
---|
7 |
|
---|
8 | #define HOST_PAGE_SIZE 0x1000
|
---|
9 | #define HOST_SEGMENT_SIZE 0x10000
|
---|
10 | #define HOST_TEXT_START_ADDR 0x10000
|
---|
11 | #define HOST_STACK_END_ADDR 0x80000000
|
---|
12 |
|
---|
13 | #ifndef TEXT_START_ADDR /* bird: does this need to be BFD wide? */
|
---|
14 | #define TEXT_START_ADDR 0x10000
|
---|
15 | #endif
|
---|
16 |
|
---|
17 | #define NO_CORE_COMMAND
|
---|
18 |
|
---|
19 | #if 0 /* moved to i386aoutemx.c */
|
---|
20 |
|
---|
21 | #define DEFAULT_ARCH bfd_arch_i386
|
---|
22 |
|
---|
23 | #define TARGET_PAGE_SIZE 0x1000
|
---|
24 | #define TARGET_SEGMENT_SIZE 0x10000
|
---|
25 | #define TARGET_STACK_END_ADDR 0x80000000
|
---|
26 |
|
---|
27 | #define ZMAGIC_DISK_BLOCK_SIZE 1024
|
---|
28 | #define BYTES_IN_WORD 4
|
---|
29 |
|
---|
30 | #define MY(OP) CONCAT2(i386aout_emx_,OP)
|
---|
31 | #define TARGETNAME "a.out-emx"
|
---|
32 | #define NO_WRITE_HEADER_KLUDGE 1
|
---|
33 |
|
---|
34 | #define N_HEADER_IN_TEXT(x) 0
|
---|
35 |
|
---|
36 | #define N_TXTOFF(x) \
|
---|
37 | (N_MAGIC(x) != ZMAGIC ? EXEC_BYTES_SIZE : /* object file or NMAGIC */\
|
---|
38 | N_SHARED_LIB(x) ? 0 : \
|
---|
39 | N_HEADER_IN_TEXT(x) ? \
|
---|
40 | EXEC_BYTES_SIZE : /* no padding */\
|
---|
41 | 0x400 + (x).a_hdrofs \
|
---|
42 | )
|
---|
43 |
|
---|
44 | #define N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x))
|
---|
45 |
|
---|
46 | #endif /* moved to i386aoutemx.c */
|
---|
47 |
|
---|
48 | /* a.out executables emx-specific header */
|
---|
49 | struct exec /* bird: should this be BFD wide or only for the emx target? */
|
---|
50 | {
|
---|
51 | unsigned long a_info; /* Use macros N_MAGIC, etc for access */
|
---|
52 | unsigned a_text; /* length of text, in bytes */
|
---|
53 | unsigned a_data; /* length of data, in bytes */
|
---|
54 | unsigned a_bss; /* length of uninitialized data area for file, in bytes */
|
---|
55 | unsigned a_syms; /* length of symbol table data in file, in bytes */
|
---|
56 | unsigned a_entry; /* start address */
|
---|
57 | unsigned a_trsize; /* length of relocation info for text, in bytes */
|
---|
58 | unsigned a_drsize; /* length of relocation info for data, in bytes */
|
---|
59 | };
|
---|
60 |
|
---|
61 | /* bird: should this be BFD wide or only for the emx target? */
|
---|
62 | #define IS_STAB(flags) (((flags) & N_STAB) \
|
---|
63 | && (flags) != (N_IMP1|N_EXT) && (flags) != (N_IMP2|N_EXT) \
|
---|
64 | && ((flags) & ~N_EXT) != N_EXP)
|
---|
65 |
|
---|
66 | #endif /* __I386EMX__H__ */
|
---|