summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/fdc/fdc.c16
-rw-r--r--sys/i386/isa/fd.c16
-rw-r--r--sys/isa/fd.c16
-rw-r--r--sys/miscfs/devfs/devfs_proto.h2
-rw-r--r--sys/miscfs/devfs/devfs_tree.c107
-rw-r--r--sys/sys/devfsext.h12
6 files changed, 41 insertions, 128 deletions
diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c
index 78c4840..4e9c091 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 78c4840..4e9c091 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 78c4840..4e9c091 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 01dd194..e8571e8 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 6f32322..746305e 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 31f16e4..2e9e4c6 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
OpenPOWER on IntegriCloud