From eecca0f7233b40a86d291755e21c38883195a1d5 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 21 May 2003 00:55:15 +0000 Subject: 2003-05-15 Roland McGrath * 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 | 36 ++++++++++++++++++++++++++++++++++-- include/elf/external.h | 15 +++++++++++++++ include/elf/internal.h | 7 +++++++ 3 files changed, 56 insertions(+), 2 deletions(-) (limited to 'include/elf') diff --git a/include/elf/common.h b/include/elf/common.h index ca79342..f342d57 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 403ee62..a171439 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 45d682a..a7299d9 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. */ -- cgit v1.1