From owner-p4-projects@FreeBSD.ORG Sun Mar 5 06:09:06 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3999A16A423; Sun, 5 Mar 2006 06:09:06 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DE5E816A420 for ; Sun, 5 Mar 2006 06:09:05 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8152243D45 for ; Sun, 5 Mar 2006 06:09:05 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k25695WC023792 for ; Sun, 5 Mar 2006 06:09:05 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k2568xDH023780 for perforce@freebsd.org; Sun, 5 Mar 2006 06:08:59 GMT (envelope-from scottl@freebsd.org) Date: Sun, 5 Mar 2006 06:08:59 GMT Message-Id: <200603050608.k2568xDH023780@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 92767 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Mar 2006 06:09:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=92767 Change 92767 by scottl@scottl-x64 on 2006/03/05 06:08:50 IFC Affected files ... .. //depot/projects/scottl-camlock/src/sys/alpha/alpha/machdep.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/alpha/alpha/trap.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/intr_machdep.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/io_apic.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/mp_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/apicvar.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/intr_machdep.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/mptable.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/isa/atpic.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/busdma_machdep.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/pmap.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/trap.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/undefined.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/vm_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/uart_dev_at91usart.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/include/pmap.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/i80321/i80321_aau.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/xscale/i80321/i80321_dma.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/loader/loader.rc#3 branch .. //depot/projects/scottl-camlock/src/sys/bsm/audit.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/bsm/audit_internal.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/coda/coda.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_proto.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscall.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscalls.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_sysent.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/syscalls.master#7 integrate .. //depot/projects/scottl-camlock/src/sys/conf/NOTES#7 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#7 integrate .. //depot/projects/scottl-camlock/src/sys/conf/kmod.mk#7 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options#7 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options.i386#5 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options.pc98#6 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/altq/altq/altq_subr.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_smbat.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_throttle.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/amr/amr_linux.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ar/if_ar.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-chipset.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-queue.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ath/if_ath.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ath/if_athvar.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ce/tau32-ddk.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ce/tau32-ddk.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/de/dc21040reg.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/de/if_de.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/de/if_devar.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/ed/if_ed_cbus.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/em/if_em.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fdc/fdc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/fdc/fdc_acpi.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ic/z8530.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iir/iir.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iir/iir.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iir/iir_pci.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_freebsd.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iwi/if_iwi.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/kbd/kbd.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/kbdmux/kbdmux.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/le/am7990.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/le/am79900.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpilib/mpi.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpilib/mpi_cnfg.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpilib/mpi_ioc.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpilib/mpi_sas.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpilib/mpi_type.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_debug.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_pci.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_reg.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mse/mse.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/myri10ge/eth_z8e.dat.gz.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/myri10ge/ethp_z8e.dat.gz.uu#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/myri10ge/if_myri10ge.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/myri10ge/if_myri10ge_var.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/myri10ge/mcp_gen_header.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/myri10ge/myri10ge_mcp.h#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/pcf/envctrl.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pcf/pcf_ebus.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pcf/pcf_isa.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppbus/if_plip.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppbus/lpt.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppbus/ppi.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppc/ppc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/puc/puc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/puc/puc_ebus.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/puc/puc_sbus.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/re/if_re.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sio/sio.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/atiixp.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/ich.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/feeder.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sr/if_sr.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/syscons/syscons.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/tdfx/tdfx_linux.c#1 branch .. //depot/projects/scottl-camlock/src/sys/dev/tdfx/tdfx_pci.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_bus.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_bus_ebus.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_core.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_dev_ns8250.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_dev_sab82532.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_dev_z8530.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_kbd_sun.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/uart/uart_tty.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/ehci.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/ohci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/uhci.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/ukbd.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/uplcom.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_port.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_quirks.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_subr.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdevs#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdivar.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/vkbd/vkbd.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/fs/deadfs/dead_vnops.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/devfs/devfs_devs.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/fs/fdescfs/fdesc_vnops.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nullfs/null_subr.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nullfs/null_vnops.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/fs/procfs/procfs_ctl.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/pseudofs/pseudofs_vnops.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_io.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_vfs.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/geom/label/g_label_ufs.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/geom/raid3/g_raid3.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/NOTES#7 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/PAE#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/conf/XBOX#2 integrate .. //depot/projects/scottl-camlock/src/sys/i386/cpufreq/est.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/identcpu.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/intr_machdep.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/io_apic.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/local_apic.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/mp_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/apicvar.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/intr_machdep.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/mptable.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/xbox.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/i386/isa/atpic.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/linux/linux_ptrace.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xbox/xboxfb.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/machdep.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/isa/syscons_isa.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/kern/init_sysent.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_condvar.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_cpu.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_exit.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_kse.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_kthread.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_malloc.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_mbuf.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_resource.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_sig.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_synch.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_tc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_time.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_timeout.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_prf.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_sleepqueue.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sys_process.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/syscalls.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/syscalls.master#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_mqueue.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/kern/uipc_syscalls.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_aio.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_mount.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_subr.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_syscalls.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/modules/3dfx/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/3dfx_linux/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/Makefile#7 integrate .. //depot/projects/scottl-camlock/src/sys/modules/ce/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sys/modules/coda5/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/sys/modules/crypto/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/de/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/sys/modules/dummynet/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/if_ef/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/if_ppp/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/sys/modules/kbdmux/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/myri10ge/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/myri10ge/myri10ge/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/myri10ge/myri10ge_eth_z8e/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/myri10ge/myri10ge_ethp_z8e/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/modules/pflog/Makefile#3 branch .. //depot/projects/scottl-camlock/src/sys/modules/uart/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/sys/net/bridgestp.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_bridge.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_ethersubr.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_vlan.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/net/ppp_deflate.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_ioctl.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_output.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_ksocket.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_dummynet.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_fw2.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_output.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_syncache.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_var.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/mld6.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/nfsserver/nfs_srvsock.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/opencrypto/crypto.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/opencrypto/cryptodev.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/fdc.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/pckbd.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/ppc.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/sio.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/conf/NOTES#7 integrate .. //depot/projects/scottl-camlock/src/sys/pci/dc21040reg.h#2 delete .. //depot/projects/scottl-camlock/src/sys/pci/if_de.c#7 delete .. //depot/projects/scottl-camlock/src/sys/pci/if_devar.h#5 delete .. //depot/projects/scottl-camlock/src/sys/security/audit/audit.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_bsm_token.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_pipe.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/security/audit/audit_private.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac/mac_process.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/security/mac_bsdextended/mac_bsdextended.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/sparc64/trap.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/_types.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/bio.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/mount.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/sys/proc.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/sys/queue.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/serial.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/sys/signalvar.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscall.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscall.mk#7 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscallsubr.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sysproto.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/sys/timers.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/sys/vnode.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_alloc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_extern.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_rawread.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_snapshot.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/ffs_softdep.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ffs/softdep.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ufs/ufs_quota.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ufs/ufs/ufsmount.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_contig.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_object.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vnode_pager.c#6 integrate Differences ... ==== //depot/projects/scottl-camlock/src/sys/alpha/alpha/machdep.c#7 (text+ko) ==== @@ -88,7 +88,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.237 2006/02/14 14:50:10 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/machdep.c,v 1.238 2006/02/22 18:57:48 jhb Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -1756,6 +1756,8 @@ { struct iovec iov; struct uio uio; + + PROC_LOCK_ASSERT(td->td_proc, MA_NOTOWNED); iov.iov_base = (caddr_t) v; iov.iov_len = sizeof(u_int32_t); uio.uio_iov = &iov; @@ -1773,6 +1775,8 @@ { struct iovec iov; struct uio uio; + + PROC_LOCK_ASSERT(td->td_proc, MA_NOTOWNED); iov.iov_base = (caddr_t) &v; iov.iov_len = sizeof(u_int32_t); uio.uio_iov = &iov; @@ -1836,6 +1840,8 @@ static int ptrace_clear_bpt(struct thread *td, struct mdbpt *bpt) { + + PROC_LOCK_ASSERT(td->td_proc, MA_NOTOWNED); return ptrace_write_int(td, bpt->addr, bpt->contents); } @@ -1844,6 +1850,8 @@ { int error; u_int32_t bpins = 0x00000080; + + PROC_LOCK_ASSERT(td->td_proc, MA_NOTOWNED); error = ptrace_read_int(td, bpt->addr, &bpt->contents); if (error) return error; @@ -1853,12 +1861,20 @@ int ptrace_clear_single_step(struct thread *td) { + struct proc *p; + + p = td->td_proc; + PROC_LOCK_ASSERT(p, MA_OWNED); if (td->td_md.md_flags & MDTD_STEP2) { + PROC_UNLOCK(p); ptrace_clear_bpt(td, &td->td_md.md_sstep[1]); ptrace_clear_bpt(td, &td->td_md.md_sstep[0]); + PROC_LOCK(p); td->td_md.md_flags &= ~MDTD_STEP2; } else if (td->td_md.md_flags & MDTD_STEP1) { + PROC_UNLOCK(p); ptrace_clear_bpt(td, &td->td_md.md_sstep[0]); + PROC_LOCK(p); td->td_md.md_flags &= ~MDTD_STEP1; } return 0; @@ -1867,6 +1883,7 @@ int ptrace_single_step(struct thread *td) { + struct proc *p; int error; vm_offset_t pc = td->td_frame->tf_regs[FRAME_PC]; alpha_instruction ins; @@ -1876,9 +1893,11 @@ if (td->td_md.md_flags & (MDTD_STEP1|MDTD_STEP2)) panic("ptrace_single_step: step breakpoints not removed"); + p = td->td_proc; + PROC_UNLOCK(p); error = ptrace_read_int(td, pc, &ins.bits); if (error) - return (error); + goto out; switch (ins.branch_format.opcode) { @@ -1918,18 +1937,20 @@ td->td_md.md_sstep[0].addr = addr[0]; error = ptrace_set_bpt(td, &td->td_md.md_sstep[0]); if (error) - return (error); + goto out; if (count == 2) { td->td_md.md_sstep[1].addr = addr[1]; error = ptrace_set_bpt(td, &td->td_md.md_sstep[1]); if (error) { ptrace_clear_bpt(td, &td->td_md.md_sstep[0]); - return (error); + goto out; } td->td_md.md_flags |= MDTD_STEP2; } else td->td_md.md_flags |= MDTD_STEP1; +out: + PROC_LOCK(p); return (error); } ==== //depot/projects/scottl-camlock/src/sys/alpha/alpha/trap.c#6 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/trap.c,v 1.128 2006/02/08 08:09:14 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/trap.c,v 1.129 2006/02/22 18:57:49 jhb Exp $"); /* #include "opt_fix_unaligned_vax_fp.h" */ #include "opt_ddb.h" @@ -403,8 +403,12 @@ case ALPHA_IF_CODE_BUGCHK: if (td->td_md.md_flags & (MDTD_STEP1|MDTD_STEP2)) { mtx_lock(&Giant); + PROC_LOCK(p); + _PHOLD(p); ptrace_clear_single_step(td); td->td_frame->tf_regs[FRAME_PC] -= 4; + _PRELE(p); + PROC_UNLOCK(p); mtx_unlock(&Giant); } ucode = a0; /* trap type */ ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/intr_machdep.c#7 (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.18 2005/12/08 18:33:29 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.19 2006/02/28 22:24:54 jhb Exp $ */ /* @@ -63,6 +63,12 @@ static struct intsrc *interrupt_sources[NUM_IO_INTS]; static struct mtx intr_table_lock; +#ifdef SMP +static int assign_cpu; + +static void intr_assign_next_cpu(struct intsrc *isrc); +#endif + static void intr_init(void *__dummy); static void intrcnt_setname(const char *name, int index); static void intrcnt_updatename(struct intsrc *is); @@ -93,6 +99,7 @@ } intrcnt_register(isrc); interrupt_sources[vector] = isrc; + isrc->is_enabled = 0; mtx_unlock_spin(&intr_table_lock); return (0); } @@ -118,7 +125,17 @@ intr_priority(flags), flags, cookiep); if (error == 0) { intrcnt_updatename(isrc); - isrc->is_pic->pic_enable_intr(isrc); + mtx_lock_spin(&intr_table_lock); + if (!isrc->is_enabled) { + isrc->is_enabled = 1; +#ifdef SMP + if (assign_cpu) + intr_assign_next_cpu(isrc); +#endif + mtx_unlock_spin(&intr_table_lock); + isrc->is_pic->pic_enable_intr(isrc); + } else + mtx_unlock_spin(&intr_table_lock); isrc->is_pic->pic_enable_source(isrc); } return (error); @@ -335,3 +352,76 @@ db_dump_intr_event((*isrc)->is_event, verbose); } #endif + +#ifdef SMP +/* + * Support for balancing interrupt sources across CPUs. For now we just + * allocate CPUs round-robin. + */ + +static u_int cpu_apic_ids[MAXCPU]; +static int current_cpu, num_cpus; + +static void +intr_assign_next_cpu(struct intsrc *isrc) +{ + struct pic *pic; + u_int apic_id; + + /* + * Assign this source to a local APIC in a round-robin fashion. + */ + pic = isrc->is_pic; + apic_id = cpu_apic_ids[current_cpu]; + current_cpu++; + if (current_cpu >= num_cpus) + current_cpu = 0; + if (bootverbose) { + printf("INTR: Assigning IRQ %d", pic->pic_vector(isrc)); + printf(" to local APIC %u\n", apic_id); + } + pic->pic_assign_cpu(isrc, apic_id); +} + +/* + * Add a local APIC ID to our list of valid local APIC IDs that can + * be destinations of interrupts. + */ +void +intr_add_cpu(u_int apic_id) +{ + + if (bootverbose) + printf("INTR: Adding local APIC %d as a target\n", apic_id); + if (num_cpus >= MAXCPU) + panic("WARNING: Local APIC IDs exhausted!"); + cpu_apic_ids[num_cpus] = apic_id; + num_cpus++; +} + +/* + * Distribute all the interrupt sources among the available CPUs once the + * AP's have been launched. + */ +static void +intr_shuffle_irqs(void *arg __unused) +{ + struct intsrc *isrc; + int i; + + /* Don't bother on UP. */ + if (num_cpus <= 1) + return; + + /* Round-robin assign each enabled source a CPU. */ + mtx_lock_spin(&intr_table_lock); + assign_cpu = 1; + for (i = 0; i < NUM_IO_INTS; i++) { + isrc = interrupt_sources[i]; + if (isrc != NULL && isrc->is_enabled) + intr_assign_next_cpu(isrc); + } + mtx_unlock_spin(&intr_table_lock); +} +SYSINIT(intr_shuffle_irqs, SI_SUB_SMP, SI_ORDER_SECOND, intr_shuffle_irqs, NULL) +#endif ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/io_apic.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.20 2005/11/16 20:29:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.21 2006/02/28 22:24:54 jhb Exp $"); #include "opt_atpic.h" #include "opt_isa.h" @@ -61,8 +61,6 @@ #define IRQ_SMI (NUM_IO_INTS + 3) #define IRQ_DISABLED (NUM_IO_INTS + 4) -#define DEST_NONE -1 - #define TODO printf("%s: not implemented!\n", __func__) static MALLOC_DEFINE(M_IOAPIC, "io_apic", "I/O APIC structures"); @@ -82,10 +80,10 @@ u_int io_irq; u_int io_intpin:8; u_int io_vector:8; + u_int io_cpu:8; u_int io_activehi:1; u_int io_edgetrigger:1; u_int io_masked:1; - int io_dest:5; int io_bus:4; }; @@ -114,7 +112,7 @@ enum intr_polarity pol); static void ioapic_suspend(struct intsrc *isrc); static void ioapic_resume(struct intsrc *isrc); -static void ioapic_program_destination(struct ioapic_intsrc *intpin); +static void ioapic_assign_cpu(struct intsrc *isrc, u_int apic_id); static void ioapic_program_intpin(struct ioapic_intsrc *intpin); static STAILQ_HEAD(,ioapic) ioapic_list = STAILQ_HEAD_INITIALIZER(ioapic_list); @@ -122,10 +120,10 @@ ioapic_eoi_source, ioapic_enable_intr, ioapic_vector, ioapic_source_pending, ioapic_suspend, ioapic_resume, - ioapic_config_intr }; - -static int bsp_id, current_cluster, logical_clusters, next_ioapic_base; -static u_int next_id, program_logical_dest; + ioapic_config_intr, ioapic_assign_cpu }; + +static int next_ioapic_base; +static u_int next_id; SYSCTL_NODE(_hw, OID_AUTO, apic, CTLFLAG_RD, 0, "APIC options"); static int enable_extint; @@ -273,14 +271,8 @@ } /* Set the destination. */ - if (intpin->io_dest == DEST_NONE) { - low = IOART_DESTPHY; - high = bsp_id << APIC_ID_SHIFT; - } else { - low = IOART_DESTLOG; - high = (intpin->io_dest << APIC_ID_CLUSTER_SHIFT | - APIC_ID_CLUSTER_ID) << APIC_ID_SHIFT; - } + low = IOART_DESTPHY; + high = intpin->io_cpu << APIC_ID_SHIFT; /* Program the rest of the low word. */ if (intpin->io_edgetrigger) @@ -312,7 +304,7 @@ default: KASSERT(intpin->io_vector != 0, ("No vector for IRQ %u", intpin->io_irq)); - low |= IOART_DELLOPRI | intpin->io_vector; + low |= IOART_DELFIXED | intpin->io_vector; } /* Write the values to the APIC. */ @@ -325,60 +317,31 @@ mtx_unlock_spin(&icu_lock); } -/* - * Program an individual intpin's logical destination. - */ static void -ioapic_program_destination(struct ioapic_intsrc *intpin) +ioapic_assign_cpu(struct intsrc *isrc, u_int apic_id) { - struct ioapic *io = (struct ioapic *)intpin->io_intsrc.is_pic; + struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; + struct ioapic *io = (struct ioapic *)isrc->is_pic; - KASSERT(intpin->io_dest != DEST_NONE, - ("intpin not assigned to a cluster")); + intpin->io_cpu = apic_id; if (bootverbose) { - printf("ioapic%u: routing intpin %u (", io->io_id, - intpin->io_intpin); + printf("ioapic%u: Assigning ", io->io_id); ioapic_print_irq(intpin); - printf(") to cluster %u\n", intpin->io_dest); + printf(" to local APIC %u\n", intpin->io_cpu); } ioapic_program_intpin(intpin); } static void -ioapic_assign_cluster(struct ioapic_intsrc *intpin) -{ - - /* - * Assign this intpin to a logical APIC cluster in a - * round-robin fashion. We don't actually use the logical - * destination for this intpin until after all the CPU's - * have been started so that we don't end up with interrupts - * that don't go anywhere. Another alternative might be to - * start up the CPU's earlier so that they can handle interrupts - * sooner. - */ - intpin->io_dest = current_cluster; - current_cluster++; - if (current_cluster >= logical_clusters) - current_cluster = 0; - if (program_logical_dest) - ioapic_program_destination(intpin); -} - -static void ioapic_enable_intr(struct intsrc *isrc) { struct ioapic_intsrc *intpin = (struct ioapic_intsrc *)isrc; struct ioapic *io = (struct ioapic *)isrc->is_pic; - if (intpin->io_dest == DEST_NONE) { + if (intpin->io_vector == 0) { /* * Allocate an APIC vector for this interrupt pin. Once - * we have a vector we program the interrupt pin. Note - * that after we have booted ioapic_assign_cluster() - * will program the interrupt pin again, but it doesn't - * hurt to do that and trying to avoid that adds needless - * complication. + * we have a vector we program the interrupt pin. */ intpin->io_vector = apic_alloc_vector(intpin->io_irq); if (bootverbose) { @@ -388,7 +351,6 @@ printf(") to vector %u\n", intpin->io_vector); } ioapic_program_intpin(intpin); - ioapic_assign_cluster(intpin); apic_enable_vector(intpin->io_vector); } } @@ -469,22 +431,6 @@ } /* - * Allocate and return a logical cluster ID. Note that the first time - * this is called, it returns cluster 0. ioapic_enable_intr() treats - * the two cases of logical_clusters == 0 and logical_clusters == 1 the - * same: one cluster of ID 0 exists. The logical_clusters == 0 case is - * for UP kernels, which should never call this function. - */ -int -ioapic_next_logical_cluster(void) -{ - - if (logical_clusters >= APIC_MAX_CLUSTER) - panic("WARNING: Local APIC cluster IDs exhausted!"); - return (logical_clusters++); -} - -/* * Create a plain I/O APIC object. */ void * @@ -568,11 +514,10 @@ } /* - * Route interrupts to the BSP by default using physical - * addressing. Vectored interrupts get readdressed using - * logical IDs to CPU clusters when they are enabled. + * Route interrupts to the BSP by default. Interrupts may + * be routed to other CPUs later after they are enabled. */ - intpin->io_dest = DEST_NONE; + intpin->io_cpu = PCPU_GET(apic_id); if (bootverbose && intpin->io_irq != IRQ_DISABLED) { printf("ioapic%u: intpin %d -> ", io->io_id, i); ioapic_print_irq(intpin); @@ -778,29 +723,9 @@ printf("ioapic%u irqs %u-%u on motherboard\n", io->io_id, flags >> 4, flags & 0xf, io->io_intbase, io->io_intbase + io->io_numintr - 1); - bsp_id = PCPU_GET(apic_id); /* Register valid pins as interrupt sources. */ for (i = 0, pin = io->io_pins; i < io->io_numintr; i++, pin++) if (pin->io_irq < NUM_IO_INTS) intr_register_source(&pin->io_intsrc); } - -/* - * Program all the intpins to use logical destinations once the AP's - * have been launched. - */ -static void -ioapic_set_logical_destinations(void *arg __unused) -{ - struct ioapic *io; - int i; - - program_logical_dest = 1; - STAILQ_FOREACH(io, &ioapic_list, io_next) - for (i = 0; i < io->io_numintr; i++) - if (io->io_pins[i].io_dest != DEST_NONE) - ioapic_program_destination(&io->io_pins[i]); -} -SYSINIT(ioapic_destinations, SI_SUB_SMP, SI_ORDER_SECOND, - ioapic_set_logical_destinations, NULL) ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#6 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.23 2005/12/22 22:16:05 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.24 2006/02/28 22:24:54 jhb Exp $"); #include "opt_hwpmc_hooks.h" @@ -217,6 +217,7 @@ /* Set BSP's per-CPU local APIC ID. */ PCPU_SET(apic_id, lapic_id()); + intr_add_cpu(PCPU_GET(apic_id)); /* Local APIC timer interrupt. */ setidt(APIC_TIMER_INT, IDTVEC(timerint), SDT_SYSIGT, SEL_KPL, 0); @@ -279,7 +280,7 @@ lapic_setup(void) { struct lapic *la; - u_int32_t value, maxlvt; + u_int32_t maxlvt; register_t eflags; char buf[MAXCOMLEN + 1]; @@ -291,19 +292,6 @@ /* Initialize the TPR to allow all interrupts. */ lapic_set_tpr(0); - /* Use the cluster model for logical IDs. */ - value = lapic->dfr; - value &= ~APIC_DFR_MODEL_MASK; - value |= APIC_DFR_MODEL_CLUSTER; - lapic->dfr = value; - - /* Set this APIC's logical ID. */ - value = lapic->ldr; - value &= ~APIC_ID_MASK; - value |= (la->la_cluster << APIC_ID_CLUSTER_SHIFT | - 1 << la->la_cluster_id) << APIC_ID_SHIFT; - lapic->ldr = value; - /* Setup spurious vector and enable the local APIC. */ lapic_enable(); ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/mp_machdep.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.268 2006/02/07 21:22:01 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.269 2006/02/28 22:24:54 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -160,7 +160,7 @@ static u_int boot_address; -static void set_logical_apic_ids(void); +static void set_interrupt_apic_ids(void); static int start_all_aps(void); static int start_ap(int apic_id); static void release_aps(void *dummy); @@ -405,7 +405,7 @@ hyperthreading_cpus = logical_cpus; } - set_logical_apic_ids(); + set_interrupt_apic_ids(); } @@ -596,33 +596,29 @@ */ /* - * Set the APIC logical IDs. - * - * We want to cluster logical CPU's within the same APIC ID cluster. - * Since logical CPU's are aligned simply filling in the clusters in - * APIC ID order works fine. Note that this does not try to balance - * the number of CPU's in each cluster. (XXX?) + * We tell the I/O APIC code about all the CPUs we want to receive + * interrupts. If we don't want certain CPUs to receive IRQs we + * can simply not tell the I/O APIC code about them in this function. + * We also do not tell it about the BSP since it tells itself about + * the BSP internally to work with UP kernels and on UP machines. */ static void -set_logical_apic_ids(void) +set_interrupt_apic_ids(void) { - u_int apic_id, cluster, cluster_id; + u_int apic_id; - /* Force us to allocate cluster 0 at the start. */ - cluster = -1; - cluster_id = APIC_MAX_INTRACLUSTER_ID; for (apic_id = 0; apic_id < MAXCPU; apic_id++) { if (!cpu_info[apic_id].cpu_present) continue; - if (cluster_id == APIC_MAX_INTRACLUSTER_ID) { - cluster = ioapic_next_logical_cluster(); - cluster_id = 0; - } else - cluster_id++; - if (bootverbose) - printf("APIC ID: physical %u, logical %u:%u\n", - apic_id, cluster, cluster_id); - lapic_set_logical_id(apic_id, cluster, cluster_id); + if (cpu_info[apic_id].cpu_bsp) + continue; +#if 0 + /* Don't let hyperthreads service interrupts. */ + if (hyperthreading_cpus > 1 && + apic_id % hyperthreading_cpus != 0) + continue; +#endif + intr_add_cpu(apic_id); } } ==== //depot/projects/scottl-camlock/src/sys/amd64/include/apicvar.h#7 (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/include/apicvar.h,v 1.16 2005/12/22 22:16:05 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.17 2006/02/28 22:24:54 jhb Exp $ */ #ifndef _MACHINE_APICVAR_H_ @@ -181,7 +181,6 @@ void *ioapic_create(uintptr_t addr, int32_t id, int intbase); int ioapic_disable_pin(void *cookie, u_int pin); int ioapic_get_vector(void *cookie, u_int pin); -int ioapic_next_logical_cluster(void); void ioapic_register(void *cookie); int ioapic_remap_vector(void *cookie, u_int pin, int vector); int ioapic_set_bus(void *cookie, u_int pin, int bus_type); ==== //depot/projects/scottl-camlock/src/sys/amd64/include/intr_machdep.h#5 (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.8 2005/12/08 18:33:30 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/intr_machdep.h,v 1.9 2006/02/28 22:24:54 jhb Exp $ */ #ifndef __MACHINE_INTR_MACHDEP_H__ @@ -85,6 +85,7 @@ void (*pic_resume)(struct intsrc *); int (*pic_config_intr)(struct intsrc *, enum intr_trigger, enum intr_polarity); + void (*pic_assign_cpu)(struct intsrc *, u_int apic_id); }; /* Flags for pic_disable_source() */ @@ -105,6 +106,7 @@ u_long *is_count; u_long *is_straycount; u_int is_index; + u_int is_enabled:1; }; struct trapframe; @@ -117,6 +119,11 @@ enum intr_trigger elcr_read_trigger(u_int irq); void elcr_resume(void); void elcr_write_trigger(u_int irq, enum intr_trigger trigger); +#ifdef SMP +void intr_add_cpu(u_int apic_id); +#else +#define intr_add_cpu(apic_id) +#endif int intr_add_handler(const char *name, int vector, driver_intr_t handler, void *arg, enum intr_type flags, void **cookiep); int intr_config_intr(int vector, enum intr_trigger trig, ==== //depot/projects/scottl-camlock/src/sys/amd64/include/mptable.h#3 (text+ko) ==== @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/mptable.h,v 1.222 2005/01/05 20:17:20 imp Exp $ + * $FreeBSD: src/sys/amd64/include/mptable.h,v 1.223 2006/03/01 05:59:56 sam Exp $ */ #ifndef __MACHINE_MPTABLE_H__ @@ -139,7 +139,8 @@ char name[16]; } basetable_entry; +#ifdef _KERNEL int mptable_pci_probe_table(int bus); int mptable_pci_route_interrupt(device_t pcib, device_t dev, int pin); - +#endif #endif /* !__MACHINE_MPTABLE_H__ */ ==== //depot/projects/scottl-camlock/src/sys/amd64/isa/atpic.c#5 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/isa/atpic.c,v 1.18 2005/12/08 18:33:30 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/isa/atpic.c,v 1.19 2006/02/28 22:24:54 jhb Exp $"); #include "opt_auto_eoi.h" #include "opt_isa.h" @@ -108,8 +108,8 @@ #define ATPIC(io, base, eoi, imenptr) \ { { atpic_enable_source, atpic_disable_source, (eoi), \ atpic_enable_intr, atpic_vector, atpic_source_pending, NULL, \ - atpic_resume, atpic_config_intr }, (io), (base), \ - IDT_IO_INTS + (base), (imenptr) } + atpic_resume, atpic_config_intr, atpic_assign_cpu }, (io), \ + (base), IDT_IO_INTS + (base), (imenptr) } #define INTSRC(irq) \ { { &atpics[(irq) / 8].at_pic }, IDTVEC(atpic_intr ## irq ), \ @@ -142,6 +142,7 @@ static int atpic_source_pending(struct intsrc *isrc); static int atpic_config_intr(struct intsrc *isrc, enum intr_trigger trig, enum intr_polarity pol); +static void atpic_assign_cpu(struct intsrc *isrc, u_int apic_id); static void i8259_init(struct atpic *pic, int slave); static struct atpic atpics[] = { @@ -353,6 +354,17 @@ } static void >>> TRUNCATED FOR MAIL (1000 lines) <<<