DEVFS completely bypasses the cdevsw and bdevsw tables now.

Each devfs node has (and has had fro a while) a pointer directly to
the correct cdefsw entry so just use it instead of doing the lookup.

There are several other places in the kernel that still use the tables
however, so they can't go away yet..
This commit is contained in:
Julian Elischer 1998-07-05 23:10:22 +00:00
parent 596f8506ad
commit 6312920c20
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=37407
3 changed files with 804 additions and 232 deletions

View File

@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: devfs_tree.c,v 1.54 1998/06/21 14:53:20 bde Exp $
* $Id: devfs_tree.c,v 1.55 1998/07/04 22:30:22 julian Exp $
*/
@ -498,7 +498,7 @@ dev_add_node(int entrytype, union typeinfo *by, dn_p proto,
* Make sure it has DEVICE type ops
* and device specific fields are correct
*/
dnp->ops = &dev_spec_vnodeop_p;
dnp->ops = &devfs_spec_vnodeop_p;
dnp->by.Bdev.bdevsw = by->Bdev.bdevsw;
dnp->by.Bdev.dev = by->Bdev.dev;
break;
@ -507,7 +507,7 @@ dev_add_node(int entrytype, union typeinfo *by, dn_p proto,
* Make sure it has DEVICE type ops
* and device specific fields are correct
*/
dnp->ops = &dev_spec_vnodeop_p;
dnp->ops = &devfs_spec_vnodeop_p;
dnp->by.Cdev.cdevsw = by->Cdev.cdevsw;
dnp->by.Cdev.dev = by->Cdev.dev;
break;

File diff suppressed because it is too large Load Diff

View File

@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: devfsdefs.h,v 1.14 1998/04/19 23:32:20 julian Exp $
* $Id: devfsdefs.h,v 1.15 1998/07/04 22:30:22 julian Exp $
*/
#ifdef DEVFS_DEBUG
#define DBPRINT(A) printf(A)
@ -89,7 +89,7 @@
extern vop_t **devfs_vnodeop_p; /* our own vector array for dirs */
extern vop_t **dev_spec_vnodeop_p; /* our own vector array for devs */
extern vop_t **devfs_spec_vnodeop_p; /* our own vector array for devs */
typedef struct dev_name *devnm_p;
typedef struct devnode *dn_p;