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

📄 elf.h

📁 linux-2.6.15.6
💻 H
字号:
#ifndef _PPC_BOOT_ELF_H_#define _PPC_BOOT_ELF_H_/* 32-bit ELF base types. */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;/* 64-bit ELF base types. */typedef unsigned long long Elf64_Addr;typedef unsigned short Elf64_Half;typedef signed short Elf64_SHalf;typedef unsigned long long Elf64_Off;typedef signed int Elf64_Sword;typedef unsigned int Elf64_Word;typedef unsigned long long Elf64_Xword;typedef signed long long Elf64_Sxword;/* These constants are for the segment types stored in the image headers */#define PT_NULL    0#define PT_LOAD    1#define PT_DYNAMIC 2#define PT_INTERP  3#define PT_NOTE    4#define PT_SHLIB   5#define PT_PHDR    6#define PT_TLS     7		/* Thread local storage segment */#define PT_LOOS    0x60000000	/* OS-specific */#define PT_HIOS    0x6fffffff	/* OS-specific */#define PT_LOPROC  0x70000000#define PT_HIPROC  0x7fffffff#define PT_GNU_EH_FRAME		0x6474e550#define PT_GNU_STACK	(PT_LOOS + 0x474e551)/* These constants define the different elf file types */#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/* These constants define the various ELF target machines */#define EM_NONE  0#define EM_PPC	       20	/* PowerPC */#define EM_PPC64       21	/* PowerPC64 */#define EI_NIDENT	16typedef struct elf32_hdr {	unsigned char e_ident[EI_NIDENT];	Elf32_Half e_type;	Elf32_Half e_machine;	Elf32_Word e_version;	Elf32_Addr e_entry;	/* Entry point */	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;} Elf32_Ehdr;typedef struct elf64_hdr {	unsigned char e_ident[16];	/* ELF "magic number" */	Elf64_Half e_type;	Elf64_Half e_machine;	Elf64_Word e_version;	Elf64_Addr e_entry;	/* Entry point virtual address */	Elf64_Off e_phoff;	/* Program header table file offset */	Elf64_Off e_shoff;	/* Section header table file offset */	Elf64_Word e_flags;	Elf64_Half e_ehsize;	Elf64_Half e_phentsize;	Elf64_Half e_phnum;	Elf64_Half e_shentsize;	Elf64_Half e_shnum;	Elf64_Half e_shstrndx;} Elf64_Ehdr;/* These constants define the permissions on sections in the program   header, p_flags. */#define PF_R		0x4#define PF_W		0x2#define PF_X		0x1typedef struct elf32_phdr {	Elf32_Word p_type;	Elf32_Off p_offset;	Elf32_Addr p_vaddr;	Elf32_Addr p_paddr;	Elf32_Word p_filesz;	Elf32_Word p_memsz;	Elf32_Word p_flags;	Elf32_Word p_align;} Elf32_Phdr;typedef struct elf64_phdr {	Elf64_Word p_type;	Elf64_Word p_flags;	Elf64_Off p_offset;	/* Segment file offset */	Elf64_Addr p_vaddr;	/* Segment virtual address */	Elf64_Addr p_paddr;	/* Segment physical address */	Elf64_Xword p_filesz;	/* Segment size in file */	Elf64_Xword p_memsz;	/* Segment size in memory */	Elf64_Xword p_align;	/* Segment alignment, file & memory */} Elf64_Phdr;#define	EI_MAG0		0	/* e_ident[] indexes */#define	EI_MAG1		1#define	EI_MAG2		2#define	EI_MAG3		3#define	EI_CLASS	4#define	EI_DATA		5#define	EI_VERSION	6#define	EI_OSABI	7#define	EI_PAD		8#define	ELFMAG0		0x7f	/* EI_MAG */#define	ELFMAG1		'E'#define	ELFMAG2		'L'#define	ELFMAG3		'F'#define	ELFMAG		"\177ELF"#define	SELFMAG		4#define	ELFCLASSNONE	0	/* EI_CLASS */#define	ELFCLASS32	1#define	ELFCLASS64	2#define	ELFCLASSNUM	3#define ELFDATANONE	0	/* e_ident[EI_DATA] */#define ELFDATA2LSB	1#define ELFDATA2MSB	2#define EV_NONE		0	/* e_version, EI_VERSION */#define EV_CURRENT	1#define EV_NUM		2#define ELFOSABI_NONE	0#define ELFOSABI_LINUX	3#endif				/* _PPC_BOOT_ELF_H_ */

⌨️ 快捷键说明

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