Browse Source

修改net设备的uevent内容,使之与Linux语义一致

val213 5 months ago
parent
commit
e67348c9b6
2 changed files with 8 additions and 5 deletions
  1. 1 1
      kernel/src/arch/x86_64/syscall/mod.rs
  2. 7 4
      kernel/src/driver/base/uevent/mod.rs

+ 1 - 1
kernel/src/arch/x86_64/syscall/mod.rs

@@ -133,7 +133,7 @@ pub extern "sysv64" fn syscall_handler(frame: &mut TrapFrame) {
                 show &= false;
             }
         }
-
+        show = false;
         if show {
             debug!("[SYS] [Pid: {:?}] [Call: {:?}]", pid, to_print);
         }

+ 7 - 4
kernel/src/driver/base/uevent/mod.rs

@@ -157,13 +157,16 @@ impl Attribute for UeventAttr {
                 writeln!(&mut uevent_content, "DEVTYPE=char").unwrap();
             }
             DeviceType::Net => {
-                // let net_device = device.cast::<dyn Iface>().ok().ok_or(SystemError::EINVAL)?;
-                // let ifindex = net_device.ifindex().expect("Find ifindex error.\n");
+                let net_device = device.clone().cast::<dyn Iface>().map_err(|e: Arc<dyn Device>| {
+                    warn!("device:{:?} is not a net device!", e);
+                    SystemError::EINVAL
+                })?;
+                let iface_id = net_device.nic_id();
                 // let device_name = net_device.iface_name();
                 let device_name = device.name();
-                writeln!(&mut uevent_content, "DEVTYPE=net").unwrap();
+                // writeln!(&mut uevent_content, "DEVTYPE=net").unwrap();
                 writeln!(&mut uevent_content, "INTERFACE={}", device_name).unwrap();
-                // writeln!(&mut uevent_content, "IFINDEX={}", ifindex).unwrap();
+                writeln!(&mut uevent_content, "IFINDEX={}", iface_id).unwrap();
             }
             DeviceType::Bus => {
                 // 处理总线设备类型