diff options
Diffstat (limited to 'src/lib/libkogata/syscall.c')
-rw-r--r-- | src/lib/libkogata/syscall.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lib/libkogata/syscall.c b/src/lib/libkogata/syscall.c index 234b9ff..dc7e648 100644 --- a/src/lib/libkogata/syscall.c +++ b/src/lib/libkogata/syscall.c @@ -1,10 +1,21 @@ #include <debug.h> #include <syscall.h> +#include <string.h> + void dbg_print(const char* str) { - // TODO + + char buf[256]; + strncpy(buf, str, 256); + buf[255] = 0; + + asm volatile("int $0x40"::"a"(SC_DBG_PRINT),"b"(buf)); } void yield() { - // TODO + asm volatile("int $0x40"::"a"(SC_YIELD)); +} + +void exit(int code) { + asm volatile("int $0x40"::"a"(SC_EXIT),"b"(code)); } |