PERFORCE change 42807 for review
Sam Leffler
sam at FreeBSD.org
Thu Nov 20 08:56:59 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=42807
Change 42807 by sam at sam_ebb on 2003/11/20 08:56:12
IFC
Affected files ...
.. //depot/projects/netperf/sys/alpha/alpha/interrupt.c#3 integrate
.. //depot/projects/netperf/sys/alpha/alpha/vm_machdep.c#7 integrate
.. //depot/projects/netperf/sys/alpha/include/intr.h#2 integrate
.. //depot/projects/netperf/sys/alpha/include/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/alpha/isa/isa.c#3 integrate
.. //depot/projects/netperf/sys/alpha/mcbus/mcpcia.c#3 integrate
.. //depot/projects/netperf/sys/alpha/osf1/osf1_mount.c#3 integrate
.. //depot/projects/netperf/sys/alpha/pci/apecs.c#3 integrate
.. //depot/projects/netperf/sys/alpha/pci/cia.c#3 integrate
.. //depot/projects/netperf/sys/alpha/pci/t2.c#4 integrate
.. //depot/projects/netperf/sys/alpha/pci/tsunami.c#4 integrate
.. //depot/projects/netperf/sys/amd64/acpica/madt.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/apic_vector.S#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/autoconf.c#4 integrate
.. //depot/projects/netperf/sys/amd64/amd64/cpu_switch.S#3 integrate
.. //depot/projects/netperf/sys/amd64/amd64/db_interface.c#3 integrate
.. //depot/projects/netperf/sys/amd64/amd64/db_trace.c#3 integrate
.. //depot/projects/netperf/sys/amd64/amd64/exception.S#6 integrate
.. //depot/projects/netperf/sys/amd64/amd64/fpu.c#2 integrate
.. //depot/projects/netperf/sys/amd64/amd64/genassym.c#4 integrate
.. //depot/projects/netperf/sys/amd64/amd64/identcpu.c#3 integrate
.. //depot/projects/netperf/sys/amd64/amd64/intr_machdep.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/io_apic.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/local_apic.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/machdep.c#9 integrate
.. //depot/projects/netperf/sys/amd64/amd64/mem.c#3 integrate
.. //depot/projects/netperf/sys/amd64/amd64/mp_machdep.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/mpboot.S#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/mptable.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/mptable_pci.c#1 branch
.. //depot/projects/netperf/sys/amd64/amd64/nexus.c#4 integrate
.. //depot/projects/netperf/sys/amd64/amd64/pmap.c#16 integrate
.. //depot/projects/netperf/sys/amd64/amd64/support.S#4 integrate
.. //depot/projects/netperf/sys/amd64/amd64/trap.c#9 integrate
.. //depot/projects/netperf/sys/amd64/amd64/tsc.c#5 integrate
.. //depot/projects/netperf/sys/amd64/amd64/vm_machdep.c#8 integrate
.. //depot/projects/netperf/sys/amd64/conf/GENERIC#6 integrate
.. //depot/projects/netperf/sys/amd64/ia32/ia32_syscall.c#5 integrate
.. //depot/projects/netperf/sys/amd64/include/apicreg.h#1 branch
.. //depot/projects/netperf/sys/amd64/include/apicvar.h#1 branch
.. //depot/projects/netperf/sys/amd64/include/asmacros.h#2 integrate
.. //depot/projects/netperf/sys/amd64/include/atomic.h#2 integrate
.. //depot/projects/netperf/sys/amd64/include/clock.h#5 integrate
.. //depot/projects/netperf/sys/amd64/include/intr_machdep.h#1 branch
.. //depot/projects/netperf/sys/amd64/include/md_var.h#4 integrate
.. //depot/projects/netperf/sys/amd64/include/mptable.h#1 branch
.. //depot/projects/netperf/sys/amd64/include/param.h#3 integrate
.. //depot/projects/netperf/sys/amd64/include/pcpu.h#2 integrate
.. //depot/projects/netperf/sys/amd64/include/pmap.h#5 integrate
.. //depot/projects/netperf/sys/amd64/include/segments.h#3 integrate
.. //depot/projects/netperf/sys/amd64/include/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/amd64/include/smp.h#2 integrate
.. //depot/projects/netperf/sys/amd64/include/tss.h#2 integrate
.. //depot/projects/netperf/sys/amd64/isa/atpic.c#1 branch
.. //depot/projects/netperf/sys/amd64/isa/atpic_vector.S#1 branch
.. //depot/projects/netperf/sys/amd64/isa/clock.c#6 integrate
.. //depot/projects/netperf/sys/amd64/isa/icu.h#2 integrate
.. //depot/projects/netperf/sys/amd64/isa/icu_ipl.S#2 delete
.. //depot/projects/netperf/sys/amd64/isa/icu_vector.S#3 delete
.. //depot/projects/netperf/sys/amd64/isa/intr_machdep.c#4 delete
.. //depot/projects/netperf/sys/amd64/isa/intr_machdep.h#2 delete
.. //depot/projects/netperf/sys/amd64/isa/ithread.c#3 delete
.. //depot/projects/netperf/sys/amd64/isa/nmi.c#1 branch
.. //depot/projects/netperf/sys/amd64/isa/vector.S#3 delete
.. //depot/projects/netperf/sys/amd64/pci/pci_bus.c#6 integrate
.. //depot/projects/netperf/sys/boot/i386/boot2/boot2.c#5 integrate
.. //depot/projects/netperf/sys/boot/i386/btx/btx/btx.s#2 integrate
.. //depot/projects/netperf/sys/boot/pc98/btx/btxldr/btxldr.s#2 integrate
.. //depot/projects/netperf/sys/compat/linux/linux_file.c#2 integrate
.. //depot/projects/netperf/sys/compat/linux/linux_getcwd.c#2 integrate
.. //depot/projects/netperf/sys/compat/linux/linux_misc.c#6 integrate
.. //depot/projects/netperf/sys/compat/svr4/svr4_misc.c#4 integrate
.. //depot/projects/netperf/sys/conf/NOTES#20 integrate
.. //depot/projects/netperf/sys/conf/files#27 integrate
.. //depot/projects/netperf/sys/conf/files.amd64#7 integrate
.. //depot/projects/netperf/sys/conf/files.sparc64#5 integrate
.. //depot/projects/netperf/sys/conf/kmod.mk#9 integrate
.. //depot/projects/netperf/sys/conf/options#19 integrate
.. //depot/projects/netperf/sys/conf/options.amd64#2 integrate
.. //depot/projects/netperf/sys/conf/options.pc98#5 integrate
.. //depot/projects/netperf/sys/dev/acpica/acpi.c#12 integrate
.. //depot/projects/netperf/sys/dev/acpica/acpi_cpu.c#4 integrate
.. //depot/projects/netperf/sys/dev/acpica/acpi_package.c#1 branch
.. //depot/projects/netperf/sys/dev/acpica/acpivar.h#6 integrate
.. //depot/projects/netperf/sys/dev/ata/ata-chipset.c#10 integrate
.. //depot/projects/netperf/sys/dev/ata/ata-pci.h#6 integrate
.. //depot/projects/netperf/sys/dev/ata/atapi-cd.c#14 integrate
.. //depot/projects/netperf/sys/dev/ath/if_ath.c#38 integrate
.. //depot/projects/netperf/sys/dev/idt/idt.c#3 integrate
.. //depot/projects/netperf/sys/dev/md/md.c#7 integrate
.. //depot/projects/netperf/sys/dev/pci/pci.c#9 integrate
.. //depot/projects/netperf/sys/dev/random/harvest.c#3 integrate
.. //depot/projects/netperf/sys/dev/random/hash.c#3 integrate
.. //depot/projects/netperf/sys/dev/random/randomdev.c#5 integrate
.. //depot/projects/netperf/sys/dev/random/randomdev.h#2 integrate
.. //depot/projects/netperf/sys/dev/random/yarrow.c#3 integrate
.. //depot/projects/netperf/sys/dev/sio/sio.c#9 integrate
.. //depot/projects/netperf/sys/dev/usb/ubsa.c#5 integrate
.. //depot/projects/netperf/sys/dev/usb/ucom.c#5 integrate
.. //depot/projects/netperf/sys/dev/usb/umct.c#3 integrate
.. //depot/projects/netperf/sys/dev/usb/uplcom.c#3 integrate
.. //depot/projects/netperf/sys/dev/usb/usbdevs#7 integrate
.. //depot/projects/netperf/sys/dev/usb/usbdevs.h#7 integrate
.. //depot/projects/netperf/sys/dev/usb/usbdevs_data.h#7 integrate
.. //depot/projects/netperf/sys/dev/usb/uvscom.c#3 integrate
.. //depot/projects/netperf/sys/dev/wi/if_wi.c#14 edit
.. //depot/projects/netperf/sys/fs/fdescfs/fdesc_vnops.c#3 integrate
.. //depot/projects/netperf/sys/fs/fifofs/fifo_vnops.c#3 integrate
.. //depot/projects/netperf/sys/geom/geom_event.c#3 integrate
.. //depot/projects/netperf/sys/geom/geom_subr.c#4 integrate
.. //depot/projects/netperf/sys/i386/i386/intr_machdep.c#4 integrate
.. //depot/projects/netperf/sys/i386/i386/mp_machdep.c#14 integrate
.. //depot/projects/netperf/sys/i386/i386/vm_machdep.c#5 integrate
.. //depot/projects/netperf/sys/i386/ibcs2/imgact_coff.c#4 integrate
.. //depot/projects/netperf/sys/i386/include/atomic.h#2 integrate
.. //depot/projects/netperf/sys/i386/include/pcpu.h#4 integrate
.. //depot/projects/netperf/sys/i386/include/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/i386/include/smptests.h#3 integrate
.. //depot/projects/netperf/sys/i386/isa/atpic.c#4 integrate
.. //depot/projects/netperf/sys/i386/isa/cy.c#3 integrate
.. //depot/projects/netperf/sys/i386/linux/linux_dummy.c#2 integrate
.. //depot/projects/netperf/sys/i386/linux/linux_proto.h#3 integrate
.. //depot/projects/netperf/sys/i386/linux/linux_syscall.h#3 integrate
.. //depot/projects/netperf/sys/i386/linux/linux_sysent.c#3 integrate
.. //depot/projects/netperf/sys/i386/linux/syscalls.master#3 integrate
.. //depot/projects/netperf/sys/ia64/ia64/interrupt.c#6 integrate
.. //depot/projects/netperf/sys/ia64/ia64/machdep.c#19 integrate
.. //depot/projects/netperf/sys/ia64/ia64/vm_machdep.c#9 integrate
.. //depot/projects/netperf/sys/ia64/include/pcpu.h#3 integrate
.. //depot/projects/netperf/sys/ia64/include/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/kern/kern_intr.c#4 integrate
.. //depot/projects/netperf/sys/kern/kern_mac.c#11 integrate
.. //depot/projects/netperf/sys/kern/kern_physio.c#4 integrate
.. //depot/projects/netperf/sys/kern/kern_prot.c#4 integrate
.. //depot/projects/netperf/sys/kern/kern_switch.c#4 integrate
.. //depot/projects/netperf/sys/kern/kern_timeout.c#5 integrate
.. //depot/projects/netperf/sys/kern/sched_ule.c#18 integrate
.. //depot/projects/netperf/sys/kern/subr_witness.c#7 integrate
.. //depot/projects/netperf/sys/kern/sysv_sem.c#6 integrate
.. //depot/projects/netperf/sys/kern/uipc_cow.c#2 integrate
.. //depot/projects/netperf/sys/kern/uipc_socket.c#7 integrate
.. //depot/projects/netperf/sys/kern/uipc_socket2.c#7 integrate
.. //depot/projects/netperf/sys/kern/uipc_syscalls.c#7 integrate
.. //depot/projects/netperf/sys/kern/uipc_usrreq.c#2 integrate
.. //depot/projects/netperf/sys/kern/vfs_aio.c#5 integrate
.. //depot/projects/netperf/sys/kern/vfs_bio.c#16 integrate
.. //depot/projects/netperf/sys/modules/acpi/Makefile#3 integrate
.. //depot/projects/netperf/sys/modules/linprocfs/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/linux/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/nfsclient/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/null/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/nwfs/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/ppbus/Makefile#3 integrate
.. //depot/projects/netperf/sys/modules/ppi/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/pps/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/smbfs/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/streams/Makefile#2 integrate
.. //depot/projects/netperf/sys/modules/uplcom/Makefile#2 integrate
.. //depot/projects/netperf/sys/net/if_media.h#2 edit
.. //depot/projects/netperf/sys/net/raw_usrreq.c#3 integrate
.. //depot/projects/netperf/sys/net/rtsock.c#12 integrate
.. //depot/projects/netperf/sys/netatalk/ddp_usrreq.c#4 integrate
.. //depot/projects/netperf/sys/netatm/atm_aal5.c#2 integrate
.. //depot/projects/netperf/sys/netatm/atm_usrreq.c#4 integrate
.. //depot/projects/netperf/sys/netgraph/bluetooth/socket/ng_btsocket.c#3 integrate
.. //depot/projects/netperf/sys/netgraph/ng_eiface.c#3 integrate
.. //depot/projects/netperf/sys/netgraph/ng_etf.c#2 integrate
.. //depot/projects/netperf/sys/netgraph/ng_pptpgre.c#2 integrate
.. //depot/projects/netperf/sys/netgraph/ng_socket.c#2 integrate
.. //depot/projects/netperf/sys/netinet/in_pcb.c#17 integrate
.. //depot/projects/netperf/sys/netinet/in_pcb.h#14 integrate
.. //depot/projects/netperf/sys/netinet/ip_divert.c#15 integrate
.. //depot/projects/netperf/sys/netinet/ip_fastfwd.c#2 integrate
.. //depot/projects/netperf/sys/netinet/ip_flow.h#6 delete
.. //depot/projects/netperf/sys/netinet/ip_input.c#23 integrate
.. //depot/projects/netperf/sys/netinet/raw_ip.c#11 integrate
.. //depot/projects/netperf/sys/netinet/tcp_input.c#12 integrate
.. //depot/projects/netperf/sys/netinet/tcp_usrreq.c#6 integrate
.. //depot/projects/netperf/sys/netinet/udp_usrreq.c#12 integrate
.. //depot/projects/netperf/sys/netinet6/ah.h#3 integrate
.. //depot/projects/netperf/sys/netinet6/ah_core.c#8 integrate
.. //depot/projects/netperf/sys/netinet6/ah_input.c#4 integrate
.. //depot/projects/netperf/sys/netinet6/esp_core.c#8 integrate
.. //depot/projects/netperf/sys/netinet6/esp_input.c#6 integrate
.. //depot/projects/netperf/sys/netinet6/esp_output.c#3 integrate
.. //depot/projects/netperf/sys/netinet6/ip6_output.c#25 integrate
.. //depot/projects/netperf/sys/netinet6/raw_ip6.c#9 integrate
.. //depot/projects/netperf/sys/netinet6/udp6_usrreq.c#6 integrate
.. //depot/projects/netperf/sys/netipsec/keysock.c#4 integrate
.. //depot/projects/netperf/sys/netipx/ipx_usrreq.c#2 integrate
.. //depot/projects/netperf/sys/netipx/spx_usrreq.c#3 integrate
.. //depot/projects/netperf/sys/netkey/keysock.c#5 integrate
.. //depot/projects/netperf/sys/netnatm/natm.c#8 integrate
.. //depot/projects/netperf/sys/nfsclient/nfs.h#3 integrate
.. //depot/projects/netperf/sys/nfsserver/nfs_srvsock.c#4 integrate
.. //depot/projects/netperf/sys/pc98/conf/NOTES#7 integrate
.. //depot/projects/netperf/sys/pc98/i386/machdep.c#10 integrate
.. //depot/projects/netperf/sys/pc98/pc98/sio.c#6 integrate
.. //depot/projects/netperf/sys/powerpc/include/intr_machdep.h#2 integrate
.. //depot/projects/netperf/sys/powerpc/include/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/powerpc/powermac/hrowpic.c#2 integrate
.. //depot/projects/netperf/sys/powerpc/powerpc/intr_machdep.c#2 integrate
.. //depot/projects/netperf/sys/powerpc/powerpc/openpic.c#2 integrate
.. //depot/projects/netperf/sys/powerpc/powerpc/vm_machdep.c#5 integrate
.. //depot/projects/netperf/sys/rpc/rpcclnt.c#2 integrate
.. //depot/projects/netperf/sys/security/mac/mac_internal.h#7 integrate
.. //depot/projects/netperf/sys/security/mac/mac_net.c#6 integrate
.. //depot/projects/netperf/sys/security/mac_biba/mac_biba.c#6 integrate
.. //depot/projects/netperf/sys/security/mac_ifoff/mac_ifoff.c#2 integrate
.. //depot/projects/netperf/sys/security/mac_lomac/mac_lomac.c#7 integrate
.. //depot/projects/netperf/sys/security/mac_mls/mac_mls.c#5 integrate
.. //depot/projects/netperf/sys/security/mac_stub/mac_stub.c#2 integrate
.. //depot/projects/netperf/sys/security/mac_test/mac_test.c#5 integrate
.. //depot/projects/netperf/sys/sparc64/include/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/sparc64/sparc64/vm_machdep.c#5 integrate
.. //depot/projects/netperf/sys/sys/buf.h#6 integrate
.. //depot/projects/netperf/sys/sys/interrupt.h#5 integrate
.. //depot/projects/netperf/sys/sys/mac.h#7 integrate
.. //depot/projects/netperf/sys/sys/mac_policy.h#3 integrate
.. //depot/projects/netperf/sys/sys/param.h#11 integrate
.. //depot/projects/netperf/sys/sys/proc.h#14 integrate
.. //depot/projects/netperf/sys/sys/protosw.h#4 integrate
.. //depot/projects/netperf/sys/sys/reboot.h#3 integrate
.. //depot/projects/netperf/sys/sys/sched.h#5 integrate
.. //depot/projects/netperf/sys/sys/sf_buf.h#1 branch
.. //depot/projects/netperf/sys/sys/socketvar.h#6 integrate
.. //depot/projects/netperf/sys/ufs/ffs/ffs_rawread.c#4 integrate
.. //depot/projects/netperf/sys/ufs/ffs/fs.h#2 integrate
.. //depot/projects/netperf/sys/vm/vm_map.c#15 integrate
.. //depot/projects/netperf/sys/vm/vnode_pager.c#11 integrate
Differences ...
==== //depot/projects/netperf/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.75 2003/08/17 06:42:07 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/interrupt.c,v 1.76 2003/11/17 06:10:14 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -327,7 +327,7 @@
struct alpha_intr {
LIST_ENTRY(alpha_intr) list; /* chain handlers in this hash bucket */
- int vector; /* vector to match */
+ uintptr_t vector; /* vector to match */
struct ithd *ithd; /* interrupt thread */
volatile long *cntp; /* interrupt counter */
};
@@ -346,9 +346,9 @@
SYSINIT(ithds_init, SI_SUB_INTR, SI_ORDER_SECOND, ithds_init, NULL);
int
-alpha_setup_intr(const char *name, int vector, driver_intr_t handler, void *arg,
+alpha_setup_intr(const char *name, uintptr_t vector, driver_intr_t handler, void *arg,
enum intr_type flags, void **cookiep, volatile long *cntp,
- void (*disable)(int), void (*enable)(int))
+ void (*disable)(uintptr_t), void (*enable)(uintptr_t))
{
int h = HASHVEC(vector);
struct alpha_intr *i;
==== //depot/projects/netperf/sys/alpha/alpha/vm_machdep.c#7 (text+ko) ====
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.94 2003/08/29 20:04:09 alc Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/alpha/vm_machdep.c,v 1.96 2003/11/16 23:40:05 alc Exp $");
#include "opt_kstack_pages.h"
@@ -83,7 +83,7 @@
#include <sys/vmmeter.h>
#include <sys/kernel.h>
#include <sys/mbuf.h>
-#include <sys/socketvar.h>
+#include <sys/sf_buf.h>
#include <sys/sysctl.h>
#include <sys/unistd.h>
@@ -392,21 +392,15 @@
sf_buf_init(void *arg)
{
struct sf_buf *sf_bufs;
- vm_offset_t sf_base;
int i;
mtx_init(&sf_freelist.sf_lock, "sf_bufs list lock", NULL, MTX_DEF);
- mtx_lock(&sf_freelist.sf_lock);
SLIST_INIT(&sf_freelist.sf_head);
- sf_base = kmem_alloc_nofault(kernel_map, nsfbufs * PAGE_SIZE);
sf_bufs = malloc(nsfbufs * sizeof(struct sf_buf), M_TEMP,
M_NOWAIT | M_ZERO);
- for (i = 0; i < nsfbufs; i++) {
- sf_bufs[i].kva = sf_base + i * PAGE_SIZE;
+ for (i = 0; i < nsfbufs; i++)
SLIST_INSERT_HEAD(&sf_freelist.sf_head, &sf_bufs[i], free_list);
- }
sf_buf_alloc_want = 0;
- mtx_unlock(&sf_freelist.sf_lock);
}
/*
@@ -434,7 +428,6 @@
if (sf != NULL) {
SLIST_REMOVE_HEAD(&sf_freelist.sf_head, free_list);
sf->m = m;
- pmap_qenter(sf->kva, &sf->m, 1);
}
mtx_unlock(&sf_freelist.sf_lock);
return (sf);
@@ -450,7 +443,6 @@
struct vm_page *m;
sf = args;
- pmap_qremove((vm_offset_t)addr, 1);
m = sf->m;
vm_page_lock_queues();
vm_page_unwire(m, 0);
==== //depot/projects/netperf/sys/alpha/include/intr.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/alpha/include/intr.h,v 1.10 2001/12/20 23:48:29 jhb Exp $
+ * $FreeBSD: src/sys/alpha/include/intr.h,v 1.11 2003/11/17 06:10:14 peter Exp $
*/
#ifndef _MACHINE_INTR_H_
@@ -31,9 +31,10 @@
extern struct mtx icu_lock;
-int alpha_setup_intr(const char *name, int vector, driver_intr_t handler,
- void *arg, enum intr_type flags, void **cookiep,
- volatile long *cntp, void (*disable)(int), void (*enable)(int));
+int alpha_setup_intr(const char *name, uintptr_t vector,
+ driver_intr_t handler, void *arg, enum intr_type flags,
+ void **cookiep, volatile long *cntp,
+ void (*disable)(uintptr_t), void (*enable)(uintptr_t));
int alpha_teardown_intr(void *cookie);
void alpha_dispatch_intr(void *frame, unsigned long vector);
==== //depot/projects/netperf/sys/alpha/isa/isa.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/isa/isa.c,v 1.33 2003/08/22 07:20:26 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/isa/isa.c,v 1.34 2003/11/17 06:10:14 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -310,10 +310,11 @@
*/
static void
-isa_disable_intr(int vector)
+isa_disable_intr(uintptr_t vector)
{
- int irq = (vector - 0x800) >> 4;
+ int irq;
+ irq = (vector - 0x800) >> 4;
mtx_lock_spin(&icu_lock);
if (irq > 7)
outb(IO_ICU2, 0x20 | (irq & 7));
@@ -324,7 +325,7 @@
}
static void
-isa_enable_intr(int vector)
+isa_enable_intr(uintptr_t vector)
{
int irq;
==== //depot/projects/netperf/sys/alpha/mcbus/mcpcia.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/mcbus/mcpcia.c,v 1.27 2003/08/22 07:20:26 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/mcbus/mcpcia.c,v 1.28 2003/11/17 06:10:14 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -304,13 +304,13 @@
}
static void
-mcpcia_disable_intr_vec(int vector)
+mcpcia_disable_intr_vec(uintptr_t vector)
{
int mid, irq;
struct mcpcia_softc *sc = mcpcia_root;
if (vector < MCPCIA_VEC_PCI) {
- printf("EISA disable (0x%x)\n", vector);
+ printf("EISA disable (0x%lx)\n", vector);
return;
}
@@ -324,7 +324,7 @@
tmp &= (MCPCIA_VECWIDTH_PER_MCPCIA - 1);
slot = tmp / MCPCIA_VECWIDTH_PER_SLOT;
if (slot < 2 || slot > 5) {
- printf("Bad slot (%d) for vector %x\n", slot, vector);
+ printf("Bad slot (%d) for vector %lx\n", slot, vector);
return;
}
tmp -= (2 * MCPCIA_VECWIDTH_PER_SLOT);
@@ -338,7 +338,7 @@
sc = sc->next;
}
if (sc == NULL) {
- panic("couldn't find MCPCIA softc for vector 0x%x", vector);
+ panic("couldn't find MCPCIA softc for vector 0x%lx", vector);
}
mtx_lock_spin(&icu_lock);
mcpcia_disable_intr(sc, irq);
@@ -346,13 +346,13 @@
}
static void
-mcpcia_enable_intr_vec(int vector)
+mcpcia_enable_intr_vec(uintptr_t vector)
{
int mid, irq;
struct mcpcia_softc *sc = mcpcia_root;
if (vector < MCPCIA_VEC_PCI) {
- printf("EISA ensable (0x%x)\n", vector);
+ printf("EISA ensable (0x%lx)\n", vector);
return;
}
@@ -366,7 +366,7 @@
tmp &= (MCPCIA_VECWIDTH_PER_MCPCIA - 1);
slot = tmp / MCPCIA_VECWIDTH_PER_SLOT;
if (slot < 2 || slot > 5) {
- printf("Bad slot (%d) for vector %x\n", slot, vector);
+ printf("Bad slot (%d) for vector %lx\n", slot, vector);
return;
}
tmp -= (2 * MCPCIA_VECWIDTH_PER_SLOT);
@@ -380,7 +380,7 @@
sc = sc->next;
}
if (sc == NULL) {
- panic("couldn't find MCPCIA softc for vector 0x%x", vector);
+ panic("couldn't find MCPCIA softc for vector 0x%lx", vector);
}
mtx_lock_spin(&icu_lock);
mcpcia_enable_intr(sc, irq);
==== //depot/projects/netperf/sys/alpha/osf1/osf1_mount.c#3 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_mount.c,v 1.17 2003/08/22 07:20:27 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_mount.c,v 1.18 2003/11/16 21:53:05 kris Exp $");
#include "opt_mac.h"
#include "opt_nfs.h"
@@ -58,6 +58,7 @@
#include <nfs/xdr_subs.h>
#include <nfs/rpcv2.h>
#include <nfs/nfsproto.h>
+#include <rpc/rpcclnt.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsmount.h>
#include <nfsclient/nfsargs.h>
==== //depot/projects/netperf/sys/alpha/pci/apecs.c#3 (text+ko) ====
@@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/apecs.c,v 1.23 2003/08/17 06:42:08 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/apecs.c,v 1.24 2003/11/17 06:10:14 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -308,7 +308,7 @@
}
static void
-apecs_disable_intr(int vector)
+apecs_disable_intr(uintptr_t vector)
{
int irq;
@@ -319,7 +319,7 @@
}
static void
-apecs_enable_intr(int vector)
+apecs_enable_intr(uintptr_t vector)
{
int irq;
==== //depot/projects/netperf/sys/alpha/pci/cia.c#3 (text+ko) ====
@@ -87,7 +87,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/cia.c,v 1.41 2003/08/17 06:42:08 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/cia.c,v 1.42 2003/11/17 06:10:14 peter Exp $");
#include "opt_cpu.h"
@@ -515,7 +515,7 @@
}
static void
-cia_disable_intr(int vector)
+cia_disable_intr(uintptr_t vector)
{
int irq;
@@ -526,7 +526,7 @@
}
static void
-cia_enable_intr(int vector)
+cia_enable_intr(uintptr_t vector)
{
int irq;
==== //depot/projects/netperf/sys/alpha/pci/t2.c#4 (text+ko) ====
@@ -51,7 +51,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/t2.c,v 1.19 2003/08/22 07:20:27 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/t2.c,v 1.20 2003/11/17 06:10:14 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -457,7 +457,7 @@
}
static void
-t2_enable_vec(int vector)
+t2_enable_vec(uintptr_t vector)
{
int irq, hose;
u_long IC_mask, scratch;
@@ -491,7 +491,7 @@
}
static void
-t2_disable_vec(int vector)
+t2_disable_vec(uintptr_t vector)
{
int hose, irq;
u_long scratch, IC_mask;
==== //depot/projects/netperf/sys/alpha/pci/tsunami.c#4 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/pci/tsunami.c,v 1.22 2003/08/22 07:20:27 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/pci/tsunami.c,v 1.23 2003/11/17 06:10:14 peter Exp $");
#include "opt_cpu.h"
@@ -308,7 +308,7 @@
}
static void
-tsunami_disable_intr_vec(int vector)
+tsunami_disable_intr_vec(uintptr_t vector)
{
int irq;
@@ -319,7 +319,7 @@
}
static void
-tsunami_enable_intr_vec(int vector)
+tsunami_enable_intr_vec(uintptr_t vector)
{
int irq;
==== //depot/projects/netperf/sys/amd64/amd64/autoconf.c#4 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/autoconf.c,v 1.175 2003/11/12 01:49:49 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/autoconf.c,v 1.176 2003/11/17 08:58:12 peter Exp $");
/*
* Setup the system to run on the current machine.
@@ -76,7 +76,6 @@
#include <nfsclient/nfsdiskless.h>
#include <machine/md_var.h>
-#include <amd64/isa/icu.h>
#ifdef DEV_ISA
#include <isa/isavar.h>
@@ -109,23 +108,11 @@
{
/*
- * Activate the ICU's. Note that we are explicitly at splhigh()
- * at present as we have no way to disable stray PCI level triggered
- * interrupts until the devices have had a driver attached. This
- * is particularly a problem when the interrupts are shared. For
- * example, if IRQ 10 is shared between a disk and network device
- * and the disk device generates an interrupt, if we "activate"
- * IRQ 10 when the network driver is set up, then we will get
- * recursive interrupt 10's as nothing will know how to turn off
- * the disk device's interrupt.
- *
- * Having the ICU's active means we can probe interrupt routing to
- * see if a device causes the corresponding pending bit to be set.
- *
- * This is all rather inconvenient.
+ * Enable interrupts on the processor. The interrupts are still
+ * disabled in the interrupt controllers until interrupt handlers
+ * are registered.
*/
enable_intr();
- INTREN(IRQ_SLAVE);
/* nexus0 is the top of the i386 device tree */
device_add_child(root_bus, "nexus", 0);
@@ -141,12 +128,6 @@
if (isa_bus_device)
isa_probe_children(isa_bus_device);
#endif
-
- /*
- * Now we're ready to handle (pending) interrupts.
- * XXX this is slightly misplaced.
- */
- spl0();
}
static void
==== //depot/projects/netperf/sys/amd64/amd64/cpu_switch.S#3 (text+ko) ====
@@ -34,7 +34,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.143 2003/11/08 04:39:21 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.144 2003/11/17 08:58:12 peter Exp $
*/
#include <machine/asmacros.h>
@@ -59,14 +59,16 @@
* %rsi = newtd
*/
ENTRY(cpu_throw)
- xorq %rax, %rax
movl PCPU(CPUID), %eax
testq %rdi,%rdi /* no thread? */
jz 1f
/* release bit from old pm_active */
movq TD_PROC(%rdi), %rdx /* oldtd->td_proc */
movq P_VMSPACE(%rdx), %rdx /* proc->p_vmspace */
- btrq %rax, VM_PMAP+PM_ACTIVE(%rdx) /* clear old */
+#ifdef SMP
+ lock
+#endif
+ btrl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* clear old */
1:
movq TD_PCB(%rsi),%rdx /* newtd->td_proc */
movq PCB_CR3(%rdx),%rdx
@@ -74,7 +76,10 @@
/* set bit in new pm_active */
movq TD_PROC(%rsi),%rdx
movq P_VMSPACE(%rdx), %rdx
- btsq %rax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */
+#ifdef SMP
+ lock
+#endif
+ btsl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */
jmp sw1
/*
@@ -143,7 +148,6 @@
jz badsw3 /* no, panic */
#endif
movq TD_PCB(%rsi),%r8
- xorq %rax, %rax
movl PCPU(CPUID), %eax
/* switch address space */
@@ -153,12 +157,18 @@
/* Release bit from old pmap->pm_active */
movq TD_PROC(%rdi), %rdx /* oldproc */
movq P_VMSPACE(%rdx), %rdx
- btrq %rax, VM_PMAP+PM_ACTIVE(%rdx) /* clear old */
+#ifdef SMP
+ lock
+#endif
+ btrl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* clear old */
/* Set bit in new pmap->pm_active */
movq TD_PROC(%rsi),%rdx /* newproc */
movq P_VMSPACE(%rdx), %rdx
- btsq %rax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */
+#ifdef SMP
+ lock
+#endif
+ btsl %eax, VM_PMAP+PM_ACTIVE(%rdx) /* set new */
sw1:
/*
@@ -191,8 +201,11 @@
wrmsr
/* Update the TSS_RSP0 pointer for the next interrupt */
+ movq PCPU(TSSP), %rax
+ addq $COMMON_TSS_RSP0, %rax
leaq -16(%r8), %rbx
- movq %rbx, common_tss + COMMON_TSS_RSP0
+ movq %rbx, (%rax)
+ movq %rbx, PCPU(RSP0)
/* Restore context. */
movq PCB_RBX(%r8),%rbx
==== //depot/projects/netperf/sys/amd64/amd64/db_interface.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_interface.c,v 1.74 2003/07/25 21:15:44 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_interface.c,v 1.75 2003/11/17 08:58:12 peter Exp $");
/*
* Interface to new debugger.
@@ -98,6 +98,22 @@
ef = read_rflags();
disable_intr();
+#ifdef SMP
+
+#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
+ db_printf("\nCPU%d stopping CPUs: 0x%08x...", PCPU_GET(cpuid),
+ PCPU_GET(other_cpus));
+#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
+
+ /* We stop all CPUs except ourselves (obviously) */
+ stop_cpus(PCPU_GET(other_cpus));
+
+#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
+ db_printf(" stopped.\n");
+#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
+
+#endif /* SMP */
+
switch (type) {
case T_BPTFLT: /* breakpoint */
case T_TRCTRAP: /* debug exception */
@@ -192,6 +208,27 @@
regs->tf_ds = ddb_regs.tf_ds & 0xffff;
#endif
+#ifdef SMP
+
+#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
+ db_printf("\nCPU%d restarting CPUs: 0x%08x...", PCPU_GET(cpuid),
+ stopped_cpus);
+#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
+
+ /* Restart all the CPUs we previously stopped */
+ if (stopped_cpus != PCPU_GET(other_cpus) && smp_started != 0) {
+ db_printf("whoa, other_cpus: 0x%08x, stopped_cpus: 0x%08x\n",
+ PCPU_GET(other_cpus), stopped_cpus);
+ panic("stop_cpus() failed");
+ }
+ restart_cpus(stopped_cpus);
+
+#if defined(VERBOSE_CPUSTOP_ON_DDBBREAK)
+ db_printf(" restarted.\n");
+#endif /* VERBOSE_CPUSTOP_ON_DDBBREAK */
+
+#endif /* SMP */
+
write_rflags(ef);
return (1);
==== //depot/projects/netperf/sys/amd64/amd64/db_trace.c#3 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.58 2003/07/25 21:15:44 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.59 2003/11/17 08:58:12 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -245,8 +245,9 @@
if (strcmp(name, "calltrap") == 0 ||
strcmp(name, "fork_trampoline") == 0)
frame_type = TRAP;
- else if (strncmp(name, "Xintr", 5) == 0 ||
- strncmp(name, "Xfastintr", 9) == 0)
+ else if (strncmp(name, "Xatpic_intr", 11) == 0 ||
+ strncmp(name, "Xatpic_fastintr", 15) == 0 ||
+ strncmp(name, "Xapic_isr", 9) == 0)
frame_type = INTERRUPT;
else if (strcmp(name, "Xfast_syscall") == 0)
frame_type = SYSCALL;
==== //depot/projects/netperf/sys/amd64/amd64/exception.S#6 (text+ko) ====
@@ -31,18 +31,15 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.114 2003/11/13 02:38:33 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.115 2003/11/17 08:58:12 peter Exp $
*/
#include <machine/asmacros.h>
-#include <sys/mutex.h>
#include <machine/psl.h>
#include <machine/trap.h>
#include "assym.s"
-#define SEL_RPL_MASK 0x0003
-
.text
/*****************************************************************************/
@@ -72,8 +69,6 @@
* %ss segment registers, but does not mess with %ds, %es, or %fs. Thus we
* must load them with appropriate values for supervisor mode operation.
*/
-#define IDTVEC(name) ALIGN_TEXT; .globl __CONCAT(X,name); \
- .type __CONCAT(X,name), at function; __CONCAT(X,name):
MCOUNT_LABEL(user)
MCOUNT_LABEL(btrap)
@@ -223,7 +218,7 @@
IDTVEC(fast_syscall)
swapgs
movq %rsp,PCPU(SCRATCH_RSP)
- movq common_tss+COMMON_TSS_RSP0,%rsp
+ movq PCPU(RSP0),%rsp
/* Now emulate a trapframe. Make the 8 byte alignment odd for call. */
subq $TF_SIZE,%rsp
/* defer TF_RSP till we have a spare register */
@@ -297,14 +292,6 @@
call fork_exit
jmp doreti /* Handle any ASTs */
-
-/*
- * Include what was once config+isa-dependent code.
- * XXX it should be in a stand-alone file. It's still icu-dependent and
- * belongs in i386/isa.
- */
-#include "amd64/isa/vector.S"
-
.data
ALIGN_DATA
@@ -406,5 +393,3 @@
movq $T_PROTFLT,TF_TRAPNO(%rsp)
movq $0,TF_ERR(%rsp) /* XXX should be the error code */
jmp alltraps_with_regs_pushed
-
-#include "amd64/isa/icu_ipl.S"
==== //depot/projects/netperf/sys/amd64/amd64/fpu.c#2 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.145 2003/11/08 04:37:54 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.146 2003/11/17 08:58:12 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -55,6 +55,7 @@
#include <machine/cputypes.h>
#include <machine/frame.h>
+#include <machine/intr_machdep.h>
#include <machine/md_var.h>
#include <machine/pcb.h>
#include <machine/psl.h>
@@ -63,8 +64,6 @@
#include <machine/segments.h>
#include <machine/ucontext.h>
-#include <amd64/isa/intr_machdep.h>
-
/*
* Floating point support.
*/
==== //depot/projects/netperf/sys/amd64/amd64/genassym.c#4 (text+ko) ====
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.149 2003/09/30 04:52:24 jeff Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.150 2003/11/17 08:58:12 peter Exp $");
#include "opt_compat.h"
#include "opt_kstack_pages.h"
@@ -69,10 +69,12 @@
#include <nfs/rpcv2.h>
#include <nfsclient/nfs.h>
#include <nfsclient/nfsdiskless.h>
+#include <machine/apicreg.h>
#include <machine/cpu.h>
#include <machine/sigframe.h>
#include <machine/proc.h>
#include <machine/specialreg.h>
+#include <machine/segments.h>
ASSYM(P_VMSPACE, offsetof(struct proc, p_vmspace));
ASSYM(VM_PMAP, offsetof(struct vmspace, vm_pmap));
@@ -83,11 +85,6 @@
ASSYM(TD_FLAGS, offsetof(struct thread, td_flags));
ASSYM(TD_PCB, offsetof(struct thread, td_pcb));
ASSYM(TD_PROC, offsetof(struct thread, td_proc));
-ASSYM(TD_INTR_NESTING_LEVEL, offsetof(struct thread, td_intr_nesting_level));
-ASSYM(TD_CRITNEST, offsetof(struct thread, td_critnest));
-ASSYM(TD_MD, offsetof(struct thread, td_md));
-
-ASSYM(P_MD, offsetof(struct proc, p_md));
ASSYM(TDF_ASTPENDING, TDF_ASTPENDING);
ASSYM(TDF_NEEDRESCHED, TDF_NEEDRESCHED);
@@ -180,6 +177,7 @@
ASSYM(ENOENT, ENOENT);
ASSYM(EFAULT, EFAULT);
ASSYM(ENAMETOOLONG, ENAMETOOLONG);
+ASSYM(MAXCOMLEN, MAXCOMLEN);
ASSYM(MAXPATHLEN, MAXPATHLEN);
ASSYM(PC_SIZEOF, sizeof(struct pcpu));
ASSYM(PC_PRVSPACE, offsetof(struct pcpu, pc_prvspace));
@@ -189,12 +187,24 @@
ASSYM(PC_CURPCB, offsetof(struct pcpu, pc_curpcb));
ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid));
ASSYM(PC_SCRATCH_RSP, offsetof(struct pcpu, pc_scratch_rsp));
+ASSYM(PC_CURPMAP, offsetof(struct pcpu, pc_curpmap));
+ASSYM(PC_TSSP, offsetof(struct pcpu, pc_tssp));
+ASSYM(PC_RSP0, offsetof(struct pcpu, pc_rsp0));
+
+ASSYM(LA_VER, offsetof(struct LAPIC, version));
+ASSYM(LA_TPR, offsetof(struct LAPIC, tpr));
+ASSYM(LA_EOI, offsetof(struct LAPIC, eoi));
+ASSYM(LA_SVR, offsetof(struct LAPIC, svr));
+ASSYM(LA_ICR_LO, offsetof(struct LAPIC, icr_lo));
+ASSYM(LA_ICR_HI, offsetof(struct LAPIC, icr_hi));
+ASSYM(LA_ISR, offsetof(struct LAPIC, isr0));
ASSYM(KCSEL, GSEL(GCODE_SEL, SEL_KPL));
ASSYM(KDSEL, GSEL(GDATA_SEL, SEL_KPL));
ASSYM(KUCSEL, GSEL(GUCODE_SEL, SEL_UPL));
ASSYM(KUDSEL, GSEL(GUDATA_SEL, SEL_UPL));
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list