pub struct NetlinkSocket { /* private fields */ }
Implementations§
source§impl NetlinkSocket
impl NetlinkSocket
pub fn new( status: FileStatus, _socket_type: NetlinkSocketType, _family: NetlinkFamily, ) -> Arc<AtomicRefCell<Self>>
pub fn status(&self) -> FileStatus
pub fn set_status(&mut self, status: FileStatus)
pub fn mode(&self) -> FileMode
pub fn has_open_file(&self) -> bool
pub fn supports_sa_restart(&self) -> bool
pub fn set_has_open_file(&mut self, val: bool)
pub fn getsockname(&self) -> Result<Option<NetlinkAddr>, Errno>
pub fn getpeername(&self) -> Result<Option<NetlinkAddr>, Errno>
pub fn address_family(&self) -> AddressFamily
pub fn close( &mut self, cb_queue: &mut CallbackQueue, ) -> Result<(), SyscallError>
pub fn shutdown( &mut self, _how: Shutdown, _cb_queue: &mut CallbackQueue, ) -> Result<(), SyscallError>
pub fn getsockopt( &mut self, _level: c_int, _optname: c_int, _optval_ptr: ForeignPtr<()>, _optlen: socklen_t, _memory_manager: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<socklen_t, SyscallError>
pub fn setsockopt( &mut self, level: c_int, optname: c_int, optval_ptr: ForeignPtr<()>, optlen: socklen_t, memory_manager: &MemoryManager, ) -> Result<(), SyscallError>
pub fn bind( socket: &Arc<AtomicRefCell<Self>>, addr: Option<&SockaddrStorage>, _net_ns: &NetworkNamespace, rng: impl Rng, ) -> Result<(), SyscallError>
pub fn readv( &mut self, _iovs: &[IoVec], _offset: Option<off_t>, _flags: c_int, _mem: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<ssize_t, SyscallError>
pub fn writev( &mut self, _iovs: &[IoVec], _offset: Option<off_t>, _flags: c_int, _mem: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<ssize_t, SyscallError>
pub fn sendmsg( socket: &Arc<AtomicRefCell<Self>>, args: SendmsgArgs<'_>, mem: &mut MemoryManager, _net_ns: &NetworkNamespace, _rng: impl Rng, cb_queue: &mut CallbackQueue, ) -> Result<ssize_t, SyscallError>
pub fn recvmsg( socket: &Arc<AtomicRefCell<Self>>, args: RecvmsgArgs<'_>, mem: &mut MemoryManager, cb_queue: &mut CallbackQueue, ) -> Result<RecvmsgReturn, SyscallError>
pub fn listen( _socket: &Arc<AtomicRefCell<Self>>, _backlog: i32, _net_ns: &NetworkNamespace, _rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<(), Errno>
pub fn connect( _socket: &Arc<AtomicRefCell<Self>>, _addr: &SockaddrStorage, _net_ns: &NetworkNamespace, _rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<(), SyscallError>
pub fn accept( &mut self, _net_ns: &NetworkNamespace, _rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<OpenFile, SyscallError>
pub fn ioctl( &mut self, request: IoctlRequest, _arg_ptr: ForeignPtr<()>, _memory_manager: &mut MemoryManager, ) -> SyscallResult
pub fn stat(&self) -> Result<stat, SyscallError>
pub fn add_listener( &mut self, monitoring_state: FileState, monitoring_signals: FileSignals, filter: StateListenerFilter, notify_fn: impl Fn(FileState, FileState, FileSignals, &mut CallbackQueue) + Send + Sync + 'static, ) -> StateListenHandle
pub fn add_legacy_listener(&mut self, ptr: HostTreePointer<StatusListener>)
pub fn remove_legacy_listener(&mut self, ptr: *mut StatusListener)
pub fn state(&self) -> FileState
Auto Trait Implementations§
impl Freeze for NetlinkSocket
impl !RefUnwindSafe for NetlinkSocket
impl Send for NetlinkSocket
impl Sync for NetlinkSocket
impl Unpin for NetlinkSocket
impl !UnwindSafe for NetlinkSocket
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more