summaryrefslogtreecommitdiff
path: root/trapasm.S
diff options
context:
space:
mode:
authorrsc <rsc>2006-07-16 01:15:28 +0000
committerrsc <rsc>2006-07-16 01:15:28 +0000
commit65bd8e139a8368e987455a10ec59dd7b079b3af1 (patch)
tree8ce996135fadab4abde8acf5a6ed4eb69d463c60 /trapasm.S
parent40a2a08319511fd157d2d77eefbda52423cc81ec (diff)
downloadxv6-labs-65bd8e139a8368e987455a10ec59dd7b079b3af1.tar.gz
xv6-labs-65bd8e139a8368e987455a10ec59dd7b079b3af1.tar.bz2
xv6-labs-65bd8e139a8368e987455a10ec59dd7b079b3af1.zip
New scheduler.
Removed cli and sti stack in favor of tracking number of locks held on each CPU and explicit conditionals in spinlock.c.
Diffstat (limited to 'trapasm.S')
-rw-r--r--trapasm.S12
1 files changed, 9 insertions, 3 deletions
diff --git a/trapasm.S b/trapasm.S
index 2608328..e0e27be 100644
--- a/trapasm.S
+++ b/trapasm.S
@@ -1,8 +1,10 @@
#include "mmu.h"
.text
- .globl alltraps
- .globl trap
+.globl trap
+.globl trapret1
+
+.globl alltraps
alltraps:
/* vectors.S sends all traps here */
pushl %ds # build
@@ -16,11 +18,11 @@ alltraps:
addl $4, %esp
# return falls through to trapret...
- .globl trapret
/*
* a forked process RETs here
* expects ESP to point to a Trapframe
*/
+.globl trapret
trapret:
popal
popl %es
@@ -28,6 +30,10 @@ trapret:
addl $0x8, %esp /* trapno and errcode */
iret
+.globl forkret
+forkret:
+ call forkret1
+ jmp trapret
.globl acpu
acpu: