1*f049d1afSLoGin use crate::{ 2*f049d1afSLoGin driver::clocksource::timer_riscv::riscv_sbi_timer_init_local, exception::InterruptArch, 3*f049d1afSLoGin sched::SchedArch, 4*f049d1afSLoGin }; 5*f049d1afSLoGin 6*f049d1afSLoGin use super::CurrentIrqArch; 75b59005fSLoGin 84fda81ceSLoGin /// 发起调度 94fda81ceSLoGin #[no_mangle] sched()104fda81ceSLoGinpub extern "C" fn sched() { 114fda81ceSLoGin unimplemented!("RiscV64::sched") 124fda81ceSLoGin } 135b59005fSLoGin 145b59005fSLoGin pub struct RiscV64SchedArch; 155b59005fSLoGin 165b59005fSLoGin impl SchedArch for RiscV64SchedArch { enable_sched_local()175b59005fSLoGin fn enable_sched_local() { 18*f049d1afSLoGin riscv_sbi_timer_init_local(); 19*f049d1afSLoGin unsafe { CurrentIrqArch::interrupt_enable() }; 205b59005fSLoGin } 215b59005fSLoGin disable_sched_local()225b59005fSLoGin fn disable_sched_local() { 235b59005fSLoGin todo!() 245b59005fSLoGin } 255b59005fSLoGin initial_setup_sched_local()26*f049d1afSLoGin fn initial_setup_sched_local() {} 275b59005fSLoGin } 28