summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2004-05-04 22:21:36 +0000
committercognet <cognet@FreeBSD.org>2004-05-04 22:21:36 +0000
commit98a436bcc5b8754756faf6829cf82af5d100e495 (patch)
treec6a5235976ebc48a96eea37d2c9feacbdcf95abd /sys/arm
parent38f037cae938a0763ecc48879982bb4c0178a112 (diff)
downloadFreeBSD-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.h36
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. */
OpenPOWER on IntegriCloud