diff --git a/src/header/sys_uio/mod.rs b/src/header/sys_uio/mod.rs index ddd714ab17..0b99c7b8e8 100644 --- a/src/header/sys_uio/mod.rs +++ b/src/header/sys_uio/mod.rs @@ -25,7 +25,7 @@ pub struct iovec { impl iovec { unsafe fn to_slice(&self) -> &mut [u8] { - unsafe { slice::from_raw_parts_mut(self.iov_base as *mut u8, self.iov_len as usize) } + unsafe { slice::from_raw_parts_mut(self.iov_base.cast::(), self.iov_len) } } } @@ -54,7 +54,7 @@ pub unsafe extern "C" fn preadv( iovcnt: c_int, offset: off_t, ) -> ssize_t { - if iovcnt < 0 || iovcnt > IOV_MAX { + if !(0..=IOV_MAX).contains(&iovcnt) { platform::ERRNO.set(errno::EINVAL); return -1; } @@ -62,7 +62,7 @@ pub unsafe extern "C" fn preadv( let iovs = unsafe { slice::from_raw_parts(iov, iovcnt as usize) }; let mut vec = unsafe { gather(iovs) }; - let ret = unsafe { unistd::pread(fd, vec.as_mut_ptr() as *mut c_void, vec.len(), offset) }; + let ret = unsafe { unistd::pread(fd, vec.as_mut_ptr().cast::(), vec.len(), offset) }; unsafe { scatter(iovs, vec) }; @@ -77,7 +77,7 @@ pub unsafe extern "C" fn pwritev( iovcnt: c_int, offset: off_t, ) -> ssize_t { - if iovcnt < 0 || iovcnt > IOV_MAX { + if !(0..=IOV_MAX).contains(&iovcnt) { platform::ERRNO.set(errno::EINVAL); return -1; } @@ -85,13 +85,13 @@ pub unsafe extern "C" fn pwritev( let iovs = unsafe { slice::from_raw_parts(iov, iovcnt as usize) }; let vec = unsafe { gather(iovs) }; - unsafe { unistd::pwrite(fd, vec.as_ptr() as *const c_void, vec.len(), offset) } + unsafe { unistd::pwrite(fd, vec.as_ptr().cast::(), vec.len(), offset) } } /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn readv(fd: c_int, iov: *const iovec, iovcnt: c_int) -> ssize_t { - if iovcnt < 0 || iovcnt > IOV_MAX { + if !(0..=IOV_MAX).contains(&iovcnt) { platform::ERRNO.set(errno::EINVAL); return -1; } @@ -99,7 +99,7 @@ pub unsafe extern "C" fn readv(fd: c_int, iov: *const iovec, iovcnt: c_int) -> s let iovs = unsafe { slice::from_raw_parts(iov, iovcnt as usize) }; let mut vec = unsafe { gather(iovs) }; - let ret = unsafe { unistd::read(fd, vec.as_mut_ptr() as *mut c_void, vec.len()) }; + let ret = unsafe { unistd::read(fd, vec.as_mut_ptr().cast::(), vec.len()) }; unsafe { scatter(iovs, vec) }; @@ -109,7 +109,7 @@ pub unsafe extern "C" fn readv(fd: c_int, iov: *const iovec, iovcnt: c_int) -> s /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn writev(fd: c_int, iov: *const iovec, iovcnt: c_int) -> ssize_t { - if iovcnt < 0 || iovcnt > IOV_MAX { + if !(0..=IOV_MAX).contains(&iovcnt) { platform::ERRNO.set(errno::EINVAL); return -1; } @@ -117,5 +117,5 @@ pub unsafe extern "C" fn writev(fd: c_int, iov: *const iovec, iovcnt: c_int) -> let iovs = unsafe { slice::from_raw_parts(iov, iovcnt as usize) }; let vec = unsafe { gather(iovs) }; - unsafe { unistd::write(fd, vec.as_ptr() as *const c_void, vec.len()) } + unsafe { unistd::write(fd, vec.as_ptr().cast::(), vec.len()) } } diff --git a/src/header/sys_un/mod.rs b/src/header/sys_un/mod.rs index cbc2d73c55..2f6d430512 100644 --- a/src/header/sys_un/mod.rs +++ b/src/header/sys_un/mod.rs @@ -13,8 +13,8 @@ pub struct sockaddr_un { impl sockaddr_un { pub fn path_offset(&self) -> usize { - let base = self as *const _ as usize; - let path = &self.sun_path as *const _ as usize; + let base = core::ptr::from_ref(self) as usize; + let path = &raw const self.sun_path as usize; log::trace!("base: {:#X}, path: {:#X}", base, path); path - base } diff --git a/src/header/tar/mod.rs b/src/header/tar/mod.rs index 1f61bea2e1..4b575f3e87 100644 --- a/src/header/tar/mod.rs +++ b/src/header/tar/mod.rs @@ -142,7 +142,7 @@ impl TarHeader { let mut header_copy = *self; header_copy.chksum.fill(b' '); let bytes = - unsafe { slice::from_raw_parts(&header_copy as *const _ as *const u8, HEADER_SIZE) }; + unsafe { slice::from_raw_parts((&raw const header_copy).cast::(), HEADER_SIZE) }; bytes.iter().map(|&b| b as usize).sum() } } diff --git a/src/platform/mod.rs b/src/platform/mod.rs index 3bcb826463..a61c6a2c00 100644 --- a/src/platform/mod.rs +++ b/src/platform/mod.rs @@ -84,7 +84,7 @@ pub trait WriteByte: fmt::Write { fn write_u8(&mut self, byte: u8) -> fmt::Result; } -impl<'a, W: WriteByte> WriteByte for &'a mut W { +impl WriteByte for &mut W { fn write_u8(&mut self, byte: u8) -> fmt::Result { (**self).write_u8(byte) } diff --git a/src/platform/types.rs b/src/platform/types.rs index b980501d93..e0b925a3b7 100644 --- a/src/platform/types.rs +++ b/src/platform/types.rs @@ -1,7 +1,5 @@ //! C data types for this platform. -use core::i32; - // Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help enable // more optimization opportunities around it recognizing things like // malloc/free.