Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 16 Apr 2004 18:46:24 -0700 (PDT)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 51211 for review
Message-ID:  <200404170146.i3H1kOVY022143@repoman.freebsd.org>

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

Change 51211 by rwatson@rwatson_paprika on 2004/04/16 18:45:24

	Integrate netperf_socket:
	
	The usual exploration of the impact of whitespace on code quality.
	Various and sundry emulation activities for 32-bit FreeBSD binaries
	  on 64-bit hardware.  *stat(), signal contexts, etc.
	NDISulator learns about Windows synchronization primitives ("bring
	  back SPLs!")
	New ACPI drop.
	aac grows a timeout for in-progress commands.
	if_arl uses 802.11 framework and ifconfig to set paramters.  
	Interface use of if_addrhead to test for link layer configuration
	  removed.  Several switches to TAILQ_FOREACH() from manual loops
	  involving ifnet lists.  ifaddr annotations in if_var.h.
	  Preference for ifaddr_byindex() over
	  TAILQ_FIRST(&ifp->if_addrhead);
	ata grows control for Promise command sequencers.
	ciss learns about logical volumes.
	PCI BAR magic.
	/dev/random becomes locked down, and un-locked down.
	pcm becomes un-INTR_MPSAFE.
	interrupt thread can avoid multiple weakup for multiple interrupts
	  with long-running interrupts.  Interrupt storm mitigation.
	MAC m_getcl() bugfix in mbuf allocator.
	Interface clone functions become static.
	if_ppp crashes less when mbufs are handed off.
	SA_SIZE() to return sockaddr size.  Sane cleanups of route socket 
	  parsing.
	Preference for rtalloc_ign() of rtalloc().
	NSIZECHANGED flag in the NFS client to track size changes and cause
	  cache inval.

Affected files ...

.. //depot/projects/netperf_socket/sys/alpha/alpha/interrupt.c#3 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#7 integrate
.. //depot/projects/netperf_socket/sys/boot/forth/loader.conf#4 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32.h#2 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_misc.c#4 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_proto.h#5 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscall.h#5 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscalls.c#5 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_sysent.c#5 integrate
.. //depot/projects/netperf_socket/sys/compat/freebsd32/syscalls.master#4 integrate
.. //depot/projects/netperf_socket/sys/compat/ia32/ia32_signal.h#3 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/hal_var.h#2 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/kern_ndis.c#12 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/ndis_var.h#6 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/ntoskrnl_var.h#7 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/pe_var.h#2 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/subr_hal.c#3 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/subr_ndis.c#8 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/subr_ntoskrnl.c#10 integrate
.. //depot/projects/netperf_socket/sys/conf/files#17 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/CHANGES.txt#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/acconfig.h#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/acdisasm.h#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/acglobal.h#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/achware.h#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/acinterp.h#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/aclocal.h#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/acpica_prep.sh#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/actypes.h#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/acutils.h#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/common/adisasm.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/compiler/aslload.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/dbexec.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/dmopcode.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/dmutils.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/dmwalk.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/dsmthdat.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/dswload.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/evgpe.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/evgpeblk.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/evmisc.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/evxfevnt.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/excreate.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/exdump.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/exfldio.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/exresnte.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/exstore.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/exstoren.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/hwgpe.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/hwregs.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/hwsleep.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/nsaccess.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/nsdump.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/nseval.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/nssearch.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/nsutils.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/nsxfeval.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/rsaddr.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/uteval.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/utglobal.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/dev/acpica/utmisc.c#3 integrate
.. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pflog.c#4 integrate
.. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/aac/aac.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdDebug.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdHardware.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdInterrupt.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdMemory.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdSchedule.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdStream.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/Osd/OsdSynch.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#14 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_ec.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_powerres.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#8 integrate
.. //depot/projects/netperf_socket/sys/dev/arl/if_arl.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/arl/if_arl_isa.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/arl/if_arlreg.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-all.h#7 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-card.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-cbus.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-chipset.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-disk.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-dma.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-isa.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-pci.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-pci.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/ata/ata-queue.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/ciss/ciss.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ciss/cissreg.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ciss/cissvar.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/cs/if_cs.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ed/if_ed.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/ex/if_ex.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/fe/if_fe.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndis.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndisvar.h#4 integrate
.. //depot/projects/netperf_socket/sys/dev/lnc/if_lnc.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/pccbb/pccbb.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/pci/pci.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/random/harvest.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/random/randomdev.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/random/randomdev.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/random/randomdev_soft.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/sbni/if_sbni.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/sn/if_sn.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/isa/ad1816.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/isa/ess.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/isa/mss.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/isa/sb16.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/isa/sb8.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/isa/sbc.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/cmi.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/csa.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/csapcm.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/ds1.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/emu10k1.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/ich.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pci/t4dwave.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/sound/pcm/sound.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/sx/sx_pci.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/devlist2h.awk#2 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/if_aue.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/usbdevs#9 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/usbdevs.h#9 integrate
.. //depot/projects/netperf_socket/sys/dev/usb/usbdevs_data.h#9 integrate
.. //depot/projects/netperf_socket/sys/dev/wl/if_wl.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/xe/if_xe.c#4 integrate
.. //depot/projects/netperf_socket/sys/i386/acpica/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/i386/acpica/acpi_toshiba.c#4 integrate
.. //depot/projects/netperf_socket/sys/i386/acpica/madt.c#3 integrate
.. //depot/projects/netperf_socket/sys/i386/conf/GENERIC#5 integrate
.. //depot/projects/netperf_socket/sys/i386/conf/NOTES#16 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/apic_vector.s#4 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/exception.s#3 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/support.s#3 integrate
.. //depot/projects/netperf_socket/sys/i386/isa/atpic_vector.s#4 integrate
.. //depot/projects/netperf_socket/sys/i386/pci/pci_pir.c#2 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_intr.c#4 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_poll.c#3 integrate
.. //depot/projects/netperf_socket/sys/kern/subr_mbuf.c#2 integrate
.. //depot/projects/netperf_socket/sys/net/if.c#5 integrate
.. //depot/projects/netperf_socket/sys/net/if_faith.c#4 integrate
.. //depot/projects/netperf_socket/sys/net/if_gif.c#4 integrate
.. //depot/projects/netperf_socket/sys/net/if_loop.c#4 integrate
.. //depot/projects/netperf_socket/sys/net/if_media.h#3 integrate
.. //depot/projects/netperf_socket/sys/net/if_ppp.c#3 integrate
.. //depot/projects/netperf_socket/sys/net/if_stf.c#4 integrate
.. //depot/projects/netperf_socket/sys/net/if_var.h#8 integrate
.. //depot/projects/netperf_socket/sys/net/route.c#6 integrate
.. //depot/projects/netperf_socket/sys/net/route.h#6 integrate
.. //depot/projects/netperf_socket/sys/net/rtsock.c#4 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_fec.c#2 integrate
.. //depot/projects/netperf_socket/sys/netinet/in_gif.c#2 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_output.c#8 integrate
.. //depot/projects/netperf_socket/sys/nfsclient/nfs_bio.c#5 integrate
.. //depot/projects/netperf_socket/sys/nfsclient/nfs_subs.c#7 integrate
.. //depot/projects/netperf_socket/sys/nfsclient/nfsnode.h#3 integrate
.. //depot/projects/netperf_socket/sys/pc98/conf/NOTES#9 integrate
.. //depot/projects/netperf_socket/sys/pci/if_xl.c#6 integrate
.. //depot/projects/netperf_socket/sys/sys/param.h#9 integrate

Differences ...

==== //depot/projects/netperf_socket/sys/alpha/alpha/interrupt.c#3 (text+ko) ====

@@ -35,7 +35,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 /* __KERNEL_RCSID(0, "$NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $");*/
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.77 2004/03/23 22:28:16 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.78 2004/04/16 20:09:53 jhb Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -134,7 +134,7 @@
 		alpha_clock_interrupt(framep);
 		break;
 
-	case  ALPHA_INTR_ERROR:	/* Machine Check or Correctable Error */
+	case ALPHA_INTR_ERROR:	/* Machine Check or Correctable Error */
 		a0 = alpha_pal_rdmces();
 		if (platform.mcheck_handler)
 			(*platform.mcheck_handler)(a0, framep, a1, a2);

==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#7 (text+ko) ====

@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.456 2004/04/05 00:37:47 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.457 2004/04/16 03:45:28 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -384,7 +384,7 @@
 	/* XXX not fully used, underneath 2M pages */
 	for (i = 0; (i << PAGE_SHIFT) < avail_start; i++) {
 		((pt_entry_t *)KPTphys)[i] = i << PAGE_SHIFT;
-		((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V;
+		((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V | PG_G;
 	}
 
 	/* Now map the page tables at their location within PTmap */
@@ -397,7 +397,7 @@
 	/* This replaces some of the KPTphys entries above */
 	for (i = 0; (i << PDRSHIFT) < avail_start; i++) {
 		((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT;
-		((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS;
+		((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS | PG_G;
 	}
 
 	/* And connect up the PD to the PDP */
@@ -410,7 +410,7 @@
 	/* Now set up the direct map space using 2MB pages */
 	for (i = 0; i < NPDEPG * ndmpdp; i++) {
 		((pd_entry_t *)DMPDphys)[i] = (vm_paddr_t)i << PDRSHIFT;
-		((pd_entry_t *)DMPDphys)[i] |= PG_RW | PG_V | PG_PS;
+		((pd_entry_t *)DMPDphys)[i] |= PG_RW | PG_V | PG_PS | PG_G;
 	}
 
 	/* And the direct map space's PDP */

==== //depot/projects/netperf_socket/sys/boot/forth/loader.conf#4 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.76 2004/03/01 18:42:16 des Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.77 2004/04/15 12:12:15 cperciva Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -311,7 +311,7 @@
 accf_data_load="NO"		# Wait for data accept filter
 accf_http_load="NO"		# Wait for full HTTP request accept filter
 random_load="NO"		# Random device
-atspeaker_load="NO"		# AT speaker module
+speaker_load="NO"		# AT speaker module
 
 ##############################################################
 ###  ACPI settings  ##########################################

==== //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32.h#2 (text+ko) ====

@@ -23,7 +23,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32.h,v 1.3 2003/10/30 02:40:30 peter Exp $
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32.h,v 1.4 2004/04/14 23:17:37 peter Exp $
  */
 
 #ifndef _COMPAT_FREEBSD32_FREEBSD32_H_
@@ -75,8 +75,9 @@
 	int32_t	ru_nivcsw;
 };
 
-#define FREEBSD32_MNAMELEN        (88 - 2 * sizeof(int32_t)) /* size of on/from name bufs */
+#define FREEBSD4_MNAMELEN        (88 - 2 * sizeof(int32_t)) /* size of on/from name bufs */
 
+/* 4.x version */
 struct statfs32 {
 	int32_t	f_spare2;
 	int32_t	f_bsize;
@@ -93,11 +94,11 @@
 	int32_t	f_syncwrites;
 	int32_t	f_asyncwrites;
 	char	f_fstypename[MFSNAMELEN];
-	char	f_mntonname[FREEBSD32_MNAMELEN];
+	char	f_mntonname[FREEBSD4_MNAMELEN];
 	int32_t	f_syncreads;
 	int32_t	f_asyncreads;
 	int16_t	f_spares1;
-	char	f_mntfromname[FREEBSD32_MNAMELEN];
+	char	f_mntfromname[FREEBSD4_MNAMELEN];
 	int16_t	f_spares2 __packed;
 	int32_t f_spare[2];
 };

==== //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_misc.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.20 2004/03/17 19:59:59 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.21 2004/04/14 23:17:37 peter Exp $");
 
 #include "opt_compat.h"
 
@@ -140,15 +140,15 @@
 	bcopy(in->f_fstypename,
 	      out->f_fstypename, MFSNAMELEN);
 	bcopy(in->f_mntonname,
-	      out->f_mntonname, MNAMELEN);
+	      out->f_mntonname, min(MNAMELEN, FREEBSD4_MNAMELEN));
 	CP(*in, *out, f_syncreads);
 	CP(*in, *out, f_asyncreads);
 	bcopy(in->f_mntfromname,
-	      out->f_mntfromname, MNAMELEN);
+	      out->f_mntfromname, min(MNAMELEN, FREEBSD4_MNAMELEN));
 }
 
 int
-freebsd32_getfsstat(struct thread *td, struct freebsd32_getfsstat_args *uap)
+freebsd4_freebsd32_getfsstat(struct thread *td, struct freebsd4_freebsd32_getfsstat_args *uap)
 {
 	int error;
 	caddr_t sg;
@@ -870,7 +870,7 @@
 }
 
 int
-freebsd32_statfs(struct thread *td, struct freebsd32_statfs_args *uap)
+freebsd4_freebsd32_statfs(struct thread *td, struct freebsd4_freebsd32_statfs_args *uap)
 {
 	int error;
 	caddr_t sg;
@@ -897,7 +897,7 @@
 }
 
 int
-freebsd32_fstatfs(struct thread *td, struct freebsd32_fstatfs_args *uap)
+freebsd4_freebsd32_fstatfs(struct thread *td, struct freebsd4_freebsd32_fstatfs_args *uap)
 {
 	int error;
 	caddr_t sg;
@@ -924,6 +924,33 @@
 }
 
 int
+freebsd4_freebsd32_fhstatfs(struct thread *td, struct freebsd4_freebsd32_fhstatfs_args *uap)
+{
+	int error;
+	caddr_t sg;
+	struct statfs32 *p32, s32;
+	struct statfs *p = NULL, s;
+
+	p32 = uap->buf;
+	if (p32) {
+		sg = stackgap_init();
+		p = stackgap_alloc(&sg, sizeof(struct statfs));
+		uap->buf = (struct statfs32 *)p;
+	}
+	error = fhstatfs(td, (struct fhstatfs_args *) uap);
+	if (error)
+		return (error);
+	if (p32) {
+		error = copyin(p, &s, sizeof(s));
+		if (error)
+			return (error);
+		copy_statfs(&s, &s32);
+		error = copyout(&s32, p32, sizeof(s32));
+	}
+	return (error);
+}
+
+int
 freebsd32_semsys(struct thread *td, struct freebsd32_semsys_args *uap)
 {
 	/*

==== //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_proto.h#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.24 2004/04/05 10:17:23 dfr Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.36 2004/03/27 14:30:42 mtm Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.25 2004/04/14 23:17:57 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.37 2004/04/14 23:17:37 peter Exp 
  */
 
 #ifndef _FREEBSD32_SYSPROTO_H_
@@ -38,11 +38,6 @@
 	char options_l_[PADL_(int)]; int options; char options_r_[PADR_(int)];
 	char rusage_l_[PADL_(struct rusage32 *)]; struct rusage32 * rusage; char rusage_r_[PADR_(struct rusage32 *)];
 };
-struct freebsd32_getfsstat_args {
-	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
-	char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)];
-	char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
-};
 struct freebsd32_sigaltstack_args {
 	char ss_l_[PADL_(struct sigaltstack32 *)]; struct sigaltstack32 * ss; char ss_r_[PADR_(struct sigaltstack32 *)];
 	char oss_l_[PADL_(struct sigaltstack32 *)]; struct sigaltstack32 * oss; char oss_r_[PADR_(struct sigaltstack32 *)];
@@ -98,14 +93,6 @@
 	char delta_l_[PADL_(struct timeval32 *)]; struct timeval32 * delta; char delta_r_[PADR_(struct timeval32 *)];
 	char olddelta_l_[PADL_(struct timeval32 *)]; struct timeval32 * olddelta; char olddelta_r_[PADR_(struct timeval32 *)];
 };
-struct freebsd32_statfs_args {
-	char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
-	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
-};
-struct freebsd32_fstatfs_args {
-	char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
-	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
-};
 struct freebsd32_semsys_args {
 	char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)];
 	char a2_l_[PADL_(int)]; int a2; char a2_r_[PADR_(int)];
@@ -219,7 +206,6 @@
 	char sigcntxp_l_[PADL_(const struct freebsd32_ucontext *)]; const struct freebsd32_ucontext * sigcntxp; char sigcntxp_r_[PADR_(const struct freebsd32_ucontext *)];
 };
 int	freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *);
-int	freebsd32_getfsstat(struct thread *, struct freebsd32_getfsstat_args *);
 int	freebsd32_sigaltstack(struct thread *, struct freebsd32_sigaltstack_args *);
 int	freebsd32_execve(struct thread *, struct freebsd32_execve_args *);
 int	freebsd32_setitimer(struct thread *, struct freebsd32_setitimer_args *);
@@ -232,8 +218,6 @@
 int	freebsd32_settimeofday(struct thread *, struct freebsd32_settimeofday_args *);
 int	freebsd32_utimes(struct thread *, struct freebsd32_utimes_args *);
 int	freebsd32_adjtime(struct thread *, struct freebsd32_adjtime_args *);
-int	freebsd32_statfs(struct thread *, struct freebsd32_statfs_args *);
-int	freebsd32_fstatfs(struct thread *, struct freebsd32_fstatfs_args *);
 int	freebsd32_semsys(struct thread *, struct freebsd32_semsys_args *);
 int	freebsd32_msgsys(struct thread *, struct freebsd32_msgsys_args *);
 int	freebsd32_shmsys(struct thread *, struct freebsd32_shmsys_args *);
@@ -260,6 +244,23 @@
 
 #ifdef COMPAT_FREEBSD4
 
+struct freebsd4_freebsd32_getfsstat_args {
+	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
+	char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)];
+	char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
+};
+struct freebsd4_freebsd32_statfs_args {
+	char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
+};
+struct freebsd4_freebsd32_fstatfs_args {
+	char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
+};
+struct freebsd4_freebsd32_fhstatfs_args {
+	char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
+	char buf_l_[PADL_(struct statfs32 *)]; struct statfs32 * buf; char buf_r_[PADR_(struct statfs32 *)];
+};
 struct freebsd4_freebsd32_sendfile_args {
 	char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
 	char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)];
