|
|
| version 1.7, 2004/03/01 06:33:17 | version 1.8, 2004/05/19 22:52:58 |
|---|---|
| Line 215 vfs_mountroot_try(char *mountfrom) | Line 215 vfs_mountroot_try(char *mountfrom) |
| printf("setrootbyname failed\n"); | printf("setrootbyname failed\n"); |
| /* If the root device is a type "memory disk", mount RW */ | /* If the root device is a type "memory disk", mount RW */ |
| if (rootdev != NODEV && dev_dport(rootdev) && | if (rootdev != NODEV && dev_is_good(rootdev) && |
| (dev_dflags(rootdev) & D_MEMDISK)) { | (dev_dflags(rootdev) & D_MEMDISK)) { |
| mp->mnt_flag &= ~MNT_RDONLY; | mp->mnt_flag &= ~MNT_RDONLY; |
| } | } |
| Line 270 vfs_mountroot_ask(void) | Line 270 vfs_mountroot_ask(void) |
| if (name[0] == '?') { | if (name[0] == '?') { |
| printf("Possibly valid devices for 'ufs' root:\n"); | printf("Possibly valid devices for 'ufs' root:\n"); |
| for (i = 0; i < NUMCDEVSW; i++) { | for (i = 0; i < NUMCDEVSW; i++) { |
| dev = makedev(i, 0); | dev = udev2dev(makeudev(i, 0), 0); |
| if (dev_dport(dev) != NULL) | if (dev_is_good(dev)) |
| printf(" \"%s\"", dev_dname(dev)); | printf(" \"%s\"", dev_dname(dev)); |
| } | } |
| printf("\n"); | printf("\n"); |
| Line 325 gets(char *cp) | Line 325 gets(char *cp) |
| * it refers to. | * it refers to. |
| */ | */ |
| dev_t | dev_t |
| getdiskbyname(char *name) { | getdiskbyname(char *name) |
| { | |
| char *cp; | char *cp; |
| int cd, unit, slice, part; | int cd, unit, slice, part; |
| dev_t dev; | dev_t dev; |
| dev_t rdev; | |
| slice = 0; | slice = 0; |
| part = 0; | part = 0; |
| Line 347 getdiskbyname(char *name) { | Line 349 getdiskbyname(char *name) { |
| unit = *cp - '0'; | unit = *cp - '0'; |
| *cp++ = '\0'; | *cp++ = '\0'; |
| for (cd = 0; cd < NUMCDEVSW; cd++) { | for (cd = 0; cd < NUMCDEVSW; cd++) { |
| dev = makedev(cd, 0); | dev = udev2dev(makeudev(cd, 0), 0); |
| if (dev_dport(dev) != NULL && | if (dev_is_good(dev) && dev_dname(dev) && |
| strcmp(dev_dname(dev), name) == 0) | strcmp(dev_dname(dev), name) == 0) { |
| goto gotit; | goto gotit; |
| } | |
| } | } |
| printf("no such device '%s'\n", name); | printf("no such device '%s'\n", name); |
| return (NODEV); | return (NODEV); |
| gotit: | gotit: |
| if (dev_dmaj(dev) == major(rootdev)) | if (dev_dmaj(dev) == major(rootdev)) { |
| /* driver has already configured rootdev, e. g. vinum */ | /* driver has already configured rootdev, e. g. vinum */ |
| return (rootdev); | return (rootdev); |
| } | |
| if (unit == -1) { | if (unit == -1) { |
| printf("missing unit number\n"); | printf("missing unit number\n"); |
| return (NODEV); | return (NODEV); |
| Line 376 gotit: | Line 380 gotit: |
| printf("junk after name\n"); | printf("junk after name\n"); |
| return (NODEV); | return (NODEV); |
| } | } |
| return (makedev(cd, dkmakeminor(unit, slice, part))); | rdev = make_sub_dev(dev, dkmakeminor(unit, slice, part)); |
| return(rdev); | |
| } | } |
| /* | /* |