| 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) |