#pragma once #include "types.h" namespace Syscall { /*! \brief Syscall IDs * \note the syscall number must correspond to the values in the syscall stub! */ enum class ID : size_t { TEST = 0, WRITE = 1, }; } // namespace Syscall /// \brief Syscall stub extern "C" ssize_t sys_call(Syscall::ID id, size_t p1, size_t p2, size_t p3, size_t p4, size_t p5); extern "C" ssize_t sys_safe_call(Syscall::ID id, size_t p1, size_t p2, size_t p3, size_t p4, size_t p5); // Interrupt based syscalls [[gnu::always_inline]] static inline ssize_t sys_test(size_t p1, size_t p2, size_t p3, size_t p4, size_t p5) { return sys_call(Syscall::ID::TEST, p1, p2, p3, p4, p5); }