Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Aug 2004 02:38:43 GMT
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 59952 for review
Message-ID:  <200408180238.i7I2chXQ024125@repoman.freebsd.org>

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

Change 59952 by rwatson@rwatson_paprika on 2004/08/18 02:38:20

	Integrate netperf_socket from FreeBSD CVS HEAD:
	
	Much MFi386 into amd64.
	ipfw, dummynet, et al, use PFIL_HOOKS (woo!).
	aic* driver fixups.
	netinet white space cleanup.
	psm sync bits fixup.
	6.x-current.

Affected files ...

.. //depot/projects/netperf_socket/sys/amd64/acpica/acpi_machdep.c#4 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/busdma_machdep.c#4 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/cpu_switch.S#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/db_interface.c#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/intr_machdep.c#6 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/io_apic.c#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/legacy.c#4 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/local_apic.c#5 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#15 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/trap.c#9 integrate
.. //depot/projects/netperf_socket/sys/amd64/amd64/vm_machdep.c#11 integrate
.. //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#15 integrate
.. //depot/projects/netperf_socket/sys/amd64/include/intr_machdep.h#3 integrate
.. //depot/projects/netperf_socket/sys/amd64/isa/atpic.c#6 integrate
.. //depot/projects/netperf_socket/sys/amd64/isa/clock.c#6 integrate
.. //depot/projects/netperf_socket/sys/amd64/isa/isa.h#3 integrate
.. //depot/projects/netperf_socket/sys/amd64/isa/isa_dma.c#4 integrate
.. //depot/projects/netperf_socket/sys/boot/Makefile#4 integrate
.. //depot/projects/netperf_socket/sys/boot/ofw/common/main.c#3 integrate
.. //depot/projects/netperf_socket/sys/boot/ofw/libofw/ofw_console.c#2 integrate
.. //depot/projects/netperf_socket/sys/boot/ofw/libofw/ofw_net.c#2 integrate
.. //depot/projects/netperf_socket/sys/boot/ofw/libofw/openfirm.c#3 integrate
.. //depot/projects/netperf_socket/sys/boot/ofw/libofw/openfirm.h#2 integrate
.. //depot/projects/netperf_socket/sys/boot/powerpc/loader/Makefile#5 integrate
.. //depot/projects/netperf_socket/sys/boot/sparc64/boot1/boot1.c#2 integrate
.. //depot/projects/netperf_socket/sys/boot/sparc64/loader/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/boot/sparc64/loader/main.c#2 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/kern_ndis.c#19 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/ndis_var.h#10 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/subr_ndis.c#15 integrate
.. //depot/projects/netperf_socket/sys/compat/ndis/subr_ntoskrnl.c#18 integrate
.. //depot/projects/netperf_socket/sys/conf/files#48 integrate
.. //depot/projects/netperf_socket/sys/conf/files.ia64#7 integrate
.. //depot/projects/netperf_socket/sys/conf/newvers.sh#4 integrate
.. //depot/projects/netperf_socket/sys/conf/options#26 integrate
.. //depot/projects/netperf_socket/sys/conf/options.ia64#2 integrate
.. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_if.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/acpica/acpi_cmbat.c#9 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/ahc_eisa.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/ahc_isa.c#1 branch
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/ahc_pci.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.h#5 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx_osm.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx_osm.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic7xxx_osm.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic_osm_lib.c#2 integrate
.. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic_osm_lib.h#3 integrate
.. //depot/projects/netperf_socket/sys/dev/amr/amr.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/amr/amrio.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ciss/ciss.c#14 integrate
.. //depot/projects/netperf_socket/sys/dev/cp/cpddk.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/eisa/eisaconf.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndis_pci.c#8 integrate
.. //depot/projects/netperf_socket/sys/dev/ofw/ofw_disk.c#4 integrate
.. //depot/projects/netperf_socket/sys/dev/ofw/openfirm.c#3 integrate
.. //depot/projects/netperf_socket/sys/dev/ofw/openfirm.h#2 integrate
.. //depot/projects/netperf_socket/sys/dev/ofw/openfirmio.c#6 integrate
.. //depot/projects/netperf_socket/sys/dev/ofw/openpromio.c#5 integrate
.. //depot/projects/netperf_socket/sys/dev/pccard/pccard.c#3 integrate
.. //depot/projects/netperf_socket/sys/i386/i386/legacy.c#5 integrate
.. //depot/projects/netperf_socket/sys/ia64/disasm/disasm_decode.c#2 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/machdep.c#10 integrate
.. //depot/projects/netperf_socket/sys/ia64/ia64/unaligned.c#2 integrate
.. //depot/projects/netperf_socket/sys/ia64/include/pcb.h#3 integrate
.. //depot/projects/netperf_socket/sys/isa/psm.c#10 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_intr.c#9 integrate
.. //depot/projects/netperf_socket/sys/kern/kern_lock.c#4 integrate
.. //depot/projects/netperf_socket/sys/modules/agp/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/modules/aic7xxx/ahc/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/modules/aic7xxx/ahc/ahc_eisa/Makefile#3 integrate
.. //depot/projects/netperf_socket/sys/modules/aic7xxx/ahc/ahc_isa/Makefile#1 branch
.. //depot/projects/netperf_socket/sys/modules/cbb/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/modules/ipfw/Makefile#2 integrate
.. //depot/projects/netperf_socket/sys/net/bridge.c#9 integrate
.. //depot/projects/netperf_socket/sys/netgraph/ng_bridge.c#7 integrate
.. //depot/projects/netperf_socket/sys/netinet/icmp_var.h#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/if_atm.c#2 integrate
.. //depot/projects/netperf_socket/sys/netinet/if_atm.h#2 integrate
.. //depot/projects/netperf_socket/sys/netinet/igmp.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/in.c#5 integrate
.. //depot/projects/netperf_socket/sys/netinet/in.h#6 integrate
.. //depot/projects/netperf_socket/sys/netinet/in_pcb.h#7 integrate
.. //depot/projects/netperf_socket/sys/netinet/in_proto.c#6 integrate
.. //depot/projects/netperf_socket/sys/netinet/in_var.h#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_divert.c#13 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_dummynet.c#7 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_dummynet.h#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_fastfwd.c#9 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_fw.h#9 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_fw2.c#15 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_fw_pfil.c#1 branch
.. //depot/projects/netperf_socket/sys/netinet/ip_gre.c#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_icmp.c#10 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_id.c#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_input.c#21 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_mroute.c#12 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_mroute.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_output.c#17 integrate
.. //depot/projects/netperf_socket/sys/netinet/ip_var.h#8 integrate
.. //depot/projects/netperf_socket/sys/netinet/raw_ip.c#13 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp.h#5 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_debug.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_hostcache.c#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_input.c#18 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_output.c#10 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_sack.c#2 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_subr.c#18 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_syncache.c#13 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_timer.c#4 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_timer.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_usrreq.c#14 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcp_var.h#10 integrate
.. //depot/projects/netperf_socket/sys/netinet/tcpip.h#3 integrate
.. //depot/projects/netperf_socket/sys/netinet/udp_usrreq.c#12 integrate
.. //depot/projects/netperf_socket/sys/netinet/udp_var.h#3 integrate
.. //depot/projects/netperf_socket/sys/powerpc/conf/GENERIC#10 integrate
.. //depot/projects/netperf_socket/sys/powerpc/ofw/ofw_pcib_pci.c#3 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powermac/ata_kauai.c#5 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powermac/hrowpic.c#7 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powermac/macio.c#6 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powermac/uninorth.c#5 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/locore.S#5 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/nexus.c#4 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/ofw_machdep.c#3 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/ofwmagic.S#2 integrate
.. //depot/projects/netperf_socket/sys/powerpc/powerpc/pmap.c#15 integrate
.. //depot/projects/netperf_socket/sys/sparc64/conf/GENERIC#10 integrate
.. //depot/projects/netperf_socket/sys/sparc64/conf/NOTES#6 integrate
.. //depot/projects/netperf_socket/sys/sparc64/include/ofw_bus.h#3 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/machdep.c#7 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/nexus.c#7 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/ofw_bus.c#3 integrate
.. //depot/projects/netperf_socket/sys/sparc64/sparc64/ofw_machdep.c#6 integrate
.. //depot/projects/netperf_socket/sys/sys/mbuf.h#17 integrate
.. //depot/projects/netperf_socket/sys/sys/param.h#24 integrate

