xref: /netbsd-src/sys/arch/powerpc/include/elf_machdep.h (revision 8b0f9554ff8762542c4defc4f70e1eb76fb508fa)
1 /*	$NetBSD: elf_machdep.h,v 1.7 2006/11/25 18:04:33 freza Exp $	*/
2 
3 #define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
4 #define	ELF32_MACHDEP_ID_CASES						\
5 		case EM_PPC:						\
6 			break;
7 
8 #define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2MSB
9 #define	ELF64_MACHDEP_ID_CASES						\
10 		case EM_PPC64:						\
11 			break;
12 
13 #define	ELF32_MACHDEP_ID	EM_PPC
14 #define	ELF64_MACHDEP_ID	EM_PPC64
15 
16 #ifdef _LP64
17 #define ARCH_ELFSIZE		64	/* MD native binary size */
18 #else
19 #define ARCH_ELFSIZE		32	/* MD native binary size */
20 #endif
21 
22 #define	R_PPC_NONE 		0
23 #define	R_PPC_32 		1
24 #define	R_PPC_24 		2
25 #define	R_PPC_16 		3
26 #define	R_PPC_16_LO 		4
27 #define	R_PPC_16_HI 		5 /* R_PPC_ADDIS */
28 #define	R_PPC_16_HA 		6
29 #define	R_PPC_14 		7
30 #define	R_PPC_14_TAKEN 		8
31 #define	R_PPC_14_NTAKEN 	9
32 #define	R_PPC_REL24 		10 /* R_PPC_BRANCH */
33 #define	R_PPC_REL14 		11
34 #define	R_PPC_REL14_TAKEN 	12
35 #define	R_PPC_REL14_NTAKEN 	13
36 #define	R_PPC_GOT16 		14
37 #define	R_PPC_GOT16_LO 		15
38 #define	R_PPC_GOT16_HI 		16
39 #define	R_PPC_GOT16_HA 		17
40 #define	R_PPC_PLT24 		18
41 #define	R_PPC_COPY 		19
42 #define	R_PPC_GLOB_DAT 		20
43 #define	R_PPC_JMP_SLOT 		21
44 #define	R_PPC_RELATIVE 		22
45 #define	R_PPC_LOCAL24PC 	23
46 #define	R_PPC_U32 		24
47 #define	R_PPC_U16 		25
48 #define	R_PPC_REL32 		26
49 #define	R_PPC_PLT32 		27
50 #define	R_PPC_PLTREL32 		28
51 #define	R_PPC_PLT16_LO 		29
52 #define	R_PPC_PLT16_HI 		30
53 #define	R_PPC_PLT16_HA 		31
54 #define	R_PPC_SDAREL 		32
55 
56 #define R_TYPE(name) 		__CONCAT(R_PPC_,name)
57