PERFORCE change 122716 for review

Marko Zec zec at FreeBSD.org
Mon Jul 2 13:08:49 UTC 2007


http://perforce.freebsd.org/chv.cgi?CH=122716

Change 122716 by zec at zec_tca51 on 2007/07/02 13:08:09

	IFC @ 112714

Affected files ...

.. //depot/projects/vimage/src/sys/Makefile#4 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#8 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/GENERIC#8 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/NOTES#4 integrate
.. //depot/projects/vimage/src/sys/boot/forth/loader.conf#6 integrate
.. //depot/projects/vimage/src/sys/cam/cam_xpt.c#9 integrate
.. //depot/projects/vimage/src/sys/cam/scsi/scsi_da.c#10 integrate
.. //depot/projects/vimage/src/sys/conf/NOTES#10 integrate
.. //depot/projects/vimage/src/sys/conf/files#12 integrate
.. //depot/projects/vimage/src/sys/conf/options#12 integrate
.. //depot/projects/vimage/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpiio.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpivar.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-all.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-chipset.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-disk.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-pci.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-usb.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/ipw/if_ipw.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_pci.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/iwi/if_iwi.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/nxge/if_nxge.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/if_nxge.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/build-version.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/version.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xge-debug.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xge-defs.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xge-list.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xge-os-pal.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xge-os-template.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xge-queue.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-channel.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-config.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-device.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-driver.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-event.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-fifo.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-mgmt.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-mgmtaux.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-mm.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-regs.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-ring.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-stats.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal-types.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/include/xgehal.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xge-osdep.h#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xge-queue.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-channel-fp.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-channel.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-config.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-device-fp.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-device.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-driver.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-fifo-fp.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-fifo.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-mgmt.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-mgmtaux.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-mm.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-ring-fp.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-ring.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgehal/xgehal-stats.c#1 branch
.. //depot/projects/vimage/src/sys/dev/nxge/xgell-version.h#1 branch
.. //depot/projects/vimage/src/sys/dev/ral/rt2560.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2661.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/rp/rp.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac_private.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pcm/ac97_patch.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/sound/usb/uaudio.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/sym/sym_hipd.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ehci.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ehci_pci.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/hid.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_aue.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_axe.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_axereg.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_cdce.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_cue.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_kue.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_rue.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_rum.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_udav.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/if_ural.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ohci.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ohci_pci.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uark.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ubsa.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ubser.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ucom.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ucycom.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/udbp.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ufm.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ufoma.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uftdi.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ugen.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uhci_pci.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uhid.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uhub.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uipaq.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ukbd.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ulpt.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/umass.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/umodem.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/ums.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uplcom.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/urio.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_mem.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_port.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_quirks.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_quirks.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_subr.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdevs#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdi.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdi.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdi_util.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uscanner.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uvisor.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/usb/uvscom.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/wi/if_wi.c#6 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_fifoops.c#2 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_fifoops.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_subr.c#2 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_uma.c#2 delete
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_uma.h#2 delete
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vfsops.c#2 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vnops.c#2 integrate
.. //depot/projects/vimage/src/sys/fs/tmpfs/tmpfs_vnops.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/umapfs/umap.h#2 delete
.. //depot/projects/vimage/src/sys/fs/umapfs/umap_subr.c#3 delete
.. //depot/projects/vimage/src/sys/fs/umapfs/umap_vfsops.c#3 delete
.. //depot/projects/vimage/src/sys/fs/umapfs/umap_vnops.c#4 delete
.. //depot/projects/vimage/src/sys/i386/acpica/acpi_machdep.c#3 integrate
.. //depot/projects/vimage/src/sys/i386/conf/GENERIC#10 integrate
.. //depot/projects/vimage/src/sys/i386/conf/NOTES#9 integrate
.. //depot/projects/vimage/src/sys/i386/i386/pmap.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/Make.tags.inc#4 integrate
.. //depot/projects/vimage/src/sys/kern/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/kern/kern_conf.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/kern_malloc.c#5 integrate
.. //depot/projects/vimage/src/sys/kern/kern_rwlock.c#6 integrate
.. //depot/projects/vimage/src/sys/kern/kern_timeout.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/subr_unit.c#2 integrate
.. //depot/projects/vimage/src/sys/kern/tty.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_syscalls.c#11 integrate
.. //depot/projects/vimage/src/sys/modules/Makefile#8 integrate
.. //depot/projects/vimage/src/sys/modules/acpi/acpi_video/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/ath_rate_amrr/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/ath_rate_onoe/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/i2c/controllers/alpm/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/i2c/controllers/viapm/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/nxge/Makefile#1 branch
.. //depot/projects/vimage/src/sys/modules/slhci/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/tmpfs/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/umapfs/Makefile#2 delete
.. //depot/projects/vimage/src/sys/net/bridgestp.c#5 integrate
.. //depot/projects/vimage/src/sys/net/if_gre.c#4 integrate
.. //depot/projects/vimage/src/sys/net80211/_ieee80211.h#6 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_freebsd.h#5 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_input.c#6 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_radiotap.h#4 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_scan.c#2 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_scan.h#2 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_scan_sta.c#2 integrate
.. //depot/projects/vimage/src/sys/netatalk/aarp.h#3 integrate
.. //depot/projects/vimage/src/sys/netatalk/ddp.h#3 integrate
.. //depot/projects/vimage/src/sys/netatm/atm_cm.c#2 integrate
.. //depot/projects/vimage/src/sys/netatm/ipatm/ipatm_event.c#2 integrate
.. //depot/projects/vimage/src/sys/netatm/spans/spans_proto.c#2 integrate
.. //depot/projects/vimage/src/sys/netatm/uni/sscf_uni_lower.c#2 integrate
.. //depot/projects/vimage/src/sys/netatm/uni/uniarp.c#2 integrate
.. //depot/projects/vimage/src/sys/netatm/uni/uniarp_timer.c#2 integrate
.. //depot/projects/vimage/src/sys/netatm/uni/unisig_decode.h#2 integrate
.. //depot/projects/vimage/src/sys/netatm/uni/unisig_proto.c#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#3 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#3 integrate
.. //depot/projects/vimage/src/sys/netgraph/bluetooth/socket/ng_btsocket_rfcomm.c#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_parse.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.h#9 integrate
.. //depot/projects/vimage/src/sys/netinet/in_proto.c#5 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_fw2.c#16 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_icmp.c#6 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_input.c#14 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#3 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_output.c#9 integrate
.. //depot/projects/vimage/src/sys/netinet/raw_ip.c#11 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.h#7 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_input.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_os_bsd.h#10 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_pcb.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_uio.h#10 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_usrreq.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_input.c#14 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_output.c#11 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#19 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_syncache.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/udp_usrreq.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet6/ah.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ah6.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ah_aesxcbcmac.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ah_aesxcbcmac.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ah_core.c#3 delete
.. //depot/projects/vimage/src/sys/netinet6/ah_input.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ah_output.c#3 delete
.. //depot/projects/vimage/src/sys/netinet6/esp.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp6.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_aesctr.c#3 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_aesctr.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_camellia.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_camellia.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_core.c#3 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_input.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_rijndael.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/esp_rijndael.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/icmp6.c#10 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6.h#3 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_pcb.c#10 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6_proto.c#7 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_forward.c#5 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_input.c#11 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.c#1 branch
.. //depot/projects/vimage/src/sys/netinet6/ip6_ipsec.h#1 branch
.. //depot/projects/vimage/src/sys/netinet6/ip6_output.c#7 integrate
.. //depot/projects/vimage/src/sys/netinet6/ipcomp.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ipcomp6.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ipcomp_core.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ipcomp_input.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ipcomp_output.c#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ipsec.c#4 delete
.. //depot/projects/vimage/src/sys/netinet6/ipsec.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/ipsec6.h#2 delete
.. //depot/projects/vimage/src/sys/netinet6/nd6.c#13 integrate
.. //depot/projects/vimage/src/sys/netinet6/nd6_nbr.c#7 integrate
.. //depot/projects/vimage/src/sys/netinet6/raw_ip6.c#10 integrate
.. //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet6/udp6_output.c#6 integrate
.. //depot/projects/vimage/src/sys/netinet6/udp6_usrreq.c#10 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec.c#5 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec.h#2 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec6.h#2 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec_mbuf.c#2 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec_output.c#3 integrate
.. //depot/projects/vimage/src/sys/netipsec/key.c#3 integrate
.. //depot/projects/vimage/src/sys/netipsec/key_debug.c#2 integrate
.. //depot/projects/vimage/src/sys/netipsec/keysock.c#2 integrate
.. //depot/projects/vimage/src/sys/netipsec/xform_ah.c#2 integrate
.. //depot/projects/vimage/src/sys/netkey/key.c#2 delete
.. //depot/projects/vimage/src/sys/netkey/key.h#2 delete
.. //depot/projects/vimage/src/sys/netkey/key_debug.c#2 delete
.. //depot/projects/vimage/src/sys/netkey/key_debug.h#2 delete
.. //depot/projects/vimage/src/sys/netkey/key_var.h#2 delete
.. //depot/projects/vimage/src/sys/netkey/keydb.c#2 delete
.. //depot/projects/vimage/src/sys/netkey/keydb.h#2 delete
.. //depot/projects/vimage/src/sys/netkey/keysock.c#2 delete
.. //depot/projects/vimage/src/sys/netkey/keysock.h#2 delete
.. //depot/projects/vimage/src/sys/powerpc/powerpc/busdma_machdep.c#3 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit.c#6 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit.h#4 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_arg.c#6 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_bsm.c#4 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_bsm_token.c#5 integrate
.. //depot/projects/vimage/src/sys/security/audit/audit_syscalls.c#7 integrate
.. //depot/projects/vimage/src/sys/security/mac/mac_audit.c#2 integrate
.. //depot/projects/vimage/src/sys/security/mac/mac_framework.h#5 integrate
.. //depot/projects/vimage/src/sys/security/mac/mac_policy.h#5 integrate
.. //depot/projects/vimage/src/sys/security/mac_stub/mac_stub.c#6 integrate
.. //depot/projects/vimage/src/sys/security/mac_test/mac_test.c#5 integrate
.. //depot/projects/vimage/src/sys/sys/_rwlock.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/rwlock.h#4 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_softdep.c#5 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/dir.h#2 integrate
.. //depot/projects/vimage/src/sys/ufs/ufs/ufs_inode.c#2 integrate
.. //depot/projects/vimage/src/sys/vm/swap_pager.c#7 integrate
.. //depot/projects/vimage/src/sys/vm/vm_pageout.c#6 integrate

