kernel

hobby kernel
git clone git://git.evenfri.xyz/kernel.git
Log | Files | Refs | README | LICENSE

syscall.c (427B)


      1 #include <dat.h>
      2 #include <fns.h>
      3 
      4 extern void syscall_asm();
      5 
      6 void syscall_init() {
      7   idt_register(0x80, syscall_asm);
      8 }
      9 
     10 int syscall_handler(int num, int arg1, int arg2,
     11     int arg3, int arg4, int arg5) {
     12   (void)arg4;
     13   (void)arg5;
     14   switch (num) {
     15     case sys_read:
     16       return vfs_read(arg1, (void*) arg2, arg3);
     17     case sys_write:
     18       return vfs_write(arg1, (void*) arg2, arg3);
     19     default:
     20       return -1;
     21   }
     22 }