os/arch/riscv/kernel/
mod.rs

1//! RISC-V 架构相关的内核模块
2use core::arch::global_asm;
3
4use crate::arch::kernel::context::Context;
5
6pub mod context;
7pub mod cpu;
8pub mod task;
9
10global_asm!(include_str!("switch.S"));
11
12unsafe extern "C" {
13    /// 上下文切换函数
14    ///
15    /// 保存当前任务的寄存器状态到 old 指向的 context 结构体中,
16    /// 然后从 new 指向的 context 结构体中恢复寄存器状态,切换到新任务执行。
17    pub unsafe fn switch(old: *mut Context, new: *const Context);
18}