Differences ...

==== //depot/projects/vimage/src/sys/Makefile#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/Makefile,v 1.42 2007/04/14 16:29:15 maxim Exp $
+# $FreeBSD: src/sys/Makefile,v 1.43 2007/07/01 11:38:26 gnn Exp $
 
 .include <bsd.own.mk>
 
@@ -10,7 +10,7 @@
 # Directories to include in cscope name file and TAGS.
 CSCOPEDIRS=	bsm cam coda compat conf contrib crypto ddb dev fs geom gnu \
 		i4b isa kern libkern modules net net80211 netatalk netatm \
-		netgraph netinet netinet6 netipx netkey netnatm netncp \
+		netgraph netinet netinet6 netipx netnatm netncp \
 		netsmb nfs nfsclient nfs4client rpc pccard pci security sys \
 		ufs vm ${ARCHDIR}
 

==== //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#8 (text+ko) ====

@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.588 2007/06/17 04:27:45 mjacob Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.589 2007/07/01 07:08:25 alc Exp $");
 
 /*
  *	Manages physical address maps.
@@ -210,7 +210,8 @@
     vm_page_t m, vm_prot_t prot, vm_page_t mpte);
 static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq,
 		vm_offset_t sva, pd_entry_t ptepde, vm_page_t *free);
-static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde);
+static void pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde,
+    vm_page_t *free);
 static void pmap_remove_entry(struct pmap *pmap, vm_page_t m,
 		vm_offset_t va);
 static void pmap_insert_entry(pmap_t pmap, vm_offset_t va, vm_page_t m);
@@ -1895,10 +1896,9 @@
  * Remove a single page from a process address space
  */
 static void
-pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde)
+pmap_remove_page(pmap_t pmap, vm_offset_t va, pd_entry_t *pde, vm_page_t *free)
 {
 	pt_entry_t *pte;
-	vm_page_t free = NULL;
 
 	PMAP_LOCK_ASSERT(pmap, MA_OWNED);
 	if ((*pde & PG_V) == 0)
@@ -1906,9 +1906,8 @@
 	pte = pmap_pde_to_pte(pde, va);
 	if ((*pte & PG_V) == 0)
 		return;
-	pmap_remove_pte(pmap, pte, va, *pde, &free);
+	pmap_remove_pte(pmap, pte, va, *pde, free);
 	pmap_invalidate_page(pmap, va);
-	pmap_free_zero_pages(free);
 }
 
 /*
@@ -1947,7 +1946,7 @@
 	if (sva + PAGE_SIZE == eva) {
 		pde = pmap_pde(pmap, sva);
 		if (pde && (*pde & PG_PS) == 0) {
-			pmap_remove_page(pmap, sva, pde);
+			pmap_remove_page(pmap, sva, pde, &free);
 			goto out;
 		}
 	}
@@ -2018,12 +2017,11 @@
 		}
 	}
 out:
-	if (anyvalid) {
+	if (anyvalid)
 		pmap_invalidate_all(pmap);
-		pmap_free_zero_pages(free);
-	}
 	vm_page_unlock_queues();	
 	PMAP_UNLOCK(pmap);
+	pmap_free_zero_pages(free);
 }
 
 /*
@@ -3003,9 +3001,9 @@
 		}
 	}
 	pmap_invalidate_all(pmap);
-	pmap_free_zero_pages(free);
 	vm_page_unlock_queues();
 	PMAP_UNLOCK(pmap);
+	pmap_free_zero_pages(free);
 }
 
 /*

==== //depot/projects/vimage/src/sys/amd64/conf/GENERIC#8 (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.482 2007/06/14 17:14:25 delphij Exp $
+# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.483 2007/07/01 21:47:45 njl Exp $
 
 cpu		HAMMER
 ident		GENERIC
@@ -75,6 +75,9 @@
 # Make an SMP-capable kernel by default
 options 	SMP			# Symmetric MultiProcessor Kernel
 
+# CPU frequency control
+device		cpufreq
+
 # Bus support.
 device		acpi
 device		pci

==== //depot/projects/vimage/src/sys/amd64/conf/NOTES#4 (text+ko) ====

@@ -4,7 +4,7 @@
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.
 #
-# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.65 2007/05/09 15:55:45 scottl Exp $
+# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.67 2007/07/01 22:19:20 njl Exp $
 #
 
 #

==== //depot/projects/vimage/src/sys/boot/forth/loader.conf#6 (text+ko) ====

@@ -6,7 +6,7 @@
 #
 # All arguments must be in double quotes.
 #
-# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.120 2007/04/09 22:09:09 pjd Exp $
+# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.121 2007/06/25 05:06:55 rafan Exp $
 
 ##############################################################
 ###  Basic configuration options  ############################
@@ -135,7 +135,6 @@
 portalfs_load="NO"		# Portal filesystem
 procfs_load="NO"		# Process filesystem
 reiserfs_load="NO"		# ReiserFS
-#umapfs_load="NO"		# User-id map filesystem
 unionfs_load="NO"		# Union filesystem
 xfs_load="NO"   		# XFS
 zfs_load="NO"   		# ZFS

==== //depot/projects/vimage/src/sys/cam/cam_xpt.c#9 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.189 2007/06/17 05:55:53 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.190 2007/06/30 14:58:56 imp Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -620,6 +620,18 @@
 		CAM_QUIRK_NOLUNS, /*mintags*/0, /*maxtags*/0
 	},
 	{
+		/*
+		 * Western Digital My Book 250GB (USB)
+		 * hangs upon serial number probing.
+		 * PR: 107495
+		 */
+		{
+			T_DIRECT, SIP_MEDIA_FIXED, "WD",
+			"2500JB External", "*"
+		},
+		CAM_QUIRK_NOSERIAL, /*mintags*/0, /*maxtags*/0
+	},
+	{
 		/* Default tagged queuing parameters for all devices */
 		{
 		  T_ANY, SIP_MEDIA_REMOVABLE|SIP_MEDIA_FIXED,

==== //depot/projects/vimage/src/sys/cam/scsi/scsi_da.c#10 (text+ko) ====

@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.215 2007/06/16 18:22:19 scottl Exp $");
+__FBSDID("$FreeBSD: src/sys/cam/scsi/scsi_da.c,v 1.224 2007/07/01 17:42:07 imp Exp $");
 
 #include <sys/param.h>
 
@@ -457,6 +457,14 @@
 	},
 	{
 		/*
+		 * iRiver U10 MP3 player
+		 * PR: usb/92306
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "iriver", "U10*",
+		"*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
 		 * X-Micro Flash Disk
 		 * PR: usb/96901
 		 */
@@ -471,6 +479,62 @@
 		{T_DIRECT, SIP_MEDIA_REMOVABLE, "EM732X", "MP3 Player*",
 		"1.0"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
 	},
+	{
+		/*
+		 * Denver MP3 player
+		 * PR: usb/107101
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "DENVER", "MP3 PLAYER",
+		 "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
+		 * Philips USB Key Audio KEY013
+		 * PR: usb/68412
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "PHILIPS", "Key*", "*"},
+		/*quirks*/ DA_Q_NO_SYNC_CACHE | DA_Q_NO_PREVENT
+	},
+	{
+		/*
+		 * JNC MP3 Player
+		 * PR: usb/94439
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "JNC*" , "MP3 Player*",
+		 "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
+		 * SAMSUNG MP0402H
+		 * PR: usb/108427
+		 */
+		{T_DIRECT, SIP_MEDIA_FIXED, "SAMSUNG", "MP0402H", "*"},
+		/*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
+		 * I/O Magic USB flash - Giga Bank
+		 * PR: usb/108810
+		 */
+		{T_DIRECT, SIP_MEDIA_FIXED, "GS-Magic", "stor*", "*"},
+		/*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
+		 * JoyFly 128mb USB Flash Drive
+		 * PR: 96133
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "USB 2.0", "Flash Disk*",
+		 "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
+	{
+		/*
+		 * ChipsBnk usb stick
+		 * PR: 103702
+		 */
+		{T_DIRECT, SIP_MEDIA_REMOVABLE, "ChipsBnk", "USB*",
+		 "*"}, /*quirks*/ DA_Q_NO_SYNC_CACHE
+	},
 };
 
 static	disk_strategy_t	dastrategy;

==== //depot/projects/vimage/src/sys/conf/NOTES#10 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/NOTES,v 1.1434 2007/06/16 04:57:03 alc Exp $
+# $FreeBSD: src/sys/conf/NOTES,v 1.1439 2007/07/01 11:38:26 gnn Exp $
 #
 # NOTES -- Lines that can be cut/pasted into kernel and hints configs.
 #
@@ -495,9 +495,9 @@
 #
 options 	INET			#Internet communications protocols
 options 	INET6			#IPv6 communications protocols
-options 	IPSEC			#IP security
-options 	IPSEC_ESP		#IP security (crypto; define w/ IPSEC)
-options 	IPSEC_DEBUG		#debug for IP security
+#options 	IPSEC			#IP security
+#options 	IPSEC_ESP		#IP security (crypto; define w/ IPSEC)
+#options 	IPSEC_DEBUG		#debug for IP security
 #
 # Set IPSEC_FILTERGIF to force packets coming through a gif tunnel
 # to be processed by any configured packet filtering (ipfw, ipf).
@@ -509,7 +509,7 @@
 #
 #options 	IPSEC_FILTERGIF		#filter ipsec packets from a tunnel
 
-#options 	FAST_IPSEC		#new IPsec (cannot define w/ IPSEC)
+options 	FAST_IPSEC		#new IPsec (cannot define w/ IPSEC)
 
 options 	IPX			#IPX/SPX communications protocols
 
@@ -938,10 +938,12 @@
 # currently be demand-loaded.)  Some people still prefer to statically
 # compile other filesystems as well.
 #
-# NB: The NULL, PORTAL, UMAP and UNION filesystems are known to be
-# buggy, and WILL panic your system if you attempt to do anything with
-# them.  They are included here as an incentive for some enterprising
-# soul to sit down and fix them.
+# NB: The PORTAL filesystem is known to be buggy, and WILL panic your
+# system if you attempt to do anything with it.  It is included here
+# as an incentive for some enterprising soul to sit down and fix it.
+# The UNION filesystem was known to be buggy in the past.  It is now
+# being actively maintained, although there are still some issues being
+# resolved.
 #
 
 # One of these is mandatory:
@@ -964,8 +966,6 @@
 options 	PSEUDOFS_TRACE		#Debugging support for PSEUDOFS
 options 	SMBFS			#SMB/CIFS filesystem
 options 	UDF			#Universal Disk Format
-# Broken (seriously (functionally) broken):
-#options 	UMAPFS			#UID map filesystem
 options 	UNIONFS			#Union filesystem
 # The xFS_ROOT options REQUIRE the associated ``options xFS''
 options 	NFS_ROOT		#NFS usable as root device
@@ -1905,6 +1905,7 @@
 # PCI Ethernet NICs.
 device		de		# DEC/Intel DC21x4x (``Tulip'')
 device		le		# AMD Am7900 LANCE and Am79C9xx PCnet
+device		nxge		# Neterion Xframe 10GbE Server/Storage Adapter
 device		txp		# 3Com 3cR990 (``Typhoon'')
 device		vx		# 3Com 3c590, 3c595 (``Vortex'')
 

==== //depot/projects/vimage/src/sys/conf/files#12 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/files,v 1.1222 2007/06/16 04:57:04 alc Exp $
+# $FreeBSD: src/sys/conf/files,v 1.1227 2007/07/01 12:42:37 gnn Exp $
 #
 # The long compile-with and dependency lines are required because of
 # limitations in config: backslash-newline doesn't work in strings, and
@@ -811,6 +811,17 @@
 dev/ncv/ncr53c500.c		optional ncv
 dev/ncv/ncr53c500_pccard.c	optional ncv pccard
 dev/nge/if_nge.c		optional nge
+dev/nxge/if_nxge.c		optional nxge
+dev/nxge/xgehal/xgehal-device.c	optional nxge
+dev/nxge/xgehal/xgehal-mm.c	optional nxge
+dev/nxge/xgehal/xge-queue.c	optional nxge
+dev/nxge/xgehal/xgehal-driver.c	optional nxge
+dev/nxge/xgehal/xgehal-ring.c	optional nxge
+dev/nxge/xgehal/xgehal-channel.c	optional nxge
+dev/nxge/xgehal/xgehal-fifo.c	optional nxge
+dev/nxge/xgehal/xgehal-stats.c	optional nxge
+dev/nxge/xgehal/xgehal-config.c	optional nxge
+dev/nxge/xgehal/xgehal-mgmt.c	optional nxge
 dev/nmdm/nmdm.c			optional nmdm
 dev/nsp/nsp.c			optional nsp
 dev/nsp/nsp_pccard.c		optional nsp pccard
@@ -1199,9 +1210,6 @@
 fs/udf/udf_iconv.c		optional udf_iconv
 fs/udf/udf_vfsops.c		optional udf
 fs/udf/udf_vnops.c		optional udf
-fs/umapfs/umap_subr.c		optional umapfs
-fs/umapfs/umap_vfsops.c		optional umapfs
-fs/umapfs/umap_vnops.c		optional umapfs
 fs/unionfs/union_subr.c		optional unionfs
 fs/unionfs/union_vfsops.c	optional unionfs
 fs/unionfs/union_vnops.c	optional unionfs
@@ -1209,7 +1217,6 @@
 fs/tmpfs/tmpfs_fifoops.c 	optional tmpfs
 fs/tmpfs/tmpfs_vfsops.c 	optional tmpfs
 fs/tmpfs/tmpfs_subr.c 		optional tmpfs
-fs/tmpfs/tmpfs_uma.c 		optional tmpfs
 gdb/gdb_cons.c			optional gdb
 gdb/gdb_main.c			optional gdb
 gdb/gdb_packet.c		optional gdb
@@ -1823,7 +1830,6 @@
 netinet/ip_fw_pfil.c		optional ipfirewall
 netinet/ip_icmp.c		optional inet
 netinet/ip_input.c		optional inet
-netinet/ip_ipsec.c		optional ipsec
 netinet/ip_ipsec.c		optional fast_ipsec
 netinet/ip_mroute.c		optional mrouting inet | mrouting inet6
 netinet/ip_options.c		optional inet
@@ -1859,17 +1865,7 @@
 netinet/libalias/alias_mod.c	optional libalias | netgraph_nat
 netinet/libalias/alias_proxy.c	optional libalias | netgraph_nat
 netinet/libalias/alias_util.c	optional libalias | netgraph_nat
-netinet6/ah_aesxcbcmac.c	optional ipsec
-netinet6/ah_core.c		optional ipsec
-netinet6/ah_input.c		optional ipsec
-netinet6/ah_output.c		optional ipsec
 netinet6/dest6.c		optional inet6
-netinet6/esp_aesctr.c		optional ipsec ipsec_esp
-netinet6/esp_core.c		optional ipsec ipsec_esp
-netinet6/esp_input.c		optional ipsec ipsec_esp
-netinet6/esp_output.c		optional ipsec ipsec_esp
-netinet6/esp_rijndael.c		optional ipsec ipsec_esp
-netinet6/esp_camellia.c		optional ipsec ipsec_esp
 netinet6/frag6.c		optional inet6
 netinet6/icmp6.c		optional inet6
 netinet6/in6.c			optional inet6
@@ -1885,10 +1881,7 @@
 netinet6/ip6_input.c		optional inet6
 netinet6/ip6_mroute.c		optional mrouting inet6
 netinet6/ip6_output.c		optional inet6
-netinet6/ipcomp_core.c		optional ipsec
-netinet6/ipcomp_input.c		optional ipsec
-netinet6/ipcomp_output.c	optional ipsec
-netinet6/ipsec.c		optional ipsec
+netinet6/ip6_ipsec.c		optional fast_ipsec
 netinet6/mld6.c			optional inet6
 netinet6/nd6.c			optional inet6
 netinet6/nd6_nbr.c		optional inet6
@@ -1920,10 +1913,6 @@
 netipx/ipx_usrreq.c		optional ipx
 netipx/spx_debug.c		optional ipx
 netipx/spx_usrreq.c		optional ipx
-netkey/key.c			optional ipsec
-netkey/key_debug.c		optional ipsec
-netkey/keydb.c			optional ipsec
-netkey/keysock.c		optional ipsec
 netnatm/natm.c			optional natm
 netnatm/natm_pcb.c		optional natm
 netnatm/natm_proto.c		optional natm

==== //depot/projects/vimage/src/sys/conf/options#12 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/conf/options,v 1.596 2007/06/16 04:57:04 alc Exp $
+# $FreeBSD: src/sys/conf/options,v 1.597 2007/06/25 05:06:55 rafan Exp $
 #
 #        On the handling of kernel options
 #
@@ -198,7 +198,6 @@
 SMBFS		opt_dontuse.h
 TMPFS		opt_dontuse.h
 UDF		opt_dontuse.h
-UMAPFS		opt_dontuse.h
 UNIONFS		opt_dontuse.h
 
 # Pseudofs debugging

==== //depot/projects/vimage/src/sys/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#4 (text+ko) ====

@@ -766,7 +766,7 @@
 		vn_lock(*vpp, flags, curthread);
 	}
 	ZFS_EXIT(zfsvfs);
