use zerocopy::{Immutable, IntoBytes};
#[derive(Clone, Copy, PartialEq, Eq, IntoBytes, Immutable)]
#[allow(non_camel_case_types, unused)]
#[repr(usize)]
pub enum AuxType {
NULL = 0,
IGNORE = 1,
EXECFD = 2,
PHDR = 3,
PHENT = 4,
PHNUM = 5,
PAGESZ = 6,
BASE = 7,
FLAGS = 8,
ENTRY = 9,
NOTELF = 10,
UID = 11,
EUID = 12,
GID = 13,
EGID = 14,
PLATFORM = 15,
HWCAP = 16,
CLKTCK = 17,
FPUCW = 18,
DCACHEBSIZE = 19,
ICACHEBSIZE = 20,
UCACHEBSIZE = 21,
IGNOREPPC = 22,
SECURE = 23,
BASE_PLATFORM = 24,
RANDOM = 25,
HWCAP2 = 26,
EXECFN = 31,
SYSINFO = 32,
SYSINFO_EHDR = 33,
L1I_CACHESHAPE = 34,
L1D_CACHESHAPE = 35,
L2_CACHESHAPE = 36,
L3_CACHESHAPE = 37,
L1I_CACHESIZE = 40,
L1I_CACHEGEOMETRY = 41,
L1D_CACHESIZE = 42,
L1D_CACHEGEOMETRY = 43,
L2_CACHESIZE = 44,
L2_CACHEGEOMETRY = 45,
L3_CACHESIZE = 46,
L3_CACHEGEOMETRY = 47,
MINSIGSTKSZ = 51,
}
#[derive(Clone, Copy, IntoBytes, Immutable)]
#[repr(C)]
pub struct AuxEntry {
auxv_type: AuxType,
auxv_val: usize,
}
impl AuxEntry {
pub fn new(auxv_type: AuxType, auxv_val: usize) -> Self {
Self {
auxv_type,
auxv_val,
}
}
pub fn get_type(&self) -> AuxType {
self.auxv_type
}
pub fn value(&self) -> usize {
self.auxv_val
}
pub fn value_mut_ref(&mut self) -> &mut usize {
&mut self.auxv_val
}
}