Home | History | Annotate | Line # | Download | only in include
      1  1.14    jkoshy /*	$NetBSD: elf_machdep.h,v 1.14 2025/02/11 12:27:58 jkoshy Exp $	*/
      2   1.1       cgd 
      3   1.7    kleink #define	ELF32_MACHDEP_ENDIANNESS	ELFDATA2LSB
      4   1.1       cgd #define	ELF32_MACHDEP_ID_CASES						\
      5   1.7    kleink 		case EM_386:						\
      6   1.7    kleink 		case EM_486:						\
      7   1.1       cgd 			break;
      8   1.1       cgd 
      9   1.2  christos #define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
     10   1.1       cgd #define	ELF64_MACHDEP_ID_CASES						\
     11   1.1       cgd 		/* no 64-bit ELF machine types supported */
     12   1.9   thorpej 
     13   1.9   thorpej #define	ELF32_MACHDEP_ID		EM_386
     14   1.8   minoura 
     15  1.13  christos #define	KERN_ELFSIZE		32
     16   1.8   minoura #define ARCH_ELFSIZE		32	/* MD native binary size */
     17   1.3   thorpej 
     18   1.3   thorpej /* i386 relocations */
     19   1.3   thorpej #define	R_386_NONE	0
     20   1.3   thorpej #define	R_386_32	1
     21   1.3   thorpej #define	R_386_PC32	2
     22   1.3   thorpej #define	R_386_GOT32	3
     23   1.3   thorpej #define	R_386_PLT32	4
     24   1.3   thorpej #define	R_386_COPY	5
     25   1.3   thorpej #define	R_386_GLOB_DAT	6
     26   1.5  christos #define	R_386_JMP_SLOT	7
     27  1.14    jkoshy #define	R_386_JUMP_SLOT	7 /* psABI spelling. */
     28   1.3   thorpej #define	R_386_RELATIVE	8
     29   1.3   thorpej #define	R_386_GOTOFF	9
     30   1.3   thorpej #define	R_386_GOTPC	10
     31  1.12  christos #define	R_386_32PLT	11
     32  1.10     skrll 
     33  1.10     skrll /* TLS relocations */
     34  1.10     skrll #define	R_386_TLS_TPOFF	14
     35  1.10     skrll #define	R_386_TLS_IE	15
     36  1.10     skrll #define	R_386_TLS_GOTIE	16
     37  1.10     skrll #define	R_386_TLS_LE	17
     38  1.10     skrll #define	R_386_TLS_GD	18
     39  1.10     skrll #define	R_386_TLS_LDM	19
     40  1.10     skrll 
     41   1.3   thorpej /* The following relocations are GNU extensions. */
     42   1.3   thorpej #define	R_386_16	20
     43   1.3   thorpej #define	R_386_PC16	21
     44   1.3   thorpej #define	R_386_8		22
     45   1.3   thorpej #define	R_386_PC8	23
     46   1.3   thorpej 
     47  1.10     skrll /* More TLS relocations */
     48  1.10     skrll #define	R_386_TLS_GD_32		24
     49  1.10     skrll #define	R_386_TLS_GD_PUSH	25
     50  1.10     skrll #define	R_386_TLS_GD_CALL	26
     51  1.10     skrll #define	R_386_TLS_GD_POP	27
     52  1.10     skrll #define	R_386_TLS_LDM_32	28
     53  1.10     skrll #define	R_386_TLS_LDM_PUSH	29
     54  1.10     skrll #define	R_386_TLS_LDM_CALL	30
     55  1.10     skrll #define	R_386_TLS_LDM_POP	31
     56  1.10     skrll #define	R_386_TLS_LDO_32	32
     57  1.10     skrll #define	R_386_TLS_IE_32		33
     58  1.10     skrll #define	R_386_TLS_LE_32		34
     59  1.10     skrll #define	R_386_TLS_DTPMOD32	35
     60  1.10     skrll #define	R_386_TLS_DTPOFF32	36
     61  1.10     skrll #define	R_386_TLS_TPOFF32	37
     62  1.11  christos 
     63  1.11  christos #define R_386_SIZE32		38
     64  1.11  christos 
     65  1.11  christos /* More TLS relocations */
     66  1.10     skrll #define	R_386_TLS_GOTDESC	39
     67  1.10     skrll #define	R_386_TLS_DESC_CALL	40
     68  1.10     skrll #define	R_386_TLS_DESC		41
     69  1.10     skrll 
     70  1.11  christos #define R_386_IRELATIVE		42
     71  1.11  christos #define R_386_GOT32X		43
     72  1.11  christos 
     73   1.3   thorpej #define	R_TYPE(name)	__CONCAT(R_386_,name)
     74