master
 1/*	$NetBSD: elf_machdep.h,v 1.9 2017/11/06 03:47:47 christos Exp $	*/
 2
 3#define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
 4#define	ELF32_MACHDEP_ID_CASES						\
 5		case EM_68K:						\
 6			break;
 7
 8#define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
 9#define	ELF64_MACHDEP_ID_CASES						\
10		/* no 64-bit ELF machine types supported */
11
12#define	ELF32_MACHDEP_ID	EM_68K
13
14/*
15 * Machine-dependent ELF flags.  These are defined by the GNU tools.
16 */
17#define	EF_CPU32	0x00810000
18#define	EF_M68000	0x01000000
19
20#define	KERN_ELFSIZE		32
21#define ARCH_ELFSIZE		32	/* MD native binary size */
22
23/* m68k relocation types */
24#define	R_68K_NONE	0
25#define	R_68K_32	1
26#define	R_68K_16	2
27#define	R_68K_8		3
28#define	R_68K_PC32	4
29#define	R_68K_PC16	5
30#define	R_68K_PC8	6
31#define	R_68K_GOT32	7
32#define	R_68K_GOT16	8
33#define	R_68K_GOT8	9
34#define	R_68K_GOT32O	10
35#define	R_68K_GOT16O	11
36#define	R_68K_GOT8O	12
37#define	R_68K_PLT32	13
38#define	R_68K_PLT16	14
39#define	R_68K_PLT8	15
40#define	R_68K_PLT32O	16
41#define	R_68K_PLT16O	17
42#define	R_68K_PLT8O	18
43#define	R_68K_COPY	19
44#define	R_68K_GLOB_DAT	20
45#define	R_68K_JMP_SLOT	21
46#define	R_68K_RELATIVE	22
47
48/* TLS relocations */
49#define R_68K_TLS_GD32		25
50#define R_68K_TLS_GD16		26
51#define R_68K_TLS_GD8		27
52#define R_68K_TLS_LDM32		28
53#define R_68K_TLS_LDM16		29
54#define R_68K_TLS_LDM8		30
55#define R_68K_TLS_LDO32		31
56#define R_68K_TLS_LDO16		32
57#define R_68K_TLS_LDO8		33
58#define R_68K_TLS_IE32		34
59#define R_68K_TLS_IE16		35
60#define R_68K_TLS_IE8		36
61#define R_68K_TLS_LE32		37
62#define R_68K_TLS_LE16		38
63#define R_68K_TLS_LE8		39
64#define R_68K_TLS_DTPMOD32	40
65#define R_68K_TLS_DTPREL32	41
66#define R_68K_TLS_TPREL32	42
67
68#define	R_TYPE(name)	__CONCAT(R_68K_,name)