Luna/libc/src/unistd.cpp
apio 129e3c434a
Some checks failed
continuous-integration/drone/push Build is failing
Switch to C for userspace, with a very bare-bones libc!!
2023-01-06 13:31:14 +01:00

27 lines
623 B
C++

#include <stdarg.h>
#include <stdint.h>
#include <unistd.h>
extern "C" long arch_invoke_syscall(long, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
extern "C"
{
long syscall(long num, ...)
{
va_list ap;
va_start(ap, num);
uintptr_t arg0 = va_arg(ap, uintptr_t);
uintptr_t arg1 = va_arg(ap, uintptr_t);
uintptr_t arg2 = va_arg(ap, uintptr_t);
uintptr_t arg3 = va_arg(ap, uintptr_t);
uintptr_t arg4 = va_arg(ap, uintptr_t);
long rc = arch_invoke_syscall(num, arg0, arg1, arg2, arg3, arg4);
va_end(ap);
return rc;
}
}