linux: Add posix_spawnattr_{get, set}cgroup_np (BZ 26371)
[glibc.git] / sysdeps / unix / sysv / linux / powerpc / cpu-features.h
blobe5fce88e5eb83d256d14b92942393fdc9388fba1
1 /* Initialize cpu feature data. PowerPC version.
2 Copyright (C) 2017-2023 Free Software Foundation, Inc.
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU C Library; if not, see
16 <https://www.gnu.org/licenses/>. */
18 #ifndef __CPU_FEATURES_POWERPC_H
19 # define __CPU_FEATURES_POWERPC_H
21 #include <stdbool.h>
22 #include <sys/auxv.h>
24 struct cpu_features
26 bool use_cached_memopt;
27 unsigned long int hwcap;
28 unsigned long int hwcap2;
31 static const char hwcap_names[] = {
32 "4xxmac\0"
33 "altivec\0"
34 "arch_2_05\0"
35 "arch_2_06\0"
36 "archpmu\0"
37 "booke\0"
38 "cellbe\0"
39 "dfp\0"
40 "efpdouble\0"
41 "efpsingle\0"
42 "fpu\0"
43 "ic_snoop\0"
44 "mmu\0"
45 "notb\0"
46 "pa6t\0"
47 "power4\0"
48 "power5\0"
49 "power5+\0"
50 "power6x\0"
51 "ppc32\0"
52 "ppc601\0"
53 "ppc64\0"
54 "ppcle\0"
55 "smt\0"
56 "spe\0"
57 "true_le\0"
58 "ucache\0"
59 "vsx\0"
60 "arch_2_07\0"
61 "dscr\0"
62 "ebb\0"
63 "htm\0"
64 "htm-nosc\0"
65 "htm-no-suspend\0"
66 "isel\0"
67 "tar\0"
68 "vcrypto\0"
69 "arch_3_00\0"
70 "ieee128\0"
71 "darn\0"
72 "scv\0"
73 "arch_3_1\0"
74 "mma\0"
77 static const struct
79 unsigned int mask;
80 bool id;
81 } hwcap_tunables[] = {
82 /* AT_HWCAP tunable masks. */
83 { PPC_FEATURE_HAS_4xxMAC, 0 },
84 { PPC_FEATURE_HAS_ALTIVEC, 0 },
85 { PPC_FEATURE_ARCH_2_05, 0 },
86 { PPC_FEATURE_ARCH_2_06, 0 },
87 { PPC_FEATURE_PSERIES_PERFMON_COMPAT, 0 },
88 { PPC_FEATURE_BOOKE, 0 },
89 { PPC_FEATURE_CELL_BE, 0 },
90 { PPC_FEATURE_HAS_DFP, 0 },
91 { PPC_FEATURE_HAS_EFP_DOUBLE, 0 },
92 { PPC_FEATURE_HAS_EFP_SINGLE, 0 },
93 { PPC_FEATURE_HAS_FPU, 0 },
94 { PPC_FEATURE_ICACHE_SNOOP, 0 },
95 { PPC_FEATURE_HAS_MMU, 0 },
96 { PPC_FEATURE_NO_TB, 0 },
97 { PPC_FEATURE_PA6T, 0 },
98 { PPC_FEATURE_POWER4, 0 },
99 { PPC_FEATURE_POWER5, 0 },
100 { PPC_FEATURE_POWER5_PLUS, 0 },
101 { PPC_FEATURE_POWER6_EXT, 0 },
102 { PPC_FEATURE_32, 0 },
103 { PPC_FEATURE_601_INSTR, 0 },
104 { PPC_FEATURE_64, 0 },
105 { PPC_FEATURE_PPC_LE, 0 },
106 { PPC_FEATURE_SMT, 0 },
107 { PPC_FEATURE_HAS_SPE, 0 },
108 { PPC_FEATURE_TRUE_LE, 0 },
109 { PPC_FEATURE_UNIFIED_CACHE, 0 },
110 { PPC_FEATURE_HAS_VSX, 0 },
112 /* AT_HWCAP2 tunable masks. */
113 { PPC_FEATURE2_ARCH_2_07, 1 },
114 { PPC_FEATURE2_HAS_DSCR, 1 },
115 { PPC_FEATURE2_HAS_EBB, 1 },
116 { PPC_FEATURE2_HAS_HTM, 1 },
117 { PPC_FEATURE2_HTM_NOSC, 1 },
118 { PPC_FEATURE2_HTM_NO_SUSPEND, 1 },
119 { PPC_FEATURE2_HAS_ISEL, 1 },
120 { PPC_FEATURE2_HAS_TAR, 1 },
121 { PPC_FEATURE2_HAS_VEC_CRYPTO, 1 },
122 { PPC_FEATURE2_ARCH_3_00, 1 },
123 { PPC_FEATURE2_HAS_IEEE128, 1 },
124 { PPC_FEATURE2_DARN, 1 },
125 { PPC_FEATURE2_SCV, 1 },
126 { PPC_FEATURE2_ARCH_3_1, 1 },
127 { PPC_FEATURE2_MMA, 1 },
130 #endif /* __CPU_FEATURES_H */