From owner-p4-projects@FreeBSD.ORG Wed Jan 28 13:26:31 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 169D116A4D0; Wed, 28 Jan 2004 13:26:31 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E31F116A4CE for ; Wed, 28 Jan 2004 13:26:30 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A529443D1D for ; Wed, 28 Jan 2004 13:26:26 -0800 (PST) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i0SLQQ0B079666 for ; Wed, 28 Jan 2004 13:26:26 -0800 (PST) (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i0SLQH6x079663 for perforce@freebsd.org; Wed, 28 Jan 2004 13:26:17 -0800 (PST) (envelope-from jhb@freebsd.org) Date: Wed, 28 Jan 2004 13:26:17 -0800 (PST) Message-Id: <200401282126.i0SLQH6x079663@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 46080 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Jan 2004 21:26:31 -0000 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 @@ -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 -__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 -__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 /* XXX trim includes */ #include @@ -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= VM_KMEM_SIZE + set vm.kmem_size= 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 -__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 -__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 #include @@ -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 -__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 #include @@ -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 -__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 #include @@ -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 -__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 +#include +#include #include #include #include #include #include #include -#include +#include #include #include #include #include -#include #include +#include #include #include #include @@ -75,7 +77,6 @@ #include #include -#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) <<<