diff options
| author | Julian Elischer <julian@FreeBSD.org> | 1995-12-08 11:19:42 +0000 |
|---|---|---|
| committer | Julian Elischer <julian@FreeBSD.org> | 1995-12-08 11:19:42 +0000 |
| commit | 87f6c6625d5a4889540cb77c8296e456b7d1390b (patch) | |
| tree | 5150d199464d64c1021f91b2c2f112d48546a8bf /sys/miscfs/devfs | |
| parent | 0b7a315970685222e8ccbcdf3d645d35650cd03e (diff) | |
Notes
Diffstat (limited to 'sys/miscfs/devfs')
| -rw-r--r-- | sys/miscfs/devfs/devfs_tree.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sys/miscfs/devfs/devfs_tree.c b/sys/miscfs/devfs/devfs_tree.c index 0110f8b90056..6f3232249146 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.8 1995/10/10 07:12:25 julian Exp $ + * $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.9 1995/11/29 10:48:36 julian Exp $ */ #include "param.h" @@ -908,15 +908,18 @@ int dev_add_entry(char *name, dn_p parent, int type, union typeinfo *by, devnm_p \***********************************************************************/ void *devfs_add_devsw(char *path, char *name, - int major, + void *devsw, int minor, int chrblk, uid_t uid, gid_t gid, int perms) { + int major; devnm_p new_dev; dn_p dnp; /* devnode for parent directory */ + struct cdevsw *cd; + struct bdevsw *bd; int retval; union typeinfo by; @@ -926,13 +929,19 @@ void *devfs_add_devsw(char *path, switch(chrblk) { case DV_CHR: - by.Cdev.cdevsw = cdevsw + major; + cd = devsw; + major = cd->d_maj; + if ( major == -1 ) return NULL; + by.Cdev.cdevsw = cd; by.Cdev.dev = makedev(major, minor); if( dev_add_entry(name, dnp, DEV_CDEV, &by,&new_dev)) return NULL; break; case DV_BLK: - by.Bdev.bdevsw = bdevsw + major; + bd = devsw; + major = bd->d_maj; + if ( major == -1 ) return NULL; + by.Bdev.bdevsw = bd; by.Bdev.dev = makedev(major, minor); if( dev_add_entry(name, dnp, DEV_BDEV, &by, &new_dev)) return NULL; |
