diff --git a/kernel-src/arch/x86-64/syscall.asm b/kernel-src/arch/x86-64/syscall.asm index 7940cf00..08012ebd 100644 --- a/kernel-src/arch/x86-64/syscall.asm +++ b/kernel-src/arch/x86-64/syscall.asm @@ -1,7 +1,9 @@ section .rodata +extern syscall_print syscalltab: +dq syscall_print -syscallcount equ 0 +syscallcount equ 1 section .text global arch_syscall_entry ; on entry: diff --git a/kernel-src/include/kernel/syscalls.h b/kernel-src/include/kernel/syscalls.h index 06030b42..9285b20f 100644 --- a/kernel-src/include/kernel/syscalls.h +++ b/kernel-src/include/kernel/syscalls.h @@ -2,6 +2,7 @@ #define _SYSCALLS_H #include +#include typedef struct { uint64_t ret; diff --git a/kernel-src/sys/syscalls/print.c b/kernel-src/sys/syscalls/print.c new file mode 100644 index 00000000..59f31855 --- /dev/null +++ b/kernel-src/sys/syscalls/print.c @@ -0,0 +1,11 @@ +#include +#include + +syscallret_t syscall_print(context_t *context, char *message) { + syscallret_t ret = { + .ret = 0, + .errno = 0 + }; + printf("%s\n", message); + return ret; +}