• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/avr32/include/asm/
1#ifndef __ASM_AVR32_ELF_H
2#define __ASM_AVR32_ELF_H
3
4/* AVR32 relocation numbers */
5#define R_AVR32_NONE		0
6#define R_AVR32_32		1
7#define R_AVR32_16		2
8#define R_AVR32_8		3
9#define R_AVR32_32_PCREL	4
10#define R_AVR32_16_PCREL	5
11#define R_AVR32_8_PCREL		6
12#define R_AVR32_DIFF32		7
13#define R_AVR32_DIFF16		8
14#define R_AVR32_DIFF8		9
15#define R_AVR32_GOT32		10
16#define R_AVR32_GOT16		11
17#define R_AVR32_GOT8		12
18#define R_AVR32_21S		13
19#define R_AVR32_16U		14
20#define R_AVR32_16S		15
21#define R_AVR32_8S		16
22#define R_AVR32_8S_EXT		17
23#define R_AVR32_22H_PCREL	18
24#define R_AVR32_18W_PCREL	19
25#define R_AVR32_16B_PCREL	20
26#define R_AVR32_16N_PCREL	21
27#define R_AVR32_14UW_PCREL	22
28#define R_AVR32_11H_PCREL	23
29#define R_AVR32_10UW_PCREL	24
30#define R_AVR32_9H_PCREL	25
31#define R_AVR32_9UW_PCREL	26
32#define R_AVR32_HI16		27
33#define R_AVR32_LO16		28
34#define R_AVR32_GOTPC		29
35#define R_AVR32_GOTCALL		30
36#define R_AVR32_LDA_GOT		31
37#define R_AVR32_GOT21S		32
38#define R_AVR32_GOT18SW		33
39#define R_AVR32_GOT16S		34
40#define R_AVR32_GOT7UW		35
41#define R_AVR32_32_CPENT	36
42#define R_AVR32_CPCALL		37
43#define R_AVR32_16_CP		38
44#define R_AVR32_9W_CP		39
45#define R_AVR32_RELATIVE	40
46#define R_AVR32_GLOB_DAT	41
47#define R_AVR32_JMP_SLOT	42
48#define R_AVR32_ALIGN		43
49
50/*
51 * ELF register definitions..
52 */
53
54#include <asm/ptrace.h>
55#include <asm/user.h>
56
57typedef unsigned long elf_greg_t;
58
59#define ELF_NGREG (sizeof (struct pt_regs) / sizeof (elf_greg_t))
60typedef elf_greg_t elf_gregset_t[ELF_NGREG];
61
62typedef struct user_fpu_struct elf_fpregset_t;
63
64/*
65 * This is used to ensure we don't load something for the wrong architecture.
66 */
67#define elf_check_arch(x) ( (x)->e_machine == EM_AVR32 )
68
69/*
70 * These are used to set parameters in the core dumps.
71 */
72#define ELF_CLASS	ELFCLASS32
73#ifdef __LITTLE_ENDIAN__
74#define ELF_DATA	ELFDATA2LSB
75#else
76#define ELF_DATA	ELFDATA2MSB
77#endif
78#define ELF_ARCH	EM_AVR32
79
80#define ELF_EXEC_PAGESIZE	4096
81
82/* This is the location that an ET_DYN program is loaded if exec'ed.  Typical
83   use of this is to invoke "./ld.so someprog" to test out a new version of
84   the loader.  We need to make sure that it is out of the way of the program
85   that it will "exec", and that there is sufficient room for the brk.  */
86
87#define ELF_ET_DYN_BASE         (2 * TASK_SIZE / 3)
88
89
90/* This yields a mask that user programs can use to figure out what
91   instruction set this CPU supports.  This could be done in user space,
92   but it's not easy, and we've already done it here.  */
93
94#define ELF_HWCAP	(0)
95
96/* This yields a string that ld.so will use to load implementation
97   specific libraries for optimization.  This is more specific in
98   intent than poking at uname or /proc/cpuinfo.
99
100   For the moment, we have only optimizations for the Intel generations,
101   but that could change... */
102
103#define ELF_PLATFORM  (NULL)
104
105#define SET_PERSONALITY(ex) set_personality(PER_LINUX_32BIT)
106
107#endif /* __ASM_AVR32_ELF_H */
108