/* platform.syscall.fn.c * ~ lexi hale * this file provides a unified interface * to the host operating system's syscalls. * its function signature may vary across * OSes, as the details of each's syscall * implementation may vary drastically. */ #include #include #ifdef KFenv_posix # include #else Knoimpl(k_platform_syscall) #endif volatile extern void k_platform_syscall_raw ( volatile k_platform_syscall_return* return_slot, volatile k_platform_syscall_error* error_no_slot, volatile enum k_platform_syscall syscall_no, volatile u8 valency, volatile s64* args); volatile struct k_platform_syscall_answer k_platform_syscall(volatile enum k_platform_syscall call, volatile u8 valency, volatile s64 args[]) { struct k_platform_syscall_answer answer; k_platform_syscall_raw (&answer.ret, &answer.error, call, valency, args); return answer; }