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