⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elf.h

📁 完整的Bell实验室的嵌入式文件系统TFS
💻 H
字号:
/* elf.h: *  Used to support ELF file format in TFS. *  The data in this header file is built primarily from information in *  the book "Understanding ELF Object Files and Debugging Tools" *  All page references in comments refer to that book. * *  General notice: *  This code is part of a boot-monitor package developed as a generic base *  platform for embedded system designs.  As such, it is likely to be *  distributed to various projects beyond the control of the original *  author.  Please notify the author of any enhancements made or bugs found *  so that all may benefit from the changes.  In addition, notification back *  to the author will allow the new user to pick up changes that may have *  been made by other users after this version of the code was distributed. * *  Note1: the majority of this code was edited with 4-space tabs. *  Note2: as more and more contributions are accepted, the term "author" *         is becoming a mis-representation of credit. * *  Original author:    Ed Sutter *  Email:              esutter@lucent.com *  Phone:              908-582-2351 */typedef unsigned short  Elf32_Half;typedef unsigned long   Elf32_Word;typedef unsigned long   Elf32_Addr;typedef unsigned long   Elf32_Off;/* Size of ELF identification field. */#define EI_NIDENT   16/* e_type values... */#define ET_NONE     0#define ET_REL      1#define ET_EXEC     2#define ET_DYN      3#define ET_CORE     4#define ET_LOPROC   0xff00#define ET_HIPROC   0xffffstruct elf_fhdr {       /* pg 12 */    unsigned char   e_ident[EI_NIDENT];    Elf32_Half      e_type;    Elf32_Half      e_machine;    Elf32_Word      e_version;    Elf32_Addr      e_entry;    Elf32_Off       e_phoff;    Elf32_Off       e_shoff;    Elf32_Word      e_flags;    Elf32_Half      e_ehsize;    Elf32_Half      e_phentsize;    Elf32_Half      e_phnum;    Elf32_Half      e_shentsize;    Elf32_Half      e_shnum;    Elf32_Half      e_shstrndx;};#define ELFFHDR struct elf_fhdr/* sh_flags values... */#define SHF_WRITE       0x1#define SHF_ALLOC       0x2#define SHF_EXECINSTR   0x4#define SHF_MASKPROC    0xf0000000/* sh_type values... */#define SHT_NULL        0#define SHT_PROGBITS    1#define SHT_SYMTAB      2#define SHT_STRTAB      3#define SHT_RELA        4#define SHT_HASH        5#define SHT_DYNAMIC     6#define SHT_NOTE        7#define SHT_NOBITS      8#define SHT_REL         9#define SHT_SHLIB       10#define SHT_DYNSYM      11#define SHT_LOPROC      0x70000000#define SHT_HIPROC      0x7fffffff#define SHT_LOUSER      0x80000000#define SHT_HIUSER      0x8fffffffstruct elf_shdr {       /* pg 19 */    Elf32_Word      sh_name;    Elf32_Word      sh_type;    Elf32_Word      sh_flags;    Elf32_Addr      sh_addr;    Elf32_Off       sh_offset;    Elf32_Word      sh_size;    Elf32_Word      sh_link;    Elf32_Word      sh_info;    Elf32_Word      sh_addralign;    Elf32_Word      sh_entsize;};#define ELFSHDR struct elf_shdr#define STB_LOCAL   0#define STB_GLOBAL  1#define STB_WEAK    2#define STB_LOPROC  13#define STB_HIPROC  15#define STT_NOTYPE  0#define STT_OBJECT  1#define STT_FUNC    2#define STT_SECTION 3#define STT_FILE    4#define STT_LOPROC  13#define STT_HIPROC  15#define SHN_UNDEF   0struct elf_sym {    Elf32_Word      st_name;    Elf32_Addr      st_value;    Elf32_Word      st_size;    unsigned char   st_info;    unsigned char   st_other;    Elf32_Half      st_shndx;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -