2003-05-15 Roland McGrath <roland@redhat.com>
authorRoland McGrath <roland@gnu.org>
Wed, 21 May 2003 00:55:15 +0000 (00:55 +0000)
committerRoland McGrath <roland@gnu.org>
Wed, 21 May 2003 00:55:15 +0000 (00:55 +0000)
* common.h (NT_AUXV, AT_*): New macros.
* external.h (Elf32_External_Auxv, Elf64_External_Auxv): New types.
* internal.h (Elf_Internal_Auxv): New type.

include/elf/common.h
include/elf/external.h
include/elf/internal.h

index ca7934286013ca214b01d3ba95149e56dd3ede16..f342d573710c7071000dae9f5c45c1dab92be689 100644 (file)
 #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.  */
 #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".  */
 
 
 /* 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 */
 
 #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 */
index 403ee622b5d1295f165d2f9ac51dac2bb132a953..a171439172d23295ab55509d21a4b850d9321e3f 100644 (file)
@@ -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 */
index 45d682a2256bbac3b6e762b92841eb518aeb9146..a7299d90534dc736247599cef3703cd562f6b752 100644 (file)
@@ -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.  */