Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ jobs:
cargo update --package=half --precise=2.2.1
cargo update --package=flate2 --precise=1.0.35
cargo update --package=serde --precise=1.0.228
cargo update --package=web-sys --precise=0.3.104
cargo update --package=syn --precise=2.0.106
cargo update --package=textwrap --precise=0.16.1
cargo update --package=parking_lot --precise=0.12.4
Expand Down Expand Up @@ -596,6 +597,7 @@ jobs:
cargo update --package=half --precise=2.2.1
cargo update --package=flate2 --precise=1.0.35
cargo update --package=serde --precise=1.0.228
cargo update --package=web-sys --precise=0.3.104
cargo update --package=syn --precise=2.0.106
cargo update --package=textwrap --precise=0.16.1
cargo update --package=parking_lot --precise=0.12.4
Expand Down
6 changes: 3 additions & 3 deletions src/backend/libc/event/syscalls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ pub(crate) unsafe fn epoll_wait(
if let Some(epoll_pwait2_func) = epoll_pwait2.get() {
return ret_u32(epoll_pwait2_func(
borrowed_fd(epoll),
events.0.cast::<c::epoll_event>(),
events.0.cast(),
events.1.try_into().unwrap_or(i32::MAX),
crate::utils::option_as_ptr(timeout).cast(),
null(),
Expand All @@ -604,7 +604,7 @@ pub(crate) unsafe fn epoll_wait(

ret_u32(epoll_pwait2(
borrowed_fd(epoll),
events.0.cast::<c::epoll_event>(),
events.0.cast(),
events.1.try_into().unwrap_or(i32::MAX),
crate::utils::option_as_ptr(timeout).cast(),
null(),
Expand All @@ -622,7 +622,7 @@ pub(crate) unsafe fn epoll_wait(

ret_u32(c::epoll_wait(
borrowed_fd(epoll),
events.0.cast::<c::epoll_event>(),
events.0.cast(),
events.1.try_into().unwrap_or(i32::MAX),
timeout,
))
Expand Down
51 changes: 19 additions & 32 deletions src/backend/libc/fs/syscalls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ pub(crate) fn getdents_uninit(
unsafe {
ret_usize(getdents64(
borrowed_fd(fd),
buf.as_mut_ptr().cast::<c::c_void>(),
buf.as_mut_ptr().cast(),
buf.len(),
))
}
Expand Down Expand Up @@ -2377,7 +2377,7 @@ pub(crate) unsafe fn getxattr(
ret_usize(c::getxattr(
path.as_ptr(),
name.as_ptr(),
value.0.cast::<c::c_void>(),
value.0.cast(),
value.1,
))
}
Expand All @@ -2389,7 +2389,7 @@ pub(crate) unsafe fn getxattr(
let ptr = if value.1 == 0 {
core::ptr::null_mut()
} else {
value.0.cast::<c::c_void>()
value.0.cast()
};
ret_usize(c::getxattr(
path.as_ptr(),
Expand All @@ -2413,7 +2413,7 @@ pub(crate) unsafe fn lgetxattr(
ret_usize(c::lgetxattr(
path.as_ptr(),
name.as_ptr(),
value.0.cast::<c::c_void>(),
value.0.cast(),
value.1,
))
}
Expand All @@ -2425,7 +2425,7 @@ pub(crate) unsafe fn lgetxattr(
let ptr = if value.1 == 0 {
core::ptr::null_mut()
} else {
value.0.cast::<c::c_void>()
value.0.cast()
};

ret_usize(c::getxattr(
Expand All @@ -2450,7 +2450,7 @@ pub(crate) unsafe fn fgetxattr(
ret_usize(c::fgetxattr(
borrowed_fd(fd),
name.as_ptr(),
value.0.cast::<c::c_void>(),
value.0.cast(),
value.1,
))
}
Expand All @@ -2462,7 +2462,7 @@ pub(crate) unsafe fn fgetxattr(
let ptr = if value.1 == 0 {
core::ptr::null_mut()
} else {
value.0.cast::<c::c_void>()
value.0.cast()
};
ret_usize(c::fgetxattr(
borrowed_fd(fd),
Expand All @@ -2487,7 +2487,7 @@ pub(crate) fn setxattr(
ret(c::setxattr(
path.as_ptr(),
name.as_ptr(),
value.as_ptr().cast::<c::c_void>(),
value.as_ptr().cast(),
value.len(),
flags.bits() as i32,
))
Expand All @@ -2498,7 +2498,7 @@ pub(crate) fn setxattr(
ret(c::setxattr(
path.as_ptr(),
name.as_ptr(),
value.as_ptr().cast::<c::c_void>(),
value.as_ptr().cast(),
value.len(),
0,
flags.bits() as i32,
Expand All @@ -2518,7 +2518,7 @@ pub(crate) fn lsetxattr(
ret(c::lsetxattr(
path.as_ptr(),
name.as_ptr(),
value.as_ptr().cast::<c::c_void>(),
value.as_ptr().cast(),
value.len(),
flags.bits() as i32,
))
Expand All @@ -2529,7 +2529,7 @@ pub(crate) fn lsetxattr(
ret(c::setxattr(
path.as_ptr(),
name.as_ptr(),
value.as_ptr().cast::<c::c_void>(),
value.as_ptr().cast(),
value.len(),
0,
flags.bits() as i32 | c::XATTR_NOFOLLOW,
Expand All @@ -2549,7 +2549,7 @@ pub(crate) fn fsetxattr(
ret(c::fsetxattr(
borrowed_fd(fd),
name.as_ptr(),
value.as_ptr().cast::<c::c_void>(),
value.as_ptr().cast(),
value.len(),
flags.bits() as i32,
))
Expand All @@ -2560,7 +2560,7 @@ pub(crate) fn fsetxattr(
ret(c::fsetxattr(
borrowed_fd(fd),
name.as_ptr(),
value.as_ptr().cast::<c::c_void>(),
value.as_ptr().cast(),
value.len(),
0,
flags.bits() as i32,
Expand All @@ -2572,40 +2572,27 @@ pub(crate) fn fsetxattr(
pub(crate) unsafe fn listxattr(path: &CStr, list: (*mut u8, usize)) -> io::Result<usize> {
#[cfg(not(apple))]
{
ret_usize(c::listxattr(
path.as_ptr(),
list.0.cast::<ffi::c_char>(),
list.1,
))
ret_usize(c::listxattr(path.as_ptr(), list.0.cast(), list.1))
}

#[cfg(apple)]
{
ret_usize(c::listxattr(
path.as_ptr(),
list.0.cast::<ffi::c_char>(),
list.1,
0,
))
ret_usize(c::listxattr(path.as_ptr(), list.0.cast(), list.1, 0))
}
}

#[cfg(any(apple, linux_kernel, target_os = "hurd"))]
pub(crate) unsafe fn llistxattr(path: &CStr, list: (*mut u8, usize)) -> io::Result<usize> {
#[cfg(not(apple))]
{
ret_usize(c::llistxattr(
path.as_ptr(),
list.0.cast::<ffi::c_char>(),
list.1,
))
ret_usize(c::llistxattr(path.as_ptr(), list.0.cast(), list.1))
}

#[cfg(apple)]
{
ret_usize(c::listxattr(
path.as_ptr(),
list.0.cast::<ffi::c_char>(),
list.0.cast(),
list.1,
c::XATTR_NOFOLLOW,
))
Expand All @@ -2618,12 +2605,12 @@ pub(crate) unsafe fn flistxattr(fd: BorrowedFd<'_>, list: (*mut u8, usize)) -> i

#[cfg(not(apple))]
{
ret_usize(c::flistxattr(fd, list.0.cast::<ffi::c_char>(), list.1))
ret_usize(c::flistxattr(fd, list.0.cast(), list.1))
}

#[cfg(apple)]
{
ret_usize(c::flistxattr(fd, list.0.cast::<ffi::c_char>(), list.1, 0))
ret_usize(c::flistxattr(fd, list.0.cast(), list.1, 0))
}
}

Expand Down
12 changes: 6 additions & 6 deletions src/backend/libc/io/syscalls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ pub(crate) fn readv(fd: BorrowedFd<'_>, bufs: &mut [IoSliceMut<'_>]) -> io::Resu
unsafe {
ret_usize(c::readv(
borrowed_fd(fd),
bufs.as_ptr().cast::<c::iovec>(),
bufs.as_ptr().cast(),
min(bufs.len(), MAX_IOV) as c::c_int,
))
}
Expand All @@ -86,7 +86,7 @@ pub(crate) fn writev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>]) -> io::Result<usi
unsafe {
ret_usize(c::writev(
borrowed_fd(fd),
bufs.as_ptr().cast::<c::iovec>(),
bufs.as_ptr().cast(),
min(bufs.len(), MAX_IOV) as c::c_int,
))
}
Expand Down Expand Up @@ -116,7 +116,7 @@ pub(crate) fn preadv(
unsafe {
ret_usize(c::preadv(
borrowed_fd(fd),
bufs.as_ptr().cast::<c::iovec>(),
bufs.as_ptr().cast(),
min(bufs.len(), MAX_IOV) as c::c_int,
offset,
))
Expand All @@ -143,7 +143,7 @@ pub(crate) fn pwritev(fd: BorrowedFd<'_>, bufs: &[IoSlice<'_>], offset: u64) ->
unsafe {
ret_usize(c::pwritev(
borrowed_fd(fd),
bufs.as_ptr().cast::<c::iovec>(),
bufs.as_ptr().cast(),
min(bufs.len(), MAX_IOV) as c::c_int,
offset,
))
Expand All @@ -162,7 +162,7 @@ pub(crate) fn preadv2(
unsafe {
ret_usize(c::preadv2(
borrowed_fd(fd),
bufs.as_ptr().cast::<c::iovec>(),
bufs.as_ptr().cast(),
min(bufs.len(), MAX_IOV) as c::c_int,
offset,
bitflags_bits!(flags),
Expand All @@ -182,7 +182,7 @@ pub(crate) fn pwritev2(
unsafe {
ret_usize(c::pwritev2(
borrowed_fd(fd),
bufs.as_ptr().cast::<c::iovec>(),
bufs.as_ptr().cast(),
min(bufs.len(), MAX_IOV) as c::c_int,
offset,
bitflags_bits!(flags),
Expand Down
4 changes: 2 additions & 2 deletions src/backend/libc/net/addr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ impl SocketAddrStorage {
// SAFETY: `self.0` is a `sockaddr_storage` so it has enough space.
unsafe {
AddressFamily::from_raw(crate::backend::net::read_sockaddr::read_sa_family(
crate::utils::as_ptr(&self.0).cast::<c::sockaddr>(),
crate::utils::as_ptr(&self.0).cast(),
))
}
}
Expand All @@ -332,7 +332,7 @@ impl SocketAddrStorage {
// SAFETY: `self.0` is a `sockaddr_storage` so it has enough space.
unsafe {
crate::backend::net::read_sockaddr::initialize_family_to_unspec(
crate::utils::as_mut_ptr(&mut self.0).cast::<c::sockaddr>(),
crate::utils::as_mut_ptr(&mut self.0).cast(),
)
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/backend/libc/net/read_sockaddr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ pub(crate) unsafe fn sockaddr_nonempty(storage: *const c::sockaddr, len: SocketA
}

assert!(len as usize >= size_of::<c::sa_family_t>());
let family: c::c_int = read_sa_family(storage.cast::<c::sockaddr>()).into();
let family: c::c_int = read_sa_family(storage.cast()).into();
if family == c::AF_UNSPEC {
return false;
}
Expand Down Expand Up @@ -240,7 +240,7 @@ pub(crate) fn read_sockaddr_xdp(addr: &SocketAddrAny) -> Result<SocketAddrXdp, E
return Err(Errno::AFNOSUPPORT);
}
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_xdp>());
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_xdp>() };
let decode: &c::sockaddr_xdp = unsafe { &*addr.as_ptr().cast() };

// This ignores the `sxdp_shared_umem_fd` field, which is only expected to
// be significant in `bind` calls, and not returned from `acceptfrom` or
Expand All @@ -259,6 +259,6 @@ pub(crate) fn read_sockaddr_netlink(addr: &SocketAddrAny) -> Result<SocketAddrNe
return Err(Errno::AFNOSUPPORT);
}
assert!(addr.addr_len() as usize >= size_of::<c::sockaddr_nl>());
let decode = unsafe { &*addr.as_ptr().cast::<c::sockaddr_nl>() };
let decode: &c::sockaddr_nl = unsafe { &*addr.as_ptr().cast() };
Ok(SocketAddrNetlink::new(decode.nl_pid, decode.nl_groups))
}
14 changes: 7 additions & 7 deletions src/backend/libc/net/syscalls.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,14 +64,14 @@ pub(crate) unsafe fn recvfrom(
// `recvfrom` does not write to the storage if the socket is
// connection-oriented sockets, so we initialize the family field to
// `AF_UNSPEC` so that we can detect this case.
initialize_family_to_unspec(addr.storage.as_mut_ptr().cast::<c::sockaddr>());
initialize_family_to_unspec(addr.storage.as_mut_ptr().cast());

let nread = ret_send_recv(c::recvfrom(
borrowed_fd(fd),
buf.0.cast(),
send_recv_len(buf.1),
bitflags_bits!(flags),
addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
addr.storage.as_mut_ptr().cast(),
&mut addr.len,
))?;

Expand Down Expand Up @@ -309,7 +309,7 @@ pub(crate) fn acceptfrom(sockfd: BorrowedFd<'_>) -> io::Result<(OwnedFd, Option<
let mut addr = SocketAddrBuf::new();
let owned_fd = ret_owned_fd(c::accept(
borrowed_fd(sockfd),
addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
addr.storage.as_mut_ptr().cast(),
&mut addr.len,
))?;
Ok((owned_fd, addr.into_any_option()))
Expand All @@ -335,7 +335,7 @@ pub(crate) fn acceptfrom_with(
let mut addr = SocketAddrBuf::new();
let owned_fd = ret_owned_fd(c::accept4(
borrowed_fd(sockfd),
addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
addr.storage.as_mut_ptr().cast(),
&mut addr.len,
flags.bits() as c::c_int,
))?;
Expand Down Expand Up @@ -389,7 +389,7 @@ pub(crate) fn getsockname(sockfd: BorrowedFd<'_>) -> io::Result<SocketAddrAny> {
let mut addr = SocketAddrBuf::new();
ret(c::getsockname(
borrowed_fd(sockfd),
addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
addr.storage.as_mut_ptr().cast(),
&mut addr.len,
))?;
Ok(addr.into_any())
Expand All @@ -401,7 +401,7 @@ pub(crate) fn getpeername(sockfd: BorrowedFd<'_>) -> io::Result<Option<SocketAdd
let mut addr = SocketAddrBuf::new();
ret(c::getpeername(
borrowed_fd(sockfd),
addr.storage.as_mut_ptr().cast::<c::sockaddr>(),
addr.storage.as_mut_ptr().cast(),
&mut addr.len,
))?;
Ok(addr.into_any_option())
Expand All @@ -425,7 +425,7 @@ pub(crate) fn socketpair(
c::c_int::from(domain.0),
(type_.0 | flags.bits()) as c::c_int,
raw_protocol as c::c_int,
fds.as_mut_ptr().cast::<c::c_int>(),
fds.as_mut_ptr().cast(),
))?;

let [fd0, fd1] = fds.assume_init();
Expand Down
Loading
Loading