diff options
Diffstat (limited to 'sys/miscfs/devfs')
-rw-r--r-- | sys/miscfs/devfs/devfs_tree.c | 6 | ||||
-rw-r--r-- | sys/miscfs/devfs/devfs_vfsops.c | 7 | ||||
-rw-r--r-- | sys/miscfs/devfs/devfs_vnops.c | 35 | ||||
-rw-r--r-- | sys/miscfs/devfs/devfsdefs.h | 3 |
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 */ |