@@ -278,6 +279,10 @@
 struct freebsd4_freebsd32_sigreturn_args {
 	char sigcntxp_l_[PADL_(const struct freebsd4_freebsd32_ucontext *)]; const struct freebsd4_freebsd32_ucontext * sigcntxp; char sigcntxp_r_[PADR_(const struct freebsd4_freebsd32_ucontext *)];
 };
+int	freebsd4_freebsd32_getfsstat(struct thread *, struct freebsd4_freebsd32_getfsstat_args *);
+int	freebsd4_freebsd32_statfs(struct thread *, struct freebsd4_freebsd32_statfs_args *);
+int	freebsd4_freebsd32_fstatfs(struct thread *, struct freebsd4_freebsd32_fstatfs_args *);
+int	freebsd4_freebsd32_fhstatfs(struct thread *, struct freebsd4_freebsd32_fhstatfs_args *);
 int	freebsd4_freebsd32_sendfile(struct thread *, struct freebsd4_freebsd32_sendfile_args *);
 int	freebsd4_freebsd32_sigaction(struct thread *, struct freebsd4_freebsd32_sigaction_args *);
 int	freebsd4_freebsd32_sigreturn(struct thread *, struct freebsd4_freebsd32_sigreturn_args *);

==== //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscall.h#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.24 2004/04/05 10:17:23 dfr Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.36 2004/03/27 14:30:42 mtm Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.25 2004/04/14 23:17:57 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.37 2004/04/14 23:17:37 peter Exp 
  */
 
 #define	FREEBSD32_SYS_syscall	0
