diff options
author | cognet <cognet@FreeBSD.org> | 2004-05-04 22:21:36 +0000 |
---|---|---|
committer | cognet <cognet@FreeBSD.org> | 2004-05-04 22:21:36 +0000 |
commit | 98a436bcc5b8754756faf6829cf82af5d100e495 (patch) | |
tree | c6a5235976ebc48a96eea37d2c9feacbdcf95abd /sys/arm | |
parent | 38f037cae938a0763ecc48879982bb4c0178a112 (diff) | |
download | FreeBSD-src-98a436bcc5b8754756faf6829cf82af5d100e495.zip FreeBSD-src-98a436bcc5b8754756faf6829cf82af5d100e495.tar.gz |
Add the Elf32_Auxinfo declaretion.
Define AT_*.
(Maybe some of this could go in a MI header ?)
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/include/elf.h | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/sys/arm/include/elf.h b/sys/arm/include/elf.h index 8425ab1..a6f1462 100644 --- a/sys/arm/include/elf.h +++ b/sys/arm/include/elf.h @@ -40,6 +40,17 @@ #define __ELF_WORD_SIZE 32 /* Used by <sys/elf_generic.h> */ #include <sys/elf_generic.h> +typedef struct { /* Auxiliary vector entry on initial stack */ + int a_type; /* Entry type. */ + union { + long a_val; /* Integer value. */ + void *a_ptr; /* Address. */ + void (*a_fcn)(void); /* Function pointer (not used). */ + } a_un; +} Elf32_Auxinfo; + +__ElfType(Auxinfo); + #define ELF_ARCH EM_ARM #define ELF_MACHINE_OK(x) ((x) == EM_ARM) @@ -48,6 +59,29 @@ * Relocation types. */ +/* Values for a_type. */ +#define AT_NULL 0 /* Terminates the vector. */ +#define AT_IGNORE 1 /* Ignored entry. */ +#define AT_EXECFD 2 /* File descriptor of program to load. */ +#define AT_PHDR 3 /* Program header of program already loaded. */ +#define AT_PHENT 4 /* Size of each program header entry. */ +#define AT_PHNUM 5 /* Number of program header entries. */ +#define AT_PAGESZ 6 /* Page size in bytes. */ +#define AT_BASE 7 /* Interpreter's base address. */ +#define AT_FLAGS 8 /* Flags (unused). */ +#define AT_ENTRY 9 /* Where interpreter should transfer control. */ + +#define AT_BRK 10 /* Starting point for sbrk and brk. */ +#define AT_DEBUG 11 /* Debugging level. */ + +#define AT_NOTELF 10 /* Program is not ELF ?? */ +#define AT_UID 11 /* Real uid. */ +#define AT_EUID 12 /* Effective uid. */ +#define AT_GID 13 /* Real gid. */ +#define AT_EGID 14 /* Effective gid. */ + +#define AT_COUNT 15 /* Count of defined aux entry types. */ + #define R_ARM_NONE 0 /* No relocation. */ #define R_ARM_PC24 1 #define R_ARM_ABS32 2 @@ -69,7 +103,7 @@ #define R_ARM_GLOB_DAT 21 /* Set GOT entry to data address. */ #define R_ARM_JUMP_SLOT 22 /* Set GOT entry to code address. */ #define R_ARM_RELATIVE 23 /* Add load address of shared object. */ -#define R_ARM_GOTOFF 24 /* Add GOT-relative symbol address. * +#define R_ARM_GOTOFF 24 /* Add GOT-relative symbol address. */ #define R_ARM_GOTPC 25 /* Add PC-relative GOT table address. */ #define R_ARM_GOT32 26 /* Add PC-relative GOT offset. */ #define R_ARM_PLT32 27 /* Add PC-relative PLT offset. */ |