Work on adding different syscalls

This commit is contained in:
Michael Mikovsky
2025-08-19 08:17:09 -06:00
parent 59792420b5
commit 8ba4e92d60
17 changed files with 4243 additions and 4570 deletions
-1
View File
@@ -1 +0,0 @@
savedcmd_modules.order := { echo target/release/libintercept.so; :; } > modules.order
+8
View File
@@ -0,0 +1,8 @@
TODO:
[x] - Intercept syscalls
[x] - Transmit syscalls over network
[x] - Execute syscalls
[x] - Read memory from buffers.
[ ] - Mutate syscalls into Rust
[ ] - Copy memory over network
[ ] - Mutate syscalls back into C
+11 -1
View File
@@ -111,6 +111,16 @@ extern "C" fn hook(
println!("{:?}", syscall); println!("{:?}", syscall);
if let Syscall::Unimplemented(_) = syscall {
unsafe {
set_hook_fn(hook);
}
return InterceptResult::Forward;
}
*result = unsafe { syscall.execute_syscall() };
// unsafe { // unsafe {
// #[allow(static_mut_refs)] // #[allow(static_mut_refs)]
// if let Some(host) = HOST.as_ref() { // if let Some(host) = HOST.as_ref() {
@@ -122,5 +132,5 @@ extern "C" fn hook(
set_hook_fn(hook); set_hook_fn(hook);
} }
InterceptResult::Forward InterceptResult::Hook
} }
+2
View File
@@ -0,0 +1,2 @@
mod x86_64;
pub use x86_64::*;
+23
View File
@@ -0,0 +1,23 @@
use bincode::{Decode, Encode};
#[derive(Debug, Encode, Decode)]
pub struct stat {
pub st_dev: libc::dev_t,
pub st_ino: libc::ino_t,
pub st_nlink: libc::nlink_t,
pub st_mode: libc::mode_t,
pub st_uid: libc::uid_t,
pub st_gid: libc::gid_t,
__pad0: libc::c_int,
pub st_rdev: libc::dev_t,
pub st_size: libc::off_t,
pub st_blksize: libc::blksize_t,
pub st_blocks: libc::blkcnt_t,
pub st_atime: libc::time_t,
pub st_atime_nsec: i64,
pub st_mtime: libc::time_t,
pub st_mtime_nsec: i64,
pub st_ctime: libc::time_t,
pub st_ctime_nsec: i64,
__unused: [i64; 3],
}
File diff suppressed because it is too large Load Diff
-33
View File
@@ -1,33 +0,0 @@
// #[cfg(target_os = "linux")]
// use nix::sys::ptrace;
// #[cfg(target_os = "linux")]
// use nix::unistd::Pid;
// #[cfg(target_os = "linux")]
// fn read_buffer_with_ptrace(
// pid: i32,
// addr: usize,
// count: usize,
// ) -> Result<Vec<u8>, Box<dyn std::error::Error>> {
// let pid = Pid::from_raw(pid);
// let mut buffer = Vec::with_capacity(count);
// // ptrace reads in word-sized chunks (usually 8 bytes on 64-bit systems)
// let word_size = std::mem::size_of::<usize>();
// let mut current_addr = addr;
// let mut bytes_read = 0;
// while bytes_read < count {
// let word = ptrace::read(pid, current_addr as ptrace::AddressType)?;
// let word_bytes = word.to_ne_bytes();
// let bytes_to_copy = std::cmp::min(word_size, count - bytes_read);
// buffer.extend_from_slice(&word_bytes[..bytes_to_copy]);
// current_addr += word_size;
// bytes_read += bytes_to_copy;
// }
// buffer.truncate(count);
// Ok(buffer)
// }
+1 -78
View File
@@ -1,9 +1,6 @@
mod create_syscall; mod arch_types;
mod kern_buffers;
mod proxy_list; mod proxy_list;
mod syscall; mod syscall;
mod syscall_exec;
mod syscall_num;
mod types; mod types;
const CONFIG: bincode::config::Configuration = bincode::config::standard(); const CONFIG: bincode::config::Configuration = bincode::config::standard();
@@ -17,8 +14,6 @@ use std::{
use bincode::{Decode, Encode}; use bincode::{Decode, Encode};
pub use syscall::Syscall; pub use syscall::Syscall;
pub use syscall_exec::execute_syscall;
pub use syscall_num::Sysno;
pub use types::*; pub use types::*;
// Type aliases for pointers to improve readability. // Type aliases for pointers to improve readability.
@@ -27,78 +22,6 @@ pub use types::*;
// pub type Ptr<T> = T; // pub type Ptr<T> = T;
// pub type ConstPtr<T> = T; // pub type ConstPtr<T> = T;
// Placeholder structs for kernel-specific types not present in libc.
// These are defined as opaque types for correct type checking in the enum.
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct AioContext;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct Iocb;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct IoEvent;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct IoUringParams;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct Mmsghdr;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct GetcpuCache;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct RobustListHead;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct FutexWaitv;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct KexecSegment;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct CapUserHeaderT;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct CapUserDataT;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct Rlimit64;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct FileHandle;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct PerfEventAttr;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct SchedAttr;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct CloneArgs;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct BpfAttr;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct Statx;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct Rseq;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct OpenHow;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct MountAttr;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct LandlockRulesetAttr;
// #[repr(C)]
// #[derive(Debug, Clone, Copy)]
// pub struct LandlockRule;
#[derive(Debug, PartialEq, Eq, Encode, Decode)] #[derive(Debug, PartialEq, Eq, Encode, Decode)]
pub enum Message { pub enum Message {
RequestMemory(isize), // Request a memory object at a specific address RequestMemory(isize), // Request a memory object at a specific address
+1 -1
View File
@@ -1,4 +1,4 @@
use crate::{Syscall, syscall_num::Sysno}; // use crate::{Syscall, syscall_num::Sysno};
// pub fn syscall_should_proxy(syscall: &Syscall) -> bool { // pub fn syscall_should_proxy(syscall: &Syscall) -> bool {
// match syscall { // match syscall {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+710
View File
@@ -0,0 +1,710 @@
use crate::{AsPtr, Syscall};
use syscaller::{syscall0, syscall1, syscall2, syscall3, syscall4, syscall5, syscall6};
// fn syscall0(number: isize) -> isize {
// unsafe { syscaller::syscall0(number as usize) }
// }
// fn syscall1(number: isize, arg0: isize) -> isize {
// unsafe { syscaller::syscall1(number as usize, arg0 as usize) }
// }
// fn syscall2(number: isize, arg0: isize, arg1: isize) -> isize {
// unsafe { syscaller::syscall2(number as usize, arg0 as usize, arg1 as usize) }
// }
// fn syscall3(number: isize, arg0: isize, arg1: isize, arg2: isize) -> isize {
// unsafe { syscaller::syscall3(number as usize, arg0 as usize, arg1 as usize, arg2 as usize) }
// }
// fn syscall4(number: isize, arg0: isize, arg1: isize, arg2: isize, arg3: isize) -> isize {
// unsafe {
// syscaller::syscall4(
// number as usize,
// arg0 as usize,
// arg1 as usize,
// arg2 as usize,
// arg3 as usize,
// )
// }
// }
// fn syscall5(
// number: isize,
// arg0: isize,
// arg1: isize,
// arg2: isize,
// arg3: isize,
// arg4: isize,
// ) -> isize {
// unsafe {
// syscaller::syscall5(
// number as usize,
// arg0 as usize,
// arg1 as usize,
// arg2 as usize,
// arg3 as usize,
// arg4 as usize,
// )
// }
// }
// fn syscall6(
// number: isize,
// arg0: isize,
// arg1: isize,
// arg2: isize,
// arg3: isize,
// arg4: isize,
// arg5: isize,
// ) -> isize {
// unsafe {
// syscaller::syscall6(
// number as usize,
// arg0 as usize,
// arg1 as usize,
// arg2 as usize,
// arg3 as usize,
// arg4 as usize,
// arg5 as usize,
// )
// }
// }
use libc::{c_long, c_ulong};
// The Syscall enum and type aliases from the previous response are assumed to be present here.
#[allow(unused_unsafe, unsafe_op_in_unsafe_fn)]
impl Syscall {
pub unsafe fn execute_syscall(&self) -> isize {
match self {
Syscall::Read { fd, buf, len } => syscall3(
libc::SYS_read as usize,
*fd as usize,
buf.as_ptr(),
*len as usize,
),
Syscall::Write { fd, buf, len } => syscall3(
libc::SYS_write as usize,
*fd as usize,
buf.as_ptr(),
*len as usize,
),
Syscall::Open { path, flags, mode } => syscall3(
libc::SYS_read as usize,
path.as_ptr(),
*flags as usize,
*mode as usize,
),
Syscall::Close { fd } => syscall1(libc::SYS_read as usize, *fd as usize),
Syscall::Stat { path, statbuf } => {
syscall2(libc::SYS_stat as usize, path.as_ptr(), statbuf.as_ptr())
}
Syscall::Fstat { fd, statbuf } => {
syscall2(libc::SYS_stat as usize, *fd as usize, statbuf.as_ptr())
}
// Syscall::Fstat(arg0, arg1) => unsafe { syscall2(5, arg0, arg1) },
// Syscall::Lstat(arg0, arg1) => unsafe { syscall2(6, arg0, arg1) },
// Syscall::Poll(arg0, arg1, arg2) => unsafe { syscall3(7, arg0, arg1, arg2) },
// Syscall::Lseek(arg0, arg1, arg2) => unsafe { syscall3(8, arg0, arg1, arg2) },
Syscall::Mmap {
addr,
len,
prot,
flags,
fd,
offset,
} => syscall6(
libc::SYS_mmap as usize,
addr.as_ptr(),
*len as usize,
*prot as usize,
*flags as usize,
*fd as usize,
*offset as usize,
),
// Syscall::Mmap(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(9, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Mprotect(arg0, arg1, arg2) => unsafe { syscall3(10, arg0, arg1, arg2) },
// Syscall::Munmap(arg0, arg1) => unsafe { syscall2(11, arg0, arg1) },
// Syscall::Brk(arg0) => unsafe { syscall1(12, arg0) },
// Syscall::RtSigaction(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(13, arg0, arg1, arg2, arg3)
// },
// Syscall::RtSigprocmask(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(14, arg0, arg1, arg2, arg3)
// },
// Syscall::RtSigreturn => unsafe { syscall0(15) },
// Syscall::Ioctl(arg0, arg1, arg2) => unsafe { syscall3(16, arg0, arg1, arg2) },
// Syscall::Pread64(arg0, arg1, arg2, arg3) => unsafe { syscall4(17, arg0, arg1, arg2, arg3) },
// Syscall::Pwrite64(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(18, arg0, arg1, arg2, arg3)
// },
// Syscall::Readv(arg0, arg1, arg2) => unsafe { syscall3(19, arg0, arg1, arg2) },
// Syscall::Writev(arg0, arg1, arg2) => unsafe { syscall3(20, arg0, arg1, arg2) },
// Syscall::Access(arg0, arg1) => unsafe { syscall2(21, arg0, arg1) },
// Syscall::Pipe(arg0) => unsafe { syscall1(22, arg0) },
// Syscall::Select(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(23, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::SchedYield => unsafe { syscall0(24) },
// Syscall::Mremap(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(25, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Msync(arg0, arg1, arg2) => unsafe { syscall3(26, arg0, arg1, arg2) },
// Syscall::Mincore(arg0, arg1, arg2) => unsafe { syscall3(27, arg0, arg1, arg2) },
// Syscall::Madvise(arg0, arg1, arg2) => unsafe { syscall3(28, arg0, arg1, arg2) },
// Syscall::Shmget(arg0, arg1, arg2) => unsafe { syscall3(29, arg0, arg1, arg2) },
// Syscall::Shmat(arg0, arg1, arg2) => unsafe { syscall3(30, arg0, arg1, arg2) },
// Syscall::Shmctl(arg0, arg1, arg2) => unsafe { syscall3(31, arg0, arg1, arg2) },
// Syscall::Dup(arg0) => unsafe { syscall1(32, arg0) },
// Syscall::Dup2(arg0, arg1) => unsafe { syscall2(33, arg0, arg1) },
// Syscall::Pause => unsafe { syscall0(34) },
// Syscall::Nanosleep(arg0, arg1) => unsafe { syscall2(35, arg0, arg1) },
// Syscall::Getitimer(arg0, arg1) => unsafe { syscall2(36, arg0, arg1) },
// Syscall::Alarm(arg0) => unsafe { syscall1(37, arg0) },
// Syscall::Setitimer(arg0, arg1, arg2) => unsafe { syscall3(38, arg0, arg1, arg2) },
// Syscall::Getpid => unsafe { syscall0(39) },
// Syscall::Sendfile(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(40, arg0, arg1, arg2, arg3)
// },
// Syscall::Socket(arg0, arg1, arg2) => unsafe { syscall3(41, arg0, arg1, arg2) },
// Syscall::Connect(arg0, arg1, arg2) => unsafe { syscall3(42, arg0, arg1, arg2) },
// Syscall::Accept(arg0, arg1, arg2) => unsafe { syscall3(43, arg0, arg1, arg2) },
// Syscall::Sendto(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(44, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Recvfrom(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(45, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Sendmsg(arg0, arg1, arg2) => unsafe { syscall3(46, arg0, arg1, arg2) },
// Syscall::Recvmsg(arg0, arg1, arg2) => unsafe { syscall3(47, arg0, arg1, arg2) },
// Syscall::Shutdown(arg0, arg1) => unsafe { syscall2(48, arg0, arg1) },
// Syscall::Bind(arg0, arg1, arg2) => unsafe { syscall3(49, arg0, arg1, arg2) },
// Syscall::Listen(arg0, arg1) => unsafe { syscall2(50, arg0, arg1) },
// Syscall::Getsockname(arg0, arg1, arg2) => unsafe { syscall3(51, arg0, arg1, arg2) },
// Syscall::Getpeername(arg0, arg1, arg2) => unsafe { syscall3(52, arg0, arg1, arg2) },
// Syscall::Socketpair(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(53, arg0, arg1, arg2, arg3)
// },
// Syscall::Setsockopt(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(54, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Getsockopt(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(55, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Clone(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(56, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fork => unsafe { syscall0(57) },
// Syscall::Vfork => unsafe { syscall0(58) },
// Syscall::Execve(arg0, arg1, arg2) => unsafe { syscall3(59, arg0, arg1, arg2) },
// Syscall::Exit(arg0) => unsafe { syscall1(60, arg0) },
// Syscall::Wait4(arg0, arg1, arg2, arg3) => unsafe { syscall4(61, arg0, arg1, arg2, arg3) },
// Syscall::Kill(arg0, arg1) => unsafe { syscall2(62, arg0, arg1) },
// Syscall::Uname(arg0) => unsafe { syscall1(63, arg0) },
// Syscall::Semget(arg0, arg1, arg2) => unsafe { syscall3(64, arg0, arg1, arg2) },
// Syscall::Semop(arg0, arg1, arg2) => unsafe { syscall3(65, arg0, arg1, arg2) },
// Syscall::Semctl(arg0, arg1, arg2, arg3) => unsafe { syscall4(66, arg0, arg1, arg2, arg3) },
// Syscall::Shmdt(arg0) => unsafe { syscall1(67, arg0) },
// Syscall::Msgget(arg0, arg1) => unsafe { syscall2(68, arg0, arg1) },
// Syscall::Msgsnd(arg0, arg1, arg2, arg3) => unsafe { syscall4(69, arg0, arg1, arg2, arg3) },
// Syscall::Msgrcv(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(70, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Msgctl(arg0, arg1, arg2) => unsafe { syscall3(71, arg0, arg1, arg2) },
// Syscall::Fcntl(arg0, arg1, arg2) => unsafe { syscall3(72, arg0, arg1, arg2) },
// Syscall::Flock(arg0, arg1) => unsafe { syscall2(73, arg0, arg1) },
// Syscall::Fsync(arg0) => unsafe { syscall1(74, arg0) },
// Syscall::Fdatasync(arg0) => unsafe { syscall1(75, arg0) },
// Syscall::Truncate(arg0, arg1) => unsafe { syscall2(76, arg0, arg1) },
// Syscall::Ftruncate(arg0, arg1) => unsafe { syscall2(77, arg0, arg1) },
// Syscall::Getdents(arg0, arg1, arg2) => unsafe { syscall3(78, arg0, arg1, arg2) },
// Syscall::Getcwd(arg0, arg1) => unsafe { syscall2(79, arg0, arg1) },
// Syscall::Chdir(arg0) => unsafe { syscall1(80, arg0) },
// Syscall::Fchdir(arg0) => unsafe { syscall1(81, arg0) },
// Syscall::Rename(arg0, arg1) => unsafe { syscall2(82, arg0, arg1) },
// Syscall::Mkdir(arg0, arg1) => unsafe { syscall2(83, arg0, arg1) },
// Syscall::Rmdir(arg0) => unsafe { syscall1(84, arg0) },
// Syscall::Creat(arg0, arg1) => unsafe { syscall2(85, arg0, arg1) },
// Syscall::Link(arg0, arg1) => unsafe { syscall2(86, arg0, arg1) },
// Syscall::Unlink(arg0) => unsafe { syscall1(87, arg0) },
// Syscall::Symlink(arg0, arg1) => unsafe { syscall2(88, arg0, arg1) },
// Syscall::Readlink(arg0, arg1, arg2) => unsafe { syscall3(89, arg0, arg1, arg2) },
// Syscall::Chmod(arg0, arg1) => unsafe { syscall2(90, arg0, arg1) },
// Syscall::Fchmod(arg0, arg1) => unsafe { syscall2(91, arg0, arg1) },
// Syscall::Chown(arg0, arg1, arg2) => unsafe { syscall3(92, arg0, arg1, arg2) },
// Syscall::Fchown(arg0, arg1, arg2) => unsafe { syscall3(93, arg0, arg1, arg2) },
// Syscall::Lchown(arg0, arg1, arg2) => unsafe { syscall3(94, arg0, arg1, arg2) },
// Syscall::Umask(arg0) => unsafe { syscall1(95, arg0) },
// Syscall::Gettimeofday(arg0, arg1) => unsafe { syscall2(96, arg0, arg1) },
// Syscall::Getrlimit(arg0, arg1) => unsafe { syscall2(97, arg0, arg1) },
// Syscall::Getrusage(arg0, arg1) => unsafe { syscall2(98, arg0, arg1) },
// Syscall::Sysinfo(arg0) => unsafe { syscall1(99, arg0) },
// Syscall::Times(arg0) => unsafe { syscall1(100, arg0) },
// Syscall::Ptrace(arg0, arg1, arg2, arg3) => unsafe { syscall4(101, arg0, arg1, arg2, arg3) },
// Syscall::Getuid => unsafe { syscall0(102) },
// Syscall::Syslog(arg0, arg1, arg2) => unsafe { syscall3(103, arg0, arg1, arg2) },
// Syscall::Getgid => unsafe { syscall0(104) },
// Syscall::Setuid(arg0) => unsafe { syscall1(105, arg0) },
// Syscall::Setgid(arg0) => unsafe { syscall1(106, arg0) },
// Syscall::Geteuid => unsafe { syscall0(107) },
// Syscall::Getegid => unsafe { syscall0(108) },
// Syscall::Setpgid(arg0, arg1) => unsafe { syscall2(109, arg0, arg1) },
// Syscall::Getppid => unsafe { syscall0(110) },
// Syscall::Getpgrp => unsafe { syscall0(111) },
// Syscall::Setsid => unsafe { syscall0(112) },
// Syscall::Setreuid(arg0, arg1) => unsafe { syscall2(113, arg0, arg1) },
// Syscall::Setregid(arg0, arg1) => unsafe { syscall2(114, arg0, arg1) },
// Syscall::Getgroups(arg0, arg1) => unsafe { syscall2(115, arg0, arg1) },
// Syscall::Setgroups(arg0, arg1) => unsafe { syscall2(116, arg0, arg1) },
// Syscall::Setresuid(arg0, arg1, arg2) => unsafe { syscall3(117, arg0, arg1, arg2) },
// Syscall::Getresuid(arg0, arg1, arg2) => unsafe { syscall3(118, arg0, arg1, arg2) },
// Syscall::Setresgid(arg0, arg1, arg2) => unsafe { syscall3(119, arg0, arg1, arg2) },
// Syscall::Getresgid(arg0, arg1, arg2) => unsafe { syscall3(120, arg0, arg1, arg2) },
// Syscall::Getpgid(arg0) => unsafe { syscall1(121, arg0) },
// Syscall::Setfsuid(arg0) => unsafe { syscall1(122, arg0) },
// Syscall::Setfsgid(arg0) => unsafe { syscall1(123, arg0) },
// Syscall::Getsid(arg0) => unsafe { syscall1(124, arg0) },
// Syscall::Capget(arg0, arg1) => unsafe { syscall2(125, arg0, arg1) },
// Syscall::Capset(arg0, arg1) => unsafe { syscall2(126, arg0, arg1) },
// Syscall::RtSigpending(arg0, arg1) => unsafe { syscall2(127, arg0, arg1) },
// Syscall::RtSigtimedwait(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(128, arg0, arg1, arg2, arg3)
// },
// Syscall::RtSigqueueinfo(arg0, arg1, arg2) => unsafe { syscall3(129, arg0, arg1, arg2) },
// Syscall::RtSigsuspend(arg0, arg1) => unsafe { syscall2(130, arg0, arg1) },
// Syscall::Sigaltstack(arg0, arg1) => unsafe { syscall2(131, arg0, arg1) },
// Syscall::Utime(arg0, arg1) => unsafe { syscall2(132, arg0, arg1) },
// Syscall::Mknod(arg0, arg1, arg2) => unsafe { syscall3(133, arg0, arg1, arg2) },
// Syscall::Uselib(arg0) => unsafe { syscall1(134, arg0) },
// Syscall::Personality(arg0) => unsafe { syscall1(135, arg0) },
// Syscall::Ustat(arg0, arg1) => unsafe { syscall2(136, arg0, arg1) },
// Syscall::Statfs(arg0, arg1) => unsafe { syscall2(137, arg0, arg1) },
// Syscall::Fstatfs(arg0, arg1) => unsafe { syscall2(138, arg0, arg1) },
// Syscall::Sysfs(arg0, arg1, arg2) => unsafe { syscall3(139, arg0, arg1, arg2) },
// Syscall::Getpriority(arg0, arg1) => unsafe { syscall2(140, arg0, arg1) },
// Syscall::Setpriority(arg0, arg1, arg2) => unsafe { syscall3(141, arg0, arg1, arg2) },
// Syscall::SchedSetparam(arg0, arg1) => unsafe { syscall2(142, arg0, arg1) },
// Syscall::SchedGetparam(arg0, arg1) => unsafe { syscall2(143, arg0, arg1) },
// Syscall::SchedSetscheduler(arg0, arg1, arg2) => unsafe { syscall3(144, arg0, arg1, arg2) },
// Syscall::SchedGetscheduler(arg0) => unsafe { syscall1(145, arg0) },
// Syscall::SchedGetPriorityMax(arg0) => unsafe { syscall1(146, arg0) },
// Syscall::SchedGetPriorityMin(arg0) => unsafe { syscall1(147, arg0) },
// Syscall::SchedRrGetInterval(arg0, arg1) => unsafe { syscall2(148, arg0, arg1) },
// Syscall::Mlock(arg0, arg1) => unsafe { syscall2(149, arg0, arg1) },
// Syscall::Munlock(arg0, arg1) => unsafe { syscall2(150, arg0, arg1) },
// Syscall::Mlockall(arg0) => unsafe { syscall1(151, arg0) },
// Syscall::Munlockall => unsafe { syscall0(152) },
// Syscall::Vhangup => unsafe { syscall0(153) },
// Syscall::ModifyLdt(arg0, arg1, arg2) => unsafe { syscall3(154, arg0, arg1, arg2) },
// Syscall::PivotRoot(arg0, arg1) => unsafe { syscall2(155, arg0, arg1) },
// Syscall::_Sysctl(arg0) => unsafe { syscall1(156, arg0) },
// Syscall::Prctl(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(157, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::ArchPrctl(arg0, arg1) => unsafe { syscall2(158, arg0, arg1) },
// Syscall::Adjtimex(arg0) => unsafe { syscall1(159, arg0) },
// Syscall::Setrlimit(arg0, arg1) => unsafe { syscall2(160, arg0, arg1) },
// Syscall::Chroot(arg0) => unsafe { syscall1(161, arg0) },
// Syscall::Sync => unsafe { syscall0(162) },
// Syscall::Acct(arg0) => unsafe { syscall1(163, arg0) },
// Syscall::Settimeofday(arg0, arg1) => unsafe { syscall2(164, arg0, arg1) },
// Syscall::Mount(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(165, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Umount2(arg0, arg1) => unsafe { syscall2(166, arg0, arg1) },
// Syscall::Swapon(arg0, arg1) => unsafe { syscall2(167, arg0, arg1) },
// Syscall::Swapoff(arg0) => unsafe { syscall1(168, arg0) },
// Syscall::Reboot(arg0, arg1, arg2, arg3) => unsafe { syscall4(169, arg0, arg1, arg2, arg3) },
// Syscall::Sethostname(arg0, arg1) => unsafe { syscall2(170, arg0, arg1) },
// Syscall::Setdomainname(arg0, arg1) => unsafe { syscall2(171, arg0, arg1) },
// Syscall::Iopl(arg0) => unsafe { syscall1(172, arg0) },
// Syscall::Ioperm(arg0, arg1, arg2) => unsafe { syscall3(173, arg0, arg1, arg2) },
// Syscall::CreateModule(arg0, arg1) => unsafe { syscall2(174, arg0, arg1) },
// Syscall::InitModule(arg0, arg1, arg2) => unsafe { syscall3(175, arg0, arg1, arg2) },
// Syscall::DeleteModule(arg0, arg1) => unsafe { syscall2(176, arg0, arg1) },
// Syscall::GetKernelSyms(arg0) => unsafe { syscall1(177, arg0) },
// Syscall::QueryModule(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(178, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Quotactl(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(179, arg0, arg1, arg2, arg3)
// },
// Syscall::Nfsservctl(arg0, arg1, arg2) => unsafe { syscall3(180, arg0, arg1, arg2) },
// Syscall::Getpmsg => unsafe { syscall0(181) },
// Syscall::Putpmsg => unsafe { syscall0(182) },
// Syscall::AfsSyscall => unsafe { syscall0(183) },
// Syscall::Tuxcall => unsafe { syscall0(184) },
// Syscall::Security => unsafe { syscall0(185) },
// Syscall::Gettid => unsafe { syscall0(186) },
// Syscall::Readahead(arg0, arg1, arg2) => unsafe { syscall3(187, arg0, arg1, arg2) },
// Syscall::Setxattr(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(188, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Lsetxattr(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(189, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fsetxattr(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(190, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Getxattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(191, arg0, arg1, arg2, arg3)
// },
// Syscall::Lgetxattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(192, arg0, arg1, arg2, arg3)
// },
// Syscall::Fgetxattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(193, arg0, arg1, arg2, arg3)
// },
// Syscall::Listxattr(arg0, arg1, arg2) => unsafe { syscall3(194, arg0, arg1, arg2) },
// Syscall::Llistxattr(arg0, arg1, arg2) => unsafe { syscall3(195, arg0, arg1, arg2) },
// Syscall::Flistxattr(arg0, arg1, arg2) => unsafe { syscall3(196, arg0, arg1, arg2) },
// Syscall::Removexattr(arg0, arg1) => unsafe { syscall2(197, arg0, arg1) },
// Syscall::Lremovexattr(arg0, arg1) => unsafe { syscall2(198, arg0, arg1) },
// Syscall::Fremovexattr(arg0, arg1) => unsafe { syscall2(199, arg0, arg1) },
// Syscall::Tkill(arg0, arg1) => unsafe { syscall2(200, arg0, arg1) },
// Syscall::Time(arg0) => unsafe { syscall1(201, arg0) },
// Syscall::Futex(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(202, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::SchedSetaffinity(arg0, arg1, arg2) => unsafe { syscall3(203, arg0, arg1, arg2) },
// Syscall::SchedGetaffinity(arg0, arg1, arg2) => unsafe { syscall3(204, arg0, arg1, arg2) },
// Syscall::SetThreadArea(arg0) => unsafe { syscall1(205, arg0) },
// Syscall::IoSetup(arg0, arg1) => unsafe { syscall2(206, arg0, arg1) },
// Syscall::IoDestroy(arg0) => unsafe { syscall1(207, arg0) },
// Syscall::IoGetevents(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(208, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoSubmit(arg0, arg1, arg2) => unsafe { syscall3(209, arg0, arg1, arg2) },
// Syscall::IoCancel(arg0, arg1, arg2) => unsafe { syscall3(210, arg0, arg1, arg2) },
// Syscall::GetThreadArea(arg0) => unsafe { syscall1(211, arg0) },
// Syscall::LookupDcookie(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(212, arg0, arg1, arg2, arg3)
// },
// Syscall::EpollCreate(arg0) => unsafe { syscall1(213, arg0) },
// Syscall::EpollCtlOld => unsafe { syscall0(214) },
// Syscall::EpollWaitOld => unsafe { syscall0(215) },
// Syscall::RemapFilePages(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(216, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Getdents64(arg0, arg1, arg2) => unsafe { syscall3(217, arg0, arg1, arg2) },
// Syscall::SetTidAddress(arg0) => unsafe { syscall1(218, arg0) },
// Syscall::RestartSyscall => unsafe { syscall0(219) },
// Syscall::Semtimedop(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(220, arg0, arg1, arg2, arg3)
// },
// Syscall::Fadvise64(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(221, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerCreate(arg0, arg1, arg2) => unsafe { syscall3(222, arg0, arg1, arg2) },
// Syscall::TimerSettime(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(223, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerGettime(arg0, arg1) => unsafe { syscall2(224, arg0, arg1) },
// Syscall::TimerGetoverrun(arg0) => unsafe { syscall1(225, arg0) },
// Syscall::TimerDelete(arg0) => unsafe { syscall1(226, arg0) },
// Syscall::ClockSettime(arg0, arg1) => unsafe { syscall2(227, arg0, arg1) },
// Syscall::ClockGettime(arg0, arg1) => unsafe { syscall2(228, arg0, arg1) },
// Syscall::ClockGetres(arg0, arg1) => unsafe { syscall2(229, arg0, arg1) },
// Syscall::ClockNanosleep(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(230, arg0, arg1, arg2, arg3)
// },
// Syscall::ExitGroup(arg0) => unsafe { syscall1(231, arg0) },
// Syscall::EpollWait(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(232, arg0, arg1, arg2, arg3)
// },
// Syscall::EpollCtl(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(233, arg0, arg1, arg2, arg3)
// },
// Syscall::Tgkill(arg0, arg1, arg2) => unsafe { syscall3(234, arg0, arg1, arg2) },
// Syscall::Utimes(arg0, arg1) => unsafe { syscall2(235, arg0, arg1) },
// Syscall::Vserver => unsafe { syscall0(236) },
// Syscall::Mbind(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(237, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::SetMempolicy(arg0, arg1, arg2) => unsafe { syscall3(238, arg0, arg1, arg2) },
// Syscall::GetMempolicy(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(239, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MqOpen(arg0, arg1, arg2, arg3) => unsafe { syscall4(240, arg0, arg1, arg2, arg3) },
// Syscall::MqUnlink(arg0) => unsafe { syscall1(241, arg0) },
// Syscall::MqTimedsend(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(242, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MqTimedreceive(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(243, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MqNotify(arg0, arg1) => unsafe { syscall2(244, arg0, arg1) },
// Syscall::MqGetsetattr(arg0, arg1, arg2) => unsafe { syscall3(245, arg0, arg1, arg2) },
// Syscall::KexecLoad(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(246, arg0, arg1, arg2, arg3)
// },
// Syscall::Waitid(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(247, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::AddKey(arg0, arg1, arg2, arg3) => unsafe { syscall4(248, arg0, arg1, arg2, arg3) },
// Syscall::RequestKey(arg0, arg1, arg2) => unsafe { syscall3(249, arg0, arg1, arg2) },
// Syscall::Keyctl(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(250, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoprioSet(arg0, arg1, arg2) => unsafe { syscall3(251, arg0, arg1, arg2) },
// Syscall::IoprioGet(arg0, arg1) => unsafe { syscall2(252, arg0, arg1) },
// Syscall::InotifyInit => unsafe { syscall0(253) },
// Syscall::InotifyAddWatch(arg0, arg1, arg2) => unsafe { syscall3(254, arg0, arg1, arg2) },
// Syscall::InotifyRmWatch(arg0, arg1) => unsafe { syscall2(255, arg0, arg1) },
// Syscall::MigratePages(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(256, arg0, arg1, arg2, arg3)
// },
Syscall::Openat {
dfd,
filename,
flags,
mode,
} => syscall4(
libc::SYS_openat as usize,
*dfd as usize,
filename.as_ptr(),
*flags as usize,
*mode as usize,
),
// Syscall::Openat(arg0, arg1, arg2, arg3) => unsafe { syscall4(257, arg0, arg1, arg2, arg3) },
// Syscall::Mkdirat(arg0, arg1, arg2) => unsafe { syscall3(258, arg0, arg1, arg2) },
// Syscall::Mknodat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(259, arg0, arg1, arg2, arg3)
// },
// Syscall::Fchownat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(260, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Futimesat(arg0, arg1, arg2) => unsafe { syscall3(261, arg0, arg1, arg2) },
// Syscall::Newfstatat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(262, arg0, arg1, arg2, arg3)
// },
// Syscall::Unlinkat(arg0, arg1, arg2) => unsafe { syscall3(263, arg0, arg1, arg2) },
// Syscall::Renameat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(264, arg0, arg1, arg2, arg3)
// },
// Syscall::Linkat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(265, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Symlinkat(arg0, arg1, arg2) => unsafe { syscall3(266, arg0, arg1, arg2) },
// Syscall::Readlinkat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(267, arg0, arg1, arg2, arg3)
// },
// Syscall::Fchmodat(arg0, arg1, arg2) => unsafe { syscall3(268, arg0, arg1, arg2) },
// Syscall::Faccessat(arg0, arg1, arg2) => unsafe { syscall3(269, arg0, arg1, arg2) },
// Syscall::Pselect6(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(270, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Ppoll(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(271, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Unshare(arg0) => unsafe { syscall1(272, arg0) },
// Syscall::SetRobustList(arg0, arg1) => unsafe { syscall2(273, arg0, arg1) },
// Syscall::GetRobustList(arg0, arg1, arg2) => unsafe { syscall3(274, arg0, arg1, arg2) },
// Syscall::Splice(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(275, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Tee(arg0, arg1, arg2, arg3) => unsafe { syscall4(276, arg0, arg1, arg2, arg3) },
// Syscall::SyncFileRange(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(277, arg0, arg1, arg2, arg3)
// },
// Syscall::Vmsplice(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(278, arg0, arg1, arg2, arg3)
// },
// Syscall::MovePages(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(279, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Utimensat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(280, arg0, arg1, arg2, arg3)
// },
// Syscall::EpollPwait(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(281, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Signalfd(arg0, arg1, arg2) => unsafe { syscall3(282, arg0, arg1, arg2) },
// Syscall::TimerfdCreate(arg0, arg1) => unsafe { syscall2(283, arg0, arg1) },
// Syscall::Eventfd(arg0, arg1) => unsafe { syscall2(284, arg0, arg1) },
// Syscall::Fallocate(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(285, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerfdSettime(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(286, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerfdGettime(arg0, arg1) => unsafe { syscall2(287, arg0, arg1) },
// Syscall::Accept4(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(288, arg0, arg1, arg2, arg3)
// },
// Syscall::Signalfd4(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(289, arg0, arg1, arg2, arg3)
// },
// Syscall::Eventfd2(arg0, arg1) => unsafe { syscall2(290, arg0, arg1) },
// Syscall::EpollCreate1(arg0) => unsafe { syscall1(291, arg0) },
// Syscall::Dup3(arg0, arg1, arg2) => unsafe { syscall3(292, arg0, arg1, arg2) },
// Syscall::Pipe2(arg0, arg1) => unsafe { syscall2(293, arg0, arg1) },
// Syscall::InotifyInit1(arg0) => unsafe { syscall1(294, arg0) },
// Syscall::Preadv(arg0, arg1, arg2, arg3) => unsafe { syscall4(295, arg0, arg1, arg2, arg3) },
// Syscall::Pwritev(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(296, arg0, arg1, arg2, arg3)
// },
// Syscall::RtTgsigqueueinfo(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(297, arg0, arg1, arg2, arg3)
// },
// Syscall::PerfEventOpen(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(298, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Recvmmsg(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(299, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::FanotifyInit(arg0, arg1) => unsafe { syscall2(300, arg0, arg1) },
// Syscall::FanotifyMark(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(301, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Prlimit64(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(302, arg0, arg1, arg2, arg3)
// },
// Syscall::NameToHandleAt(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(303, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::OpenByHandleAt(arg0, arg1, arg2) => unsafe { syscall3(304, arg0, arg1, arg2) },
// Syscall::ClockAdjtime(arg0, arg1) => unsafe { syscall2(305, arg0, arg1) },
// Syscall::Syncfs(arg0) => unsafe { syscall1(306, arg0) },
// Syscall::Sendmmsg(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(307, arg0, arg1, arg2, arg3)
// },
// Syscall::Setns(arg0, arg1) => unsafe { syscall2(308, arg0, arg1) },
// Syscall::Getcpu(arg0, arg1, arg2) => unsafe { syscall3(309, arg0, arg1, arg2) },
// Syscall::ProcessVmReadv(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(310, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::ProcessVmWritev(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(311, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Kcmp(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(312, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::FinitModule(arg0, arg1, arg2) => unsafe { syscall3(313, arg0, arg1, arg2) },
// Syscall::SchedSetattr(arg0, arg1, arg2) => unsafe { syscall3(314, arg0, arg1, arg2) },
// Syscall::SchedGetattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(315, arg0, arg1, arg2, arg3)
// },
// Syscall::Renameat2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(316, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Seccomp(arg0, arg1, arg2) => unsafe { syscall3(317, arg0, arg1, arg2) },
// Syscall::Getrandom(arg0, arg1, arg2) => unsafe { syscall3(318, arg0, arg1, arg2) },
// Syscall::MemfdCreate(arg0, arg1) => unsafe { syscall2(319, arg0, arg1) },
// Syscall::KexecFileLoad(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(320, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Bpf(arg0, arg1, arg2) => unsafe { syscall3(321, arg0, arg1, arg2) },
// Syscall::Execveat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(322, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Userfaultfd(arg0) => unsafe { syscall1(323, arg0) },
// Syscall::Membarrier(arg0, arg1) => unsafe { syscall2(324, arg0, arg1) },
// Syscall::Mlock2(arg0, arg1, arg2) => unsafe { syscall3(325, arg0, arg1, arg2) },
// Syscall::CopyFileRange(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(326, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Preadv2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(327, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Pwritev2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(328, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::PkeyMprotect(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(329, arg0, arg1, arg2, arg3)
// },
// Syscall::PkeyAlloc(arg0, arg1) => unsafe { syscall2(330, arg0, arg1) },
// Syscall::PkeyFree(arg0) => unsafe { syscall1(331, arg0) },
// Syscall::Statx(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(332, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoPgetevents(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(333, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Rseq(arg0, arg1, arg2, arg3) => unsafe { syscall4(334, arg0, arg1, arg2, arg3) },
// Syscall::PidfdSendSignal(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(424, arg0, arg1, arg2, arg3)
// },
// Syscall::IoUringSetup(arg0, arg1) => unsafe { syscall2(425, arg0, arg1) },
// Syscall::IoUringEnter(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(426, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoUringRegister(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(427, arg0, arg1, arg2, arg3)
// },
// Syscall::OpenTree(arg0, arg1, arg2) => unsafe { syscall3(428, arg0, arg1, arg2) },
// Syscall::MoveMount(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(429, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fsopen(arg0, arg1, arg2) => unsafe { syscall3(430, arg0, arg1, arg2) },
// Syscall::Fsconfig(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(431, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fsmount(arg0, arg1, arg2) => unsafe { syscall3(432, arg0, arg1, arg2) },
// Syscall::Fspick(arg0, arg1, arg2) => unsafe { syscall3(433, arg0, arg1, arg2) },
// Syscall::PidfdOpen(arg0, arg1) => unsafe { syscall2(434, arg0, arg1) },
// Syscall::Clone3(arg0, arg1) => unsafe { syscall2(435, arg0, arg1) },
// Syscall::CloseRange(arg0, arg1, arg2) => unsafe { syscall3(436, arg0, arg1, arg2) },
// Syscall::Openat2(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(437, arg0, arg1, arg2, arg3)
// },
// Syscall::PidfdGetfd(arg0, arg1, arg2) => unsafe { syscall3(438, arg0, arg1, arg2) },
// Syscall::Faccessat2(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(439, arg0, arg1, arg2, arg3)
// },
// Syscall::ProcessMadvise(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(440, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::EpollPwait2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(441, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MountSetattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(442, arg0, arg1, arg2, arg3)
// },
// Syscall::QuotactlFd(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(443, arg0, arg1, arg2, arg3)
// },
// Syscall::LandlockCreateRuleset(arg0, arg1, arg2) => unsafe {
// syscall3(444, arg0, arg1, arg2)
// },
// Syscall::LandlockAddRule(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(445, arg0, arg1, arg2, arg3)
// },
// Syscall::LandlockRestrictSelf(arg0, arg1) => unsafe { syscall2(446, arg0, arg1) },
// Syscall::MemfdSecret(arg0) => unsafe { syscall1(447, arg0) },
// Syscall::ProcessMrelease(arg0, arg1) => unsafe { syscall2(448, arg0, arg1) },
// Syscall::FutexWaitv(arg0, arg1, arg2) => unsafe { syscall3(449, arg0, arg1, arg2) },
// Syscall::SetMempolicyHomeNode(arg0, arg1, arg2) => unsafe {
// syscall3(450, arg0, arg1, arg2)
// },
// Syscall::Cachestat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(451, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fchmodat2(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(452, arg0, arg1, arg2, arg3)
// },
// Syscall::MapShadowStack(arg0, arg1) => unsafe { syscall2(453, arg0, arg1) },
// Syscall::FutexWake(arg0, arg1, arg2) => unsafe { syscall3(454, arg0, arg1, arg2) },
// Syscall::FutexWait(arg0, arg1, arg2) => unsafe { syscall3(455, arg0, arg1, arg2) },
// Syscall::FutexRequeue(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(456, arg0, arg1, arg2, arg3)
// },
// Syscall::Statmount(arg0, arg1, arg2) => unsafe { syscall3(457, arg0, arg1, arg2) },
// Syscall::Listmount(arg0, arg1, arg2) => unsafe { syscall3(458, arg0, arg1, arg2) },
// Syscall::LsmGetSelfAttr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(459, arg0, arg1, arg2, arg3)
// },
// Syscall::LsmSetSelfAttr(arg0, arg1, arg2) => unsafe { syscall3(460, arg0, arg1, arg2) },
// Syscall::LsmListModules(arg0, arg1) => unsafe { syscall2(461, arg0, arg1) },
// Syscall::Unknown(syscall_num, args) => match args {
// [arg0, arg1, arg2, arg3, arg4, arg5] => unsafe {
// syscall6(syscall_num, arg0, arg1, arg2, arg3, arg4, arg5)
// },
_ => unreachable!(),
// },
}
}
}
File diff suppressed because it is too large Load Diff
View File
-661
View File
@@ -1,661 +0,0 @@
use crate::Syscall;
use syscaller::{syscall0, syscall1, syscall2, syscall3, syscall4, syscall5, syscall6};
// fn syscall0(number: isize) -> isize {
// unsafe { syscaller::syscall0(number as usize) }
// }
// fn syscall1(number: isize, arg0: isize) -> isize {
// unsafe { syscaller::syscall1(number as usize, arg0 as usize) }
// }
// fn syscall2(number: isize, arg0: isize, arg1: isize) -> isize {
// unsafe { syscaller::syscall2(number as usize, arg0 as usize, arg1 as usize) }
// }
// fn syscall3(number: isize, arg0: isize, arg1: isize, arg2: isize) -> isize {
// unsafe { syscaller::syscall3(number as usize, arg0 as usize, arg1 as usize, arg2 as usize) }
// }
// fn syscall4(number: isize, arg0: isize, arg1: isize, arg2: isize, arg3: isize) -> isize {
// unsafe {
// syscaller::syscall4(
// number as usize,
// arg0 as usize,
// arg1 as usize,
// arg2 as usize,
// arg3 as usize,
// )
// }
// }
// fn syscall5(
// number: isize,
// arg0: isize,
// arg1: isize,
// arg2: isize,
// arg3: isize,
// arg4: isize,
// ) -> isize {
// unsafe {
// syscaller::syscall5(
// number as usize,
// arg0 as usize,
// arg1 as usize,
// arg2 as usize,
// arg3 as usize,
// arg4 as usize,
// )
// }
// }
// fn syscall6(
// number: isize,
// arg0: isize,
// arg1: isize,
// arg2: isize,
// arg3: isize,
// arg4: isize,
// arg5: isize,
// ) -> isize {
// unsafe {
// syscaller::syscall6(
// number as usize,
// arg0 as usize,
// arg1 as usize,
// arg2 as usize,
// arg3 as usize,
// arg4 as usize,
// arg5 as usize,
// )
// }
// }
use libc::{c_long, c_ulong};
// The Syscall enum and type aliases from the previous response are assumed to be present here.
#[allow(unused_unsafe)]
pub fn execute_syscall(syscall_obj: Syscall) -> isize {
todo!();
// match syscall_obj {
// Syscall::Read(arg0, arg1, arg2) => unsafe { syscall3(libc::SYS_read, arg0, arg1, arg2) },
// Syscall::Write(arg0, arg1, arg2) => unsafe { syscall3(1, arg0, arg1, arg2) },
// Syscall::Open(arg0, arg1, arg2) => unsafe { syscall3(2, arg0, arg1, arg2) },
// Syscall::Close(arg0) => unsafe { syscall1(3, arg0) },
// Syscall::Stat(arg0, arg1) => unsafe { syscall2(4, arg0, arg1) },
// Syscall::Fstat(arg0, arg1) => unsafe { syscall2(5, arg0, arg1) },
// Syscall::Lstat(arg0, arg1) => unsafe { syscall2(6, arg0, arg1) },
// Syscall::Poll(arg0, arg1, arg2) => unsafe { syscall3(7, arg0, arg1, arg2) },
// Syscall::Lseek(arg0, arg1, arg2) => unsafe { syscall3(8, arg0, arg1, arg2) },
// Syscall::Mmap(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(9, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Mprotect(arg0, arg1, arg2) => unsafe { syscall3(10, arg0, arg1, arg2) },
// Syscall::Munmap(arg0, arg1) => unsafe { syscall2(11, arg0, arg1) },
// Syscall::Brk(arg0) => unsafe { syscall1(12, arg0) },
// Syscall::RtSigaction(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(13, arg0, arg1, arg2, arg3)
// },
// Syscall::RtSigprocmask(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(14, arg0, arg1, arg2, arg3)
// },
// Syscall::RtSigreturn => unsafe { syscall0(15) },
// Syscall::Ioctl(arg0, arg1, arg2) => unsafe { syscall3(16, arg0, arg1, arg2) },
// Syscall::Pread64(arg0, arg1, arg2, arg3) => unsafe { syscall4(17, arg0, arg1, arg2, arg3) },
// Syscall::Pwrite64(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(18, arg0, arg1, arg2, arg3)
// },
// Syscall::Readv(arg0, arg1, arg2) => unsafe { syscall3(19, arg0, arg1, arg2) },
// Syscall::Writev(arg0, arg1, arg2) => unsafe { syscall3(20, arg0, arg1, arg2) },
// Syscall::Access(arg0, arg1) => unsafe { syscall2(21, arg0, arg1) },
// Syscall::Pipe(arg0) => unsafe { syscall1(22, arg0) },
// Syscall::Select(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(23, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::SchedYield => unsafe { syscall0(24) },
// Syscall::Mremap(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(25, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Msync(arg0, arg1, arg2) => unsafe { syscall3(26, arg0, arg1, arg2) },
// Syscall::Mincore(arg0, arg1, arg2) => unsafe { syscall3(27, arg0, arg1, arg2) },
// Syscall::Madvise(arg0, arg1, arg2) => unsafe { syscall3(28, arg0, arg1, arg2) },
// Syscall::Shmget(arg0, arg1, arg2) => unsafe { syscall3(29, arg0, arg1, arg2) },
// Syscall::Shmat(arg0, arg1, arg2) => unsafe { syscall3(30, arg0, arg1, arg2) },
// Syscall::Shmctl(arg0, arg1, arg2) => unsafe { syscall3(31, arg0, arg1, arg2) },
// Syscall::Dup(arg0) => unsafe { syscall1(32, arg0) },
// Syscall::Dup2(arg0, arg1) => unsafe { syscall2(33, arg0, arg1) },
// Syscall::Pause => unsafe { syscall0(34) },
// Syscall::Nanosleep(arg0, arg1) => unsafe { syscall2(35, arg0, arg1) },
// Syscall::Getitimer(arg0, arg1) => unsafe { syscall2(36, arg0, arg1) },
// Syscall::Alarm(arg0) => unsafe { syscall1(37, arg0) },
// Syscall::Setitimer(arg0, arg1, arg2) => unsafe { syscall3(38, arg0, arg1, arg2) },
// Syscall::Getpid => unsafe { syscall0(39) },
// Syscall::Sendfile(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(40, arg0, arg1, arg2, arg3)
// },
// Syscall::Socket(arg0, arg1, arg2) => unsafe { syscall3(41, arg0, arg1, arg2) },
// Syscall::Connect(arg0, arg1, arg2) => unsafe { syscall3(42, arg0, arg1, arg2) },
// Syscall::Accept(arg0, arg1, arg2) => unsafe { syscall3(43, arg0, arg1, arg2) },
// Syscall::Sendto(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(44, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Recvfrom(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(45, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Sendmsg(arg0, arg1, arg2) => unsafe { syscall3(46, arg0, arg1, arg2) },
// Syscall::Recvmsg(arg0, arg1, arg2) => unsafe { syscall3(47, arg0, arg1, arg2) },
// Syscall::Shutdown(arg0, arg1) => unsafe { syscall2(48, arg0, arg1) },
// Syscall::Bind(arg0, arg1, arg2) => unsafe { syscall3(49, arg0, arg1, arg2) },
// Syscall::Listen(arg0, arg1) => unsafe { syscall2(50, arg0, arg1) },
// Syscall::Getsockname(arg0, arg1, arg2) => unsafe { syscall3(51, arg0, arg1, arg2) },
// Syscall::Getpeername(arg0, arg1, arg2) => unsafe { syscall3(52, arg0, arg1, arg2) },
// Syscall::Socketpair(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(53, arg0, arg1, arg2, arg3)
// },
// Syscall::Setsockopt(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(54, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Getsockopt(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(55, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Clone(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(56, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fork => unsafe { syscall0(57) },
// Syscall::Vfork => unsafe { syscall0(58) },
// Syscall::Execve(arg0, arg1, arg2) => unsafe { syscall3(59, arg0, arg1, arg2) },
// Syscall::Exit(arg0) => unsafe { syscall1(60, arg0) },
// Syscall::Wait4(arg0, arg1, arg2, arg3) => unsafe { syscall4(61, arg0, arg1, arg2, arg3) },
// Syscall::Kill(arg0, arg1) => unsafe { syscall2(62, arg0, arg1) },
// Syscall::Uname(arg0) => unsafe { syscall1(63, arg0) },
// Syscall::Semget(arg0, arg1, arg2) => unsafe { syscall3(64, arg0, arg1, arg2) },
// Syscall::Semop(arg0, arg1, arg2) => unsafe { syscall3(65, arg0, arg1, arg2) },
// Syscall::Semctl(arg0, arg1, arg2, arg3) => unsafe { syscall4(66, arg0, arg1, arg2, arg3) },
// Syscall::Shmdt(arg0) => unsafe { syscall1(67, arg0) },
// Syscall::Msgget(arg0, arg1) => unsafe { syscall2(68, arg0, arg1) },
// Syscall::Msgsnd(arg0, arg1, arg2, arg3) => unsafe { syscall4(69, arg0, arg1, arg2, arg3) },
// Syscall::Msgrcv(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(70, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Msgctl(arg0, arg1, arg2) => unsafe { syscall3(71, arg0, arg1, arg2) },
// Syscall::Fcntl(arg0, arg1, arg2) => unsafe { syscall3(72, arg0, arg1, arg2) },
// Syscall::Flock(arg0, arg1) => unsafe { syscall2(73, arg0, arg1) },
// Syscall::Fsync(arg0) => unsafe { syscall1(74, arg0) },
// Syscall::Fdatasync(arg0) => unsafe { syscall1(75, arg0) },
// Syscall::Truncate(arg0, arg1) => unsafe { syscall2(76, arg0, arg1) },
// Syscall::Ftruncate(arg0, arg1) => unsafe { syscall2(77, arg0, arg1) },
// Syscall::Getdents(arg0, arg1, arg2) => unsafe { syscall3(78, arg0, arg1, arg2) },
// Syscall::Getcwd(arg0, arg1) => unsafe { syscall2(79, arg0, arg1) },
// Syscall::Chdir(arg0) => unsafe { syscall1(80, arg0) },
// Syscall::Fchdir(arg0) => unsafe { syscall1(81, arg0) },
// Syscall::Rename(arg0, arg1) => unsafe { syscall2(82, arg0, arg1) },
// Syscall::Mkdir(arg0, arg1) => unsafe { syscall2(83, arg0, arg1) },
// Syscall::Rmdir(arg0) => unsafe { syscall1(84, arg0) },
// Syscall::Creat(arg0, arg1) => unsafe { syscall2(85, arg0, arg1) },
// Syscall::Link(arg0, arg1) => unsafe { syscall2(86, arg0, arg1) },
// Syscall::Unlink(arg0) => unsafe { syscall1(87, arg0) },
// Syscall::Symlink(arg0, arg1) => unsafe { syscall2(88, arg0, arg1) },
// Syscall::Readlink(arg0, arg1, arg2) => unsafe { syscall3(89, arg0, arg1, arg2) },
// Syscall::Chmod(arg0, arg1) => unsafe { syscall2(90, arg0, arg1) },
// Syscall::Fchmod(arg0, arg1) => unsafe { syscall2(91, arg0, arg1) },
// Syscall::Chown(arg0, arg1, arg2) => unsafe { syscall3(92, arg0, arg1, arg2) },
// Syscall::Fchown(arg0, arg1, arg2) => unsafe { syscall3(93, arg0, arg1, arg2) },
// Syscall::Lchown(arg0, arg1, arg2) => unsafe { syscall3(94, arg0, arg1, arg2) },
// Syscall::Umask(arg0) => unsafe { syscall1(95, arg0) },
// Syscall::Gettimeofday(arg0, arg1) => unsafe { syscall2(96, arg0, arg1) },
// Syscall::Getrlimit(arg0, arg1) => unsafe { syscall2(97, arg0, arg1) },
// Syscall::Getrusage(arg0, arg1) => unsafe { syscall2(98, arg0, arg1) },
// Syscall::Sysinfo(arg0) => unsafe { syscall1(99, arg0) },
// Syscall::Times(arg0) => unsafe { syscall1(100, arg0) },
// Syscall::Ptrace(arg0, arg1, arg2, arg3) => unsafe { syscall4(101, arg0, arg1, arg2, arg3) },
// Syscall::Getuid => unsafe { syscall0(102) },
// Syscall::Syslog(arg0, arg1, arg2) => unsafe { syscall3(103, arg0, arg1, arg2) },
// Syscall::Getgid => unsafe { syscall0(104) },
// Syscall::Setuid(arg0) => unsafe { syscall1(105, arg0) },
// Syscall::Setgid(arg0) => unsafe { syscall1(106, arg0) },
// Syscall::Geteuid => unsafe { syscall0(107) },
// Syscall::Getegid => unsafe { syscall0(108) },
// Syscall::Setpgid(arg0, arg1) => unsafe { syscall2(109, arg0, arg1) },
// Syscall::Getppid => unsafe { syscall0(110) },
// Syscall::Getpgrp => unsafe { syscall0(111) },
// Syscall::Setsid => unsafe { syscall0(112) },
// Syscall::Setreuid(arg0, arg1) => unsafe { syscall2(113, arg0, arg1) },
// Syscall::Setregid(arg0, arg1) => unsafe { syscall2(114, arg0, arg1) },
// Syscall::Getgroups(arg0, arg1) => unsafe { syscall2(115, arg0, arg1) },
// Syscall::Setgroups(arg0, arg1) => unsafe { syscall2(116, arg0, arg1) },
// Syscall::Setresuid(arg0, arg1, arg2) => unsafe { syscall3(117, arg0, arg1, arg2) },
// Syscall::Getresuid(arg0, arg1, arg2) => unsafe { syscall3(118, arg0, arg1, arg2) },
// Syscall::Setresgid(arg0, arg1, arg2) => unsafe { syscall3(119, arg0, arg1, arg2) },
// Syscall::Getresgid(arg0, arg1, arg2) => unsafe { syscall3(120, arg0, arg1, arg2) },
// Syscall::Getpgid(arg0) => unsafe { syscall1(121, arg0) },
// Syscall::Setfsuid(arg0) => unsafe { syscall1(122, arg0) },
// Syscall::Setfsgid(arg0) => unsafe { syscall1(123, arg0) },
// Syscall::Getsid(arg0) => unsafe { syscall1(124, arg0) },
// Syscall::Capget(arg0, arg1) => unsafe { syscall2(125, arg0, arg1) },
// Syscall::Capset(arg0, arg1) => unsafe { syscall2(126, arg0, arg1) },
// Syscall::RtSigpending(arg0, arg1) => unsafe { syscall2(127, arg0, arg1) },
// Syscall::RtSigtimedwait(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(128, arg0, arg1, arg2, arg3)
// },
// Syscall::RtSigqueueinfo(arg0, arg1, arg2) => unsafe { syscall3(129, arg0, arg1, arg2) },
// Syscall::RtSigsuspend(arg0, arg1) => unsafe { syscall2(130, arg0, arg1) },
// Syscall::Sigaltstack(arg0, arg1) => unsafe { syscall2(131, arg0, arg1) },
// Syscall::Utime(arg0, arg1) => unsafe { syscall2(132, arg0, arg1) },
// Syscall::Mknod(arg0, arg1, arg2) => unsafe { syscall3(133, arg0, arg1, arg2) },
// Syscall::Uselib(arg0) => unsafe { syscall1(134, arg0) },
// Syscall::Personality(arg0) => unsafe { syscall1(135, arg0) },
// Syscall::Ustat(arg0, arg1) => unsafe { syscall2(136, arg0, arg1) },
// Syscall::Statfs(arg0, arg1) => unsafe { syscall2(137, arg0, arg1) },
// Syscall::Fstatfs(arg0, arg1) => unsafe { syscall2(138, arg0, arg1) },
// Syscall::Sysfs(arg0, arg1, arg2) => unsafe { syscall3(139, arg0, arg1, arg2) },
// Syscall::Getpriority(arg0, arg1) => unsafe { syscall2(140, arg0, arg1) },
// Syscall::Setpriority(arg0, arg1, arg2) => unsafe { syscall3(141, arg0, arg1, arg2) },
// Syscall::SchedSetparam(arg0, arg1) => unsafe { syscall2(142, arg0, arg1) },
// Syscall::SchedGetparam(arg0, arg1) => unsafe { syscall2(143, arg0, arg1) },
// Syscall::SchedSetscheduler(arg0, arg1, arg2) => unsafe { syscall3(144, arg0, arg1, arg2) },
// Syscall::SchedGetscheduler(arg0) => unsafe { syscall1(145, arg0) },
// Syscall::SchedGetPriorityMax(arg0) => unsafe { syscall1(146, arg0) },
// Syscall::SchedGetPriorityMin(arg0) => unsafe { syscall1(147, arg0) },
// Syscall::SchedRrGetInterval(arg0, arg1) => unsafe { syscall2(148, arg0, arg1) },
// Syscall::Mlock(arg0, arg1) => unsafe { syscall2(149, arg0, arg1) },
// Syscall::Munlock(arg0, arg1) => unsafe { syscall2(150, arg0, arg1) },
// Syscall::Mlockall(arg0) => unsafe { syscall1(151, arg0) },
// Syscall::Munlockall => unsafe { syscall0(152) },
// Syscall::Vhangup => unsafe { syscall0(153) },
// Syscall::ModifyLdt(arg0, arg1, arg2) => unsafe { syscall3(154, arg0, arg1, arg2) },
// Syscall::PivotRoot(arg0, arg1) => unsafe { syscall2(155, arg0, arg1) },
// Syscall::_Sysctl(arg0) => unsafe { syscall1(156, arg0) },
// Syscall::Prctl(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(157, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::ArchPrctl(arg0, arg1) => unsafe { syscall2(158, arg0, arg1) },
// Syscall::Adjtimex(arg0) => unsafe { syscall1(159, arg0) },
// Syscall::Setrlimit(arg0, arg1) => unsafe { syscall2(160, arg0, arg1) },
// Syscall::Chroot(arg0) => unsafe { syscall1(161, arg0) },
// Syscall::Sync => unsafe { syscall0(162) },
// Syscall::Acct(arg0) => unsafe { syscall1(163, arg0) },
// Syscall::Settimeofday(arg0, arg1) => unsafe { syscall2(164, arg0, arg1) },
// Syscall::Mount(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(165, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Umount2(arg0, arg1) => unsafe { syscall2(166, arg0, arg1) },
// Syscall::Swapon(arg0, arg1) => unsafe { syscall2(167, arg0, arg1) },
// Syscall::Swapoff(arg0) => unsafe { syscall1(168, arg0) },
// Syscall::Reboot(arg0, arg1, arg2, arg3) => unsafe { syscall4(169, arg0, arg1, arg2, arg3) },
// Syscall::Sethostname(arg0, arg1) => unsafe { syscall2(170, arg0, arg1) },
// Syscall::Setdomainname(arg0, arg1) => unsafe { syscall2(171, arg0, arg1) },
// Syscall::Iopl(arg0) => unsafe { syscall1(172, arg0) },
// Syscall::Ioperm(arg0, arg1, arg2) => unsafe { syscall3(173, arg0, arg1, arg2) },
// Syscall::CreateModule(arg0, arg1) => unsafe { syscall2(174, arg0, arg1) },
// Syscall::InitModule(arg0, arg1, arg2) => unsafe { syscall3(175, arg0, arg1, arg2) },
// Syscall::DeleteModule(arg0, arg1) => unsafe { syscall2(176, arg0, arg1) },
// Syscall::GetKernelSyms(arg0) => unsafe { syscall1(177, arg0) },
// Syscall::QueryModule(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(178, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Quotactl(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(179, arg0, arg1, arg2, arg3)
// },
// Syscall::Nfsservctl(arg0, arg1, arg2) => unsafe { syscall3(180, arg0, arg1, arg2) },
// Syscall::Getpmsg => unsafe { syscall0(181) },
// Syscall::Putpmsg => unsafe { syscall0(182) },
// Syscall::AfsSyscall => unsafe { syscall0(183) },
// Syscall::Tuxcall => unsafe { syscall0(184) },
// Syscall::Security => unsafe { syscall0(185) },
// Syscall::Gettid => unsafe { syscall0(186) },
// Syscall::Readahead(arg0, arg1, arg2) => unsafe { syscall3(187, arg0, arg1, arg2) },
// Syscall::Setxattr(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(188, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Lsetxattr(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(189, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fsetxattr(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(190, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Getxattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(191, arg0, arg1, arg2, arg3)
// },
// Syscall::Lgetxattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(192, arg0, arg1, arg2, arg3)
// },
// Syscall::Fgetxattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(193, arg0, arg1, arg2, arg3)
// },
// Syscall::Listxattr(arg0, arg1, arg2) => unsafe { syscall3(194, arg0, arg1, arg2) },
// Syscall::Llistxattr(arg0, arg1, arg2) => unsafe { syscall3(195, arg0, arg1, arg2) },
// Syscall::Flistxattr(arg0, arg1, arg2) => unsafe { syscall3(196, arg0, arg1, arg2) },
// Syscall::Removexattr(arg0, arg1) => unsafe { syscall2(197, arg0, arg1) },
// Syscall::Lremovexattr(arg0, arg1) => unsafe { syscall2(198, arg0, arg1) },
// Syscall::Fremovexattr(arg0, arg1) => unsafe { syscall2(199, arg0, arg1) },
// Syscall::Tkill(arg0, arg1) => unsafe { syscall2(200, arg0, arg1) },
// Syscall::Time(arg0) => unsafe { syscall1(201, arg0) },
// Syscall::Futex(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(202, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::SchedSetaffinity(arg0, arg1, arg2) => unsafe { syscall3(203, arg0, arg1, arg2) },
// Syscall::SchedGetaffinity(arg0, arg1, arg2) => unsafe { syscall3(204, arg0, arg1, arg2) },
// Syscall::SetThreadArea(arg0) => unsafe { syscall1(205, arg0) },
// Syscall::IoSetup(arg0, arg1) => unsafe { syscall2(206, arg0, arg1) },
// Syscall::IoDestroy(arg0) => unsafe { syscall1(207, arg0) },
// Syscall::IoGetevents(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(208, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoSubmit(arg0, arg1, arg2) => unsafe { syscall3(209, arg0, arg1, arg2) },
// Syscall::IoCancel(arg0, arg1, arg2) => unsafe { syscall3(210, arg0, arg1, arg2) },
// Syscall::GetThreadArea(arg0) => unsafe { syscall1(211, arg0) },
// Syscall::LookupDcookie(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(212, arg0, arg1, arg2, arg3)
// },
// Syscall::EpollCreate(arg0) => unsafe { syscall1(213, arg0) },
// Syscall::EpollCtlOld => unsafe { syscall0(214) },
// Syscall::EpollWaitOld => unsafe { syscall0(215) },
// Syscall::RemapFilePages(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(216, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Getdents64(arg0, arg1, arg2) => unsafe { syscall3(217, arg0, arg1, arg2) },
// Syscall::SetTidAddress(arg0) => unsafe { syscall1(218, arg0) },
// Syscall::RestartSyscall => unsafe { syscall0(219) },
// Syscall::Semtimedop(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(220, arg0, arg1, arg2, arg3)
// },
// Syscall::Fadvise64(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(221, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerCreate(arg0, arg1, arg2) => unsafe { syscall3(222, arg0, arg1, arg2) },
// Syscall::TimerSettime(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(223, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerGettime(arg0, arg1) => unsafe { syscall2(224, arg0, arg1) },
// Syscall::TimerGetoverrun(arg0) => unsafe { syscall1(225, arg0) },
// Syscall::TimerDelete(arg0) => unsafe { syscall1(226, arg0) },
// Syscall::ClockSettime(arg0, arg1) => unsafe { syscall2(227, arg0, arg1) },
// Syscall::ClockGettime(arg0, arg1) => unsafe { syscall2(228, arg0, arg1) },
// Syscall::ClockGetres(arg0, arg1) => unsafe { syscall2(229, arg0, arg1) },
// Syscall::ClockNanosleep(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(230, arg0, arg1, arg2, arg3)
// },
// Syscall::ExitGroup(arg0) => unsafe { syscall1(231, arg0) },
// Syscall::EpollWait(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(232, arg0, arg1, arg2, arg3)
// },
// Syscall::EpollCtl(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(233, arg0, arg1, arg2, arg3)
// },
// Syscall::Tgkill(arg0, arg1, arg2) => unsafe { syscall3(234, arg0, arg1, arg2) },
// Syscall::Utimes(arg0, arg1) => unsafe { syscall2(235, arg0, arg1) },
// Syscall::Vserver => unsafe { syscall0(236) },
// Syscall::Mbind(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(237, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::SetMempolicy(arg0, arg1, arg2) => unsafe { syscall3(238, arg0, arg1, arg2) },
// Syscall::GetMempolicy(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(239, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MqOpen(arg0, arg1, arg2, arg3) => unsafe { syscall4(240, arg0, arg1, arg2, arg3) },
// Syscall::MqUnlink(arg0) => unsafe { syscall1(241, arg0) },
// Syscall::MqTimedsend(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(242, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MqTimedreceive(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(243, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MqNotify(arg0, arg1) => unsafe { syscall2(244, arg0, arg1) },
// Syscall::MqGetsetattr(arg0, arg1, arg2) => unsafe { syscall3(245, arg0, arg1, arg2) },
// Syscall::KexecLoad(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(246, arg0, arg1, arg2, arg3)
// },
// Syscall::Waitid(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(247, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::AddKey(arg0, arg1, arg2, arg3) => unsafe { syscall4(248, arg0, arg1, arg2, arg3) },
// Syscall::RequestKey(arg0, arg1, arg2) => unsafe { syscall3(249, arg0, arg1, arg2) },
// Syscall::Keyctl(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(250, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoprioSet(arg0, arg1, arg2) => unsafe { syscall3(251, arg0, arg1, arg2) },
// Syscall::IoprioGet(arg0, arg1) => unsafe { syscall2(252, arg0, arg1) },
// Syscall::InotifyInit => unsafe { syscall0(253) },
// Syscall::InotifyAddWatch(arg0, arg1, arg2) => unsafe { syscall3(254, arg0, arg1, arg2) },
// Syscall::InotifyRmWatch(arg0, arg1) => unsafe { syscall2(255, arg0, arg1) },
// Syscall::MigratePages(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(256, arg0, arg1, arg2, arg3)
// },
// Syscall::Openat(arg0, arg1, arg2, arg3) => unsafe { syscall4(257, arg0, arg1, arg2, arg3) },
// Syscall::Mkdirat(arg0, arg1, arg2) => unsafe { syscall3(258, arg0, arg1, arg2) },
// Syscall::Mknodat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(259, arg0, arg1, arg2, arg3)
// },
// Syscall::Fchownat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(260, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Futimesat(arg0, arg1, arg2) => unsafe { syscall3(261, arg0, arg1, arg2) },
// Syscall::Newfstatat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(262, arg0, arg1, arg2, arg3)
// },
// Syscall::Unlinkat(arg0, arg1, arg2) => unsafe { syscall3(263, arg0, arg1, arg2) },
// Syscall::Renameat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(264, arg0, arg1, arg2, arg3)
// },
// Syscall::Linkat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(265, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Symlinkat(arg0, arg1, arg2) => unsafe { syscall3(266, arg0, arg1, arg2) },
// Syscall::Readlinkat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(267, arg0, arg1, arg2, arg3)
// },
// Syscall::Fchmodat(arg0, arg1, arg2) => unsafe { syscall3(268, arg0, arg1, arg2) },
// Syscall::Faccessat(arg0, arg1, arg2) => unsafe { syscall3(269, arg0, arg1, arg2) },
// Syscall::Pselect6(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(270, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Ppoll(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(271, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Unshare(arg0) => unsafe { syscall1(272, arg0) },
// Syscall::SetRobustList(arg0, arg1) => unsafe { syscall2(273, arg0, arg1) },
// Syscall::GetRobustList(arg0, arg1, arg2) => unsafe { syscall3(274, arg0, arg1, arg2) },
// Syscall::Splice(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(275, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Tee(arg0, arg1, arg2, arg3) => unsafe { syscall4(276, arg0, arg1, arg2, arg3) },
// Syscall::SyncFileRange(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(277, arg0, arg1, arg2, arg3)
// },
// Syscall::Vmsplice(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(278, arg0, arg1, arg2, arg3)
// },
// Syscall::MovePages(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(279, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Utimensat(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(280, arg0, arg1, arg2, arg3)
// },
// Syscall::EpollPwait(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(281, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Signalfd(arg0, arg1, arg2) => unsafe { syscall3(282, arg0, arg1, arg2) },
// Syscall::TimerfdCreate(arg0, arg1) => unsafe { syscall2(283, arg0, arg1) },
// Syscall::Eventfd(arg0, arg1) => unsafe { syscall2(284, arg0, arg1) },
// Syscall::Fallocate(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(285, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerfdSettime(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(286, arg0, arg1, arg2, arg3)
// },
// Syscall::TimerfdGettime(arg0, arg1) => unsafe { syscall2(287, arg0, arg1) },
// Syscall::Accept4(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(288, arg0, arg1, arg2, arg3)
// },
// Syscall::Signalfd4(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(289, arg0, arg1, arg2, arg3)
// },
// Syscall::Eventfd2(arg0, arg1) => unsafe { syscall2(290, arg0, arg1) },
// Syscall::EpollCreate1(arg0) => unsafe { syscall1(291, arg0) },
// Syscall::Dup3(arg0, arg1, arg2) => unsafe { syscall3(292, arg0, arg1, arg2) },
// Syscall::Pipe2(arg0, arg1) => unsafe { syscall2(293, arg0, arg1) },
// Syscall::InotifyInit1(arg0) => unsafe { syscall1(294, arg0) },
// Syscall::Preadv(arg0, arg1, arg2, arg3) => unsafe { syscall4(295, arg0, arg1, arg2, arg3) },
// Syscall::Pwritev(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(296, arg0, arg1, arg2, arg3)
// },
// Syscall::RtTgsigqueueinfo(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(297, arg0, arg1, arg2, arg3)
// },
// Syscall::PerfEventOpen(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(298, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Recvmmsg(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(299, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::FanotifyInit(arg0, arg1) => unsafe { syscall2(300, arg0, arg1) },
// Syscall::FanotifyMark(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(301, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Prlimit64(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(302, arg0, arg1, arg2, arg3)
// },
// Syscall::NameToHandleAt(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(303, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::OpenByHandleAt(arg0, arg1, arg2) => unsafe { syscall3(304, arg0, arg1, arg2) },
// Syscall::ClockAdjtime(arg0, arg1) => unsafe { syscall2(305, arg0, arg1) },
// Syscall::Syncfs(arg0) => unsafe { syscall1(306, arg0) },
// Syscall::Sendmmsg(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(307, arg0, arg1, arg2, arg3)
// },
// Syscall::Setns(arg0, arg1) => unsafe { syscall2(308, arg0, arg1) },
// Syscall::Getcpu(arg0, arg1, arg2) => unsafe { syscall3(309, arg0, arg1, arg2) },
// Syscall::ProcessVmReadv(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(310, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::ProcessVmWritev(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(311, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Kcmp(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(312, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::FinitModule(arg0, arg1, arg2) => unsafe { syscall3(313, arg0, arg1, arg2) },
// Syscall::SchedSetattr(arg0, arg1, arg2) => unsafe { syscall3(314, arg0, arg1, arg2) },
// Syscall::SchedGetattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(315, arg0, arg1, arg2, arg3)
// },
// Syscall::Renameat2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(316, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Seccomp(arg0, arg1, arg2) => unsafe { syscall3(317, arg0, arg1, arg2) },
// Syscall::Getrandom(arg0, arg1, arg2) => unsafe { syscall3(318, arg0, arg1, arg2) },
// Syscall::MemfdCreate(arg0, arg1) => unsafe { syscall2(319, arg0, arg1) },
// Syscall::KexecFileLoad(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(320, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Bpf(arg0, arg1, arg2) => unsafe { syscall3(321, arg0, arg1, arg2) },
// Syscall::Execveat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(322, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Userfaultfd(arg0) => unsafe { syscall1(323, arg0) },
// Syscall::Membarrier(arg0, arg1) => unsafe { syscall2(324, arg0, arg1) },
// Syscall::Mlock2(arg0, arg1, arg2) => unsafe { syscall3(325, arg0, arg1, arg2) },
// Syscall::CopyFileRange(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(326, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Preadv2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(327, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Pwritev2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(328, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::PkeyMprotect(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(329, arg0, arg1, arg2, arg3)
// },
// Syscall::PkeyAlloc(arg0, arg1) => unsafe { syscall2(330, arg0, arg1) },
// Syscall::PkeyFree(arg0) => unsafe { syscall1(331, arg0) },
// Syscall::Statx(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(332, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoPgetevents(arg0, arg1, arg2, arg3, arg4, arg5) => unsafe {
// syscall6(333, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// Syscall::Rseq(arg0, arg1, arg2, arg3) => unsafe { syscall4(334, arg0, arg1, arg2, arg3) },
// Syscall::PidfdSendSignal(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(424, arg0, arg1, arg2, arg3)
// },
// Syscall::IoUringSetup(arg0, arg1) => unsafe { syscall2(425, arg0, arg1) },
// Syscall::IoUringEnter(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(426, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::IoUringRegister(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(427, arg0, arg1, arg2, arg3)
// },
// Syscall::OpenTree(arg0, arg1, arg2) => unsafe { syscall3(428, arg0, arg1, arg2) },
// Syscall::MoveMount(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(429, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fsopen(arg0, arg1, arg2) => unsafe { syscall3(430, arg0, arg1, arg2) },
// Syscall::Fsconfig(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(431, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fsmount(arg0, arg1, arg2) => unsafe { syscall3(432, arg0, arg1, arg2) },
// Syscall::Fspick(arg0, arg1, arg2) => unsafe { syscall3(433, arg0, arg1, arg2) },
// Syscall::PidfdOpen(arg0, arg1) => unsafe { syscall2(434, arg0, arg1) },
// Syscall::Clone3(arg0, arg1) => unsafe { syscall2(435, arg0, arg1) },
// Syscall::CloseRange(arg0, arg1, arg2) => unsafe { syscall3(436, arg0, arg1, arg2) },
// Syscall::Openat2(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(437, arg0, arg1, arg2, arg3)
// },
// Syscall::PidfdGetfd(arg0, arg1, arg2) => unsafe { syscall3(438, arg0, arg1, arg2) },
// Syscall::Faccessat2(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(439, arg0, arg1, arg2, arg3)
// },
// Syscall::ProcessMadvise(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(440, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::EpollPwait2(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(441, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::MountSetattr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(442, arg0, arg1, arg2, arg3)
// },
// Syscall::QuotactlFd(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(443, arg0, arg1, arg2, arg3)
// },
// Syscall::LandlockCreateRuleset(arg0, arg1, arg2) => unsafe {
// syscall3(444, arg0, arg1, arg2)
// },
// Syscall::LandlockAddRule(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(445, arg0, arg1, arg2, arg3)
// },
// Syscall::LandlockRestrictSelf(arg0, arg1) => unsafe { syscall2(446, arg0, arg1) },
// Syscall::MemfdSecret(arg0) => unsafe { syscall1(447, arg0) },
// Syscall::ProcessMrelease(arg0, arg1) => unsafe { syscall2(448, arg0, arg1) },
// Syscall::FutexWaitv(arg0, arg1, arg2) => unsafe { syscall3(449, arg0, arg1, arg2) },
// Syscall::SetMempolicyHomeNode(arg0, arg1, arg2) => unsafe {
// syscall3(450, arg0, arg1, arg2)
// },
// Syscall::Cachestat(arg0, arg1, arg2, arg3, arg4) => unsafe {
// syscall5(451, arg0, arg1, arg2, arg3, arg4)
// },
// Syscall::Fchmodat2(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(452, arg0, arg1, arg2, arg3)
// },
// Syscall::MapShadowStack(arg0, arg1) => unsafe { syscall2(453, arg0, arg1) },
// Syscall::FutexWake(arg0, arg1, arg2) => unsafe { syscall3(454, arg0, arg1, arg2) },
// Syscall::FutexWait(arg0, arg1, arg2) => unsafe { syscall3(455, arg0, arg1, arg2) },
// Syscall::FutexRequeue(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(456, arg0, arg1, arg2, arg3)
// },
// Syscall::Statmount(arg0, arg1, arg2) => unsafe { syscall3(457, arg0, arg1, arg2) },
// Syscall::Listmount(arg0, arg1, arg2) => unsafe { syscall3(458, arg0, arg1, arg2) },
// Syscall::LsmGetSelfAttr(arg0, arg1, arg2, arg3) => unsafe {
// syscall4(459, arg0, arg1, arg2, arg3)
// },
// Syscall::LsmSetSelfAttr(arg0, arg1, arg2) => unsafe { syscall3(460, arg0, arg1, arg2) },
// Syscall::LsmListModules(arg0, arg1) => unsafe { syscall2(461, arg0, arg1) },
// Syscall::Unknown(syscall_num, args) => match args {
// [arg0, arg1, arg2, arg3, arg4, arg5] => unsafe {
// syscall6(syscall_num, arg0, arg1, arg2, arg3, arg4, arg5)
// },
// _ => unreachable!(),
// },
// }
}
-380
View File
@@ -1,380 +0,0 @@
///https://docs.rs/syscalls/latest/syscalls/x86_64/enum.Sysno.html
#[non_exhaustive]
#[repr(i64)]
#[derive(Debug, PartialEq, Eq)]
#[allow(non_camel_case_types)]
pub enum Sysno {
read = libc::SYS_read,
write = libc::SYS_write,
open = libc::SYS_open,
close = libc::SYS_close,
stat = libc::SYS_stat,
fstat = libc::SYS_fstat,
lstat = libc::SYS_lstat,
poll = libc::SYS_poll,
lseek = libc::SYS_lseek,
mmap = libc::SYS_mmap,
mprotect = libc::SYS_mprotect,
munmap = libc::SYS_munmap,
brk = libc::SYS_brk,
rt_sigaction = libc::SYS_rt_sigaction,
rt_sigprocmask = libc::SYS_rt_sigprocmask,
rt_sigreturn = libc::SYS_rt_sigreturn,
ioctl = libc::SYS_ioctl,
pread64 = libc::SYS_pread64,
pwrite64 = libc::SYS_pwrite64,
readv = libc::SYS_readv,
writev = libc::SYS_writev,
access = libc::SYS_access,
pipe = libc::SYS_pipe,
select = libc::SYS_select,
sched_yield = libc::SYS_sched_yield,
mremap = libc::SYS_mremap,
msync = libc::SYS_msync,
mincore = libc::SYS_mincore,
madvise = libc::SYS_madvise,
shmget = libc::SYS_shmget,
shmat = libc::SYS_shmat,
shmctl = libc::SYS_shmctl,
dup = libc::SYS_dup,
dup2 = libc::SYS_dup2,
pause = libc::SYS_pause,
nanosleep = libc::SYS_nanosleep,
getitimer = libc::SYS_getitimer,
alarm = libc::SYS_alarm,
setitimer = libc::SYS_setitimer,
getpid = libc::SYS_getpid,
sendfile = libc::SYS_sendfile,
socket = libc::SYS_socket,
connect = libc::SYS_connect,
accept = libc::SYS_accept,
sendto = libc::SYS_sendto,
recvfrom = libc::SYS_recvfrom,
sendmsg = libc::SYS_sendmsg,
recvmsg = libc::SYS_recvmsg,
shutdown = libc::SYS_shutdown,
bind = libc::SYS_bind,
listen = libc::SYS_listen,
getsockname = libc::SYS_getsockname,
getpeername = libc::SYS_getpeername,
socketpair = libc::SYS_socketpair,
setsockopt = libc::SYS_setsockopt,
getsockopt = libc::SYS_getsockopt,
clone = libc::SYS_clone,
fork = libc::SYS_fork,
vfork = libc::SYS_vfork,
execve = libc::SYS_execve,
exit = libc::SYS_exit,
wait4 = libc::SYS_wait4,
kill = libc::SYS_kill,
uname = libc::SYS_uname,
semget = libc::SYS_semget,
semop = libc::SYS_semop,
semctl = libc::SYS_semctl,
shmdt = libc::SYS_shmdt,
msgget = libc::SYS_msgget,
msgsnd = libc::SYS_msgsnd,
msgrcv = libc::SYS_msgrcv,
msgctl = libc::SYS_msgctl,
fcntl = libc::SYS_fcntl,
flock = libc::SYS_flock,
fsync = libc::SYS_fsync,
fdatasync = libc::SYS_fdatasync,
truncate = libc::SYS_truncate,
ftruncate = libc::SYS_ftruncate,
getdents = libc::SYS_getdents,
getcwd = libc::SYS_getcwd,
chdir = libc::SYS_chdir,
fchdir = libc::SYS_fchdir,
rename = libc::SYS_rename,
mkdir = libc::SYS_mkdir,
rmdir = libc::SYS_rmdir,
creat = libc::SYS_creat,
link = libc::SYS_link,
unlink = libc::SYS_unlink,
symlink = libc::SYS_symlink,
readlink = libc::SYS_readlink,
chmod = libc::SYS_chmod,
fchmod = libc::SYS_fchmod,
chown = libc::SYS_chown,
fchown = libc::SYS_fchown,
lchown = libc::SYS_lchown,
umask = libc::SYS_umask,
gettimeofday = libc::SYS_gettimeofday,
getrlimit = libc::SYS_getrlimit,
getrusage = libc::SYS_getrusage,
sysinfo = libc::SYS_sysinfo,
times = libc::SYS_times,
ptrace = libc::SYS_ptrace,
getuid = libc::SYS_getuid,
syslog = libc::SYS_syslog,
getgid = libc::SYS_getgid,
setuid = libc::SYS_setuid,
setgid = libc::SYS_setgid,
geteuid = libc::SYS_geteuid,
getegid = libc::SYS_getegid,
setpgid = libc::SYS_setpgid,
getppid = libc::SYS_getppid,
getpgrp = libc::SYS_getpgrp,
setsid = libc::SYS_setsid,
setreuid = libc::SYS_setreuid,
setregid = libc::SYS_setregid,
getgroups = libc::SYS_getgroups,
setgroups = libc::SYS_setgroups,
setresuid = libc::SYS_setresuid,
getresuid = libc::SYS_getresuid,
setresgid = libc::SYS_setresgid,
getresgid = libc::SYS_getresgid,
getpgid = libc::SYS_getpgid,
setfsuid = libc::SYS_setfsuid,
setfsgid = libc::SYS_setfsgid,
getsid = libc::SYS_getsid,
capget = libc::SYS_capget,
capset = libc::SYS_capset,
rt_sigpending = libc::SYS_rt_sigpending,
rt_sigtimedwait = 128,
rt_sigqueueinfo = 129,
rt_sigsuspend = 130,
sigaltstack = 131,
utime = 132,
mknod = 133,
uselib = 134,
personality = 135,
ustat = 136,
statfs = 137,
fstatfs = 138,
sysfs = 139,
getpriority = 140,
setpriority = 141,
sched_setparam = 142,
sched_getparam = 143,
sched_setscheduler = 144,
sched_getscheduler = 145,
sched_get_priority_max = 146,
sched_get_priority_min = 147,
sched_rr_get_interval = 148,
mlock = 149,
munlock = 150,
mlockall = 151,
munlockall = 152,
vhangup = 153,
modify_ldt = 154,
pivot_root = 155,
_sysctl = 156,
prctl = 157,
arch_prctl = 158,
adjtimex = 159,
setrlimit = 160,
chroot = 161,
sync = 162,
acct = 163,
settimeofday = 164,
mount = 165,
umount2 = 166,
swapon = 167,
swapoff = 168,
reboot = 169,
sethostname = 170,
setdomainname = 171,
iopl = 172,
ioperm = 173,
create_module = 174,
init_module = 175,
delete_module = 176,
get_kernel_syms = 177,
query_module = 178,
quotactl = 179,
nfsservctl = 180,
getpmsg = 181,
putpmsg = 182,
afs_syscall = 183,
tuxcall = 184,
security = 185,
gettid = 186,
readahead = 187,
setxattr = 188,
lsetxattr = 189,
fsetxattr = 190,
getxattr = 191,
lgetxattr = 192,
fgetxattr = 193,
listxattr = 194,
llistxattr = 195,
flistxattr = 196,
removexattr = 197,
lremovexattr = 198,
fremovexattr = 199,
tkill = 200,
time = 201,
futex = 202,
sched_setaffinity = 203,
sched_getaffinity = 204,
set_thread_area = 205,
io_setup = 206,
io_destroy = 207,
io_getevents = 208,
io_submit = 209,
io_cancel = 210,
get_thread_area = 211,
lookup_dcookie = 212,
epoll_create = 213,
epoll_ctl_old = 214,
epoll_wait_old = 215,
remap_file_pages = 216,
getdents64 = 217,
set_tid_address = 218,
restart_syscall = 219,
semtimedop = 220,
fadvise64 = 221,
timer_create = 222,
timer_settime = 223,
timer_gettime = 224,
timer_getoverrun = 225,
timer_delete = 226,
clock_settime = 227,
clock_gettime = 228,
clock_getres = 229,
clock_nanosleep = 230,
exit_group = 231,
epoll_wait = 232,
epoll_ctl = 233,
tgkill = 234,
utimes = 235,
vserver = 236,
mbind = 237,
set_mempolicy = 238,
get_mempolicy = 239,
mq_open = 240,
mq_unlink = 241,
mq_timedsend = 242,
mq_timedreceive = 243,
mq_notify = 244,
mq_getsetattr = 245,
kexec_load = 246,
waitid = 247,
add_key = 248,
request_key = 249,
keyctl = 250,
ioprio_set = 251,
ioprio_get = 252,
inotify_init = 253,
inotify_add_watch = 254,
inotify_rm_watch = 255,
migrate_pages = 256,
openat = 257,
mkdirat = 258,
mknodat = 259,
fchownat = 260,
futimesat = 261,
newfstatat = 262,
unlinkat = 263,
renameat = 264,
linkat = 265,
symlinkat = 266,
readlinkat = 267,
fchmodat = 268,
faccessat = 269,
pselect6 = 270,
ppoll = 271,
unshare = 272,
set_robust_list = 273,
get_robust_list = 274,
splice = 275,
tee = 276,
sync_file_range = 277,
vmsplice = 278,
move_pages = 279,
utimensat = 280,
epoll_pwait = 281,
signalfd = 282,
timerfd_create = 283,
eventfd = 284,
fallocate = 285,
timerfd_settime = 286,
timerfd_gettime = 287,
accept4 = 288,
signalfd4 = 289,
eventfd2 = 290,
epoll_create1 = 291,
dup3 = 292,
pipe2 = 293,
inotify_init1 = 294,
preadv = 295,
pwritev = 296,
rt_tgsigqueueinfo = 297,
perf_event_open = 298,
recvmmsg = 299,
fanotify_init = 300,
fanotify_mark = 301,
prlimit64 = 302,
name_to_handle_at = 303,
open_by_handle_at = 304,
clock_adjtime = 305,
syncfs = 306,
sendmmsg = 307,
setns = 308,
getcpu = 309,
process_vm_readv = 310,
process_vm_writev = 311,
kcmp = 312,
finit_module = 313,
sched_setattr = 314,
sched_getattr = 315,
renameat2 = 316,
seccomp = 317,
getrandom = 318,
memfd_create = 319,
kexec_file_load = 320,
bpf = 321,
execveat = 322,
userfaultfd = 323,
membarrier = 324,
mlock2 = 325,
copy_file_range = 326,
preadv2 = 327,
pwritev2 = 328,
pkey_mprotect = 329,
pkey_alloc = 330,
pkey_free = 331,
statx = 332,
io_pgetevents = 333,
rseq = 334,
pidfd_send_signal = 424,
io_uring_setup = 425,
io_uring_enter = 426,
io_uring_register = 427,
open_tree = 428,
move_mount = 429,
fsopen = 430,
fsconfig = 431,
fsmount = 432,
fspick = 433,
pidfd_open = 434,
clone3 = 435,
close_range = 436,
openat2 = 437,
pidfd_getfd = 438,
faccessat2 = 439,
process_madvise = 440,
epoll_pwait2 = 441,
mount_setattr = 442,
quotactl_fd = 443,
landlock_create_ruleset = 444,
landlock_add_rule = 445,
landlock_restrict_self = 446,
memfd_secret = 447,
process_mrelease = 448,
futex_waitv = 449,
set_mempolicy_home_node = 450,
cachestat = 451,
fchmodat2 = 452,
map_shadow_stack = 453,
futex_wake = 454,
futex_wait = 455,
futex_requeue = 456,
statmount = 457,
listmount = 458,
lsm_get_self_attr = 459,
lsm_set_self_attr = 460,
lsm_list_modules = 461,
}
+178 -40
View File
@@ -1,10 +1,19 @@
use core::slice;
use std::any::{self, Any, TypeId};
use std::ffi::CStr;
use std::marker::PhantomData; use std::marker::PhantomData;
use std::{fmt::Debug, mem::transmute}; use std::{fmt::Debug, mem::transmute};
use bincode::{Decode, Encode}; use bincode::{Decode, Encode};
const MAX_STR_LEN: usize = 30;
pub trait AsPtr {
fn as_ptr(&self) -> usize;
}
#[derive(Encode, Decode)] #[derive(Encode, Decode)]
pub struct Ptr<T>(libc::c_ulong, PhantomData<T>); pub struct Ptr<T>(pub libc::c_ulong, PhantomData<T>);
impl<T> Ptr<T> impl<T> Ptr<T>
where where
@@ -20,53 +29,182 @@ impl<T: Debug> Debug for Ptr<T> {
unsafe { unsafe {
let ptr = transmute::<libc::c_ulong, *const T>(self.0); let ptr = transmute::<libc::c_ulong, *const T>(self.0);
// *(ptr as *mut u64) = 1;
// println!("{}", *ptr);
// let ptr = std::mem::transmute::<libc::c_ulong, *const libc::c_char>(self.0);
// let value = core::ptr::read::<libc::c_char>(ptr);
f.write_str(format!("0x{:X} -> {:?}", self.0, *ptr).as_str()) f.write_str(format!("0x{:X} -> {:?}", self.0, *ptr).as_str())
} }
// Ok(())
} }
} }
impl BufferLocation for Ptr<libc::c_char> { impl<T: Debug> AsPtr for Ptr<T> {
fn get_location(&self) -> libc::c_char { fn as_ptr(&self) -> usize {
unsafe { core::ptr::read::<libc::c_char>(self.0 as *const libc::c_char) } self.0 as usize
} }
} }
pub trait BufferLocation { #[derive(Encode, Decode)]
fn get_location(&self) -> libc::c_char; pub struct PtrVoid(pub libc::c_ulong);
}
#[derive(Encode, Decode, Debug)] impl PtrVoid {
pub struct Buf<T: BufferLocation>(pub T); pub fn new(location: libc::c_ulong) -> Self {
Self(location) // ooo
// impl<T: BufferLocation> Buf<T> {
// pub fn
// }
// impl<T: Debug + BufferLocation> Debug for Buf<T> {
// fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
// unsafe {
// // let addr = self.0.get_location();
// // let data =
// // &crate::kern_buffers::create_and_use_kernel_buffer(addr as *const libc::c_char)
// // .unwrap();
// // f.write_str(data)?
// // "F"
// };
// Ok(())
// }
// }
impl<T: BufferLocation> BufferLocation for Buf<T> {
fn get_location(&self) -> libc::c_char {
self.0.get_location()
} }
} }
impl Debug for PtrVoid {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(format!("0x{:X} -> void", self.0).as_str())
}
}
impl AsPtr for PtrVoid {
fn as_ptr(&self) -> usize {
self.0 as usize
}
}
fn trunc(str: &str) -> String {
let mut out_str = str[0..MAX_STR_LEN.min(str.len())].to_string();
if str.len() > MAX_STR_LEN {
out_str += "...";
}
out_str
}
#[derive(Encode, Decode)]
pub struct Buf<T>(pub libc::c_ulong, PhantomData<T>);
impl<T: Debug> Buf<T> {
pub fn new(ptr: libc::c_ulong) -> Self {
Self(ptr, PhantomData)
}
pub fn read(&self, len: usize) -> &[T] {
// Convert the address to a raw pointer
let ptr = self.0 as *const T;
// Create a slice from the raw pointer and length
let slice = unsafe { slice::from_raw_parts::<T>(ptr, len) };
// Copy the data into a Vec to return owned data
slice
}
}
impl<T: Debug> Debug for Buf<T> {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(format!("Buf<{}>", any::type_name::<T>()).as_str())
// f.debug_tuple("Buf").field(self.read().len()).finish()
}
}
impl<T: Debug> AsPtr for Buf<T> {
fn as_ptr(&self) -> usize {
self.0 as usize
}
}
#[derive(Encode, Decode)]
pub struct StrRef(pub libc::c_ulong);
impl StrRef {
pub fn new(ptr: libc::c_ulong) -> Self {
Self(ptr)
}
pub fn read(&self) -> String {
let ptr = self.0 as *const libc::c_char;
let c_str = unsafe { CStr::from_ptr(ptr) };
c_str.to_string_lossy().to_string()
}
}
impl Debug for StrRef {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(format!("\"{}\"", trunc(self.read().as_str())).as_str())
// f.debug_tuple("Buf").field(self.read().len()).finish()
}
}
impl AsPtr for StrRef {
fn as_ptr(&self) -> usize {
self.0 as usize
}
}
#[repr(u8)]
#[derive(Encode, Decode)]
pub enum Void {
__variant1,
__variant2,
}
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct AioContext;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct Iocb;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct IoEvent;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct IoUringParams;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct Mmsghdr;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct GetcpuCache;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct RobustListHead;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct FutexWaitv;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct KexecSegment;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct CapUserHeaderT;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct CapUserDataT;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct Rlimit64;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct FileHandle;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct PerfEventAttr;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct SchedAttr;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct CloneArgs;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct BpfAttr;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct Statx;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct Rseq;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct OpenHow;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct MountAttr;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct LandlockRulesetAttr;
#[repr(C)]
#[derive(Debug, Clone, Copy, Encode, Decode)]
pub struct LandlockRule;