|
Data Structures |
| struct | exec |
| struct | nlist |
| struct | relocation_info |
Defines |
| #define | __GNU_EXEC_MACROS__ |
| #define | N_MAGIC(exec) ((exec).a_info & 0xffff) |
| #define | N_MACHTYPE(exec) ((enum machine_type)(((exec).a_info >> 16) & 0xff)) |
| #define | N_FLAGS(exec) (((exec).a_info >> 24) & 0xff) |
| #define | N_SET_INFO(exec, magic, type, flags) |
| #define | N_SET_MAGIC(exec, magic) ((exec).a_info = (((exec).a_info & 0xffff0000) | ((magic) & 0xffff))) |
| #define | N_SET_MACHTYPE(exec, machtype) |
| #define | N_SET_FLAGS(exec, flags) |
| #define | OMAGIC 0407 |
| | Code indicating object file or impure executable.
|
| #define | NMAGIC 0410 |
| | Code indicating pure executable.
|
| #define | ZMAGIC 0413 |
| | Code indicating demand-paged executable.
|
| #define | QMAGIC 0314 |
| #define | CMAGIC 0421 |
| | Code indicating core file.
|
| #define | N_BADMAG(x) |
| #define | _N_HDROFF(x) (1024 - sizeof (struct exec)) |
| #define | N_TXTOFF(x) |
| #define | N_DATOFF(x) (N_TXTOFF(x) + (x).a_text) |
| #define | N_TRELOFF(x) (N_DATOFF(x) + (x).a_data) |
| #define | N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize) |
| #define | N_SYMOFF(x) (N_DRELOFF(x) + (x).a_drsize) |
| #define | N_STROFF(x) (N_SYMOFF(x) + (x).a_syms) |
| #define | N_TXTADDR(x) (N_MAGIC(x) == QMAGIC ? PAGE_SIZE : 0) |
| | Address of text segment in memory after it is loaded.
|
| #define | _N_SEGMENT_ROUND(x) (((x) + SEGMENT_SIZE - 1) & ~(SEGMENT_SIZE - 1)) |
| #define | _N_TXTENDADDR(x) (N_TXTADDR(x)+(x).a_text) |
| #define | N_DATADDR(x) |
| #define | N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) |
| | Address of bss segment in memory after it is loaded.
|
| #define | N_UNDF 0 |
| #define | N_ABS 2 |
| #define | N_TEXT 4 |
| #define | N_DATA 6 |
| #define | N_BSS 8 |
| #define | N_FN 15 |
| #define | N_EXT 1 |
| #define | N_TYPE 036 |
| #define | N_STAB 0340 |
| #define | N_INDR 0xa |
| #define | N_SETA 0x14 |
| | These appear as input to LD, in a .o file. Absolute set element symbol.
|
| #define | N_SETT 0x16 |
| | Text set element symbol.
|
| #define | N_SETD 0x18 |
| | Data set element symbol.
|
| #define | N_SETB 0x1A |
| | Bss set element symbol.
|
| #define | N_SETV 0x1C |
| | This is output from LD. Pointer to set vector in data area.
|
Enumerations |
| enum | machine_type {
M_OLDSUN2 = 0,
M_68010 = 1,
M_68020 = 2,
M_SPARC = 3,
M_386 = 100
} |
| | these go in the N_MACHTYPE field More...
|
The following type indicates the definition of a symbol as being an indirect reference to another symbol. The other symbol appears as an undefined reference, immediately following this symbol.
Indirection is asymmetrical. The other symbol's value will be used to satisfy requests for the indirect symbol, but not vice versa. If the other symbol does not have a definition, libraries will
Definition at line 221 of file a.out.h.
These appear as input to LD, in a .o file. Absolute set element symbol.
The following symbols refer to set elements. All the N_SET[ATDB] symbols with the same name form one set. Space is allocated for the set in the text section, and each set element's value is stored into one word of the space. The first word of the space is the length of the set (number of elements).
The address of the set is made into an N_SETV symbol whose name is the same as the name of the set. This symbol acts like a N_DATA global symbol
Definition at line 239 of file a.out.h.