time.rs 343 B

123456789101112131415
  1. use crate::time::TimeArch;
  2. use super::driver::tsc::TSCManager;
  3. pub struct X86_64TimeArch;
  4. impl TimeArch for X86_64TimeArch {
  5. fn get_cycles() -> usize {
  6. unsafe { x86::time::rdtsc() as usize }
  7. }
  8. fn cal_expire_cycles(ns: usize) -> usize {
  9. Self::get_cycles() + ns * TSCManager::cpu_khz() as usize / 1000000
  10. }
  11. }