Implement netlink uevent socket

This commit is contained in:
jiangjianfeng
2025-05-30 09:10:31 +00:00
committed by Ruihan Li
parent d35888c817
commit f946f09ee4
27 changed files with 1251 additions and 364 deletions

View File

@ -5,7 +5,9 @@ use crate::{
fs::{file_handle::FileLike, file_table::FdFlags},
net::socket::{
ip::{datagram::DatagramSocket, stream::StreamSocket},
netlink::{is_valid_protocol, NetlinkRouteSocket, StandardNetlinkProtocol},
netlink::{
is_valid_protocol, NetlinkRouteSocket, NetlinkUeventSocket, StandardNetlinkProtocol,
},
unix::UnixStreamSocket,
vsock::VsockStreamSocket,
},
@ -52,7 +54,10 @@ pub fn sys_socket(domain: i32, type_: i32, protocol: i32, ctx: &Context) -> Resu
debug!("netlink family = {:?}", netlink_family);
match netlink_family {
Ok(StandardNetlinkProtocol::ROUTE) => {
Arc::new(NetlinkRouteSocket::new(is_nonblocking))
NetlinkRouteSocket::new(is_nonblocking) as Arc<dyn FileLike>
}
Ok(StandardNetlinkProtocol::KOBJECT_UEVENT) => {
NetlinkUeventSocket::new(is_nonblocking) as Arc<dyn FileLike>
}
Ok(_) => {
return_errno_with_message!(