diff options
author | Alan Somers <asomers@gmail.com> | 2020-05-16 15:55:30 -0600 |
---|---|---|
committer | Alan Somers <asomers@gmail.com> | 2020-05-16 15:55:30 -0600 |
commit | b9203336208378bedb39df124f2e8e64383ef4fc (patch) | |
tree | a53cc4b3eaee8dc3de496857785438780e0686c0 /src/sys | |
parent | 465a8f73134de0eec1bf28c749cc89cece0c7a1a (diff) | |
download | nix-b9203336208378bedb39df124f2e8e64383ef4fc.zip |
Apply `repr(transparent)` to several FFI types
repr(transparent) is required in order to safely cast between an FFI
type and its NewType. This commit applies that attribute to PollFd,
EpollEvent, IpMembershipRequest, Ipv6MembershipRequest, TimeVal, and
IoVec.
Fixes #1241
Diffstat (limited to 'src/sys')
-rw-r--r-- | src/sys/epoll.rs | 2 | ||||
-rw-r--r-- | src/sys/socket/mod.rs | 4 | ||||
-rw-r--r-- | src/sys/time.rs | 2 | ||||
-rw-r--r-- | src/sys/uio.rs | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/src/sys/epoll.rs b/src/sys/epoll.rs index fef6f4e3..074a8451 100644 --- a/src/sys/epoll.rs +++ b/src/sys/epoll.rs @@ -43,7 +43,7 @@ libc_bitflags!{ } #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] -#[repr(C)] +#[repr(transparent)] pub struct EpollEvent { event: libc::epoll_event, } diff --git a/src/sys/socket/mod.rs b/src/sys/socket/mod.rs index 1f627614..52768c93 100644 --- a/src/sys/socket/mod.rs +++ b/src/sys/socket/mod.rs @@ -278,7 +278,7 @@ cfg_if! { /// Request for multicast socket operations /// /// This is a wrapper type around `ip_mreq`. -#[repr(C)] +#[repr(transparent)] #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub struct IpMembershipRequest(libc::ip_mreq); @@ -297,7 +297,7 @@ impl IpMembershipRequest { /// Request for ipv6 multicast socket operations /// /// This is a wrapper type around `ipv6_mreq`. -#[repr(C)] +#[repr(transparent)] #[derive(Clone, Copy, Debug, Eq, PartialEq)] pub struct Ipv6MembershipRequest(libc::ipv6_mreq); diff --git a/src/sys/time.rs b/src/sys/time.rs index 06475001..51baa9e1 100644 --- a/src/sys/time.rs +++ b/src/sys/time.rs @@ -245,7 +245,7 @@ impl fmt::Display for TimeSpec { -#[repr(C)] +#[repr(transparent)] #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub struct TimeVal(timeval); diff --git a/src/sys/uio.rs b/src/sys/uio.rs index d089084e..7dfeff77 100644 --- a/src/sys/uio.rs +++ b/src/sys/uio.rs @@ -158,7 +158,7 @@ pub fn process_vm_readv(pid: ::unistd::Pid, local_iov: &[IoVec<&mut [u8]>], remo Errno::result(res).map(|r| r as usize) } -#[repr(C)] +#[repr(transparent)] #[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)] pub struct IoVec<T>(libc::iovec, PhantomData<T>); |