Date: Mon, 19 Oct 2009 14:27:57 GMT From: John Baldwin <jhb@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 169593 for review Message-ID: <200910191427.n9JERvXh070903@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/chv.cgi?CH=169593 Change 169593 by jhb@jhb_jhbbsd on 2009/10/19 14:27:26 IFC @169589 Affected files ... .. //depot/projects/smpng/share/man/man9/BUS_BIND_INTR.9#1 branch .. //depot/projects/smpng/share/man/man9/BUS_DESCRIBE_INTR.9#1 branch .. //depot/projects/smpng/share/man/man9/Makefile#11 integrate .. //depot/projects/smpng/share/man/man9/fetch.9#2 integrate .. //depot/projects/smpng/share/man/man9/store.9#2 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#15 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakecode.S#4 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#9 integrate .. //depot/projects/smpng/sys/amd64/amd64/elf_machdep.c#19 integrate .. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#37 integrate .. //depot/projects/smpng/sys/amd64/amd64/nexus.c#30 integrate .. //depot/projects/smpng/sys/amd64/conf/GENERIC#85 integrate .. //depot/projects/smpng/sys/amd64/include/atomic.h#33 integrate .. //depot/projects/smpng/sys/amd64/include/elf.h#8 integrate .. //depot/projects/smpng/sys/amd64/include/intr_machdep.h#22 integrate .. //depot/projects/smpng/sys/arm/arm/cpufunc.c#20 integrate .. //depot/projects/smpng/sys/arm/arm/elf_machdep.c#14 integrate .. //depot/projects/smpng/sys/arm/arm/pmap.c#54 integrate .. //depot/projects/smpng/sys/arm/conf/HL200#10 integrate .. //depot/projects/smpng/sys/arm/conf/KB920X#17 integrate .. //depot/projects/smpng/sys/arm/include/elf.h#9 integrate .. //depot/projects/smpng/sys/arm/xscale/i80321/i80321_timer.c#13 integrate .. //depot/projects/smpng/sys/arm/xscale/xscalereg.h#3 delete .. //depot/projects/smpng/sys/arm/xscale/xscalevar.h#3 delete .. //depot/projects/smpng/sys/boot/i386/zfsboot/zfsboot.c#4 integrate .. //depot/projects/smpng/sys/cam/ata/ata_da.c#4 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c#6 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/sys/policy.h#4 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#9 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#5 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#17 integrate .. //depot/projects/smpng/sys/compat/ia32/ia32_sysvec.c#26 integrate .. //depot/projects/smpng/sys/conf/files#254 integrate .. //depot/projects/smpng/sys/conf/files.amd64#70 integrate .. //depot/projects/smpng/sys/conf/files.i386#129 integrate .. //depot/projects/smpng/sys/dev/agp/agp_i810.c#10 integrate .. //depot/projects/smpng/sys/dev/ahci/ahci.c#3 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-ati.c#4 integrate .. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_eeprom_v4k.c#1 branch .. //depot/projects/smpng/sys/dev/ath/ath_hal/ah_eeprom_v4k.h#1 branch .. //depot/projects/smpng/sys/dev/bge/if_bge.c#110 integrate .. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#61 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_ael1002.c#12 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_aq100x.c#1 branch .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_common.h#11 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#6 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_regs.h#4 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_t3_hw.c#13 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_tn1010.c#3 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_vsc8211.c#6 integrate .. //depot/projects/smpng/sys/dev/cxgb/common/cxgb_xgmac.c#9 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_adapter.h#17 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_main.c#26 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_osdep.h#12 integrate .. //depot/projects/smpng/sys/dev/cxgb/cxgb_t3fw.h#3 integrate .. //depot/projects/smpng/sys/dev/drm/drm_pciids.h#17 integrate .. //depot/projects/smpng/sys/dev/drm/i915_drv.h#12 integrate .. //depot/projects/smpng/sys/dev/fdc/fdc.c#34 integrate .. //depot/projects/smpng/sys/dev/gem/if_gem_pci.c#26 integrate .. //depot/projects/smpng/sys/dev/hwpmc/hwpmc_mod.c#31 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#114 integrate .. //depot/projects/smpng/sys/dev/ppbus/lpt.c#26 integrate .. //depot/projects/smpng/sys/dev/siis/siis.c#3 integrate .. //depot/projects/smpng/sys/dev/uart/uart_bus.h#12 integrate .. //depot/projects/smpng/sys/dev/uart/uart_core.c#20 integrate .. //depot/projects/smpng/sys/dev/uart/uart_tty.c#25 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_ixp4xx.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_mbus.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_pci.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci_atmelarm.c#6 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci_pci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/uhci.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhci_pci.c#8 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uhcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/input/ukbd.c#12 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_cdce.c#13 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#146 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_rum.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_uath.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_upgt.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_ural.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_urtw.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_urtwreg.h#2 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_urtwvar.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_zyd.c#13 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs.h#7 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_subr.c#11 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_vnops.c#14 integrate .. //depot/projects/smpng/sys/geom/concat/g_concat.c#19 integrate .. //depot/projects/smpng/sys/geom/label/g_label.c#17 integrate .. //depot/projects/smpng/sys/geom/part/g_part.c#23 integrate .. //depot/projects/smpng/sys/geom/part/g_part_gpt.c#12 integrate .. //depot/projects/smpng/sys/geom/shsec/g_shsec.c#6 integrate .. //depot/projects/smpng/sys/geom/stripe/g_stripe.c#21 integrate .. //depot/projects/smpng/sys/geom/uzip/g_uzip.c#11 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_create.c#3 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_events.c#3 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_init.c#14 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_move.c#5 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rm.c#17 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_subr.c#18 integrate .. //depot/projects/smpng/sys/i386/conf/GENERIC#116 integrate .. //depot/projects/smpng/sys/i386/i386/elf_machdep.c#22 integrate .. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#38 integrate .. //depot/projects/smpng/sys/i386/i386/nexus.c#31 integrate .. //depot/projects/smpng/sys/i386/i386/vm_machdep.c#93 integrate .. //depot/projects/smpng/sys/i386/include/atomic.h#52 integrate .. //depot/projects/smpng/sys/i386/include/cpufunc.h#43 integrate .. //depot/projects/smpng/sys/i386/include/elf.h#11 integrate .. //depot/projects/smpng/sys/i386/include/intr_machdep.h#24 integrate .. //depot/projects/smpng/sys/i386/xen/xen_machdep.c#10 integrate .. //depot/projects/smpng/sys/ia64/ia64/elf_machdep.c#28 integrate .. //depot/projects/smpng/sys/ia64/include/elf.h#15 integrate .. //depot/projects/smpng/sys/kern/bus_if.m#18 integrate .. //depot/projects/smpng/sys/kern/imgact_elf.c#69 integrate .. //depot/projects/smpng/sys/kern/init_main.c#83 integrate .. //depot/projects/smpng/sys/kern/kern_event.c#61 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#125 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#146 integrate .. //depot/projects/smpng/sys/kern/kern_intr.c#101 integrate .. //depot/projects/smpng/sys/kern/kern_lock.c#80 integrate .. //depot/projects/smpng/sys/kern/kern_proc.c#109 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#152 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#53 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#97 integrate .. //depot/projects/smpng/sys/kern/subr_bus.c#86 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#93 integrate .. //depot/projects/smpng/sys/kern/tty.c#99 integrate .. //depot/projects/smpng/sys/kern/tty_ttydisc.c#9 integrate .. //depot/projects/smpng/sys/kern/uipc_socket.c#134 integrate .. //depot/projects/smpng/sys/kern/uipc_usrreq.c#92 integrate .. //depot/projects/smpng/sys/kern/vfs_acl.c#10 integrate .. //depot/projects/smpng/sys/mips/include/elf.h#4 integrate .. //depot/projects/smpng/sys/mips/mips/elf64_machdep.c#4 integrate .. //depot/projects/smpng/sys/mips/mips/elf_machdep.c#8 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#20 integrate .. //depot/projects/smpng/sys/modules/cxgb/cxgb/Makefile#9 integrate .. //depot/projects/smpng/sys/modules/nfsclient/Makefile#17 integrate .. //depot/projects/smpng/sys/modules/nfslockd/Makefile#5 integrate .. //depot/projects/smpng/sys/modules/pf/Makefile#17 integrate .. //depot/projects/smpng/sys/modules/ubser/Makefile#4 integrate .. //depot/projects/smpng/sys/net/flowtable.c#9 integrate .. //depot/projects/smpng/sys/net/flowtable.h#8 integrate .. //depot/projects/smpng/sys/net/if_bridge.c#63 integrate .. //depot/projects/smpng/sys/net/if_enc.c#15 integrate .. //depot/projects/smpng/sys/net/if_ethersubr.c#103 integrate .. //depot/projects/smpng/sys/net/pfil.c#13 integrate .. //depot/projects/smpng/sys/net/pfil.h#13 integrate .. //depot/projects/smpng/sys/net/route.c#53 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_hwmp.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_mesh.c#4 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_mesh.h#4 integrate .. //depot/projects/smpng/sys/netgraph/ng_bridge.c#23 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#78 integrate .. //depot/projects/smpng/sys/netinet/in.c#63 integrate .. //depot/projects/smpng/sys/netinet/ip_fastfwd.c#40 integrate .. //depot/projects/smpng/sys/netinet/ip_icmp.c#55 integrate .. //depot/projects/smpng/sys/netinet/ip_input.c#107 integrate .. //depot/projects/smpng/sys/netinet/ip_output.c#116 integrate .. //depot/projects/smpng/sys/netinet/ip_var.h#45 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw2.c#8 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#6 integrate .. //depot/projects/smpng/sys/netinet/raw_ip.c#88 integrate .. //depot/projects/smpng/sys/netinet/sctp_bsd_addr.c#15 integrate .. //depot/projects/smpng/sys/netinet/sctp_os_bsd.h#28 integrate .. //depot/projects/smpng/sys/netinet/sctp_output.c#33 integrate .. //depot/projects/smpng/sys/netinet/sctp_pcb.c#32 integrate .. //depot/projects/smpng/sys/netinet/tcp_input.c#132 integrate .. //depot/projects/smpng/sys/netinet6/icmp6.c#62 integrate .. //depot/projects/smpng/sys/netinet6/in6_ifattach.c#44 integrate .. //depot/projects/smpng/sys/netinet6/ip6_forward.c#30 integrate .. //depot/projects/smpng/sys/netinet6/ip6_input.c#72 integrate .. //depot/projects/smpng/sys/netinet6/ip6_output.c#70 integrate .. //depot/projects/smpng/sys/netinet6/ip6_var.h#32 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_kdtrace.c#3 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#95 integrate .. //depot/projects/smpng/sys/nlm/nlm.h#5 integrate .. //depot/projects/smpng/sys/nlm/nlm_prot_impl.c#8 integrate .. //depot/projects/smpng/sys/nlm/nlm_prot_server.c#4 integrate .. //depot/projects/smpng/sys/pc98/conf/GENERIC#88 integrate .. //depot/projects/smpng/sys/powerpc/aim/platform_chrp.c#3 integrate .. //depot/projects/smpng/sys/powerpc/aim/swtch.S#7 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap_subr.S#9 integrate .. //depot/projects/smpng/sys/powerpc/include/elf.h#10 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/elf_machdep.c#20 integrate .. //depot/projects/smpng/sys/sparc64/conf/GENERIC#100 integrate .. //depot/projects/smpng/sys/sparc64/include/elf.h#15 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/elf_machdep.c#26 integrate .. //depot/projects/smpng/sys/sun4v/include/elf.h#5 integrate .. //depot/projects/smpng/sys/sys/bus.h#39 integrate .. //depot/projects/smpng/sys/sys/errno.h#12 integrate .. //depot/projects/smpng/sys/sys/interrupt.h#29 integrate .. //depot/projects/smpng/sys/sys/pmc.h#17 integrate .. //depot/projects/smpng/sys/sys/signalvar.h#33 integrate .. //depot/projects/smpng/sys/teken/sequences#3 integrate .. //depot/projects/smpng/sys/teken/teken.c#3 integrate .. //depot/projects/smpng/sys/teken/teken_subr.h#3 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#82 integrate .. //depot/projects/smpng/sys/vm/vm_mmap.c#82 integrate .. //depot/projects/smpng/sys/vm/vm_page.c#108 integrate .. //depot/projects/smpng/sys/vm/vm_page.h#47 integrate Differences ... ==== //depot/projects/smpng/share/man/man9/Makefile#11 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.360 2009/09/22 15:15:03 trasz Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.363 2009/10/15 14:54:35 jhb Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -23,8 +23,10 @@ bus_activate_resource.9 \ BUS_ADD_CHILD.9 \ bus_alloc_resource.9 \ + BUS_BIND_INTR.9 \ bus_child_present.9 \ BUS_CONFIG_INTR.9 \ + BUS_DESCRIBE_INTR.9 \ bus_dma.9 \ bus_generic_attach.9 \ bus_generic_detach.9 \ @@ -403,6 +405,8 @@ MLINKS+=buf.9 bp.9 MLINKS+=bus_activate_resource.9 bus_deactivate_resource.9 MLINKS+=bus_alloc_resource.9 bus_alloc_resource_any.9 +MLINKS+=BUS_BIND_INTR.9 bus_bind_intr.9 +MLINKS+=BUS_DESCRIBE_INTR.9 bus_describe_intr.9 MLINKS+=bus_dma.9 busdma.9 \ bus_dma.9 bus_dmamap_create.9 \ bus_dma.9 bus_dmamap_destroy.9 \ @@ -606,8 +610,10 @@ EVENTHANDLER.9 eventhandler_register.9 MLINKS+=fetch.9 fubyte.9 \ fetch.9 fuswintr.9 \ - fetch.9 fusword.9 \ - fetch.9 fuword.9 + fetch.9 fuword.9 \ + fetch.9 fuword16.9 \ + fetch.9 fuword32.9 \ + fetch.9 fuword64.9 MLINKS+=g_attach.9 g_detach.9 MLINKS+=g_bio.9 g_clone_bio.9 \ g_bio.9 g_destroy_bio.9 \ @@ -1142,8 +1148,10 @@ stack.9 stack_zero.9 MLINKS+=store.9 subyte.9 \ store.9 suswintr.9 \ - store.9 susword.9 \ - store.9 suword.9 + store.9 suword.9 \ + store.9 suword16.9 \ + store.9 suword32.9 \ + store.9 suword64.9 MLINKS+=swi.9 swi_add.9 \ swi.9 swi_sched.9 MLINKS+=sx.9 sx_assert.9 \ ==== //depot/projects/smpng/share/man/man9/fetch.9#2 (text+ko) ==== @@ -32,31 +32,37 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/fetch.9,v 1.10 2001/10/01 16:09:24 ru Exp $ +.\" $FreeBSD: src/share/man/man9/fetch.9,v 1.11 2009/10/05 15:16:28 trasz Exp $ .\" -.Dd January 7, 1996 +.Dd October 5, 2009 .Dt FETCH 9 .Os .Sh NAME .Nm fetch , .Nm fubyte , -.Nm fusword , .Nm fuswintr , -.Nm fuword +.Nm fuword , +.Nm fuword16 , +.Nm fuword32 , +.Nm fuword64 .Nd fetch data from user-space .Sh SYNOPSIS .In sys/types.h .In sys/time.h .In sys/systm.h -.In sys/resourcevar.h .Ft int .Fn fubyte "const void *base" +.Ft long +.Fn fuword "const void *base" .Ft int -.Fn fusword "void *base" +.Fn fuword16 "void *base" +.Ft int32_t +.Fn fuword32 "const void *base" +.Ft int64_t +.Fn fuword64 "const void *base" +.In sys/resourcevar.h .Ft int .Fn fuswintr "void *base" -.Ft long -.Fn fuword "const void *base" .Sh DESCRIPTION The .Nm @@ -69,16 +75,22 @@ .It Fn fubyte Fetches a byte of data from the user-space address .Pa base . -.It Fn fusword -Fetches a short word of data from the user-space address +.It Fn fuword +Fetches a word of data from the user-space address +.Pa base . +.It Fn fuword16 +Fetches 16 bits of data from the user-space address +.Pa base . +.It Fn fuword32 +Fetches 32 bits of data from the user-space address +.Pa base . +.It Fn fuword64 +Fetches 64 bits of data from the user-space address .Pa base . .It Fn fuswintr Fetches a short word of data from the user-space address .Pa base . This function is safe to call during an interrupt context. -.It Fn fuword -Fetches a word of data from the user-space address -.Pa base . .El .Sh RETURN VALUES The ==== //depot/projects/smpng/share/man/man9/store.9#2 (text+ko) ==== @@ -32,15 +32,14 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/store.9,v 1.11 2001/10/01 16:09:25 ru Exp $ +.\" $FreeBSD: src/share/man/man9/store.9,v 1.12 2009/10/05 15:16:28 trasz Exp $ .\" -.Dd January 7, 1996 +.Dd October 5, 2009 .Dt STORE 9 .Os .Sh NAME .Nm store , .Nm subyte , -.Nm susword , .Nm suswintr , .Nm suword .Nd store data to user-space @@ -48,15 +47,19 @@ .In sys/types.h .In sys/time.h .In sys/systm.h -.In sys/resourcevar.h .Ft int .Fn subyte "void *base" "int byte" .Ft int -.Fn susword "void *base" "int word" +.Fn suword "void *base" "long word" +.Ft int +.Fn suword16 "void *base" "int word" +.Ft int +.Fn suword32 "void *base" "int32_t word" +.Ft int +.Fn suword64 "void *base" "int64_t word" +.In sys/resourcevar.h .Ft int .Fn suswintr "void *base" "int word" -.Ft int -.Fn suword "void *base" "long word" .Sh DESCRIPTION The .Nm @@ -69,16 +72,22 @@ .It Fn subyte Stores a byte of data to the user-space address .Pa base . -.It Fn susword -Stores a short word of data to the user-space address +.It Fn suword +Stores a word of data to the user-space address +.Pa base . +.It Fn suword16 +Stores 16 bits of of data to the user-space address +.Pa base . +.It Fn suword32 +Stores 32 bits of of data to the user-space address +.Pa base . +.It Fn suword64 +Stores 64 bits of of data to the user-space address .Pa base . .It Fn suswintr Stores a short word of data to the user-space address .Pa base . This function is safe to call during an interrupt context. -.It Fn suword -Stores a word of data to the user-space address -.Pa base . .El .Sh RETURN VALUES The ==== //depot/projects/smpng/sys/amd64/acpica/acpi_machdep.c#15 (text+ko) ==== @@ -25,13 +25,14 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.23 2009/09/27 14:00:16 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_machdep.c,v 1.24 2009/10/08 17:41:53 jkim Exp $"); #include <sys/param.h> #include <sys/bus.h> #include <sys/kernel.h> #include <sys/module.h> #include <sys/sysctl.h> + #include <vm/vm.h> #include <vm/pmap.h> @@ -511,7 +512,6 @@ sc->acpi_clone = apm_create_clone(sc->acpi_dev_t, sc); clone_setup(&apm_clones); EVENTHANDLER_REGISTER(dev_clone, apm_clone, 0, 1000); - acpi_install_wakeup_handler(sc); if (intr_model != ACPI_INTR_PIC) acpi_SetIntrModel(intr_model); @@ -801,13 +801,20 @@ static int nexus_acpi_attach(device_t dev) { + device_t acpi_dev; + int error; nexus_init_resources(); bus_generic_probe(dev); - if (BUS_ADD_CHILD(dev, 10, "acpi", 0) == NULL) + acpi_dev = BUS_ADD_CHILD(dev, 10, "acpi", 0); + if (acpi_dev == NULL) panic("failed to add acpi0 device"); - return (bus_generic_attach(dev)); + error = bus_generic_attach(dev); + if (error == 0) + acpi_install_wakeup_handler(device_get_softc(acpi_dev)); + + return (error); } static device_method_t nexus_acpi_methods[] = { ==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakecode.S#4 (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/acpica/acpi_wakecode.S,v 1.3 2009/04/02 00:23:56 jkim Exp $ + * $FreeBSD: src/sys/amd64/acpica/acpi_wakecode.S,v 1.4 2009/10/08 17:41:53 jkim Exp $ */ #define LOCORE @@ -54,18 +54,17 @@ .data /* So we can modify it */ ALIGN_TEXT + .code16 wakeup_start: - .code16 /* * Set up segment registers for real mode, a small stack for * any calls we make, and clear any flags. */ cli /* make sure no interrupts */ - cld mov %cs, %ax /* copy %cs to %ds. Remember these */ mov %ax, %ds /* are offsets rather than selectors */ mov %ax, %ss - movw $PAGE_SIZE - 8, %sp + movw $PAGE_SIZE, %sp xorw %ax, %ax pushw %ax popfw @@ -129,6 +128,7 @@ /* * At this point, we are running in 32 bit legacy protected mode. */ + ALIGN_TEXT .code32 wakeup_32: ==== //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#9 (text+ko) ==== @@ -28,16 +28,14 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.26 2009/06/05 18:44:36 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.27 2009/10/08 17:41:53 jkim Exp $"); #include <sys/param.h> -#include <sys/systm.h> #include <sys/bus.h> #include <sys/kernel.h> #include <sys/malloc.h> #include <sys/memrange.h> #include <sys/smp.h> -#include <sys/types.h> #include <vm/vm.h> #include <vm/pmap.h> @@ -46,11 +44,11 @@ #include <machine/pcb.h> #include <machine/pmap.h> #include <machine/specialreg.h> -#include <machine/vmparam.h> #ifdef SMP #include <machine/apicreg.h> #include <machine/smp.h> +#include <machine/vmparam.h> #endif #include <contrib/dev/acpica/include/acpi.h> @@ -63,10 +61,6 @@ /* Make sure the code is less than a page and leave room for the stack. */ CTASSERT(sizeof(wakecode) < PAGE_SIZE - 1024); -#ifndef _SYS_CDEFS_H_ -#error this file needs sys/cdefs.h as a prerequisite -#endif - extern int acpi_resume_beep; extern int acpi_reset_video; @@ -79,7 +73,7 @@ int acpi_restorecpu(struct xpcb *, vm_offset_t); int acpi_savecpu(struct xpcb *); -static void acpi_alloc_wakeup_handler(void); +static void *acpi_alloc_wakeup_handler(void); static void acpi_stop_beep(void *); #ifdef SMP @@ -322,49 +316,50 @@ return (ret); } -static vm_offset_t acpi_wakeaddr; - -static void +static void * acpi_alloc_wakeup_handler(void) { void *wakeaddr; - if (!cold) - return; - /* * Specify the region for our wakeup code. We want it in the low 1 MB - * region, excluding video memory and above (0xa0000). We ask for - * it to be page-aligned, just to be safe. + * region, excluding real mode IVT (0-0x3ff), BDA (0x400-0x4ff), EBDA + * (less than 128KB, below 0xa0000, must be excluded by SMAP and DSDT), + * and ROM area (0xa0000 and above). The temporary page tables must be + * page-aligned. */ - wakeaddr = contigmalloc(4 * PAGE_SIZE, M_DEVBUF, M_NOWAIT, 0, 0x9ffff, - PAGE_SIZE, 0ul); + wakeaddr = contigmalloc(4 * PAGE_SIZE, M_DEVBUF, M_NOWAIT, 0x500, + 0xa0000, PAGE_SIZE, 0ul); if (wakeaddr == NULL) { printf("%s: can't alloc wake memory\n", __func__); - return; + return (NULL); } stopxpcbs = malloc(mp_ncpus * sizeof(*stopxpcbs), M_DEVBUF, M_NOWAIT); if (stopxpcbs == NULL) { contigfree(wakeaddr, 4 * PAGE_SIZE, M_DEVBUF); printf("%s: can't alloc CPU state memory\n", __func__); - return; + return (NULL); } - acpi_wakeaddr = (vm_offset_t)wakeaddr; + + return (wakeaddr); } -SYSINIT(acpiwakeup, SI_SUB_KMEM, SI_ORDER_ANY, acpi_alloc_wakeup_handler, 0); - void acpi_install_wakeup_handler(struct acpi_softc *sc) { + static void *wakeaddr = NULL; uint64_t *pt4, *pt3, *pt2; int i; - if (acpi_wakeaddr == 0ul) + if (wakeaddr != NULL) + return; + + wakeaddr = acpi_alloc_wakeup_handler(); + if (wakeaddr == NULL) return; - sc->acpi_wakeaddr = acpi_wakeaddr; - sc->acpi_wakephys = vtophys(acpi_wakeaddr); + sc->acpi_wakeaddr = (vm_offset_t)wakeaddr; + sc->acpi_wakephys = vtophys(wakeaddr); bcopy(wakecode, (void *)WAKECODE_VADDR(sc), sizeof(wakecode)); @@ -390,7 +385,7 @@ WAKECODE_FIXUP(wakeup_sfmask, uint64_t, rdmsr(MSR_SF_MASK)); /* Build temporary page tables below realmode code. */ - pt4 = (uint64_t *)acpi_wakeaddr; + pt4 = wakeaddr; pt3 = pt4 + (PAGE_SIZE) / sizeof(uint64_t); pt2 = pt3 + (PAGE_SIZE) / sizeof(uint64_t); ==== //depot/projects/smpng/sys/amd64/amd64/elf_machdep.c#19 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.32 2009/08/30 14:38:17 bz Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/elf_machdep.c,v 1.33 2009/10/03 11:57:21 bz Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -89,7 +89,7 @@ .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE }; -SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_ANY, +SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_FIRST, (sysinit_cfunc_t) elf64_insert_brand_entry, &freebsd_brand_info); ==== //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#37 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.45 2009/07/01 17:20:07 jhb Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.47 2009/10/16 12:00:59 kib Exp $ */ /* @@ -400,6 +400,23 @@ } #endif +/* Add a description to an active interrupt handler. */ +int +intr_describe(u_int vector, void *ih, const char *descr) +{ + struct intsrc *isrc; + int error; + + isrc = intr_lookup_source(vector); + if (isrc == NULL) + return (EINVAL); + error = intr_event_describe_handler(isrc->is_event, ih, descr); + if (error) + return (error); + intrcnt_updatename(isrc); + return (0); +} + #ifdef DDB /* * Dump data about interrupt handlers ==== //depot/projects/smpng/sys/amd64/amd64/nexus.c#30 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.80 2008/03/20 21:24:32 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/nexus.c,v 1.81 2009/10/15 14:54:35 jhb Exp $"); /* * This code implements a `root nexus' for Intel Architecture @@ -92,6 +92,9 @@ #endif static int nexus_config_intr(device_t, int, enum intr_trigger, enum intr_polarity); +static int nexus_describe_intr(device_t dev, device_t child, + struct resource *irq, void *cookie, + const char *descr); static int nexus_activate_resource(device_t, device_t, int, int, struct resource *); static int nexus_deactivate_resource(device_t, device_t, int, int, @@ -135,6 +138,7 @@ DEVMETHOD(bus_bind_intr, nexus_bind_intr), #endif DEVMETHOD(bus_config_intr, nexus_config_intr), + DEVMETHOD(bus_describe_intr, nexus_describe_intr), DEVMETHOD(bus_get_resource_list, nexus_get_reslist), DEVMETHOD(bus_set_resource, nexus_set_resource), DEVMETHOD(bus_get_resource, nexus_get_resource), @@ -479,6 +483,14 @@ return (intr_config_intr(irq, trig, pol)); } +static int +nexus_describe_intr(device_t dev, device_t child, struct resource *irq, + void *cookie, const char *descr) +{ + + return (intr_describe(rman_get_start(irq), cookie, descr)); +} + static struct resource_list * nexus_get_reslist(device_t dev, device_t child) { ==== //depot/projects/smpng/sys/amd64/conf/GENERIC#85 (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.533 2009/10/01 02:08:42 rpaulo Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.534 2009/10/13 19:02:03 jhb Exp $ cpu HAMMER ident GENERIC @@ -297,10 +297,6 @@ device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse -device rum # Ralink Technology RT2501USB wireless NICs -device uath # Atheros AR5523 wireless NICs -device ural # Ralink Technology RT2500USB wireless NICs -device zyd # ZyDAS zb1211/zb1211b wireless NICs device urio # Diamond Rio 500 MP3 player # USB Serial devices device uark # Technologies ARK3116 based serial adapters @@ -319,6 +315,11 @@ device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet device udav # Davicom DM9601E USB +# USB Wireless +device rum # Ralink Technology RT2501USB wireless NICs +device uath # Atheros AR5523 wireless NICs +device ural # Ralink Technology RT2500USB wireless NICs +device zyd # ZyDAS zb1211/zb1211b wireless NICs # FireWire support device firewire # FireWire bus code ==== //depot/projects/smpng/sys/amd64/include/atomic.h#33 (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/amd64/include/atomic.h,v 1.46 2008/11/22 05:55:56 kmacy Exp $ + * $FreeBSD: src/sys/amd64/include/atomic.h,v 1.49 2009/10/09 15:51:40 attilio Exp $ */ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ @@ -32,9 +32,9 @@ #error this file needs sys/cdefs.h as a prerequisite #endif -#define mb() __asm__ __volatile__ ("mfence;": : :"memory") -#define wmb() __asm__ __volatile__ ("sfence;": : :"memory") -#define rmb() __asm__ __volatile__ ("lfence;": : :"memory") +#define mb() __asm __volatile("mfence;" : : : "memory") +#define wmb() __asm __volatile("sfence;" : : : "memory") +#define rmb() __asm __volatile("lfence;" : : : "memory") /* * Various simple operations on memory, each of which is atomic in the @@ -73,7 +73,8 @@ */ #if defined(KLD_MODULE) || !defined(__GNUCLIKE_ASM) #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ -void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v) +void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ +void atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v) int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src); int atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src); @@ -97,8 +98,9 @@ #endif /* - * The assembly is volatilized to demark potential before-and-after side - * effects if an interrupt or SMP collision were to occur. + * The assembly is volatilized to avoid code chunk removal by the compiler. + * GCC aggressively reorders operations and memory clobbering is necessary + * in order to avoid that for memory barriers. */ #define ATOMIC_ASM(NAME, TYPE, OP, CONS, V) \ static __inline void \ @@ -108,6 +110,15 @@ : "=m" (*p) \ : CONS (V), "m" (*p)); \ } \ + \ +static __inline void \ +atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ +{ \ + __asm __volatile(MPLOCKED OP \ + : "=m" (*p) \ + : CONS (V), "m" (*p) \ + : "memory"); \ +} \ struct __hack /* @@ -205,18 +216,23 @@ * PentiumPro or higher, reads may pass writes, so for that case we have * to use a serializing instruction (i.e. with LOCK) to do the load in * SMP kernels. For UP kernels, however, the cache of the single processor - * is always consistent, so we don't need any memory barriers. + * is always consistent, so we only need to take care of compiler. */ #define ATOMIC_STORE_LOAD(TYPE, LOP, SOP) \ static __inline u_##TYPE \ atomic_load_acq_##TYPE(volatile u_##TYPE *p) \ { \ - return (*p); \ + u_##TYPE tmp; \ + \ + tmp = *p; \ + __asm __volatile ("" : : : "memory"); \ + return (tmp); \ } \ \ static __inline void \ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ + __asm __volatile ("" : : : "memory"); \ *p = v; \ } \ struct __hack @@ -247,7 +263,8 @@ __asm __volatile(SOP \ : "=m" (*p), /* 0 */ \ "+r" (v) /* 1 */ \ - : "m" (*p)); /* 2 */ \ + : "m" (*p) /* 2 */ \ + : "memory"); \ } \ struct __hack @@ -327,44 +344,43 @@ #endif /* __GNUCLIKE_ASM */ -/* Acquire and release variants are identical to the normal ones. */ -#define atomic_set_acq_char atomic_set_char -#define atomic_set_rel_char atomic_set_char -#define atomic_clear_acq_char atomic_clear_char -#define atomic_clear_rel_char atomic_clear_char -#define atomic_add_acq_char atomic_add_char -#define atomic_add_rel_char atomic_add_char -#define atomic_subtract_acq_char atomic_subtract_char -#define atomic_subtract_rel_char atomic_subtract_char +#define atomic_set_acq_char atomic_set_barr_char +#define atomic_set_rel_char atomic_set_barr_char +#define atomic_clear_acq_char atomic_clear_barr_char +#define atomic_clear_rel_char atomic_clear_barr_char +#define atomic_add_acq_char atomic_add_barr_char +#define atomic_add_rel_char atomic_add_barr_char +#define atomic_subtract_acq_char atomic_subtract_barr_char +#define atomic_subtract_rel_char atomic_subtract_barr_char -#define atomic_set_acq_short atomic_set_short -#define atomic_set_rel_short atomic_set_short -#define atomic_clear_acq_short atomic_clear_short -#define atomic_clear_rel_short atomic_clear_short -#define atomic_add_acq_short atomic_add_short -#define atomic_add_rel_short atomic_add_short -#define atomic_subtract_acq_short atomic_subtract_short -#define atomic_subtract_rel_short atomic_subtract_short +#define atomic_set_acq_short atomic_set_barr_short +#define atomic_set_rel_short atomic_set_barr_short +#define atomic_clear_acq_short atomic_clear_barr_short +#define atomic_clear_rel_short atomic_clear_barr_short +#define atomic_add_acq_short atomic_add_barr_short +#define atomic_add_rel_short atomic_add_barr_short +#define atomic_subtract_acq_short atomic_subtract_barr_short +#define atomic_subtract_rel_short atomic_subtract_barr_short -#define atomic_set_acq_int atomic_set_int -#define atomic_set_rel_int atomic_set_int -#define atomic_clear_acq_int atomic_clear_int -#define atomic_clear_rel_int atomic_clear_int -#define atomic_add_acq_int atomic_add_int -#define atomic_add_rel_int atomic_add_int -#define atomic_subtract_acq_int atomic_subtract_int -#define atomic_subtract_rel_int atomic_subtract_int +#define atomic_set_acq_int atomic_set_barr_int +#define atomic_set_rel_int atomic_set_barr_int +#define atomic_clear_acq_int atomic_clear_barr_int +#define atomic_clear_rel_int atomic_clear_barr_int +#define atomic_add_acq_int atomic_add_barr_int +#define atomic_add_rel_int atomic_add_barr_int +#define atomic_subtract_acq_int atomic_subtract_barr_int +#define atomic_subtract_rel_int atomic_subtract_barr_int #define atomic_cmpset_acq_int atomic_cmpset_int #define atomic_cmpset_rel_int atomic_cmpset_int -#define atomic_set_acq_long atomic_set_long -#define atomic_set_rel_long atomic_set_long -#define atomic_clear_acq_long atomic_clear_long -#define atomic_clear_rel_long atomic_clear_long -#define atomic_add_acq_long atomic_add_long -#define atomic_add_rel_long atomic_add_long -#define atomic_subtract_acq_long atomic_subtract_long -#define atomic_subtract_rel_long atomic_subtract_long +#define atomic_set_acq_long atomic_set_barr_long +#define atomic_set_rel_long atomic_set_barr_long +#define atomic_clear_acq_long atomic_clear_barr_long +#define atomic_clear_rel_long atomic_clear_barr_long +#define atomic_add_acq_long atomic_add_barr_long +#define atomic_add_rel_long atomic_add_barr_long +#define atomic_subtract_acq_long atomic_subtract_barr_long +#define atomic_subtract_rel_long atomic_subtract_barr_long #define atomic_cmpset_acq_long atomic_cmpset_long #define atomic_cmpset_rel_long atomic_cmpset_long ==== //depot/projects/smpng/sys/amd64/include/elf.h#8 (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/amd64/include/elf.h,v 1.21 2009/03/17 12:50:16 kib Exp $ + * $FreeBSD: src/sys/amd64/include/elf.h,v 1.22 2009/10/10 15:31:24 kib Exp $ */ #ifndef _MACHINE_ELF_H_ @@ -106,4 +106,10 @@ #define ELF_TARG_MACH EM_X86_64 #define ELF_TARG_VER 1 +#if __ELF_WORD_SIZE == 32 +#define ET_DYN_LOAD_ADDR 0x01001000 +#else +#define ET_DYN_LOAD_ADDR 0x01021000 +#endif + #endif /* !_MACHINE_ELF_H_ */ ==== //depot/projects/smpng/sys/amd64/include/intr_machdep.h#22 (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/amd64/include/intr_machdep.h,v 1.24 2009/07/01 17:20:07 jhb Exp $ + * $FreeBSD: src/sys/amd64/include/intr_machdep.h,v 1.25 2009/10/15 14:54:35 jhb Exp $ */ #ifndef __MACHINE_INTR_MACHDEP_H__ @@ -151,6 +151,7 @@ #endif int intr_config_intr(int vector, enum intr_trigger trig, enum intr_polarity pol); +int intr_describe(u_int vector, void *ih, const char *descr); void intr_execute_handlers(struct intsrc *isrc, struct trapframe *frame); u_int intr_next_cpu(void); struct intsrc *intr_lookup_source(int vector); >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200910191427.n9JERvXh070903>