Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Sep 2005 10:58:25 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 83452 for review
Message-ID:  <200509121058.j8CAwPNM033864@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=83452

Change 83452 by rwatson@rwatson_zoo on 2005/09/12 10:57:53

	Integrate netsmp from FreeBSD CVS:
	
	- devfs style fixen 
	- vfs_read_dirrent  
	- Loop back a number of fifofs fixes/tweaks.

Affected files ...

.. //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#3 integrate
.. //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#4 integrate
.. //depot/projects/netsmp/src/sys/dev/usb/usbdevs#2 integrate
.. //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#6 integrate
.. //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#5 integrate
.. //depot/projects/netsmp/src/sys/i386/include/ucontext.h#2 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_hash.c#2 integrate
.. //depot/projects/netsmp/src/sys/kern/vfs_subr.c#8 integrate
.. //depot/projects/netsmp/src/sys/netgraph/netgraph.h#6 integrate
.. //depot/projects/netsmp/src/sys/sys/vnode.h#4 integrate
.. //depot/projects/netsmp/src/sys/ufs/ffs/ffs_rawread.c#2 integrate

Differences ...

==== //depot/projects/netsmp/src/sys/dev/pccbb/pccbb.c#3 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.127 2005/09/08 17:18:42 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/pccbb/pccbb.c,v 1.128 2005/09/12 05:35:11 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -1554,7 +1554,6 @@
 	int			error = 0;
 	struct cbb_softc	*sc = device_get_softc(self);
 
-	cbb_power_disable_socket(device_get_parent(self), self);
 	cbb_set(sc, CBB_SOCKET_MASK, 0);	/* Quiet hardware */
 	bus_teardown_intr(self, sc->irq_res, sc->intrhand);
 	sc->flags &= ~CBB_CARD_OK;		/* Card is bogus now */

==== //depot/projects/netsmp/src/sys/dev/sound/isa/mss.c#4 (text+ko) ====

@@ -29,7 +29,7 @@
 
 #include <dev/sound/pcm/sound.h>
 
-SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.100 2005/09/11 13:59:02 netchild Exp $");
+SND_DECLARE_FILE("$FreeBSD: src/sys/dev/sound/isa/mss.c,v 1.101 2005/09/12 04:12:50 imp Exp $");
 
 /* board-specific include files */
 #include <dev/sound/isa/mss.h>
@@ -92,7 +92,9 @@
 
 /* prototypes for local functions */
 static int 		mss_detect(device_t dev, struct mss_info *mss);
+#ifndef PC98
 static int		opti_detect(device_t dev, struct mss_info *mss);
+#endif
 static char 		*ymf_test(device_t dev, struct mss_info *mss);
 static void		ad_unmute(struct mss_info *mss);
 
@@ -1592,6 +1594,7 @@
     	return ENXIO;
 }
 
+#ifndef PC98
 static int
 opti_detect(device_t dev, struct mss_info *mss)
 {
@@ -1637,6 +1640,7 @@
 	}
 	return 0;
 }
+#endif
 
 static char *
 ymf_test(device_t dev, struct mss_info *mss)

