LoGin 8cb2e9b344
重写SMP模块 (#633)
* 修复cpumask的迭代器的错误。

* 能进系统(AP核心还没有初始化自身)

* 初始化ap core

* 修改percpu

* 删除无用的cpu.c

* riscv64编译通过
2024-03-21 19:19:32 +08:00

16 lines
343 B
Rust

use crate::time::TimeArch;
use super::driver::tsc::TSCManager;
pub struct X86_64TimeArch;
impl TimeArch for X86_64TimeArch {
fn get_cycles() -> usize {
unsafe { x86::time::rdtsc() as usize }
}
fn cal_expire_cycles(ns: usize) -> usize {
Self::get_cycles() + ns * TSCManager::cpu_khz() as usize / 1000000
}
}