@@ -24,7 +24,7 @@
 #define	FREEBSD32_SYS_chmod	15
 #define	FREEBSD32_SYS_chown	16
 #define	FREEBSD32_SYS_break	17
-#define	FREEBSD32_SYS_freebsd32_getfsstat	18
+				/* 18 is old freebsd32_getfsstat */
 				/* 19 is obsolete olseek */
 #define	FREEBSD32_SYS_getpid	20
 #define	FREEBSD32_SYS_mount	21
@@ -150,8 +150,8 @@
 				/* 149 is obsolete oquota */
 				/* 150 is obsolete ogetsockname */
 				/* 156 is obsolete ogetdirentries */
-#define	FREEBSD32_SYS_freebsd32_statfs	157
-#define	FREEBSD32_SYS_freebsd32_fstatfs	158
+				/* 157 is old freebsd32_statfs */
+				/* 158 is old freebsd32_fstatfs */
 #define	FREEBSD32_SYS_getfh	161
 #define	FREEBSD32_SYS_getdomainname	162
 #define	FREEBSD32_SYS_setdomainname	163
@@ -215,7 +215,7 @@
 #define	FREEBSD32_SYS_nstat	278
 #define	FREEBSD32_SYS_nfstat	279
 #define	FREEBSD32_SYS_nlstat	280
