dius 0.1.0
Loading...
Searching...
No Matches
system_call.h File Reference
#include "asm/unistd.h"
#include "di/util/prelude.h"
#include "dius/arch_system_call.h"
#include "dius/c_definitions.h"
#include "dius/error.h"

Go to the source code of this file.

Namespaces

namespace  dius
 
namespace  dius::system
 
namespace  dius::system::detail
 

Concepts

concept  dius::system::detail::SystemCallArgument
 
concept  dius::system::detail::SystemCallResult
 

Typedefs

using dius::system::SystemCallArg = unsigned long
 
using dius::system::SystemCallResult = long
 

Enumerations

enum class  dius::system::Number : int {
  dius::system::io_uring_enter = __NR_io_uring_enter , dius::system::io_uring_setup = __NR_io_uring_setup , dius::system::io_uring_register = __NR_io_uring_register , dius::system::pread = __NR_pread64 ,
  dius::system::pwrite = __NR_pwrite64 , dius::system::read = __NR_read , dius::system::write = __NR_write , dius::system::close = __NR_close ,
  dius::system::openat = __NR_openat , dius::system::mmap = __NR_mmap , dius::system::munmap = __NR_munmap , dius::system::getdents64 = __NR_getdents64 ,
  dius::system::fstatat64 = __NR_newfstatat , dius::system::ftruncate = __NR_ftruncate , dius::system::arch_prctl = __NR_arch_prctl , dius::system::brk = __NR_brk ,
  dius::system::exit_group = __NR_exit_group , dius::system::clone3 = __NR_clone3 , dius::system::execve = __NR_execve , dius::system::wait4 = __NR_wait4 ,
  dius::system::exit = __NR_exit , dius::system::futex = __NR_futex , dius::system::lseek = __NR_lseek , dius::system::mknodat = __NR_mknodat ,
  dius::system::mkdirat = __NR_mkdirat , dius::system::bind = __NR_bind , dius::system::listen = __NR_listen , dius::system::ioctl = __NR_ioctl ,
  dius::system::rt_sigprocmask = __NR_rt_sigprocmask , dius::system::rt_sigtimedwait = __NR_rt_sigtimedwait , dius::system::kill = __NR_kill , dius::system::getpid = __NR_getpid ,
  dius::system::clock_nanosleep = __NR_clock_nanosleep , dius::system::clock_gettime = __NR_clock_gettime , dius::system::setsid = __NR_setsid , dius::system::dup2 = __NR_dup2
}
 

Functions

template<detail::SystemCallResult R>
auto dius::system::system_call (Number number) -> di::Expected< R, di::BasicError >
 
template<detail::SystemCallResult R, detail::SystemCallArgument T1>
auto dius::system::system_call (Number number, T1 &&a1) -> di::Expected< R, di::BasicError >
 
template<detail::SystemCallResult R, detail::SystemCallArgument T1, detail::SystemCallArgument T2>
auto dius::system::system_call (Number number, T1 &&a1, T2 &&a2) -> di::Expected< R, di::BasicError >
 
template<detail::SystemCallResult R, detail::SystemCallArgument T1, detail::SystemCallArgument T2, detail::SystemCallArgument T3>
auto dius::system::system_call (Number number, T1 &&a1, T2 &&a2, T3 &&a3) -> di::Expected< R, di::BasicError >
 
template<detail::SystemCallResult R, detail::SystemCallArgument T1, detail::SystemCallArgument T2, detail::SystemCallArgument T3, detail::SystemCallArgument T4>
auto dius::system::system_call (Number number, T1 &&a1, T2 &&a2, T3 &&a3, T4 &&a4) -> di::Expected< R, di::BasicError >
 
template<detail::SystemCallResult R, detail::SystemCallArgument T1, detail::SystemCallArgument T2, detail::SystemCallArgument T3, detail::SystemCallArgument T4, detail::SystemCallArgument T5>
auto dius::system::system_call (Number number, T1 &&a1, T2 &&a2, T3 &&a3, T4 &&a4, T5 &&a5) -> di::Expected< R, di::BasicError >
 
template<detail::SystemCallResult R, detail::SystemCallArgument T1, detail::SystemCallArgument T2, detail::SystemCallArgument T3, detail::SystemCallArgument T4, detail::SystemCallArgument T5, detail::SystemCallArgument T6>
auto dius::system::system_call (Number number, T1 &&a1, T2 &&a2, T3 &&a3, T4 &&a4, T5 &&a5, T6 &&a6) -> di::Expected< R, di::BasicError >