diff options
author | Mole Shang <[email protected]> | 2024-02-11 14:41:35 +0800 |
---|---|---|
committer | Mole Shang <[email protected]> | 2024-02-11 14:41:35 +0800 |
commit | 48a5e34fcd07852b4a68825ce8e37feb6f6d04d7 (patch) | |
tree | b6ec41ca1889db0122d754b0083c7d1d87cb0818 /kernel/riscv.h | |
parent | 3673a2cdfb30e1e3936e695a3fb8adee74488d6b (diff) | |
download | xv6-labs-48a5e34fcd07852b4a68825ce8e37feb6f6d04d7.tar.gz xv6-labs-48a5e34fcd07852b4a68825ce8e37feb6f6d04d7.tar.bz2 xv6-labs-48a5e34fcd07852b4a68825ce8e37feb6f6d04d7.zip |
lab traps: finishtraps
Diffstat (limited to 'kernel/riscv.h')
-rw-r--r-- | kernel/riscv.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/riscv.h b/kernel/riscv.h index 33fa9ee..5ede50a 100644 --- a/kernel/riscv.h +++ b/kernel/riscv.h @@ -327,6 +327,15 @@ sfence_vma() asm volatile("sfence.vma zero, zero"); } +// read the frame pointer of currently executing func +static inline uint64 +r_fp() +{ + uint64 x; + asm volatile("mv %0, s0" : "=r" (x) ); + return x; +} + typedef uint64 pte_t; typedef uint64 *pagetable_t; // 512 PTEs |