shithub: drawcpu

ref: 07665995b1973c612a8874badec060114393fa4d
dir: /kern/syscall.c/

View raw version
#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;
}