完整的Bell实验室的嵌入式文件系统TFS

源代码在线查看: elf.h

软件大小: 3586 K
上传用户: smellteen
关键词: Bell TFS 实验室 嵌入式文件系统
下载地址: 免注册下载 普通下载 VIP

相关代码

				/* 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   0xffff												struct 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      0x8fffffff								struct 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   0								struct 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;				};							

相关资源