semx_processor 0.1.1

对应处理器相关的操作
Documentation
use core::arch::asm;

#[inline(always)]
pub(crate) fn arch_set_my_processor_id(id: usize) {
    unsafe {
        asm!(
            "msr tpidr_el0, {0}",
            in(reg) id
        );
    }
}

#[inline(always)]
pub(crate) fn arch_my_processor_id() -> usize {
    let id;
    unsafe {
        asm!(
            "mrs {0}, tpidr_el1",
            out(reg) id
        );
    }
    id
}

#[inline(always)]
pub(crate) fn arch_cpu_relax() {
    unsafe {
        core::arch::aarch64::__yield();
    }
}