shadow_rs/host/syscall/handler/
select.rs
1use shadow_shim_helper_rs::syscall_types::ForeignPtr;
2
3use crate::cshadow as c;
4use crate::host::syscall::handler::{SyscallContext, SyscallHandler};
5use crate::host::syscall::types::SyscallError;
6
7impl SyscallHandler {
8 log_syscall!(
9 select,
10 std::ffi::c_int,
11 std::ffi::c_int,
12 *const std::ffi::c_void,
13 *const std::ffi::c_void,
14 *const std::ffi::c_void,
15 *const linux_api::time::kernel_old_timeval,
16 );
17 pub fn select(
18 ctx: &mut SyscallContext,
19 _n: std::ffi::c_int,
20 _inp: ForeignPtr<linux_api::posix_types::kernel_fd_set>,
21 _outp: ForeignPtr<linux_api::posix_types::kernel_fd_set>,
22 _exp: ForeignPtr<linux_api::posix_types::kernel_fd_set>,
23 _tvp: ForeignPtr<linux_api::time::kernel_old_timeval>,
24 ) -> Result<std::ffi::c_int, SyscallError> {
25 Self::legacy_syscall(c::syscallhandler_select, ctx)
26 }
27
28 log_syscall!(
29 pselect6,
30 std::ffi::c_int,
31 std::ffi::c_int,
32 *const std::ffi::c_void,
33 *const std::ffi::c_void,
34 *const std::ffi::c_void,
35 *const linux_api::time::kernel_timespec,
36 *const std::ffi::c_void,
37 );
38 pub fn pselect6(
39 ctx: &mut SyscallContext,
40 _n: std::ffi::c_int,
41 _inp: ForeignPtr<linux_api::posix_types::kernel_fd_set>,
42 _outp: ForeignPtr<linux_api::posix_types::kernel_fd_set>,
43 _exp: ForeignPtr<linux_api::posix_types::kernel_fd_set>,
44 _tsp: ForeignPtr<linux_api::time::kernel_timespec>,
45 _sig: ForeignPtr<()>,
46 ) -> Result<std::ffi::c_int, SyscallError> {
47 Self::legacy_syscall(c::syscallhandler_pselect6, ctx)
48 }
49}