summaryrefslogtreecommitdiffstats
path: root/sys/miscfs/devfs/devfsdefs.h
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1996-11-21 07:19:00 +0000
committerjulian <julian@FreeBSD.org>1996-11-21 07:19:00 +0000
commit534a4e360d9682e1baa92ccad9b132c156d91d99 (patch)
tree0c3c419527ac181f413e927a8da1882a980be7f0 /sys/miscfs/devfs/devfsdefs.h
parentc7dd0fe0974df032d23790e95e60b2b1c42b84dd (diff)
downloadFreeBSD-src-534a4e360d9682e1baa92ccad9b132c156d91d99.zip
FreeBSD-src-534a4e360d9682e1baa92ccad9b132c156d91d99.tar.gz
changes to make devfs more 'normal'
also fixes a bug I've been chasing for a LONG TIME, due to the fact that spec_bwrite is a NOP and I didn't realise it.. old symptom: mount -t devfs devfs /mnt mount /mnt/wd0e /mnt/mnt2 umount /mnt2 <process hangs> there are some pretty large structural differences internal to devfs but outwards it should look the same. I have not yet tested extensively but will do so and fix 3 warnings tomorrow.
Diffstat (limited to 'sys/miscfs/devfs/devfsdefs.h')
-rw-r--r--sys/miscfs/devfs/devfsdefs.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/sys/miscfs/devfs/devfsdefs.h b/sys/miscfs/devfs/devfsdefs.h
index f3b91ac..c3d9b35 100644
--- a/sys/miscfs/devfs/devfsdefs.h
+++ b/sys/miscfs/devfs/devfsdefs.h
@@ -7,7 +7,7 @@
/*
* Written by Julian Elischer (julian@DIALIX.oz.au)
*
- * $Header: /home/ncvs/src/sys/miscfs/devfs/devfsdefs.h,v 1.9 1996/01/30 22:57:01 mpp Exp $
+ * $Header: /home/ncvs/src/sys/miscfs/devfs/devfsdefs.h,v 1.10 1996/09/10 08:27:42 bde Exp $
*/
/* first a couple of defines for compatibility with inodes */
@@ -66,6 +66,7 @@
#define DEV_DDEV 4
#define DEV_ALIAS 5
#define DEV_SLNK 6
+#define DEV_PIPE 7
extern vop_t **devfs_vnodeop_p; /* our own vector array for dirs */
@@ -90,7 +91,10 @@ struct devnode /* the equivalent of an INODE */
u_long vn_id; /* make sure we have the right vnode */
int (***ops)(void *); /* yuk... pointer to pointer(s) to funcs */
int len; /* of any associated info (e.g. dir data) */
+ devnm_p linklist; /* circular list of hardlinks to this node */
devnm_p last_lookup; /* name I was last looked up from */
+ dn_p nextsibling; /* the list of equivelent nodes */
+ dn_p *prevsiblingp; /* backpointer for the above */
union typeinfo {
struct {
struct cdevsw *cdevsw;
@@ -119,6 +123,9 @@ struct devnode /* the equivalent of an INODE */
devnm_p realthing;
devnm_p next;
}Alias;
+ struct {
+ struct socket *sock;
+ }Pipe;
}by;
};
typedef struct devnode devnode_t;
@@ -131,6 +138,8 @@ struct dev_name
dn_p parent; /* backpointer to the directory itself */
devnm_p next; /* next object in this directory */
devnm_p *prevp; /* previous pointer in directory linked list */
+ devnm_p nextlink; /* next hardlink to this node */
+ devnm_p *prevlinkp; /* previous hardlink pointer for this node */
/*-----------------------aliases or backing nodes----------*/
union {
struct {
@@ -140,9 +149,6 @@ struct dev_name
devnm_p realthing; /* ptr to the backing node */
} front;
} as;
- /*-----------------------the front-back chain-------------*/
- devnm_p next_front; /* the linked list of all our front nodes */
- devnm_p *prev_frontp; /* the end of the front node chain */
};
typedef struct dev_name devnm_t;
OpenPOWER on IntegriCloud