about summary refs log tree commit diff stats
path: root/tools/iso/kernel.soso/elf.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/iso/kernel.soso/elf.h')
-rw-r--r--tools/iso/kernel.soso/elf.h184
1 files changed, 0 insertions, 184 deletions
diff --git a/tools/iso/kernel.soso/elf.h b/tools/iso/kernel.soso/elf.h
deleted file mode 100644
index 984d6023..00000000
--- a/tools/iso/kernel.soso/elf.h
+++ /dev/null
@@ -1,184 +0,0 @@
-#ifndef ELF_H
-#define ELF_H
-
-#include "common.h"
-
-/*
- * ELF HEADER
- */
-typedef struct {
-    unsigned char e_ident[16];	/* ELF identification */
-    uint16 e_type;		/* 2 (exec file) */
-    uint16 e_machine;		/* 3 (intel architecture) */
-    uint32 e_version;		/* 1 */
-    uint32 e_entry;		/* starting point */
-    uint32 e_phoff;		/* program header table offset */
-    uint32 e_shoff;		/* section header table offset */
-    uint32 e_flags;		/* various flags */
-    uint16 e_ehsize;		/* ELF header (this) size */
-
-    uint16 e_phentsize;	/* program header table entry size */
-    uint16 e_phnum;		/* number of entries */
-
-    uint16 e_shentsize;	/* section header table entry size */
-    uint16 e_shnum;		/* number of entries */
-
-    uint16 e_shstrndx;		/* index of the section name string table */
-} Elf32_Ehdr;
-
-/*
- * ELF identification
- */
-#define	EI_MAG0		0
-#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_PAD		7
-
-/* EI_MAG */
-#define	ELFMAG0		0x7f
-#define	ELFMAG1		'E'
-#define	ELFMAG2		'L'
-#define	ELFMAG3		'F'
-
-/* EI_CLASS */
-#define	ELFCLASSNONE	0	/* invalid class */
-#define	ELFCLASS32	1	/* 32-bit objects */
-#define	ELFCLASS64	2	/* 64-bit objects */
-
-/* EI_DATA */
-#define	ELFDATANONE	0	/* invalide data encoding */
-#define	ELFDATA2LSB	1	/* least significant byte first (0x01020304 is 0x04 0x03 0x02 0x01) */
-#define	ELFDATA2MSB	2	/* most significant byte first (0x01020304 is 0x01 0x02 0x03 0x04) */
-
-/* EI_VERSION */
-#define	EV_CURRENT	1
-#define	ELFVERSION	EV_CURRENT
-
-/*
- * PROGRAM HEADER
- */
-typedef struct {
-    uint32 p_type;		/* type of segment */
-    uint32 p_offset;
-    uint32 p_vaddr;
-    uint32 p_paddr;
-    uint32 p_filesz;
-    uint32 p_memsz;
-    uint32 p_flags;
-    uint32 p_align;
-} Elf32_Phdr;
-
-/* p_type */
-#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_LOPROC  0x70000000
-#define	PT_HIPROC  0x7fffffff
-
-/* p_flags */
-#define PF_X	0x1
-#define PF_W	0x2
-#define PF_R	0x4
-
-
-
-enum eElfSectionTypes {
-    SHT_NULL,	//0
-    SHT_PROGBITS,	//1
-    SHT_SYMTAB,	//2
-    SHT_STRTAB,	//3
-    SHT_RELA,	//4
-    SHT_HASH,	//5
-    SHT_DYNAMIC,	//6
-    SHT_NOTE,	//7
-    SHT_NOBITS,	//8
-    SHT_REL,	//9
-    SHT_SHLIB,	//A
-    SHT_DYNSYM,	//B
-    SHT_LAST,	//C
-    SHT_LOPROC = 0x70000000,
-    SHT_HIPROC = 0x7fffffff,
-    SHT_LOUSER = 0x80000000,
-    SHT_HIUSER = 0xffffffff
-};
-
-
-typedef struct {
-    uint32		name;
-    uint32	type;
-    uint32	flags;
-    uint32	address;
-    uint32	offset;
-    uint32	size;
-    uint32	link;
-    uint32	info;
-    uint32	addralign;
-    uint32	entsize;
-} Elf32_Scdr;
-
-
-
-
-
-enum {
-    R_386_NONE=0,	// none
-    R_386_32,	// S+A
-    R_386_PC32,	// S+A-P
-    R_386_GOT32,	// G+A-P
-    R_386_PLT32,	// L+A-P
-    R_386_COPY,	// none
-    R_386_GLOB_DAT,	// S
-    R_386_JMP_SLOT,	// S
-    R_386_RELATIVE,	// B+A
-    R_386_GOTOFF,	// S+A-GOT
-    R_386_GOTPC,	// GOT+A-P
-    R_386_LAST	// none
-};
-
-typedef struct {
-    uint16	d_tag;
-    uint32	d_val;	//Also d_ptr
-} Elf32_dyn;
-
-
-enum {
-    DT_NULL,	//!< Marks End of list
-    DT_NEEDED,	//!< Offset in strtab to needed library
-    DT_PLTRELSZ,	//!< Size in bytes of PLT
-    DT_PLTGOT,	//!< Address of PLT/GOT
-    DT_HASH,	//!< Address of symbol hash table
-    DT_STRTAB,	//!< String Table address
-    DT_SYMTAB,	//!< Symbol Table address
-    DT_RELA,	//!< Relocation table address
-    DT_RELASZ,	//!< Size of relocation table
-    DT_RELAENT,	//!< Size of entry in relocation table
-    DT_STRSZ,	//!< Size of string table
-    DT_SYMENT,	//!< Size of symbol table entry
-    DT_INIT,	//!< Address of initialisation function
-    DT_FINI,	//!< Address of termination function
-    DT_SONAME,	//!< String table offset of so name
-    DT_RPATH,	//!< String table offset of library path
-    DT_SYMBOLIC,//!< Reverse order of symbol searching for library, search libs first then executable
-    DT_REL,		//!< Relocation Entries (Elf32_Rel instead of Elf32_Rela)
-    DT_RELSZ,	//!< Size of above table (bytes)
-    DT_RELENT,	//!< Size of entry in above table
-    DT_PLTREL,	//!< Relocation entry of PLT
-    DT_DEBUG,	//!< Debugging Entry - Unknown contents
-    DT_TEXTREL,	//!< Indicates that modifcations to a non-writeable segment may occur
-    DT_JMPREL,	//!< Address of PLT only relocation entries
-    DT_LOPROC = 0x70000000,	//!< Low Definable
-    DT_HIPROC = 0x7FFFFFFF	//!< High Definable
-};
-
-BOOL isElf(char *elfData);
-uint32 loadElf(char *elfData);
-
-#endif // ELF_H