-#define	FREEBSD32_SYS_fhstatfs	297
+				/* 297 is old freebsd32_fhstatfs */
 #define	FREEBSD32_SYS_fhopen	298
 #define	FREEBSD32_SYS_fhstat	299
 #define	FREEBSD32_SYS_modnext	300
@@ -286,6 +286,10 @@
 #define	FREEBSD32_SYS_lchflags	391
 #define	FREEBSD32_SYS_uuidgen	392
 #define	FREEBSD32_SYS_freebsd32_sendfile	393
+#define	FREEBSD32_SYS_getfsstat	395
+#define	FREEBSD32_SYS_statfs	396
+#define	FREEBSD32_SYS_fstatfs	397
+#define	FREEBSD32_SYS_fhstatfs	398
 #define	FREEBSD32_SYS_freebsd32_sigaction	416
 #define	FREEBSD32_SYS_freebsd32_sigreturn	417
 #define	FREEBSD32_SYS_thr_create	430

==== //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_syscalls.c#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.15 2004/04/05 10:17:23 dfr Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.36 2004/03/27 14:30:42 mtm Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.16 2004/04/14 23:17:57 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.37 2004/04/14 23:17:37 peter Exp 
  */
 
 const char *freebsd32_syscallnames[] = {
@@ -25,7 +25,7 @@
 	"chmod",			/* 15 = chmod */
 	"chown",			/* 16 = chown */
 	"break",			/* 17 = break */
-	"freebsd32_getfsstat",			/* 18 = freebsd32_getfsstat */
+	"old.freebsd32_getfsstat",		/* 18 = old freebsd32_getfsstat */
 	"obs_olseek",			/* 19 = obsolete olseek */
 	"getpid",			/* 20 = getpid */
 	"mount",			/* 21 = mount */
@@ -164,8 +164,8 @@
 	"#154",			/* 154 = nosys */
 	"#155",			/* 155 = nfssvc */
 	"obs_ogetdirentries",			/* 156 = obsolete ogetdirentries */
-	"freebsd32_statfs",			/* 157 = freebsd32_statfs */
-	"freebsd32_fstatfs",			/* 158 = freebsd32_fstatfs */
+	"old.freebsd32_statfs",		/* 157 = old freebsd32_statfs */
+	"old.freebsd32_fstatfs",		/* 158 = old freebsd32_fstatfs */
 	"#159",			/* 159 = nosys */
 	"#160",			/* 160 = nosys */
 	"getfh",			/* 161 = getfh */
@@ -304,7 +304,7 @@
 	"#294",			/* 294 = nosys */
 	"#295",			/* 295 = nosys */
 	"#296",			/* 296 = nosys */
-	"fhstatfs",			/* 297 = fhstatfs */
+	"old.freebsd32_fhstatfs",		/* 297 = old freebsd32_fhstatfs */
 	"fhopen",			/* 298 = fhopen */
 	"fhstat",			/* 299 = fhstat */
 	"modnext",			/* 300 = modnext */
@@ -402,10 +402,10 @@
 	"uuidgen",			/* 392 = uuidgen */
 	"freebsd32_sendfile",			/* 393 = freebsd32_sendfile */
 	"#394",			/* 394 = mac_syscall */
-	"#395",			/* 395 = nosys */
-	"#396",			/* 396 = nosys */
-	"#397",			/* 397 = nosys */
-	"#398",			/* 398 = nosys */
+	"getfsstat",			/* 395 = getfsstat */
+	"statfs",			/* 396 = statfs */
+	"fstatfs",			/* 397 = fstatfs */
+	"fhstatfs",			/* 398 = fhstatfs */
 	"#399",			/* 399 = nosys */
 	"#400",			/* 400 = ksem_close */
 	"#401",			/* 401 = ksem_post */

==== //depot/projects/netperf_socket/sys/compat/freebsd32/freebsd32_sysent.c#5 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.25 2004/04/05 10:17:23 dfr Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.36 2004/03/27 14:30:42 mtm Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.26 2004/04/14 23:17:57 peter Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.37 2004/04/14 23:17:37 peter Exp 
  */
 
 #include "opt_compat.h"
@@ -43,7 +43,7 @@
 	{ AS(chmod_args), (sy_call_t *)chmod },		/* 15 = chmod */
 	{ AS(chown_args), (sy_call_t *)chown },		/* 16 = chown */
 	{ SYF_MPSAFE | AS(obreak_args), (sy_call_t *)obreak },	/* 17 = break */
-	{ AS(freebsd32_getfsstat_args), (sy_call_t *)freebsd32_getfsstat },	/* 18 = freebsd32_getfsstat */
+	{ compat4(AS(freebsd4_freebsd32_getfsstat_args),freebsd32_getfsstat) },	/* 18 = old freebsd32_getfsstat */
 	{ 0, (sy_call_t *)nosys },			/* 19 = obsolete olseek */
 	{ SYF_MPSAFE | 0, (sy_call_t *)getpid },	/* 20 = getpid */
 	{ AS(mount_args), (sy_call_t *)mount },		/* 21 = mount */
@@ -182,8 +182,8 @@
 	{ 0, (sy_call_t *)nosys },			/* 154 = nosys */
 	{ 0, (sy_call_t *)nosys },			/* 155 = nfssvc */
 	{ 0, (sy_call_t *)nosys },			/* 156 = obsolete ogetdirentries */
-	{ AS(freebsd32_statfs_args), (sy_call_t *)freebsd32_statfs },	/* 157 = freebsd32_statfs */
-	{ AS(freebsd32_fstatfs_args), (sy_call_t *)freebsd32_fstatfs },	/* 158 = freebsd32_fstatfs */
+	{ compat4(AS(freebsd4_freebsd32_statfs_args),freebsd32_statfs) },	/* 157 = old freebsd32_statfs */
+	{ compat4(AS(freebsd4_freebsd32_fstatfs_args),freebsd32_fstatfs) },	/* 158 = old freebsd32_fstatfs */
 	{ 0, (sy_call_t *)nosys },			/* 159 = nosys */
 	{ 0, (sy_call_t *)nosys },			/* 160 = nosys */
 	{ AS(getfh_args), (sy_call_t *)getfh },		/* 161 = getfh */
@@ -322,7 +322,7 @@
 	{ 0, (sy_call_t *)nosys },			/* 294 = nosys */
 	{ 0, (sy_call_t *)nosys },			/* 295 = nosys */
 	{ 0, (sy_call_t *)nosys },			/* 296 = nosys */
-	{ AS(fhstatfs_args), (sy_call_t *)fhstatfs },	/* 297 = fhstatfs */
+	{ compat4(AS(freebsd4_freebsd32_fhstatfs_args),freebsd32_fhstatfs) },	/* 297 = old freebsd32_fhstatfs */
 	{ AS(fhopen_args), (sy_call_t *)fhopen },	/* 298 = fhopen */
 	{ AS(fhstat_args), (sy_call_t *)fhstat },	/* 299 = fhstat */
 	{ SYF_MPSAFE | AS(modnext_args), (sy_call_t *)modnext },	/* 300 = modnext */
@@ -420,10 +420,10 @@
 	{ AS(uuidgen_args), (sy_call_t *)uuidgen },	/* 392 = uuidgen */
 	{ SYF_MPSAFE | AS(freebsd32_sendfile_args), (sy_call_t *)freebsd32_sendfile },	/* 393 = freebsd32_sendfile */
 	{ 0, (sy_call_t *)nosys },			/* 394 = mac_syscall */
-	{ 0, (sy_call_t *)nosys },			/* 395 = nosys */
-	{ 0, (sy_call_t *)nosys },			/* 396 = nosys */
-	{ 0, (sy_call_t *)nosys },			/* 397 = nosys */
-	{ 0, (sy_call_t *)nosys },			/* 398 = nosys */
+	{ AS(getfsstat_args), (sy_call_t *)getfsstat },	/* 395 = getfsstat */
+	{ AS(statfs_args), (sy_call_t *)statfs },	/* 396 = statfs */
+	{ AS(fstatfs_args), (sy_call_t *)fstatfs },	/* 397 = fstatfs */
+	{ AS(fhstatfs_args), (sy_call_t *)fhstatfs },	/* 398 = fhstatfs */
 	{ 0, (sy_call_t *)nosys },			/* 399 = nosys */
 	{ 0, (sy_call_t *)nosys },			/* 400 = ksem_close */
 	{ 0, (sy_call_t *)nosys },			/* 401 = ksem_post */

==== //depot/projects/netperf_socket/sys/compat/freebsd32/syscalls.master#4 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.36 2004/03/27 14:30:42 mtm Exp $
+ $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.37 2004/04/14 23:17:37 peter Exp $
 ;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
 ;	from: src/sys/kern/syscalls.master 1.107
 ;
@@ -64,8 +64,8 @@
 15	NOPROTO	{ int chmod(char *path, int mode); }
 16	NOPROTO	{ int chown(char *path, int uid, int gid); }
 17	MNOPROTO { int obreak(char *nsize); } break obreak_args int
-18	STD	{ int freebsd32_getfsstat(struct statfs32 *buf, long bufsize, \
-		    int flags); }
+18	COMPAT4	{ int freebsd32_getfsstat(struct statfs32 *buf, \
+		    long bufsize, int flags); }
 19	OBSOL	olseek
 20	MNOPROTO { pid_t getpid(void); }
 21	NOPROTO	{ int mount(char *type, char *path, int flags, \
@@ -232,8 +232,9 @@
 ; XXX this is a problem!!!
 155	UNIMPL	nfssvc
 156	OBSOL	ogetdirentries
-157	STD	{ int freebsd32_statfs(char *path, struct statfs32 *buf); }
-158	STD	{ int freebsd32_fstatfs(int fd, struct statfs32 *buf); }
+157	COMPAT4	{ int freebsd32_statfs(char *path, \
+		    struct statfs32 *buf); }
+158	COMPAT4	{ int freebsd32_fstatfs(int fd, struct statfs32 *buf);}
 159	UNIMPL	nosys
 160	UNIMPL	nosys
 161	NOPROTO	{ int getfh(char *fname, struct fhandle *fhp); }
@@ -414,8 +415,8 @@
 295	UNIMPL	nosys
 296	UNIMPL	nosys
 ; XXX 297 is 300 in NetBSD 
-297	NOPROTO	{ int fhstatfs(const struct fhandle *u_fhp, \
-		    struct statfs *buf); }
+297	COMPAT4	{ int freebsd32_fhstatfs(const struct fhandle *u_fhp, \
+		    struct statfs32 *buf); }
 298	NOPROTO	{ int fhopen(const struct fhandle *u_fhp, int flags); }
 299	NOPROTO	{ int fhstat(const struct fhandle *u_fhp, struct stat *sb); }
 ; syscall numbers for FreeBSD
@@ -550,10 +551,12 @@
 		    u_int32_t offsethi, size_t nbytes, struct sf_hdtr *hdtr, \
 		    off_t *sbytes, int flags); }
 394	UNIMPL	mac_syscall
-395	UNIMPL	nosys
-396	UNIMPL	nosys
-397	UNIMPL	nosys
-398	UNIMPL	nosys
+395	NOPROTO	{ int getfsstat(struct statfs *buf, long bufsize, \
+		    int flags); }
+396	NOPROTO	{ int statfs(char *path, struct statfs *buf); }
+397	NOPROTO	{ int fstatfs(int fd, struct statfs *buf); }
+398	NOPROTO	{ int fhstatfs(const struct fhandle *u_fhp, \
+		    struct statfs *buf); }
 399	UNIMPL	nosys
 ; XXX implement these?
 400	UNIMPL	ksem_close

==== //depot/projects/netperf_socket/sys/compat/ia32/ia32_signal.h#3 (text+ko) ====

@@ -26,7 +26,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/compat/ia32/ia32_signal.h,v 1.5 2004/02/21 23:36:31 peter Exp $
+ * $FreeBSD: src/sys/compat/ia32/ia32_signal.h,v 1.6 2004/04/14 23:20:14 peter Exp $
  */
 
 struct ia32_sigaltstack {
@@ -113,6 +113,32 @@
 };
 #endif
 
+#ifdef COMPAT_FREEBSD3
+struct ia32_sigcontext3 {
+	int	sc_onstack;
+	u_int32_t sc_mask;
+	int	sc_esp;	
+	int	sc_ebp;
+	int	sc_isp;
+	int	sc_eip;
+	int	sc_eflags;
+	int	sc_es;
+	int	sc_ds;
+	int	sc_cs;
+	int	sc_ss;
+	int	sc_edi;
+	int	sc_esi;
+	int	sc_ebx;
+	int	sc_edx;
+	int	sc_ecx;
+	int	sc_eax;
+	int	sc_gs;
+	int	sc_fs;
+	int	sc_trapno;
+	int	sc_err;
+};
+#endif
+
 /*
  * Signal frames, arguments passed to application signal handlers.
  */
@@ -156,6 +182,23 @@
 	struct ia32_siginfo	sf_si;		/* = *sf_siginfo (SA_SIGINFO case) */
 };
 
