PERFORCE change 51211 for review
Robert Watson
rwatson at FreeBSD.org
Fri Apr 16 18:46:27 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=51211
Change 51211 by rwatson at 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) <<<
More information about the p4-projects
mailing list