kernel/arch/riscv64/trap/
mod.rs

1use core::arch::asm;
2
3use crate::{early_println, println};
4
5use super::Trapframe;
6
7pub mod interrupt;
8pub mod exception;
9pub mod kernel;
10pub mod user;
11
12pub fn print_traplog(tf: &Trapframe) {
13    let cause: usize;
14    let tval: usize;
15    unsafe {
16        asm!("csrr {}, scause", out(reg) cause);
17        asm!("csrr {}, stval", out(reg) tval);
18    }
19    early_println!("trapframe:\n{:#x?}", tf);
20    early_println!("cause: {}", cause);
21    early_println!("tval: 0x{:x}", tval);
22}