1 /* $OpenBSD: exec.h,v 1.9 2013/06/02 16:40:20 guenther Exp $ */ 2 /* $NetBSD: elf_machdep.h,v 1.7 2001/02/11 00:18:49 eeh Exp $ */ 3 4 #define _KERN_DO_ELF64 5 #define _NLIST_DO_ELF 6 7 #define ARCH_ELFSIZE 64 /* MD native binary size */ 8 #define ELF_TARG_CLASS ELFCLASS64 9 #define ELF_TARG_MACH EM_SPARCV9 10 11 #define ELF_TARG_DATA ELFDATA2MSB 12 13 /* The following are what is used for AT_SUN_HWCAP: */ 14 #define AV_SPARC_HWMUL_32x32 1 /* 32x32-bit smul/umul is efficient */ 15 #define AV_SPARC_HWDIV_32x32 2 /* 32x32-bit sdiv/udiv is efficient */ 16 #define AV_SPARC_HWFSMULD 4 /* fsmuld is efficient */ 17 18 /* 19 * Here are some SPARC specific flags I can't 20 * find a better home for. They are used for AT_FLAGS 21 * and in the exec header. 22 */ 23 #define EF_SPARCV9_MM 0x3 24 #define EF_SPARCV9_TSO 0x0 25 #define EF_SPARCV9_PSO 0x1 26 #define EF_SPARCV9_RMO 0x2 27 28 #define EF_SPARC_32PLUS_MASK 0xffff00 /* bits indicating V8+ type */ 29 #define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */ 30 #define EF_SPARC_EXT_MASK 0xffff00 /* bits for vendor extensions */ 31 #define EF_SPARC_SUN_US1 0x000200 /* UltraSPARC 1 extensions */ 32 #define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */ 33 #define EF_SPARC_SUN_US3 0x000800 /* UltraSPARC 3 extensions */ 34 35 /* Relocation types */ 36 #define R_SPARC_NONE 0 37 #define R_SPARC_8 1 38 #define R_SPARC_16 2 39 #define R_SPARC_32 3 40 #define R_SPARC_DISP8 4 41 #define R_SPARC_DISP16 5 42 #define R_SPARC_DISP32 6 43 #define R_SPARC_WDISP30 7 44 #define R_SPARC_WDISP22 8 45 #define R_SPARC_HI22 9 46 #define R_SPARC_22 10 47 #define R_SPARC_13 11 48 #define R_SPARC_LO10 12 49 #define R_SPARC_GOT10 13 50 #define R_SPARC_GOT13 14 51 #define R_SPARC_GOT22 15 52 #define R_SPARC_PC10 16 53 #define R_SPARC_PC22 17 54 #define R_SPARC_WPLT30 18 55 #define R_SPARC_COPY 19 56 #define R_SPARC_GLOB_DAT 20 57 #define R_SPARC_JMP_SLOT 21 58 #define R_SPARC_RELATIVE 22 59 #define R_SPARC_UA32 23 60 #define R_SPARC_PLT32 24 61 #define R_SPARC_HIPLT22 25 62 #define R_SPARC_LOPLT10 26 63 #define R_SPARC_PCPLT32 27 64 #define R_SPARC_PCPLT22 28 65 #define R_SPARC_PCPLT10 29 66 #define R_SPARC_10 30 67 #define R_SPARC_11 31 68 #define R_SPARC_64 32 69 #define R_SPARC_OLO10 33 70 #define R_SPARC_HH22 34 71 #define R_SPARC_HM10 35 72 #define R_SPARC_LM22 36 73 #define R_SPARC_PC_HH22 37 74 #define R_SPARC_PC_HM10 38 75 #define R_SPARC_PC_LM22 39 76 #define R_SPARC_WDISP16 40 77 #define R_SPARC_WDISP19 41 78 #define R_SPARC_GLOB_JMP 42 79 #define R_SPARC_7 43 80 #define R_SPARC_5 44 81 #define R_SPARC_6 45 82 #define R_SPARC_DISP64 46 83 #define R_SPARC_PLT64 47 84 #define R_SPARC_HIX22 48 85 #define R_SPARC_LOX10 49 86 #define R_SPARC_H44 50 87 #define R_SPARC_M44 51 88 #define R_SPARC_L44 52 89 #define R_SPARC_REGISTER 53 90 #define R_SPARC_UA64 54 91 #define R_SPARC_UA16 55 92 #define R_SPARC_TLS_DTPMOD32 74 93 #define R_SPARC_TLS_DTPMOD64 75 94 #define R_SPARC_TLS_DTPOFF32 76 95 #define R_SPARC_TLS_DTPOFF64 77 96 #define R_SPARC_TLS_TPOFF32 78 97 #define R_SPARC_TLS_TPOFF64 79 98 99 100 #define R_TYPE(name) __CONCAT(R_SPARC_,name) 101 102 #define __LDPGSZ 8192 /* linker page size */ 103