+#ifdef COMPAT_FREEBSD3
+struct ia32_siginfo3 {
+	struct ia32_sigcontext3 si_sc;
+	int			si_signo;
+	int			si_code;
+	union ia32_sigval si_value;
+};
+struct ia32_sigframe3 {
+	int			sf_signum;
+	u_int32_t		sf_arg2;	/* int or siginfo_t */
+	u_int32_t		sf_scp;
+	u_int32_t		sf_addr;
+	u_int32_t		sf_ah;		/* action/handler pointer */
+	struct ia32_siginfo3	sf_siginfo;
+};
+#endif
+
 extern char ia32_sigcode[];
 extern char freebsd4_ia32_sigcode[];
 extern int sz_ia32_sigcode;

==== //depot/projects/netperf_socket/sys/compat/ndis/hal_var.h#2 (text+ko) ====

@@ -29,7 +29,7 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/compat/ndis/hal_var.h,v 1.2 2004/01/15 21:31:48 wpaul Exp $
+ * $FreeBSD: src/sys/compat/ndis/hal_var.h,v 1.3 2004/04/14 07:48:02 wpaul Exp $
  */
 
 #ifndef _HAL_VAR_H_
@@ -45,4 +45,12 @@
 
 extern image_patch_table hal_functbl[];
 
