summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-05-21 00:55:15 +0000
committerRoland McGrath <roland@gnu.org>2003-05-21 00:55:15 +0000
commit48345228e406257f7bf4e88fde6936cea30a4dbc (patch)
treef288e02fce4a24ddd3da3b1b499958b686f98d59
parentce94751152d731775c4511c985c2ded6e7ef0d75 (diff)
downloadbinutils-redhat-48345228e406257f7bf4e88fde6936cea30a4dbc.tar.gz
2003-05-15 Roland McGrath <roland@redhat.com>
* common.h (NT_AUXV, AT_*): New macros. * external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types. * internal.h (Elf_Internal_Auxv): New type.
-rw-r--r--include/elf/common.h36
-rw-r--r--include/elf/external.h15
-rw-r--r--include/elf/internal.h7
3 files changed, 56 insertions, 2 deletions
diff --git a/include/elf/common.h b/include/elf/common.h
index ca79342860..f342d57371 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -253,7 +253,7 @@
#define EM_CYGNUS_FRV 0x5441
/* Ubicom IP2xxx; no ABI */
-#define EM_IP2K_OLD 0x8217
+#define EM_IP2K_OLD 0x8217
/* MSP430 magic number
Written in the absense everything. */
@@ -364,6 +364,7 @@
#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
#define NT_TASKSTRUCT 4 /* Contains copy of task struct */
+#define NT_AUXV 6 /* Contains copy of Elfxx_auxv_t */
#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */
/* note name must be "LINUX". */
@@ -471,7 +472,7 @@
/* The following constants control how a symbol may be accessed once it has
become part of an executable or shared library. */
-
+
#define STV_DEFAULT 0 /* Visibility is specified by binding type */
#define STV_INTERNAL 1 /* OS specific version of STV_HIDDEN */
#define STV_HIDDEN 2 /* Can only be seen inside currect component */
@@ -687,4 +688,35 @@
#define GRP_COMDAT 0x1 /* A COMDAT group */
+/* Auxv a_type values. */
+
+#define AT_NULL 0 /* End of vector */
+#define AT_IGNORE 1 /* Entry should be ignored */
+#define AT_EXECFD 2 /* File descriptor of program */
+#define AT_PHDR 3 /* Program headers for program */
+#define AT_PHENT 4 /* Size of program header entry */
+#define AT_PHNUM 5 /* Number of program headers */
+#define AT_PAGESZ 6 /* System page size */
+#define AT_BASE 7 /* Base address of interpreter */
+#define AT_FLAGS 8 /* Flags */
+#define AT_ENTRY 9 /* Entry point of program */
+#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_CLKTCK 17 /* Frequency of times() */
+#define AT_PLATFORM 15 /* String identifying platform. */
+#define AT_HWCAP 16 /* Machine dependent hints about
+ processor capabilities. */
+#define AT_FPUCW 18 /* Used FPU control word. */
+#define AT_DCACHEBSIZE 19 /* Data cache block size. */
+#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
+#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
+#define AT_IGNOREPPC 22 /* Entry should be ignored */
+/* Pointer to the global system page used for system calls and other
+ nice things. */
+#define AT_SYSINFO 32
+#define AT_SYSINFO_EHDR 33
+
#endif /* _ELF_COMMON_H */
diff --git a/include/elf/external.h b/include/elf/external.h
index 403ee622b5..a171439172 100644
--- a/include/elf/external.h
+++ b/include/elf/external.h
@@ -258,4 +258,19 @@ typedef struct
unsigned char si_flags[2];
} Elf_External_Syminfo;
+
+/* This structure appears on the stack and in NT_AUXV core file notes. */
+typedef struct
+{
+ unsigned char a_type[4];
+ unsigned char a_val[4];
+} Elf32_External_Auxv;
+
+typedef struct
+{
+ unsigned char a_type[8];
+ unsigned char a_val[8];
+} Elf64_External_Auxv;
+
+
#endif /* _ELF_EXTERNAL_H */
diff --git a/include/elf/internal.h b/include/elf/internal.h
index 45d682a225..a7299d9053 100644
--- a/include/elf/internal.h
+++ b/include/elf/internal.h
@@ -214,6 +214,13 @@ typedef struct
unsigned short int si_flags;
} Elf_Internal_Syminfo;
+/* This structure appears on the stack and in NT_AUXV core file notes. */
+typedef struct
+{
+ bfd_vma a_type;
+ bfd_vma a_val;
+} Elf_Internal_Auxv;
+
/* This structure is used to describe how sections should be assigned
to program segments. */