Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2004 13:26:17 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 46080 for review
Message-ID:  <200401282126.i0SLQH6x079663@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=46080

Change 46080 by jhb@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) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401282126.i0SLQH6x079663>