diff --git a/include/sys/debug.h b/include/sys/debug.h new file mode 100644 index 0000000..f1246ed --- /dev/null +++ b/include/sys/debug.h @@ -0,0 +1,3 @@ +#pragma once + +void ygg_debug_trace(const char *msg, ...); diff --git a/src/sys/debug.c b/src/sys/debug.c new file mode 100644 index 0000000..5c55303 --- /dev/null +++ b/src/sys/debug.c @@ -0,0 +1,19 @@ +#include <_libc/syscalls.h> +#include +#include +#include +#include +#include + +void ygg_debug_trace(const char *fmt, ...) { + uintptr_t a0, a1, a2, a3, a4; + va_list args; + va_start(args, fmt); + a0 = va_arg(args, uintptr_t); + a1 = va_arg(args, uintptr_t); + a2 = va_arg(args, uintptr_t); + a3 = va_arg(args, uintptr_t); + a4 = va_arg(args, uintptr_t); + va_end(args); + __syscall6(SYSCALL_NRX_TRACE, (long) fmt, a0, a1, a2, a3, a4); +}