#[derive(Copy, Clone)]
pub struct MemoryAffinityStructureFlags(u32);
impl MemoryAffinityStructureFlags {
pub const fn enabled(&self) -> bool {
self.0 & 0b001 != 0
}
pub const fn hot_pluggable(&self) -> bool {
self.0 & 0b010 != 0
}
pub const fn non_volatile(&self) -> bool {
self.0 & 0b100 != 0
}
}
#[derive(Copy, Clone)]
#[repr(C, packed)]
pub struct MemoryAffinity {
pub r#type: u8,
pub length: u8,
pub proximity_domain: u32,
reserved0: u16,
pub base_address_low: u32,
pub base_address_high: u32,
pub length_low: u32,
pub length_high: u32,
reserved1: u32,
pub flags: MemoryAffinityStructureFlags,
reserved2: u64,
}