Luna/kernel/src/sys/Syscall.h

17 lines
458 B
C
Raw Normal View History

#pragma once
#include "arch/CPU.h"
#include <luna/Result.h>
#include <luna/Syscall.h>
typedef u64 SyscallArgs[6];
typedef Result<u64> (*syscall_func_t)(Registers*, SyscallArgs);
// Invoked by the architecture-dependent system call entry point.
i64 invoke_syscall(Registers*, SyscallArgs, u64 syscall);
#undef __enumerate
#define __enumerate(name) extern Result<u64> sys_##name(Registers*, SyscallArgs);
enumerate_syscalls(__enumerate)
#undef __enumerate