Skip to main content

linux_syscalls/env/aux/
arm.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        SWP = 1 << 0,
7        HALF = 1 << 1,
8        THUMB = 1 << 2,
9        B26 = 1 << 3,
10        FAST_MULT = 1 << 4,
11        FPA = 1 << 5,
12        VFP = 1 << 6,
13        EDSP = 1 << 7,
14        JAVA = 1 << 8,
15        IWMMXT = 1 << 9,
16        CRUNCH = 1 << 10,
17        THUMBEE = 1 << 11,
18        NEON = 1 << 12,
19        #[allow(non_upper_case_globals)]
20        VFPv3 = 1 << 13,
21        #[allow(non_upper_case_globals)]
22        VFPv3D16 = 1 << 14,
23        TLS = 1 << 15,
24        #[allow(non_upper_case_globals)]
25        VFPv4 = 1 << 16,
26        IDIVA = 1 << 17,
27        IDIVT = 1 << 18,
28        VFPD32 = 1 << 19,
29        IDIV = Self::IDIVA.bits() | Self::IDIVT.bits(),
30        LPAE = 1 << 20,
31        EVTSTRM = 1 << 21,
32        FPHP = 1 << 22,
33        ASIMDHP = 1 << 23,
34        ASIMDDP = 1 << 24,
35        ASIMDFHM = 1 << 25,
36        ASIMDBF16 = 1 << 26,
37        I8MM = 1 << 27,
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        AES = 1 << 0,
52        PMULL = 1 << 1,
53        SHA1 = 1 << 2,
54        SHA2 = 1 << 3,
55        CRC32 = 1 << 4,
56        SB = 1 << 5,
57        SSBS = 1 << 6,
58    }
59
60    impl Sealed for Features2 {}
61    impl AuxValue for Features2 {
62        fn from(value: aux_t) -> Self {
63            (value as usize).into()
64        }
65    }
66}