diff options
author | julian <julian@FreeBSD.org> | 1998-04-19 23:32:49 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 1998-04-19 23:32:49 +0000 |
commit | 0796a5c56ed9d1eaf2c8691327b581fcfa3cd05b (patch) | |
tree | 9c3ff4ea4ec1cc8aeb30628a4e4452193f1d12cb /sys/isofs/cd9660/cd9660_vfsops.c | |
parent | 64e2dfa0bb7dd8d4a7affdfbf920764d02d2b02c (diff) | |
download | FreeBSD-src-0796a5c56ed9d1eaf2c8691327b581fcfa3cd05b.zip FreeBSD-src-0796a5c56ed9d1eaf2c8691327b581fcfa3cd05b.tar.gz |
Add changes and code to implement a functional DEVFS.
This code will be turned on with the TWO options
DEVFS and SLICE. (see LINT)
Two labels PRE_DEVFS_SLICE and POST_DEVFS_SLICE will deliniate these changes.
/dev will be automatically mounted by init (thanks phk)
on bootup. See /sys/dev/slice/slice.4 for more info.
All code should act the same without these options enabled.
Mike Smith, Poul Henning Kamp, Soeren, and a few dozen others
This code does not support the following:
bad144 handling.
Persistance. (My head is still hurting from the last time we discussed this)
ATAPI flopies are not handled by the SLICE code yet.
When this code is running, all major numbers are arbitrary and COULD
be dynamically assigned. (this is not done, for POLA only)
Minor numbers for disk slices ARE arbitray and dynamically assigned.
Diffstat (limited to 'sys/isofs/cd9660/cd9660_vfsops.c')
-rw-r--r-- | sys/isofs/cd9660/cd9660_vfsops.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/isofs/cd9660/cd9660_vfsops.c b/sys/isofs/cd9660/cd9660_vfsops.c index 1431b19..c4a4a57 100644 --- a/sys/isofs/cd9660/cd9660_vfsops.c +++ b/sys/isofs/cd9660/cd9660_vfsops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)cd9660_vfsops.c 8.18 (Berkeley) 5/22/95 - * $Id: cd9660_vfsops.c,v 1.34 1998/03/01 22:46:00 msmith Exp $ + * $Id: cd9660_vfsops.c,v 1.35 1998/03/08 09:56:41 julian Exp $ */ #include <sys/param.h> @@ -143,6 +143,9 @@ iso_get_ssector(dev, p) return ntohl(t.entry.addr.lba); } +#ifdef SLICE +extern struct vnode *root_device_vnode; +#endif static int iso_mountroot(mp, p) @@ -152,10 +155,18 @@ iso_mountroot(mp, p) struct iso_args args; int error; +#ifdef SLICE + rootvp = root_device_vnode; + if (rootvp == NULL) { + printf("cd9660_mountroot: rootvp not set"); + return (EINVAL); + } +#else if ((error = bdevvp(rootdev, &rootvp))) { printf("iso_mountroot: can't find rootvp"); return (error); } +#endif args.flags = ISOFSMNT_ROOT; args.ssector = iso_get_ssector(rootdev, p); if (bootverbose) |