Kinda get network working

This commit is contained in:
Michael Mikovsky
2025-08-12 22:24:00 -06:00
parent 8b2a596b9a
commit 856d7e467f
15 changed files with 3316 additions and 3219 deletions
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "client"
version = "0.1.0"
edition = "2024"
[dependencies]
syscall_lib = { path = "../syscall_lib" }
syscaller = "0.2.2"
+85
View File
@@ -0,0 +1,85 @@
mod syscall_exec;
use std::{
io::{Read, Write},
net::{TcpListener, TcpStream},
thread,
};
use syscall_lib::{Message, ProgramMemory, Syscall};
fn main() {
let listener = TcpListener::bind("127.0.0.1:1234").unwrap();
for stream in listener.incoming() {
let mut stream = stream.unwrap();
thread::spawn(move || {
let _ = handle_connection(&mut stream);
println!("Connection from {} closed", stream.peer_addr().unwrap());
});
}
}
fn handle_connection(stream: &mut TcpStream) -> Result<(), std::io::Error> {
println!("Got connection from {}", stream.peer_addr()?);
// let mut memory = ProgramMemory::default();
loop {
let mut size_buf = [0u8; 4];
stream.read_exact(&mut size_buf)?;
let size = u32::from_be_bytes(size_buf);
let mut buf = vec![0u8; size as usize];
stream.read_exact(&mut buf)?;
let decoded = Syscall::decode(&buf).unwrap();
println!("{:?} -> ", decoded);
// let result = match decoded {
// Syscall::Write(..) => 0,
// _ => syscall_exec::execute_syscall(decoded),
// };
let result = syscall_exec::execute_syscall(decoded);
println!("{:?}", result);
let bytes: [u8; 8] = result.to_be_bytes();
stream.write_all(&bytes)?;
stream.flush()?;
// let response = bincode::serialize(&result).unwrap();
// stream.write_all(&response).unwrap();
// match decoded {
// Message::RequestMemory(addr) => {
// let mem_map = memory.lock().unwrap();
// let data = mem_map.get(&addr);
// let response = bincode::serialize(&data).unwrap();
// stream.write_all(&response).unwrap();
// }
// Message::UpdateMemory(addr, data) => {
// let mut mem_map = memory.lock().unwrap();
// mem_map.insert(addr, data);
// println!("Memory at {} updated.", addr);
// }
// Message::Syscall(_, _) => {
// // The host doesn't execute the syscall.
// // It just waits for the result.
// }
// Message::SyscallReturn(ret, new_mem) => {
// println!("Syscall returned with value: {}", ret);
// if let Some((addr, data)) = new_mem {
// let mut mem_map = memory.lock().unwrap();
// mem_map.insert(addr, data);
// println!("New memory object created at {}.", addr);
// }
// }
// }
// println!("{:?}", decoded);
}
}
+658
View File
@@ -0,0 +1,658 @@
use syscall_lib::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,
// )
// }
// }
// 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 {
match syscall_obj {
Syscall::Read(arg0, arg1, arg2) => unsafe { syscall3(0, 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!(),
},
}
}