kernel/arch/riscv64/trap/
mod.rs

1use core::arch::asm;
2
3use crate::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    println!("trapframe:\n{:#x?}", tf);
20    println!("cause: {}", cause);
21    println!("tval: 0x{:x}", tval);
22}