elf_machdep.h revision 1.10
11.10Schristos/*	$NetBSD: elf_machdep.h,v 1.10 2017/11/06 03:47:48 christos Exp $	*/
21.1Scgd
31.4Skleink#define ELF32_MACHDEP_ENDIANNESS	ELFDATA2MSB
41.1Scgd#define	ELF32_MACHDEP_ID_CASES						\
51.4Skleink		case EM_SPARC:						\
61.4Skleink		case EM_SPARC32PLUS:					\
71.1Scgd			break;
81.1Scgd
91.8Smartin#define	ELF64_MACHDEP_ENDIANNESS	XXX	/* break compilation */
101.1Scgd#define	ELF64_MACHDEP_ID_CASES						\
111.1Scgd		/* no 64-bit ELF machine types supported */
121.6Sthorpej
131.8Smartin#define	ELF32_MACHDEP_ID	EM_SPARC
141.5Sminoura
151.10Schristos#define	KERN_ELFSIZE		32
161.5Sminoura#define ARCH_ELFSIZE		32	/* MD native binary size */
171.2Stv
181.2Stv#define R_SPARC_NONE		0
191.2Stv#define R_SPARC_8		1
201.2Stv#define R_SPARC_16		2
211.2Stv#define R_SPARC_32		3
221.2Stv#define R_SPARC_DISP8		4
231.2Stv#define R_SPARC_DISP16		5
241.2Stv#define R_SPARC_DISP32		6
251.2Stv#define R_SPARC_WDISP30		7
261.2Stv#define R_SPARC_WDISP22		8
271.2Stv#define R_SPARC_HI22		9
281.2Stv#define R_SPARC_22		10
291.2Stv#define R_SPARC_13		11
301.2Stv#define R_SPARC_LO10		12
311.2Stv#define R_SPARC_GOT10		13
321.2Stv#define R_SPARC_GOT13		14
331.2Stv#define R_SPARC_GOT22		15
341.2Stv#define R_SPARC_PC10		16
351.2Stv#define R_SPARC_PC22		17
361.2Stv#define R_SPARC_WPLT30		18
371.2Stv#define R_SPARC_COPY		19
381.2Stv#define R_SPARC_GLOB_DAT	20
391.2Stv#define R_SPARC_JMP_SLOT	21
401.2Stv#define R_SPARC_RELATIVE	22
411.2Stv#define R_SPARC_UA32		23
421.2Stv#define R_SPARC_PLT32		24
431.2Stv#define R_SPARC_HIPLT22		25
441.2Stv#define R_SPARC_LOPLT10		26
451.2Stv#define R_SPARC_PCPLT32		27
461.2Stv#define R_SPARC_PCPLT22		28
471.2Stv#define R_SPARC_PCPLT10		29
481.2Stv#define R_SPARC_10		30
491.2Stv#define R_SPARC_11		31
501.2Stv#define R_SPARC_64		32
511.2Stv#define R_SPARC_OLO10		33
521.2Stv#define R_SPARC_HH22		34
531.2Stv#define R_SPARC_HM10		35
541.2Stv#define R_SPARC_LM22		36
551.2Stv#define R_SPARC_PC_HH22		37
561.2Stv#define R_SPARC_PC_HM10		38
571.2Stv#define R_SPARC_PC_LM22		39
581.2Stv#define R_SPARC_WDISP16		40
591.2Stv#define R_SPARC_WDISP19		41
601.2Stv#define R_SPARC_GLOB_JMP	42
611.2Stv#define R_SPARC_7		43
621.2Stv#define R_SPARC_5		44
631.2Stv#define R_SPARC_6		45
641.2Stv
651.7Sskrll/* TLS relocations */
661.7Sskrll#define R_SPARC_TLS_GD_HI22	56
671.7Sskrll#define R_SPARC_TLS_GD_LO10	57
681.7Sskrll#define R_SPARC_TLS_GD_ADD	58
691.7Sskrll#define R_SPARC_TLS_GD_CALL	59
701.7Sskrll#define R_SPARC_TLS_LDM_HI22	60
711.7Sskrll#define R_SPARC_TLS_LDM_LO10	61
721.7Sskrll#define R_SPARC_TLS_LDM_ADD	62
731.7Sskrll#define R_SPARC_TLS_LDM_CALL	63
741.7Sskrll#define R_SPARC_TLS_LDO_HIX22	64
751.7Sskrll#define R_SPARC_TLS_LDO_LOX10	65
761.7Sskrll#define R_SPARC_TLS_LDO_ADD	66
771.7Sskrll#define R_SPARC_TLS_IE_HI22	67
781.7Sskrll#define R_SPARC_TLS_IE_LO10	68
791.7Sskrll#define R_SPARC_TLS_IE_LD	69
801.7Sskrll#define R_SPARC_TLS_IE_LDX	70
811.7Sskrll#define R_SPARC_TLS_IE_ADD	71
821.7Sskrll#define R_SPARC_TLS_LE_HIX22	72
831.7Sskrll#define R_SPARC_TLS_LE_LOX10	73
841.7Sskrll#define R_SPARC_TLS_DTPMOD32	74
851.7Sskrll#define R_SPARC_TLS_DTPMOD64	75
861.7Sskrll#define R_SPARC_TLS_DTPOFF32	76
871.7Sskrll#define R_SPARC_TLS_DTPOFF64	77
881.7Sskrll#define R_SPARC_TLS_TPOFF32	78
891.7Sskrll#define R_SPARC_TLS_TPOFF64	79
901.7Sskrll
911.9Sjoerg#define R_SPARC_JMP_IREL	248
921.9Sjoerg#define R_SPARC_IRELATIVE	249
931.9Sjoerg
941.2Stv#define R_TYPE(name)		__CONCAT(R_SPARC_,name)
95