17 lines
458 B
C
17 lines
458 B
C
|
#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
|