git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: added ability to identify process vm regions
[lunaix-os.git]
/
lunaix-os
/
kernel
/
asm
/
x86
/
interrupts.c
diff --git
a/lunaix-os/kernel/asm/x86/interrupts.c
b/lunaix-os/kernel/asm/x86/interrupts.c
index 8330bc263f1bb37b88bf56ff05b25ef7ecbad6d9..09bd1eb1409cfdcf18a78a64784739112f30107e 100644
(file)
--- a/
lunaix-os/kernel/asm/x86/interrupts.c
+++ b/
lunaix-os/kernel/asm/x86/interrupts.c
@@
-6,6
+6,7
@@
#include <lunaix/process.h>
#include <lunaix/sched.h>
#include <lunaix/mm/page.h>
#include <lunaix/process.h>
#include <lunaix/sched.h>
#include <lunaix/mm/page.h>
+#include <lunaix/mm/vmm.h>
LOG_MODULE("intr")
LOG_MODULE("intr")
@@
-42,6
+43,9
@@
intr_handler(isr_param* param)
cpu_lcr3(__kernel_ptd);
cpu_lcr3(__kernel_ptd);
+ // 将当前进程的页目录挂载到内核地址空间里(页目录挂载点#1),方便访问。
+ vmm_mount_pd(PD_MOUNT_1, __current->page_table);
+
isr_param *lparam = &__current->intr_ctx;
if (lparam->vector <= 255) {
isr_param *lparam = &__current->intr_ctx;
if (lparam->vector <= 255) {