diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-01-02 10:09:37 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-01-02 10:09:37 +0800 |
| commit | 1c8e37f63d413a559825020289178d442537449e (patch) | |
| tree | 9779a712b5eec91035272e7646eb6811979d7eab /src/kernel/trap/handler.cc | |
| parent | d8eaa13f2efc1eeca4e5f230d5a2d535aaf27338 (diff) | |
| download | lume-1c8e37f63d413a559825020289178d442537449e.tar.gz lume-1c8e37f63d413a559825020289178d442537449e.tar.xz | |
dev(sell): add simple libc and implement shell
please see the log for detail.
Diffstat (limited to 'src/kernel/trap/handler.cc')
| -rw-r--r-- | src/kernel/trap/handler.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/kernel/trap/handler.cc b/src/kernel/trap/handler.cc index c1626cc..3e73213 100644 --- a/src/kernel/trap/handler.cc +++ b/src/kernel/trap/handler.cc @@ -157,6 +157,12 @@ extern "C" void usertrap() } else if (scause == 15) // Store Page Fault { + uint64 pte = VM::walkaddr(p->pagetable, stval); + + // Drivers::uart_puts("[Debug] Faulting PTE:"); + // Drivers::print_hex(pte); + // Drivers::uart_puts("\n"); + if (VM::handle_cow_fault(p->pagetable, PGROUNDDOWN(stval)) != 0) { Drivers::uart_puts("usertrap: cow failed at "); |
