PERFORCE change 46080 for review
John Baldwin
jhb at FreeBSD.org
Wed Jan 28 13:26:31 PST 2004
http://perforce.freebsd.org/chv.cgi?CH=46080
Change 46080 by jhb at jhb_slimer on 2004/01/28 13:25:50
IFC @46073.
Affected files ...
.. //depot/projects/smpng/sys/Makefile#5 integrate
.. //depot/projects/smpng/sys/alpha/alpha/support.s#9 integrate
.. //depot/projects/smpng/sys/alpha/conf/GENERIC#35 integrate
.. //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#7 integrate
.. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#5 integrate
.. //depot/projects/smpng/sys/amd64/conf/GENERIC#12 integrate
.. //depot/projects/smpng/sys/amd64/include/md_var.h#7 integrate
.. //depot/projects/smpng/sys/amd64/pci/pci_cfgreg.c#4 integrate
.. //depot/projects/smpng/sys/boot/Makefile#12 integrate
.. //depot/projects/smpng/sys/boot/common/help.common#11 integrate
.. //depot/projects/smpng/sys/boot/common/loader.8#25 integrate
.. //depot/projects/smpng/sys/boot/forth/frames.4th#2 integrate
.. //depot/projects/smpng/sys/boot/forth/loader.conf#20 integrate
.. //depot/projects/smpng/sys/boot/i386/libi386/biosdisk.c#9 integrate
.. //depot/projects/smpng/sys/boot/pc98/btx/btx/btx.s#3 integrate
.. //depot/projects/smpng/sys/boot/pc98/libpc98/vidconsole.c#5 integrate
.. //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#18 integrate
.. //depot/projects/smpng/sys/compat/linux/linux_util.c#10 integrate
.. //depot/projects/smpng/sys/compat/ndis/hal_var.h#2 integrate
.. //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#6 integrate
.. //depot/projects/smpng/sys/compat/ndis/ndis_var.h#6 integrate
.. //depot/projects/smpng/sys/compat/ndis/ntoskrnl_var.h#3 integrate
.. //depot/projects/smpng/sys/compat/ndis/pe_var.h#3 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_hal.c#4 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ndis.c#6 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#6 integrate
.. //depot/projects/smpng/sys/compat/ndis/subr_pe.c#4 integrate
.. //depot/projects/smpng/sys/compat/svr4/svr4_misc.c#29 integrate
.. //depot/projects/smpng/sys/conf/NOTES#61 integrate
.. //depot/projects/smpng/sys/conf/files#100 integrate
.. //depot/projects/smpng/sys/conf/files.i386#52 integrate
.. //depot/projects/smpng/sys/conf/files.pc98#51 integrate
.. //depot/projects/smpng/sys/conf/files.powerpc#16 integrate
.. //depot/projects/smpng/sys/conf/files.sparc64#35 integrate
.. //depot/projects/smpng/sys/conf/kern.post.mk#32 integrate
.. //depot/projects/smpng/sys/conf/kern.pre.mk#28 integrate
.. //depot/projects/smpng/sys/conf/options.i386#40 integrate
.. //depot/projects/smpng/sys/conf/options.pc98#37 integrate
.. //depot/projects/smpng/sys/conf/options.powerpc#8 integrate
.. //depot/projects/smpng/sys/contrib/dev/acpica/exstore.c#18 integrate
.. //depot/projects/smpng/sys/crypto/md5.c#5 integrate
.. //depot/projects/smpng/sys/ddb/db_output.c#9 integrate
.. //depot/projects/smpng/sys/dev/acpica/Osd/OsdTable.c#5 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi.c#57 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpi_pci_link.c#13 integrate
.. //depot/projects/smpng/sys/dev/acpica/acpivar.h#35 integrate
.. //depot/projects/smpng/sys/dev/amd/amd.c#10 integrate
.. //depot/projects/smpng/sys/dev/ar/if_ar.c#11 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.c#45 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-all.h#22 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-card.c#17 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-cbus.c#8 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-chipset.c#28 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-disk.c#36 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-dma.c#35 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-isa.c#15 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-lowlevel.c#8 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.c#39 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-pci.h#17 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-queue.c#6 integrate
.. //depot/projects/smpng/sys/dev/ata/ata-raid.c#27 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cam.c#18 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-cd.c#46 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-fd.c#21 integrate
.. //depot/projects/smpng/sys/dev/ata/atapi-tape.c#24 integrate
.. //depot/projects/smpng/sys/dev/awi/am79c930.c#5 integrate
.. //depot/projects/smpng/sys/dev/awi/am79c930reg.h#2 integrate
.. //depot/projects/smpng/sys/dev/awi/am79c930var.h#3 integrate
.. //depot/projects/smpng/sys/dev/awi/awi.c#16 integrate
.. //depot/projects/smpng/sys/dev/awi/awi_wep.c#14 delete
.. //depot/projects/smpng/sys/dev/awi/awi_wicfg.c#10 delete
.. //depot/projects/smpng/sys/dev/awi/awireg.h#2 integrate
.. //depot/projects/smpng/sys/dev/awi/awivar.h#5 integrate
.. //depot/projects/smpng/sys/dev/awi/if_awi_pccard.c#10 integrate
.. //depot/projects/smpng/sys/dev/bktr/bktr_os.c#19 integrate
.. //depot/projects/smpng/sys/dev/ciss/ciss.c#26 integrate
.. //depot/projects/smpng/sys/dev/dpt/dpt_scsi.c#10 integrate
.. //depot/projects/smpng/sys/dev/fb/fbreg.h#12 integrate
.. //depot/projects/smpng/sys/dev/firewire/fwdev.c#14 integrate
.. //depot/projects/smpng/sys/dev/firewire/fwohci.c#29 integrate
.. //depot/projects/smpng/sys/dev/firewire/fwohci_pci.c#23 integrate
.. //depot/projects/smpng/sys/dev/firewire/sbp_targ.c#4 integrate
.. //depot/projects/smpng/sys/dev/gx/if_gx.c#13 integrate
.. //depot/projects/smpng/sys/dev/ida/ida.c#14 integrate
.. //depot/projects/smpng/sys/dev/ida/ida_disk.c#12 integrate
.. //depot/projects/smpng/sys/dev/ida/idaio.h#1 branch
.. //depot/projects/smpng/sys/dev/ida/idareg.h#4 integrate
.. //depot/projects/smpng/sys/dev/ida/idavar.h#4 integrate
.. //depot/projects/smpng/sys/dev/idt/idt.c#7 integrate
.. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#6 integrate
.. //depot/projects/smpng/sys/dev/if_ndis/if_ndisvar.h#4 integrate
.. //depot/projects/smpng/sys/dev/ips/ips.c#6 integrate
.. //depot/projects/smpng/sys/dev/isp/isp.c#31 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_freebsd.c#26 integrate
.. //depot/projects/smpng/sys/dev/isp/isp_ioctl.h#9 integrate
.. //depot/projects/smpng/sys/dev/isp/ispmbox.h#15 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_12160.h#3 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2200.h#4 integrate
.. //depot/projects/smpng/sys/dev/ispfw/asm_2300.h#6 integrate
.. //depot/projects/smpng/sys/dev/kbd/kbd.c#11 integrate
.. //depot/projects/smpng/sys/dev/lnc/if_lnc_pci.c#7 integrate
.. //depot/projects/smpng/sys/dev/mii/ukphy.c#8 integrate
.. //depot/projects/smpng/sys/dev/mly/mly.c#20 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs#35 integrate
.. //depot/projects/smpng/sys/dev/pccard/pccarddevs.h#35 integrate
.. //depot/projects/smpng/sys/dev/pci/pci_pci.c#19 integrate
.. //depot/projects/smpng/sys/dev/ppbus/vpo.c#7 integrate
.. //depot/projects/smpng/sys/dev/sio/sio.c#38 integrate
.. //depot/projects/smpng/sys/dev/sound/pci/neomagic-coeff.h#3 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/ac97.c#22 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/buffer.c#10 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/buffer.h#6 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#25 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/channel.h#9 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.c#18 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/dsp.h#4 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/mixer.c#13 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.c#21 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/sound.h#14 integrate
.. //depot/projects/smpng/sys/dev/sound/pcm/vchan.c#8 integrate
.. //depot/projects/smpng/sys/dev/sr/if_sr.c#12 integrate
.. //depot/projects/smpng/sys/dev/syscons/scgfbrndr.c#5 integrate
.. //depot/projects/smpng/sys/dev/syscons/schistory.c#6 integrate
.. //depot/projects/smpng/sys/dev/syscons/scterm-dumb.c#3 integrate
.. //depot/projects/smpng/sys/dev/syscons/scterm-sc.c#5 integrate
.. //depot/projects/smpng/sys/dev/syscons/syscons.c#33 integrate
.. //depot/projects/smpng/sys/dev/usb/uftdi.c#9 integrate
.. //depot/projects/smpng/sys/dev/usb/umass.c#33 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_quirks.c#8 integrate
.. //depot/projects/smpng/sys/dev/usb/usb_subr.c#18 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs#45 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs.h#45 integrate
.. //depot/projects/smpng/sys/dev/usb/usbdevs_data.h#45 integrate
.. //depot/projects/smpng/sys/fs/devfs/devfs_rule.c#6 integrate
.. //depot/projects/smpng/sys/fs/unionfs/union_subr.c#16 integrate
.. //depot/projects/smpng/sys/fs/unionfs/union_vnops.c#14 integrate
.. //depot/projects/smpng/sys/geom/bde/g_bde_crypt.c#14 integrate
.. //depot/projects/smpng/sys/geom/geom_dev.c#32 integrate
.. //depot/projects/smpng/sys/geom/geom_disk.c#32 integrate
.. //depot/projects/smpng/sys/geom/geom_event.c#24 integrate
.. //depot/projects/smpng/sys/geom/geom_io.c#26 integrate
.. //depot/projects/smpng/sys/geom/geom_subr.c#35 integrate
.. //depot/projects/smpng/sys/gnu/ext2fs/ext2_readwrite.c#4 integrate
.. //depot/projects/smpng/sys/gnu/ext2fs/ext2_vfsops.c#28 integrate
.. //depot/projects/smpng/sys/i386/acpica/madt.c#6 integrate
.. //depot/projects/smpng/sys/i386/conf/GENERIC#45 integrate
.. //depot/projects/smpng/sys/i386/conf/NOTES#74 integrate
.. //depot/projects/smpng/sys/i386/i386/apic_vector.s#5 integrate
.. //depot/projects/smpng/sys/i386/i386/identcpu.c#27 integrate
.. //depot/projects/smpng/sys/i386/i386/local_apic.c#6 integrate
.. //depot/projects/smpng/sys/i386/i386/longrun.c#1 branch
.. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#63 integrate
.. //depot/projects/smpng/sys/i386/i386/p4tcc.c#1 branch
.. //depot/projects/smpng/sys/i386/i386/pmap.c#56 integrate
.. //depot/projects/smpng/sys/i386/i386/swtch.s#21 integrate
.. //depot/projects/smpng/sys/i386/i386/trap.c#66 integrate
.. //depot/projects/smpng/sys/i386/include/specialreg.h#7 integrate
.. //depot/projects/smpng/sys/i386/isa/atpic_vector.s#4 integrate
.. //depot/projects/smpng/sys/ia64/conf/GENERIC#36 integrate
.. //depot/projects/smpng/sys/ia64/ia64/interrupt.c#24 integrate
.. //depot/projects/smpng/sys/ia64/ia64/trap.c#62 integrate
.. //depot/projects/smpng/sys/isofs/cd9660/cd9660_vnops.c#13 integrate
.. //depot/projects/smpng/sys/kern/init_main.c#40 integrate
.. //depot/projects/smpng/sys/kern/kern_condvar.c#32 integrate
.. //depot/projects/smpng/sys/kern/kern_descrip.c#55 integrate
.. //depot/projects/smpng/sys/kern/kern_exit.c#69 integrate
.. //depot/projects/smpng/sys/kern/kern_fork.c#70 integrate
.. //depot/projects/smpng/sys/kern/kern_idle.c#17 integrate
.. //depot/projects/smpng/sys/kern/kern_intr.c#38 integrate
.. //depot/projects/smpng/sys/kern/kern_jail.c#29 integrate
.. //depot/projects/smpng/sys/kern/kern_ktrace.c#37 integrate
.. //depot/projects/smpng/sys/kern/kern_malloc.c#26 integrate
.. //depot/projects/smpng/sys/kern/kern_mutex.c#75 integrate
.. //depot/projects/smpng/sys/kern/kern_ntptime.c#13 integrate
.. //depot/projects/smpng/sys/kern/kern_poll.c#12 integrate
.. //depot/projects/smpng/sys/kern/kern_prot.c#79 integrate
.. //depot/projects/smpng/sys/kern/kern_shutdown.c#38 integrate
.. //depot/projects/smpng/sys/kern/kern_sig.c#84 integrate
.. //depot/projects/smpng/sys/kern/kern_subr.c#28 integrate
.. //depot/projects/smpng/sys/kern/kern_sx.c#20 integrate
.. //depot/projects/smpng/sys/kern/kern_synch.c#62 integrate
.. //depot/projects/smpng/sys/kern/kern_tc.c#27 integrate
.. //depot/projects/smpng/sys/kern/kern_thread.c#50 integrate
.. //depot/projects/smpng/sys/kern/kern_uuid.c#7 integrate
.. //depot/projects/smpng/sys/kern/sched_4bsd.c#21 integrate
.. //depot/projects/smpng/sys/kern/sched_ule.c#24 integrate
.. //depot/projects/smpng/sys/kern/subr_smp.c#28 integrate
.. //depot/projects/smpng/sys/kern/subr_trap.c#60 integrate
.. //depot/projects/smpng/sys/kern/subr_turnstile.c#6 integrate
.. //depot/projects/smpng/sys/kern/subr_witness.c#110 integrate
.. //depot/projects/smpng/sys/kern/sys_generic.c#29 integrate
.. //depot/projects/smpng/sys/kern/sys_pipe.c#40 integrate
.. //depot/projects/smpng/sys/kern/uipc_cow.c#14 integrate
.. //depot/projects/smpng/sys/kern/uipc_sem.c#8 integrate
.. //depot/projects/smpng/sys/kern/uipc_socket.c#45 integrate
.. //depot/projects/smpng/sys/kern/uipc_syscalls.c#44 integrate
.. //depot/projects/smpng/sys/kern/uipc_usrreq.c#31 integrate
.. //depot/projects/smpng/sys/kern/vfs_syscalls.c#67 integrate
.. //depot/projects/smpng/sys/libkern/ffs.c#5 integrate
.. //depot/projects/smpng/sys/libkern/ffsl.c#2 integrate
.. //depot/projects/smpng/sys/libkern/fls.c#2 integrate
.. //depot/projects/smpng/sys/libkern/flsl.c#2 integrate
.. //depot/projects/smpng/sys/modules/Makefile#69 integrate
.. //depot/projects/smpng/sys/modules/awi/Makefile#2 integrate
.. //depot/projects/smpng/sys/modules/firewire/Makefile#4 integrate
.. //depot/projects/smpng/sys/modules/if_ef/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/ncp/Makefile#3 integrate
.. //depot/projects/smpng/sys/modules/netgraph/Makefile#10 integrate
.. //depot/projects/smpng/sys/modules/nwfs/Makefile#4 integrate
.. //depot/projects/smpng/sys/modules/smbfs/Makefile#6 integrate
.. //depot/projects/smpng/sys/modules/syscons/Makefile#3 integrate
.. //depot/projects/smpng/sys/net/if.c#40 integrate
.. //depot/projects/smpng/sys/net/if_atm.h#10 integrate
.. //depot/projects/smpng/sys/net/if_gre.c#13 integrate
.. //depot/projects/smpng/sys/net/if_gre.h#6 integrate
.. //depot/projects/smpng/sys/net/if_media.h#11 integrate
.. //depot/projects/smpng/sys/net/if_ppp.c#24 integrate
.. //depot/projects/smpng/sys/net/if_spppsubr.c#16 integrate
.. //depot/projects/smpng/sys/net/if_vlan_var.h#11 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211.c#6 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_input.c#7 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_ioctl.c#9 integrate
.. //depot/projects/smpng/sys/net80211/ieee80211_var.h#6 integrate
.. //depot/projects/smpng/sys/netgraph/atm/ng_atm.c#7 integrate
.. //depot/projects/smpng/sys/netgraph/atm/ng_atm.h#4 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/drivers/h4/ng_h4.c#4 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/include/ng_btsocket.h#4 integrate
.. //depot/projects/smpng/sys/netgraph/bluetooth/socket/ng_btsocket_hci_raw.c#10 integrate
.. //depot/projects/smpng/sys/netgraph/netgraph.h#7 integrate
.. //depot/projects/smpng/sys/netgraph/ng_base.c#20 integrate
.. //depot/projects/smpng/sys/netgraph/ng_bpf.h#4 integrate
.. //depot/projects/smpng/sys/netgraph/ng_bridge.c#11 integrate
.. //depot/projects/smpng/sys/netgraph/ng_cisco.c#7 integrate
.. //depot/projects/smpng/sys/netgraph/ng_device.c#4 integrate
.. //depot/projects/smpng/sys/netgraph/ng_etf.h#4 integrate
.. //depot/projects/smpng/sys/netgraph/ng_ksocket.c#20 integrate
.. //depot/projects/smpng/sys/netgraph/ng_message.h#7 integrate
.. //depot/projects/smpng/sys/netgraph/ng_parse.c#10 integrate
.. //depot/projects/smpng/sys/netgraph/ng_parse.h#5 integrate
.. //depot/projects/smpng/sys/netgraph/ng_pppoe.c#16 integrate
.. //depot/projects/smpng/sys/netgraph/ng_pppoe.h#7 integrate
.. //depot/projects/smpng/sys/netgraph/ng_rfc1490.c#5 integrate
.. //depot/projects/smpng/sys/netgraph/ng_rfc1490.h#3 integrate
.. //depot/projects/smpng/sys/netgraph/ng_socket.c#19 integrate
.. //depot/projects/smpng/sys/netgraph/ng_source.c#4 integrate
.. //depot/projects/smpng/sys/netgraph/ng_source.h#3 integrate
.. //depot/projects/smpng/sys/netinet/ip_gre.c#10 integrate
.. //depot/projects/smpng/sys/netinet/raw_ip.c#34 integrate
.. //depot/projects/smpng/sys/netinet/tcp_input.c#45 integrate
.. //depot/projects/smpng/sys/netinet/tcp_output.c#19 integrate
.. //depot/projects/smpng/sys/netinet/tcp_syncache.c#25 integrate
.. //depot/projects/smpng/sys/netinet/udp_usrreq.c#36 integrate
.. //depot/projects/smpng/sys/netinet6/nd6.c#18 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec.c#8 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec.h#5 integrate
.. //depot/projects/smpng/sys/netipsec/ipsec_output.c#9 integrate
.. //depot/projects/smpng/sys/netipsec/xform_esp.c#6 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipcomp.c#6 integrate
.. //depot/projects/smpng/sys/netipsec/xform_ipip.c#6 integrate
.. //depot/projects/smpng/sys/netkey/key.c#24 integrate
.. //depot/projects/smpng/sys/pc98/conf/GENERIC#38 integrate
.. //depot/projects/smpng/sys/pc98/conf/NOTES#20 integrate
.. //depot/projects/smpng/sys/pc98/pc98/sio.c#35 integrate
.. //depot/projects/smpng/sys/pci/if_rl.c#44 integrate
.. //depot/projects/smpng/sys/pci/if_sk.c#28 integrate
.. //depot/projects/smpng/sys/powerpc/conf/GENERIC#18 integrate
.. //depot/projects/smpng/sys/powerpc/include/float.h#3 integrate
.. //depot/projects/smpng/sys/powerpc/include/sc_machdep.h#1 branch
.. //depot/projects/smpng/sys/powerpc/ofw/ofw_syscons.c#1 branch
.. //depot/projects/smpng/sys/powerpc/ofw/ofw_syscons.h#1 branch
.. //depot/projects/smpng/sys/powerpc/powermac/ata_macio.c#8 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/clock.c#12 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/machdep.c#47 integrate
.. //depot/projects/smpng/sys/powerpc/powerpc/sc_machdep.c#1 branch
.. //depot/projects/smpng/sys/powerpc/powerpc/trap_subr.S#8 integrate
.. //depot/projects/smpng/sys/powerpc/psim/ata_iobus.c#6 integrate
.. //depot/projects/smpng/sys/rpc/rpcclnt.c#3 integrate
.. //depot/projects/smpng/sys/security/mac_portacl/mac_portacl.c#4 integrate
.. //depot/projects/smpng/sys/sparc64/conf/GENERIC#37 integrate
.. //depot/projects/smpng/sys/sparc64/include/asmacros.h#14 integrate
.. //depot/projects/smpng/sys/sys/_mutex.h#12 integrate
.. //depot/projects/smpng/sys/sys/_task.h#1 branch
.. //depot/projects/smpng/sys/sys/bio.h#17 integrate
.. //depot/projects/smpng/sys/sys/filedesc.h#20 integrate
.. //depot/projects/smpng/sys/sys/jail.h#8 integrate
.. //depot/projects/smpng/sys/sys/libkern.h#12 integrate
.. //depot/projects/smpng/sys/sys/lock.h#29 integrate
.. //depot/projects/smpng/sys/sys/proc.h#109 integrate
.. //depot/projects/smpng/sys/sys/systm.h#47 integrate
.. //depot/projects/smpng/sys/sys/taskqueue.h#7 integrate
.. //depot/projects/smpng/sys/sys/user.h#16 integrate
.. //depot/projects/smpng/sys/ufs/ffs/ffs_vnops.c#24 integrate
.. //depot/projects/smpng/sys/vm/swap_pager.c#39 integrate
.. //depot/projects/smpng/sys/vm/uma_int.h#19 integrate
.. //depot/projects/smpng/sys/vm/vm_contig.c#20 integrate
.. //depot/projects/smpng/sys/vm/vm_extern.h#19 integrate
.. //depot/projects/smpng/sys/vm/vm_object.c#49 integrate
.. //depot/projects/smpng/sys/vm/vm_zeroidle.c#13 integrate
Differences ...
==== //depot/projects/smpng/sys/Makefile#5 (text+ko) ====
@@ -1,9 +1,9 @@
-# $FreeBSD: src/sys/Makefile,v 1.28 2003/06/26 03:52:48 peter Exp $
+# $FreeBSD: src/sys/Makefile,v 1.29 2004/01/17 03:28:27 ru Exp $
# The boot loader
SUBDIR= boot
-# KLD modules build for both a.out and ELF
+# Loadable kernel modules
.if defined(MODULES_WITH_WORLD)
SUBDIR+=modules
.endif
==== //depot/projects/smpng/sys/alpha/alpha/support.s#9 (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/alpha/support.s,v 1.15 2003/07/24 07:49:45 marcel Exp $
+ * $FreeBSD: src/sys/alpha/alpha/support.s,v 1.16 2004/01/19 21:27:10 phk Exp $
*/
/*
@@ -680,8 +680,10 @@
longjmp_botch:
lda a0, longjmp_botchmsg
- mov ra, a1
- CALL(panic)
+ mov 0, a1
+ mov 0, a2
+ mov ra, a3
+ CALL(__panic)
call_pal PAL_bugchk
.data
==== //depot/projects/smpng/sys/alpha/conf/GENERIC#35 (text+ko) ====
@@ -18,7 +18,7 @@
#
# For hardware specific information check HARDWARE.TXT
#
-# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.165 2003/12/08 05:20:34 obrien Exp $
+# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.168 2004/01/24 21:45:25 jeff Exp $
machine alpha
cpu EV4
@@ -45,7 +45,7 @@
options DEC_KN300 # AlphaServer 4100 (Rawhide),
# AlphaServer 1200 (Tincup)
-options SCHED_4BSD #4BSD scheduler
+options SCHED_ULE #ULE scheduler
options INET #InterNETworking
options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
@@ -68,6 +68,7 @@
options SYSVMSG #SYSV-style message queues
options SYSVSEM #SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
+options PFIL_HOOKS # pfil(9) framework
# Debugging for use in -current
options DDB #Enable the kernel debugger
==== //depot/projects/smpng/sys/amd64/amd64/cpu_switch.S#7 (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.144 2003/11/17 08:58:12 peter Exp $
+ * $FreeBSD: src/sys/amd64/amd64/cpu_switch.S,v 1.145 2004/01/23 01:04:28 peter Exp $
*/
#include <machine/asmacros.h>
@@ -243,7 +243,7 @@
pushq %r14
pushq %r15
pushq $sw0_1
- call panic
+ call __panic
sw0_1: .asciz "cpu_throw: no newthread supplied"
badsw2:
@@ -263,7 +263,7 @@
pushq %r14
pushq %r15
pushq $sw0_2
- call panic
+ call __panic
sw0_2: .asciz "cpu_switch: no curthread supplied"
badsw3:
@@ -283,7 +283,7 @@
pushq %r14
pushq %r15
pushq $sw0_3
- call panic
+ call __panic
sw0_3: .asciz "cpu_switch: no newthread supplied"
#endif
==== //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#5 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.231 2003/12/11 02:47:35 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.232 2004/01/25 06:19:37 alc Exp $");
#include "opt_cpu.h"
#include "opt_kstack_pages.h"
@@ -82,7 +82,6 @@
*/
struct cpu_group mp_groups[MAXCPU];
struct cpu_top mp_top;
-struct cpu_top *smp_topology;
/* AP uses this during bootstrap. Do not staticize. */
char *bootSTK;
==== //depot/projects/smpng/sys/amd64/conf/GENERIC#12 (text+ko) ====
@@ -16,7 +16,7 @@
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
-# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.399 2003/11/21 03:19:59 peter Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.401 2004/01/24 21:38:51 jeff Exp $
machine amd64
cpu HAMMER
@@ -28,7 +28,7 @@
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
makeoptions NO_MODULES=not_yet
-options SCHED_4BSD #4BSD scheduler
+options SCHED_ULE #ULE scheduler
options INET #InterNETworking
options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem
@@ -56,6 +56,7 @@
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
+options PFIL_HOOKS # pfil(9) framework
# Debugging for use in -current
options DDB #Enable the kernel debugger
==== //depot/projects/smpng/sys/amd64/include/md_var.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/md_var.h,v 1.69 2003/11/17 08:58:14 peter Exp $
+ * $FreeBSD: src/sys/amd64/include/md_var.h,v 1.70 2004/01/17 13:13:48 phk Exp $
*/
#ifndef _MACHINE_MD_VAR_H_
@@ -47,7 +47,6 @@
extern u_int cpu_id;
extern u_int cpu_procinfo;
extern char cpu_vendor[];
-extern uint16_t *elan_mmcr;
extern char kstack[];
extern char sigcode[];
extern int szsigcode;
==== //depot/projects/smpng/sys/amd64/pci/pci_cfgreg.c#4 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.104 2003/12/06 23:19:47 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/pci/pci_cfgreg.c,v 1.105 2004/01/28 20:46:31 peter Exp $");
#include <sys/param.h> /* XXX trim includes */
#include <sys/systm.h>
@@ -286,7 +286,7 @@
devmax = 32;
outl(CONF1_ADDR_PORT, CONF1_ENABLE_CHK);
- outb(CONF1_ADDR_PORT + 3, 0);
+ DELAY(1);
mode1res = inl(CONF1_ADDR_PORT);
outl(CONF1_ADDR_PORT, oldval1);
==== //depot/projects/smpng/sys/boot/Makefile#12 (text+ko) ====
@@ -1,29 +1,29 @@
-# $FreeBSD: src/sys/boot/Makefile,v 1.19 2003/12/10 09:18:42 grehan Exp $
+# $FreeBSD: src/sys/boot/Makefile,v 1.20 2004/01/27 22:15:03 schweikh Exp $
.if ${MACHINE_ARCH} == "amd64"
.MAKEFLAGS: MACHINE_ARCH=i386 MACHINE=i386 REALLY_AMD64=true
.endif
.if !defined(NOFORTH)
-# Build the add-in FORTH interpreter
+# Build the add-in FORTH interpreter.
SUBDIR+= ficl
.endif
-# Build OpenFirmware library
+# Build OpenFirmware library.
.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64"
SUBDIR+= ofw
.endif
-# Pick the machine-dependant subdir based on the target architecture.
+# Pick the machine-dependent subdir based on the target architecture.
SUBDIR+= ${MACHINE}
# Build ARC / AlphaBIOS executable on the Alpha
-# (this is a WIP (work in progress))
+# (this is a WIP (work in progress)).
#.if ${MACHINE_ARCH} == "alpha"
#SUBDIR+= arc
#.endif
-# Build EFI executable on ia64
+# Build EFI executable on ia64.
.if ${MACHINE_ARCH} == "ia64"
SUBDIR+= efi
.endif
==== //depot/projects/smpng/sys/boot/common/help.common#11 (text+ko) ====
@@ -244,7 +244,7 @@
Set the number of sendfile buffers to be allocated. This
overrides the value determined when the kernel was compiled.
- set kern.vm.kmem.size=<value> VM_KMEM_SIZE
+ set vm.kmem_size=<value> VM_KMEM_SIZE
Sets the size of kernel memory (bytes). This overrides
the value determined when the kernel was compiled.
==== //depot/projects/smpng/sys/boot/common/loader.8#25 (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/boot/common/loader.8,v 1.57 2003/06/29 20:57:55 brueffer Exp $
+.\" $FreeBSD: src/sys/boot/common/loader.8,v 1.58 2004/01/27 15:59:38 des Exp $
.\"
.\" Note: The date here should be updated whenever a non-trivial
.\" change is made to the manual page.
@@ -451,11 +451,6 @@
buffers to be allocated.
Overrides
.Dv NSFBUFS .
-.It Va kern.vm.kmem.size
-Sets the size of kernel memory (bytes).
-This overrides the value determined when the kernel was compiled.
-Modifies
-.Va VM_KMEM_SIZE .
.It Va kern.maxswzone
Limits the amount of KVM to be used to hold swap
meta information, which directly governs the
@@ -499,6 +494,11 @@
or the preset default of 512.
Must be a power of 2.
.El
+.It Va vm.kmem_size
+Sets the size of kernel memory (bytes).
+This overrides the value determined when the kernel was compiled.
+Modifies
+.Va VM_KMEM_SIZE .
.Ss BUILTIN PARSER
When a builtin command is executed, the rest of the line is taken
by it as arguments, and it is processed by a special parser which
==== //depot/projects/smpng/sys/boot/forth/frames.4th#2 (text+ko) ====
@@ -1,6 +1,6 @@
\ Words implementing frame drawing
\ XXX Filled boxes are left as an exercise for the reader... ;-/
-\ $FreeBSD: src/sys/boot/forth/frames.4th,v 1.1 2003/05/30 09:29:23 scottl Exp $
+\ $FreeBSD: src/sys/boot/forth/frames.4th,v 1.2 2004/01/18 04:13:27 nyan Exp $
marker task-frames.4th
@@ -12,27 +12,49 @@
variable rb_el
variable fill
-\ Single frames
-196 constant sh_el
-179 constant sv_el
-218 constant slt_el
-192 constant slb_el
-191 constant srt_el
-217 constant srb_el
-\ Double frames
-205 constant dh_el
-186 constant dv_el
-201 constant dlt_el
-200 constant dlb_el
-187 constant drt_el
-188 constant drb_el
-\ Fillings
-0 constant fill_none
-32 constant fill_blank
-176 constant fill_dark
-177 constant fill_med
-178 constant fill_bright
-
+s" arch-pc98" environment? [if]
+ \ Single frames
+ 149 constant sh_el
+ 150 constant sv_el
+ 152 constant slt_el
+ 154 constant slb_el
+ 153 constant srt_el
+ 155 constant srb_el
+ \ Double frames
+ 149 constant dh_el
+ 150 constant dv_el
+ 152 constant dlt_el
+ 154 constant dlb_el
+ 153 constant drt_el
+ 155 constant drb_el
+ \ Fillings
+ 0 constant fill_none
+ 32 constant fill_blank
+ 135 constant fill_dark
+ 135 constant fill_med
+ 135 constant fill_bright
+[else]
+ \ Single frames
+ 196 constant sh_el
+ 179 constant sv_el
+ 218 constant slt_el
+ 192 constant slb_el
+ 191 constant srt_el
+ 217 constant srb_el
+ \ Double frames
+ 205 constant dh_el
+ 186 constant dv_el
+ 201 constant dlt_el
+ 200 constant dlb_el
+ 187 constant drt_el
+ 188 constant drb_el
+ \ Fillings
+ 0 constant fill_none
+ 32 constant fill_blank
+ 176 constant fill_dark
+ 177 constant fill_med
+ 178 constant fill_bright
+[then]
: hline ( len x y -- ) \ Draw horizontal single line
at-xy \ move cursor
==== //depot/projects/smpng/sys/boot/forth/loader.conf#20 (text+ko) ====
@@ -6,7 +6,7 @@
#
# All arguments must be in double quotes.
#
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.72 2003/07/01 01:03:32 brueffer Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.73 2004/01/27 15:59:38 des Exp $
##############################################################
### Basic configuration options ############################
@@ -96,10 +96,10 @@
#kern.ipc.nmbclusters="" # Set the number of mbuf clusters
#kern.ipc.nmbufs="" # Set the maximum number of mbufs
#kern.ipc.nsfbufs="" # Set the number of sendfile(2) bufs
-#kern.vm.kmem.size="" # Sets the size of kernel memory (bytes)
#net.inet.tcp.tcbhashsize="" # Set the value of TCBHASHSIZE
#vfs.root.mountfrom="" # Specify root partition in a way the
# kernel understands
+#vm.kmem_size="" # Sets the size of kernel memory (bytes)
#debug.ktr.cpumask="0xf" # Bitmask of CPUs to enable KTR on
#debug.ktr.mask="0x1200" # Bitmask of KTR events to enable
#debug.ktr.verbose="1" # Enable console dump of KTR events
==== //depot/projects/smpng/sys/boot/i386/libi386/biosdisk.c#9 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.40 2003/08/25 23:28:31 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.41 2004/01/21 23:22:29 jhb Exp $");
/*
* BIOS disk device handling.
@@ -867,7 +867,7 @@
*/
x = min(FLOPPY_BOUNCEBUF, (unsigned)blks);
bbuf = malloc(x * 2 * BIOSDISK_SECSIZE);
- if (((u_int32_t)VTOP(bbuf) & 0xffff0000) == ((u_int32_t)VTOP(dest + x * BIOSDISK_SECSIZE) & 0xffff0000)) {
+ if (((u_int32_t)VTOP(bbuf) & 0xffff0000) == ((u_int32_t)VTOP(bbuf + x * BIOSDISK_SECSIZE) & 0xffff0000)) {
breg = bbuf;
} else {
breg = bbuf + x * BIOSDISK_SECSIZE;
@@ -1000,7 +1000,7 @@
x = min(FLOPPY_BOUNCEBUF, (unsigned)blks);
bbuf = malloc(x * 2 * BIOSDISK_SECSIZE);
- if (((u_int32_t)VTOP(bbuf) & 0xffff0000) == ((u_int32_t)VTOP(dest + x * BIOSDISK_SECSIZE) & 0xffff0000)) {
+ if (((u_int32_t)VTOP(bbuf) & 0xffff0000) == ((u_int32_t)VTOP(bbuf + x * BIOSDISK_SECSIZE) & 0xffff0000)) {
breg = bbuf;
} else {
breg = bbuf + x * BIOSDISK_SECSIZE;
==== //depot/projects/smpng/sys/boot/pc98/btx/btx/btx.s#3 (text+ko) ====
@@ -13,7 +13,7 @@
# purpose.
#
-# $FreeBSD: src/sys/boot/pc98/btx/btx/btx.s,v 1.13 2001/11/17 13:58:04 nyan Exp $
+# $FreeBSD: src/sys/boot/pc98/btx/btx/btx.s,v 1.14 2004/01/28 04:15:31 nyan Exp $
#
# Memory layout.
@@ -323,7 +323,7 @@
exit.4: jmp exit.4
.else
movw $0x1234, BDA_BOOT # Do a warm boot
- ljmp $0xffff,$0x0 # reboot the machine
+ ljmp $0xf000,$0xfff0 # reboot the machine
.endif
#
# Set IRQ offsets by reprogramming 8259A PICs.
==== //depot/projects/smpng/sys/boot/pc98/libpc98/vidconsole.c#5 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/vidconsole.c,v 1.11 2003/09/08 09:11:20 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/pc98/libpc98/vidconsole.c,v 1.12 2004/01/18 04:10:45 nyan Exp $");
#include <stand.h>
#include <bootstrap.h>
@@ -422,7 +422,7 @@
{
#ifdef PC98
- *crtat = (c == 0x5c ? 0xfc : c);
+ *crtat = (c == 0x5c ? 0xfc : (c & 0xff));
*(crtat + 0x1000) = at2pc98(fgcol, bgcol);
#else
v86.ctl = 0;
==== //depot/projects/smpng/sys/cam/scsi/scsi_sa.c#18 (text+ko) ====
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.97 2003/09/13 02:01:56 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_sa.c,v 1.98 2004/01/18 00:17:14 johan Exp $");
#include <sys/param.h>
#include <sys/queue.h>
@@ -2403,7 +2403,7 @@
* Grotesque as it seems, the few times
* I've actually seen a non-zero resid,
* the tape drive actually lied and had
- * writtent all the data!.
+ * written all the data!.
*/
csio->resid = 0;
}
==== //depot/projects/smpng/sys/compat/linux/linux_util.c#10 (text+ko) ====
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/linux/linux_util.c,v 1.23 2003/06/10 21:27:40 obrien Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/linux/linux_util.c,v 1.24 2004/01/14 22:38:03 truckman Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -96,8 +96,6 @@
{
struct nameidata nd;
struct nameidata ndroot;
- struct vattr vat;
- struct vattr vatroot;
int error;
const char *prefix;
char *ptr, *buf, *cp;
@@ -169,17 +167,7 @@
goto keeporig;
}
- if ((error = VOP_GETATTR(nd.ni_vp, &vat, td->td_ucred, td)) != 0) {
- goto bad;
- }
-
- if ((error = VOP_GETATTR(ndroot.ni_vp, &vatroot, td->td_ucred, td))
- != 0) {
- goto bad;
- }
-
- if (vat.va_fsid == vatroot.va_fsid &&
- vat.va_fileid == vatroot.va_fileid) {
+ if (nd.ni_vp == ndroot.ni_vp) {
error = ENOENT;
goto bad;
}
==== //depot/projects/smpng/sys/compat/ndis/hal_var.h#2 (text+ko) ====
@@ -29,12 +29,20 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/ndis/hal_var.h,v 1.1 2003/12/11 22:34:37 wpaul Exp $
+ * $FreeBSD: src/sys/compat/ndis/hal_var.h,v 1.2 2004/01/15 21:31:48 wpaul Exp $
*/
#ifndef _HAL_VAR_H_
#define _HAL_VAR_H_
+#ifdef __amd64__
+#define NDIS_BUS_SPACE_IO AMD64_BUS_SPACE_IO
+#define NDIS_BUS_SPACE_MEM AMD64_BUS_SPACE_MEM
+#else
+#define NDIS_BUS_SPACE_IO I386_BUS_SPACE_IO
+#define NDIS_BUS_SPACE_MEM I386_BUS_SPACE_MEM
+#endif
+
extern image_patch_table hal_functbl[];
#endif /* _HAL_VAR_H_ */
==== //depot/projects/smpng/sys/compat/ndis/kern_ndis.c#6 (text+ko) ====
@@ -31,23 +31,25 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.28 2004/01/12 21:40:05 wpaul Exp $");
+__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.34 2004/01/26 21:21:53 wpaul Exp $");
#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/unistd.h>
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/callout.h>
#include <sys/socket.h>
#include <sys/queue.h>
#include <sys/sysctl.h>
-#include <sys/systm.h>
+#include <sys/proc.h>
#include <sys/malloc.h>
#include <sys/lock.h>
#include <sys/mutex.h>
#include <sys/conf.h>
-#include <sys/taskqueue.h>
#include <sys/kernel.h>
+#include <sys/kthread.h>
#include <machine/bus.h>
#include <machine/resource.h>
#include <sys/bus.h>
@@ -75,7 +77,6 @@
#include <compat/ndis/cfg_var.h>
#include <dev/if_ndis/if_ndisvar.h>
-#define __stdcall __attribute__((__stdcall__))
#define NDIS_DUMMY_PATH "\\\\some\\bogus\\path"
__stdcall static void ndis_status_func(ndis_handle, ndis_status,
@@ -86,7 +87,37 @@
__stdcall static void ndis_resetdone_func(ndis_handle, ndis_status, uint8_t);
__stdcall static void ndis_sendrsrcavail_func(ndis_handle);
+struct nd_head ndis_devhead;
+
+struct ndis_req {
+ void (*nr_func)(void *);
+ void *nr_arg;
+ int nr_exit;
+ STAILQ_ENTRY(ndis_req) link;
+};
+
+struct ndisproc {
+ struct ndisqhead *np_q;
+ struct proc *np_p;
+};
+
+static int ndis_create_kthreads(void);
+static void ndis_destroy_kthreads(void);
+static void ndis_stop_thread(int);
+static int ndis_enlarge_thrqueue(int);
+static int ndis_shrink_thrqueue(int);
+static void ndis_runq(void *);
+
+extern struct mtx_pool *ndis_mtxpool;
static uma_zone_t ndis_packet_zone, ndis_buffer_zone;
+struct mtx *ndis_thr_mtx;
+static STAILQ_HEAD(ndisqhead, ndis_req) ndis_ttodo;
+struct ndisqhead ndis_itodo;
+struct ndisqhead ndis_free;
+static int ndis_jobs = 32;
+
+static struct ndisproc ndis_tproc;
+static struct ndisproc ndis_iproc;
/*
* This allows us to export our symbols to other modules.
@@ -112,9 +143,29 @@
ndis_buffer_zone = uma_zcreate("NDIS buffer",
sizeof(ndis_buffer), NULL, NULL, NULL,
NULL, UMA_ALIGN_PTR, 0);
+
+ ndis_create_kthreads();
+
+ TAILQ_INIT(&ndis_devhead);
+
break;
+ case MOD_SHUTDOWN:
+ /* stop kthreads */
+ ndis_destroy_kthreads();
+ if (TAILQ_FIRST(&ndis_devhead) != NULL) {
+ /* Shut down subsystems */
+ ndis_libfini();
+ ntoskrnl_libfini();
+
+ /* Remove zones */
+ uma_zdestroy(ndis_packet_zone);
+ uma_zdestroy(ndis_buffer_zone);
+ }
+ break;
case MOD_UNLOAD:
- case MOD_SHUTDOWN:
+ /* stop kthreads */
+ ndis_destroy_kthreads();
+
/* Shut down subsystems */
ndis_libfini();
ntoskrnl_libfini();
@@ -133,7 +184,268 @@
DEV_MODULE(ndisapi, ndis_modevent, NULL);
MODULE_VERSION(ndisapi, 1);
+/*
+ * We create two kthreads for the NDIS subsystem. One of them is a task
+ * queue for performing various odd jobs. The other is an swi thread
+ * reserved exclusively for running interrupt handlers. The reason we
+ * have our own task queue is that there are some cases where we may
+ * need to sleep for a significant amount of time, and if we were to
+ * use one of the taskqueue threads, we might delay the processing
+ * of other pending tasks which might need to run right away. We have
+ * a separate swi thread because we don't want our interrupt handling
+ * to be delayed either.
+ *
+ * By default there are 32 jobs available to start, and another 8
+ * are added to the free list each time a new device is created.
+ */
+
+static void
+ndis_runq(arg)
+ void *arg;
+{
+ struct ndis_req *r = NULL, *die = NULL;
+ struct ndisproc *p;
+
+ p = arg;
+
+ while (1) {
+ kthread_suspend(p->np_p, 0);
+
+ /* Look for any jobs on the work queue. */
+
+ mtx_pool_lock(ndis_mtxpool, ndis_thr_mtx);
+ while(STAILQ_FIRST(p->np_q) != NULL) {
+ r = STAILQ_FIRST(p->np_q);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list