Differences ...

==== //depot/projects/netperf_socket/sys/amd64/acpica/acpi_machdep.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.14 2004/06/30 04:42:29 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.15 2004/08/16 23:10:18 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -40,8 +40,7 @@
 {
 	struct	acpi_softc *sc;
 
-	sc = device_get_softc(dev);
-
+	sc = devclass_get_softc(devclass_find("acpi"), 0);
 	acpi_install_wakeup_handler(sc);
 
 	if (intr_model != ACPI_INTR_PIC)

==== //depot/projects/netperf_socket/sys/amd64/amd64/busdma_machdep.c#4 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.56 2004/07/08 01:28:33 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.57 2004/08/16 22:53:03 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -526,7 +526,7 @@
 
 	if ((dmat->lowaddr < ptoa((vm_paddr_t)Maxmem)
 	 || dmat->boundary > 0 || dmat->alignment > 1)
-	 && map->pagesneeded == 0) {
+	 && map != &nobounce_dmamap && map->pagesneeded == 0) {
 		vm_offset_t	vendaddr;
 
 		/*

==== //depot/projects/netperf_socket/sys/amd64/amd64/cpu_switch.S#5 (text+ko) ====

@@ -30,7 +30,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.150 2004/05/16 22:43:57 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.151 2004/08/16 22:53:29 peter Exp $
  */
 
 #include <machine/asmacros.h>
@@ -53,7 +53,7 @@
 /*
  * cpu_throw()
  *
- * This is the second half of cpu_swtch(). It is used when the current
+ * This is the second half of cpu_switch(). It is used when the current
  * thread is either a dummy or slated to die, and we no longer care
  * about its state.  This is only a slight optimization and is probably
  * not worth it anymore.  Note that we need to clear the pm_active bits so

==== //depot/projects/netperf_socket/sys/amd64/amd64/db_interface.c#5 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_interface.c,v 1.79 2004/07/10 23:47:18 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_interface.c,v 1.80 2004/08/16 23:10:46 peter Exp $");
 
 /*
  * Interface to new debugger.
@@ -33,11 +33,9 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kdb.h>
-#include <sys/reboot.h>
 #include <sys/cons.h>
 #include <sys/pcpu.h>
 #include <sys/proc.h>
-#include <sys/smp.h>
 
 #include <machine/cpu.h>
 

==== //depot/projects/netperf_socket/sys/amd64/amd64/intr_machdep.c#6 (text+ko) ====

@@ -26,7 +26,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.8 2004/07/19 16:37:47 jhb Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.9 2004/08/16 23:12:29 peter Exp $
  */
 
 /*
@@ -212,8 +212,7 @@
 		 * For stray and threaded interrupts, we mask and EOI the
 		 * source.
 		 */
-		isrc->is_pic->pic_disable_source(isrc);
-		isrc->is_pic->pic_eoi_source(isrc);
+		isrc->is_pic->pic_disable_source(isrc, PIC_EOI);
 		if (ih == NULL)
 			error = EINVAL;
 		else

==== //depot/projects/netperf_socket/sys/amd64/amd64/io_apic.c#5 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.10 2004/07/08 01:42:49 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.11 2004/08/16 23:12:29 peter Exp $");
 
 #include "opt_atpic.h"
 #include "opt_isa.h"
@@ -119,7 +119,7 @@
 static const char *ioapic_bus_string(int bus_type);
 static void	ioapic_print_vector(struct ioapic_intsrc *intpin);
 static void	ioapic_enable_source(struct intsrc *isrc);
-static void	ioapic_disable_source(struct intsrc *isrc);
+static void	ioapic_disable_source(struct intsrc *isrc, int eoi);
 static void	ioapic_eoi_source(struct intsrc *isrc);
 static void	ioapic_enable_intr(struct intsrc *isrc);
 static int	ioapic_vector(struct intsrc *isrc);
@@ -148,6 +148,12 @@
 #endif
 TUNABLE_INT("hw.apic.mixed_mode", &mixed_mode_active);
 
+static __inline void
+_ioapic_eoi_source(struct intsrc *isrc)
+{
+	lapic_eoi();
+}
+
 static u_int
 ioapic_read(volatile ioapic_t *apic, int reg)
 {
@@ -225,7 +231,7 @@
 }
 
 static void
-ioapic_disable_source(struct intsrc *isrc)
+ioapic_disable_source(struct intsrc *isrc, int eoi)
 {
 	struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc;
 	struct ioapic *io = (struct ioapic *)isrc->is_pic;
@@ -240,6 +246,10 @@
 		    flags);
 		intpin->io_masked = 1;
 	}
+
+	if (eoi == PIC_EOI)
+		_ioapic_eoi_source(isrc);
+
 	mtx_unlock_spin(&icu_lock);
 }
 
