summaryrefslogtreecommitdiff
path: root/kernel/sysproc.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2019-09-10 12:30:10 -0400
committerFrans Kaashoek <[email protected]>2019-09-10 12:30:10 -0400
commit7e6c37e67e6da62e02089fc3292569103b7e94b3 (patch)
tree8b3f2e762f1f0a32a4641d240d30b155af6ab34a /kernel/sysproc.c
parent035cca95fe87c67ee1e33b9edfb2d87e24476fa8 (diff)
downloadxv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.tar.gz
xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.tar.bz2
xv6-labs-7e6c37e67e6da62e02089fc3292569103b7e94b3.zip
Support exit status for exit/wait
One test case for returning a exit status Passes usertests, but haven't used it to simplify tests
Diffstat (limited to 'kernel/sysproc.c')
-rw-r--r--kernel/sysproc.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/kernel/sysproc.c b/kernel/sysproc.c
index face81a..e8bcda9 100644
--- a/kernel/sysproc.c
+++ b/kernel/sysproc.c
@@ -10,7 +10,10 @@
uint64
sys_exit(void)
{
- exit();
+ int n;
+ if(argint(0, &n) < 0)
+ return -1;
+ exit(n);
return 0; // not reached
}
@@ -29,7 +32,10 @@ sys_fork(void)
uint64
sys_wait(void)
{
- return wait();
+ uint64 p;
+ if(argaddr(0, &p) < 0)
+ return -1;
+ return wait(p);
}
uint64