+__BEGIN_DECLS
+__stdcall extern uint8_t hal_lock(/*kspin_lock * */void);
+__stdcall extern void hal_unlock(/*kspin_lock *, uint8_t*/void);
+__stdcall extern uint8_t hal_raise_irql(/*uint8_t*/ void);
+__stdcall extern void hal_lower_irql(/*uint8_t*/ void);
+__stdcall extern uint8_t hal_irql(void);
+__END_DECLS
+
 #endif /* _HAL_VAR_H_ */

==== //depot/projects/netperf_socket/sys/compat/ndis/kern_ndis.c#12 (text+ko) ====

@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.50 2004/04/07 17:02:55 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.52 2004/04/16 00:04:28 wpaul Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -106,9 +106,8 @@
 static int ndis_shrink_thrqueue(int);
 static void ndis_runq(void *);
 
-extern struct mtx_pool *ndis_mtxpool;
 static uma_zone_t ndis_packet_zone, ndis_buffer_zone;
-struct mtx *ndis_thr_mtx;
+struct mtx ndis_thr_mtx;
 static STAILQ_HEAD(ndisqhead, ndis_req) ndis_ttodo;
 struct ndisqhead ndis_itodo;
 struct ndisqhead ndis_free;
@@ -207,23 +206,25 @@
 	p = arg;
 
 	while (1) {
-		kthread_suspend(p->np_p, 0);
+
+		/* Sleep, but preserve our original priority. */
+		ndis_thsuspend(p->np_p, 0);
 
 		/* Look for any jobs on the work queue. */
 
-		mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+		mtx_lock(&ndis_thr_mtx);
 		p->np_state = NDIS_PSTATE_RUNNING;
 		while(STAILQ_FIRST(p->np_q) != NULL) {
 			r = STAILQ_FIRST(p->np_q);
 			STAILQ_REMOVE_HEAD(p->np_q, link);
-			mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+			mtx_unlock(&ndis_thr_mtx);
 
 			/* Do the work. */
 
 			if (r->nr_func != NULL)
 				(*r->nr_func)(r->nr_arg);
 
-			mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+			mtx_lock(&ndis_thr_mtx);
 			STAILQ_INSERT_HEAD(&ndis_free, r, link);
 
 			/* Check for a shutdown request */
@@ -232,7 +233,7 @@
 				die = r;
 		}
 		p->np_state = NDIS_PSTATE_SLEEPING;
-		mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+		mtx_unlock(&ndis_thr_mtx);
 
 		/* Bail if we were told to shut down. */
 
@@ -242,6 +243,7 @@
 
 	wakeup(die);
 	kthread_exit(0);
+	return; /* notreached */
 }
 
 static int
