aboutsummaryrefslogtreecommitdiff
path: root/src/core/syscall.c
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2021-04-12 10:13:21 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2021-04-12 10:13:21 +0200
commit39713a3736145483dd3310c3605f940ca34f05c3 (patch)
treed4dcdf0f3b667a5d706aa4b04501a71facf186bd /src/core/syscall.c
parent6edeba8fe208fb019aec00fdc72b97407a8078d3 (diff)
Refactoring
Diffstat (limited to 'src/core/syscall.c')
-rw-r--r--src/core/syscall.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/syscall.c b/src/core/syscall.c
new file mode 100644
index 0000000..300b7aa
--- /dev/null
+++ b/src/core/syscall.c
@@ -0,0 +1,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");
+ }
+} \ No newline at end of file