-	return (0);
+	return (err);
 }
 
 static int

==== //depot/projects/vimage/src/sys/dev/acpica/acpi.c#7 (text+ko) ====

@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.239 2007/06/15 18:02:33 njl Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.241 2007/06/30 17:27:31 njl Exp $");
 
 #include "opt_acpi.h"
 #include <sys/param.h>
@@ -136,6 +136,7 @@
 static ACPI_STATUS acpi_probe_child(ACPI_HANDLE handle, UINT32 level,
 		    void *context, void **status);
 static BOOLEAN	acpi_MatchHid(ACPI_HANDLE h, const char *hid);
+static ACPI_STATUS acpi_EnterSleepState(struct acpi_softc *sc, int state);
 static void	acpi_shutdown_final(void *arg, int howto);
 static void	acpi_enable_fixed_events(struct acpi_softc *sc);
 static int	acpi_wake_sleep_prep(ACPI_HANDLE handle, int sstate);
@@ -410,6 +411,7 @@
 
     sc = device_get_softc(dev);
     sc->acpi_dev = dev;
+    callout_init(&sc->susp_force_to, TRUE);
 
     error = ENXIO;
 
@@ -592,7 +594,7 @@
 
     /* Pick the first valid sleep state for the sleep button default. */
     sc->acpi_sleep_button_sx = ACPI_S_STATES_MAX + 1;
