Short update: It turns out that ls is doing something ugly: it is retrieving the major and minor from the udev, which isn't constructed anymore from major and minor. What I will be doing is change ls to work properly and commit it later this afternoon together with another bunch of changes/fixes.
Cheers, Alex 2009/8/5 Alex <[email protected]>: > Hi, > > about if_tap, it should in theory autoclone on opening /dev/tap and > using fdevname or fdevname_r to retrieve the name from the open > descriptor. It is untested, but the code is present and should work at > least as far as creating the clone device. > > As for major/minor goes, major is set to 0 always and minor was the > way it used to be. Relevant line in devfs_vnops.c: > vap->va_rminor = DEVFS_NODE(ap->a_vp)->d_dev->si_uminor; (in getattr) > > Sincerely, > Alex > > 2009/8/5 Simon 'corecode' Schubert <[email protected]>: >> YONETANI Tomokazu wrote: >>> >>> diff --git a/sys/platform/vkernel/platform/init.c >>> b/sys/platform/vkernel/platform/init.c >>> index 2d3fd72..7caaf5b 100644 >>> --- a/sys/platform/vkernel/platform/init.c >>> +++ b/sys/platform/vkernel/platform/init.c >>> @@ -955,9 +955,7 @@ netif_open_tap(const char *netif, int *tap_unit, int >>> s) >>> */ >>> failed = 1; >>> if (fstat(tap_fd, &st) == 0 && S_ISCHR(st.st_mode) && >>> - TAPDEV_MAJOR(st.st_rdev) == TAP_CDEV_MAJOR) { >>> - *tap_unit = TAPDEV_MINOR(st.st_rdev); >>> - >>> + sscanf(tap_dev, "/dev/tap%d", tap_unit) == 1) { >>> /* >>> * Bring up the corresponding tap(4) interface >>> */ >> >> That seems strange. Shouldn't be tap be cloning, i.e. just open /dev/tap, >> and then use devname(fd) (to retrieve the ifname) or ioctl() (to set the >> ifname)? >> >> cheers >> simon >> >> -- >> <3 the future +++ RENT this banner advert +++ ASCII Ribbon /"\ >> rock the past +++ space for low CHF NOW!1 +++ Campaign \ / >> Party Enjoy Relax | http://dragonflybsd.org Against HTML \ >> Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \ >> >
