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