1*dfc50e6fSjca /* $OpenBSD: elf.h,v 1.2 2024/07/21 16:46:57 jca Exp $ */ 2ef873df0Sjca 3ef873df0Sjca /* 4ef873df0Sjca * This file is in the public domain. 5ef873df0Sjca */ 6ef873df0Sjca 7ef873df0Sjca #ifndef _MACHINE_ELF_H_ 8ef873df0Sjca #define _MACHINE_ELF_H_ 9ef873df0Sjca 10ef873df0Sjca /* 11*dfc50e6fSjca * CPU Feature Attributes 12*dfc50e6fSjca * 13*dfc50e6fSjca * These are defined in the PowerPC ELF ABI for the AT_HWCAP vector, 14*dfc50e6fSjca * and are exported to userland via the elf_aux_info(3) function. 15ef873df0Sjca */ 16ef873df0Sjca 17*dfc50e6fSjca #ifdef _KERNEL 18*dfc50e6fSjca # define __HAVE_CPU_HWCAP 19*dfc50e6fSjca # define __HAVE_CPU_HWCAP2 20*dfc50e6fSjca extern unsigned long hwcap; 21*dfc50e6fSjca extern unsigned long hwcap2; 22*dfc50e6fSjca #endif /* _KERNEL */ 23*dfc50e6fSjca 24*dfc50e6fSjca #define PPC_FEATURE_32 0x80000000 /* Always true */ 25*dfc50e6fSjca #define PPC_FEATURE_64 0x40000000 /* Defined on a 64-bit CPU */ 26*dfc50e6fSjca #define PPC_FEATURE_601_INSTR 0x20000000 27*dfc50e6fSjca #define PPC_FEATURE_HAS_ALTIVEC 0x10000000 28*dfc50e6fSjca #define PPC_FEATURE_HAS_FPU 0x08000000 29*dfc50e6fSjca #define PPC_FEATURE_HAS_MMU 0x04000000 30*dfc50e6fSjca #define PPC_FEATURE_UNIFIED_CACHE 0x01000000 31*dfc50e6fSjca #define PPC_FEATURE_HAS_SPE 0x00800000 32*dfc50e6fSjca #define PPC_FEATURE_HAS_EFP_SINGLE 0x00400000 33*dfc50e6fSjca #define PPC_FEATURE_HAS_EFP_DOUBLE 0x00200000 34*dfc50e6fSjca #define PPC_FEATURE_NO_TB 0x00100000 35*dfc50e6fSjca #define PPC_FEATURE_POWER4 0x00080000 36*dfc50e6fSjca #define PPC_FEATURE_POWER5 0x00040000 37*dfc50e6fSjca #define PPC_FEATURE_POWER5_PLUS 0x00020000 38*dfc50e6fSjca #define PPC_FEATURE_CELL 0x00010000 39*dfc50e6fSjca #define PPC_FEATURE_BOOKE 0x00008000 40*dfc50e6fSjca #define PPC_FEATURE_SMT 0x00004000 41*dfc50e6fSjca #define PPC_FEATURE_ICACHE_SNOOP 0x00002000 42*dfc50e6fSjca #define PPC_FEATURE_ARCH_2_05 0x00001000 43*dfc50e6fSjca #define PPC_FEATURE_HAS_DFP 0x00000400 44*dfc50e6fSjca #define PPC_FEATURE_POWER6_EXT 0x00000200 45*dfc50e6fSjca #define PPC_FEATURE_ARCH_2_06 0x00000100 46*dfc50e6fSjca #define PPC_FEATURE_HAS_VSX 0x00000080 47*dfc50e6fSjca #define PPC_FEATURE_TRUE_LE 0x00000002 48*dfc50e6fSjca #define PPC_FEATURE_PPC_LE 0x00000001 49*dfc50e6fSjca 50*dfc50e6fSjca #define PPC_FEATURE2_ARCH_2_07 0x80000000 51*dfc50e6fSjca #define PPC_FEATURE2_HTM 0x40000000 52*dfc50e6fSjca #define PPC_FEATURE2_DSCR 0x20000000 53*dfc50e6fSjca #define PPC_FEATURE2_EBB 0x10000000 54*dfc50e6fSjca #define PPC_FEATURE2_ISEL 0x08000000 55*dfc50e6fSjca #define PPC_FEATURE2_TAR 0x04000000 56*dfc50e6fSjca #define PPC_FEATURE2_HAS_VEC_CRYPTO 0x02000000 57*dfc50e6fSjca #define PPC_FEATURE2_HTM_NOSC 0x01000000 58*dfc50e6fSjca #define PPC_FEATURE2_ARCH_3_00 0x00800000 59*dfc50e6fSjca #define PPC_FEATURE2_HAS_IEEE128 0x00400000 60*dfc50e6fSjca #define PPC_FEATURE2_DARN 0x00200000 61*dfc50e6fSjca #define PPC_FEATURE2_SCV 0x00100000 62*dfc50e6fSjca #define PPC_FEATURE2_HTM_NOSUSPEND 0x00080000 63*dfc50e6fSjca 64ef873df0Sjca #endif /* !_MACHINE_ELF_H_ */ 65