diff --git a/kernel/src/net/socket/base.rs b/kernel/src/net/socket/base.rs index 6b38f181..a7215d1a 100644 --- a/kernel/src/net/socket/base.rs +++ b/kernel/src/net/socket/base.rs @@ -118,6 +118,8 @@ pub trait Socket: Sync + Send + Debug + Any { } /// # `shutdown` fn shutdown(&self, how: ShutdownTemp) -> Result<(), SystemError> { + // TODO 构建shutdown系统调用 + // set shutdown bit Err(ENOSYS) } // sockatmark diff --git a/kernel/src/net/socket/common/shutdown.rs b/kernel/src/net/socket/common/shutdown.rs index 48bf98d2..69c90ad2 100644 --- a/kernel/src/net/socket/common/shutdown.rs +++ b/kernel/src/net/socket/common/shutdown.rs @@ -53,21 +53,21 @@ impl Shutdown { .fetch_or(SEND_SHUTDOWN, core::sync::atomic::Ordering::SeqCst); } - // pub fn is_recv_shutdown(&self) -> bool { - // self.bit.load(core::sync::atomic::Ordering::SeqCst) & RCV_SHUTDOWN != 0 - // } + pub fn is_recv_shutdown(&self) -> bool { + self.bit.load(core::sync::atomic::Ordering::SeqCst) & RCV_SHUTDOWN != 0 + } - // pub fn is_send_shutdown(&self) -> bool { - // self.bit.load(core::sync::atomic::Ordering::SeqCst) & SEND_SHUTDOWN != 0 - // } + pub fn is_send_shutdown(&self) -> bool { + self.bit.load(core::sync::atomic::Ordering::SeqCst) & SEND_SHUTDOWN != 0 + } - // pub fn is_both_shutdown(&self) -> bool { - // self.bit.load(core::sync::atomic::Ordering::SeqCst) & SHUTDOWN_MASK == SHUTDOWN_MASK - // } + pub fn is_both_shutdown(&self) -> bool { + self.bit.load(core::sync::atomic::Ordering::SeqCst) & SHUTDOWN_MASK == SHUTDOWN_MASK + } - // pub fn is_empty(&self) -> bool { - // self.bit.load(core::sync::atomic::Ordering::SeqCst) == 0 - // } + pub fn is_empty(&self) -> bool { + self.bit.load(core::sync::atomic::Ordering::SeqCst) == 0 + } pub fn from_how(how: usize) -> Self { Self::from(ShutdownBit::from_bits_truncate(how as u8))