xref: /DragonOS/kernel/src/arch/riscv64/sched.rs (revision f049d1af01da7b92f312245ed411b22475b76065)
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()104fda81ceSLoGin pub 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