hardware 0.0.9

A no_std bare-metal hardware abstraction layer — all port I/O, memory and swap allocations are guarded at runtime. Do not consider this dependency stable before x.1.x
Documentation
pub fn read_apic_base() -> u64 {
    unsafe { crate::arch::x86_64::msr::read_msr(0x1B) }
}

pub fn read_tsc_aux() -> u32 {
    unsafe { crate::arch::x86_64::msr::read_msr(0xC0000103) as u32 }
}

pub fn read_efer() -> u64 {
    unsafe { crate::arch::x86_64::msr::read_msr(0xC0000080) }
}

pub fn write_efer(val: u64) {
    unsafe { crate::arch::x86_64::msr::write_msr(0xC0000080, val) }
}

pub fn read_star() -> u64 {
    unsafe { crate::arch::x86_64::msr::read_msr(0xC0000081) }
}

pub fn read_lstar() -> u64 {
    unsafe { crate::arch::x86_64::msr::read_msr(0xC0000082) }
}

pub fn write_lstar(val: u64) {
    unsafe { crate::arch::x86_64::msr::write_msr(0xC0000082, val) }
}

pub fn read_pat() -> u64 {
    unsafe { crate::arch::x86_64::msr::read_msr(0x277) }
}