-    for (state = ACPI_STATE_S1; state < ACPI_STATE_S5; state++)
+    for (state = ACPI_STATE_S1; state <= ACPI_STATE_S4; state++)
 	if (ACPI_SUCCESS(AcpiGetSleepTypeData(state, &TypeA, &TypeB))) {
 	    sc->acpi_sleep_button_sx = state;
 	    break;
@@ -2118,7 +2120,151 @@
     return (acpi_SetInteger(ACPI_ROOT_OBJECT, "_PIC", model));
 }
 
+/*
+ * DEPRECATED.  This interface has serious deficiencies and will be
+ * removed.
+ *
+ * Immediately enter the sleep state.  In the old model, acpiconf(8) ran
+ * rc.suspend and rc.resume so we don't have to notify devd(8) to do this.
+ */
+ACPI_STATUS
+acpi_SetSleepState(struct acpi_softc *sc, int state)
+{
+    static int once;
+
+    if (!once) {
+	printf(
+"warning: acpi_SetSleepState() deprecated, need to update your software\n");
+	once = 1;
+    }
+    return (acpi_EnterSleepState(sc, state));
+}
+
 static void
+acpi_sleep_force(void *arg)
+{
+    struct acpi_softc *sc;
+
+    printf("acpi: suspend request timed out, forcing sleep now\n");
+    sc = arg;
+    if (ACPI_FAILURE(acpi_EnterSleepState(sc, sc->acpi_next_sstate)))
+	printf("acpi: force sleep state S%d failed\n", sc->acpi_next_sstate);
+}
+
+/*
+ * Request that the system enter the given suspend state.  All /dev/apm
+ * devices and devd(8) will be notified.  Userland then has a chance to
+ * save state and acknowledge the request.  The system sleeps once all
+ * acks are in.
+ */
+int
+acpi_ReqSleepState(struct acpi_softc *sc, int state)
+{
+    struct apm_clone_data *clone;
+
+    if (state < ACPI_STATE_S1 || state > ACPI_STATE_S5)
+	return (EINVAL);
+
+    /* S5 (soft-off) should be entered directly with no waiting. */
+    if (state == ACPI_STATE_S5) {
+	if (ACPI_SUCCESS(acpi_EnterSleepState(sc, state)))
+	    return (0);
+	else
+	    return (ENXIO);
+    }
+
+    /* If a suspend request is already in progress, just return. */
+    ACPI_LOCK(acpi);
+    if (sc->acpi_next_sstate != 0) {
+    	ACPI_UNLOCK(acpi);
+	return (0);
+    }
+
+    /* Record the pending state and notify all apm devices. */
+    sc->acpi_next_sstate = state;
+    STAILQ_FOREACH(clone, &sc->apm_cdevs, entries) {
+	clone->notify_status = APM_EV_NONE;
+	if ((clone->flags & ACPI_EVF_DEVD) == 0) {
+	    selwakeuppri(&clone->sel_read, PZERO);
+	    KNOTE_UNLOCKED(&clone->sel_read.si_note, 0);
+	}
+    }
+
+    /* Now notify devd(8) also. */
+    acpi_UserNotify("Suspend", ACPI_ROOT_OBJECT, state);
+
+    /*
+     * Set a timeout to fire if userland doesn't ack the suspend request
+     * in time.  This way we still eventually go to sleep if we were
+     * overheating or running low on battery, even if userland is hung.
+     * We cancel this timeout once all userland acks are in or the
+     * suspend request is aborted.
+     */
+    callout_reset(&sc->susp_force_to, 10 * hz, acpi_sleep_force, sc);
+    ACPI_UNLOCK(acpi);
+    return (0);
+}
+
+/*
+ * Acknowledge (or reject) a pending sleep state.  The caller has
+ * prepared for suspend and is now ready for it to proceed.  If the
+ * error argument is non-zero, it indicates suspend should be cancelled
+ * and gives an errno value describing why.  Once all votes are in,
+ * we suspend the system.
+ */
+int
+acpi_AckSleepState(struct apm_clone_data *clone, int error)
+{
+    struct acpi_softc *sc;
+    int ret, sleeping;
+
+    /* If no pending sleep state, return an error. */
+    ACPI_LOCK(acpi);
+    sc = clone->acpi_sc;
+    if (sc->acpi_next_sstate == 0) {
+    	ACPI_UNLOCK(acpi);
+	return (ENXIO);
+    }
+
+    /* Caller wants to abort suspend process. */
+    if (error) {
+	sc->acpi_next_sstate = 0;
+	callout_stop(&sc->susp_force_to);
+	printf("acpi: listener on %s cancelled the pending suspend\n",
+	    devtoname(clone->cdev));
+    	ACPI_UNLOCK(acpi);
+	return (0);
+    }
+
+    /*
+     * Mark this device as acking the suspend request.  Then, walk through
+     * all devices, seeing if they agree yet.  We only count devices that
+     * are writable since read-only devices couldn't ack the request.
+     */
+    clone->notify_status = APM_EV_ACKED;
+    sleeping = TRUE;
+    STAILQ_FOREACH(clone, &sc->apm_cdevs, entries) {
+	if ((clone->flags & ACPI_EVF_WRITE) != 0 &&
+	    clone->notify_status != APM_EV_ACKED) {
+	    sleeping = FALSE;
+	    break;
+	}
+    }
+
+    /* If all devices have voted "yes", we will suspend now. */
+    if (sleeping)
+	callout_stop(&sc->susp_force_to);
+    ACPI_UNLOCK(acpi);
+    ret = 0;
+    if (sleeping) {
+	if (ACPI_FAILURE(acpi_EnterSleepState(sc, sc->acpi_next_sstate)))
+		ret = ENODEV;
+    }
+
+    return (ret);
+}
+
+static void
 acpi_sleep_enable(void *arg)
 {
 
@@ -2134,12 +2280,12 @@
 };
 
 /*
- * Set the system sleep state
+ * Enter the desired system sleep state.
  *
  * Currently we support S1-S5 but S4 is only S4BIOS
  */