@@ -247,7 +257,7 @@
 ioapic_eoi_source(struct intsrc *isrc)
 {
 
-	lapic_eoi();
+	_ioapic_eoi_source(isrc);
 }
 
 /*

==== //depot/projects/netperf_socket/sys/amd64/amd64/legacy.c#4 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/legacy.c,v 1.55 2004/06/03 20:25:05 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/legacy.c,v 1.56 2004/08/16 22:54:50 peter Exp $");
 
 /*
  * This code implements a system driver for legacy systems that do not
@@ -51,7 +51,6 @@
 
 static MALLOC_DEFINE(M_LEGACYDEV, "legacydrv", "legacy system device");
 struct legacy_device {
-	struct resource_list	lg_resources;
 	int			lg_pcibus;
 };
 
@@ -63,15 +62,8 @@
 static	int legacy_print_child(device_t, device_t);
 static device_t legacy_add_child(device_t bus, int order, const char *name,
 				int unit);
-static	struct resource *legacy_alloc_resource(device_t, device_t, int, int *,
-					      u_long, u_long, u_long, u_int);
 static	int legacy_read_ivar(device_t, device_t, int, uintptr_t *);
 static	int legacy_write_ivar(device_t, device_t, int, uintptr_t);
-static	int legacy_release_resource(device_t, device_t, int, int,
-				   struct resource *);
-static	int legacy_set_resource(device_t, device_t, int, int, u_long, u_long);
-static	int legacy_get_resource(device_t, device_t, int, int, u_long *, u_long *);
-static void legacy_delete_resource(device_t, device_t, int, int);
 
 static device_method_t legacy_methods[] = {
 	/* Device interface */
