xref: /netbsd-src/sys/arch/amd64/include/elf_machdep.h (revision dc2ac295848fdbeb08478f3a5bb113efa716e9ad)
1*dc2ac295Schristos /*	$NetBSD: elf_machdep.h,v 1.6 2017/11/06 03:47:45 christos Exp $	*/
2433b5ddeSmrg 
3d03d0225Scegger #if !defined __i386__
481918bf8Sfvdl 
581918bf8Sfvdl #define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
681918bf8Sfvdl #define	ELF32_MACHDEP_ID_CASES						\
781918bf8Sfvdl 		case EM_386:						\
881918bf8Sfvdl 			break;
981918bf8Sfvdl 
1081918bf8Sfvdl #define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2LSB
1181918bf8Sfvdl #define	ELF64_MACHDEP_ID_CASES						\
1281918bf8Sfvdl 		case EM_X86_64:						\
1381918bf8Sfvdl 			break;
1481918bf8Sfvdl 
1581918bf8Sfvdl #define	ELF32_MACHDEP_ID	EM_386
1681918bf8Sfvdl #define	ELF64_MACHDEP_ID	EM_X86_64
1781918bf8Sfvdl 
18*dc2ac295Schristos #define	KERN_ELFSIZE		64
1981918bf8Sfvdl #define ARCH_ELFSIZE		64	/* MD native binary size */
2081918bf8Sfvdl 
2181918bf8Sfvdl /* x86-64 relocations */
2281918bf8Sfvdl 
2381918bf8Sfvdl #define R_X86_64_NONE		0
2481918bf8Sfvdl #define R_X86_64_64		1
2581918bf8Sfvdl #define R_X86_64_PC32		2
2681918bf8Sfvdl #define R_X86_64_GOT32		3
2781918bf8Sfvdl #define R_X86_64_PLT32		4
2881918bf8Sfvdl #define R_X86_64_COPY		5
2981918bf8Sfvdl #define R_X86_64_GLOB_DAT	6
3081918bf8Sfvdl #define R_X86_64_JUMP_SLOT	7
3181918bf8Sfvdl #define R_X86_64_RELATIVE	8
3281918bf8Sfvdl #define R_X86_64_GOTPCREL	9
3381918bf8Sfvdl #define R_X86_64_32		10
3481918bf8Sfvdl #define R_X86_64_32S		11
3581918bf8Sfvdl #define R_X86_64_16		12
3681918bf8Sfvdl #define R_X86_64_PC16		13
3781918bf8Sfvdl #define R_X86_64_8		14
3881918bf8Sfvdl #define R_X86_64_PC8		15
3981918bf8Sfvdl 
40e0397662Sskrll /* TLS relocations */
41e0397662Sskrll #define R_X86_64_DTPMOD64	16
42e0397662Sskrll #define R_X86_64_DTPOFF64	17
43e0397662Sskrll #define R_X86_64_TPOFF64	18
44e0397662Sskrll #define R_X86_64_TLSGD		19
45e0397662Sskrll #define R_X86_64_TLSLD		20
46e0397662Sskrll #define R_X86_64_DTPOFF32	21
47e0397662Sskrll #define R_X86_64_GOTTPOFF	22
48e0397662Sskrll #define R_X86_64_TPOFF32	23
49e0397662Sskrll 
50a0e03720Schristos #define R_X86_64_PC64		24
51a0e03720Schristos #define R_X86_64_GOTOFF64	25
52a0e03720Schristos #define R_X86_64_GOTPC32	26
53a0e03720Schristos #define R_X86_64_GOT64		27
54a0e03720Schristos #define R_X86_64_GOTPCREL64	28
55a0e03720Schristos #define R_X86_64_GOTPC64	29
56a0e03720Schristos #define R_X86_64_GOTPLT64	30
57a0e03720Schristos #define R_X86_64_PLTOFF64	31
58a0e03720Schristos #define R_X86_64_SIZE32		32
59a0e03720Schristos #define R_X86_64_SIZE64		33
60a0e03720Schristos #define R_X86_64_GOTPC32_TLSDESC 34
61a0e03720Schristos #define R_X86_64_TLSDESC_CALL	35
62a0e03720Schristos #define R_X86_64_TLSDESC	36
63a0e03720Schristos #define R_X86_64_IRELATIVE	37
64a0e03720Schristos #define R_X86_64_RELATIVE64	38
65a0e03720Schristos #define R_X86_64_PC32_BND	39
66a0e03720Schristos #define R_X86_64_PLT32_BND	40
67a0e03720Schristos #define R_X86_64_GOTPCRELX	41
68a0e03720Schristos #define R_X86_64_REX_GOTPCRELX	42
69a0e03720Schristos 
7081918bf8Sfvdl #define	R_TYPE(name)	__CONCAT(R_X86_64_,name)
71433b5ddeSmrg 
72d03d0225Scegger #else	/*	!__i386__	*/
73433b5ddeSmrg 
74433b5ddeSmrg #include <i386/elf_machdep.h>
75433b5ddeSmrg 
76d03d0225Scegger #endif	/*	!__i386__	*/
77