-ACPI_STATUS
-acpi_SetSleepState(struct acpi_softc *sc, int state)
+static ACPI_STATUS
+acpi_EnterSleepState(struct acpi_softc *sc, int state)
 {
     ACPI_STATUS	status;
     UINT8	TypeA;
@@ -2148,14 +2294,13 @@
 
     ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, state);
 
+    /* Re-entry once we're suspending is not allowed. */
     status = AE_OK;
     ACPI_LOCK(acpi);
     if (sc->acpi_sleep_disabled) {
-	if (sc->acpi_sstate != ACPI_STATE_S0)
-	    status = AE_ERROR;
 	ACPI_UNLOCK(acpi);
 	printf("acpi: suspend request ignored (not ready yet)\n");
-	return (status);
+	return (AE_ERROR);
     }
     sc->acpi_sleep_disabled = 1;
     ACPI_UNLOCK(acpi);
@@ -2251,6 +2396,7 @@
      * Back out state according to how far along we got in the suspend
      * process.  This handles both the error and success cases.
      */
+    sc->acpi_next_sstate = 0;
     if (slp_state >= ACPI_SS_GPE_SET) {
 	acpi_wake_prep_walk(state);
 	sc->acpi_sstate = ACPI_STATE_S0;
@@ -2264,7 +2410,10 @@
 
     /* Allow another sleep request after a while. */
     if (state != ACPI_STATE_S5)
-	timeout(acpi_sleep_enable, (caddr_t)sc, hz * ACPI_MINIMUM_AWAKETIME);
+	timeout(acpi_sleep_enable, sc, hz * ACPI_MINIMUM_AWAKETIME);
+
+    /* Run /etc/rc.resume after we are back. */
+    acpi_UserNotify("Resume", ACPI_ROOT_OBJECT, state);
 
     mtx_unlock(&Giant);
     return_ACPI_STATUS (status);
@@ -2574,11 +2723,19 @@
 static void
 acpi_system_eventhandler_sleep(void *arg, int state)
 {
+    int ret;
 
     ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, state);

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list