2005-04-17 02:20:36 +04:00
# ifndef __ASMCRIS_ELF_H
# define __ASMCRIS_ELF_H
/*
* ELF register definitions . .
*/
# include <asm/user.h>
2005-07-27 22:44:27 +04:00
# define R_CRIS_NONE 0
# define R_CRIS_8 1
# define R_CRIS_16 2
# define R_CRIS_32 3
# define R_CRIS_8_PCREL 4
# define R_CRIS_16_PCREL 5
# define R_CRIS_32_PCREL 6
# define R_CRIS_GNU_VTINHERIT 7
# define R_CRIS_GNU_VTENTRY 8
# define R_CRIS_COPY 9
# define R_CRIS_GLOB_DAT 10
# define R_CRIS_JUMP_SLOT 11
# define R_CRIS_RELATIVE 12
# define R_CRIS_16_GOT 13
# define R_CRIS_32_GOT 14
# define R_CRIS_16_GOTPLT 15
# define R_CRIS_32_GOTPLT 16
# define R_CRIS_32_GOTREL 17
# define R_CRIS_32_PLT_GOTREL 18
# define R_CRIS_32_PLT_PCREL 19
2005-04-17 02:20:36 +04:00
typedef unsigned long elf_greg_t ;
/* Note that NGREG is defined to ELF_NGREG in include/linux/elfcore.h, and is
thus exposed to user - space . */
# define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
typedef elf_greg_t elf_gregset_t [ ELF_NGREG ] ;
/* A placeholder; CRIS does not have any fp regs. */
typedef unsigned long elf_fpregset_t ;
/*
* These are used to set parameters in the core dumps .
*/
# define ELF_CLASS ELFCLASS32
2005-07-27 22:44:27 +04:00
# define ELF_DATA ELFDATA2LSB
2005-04-17 02:20:36 +04:00
# define ELF_ARCH EM_CRIS
2006-09-21 12:33:55 +04:00
# ifdef __KERNEL__
# include <asm/arch/elf.h>
2005-07-27 22:44:27 +04:00
/* The master for these definitions is {binutils}/include/elf/cris.h: */
/* User symbols in this file have a leading underscore. */
# define EF_CRIS_UNDERSCORE 0x00000001
/* This is a mask for different incompatible machine variants. */
# define EF_CRIS_VARIANT_MASK 0x0000000e
/* Variant 0; may contain v0..10 object. */
# define EF_CRIS_VARIANT_ANY_V0_V10 0x00000000
/* Variant 1; contains v32 object. */
# define EF_CRIS_VARIANT_V32 0x00000002
/* Variant 2; contains object compatible with v32 and v10. */
# define EF_CRIS_VARIANT_COMMON_V10_V32 0x00000004
/* End of excerpt from {binutils}/include/elf/cris.h. */
2005-04-17 02:20:36 +04:00
# define USE_ELF_CORE_DUMP
# define ELF_EXEC_PAGESIZE 8192
/* This is the location that an ET_DYN program is loaded if exec'ed. Typical
use of this is to invoke " ./ld.so someprog " to test out a new version of
the loader . We need to make sure that it is out of the way of the program
that it will " exec " , and that there is sufficient room for the brk . */
# define ELF_ET_DYN_BASE (2 * TASK_SIZE / 3)
/* This yields a mask that user programs can use to figure out what
instruction set this CPU supports . This could be done in user space ,
but it ' s not easy , and we ' ve already done it here . */
# define ELF_HWCAP (0)
/* This yields a string that ld.so will use to load implementation
specific libraries for optimization . This is more specific in
intent than poking at uname or / proc / cpuinfo .
*/
# define ELF_PLATFORM (NULL)
# define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX)
2006-09-21 12:33:55 +04:00
# endif /* __KERNEL__ */
2005-04-17 02:20:36 +04:00
# endif