@@ -88,11 +80,8 @@
 	DEVMETHOD(bus_add_child,	legacy_add_child),
 	DEVMETHOD(bus_read_ivar,	legacy_read_ivar),
 	DEVMETHOD(bus_write_ivar,	legacy_write_ivar),
-	DEVMETHOD(bus_set_resource,	legacy_set_resource),
-	DEVMETHOD(bus_get_resource,	legacy_get_resource),
-	DEVMETHOD(bus_alloc_resource,	legacy_alloc_resource),
-	DEVMETHOD(bus_release_resource,	legacy_release_resource),
-	DEVMETHOD(bus_delete_resource,	legacy_delete_resource),
+	DEVMETHOD(bus_alloc_resource,	bus_generic_alloc_resource),
+	DEVMETHOD(bus_release_resource,	bus_generic_release_resource),
 	DEVMETHOD(bus_activate_resource, bus_generic_activate_resource),
 	DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource),
 	DEVMETHOD(bus_setup_intr,	bus_generic_setup_intr),
@@ -183,30 +172,12 @@
 }
 
 static int
-legacy_print_all_resources(device_t dev)
-{
-	struct legacy_device *atdev = DEVTOAT(dev);
-	struct resource_list *rl = &atdev->lg_resources;
-	int retval = 0;
-
-	if (SLIST_FIRST(rl) || atdev->lg_pcibus != -1)
-		retval += printf(" at");
-	
-	retval += resource_list_print_type(rl, "port", SYS_RES_IOPORT, "%#lx");
-	retval += resource_list_print_type(rl, "iomem", SYS_RES_MEMORY, "%#lx");
-	retval += resource_list_print_type(rl, "irq", SYS_RES_IRQ, "%ld");
-
-	return retval;
-}
-
-static int
 legacy_print_child(device_t bus, device_t child)
 {
 	struct legacy_device *atdev = DEVTOAT(child);
 	int retval = 0;
 
 	retval += bus_print_child_header(bus, child);
-	retval += legacy_print_all_resources(child);
 	if (atdev->lg_pcibus != -1)
 		retval += printf(" pcibus %d", atdev->lg_pcibus);
 	retval += printf(" on motherboard\n");	/* XXX "motherboard", ick */
@@ -224,7 +195,6 @@
 	    M_NOWAIT | M_ZERO);
 	if (atdev == NULL)
 		return(NULL);
-	resource_list_init(&atdev->lg_resources);
 	atdev->lg_pcibus = -1;
 
 	child = device_add_child_ordered(bus, order, name, unit);
@@ -268,66 +238,6 @@
 	return 0;
 }
 
-
-static struct resource *
-legacy_alloc_resource(device_t bus, device_t child, int type, int *rid,
-		     u_long start, u_long end, u_long count, u_int flags)
-{
-	struct legacy_device *atdev = DEVTOAT(child);
-	struct resource_list *rl = &atdev->lg_resources;
-
-	return (resource_list_alloc(rl, bus, child, type, rid, start, end,
-		    count, flags));
-}
-
-static int
-legacy_release_resource(device_t bus, device_t child, int type, int rid,
-		       struct resource *r)
-{
-	struct legacy_device *atdev = DEVTOAT(child);
-	struct resource_list *rl = &atdev->lg_resources;
-
-	return (resource_list_release(rl, bus, child, type, rid, r));
-}
-
-static int
-legacy_set_resource(device_t dev, device_t child, int type, int rid,
-    u_long start, u_long count)
-{
-	struct legacy_device *atdev = DEVTOAT(child);
-	struct resource_list *rl = &atdev->lg_resources;
-
-	resource_list_add(rl, type, rid, start, start + count - 1, count);
-	return(0);
-}
-
-static int
-legacy_get_resource(device_t dev, device_t child, int type, int rid,
-    u_long *startp, u_long *countp)
-{
-	struct legacy_device *atdev = DEVTOAT(child);
-	struct resource_list *rl = &atdev->lg_resources;
-	struct resource_list_entry *rle;
-
-	rle = resource_list_find(rl, type, rid);
-	if (!rle)
-		return(ENOENT);
-	if (startp)
-		*startp = rle->start;
-	if (countp)
-		*countp = rle->count;
-	return(0);
-}
-
-static void
-legacy_delete_resource(device_t dev, device_t child, int type, int rid)
-{
-	struct legacy_device *atdev = DEVTOAT(child);
-	struct resource_list *rl = &atdev->lg_resources;
-
-	resource_list_delete(rl, type, rid);
-}
-
 /*
  * Legacy CPU attachment when ACPI is not available.  Drivers like
  * cpufreq(4) hang off this.

==== //depot/projects/netperf_socket/sys/amd64/amd64/local_apic.c#5 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.9 2004/05/16 20:30:46 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.10 2004/08/16 22:55:32 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -194,7 +194,7 @@
 {
 	int i;
 
-	if (apic_id > MAX_APICID) {
+	if (apic_id >= MAX_APICID) {
 		printf("APIC: Ignoring local APIC with ID %d\n", apic_id);
 		if (boot_cpu)
 			panic("Can't ignore BSP");

==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#15 (text+ko) ====

@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.617 2004/08/10 12:15:27 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.618 2004/08/16 22:57:47 peter Exp $");
 
 #include "opt_atalk.h"
 #include "opt_atpic.h"
@@ -95,6 +95,11 @@
 #include <sys/exec.h>
 #include <sys/cons.h>
 
+#ifdef DDB
+#ifndef KDB
+#error KDB must be enabled in order for DDB to work!
+#endif
+#endif
 #include <ddb/ddb.h>
 
 #include <net/netisr.h>

==== //depot/projects/netperf_socket/sys/amd64/amd64/trap.c#9 (text+ko) ====

@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.278 2004/08/09 23:57:59 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.279 2004/08/16 22:56:20 peter Exp $");
 
 /*
  * AMD64 Trap and System call handling
@@ -286,7 +286,7 @@
 				 */
 				if (kdb_on_nmi) {
 					printf ("NMI ... going to debugger\n");
-					kdb_trap (type, 0, &frame);
+					kdb_trap(type, 0, &frame);
 				}
 #endif /* KDB */
 				goto userout;