@@ -250,7 +252,9 @@
 	struct ndis_req		*r;
 	int			i, error = 0;
 
-	ndis_thr_mtx = mtx_pool_alloc(ndis_mtxpool);
+	mtx_init(&ndis_thr_mtx, "NDIS thread lock",
+	   MTX_NDIS_LOCK, MTX_DEF);
+
 	STAILQ_INIT(&ndis_ttodo);
 	STAILQ_INIT(&ndis_itodo);
 	STAILQ_INIT(&ndis_free);
@@ -308,6 +312,8 @@
 		free(r, M_DEVBUF);
 	}
 
+	mtx_destroy(&ndis_thr_mtx);
+
 	return;
 }
 
@@ -329,29 +335,29 @@
 
 	/* Create and post a special 'exit' job. */
 
-	mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+	mtx_lock(&ndis_thr_mtx);
 	r = STAILQ_FIRST(&ndis_free);
 	STAILQ_REMOVE_HEAD(&ndis_free, link);
 	r->nr_func = NULL;
 	r->nr_arg = NULL;
 	r->nr_exit = TRUE;
 	STAILQ_INSERT_TAIL(q, r, link);
-	mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+	mtx_unlock(&ndis_thr_mtx);
 
-	kthread_resume(p);
+	ndis_thresume(p);
 
 	/* wait for thread exit */
 
