diff options
Diffstat (limited to 'include/linux/elf.h')
| -rw-r--r-- | include/linux/elf.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/include/linux/elf.h b/include/linux/elf.h index ad990c5f63f6..597858418051 100644 --- a/include/linux/elf.h +++ b/include/linux/elf.h | |||
| @@ -50,6 +50,28 @@ typedef __s64 Elf64_Sxword; | |||
| 50 | 50 | ||
| 51 | #define PT_GNU_STACK (PT_LOOS + 0x474e551) | 51 | #define PT_GNU_STACK (PT_LOOS + 0x474e551) |
| 52 | 52 | ||
| 53 | /* | ||
| 54 | * Extended Numbering | ||
| 55 | * | ||
| 56 | * If the real number of program header table entries is larger than | ||
| 57 | * or equal to PN_XNUM(0xffff), it is set to sh_info field of the | ||
| 58 | * section header at index 0, and PN_XNUM is set to e_phnum | ||
| 59 | * field. Otherwise, the section header at index 0 is zero | ||
| 60 | * initialized, if it exists. | ||
| 61 | * | ||
| 62 | * Specifications are available in: | ||
| 63 | * | ||
| 64 | * - Sun microsystems: Linker and Libraries. | ||
| 65 | * Part No: 817-1984-17, September 2008. | ||
| 66 | * URL: http://docs.sun.com/app/docs/doc/817-1984 | ||
| 67 | * | ||
| 68 | * - System V ABI AMD64 Architecture Processor Supplement | ||
| 69 | * Draft Version 0.99., | ||
| 70 | * May 11, 2009. | ||
| 71 | * URL: http://www.x86-64.org/ | ||
| 72 | */ | ||
| 73 | #define PN_XNUM 0xffff | ||
| 74 | |||
| 53 | /* These constants define the different elf file types */ | 75 | /* These constants define the different elf file types */ |
| 54 | #define ET_NONE 0 | 76 | #define ET_NONE 0 |
| 55 | #define ET_REL 1 | 77 | #define ET_REL 1 |
| @@ -286,7 +308,7 @@ typedef struct elf64_phdr { | |||
| 286 | #define SHN_COMMON 0xfff2 | 308 | #define SHN_COMMON 0xfff2 |
| 287 | #define SHN_HIRESERVE 0xffff | 309 | #define SHN_HIRESERVE 0xffff |
| 288 | 310 | ||
| 289 | typedef struct { | 311 | typedef struct elf32_shdr { |
| 290 | Elf32_Word sh_name; | 312 | Elf32_Word sh_name; |
| 291 | Elf32_Word sh_type; | 313 | Elf32_Word sh_type; |
| 292 | Elf32_Word sh_flags; | 314 | Elf32_Word sh_flags; |
| @@ -394,16 +416,20 @@ typedef struct elf64_note { | |||
| 394 | extern Elf32_Dyn _DYNAMIC []; | 416 | extern Elf32_Dyn _DYNAMIC []; |
| 395 | #define elfhdr elf32_hdr | 417 | #define elfhdr elf32_hdr |
| 396 | #define elf_phdr elf32_phdr | 418 | #define elf_phdr elf32_phdr |
| 419 | #define elf_shdr elf32_shdr | ||
| 397 | #define elf_note elf32_note | 420 | #define elf_note elf32_note |
| 398 | #define elf_addr_t Elf32_Off | 421 | #define elf_addr_t Elf32_Off |
| 422 | #define Elf_Half Elf32_Half | ||
| 399 | 423 | ||
| 400 | #else | 424 | #else |
| 401 | 425 | ||
| 402 | extern Elf64_Dyn _DYNAMIC []; | 426 | extern Elf64_Dyn _DYNAMIC []; |
| 403 | #define elfhdr elf64_hdr | 427 | #define elfhdr elf64_hdr |
| 404 | #define elf_phdr elf64_phdr | 428 | #define elf_phdr elf64_phdr |
| 429 | #define elf_shdr elf64_shdr | ||
| 405 | #define elf_note elf64_note | 430 | #define elf_note elf64_note |
| 406 | #define elf_addr_t Elf64_Off | 431 | #define elf_addr_t Elf64_Off |
| 432 | #define Elf_Half Elf64_Half | ||
| 407 | 433 | ||
| 408 | #endif | 434 | #endif |
| 409 | 435 | ||
