diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index 78c4840bf3cb..4e9c091f0f4e 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.73 1995/12/08 11:14:10 julian Exp $ + * $Id: fd.c,v 1.74 1995/12/08 23:20:26 phk Exp $ * */ @@ -714,7 +714,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "1.2MB (1200K) 5.25in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.1200",fdu); + sprintf(name,"rfd%d.1200",fdu); #endif /* DEVFS */ break; case RTCFDT_144M: @@ -723,7 +723,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "1.44MB (1440K) 3.5in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.1440",fdu); + sprintf(name,"rfd%d.1440",fdu); #endif /* DEVFS */ break; case RTCFDT_288M: @@ -733,7 +733,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "2.88MB (2880K) 3.5in floppy disk drive in 1.44 mode"; #ifdef DEVFS - sprintf(name,"fd%d.1440",fdu); + sprintf(name,"rfd%d.1440",fdu); #endif /* DEVFS */ break; case RTCFDT_360K: @@ -742,7 +742,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "360KB 5.25in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.360",fdu); + sprintf(name,"rfd%d.360",fdu); #endif /* DEVFS */ break; case RTCFDT_720K: @@ -751,14 +751,14 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "720KB 3.5in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.720",fdu); + sprintf(name,"rfd%d.720",fdu); #endif /* DEVFS */ break; default: printf("unknown\n"); fd->type = NO_TYPE; #ifdef DEVFS - sprintf(name,"fd%d.xxxx",fdu); + sprintf(name,"rfd%d.xxxx",fdu); #endif /* DEVFS */ break; } @@ -768,7 +768,7 @@ fdattach(struct isa_device *dev) "/",name,&fd_cdevsw, fdu * 8, DV_CHR,0,0,0644); fd->fd_devfs_token = devfs_add_devsw( - "/",name, &fd_bdevsw, fdu * 8, + "/",name+1, &fd_bdevsw, fdu * 8, DV_BLK,0,0,0644); #endif /* DEVFS */ if (dk_ndrive < DK_NDRIVE) { diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c index 78c4840bf3cb..4e9c091f0f4e 100644 --- a/sys/i386/isa/fd.c +++ b/sys/i386/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.73 1995/12/08 11:14:10 julian Exp $ + * $Id: fd.c,v 1.74 1995/12/08 23:20:26 phk Exp $ * */ @@ -714,7 +714,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "1.2MB (1200K) 5.25in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.1200",fdu); + sprintf(name,"rfd%d.1200",fdu); #endif /* DEVFS */ break; case RTCFDT_144M: @@ -723,7 +723,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "1.44MB (1440K) 3.5in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.1440",fdu); + sprintf(name,"rfd%d.1440",fdu); #endif /* DEVFS */ break; case RTCFDT_288M: @@ -733,7 +733,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "2.88MB (2880K) 3.5in floppy disk drive in 1.44 mode"; #ifdef DEVFS - sprintf(name,"fd%d.1440",fdu); + sprintf(name,"rfd%d.1440",fdu); #endif /* DEVFS */ break; case RTCFDT_360K: @@ -742,7 +742,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "360KB 5.25in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.360",fdu); + sprintf(name,"rfd%d.360",fdu); #endif /* DEVFS */ break; case RTCFDT_720K: @@ -751,14 +751,14 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "720KB 3.5in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.720",fdu); + sprintf(name,"rfd%d.720",fdu); #endif /* DEVFS */ break; default: printf("unknown\n"); fd->type = NO_TYPE; #ifdef DEVFS - sprintf(name,"fd%d.xxxx",fdu); + sprintf(name,"rfd%d.xxxx",fdu); #endif /* DEVFS */ break; } @@ -768,7 +768,7 @@ fdattach(struct isa_device *dev) "/",name,&fd_cdevsw, fdu * 8, DV_CHR,0,0,0644); fd->fd_devfs_token = devfs_add_devsw( - "/",name, &fd_bdevsw, fdu * 8, + "/",name+1, &fd_bdevsw, fdu * 8, DV_BLK,0,0,0644); #endif /* DEVFS */ if (dk_ndrive < DK_NDRIVE) { diff --git a/sys/isa/fd.c b/sys/isa/fd.c index 78c4840bf3cb..4e9c091f0f4e 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.73 1995/12/08 11:14:10 julian Exp $ + * $Id: fd.c,v 1.74 1995/12/08 23:20:26 phk Exp $ * */ @@ -714,7 +714,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "1.2MB (1200K) 5.25in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.1200",fdu); + sprintf(name,"rfd%d.1200",fdu); #endif /* DEVFS */ break; case RTCFDT_144M: @@ -723,7 +723,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "1.44MB (1440K) 3.5in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.1440",fdu); + sprintf(name,"rfd%d.1440",fdu); #endif /* DEVFS */ break; case RTCFDT_288M: @@ -733,7 +733,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "2.88MB (2880K) 3.5in floppy disk drive in 1.44 mode"; #ifdef DEVFS - sprintf(name,"fd%d.1440",fdu); + sprintf(name,"rfd%d.1440",fdu); #endif /* DEVFS */ break; case RTCFDT_360K: @@ -742,7 +742,7 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "360KB 5.25in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.360",fdu); + sprintf(name,"rfd%d.360",fdu); #endif /* DEVFS */ break; case RTCFDT_720K: @@ -751,14 +751,14 @@ fdattach(struct isa_device *dev) kdc_fd[fdu].kdc_description = "720KB 3.5in floppy disk drive"; #ifdef DEVFS - sprintf(name,"fd%d.720",fdu); + sprintf(name,"rfd%d.720",fdu); #endif /* DEVFS */ break; default: printf("unknown\n"); fd->type = NO_TYPE; #ifdef DEVFS - sprintf(name,"fd%d.xxxx",fdu); + sprintf(name,"rfd%d.xxxx",fdu); #endif /* DEVFS */ break; } @@ -768,7 +768,7 @@ fdattach(struct isa_device *dev) "/",name,&fd_cdevsw, fdu * 8, DV_CHR,0,0,0644); fd->fd_devfs_token = devfs_add_devsw( - "/",name, &fd_bdevsw, fdu * 8, + "/",name+1, &fd_bdevsw, fdu * 8, DV_BLK,0,0,0644); #endif /* DEVFS */ if (dk_ndrive < DK_NDRIVE) { diff --git a/sys/miscfs/devfs/devfs_proto.h b/sys/miscfs/devfs/devfs_proto.h index 01dd194f13ab..e8571e8e8d19 100644 --- a/sys/miscfs/devfs/devfs_proto.h +++ b/sys/miscfs/devfs/devfs_proto.h @@ -14,8 +14,6 @@ int dev_dup_entry(dn_p parent, devnm_p back, devnm_p *dnm_pp, struct devfsmount void dev_free_name(devnm_p devnmp) /*proto*/; int devfs_vntodn(struct vnode *vn_p, dn_p *dn_pp) /*proto*/; int devfs_dntovn(dn_p dnp, struct vnode **vn_pp) /*proto*/; -int get_cdev_major_num(caddr_t addr) /*proto*/; -int get_bdev_major_num(caddr_t addr) /*proto*/; int dev_add_entry(char *name, dn_p parent, int type, union typeinfo *by, devnm_p *nm_pp) /*proto*/ ; int devfs_init(void) /*proto*/; int devfs_mount( struct mount *mp, char *path, caddr_t data, struct nameidata *ndp, struct proc *p) /*proto*/; diff --git a/sys/miscfs/devfs/devfs_tree.c b/sys/miscfs/devfs/devfs_tree.c index 6f3232249146..746305e566b9 100644 --- a/sys/miscfs/devfs/devfs_tree.c +++ b/sys/miscfs/devfs/devfs_tree.c @@ -2,7 +2,7 @@ /* * Written by Julian Elischer (julian@DIALix.oz.au) * - * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.9 1995/11/29 10:48:36 julian Exp $ + * $Header: /u1/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.10 1995/12/08 11:17:33 julian Exp $ */ #include "param.h" @@ -134,7 +134,19 @@ int dev_finddir(char *orig_path, dn_p dirnode, int create, dn_p *dn_pp) /*proto* path = pathbuf; strcpy(path,orig_path); - while(*path == '/') path++; /* always absolute, skip leading / */ + /***************************************\ + * always absolute, skip leading / * + * get rid of / or // or /// etc. * + \***************************************/ + while(*path == '/') path++; + /***************************************\ + * If nothing left, then parent was it.. * + \***************************************/ + if ( *path == '\0' ) { + *dn_pp = dirnode; + return 0; + } + /***************************************\ * find the next segment of the name * \***************************************/ @@ -143,6 +155,7 @@ int dev_finddir(char *orig_path, dn_p dirnode, int create, dn_p *dn_pp) /*proto* { cp++; } + /***********************************************\ * Check to see if it's the last component * \***********************************************/ @@ -838,48 +851,7 @@ DBPRINT(("(New vnode)")); } /***********************************************************************\ -* UTILITY routine: * -* Return the major number for the cdevsw entry containing the given * -* address. * -\***********************************************************************/ -int get_cdev_major_num(caddr_t addr) /*proto*/ -{ - int index = 0; - - DBPRINT(("get_cdev_major_num\n")); - while (index < nchrdev) - { - if(((caddr_t)(cdevsw[index].d_open) == addr) - ||((caddr_t)(cdevsw[index].d_read) == addr) - ||((caddr_t)(cdevsw[index].d_ioctl) == addr)) - { - return index; - } - index++; - } - return -1; -} - -int get_bdev_major_num(caddr_t addr) /*proto*/ -{ - int index = 0; - - DBPRINT(("get_bdev_major_num\n")); - while (index < nblkdev) - { - if(((caddr_t)(bdevsw[index].d_open) == addr) - ||((caddr_t)(bdevsw[index].d_strategy) == addr) - ||((caddr_t)(bdevsw[index].d_ioctl) == addr)) - { - return index; - } - index++; - } - return -1; -} - -/***********************************************************************\ -* add a whole device, with not prototype.. make name element and node * +* add a whole device, with no prototype.. make name element and node * \***********************************************************************/ int dev_add_entry(char *name, dn_p parent, int type, union typeinfo *by, devnm_p *nm_pp) /*proto*/ { @@ -957,53 +929,6 @@ void *devfs_add_devsw(char *path, /***********************************************************************\ * Add the named device entry into the given directory, and make it * -* The appropriate type... (called (sometimes indirectly) by drivers..) * -\***********************************************************************/ -void *dev_add(char *path, - char *name, - void *funct, - int minor, - int chrblk, - uid_t uid, - gid_t gid, - int perms) -{ - devnm_p new_dev; - dn_p dnp; /* devnode for parent directory */ - int retval; - int major ; - union typeinfo by; - - DBPRINT(("dev_add\n")); - retval = dev_finddir(path,NULL,1,&dnp); - if (retval) return 0; - switch(chrblk) - { - case DV_CHR: - major = get_cdev_major_num(funct); - by.Cdev.cdevsw = cdevsw + major; - by.Cdev.dev = makedev(major, minor); - if( dev_add_entry(name, dnp, DEV_CDEV, &by,&new_dev)) - return NULL; - break; - case DV_BLK: - major = get_bdev_major_num(funct); - by.Bdev.bdevsw = bdevsw + major; - by.Bdev.dev = makedev(major, minor); - if( dev_add_entry(name, dnp, DEV_BDEV, &by, &new_dev)) - return NULL; - break; - default: - return NULL; - } - new_dev->dnp->gid = gid; - new_dev->dnp->uid = uid; - new_dev->dnp->mode |= perms; - return new_dev; -} - -/***********************************************************************\ -* Add the named device entry into the given directory, and make it * * a link to the already created device given as an arg.. * \***********************************************************************/ void *dev_link(char *path, char *name, void *original) diff --git a/sys/sys/devfsext.h b/sys/sys/devfsext.h index 31f16e4d0969..2e9e4c6dcd30 100644 --- a/sys/sys/devfsext.h +++ b/sys/sys/devfsext.h @@ -1,7 +1,7 @@ /* usual BSD style copyright here */ /* Written by Julian Elischer (julian@dialix.oz.au)*/ /* - * $Id: devfsext.h,v 1.3 1995/11/29 10:49:13 julian Exp $ + * $Id: devfsext.h,v 1.4 1995/12/08 11:19:28 julian Exp $ */ #ifndef _SYS_DEVFSECT_H_ @@ -15,16 +15,6 @@ void *devfs_add_devsw(char *path, gid_t gid, int perms) ; -/* deprecated.. don't use.. */ -void *dev_add(char *path, - char *name, - void *funct, - int minor, - int chrblk, - uid_t uid, - gid_t gid, - int perms) ; - void *dev_link(char *path, char *name, void *original); /* the result of a previous dev_link