ref: 6d3e368f2d0796e366d2df8ed56e3b6fe0c42182
dir: /kern/syscall.c/
#include "u.h"
#include "lib.h"
#include "dat.h"
#include "fns.h"
#include "error.h"
#include "user.h"
long
sysintercept(void* r0, void* r1, void* r2, void* r3, void* r4, void* r5, void* r6)
{
print("Interception %d\n", r0);
long ret = -1;
switch((int)r0){
case 0: /* SYSR1 */
ret = 0;
break;
case 1: /* _ERRSTR */
ret = errstr((char*)r1, 64);
break;
case 2: /* BIND */
ret = bind((char*) r1, (char*)r2, (int) r3);
break;
case 3: /* CHDIR */
ret = chdir((char *)r1);
break;
case 4: /* CLOSE */
ret = close((int)r1);
break;
case 5: /* DUP */
ret = dup((int)r1, (int)r2);
break;
case 6: /* ALARM */
ret = alarm((int) r1);
break;
case 7: /* EXEC */
ret = exec((int) r1, (char**)r2);
break;
case 8: /* EXITS */
exits((char*)r1);
ret = 0;
break;
case 9: /* _FSESSION */
//ret = fsession();
break;
case 10: /* FAUTH */
// ret = fauth();
break;
case 11: /* _FSTAT */
ret = fstat((int) r1, (char*) r2, (int)r3);
break;
case 12: /* SEGBRK */
case 13: /* _MOUNT */
case 14: /* OPEN */
case 15: /* _READ */
case 16: /* OSEEK */
case 17: /* SLEEP */
case 18: /* _STAT */
case 19: /* RFORK */
case 20: /* _WRITE */
case 21: /* PIPE */
case 22: /* CREATE */
case 23: /* FD2PATH */
case 24: /* BRK_ */
case 25: /* REMOVE */
case 26: /* _WSTAT */
case 27: /* _FWSAT */
case 28: /* NOTIFY */
case 29: /* NOTED */
case 30: /* SEGATTACH */
case 31: /* SEGDETACH */
case 32: /* SEGFREE */
case 33: /* SEGFLUSH */
case 34: /* RENDEZVOUS */
case 35: /* UNMOUNT */
case 36: /* _WAIT */
case 37: /* SEMACQUIRE */
case 38: /* SEMRELEASE */
case 39: /* SEEK */
case 40: /* FVERSION */
case 41: /* ERRSTR */
case 42: /* STAT */
case 43: /* FSTAT */
case 44: /* WSTAT */
case 45: /* FWSTAT */
case 46: /* MOUNT */
case 47: /* AWAIT */
case 50: /* PREAD */
case 51: /* PWRITE */
case 52: /* TSEMACQUIRE */
case 53: /* _NSEC */
break;
}
return ret;
}