PERFORCE change 83452 for review
Robert Watson
rwatson at FreeBSD.org
Mon Sep 12 03:58:27 PDT 2005
http://perforce.freebsd.org/chv.cgi?CH=83452
Change 83452 by rwatson at 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 at 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;
More information about the p4-projects
mailing list