==== //depot/projects/netsmp/src/sys/dev/usb/usbdevs#2 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/usb/usbdevs,v 1.232 2005/07/08 16:28:24 sam Exp $
+$FreeBSD: src/sys/dev/usb/usbdevs,v 1.233 2005/09/12 03:32:46 obrien Exp $
 /* $NetBSD: usbdevs,v 1.392 2004/12/29 08:38:44 imp Exp $ */
 
 /*-
@@ -334,7 +334,7 @@
 vendor AGFA		0x06bd	AGFA-Gevaert
 vendor ASIAMD		0x06be	Asia Microelectronic Development
 vendor BIZLINK		0x06c4	Bizlink
-vendor KEYSPAN		0x06cd	Keyspan
+vendor KEYSPAN		0x06cd	Keyspan / InnoSys Inc.
 vendor AASHIMA		0x06d6	Aashima
 vendor MULTITECH	0x06e0	MultiTech
 vendor ADS		0x06e1	ADS

==== //depot/projects/netsmp/src/sys/fs/devfs/devfs_vnops.c#6 (text+ko) ====

@@ -31,7 +31,7 @@
  *	@(#)kernfs_vnops.c	8.15 (Berkeley) 5/21/95
  * From: FreeBSD: src/sys/miscfs/kernfs/kernfs_vnops.c 1.43
  *
- * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.121 2005/08/29 11:14:18 phk Exp $
+ * $FreeBSD: src/sys/fs/devfs/devfs_vnops.c,v 1.122 2005/09/12 08:03:15 phk Exp $
  */
 
 /*
@@ -67,108 +67,11 @@
 #include <sys/unistd.h>
 #include <sys/vnode.h>
 
+static struct vop_vector devfs_vnodeops;
+static struct vop_vector devfs_specops;
+static struct fileops devfs_ops_f;
+
 #include <fs/devfs/devfs.h>
-
-static fo_rdwr_t	devfs_read_f;
-static fo_rdwr_t	devfs_write_f;
-static fo_ioctl_t	devfs_ioctl_f;
-static fo_poll_t	devfs_poll_f;
-static fo_kqfilter_t	devfs_kqfilter_f;
-static fo_stat_t	devfs_stat_f;
-static fo_close_t	devfs_close_f;
-
-static struct fileops devfs_ops_f = {
-	.fo_read =	devfs_read_f,
-	.fo_write =	devfs_write_f,
-	.fo_ioctl =	devfs_ioctl_f,
-	.fo_poll =	devfs_poll_f,
-	.fo_kqfilter =	devfs_kqfilter_f,
-	.fo_stat =	devfs_stat_f,
-	.fo_close =	devfs_close_f,
-	.fo_flags =	DFLAG_PASSABLE | DFLAG_SEEKABLE
-};
-
-static vop_access_t	devfs_access;
-static vop_advlock_t	devfs_advlock;
-static vop_close_t	devfs_close;
-static vop_fsync_t	devfs_fsync;
-static vop_getattr_t	devfs_getattr;
-static vop_lookup_t	devfs_lookup;
-static vop_lookup_t	devfs_lookupx;
-static vop_mknod_t	devfs_mknod;
-static vop_open_t	devfs_open;
-static vop_pathconf_t	devfs_pathconf;
-static vop_print_t	devfs_print;
-static vop_readdir_t	devfs_readdir;
-static vop_readlink_t	devfs_readlink;
-static vop_reclaim_t	devfs_reclaim;
-static vop_remove_t	devfs_remove;
-static vop_revoke_t	devfs_revoke;
-static vop_ioctl_t	devfs_rioctl;
-static vop_read_t	devfs_rread;
-static vop_setattr_t	devfs_setattr;
-#ifdef MAC
-static vop_setlabel_t	devfs_setlabel;
-#endif
-static vop_symlink_t	devfs_symlink;
-
-static struct vop_vector devfs_vnodeops = {
-	.vop_default =		&default_vnodeops,
-
-	.vop_access =		devfs_access,
-	.vop_getattr =		devfs_getattr,
-	.vop_ioctl =		devfs_rioctl,
-	.vop_lookup =		devfs_lookup,
-	.vop_mknod =		devfs_mknod,
-	.vop_pathconf =		devfs_pathconf,
-	.vop_read =		devfs_rread,
-	.vop_readdir =		devfs_readdir,
-	.vop_readlink =		devfs_readlink,
-	.vop_reclaim =		devfs_reclaim,
-	.vop_remove =		devfs_remove,
-	.vop_revoke =		devfs_revoke,
-	.vop_setattr =		devfs_setattr,
-#ifdef MAC
-	.vop_setlabel =		devfs_setlabel,
-#endif
-	.vop_symlink =		devfs_symlink,
-};
-
-static struct vop_vector devfs_specops = {
-	.vop_default =		&default_vnodeops,
-
-	.vop_access =		devfs_access,
-	.vop_advlock =		devfs_advlock,
-	.vop_bmap =		VOP_PANIC,
-	.vop_close =		devfs_close,
-	.vop_create =		VOP_PANIC,
-	.vop_fsync =		devfs_fsync,
-	.vop_getattr =		devfs_getattr,
-	.vop_lease =		VOP_NULL,
-	.vop_link =		VOP_PANIC,
-	.vop_mkdir =		VOP_PANIC,
-	.vop_mknod =		VOP_PANIC,
-	.vop_open =		devfs_open,
-	.vop_pathconf =		devfs_pathconf,
-	.vop_print =		devfs_print,
-	.vop_read =		VOP_PANIC,
-	.vop_readdir =		VOP_PANIC,
-	.vop_readlink =		VOP_PANIC,
-	.vop_reallocblks =	VOP_PANIC,
-	.vop_reclaim =		devfs_reclaim,
-	.vop_remove =		devfs_remove,
-	.vop_rename =		VOP_PANIC,
-	.vop_revoke =		devfs_revoke,
-	.vop_rmdir =		VOP_PANIC,
-	.vop_setattr =		devfs_setattr,
-#ifdef MAC
-	.vop_setlabel =		devfs_setlabel,
-#endif
-	.vop_strategy =		VOP_PANIC,
-	.vop_symlink =		VOP_PANIC,
-	.vop_write =		VOP_PANIC,
-};
-
 static int
 devfs_fp_check(struct file *fp, struct cdev **devp, struct cdevsw **dswp)
 {
@@ -278,13 +181,7 @@
 }
 
 static int
-devfs_access(ap)
-	struct vop_access_args /* {
-		struct vnode *a_vp;
-		int  a_mode;
-		struct ucred *a_cred;
-		struct thread *a_td;
-	} */ *ap;
+devfs_access(struct vop_access_args *ap)
 {
 	struct vnode *vp = ap->a_vp;
 	struct devfs_dirent *de;
@@ -313,14 +210,7 @@
  */
 /* ARGSUSED */
 static int
-devfs_advlock(ap)
-	struct vop_advlock_args /* {
-		struct vnode *a_vp;
-		caddr_t  a_id;
-		int  a_op;
-		struct flock *a_fl;
-		int  a_flags;
-	} */ *ap;
+devfs_advlock(struct vop_advlock_args *ap)
 {
 
 	return (ap->a_flags & F_FLOCK ? EOPNOTSUPP : EINVAL);
@@ -331,13 +221,7 @@
  */
 /* ARGSUSED */
 static int
-devfs_close(ap)
-	struct vop_close_args /* {
-		struct vnode *a_vp;
-		int  a_fflag;
-		struct ucred *a_cred;
-		struct thread *a_td;
-	} */ *ap;
+devfs_close(struct vop_close_args *ap)
 {
 	struct vnode *vp = ap->a_vp, *oldvp;
 	struct thread *td = ap->a_td;
@@ -423,13 +307,7 @@
  */
 /* ARGSUSED */
 static int
-devfs_fsync(ap)
-	struct vop_fsync_args /* {
-		struct vnode *a_vp;
-		struct ucred *a_cred;
-		int  a_waitfor;
-		struct thread *a_td;
-	} */ *ap;
+devfs_fsync(struct vop_fsync_args *ap)
 {
 	if (!vn_isdisk(ap->a_vp, NULL))
 		return (0);
@@ -438,13 +316,7 @@
 }
 
 static int
-devfs_getattr(ap)
-	struct vop_getattr_args /* {
-		struct vnode *a_vp;
-		struct vattr *a_vap;
-		struct ucred *a_cred;
-		struct thread *a_td;
-	} */ *ap;
+devfs_getattr(struct vop_getattr_args *ap)
 {
 	struct vnode *vp = ap->a_vp;
 	struct vattr *vap = ap->a_vap;
@@ -593,12 +465,7 @@
 }
 
 static int
-devfs_lookupx(ap)
-	struct vop_lookup_args /* {
-		struct vnode * a_dvp;
-		struct vnode ** a_vpp;
-		struct componentname * a_cnp;
-	} */ *ap;
+devfs_lookupx(struct vop_lookup_args *ap)
 {
 	struct componentname *cnp;
 	struct vnode *dvp, **vpp;
@@ -743,14 +610,6 @@
 
 static int
 devfs_mknod(struct vop_mknod_args *ap)
-	/*
-	struct vop_mknod_args {
-		struct vnodeop_desc *a_desc;
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-	}; */
 {
 	struct componentname *cnp;
 	struct vnode *dvp, **vpp;
@@ -799,14 +658,7 @@
  */
 /* ARGSUSED */
 static int
-devfs_open(ap)
-	struct vop_open_args /* {
-		struct vnode *a_vp;
-		int  a_mode;
-		struct ucred *a_cred;
-		struct thread *a_td;
-		int a_fdidx;
-	} */ *ap;
+devfs_open(struct vop_open_args *ap)
 {
 	struct thread *td = ap->a_td;
 	struct vnode *vp = ap->a_vp;
@@ -890,12 +742,7 @@
 }
 
 static int
-devfs_pathconf(ap)
-	struct vop_pathconf_args /* {
-		struct vnode *a_vp;
-		int a_name;
-		int *a_retval;
-	} */ *ap;
+devfs_pathconf(struct vop_pathconf_args *ap)
 {
 
 	switch (ap->a_name) {
@@ -942,10 +789,7 @@
  * Print out the contents of a special device vnode.
  */
 static int
-devfs_print(ap)
-	struct vop_print_args /* {
-		struct vnode *a_vp;
-	} */ *ap;
+devfs_print(struct vop_print_args *ap)
 {
 
 	printf("\tdev %s\n", devtoname(ap->a_vp->v_rdev));
@@ -986,15 +830,7 @@
 }
 
 static int
-devfs_readdir(ap)
-	struct vop_readdir_args /* {
-		struct vnode *a_vp;
-		struct uio *a_uio;
-		struct ucred *a_cred;
-		int *a_eofflag;
-		int *a_ncookies;
-		u_long **a_cookies;
-	} */ *ap;
+devfs_readdir(struct vop_readdir_args *ap)
 {
 	int error;
 	struct uio *uio;
@@ -1003,9 +839,6 @@
 	struct devfs_dirent *de;
 	struct devfs_mount *dmp;
 	off_t off, oldoff;
-	int ncookies = 0;
-	u_long *cookiebuf, *cookiep;
-	struct dirent *dps, *dpe;
 
 	if (ap->a_vp->v_type != VDIR)
 		return (ENOTDIR);
@@ -1021,6 +854,10 @@
 	de = ap->a_vp->v_data;
 	off = 0;
 	oldoff = uio->uio_offset;
+	if (ap->a_ncookies != NULL) {
+		*ap->a_ncookies = 0;
+		*ap->a_cookies = NULL;
+	}
 	TAILQ_FOREACH(dd, &de->de_dlist, de_list) {
 		if (dd->de_flags & DE_WHITEOUT)
 			continue;
@@ -1033,41 +870,19 @@
 			break;
 		dp->d_fileno = de->de_inode;
 		if (off >= uio->uio_offset) {
-			ncookies++;
-			error = uiomove(dp, dp->d_reclen, uio);
+			error = vfs_read_dirent(ap, dp, off);
 			if (error)
 				break;
 		}
 		off += dp->d_reclen;
 	}
-	if( !error && ap->a_ncookies != NULL && ap->a_cookies != NULL ) {
-		MALLOC(cookiebuf, u_long *, ncookies * sizeof(u_long),
-		       M_TEMP, M_WAITOK);
-		cookiep = cookiebuf;
-		dps = (struct dirent *)((char *)uio->uio_iov->iov_base -
-		    (uio->uio_offset - oldoff));
-		dpe = (struct dirent *) uio->uio_iov->iov_base;
-		for( dp = dps;
-			dp < dpe;
-			dp = (struct dirent *)((caddr_t) dp + dp->d_reclen)) {
-				oldoff += dp->d_reclen;
-				*cookiep++ = (u_long) oldoff;
-		}
-		*ap->a_ncookies = ncookies;
-		*ap->a_cookies = cookiebuf;
-	}
 	lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread);
 	uio->uio_offset = off;
 	return (error);
 }
 
 static int
-devfs_readlink(ap)
-	struct vop_readlink_args /* {
-		struct vnode *a_vp;
-		struct uio *a_uio;
-		struct ucred *a_cead;
-	} */ *ap;
+devfs_readlink(struct vop_readlink_args *ap)
 {
 	int error;
 	struct devfs_dirent *de;
@@ -1078,10 +893,7 @@
 }
 
 static int
-devfs_reclaim(ap)
-	struct vop_reclaim_args /* {
-		struct vnode *a_vp;
-	} */ *ap;
+devfs_reclaim(struct vop_reclaim_args *ap)
 {
 	struct vnode *vp = ap->a_vp;
 	struct devfs_dirent *de;
@@ -1109,12 +921,7 @@
 }
 
 static int
-devfs_remove(ap)
-	struct vop_remove_args /* {
-		struct vnode *a_dvp;
-		struct vnode *a_vp;
-		struct componentname *a_cnp;
-	} */ *ap;
+devfs_remove(struct vop_remove_args *ap)
 {
 	struct vnode *vp = ap->a_vp;
 	struct devfs_dirent *dd;
@@ -1145,11 +952,7 @@
  * as well so that we create a new one next time around.
  */
 static int
-devfs_revoke(ap)
-	struct vop_revoke_args /* {
-		struct vnode *a_vp;
-		int a_flags;
-	} */ *ap;
+devfs_revoke(struct vop_revoke_args *ap)
 {
 	struct vnode *vp = ap->a_vp;
 	struct cdev *dev;
@@ -1170,15 +973,7 @@
 }
 
 static int
-devfs_rioctl(ap)
-	struct vop_ioctl_args /* {
-		struct vnode *a_vp;
-		u_long  a_command;
-		caddr_t  a_data;
-		int  a_fflag;
-		struct ucred *a_cred;
-		struct thread *a_td;
-	} */ *ap;
+devfs_rioctl(struct vop_ioctl_args *ap)
 {
 	int error;
 	struct devfs_mount *dmp;
@@ -1193,13 +988,7 @@
 }
 
 static int
-devfs_rread(ap)
-	struct vop_read_args /* {
-		struct vnode *a_vp;
-		struct uio *a_uio;
-		int a_ioflag;
-		struct ucred *a_cred;
-	} */ *ap;
+devfs_rread(struct vop_read_args *ap)
 {
 
 	if (ap->a_vp->v_type != VDIR)
@@ -1208,13 +997,7 @@
 }
 
 static int
-devfs_setattr(ap)
-	struct vop_setattr_args /* {
-		struct vnode *a_vp;
-		struct vattr *a_vap;
-		struct ucred *a_cred;
-		struct proc *a_p;
-	} */ *ap;
+devfs_setattr(struct vop_setattr_args *ap)
 {
 	struct devfs_dirent *de;
 	struct vattr *vap;
@@ -1300,13 +1083,7 @@
 
 #ifdef MAC
 static int
-devfs_setlabel(ap)
-	struct vop_setlabel_args /* {
-		struct vnode *a_vp;
-		struct mac *a_label;
-		struct ucred *a_cred;
-		struct thread *a_td;
-	} */ *ap;
+devfs_setlabel(struct vop_setlabel_args *ap)
 {
 	struct vnode *vp;
 	struct devfs_dirent *de;
@@ -1329,14 +1106,7 @@
 }
 
 static int
-devfs_symlink(ap)
-	struct vop_symlink_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-		struct vattr *a_vap;
-		char *a_target;
-	} */ *ap;
+devfs_symlink(struct vop_symlink_args *ap)
 {
 	int i, error;
 	struct devfs_dirent *dd;
@@ -1414,6 +1184,74 @@
 	return (x->si_inode);
 }
 
+static struct fileops devfs_ops_f = {
+	.fo_read =	devfs_read_f,
+	.fo_write =	devfs_write_f,
+	.fo_ioctl =	devfs_ioctl_f,
+	.fo_poll =	devfs_poll_f,
+	.fo_kqfilter =	devfs_kqfilter_f,
+	.fo_stat =	devfs_stat_f,
+	.fo_close =	devfs_close_f,
+	.fo_flags =	DFLAG_PASSABLE | DFLAG_SEEKABLE
+};
+
+static struct vop_vector devfs_vnodeops = {
+	.vop_default =		&default_vnodeops,
+
+	.vop_access =		devfs_access,
+	.vop_getattr =		devfs_getattr,
+	.vop_ioctl =		devfs_rioctl,
+	.vop_lookup =		devfs_lookup,
+	.vop_mknod =		devfs_mknod,
+	.vop_pathconf =		devfs_pathconf,
+	.vop_read =		devfs_rread,
+	.vop_readdir =		devfs_readdir,
+	.vop_readlink =		devfs_readlink,
+	.vop_reclaim =		devfs_reclaim,
+	.vop_remove =		devfs_remove,
+	.vop_revoke =		devfs_revoke,
+	.vop_setattr =		devfs_setattr,
+#ifdef MAC
+	.vop_setlabel =		devfs_setlabel,
+#endif
+	.vop_symlink =		devfs_symlink,
+};
+
+static struct vop_vector devfs_specops = {
+	.vop_default =		&default_vnodeops,
+
+	.vop_access =		devfs_access,
+	.vop_advlock =		devfs_advlock,
+	.vop_bmap =		VOP_PANIC,
+	.vop_close =		devfs_close,
+	.vop_create =		VOP_PANIC,
+	.vop_fsync =		devfs_fsync,
+	.vop_getattr =		devfs_getattr,
+	.vop_lease =		VOP_NULL,
+	.vop_link =		VOP_PANIC,
+	.vop_mkdir =		VOP_PANIC,
+	.vop_mknod =		VOP_PANIC,
+	.vop_open =		devfs_open,
+	.vop_pathconf =		devfs_pathconf,
+	.vop_print =		devfs_print,
+	.vop_read =		VOP_PANIC,
+	.vop_readdir =		VOP_PANIC,
+	.vop_readlink =		VOP_PANIC,
+	.vop_reallocblks =	VOP_PANIC,
+	.vop_reclaim =		devfs_reclaim,
+	.vop_remove =		devfs_remove,
+	.vop_rename =		VOP_PANIC,
+	.vop_revoke =		devfs_revoke,
+	.vop_rmdir =		VOP_PANIC,
+	.vop_setattr =		devfs_setattr,
+#ifdef MAC
+	.vop_setlabel =		devfs_setlabel,
+#endif
+	.vop_strategy =		VOP_PANIC,
+	.vop_symlink =		VOP_PANIC,
+	.vop_write =		VOP_PANIC,
+};
+
 
 /*
  * Our calling convention to the device drivers used to be that we passed

==== //depot/projects/netsmp/src/sys/fs/fifofs/fifo_vnops.c#5 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)fifo_vnops.c	8.10 (Berkeley) 5/27/95
- * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.113 2005/03/13 12:18:23 jeff Exp $
+ * $FreeBSD: src/sys/fs/fifofs/fifo_vnops.c,v 1.118 2005/09/12 10:16:18 rwatson Exp $
  */
 
 #include <sys/param.h>

==== //depot/projects/netsmp/src/sys/i386/include/ucontext.h#2 (text+ko) ====

@@ -25,7 +25,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/i386/include/ucontext.h,v 1.10 2002/12/02 19:58:55 deischen Exp $
+ * $FreeBSD: src/sys/i386/include/ucontext.h,v 1.11 2005/09/12 03:34:05 obrien Exp $
  */
 
 #ifndef _MACHINE_UCONTEXT_H_
@@ -37,26 +37,26 @@
 	 * sigcontext. So that we can support sigcontext
 	 * and ucontext_t at the same time.
 	 */
-	int	mc_onstack;		/* XXX - sigcontext compat. */
-	int	mc_gs;			/* machine state (struct trapframe) */
-	int	mc_fs;
-	int	mc_es;
-	int	mc_ds;
-	int	mc_edi;
-	int	mc_esi;
-	int	mc_ebp;
-	int	mc_isp;
-	int	mc_ebx;
-	int	mc_edx;
-	int	mc_ecx;
-	int	mc_eax;
-	int	mc_trapno;
-	int	mc_err;
-	int	mc_eip;
-	int	mc_cs;
-	int	mc_eflags;
-	int	mc_esp;
-	int	mc_ss;
+	__register_t	mc_onstack;	/* XXX - sigcontext compat. */
+	__register_t	mc_gs;		/* machine state (struct trapframe) */
+	__register_t	mc_fs;
+	__register_t	mc_es;
+	__register_t	mc_ds;
+	__register_t	mc_edi;
+	__register_t	mc_esi;
+	__register_t	mc_ebp;
+	__register_t	mc_isp;
+	__register_t	mc_ebx;
+	__register_t	mc_edx;
+	__register_t	mc_ecx;
+	__register_t	mc_eax;
+	__register_t	mc_trapno;
+	__register_t	mc_err;
+	__register_t	mc_eip;
+	__register_t	mc_cs;
+	__register_t	mc_eflags;
+	__register_t	mc_esp;
+	__register_t	mc_ss;
 
 	int	mc_len;			/* sizeof(mcontext_t) */
 #define	_MC_FPFMT_NODEV		0x10000	/* device not present or configured */
@@ -77,28 +77,28 @@
 
 #if defined(_KERNEL) && defined(COMPAT_FREEBSD4)
 struct mcontext4 {
-	int	mc_onstack;		/* XXX - sigcontext compat. */
-	int	mc_gs;			/* machine state (struct trapframe) */
-	int	mc_fs;
-	int	mc_es;
-	int	mc_ds;
-	int	mc_edi;
-	int	mc_esi;
-	int	mc_ebp;
-	int	mc_isp;
-	int	mc_ebx;
-	int	mc_edx;
-	int	mc_ecx;
-	int	mc_eax;
-	int	mc_trapno;
-	int	mc_err;
-	int	mc_eip;
-	int	mc_cs;
-	int	mc_eflags;
-	int	mc_esp;			/* machine state */
-	int	mc_ss;
-	int	mc_fpregs[28];		/* env87 + fpacc87 + u_long */
-	int	__spare__[17];
+	__register_t	mc_onstack;	/* XXX - sigcontext compat. */
+	__register_t	mc_gs;		/* machine state (struct trapframe) */
+	__register_t	mc_fs;
+	__register_t	mc_es;
+	__register_t	mc_ds;
+	__register_t	mc_edi;
+	__register_t	mc_esi;
+	__register_t	mc_ebp;
+	__register_t	mc_isp;
+	__register_t	mc_ebx;
+	__register_t	mc_edx;
+	__register_t	mc_ecx;
+	__register_t	mc_eax;
+	__register_t	mc_trapno;
+	__register_t	mc_err;
+	__register_t	mc_eip;
+	__register_t	mc_cs;
+	__register_t	mc_eflags;
+	__register_t	mc_esp;		/* machine state */
+	__register_t	mc_ss;
+	__register_t	mc_fpregs[28];	/* env87 + fpacc87 + u_long */
+	__register_t	__spare__[17];
 };
 #endif
 

==== //depot/projects/netsmp/src/sys/kern/vfs_hash.c#2 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_hash.c,v 1.9 2005/04/07 07:54:08 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_hash.c,v 1.10 2005/09/12 01:48:57 tegge Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -79,7 +79,7 @@
 			VI_LOCK(vp);
 			mtx_unlock(&vfs_hash_mtx);
 			error = vget(vp, flags | LK_INTERLOCK, td);
-			if (error == ENOENT)
+			if (error == ENOENT && (flags & LK_NOWAIT) == 0)
 				break;
 			if (error)
 				return (error);
@@ -124,7 +124,7 @@
 			VI_LOCK(vp2);
 			mtx_unlock(&vfs_hash_mtx);
 			error = vget(vp2, flags | LK_INTERLOCK, td);
-			if (error == ENOENT)
+			if (error == ENOENT && (flags & LK_NOWAIT) == 0)
 				break;
 			mtx_lock(&vfs_hash_mtx);
 			LIST_INSERT_HEAD(&vfs_hash_side, vp, v_hashlist);

==== //depot/projects/netsmp/src/sys/kern/vfs_subr.c#8 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.643 2005/08/28 23:00:11 ssouhlal Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_subr.c,v 1.644 2005/09/12 08:46:07 phk Exp $");
 
 #include "opt_ddb.h"
 #include "opt_mac.h"
@@ -49,6 +49,7 @@
 #include <sys/bio.h>
 #include <sys/buf.h>
 #include <sys/conf.h>
+#include <sys/dirent.h>
 #include <sys/event.h>
 #include <sys/eventhandler.h>
 #include <sys/extattr.h>
@@ -3838,3 +3839,29 @@
 	}
 	return (kn->kn_fflags != 0);
 }
+
+int
+vfs_read_dirent(struct vop_readdir_args *ap, struct dirent *dp, off_t off)
+{
+	int error;
+
+	if (dp->d_reclen > ap->a_uio->uio_resid)
+		return (ENAMETOOLONG);
+	error = uiomove(dp, dp->d_reclen, ap->a_uio);
+	if (error) {
+		if (ap->a_ncookies != NULL) {
+			if (ap->a_cookies != NULL)
+				free(ap->a_cookies, M_TEMP);
+			ap->a_cookies = NULL;
+			*ap->a_ncookies = 0;
+		}
+		return (error);
+	}
+	if (ap->a_ncookies == NULL)
+		return (0);
+	*ap->a_cookies = realloc(*ap->a_cookies,
+	    (*ap->a_ncookies + 1) * sizeof(u_long), M_TEMP, M_WAITOK | M_ZERO);
+	(*ap->a_cookies)[*ap->a_ncookies] = off;
+	return (0);
+}
+

==== //depot/projects/netsmp/src/sys/netgraph/netgraph.h#6 (text+ko) ====

@@ -37,7 +37,7 @@
  *
  * Author: Julian Elischer <julian@freebsd.org>
  *
- * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.60 2005/08/30 09:44:54 glebius Exp $
+ * $FreeBSD: src/sys/netgraph/netgraph.h,v 1.61 2005/09/12 07:41:31 glebius Exp $
  * $Whistle: netgraph.h,v 1.29 1999/11/01 07:56:13 julian Exp $
  */
 
@@ -1087,7 +1087,6 @@
 int	ng_callout(struct callout *c, node_p node, hook_p hook, int ticks,
 	    ng_item_fn *fn, void * arg1, int arg2);
 #define	ng_callout_init(c)	callout_init(c, CALLOUT_MPSAFE)
-#define	ng_callout_init_mtx(c,mtx)	callout_init_mtx(c, mtx, 0)
 
 /* Flags for netgraph functions. */
 #define	NG_NOFLAGS	0x00000000	/* no special options */

==== //depot/projects/netsmp/src/sys/sys/vnode.h#4 (text+ko) ====

@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)vnode.h	8.7 (Berkeley) 2/4/94
- * $FreeBSD: src/sys/sys/vnode.h,v 1.306 2005/08/06 01:42:04 ssouhlal Exp $
+ * $FreeBSD: src/sys/sys/vnode.h,v 1.307 2005/09/12 08:46:07 phk Exp $
  */
 
 #ifndef _SYS_VNODE_H_
@@ -727,6 +727,8 @@
 void vfs_hash_remove(struct vnode *vp);
 
 int vfs_kqfilter(struct vop_kqfilter_args *);
+struct dirent;
+int vfs_read_dirent(struct vop_readdir_args *ap, struct dirent *dp, off_t off);
 
 #endif /* _KERNEL */
 

==== //depot/projects/netsmp/src/sys/ufs/ffs/ffs_rawread.c#2 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.25 2005/04/30 11:28:19 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_rawread.c,v 1.26 2005/09/12 01:21:42 tegge Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -102,7 +102,6 @@
 	int upgraded;
 	struct bufobj *bo;
 
-	GIANT_REQUIRED;
 	/* Check for dirty mmap, pending writes and dirty buffers */
 	spl = splbio();
 	VI_LOCK(vp);
@@ -189,7 +188,6 @@
 	struct inode *ip;
 	ufs2_daddr_t blkno;
 	
-	GIANT_REQUIRED;
 	bsize = vp->v_mount->mnt_stat.f_iosize;
 	
 	ip = VTOI(vp);
@@ -268,7 +266,6 @@
 	off_t offset;
 	struct thread *td;
 	
-	GIANT_REQUIRED;
 	td = uio->uio_td ? uio->uio_td : curthread;
 	udata = uio->uio_iov->iov_base;
 	resid = uio->uio_resid;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200509121058.j8CAwPNM033864>