xref: /netbsd-src/sys/arch/amd64/include/elf_machdep.h (revision dc2ac295848fdbeb08478f3a5bb113efa716e9ad)
1 /*	$NetBSD: elf_machdep.h,v 1.6 2017/11/06 03:47:45 christos Exp $	*/
2 
3 #if !defined __i386__
4 
5 #define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
6 #define	ELF32_MACHDEP_ID_CASES						\
7 		case EM_386:						\
8 			break;
9 
10 #define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2LSB
11 #define	ELF64_MACHDEP_ID_CASES						\
12 		case EM_X86_64:						\
13 			break;
14 
15 #define	ELF32_MACHDEP_ID	EM_386
16 #define	ELF64_MACHDEP_ID	EM_X86_64
17 
18 #define	KERN_ELFSIZE		64
19 #define ARCH_ELFSIZE		64	/* MD native binary size */
20 
21 /* x86-64 relocations */
22 
23 #define R_X86_64_NONE		0
24 #define R_X86_64_64		1
25 #define R_X86_64_PC32		2
26 #define R_X86_64_GOT32		3
27 #define R_X86_64_PLT32		4
28 #define R_X86_64_COPY		5
29 #define R_X86_64_GLOB_DAT	6
30 #define R_X86_64_JUMP_SLOT	7
31 #define R_X86_64_RELATIVE	8
32 #define R_X86_64_GOTPCREL	9
33 #define R_X86_64_32		10
34 #define R_X86_64_32S		11
35 #define R_X86_64_16		12
36 #define R_X86_64_PC16		13
37 #define R_X86_64_8		14
38 #define R_X86_64_PC8		15
39 
40 /* TLS relocations */
41 #define R_X86_64_DTPMOD64	16
42 #define R_X86_64_DTPOFF64	17
43 #define R_X86_64_TPOFF64	18
44 #define R_X86_64_TLSGD		19
45 #define R_X86_64_TLSLD		20
46 #define R_X86_64_DTPOFF32	21
47 #define R_X86_64_GOTTPOFF	22
48 #define R_X86_64_TPOFF32	23
49 
50 #define R_X86_64_PC64		24
51 #define R_X86_64_GOTOFF64	25
52 #define R_X86_64_GOTPC32	26
53 #define R_X86_64_GOT64		27
54 #define R_X86_64_GOTPCREL64	28
55 #define R_X86_64_GOTPC64	29
56 #define R_X86_64_GOTPLT64	30
57 #define R_X86_64_PLTOFF64	31
58 #define R_X86_64_SIZE32		32
59 #define R_X86_64_SIZE64		33
60 #define R_X86_64_GOTPC32_TLSDESC 34
61 #define R_X86_64_TLSDESC_CALL	35
62 #define R_X86_64_TLSDESC	36
63 #define R_X86_64_IRELATIVE	37
64 #define R_X86_64_RELATIVE64	38
65 #define R_X86_64_PC32_BND	39
66 #define R_X86_64_PLT32_BND	40
67 #define R_X86_64_GOTPCRELX	41
68 #define R_X86_64_REX_GOTPCRELX	42
69 
70 #define	R_TYPE(name)	__CONCAT(R_X86_64_,name)
71 
72 #else	/*	!__i386__	*/
73 
74 #include <i386/elf_machdep.h>
75 
76 #endif	/*	!__i386__	*/
77