Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at 079da354db3473b56eb938ca53a2cb0804ea9c8c 77 lines 2.4 kB view raw
1#ifndef __ASMARM_ELF_H 2#define __ASMARM_ELF_H 3 4/* 5 * ELF register definitions.. 6 */ 7 8#include <asm/ptrace.h> 9#include <asm/procinfo.h> 10 11//FIXME - is it always 32K ? 12 13#define ELF_EXEC_PAGESIZE 32768 14#define SET_PERSONALITY(ex,ibcs2) set_personality(PER_LINUX) 15 16typedef unsigned long elf_greg_t; 17typedef unsigned long elf_freg_t[3]; 18 19#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) 20typedef elf_greg_t elf_gregset_t[ELF_NGREG]; 21 22typedef struct { void *null; } elf_fpregset_t; 23 24/* 25 * This is used to ensure we don't load something for the wrong architecture. 26 * We can only execute 26-bit code. 27 */ 28 29#define EM_ARM 40 30#define EF_ARM_APCS26 0x08 31 32//#define elf_check_arch(x) ( ((x)->e_machine == EM_ARM) && ((x)->e_flags & EF_ARM_APCS26) ) FIXME!!!!! - this looks OK, but the flags seem to be wrong. 33#define elf_check_arch(x) (1) 34 35/* 36 * These are used to set parameters in the core dumps. 37 */ 38#define ELF_CLASS ELFCLASS32 39#define ELF_DATA ELFDATA2LSB 40#define ELF_ARCH EM_ARM 41 42#define USE_ELF_CORE_DUMP 43 44/* This is the location that an ET_DYN program is loaded if exec'ed. Typical 45 use of this is to invoke "./ld.so someprog" to test out a new version of 46 the loader. We need to make sure that it is out of the way of the program 47 that it will "exec", and that there is sufficient room for the brk. */ 48 49#define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3) 50 51/* When the program starts, a1 contains a pointer to a function to be 52 registered with atexit, as per the SVR4 ABI. A value of 0 means we 53 have no such handler. */ 54#define ELF_PLAT_INIT(_r, load_addr) (_r)->ARM_r0 = 0 55 56/* This yields a mask that user programs can use to figure out what 57 instruction set this cpu supports. */ 58 59extern unsigned int elf_hwcap; 60#define ELF_HWCAP (elf_hwcap) 61 62/* This yields a string that ld.so will use to load implementation 63 specific libraries for optimization. This is more specific in 64 intent than poking at uname or /proc/cpuinfo. */ 65 66/* For now we just provide a fairly general string that describes the 67 processor family. This could be made more specific later if someone 68 implemented optimisations that require it. 26-bit CPUs give you 69 "v1l" for ARM2 (no SWP) and "v2l" for anything else (ARM1 isn't 70 supported). 71 */ 72 73#define ELF_PLATFORM_SIZE 8 74extern char elf_platform[]; 75#define ELF_PLATFORM (elf_platform) 76 77#endif