Home | History | Annotate | Line # | Download | only in include
elf_machdep.h revision 1.6.8.1
      1  1.6.8.1  thorpej /* $NetBSD: elf_machdep.h,v 1.6.8.1 2002/01/10 19:37:05 thorpej Exp $ */
      2  1.6.8.1  thorpej 
      3  1.6.8.1  thorpej #ifndef	_ALPHA_ELF_MACHDEP_H_
      4  1.6.8.1  thorpej #define	_ALPHA_ELF_MACHDEP_H_
      5  1.6.8.1  thorpej 
      6  1.6.8.1  thorpej /*
      7  1.6.8.1  thorpej  * Alpha ELF uses different (non-standard) definitions of Elf64_Sword
      8  1.6.8.1  thorpej  * and Elf64_Word.
      9  1.6.8.1  thorpej  */
     10  1.6.8.1  thorpej typedef	int64_t		Elf64_Sword;
     11  1.6.8.1  thorpej #define	ELF64_FSZ_SWORD	8
     12  1.6.8.1  thorpej typedef	uint64_t	Elf64_Word;
     13  1.6.8.1  thorpej #define	ELF64_FSZ_WORD	8
     14      1.1      cgd 
     15      1.2      cgd #define	ELF32_MACHDEP_ENDIANNESS	XXX	/* break compilation */
     16      1.1      cgd #define	ELF32_MACHDEP_ID_CASES						\
     17      1.1      cgd 		/* no 32-bit ELF machine types supported */
     18      1.1      cgd 
     19      1.5   kleink #define	ELF64_MACHDEP_ENDIANNESS	ELFDATA2LSB
     20      1.1      cgd #define	ELF64_MACHDEP_ID_CASES						\
     21      1.5   kleink 		case EM_ALPHA:						\
     22      1.5   kleink 		case EM_ALPHA_EXP:					\
     23      1.1      cgd 			break;
     24      1.6  minoura 
     25  1.6.8.1  thorpej #define	ELF64_MACHDEP_ID	EM_ALPHA_EXP	/* XXX */
     26  1.6.8.1  thorpej 
     27      1.6  minoura #define ARCH_ELFSIZE		64	/* MD native binary size */
     28      1.2      cgd 
     29      1.2      cgd /*
     30      1.2      cgd  * Alpha Relocation Types
     31      1.2      cgd  */
     32      1.2      cgd #define	R_ALPHA_NONE		0	/* No reloc */
     33      1.2      cgd #define	R_ALPHA_REFLONG		1	/* Direct 32 bit */
     34      1.2      cgd #define	R_ALPHA_REFQUAD		2	/* Direct 64 bit */
     35      1.2      cgd #define	R_ALPHA_GPREL32		3	/* GP relative 32 bit */
     36      1.2      cgd #define	R_ALPHA_LITERAL		4	/* GP relative 16 bit w/optimization */
     37      1.2      cgd #define	R_ALPHA_LITUSE		5	/* Optimization hint for LITERAL */
     38      1.2      cgd #define	R_ALPHA_GPDISP		6	/* Add displacement to GP */
     39      1.2      cgd #define	R_ALPHA_BRADDR		7	/* PC+4 relative 23 bit shifted */
     40      1.2      cgd #define	R_ALPHA_HINT		8	/* PC+4 relative 16 bit shifted */
     41      1.2      cgd #define	R_ALPHA_SREL16		9	/* PC relative 16 bit */
     42      1.2      cgd #define	R_ALPHA_SREL32		10	/* PC relative 32 bit */
     43      1.2      cgd #define	R_ALPHA_SREL64		11	/* PC relative 64 bit */
     44      1.2      cgd #define	R_ALPHA_OP_PUSH		12	/* OP stack push */
     45      1.2      cgd #define	R_ALPHA_OP_STORE	13	/* OP stack pop and store */
     46      1.2      cgd #define	R_ALPHA_OP_PSUB		14	/* OP stack subtract */
     47      1.2      cgd #define	R_ALPHA_OP_PRSHIFT	15	/* OP stack right shift */
     48      1.2      cgd #define	R_ALPHA_GPVALUE		16
     49      1.2      cgd #define	R_ALPHA_GPRELHIGH	17
     50      1.2      cgd #define	R_ALPHA_GPRELLOW	18
     51      1.2      cgd #define	R_ALPHA_IMMED_GP_16	19
     52      1.2      cgd #define	R_ALPHA_IMMED_GP_HI32	20
     53      1.2      cgd #define	R_ALPHA_IMMED_SCN_HI32	21
     54      1.2      cgd #define	R_ALPHA_IMMED_BR_HI32	22
     55      1.2      cgd #define	R_ALPHA_IMMED_LO32	23
     56      1.2      cgd #define	R_ALPHA_COPY		24	/* Copy symbol at runtime */
     57      1.2      cgd #define	R_ALPHA_GLOB_DAT	25	/* Create GOT entry */
     58      1.2      cgd #define	R_ALPHA_JMP_SLOT	26	/* Create PLT entry */
     59      1.2      cgd #define	R_ALPHA_RELATIVE	27	/* Adjust by program base */
     60      1.2      cgd 
     61      1.2      cgd #define	R_TYPE(name)		__CONCAT(R_ALPHA_,name)
     62  1.6.8.1  thorpej 
     63  1.6.8.1  thorpej #endif /* _ALPHA_ELF_MACHDEP_H_ */
     64