PERFORCE change 70054 for review
John Baldwin
jhb at FreeBSD.org
Mon Jan 31 14:16:37 PST 2005
http://perforce.freebsd.org/chv.cgi?CH=70054
Change 70054 by jhb at jhb_slimer on 2005/01/31 22:15:49
IFC of d00m @70050.
Affected files ...
.. //depot/projects/smpng/sys/alpha/include/bus.h#17 integrate
.. //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#19 integrate
.. //depot/projects/smpng/sys/alpha/osf1/imgact_osf1.c#13 integrate
.. //depot/projects/smpng/sys/alpha/osf1/osf1_sysvec.c#8 integrate
.. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#5 integrate
.. //depot/projects/smpng/sys/amd64/amd64/db_trace.c#12 integrate
.. //depot/projects/smpng/sys/amd64/amd64/exception.S#11 integrate
.. //depot/projects/smpng/sys/amd64/amd64/identcpu.c#11 integrate
.. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#9 integrate
.. //depot/projects/smpng/sys/amd64/amd64/io_apic.c#5 integrate
.. //depot/projects/smpng/sys/amd64/amd64/local_apic.c#10 integrate
.. //depot/projects/smpng/sys/amd64/amd64/machdep.c#34 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#16 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mptable.c#6 integrate
.. //depot/projects/smpng/sys/amd64/amd64/vm_machdep.c#24 integrate
.. //depot/projects/smpng/sys/amd64/include/apicreg.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/apicvar.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/bus_dma.h#10 integrate
.. //depot/projects/smpng/sys/amd64/include/intr_machdep.h#4 integrate
.. //depot/projects/smpng/sys/amd64/include/param.h#14 integrate
.. //depot/projects/smpng/sys/amd64/include/smp.h#6 integrate
.. //depot/projects/smpng/sys/amd64/isa/atpic.c#9 integrate
.. //depot/projects/smpng/sys/amd64/isa/elcr.c#2 integrate
.. //depot/projects/smpng/sys/amd64/isa/isa.c#6 integrate
.. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#3 integrate
.. //depot/projects/smpng/sys/amd64/pci/pci_cfgreg.c#7 integrate
.. //depot/projects/smpng/sys/arm/arm/busdma_machdep.c#10 integrate
.. //depot/projects/smpng/sys/arm/arm/locore.S#7 integrate
.. //depot/projects/smpng/sys/arm/arm/trap.c#8 integrate
.. //depot/projects/smpng/sys/arm/xscale/i80321/uart_cpu_i80321.c#4 integrate
.. //depot/projects/smpng/sys/boot/common/ufsread.c#9 integrate
.. //depot/projects/smpng/sys/cam/cam_xpt.c#25 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_cd.c#25 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_pass.c#14 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_ses.c#12 integrate
.. //depot/projects/smpng/sys/coda/coda_fbsd.c#13 integrate
.. //depot/projects/smpng/sys/coda/coda_vnops.c#20 integrate
.. //depot/projects/smpng/sys/coda/coda_vnops.h#10 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_misc.c#14 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_proto.h#15 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscall.h#15 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_syscalls.c#15 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/freebsd32_sysent.c#15 integrate
.. //depot/projects/smpng/sys/compat/freebsd32/syscalls.master#15 integrate
.. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#12 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_ioctl.c#37 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_ipc.c#18 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_misc.c#52 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_socket.c#22 integrate
.. //depot/projects/smpng/sys/compat/ndis/hal_var.h#6 integrate
.. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#21 integrate
.. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#16 integrate
.. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#13 integrate
.. //depot/projects/smpng/sys/compat/ndis/pe_var.h#7 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#11 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#23 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#23 integrate
.. //depot/projects/smpng/sys/compat/pecoff/imgact_pecoff.c#25 integrate
.. //depot/projects/smpng/sys/compat/svr4/imgact_svr4.c#12 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_sysvec.c#18 integrate
.. //depot/projects/smpng/sys/conf/Makefile.arm#5 integrate
.. //depot/projects/smpng/sys/conf/NOTES#91 integrate
.. //depot/projects/smpng/sys/conf/files#134 integrate
.. //depot/projects/smpng/sys/conf/files.pc98#69 integrate
.. //depot/projects/smpng/sys/conf/kern.pre.mk#43 integrate
.. //depot/projects/smpng/sys/conf/kmod.mk#41 integrate
.. //depot/projects/smpng/sys/conf/options#92 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf.c#15 integrate
.. //depot/projects/smpng/sys/contrib/pf/net/pf_ioctl.c#11 integrate
.. //depot/projects/smpng/sys/dev/aac/aacreg.h#15 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_pcib.c#30 integrate
.. //depot/projects/smpng/sys/dev/aha/aha_isa.c#13 integrate
.. //depot/projects/smpng/sys/dev/aha/aha_mca.c#9 integrate
.. //depot/projects/smpng/sys/dev/aha/ahareg.h#6 integrate
.. //depot/projects/smpng/sys/dev/amr/amr.c#27 integrate
.. //depot/projects/smpng/sys/dev/amr/amr_pci.c#19 integrate
.. //depot/projects/smpng/sys/dev/amr/amrreg.h#6 integrate
.. //depot/projects/smpng/sys/dev/amr/amrvar.h#18 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-card.c#23 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#53 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_rate/amrr/amrr.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/ath_rate/onoe/onoe.c#3 integrate
.. //depot/projects/smpng/sys/dev/ath/if_ath.c#22 integrate
.. //depot/projects/smpng/sys/dev/ath/if_athvar.h#12 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_card.c#10 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_mem.c#8 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_tuner.c#7 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_tuner.h#4 integrate
.. //depot/projects/smpng/sys/dev/ciss/ciss.c#36 integrate
.. //depot/projects/smpng/sys/dev/cs/if_cs.c#13 integrate
.. //depot/projects/smpng/sys/dev/cs/if_cs_pccard.c#11 integrate
.. //depot/projects/smpng/sys/dev/cs/if_csvar.h#4 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed.c#28 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#26 integrate
.. //depot/projects/smpng/sys/dev/ed/if_ed_pci.c#8 integrate
.. //depot/projects/smpng/sys/dev/ed/if_edvar.h#8 integrate
.. //depot/projects/smpng/sys/dev/em/if_em.c#43 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep.c#18 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_eisa.c#11 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_isa.c#11 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_mca.c#8 integrate
.. //depot/projects/smpng/sys/dev/ep/if_ep_pccard.c#16 integrate
.. //depot/projects/smpng/sys/dev/ep/if_epvar.h#7 integrate
.. //depot/projects/smpng/sys/dev/ex/if_ex_pccard.c#8 integrate
.. //depot/projects/smpng/sys/dev/fdc/fdc.c#17 integrate
.. //depot/projects/smpng/sys/dev/fdc/fdc_isa.c#9 integrate
.. //depot/projects/smpng/sys/dev/fdc/fdc_pccard.c#6 integrate
.. //depot/projects/smpng/sys/dev/fdc/fdcvar.h#7 integrate
.. //depot/projects/smpng/sys/dev/fe/if_fe_pccard.c#11 integrate
.. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#59 integrate
.. //depot/projects/smpng/sys/dev/hifn/hifn7751.c#20 integrate
.. //depot/projects/smpng/sys/dev/hifn/hifn7751reg.h#6 integrate
.. //depot/projects/smpng/sys/dev/hifn/hifn7751var.h#7 integrate
.. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#23 integrate
.. //depot/projects/smpng/sys/dev/iir/iir.h#11 integrate
.. //depot/projects/smpng/sys/dev/ips/ips.c#11 integrate
.. //depot/projects/smpng/sys/dev/ips/ips.h#10 integrate
.. //depot/projects/smpng/sys/dev/ips/ips_commands.c#10 integrate
.. //depot/projects/smpng/sys/dev/ips/ips_disk.c#7 integrate
.. //depot/projects/smpng/sys/dev/ips/ips_ioctl.c#6 integrate
.. //depot/projects/smpng/sys/dev/ips/ips_pci.c#9 integrate
.. //depot/projects/smpng/sys/dev/isp/isp.c#35 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#33 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_pci.c#27 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_target.c#14 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_target.h#9 integrate
.. //depot/projects/smpng/sys/dev/isp/ispvar.h#24 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2300.h#8 integrate
.. //depot/projects/smpng/sys/dev/ispfw/ispfw.c#10 integrate
.. //depot/projects/smpng/sys/dev/led/led.c#10 integrate
.. //depot/projects/smpng/sys/dev/mcd/mcd.c#12 integrate
.. //depot/projects/smpng/sys/dev/md/md.c#64 integrate
.. //depot/projects/smpng/sys/dev/nmdm/nmdm.c#26 integrate
.. //depot/projects/smpng/sys/dev/pccard/card_if.m#12 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard.c#31 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard_cis.c#16 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccard_cis.h#3 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#41 integrate
.. //depot/projects/smpng/sys/dev/pci/pci.c#50 integrate
.. //depot/projects/smpng/sys/dev/puc/puc_sbus.c#7 integrate
.. //depot/projects/smpng/sys/dev/puc/pucdata.c#29 integrate
.. //depot/projects/smpng/sys/dev/ray/if_ray.c#17 integrate
.. //depot/projects/smpng/sys/dev/re/if_re.c#19 integrate
.. //depot/projects/smpng/sys/dev/scd/scd.c#11 integrate
.. //depot/projects/smpng/sys/dev/sn/if_sn_pccard.c#12 integrate
.. //depot/projects/smpng/sys/dev/snc/if_snc_pccard.c#6 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_dev_sab82532.c#7 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_dev_z8530.c#7 integrate
.. //depot/projects/smpng/sys/dev/uart/uart_kbd_sun.c#3 integrate
.. //depot/projects/smpng/sys/dev/usb/ucom.c#23 integrate
.. //depot/projects/smpng/sys/dev/usb/umodem.c#23 integrate
.. //depot/projects/smpng/sys/dev/usb/uplcom.c#18 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_port.h#24 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_subr.c#29 integrate
.. //depot/projects/smpng/sys/dev/usb/uvscom.c#16 integrate
.. //depot/projects/smpng/sys/dev/wi/if_wi_pccard.c#31 integrate
.. //depot/projects/smpng/sys/dev/xe/if_xe_pccard.c#16 integrate
.. //depot/projects/smpng/sys/fs/devfs/devfs_vnops.c#40 integrate
.. //depot/projects/smpng/sys/fs/hpfs/hpfs_vfsops.c#27 integrate
.. //depot/projects/smpng/sys/fs/hpfs/hpfs_vnops.c#26 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#20 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vfsops.c#39 integrate
.. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vnops.c#31 integrate
.. //depot/projects/smpng/sys/fs/ntfs/ntfs_subr.c#19 integrate
.. //depot/projects/smpng/sys/fs/ntfs/ntfs_vfsops.c#27 integrate
.. //depot/projects/smpng/sys/fs/ntfs/ntfs_vnops.c#21 integrate
.. //depot/projects/smpng/sys/fs/nullfs/null_vnops.c#19 integrate
.. //depot/projects/smpng/sys/fs/nwfs/nwfs_io.c#17 integrate
.. //depot/projects/smpng/sys/fs/nwfs/nwfs_node.c#14 integrate
.. //depot/projects/smpng/sys/fs/smbfs/smbfs_node.c#19 integrate
.. //depot/projects/smpng/sys/fs/smbfs/smbfs_vnops.c#30 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vfsops.c#19 integrate
.. //depot/projects/smpng/sys/fs/udf/udf_vnops.c#25 integrate
.. //depot/projects/smpng/sys/fs/umapfs/umap_vnops.c#11 integrate
.. //depot/projects/smpng/sys/fs/unionfs/union_subr.c#23 integrate
.. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#23 integrate
.. //depot/projects/smpng/sys/geom/geom_disk.c#42 integrate
.. //depot/projects/smpng/sys/geom/geom_mbr.c#29 integrate
.. //depot/projects/smpng/sys/geom/geom_vfs.c#3 integrate
.. //depot/projects/smpng/sys/geom/geom_vfs.h#2 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_drive.c#8 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_init.c#7 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_plex.c#10 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_state.c#6 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_subr.c#10 integrate
.. //depot/projects/smpng/sys/geom/vinum/geom_vinum_volume.c#5 integrate
.. //depot/projects/smpng/sys/gnu/ext2fs/ext2_inode.c#16 integrate
.. //depot/projects/smpng/sys/gnu/ext2fs/ext2_vfsops.c#42 integrate
.. //depot/projects/smpng/sys/i386/i386/sys_machdep.c#38 integrate
.. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_sysvec.c#8 integrate
.. //depot/projects/smpng/sys/i386/ibcs2/imgact_coff.c#18 integrate
.. //depot/projects/smpng/sys/i386/include/sysarch.h#9 integrate
.. //depot/projects/smpng/sys/i386/linux/imgact_linux.c#16 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_machdep.c#28 integrate
.. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#42 integrate
.. //depot/projects/smpng/sys/ia64/ia64/unaligned.c#10 integrate
.. //depot/projects/smpng/sys/ia64/include/asm.h#10 integrate
.. //depot/projects/smpng/sys/isa/isa_common.c#15 integrate
.. //depot/projects/smpng/sys/isofs/cd9660/cd9660_node.c#15 integrate
.. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vfsops.c#35 integrate
.. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vnops.c#22 integrate
.. //depot/projects/smpng/sys/kern/imgact_aout.c#26 integrate
.. //depot/projects/smpng/sys/kern/imgact_elf.c#41 integrate
.. //depot/projects/smpng/sys/kern/imgact_gzip.c#11 integrate
.. //depot/projects/smpng/sys/kern/imgact_shell.c#8 integrate
.. //depot/projects/smpng/sys/kern/init_sysent.c#53 integrate
.. //depot/projects/smpng/sys/kern/kern_conf.c#34 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#76 integrate
.. //depot/projects/smpng/sys/kern/kern_exec.c#82 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#92 integrate
.. //depot/projects/smpng/sys/kern/kern_kse.c#16 integrate
.. //depot/projects/smpng/sys/kern/kern_lock.c#37 integrate
.. //depot/projects/smpng/sys/kern/kern_lockf.c#18 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#33 integrate
.. //depot/projects/smpng/sys/kern/kern_mib.c#25 integrate
.. //depot/projects/smpng/sys/kern/kern_module.c#15 integrate
.. //depot/projects/smpng/sys/kern/kern_prot.c#86 integrate
.. //depot/projects/smpng/sys/kern/kern_time.c#31 integrate
.. //depot/projects/smpng/sys/kern/kern_timeout.c#22 integrate
.. //depot/projects/smpng/sys/kern/subr_bus.c#46 integrate
.. //depot/projects/smpng/sys/kern/subr_witness.c#126 integrate
.. //depot/projects/smpng/sys/kern/sys_generic.c#39 integrate
.. //depot/projects/smpng/sys/kern/syscalls.c#53 integrate
.. //depot/projects/smpng/sys/kern/syscalls.master#54 integrate
.. //depot/projects/smpng/sys/kern/sysv_msg.c#26 integrate
.. //depot/projects/smpng/sys/kern/sysv_sem.c#30 integrate
.. //depot/projects/smpng/sys/kern/sysv_shm.c#28 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket.c#66 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#64 integrate
.. //depot/projects/smpng/sys/kern/vfs_bio.c#73 integrate
.. //depot/projects/smpng/sys/kern/vfs_cache.c#23 integrate
.. //depot/projects/smpng/sys/kern/vfs_cluster.c#37 integrate
.. //depot/projects/smpng/sys/kern/vfs_default.c#35 integrate
.. //depot/projects/smpng/sys/kern/vfs_lookup.c#23 integrate
.. //depot/projects/smpng/sys/kern/vfs_mount.c#44 integrate
.. //depot/projects/smpng/sys/kern/vfs_subr.c#95 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#81 integrate
.. //depot/projects/smpng/sys/kern/vfs_vnops.c#57 integrate
.. //depot/projects/smpng/sys/kern/vnode_if.src#22 integrate
.. //depot/projects/smpng/sys/libkern/strvalid.c#4 integrate
.. //depot/projects/smpng/sys/modules/Makefile#89 integrate
.. //depot/projects/smpng/sys/modules/agp/Makefile#8 integrate
.. //depot/projects/smpng/sys/modules/aic7xxx/ahd/Makefile#6 integrate
.. //depot/projects/smpng/sys/modules/bios/smapi/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/ie/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/netgraph/Makefile#18 integrate
.. //depot/projects/smpng/sys/modules/pcic/Makefile#4 delete
.. //depot/projects/smpng/sys/modules/sound/driver/maestro/Makefile#3 integrate
.. //depot/projects/smpng/sys/net/if.c#61 integrate
.. //depot/projects/smpng/sys/net/if_vlan.c#33 integrate
.. //depot/projects/smpng/sys/net/raw_cb.c#12 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.c#13 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_freebsd.c#3 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_input.c#13 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#13 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_node.c#14 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_node.h#10 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_output.c#10 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_proto.c#10 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_proto.h#6 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_radiotap.h#5 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_var.h#10 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/netflow.c#4 integrate
.. //depot/projects/smpng/sys/netgraph/netflow/ng_netflow.c#3 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#32 integrate
.. //depot/projects/smpng/sys/netinet/ip_fw2.c#48 integrate
.. //depot/projects/smpng/sys/netinet/ip_input.c#63 integrate
.. //depot/projects/smpng/sys/netinet/ip_output.c#70 integrate
.. //depot/projects/smpng/sys/netinet/tcp_subr.c#63 integrate
.. //depot/projects/smpng/sys/netinet/tcp_syncache.c#36 integrate
.. //depot/projects/smpng/sys/netinet6/icmp6.c#25 integrate
.. //depot/projects/smpng/sys/nfs4client/nfs4_vnops.c#13 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs.h#24 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#39 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_node.c#18 integrate
.. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#49 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs.h#15 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_serv.c#40 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_srvsock.c#22 integrate
.. //depot/projects/smpng/sys/nfsserver/nfs_srvsubs.c#25 integrate
.. //depot/projects/smpng/sys/pci/if_rlreg.h#23 integrate
.. //depot/projects/smpng/sys/pci/if_sk.c#42 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/pmap.c#52 integrate
.. //depot/projects/smpng/sys/security/mac/mac_vfs.c#7 integrate
.. //depot/projects/smpng/sys/security/mac_biba/mac_biba.c#31 integrate
.. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.c#24 integrate
.. //depot/projects/smpng/sys/security/mac_lomac/mac_lomac.h#3 integrate
.. //depot/projects/smpng/sys/security/mac_mls/mac_mls.c#29 integrate
.. //depot/projects/smpng/sys/security/mac_stub/mac_stub.c#9 integrate
.. //depot/projects/smpng/sys/security/mac_test/mac_test.c#26 integrate
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#52 integrate
.. //depot/projects/smpng/sys/sparc64/include/bus.h#23 integrate
.. //depot/projects/smpng/sys/sparc64/include/md_var.h#14 integrate
.. //depot/projects/smpng/sys/sparc64/pci/ofw_pcibus.c#4 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/iommu.c#29 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#71 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/sys_machdep.c#13 integrate
.. //depot/projects/smpng/sys/sparc64/sparc64/vm_machdep.c#47 integrate
.. //depot/projects/smpng/sys/sys/bus.h#19 integrate
.. //depot/projects/smpng/sys/sys/cdio.h#6 integrate
.. //depot/projects/smpng/sys/sys/conf.h#37 integrate
.. //depot/projects/smpng/sys/sys/device_port.h#2 integrate
.. //depot/projects/smpng/sys/sys/imgact.h#11 integrate
.. //depot/projects/smpng/sys/sys/ktr.h#19 integrate
.. //depot/projects/smpng/sys/sys/lockf.h#5 integrate
.. //depot/projects/smpng/sys/sys/lockmgr.h#12 integrate
.. //depot/projects/smpng/sys/sys/mount.h#37 integrate
.. //depot/projects/smpng/sys/sys/namei.h#14 integrate
.. //depot/projects/smpng/sys/sys/param.h#76 integrate
.. //depot/projects/smpng/sys/sys/socketvar.h#42 integrate
.. //depot/projects/smpng/sys/sys/syscall.h#52 integrate
.. //depot/projects/smpng/sys/sys/syscall.mk#52 integrate
.. //depot/projects/smpng/sys/sys/syscallsubr.h#15 integrate
.. //depot/projects/smpng/sys/sys/sysproto.h#54 integrate
.. //depot/projects/smpng/sys/sys/systm.h#60 integrate
.. //depot/projects/smpng/sys/sys/time.h#17 integrate
.. //depot/projects/smpng/sys/sys/umtx.h#11 integrate
.. //depot/projects/smpng/sys/sys/vnode.h#56 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_alloc.c#34 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_balloc.c#16 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_extern.h#17 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_inode.c#21 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_rawread.c#12 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_snapshot.c#45 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#39 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#67 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#39 integrate
.. //depot/projects/smpng/sys/ufs/ffs/fs.h#18 integrate
.. //depot/projects/smpng/sys/ufs/ufs/extattr.h#7 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_extattr.c#32 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_inode.c#19 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_vfsops.c#19 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufs_vnops.c#46 integrate
.. //depot/projects/smpng/sys/ufs/ufs/ufsmount.h#13 integrate
.. //depot/projects/smpng/sys/vm/memguard.c#1 branch
.. //depot/projects/smpng/sys/vm/memguard.h#1 branch
.. //depot/projects/smpng/sys/vm/vm_fault.c#47 integrate
.. //depot/projects/smpng/sys/vm/vm_glue.c#54 integrate
.. //depot/projects/smpng/sys/vm/vm_mmap.c#52 integrate
.. //depot/projects/smpng/sys/vm/vm_object.c#67 integrate
.. //depot/projects/smpng/sys/vm/vnode_pager.c#48 integrate
.. //depot/projects/smpng/sys/vm/vnode_pager.h#6 integrate
Differences ...
==== //depot/projects/smpng/sys/alpha/include/bus.h#17 (text+ko) ====
@@ -67,7 +67,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/alpha/include/bus.h,v 1.27 2005/01/15 20:11:25 scottl Exp $ */
+/* $FreeBSD: src/sys/alpha/include/bus.h,v 1.28 2005/01/29 21:43:33 ru Exp $ */
#ifndef _ALPHA_BUS_H_
#define _ALPHA_BUS_H_
@@ -88,7 +88,7 @@
/* The largest address space known so far is 40 bits */
#define BUS_SPACE_MAXADDR 0xFFFFFFFFFUL
-#define BUS_SPACE_UNRESTRICTED (~0UL)
+#define BUS_SPACE_UNRESTRICTED (~0)
/*
* Map a region of device bus space into CPU virtual address space.
==== //depot/projects/smpng/sys/alpha/linux/linux_sysvec.c#19 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.93 2004/07/15 08:25:59 phk Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/linux/linux_sysvec.c,v 1.94 2005/01/29 23:11:57 sobomax Exp $");
/* XXX we use functions that might not exist. */
#include "opt_compat.h"
@@ -91,7 +91,7 @@
(curthread->td_proc->p_flag & P_SA) == 0,
("unsafe elf_linux_fixup(), should be curproc"));
args = (Elf64_Auxargs *)imgp->auxargs;
- pos = *stack_base + (imgp->argc + imgp->envc + 2);
+ pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2);
if (args->trace)
AUXARGS_ENTRY(pos, AT_DEBUG, 1);
@@ -114,7 +114,7 @@
imgp->auxargs = NULL;
(*stack_base)--;
- **stack_base = (register_t)imgp->argc;
+ **stack_base = (register_t)imgp->args->argc;
return 0;
}
@@ -148,8 +148,8 @@
if ((error = exec_shell_imgact(imgp)) == 0) {
char *rpath = NULL;
- linux_emul_find(FIRST_THREAD_IN_PROC(imgp->proc), NULL,
- imgp->interpreter_name, &rpath, 0);
+ linux_emul_convpath(FIRST_THREAD_IN_PROC(imgp->proc),
+ imgp->interpreter_name, UIO_SYSSPACE, &rpath, 0);
if (rpath != imgp->interpreter_name) {
int len = strlen(rpath) + 1;
==== //depot/projects/smpng/sys/alpha/osf1/imgact_osf1.c#13 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/osf1/imgact_osf1.c,v 1.21 2005/01/05 20:05:51 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/osf1/imgact_osf1.c,v 1.22 2005/01/29 23:11:57 sobomax Exp $");
#include <sys/types.h>
#include <sys/malloc.h>
@@ -118,7 +118,7 @@
osf_auxargs = malloc(sizeof(Osf_Auxargs), M_TEMP, M_WAITOK | M_ZERO);
imgp->auxargs = osf_auxargs;
osf_auxargs->executable = osf_auxargs->exec_path;
- path_not_saved = copyinstr(imgp->fname, osf_auxargs->executable,
+ path_not_saved = copystr(imgp->args->fname, osf_auxargs->executable,
PATH_MAX, &bytes);
if (execp->f.f_flags & DYNAMIC_FLAG) {
if (path_not_saved) {
@@ -172,11 +172,6 @@
bsize = eap->bsize;
imgp->entry_addr = eap->entry;
- /* copy in arguments and/or environment from old process */
-
- error = exec_extract_strings(imgp);
- if (error)
- goto bail;
/*
* Destroy old process VM and create a new one (with a new stack).
==== //depot/projects/smpng/sys/alpha/osf1/osf1_sysvec.c#8 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_sysvec.c,v 1.11 2003/09/25 01:10:22 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_sysvec.c,v 1.12 2005/01/29 23:11:57 sobomax Exp $");
/* XXX we use functions that might not exist. */
#include "opt_compat.h"
@@ -117,15 +117,15 @@
Osf_Auxargs *args;
args = (Osf_Auxargs *)imgp->auxargs;
- pos = *stack_base + (imgp->argc + imgp->envc + 2);
+ pos = *stack_base + (imgp->args->argc + imgp->args->envc + 2);
arginfo = (struct ps_strings *)PS_STRINGS;
sz = *(imgp->proc->p_sysent->sv_szsigcode);
destp = (caddr_t)arginfo - szsigcode - SPARE_USRSPACE -
- roundup((ARG_MAX - imgp->stringspace), sizeof(char *));
+ roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *));
- destp -= imgp->stringspace;
+ destp -= imgp->args->stringspace;
destp -= strlen(args->executable)+2;
copyout(args->executable, destp, strlen(args->executable)+1);
@@ -143,6 +143,6 @@
free(imgp->auxargs, M_TEMP);
imgp->auxargs = NULL;
(*stack_base)--;
- **stack_base = (long)imgp->argc;
+ **stack_base = (long)imgp->args->argc;
return 0;
}
==== //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#5 (text+ko) ====
@@ -28,7 +28,7 @@
* SUCH DAMAGE.
*
* from: vector.s, 386BSD 0.1 unknown origin
- * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.100 2004/05/24 12:08:56 bde Exp $
+ * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.101 2005/01/21 06:01:19 peter Exp $
*/
/*
@@ -210,31 +210,16 @@
*/
.text
SUPERALIGN_TEXT
-IDTVEC(hardclock)
+IDTVEC(ipi_intr_bitmap_handler)
+
PUSH_FRAME
movq lapic, %rdx
movl $0, LA_EOI(%rdx) /* End Of Interrupt to APIC */
-
- call forwarded_hardclock
- MEXITCOUNT
- jmp doreti
-
-/*
- * Forward statclock to another CPU. Pushes a clockframe and calls
- * forwarded_statclock().
- */
- .text
- SUPERALIGN_TEXT
-IDTVEC(statclock)
- PUSH_FRAME
-
- movq lapic, %rdx
- movl $0, LA_EOI(%rdx) /* End Of Interrupt to APIC */
-
+
FAKE_MCOUNT(TF_RIP(%rsp))
- call forwarded_statclock
+ call ipi_bitmap_handler
MEXITCOUNT
jmp doreti
==== //depot/projects/smpng/sys/amd64/amd64/db_trace.c#12 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.65 2005/01/05 20:17:20 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/db_trace.c,v 1.66 2005/01/21 05:54:05 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -302,10 +302,16 @@
rbp = db_get_value((long) &(*fp)->f_frame, 8, FALSE);
/*
- * Figure out frame type.
+ * Figure out frame type. We look at the address just before
+ * the saved instruction pointer as the saved EIP is after the
+ * call function, and if the function being called is marked as
+ * dead (such as panic() at the end of dblfault_handler()), then
+ * the instruction at the saved EIP will be part of a different
+ * function (syscall() in this example) rather than the one that
+ * actually made the call.
*/
frame_type = NORMAL;
- sym = db_search_symbol(rip, DB_STGY_ANY, &offset);
+ sym = db_search_symbol(rip - 1, DB_STGY_ANY, &offset);
db_symbol_values(sym, &name, NULL);
if (name != NULL) {
if (strcmp(name, "calltrap") == 0 ||
==== //depot/projects/smpng/sys/amd64/amd64/exception.S#11 (text+ko) ====
@@ -27,7 +27,7 @@
* 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.120 2004/08/16 12:51:32 obrien Exp $
+ * $FreeBSD: src/sys/amd64/amd64/exception.S,v 1.121 2005/01/21 05:56:40 peter Exp $
*/
#include "opt_atpic.h"
@@ -130,7 +130,7 @@
TRAP_ERR(T_PROTFLT)
IDTVEC(align)
TRAP_ERR(T_ALIGNFLT)
-
+
/*
* alltraps entry point. Use swapgs if this is the first time in the
* kernel from userland. Reenable interrupts if they were enabled
==== //depot/projects/smpng/sys/amd64/amd64/identcpu.c#11 (text+ko) ====
@@ -2,8 +2,6 @@
* Copyright (c) 1992 Terrence R. Lambert.
* Copyright (c) 1982, 1987, 1990 The Regents of the University of California.
* Copyright (c) 1997 KATO Takenori.
- * Copyright (c) 2001 Tamotsu Hattori.
- * Copyright (c) 2001 Mitsuru IWASAKI.
* All rights reserved.
*
* This code is derived from software contributed to Berkeley by
@@ -41,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.134 2004/06/08 01:20:37 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.135 2005/01/21 05:56:40 peter Exp $");
#include "opt_cpu.h"
==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#9 (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.12 2004/12/06 22:56:15 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.13 2005/01/21 06:01:19 peter Exp $
*/
/*
@@ -286,6 +286,17 @@
is->is_straycount = &intrcnt[is->is_index + 1];
}
+void
+intrcnt_add(const char *name, u_long **countp)
+{
+
+ mtx_lock_spin(&intr_table_lock);
+ *countp = &intrcnt[intrcnt_index];
+ intrcnt_setname(name, intrcnt_index);
+ intrcnt_index++;
+ mtx_unlock_spin(&intr_table_lock);
+}
+
static void
intr_init(void *dummy __unused)
{
==== //depot/projects/smpng/sys/amd64/amd64/io_apic.c#5 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.11 2004/08/16 23:12:29 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/io_apic.c,v 1.12 2005/01/21 06:01:19 peter Exp $");
#include "opt_atpic.h"
#include "opt_isa.h"
@@ -424,7 +424,7 @@
* them to be set to active low.
*
* XXX: Should we write to the ELCR if the trigger mode changes for
- * an EISA IRQ?
+ * an EISA IRQ or an ISA IRQ with the ELCR present?
*/
if (intpin->io_bus == APIC_BUS_EISA)
pol = INTR_POLARITY_HIGH;
==== //depot/projects/smpng/sys/amd64/amd64/local_apic.c#10 (text+ko) ====
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.10 2004/08/16 22:55:32 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.11 2005/01/21 06:01:19 peter Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -61,7 +61,9 @@
#define MAX_APICID 16
/* Sanity checks on IDT vectors. */
-CTASSERT(APIC_IO_INTS + APIC_NUM_IOINTS <= APIC_LOCAL_INTS);
+CTASSERT(APIC_IO_INTS + APIC_NUM_IOINTS == APIC_TIMER_INT);
+CTASSERT(APIC_TIMER_INT < APIC_LOCAL_INTS);
+CTASSERT(APIC_LOCAL_INTS == 240);
CTASSERT(IPI_STOP < APIC_SPURIOUS_INT);
/*
@@ -96,10 +98,10 @@
static struct lvt lvts[LVT_MAX + 1] = {
{ 1, 1, 1, 1, APIC_LVT_DM_EXTINT, 0 }, /* LINT0: masked ExtINT */
{ 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */
- { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* Timer: needs a vector */
- { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* Error: needs a vector */
+ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */
+ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */
{ 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* PMC */
- { 1, 1, 1, 1, APIC_LVT_DM_FIXED, 0 }, /* Thermal: needs a vector */
+ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */
};
static inthand_t *ioint_handlers[] = {
@@ -115,6 +117,9 @@
volatile lapic_t *lapic;
+static void lapic_enable(void);
+static uint32_t lvt_mode(struct lapic *la, u_int pin, uint32_t value);
+
static uint32_t
lvt_mode(struct lapic *la, u_int pin, uint32_t value)
{
@@ -148,11 +153,7 @@
/* Use a vector of 0. */
break;
case APIC_LVT_DM_FIXED:
-#if 0
value |= lvt->lvt_vector;
-#else
- panic("Fixed LINT pins not supported");
-#endif
break;
default:
panic("bad APIC LVT delivery mode: %#x\n", value);
@@ -166,7 +167,6 @@
void
lapic_init(uintptr_t addr)
{
- u_int32_t value;
/* Map the local APIC and setup the spurious interrupt handler. */
KASSERT(trunc_page(addr) == addr,
@@ -175,10 +175,7 @@
setidt(APIC_SPURIOUS_INT, IDTVEC(spuriousint), SDT_SYSIGT, SEL_KPL, 0);
/* Perform basic initialization of the BSP's local APIC. */
- value = lapic->svr;
- value &= ~(APIC_SVR_VECTOR | APIC_SVR_FOCUS);
- value |= (APIC_SVR_FEN | APIC_SVR_SWEN | APIC_SPURIOUS_INT);
- lapic->svr = value;
+ lapic_enable();
/* Set BSP's per-CPU local APIC ID. */
PCPU_SET(apic_id, lapic_id());
@@ -231,6 +228,9 @@
lapic->id, lapic->version, lapic->ldr, lapic->dfr);
printf(" lint0: 0x%08x lint1: 0x%08x TPR: 0x%08x SVR: 0x%08x\n",
lapic->lvt_lint0, lapic->lvt_lint1, lapic->tpr, lapic->svr);
+ printf(" timer: 0x%08x therm: 0x%08x err: 0x%08x pcm: 0x%08x\n",
+ lapic->lvt_timer, lapic->lvt_thermal, lapic->lvt_error,
+ lapic->lvt_pcint);
}
void
@@ -257,16 +257,8 @@
eflags = intr_disable();
maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT;
- /* Program LINT[01] LVT entries. */
- lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0);
- lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1);
-
- /* XXX: more LVT entries */
-
- /* Clear the TPR. */
- value = lapic->tpr;
- value &= ~APIC_TPR_PRIO;
- lapic->tpr = value;
+ /* Initialize the TPR to allow all interrupts. */
+ lapic_set_tpr(0);
/* Use the cluster model for logical IDs. */
value = lapic->dfr;
@@ -282,10 +274,14 @@
lapic->ldr = value;
/* Setup spurious vector and enable the local APIC. */
- value = lapic->svr;
- value &= ~(APIC_SVR_VECTOR | APIC_SVR_FOCUS);
- value |= (APIC_SVR_FEN | APIC_SVR_SWEN | APIC_SPURIOUS_INT);
- lapic->svr = value;
+ lapic_enable();
+
+ /* Program LINT[01] LVT entries. */
+ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0);
+ lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1);
+
+ /* XXX: more LVT entries */
+
intr_restore(eflags);
}
@@ -300,6 +296,18 @@
lapic->svr = value;
}
+static void
+lapic_enable(void)
+{
+ u_int32_t value;
+
+ /* Program the spurious vector to enable the local APIC. */
+ value = lapic->svr;
+ value &= ~(APIC_SVR_VECTOR | APIC_SVR_FOCUS);
+ value |= (APIC_SVR_FEN | APIC_SVR_SWEN | APIC_SPURIOUS_INT);
+ lapic->svr = value;
+}
+
int
lapic_id(void)
{
@@ -441,7 +449,7 @@
printf("lapic%u:", apic_id);
}
if (bootverbose)
- printf(" LINT%u polarity: active-%s\n", pin,
+ printf(" LINT%u polarity: %s\n", pin,
pol == INTR_POLARITY_HIGH ? "high" : "low");
return (0);
}
@@ -471,6 +479,24 @@
return (0);
}
+/*
+ * Adjust the TPR of the current CPU so that it blocks all interrupts below
+ * the passed in vector.
+ */
+void
+lapic_set_tpr(u_int vector)
+{
+#ifdef CHEAP_TPR
+ lapic->tpr = vector;
+#else
+ u_int32_t tpr;
+
+ tpr = lapic->tpr & ~APIC_TPR_PRIO;
+ tpr |= vector;
+ lapic->tpr = tpr;
+#endif
+}
+
void
lapic_eoi(void)
{
@@ -637,10 +663,9 @@
#ifdef SMP
/*
* Inter Processor Interrupt functions. The lapic_ipi_*() functions are
- * private the sys/i386 code. The public interface for the rest of the
+ * private to the sys/i386 code. The public interface for the rest of the
* kernel is defined in mp_machdep.c.
*/
-
int
lapic_ipi_wait(int delay)
{
@@ -745,7 +770,7 @@
* the failure with the check above when the next IPI is
* sent.
*
- * We could skiip this wait entirely, EXCEPT it probably
+ * We could skip this wait entirely, EXCEPT it probably
* protects us from other routines that assume that the
* message was delivered and acted upon when this function
* returns.
==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#34 (text+ko) ====
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.625 2004/11/29 23:27:07 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.626 2005/01/21 06:01:19 peter Exp $");
#include "opt_atalk.h"
#include "opt_atpic.h"
@@ -1213,6 +1213,7 @@
cninit();
#ifdef DEV_ATPIC
+ elcr_probe();
atpic_startup();
#endif
==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#16 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.248 2004/11/05 18:25:22 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.249 2005/01/21 06:01:19 peter Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -131,6 +131,9 @@
} static cpu_info[MAXCPU];
static int cpu_apic_ids[MAXCPU];
+/* Holds pending bitmap based IPIs per CPU */
+static volatile u_int cpu_ipi_pending[MAXCPU];
+
static u_int boot_address;
static void set_logical_apic_ids(void);
@@ -296,25 +299,22 @@
int i;
/* Initialize the logical ID to APIC ID table. */
- for (i = 0; i < MAXCPU; i++)
+ for (i = 0; i < MAXCPU; i++) {
cpu_apic_ids[i] = -1;
+ cpu_ipi_pending[i] = 0;
+ }
/* Install an inter-CPU IPI for TLB invalidation */
setidt(IPI_INVLTLB, IDTVEC(invltlb), SDT_SYSIGT, SEL_KPL, 0);
setidt(IPI_INVLPG, IDTVEC(invlpg), SDT_SYSIGT, SEL_KPL, 0);
setidt(IPI_INVLRNG, IDTVEC(invlrng), SDT_SYSIGT, SEL_KPL, 0);
-
- /* Install an inter-CPU IPI for forwarding hardclock() */
- setidt(IPI_HARDCLOCK, IDTVEC(hardclock), SDT_SYSIGT, SEL_KPL, 0);
-
- /* Install an inter-CPU IPI for forwarding statclock() */
- setidt(IPI_STATCLOCK, IDTVEC(statclock), SDT_SYSIGT, SEL_KPL, 0);
/* Install an inter-CPU IPI for all-CPU rendezvous */
setidt(IPI_RENDEZVOUS, IDTVEC(rendezvous), SDT_SYSIGT, SEL_KPL, 0);
- /* Install an inter-CPU IPI for forcing an additional software trap */
- setidt(IPI_AST, IDTVEC(cpuast), SDT_SYSIGT, SEL_KPL, 0);
+ /* Install generic inter-CPU IPI handler */
+ setidt(IPI_BITMAP_VECTOR, IDTVEC(ipi_intr_bitmap_handler),
+ SDT_SYSIGT, SEL_KPL, 0);
/* Install an inter-CPU IPI for CPU stop/restart */
setidt(IPI_STOP, IDTVEC(cpustop), SDT_SYSIGT, SEL_KPL, 0);
@@ -876,20 +876,6 @@
* For statclock, we send an IPI to all CPU's to have them call this
* function.
*/
-void
-forwarded_statclock(struct clockframe frame)
-{
- struct thread *td;
-
- CTR0(KTR_SMP, "forwarded_statclock");
- td = curthread;
- td->td_intr_nesting_level++;
- if (profprocs != 0)
- profclock(&frame);
- if (pscnt == psdiv)
- statclock(&frame);
- td->td_intr_nesting_level--;
-}
void
forward_statclock(void)
@@ -913,17 +899,6 @@
* state and call hardclock_process() on the CPU receiving the clock interrupt
* and then just use a simple IPI to handle any ast's if needed.
*/
-void
-forwarded_hardclock(struct clockframe frame)
-{
- struct thread *td;
-
- CTR0(KTR_SMP, "forwarded_hardclock");
- td = curthread;
- td->td_intr_nesting_level++;
- hardclock_process(&frame);
- td->td_intr_nesting_level--;
-}
void
forward_hardclock(void)
@@ -940,6 +915,41 @@
ipi_selected(map, IPI_HARDCLOCK);
}
+void
+ipi_bitmap_handler(struct clockframe frame)
+{
+ int cpu = PCPU_GET(cpuid);
+ u_int ipi_bitmap;
+ struct thread *td;
+
+ ipi_bitmap = atomic_readandclear_int(&cpu_ipi_pending[cpu]);
+
+ critical_enter();
+
+ /* Nothing to do for AST */
+
+ if (ipi_bitmap & (1 << IPI_HARDCLOCK)) {
+ td = curthread;
+ td->td_intr_nesting_level++;
+ hardclock_process(&frame);
+ td->td_intr_nesting_level--;
+ }
+
+ if (ipi_bitmap & (1 << IPI_STATCLOCK)) {
+ CTR0(KTR_SMP, "forwarded_statclock");
+
+ td = curthread;
+ td->td_intr_nesting_level++;
+ if (profprocs != 0)
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list