Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit 3164410

Browse files
authored
Merge pull request #1649 from redstar/hwcaps
Add more HWCAP_* constants to auxv.d
2 parents d168353 + 5ce2ebf commit 3164410

File tree

1 file changed

+61
-1
lines changed

1 file changed

+61
-1
lines changed

src/core/sys/linux/sys/auxv.d

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,50 @@ extern (C):
1313

1414
c_ulong getauxval(c_ulong type) nothrow pure @nogc @system;
1515

16-
version(PPC)
16+
version(ARM)
17+
{
18+
// See https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/arm/bits/hwcap.h
19+
20+
enum HWCAP_ARM_SWP = 1;
21+
enum HWCAP_ARM_HALF = 2;
22+
enum HWCAP_ARM_THUMB = 4;
23+
enum HWCAP_ARM_26BIT = 8;
24+
enum HWCAP_ARM_FAST_MULT = 16;
25+
enum HWCAP_ARM_FPA = 32;
26+
enum HWCAP_ARM_VFP = 64;
27+
enum HWCAP_ARM_EDSP = 128;
28+
enum HWCAP_ARM_JAVA = 256;
29+
enum HWCAP_ARM_IWMMXT = 512;
30+
enum HWCAP_ARM_CRUNCH = 1024;
31+
enum HWCAP_ARM_THUMBEE = 2048;
32+
enum HWCAP_ARM_NEON = 4096;
33+
enum HWCAP_ARM_VFPv3 = 8192;
34+
enum HWCAP_ARM_VFPv3D16 = 16384;
35+
enum HWCAP_ARM_TLS = 32768;
36+
enum HWCAP_ARM_VFPv4 = 65536;
37+
enum HWCAP_ARM_IDIVA = 131072;
38+
enum HWCAP_ARM_IDIVT = 262144;
39+
enum HWCAP_ARM_VFPD32 = 524288;
40+
enum HWCAP_ARM_LPAE = 1048576;
41+
enum HWCAP_ARM_EVTSTRM = 2097152;
42+
}
43+
else version(AArch64)
44+
{
45+
// See https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h
46+
47+
enum HWCAP_FP = 1;
48+
enum HWCAP_ASIMD = 2;
49+
enum HWCAP_EVTSTRM = 4;
50+
enum HWCAP_AES = 8;
51+
enum HWCAP_PMULL = 16;
52+
enum HWCAP_SHA1 = 32;
53+
enum HWCAP_SHA2 = 64;
54+
enum HWCAP_CRC32 = 128;
55+
enum HWCAP_ATOMICS = 256;
56+
enum HWCAP_FPHP = 512;
57+
enum HWCAP_ASIMDHP = 1024;
58+
}
59+
else version(PPC)
1760
{
1861
// See https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/powerpc/bits/hwcap.h
1962

@@ -161,3 +204,20 @@ else version(SPARC64)
161204
enum HWCAP_SPARC_CBCOND = 0x02000000;
162205
enum HWCAP_SPARC_CRYPTO = 0x04000000;
163206
}
207+
else version(SystemZ)
208+
{
209+
// See https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/s390/bits/hwcap.h
210+
211+
enum HWCAP_S390_ESAN3 = 1;
212+
enum HWCAP_S390_ZARCH = 2;
213+
enum HWCAP_S390_STFLE = 4;
214+
enum HWCAP_S390_MSA = 8;
215+
enum HWCAP_S390_LDISP = 16;
216+
enum HWCAP_S390_EIMM = 32;
217+
enum HWCAP_S390_DFP = 64;
218+
enum HWCAP_S390_HPAGE = 128;
219+
enum HWCAP_S390_ETF3EH = 256;
220+
enum HWCAP_S390_HIGH_GPRS = 512;
221+
enum HWCAP_S390_TE = 1024;
222+
enum HWCAP_S390_VX = 2048;
223+
}

0 commit comments

Comments
 (0)