summaryrefslogtreecommitdiff
path: root/kernel/old/isrs.S
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/old/isrs.S')
-rw-r--r--kernel/old/isrs.S18
1 files changed, 7 insertions, 11 deletions
diff --git a/kernel/old/isrs.S b/kernel/old/isrs.S
index f5fdbca..f6bd662 100644
--- a/kernel/old/isrs.S
+++ b/kernel/old/isrs.S
@@ -19,8 +19,6 @@
# .arch i386
#include <bootstrap.h>
-#include <offsets.h>
-#include <vm.h>
/*
** Configuration options - define in Makefile
@@ -102,8 +100,8 @@ isr_save:
**
** Set up parameters for the ISR call.
*/
- movl CTX_vector(%esp),%eax // get vector number and error code
- movl CTX_code(%esp),%ebx
+ movl 52(%esp),%eax // get vector number and error code
+ movl 56(%esp),%ebx
/*
***********************
@@ -122,12 +120,11 @@ isr_save:
// save the context pointer
movl current, %edx
- movl %esp, PCB_context(%edx)
+ movl %esp, (%edx)
// also save the page directory pointer
movl %cr3, %ecx
- addl $KERN_BASE, %ecx // convert to a virtual address
- movl %ecx, PCB_pdir(%edx)
+ movl %ecx, 4(%edx)
// switch to the system stack
//
@@ -169,9 +166,8 @@ isr_restore:
***********************
*/
movl current, %ebx // return to the user stack
- movl PCB_context(%ebx), %esp // ESP --> context save area
- movl PCB_pdir(%ebx), %ecx // page directory pointer
- subl $KERN_BASE, %ecx // convert to a physical address
+ movl (%ebx), %esp // ESP --> context save area
+ movl 4(%ebx), %ecx // page directory pointer
movl %ecx, %cr3
// now we're operating with the user process'
@@ -187,7 +183,7 @@ isr_restore:
/*
** DEBUGGING CODE PART 1
**
-** This code will execute during each context restore, and
+** This code will execute during each context restore, and
** should be modified to print out whatever debugging information
** is desired.
**