elf.h

来自「参照MINIX3写的操作系统 用GCC+NASM+BOCHS开发」· C头文件 代码 · 共 38 行

H
38
字号
typedef unsigned int Elf32_Addr;
typedef unsigned short Elf32_Half;
typedef unsigned int Elf32_Off;
typedef signed int Elf32_Sword;
typedef unsigned int Elf32_Word;

#define EI_NIDENT 16
typedef struct{
	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;		/*Program header table offset(以字节记)*/
	Elf32_Off		e_shoff;		/*Section header table offset(以字节记)*/
	Elf32_Word		e_flags;		/*IA32 : 0*/
	Elf32_Half		e_ehsise;		/*ELF header size*/
	Elf32_Half		e_phentsize;	/*Program header table中每个条目(一个Program header)的大小*/
	Elf32_Half		e_phnum;		/*Program header table 中有多少个条目*/
	Elf32_Half		e_shentsize;	/*Section header table中每个条目(一个Section header)的大小*/
	Elf32_Half		e_shnum;		/*Section header table 中有多少个条目*/
	Elf32_Half		e_shstmdx;		/*包含节名称的字符串表是第几个字节(从零开始数)*/
}Elf32_Ehdr;

typedef struct{
	Elf32_Word		e_type;			/*当前描述段的类型*/
	Elf32_Off		e_offset;		/*段的第一个字节在文件中的偏移*/
	Elf32_Addr		p_vadrr;		/*段的第一个字节在内存中的虚拟地址*/
	Elf32_Addr		p_paddr;		/*在物理地址定位的相关系统中,此项是为物理地址保留*/
	Elf32_Word		p_filesz;		/*段在文件中的长度*/
	Elf32_Word		p_memsz;		/*段在内存中的长度*/
	Elf32_Word		p_flags;		/*与段相关的标志*/
	Elf32_Word		p_align;		/*对齐的方式*/
}Elf32_Phdr;



⌨️ 快捷键说明

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