aboutsummaryrefslogtreecommitdiff
path: root/src/core/syscall.c
blob: 300b7aab83e6eb1354772ced40c4db8f56031b98 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "syscall.h"
#include "gdt.h"
#include "libc/stdio.h"

void syscall(){
    int call_number;
    asm("movl %%eax, %0":"=m"(call_number));
    if(call_number==1){
        int msg_addr;
        asm("movl %%ebx, %0":"=m"(msg_addr));
        char *msg=(char*)msg_addr;
        print(msg);
    }
    else{
        print("Syscall ");
        printi(call_number);
        print(" unknown");
    }
}