@@ -747,6 +747,9 @@
 		ktrsyscall(code, narg, argp);
 #endif
 
+	CTR4(KTR_SYSC, "syscall enter thread %p pid %d proc %s code %d", td,
+	    td->td_proc->p_pid, td->td_proc->p_comm, code);
+
 	if (error == 0) {
 		td->td_retval[0] = 0;
 		td->td_retval[1] = frame.tf_rdx;
@@ -810,6 +813,9 @@
 	 */
 	userret(td, &frame, sticks);
 
+	CTR4(KTR_SYSC, "syscall exit thread %p pid %d proc %s code %d", td,
+	    td->td_proc->p_pid, td->td_proc->p_comm, code);
+
 #ifdef KTRACE
 	if (KTRPOINT(td, KTR_SYSRET))
 		ktrsysret(code, error, td->td_retval[0]);

==== //depot/projects/netperf_socket/sys/amd64/amd64/vm_machdep.c#11 (text+ko) ====

@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.236 2004/08/11 23:23:05 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/vm_machdep.c,v 1.237 2004/08/16 22:57:13 peter Exp $");
 
 #include "opt_isa.h"
 #include "opt_cpu.h"
@@ -314,6 +314,7 @@
 	 * Set the trap frame to point at the beginning of the uts
 	 * function.
 	 */
+	td->td_frame->tf_rbp = 0; 
 	td->td_frame->tf_rsp =
 	    ((register_t)ku->ku_stack.ss_sp + ku->ku_stack.ss_size) & ~0x0f;
 	td->td_frame->tf_rsp -= 8;

==== //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#15 (text+ko) ====

@@ -16,7 +16,7 @@
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.420 2004/08/16 12:51:32 obrien Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.421 2004/08/16 22:59:24 peter Exp $
 
 machine		amd64
 cpu		HAMMER
@@ -58,6 +58,7 @@
 options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug
 					# output.  Adds ~215k to driver.
 options 	PFIL_HOOKS		# pfil(9) framework
+options 	ADAPTIVE_GIANT		# Giant mutex is adaptive.
 
 # Debugging for use in -current
 options 	KDB			# Enable kernel debugger support.
@@ -149,7 +150,6 @@
 # PCCARD (PCMCIA) support
 # PCMCIA and cardbus bridge support
 device		cbb		# cardbus (yenta) bridge
-#device		pcic		# ExCA ISA and PCI bridges
 device		pccard		# PC Card (16-bit) bus
 device		cardbus		# CardBus (32-bit) bus
 

==== //depot/projects/netperf_socket/sys/amd64/include/intr_machdep.h#3 (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/amd64/include/intr_machdep.h,v 1.3 2004/05/16 20:30:46 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/intr_machdep.h,v 1.4 2004/08/16 23:12:30 peter Exp $
  */
 
 #ifndef __MACHINE_INTR_MACHDEP_H__
@@ -50,7 +50,7 @@
  */
 struct pic {
 	void (*pic_enable_source)(struct intsrc *);
-	void (*pic_disable_source)(struct intsrc *);
+	void (*pic_disable_source)(struct intsrc *, int);
 	void (*pic_eoi_source)(struct intsrc *);
 	void (*pic_enable_intr)(struct intsrc *);
 	int (*pic_vector)(struct intsrc *);
@@ -61,6 +61,12 @@
 	    enum intr_polarity);
 };
 
