#pragma once #if !defined(BAD_APPLE_OS_SYSCALL_HPP_INCLUDED) #define BAD_APPLE_OS_SYSCALL_HPP_INCLUDED #include #include namespace baos { enum class Syscall : std::uint64_t { FILE_READ = 0, FILE_WRITE = 1, EXIT = 0x3C }; void setupSyscall() noexcept; template inline void doSyscall(Syscall cmd, TParam0 param0 = 0, TParam1 param1 = 0, TParam2 param2 = 0) noexcept { register std::uint64_t r8 asm("r8") = param2; __asm__ __volatile__( "syscall" : : "D"(cmd), "S"(param0), "d"(param1) : "%rcx" ); } } #endif // !defined(BAD_APPLE_OS_SYSCALL_HPP_INCLUDED)