summaryrefslogtreecommitdiff
path: root/sys/miscfs/devfs
diff options
context:
space:
mode:
Diffstat (limited to 'sys/miscfs/devfs')
-rw-r--r--sys/miscfs/devfs/devfs_tree.c6
-rw-r--r--sys/miscfs/devfs/devfs_vfsops.c7
-rw-r--r--sys/miscfs/devfs/devfs_vnops.c35
-rw-r--r--sys/miscfs/devfs/devfsdefs.h3
4 files changed, 34 insertions, 17 deletions
diff --git a/sys/miscfs/devfs/devfs_tree.c b/sys/miscfs/devfs/devfs_tree.c
index 7839645da0ac..c43a01109d29 100644
--- a/sys/miscfs/devfs/devfs_tree.c
+++ b/sys/miscfs/devfs/devfs_tree.c
@@ -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.57 1998/11/26 18:50:23 eivind Exp $
+ * $Id: devfs_tree.c,v 1.55 1998/07/04 22:30:22 julian Exp $
*/
@@ -56,7 +56,7 @@ static MALLOC_DEFINE(M_DEVFSNODE, "DEVFS node", "DEVFS node");
static MALLOC_DEFINE(M_DEVFSNAME, "DEVFS name", "DEVFS name");
devnm_p dev_root; /* root of the backing tree */
-static struct mount *devfs_hidden_mount;
+struct mount *devfs_hidden_mount;
int devfs_up_and_going;
/*
@@ -1129,7 +1129,7 @@ devfs_add_devswf(void *devsw, int minor, int chrblk, uid_t uid,
* this function is exported.. see sys/devfsext.h *
\***********************************************************************/
void *
-devfs_makelink(void *original, char *fmt, ...)
+devfs_link(void *original, char *fmt, ...)
{
devnm_p new_dev;
devnm_p orig = (devnm_p) original;
diff --git a/sys/miscfs/devfs/devfs_vfsops.c b/sys/miscfs/devfs/devfs_vfsops.c
index 95ae9579719b..f2751708b8a5 100644
--- a/sys/miscfs/devfs/devfs_vfsops.c
+++ b/sys/miscfs/devfs/devfs_vfsops.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: devfs_vfsops.c,v 1.34 1998/10/31 15:31:23 peter Exp $
+ * $Id: devfs_vfsops.c,v 1.32 1998/09/07 13:17:00 bde Exp $
*
*/
@@ -258,6 +258,7 @@ static int
devfs_sync(struct mount *mp, int waitfor,struct ucred *cred,struct proc *p)
{
register struct vnode *vp, *nvp;
+ struct timeval tv;
int error, allerror = 0;
DBPRINT(("sync "));
@@ -281,7 +282,7 @@ loop:
nvp = vp->v_mntvnodes.le_next;
if (VOP_ISLOCKED(vp))
continue;
- if (TAILQ_EMPTY(&vp->v_dirtyblkhd))
+ if ( vp->v_dirtyblkhd.lh_first == NULL)
continue;
if (vp->v_type == VBLK) {
if (vget(vp, LK_EXCLUSIVE, p))
@@ -293,8 +294,6 @@ loop:
}
#ifdef NOTYET
else {
- struct timeval tv;
-
tv = time;
/* VOP_UPDATE(vp, &tv, &tv, waitfor == MNT_WAIT); */
VOP_UPDATE(vp, &tv, &tv, 0);
diff --git a/sys/miscfs/devfs/devfs_vnops.c b/sys/miscfs/devfs/devfs_vnops.c
index e9bdc2a36c72..213a8677c4de 100644
--- a/sys/miscfs/devfs/devfs_vnops.c
+++ b/sys/miscfs/devfs/devfs_vnops.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: devfs_vnops.c,v 1.64 1998/12/15 23:46:59 eivind Exp $
+ * $Id: devfs_vnops.c,v 1.60 1998/09/04 08:06:56 dfr Exp $
*/
@@ -639,6 +639,9 @@ devfs_xwrite(struct vop_write_args *ap)
struct ucred *a_cred;
} */
{
+ dn_p file_node;
+ int error;
+
switch (ap->a_vp->v_type) {
case VREG:
return(EINVAL);
@@ -1285,6 +1288,16 @@ devfs_print(struct vop_print_args *ap)
* pseudo ops *
\**************************************************************************/
+/*
+ * /devfs vnode unsupported operation
+ */
+static int
+devfs_enotsupp(void *junk)
+{
+
+ return (EOPNOTSUPP);
+}
+
/*proto*/
void
devfs_dropvnode(dn_p dnp)
@@ -1324,7 +1337,8 @@ static int
devfs_open( struct vop_open_args *ap)
{
struct proc *p = ap->a_p;
- struct vnode *vp = ap->a_vp;
+ struct vnode *bvp, *vp = ap->a_vp;
+ dev_t bdev, dev = (dev_t)vp->v_rdev;
int error;
dn_p dnp;
@@ -1373,7 +1387,7 @@ devfs_read( struct vop_read_args *ap)
daddr_t bn, nextbn;
long bsize, bscale;
struct partinfo dpart;
- int n, on;
+ int n, on, majordev;
d_ioctl_t *ioctl;
int error = 0;
dev_t dev;
@@ -1519,11 +1533,11 @@ devfs_write( struct vop_write_args *ap)
bp = getblk(vp, bn, bsize, 0, 0);
else
error = bread(vp, bn, bsize, NOCRED, &bp);
+ n = min(n, bsize - bp->b_resid);
if (error) {
brelse(bp);
return (error);
}
- n = min(n, bsize - bp->b_resid);
error = uiomove((char *)bp->b_data + on, n, uio);
if (n + on == bsize)
bawrite(bp);
@@ -1641,8 +1655,8 @@ devfs_fsync(struct vop_fsync_args *ap)
*/
loop:
s = splbio();
- for (bp = TAILQ_FIRST(&vp->v_dirtyblkhd); bp; bp = nbp) {
- nbp = TAILQ_NEXT(bp, b_vnbufs);
+ for (bp = vp->v_dirtyblkhd.lh_first; bp; bp = nbp) {
+ nbp = bp->b_vnbufs.le_next;
if ((bp->b_flags & B_BUSY))
continue;
if ((bp->b_flags & B_DELWRI) == 0)
@@ -1664,7 +1678,7 @@ loop:
(void) tsleep((caddr_t)&vp->v_numoutput, PRIBIO + 1, "spfsyn", 0);
}
#ifdef DIAGNOSTIC
- if (!TAILQ_EMPTY(&vp->v_dirtyblkhd)) {
+ if (vp->v_dirtyblkhd.lh_first) {
vprint("devfs_fsync: dirty", vp);
splx(s);
goto loop;
@@ -1763,8 +1777,11 @@ static int
devfs_close(struct vop_close_args *ap)
{
register struct vnode *vp = ap->a_vp;
- int error;
- dn_p dnp;
+ struct proc *p = ap->a_p;
+ dev_t dev = vp->v_rdev;
+ d_close_t *devclose;
+ int mode, error;
+ dn_p dnp;
if (error = devfs_vntodn(vp,&dnp))
return error;
diff --git a/sys/miscfs/devfs/devfsdefs.h b/sys/miscfs/devfs/devfsdefs.h
index 43ae38b5d557..9144c3dd925e 100644
--- a/sys/miscfs/devfs/devfsdefs.h
+++ b/sys/miscfs/devfs/devfsdefs.h
@@ -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.17 1998/09/30 20:33:46 sos Exp $
+ * $Id: devfsdefs.h,v 1.16 1998/07/05 23:10:22 julian Exp $
*/
#ifdef DEVFS_DEBUG
#define DBPRINT(A) printf(A)
@@ -202,6 +202,7 @@ struct dev_vn_data
devnm_p back;
};
+extern struct vnodeops spec_vnodeops,devfs_vnodeops;
/*
* Prototypes for DEVFS virtual filesystem operations
*/