+/* Flags for pic_disable_source() */
+enum {
+	PIC_EOI,
+	PIC_NO_EOI,
+};
+
 /*
  * An interrupt source.  The upper-layer code uses the PIC methods to
  * control a given source.  The lower-layer PIC drivers can store additional

==== //depot/projects/netperf_socket/sys/amd64/isa/atpic.c#6 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/atpic.c,v 1.12 2004/06/03 05:58:30 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/atpic.c,v 1.13 2004/08/16 23:12:30 peter Exp $");
 
 #include "opt_auto_eoi.h"
 #include "opt_isa.h"
@@ -140,7 +140,7 @@
 };
 
 static void atpic_enable_source(struct intsrc *isrc);
-static void atpic_disable_source(struct intsrc *isrc);
+static void atpic_disable_source(struct intsrc *isrc, int eoi);
 static void atpic_eoi_master(struct intsrc *isrc);
 static void atpic_eoi_slave(struct intsrc *isrc);
 static void atpic_enable_intr(struct intsrc *isrc);
@@ -177,6 +177,35 @@
 
 CTASSERT(sizeof(atintrs) / sizeof(atintrs[0]) == NUM_ISA_IRQS);
 
+static __inline void
+_atpic_eoi_master(struct intsrc *isrc)
+{
+
+	KASSERT(isrc->is_pic == &atpics[MASTER].at_pic,
+	    ("%s: mismatched pic", __func__));
+#ifndef AUTO_EOI_1
+	outb(atpics[MASTER].at_ioaddr, OCW2_EOI);
+#endif
+}
+
+/*
+ * The data sheet says no auto-EOI on slave, but it sometimes works.
+ * So, if AUTO_EOI_2 is enabled, we use it.
+ */
+static __inline void
+_atpic_eoi_slave(struct intsrc *isrc)
+{
+
+	KASSERT(isrc->is_pic == &atpics[SLAVE].at_pic,
+	    ("%s: mismatched pic", __func__));
+#ifndef AUTO_EOI_2
+	outb(atpics[SLAVE].at_ioaddr, OCW2_EOI);
+#ifndef AUTO_EOI_1
+	outb(atpics[MASTER].at_ioaddr, OCW2_EOI);
+#endif
+#endif
+}
+
 static void
 atpic_enable_source(struct intsrc *isrc)
 {
@@ -192,48 +221,48 @@
 }
 
 static void
-atpic_disable_source(struct intsrc *isrc)
+atpic_disable_source(struct intsrc *isrc, int eoi)
 {
 	struct atpic_intsrc *ai = (struct atpic_intsrc *)isrc;
 	struct atpic *ap = (struct atpic *)isrc->is_pic;
 
-	if (ai->at_trigger == INTR_TRIGGER_EDGE)
-		return;
 	mtx_lock_spin(&icu_lock);
-	*ap->at_imen |= IMEN_MASK(ai);
-	outb(ap->at_ioaddr + ICU_IMR_OFFSET, *ap->at_imen);
+	if (ai->at_trigger != INTR_TRIGGER_EDGE) {
+		*ap->at_imen |= IMEN_MASK(ai);
+		outb(ap->at_ioaddr + ICU_IMR_OFFSET, *ap->at_imen);
+	}
+
+	/*
+	 * Take care to call these functions directly instead of through
+	 * a function pointer.  All of the referenced variables should
+	 * still be hot in the cache.
+	 */
+	if (eoi == PIC_EOI) {
+		if (isrc->is_pic == &atpics[MASTER].at_pic)
+			_atpic_eoi_master(isrc);
+		else
+			_atpic_eoi_slave(isrc);
+	}
+
 	mtx_unlock_spin(&icu_lock);
 }
 
 static void
 atpic_eoi_master(struct intsrc *isrc)
 {
-
-	KASSERT(isrc->is_pic == &atpics[MASTER].at_pic,
-	    ("%s: mismatched pic", __func__));
 #ifndef AUTO_EOI_1
 	mtx_lock_spin(&icu_lock);
-	outb(atpics[MASTER].at_ioaddr, OCW2_EOI);
+	_atpic_eoi_master(isrc);
 	mtx_unlock_spin(&icu_lock);
 #endif
 }
 
-/*
- * The data sheet says no auto-EOI on slave, but it sometimes works.
- * So, if AUTO_EOI_2 is enabled, we use it.
- */
 static void
 atpic_eoi_slave(struct intsrc *isrc)
 {
-
-	KASSERT(isrc->is_pic == &atpics[SLAVE].at_pic,
-	    ("%s: mismatched pic", __func__));
 #ifndef AUTO_EOI_2
 	mtx_lock_spin(&icu_lock);
-	outb(atpics[SLAVE].at_ioaddr, OCW2_EOI);
-#ifndef AUTO_EOI_1
-	outb(atpics[MASTER].at_ioaddr, OCW2_EOI);
-#endif
+	_atpic_eoi_slave(isrc);
 	mtx_unlock_spin(&icu_lock);
 #endif
 }

