Go to the documentation of this file. 1 #ifndef __ASM_SPARC64_ELF_H
2 #define __ASM_SPARC64_ELF_H
8 #include <asm/ptrace.h>
9 #include <asm/processor.h>
10 #include <asm/uaccess.h>
16 #define STT_REGISTER 13
21 #define R_SPARC_NONE 0
25 #define R_SPARC_DISP8 4
26 #define R_SPARC_DISP16 5
27 #define R_SPARC_DISP32 6
28 #define R_SPARC_WDISP30 7
29 #define R_SPARC_WDISP22 8
30 #define R_SPARC_HI22 9
33 #define R_SPARC_LO10 12
34 #define R_SPARC_GOT10 13
35 #define R_SPARC_GOT13 14
36 #define R_SPARC_GOT22 15
37 #define R_SPARC_PC10 16
38 #define R_SPARC_PC22 17
39 #define R_SPARC_WPLT30 18
40 #define R_SPARC_COPY 19
41 #define R_SPARC_GLOB_DAT 20
42 #define R_SPARC_JMP_SLOT 21
43 #define R_SPARC_RELATIVE 22
44 #define R_SPARC_UA32 23
45 #define R_SPARC_PLT32 24
46 #define R_SPARC_HIPLT22 25
47 #define R_SPARC_LOPLT10 26
48 #define R_SPARC_PCPLT32 27
49 #define R_SPARC_PCPLT22 28
50 #define R_SPARC_PCPLT10 29
54 #define R_SPARC_OLO10 33
55 #define R_SPARC_WDISP16 40
56 #define R_SPARC_WDISP19 41
62 #define HWCAP_SPARC_FLUSH 0x00000001
63 #define HWCAP_SPARC_STBAR 0x00000002
64 #define HWCAP_SPARC_SWAP 0x00000004
65 #define HWCAP_SPARC_MULDIV 0x00000008
66 #define HWCAP_SPARC_V9 0x00000010
67 #define HWCAP_SPARC_ULTRA3 0x00000020
68 #define HWCAP_SPARC_BLKINIT 0x00000040
69 #define HWCAP_SPARC_N2 0x00000080
72 #define AV_SPARC_MUL32 0x00000100
73 #define AV_SPARC_DIV32 0x00000200
74 #define AV_SPARC_FSMULD 0x00000400
75 #define AV_SPARC_V8PLUS 0x00000800
76 #define AV_SPARC_POPC 0x00001000
77 #define AV_SPARC_VIS 0x00002000
78 #define AV_SPARC_VIS2 0x00004000
79 #define AV_SPARC_ASI_BLK_INIT 0x00008000
80 #define AV_SPARC_FMAF 0x00010000
81 #define AV_SPARC_VIS3 0x00020000
82 #define AV_SPARC_HPC 0x00040000
83 #define AV_SPARC_RANDOM 0x00080000
84 #define AV_SPARC_TRANS 0x00100000
85 #define AV_SPARC_FJFMAU 0x00200000
86 #define AV_SPARC_IMA 0x00400000
87 #define AV_SPARC_ASI_CACHE_SPARING \
89 #define AV_SPARC_PAUSE 0x01000000
90 #define AV_SPARC_CBCOND 0x02000000
97 #define HWCAP_SPARC_CRYPTO 0x04000000
99 #define CORE_DUMP_USE_REGSET
104 #define ELF_ARCH EM_SPARCV9
105 #define ELF_CLASS ELFCLASS64
106 #define ELF_DATA ELFDATA2MSB
123 unsigned long pr_regs[32];
124 unsigned long pr_fsr;
137 #define COMPAT_ELF_NGREG 38
142 unsigned int pr_regs[32];
143 unsigned long pr_dregs[16];
150 unsigned int pr_q[64];
160 unsigned int pr_regs[32];
161 unsigned long pr_dregs[16];
162 long double pr_qregs[8];
167 unsigned int pr_xg[8];
168 unsigned int pr_xo[8];
170 unsigned int pr_filler[8];
177 #define elf_check_arch(x) ((x)->e_machine == ELF_ARCH)
178 #define compat_elf_check_arch(x) ((x)->e_machine == EM_SPARC || \
179 (x)->e_machine == EM_SPARC32PLUS)
180 #define compat_start_thread start_thread32
182 #define ELF_EXEC_PAGESIZE PAGE_SIZE
189 #define ELF_ET_DYN_BASE 0x0000010000000000UL
190 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
193 #define ELF_HWCAP sparc64_elf_hwcap
199 #define ELF_PLATFORM (NULL)
201 #define SET_PERSONALITY(ex) \
202 do { if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
203 set_thread_flag(TIF_32BIT); \
205 clear_thread_flag(TIF_32BIT); \
207 if (personality(current->personality) != PER_LINUX32) \
208 set_personality(PER_LINUX | \
209 (current->personality & (~PER_MASK))); \