From 28d9ef04ddaa4cf32f3c63c976afdc535a36db98 Mon Sep 17 00:00:00 2001 From: kaashoek Date: Thu, 10 Aug 2006 01:28:57 +0000 Subject: printf convert userfs to use printf bfree ifree writei start on unlink --- syscall.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'syscall.c') diff --git a/syscall.c b/syscall.c index eb7ecf3..685fa46 100644 --- a/syscall.c +++ b/syscall.c @@ -330,6 +330,30 @@ sys_mknod(void) return 0; } +int +sys_unlink(void) +{ + struct proc *cp = curproc[cpu()]; + struct inode *ip; + uint arg0; + + if(fetcharg(0, &arg0) < 0) + return -1; + + if(checkstring(arg0) < 0) + return -1; + + ip = namei(cp->mem + arg0); + ip->nlink--; + if (ip->nlink <= 0) { + panic("sys_link: unimplemented\n"); + } + iupdate(ip); + iput(ip); + + return 0; +} + int sys_exec(void) { @@ -561,6 +585,9 @@ syscall(void) case SYS_mknod: ret = sys_mknod(); break; + case SYS_unlink: + ret = sys_unlink(); + break; default: cprintf("unknown sys call %d\n", num); // XXX fault -- cgit v1.2.3