-	tsleep(r, PPAUSE|PCATCH, "ndisthrexit", hz * 60);
+	tsleep(r, curthread->td_priority|PCATCH, "ndisthexit", hz * 60);
 
 	/* Now empty the job list. */
 
-	mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+	mtx_lock(&ndis_thr_mtx);
 	while ((r = STAILQ_FIRST(q)) != NULL) {
 		STAILQ_REMOVE_HEAD(q, link);
 		STAILQ_INSERT_HEAD(&ndis_free, r, link);
 	}
-	mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+	mtx_unlock(&ndis_thr_mtx);
 
 	return;
 }
@@ -367,10 +373,10 @@
 		r = malloc(sizeof(struct ndis_req), M_DEVBUF, M_WAITOK);
 		if (r == NULL)
 			return(ENOMEM);
-		mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+		mtx_lock(&ndis_thr_mtx);
 		STAILQ_INSERT_HEAD(&ndis_free, r, link);
 		ndis_jobs++;
-		mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+		mtx_unlock(&ndis_thr_mtx);
 	}
 
 	return(0);
@@ -384,15 +390,15 @@
 	int			i;
 
 	for (i = 0; i < cnt; i++) {
-		mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+		mtx_lock(&ndis_thr_mtx);
 		r = STAILQ_FIRST(&ndis_free);
 		if (r == NULL) {
-			mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+			mtx_unlock(&ndis_thr_mtx);
 			return(ENOMEM);
 		}
 		STAILQ_REMOVE_HEAD(&ndis_free, link);
 		ndis_jobs--;
-		mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+		mtx_unlock(&ndis_thr_mtx);
 		free(r, M_DEVBUF);
 	}
 
@@ -417,17 +423,17 @@
 		p = ndis_iproc.np_p;
 	}
 
-	mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+	mtx_lock(&ndis_thr_mtx);
 	STAILQ_FOREACH(r, q, link) {
 		if (r->nr_func == func && r->nr_arg == arg) {
 			STAILQ_REMOVE(q, r, ndis_req, link);
 			STAILQ_INSERT_HEAD(&ndis_free, r, link);
-			mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+			mtx_unlock(&ndis_thr_mtx);
 			return(0);
 		}
 	}
 
-	mtx_pool_unlock(ndis_mtxpool, ndis_thr_mtx);
+	mtx_unlock(&ndis_thr_mtx);
 
 	return(ENOENT);
 }
@@ -451,20 +457,20 @@

>>> TRUNCATED FOR MAIL (1000 lines) <<<



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