Home | History | Annotate | Line # | Download | only in include
elf_machdep.h revision 1.9
      1  1.9  drochner /* $NetBSD: elf_machdep.h,v 1.9 2001/11/01 12:54:35 drochner 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.7   thorpej  * Alpha ELF uses different (non-standard) definitions of Elf64_Sword
      8  1.7   thorpej  * and Elf64_Word.
      9  1.7   thorpej  */
     10  1.8   thorpej typedef	int64_t		Elf64_Sword;
     11  1.7   thorpej #define	ELF64_FSZ_SWORD	8
     12  1.8   thorpej typedef	uint64_t	Elf64_Word;
     13  1.7   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   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.2       cgd #define	R_TYPE(name)		__CONCAT(R_ALPHA_,name)
     60  1.9  drochner 
     61  1.9  drochner #endif /* _ALPHA_ELF_MACHDEP_H_ */
     62