Skip to main content

linux_syscalls/env/aux/
aarch64.rs

1use super::{aux_t, AuxValue, Sealed};
2
3crate::bitflags! {
4    #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
5    pub enum Features: usize {
6        FP = 1 << 0,
7        ASIMD = 1 << 1,
8        EVTSTRM = 1 << 2,
9        AES = 1 << 3,
10        PMULL = 1 << 4,
11        SHA1 = 1 << 5,
12        SHA2 = 1 << 6,
13        CRC32 = 1 << 7,
14        ATOMICS = 1 << 8,
15        FPHP = 1 << 9,
16        ASIMDHP = 1 << 10,
17        CPUID = 1 << 11,
18        ASIMDRDM = 1 << 12,
19        JSCVT = 1 << 13,
20        FCMA = 1 << 14,
21        LRCPC = 1 << 15,
22        DCPOP = 1 << 16,
23        SHA3 = 1 << 17,
24        SM3 = 1 << 18,
25        SM4 = 1 << 19,
26        ASIMDDP = 1 << 20,
27        SHA512 = 1 << 21,
28        SVE = 1 << 22,
29        ASIMDFHM = 1 << 23,
30        DIT = 1 << 24,
31        USCAT = 1 << 25,
32        ILRCPC = 1 << 26,
33        FLAGM = 1 << 27,
34        SSBS = 1 << 28,
35        SB = 1 << 29,
36        PACA = 1 << 30,
37        PACG = 1 << 31,
38    }
39
40    impl Sealed for Features {}
41    impl AuxValue for Features {
42        fn from(value: aux_t) -> Self {
43            (value as usize).into()
44        }
45    }
46}
47
48crate::bitflags! {
49    #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
50    pub enum Features2: usize {
51        DCPODP = 1 << 0,
52        SVE2 = 1 << 1,
53        SVEAES = 1 << 2,
54        SVEPMULL = 1 << 3,
55        SVEBITPERM = 1 << 4,
56        SVESHA3 = 1 << 5,
57        SVESM4 = 1 << 6,
58        FLAGM2 = 1 << 7,
59        FRINT = 1 << 8,
60        SVEI8MM = 1 << 9,
61        SVEF32MM = 1 << 10,
62        SVEF64MM = 1 << 11,
63        SVEBF16 = 1 << 12,
64        I8MM = 1 << 13,
65        BF16 = 1 << 14,
66        DGH = 1 << 15,
67        RNG = 1 << 16,
68        BTI = 1 << 17,
69        MTE = 1 << 18,
70        ECV = 1 << 19,
71        AFP = 1 << 20,
72        RPRES = 1 << 21,
73        MTE3 = 1 << 22,
74        SME = 1 << 23,
75        SME_I16I64 = 1 << 24,
76        SME_F64F64 = 1 << 25,
77        SME_I8I32 = 1 << 26,
78        SME_F16F32 = 1 << 27,
79        SME_B16F32 = 1 << 28,
80        SME_F32F32 = 1 << 29,
81        SME_FA64 = 1 << 30,
82        WFXT = 1 << 31,
83        EBF16 = 1 << 32,
84        SVE_EBF16 = 1 << 33,
85        CSSC = 1 << 34,
86        RPRFM = 1 << 35,
87        SVE2P1 = 1 << 36,
88        SME2 = 1 << 37,
89        SME2P1 = 1 << 38,
90        SME_I16I32 = 1 << 39,
91        SME_BI32I32 = 1 << 40,
92        SME_B16B16 = 1 << 41,
93        SME_F16F16 = 1 << 42,
94    }
95
96    impl Sealed for Features2 {}
97    impl AuxValue for Features2 {
98        fn from(value: aux_t) -> Self {
99            (value as usize).into()
100        }
101    }
102}