==== //depot/projects/netperf_socket/sys/amd64/isa/clock.c#6 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.213 2004/07/11 18:07:55 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/clock.c,v 1.214 2004/08/16 22:52:02 peter Exp $");
 
 /*
  * Routines to handle clock hardware.
@@ -212,6 +212,7 @@
 static void
 rtcintr(struct clockframe *frame)
 {
+
 	while (rtcin(RTC_INTR) & RTCIR_PERIOD) {
 		if (profprocs != 0) {
 			if (--pscnt == 0)
@@ -295,7 +296,7 @@
 	 * multiplications and divisions to scale the count take a while).
 	 *
 	 * However, if ddb is active then use a fake counter since reading
-	 * the i8254 counter involves acquiring a lock.  ddb must not go
+	 * the i8254 counter involves acquiring a lock.  ddb must not do
 	 * locking for many reasons, but it calls here for at least atkbd
 	 * input.
 	 */

==== //depot/projects/netperf_socket/sys/amd64/isa/isa.h#3 (text+ko) ====

@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  *	from: @(#)isa.h	5.7 (Berkeley) 5/9/91
- * $FreeBSD: src/sys/amd64/isa/isa.h,v 1.25 2004/04/05 21:25:52 imp Exp $
+ * $FreeBSD: src/sys/amd64/isa/isa.h,v 1.26 2004/08/16 22:51:44 peter Exp $
  */
 
 #ifndef _I386_ISA_ISA_H_
@@ -64,69 +64,9 @@
 #define	IO_NPX		0x0F0		/* Numeric Coprocessor */
 
 		/* Cards */
-					/* 0x100 - 0x16F Open */
-
-#define	IO_WD2		0x170		/* Secondary Fixed Disk Controller */
-
-#define	IO_PMP2		0x178		/* 82347 Power Management Peripheral */
-
-					/* 0x17A - 0x1EF Open */
-
-#define	IO_WD1		0x1F0		/* Primary Fixed Disk Controller */
-#define	IO_GAME		0x201		/* Game Controller */
-
-					/* 0x202 - 0x22A Open */
-
-#define	IO_ASC2		0x22B		/* AmiScan addr.grp. 2 */
-
-					/* 0x230 - 0x26A Open */
-
-#define	IO_ASC3		0x26B		/* AmiScan addr.grp. 3 */
-#define	IO_GSC1		0x270 /* -- 0x27B! GeniScan GS-4500 addr.grp. 1 */
-#define	IO_LPT2		0x278		/* Parallel Port #2 */
-
-					/* 0x280 - 0x2AA Open */
-
-#define	IO_ASC4		0x2AB		/* AmiScan addr.grp. 4 */
-
-					/* 0x2B0 - 0x2DF Open */
-
-#define	IO_GSC2		0x2E0		/* GeniScan GS-4500 addr.grp. 2 */
-#define	IO_COM4		0x2E8		/* COM4 i/o address */
-#define	IO_ASC5		0x2EB		/* AmiScan addr.grp. 5 */
-
-					/* 0x2F0 - 0x2F7 Open */
-
-#define	IO_COM2		0x2F8		/* COM2 i/o address */
-
-					/* 0x300 - 0x32A Open */
-
-#define	IO_ASC6		0x32B		/* AmiScan addr.grp. 6 */
-#define	IO_AHA0		0x330		/* adaptec 1542 default addr. */
-#define	IO_BT0		0x330		/* bustek 742a default addr. */
-#define	IO_UHA0		0x330		/* ultrastore 14f default addr. */
-#define	IO_AHA1		0x334		/* adaptec 1542 default addr. */
-#define	IO_BT1		0x334		/* bustek 742a default addr. */
-
-					/* 0x340 - 0x36A Open */
-
-#define	IO_ASC7		0x36B		/* AmiScan addr.grp. 7 */
-#define	IO_GSC3		0x370		/* GeniScan GS-4500 addr.grp. 3 */
-#define	IO_FD2		0x370		/* secondary base i/o address */
-#define	IO_LPT1		0x378		/* Parallel Port #1 */
-
-					/* 0x380 - 0x3AA Open */
-
-#define	IO_ASC8		0x3AB		/* AmiScan addr.grp. 8 */
-#define	IO_MDA		0x3B0		/* Monochome Adapter */
-#define	IO_LPT3		0x3BC		/* Monochome Adapter Printer Port */
 #define	IO_VGA		0x3C0		/* E/VGA Ports */
 #define	IO_CGA		0x3D0		/* CGA Ports */
-#define	IO_GSC4		0x3E0		/* GeniScan GS-4500 addr.grp. 4 */
-#define	IO_COM3		0x3E8		/* COM3 i/o address */
-#define	IO_ASC1		0x3EB		/* AmiScan addr.grp. 1 */
-#define	IO_FD1		0x3F0		/* primary base i/o address */
-#define	IO_COM1		0x3F8		/* COM1 i/o address */
+#define	IO_MDA		0x3B0		/* Monochome Adapter */
 
 #define	IO_ISAEND	0x3FF		/* End (actually Max) of I/O Regs */
 #endif /* !IO_ISABEGIN */
@@ -138,25 +78,10 @@
 #ifndef	IO_ISASIZES
 #define	IO_ISASIZES
 
-#define	IO_ASCSIZE	5		/* AmiScan GI1904-based hand scanner */
 #define	IO_CGASIZE	12		/* CGA controllers */
-#define	IO_COMSIZE	8		/* 8250, 16x50 com controllers */
-#define	IO_DMASIZE	16		/* 8237 DMA controllers */
-#define	IO_DPGSIZE	32		/* 74LS612 DMA page registers */
-#define	IO_FDCSIZE	8		/* Nec765 floppy controllers */
-#define	IO_GAMSIZE	16		/* AT compatible game controllers */
-#define	IO_GSCSIZE	8		/* GeniScan GS-4500G hand scanner */
-#define	IO_ICUSIZE	16		/* 8259A interrupt controllers */
-#define	IO_KBDSIZE	16		/* 8042 Keyboard controllers */
-#define	IO_LPTSIZE	8		/* LPT controllers, some use only 4 */
 #define	IO_MDASIZE	12		/* Monochrome display controllers */
 #define	IO_NPXSIZE	16		/* 80387/80487 NPX registers */
-#define	IO_PMPSIZE	2		/* 82347 power management peripheral */
-#define	IO_PSMSIZE	5		/* 8042 Keyboard controllers */
-#define	IO_RTCSIZE	16		/* CMOS real time clock, NMI control */
-#define	IO_TMRSIZE	16		/* 8253 programmable timers */
 #define	IO_VGASIZE	16		/* VGA controllers */
-#define	IO_WDCSIZE	8		/* WD compatible disk controllers */
 
 #endif /* !IO_ISASIZES */
 

==== //depot/projects/netperf_socket/sys/amd64/isa/isa_dma.c#4 (text+ko) ====

@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/isa/isa_dma.c,v 1.18 2004/04/05 21:25:52 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/isa/isa_dma.c,v 1.19 2004/08/16 22:51:13 peter Exp $");
 
 /*
  * code to manage AT bus
@@ -103,12 +103,20 @@
 {
 	void *buf;
 
+	/*
+	 * If a DMA channel is shared, both drivers have to call isa_dmainit
+	 * since they don't know that the other driver will do it.
+	 * Just return if we're already set up good.
+	 * XXX: this only works if they agree on the bouncebuf size.  This
+	 * XXX: is typically the case since they are multiple instances of
+	 * XXX: the same driver.
+	 */
+	if (dma_bouncebuf[chan] != NULL)
+		return;
+
 #ifdef DIAGNOSTIC
 	if (chan & ~VALID_DMA_MASK)
 		panic("isa_dmainit: channel out of range");
-
-	if (dma_bouncebuf[chan] != NULL)
-		panic("isa_dmainit: impossible request"); 
 #endif
 
 	dma_bouncebufsize[chan] = bouncebufsize;

==== //depot/projects/netperf_socket/sys/boot/Makefile#4 (text+ko) ====

@@ -1,11 +1,11 @@
-# $FreeBSD: src/sys/boot/Makefile,v 1.23 2004/05/16 00:19:12 cognet Exp $
+# $FreeBSD: src/sys/boot/Makefile,v 1.24 2004/08/16 15:45:24 marius Exp $
 
 .if !defined(NOFORTH)
 # Build the add-in FORTH interpreter.
 SUBDIR+=		ficl
 .endif
 
-# Build OpenFirmware library.
+# Build Open Firmware library.
 .if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
 SUBDIR+=		ofw
 .endif

==== //depot/projects/netperf_socket/sys/boot/ofw/common/main.c#3 (text+ko) ====

@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/ofw/common/main.c,v 1.6 2004/08/02 03:05:09 grehan Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/ofw/common/main.c,v 1.7 2004/08/16 15:45:24 marius Exp $");
 
 #include <stand.h>
 #include "openfirm.h"
@@ -102,7 +102,7 @@
 	char		**bargv;
 
 	/*
-	 * Initalise the OpenFirmware routines by giving them the entry point.
+	 * Initalise the Open Firmware routines by giving them the entry point.
 	 */
 	OF_init(openfirm);
 

==== //depot/projects/netperf_socket/sys/boot/ofw/libofw/ofw_console.c#2 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_console.c,v 1.8 2004/01/04 23:27:31 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_console.c,v 1.9 2004/08/16 15:45:25 marius Exp $");
 
 #include <sys/types.h>
 

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



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