2008-07-29 Zheng Da <zhengda1936@gmail.com>
* boot/boot.c (ds_device_open): Handle the request to open the virtual
network device.
diff -u boot.old/boot.c boot/boot.c
--- boot.old/boot.c 2008-08-17 18:38:02.000000000 +0200
+++ boot/boot.c 2008-08-17 18:36:40.520000000 +0200
@@ -964,6 +964,22 @@
*devicetype = MACH_MSG_TYPE_MAKE_SEND;
return 0;
}
+ else if (strncmp (name, "veth", 4) == 0)
+ {
+ char buf[128];
+ mach_port_t net_device;
+
+ snprintf (buf, sizeof(buf), "/dev/%s", name);
+ net_device = file_name_lookup (buf, 0, 0);
+ if (net_device == MACH_PORT_NULL)
+ {
+ error (0, errno, "file_name_lookup");
+ return errno;
+ }
+
+ *devicetype = MACH_MSG_TYPE_MOVE_SEND;
+ return device_open (net_device, mode, "eth", device);
+ }
*devicetype = MACH_MSG_TYPE_MOVE_SEND;
return device_open (master_device_port, mode, name, device);