This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Classes | |
| struct | external_exec |
| struct | external_nlist |
| struct | internal_nlist |
| struct | reloc_std_external |
| struct | reloc_std_internal |
| struct | reloc_ext_external |
| struct | reloc_internal |
Defines | |
| #define | EXEC_BYTES_SIZE (4 + BYTES_IN_WORD * 7) |
| #define | OMAGIC 0407 |
| #define | NMAGIC 0410 |
| #define | ZMAGIC 0413 |
| #define | BMAGIC 0415 |
| #define | QMAGIC 0314 |
| #define | N_BADMAG(x) |
| #define | N_IS_QMAGIC(x) (N_MAGIC (x) == QMAGIC) |
| #define | N_SEGSIZE(x) SEGMENT_SIZE |
| #define | N_HEADER_IN_TEXT(x) (((x).a_entry & (TARGET_PAGE_SIZE-1)) >= EXEC_BYTES_SIZE) |
| #define | N_SHARED_LIB(x) ((x).a_entry < TEXT_START_ADDR) |
| #define | N_TXTADDR(x) |
| #define | ZMAGIC_DISK_BLOCK_SIZE TARGET_PAGE_SIZE |
| #define | N_DISK_BLOCK_SIZE(x) (N_MAGIC(x) == ZMAGIC ? ZMAGIC_DISK_BLOCK_SIZE : TARGET_PAGE_SIZE) |
| #define | N_TXTOFF(x) |
| #define | N_TXTSIZE(x) |
| #define | N_DATADDR(x) |
| #define | N_BSSADDR(x) (N_DATADDR(x) + (x).a_data) |
| #define | N_DATOFF(x) (N_TXTOFF(x) + N_TXTSIZE(x)) |
| #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 | EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD) |
| #define | N_UNDF 0 |
| #define | N_ABS 2 |
| #define | N_TEXT 4 |
| #define | N_DATA 6 |
| #define | N_BSS 8 |
| #define | N_COMM 0x12 |
| #define | N_FN 0x1f |
| #define | N_FN_SEQ 0x0C |
| #define | N_EXT 1 |
| #define | N_TYPE 0x1e |
| #define | N_STAB 0xe0 |
| #define | N_INDR 0x0a |
| #define | N_SETA 0x14 |
| #define | N_SETT 0x16 |
| #define | N_SETD 0x18 |
| #define | N_SETB 0x1A |
| #define | N_SETV 0x1C |
| #define | N_WARNING 0x1e |
| #define | N_WEAKU 0x0d |
| #define | N_WEAKA 0x0e |
| #define | N_WEAKT 0x0f |
| #define | N_WEAKD 0x10 |
| #define | N_WEAKB 0x11 |
| #define | RELOC_STD_BITS_PCREL_BIG ((unsigned int) 0x80) |
| #define | RELOC_STD_BITS_PCREL_LITTLE ((unsigned int) 0x01) |
| #define | RELOC_STD_BITS_LENGTH_BIG ((unsigned int) 0x60) |
| #define | RELOC_STD_BITS_LENGTH_SH_BIG 5 |
| #define | RELOC_STD_BITS_LENGTH_LITTLE ((unsigned int) 0x06) |
| #define | RELOC_STD_BITS_LENGTH_SH_LITTLE 1 |
| #define | RELOC_STD_BITS_EXTERN_BIG ((unsigned int) 0x10) |
| #define | RELOC_STD_BITS_EXTERN_LITTLE ((unsigned int) 0x08) |
| #define | RELOC_STD_BITS_BASEREL_BIG ((unsigned int) 0x08) |
| #define | RELOC_STD_BITS_BASEREL_LITTLE ((unsigned int) 0x10) |
| #define | RELOC_STD_BITS_JMPTABLE_BIG ((unsigned int) 0x04) |
| #define | RELOC_STD_BITS_JMPTABLE_LITTLE ((unsigned int) 0x20) |
| #define | RELOC_STD_BITS_RELATIVE_BIG ((unsigned int) 0x02) |
| #define | RELOC_STD_BITS_RELATIVE_LITTLE ((unsigned int) 0x40) |
| #define | RELOC_STD_SIZE (BYTES_IN_WORD + 3 + 1) |
| #define | RELOC_EXT_BITS_EXTERN_BIG ((unsigned int) 0x80) |
| #define | RELOC_EXT_BITS_EXTERN_LITTLE ((unsigned int) 0x01) |
| #define | RELOC_EXT_BITS_TYPE_BIG ((unsigned int) 0x1F) |
| #define | RELOC_EXT_BITS_TYPE_SH_BIG 0 |
| #define | RELOC_EXT_BITS_TYPE_LITTLE ((unsigned int) 0xF8) |
| #define | RELOC_EXT_BITS_TYPE_SH_LITTLE 3 |
| #define | RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD) |
Enumerations | |
| enum | reloc_type { RELOC_8, RELOC_16, RELOC_32, RELOC_DISP8, RELOC_DISP16, RELOC_DISP32, RELOC_WDISP30, RELOC_WDISP22, RELOC_HI22, RELOC_22, RELOC_13, RELOC_LO10, RELOC_SFA_BASE, RELOC_SFA_OFF13, RELOC_BASE10, RELOC_BASE13, RELOC_BASE22, RELOC_PC10, RELOC_PC22, RELOC_JMP_TBL, RELOC_SEGOFF16, RELOC_GLOB_DAT, RELOC_JMP_SLOT, RELOC_RELATIVE, RELOC_11, RELOC_WDISP2_14, RELOC_WDISP19, RELOC_HHI22, RELOC_HLO10, RELOC_JUMPTARG, RELOC_CONST, RELOC_CONSTH, RELOC_64, RELOC_DISP64, RELOC_WDISP21, RELOC_DISP21, RELOC_DISP14, NO_RELOC } |
| #define EXTERNAL_NLIST_SIZE (BYTES_IN_WORD+4+BYTES_IN_WORD) |
| #define N_BADMAG | ( | x | ) |
| #define N_DATADDR | ( | x | ) |
| #define N_FN 0x1f |
| #define N_FN_SEQ 0x0C |
| #define N_TXTADDR | ( | x | ) |
Value:
(/* The address of a QMAGIC file is always one page in, */ \ /* with the header in the text. */ \ N_IS_QMAGIC (x) ? TARGET_PAGE_SIZE + EXEC_BYTES_SIZE : \ N_MAGIC(x) != ZMAGIC ? 0 : /* object file or NMAGIC */\ N_SHARED_LIB(x) ? 0 : \ N_HEADER_IN_TEXT(x) ? \ TEXT_START_ADDR + EXEC_BYTES_SIZE : /* no padding */\ TEXT_START_ADDR /* a page of padding */\ )
| #define N_TXTOFF | ( | x | ) |
Value:
(/* For {O,N,Q}MAGIC, no padding. */ \ N_MAGIC(x) != ZMAGIC ? EXEC_BYTES_SIZE : \ N_SHARED_LIB(x) ? 0 : \ N_HEADER_IN_TEXT(x) ? \ EXEC_BYTES_SIZE : /* no padding */\ ZMAGIC_DISK_BLOCK_SIZE /* a page of padding */\ )
| #define N_TXTSIZE | ( | x | ) |
Value:
(/* For QMAGIC, we don't consider the header part of the text section. */\ N_IS_QMAGIC (x) ? (x).a_text - EXEC_BYTES_SIZE : \ (N_MAGIC(x) != ZMAGIC || N_SHARED_LIB(x)) ? (x).a_text : \ N_HEADER_IN_TEXT(x) ? \ (x).a_text - EXEC_BYTES_SIZE: /* no padding */\ (x).a_text /* a page of padding */\ )
| #define RELOC_EXT_SIZE (BYTES_IN_WORD + 3 + 1 + BYTES_IN_WORD) |
| #define RELOC_STD_BITS_BASEREL_LITTLE ((unsigned int) 0x10) |
| #define RELOC_STD_BITS_JMPTABLE_LITTLE ((unsigned int) 0x20) |
| #define RELOC_STD_BITS_RELATIVE_LITTLE ((unsigned int) 0x40) |
| enum reloc_type |
Definition at line 398 of file aout64.h.
00399 { 00400 /* simple relocations */ 00401 RELOC_8, /* data[0:7] = addend + sv */ 00402 RELOC_16, /* data[0:15] = addend + sv */ 00403 RELOC_32, /* data[0:31] = addend + sv */ 00404 /* pc-rel displacement */ 00405 RELOC_DISP8, /* data[0:7] = addend - pc + sv */ 00406 RELOC_DISP16, /* data[0:15] = addend - pc + sv */ 00407 RELOC_DISP32, /* data[0:31] = addend - pc + sv */ 00408 /* Special */ 00409 RELOC_WDISP30, /* data[0:29] = (addend + sv - pc)>>2 */ 00410 RELOC_WDISP22, /* data[0:21] = (addend + sv - pc)>>2 */ 00411 RELOC_HI22, /* data[0:21] = (addend + sv)>>10 */ 00412 RELOC_22, /* data[0:21] = (addend + sv) */ 00413 RELOC_13, /* data[0:12] = (addend + sv) */ 00414 RELOC_LO10, /* data[0:9] = (addend + sv) */ 00415 RELOC_SFA_BASE, 00416 RELOC_SFA_OFF13, 00417 /* P.I.C. (base-relative) */ 00418 RELOC_BASE10, /* Not sure - maybe we can do this the */ 00419 RELOC_BASE13, /* right way now */ 00420 RELOC_BASE22, 00421 /* for some sort of pc-rel P.I.C. (?) */ 00422 RELOC_PC10, 00423 RELOC_PC22, 00424 /* P.I.C. jump table */ 00425 RELOC_JMP_TBL, 00426 /* reputedly for shared libraries somehow */ 00427 RELOC_SEGOFF16, 00428 RELOC_GLOB_DAT, 00429 RELOC_JMP_SLOT, 00430 RELOC_RELATIVE, 00431 00432 RELOC_11, 00433 RELOC_WDISP2_14, 00434 RELOC_WDISP19, 00435 RELOC_HHI22, /* data[0:21] = (addend + sv) >> 42 */ 00436 RELOC_HLO10, /* data[0:9] = (addend + sv) >> 32 */ 00437 00438 /* 29K relocation types */ 00439 RELOC_JUMPTARG, 00440 RELOC_CONST, 00441 RELOC_CONSTH, 00442 00443 /* All the new ones I can think of, for sparc v9 */ 00444 00445 RELOC_64, /* data[0:63] = addend + sv */ 00446 RELOC_DISP64, /* data[0:63] = addend - pc + sv */ 00447 RELOC_WDISP21, /* data[0:20] = (addend + sv - pc)>>2 */ 00448 RELOC_DISP21, /* data[0:20] = addend - pc + sv */ 00449 RELOC_DISP14, /* data[0:13] = addend - pc + sv */ 00450 /* Q . 00451 What are the other ones, 00452 Since this is a clean slate, can we throw away the ones we dont 00453 understand ? Should we sort the values ? What about using a 00454 microcode format like the 68k ? 00455 */ 00456 NO_RELOC 00457 };
1.4.7

