Home | History | Annotate | Line # | Download | only in include
elf_machdep.h revision 1.12.18.1
      1  1.12.18.1  jdolecek /* $NetBSD: elf_machdep.h,v 1.12.18.1 2017/12/03 11:35:46 jdolecek Exp $ */
      2        1.9  drochner 
      3        1.9  drochner #ifndef	_ALPHA_ELF_MACHDEP_H_
      4        1.9  drochner #define	_ALPHA_ELF_MACHDEP_H_
      5        1.7   thorpej 
      6        1.7   thorpej /*
      7       1.12     skrll  * Alpha ELF uses different (non-standard) definitions for the symbol
      8       1.12     skrll  * hash table section.
      9        1.7   thorpej  */
     10       1.12     skrll #define	Elf_Symindx	uint64_t
     11        1.1       cgd 
     12        1.2       cgd #define	ELF32_MACHDEP_ENDIANNESS	XXX	/* break compilation */
     13        1.1       cgd #define	ELF32_MACHDEP_ID_CASES						\
     14        1.1       cgd 		/* no 32-bit ELF machine types supported */
     15        1.1       cgd 
     16        1.5    kleink #define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2LSB
     17        1.1       cgd #define	ELF64_MACHDEP_ID_CASES						\
     18        1.5    kleink 		case EM_ALPHA:						\
     19        1.5    kleink 		case EM_ALPHA_EXP:					\
     20        1.1       cgd 			break;
     21       1.10   thorpej 
     22       1.10   thorpej #define	ELF64_MACHDEP_ID	EM_ALPHA_EXP	/* XXX */
     23        1.6   minoura 
     24  1.12.18.1  jdolecek #define	KERN_ELFSIZE		64
     25        1.6   minoura #define ARCH_ELFSIZE		64	/* MD native binary size */
     26        1.2       cgd 
     27        1.2       cgd /*
     28        1.2       cgd  * Alpha Relocation Types
     29        1.2       cgd  */
     30        1.2       cgd #define	R_ALPHA_NONE		0	/* No reloc */
     31        1.2       cgd #define	R_ALPHA_REFLONG		1	/* Direct 32 bit */
     32        1.2       cgd #define	R_ALPHA_REFQUAD		2	/* Direct 64 bit */
     33        1.2       cgd #define	R_ALPHA_GPREL32		3	/* GP relative 32 bit */
     34        1.2       cgd #define	R_ALPHA_LITERAL		4	/* GP relative 16 bit w/optimization */
     35        1.2       cgd #define	R_ALPHA_LITUSE		5	/* Optimization hint for LITERAL */
     36        1.2       cgd #define	R_ALPHA_GPDISP		6	/* Add displacement to GP */
     37        1.2       cgd #define	R_ALPHA_BRADDR		7	/* PC+4 relative 23 bit shifted */
     38        1.2       cgd #define	R_ALPHA_HINT		8	/* PC+4 relative 16 bit shifted */
     39        1.2       cgd #define	R_ALPHA_SREL16		9	/* PC relative 16 bit */
     40        1.2       cgd #define	R_ALPHA_SREL32		10	/* PC relative 32 bit */
     41        1.2       cgd #define	R_ALPHA_SREL64		11	/* PC relative 64 bit */
     42        1.2       cgd #define	R_ALPHA_OP_PUSH		12	/* OP stack push */
     43        1.2       cgd #define	R_ALPHA_OP_STORE	13	/* OP stack pop and store */
     44        1.2       cgd #define	R_ALPHA_OP_PSUB		14	/* OP stack subtract */
     45        1.2       cgd #define	R_ALPHA_OP_PRSHIFT	15	/* OP stack right shift */
     46        1.2       cgd #define	R_ALPHA_GPVALUE		16
     47        1.2       cgd #define	R_ALPHA_GPRELHIGH	17
     48        1.2       cgd #define	R_ALPHA_GPRELLOW	18
     49        1.2       cgd #define	R_ALPHA_IMMED_GP_16	19
     50        1.2       cgd #define	R_ALPHA_IMMED_GP_HI32	20
     51        1.2       cgd #define	R_ALPHA_IMMED_SCN_HI32	21
     52        1.2       cgd #define	R_ALPHA_IMMED_BR_HI32	22
     53        1.2       cgd #define	R_ALPHA_IMMED_LO32	23
     54        1.2       cgd #define	R_ALPHA_COPY		24	/* Copy symbol at runtime */
     55        1.2       cgd #define	R_ALPHA_GLOB_DAT	25	/* Create GOT entry */
     56        1.2       cgd #define	R_ALPHA_JMP_SLOT	26	/* Create PLT entry */
     57        1.2       cgd #define	R_ALPHA_RELATIVE	27	/* Adjust by program base */
     58        1.2       cgd 
     59       1.11     skrll /* TLS relocations */
     60       1.11     skrll #define	R_ALPHA_TLS_GD		29
     61       1.11     skrll #define	R_ALPHA_TLSLDM		30
     62       1.11     skrll #define	R_ALPHA_DTPMOD64	31
     63       1.11     skrll #define	R_ALPHA_GOTDTPREL	32
     64       1.11     skrll #define	R_ALPHA_DTPREL64	33
     65       1.11     skrll #define	R_ALPHA_DTPRELHI	34
     66       1.11     skrll #define	R_ALPHA_DTPRELLO	35
     67       1.11     skrll #define	R_ALPHA_DTPREL16	36
     68       1.11     skrll #define	R_ALPHA_GOTTPREL	37
     69       1.11     skrll #define	R_ALPHA_TPREL64		38
     70       1.11     skrll #define	R_ALPHA_TPRELHI		39
     71       1.11     skrll #define	R_ALPHA_TPRELLO		40
     72       1.11     skrll #define	R_ALPHA_TPREL16		41
     73       1.11     skrll 
     74        1.2       cgd #define	R_TYPE(name)		__CONCAT(R_ALPHA_,name)
     75        1.9  drochner 
     76        1.9  drochner #endif /* _ALPHA_ELF_MACHDEP_H_ */
     77