From cbfab81f3d3fe678c20ed8861fcddda98198db68 Mon Sep 17 00:00:00 2001 From: Tomoaki Kawada Date: Wed, 23 Aug 2023 19:07:18 +0900 Subject: [PATCH] kmc-solid: Replace `{From,Into}Inner` impls with `*RawFd` for `Socket` Follows how other targets are implemented. --- library/std/src/os/solid/io.rs | 6 +++--- library/std/src/sys/solid/net.rs | 30 +++++++++++++----------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/library/std/src/os/solid/io.rs b/library/std/src/os/solid/io.rs index 683edc1ca85..54583c73af1 100644 --- a/library/std/src/os/solid/io.rs +++ b/library/std/src/os/solid/io.rs @@ -378,7 +378,7 @@ macro_rules! impl_as_raw_fd { impl AsRawFd for net::$t { #[inline] fn as_raw_fd(&self) -> RawFd { - *self.as_inner().socket().as_inner() + self.as_inner().socket().as_raw_fd() } } )*}; @@ -391,7 +391,7 @@ macro_rules! impl_from_raw_fd { impl FromRawFd for net::$t { #[inline] unsafe fn from_raw_fd(fd: RawFd) -> net::$t { - let socket = sys::net::Socket::from_inner(fd); + let socket = unsafe { sys::net::Socket::from_raw_fd(fd) }; net::$t::from_inner(sys_common::net::$t::from_inner(socket)) } } @@ -405,7 +405,7 @@ macro_rules! impl_into_raw_fd { impl IntoRawFd for net::$t { #[inline] fn into_raw_fd(self) -> RawFd { - self.into_inner().into_socket().into_inner() + self.into_inner().into_socket().into_raw_fd() } } )*}; diff --git a/library/std/src/sys/solid/net.rs b/library/std/src/sys/solid/net.rs index 1eae0fc0642..4b25ca30280 100644 --- a/library/std/src/sys/solid/net.rs +++ b/library/std/src/sys/solid/net.rs @@ -5,9 +5,10 @@ use crate::{ io::{self, BorrowedBuf, BorrowedCursor, ErrorKind, IoSlice, IoSliceMut}, mem, net::{Shutdown, SocketAddr}, + os::solid::io::{AsRawFd, FromRawFd, IntoRawFd}, ptr, str, sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr}, - sys_common::{AsInner, FromInner, IntoInner}, + sys_common::IntoInner, time::Duration, }; @@ -111,13 +112,6 @@ impl FileDesc { } } -impl AsInner for FileDesc { - #[inline] - fn as_inner(&self) -> &c_int { - &self.fd - } -} - impl Drop for FileDesc { fn drop(&mut self) { unsafe { netc::close(self.fd) }; @@ -454,7 +448,7 @@ impl Socket { pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> { let mut nonblocking = nonblocking as c_int; cvt(unsafe { - netc::ioctl(*self.as_inner(), netc::FIONBIO, (&mut nonblocking) as *mut c_int as _) + netc::ioctl(self.0.raw(), netc::FIONBIO, (&mut nonblocking) as *mut c_int as _) }) .map(drop) } @@ -466,25 +460,27 @@ impl Socket { // This method is used by sys_common code to abstract over targets. pub fn as_raw(&self) -> c_int { - *self.as_inner() + self.0.raw() } } -impl AsInner for Socket { +impl AsRawFd for Socket { #[inline] - fn as_inner(&self) -> &c_int { - self.0.as_inner() + fn as_raw_fd(&self) -> c_int { + self.0.fd } } -impl FromInner for Socket { - fn from_inner(fd: c_int) -> Socket { +impl FromRawFd for Socket { + #[inline] + unsafe fn from_raw_fd(fd: c_int) -> Socket { Socket(FileDesc::new(fd)) } } -impl IntoInner for Socket { - fn into_inner(self) -> c_int { +impl IntoRawFd for Socket { + #[inline] + fn into_raw_fd(self) -> c_int { self.0.into_raw() } }