|
FreeNOS
|
#include <Types.h>Go to the source code of this file.
Data Structures | |
| struct | ELFHeaderBasic |
| struct | ELFHeader |
| Describes an ELF executable and must be placed at the beginning of executable programs. More... | |
| struct | ELF64Header |
| struct | ELFSegment |
| ELF program segment in the executable file. More... | |
| struct | ELF64Segment |
Macros | |
Identification indexes | |
| #define | ELF_INDEX_MAGIC0 0 |
| Magic number byte 0 index. | |
| #define | ELF_INDEX_MAGIC1 1 |
| Magic number byte 1 index. | |
| #define | ELF_INDEX_MAGIC2 2 |
| Magic number byte 2 index. | |
| #define | ELF_INDEX_MAGIC3 3 |
| Magic number byte 3 index. | |
| #define | ELF_INDEX_CLASS 4 |
| File class index. | |
| #define | ELF_INDEX_DATA 5 |
| Data encoding index. | |
| #define | ELF_INDEX_VERSION 6 |
| File version index. | |
| #define | ELF_INDEX_PAD 7 |
| Unused padding index. | |
| #define | ELF_INDEX_NIDENT 16 |
| Number of bytes in the ELF identity field. | |
Magic numbers | |
| #define | ELF_MAGIC0 0x7f |
| Magic number byte 0. | |
| #define | ELF_MAGIC1 'E' |
| Magic number byte 1. | |
| #define | ELF_MAGIC2 'L' |
| Magic number byte 2. | |
| #define | ELF_MAGIC3 'F' |
| Magic number byte 3. | |
Processor classes | |
| #define | ELF_CLASS_NONE 0 |
| Invalid class. | |
| #define | ELF_CLASS_32 1 |
| 32-bit objects. | |
| #define | ELF_CLASS_64 2 |
| 64-bit objects. | |
Data encoding (endianness) | |
| #define | ELF_DATA_NONE 0 |
| Invalid data encoding. | |
| #define | ELF_DATA_2LSB 1 |
| 2-complement, little endian. | |
| #define | ELF_DATA_2MSB 2 |
| 2-complement, big endian. | |
Object file types | |
| #define | ELF_TYPE_NONE 0 |
| No file type. | |
| #define | ELF_TYPE_REL 1 |
| Relocatable file. | |
| #define | ELF_TYPE_EXEC 2 |
| Executable file. | |
| #define | ELF_TYPE_DYN 3 |
| Shared object file. | |
| #define | ELF_TYPE_CORE 4 |
| Core file. | |
| #define | ELF_TYPE_NUM 5 |
| Number of defined types. | |
| #define | ELF_TYPE_LOPROC 0xff00 |
| Processor-specific range start. | |
| #define | ELF_TYPE_HIPROC 0xffff |
| Processor-specific range end. | |
Machine architectures | |
| #define | ELF_MACHINE_NONE 0 |
| No machine. | |
| #define | ELF_MACHINE_M32 1 |
| AT&T WE 32100. | |
| #define | ELF_MACHINE_SPARC 2 |
| SPARC. | |
| #define | ELF_MACHINE_386 3 |
| Intel IBM-PC architecture. | |
| #define | ELF_MACHINE_68K 4 |
| Motorola 68000. | |
| #define | ELF_MACHINE_88K 5 |
| Motorola 88000. | |
| #define | ELF_MACHINE_860 7 |
| Intel 80860. | |
| #define | ELF_MACHINE_MIPS_RS3 8 |
| MIPS RS3000 big endian. | |
| #define | ELF_MACHINE_MIPS_RS4 10 |
| MIPS RS4000 big endian. | |
Segment types | |
| #define | ELF_SEGMENT_NULL 0 |
| Unused segment. | |
| #define | ELF_SEGMENT_LOAD 1 |
| Loadable segment. | |
| #define | ELF_SEGMENT_DYNAMIC 2 |
| Dynamic linker information. | |
| #define | ELF_SEGMENT_INTERP 3 |
| Path to an interpreter for dynamic linking. | |
| #define | ELF_SEGMENT_NOTE 4 |
| Auxiliary information. | |
| #define | ELF_SEGMENT_SHLIB 5 |
| Reserved. | |
| #define | ELF_SEGMENT_SELF 6 |
| Refers to the program segment header itself. | |
| #define | ELF_SEGMENT_LOPROC 0x70000000 |
| Reserved for processor-specific semantics. | |
| #define | ELF_SEGMENT_HIPROC 0x7fffffff |
| Reserved for processor-specific semantics. | |
Typedefs | |
| typedef struct ELFHeader | ELFHeader |
| Describes an ELF executable and must be placed at the beginning of executable programs. | |
| typedef struct ELF64Header | ELF64Header |
| typedef struct ELFSegment | ELFSegment |
| ELF program segment in the executable file. | |
| typedef struct ELF64Segment | ELF64Segment |
Object file version. | |
| #define | ELF_VERSION_NONE 0 |
| Invalid version. | |
| #define | ELF_VERSION_CURRENT 1 |
| Current version. | |
| typedef struct ELFHeaderBasic | ELFHeaderBasic |