From owner-p4-projects@FreeBSD.ORG Mon Aug 2 01:20:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 26B5016A4D1; Mon, 2 Aug 2004 01:20:50 +0000 (GMT) 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 EB71916A4CE for ; Mon, 2 Aug 2004 01:20:49 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id CAAD143D31 for ; Mon, 2 Aug 2004 01:20:49 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i721Kn0R095607 for ; Mon, 2 Aug 2004 01:20:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i721Kmja095604 for perforce@freebsd.org; Mon, 2 Aug 2004 01:20:48 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 2 Aug 2004 01:20:48 GMT Message-Id: <200408020120.i721Kmja095604@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 58667 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: Mon, 02 Aug 2004 01:20:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=58667 Change 58667 by rwatson@rwatson_paprika on 2004/08/02 01:20:00 Integrate netperf_socket from FreeBSD CVS: /dev/mem, /dev/io, etc, rototilled and refrabricated, modularized, and made more MI. More VM locking activities. Giant pushed off parts of vmspace work. kmem_alloc_pageable() removed. Use sx locks instead of lockmgr for maps. Slight optimization of cpu_critical_enter() to avoid curthread overuse. suser_cred() flag modifications: PRISON_ROOT -> SUSER_ALLOWJAIL, and SUSER_CHECKRUID added. cpu_rootconf() removed from MD bits; 'ndp' container argument for file system mount removed. *_mount() renamed to _omount(). kernel_vmount() added so in-kernel code can mount without messing with vfs_nmount(), iovec's, etc. *_nmount() -> *_mount(). rootvp eliminated. Related cleanup. vfs_byname() added. vfs_donmount(), etc. PREEMPTION disabled by default. memcpy() not bcopy() in the boot loader. More ndismania. Can load firmware via loader preloading, etc. ADAPTIVE_GIANT now an option (looped back from rwatson_netperf). geom_mirror is now pjd's geom_mirror. Missing if_arl copyrights added. ATAPI dma turned on more often now. More USB2 hub support. Netatalk locks in WITNESS lock order (looped back from rwatson_netperf). Accept filter registration locking (looped back from rwatson_netperf). IFF_NEEDSGIANT allows ifp->if_start to run in a task queue for increased compatibility with non-MPSAFE interfaces when running debug.mpsafenet=1. (Looped back from rwatson_netperf). Various SACK fixes. IPv6 in6pcb locking (looped back from rwatson_netperf). A broad variety of gcc 3.4 fixes. UMA slab math fix. Affected files ... .. //depot/projects/netperf_socket/sys/alpha/alpha/autoconf.c#3 integrate .. //depot/projects/netperf_socket/sys/alpha/alpha/mem.c#6 integrate .. //depot/projects/netperf_socket/sys/alpha/alpha/pmap.c#15 integrate .. //depot/projects/netperf_socket/sys/alpha/conf/GENERIC#6 integrate .. //depot/projects/netperf_socket/sys/alpha/include/critical.h#3 integrate .. //depot/projects/netperf_socket/sys/alpha/include/memdev.h#1 branch .. //depot/projects/netperf_socket/sys/alpha/include/param.h#4 integrate .. //depot/projects/netperf_socket/sys/alpha/osf1/osf1_misc.c#4 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/autoconf.c#4 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/io.c#1 branch .. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#12 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#6 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#22 integrate .. //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#12 integrate .. //depot/projects/netperf_socket/sys/amd64/conf/NOTES#7 integrate .. //depot/projects/netperf_socket/sys/amd64/include/cpufunc.h#7 integrate .. //depot/projects/netperf_socket/sys/amd64/include/critical.h#3 integrate .. //depot/projects/netperf_socket/sys/amd64/include/iodev.h#1 branch .. //depot/projects/netperf_socket/sys/amd64/include/memdev.h#1 branch .. //depot/projects/netperf_socket/sys/amd64/include/param.h#4 integrate .. //depot/projects/netperf_socket/sys/amd64/include/profile.h#5 integrate .. //depot/projects/netperf_socket/sys/arm/arm/machdep.c#4 integrate .. //depot/projects/netperf_socket/sys/arm/arm/pmap.c#6 integrate .. //depot/projects/netperf_socket/sys/arm/include/critical.h#2 integrate .. //depot/projects/netperf_socket/sys/boot/common/help.common#3 integrate .. //depot/projects/netperf_socket/sys/boot/forth/loader.conf#10 integrate .. //depot/projects/netperf_socket/sys/boot/i386/boot2/Makefile#3 integrate .. //depot/projects/netperf_socket/sys/boot/i386/boot2/boot2.c#3 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/boot2/boot.h#2 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/boot2/disk.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/boot2/io.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/pc98/boot2/sys.c#2 integrate .. //depot/projects/netperf_socket/sys/coda/coda_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/coda/coda_vnops.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_file.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_misc.c#5 integrate .. //depot/projects/netperf_socket/sys/compat/linux/linux_uid16.c#3 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/hal_var.h#3 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/kern_ndis.c#17 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/ndis_var.h#9 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/ntoskrnl_var.h#9 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/pe_var.h#3 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/subr_hal.c#5 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/subr_ndis.c#13 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/subr_ntoskrnl.c#16 integrate .. //depot/projects/netperf_socket/sys/conf/NOTES#31 integrate .. //depot/projects/netperf_socket/sys/conf/files#42 integrate .. //depot/projects/netperf_socket/sys/conf/files.alpha#7 integrate .. //depot/projects/netperf_socket/sys/conf/files.amd64#13 integrate .. //depot/projects/netperf_socket/sys/conf/files.i386#24 integrate .. //depot/projects/netperf_socket/sys/conf/files.ia64#6 integrate .. //depot/projects/netperf_socket/sys/conf/files.pc98#13 integrate .. //depot/projects/netperf_socket/sys/conf/files.sparc64#7 integrate .. //depot/projects/netperf_socket/sys/conf/kern.pre.mk#13 integrate .. //depot/projects/netperf_socket/sys/conf/options#23 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/if_pfsync.c#9 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf.c#12 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_norm.c#6 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/net/pf_table.c#4 integrate .. //depot/projects/netperf_socket/sys/ddb/db_main.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/aac/aac.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/aac/aac_disk.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#33 integrate .. //depot/projects/netperf_socket/sys/dev/arl/if_arl.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/arl/if_arl_isa.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/arl/if_arlreg.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#11 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-chipset.c#12 integrate .. //depot/projects/netperf_socket/sys/dev/ciss/ciss.c#13 integrate .. //depot/projects/netperf_socket/sys/dev/ciss/cissio.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/ciss/cissreg.h#8 integrate .. //depot/projects/netperf_socket/sys/dev/digi/digi.c#14 integrate .. //depot/projects/netperf_socket/sys/dev/fdc/fdc_acpi.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/firewire.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndis.c#15 integrate .. //depot/projects/netperf_socket/sys/dev/io/iodev.c#1 branch .. //depot/projects/netperf_socket/sys/dev/mem/memdev.c#1 branch .. //depot/projects/netperf_socket/sys/dev/null/null.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/scd/scd.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/si/si.c#11 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/syscons.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_ns8250.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ehci.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ehcivar.h#2 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs_vfsops.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/devfs/devfs_vnops.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/fdescfs/fdesc_vfsops.c#6 integrate .. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/hpfs/hpfs_vnops.c#2 integrate .. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_vfsops.c#7 integrate .. //depot/projects/netperf_socket/sys/fs/msdosfs/msdosfs_vnops.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_subr.c#2 integrate .. //depot/projects/netperf_socket/sys/fs/ntfs/ntfs_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/nullfs/null_vfsops.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/nwfs/nwfs_vfsops.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/portalfs/portal_vfsops.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/pseudofs/pseudofs.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/pseudofs/pseudofs.h#3 integrate .. //depot/projects/netperf_socket/sys/fs/smbfs/smbfs_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/smbfs/smbfs_vnops.c#3 integrate .. //depot/projects/netperf_socket/sys/fs/udf/udf_vfsops.c#5 integrate .. //depot/projects/netperf_socket/sys/fs/umapfs/umap_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/fs/unionfs/union_vfsops.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/concat/g_concat.c#11 integrate .. //depot/projects/netperf_socket/sys/geom/concat/g_concat.h#8 integrate .. //depot/projects/netperf_socket/sys/geom/geom_mbr.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/geom_mirror.c#3 delete .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.c#1 branch .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.h#1 branch .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror_ctl.c#1 branch .. //depot/projects/netperf_socket/sys/geom/nop/g_nop.c#4 integrate .. //depot/projects/netperf_socket/sys/geom/nop/g_nop.h#3 integrate .. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.c#5 integrate .. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.h#4 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.c#7 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum.h#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_drive.c#7 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_init.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_plex.c#5 integrate .. //depot/projects/netperf_socket/sys/geom/vinum/geom_vinum_subr.c#4 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_vfsops.c#8 integrate .. //depot/projects/netperf_socket/sys/gnu/ext2fs/ext2_vnops.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_wakeup.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/genwakecode.sh#2 integrate .. //depot/projects/netperf_socket/sys/i386/conf/GENERIC#10 integrate .. //depot/projects/netperf_socket/sys/i386/conf/NOTES#24 integrate .. //depot/projects/netperf_socket/sys/i386/i386/autoconf.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/i386/io.c#1 branch .. //depot/projects/netperf_socket/sys/i386/i386/mem.c#8 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#21 integrate .. //depot/projects/netperf_socket/sys/i386/include/critical.h#4 integrate .. //depot/projects/netperf_socket/sys/i386/include/iodev.h#1 branch .. //depot/projects/netperf_socket/sys/i386/include/memdev.h#1 branch .. //depot/projects/netperf_socket/sys/i386/include/param.h#4 integrate .. //depot/projects/netperf_socket/sys/ia64/conf/GENERIC#5 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/autoconf.c#3 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/mem.c#6 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/pmap.c#15 integrate .. //depot/projects/netperf_socket/sys/ia64/include/cpufunc.h#3 integrate .. //depot/projects/netperf_socket/sys/ia64/include/critical.h#3 integrate .. //depot/projects/netperf_socket/sys/ia64/include/memdev.h#1 branch .. //depot/projects/netperf_socket/sys/isa/psm.c#8 integrate .. //depot/projects/netperf_socket/sys/isofs/cd9660/cd9660_vfsops.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/init_main.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/kern_acl.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/kern_exec.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/kern_exit.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/kern_fork.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/kern_idle.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/kern_ktrace.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/kern_mutex.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/kern_proc.c#12 integrate .. //depot/projects/netperf_socket/sys/kern/kern_prot.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/kern_resource.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/kern_shutdown.c#11 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sig.c#16 integrate .. //depot/projects/netperf_socket/sys/kern/kern_switch.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_synch.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sysctl.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/kern_xxx.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/sched_ule.c#16 integrate .. //depot/projects/netperf_socket/sys/kern/subr_turnstile.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/subr_witness.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/sys_process.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/sysv_shm.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_socket.c#35 integrate .. //depot/projects/netperf_socket/sys/kern/uipc_usrreq.c#21 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_aio.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_bio.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_cluster.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_init.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_mount.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_syscalls.c#14 integrate .. //depot/projects/netperf_socket/sys/libkern/iconv.c#2 integrate .. //depot/projects/netperf_socket/sys/modules/Makefile#13 integrate .. //depot/projects/netperf_socket/sys/modules/geom/Makefile#6 integrate .. //depot/projects/netperf_socket/sys/modules/geom/geom_mirror/Makefile#1 branch .. //depot/projects/netperf_socket/sys/modules/io/Makefile#1 branch .. //depot/projects/netperf_socket/sys/modules/mem/Makefile#1 branch .. //depot/projects/netperf_socket/sys/net/if.c#14 integrate .. //depot/projects/netperf_socket/sys/net/if.h#6 integrate .. //depot/projects/netperf_socket/sys/net/if_ef.c#5 integrate .. //depot/projects/netperf_socket/sys/net/if_ethersubr.c#19 integrate .. //depot/projects/netperf_socket/sys/net/if_loop.c#8 integrate .. //depot/projects/netperf_socket/sys/net/if_var.h#17 integrate .. //depot/projects/netperf_socket/sys/net/if_vlan.c#12 integrate .. //depot/projects/netperf_socket/sys/net/route.c#10 integrate .. //depot/projects/netperf_socket/sys/net/route.h#10 integrate .. //depot/projects/netperf_socket/sys/net80211/ieee80211_output.c#3 integrate .. //depot/projects/netperf_socket/sys/net80211/ieee80211_proto.c#4 integrate .. //depot/projects/netperf_socket/sys/netatm/spans/spans_kxdr.c#2 integrate .. //depot/projects/netperf_socket/sys/netgraph/atm/ng_atm.c#5 integrate .. //depot/projects/netperf_socket/sys/netgraph/netgraph.h#7 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_base.c#11 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_ether.c#8 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_fec.c#7 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_gif.c#6 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_parse.c#5 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_pppoe.c#6 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_pppoe.h#4 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_sample.c#5 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_socket.c#6 integrate .. //depot/projects/netperf_socket/sys/netinet/in_pcb.c#13 integrate .. //depot/projects/netperf_socket/sys/netinet/raw_ip.c#10 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_output.c#9 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_subr.c#13 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_usrreq.c#12 integrate .. //depot/projects/netperf_socket/sys/netinet/udp_usrreq.c#9 integrate .. //depot/projects/netperf_socket/sys/netinet6/in6_pcb.c#7 integrate .. //depot/projects/netperf_socket/sys/netinet6/raw_ip6.c#5 integrate .. //depot/projects/netperf_socket/sys/netinet6/udp6_usrreq.c#6 integrate .. //depot/projects/netperf_socket/sys/netipx/ipx_cksum.c#2 integrate .. //depot/projects/netperf_socket/sys/netsmb/smb_conn.c#5 integrate .. //depot/projects/netperf_socket/sys/nfs4client/nfs4_vfsops.c#7 integrate .. //depot/projects/netperf_socket/sys/nfs4client/nfs4_vnops.c#5 integrate .. //depot/projects/netperf_socket/sys/nfsclient/bootp_subr.c#6 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_diskless.c#3 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_vfsops.c#8 integrate .. //depot/projects/netperf_socket/sys/nfsclient/nfs_vnops.c#6 integrate .. //depot/projects/netperf_socket/sys/pc98/conf/GENERIC#10 integrate .. //depot/projects/netperf_socket/sys/pc98/conf/NOTES#16 integrate .. //depot/projects/netperf_socket/sys/powerpc/conf/GENERIC#6 integrate .. //depot/projects/netperf_socket/sys/powerpc/include/critical.h#3 integrate .. //depot/projects/netperf_socket/sys/powerpc/include/kdb.h#2 integrate .. //depot/projects/netperf_socket/sys/powerpc/include/reg.h#2 integrate .. //depot/projects/netperf_socket/sys/powerpc/powerpc/db_interface.c#3 integrate .. //depot/projects/netperf_socket/sys/powerpc/powerpc/machdep.c#6 integrate .. //depot/projects/netperf_socket/sys/powerpc/powerpc/pmap.c#12 integrate .. //depot/projects/netperf_socket/sys/powerpc/powerpc/trap_subr.S#5 integrate .. //depot/projects/netperf_socket/sys/security/mac_biba/mac_biba.c#6 integrate .. //depot/projects/netperf_socket/sys/security/mac_lomac/mac_lomac.c#5 integrate .. //depot/projects/netperf_socket/sys/security/mac_mls/mac_mls.c#6 integrate .. //depot/projects/netperf_socket/sys/sparc64/conf/GENERIC#8 integrate .. //depot/projects/netperf_socket/sys/sparc64/include/critical.h#3 integrate .. //depot/projects/netperf_socket/sys/sparc64/include/memdev.h#1 branch .. //depot/projects/netperf_socket/sys/sparc64/sparc64/mem.c#6 integrate .. //depot/projects/netperf_socket/sys/sparc64/sparc64/pmap.c#10 integrate .. //depot/projects/netperf_socket/sys/sys/_task.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/buf.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/cdefs.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/linker_set.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/mount.h#12 integrate .. //depot/projects/netperf_socket/sys/sys/mouse.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#21 integrate .. //depot/projects/netperf_socket/sys/sys/proc.h#20 integrate .. //depot/projects/netperf_socket/sys/sys/sysctl.h#8 integrate .. //depot/projects/netperf_socket/sys/sys/systm.h#8 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_alloc.c#6 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_extern.h#3 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_inode.c#3 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_snapshot.c#7 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_softdep.c#6 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_vfsops.c#9 integrate .. //depot/projects/netperf_socket/sys/ufs/ffs/ffs_vnops.c#6 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/inode.h#3 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_acl.c#2 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_inode.c#3 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_lookup.c#4 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_quota.c#4 integrate .. //depot/projects/netperf_socket/sys/ufs/ufs/ufs_vnops.c#5 integrate .. //depot/projects/netperf_socket/sys/vm/device_pager.c#5 integrate .. //depot/projects/netperf_socket/sys/vm/uma_core.c#11 integrate .. //depot/projects/netperf_socket/sys/vm/uma_int.h#3 integrate .. //depot/projects/netperf_socket/sys/vm/vm_extern.h#7 integrate .. //depot/projects/netperf_socket/sys/vm/vm_glue.c#11 integrate .. //depot/projects/netperf_socket/sys/vm/vm_kern.c#6 integrate .. //depot/projects/netperf_socket/sys/vm/vm_map.c#15 integrate .. //depot/projects/netperf_socket/sys/vm/vm_map.h#8 integrate .. //depot/projects/netperf_socket/sys/vm/vm_object.c#9 integrate .. //depot/projects/netperf_socket/sys/vm/vm_page.c#13 integrate Differences ... ==== //depot/projects/netperf_socket/sys/alpha/alpha/autoconf.c#3 (text+ko) ==== @@ -25,12 +25,10 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/autoconf.c,v 1.59 2004/07/08 22:35:33 brian Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/autoconf.c,v 1.60 2004/07/28 21:54:56 phk Exp $"); #include "opt_bootp.h" #include "opt_isa.h" -#include "opt_nfs.h" -#include "opt_nfsroot.h" #include #include @@ -67,8 +65,6 @@ device_t isa_bus_device = 0; #endif -extern int nfs_diskless_valid; /* XXX use include file */ - static void configure_start() { @@ -194,20 +190,3 @@ cold = 0; } - -/* - * Do legacy root filesystem discovery. This isn't really - * needed on the Alpha, which has always used the loader. - */ -void -cpu_rootconf() -{ -#if defined(NFSCLIENT) && defined(NFS_ROOT) - int order = 0; -#if !defined(BOOTP_NFSROOT) - if (nfs_diskless_valid) -#endif - rootdevnames[order++] = "nfs:"; -#endif -} -SYSINIT(cpu_rootconf, SI_SUB_ROOT_CONF, SI_ORDER_FIRST, cpu_rootconf, NULL) ==== //depot/projects/netperf_socket/sys/alpha/alpha/mem.c#6 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/mem.c,v 1.50 2004/06/16 09:46:26 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/mem.c,v 1.51 2004/08/01 11:40:50 markm Exp $"); /* * Memory special file @@ -59,85 +59,19 @@ #include #include -#ifdef PERFMON -#include -#endif #include #include #include -static struct cdev *memdev, *kmemdev; -#ifdef PERFMON -static struct cdev *perfdev; -#endif /* PERFMON */ - -static d_open_t mmopen; -static d_close_t mmclose; -static d_read_t mmrw; -static d_ioctl_t mmioctl; -static d_mmap_t memmmap; +#include -#define CDEV_MAJOR 2 -static struct cdevsw mem_cdevsw = { - .d_version = D_VERSION, - .d_open = mmopen, - .d_close = mmclose, - .d_read = mmrw, - .d_write = mmrw, - .d_ioctl = mmioctl, - .d_mmap = memmmap, - .d_name = "mem", - .d_maj = CDEV_MAJOR, - .d_flags = D_MEM | D_NEEDGIANT, -}; - struct mem_range_softc mem_range_softc; -static int -mmclose(struct cdev *dev, int flags, int fmt, struct thread *td) +/* ARGSUSED */ +int +memrw(struct cdev *dev, struct uio *uio, int flags) { - switch (minor(dev)) { -#ifdef PERFMON - case 32: - return perfmon_close(dev, flags, fmt, td); -#endif - default: - break; - } - return (0); -} - -static int -mmopen(struct cdev *dev, int flags, int fmt, struct thread *td) -{ - int error; - - switch (minor(dev)) { - case 0: - case 1: - if (flags & FWRITE) { - error = securelevel_gt(td->td_ucred, 0); - if (error) - return (error); - } - break; - case 32: -#ifdef PERFMON - return perfmon_open(dev, flags, fmt, td); -#else - return ENODEV; -#endif - default: - break; - } - return (0); -} - -/*ARGSUSED*/ -static int -mmrw(struct cdev *dev, struct uio *uio, int flags) -{ vm_offset_t o, v; int c = 0; struct iovec *iov; @@ -152,13 +86,10 @@ uio->uio_iov++; uio->uio_iovcnt--; if (uio->uio_iovcnt < 0) - panic("mmrw"); + panic("memrw"); continue; } - switch (minor(dev)) { - -/* minor device 0 is physical memory */ - case 0: + if (minor(dev) == CDEV_MINOR_MEM) { v = uio->uio_offset; kmemphys: /* Allow reads only in RAM. */ @@ -174,9 +105,8 @@ error = uiomove((caddr_t)ALPHA_PHYS_TO_K0SEG(v), c, uio); continue; - -/* minor device 1 is kernel memory */ - case 1: + } + else if (minor(dev) == CDEV_MINOR_KMEM) { v = uio->uio_offset; if (v >= ALPHA_K0SEG_BASE && v <= ALPHA_K0SEG_END) { @@ -186,8 +116,9 @@ c = min(iov->iov_len, MAXPHYS); /* - * Make sure that all of the pages are currently resident so - * that we don't create any zero-fill pages. + * Make sure that all of the pages are currently + * resident so that we don't create any zero-fill + * pages. */ addr = trunc_page(v); eaddr = round_page(v + c); @@ -203,22 +134,16 @@ error = uiomove((caddr_t)v, c, uio); continue; } - - if (error) - break; - iov->iov_base = (char *)iov->iov_base + c; - iov->iov_len -= c; - uio->uio_offset += c; - uio->uio_resid -= c; + /* else panic! */ } return (error); } -/*******************************************************\ -* allow user processes to MMAP some memory sections * -* instead of going through read/write * -\*******************************************************/ -static int +/* + * allow user processes to MMAP some memory sections + * instead of going through read/write + */ +int memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { /* @@ -227,7 +152,7 @@ * could be transient and hence incorrect or invalid at * a later time. */ - if (minor(dev) != 0) + if (minor(dev) != CDEV_MINOR_MEM) return (-1); /* @@ -239,59 +164,7 @@ return (0); } -static int -mmioctl(struct cdev *dev, u_long cmd, caddr_t cmdarg, int flags, struct thread *td) -{ - switch(minor(dev)) { -#ifdef PERFMON - case 32: - return perfmon_ioctl(dev, cmd, cmdarg, flags, td); -#endif - default: - return ENODEV; - } - - return (0); -} - -static int -mem_modevent(module_t mod, int type, void *data) +void +dev_mem_md_init(void) { - switch(type) { - case MOD_LOAD: - if (bootverbose) - printf("mem: \n"); -/* XXX - ??? */ -#if 0 - /* Initialise memory range handling */ - if (mem_range_softc.mr_op != NULL) - mem_range_softc.mr_op->init(&mem_range_softc); -#endif - - memdev = make_dev(&mem_cdevsw, 0, UID_ROOT, GID_KMEM, - 0640, "mem"); - kmemdev = make_dev(&mem_cdevsw, 1, UID_ROOT, GID_KMEM, - 0640, "kmem"); -#ifdef PERFMON - perfdev = make_dev(&mem_cdevsw, 32, UID_ROOT, GID_KMEM, - 0640, "perfmon"); -#endif /* PERFMON */ - return 0; - - case MOD_UNLOAD: - destroy_dev(memdev); - destroy_dev(kmemdev); -#ifdef PERFMON - destroy_dev(perfdev); -#endif /* PERFMON */ - return 0; - - case MOD_SHUTDOWN: - return 0; - - default: - return EOPNOTSUPP; - } } - -DEV_MODULE(mem, mem_modevent, NULL); ==== //depot/projects/netperf_socket/sys/alpha/alpha/pmap.c#15 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.163 2004/07/21 03:38:46 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.164 2004/07/29 18:56:30 alc Exp $"); #include #include @@ -1070,7 +1070,11 @@ */ if ((m = vm_page_alloc(NULL, ptepindex, VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO)) == NULL) { + PMAP_UNLOCK(pmap); + vm_page_unlock_queues(); VM_WAIT; + vm_page_lock_queues(); + PMAP_LOCK(pmap); /* * Indicate the need to retry. While waiting, the page table @@ -1107,10 +1111,8 @@ pt_entry_t* l2map; if (!pmap_pte_v(l1pte)) { if (_pmap_allocpte(pmap, NUSERLEV3MAPS + l1index) == NULL) { - vm_page_lock_queues(); vm_page_unhold(m); vm_page_free(m); - vm_page_unlock_queues(); return (NULL); } } else { @@ -1402,11 +1404,11 @@ pv->pv_pmap = pmap; pv->pv_ptem = mpte; - vm_page_lock_queues(); + PMAP_LOCK_ASSERT(pmap, MA_OWNED); + mtx_assert(&vm_page_queue_mtx, MA_OWNED); TAILQ_INSERT_TAIL(&pmap->pm_pvlist, pv, pv_plist); TAILQ_INSERT_TAIL(&m->md.pv_list, pv, pv_list); m->md.pv_list_count++; - vm_page_unlock_queues(); } /* @@ -1697,6 +1699,10 @@ #endif mpte = NULL; + + vm_page_lock_queues(); + PMAP_LOCK(pmap); + /* * In the case that a page table page is not * resident, we are creating it here. @@ -1762,11 +1768,7 @@ */ if (opa) { int err; - vm_page_lock_queues(); - PMAP_LOCK(pmap); err = pmap_remove_pte(pmap, pte, va); - PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); if (err) panic("pmap_enter: pte vanished, va: 0x%lx", va); } @@ -1820,6 +1822,8 @@ if (prot & VM_PROT_EXECUTE) alpha_pal_imb(); } + vm_page_unlock_queues(); + PMAP_UNLOCK(pmap); } /* @@ -1839,6 +1843,9 @@ register pt_entry_t *pte; int managed; + vm_page_lock_queues(); + PMAP_LOCK(pmap); + /* * In the case that a page table page is not * resident, we are creating it here. @@ -1892,12 +1899,10 @@ pte = vtopte(va); if (*pte) { if (mpte != NULL) { - vm_page_lock_queues(); pmap_unwire_pte_hold(pmap, va, mpte); - vm_page_unlock_queues(); + mpte = NULL; } - alpha_pal_imb(); /* XXX overkill? */ - return 0; + goto out; } /* @@ -1920,8 +1925,10 @@ * Now validate mapping with RO protection */ *pte = pmap_phys_to_pte(VM_PAGE_TO_PHYS(m)) | PG_V | PG_KRE | PG_URE | managed; - +out: alpha_pal_imb(); /* XXX overkill? */ + vm_page_unlock_queues(); + PMAP_UNLOCK(pmap); return mpte; } ==== //depot/projects/netperf_socket/sys/alpha/conf/GENERIC#6 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.172 2004/07/18 09:03:11 maxim Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.173 2004/08/01 11:40:50 markm Exp $ machine alpha cpu EV4 @@ -171,8 +171,10 @@ device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'') # Pseudo devices. +device loop # Network loopback +device mem # Memory and kernel memory devices +device null # Null and zero devices device random # Entropy device -device loop # Network loopback device ether # Ethernet support device sl # Kernel SLIP device ppp # Kernel PPP ==== //depot/projects/netperf_socket/sys/alpha/include/critical.h#3 (text+ko) ==== @@ -33,7 +33,7 @@ * related support functions residing * in //critical.c - prototyped * - * $FreeBSD: src/sys/alpha/include/critical.h,v 1.4 2004/03/05 09:19:59 le Exp $ + * $FreeBSD: src/sys/alpha/include/critical.h,v 1.5 2004/07/27 16:41:00 rwatson Exp $ */ #ifndef _MACHINE_CRITICAL_H_ @@ -55,11 +55,9 @@ * of td_critnest, prior to it being incremented to 1. */ static __inline void -cpu_critical_enter(void) +cpu_critical_enter(struct thread *td) { - struct thread *td; - td = curthread; td->td_md.md_savecrit = intr_disable(); } @@ -71,18 +69,16 @@ * exiting the last critical section. */ static __inline void -cpu_critical_exit(void) +cpu_critical_exit(struct thread *td) { - struct thread *td; - td = curthread; intr_restore(td->td_md.md_savecrit); } #else /* !__GNUC__ */ -void cpu_critical_enter(void); -void cpu_critical_exit(void); +void cpu_critical_enter(struct thread *td); +void cpu_critical_exit(struct thread *td); #endif /* __GNUC__ */ ==== //depot/projects/netperf_socket/sys/alpha/include/param.h#4 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/param.h,v 1.34 2004/07/02 20:21:41 jhb Exp $ */ +/* $FreeBSD: src/sys/alpha/include/param.h,v 1.35 2004/08/01 14:31:45 scottl Exp $ */ /* From: NetBSD: param.h,v 1.20 1997/09/19 13:52:53 leo Exp */ /* @@ -113,7 +113,10 @@ #define SSIZE 1 /* initial stack size/NBPG */ #define SINCR 1 /* increment of stack/NBPG */ +/* PREEMPTION exposes scheduler bugs that need to be fixed. */ +#if 0 #define PREEMPTION +#endif #ifndef KSTACK_PAGES #define KSTACK_PAGES 2 /* pages of kstack (with pcb) */ ==== //depot/projects/netperf_socket/sys/alpha/osf1/osf1_misc.c#4 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.46 2004/03/17 19:59:59 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/osf1/osf1_misc.c,v 1.47 2004/07/26 07:24:01 cperciva Exp $"); #include #include @@ -1048,7 +1048,7 @@ PROC_LOCK(p); oldcred = p->p_ucred; - if ((error = suser_cred(p->p_ucred, PRISON_ROOT)) != 0 && + if ((error = suser_cred(p->p_ucred, SUSER_ALLOWJAIL)) != 0 && uid != oldcred->cr_ruid && uid != oldcred->cr_svuid) { PROC_UNLOCK(p); uifree(uip); @@ -1102,7 +1102,7 @@ PROC_LOCK(p); oldcred = p->p_ucred; - if (((error = suser_cred(p->p_ucred, PRISON_ROOT)) != 0 ) && + if (((error = suser_cred(p->p_ucred, SUSER_ALLOWJAIL)) != 0 ) && gid != oldcred->cr_rgid && gid != oldcred->cr_svgid) { PROC_UNLOCK(p); crfree(newcred); ==== //depot/projects/netperf_socket/sys/amd64/amd64/autoconf.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/autoconf.c,v 1.180 2004/07/08 22:35:33 brian Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/autoconf.c,v 1.181 2004/07/28 21:54:56 phk Exp $"); /* * Setup the system to run on the current machine. @@ -45,8 +45,6 @@ */ #include "opt_bootp.h" #include "opt_isa.h" -#include "opt_nfs.h" -#include "opt_nfsroot.h" #include "opt_bus.h" #include @@ -66,10 +64,6 @@ #include #include #include -#include -#include -#include -#include #include @@ -136,22 +130,3 @@ printf("Device configuration finished.\n"); cold = 0; } - -/* - * Do legacy root filesystem discovery. - */ -void -cpu_rootconf() -{ -#ifdef BOOTP - bootpc_init(); -#endif -#if defined(NFSCLIENT) && defined(NFS_ROOT) -#if !defined(BOOTP_NFSROOT) - nfs_setup_diskless(); - if (nfs_diskless_valid) -#endif - rootdevnames[0] = "nfs:"; -#endif -} -SYSINIT(cpu_rootconf, SI_SUB_ROOT_CONF, SI_ORDER_FIRST, cpu_rootconf, NULL) ==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#12 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.614 2004/07/13 07:22:54 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.615 2004/07/31 14:02:29 davidxu Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1533,6 +1533,7 @@ tp->tf_rflags = rflags; tp->tf_rsp = mcp->mc_rsp; tp->tf_ss = mcp->mc_ss; + td->td_pcb->pcb_flags |= PCB_FULLCTX; return (0); } ==== //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#6 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.116 2004/06/16 09:46:27 phk Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.117 2004/08/01 11:40:50 markm Exp $"); /* * Memory special file @@ -47,7 +47,6 @@ #include #include #include -#include #include #include #include @@ -58,83 +57,20 @@ #include #include -#include -#include -#include #include -#include #include #include #include -static struct cdev *memdev, *kmemdev, *iodev; - -static d_open_t mmopen; -static d_close_t mmclose; -static d_read_t mmrw; -static d_ioctl_t mmioctl; -static d_mmap_t memmmap; +#include -#define CDEV_MAJOR 2 -static struct cdevsw mem_cdevsw = { - .d_version = D_VERSION, - .d_open = mmopen, - .d_close = mmclose, - .d_read = mmrw, - .d_write = mmrw, - .d_ioctl = mmioctl, - .d_mmap = memmmap, - .d_name = "mem", - .d_maj = CDEV_MAJOR, - .d_flags = D_MEM | D_NEEDGIANT, -}; - -MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors"); - struct mem_range_softc mem_range_softc; -static int -mmclose(struct cdev *dev, int flags, int fmt, struct thread *td) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 2 15:17:00 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C480516A4D0; Mon, 2 Aug 2004 15:16:59 +0000 (GMT) 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 A021216A4CE for ; Mon, 2 Aug 2004 15:16:59 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 96D1D43D41 for ; Mon, 2 Aug 2004 15:16:59 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i72FGx1l023475 for ; Mon, 2 Aug 2004 15:16:59 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i72FGxno023472 for perforce@freebsd.org; Mon, 2 Aug 2004 15:16:59 GMT (envelope-from jhb@freebsd.org) Date: Mon, 2 Aug 2004 15:16:59 GMT Message-Id: <200408021516.i72FGxno023472@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 58710 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: Mon, 02 Aug 2004 15:17:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=58710 Change 58710 by jhb@jhb_slimer on 2004/08/02 15:16:35 Fixup comment. Affected files ... .. //depot/projects/smpng/sys/i386/include/atomic.h#16 edit Differences ... ==== //depot/projects/smpng/sys/i386/include/atomic.h#16 (text+ko) ==== @@ -176,9 +176,9 @@ /* * We assume that a = b will do atomic loads and stores. However, on a - * PentiumPro or higher reads may pass writes, so for that case we have + * 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. For - * the 386 case, we can use a simple store since 386's don't support SMP. + * the 386 case we can use a simple read since 386s don't support SMP. */ #define ATOMIC_STORE_LOAD(TYPE, LOP) \ static __inline u_##TYPE \ From owner-p4-projects@FreeBSD.ORG Mon Aug 2 19:04:37 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 92C6C16A4D0; Mon, 2 Aug 2004 19:04:37 +0000 (GMT) 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 6D42316A4CE for ; Mon, 2 Aug 2004 19:04:37 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3EC6A43D75 for ; Mon, 2 Aug 2004 19:04:37 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i72J4ba2032298 for ; Mon, 2 Aug 2004 19:04:37 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i72J4aJl032295 for perforce@freebsd.org; Mon, 2 Aug 2004 19:04:36 GMT (envelope-from dfr@freebsd.org) Date: Mon, 2 Aug 2004 19:04:36 GMT Message-Id: <200408021904.i72J4aJl032295@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 58720 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: Mon, 02 Aug 2004 19:04:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=58720 Change 58720 by dfr@dfr_home on 2004/08/02 19:04:28 Factor out allocate_tls() and free_tls() since there are only two implementations - Variant I and Variant II which can be shared between the various cpu arches. Fix all the tier one and tier two platforms so that they compile. Of these, amd64 and ia64 might work (i.e. the code is written but untested). Code needs to be added to alpha and sparc64 to support the TLS relocations. Affected files ... .. //depot/projects/kse/libexec/rtld-elf/alpha/reloc.c#3 edit .. //depot/projects/kse/libexec/rtld-elf/amd64/reloc.c#4 edit .. //depot/projects/kse/libexec/rtld-elf/i386/reloc.c#10 edit .. //depot/projects/kse/libexec/rtld-elf/ia64/reloc.c#6 edit .. //depot/projects/kse/libexec/rtld-elf/rtld.c#13 edit .. //depot/projects/kse/libexec/rtld-elf/rtld.h#8 edit .. //depot/projects/kse/libexec/rtld-elf/sparc64/reloc.c#4 edit Differences ... ==== //depot/projects/kse/libexec/rtld-elf/alpha/reloc.c#3 (text+ko) ==== @@ -509,36 +509,15 @@ void allocate_initial_tls(Obj_Entry *list) { - Obj_Entry *obj; - size_t size; - char *tls; - Elf_Addr *dtv; - union descriptor ldt; - Elf_Addr segbase; - int sel; + void *tls; - size = 0; - for (obj = list; obj; obj = obj->next) { - if (obj->tlsoffset + obj->tlssize > size) - size = obj->tlsoffset + obj->tlssize; - } - - tls = malloc(size); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); - - *(Elf_Addr**) tls = dtv; - - dtv[0] = tls_dtv_generation; - dtv[1] = tls_max_index; - for (obj = list; obj; obj = obj->next) { - Elf_Addr addr = tls + obj->tlsoffset; - memset((void*) (addr + obj->tlsinitsize), - 0, obj->tlssize - obj->tlsinitsize); - if (obj->tlsinit) - memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); - dtv[obj->tlsindex] = addr; - } - + /* + * Fix the size of the static TLS block by using the maximum + * offset allocated so far and adding a bit for dynamic modules to + * use. + */ + tls_static_space = tls_last_offset + tls_last_size + RTLS_STATIC_TLS_EXTRA; + tls = allocate_tls(list, 0, 16, 16); alpha_pal_wrunique((u_int64_t) tls); } @@ -546,5 +525,5 @@ { Elf_Addr** tp = (Elf_Addr**) alpha_pal_rdunique(); - return tls_get_addr_common(&tp[0], ti->ti_module, ti->ti_offset); + return tls_get_addr_common(tp, ti->ti_module, ti->ti_offset); } ==== //depot/projects/kse/libexec/rtld-elf/amd64/reloc.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ #include #include -#include +#include #include #include @@ -214,7 +214,7 @@ const Elf_Sym *def; const Obj_Entry *defobj; - def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, + def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); if (def == NULL) goto done; @@ -235,7 +235,8 @@ } } - *where = (Elf_Addr) (def->st_value - defobj->tlsoffset); + *where = (Elf_Addr) (def->st_value - defobj->tlsoffset + + rela->r_addend); } break; @@ -244,7 +245,7 @@ const Elf_Sym *def; const Obj_Entry *defobj; - def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, + def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); if (def == NULL) goto done; @@ -265,7 +266,9 @@ } } - *where32 = (Elf32_Addr) (def->st_value - defobj->tlsoffset); + *where32 = (Elf32_Addr) (def->st_value - + defobj->tlsoffset + + rela->r_addend); } break; @@ -274,7 +277,7 @@ const Elf_Sym *def; const Obj_Entry *defobj; - def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, + def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); if (def == NULL) goto done; @@ -288,12 +291,12 @@ const Elf_Sym *def; const Obj_Entry *defobj; - def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, + def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); if (def == NULL) goto done; - *where += (Elf_Addr) def->st_value; + *where += (Elf_Addr) (def->st_value + rela->r_addend); } break; @@ -302,12 +305,12 @@ const Elf_Sym *def; const Obj_Entry *defobj; - def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, + def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); if (def == NULL) goto done; - *where32 += (Elf32_Addr) def->st_value; + *where32 += (Elf32_Addr) (def->st_value + rela->r_addend); } break; @@ -378,82 +381,17 @@ return 0; } -void * -allocate_tls(Objlist* list, size_t tcbsize, size_t tcbalign) -{ - Objlist_Entry *entry; - Obj_Entry *obj; - size_t size; - char *tls; - Elf_Addr *dtv; - Elf_Addr segbase, addr; - - size = round(tls_static_space, tcbalign); - - assert(tcbsize >= 2*sizeof(Elf_Addr)); - tls = malloc(size + tcbsize); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); - - segbase = (Elf_Addr)(tls + size); - ((Elf_Addr*)segbase)[0] = segbase; - ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv; - - dtv[0] = tls_dtv_generation; - dtv[1] = tls_max_index; - STAILQ_FOREACH(entry, list, link) { - obj = entry->obj; - if (obj->tlsoffset) { - addr = segbase - obj->tlsoffset; - memset((void*) (addr + obj->tlsinitsize), - 0, obj->tlssize - obj->tlsinitsize); - if (obj->tlsinit) - memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); - dtv[obj->tlsindex + 1] = addr; - } else if (obj->tlsindex) { - dtv[obj->tlsindex + 1] = 0; - } - } - - return (void*) segbase; -} - void -free_tls(Objlist *list, void *tls, size_t tcbsize, size_t tcbalign) +allocate_initial_tls(Obj_Entry *objs) { - size_t size; - Elf_Addr* dtv; - int dtvsize, i; - Elf_Addr tlsstart, tlsend; - /* - * Figure out the size of the initial TLS block so that we can - * find stuff which ___tls_get_addr() allocated dynamically. - */ - size = round(tls_static_space, tcbalign); - - dtv = ((Elf_Addr**)tls)[1]; - dtvsize = dtv[1]; - tlsend = (Elf_Addr) tls; - tlsstart = tlsend - size; - for (i = 0; i < dtvsize; i++) { - if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { - free((void*) dtv[i+2]); - } - } - - free((void*) tlsstart); -} - -void -allocate_initial_tls(Obj_Entry *list) -{ - /* * Fix the size of the static TLS block by using the maximum * offset allocated so far and adding a bit for dynamic modules to * use. */ - tls_static_space = tls_last_offset + 64; - amd64_set_fsbase(allocate_tls(list, 2*sizeof(Elf_Addr), 4)); + tls_static_space = tls_last_offset + RTLD_STATIC_TLS_EXTRA; + amd64_set_fsbase(allocate_tls(objs, 0, + 2*sizeof(Elf_Addr), sizeof(Elf_Addr))); } void *__tls_get_addr(tls_index *ti) @@ -461,7 +399,7 @@ Elf_Addr** segbase; Elf_Addr* dtv; - __asm __volatile("movl %%fs:0, %0" : "=r" (segbase)); + __asm __volatile("movq %%fs:0, %0" : "=r" (segbase)); dtv = segbase[1]; return tls_get_addr_common(&segbase[1], ti->ti_module, ti->ti_offset); ==== //depot/projects/kse/libexec/rtld-elf/i386/reloc.c#10 (text+ko) ==== @@ -348,101 +348,7 @@ return 0; } -void * -allocate_tls(Obj_Entry *objs, void *oldtls, size_t tcbsize, size_t tcbalign) -{ - Obj_Entry *obj; - size_t size; - char *tls; - Elf_Addr *dtv, *olddtv; - Elf_Addr segbase, oldsegbase, addr; - int i; - - size = round(tls_static_space, tcbalign); - - assert(tcbsize >= 2*sizeof(Elf_Addr)); - tls = malloc(size + tcbsize); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); - - segbase = (Elf_Addr)(tls + size); - ((Elf_Addr*)segbase)[0] = segbase; - ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv; - - dtv[0] = tls_dtv_generation; - dtv[1] = tls_max_index; - - if (oldtls) { - /* - * Copy the static TLS block over whole. - */ - oldsegbase = (Elf_Addr) oldtls; - memcpy((void *)(segbase - tls_static_space), - (const void *)(oldsegbase - tls_static_space), - tls_static_space); - - /* - * If any dynamic TLS blocks have been created tls_get_addr(), - * move them over. - */ - olddtv = ((Elf_Addr**)oldsegbase)[1]; - for (i = 0; i < olddtv[1]; i++) { - if (olddtv[i+2] < oldsegbase - size || olddtv[i+2] > oldsegbase) { - dtv[i+2] = olddtv[i+2]; - olddtv[i+2] = 0; - } - } - - /* - * We assume that this block was the one we created below with - * allocate_initial_tls(). - */ - free_tls(oldtls, 2*sizeof(Elf_Addr), 4); - } else { - for (obj = objs; obj; obj = obj->next) { - if (obj->tlsoffset) { - addr = segbase - obj->tlsoffset; - memset((void*) (addr + obj->tlsinitsize), - 0, obj->tlssize - obj->tlsinitsize); - if (obj->tlsinit) - memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); - dtv[obj->tlsindex + 1] = addr; - } else if (obj->tlsindex) { - dtv[obj->tlsindex + 1] = 0; - } - } - } - - return (void*) segbase; -} - void -free_tls(void *tls, size_t tcbsize, size_t tcbalign) -{ - size_t size; - Elf_Addr* dtv; - int dtvsize, i; - Elf_Addr tlsstart, tlsend; - - /* - * Figure out the size of the initial TLS block so that we can - * find stuff which ___tls_get_addr() allocated dynamically. - */ - size = round(tls_static_space, tcbalign); - - dtv = ((Elf_Addr**)tls)[1]; - dtvsize = dtv[1]; - tlsend = (Elf_Addr) tls; - tlsstart = tlsend - size; - for (i = 0; i < dtvsize; i++) { - if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { - free((void*) dtv[i+2]); - } - } - - free((void*) tlsstart); -} - -void allocate_initial_tls(Obj_Entry *objs) { void* tls; @@ -454,8 +360,8 @@ * offset allocated so far and adding a bit for dynamic modules to * use. */ - tls_static_space = tls_last_offset + 64; - tls = allocate_tls(objs, NULL, 2*sizeof(Elf_Addr), 4); + tls_static_space = tls_last_offset + RTLD_STATIC_TLS_EXTRA; + tls = allocate_tls(objs, NULL, 2*sizeof(Elf_Addr), sizeof(Elf_Addr)); memset(&ldt, 0, sizeof(ldt)); ldt.sd.sd_lolimit = 0xffff; /* 4G limit */ ==== //depot/projects/kse/libexec/rtld-elf/ia64/reloc.c#6 (text+ko) ==== @@ -284,7 +284,6 @@ case R_IA64_DTPMOD64LSB: { const Elf_Sym *def; const Obj_Entry *defobj; - Elf_Addr target; def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); @@ -298,7 +297,6 @@ case R_IA64_DTPREL64LSB: { const Elf_Sym *def; const Obj_Entry *defobj; - Elf_Addr target; def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); @@ -312,7 +310,6 @@ case R_IA64_TPREL64LSB: { const Elf_Sym *def; const Obj_Entry *defobj; - Elf_Addr target; def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj, false, cache); @@ -617,91 +614,23 @@ } void -allocate_tls(Objlist *list, size_t tcbsize, size_t tcbalign) -{ - Objlist_Entry *entry; - Obj_Entry *obj; - size_t size; - char *tls; - Elf_Addr *dtv; - union descriptor ldt; - Elf_Addr segbase, addr; - int sel; - - assert(tcbsize == 16); - assert(tcbalign == 16); - - size = tls_static_space; - - tls = malloc(size); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); - - *(Elf_Addr**) tls = dtv; - - dtv[0] = tls_dtv_generation; - dtv[1] = tls_max_index; - STAILQ_FOREACH(entry, list, link) { - obj = entry->obj; - if (obj->tlsoffset) { - addr = tls + obj->tlsoffset; - memset((void*) (addr + obj->tlsinitsize), - 0, obj->tlssize - obj->tlsinitsize); - if (obj->tlsinit) - memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); - dtv[obj->tlsindex + 1] = addr; - } else if (obj->tlsindex) { - dtv[obj->tlsindex + 1] = 0; - } - } - - return tls; -} - -void -free_tls(Objlist *list, void *tls, size_t tcbsize, size_t tcbalign) -{ - size_t size; - Elf_Addr* dtv; - int dtvsize, i; - Elf_Addr tlsstart, tlsend; - - /* - * Figure out the size of the initial TLS block so that we can - * find stuff which __tls_get_addr() allocated dynamically. - */ - size = tls_static_space; - - dtv = ((Elf_Addr**)tls)[0]; - dtvsize = dtv[1]; - tlsstart = (Elf_Addr) tls; - tlsend = tlsstart + size; - for (i = 0; i < dtvsize; i++) { - if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { - free((void*) dtv[i+2]); - } - } - - free((void*) tlsstart); -} - -void allocate_initial_tls(Obj_Entry *list) { - register struct Elf_Addr** tp __asm__("r13"); + register Elf_Addr** tp __asm__("r13"); /* * Fix the size of the static TLS block by using the maximum * offset allocated so far and adding a bit for dynamic modules to * use. */ - tls_static_space = tls_last_offset + tls_last_size + 64; + tls_static_space = tls_last_offset + tls_last_size + RTLD_STATIC_TLS_EXTRA; - tp = allocate_tls(list, 16, 16); + tp = allocate_tls(list, 0, 16, 16); } -void *__tls_get_addr(unsigned int module, unsigned int offset) +void *__tls_get_addr(unsigned long module, unsigned long offset) { - register struct Elf_Addr** tp __asm__("r13"); + register Elf_Addr** tp __asm__("r13"); - return tls_get_addr_common(&tp[0], module, offset); + return tls_get_addr_common(tp, module, offset); } ==== //depot/projects/kse/libexec/rtld-elf/rtld.c#13 (text+ko) ==== @@ -2508,6 +2508,209 @@ return (void*) (dtv[index + 1] + offset); } +/* XXX not sure what variants to use for arm and powerpc. */ + +#if defined(__ia64__) || defined(__alpha__) + +/* + * Allocate Static TLS using the Variant I method. + */ +void * +allocate_tls(Obj_Entry *objs, void *oldtls, size_t tcbsize, size_t tcbalign) +{ + Obj_Entry *obj; + size_t size; + char *tls; + Elf_Addr *dtv, *olddtv; + Elf_Addr addr; + int i; + + assert(tcbsize == 16); + assert(tcbalign == 16); + + size = tls_static_space; + + tls = malloc(size); + dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); + + *(Elf_Addr**) tls = dtv; + + dtv[0] = tls_dtv_generation; + dtv[1] = tls_max_index; + + if (oldtls) { + /* + * Copy the static TLS block over whole. + */ + memcpy(tls + tcbsize, oldtls + tcbsize, tls_static_space - tcbsize); + + /* + * If any dynamic TLS blocks have been created tls_get_addr(), + * move them over. + */ + olddtv = *(Elf_Addr**) oldtls; + for (i = 0; i < olddtv[1]; i++) { + if (olddtv[i+2] < (Elf_Addr)oldtls || + olddtv[i+2] > (Elf_Addr)oldtls + tls_static_space) { + dtv[i+2] = olddtv[i+2]; + olddtv[i+2] = 0; + } + } + + /* + * We assume that all tls blocks are allocated with the same + * size and alignment. + */ + free_tls(oldtls, tcbsize, tcbalign); + } else { + for (obj = objs; obj; obj = obj->next) { + if (obj->tlsoffset) { + addr = (Elf_Addr)tls + obj->tlsoffset; + memset((void*) (addr + obj->tlsinitsize), + 0, obj->tlssize - obj->tlsinitsize); + if (obj->tlsinit) + memcpy((void*) addr, obj->tlsinit, + obj->tlsinitsize); + dtv[obj->tlsindex + 1] = addr; + } else if (obj->tlsindex) { + dtv[obj->tlsindex + 1] = 0; + } + } + } + + return tls; +} + +void +free_tls(void *tls, size_t tcbsize, size_t tcbalign) +{ + size_t size; + Elf_Addr* dtv; + int dtvsize, i; + Elf_Addr tlsstart, tlsend; + + /* + * Figure out the size of the initial TLS block so that we can + * find stuff which __tls_get_addr() allocated dynamically. + */ + size = tls_static_space; + + dtv = ((Elf_Addr**)tls)[0]; + dtvsize = dtv[1]; + tlsstart = (Elf_Addr) tls; + tlsend = tlsstart + size; + for (i = 0; i < dtvsize; i++) { + if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { + free((void*) dtv[i+2]); + } + } + + free((void*) tlsstart); +} + +#endif + +#if defined(__i386__) || defined(__amd64__) || defined(__sparc64__) + +/* + * Allocate Static TLS using the Variant II method. + */ +void * +allocate_tls(Obj_Entry *objs, void *oldtls, size_t tcbsize, size_t tcbalign) +{ + Obj_Entry *obj; + size_t size; + char *tls; + Elf_Addr *dtv, *olddtv; + Elf_Addr segbase, oldsegbase, addr; + int i; + + size = round(tls_static_space, tcbalign); + + assert(tcbsize >= 2*sizeof(Elf_Addr)); + tls = malloc(size + tcbsize); + dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); + + segbase = (Elf_Addr)(tls + size); + ((Elf_Addr*)segbase)[0] = segbase; + ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv; + + dtv[0] = tls_dtv_generation; + dtv[1] = tls_max_index; + + if (oldtls) { + /* + * Copy the static TLS block over whole. + */ + oldsegbase = (Elf_Addr) oldtls; + memcpy((void *)(segbase - tls_static_space), + (const void *)(oldsegbase - tls_static_space), + tls_static_space); + + /* + * If any dynamic TLS blocks have been created tls_get_addr(), + * move them over. + */ + olddtv = ((Elf_Addr**)oldsegbase)[1]; + for (i = 0; i < olddtv[1]; i++) { + if (olddtv[i+2] < oldsegbase - size || olddtv[i+2] > oldsegbase) { + dtv[i+2] = olddtv[i+2]; + olddtv[i+2] = 0; + } + } + + /* + * We assume that this block was the one we created with + * allocate_initial_tls(). + */ + free_tls(oldtls, 2*sizeof(Elf_Addr), sizeof(Elf_Addr)); + } else { + for (obj = objs; obj; obj = obj->next) { + if (obj->tlsoffset) { + addr = segbase - obj->tlsoffset; + memset((void*) (addr + obj->tlsinitsize), + 0, obj->tlssize - obj->tlsinitsize); + if (obj->tlsinit) + memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); + dtv[obj->tlsindex + 1] = addr; + } else if (obj->tlsindex) { + dtv[obj->tlsindex + 1] = 0; + } + } + } + + return (void*) segbase; +} + +void +free_tls(void *tls, size_t tcbsize, size_t tcbalign) +{ + size_t size; + Elf_Addr* dtv; + int dtvsize, i; + Elf_Addr tlsstart, tlsend; + + /* + * Figure out the size of the initial TLS block so that we can + * find stuff which ___tls_get_addr() allocated dynamically. + */ + size = round(tls_static_space, tcbalign); + + dtv = ((Elf_Addr**)tls)[1]; + dtvsize = dtv[1]; + tlsend = (Elf_Addr) tls; + tlsstart = tlsend - size; + for (i = 0; i < dtvsize; i++) { + if (dtv[i+2] < tlsstart || dtv[i+2] > tlsend) { + free((void*) dtv[i+2]); + } + } + + free((void*) tlsstart); +} + +#endif + /* * Allocate TLS block for module with given index. */ ==== //depot/projects/kse/libexec/rtld-elf/rtld.h#8 (text+ko) ==== @@ -197,6 +197,8 @@ #define RTLD_MAGIC 0xd550b87a #define RTLD_VERSION 1 +#define RTLD_STATIC_TLS_EXTRA 64 + /* * Symbol cache entry used during relocation to avoid multiple lookups * of the same symbol. @@ -232,6 +234,8 @@ const Elf_Sym *symlook_obj(const char *, unsigned long, const Obj_Entry *, bool); void *tls_get_addr_common(Elf_Addr** dtvp, int index, size_t offset); +void *allocate_tls(Obj_Entry *, void *, size_t, size_t); +void free_tls(void *, size_t, size_t); void *allocate_module_tls(int index); bool allocate_tls_offset(Obj_Entry *obj); @@ -242,8 +246,6 @@ int reloc_non_plt(Obj_Entry *, Obj_Entry *); int reloc_plt(Obj_Entry *); int reloc_jmpslots(Obj_Entry *); -void *allocate_tls(Obj_Entry *, void *, size_t, size_t); -void free_tls(void *, size_t, size_t); void allocate_initial_tls(Obj_Entry *); #endif /* } */ ==== //depot/projects/kse/libexec/rtld-elf/sparc64/reloc.c#4 (text+ko) ==== @@ -719,47 +719,22 @@ } void -allocate_initial_tls(Obj_Entry *list) +allocate_initial_tls(Obj_Entry *objs) { - register struct Elf_Addr tp __asm__("%g7"); - Obj_Entry *obj; - size_t size; - char *tls; - Elf_Addr *dtv; - union descriptor ldt; - Elf_Addr segbase; - int sel; + register Elf_Addr** tp __asm__("%g7"); - size = 0; - for (obj = list; obj; obj = obj->next) { - if (obj->tlsoffset > size) - size = obj->tlsoffset; - } - - tls = malloc(size + 2*sizeof(Elf_Addr)); - dtv = malloc((tls_max_index + 2) * sizeof(Elf_Addr)); - - segbase = (Elf_Addr)(tls + size); - ((Elf_Addr*)segbase)[0] = segbase; - ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv; - - dtv[0] = tls_dtv_generation; - dtv[1] = tls_max_index; - for (obj = list; obj; obj = obj->next) { - Elf_Addr addr = segbase - obj->tlsoffset; - memset((void*) (addr + obj->tlsinitsize), - 0, obj->tlssize - obj->tlsinitsize); - if (obj->tlsinit) - memcpy((void*) addr, obj->tlsinit, obj->tlsinitsize); - dtv[obj->tlsindex] = addr; - } - - tp = segbase; + /* + * Fix the size of the static TLS block by using the maximum + * offset allocated so far and adding a bit for dynamic modules to + * use. + */ + tls_static_space = tls_last_offset + RTLD_STATIC_TLS_EXTRA; + tp = allocate_tls(objs, NULL, 2*sizeof(Elf_Addr), sizeof(Elf_Addr)); } void *__tls_get_addr(tls_index *ti) { - register struct Elf_Addr** tp __asm__("%g7"); + register Elf_Addr** tp __asm__("%g7"); - return tls_get_addr_common(&tp[0], ti->ti_module, ti->ti_offset); + return tls_get_addr_common(tp, ti->ti_module, ti->ti_offset); } From owner-p4-projects@FreeBSD.ORG Mon Aug 2 22:37:03 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A2D3A16A4D0; Mon, 2 Aug 2004 22:37:03 +0000 (GMT) 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 647D316A4CE for ; Mon, 2 Aug 2004 22:37:03 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 44FF843D5D for ; Mon, 2 Aug 2004 22:37:03 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i72Mb3UU045004 for ; Mon, 2 Aug 2004 22:37:03 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i72Mb2t9045001 for perforce@freebsd.org; Mon, 2 Aug 2004 22:37:02 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Mon, 2 Aug 2004 22:37:02 GMT Message-Id: <200408022237.i72Mb2t9045001@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 58740 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: Mon, 02 Aug 2004 22:37:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=58740 Change 58740 by rwatson@rwatson_paprika on 2004/08/02 22:36:53 Integ netperf_socket from FreeBSD CVS: /dev/null re-fixed for SMP. /dev/io re-fixed. More ALTQ driver support. TLS definitions for ELF. ATPIC interrupt optimizations. More KSE commenting. MBUMA/UMA now handle failed init. MAX_SAFE_MAXVNODES. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#7 integrate .. //depot/projects/netperf_socket/sys/amd64/include/elf.h#2 integrate .. //depot/projects/netperf_socket/sys/arm/include/endian.h#3 integrate .. //depot/projects/netperf_socket/sys/arm/include/vmparam.h#2 integrate .. //depot/projects/netperf_socket/sys/boot/ofw/common/main.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/ofw/libofw/libofw.h#2 integrate .. //depot/projects/netperf_socket/sys/boot/ofw/libofw/ofw_memory.c#2 integrate .. //depot/projects/netperf_socket/sys/boot/powerpc/loader/Makefile#4 integrate .. //depot/projects/netperf_socket/sys/dev/an/if_an.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/en/midway.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/hme/if_hme.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndis.c#16 integrate .. //depot/projects/netperf_socket/sys/dev/io/iodev.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/mem/memdev.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/null/null.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/random/randomdev.c#12 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#11 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ehci.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ehci_pci.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ehcireg.h#5 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ehcivar.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ohci.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ohci_pci.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/ohcivar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uhci.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uhci_pci.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uhcivar.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/usb/uhub.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/usb/usb.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/usb/usb_mem.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/wi/if_wi.c#6 integrate .. //depot/projects/netperf_socket/sys/geom/nop/g_nop.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/i386/intr_machdep.c#6 integrate .. //depot/projects/netperf_socket/sys/i386/i386/io_apic.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/i386/mem.c#9 integrate .. //depot/projects/netperf_socket/sys/i386/include/elf.h#2 integrate .. //depot/projects/netperf_socket/sys/i386/include/intr_machdep.h#3 integrate .. //depot/projects/netperf_socket/sys/i386/isa/atpic.c#7 integrate .. //depot/projects/netperf_socket/sys/ia64/conf/GENERIC#6 integrate .. //depot/projects/netperf_socket/sys/ia64/conf/SKI#4 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/mem.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_kse.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/kern_mbuf.c#3 integrate .. //depot/projects/netperf_socket/sys/kern/kern_proc.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/kern_thread.c#20 integrate .. //depot/projects/netperf_socket/sys/kern/sys_pipe.c#5 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_subr.c#18 integrate .. //depot/projects/netperf_socket/sys/modules/Makefile#14 integrate .. //depot/projects/netperf_socket/sys/pci/if_vr.c#11 integrate .. //depot/projects/netperf_socket/sys/powerpc/conf/GENERIC#7 integrate .. //depot/projects/netperf_socket/sys/powerpc/powerpc/trap.c#5 integrate .. //depot/projects/netperf_socket/sys/security/mac/mac_label.c#2 integrate .. //depot/projects/netperf_socket/sys/sys/gpt.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/mbuf.h#16 integrate .. //depot/projects/netperf_socket/sys/sys/param.h#22 integrate .. //depot/projects/netperf_socket/sys/vm/uma.h#4 integrate .. //depot/projects/netperf_socket/sys/vm/uma_core.c#12 integrate .. //depot/projects/netperf_socket/sys/vm/uma_dbg.c#3 integrate .. //depot/projects/netperf_socket/sys/vm/uma_dbg.h#2 integrate .. //depot/projects/netperf_socket/sys/vm/vm_map.c#16 integrate .. //depot/projects/netperf_socket/sys/vm/vm_mmap.c#10 integrate .. //depot/projects/netperf_socket/sys/vm/vm_object.c#10 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#7 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.117 2004/08/01 11:40:50 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.119 2004/08/02 20:36:47 markm Exp $"); /* * Memory special file @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -58,6 +59,7 @@ #include #include +#include #include #include @@ -65,8 +67,19 @@ #include +/* + * Used in /dev/mem drivers and elsewhere + */ +MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors"); struct mem_range_softc mem_range_softc; +void +mem_range_AP_init(void) +{ + if (mem_range_softc.mr_op && mem_range_softc.mr_op->initAP) + mem_range_softc.mr_op->initAP(&mem_range_softc); +} + /* ARGSUSED */ int memrw(struct cdev *dev, struct uio *uio, int flags) @@ -137,8 +150,10 @@ * allow user processes to MMAP some memory sections * instead of going through read/write */ +/* ARGSUSED */ int -memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) +memmmap(struct cdev *dev, vm_offset_t offset, vm_paddr_t *paddr, + int prot __unused) { if (minor(dev) == CDEV_MINOR_MEM) *paddr = offset; @@ -154,8 +169,9 @@ * This is basically just an ioctl shim for mem_range_attr_get * and mem_range_attr_set. */ +/* ARGSUSED */ int -memioctl(struct cdev *dev, u_long cmd, caddr_t data, int flags, +memioctl(struct cdev *dev __unused, u_long cmd, caddr_t data, int flags, struct thread *td) { int nd, error = 0; @@ -236,15 +252,6 @@ return (mem_range_softc.mr_op->set(&mem_range_softc, mrd, arg)); } -#ifdef SMP -void -mem_range_AP_init(void) -{ - if (mem_range_softc.mr_op && mem_range_softc.mr_op->initAP) - (mem_range_softc.mr_op->initAP(&mem_range_softc)); -} -#endif - void dev_mem_md_init(void) { ==== //depot/projects/netperf_socket/sys/amd64/include/elf.h#2 (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.16 2003/09/25 01:10:23 peter Exp $ + * $FreeBSD: src/sys/amd64/include/elf.h,v 1.17 2004/08/02 19:12:17 dfr Exp $ */ #ifndef _MACHINE_ELF_H_ @@ -124,8 +124,16 @@ #define R_X86_64_PC16 13 /* Add 16 bit signed extended pc relative symbol value */ #define R_X86_64_8 14 /* Add 8 bit zero extended symbol value */ #define R_X86_64_PC8 15 /* Add 8 bit signed extended pc relative symbol value */ +#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ +#define R_X86_64_DTPOFF64 17 /* Offset in TLS block */ +#define R_X86_64_TPOFF64 18 /* Offset in static TLS block */ +#define R_X86_64_TLSGD 19 /* PC relative offset to GD GOT entry */ +#define R_X86_64_TLSLD 20 /* PC relative offset to LD GOT entry */ +#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ +#define R_X86_64_GOTTPOFF 22 /* PC relative offset to IE GOT entry */ +#define R_X86_64_TPOFF32 23 /* Offset in static TLS block */ -#define R_X86_64_COUNT 16 /* Count of defined relocation types. */ +#define R_X86_64_COUNT 24 /* Count of defined relocation types. */ /* Define "machine" characteristics */ #if __ELF_WORD_SIZE == 32 ==== //depot/projects/netperf_socket/sys/arm/include/endian.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * * @(#)endian.h 8.1 (Berkeley) 6/10/93 * $NetBSD: endian.h,v 1.7 1999/08/21 05:53:51 simonb Exp $ - * $FreeBSD: src/sys/arm/include/endian.h,v 1.3 2004/05/04 22:24:56 cognet Exp $ + * $FreeBSD: src/sys/arm/include/endian.h,v 1.4 2004/08/02 12:24:18 cognet Exp $ */ #ifndef _ENDIAN_H_ @@ -56,8 +56,8 @@ #define _QUAD_LOWWORD 0 #define __ntohl(x) (__bswap32(x)) #define __ntohs(x) (__bswap16(x)) -#define __htonl(x) (__bswap16(x)) -#define __htons(x) (__bswap32(x)) +#define __htonl(x) (__bswap32(x)) +#define __htons(x) (__bswap16(x)) static __inline __uint64_t __bswap64(__uint64_t _x) ==== //depot/projects/netperf_socket/sys/arm/include/vmparam.h#2 (text+ko) ==== @@ -28,7 +28,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/vmparam.h,v 1.1 2004/05/14 11:46:44 cognet Exp $ + * $FreeBSD: src/sys/arm/include/vmparam.h,v 1.2 2004/08/02 12:23:53 cognet Exp $ */ #ifndef _MACHINE_VMPARAM_H_ @@ -112,8 +112,9 @@ #define VM_MAX_KERNEL_ADDRESS 0xffffffff /* - * * Virtual size (bytes) for various kernel submaps. - * */ + * Virtual size (bytes) for various kernel submaps. + */ + #ifndef VM_KMEM_SIZE #define VM_KMEM_SIZE (12*1024*1024) #endif ==== //depot/projects/netperf_socket/sys/boot/ofw/common/main.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ofw/common/main.c,v 1.5 2004/01/04 23:27:31 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/common/main.c,v 1.6 2004/08/02 03:05:09 grehan Exp $"); #include #include "openfirm.h" @@ -42,6 +42,7 @@ extern char bootprog_maker[]; phandle_t chosen; +u_int32_t acells; static char bootargs[128]; @@ -60,31 +61,40 @@ setheap(base, (void *)((int)base + HEAP_SIZE)); } -uint32_t +uint64_t memsize(void) { ihandle_t meminstance; phandle_t memory; struct ofw_reg reg[4]; + struct ofw_reg2 reg2[8]; int i; - int sz, memsz; + u_int64_t sz, memsz; OF_getprop(chosen, "memory", &meminstance, sizeof(meminstance)); memory = OF_instance_to_package(meminstance); - sz = OF_getprop(memory, "reg", ®, sizeof(reg)); + if (acells == 1) { + sz = OF_getprop(memory, "reg", ®, sizeof(reg)); + sz /= sizeof(struct ofw_reg); + + for (i = 0, memsz = 0; i < sz; i++) + memsz += reg[i].size; + } else if (acells == 2) { + sz = OF_getprop(memory, "reg", ®2, sizeof(reg2)); + sz /= sizeof(struct ofw_reg2); - sz /= sizeof(struct ofw_reg); + for (i = 0, memsz = 0; i < sz; i++) + memsz += reg2[i].size; + } - for (i = 0, memsz = 0; i < sz; i++) - memsz += reg[i].size; - return (memsz); } int main(int (*openfirm)(void *)) { + phandle_t root; int i; char bootpath[64]; char *ch; @@ -96,8 +106,12 @@ */ OF_init(openfirm); + root = OF_finddevice("/"); chosen = OF_finddevice("/chosen"); + acells = 1; + OF_getprop(root, "#address-cells", &acells, sizeof(acells)); + /* * Set up console. */ @@ -125,7 +139,7 @@ printf("\n"); printf("%s, Revision %s\n", bootprog_name, bootprog_rev); printf("(%s, %s)\n", bootprog_maker, bootprog_date); - printf("Memory: %dKB\n", memsize() / 1024); + printf("Memory: %lldKB\n", memsize() / 1024); OF_getprop(chosen, "bootpath", bootpath, 64); ch = index(bootpath, ':'); @@ -142,7 +156,7 @@ bargc = 0; parse(&bargc, &bargv, bootargs); if (bargc == 1) - env_setenv("currdev", EV_VOLATILE, bargv[0], ofw_setcurrdev, + env_setenv("currdev", EV_VOLATILE, bargv[0], ofw_setcurrdev, env_nounset); else env_setenv("currdev", EV_VOLATILE, bootpath, @@ -180,6 +194,6 @@ command_memmap(int argc, char **argv) { - ofw_memmap(); + ofw_memmap(acells); return (CMD_OK); } ==== //depot/projects/netperf_socket/sys/boot/ofw/libofw/libofw.h#2 (text+ko) ==== @@ -22,7 +22,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/boot/ofw/libofw/libofw.h,v 1.8 2003/12/21 12:38:25 grehan Exp $ + * $FreeBSD: src/sys/boot/ofw/libofw/libofw.h,v 1.9 2004/08/02 03:05:09 grehan Exp $ */ #include "openfirm.h" @@ -50,7 +50,7 @@ extern int ofw_boot(void); extern int ofw_autoload(void); -void ofw_memmap(void); +void ofw_memmap(int); void *ofw_alloc_heap(unsigned int); void ofw_release_heap(void); @@ -70,4 +70,11 @@ cell_t size; }; +struct ofw_reg2 +{ + cell_t base_hi; + cell_t base_lo; + cell_t size; +}; + extern int (*openfirmware)(void *); ==== //depot/projects/netperf_socket/sys/boot/ofw/libofw/ofw_memory.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_memory.c,v 1.4 2004/01/04 23:27:31 obrien Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/ofw/libofw/ofw_memory.c,v 1.5 2004/08/02 03:05:09 grehan Exp $"); #include #include @@ -45,34 +45,74 @@ int mode; }; +struct ofw_mapping2 { + vm_offset_t va; + int len; + vm_offset_t pa_hi; + vm_offset_t pa_lo; + int mode; +}; + void -ofw_memmap(void) +ofw_memmap(int acells) { - phandle_t mmup; - int nmapping, i; - struct ofw_mapping mappings[256]; - - mmup = OF_instance_to_package(mmu); - - bzero(mappings, sizeof(mappings)); - - nmapping = OF_getprop(mmup, "translations", mappings, sizeof(mappings)); + struct ofw_mapping *mapptr; + struct ofw_mapping2 *mapptr2; + phandle_t mmup; + int nmapping, i; + u_char mappings[256 * sizeof(struct ofw_mapping2)]; + char lbuf[80]; + + mmup = OF_instance_to_package(mmu); + + bzero(mappings, sizeof(mappings)); + + nmapping = OF_getprop(mmup, "translations", mappings, sizeof(mappings)); if (nmapping == -1) { printf("Could not get memory map (%d)\n", nmapping); return; } - nmapping /= sizeof(struct ofw_mapping); + + pager_open(); + if (acells == 1) { + nmapping /= sizeof(struct ofw_mapping); + mapptr = (struct ofw_mapping *) mappings; + + printf("%17s\t%17s\t%8s\t%6s\n", "Virtual Range", + "Physical Range", "#Pages", "Mode"); + + for (i = 0; i < nmapping; i++) { + sprintf(lbuf, "%08x-%08x\t%08x-%08x\t%8d\t%6x\n", + mapptr[i].va, + mapptr[i].va + mapptr[i].len, + mapptr[i].pa, + mapptr[i].pa + mapptr[i].len, + mapptr[i].len / 0x1000, + mapptr[i].mode); + if (pager_output(lbuf)) + break; + } + } else { + nmapping /= sizeof(struct ofw_mapping2); + mapptr2 = (struct ofw_mapping2 *) mappings; - printf("%17s %17s %8s %6s\n", "Virtual Range", "Physical Range", - "#Pages", "Mode"); + printf("%17s\t%17s\t%8s\t%6s\n", "Virtual Range", + "Physical Range", "#Pages", "Mode"); - for (i = 0; i < nmapping; i++) { - printf("%08x-%08x %08x-%08x %8d %6x\n", mappings[i].pa, - mappings[i].pa + mappings[i].len, mappings[i].va, - mappings[i].va + mappings[i].len, mappings[i].len / 0x1000, - mappings[i].mode); + for (i = 0; i < nmapping; i++) { + sprintf(lbuf, "%08x-%08x\t%08x-%08x\t%8d\t%6x\n", + mapptr2[i].va, + mapptr2[i].va + mapptr2[i].len, + mapptr2[i].pa_lo, + mapptr2[i].pa_lo + mapptr2[i].len, + mapptr2[i].len / 0x1000, + mapptr2[i].mode); + if (pager_output(lbuf)) + break; + } } + pager_close(); } void * ==== //depot/projects/netperf_socket/sys/boot/powerpc/loader/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/boot/powerpc/loader/Makefile,v 1.14 2004/07/08 12:52:35 grehan Exp $ +# $FreeBSD: src/sys/boot/powerpc/loader/Makefile,v 1.15 2004/08/02 03:06:21 grehan Exp $ PROG= loader NOMAN= @@ -69,6 +69,9 @@ LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.powerpc +# 64-bit bridge extensions +CFLAGS+= -Wa,-mppc64bridge + # Pull in common loader code .PATH: ${.CURDIR}/../../ofw/common .include "${.CURDIR}/../../ofw/common/Makefile.inc" ==== //depot/projects/netperf_socket/sys/dev/an/if_an.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.62 2004/06/17 02:19:11 ambrisko Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/an/if_an.c,v 1.63 2004/08/01 23:58:03 mlaier Exp $"); /* * The Aironet 4500/4800 series cards come in PCMCIA, ISA and PCI form. @@ -760,7 +760,9 @@ ifp->if_watchdog = an_watchdog; ifp->if_init = an_init; ifp->if_baudrate = 10000000; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; + IFQ_SET_READY(&ifp->if_snd); bzero(sc->an_config.an_nodename, sizeof(sc->an_config.an_nodename)); bcopy(AN_DEFAULT_NODENAME, sc->an_config.an_nodename, @@ -1254,7 +1256,7 @@ /* Re-enable interrupts. */ CSR_WRITE_2(sc, AN_INT_EN(sc->mpi350), AN_INTRS(sc->mpi350)); - if ((ifp->if_flags & IFF_UP) && (ifp->if_snd.ifq_head != NULL)) + if ((ifp->if_flags & IFF_UP) && !IFQ_DRV_IS_EMPTY(&ifp->if_snd)) an_start(ifp); AN_UNLOCK(sc); @@ -2655,7 +2657,7 @@ /* We can't send in monitor mode so toss any attempts. */ if (sc->an_monitor && (ifp->if_flags & IFF_PROMISC)) { for (;;) { - IF_DEQUEUE(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) break; m_freem(m0); @@ -2669,7 +2671,7 @@ bzero((char *)&tx_frame_802_3, sizeof(tx_frame_802_3)); while (sc->an_rdata.an_tx_ring[idx] == 0) { - IF_DEQUEUE(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) break; @@ -2730,7 +2732,7 @@ while (sc->an_rdata.an_tx_empty || idx != sc->an_rdata.an_tx_cons) { - IF_DEQUEUE(&ifp->if_snd, m0); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m0); if (m0 == NULL) { break; } ==== //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#7 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.54 2004/04/05 04:42:42 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.55 2004/08/01 23:58:04 mlaier Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -304,7 +304,9 @@ ifp->if_watchdog = ath_watchdog; ifp->if_ioctl = ath_ioctl; ifp->if_init = ath_init; - ifp->if_snd.ifq_maxlen = IFQ_MAXLEN; + IFQ_SET_MAXLEN(&ifp->if_snd, IFQ_MAXLEN); + ifp->if_snd.ifq_drv_maxlen = IFQ_MAXLEN; + IFQ_SET_READY(&ifp->if_snd); ic->ic_softc = sc; ic->ic_newassoc = ath_newassoc; @@ -662,7 +664,7 @@ ath_stoprecv(sc); else sc->sc_rxlink = NULL; - IF_DRAIN(&ifp->if_snd); + IFQ_DRV_PURGE(&ifp->if_snd); ath_beacon_free(sc); ieee80211_new_state(ic, IEEE80211_S_INIT, -1); if (!sc->sc_invalid) @@ -759,7 +761,7 @@ ATH_TXBUF_UNLOCK(sc); break; } - IF_DEQUEUE(&ifp->if_snd, m); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); /* XXX: LOCK */ if (m == NULL) { ATH_TXBUF_LOCK(sc); TAILQ_INSERT_TAIL(&sc->sc_txbuf, bf, bf_list); ==== //depot/projects/netperf_socket/sys/dev/en/midway.c#4 (text+ko) ==== @@ -33,7 +33,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/sys/dev/en/midway.c,v 1.62 2004/07/10 21:03:52 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/en/midway.c,v 1.63 2004/08/02 00:18:34 green Exp $"); /* * @@ -437,25 +437,21 @@ * * LOCK: any, not needed */ -static void -en_map_ctor(void *mem, int size, void *arg) +static int +en_map_ctor(void *mem, int size, void *arg, int flags) { struct en_softc *sc = arg; struct en_map *map = mem; int err; - if (map->sc == NULL) - map->sc = sc; - - if (!(map->flags & ENMAP_ALLOC)) { - err = bus_dmamap_create(sc->txtag, 0, &map->map); - if (err != 0) - if_printf(&sc->ifatm.ifnet, - "cannot create DMA map %d\n", err); - else - map->flags |= ENMAP_ALLOC; + err = bus_dmamap_create(sc->txtag, 0, &map->map); + if (err != 0) { + if_printf(&sc->ifatm.ifnet, "cannot create DMA map %d\n", err); + return (err); } - map->flags &= ~ENMAP_LOADED; + map->flags = ENMAP_ALLOC; + map->sc = sc; + return (0); } /* @@ -490,8 +486,7 @@ { struct en_map *map = mem; - if (map->flags & ENMAP_ALLOC) - bus_dmamap_destroy(map->sc->txtag, map->map); + bus_dmamap_destroy(map->sc->txtag, map->map); } /*********************************************************************/ @@ -1041,11 +1036,9 @@ * locks. */ map = uma_zalloc_arg(sc->map_zone, sc, M_NOWAIT); - if (map == NULL || !(map->flags & ENMAP_ALLOC)) { + if (map == NULL) { /* drop that packet */ EN_COUNT(sc->stats.txnomap); - if (map != NULL) - uma_zfree(sc->map_zone, map); EN_UNLOCK(sc); m_freem(m); continue; @@ -2330,13 +2323,11 @@ if (m != NULL) { /* M_NOWAIT - called from interrupt context */ map = uma_zalloc_arg(sc->map_zone, sc, M_NOWAIT); - if (map == NULL || !(map->flags & ENMAP_ALLOC)) { + if (map == NULL) { rx.post_skip += mlen; m_freem(m); DBG(sc, SERV, ("rx%td: out of maps", slot - sc->rxslot)); - if (map->map != NULL) - uma_zfree(sc->map_zone, map); goto skip; } rx.m = m; ==== //depot/projects/netperf_socket/sys/dev/hme/if_hme.c#9 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.27 2004/06/12 02:23:06 marius Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/hme/if_hme.c,v 1.28 2004/08/01 23:58:04 mlaier Exp $"); /* * HME Ethernet module driver. @@ -276,7 +276,9 @@ ifp->if_ioctl = hme_ioctl; ifp->if_init = hme_init; ifp->if_watchdog = hme_watchdog; - ifp->if_snd.ifq_maxlen = HME_NTXQ; + IFQ_SET_MAXLEN(&ifp->if_snd, HME_NTXQ); + ifp->if_snd.ifq_drv_maxlen = HME_NTXQ; + IFQ_SET_READY(&ifp->if_snd); hme_mifinit(sc); @@ -1002,14 +1004,14 @@ error = 0; for (;;) { - IF_DEQUEUE(&ifp->if_snd, m); + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); if (m == NULL) break; error = hme_load_txmbuf(sc, m); if (error == -1) { ifp->if_flags |= IFF_OACTIVE; - IF_PREPEND(&ifp->if_snd, m); + IFQ_DRV_PREPEND(&ifp->if_snd, m); break; } else if (error > 0) { printf("hme_start: error %d while loading mbuf\n", ==== //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndis.c#16 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.67 2004/08/01 22:25:12 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/if_ndis/if_ndis.c,v 1.68 2004/08/01 23:58:04 mlaier Exp $"); #include "opt_bdg.h" @@ -490,7 +490,13 @@ ifp->if_watchdog = ndis_watchdog; ifp->if_init = ndis_init; ifp->if_baudrate = 10000000; +#if __FreeBSD_version < 502114 ifp->if_snd.ifq_maxlen = 50; +#else + IFQ_SET_MAXLEN(&ifp->if_snd, 50); + ifp->if_snd.ifq_drv_maxlen = 25; + IFQ_SET_READY(&ifp->if_snd); +#endif ifp->if_capenable = ifp->if_capabilities; ifp->if_hwassist = sc->ndis_hwassist; @@ -1151,7 +1157,11 @@ struct ifnet *ifp; ifp = arg; +#if __FreeBSD_version < 502114 if (ifp->if_snd.ifq_head != NULL) +#else + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) +#endif ndis_start(ifp); return; } @@ -1191,15 +1201,24 @@ p0 = &sc->ndis_txarray[sc->ndis_txidx]; while(sc->ndis_txpending) { +#if __FreeBSD_version < 502114 IF_DEQUEUE(&ifp->if_snd, m); +#else + IFQ_DRV_DEQUEUE(&ifp->if_snd, m); +#endif if (m == NULL) break; sc->ndis_txarray[sc->ndis_txidx] = NULL; if (ndis_mtop(m, &sc->ndis_txarray[sc->ndis_txidx])) { +#if __FreeBSD_version >= 502114 + IFQ_DRV_PREPEND(&ifp->if_snd, m); +#endif NDIS_UNLOCK(sc); +#if __FreeBSD_version < 502114 IF_PREPEND(&ifp->if_snd, m); +#endif return; } ==== //depot/projects/netperf_socket/sys/dev/io/iodev.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/io/iodev.c,v 1.1 2004/08/01 11:40:52 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/io/iodev.c,v 1.2 2004/08/02 20:42:28 markm Exp $"); #include #include @@ -87,3 +87,4 @@ } DEV_MODULE(io, io_modevent, NULL); +MODULE_VERSION(io, 1); ==== //depot/projects/netperf_socket/sys/dev/mem/memdev.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mem/memdev.c,v 1.1 2004/08/01 11:40:52 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mem/memdev.c,v 1.2 2004/08/02 20:42:28 markm Exp $"); #include #include @@ -106,3 +106,4 @@ } DEV_MODULE(mem, mem_modevent, NULL); +MODULE_VERSION(mem, 1); ==== //depot/projects/netperf_socket/sys/dev/null/null.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/null/null.c,v 1.29 2004/08/01 18:22:44 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/null/null.c,v 1.30 2004/08/02 19:59:41 markm Exp $"); #include #include @@ -49,8 +49,8 @@ static d_read_t zero_read; #define CDEV_MAJOR 2 -#define NULL_MINOR 0 -#define ZERO_MINOR 1 +#define NULL_MINOR 2 +#define ZERO_MINOR 12 static struct cdevsw null_cdevsw = { .d_version = D_VERSION, @@ -140,3 +140,4 @@ } DEV_MODULE(null, null_modevent, NULL); +MODULE_VERSION(null, 1); ==== //depot/projects/netperf_socket/sys/dev/random/randomdev.c#12 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/random/randomdev.c,v 1.57 2004/07/18 09:07:58 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/random/randomdev.c,v 1.58 2004/08/02 20:42:28 markm Exp $"); #include #include @@ -227,3 +227,4 @@ } DEV_MODULE(random, random_modevent, NULL); +MODULE_VERSION(random, 1); ==== //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#11 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.425 2004/07/28 06:29:02 kan Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.426 2004/08/02 02:07:56 scottl Exp $"); #include "opt_syscons.h" #include "opt_splash.h" @@ -135,7 +135,7 @@ static int enable_panic_key; SYSCTL_INT(_machdep, OID_AUTO, enable_panic_key, CTLFLAG_RW, &enable_panic_key, - 0, ""); + 0, "Enable panic via keypress specified in kbdmap(5)"); #define SC_CONSOLECTL 255 ==== //depot/projects/netperf_socket/sys/dev/usb/ehci.c#8 (text+ko) ==== @@ -17,7 +17,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/usb/ehci.c,v 1.12 2004/08/01 18:47:42 iedowse Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/ehci.c,v 1.14 2004/08/02 15:37:34 iedowse Exp $"); /* * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -168,11 +168,6 @@ } u; }; -#if defined(__NetBSD__) || defined(__OpenBSD__) -Static void ehci_shutdown(void *); -Static void ehci_power(int, void *); -#endif - Static usbd_status ehci_open(usbd_pipe_handle); Static void ehci_poll(struct usbd_bus *); Static void ehci_softintr(void *); @@ -930,32 +925,38 @@ ehci_intr1(sc); } -#if defined(__NetBSD__) || defined(__OpenBSD__) int ehci_detach(struct ehci_softc *sc, int flags) { int rv = 0; +#if defined(__NetBSD__) || defined(__OpenBSD__) if (sc->sc_child != NULL) rv = config_detach(sc->sc_child, flags); if (rv != 0) return (rv); +#endif + EOWRITE4(sc, EHCI_USBINTR, sc->sc_eintrs); + EOWRITE4(sc, EHCI_USBCMD, 0); + EOWRITE4(sc, EHCI_USBCMD, EHCI_CMD_HCRESET); usb_uncallout(sc->sc_tmo_pcd, ehci_pcd_enable, sc); +#if defined(__NetBSD__) || defined(__OpenBSD__) if (sc->sc_powerhook != NULL) powerhook_disestablish(sc->sc_powerhook); if (sc->sc_shutdownhook != NULL) shutdownhook_disestablish(sc->sc_shutdownhook); +#endif usb_delay_ms(&sc->sc_bus, 300); /* XXX let stray task complete */ + usb_freemem(&sc->sc_bus, &sc->sc_fldma); /* XXX free other data structures XXX */ return (rv); } -#endif #if defined(__NetBSD__) || defined(__OpenBSD__) int @@ -982,10 +983,9 @@ * Handle suspend/resume. * * We need to switch to polling mode here, because this routine is - * called from an intterupt context. This is all right since we + * called from an interrupt context. This is all right since we * are almost suspended anyway. */ -#if defined(__NetBSD__) || defined(__OpenBSD__) void ehci_power(int why, void *v) { @@ -1001,7 +1001,9 @@ s = splhardusb(); switch (why) { case PWR_SUSPEND: +#if defined(__NetBSD__) || defined(__OpenBSD__) case PWR_STANDBY: +#endif sc->sc_bus.use_polling++; #if 0 OOO @@ -1045,19 +1047,19 @@ #endif sc->sc_bus.use_polling--; break; +#if defined(__NetBSD__) || defined(__OpenBSD__) case PWR_SOFTSUSPEND: case PWR_SOFTSTANDBY: case PWR_SOFTRESUME: break; +#endif } splx(s); } -#endif /* * Shut down the controller when the system is going down. >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 3 08:19:57 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2362616A4D0; Tue, 3 Aug 2004 08:19:57 +0000 (GMT) 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 EF85F16A4CE for ; Tue, 3 Aug 2004 08:19:56 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id D19D043D2F for ; Tue, 3 Aug 2004 08:19:56 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i738JuGH061853 for ; Tue, 3 Aug 2004 08:19:56 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i738Ju4n061850 for perforce@freebsd.org; Tue, 3 Aug 2004 08:19:56 GMT (envelope-from dfr@freebsd.org) Date: Tue, 3 Aug 2004 08:19:56 GMT Message-Id: <200408030819.i738Ju4n061850@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 58767 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: Tue, 03 Aug 2004 08:19:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=58767 Change 58767 by dfr@dfr_home on 2004/08/03 08:19:34 Fix typo in last commit. Affected files ... .. //depot/projects/kse/libexec/rtld-elf/alpha/reloc.c#4 edit Differences ... ==== //depot/projects/kse/libexec/rtld-elf/alpha/reloc.c#4 (text+ko) ==== @@ -516,7 +516,7 @@ * offset allocated so far and adding a bit for dynamic modules to * use. */ - tls_static_space = tls_last_offset + tls_last_size + RTLS_STATIC_TLS_EXTRA; + tls_static_space = tls_last_offset + tls_last_size + RTLD_STATIC_TLS_EXTRA; tls = allocate_tls(list, 0, 16, 16); alpha_pal_wrunique((u_int64_t) tls); } From owner-p4-projects@FreeBSD.ORG Tue Aug 3 08:20:59 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EDCBE16A4D0; Tue, 3 Aug 2004 08:20:58 +0000 (GMT) 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 B3C1F16A4CE for ; Tue, 3 Aug 2004 08:20:58 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A699843D67 for ; Tue, 3 Aug 2004 08:20:58 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i738KwA9061937 for ; Tue, 3 Aug 2004 08:20:58 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i738KwEA061934 for perforce@freebsd.org; Tue, 3 Aug 2004 08:20:58 GMT (envelope-from dfr@freebsd.org) Date: Tue, 3 Aug 2004 08:20:58 GMT Message-Id: <200408030820.i738KwEA061934@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 58768 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: Tue, 03 Aug 2004 08:20:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=58768 Change 58768 by dfr@dfr_home on 2004/08/03 08:20:10 Relocation definitions have moved to . Affected files ... .. //depot/projects/kse/libexec/rtld-elf/amd64/reloc.c#5 edit .. //depot/projects/kse/libexec/rtld-elf/i386/reloc.c#11 edit .. //depot/projects/kse/libexec/rtld-elf/ia64/reloc.c#7 edit Differences ... ==== //depot/projects/kse/libexec/rtld-elf/amd64/reloc.c#5 (text+ko) ==== @@ -48,15 +48,6 @@ #include "debug.h" #include "rtld.h" -#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ -#define R_X86_64_DTPOFF64 17 /* Offset in TLS block */ -#define R_X86_64_TPOFF64 18 /* Offset in static TLS block */ -#define R_X86_64_TLSGD 19 /* PC relative offset to GD GOT entry */ -#define R_X86_64_TLSLD 20 /* PC relative offset to LD GOT entry */ -#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ -#define R_X86_64_GOTTPOFF 22 /* PC relative offset to IE GOT entry */ -#define R_X86_64_TPOFF32 23 /* Offset in static TLS block */ - /* * Process the special R_X86_64_COPY relocations in the main program. These * copy data from a shared object into a region in the main program's BSS ==== //depot/projects/kse/libexec/rtld-elf/i386/reloc.c#11 (text+ko) ==== @@ -49,31 +49,6 @@ #include "debug.h" #include "rtld.h" -#ifndef R_386_TLS_TPOFF - -#define R_386_TLS_TPOFF 14 /* Negative offset in static TLS block */ -#define R_386_TLS_IE 15 /* Absolute address of GOT for -ve static TLS */ -#define R_386_TLS_GOTIE 16 /* GOT entry for negative static TLS block */ -#define R_386_TLS_LE 17 /* Negative offset relative to static TLS */ -#define R_386_TLS_GD 18 /* 32 bit offset to GOT (index,off) pair */ -#define R_386_TLS_LDM 19 /* 32 bit offset to GOT (index,zero) pair */ -#define R_386_TLS_GD_32 24 /* 32 bit offset to GOT (index,off) pair */ -#define R_386_TLS_GD_PUSH 25 /* pushl instruction for Sun ABI GD sequence */ -#define R_386_TLS_GD_CALL 26 /* call instruction for Sun ABI GD sequence */ -#define R_386_TLS_GD_POP 27 /* popl instruction for Sun ABI GD sequence */ -#define R_386_TLS_LDM_32 28 /* 32 bit offset to GOT (index,zero) pair */ -#define R_386_TLS_LDM_PUSH 29 /* pushl instruction for Sun ABI LD sequence */ -#define R_386_TLS_LDM_CALL 30 /* call instruction for Sun ABI LD sequence */ -#define R_386_TLS_LDM_POP 31 /* popl instruction for Sun ABI LD sequence */ -#define R_386_TLS_LDO_32 32 /* 32 bit offset from start of TLS block */ -#define R_386_TLS_IE_32 33 /* 32 bit offset to GOT static TLS offset entry */ -#define R_386_TLS_LE_32 34 /* 32 bit offset within static TLS block */ -#define R_386_TLS_DTPMOD32 35 /* GOT entry containing TLS index */ -#define R_386_TLS_DTPOFF32 36 /* GOT entry containing TLS offset */ -#define R_386_TLS_TPOFF32 37 /* GOT entry of -ve static TLS offset */ - -#endif - /* * Process the special R_386_COPY relocations in the main program. These * copy data from a shared object into a region in the main program's BSS ==== //depot/projects/kse/libexec/rtld-elf/ia64/reloc.c#7 (text+ko) ==== @@ -48,28 +48,6 @@ #include "debug.h" #include "rtld.h" -#ifndef R_IA64_TPREL14 - -#define R_IA64_TPREL14 0x91 -#define R_IA64_TPREL22 0x92 -#define R_IA64_TPREL64I 0x93 -#define R_IA64_TPREL64MSB 0x96 -#define R_IA64_TPREL64LSB 0x97 -#define R_IA64_LTOFF_TPREL22 0x9a -#define R_IA64_DTPMOD64MSB 0xa6 -#define R_IA64_DTPMOD64LSB 0xa7 -#define R_IA64_LTOFF_DTPMOD22 0xaa -#define R_IA64_DTPREL14 0xb1 -#define R_IA64_DTPREL22 0xb2 -#define R_IA64_DTPREL64I 0xb3 -#define R_IA64_DTPREL32MSB 0xb4 -#define R_IA64_DTPREL32LSB 0xb5 -#define R_IA64_DTPREL64MSB 0xb6 -#define R_IA64_DTPREL64LSB 0xb7 -#define R_IA64_LTOFF_DTPREL22 0xba - -#endif - extern Elf_Dyn _DYNAMIC; /* From owner-p4-projects@FreeBSD.ORG Tue Aug 3 11:18:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EB61816A4CE; Tue, 3 Aug 2004 11:18:34 +0000 (GMT) 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 BE0E716A4CE for ; Tue, 3 Aug 2004 11:18:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id A002A43D39 for ; Tue, 3 Aug 2004 11:18:34 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i73BIY3k067536 for ; Tue, 3 Aug 2004 11:18:34 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i73BIXTg067533 for perforce@freebsd.org; Tue, 3 Aug 2004 11:18:33 GMT (envelope-from dfr@freebsd.org) Date: Tue, 3 Aug 2004 11:18:33 GMT Message-Id: <200408031118.i73BIXTg067533@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 58772 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: Tue, 03 Aug 2004 11:18:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=58772 Change 58772 by dfr@dfr_home on 2004/08/03 11:18:24 IFC 58770 Affected files ... .. //depot/projects/kse/include/Makefile#8 integrate .. //depot/projects/kse/lib/libc/amd64/gen/makecontext.c#2 integrate .. //depot/projects/kse/lib/libc/gen/Makefile.inc#10 integrate .. //depot/projects/kse/lib/libc/gen/_pthread_stubs.c#4 integrate .. //depot/projects/kse/lib/libc/gen/ftw.c#3 integrate .. //depot/projects/kse/lib/libc/gen/unvis.c#3 integrate .. //depot/projects/kse/lib/libc/locale/isalnum.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isalpha.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isblank.3#3 integrate .. //depot/projects/kse/lib/libc/locale/iscntrl.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isdigit.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isgraph.3#3 integrate .. //depot/projects/kse/lib/libc/locale/islower.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isprint.3#3 integrate .. //depot/projects/kse/lib/libc/locale/ispunct.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isspace.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isupper.3#3 integrate .. //depot/projects/kse/lib/libc/locale/isxdigit.3#4 integrate .. //depot/projects/kse/lib/libc/stdlib/getopt.3#4 integrate .. //depot/projects/kse/lib/libkvm/kvm_getswapinfo.3#4 integrate .. //depot/projects/kse/lib/libkvm/kvm_getswapinfo.c#5 integrate .. //depot/projects/kse/lib/libpthread/arch/amd64/amd64/context.S#3 integrate .. //depot/projects/kse/lib/libpthread/arch/amd64/amd64/enter_uts.S#2 integrate .. //depot/projects/kse/lib/libpthread/arch/amd64/include/pthread_md.h#5 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_kern.c#5 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_priority_queue.c#3 integrate .. //depot/projects/kse/lib/libpthread/thread/thr_private.h#4 integrate .. //depot/projects/kse/lib/libthr/thread/thr_mutex.c#4 integrate .. //depot/projects/kse/lib/libthr/thread/thr_rwlock.c#2 integrate .. //depot/projects/kse/lib/libthr/thread/thr_setschedparam.c#3 integrate .. //depot/projects/kse/libexec/rtld-elf/alpha/reloc.c#5 integrate .. //depot/projects/kse/libexec/rtld-elf/alpha/rtld_machdep.h#4 integrate .. //depot/projects/kse/libexec/rtld-elf/amd64/reloc.c#6 integrate .. //depot/projects/kse/libexec/rtld-elf/amd64/rtld_machdep.h#4 integrate .. //depot/projects/kse/libexec/rtld-elf/i386/reloc.c#12 integrate .. //depot/projects/kse/libexec/rtld-elf/i386/rtld_machdep.h#7 integrate .. //depot/projects/kse/libexec/rtld-elf/ia64/reloc.c#8 integrate .. //depot/projects/kse/libexec/rtld-elf/ia64/rtld_machdep.h#4 integrate .. //depot/projects/kse/libexec/rtld-elf/map_object.c#5 integrate .. //depot/projects/kse/libexec/rtld-elf/rtld.c#14 integrate .. //depot/projects/kse/libexec/rtld-elf/rtld.h#9 integrate .. //depot/projects/kse/libexec/rtld-elf/sparc64/reloc.c#5 integrate .. //depot/projects/kse/libexec/rtld-elf/sparc64/rtld_machdep.h#5 integrate .. //depot/projects/kse/sys/alpha/alpha/mem.c#11 integrate .. //depot/projects/kse/sys/alpha/alpha/pmap.c#41 integrate .. //depot/projects/kse/sys/alpha/conf/GENERIC#20 integrate .. //depot/projects/kse/sys/alpha/include/memdev.h#1 branch .. //depot/projects/kse/sys/alpha/include/param.h#11 integrate .. //depot/projects/kse/sys/amd64/amd64/io.c#1 branch .. //depot/projects/kse/sys/amd64/amd64/machdep.c#5 integrate .. //depot/projects/kse/sys/amd64/amd64/mem.c#5 integrate .. //depot/projects/kse/sys/amd64/amd64/pmap.c#7 integrate .. //depot/projects/kse/sys/amd64/conf/GENERIC#6 integrate .. //depot/projects/kse/sys/amd64/conf/NOTES#3 integrate .. //depot/projects/kse/sys/amd64/include/cpufunc.h#3 integrate .. //depot/projects/kse/sys/amd64/include/elf.h#2 integrate .. //depot/projects/kse/sys/amd64/include/iodev.h#1 branch .. //depot/projects/kse/sys/amd64/include/memdev.h#1 branch .. //depot/projects/kse/sys/amd64/include/param.h#4 integrate .. //depot/projects/kse/sys/amd64/include/profile.h#5 integrate .. //depot/projects/kse/sys/arm/arm/machdep.c#4 integrate .. //depot/projects/kse/sys/arm/arm/pmap.c#5 integrate .. //depot/projects/kse/sys/arm/include/endian.h#4 integrate .. //depot/projects/kse/sys/arm/include/vmparam.h#2 integrate .. //depot/projects/kse/sys/boot/common/help.common#5 integrate .. //depot/projects/kse/sys/boot/forth/loader.conf#17 integrate .. //depot/projects/kse/sys/boot/i386/boot2/Makefile#7 integrate .. //depot/projects/kse/sys/boot/i386/boot2/boot2.c#15 integrate .. //depot/projects/kse/sys/boot/ofw/common/main.c#4 integrate .. //depot/projects/kse/sys/boot/ofw/libofw/libofw.h#5 integrate .. //depot/projects/kse/sys/boot/ofw/libofw/ofw_memory.c#4 integrate .. //depot/projects/kse/sys/boot/pc98/boot2/boot.h#5 integrate .. //depot/projects/kse/sys/boot/pc98/boot2/disk.c#4 integrate .. //depot/projects/kse/sys/boot/pc98/boot2/io.c#4 integrate .. //depot/projects/kse/sys/boot/pc98/boot2/sys.c#3 integrate .. //depot/projects/kse/sys/boot/powerpc/loader/Makefile#9 integrate .. //depot/projects/kse/sys/coda/coda_vfsops.c#13 integrate .. //depot/projects/kse/sys/compat/ndis/hal_var.h#3 integrate .. //depot/projects/kse/sys/compat/ndis/kern_ndis.c#5 integrate .. //depot/projects/kse/sys/compat/ndis/ndis_var.h#5 integrate .. //depot/projects/kse/sys/compat/ndis/ntoskrnl_var.h#3 integrate .. //depot/projects/kse/sys/compat/ndis/pe_var.h#3 integrate .. //depot/projects/kse/sys/compat/ndis/subr_hal.c#3 integrate .. //depot/projects/kse/sys/compat/ndis/subr_ndis.c#5 integrate .. //depot/projects/kse/sys/compat/ndis/subr_ntoskrnl.c#5 integrate .. //depot/projects/kse/sys/conf/NOTES#26 integrate .. //depot/projects/kse/sys/conf/files#58 integrate .. //depot/projects/kse/sys/conf/files.alpha#22 integrate .. //depot/projects/kse/sys/conf/files.amd64#4 integrate .. //depot/projects/kse/sys/conf/files.i386#36 integrate .. //depot/projects/kse/sys/conf/files.ia64#19 integrate .. //depot/projects/kse/sys/conf/files.pc98#35 integrate .. //depot/projects/kse/sys/conf/files.sparc64#25 integrate .. //depot/projects/kse/sys/conf/options#35 integrate .. //depot/projects/kse/sys/dev/acpica/acpi.c#35 integrate .. //depot/projects/kse/sys/dev/an/if_an.c#18 integrate .. //depot/projects/kse/sys/dev/arl/if_arl.c#3 integrate .. //depot/projects/kse/sys/dev/arl/if_arl_isa.c#3 integrate .. //depot/projects/kse/sys/dev/arl/if_arlreg.h#3 integrate .. //depot/projects/kse/sys/dev/asr/asr.c#14 integrate .. //depot/projects/kse/sys/dev/ata/ata-all.c#27 integrate .. //depot/projects/kse/sys/dev/ata/ata-chipset.c#6 integrate .. //depot/projects/kse/sys/dev/ath/if_ath.c#4 integrate .. //depot/projects/kse/sys/dev/eisa/eisaconf.c#5 integrate .. //depot/projects/kse/sys/dev/en/midway.c#6 integrate .. //depot/projects/kse/sys/dev/esp/esp_sbus.c#3 integrate .. //depot/projects/kse/sys/dev/esp/lsi64854.c#2 integrate .. //depot/projects/kse/sys/dev/esp/lsi64854var.h#2 integrate .. //depot/projects/kse/sys/dev/esp/ncr53c9x.c#2 integrate .. //depot/projects/kse/sys/dev/esp/ncr53c9xreg.h#2 integrate .. //depot/projects/kse/sys/dev/esp/ncr53c9xvar.h#2 integrate .. //depot/projects/kse/sys/dev/hme/if_hme.c#10 integrate .. //depot/projects/kse/sys/dev/if_ndis/if_ndis.c#5 integrate .. //depot/projects/kse/sys/dev/io/iodev.c#1 branch .. //depot/projects/kse/sys/dev/mem/memdev.c#1 branch .. //depot/projects/kse/sys/dev/null/null.c#8 integrate .. //depot/projects/kse/sys/dev/random/randomdev.c#12 integrate .. //depot/projects/kse/sys/dev/syscons/syscons.c#23 integrate .. //depot/projects/kse/sys/dev/usb/ehci.c#5 integrate .. //depot/projects/kse/sys/dev/usb/ehci_pci.c#5 integrate .. //depot/projects/kse/sys/dev/usb/ehcireg.h#4 integrate .. //depot/projects/kse/sys/dev/usb/ehcivar.h#2 integrate .. //depot/projects/kse/sys/dev/usb/ohci.c#20 integrate .. //depot/projects/kse/sys/dev/usb/ohci_pci.c#3 integrate .. //depot/projects/kse/sys/dev/usb/ohcivar.h#6 integrate .. //depot/projects/kse/sys/dev/usb/uhci.c#23 integrate .. //depot/projects/kse/sys/dev/usb/uhci_pci.c#3 integrate .. //depot/projects/kse/sys/dev/usb/uhcivar.h#7 integrate .. //depot/projects/kse/sys/dev/usb/uhub.c#16 integrate .. //depot/projects/kse/sys/dev/usb/usb.c#21 integrate .. //depot/projects/kse/sys/dev/usb/usb_mem.c#2 integrate .. //depot/projects/kse/sys/dev/wi/if_wi.c#29 integrate .. //depot/projects/kse/sys/fs/devfs/devfs_vfsops.c#11 integrate .. //depot/projects/kse/sys/fs/fdescfs/fdesc_vfsops.c#12 integrate .. //depot/projects/kse/sys/fs/hpfs/hpfs_vfsops.c#16 integrate .. //depot/projects/kse/sys/fs/msdosfs/msdosfs_vfsops.c#16 integrate .. //depot/projects/kse/sys/fs/ntfs/ntfs_vfsops.c#17 integrate .. //depot/projects/kse/sys/fs/nullfs/null_vfsops.c#11 integrate .. //depot/projects/kse/sys/fs/nwfs/nwfs_vfsops.c#10 integrate .. //depot/projects/kse/sys/fs/portalfs/portal_vfsops.c#12 integrate .. //depot/projects/kse/sys/fs/pseudofs/pseudofs.c#15 integrate .. //depot/projects/kse/sys/fs/pseudofs/pseudofs.h#16 integrate .. //depot/projects/kse/sys/fs/smbfs/smbfs_vfsops.c#13 integrate .. //depot/projects/kse/sys/fs/udf/udf_vfsops.c#7 integrate .. //depot/projects/kse/sys/fs/umapfs/umap_vfsops.c#10 integrate .. //depot/projects/kse/sys/fs/unionfs/union_vfsops.c#15 integrate .. //depot/projects/kse/sys/geom/geom_mbr.c#9 integrate .. //depot/projects/kse/sys/geom/geom_mirror.c#3 delete .. //depot/projects/kse/sys/geom/mirror/g_mirror.c#1 branch .. //depot/projects/kse/sys/geom/mirror/g_mirror.h#1 branch .. //depot/projects/kse/sys/geom/mirror/g_mirror_ctl.c#1 branch .. //depot/projects/kse/sys/geom/nop/g_nop.c#5 integrate .. //depot/projects/kse/sys/geom/nop/g_nop.h#3 integrate .. //depot/projects/kse/sys/geom/vinum/geom_vinum.c#4 integrate .. //depot/projects/kse/sys/geom/vinum/geom_vinum.h#2 integrate .. //depot/projects/kse/sys/geom/vinum/geom_vinum_plex.c#3 integrate .. //depot/projects/kse/sys/geom/vinum/geom_vinum_subr.c#3 integrate .. //depot/projects/kse/sys/gnu/ext2fs/ext2_vfsops.c#16 integrate .. //depot/projects/kse/sys/i386/conf/GENERIC#30 integrate .. //depot/projects/kse/sys/i386/conf/NOTES#46 integrate .. //depot/projects/kse/sys/i386/i386/intr_machdep.c#5 integrate .. //depot/projects/kse/sys/i386/i386/io.c#1 branch .. //depot/projects/kse/sys/i386/i386/io_apic.c#4 integrate .. //depot/projects/kse/sys/i386/i386/mem.c#13 integrate .. //depot/projects/kse/sys/i386/i386/pmap.c#51 integrate .. //depot/projects/kse/sys/i386/include/elf.h#5 integrate .. //depot/projects/kse/sys/i386/include/intr_machdep.h#3 integrate .. //depot/projects/kse/sys/i386/include/iodev.h#1 branch .. //depot/projects/kse/sys/i386/include/memdev.h#1 branch .. //depot/projects/kse/sys/i386/include/param.h#16 integrate .. //depot/projects/kse/sys/i386/isa/atpic.c#3 integrate .. //depot/projects/kse/sys/ia64/conf/GENERIC#21 integrate .. //depot/projects/kse/sys/ia64/conf/SKI#10 integrate .. //depot/projects/kse/sys/ia64/ia64/mem.c#12 integrate .. //depot/projects/kse/sys/ia64/ia64/pmap.c#39 integrate .. //depot/projects/kse/sys/ia64/include/cpufunc.h#10 integrate .. //depot/projects/kse/sys/ia64/include/memdev.h#1 branch .. //depot/projects/kse/sys/isa/psm.c#16 integrate .. //depot/projects/kse/sys/isofs/cd9660/cd9660_vfsops.c#15 integrate .. //depot/projects/kse/sys/kern/kern_exit.c#70 integrate .. //depot/projects/kse/sys/kern/kern_kse.c#4 integrate .. //depot/projects/kse/sys/kern/kern_mbuf.c#2 integrate .. //depot/projects/kse/sys/kern/kern_proc.c#94 integrate .. //depot/projects/kse/sys/kern/kern_shutdown.c#39 integrate .. //depot/projects/kse/sys/kern/kern_sig.c#75 integrate .. //depot/projects/kse/sys/kern/kern_thread.c#118 integrate .. //depot/projects/kse/sys/kern/sys_pipe.c#20 integrate .. //depot/projects/kse/sys/kern/vfs_init.c#11 integrate .. //depot/projects/kse/sys/kern/vfs_mount.c#9 integrate .. //depot/projects/kse/sys/kern/vfs_subr.c#52 integrate .. //depot/projects/kse/sys/modules/Makefile#39 integrate .. //depot/projects/kse/sys/modules/geom/Makefile#4 integrate .. //depot/projects/kse/sys/modules/geom/geom_mirror/Makefile#1 branch .. //depot/projects/kse/sys/modules/io/Makefile#1 branch .. //depot/projects/kse/sys/modules/mem/Makefile#1 branch .. //depot/projects/kse/sys/netgraph/ng_l2tp.c#6 integrate .. //depot/projects/kse/sys/netgraph/ng_l2tp.h#3 integrate .. //depot/projects/kse/sys/netgraph/ng_ppp.c#10 integrate .. //depot/projects/kse/sys/netgraph/ng_pppoe.c#14 integrate .. //depot/projects/kse/sys/netgraph/ng_socket.c#17 integrate .. //depot/projects/kse/sys/netinet/ip_mroute.c#17 integrate .. //depot/projects/kse/sys/nfs4client/nfs4_vfsops.c#4 integrate .. //depot/projects/kse/sys/nfsclient/nfs_vfsops.c#20 integrate .. //depot/projects/kse/sys/pc98/conf/GENERIC#24 integrate .. //depot/projects/kse/sys/pc98/conf/NOTES#7 integrate .. //depot/projects/kse/sys/pci/if_vr.c#13 integrate .. //depot/projects/kse/sys/powerpc/conf/GENERIC#13 integrate .. //depot/projects/kse/sys/powerpc/include/critical.h#5 integrate .. //depot/projects/kse/sys/powerpc/include/reg.h#6 integrate .. //depot/projects/kse/sys/powerpc/powerpc/machdep.c#30 integrate .. //depot/projects/kse/sys/powerpc/powerpc/pmap.c#27 integrate .. //depot/projects/kse/sys/powerpc/powerpc/trap.c#22 integrate .. //depot/projects/kse/sys/security/mac/mac_label.c#2 integrate .. //depot/projects/kse/sys/sparc64/conf/GENERIC#25 integrate .. //depot/projects/kse/sys/sparc64/include/memdev.h#1 branch .. //depot/projects/kse/sys/sparc64/sparc64/mem.c#6 integrate .. //depot/projects/kse/sys/sparc64/sparc64/pmap.c#42 integrate .. //depot/projects/kse/sys/sys/gpt.h#5 integrate .. //depot/projects/kse/sys/sys/kse.h#25 integrate .. //depot/projects/kse/sys/sys/mbuf.h#21 integrate .. //depot/projects/kse/sys/sys/mount.h#21 integrate .. //depot/projects/kse/sys/sys/mouse.h#3 integrate .. //depot/projects/kse/sys/sys/param.h#32 integrate .. //depot/projects/kse/sys/sys/proc.h#142 integrate .. //depot/projects/kse/sys/ufs/ffs/ffs_extern.h#12 integrate .. //depot/projects/kse/sys/ufs/ffs/ffs_vfsops.c#31 integrate .. //depot/projects/kse/sys/vm/device_pager.c#11 integrate .. //depot/projects/kse/sys/vm/uma.h#11 integrate .. //depot/projects/kse/sys/vm/uma_core.c#21 integrate .. //depot/projects/kse/sys/vm/uma_dbg.c#8 integrate .. //depot/projects/kse/sys/vm/uma_dbg.h#4 integrate .. //depot/projects/kse/sys/vm/uma_int.h#10 integrate .. //depot/projects/kse/sys/vm/vm_glue.c#45 integrate .. //depot/projects/kse/sys/vm/vm_map.c#33 integrate .. //depot/projects/kse/sys/vm/vm_map.h#23 integrate .. //depot/projects/kse/sys/vm/vm_mmap.c#25 integrate .. //depot/projects/kse/sys/vm/vm_object.c#23 integrate .. //depot/projects/kse/sys/vm/vm_page.c#23 integrate .. //depot/projects/kse/tools/regression/geom_mirror/Makefile#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/runtests.sh#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/test-1.sh#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/test-2.sh#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/test-3.sh#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/test-4.sh#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/test-5.sh#1 branch .. //depot/projects/kse/tools/regression/geom_mirror/test-6.sh#1 branch Differences ... ==== //depot/projects/kse/include/Makefile#8 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile 8.2 (Berkeley) 1/4/94 -# $FreeBSD: src/include/Makefile,v 1.217 2004/07/15 03:43:18 davidxu Exp $ +# $FreeBSD: src/include/Makefile,v 1.218 2004/07/30 23:18:52 pjd Exp $ # # Doing a "make install" builds /usr/include. @@ -36,7 +36,7 @@ dev/ofw dev/ppbus dev/smbus dev/usb dev/wi dev/utopia fs/devfs \ fs/fdescfs fs/fifofs fs/msdosfs fs/ntfs fs/nullfs fs/nwfs fs/portalfs \ fs/procfs fs/smbfs fs/udf fs/umapfs fs/unionfs \ - geom/concat geom/gate geom/label geom/nop geom/stripe \ + geom/concat geom/gate geom/label geom/mirror geom/nop geom/stripe \ isofs/cd9660 netatm/ipatm netatm/sigpvc netatm/spans netatm/uni \ netgraph/atm security/mac_biba security/mac_bsdextended \ security/mac_lomac security/mac_mls security/mac_partition \ ==== //depot/projects/kse/lib/libc/amd64/gen/makecontext.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/makecontext.c,v 1.3 2004/03/31 07:27:31 peter Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/makecontext.c,v 1.4 2004/07/31 01:41:41 davidxu Exp $"); #include #include @@ -65,7 +65,7 @@ /* Align the stack to 16 bytes. */ sp = (uint64_t *)(ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size); - sp = (uint64_t *)((uint64_t)sp & -15UL); + sp = (uint64_t *)((uint64_t)sp & ~15UL); /* Allocate space for a maximum of 6 arguments on the stack. */ args = sp - 6; @@ -88,7 +88,7 @@ ucp->uc_mcontext.mc_rdi = (register_t)ucp; ucp->uc_mcontext.mc_rsi = (register_t)start; ucp->uc_mcontext.mc_rdx = (register_t)args; - ucp->uc_mcontext.mc_rbp = (register_t)sp; + ucp->uc_mcontext.mc_rbp = 0; ucp->uc_mcontext.mc_rbx = (register_t)sp; ucp->uc_mcontext.mc_rsp = (register_t)sp; ucp->uc_mcontext.mc_rip = (register_t)makectx_wrapper; ==== //depot/projects/kse/lib/libc/gen/Makefile.inc#10 (text+ko) ==== @@ -1,5 +1,5 @@ # @(#)Makefile.inc 8.6 (Berkeley) 5/4/95 -# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.115 2004/07/25 11:17:54 tjr Exp $ +# $FreeBSD: src/lib/libc/gen/Makefile.inc,v 1.116 2004/08/03 08:54:01 dfr Exp $ # machine-independent gen sources .PATH: ${.CURDIR}/${MACHINE_ARCH}/gen ${.CURDIR}/gen ==== //depot/projects/kse/lib/libc/gen/_pthread_stubs.c#4 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/_pthread_stubs.c,v 1.10 2002/11/13 21:55:22 deischen Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/_pthread_stubs.c,v 1.11 2004/07/29 18:07:08 kan Exp $"); #include #include @@ -97,8 +97,8 @@ #define FUNC_EXP(name) __CONCAT(name, _exp) #define STUB_FUNC(name, idx, ret) \ - static ret FUNC_EXP(name)(void) __unused; \ - static ret FUNC_INT(name)(void) __unused; \ + static ret FUNC_EXP(name)(void) __used; \ + static ret FUNC_INT(name)(void) __used; \ WEAK_REF(FUNC_EXP(name), name); \ WEAK_REF(FUNC_INT(name), __CONCAT(_, name)); \ typedef ret (*FUNC_TYPE(name))(void); \ @@ -116,8 +116,8 @@ } #define STUB_FUNC1(name, idx, ret, p0_type) \ - static ret FUNC_EXP(name)(p0_type) __unused; \ - static ret FUNC_INT(name)(p0_type) __unused; \ + static ret FUNC_EXP(name)(p0_type) __used; \ + static ret FUNC_INT(name)(p0_type) __used; \ WEAK_REF(FUNC_EXP(name), name); \ WEAK_REF(FUNC_INT(name), __CONCAT(_, name)); \ typedef ret (*FUNC_TYPE(name))(p0_type); \ @@ -135,8 +135,8 @@ } #define STUB_FUNC2(name, idx, ret, p0_type, p1_type) \ - static ret FUNC_EXP(name)(p0_type, p1_type) __unused; \ - static ret FUNC_INT(name)(p0_type, p1_type) __unused; \ + static ret FUNC_EXP(name)(p0_type, p1_type) __used; \ + static ret FUNC_INT(name)(p0_type, p1_type) __used; \ WEAK_REF(FUNC_EXP(name), name); \ WEAK_REF(FUNC_INT(name), __CONCAT(_, name)); \ typedef ret (*FUNC_TYPE(name))(p0_type, p1_type); \ @@ -154,8 +154,8 @@ } #define STUB_FUNC3(name, idx, ret, p0_type, p1_type, p2_type) \ - static ret FUNC_EXP(name)(p0_type, p1_type, p2_type) __unused; \ - static ret FUNC_INT(name)(p0_type, p1_type, p2_type) __unused; \ + static ret FUNC_EXP(name)(p0_type, p1_type, p2_type) __used; \ + static ret FUNC_INT(name)(p0_type, p1_type, p2_type) __used; \ WEAK_REF(FUNC_EXP(name), name); \ WEAK_REF(FUNC_INT(name), __CONCAT(_, name)); \ typedef ret (*FUNC_TYPE(name))(p0_type, p1_type, p2_type); \ ==== //depot/projects/kse/lib/libc/gen/ftw.c#3 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libc/gen/ftw.c,v 1.2 2004/07/23 06:01:00 das Exp $ + * $FreeBSD: src/lib/libc/gen/ftw.c,v 1.3 2004/08/02 08:18:43 stefanf Exp $ */ #include /* Because fts(3) says so */ @@ -48,7 +48,7 @@ /* Prototype this so that we can have it later */ -static int __ftw_core(const char *, void *, int, int, enum __ftw_modes); +static int __ftw_core(const char *, void (*)(), int, int, enum __ftw_modes); /* * The external function calls are really just wrappers around __ftw_core, @@ -56,11 +56,11 @@ */ int ftw (const char *dir, __ftw_func_t func, int descr) { - return __ftw_core(dir, func, descr, 0, MODE_FTW); + return __ftw_core(dir, (void (*)())func, descr, 0, MODE_FTW); } int nftw (const char *dir, __nftw_func_t func, int descr, int flags) { - return __ftw_core(dir, func, descr, flags, MODE_NFTW); + return __ftw_core(dir, (void (*)())func, descr, flags, MODE_NFTW); } /* @@ -70,7 +70,7 @@ (const char *file, const struct stat status, int flag, struct FTW detail); */ -static int __ftw_core(const char *dir, void *func, int descr, int flags, +static int __ftw_core(const char *dir, void (*func)(), int descr, int flags, enum __ftw_modes mode) { FTS *hierarchy; FTSENT *entry; ==== //depot/projects/kse/lib/libc/gen/unvis.c#3 (text+ko) ==== @@ -35,7 +35,7 @@ static char sccsid[] = "@(#)unvis.c 8.1 (Berkeley) 6/4/93"; #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/unvis.c,v 1.8 2003/02/16 17:29:09 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/unvis.c,v 1.9 2004/08/02 08:46:23 stefanf Exp $"); #include #include @@ -62,9 +62,7 @@ * unvis - decode characters previously encoded by vis */ int -unvis(cp, c, astate, flag) - char *cp; - int c, *astate, flag; +unvis(char *cp, int c, int *astate, int flag) { if (flag & UNVIS_END) { @@ -241,9 +239,7 @@ */ int -strunvis(dst, src) - char *dst; - const char *src; +strunvis(char *dst, const char *src) { char c; char *start = dst; @@ -272,9 +268,7 @@ } int -strunvisx(dst, src, flag) - char *dst; - const char *src; +strunvisx(char *dst, const char *src, int flag) { char c; char *start = dst; ==== //depot/projects/kse/lib/libc/locale/isalnum.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isalnum.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.17 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isalnum.3,v 1.18 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISALNUM 3 .Os .Sh NAME @@ -89,14 +89,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isalnum -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswalnum function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isalpha.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isalpha.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.16 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isalpha.3,v 1.17 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISALPHA 3 .Os .Sh NAME @@ -87,14 +87,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isalpha -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswalpha function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isblank.3#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isblank.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.17 2002/12/18 12:45:08 ru Exp $ +.\" $FreeBSD: src/lib/libc/locale/isblank.3,v 1.18 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISBLANK 3 .Os .Sh NAME @@ -67,14 +67,12 @@ or the value of .Dv EOF . .Sh COMPATIBILITY -Although -.Fn isblank -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswblank function should be used instead for maximum portability. .Sh RETURN VALUES ==== //depot/projects/kse/lib/libc/locale/iscntrl.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)iscntrl.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.15 2002/12/05 08:50:00 ru Exp $ +.\" $FreeBSD: src/lib/libc/locale/iscntrl.3,v 1.16 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISCNTRL 3 .Os .Sh NAME @@ -79,15 +79,13 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn iscntrl -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the -.Fn iwcntrl +type in locales with large character sets is deprecated. +The +.Fn iswcntrl function should be used instead for maximum portability. .Sh SEE ALSO .Xr ctype 3 , ==== //depot/projects/kse/lib/libc/locale/isdigit.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isdigit.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.17 2004/03/30 07:02:04 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isdigit.3,v 1.18 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd March 30, 2004 +.Dd July 30, 2004 .Dt ISDIGIT 3 .Os .Sh NAME @@ -85,14 +85,12 @@ functions return zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isdigit -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswdigit function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isgraph.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isgraph.3 8.2 (Berkeley) 12/11/93 -.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.17 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isgraph.3,v 1.18 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISGRAPH 3 .Os .Sh NAME @@ -94,14 +94,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isgraph -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswgraph function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/islower.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)islower.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.15 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/islower.3,v 1.16 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISLOWER 3 .Os .Sh NAME @@ -78,14 +78,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn islower -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswlower function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isprint.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isprint.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.18 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isprint.3,v 1.19 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISPRINT 3 .Os .Sh NAME @@ -92,14 +92,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isprint -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswprint function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/ispunct.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ispunct.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.16 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/ispunct.3,v 1.17 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISPUNCT 3 .Os .Sh NAME @@ -84,14 +84,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn ispunct -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswpunct function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isspace.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isspace.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.15 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isspace.3,v 1.16 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISSPACE 3 .Os .Sh NAME @@ -76,14 +76,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isspace -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswspace function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isupper.3#3 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isupper.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.16 2002/10/06 10:15:38 tjr Exp $ +.\" $FreeBSD: src/lib/libc/locale/isupper.3,v 1.17 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd October 6, 2002 +.Dd July 30, 2004 .Dt ISUPPER 3 .Os .Sh NAME @@ -78,14 +78,12 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isupper -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the +type in locales with large character sets is deprecated. +The .Fn iswupper function should be used instead for maximum portability. .Sh SEE ALSO ==== //depot/projects/kse/lib/libc/locale/isxdigit.3#4 (text+ko) ==== @@ -34,9 +34,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)isxdigit.3 8.1 (Berkeley) 6/4/93 -.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.18 2004/06/21 19:54:56 mpp Exp $ +.\" $FreeBSD: src/lib/libc/locale/isxdigit.3,v 1.19 2004/07/29 23:32:41 tjr Exp $ .\" -.Dd March 30, 2004 +.Dd July 30, 2004 .Dt ISXDIGIT 3 .Os .Sh NAME @@ -86,15 +86,13 @@ function returns zero if the character tests false and returns non-zero if the character tests true. .Sh COMPATIBILITY -Although -.Fn isxdigit -accepts arguments outside of the range of the +The +.Bx 4.4 +extension of accepting arguments outside of the range of the .Vt "unsigned char" -type in locales with large character sets, -this is a -.Bx 4.4 -extension and the -.Fn isxwdigit +type in locales with large character sets is deprecated. +The +.Fn iswxdigit function should be used instead for maximum portability. .Sh SEE ALSO .Xr ctype 3 , ==== //depot/projects/kse/lib/libc/stdlib/getopt.3#4 (text+ko) ==== @@ -32,7 +32,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)getopt.3 8.5 (Berkeley) 4/27/95 -.\" $FreeBSD: src/lib/libc/stdlib/getopt.3,v 1.24 2004/07/03 22:30:09 ru Exp $ +.\" $FreeBSD: src/lib/libc/stdlib/getopt.3,v 1.25 2004/07/31 01:00:50 imp Exp $ .\" .Dd April 27, 1995 .Dt GETOPT 3 @@ -164,8 +164,7 @@ function returns \-1 when the argument list is exhausted. .Sh EXAMPLES .Bd -literal -compact -extern char *optarg; -extern int optind; +#include int bflag, ch, fd; bflag = 0; ==== //depot/projects/kse/lib/libkvm/kvm_getswapinfo.3#4 (text+ko) ==== @@ -1,10 +1,27 @@ -.\" Copyright (c) 1999, Matthew Dillon. All rights reserved. +.\" Copyright (C) 1999 Matthew Dillon. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided under the terms of the BSD -.\" Copyright as found in /usr/src/COPYRIGHT in the FreeBSD source tree. +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libkvm/kvm_getswapinfo.3,v 1.12 2004/07/02 23:52:16 ru Exp $ +.\" $FreeBSD: src/lib/libkvm/kvm_getswapinfo.3,v 1.13 2004/07/31 18:49:53 imp Exp $ .\" .Dd January 22, 1999 .Dt KVM_SWAPINFO 3 ==== //depot/projects/kse/lib/libkvm/kvm_getswapinfo.c#5 (text+ko) ==== @@ -1,14 +1,31 @@ /* * Copyright (c) 1999, Matthew Dillon. All Rights Reserved. - * Copyright (c) 2001, Thomas Moestl + * Copyright (c) 2001, Thomas Moestl. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided under the terms of the BSD - * Copyright as found in /usr/src/COPYRIGHT in the FreeBSD source tree. + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. */ #include -__FBSDID("$FreeBSD: src/lib/libkvm/kvm_getswapinfo.c,v 1.25 2003/07/31 21:42:12 phk Exp $"); +__FBSDID("$FreeBSD: src/lib/libkvm/kvm_getswapinfo.c,v 1.26 2004/07/31 18:49:53 imp Exp $"); #include #include ==== //depot/projects/kse/lib/libpthread/arch/amd64/amd64/context.S#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libpthread/arch/amd64/amd64/context.S,v 1.6 2004/06/07 21:25:16 tjr Exp $"); +__FBSDID("$FreeBSD: src/lib/libpthread/arch/amd64/amd64/context.S,v 1.7 2004/07/31 14:18:26 davidxu Exp $"); /* * The following notes ("cheat sheet") was provided by Peter Wemm. @@ -106,15 +106,17 @@ #define MC_R15 (15 * 8) #define MC_FLAGS (18 * 8) #define MC_RIP (20 * 8) +#define MC_CS (21 * 8) #define MC_RFLAGS (22 * 8) #define MC_RSP (23 * 8) +#define MC_SS (24 * 8) #define REDZONE 128 /* size of the red zone */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 3 11:26:45 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4EACA16A4D0; Tue, 3 Aug 2004 11:26:45 +0000 (GMT) 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 2A65B16A4CE for ; Tue, 3 Aug 2004 11:26:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 08A9343D41 for ; Tue, 3 Aug 2004 11:26:45 +0000 (GMT) (envelope-from dfr@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i73BQieI067755 for ; Tue, 3 Aug 2004 11:26:44 GMT (envelope-from dfr@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i73BQisf067752 for perforce@freebsd.org; Tue, 3 Aug 2004 11:26:44 GMT (envelope-from dfr@freebsd.org) Date: Tue, 3 Aug 2004 11:26:44 GMT Message-Id: <200408031126.i73BQisf067752@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dfr@freebsd.org using -f From: Doug Rabson To: Perforce Change Reviews Subject: PERFORCE change 58773 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: Tue, 03 Aug 2004 11:26:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=58773 Change 58773 by dfr@dfr_home on 2004/08/03 11:26:19 Integrate new file manually. Affected files ... .. //depot/projects/kse/lib/libc/gen/tls.c#5 integrate .. //depot/projects/kse/libexec/rtld-elf/rtld_tls.h#3 integrate .. //depot/projects/kse/tools/regression/tls/Makefile#4 integrate .. //depot/projects/kse/tools/regression/tls/Makefile.inc#1 branch .. //depot/projects/kse/tools/regression/tls/libxx/Makefile#2 integrate .. //depot/projects/kse/tools/regression/tls/libxx/xx.c#3 integrate .. //depot/projects/kse/tools/regression/tls/libyy/Makefile#2 integrate .. //depot/projects/kse/tools/regression/tls/libyy/yy.c#2 integrate .. //depot/projects/kse/tools/regression/tls/ttls1/Makefile#3 integrate .. //depot/projects/kse/tools/regression/tls/ttls1/ttls1.c#3 integrate .. //depot/projects/kse/tools/regression/tls/ttls2/Makefile#2 integrate .. //depot/projects/kse/tools/regression/tls/ttls2/ttls2.c#2 integrate .. //depot/projects/kse/tools/regression/tls/ttls3/Makefile#2 integrate .. //depot/projects/kse/tools/regression/tls/ttls3/elftls.S#3 integrate .. //depot/projects/kse/tools/regression/tls/ttls3/tls-test-lib.c#3 integrate .. //depot/projects/kse/tools/regression/tls/ttls3/tls-test.c#3 integrate Differences ... ==== //depot/projects/kse/lib/libc/gen/tls.c#5 (text+ko) ==== ==== //depot/projects/kse/libexec/rtld-elf/rtld_tls.h#3 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/Makefile#4 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/libxx/Makefile#2 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/libxx/xx.c#3 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/libyy/Makefile#2 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/libyy/yy.c#2 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls1/Makefile#3 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls1/ttls1.c#3 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls2/Makefile#2 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls2/ttls2.c#2 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls3/Makefile#2 (text+ko) ==== @@ -3,7 +3,7 @@ all: ttls3 LDFLAGS=-shared -Bsymbolic --allow-shlib-undefined -CFLAGS+= -L${.CURDIR}/../../../../lib/libc -lc +CFLAGS+= -L${.CURDIR}/../../../../lib/libc -lc -lthr CFLAGS+= -Wl,--rpath=${.CURDIR}/../../../../lib/libc CFLAGS+= -Wl,--rpath=${.OBJDIR} CFLAGS+= -Wl,--dynamic-linker=${.CURDIR}/../../../../libexec/rtld-elf/ld-elf.so.1 ==== //depot/projects/kse/tools/regression/tls/ttls3/elftls.S#3 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls3/tls-test-lib.c#3 (text+ko) ==== ==== //depot/projects/kse/tools/regression/tls/ttls3/tls-test.c#3 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Wed Aug 4 20:19:16 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C3F2C16A4D0; Wed, 4 Aug 2004 20:19:15 +0000 (GMT) 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 87A0016A4CE for ; Wed, 4 Aug 2004 20:19:15 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 68E0E43D2D for ; Wed, 4 Aug 2004 20:19:15 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i74KJFkc038488 for ; Wed, 4 Aug 2004 20:19:15 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i74KJEeS038485 for perforce@freebsd.org; Wed, 4 Aug 2004 20:19:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 4 Aug 2004 20:19:14 GMT Message-Id: <200408042019.i74KJEeS038485@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 58872 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, 04 Aug 2004 20:19:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=58872 Change 58872 by rwatson@rwatson_paprika on 2004/08/04 20:18:15 Integrate netperf_socket from rwatson_netperf: /dev/null no longer a module; non-optional. cpu_spinwait() abstraction /dev/mem build fixes for SMP _pmap_unwire_pte_hold() FASTCALL() cleanup in NDIS. ACPI debugger cleanup, lock trimming. Lots of aic driver fixes. Access control fix for pseudo-signalling of zombies. Pipe locking cleanup. ng_l2tp cleanups, changes, fixing. Don't use delayed checksums with divert sockets. IP fragment reassembly cleanunp. Loop back of a number of Giant-related assertions for file descriptors, VFS from rwatson_netperf. Loop back of uidinfo locking annotation, spl cleanup from rwatson_netperf. Loop back of inpcb assertions enabled by default even with IPv6 compiled in from rwatson_netperf. Affected files ... .. //depot/projects/netperf_socket/sys/alpha/alpha/pmap.c#16 integrate .. //depot/projects/netperf_socket/sys/alpha/conf/GENERIC#7 integrate .. //depot/projects/netperf_socket/sys/alpha/include/cpu.h#5 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#8 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mp_machdep.c#7 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#23 integrate .. //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#13 integrate .. //depot/projects/netperf_socket/sys/amd64/include/cpu.h#5 integrate .. //depot/projects/netperf_socket/sys/amd64/include/elf.h#3 integrate .. //depot/projects/netperf_socket/sys/arm/include/cpu.h#2 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/kern_ndis.c#18 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/ntoskrnl_var.h#10 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/subr_ndis.c#14 integrate .. //depot/projects/netperf_socket/sys/compat/ndis/subr_ntoskrnl.c#17 integrate .. //depot/projects/netperf_socket/sys/conf/NOTES#32 integrate .. //depot/projects/netperf_socket/sys/conf/files#43 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#34 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.reg#4 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx.seq#4 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx_inline.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx_osm.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/aic7xxx/aic79xx_pci.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/asr/asr.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/eisa/eisaconf.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/esp/esp_sbus.c#4 integrate .. //depot/projects/netperf_socket/sys/dev/esp/lsi64854.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/esp/lsi64854var.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/esp/ncr53c9x.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/esp/ncr53c9xreg.h#2 integrate .. //depot/projects/netperf_socket/sys/dev/esp/ncr53c9xvar.h#4 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/fwohci_pci.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/firewire/fwohcireg.h#5 integrate .. //depot/projects/netperf_socket/sys/dev/if_ndis/if_ndis.c#17 integrate .. //depot/projects/netperf_socket/sys/dev/mem/memdev.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/mem/memutil.c#1 branch .. //depot/projects/netperf_socket/sys/dev/ofw/ofw_console.c#10 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.c#2 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.h#2 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_asus.c#7 integrate .. //depot/projects/netperf_socket/sys/i386/conf/GENERIC#11 integrate .. //depot/projects/netperf_socket/sys/i386/i386/mem.c#10 integrate .. //depot/projects/netperf_socket/sys/i386/i386/mp_machdep.c#4 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#22 integrate .. //depot/projects/netperf_socket/sys/i386/include/cpu.h#5 integrate .. //depot/projects/netperf_socket/sys/ia64/conf/GENERIC#7 integrate .. //depot/projects/netperf_socket/sys/ia64/conf/SKI#5 integrate .. //depot/projects/netperf_socket/sys/ia64/include/cpu.h#5 integrate .. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#13 integrate .. //depot/projects/netperf_socket/sys/kern/kern_kse.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/kern_mutex.c#9 integrate .. //depot/projects/netperf_socket/sys/kern/kern_resource.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/kern_sig.c#17 integrate .. //depot/projects/netperf_socket/sys/kern/sys_pipe.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_lookup.c#4 integrate .. //depot/projects/netperf_socket/sys/modules/Makefile#15 integrate .. //depot/projects/netperf_socket/sys/modules/acpi/acpi_asus/Makefile#3 integrate .. //depot/projects/netperf_socket/sys/modules/acpi/acpi_panasonic/Makefile#2 integrate .. //depot/projects/netperf_socket/sys/modules/acpi/acpi_toshiba/Makefile#3 integrate .. //depot/projects/netperf_socket/sys/modules/acpi/acpi_video/Makefile#3 integrate .. //depot/projects/netperf_socket/sys/modules/mem/Makefile#2 integrate .. //depot/projects/netperf_socket/sys/modules/null/Makefile#2 delete .. //depot/projects/netperf_socket/sys/netgraph/ng_l2tp.c#6 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_l2tp.h#2 integrate .. //depot/projects/netperf_socket/sys/netgraph/ng_ppp.c#6 integrate .. //depot/projects/netperf_socket/sys/netinet/in_pcb.h#6 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_divert.c#11 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_input.c#16 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_mroute.c#10 integrate .. //depot/projects/netperf_socket/sys/netinet/ip_output.c#13 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_subr.c#14 integrate .. //depot/projects/netperf_socket/sys/pc98/conf/GENERIC#11 integrate .. //depot/projects/netperf_socket/sys/powerpc/conf/GENERIC#8 integrate .. //depot/projects/netperf_socket/sys/powerpc/include/cpu.h#2 integrate .. //depot/projects/netperf_socket/sys/powerpc/include/critical.h#4 integrate .. //depot/projects/netperf_socket/sys/sparc64/conf/GENERIC#9 integrate .. //depot/projects/netperf_socket/sys/sparc64/include/cpu.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/kse.h#4 integrate .. //depot/projects/netperf_socket/sys/sys/memrange.h#2 integrate .. //depot/projects/netperf_socket/sys/sys/mount.h#13 integrate .. //depot/projects/netperf_socket/sys/sys/resourcevar.h#6 integrate .. //depot/projects/netperf_socket/sys/vm/device_pager.c#6 integrate Differences ... ==== //depot/projects/netperf_socket/sys/alpha/alpha/pmap.c#16 (text+ko) ==== @@ -148,7 +148,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.164 2004/07/29 18:56:30 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/alpha/alpha/pmap.c,v 1.165 2004/08/04 18:04:43 alc Exp $"); #include #include @@ -336,6 +336,7 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va); static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); static int pmap_unuse_pt(pmap_t, vm_offset_t, vm_page_t); #ifdef SMP static void pmap_invalidate_page_action(void *arg); @@ -894,74 +895,65 @@ * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ +static PMAP_INLINE int +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +{ + + vm_page_unhold(m); + if (m->hold_count == 0) + return _pmap_unwire_pte_hold(pmap, va, m); + else + return 0; +} + static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) { + vm_offset_t pteva; + pt_entry_t* pte; - while (vm_page_sleep_if_busy(m, FALSE, "pmuwpt")) - vm_page_lock_queues(); + /* + * unmap the page table page + */ + if (m->pindex >= NUSERLEV3MAPS) { + /* Level 2 page table */ + pte = pmap_lev1pte(pmap, va); + pteva = (vm_offset_t) PTlev2 + alpha_ptob(m->pindex - NUSERLEV3MAPS); + } else { + /* Level 3 page table */ + pte = pmap_lev2pte(pmap, va); + pteva = (vm_offset_t) PTmap + alpha_ptob(m->pindex); + } - if (m->hold_count == 0) { - vm_offset_t pteva; - pt_entry_t* pte; + *pte = 0; - /* - * unmap the page table page - */ - if (m->pindex >= NUSERLEV3MAPS) { - /* Level 2 page table */ - pte = pmap_lev1pte(pmap, va); - pteva = (vm_offset_t) PTlev2 + alpha_ptob(m->pindex - NUSERLEV3MAPS); - } else { - /* Level 3 page table */ - pte = pmap_lev2pte(pmap, va); - pteva = (vm_offset_t) PTmap + alpha_ptob(m->pindex); - } + if (m->pindex < NUSERLEV3MAPS) { + /* unhold the level 2 page table */ + vm_page_t lev2pg; - *pte = 0; + lev2pg = PHYS_TO_VM_PAGE(pmap_pte_pa(pmap_lev1pte(pmap, va))); + pmap_unwire_pte_hold(pmap, va, lev2pg); + } - if (m->pindex < NUSERLEV3MAPS) { - /* unhold the level 2 page table */ - vm_page_t lev2pg; + --pmap->pm_stats.resident_count; + /* + * Do a invltlb to make the invalidated mapping + * take effect immediately. + */ + pmap_invalidate_page(pmap, pteva); - lev2pg = PHYS_TO_VM_PAGE(pmap_pte_pa(pmap_lev1pte(pmap, va))); - vm_page_unhold(lev2pg); - if (lev2pg->hold_count == 0) - _pmap_unwire_pte_hold(pmap, va, lev2pg); - } + if (pmap->pm_ptphint == m) + pmap->pm_ptphint = NULL; - --pmap->pm_stats.resident_count; - /* - * Do a invltlb to make the invalidated mapping - * take effect immediately. - */ - pmap_invalidate_page(pmap, pteva); - - if (pmap->pm_ptphint == m) - pmap->pm_ptphint = NULL; - - /* - * If the page is finally unwired, simply free it. - */ - --m->wire_count; - if (m->wire_count == 0) { - vm_page_busy(m); - vm_page_free_zero(m); - atomic_subtract_int(&cnt.v_wire_count, 1); - } - return 1; + /* + * If the page is finally unwired, simply free it. + */ + --m->wire_count; + if (m->wire_count == 0) { + vm_page_free_zero(m); + atomic_subtract_int(&cnt.v_wire_count, 1); } - return 0; -} - -static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) -{ - vm_page_unhold(m); - if (m->hold_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); - else - return 0; + return 1; } /* ==== //depot/projects/netperf_socket/sys/alpha/conf/GENERIC#7 (text+ko) ==== @@ -18,7 +18,7 @@ # # For hardware specific information check HARDWARE.TXT # -# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.173 2004/08/01 11:40:50 markm Exp $ +# $FreeBSD: src/sys/alpha/conf/GENERIC,v 1.174 2004/08/03 19:24:52 markm Exp $ machine alpha cpu EV4 @@ -173,7 +173,6 @@ # Pseudo devices. device loop # Network loopback device mem # Memory and kernel memory devices -device null # Null and zero devices device random # Entropy device device ether # Ethernet support device sl # Kernel SLIP ==== //depot/projects/netperf_socket/sys/alpha/include/cpu.h#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.39 2004/06/20 03:52:48 bde Exp $ */ +/* $FreeBSD: src/sys/alpha/include/cpu.h,v 1.40 2004/08/03 18:44:26 mux Exp $ */ /* From: NetBSD: cpu.h,v 1.18 1997/09/23 23:17:49 mjacob Exp */ /* @@ -93,6 +93,7 @@ #ifdef _KERNEL #define cpu_getstack(td) (alpha_pal_rdusp()) +#define cpu_spinwait() /* nothing */ #define get_cyclecount alpha_rpcc void cpu_halt(void); ==== //depot/projects/netperf_socket/sys/amd64/amd64/mem.c#8 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.119 2004/08/02 20:36:47 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mem.c,v 1.120 2004/08/04 18:30:31 markm Exp $"); /* * Memory special file @@ -71,14 +71,6 @@ * Used in /dev/mem drivers and elsewhere */ MALLOC_DEFINE(M_MEMDESC, "memdesc", "memory range descriptors"); -struct mem_range_softc mem_range_softc; - -void -mem_range_AP_init(void) -{ - if (mem_range_softc.mr_op && mem_range_softc.mr_op->initAP) - mem_range_softc.mr_op->initAP(&mem_range_softc); -} /* ARGSUSED */ int @@ -223,35 +215,6 @@ return (error); } -/* - * Implementation-neutral, kernel-callable functions for manipulating - * memory range attributes. - */ -int -mem_range_attr_get(struct mem_range_desc *mrd, int *arg) -{ - /* can we handle this? */ - if (mem_range_softc.mr_op == NULL) - return (EOPNOTSUPP); - - if (*arg == 0) - *arg = mem_range_softc.mr_ndesc; - else - bcopy(mem_range_softc.mr_desc, mrd, - (*arg) * sizeof(struct mem_range_desc)); - return (0); -} - -int -mem_range_attr_set(struct mem_range_desc *mrd, int *arg) -{ - /* can we handle this? */ - if (mem_range_softc.mr_op == NULL) - return (EOPNOTSUPP); - - return (mem_range_softc.mr_op->set(&mem_range_softc, mrd, arg)); -} - void dev_mem_md_init(void) { ==== //depot/projects/netperf_socket/sys/amd64/amd64/mp_machdep.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.239 2004/06/08 01:07:51 peter Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.240 2004/08/04 18:30:31 markm Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -142,6 +142,15 @@ static struct sysctl_ctx_list logical_cpu_clist; static u_int bootMP_size; +struct mem_range_softc mem_range_softc; + +static void +mem_range_AP_init(void) +{ + if (mem_range_softc.mr_op && mem_range_softc.mr_op->initAP) + mem_range_softc.mr_op->initAP(&mem_range_softc); +} + void mp_topology(void) { ==== //depot/projects/netperf_socket/sys/amd64/amd64/pmap.c#23 (text+ko) ==== @@ -75,7 +75,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.488 2004/07/31 06:42:05 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.489 2004/08/04 18:04:43 alc Exp $"); /* * Manages physical address maps. @@ -215,6 +215,7 @@ static vm_page_t pmap_allocpte(pmap_t pmap, vm_offset_t va); static vm_page_t _pmap_allocpte(pmap_t pmap, vm_pindex_t ptepindex); +static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m); static int pmap_unuse_pt(pmap_t, vm_offset_t, pd_entry_t); static vm_offset_t pmap_kmem_choose(vm_offset_t addr); @@ -964,87 +965,76 @@ * This routine unholds page table pages, and if the hold count * drops to zero, then it decrements the wire count. */ +static PMAP_INLINE int +pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) +{ + + vm_page_unhold(m); + if (m->hold_count == 0) + return _pmap_unwire_pte_hold(pmap, va, m); + else + return 0; +} + static int _pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) { + vm_offset_t pteva; - while (vm_page_sleep_if_busy(m, FALSE, "pmuwpt")) - vm_page_lock_queues(); + /* + * unmap the page table page + */ + if (m->pindex >= (NUPDE + NUPDPE)) { + /* PDP page */ + pml4_entry_t *pml4; + pml4 = pmap_pml4e(pmap, va); + pteva = (vm_offset_t) PDPmap + amd64_ptob(m->pindex - (NUPDE + NUPDPE)); + *pml4 = 0; + } else if (m->pindex >= NUPDE) { + /* PD page */ + pdp_entry_t *pdp; + pdp = pmap_pdpe(pmap, va); + pteva = (vm_offset_t) PDmap + amd64_ptob(m->pindex - NUPDE); + *pdp = 0; + } else { + /* PTE page */ + pd_entry_t *pd; + pd = pmap_pde(pmap, va); + pteva = (vm_offset_t) PTmap + amd64_ptob(m->pindex); + *pd = 0; + } + --pmap->pm_stats.resident_count; + if (m->pindex < NUPDE) { + /* We just released a PT, unhold the matching PD */ + vm_page_t pdpg; - if (m->hold_count == 0) { - vm_offset_t pteva; + pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); + pmap_unwire_pte_hold(pmap, va, pdpg); + } + if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { + /* We just released a PD, unhold the matching PDP */ + vm_page_t pdppg; + pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); + pmap_unwire_pte_hold(pmap, va, pdppg); + } + if (pmap_is_current(pmap)) { /* - * unmap the page table page + * Do an invltlb to make the invalidated mapping + * take effect immediately. */ - if (m->pindex >= (NUPDE + NUPDPE)) { - /* PDP page */ - pml4_entry_t *pml4; - pml4 = pmap_pml4e(pmap, va); - pteva = (vm_offset_t) PDPmap + amd64_ptob(m->pindex - (NUPDE + NUPDPE)); - *pml4 = 0; - } else if (m->pindex >= NUPDE) { - /* PD page */ - pdp_entry_t *pdp; - pdp = pmap_pdpe(pmap, va); - pteva = (vm_offset_t) PDmap + amd64_ptob(m->pindex - NUPDE); - *pdp = 0; - } else { - /* PTE page */ - pd_entry_t *pd; - pd = pmap_pde(pmap, va); - pteva = (vm_offset_t) PTmap + amd64_ptob(m->pindex); - *pd = 0; - } - --pmap->pm_stats.resident_count; - if (m->pindex < NUPDE) { - /* We just released a PT, unhold the matching PD */ - vm_page_t pdpg; + pmap_invalidate_page(pmap, pteva); + } - pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); - vm_page_unhold(pdpg); - if (pdpg->hold_count == 0) - _pmap_unwire_pte_hold(pmap, va, pdpg); - } - if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { - /* We just released a PD, unhold the matching PDP */ - vm_page_t pdppg; - - pdppg = PHYS_TO_VM_PAGE(*pmap_pml4e(pmap, va) & PG_FRAME); - vm_page_unhold(pdppg); - if (pdppg->hold_count == 0) - _pmap_unwire_pte_hold(pmap, va, pdppg); - } - if (pmap_is_current(pmap)) { - /* - * Do an invltlb to make the invalidated mapping - * take effect immediately. - */ - pmap_invalidate_page(pmap, pteva); - } - - /* - * If the page is finally unwired, simply free it. - */ - --m->wire_count; - if (m->wire_count == 0) { - vm_page_busy(m); - vm_page_free_zero(m); - atomic_subtract_int(&cnt.v_wire_count, 1); - } - return 1; + /* + * If the page is finally unwired, simply free it. + */ + --m->wire_count; + if (m->wire_count == 0) { + vm_page_free_zero(m); + atomic_subtract_int(&cnt.v_wire_count, 1); } - return 0; -} - -static PMAP_INLINE int -pmap_unwire_pte_hold(pmap_t pmap, vm_offset_t va, vm_page_t m) -{ - vm_page_unhold(m); - if (m->hold_count == 0) - return _pmap_unwire_pte_hold(pmap, va, m); - else - return 0; + return 1; } /* ==== //depot/projects/netperf_socket/sys/amd64/conf/GENERIC#13 (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.418 2004/08/01 19:37:34 markm Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.419 2004/08/03 19:24:52 markm Exp $ machine amd64 cpu HAMMER @@ -220,7 +220,6 @@ device loop # Network loopback device mem # Memory and kernel memory devices device io # I/O device -device null # Null and zero devices device random # Entropy device device ether # Ethernet support device sl # Kernel SLIP ==== //depot/projects/netperf_socket/sys/amd64/include/cpu.h#5 (text+ko) ==== @@ -30,7 +30,7 @@ * SUCH DAMAGE. * * from: @(#)cpu.h 5.4 (Berkeley) 5/9/91 - * $FreeBSD: src/sys/amd64/include/cpu.h,v 1.73 2004/06/20 03:52:48 bde Exp $ + * $FreeBSD: src/sys/amd64/include/cpu.h,v 1.74 2004/08/03 18:44:26 mux Exp $ */ #ifndef _MACHINE_CPU_H_ @@ -50,9 +50,10 @@ #undef COPY_SIGCODE /* don't copy sigcode above user stack in exec */ #define cpu_exec(p) /* nothing */ -#define cpu_swapin(p) /* nothing */ +#define cpu_swapin(p) /* nothing */ #define cpu_getstack(td) ((td)->td_frame->tf_rsp) -#define cpu_setstack(td, ap) ((td)->td_frame->tf_rsp = (ap)) +#define cpu_setstack(td, ap) ((td)->td_frame->tf_rsp = (ap)) +#define cpu_spinwait() ia32_pause() #define TRAPF_USERMODE(framep) \ (ISPL((framep)->tf_cs) == SEL_UPL) ==== //depot/projects/netperf_socket/sys/amd64/include/elf.h#3 (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.17 2004/08/02 19:12:17 dfr Exp $ + * $FreeBSD: src/sys/amd64/include/elf.h,v 1.18 2004/08/03 08:21:48 dfr Exp $ */ #ifndef _MACHINE_ELF_H_ @@ -124,14 +124,14 @@ #define R_X86_64_PC16 13 /* Add 16 bit signed extended pc relative symbol value */ #define R_X86_64_8 14 /* Add 8 bit zero extended symbol value */ #define R_X86_64_PC8 15 /* Add 8 bit signed extended pc relative symbol value */ -#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ -#define R_X86_64_DTPOFF64 17 /* Offset in TLS block */ -#define R_X86_64_TPOFF64 18 /* Offset in static TLS block */ -#define R_X86_64_TLSGD 19 /* PC relative offset to GD GOT entry */ -#define R_X86_64_TLSLD 20 /* PC relative offset to LD GOT entry */ -#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ -#define R_X86_64_GOTTPOFF 22 /* PC relative offset to IE GOT entry */ -#define R_X86_64_TPOFF32 23 /* Offset in static TLS block */ +#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ +#define R_X86_64_DTPOFF64 17 /* Offset in TLS block */ +#define R_X86_64_TPOFF64 18 /* Offset in static TLS block */ +#define R_X86_64_TLSGD 19 /* PC relative offset to GD GOT entry */ +#define R_X86_64_TLSLD 20 /* PC relative offset to LD GOT entry */ +#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ +#define R_X86_64_GOTTPOFF 22 /* PC relative offset to IE GOT entry */ +#define R_X86_64_TPOFF32 23 /* Offset in static TLS block */ #define R_X86_64_COUNT 24 /* Count of defined relocation types. */ ==== //depot/projects/netperf_socket/sys/arm/include/cpu.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* $NetBSD: cpu.h,v 1.2 2001/02/23 21:23:52 reinoud Exp $ */ -/* $FreeBSD: src/sys/arm/include/cpu.h,v 1.1 2004/05/14 11:46:44 cognet Exp $ */ +/* $FreeBSD: src/sys/arm/include/cpu.h,v 1.2 2004/08/03 18:44:26 mux Exp $ */ #ifndef MACHINE_CPU_H #define MACHINE_CPU_H @@ -32,6 +32,7 @@ #define cpu_getstack(td) ((td)->td_frame->tf_usr_sp) #define cpu_setstack(td, sp) ((td)->td_frame->tf_usr_sp = (sp)) +#define cpu_spinwait() /* nothing */ #define ARM_NVEC 8 #define ARM_VEC_ALL 0xffffffff ==== //depot/projects/netperf_socket/sys/compat/ndis/kern_ndis.c#18 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.58 2004/08/01 20:04:30 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/kern_ndis.c,v 1.59 2004/08/04 18:22:50 wpaul Exp $"); #include #include @@ -782,9 +782,9 @@ return; returnfunc = sc->ndis_chars.nmc_return_packet_func; - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); returnfunc(adapter, p); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); return; } @@ -1132,10 +1132,10 @@ if (adapter == NULL || setfunc == NULL) return(ENXIO); - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); rval = setfunc(adapter, oid, buf, *buflen, &byteswritten, &bytesneeded); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); if (rval == NDIS_STATUS_PENDING) { PROC_LOCK(curthread->td_proc); @@ -1189,9 +1189,9 @@ return(ENXIO); sendfunc = sc->ndis_chars.nmc_sendmulti_func; senddonefunc = sc->ndis_block.nmb_senddone_func; - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); sendfunc(adapter, packets, cnt); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); for (i = 0; i < cnt; i++) { p = packets[i]; @@ -1228,9 +1228,9 @@ sendfunc = sc->ndis_chars.nmc_sendsingle_func; senddonefunc = sc->ndis_block.nmb_senddone_func; - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); status = sendfunc(adapter, packet, packet->np_private.npp_flags); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); if (status == NDIS_STATUS_PENDING) return(0); @@ -1317,9 +1317,9 @@ if (adapter == NULL || resetfunc == NULL) return(EIO); - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); rval = resetfunc(&addressing_reset, adapter); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); if (rval == NDIS_STATUS_PENDING) { PROC_LOCK(curthread->td_proc); @@ -1550,10 +1550,10 @@ if (adapter == NULL || queryfunc == NULL) return(ENXIO); - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); rval = queryfunc(adapter, oid, buf, *buflen, &byteswritten, &bytesneeded); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); /* Wait for requests that block. */ ==== //depot/projects/netperf_socket/sys/compat/ndis/ntoskrnl_var.h#10 (text+ko) ==== @@ -29,7 +29,7 @@ * 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/ntoskrnl_var.h,v 1.16 2004/08/01 20:04:30 wpaul Exp $ + * $FreeBSD: src/sys/compat/ndis/ntoskrnl_var.h,v 1.17 2004/08/04 18:22:50 wpaul Exp $ */ #ifndef _NTOSKRNL_VAR_H_ @@ -516,10 +516,10 @@ * routines live in the HAL. We try to imitate this behavior. */ #ifdef __i386__ -#define ntoskrnl_acquire_spinlock(a, b) \ - *(b) = FASTCALL(hal_lock, a, 0) -#define ntoskrnl_release_spinlock(a, b) \ - FASTCALL(hal_unlock, a, b) +#define ntoskrnl_acquire_spinlock(a, b) *(b) = FASTCALL1(hal_lock, a) +#define ntoskrnl_release_spinlock(a, b) FASTCALL2(hal_unlock, a, b) +#define ntoskrnl_raise_irql(a) FASTCALL1(hal_raise_irql, a) +#define ntoskrnl_lower_irql(a) FASTCALL1(hal_lower_irql, a) #endif /* __i386__ */ __END_DECLS ==== //depot/projects/netperf_socket/sys/compat/ndis/subr_ndis.c#14 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.64 2004/08/01 21:15:29 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ndis.c,v 1.65 2004/08/04 18:22:50 wpaul Exp $"); /* * This file implements a translation layer between the BSD networking @@ -809,8 +809,7 @@ ndis_lock(lock) ndis_spin_lock *lock; { - lock->nsl_kirql = FASTCALL2(hal_lock, - &lock->nsl_spinlock, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(&lock->nsl_spinlock, &lock->nsl_kirql); return; } @@ -822,7 +821,7 @@ ndis_unlock(lock) ndis_spin_lock *lock; { - FASTCALL2(hal_unlock, &lock->nsl_spinlock, lock->nsl_kirql); + ntoskrnl_release_spinlock(&lock->nsl_spinlock, lock->nsl_kirql); return; } @@ -2317,14 +2316,13 @@ { list_entry *flink; - lock->nsl_kirql = FASTCALL2(hal_lock, - &lock->nsl_spinlock, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(&lock->nsl_spinlock, &lock->nsl_kirql); flink = head->nle_flink; entry->nle_flink = flink; entry->nle_blink = head; flink->nle_blink = entry; head->nle_flink = entry; - FASTCALL2(hal_unlock, &lock->nsl_spinlock, lock->nsl_kirql); + ntoskrnl_release_spinlock(&lock->nsl_spinlock, lock->nsl_kirql); return(flink); } @@ -2337,13 +2335,12 @@ list_entry *flink; list_entry *entry; - lock->nsl_kirql = FASTCALL2(hal_lock, - &lock->nsl_spinlock, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(&lock->nsl_spinlock, &lock->nsl_kirql); entry = head->nle_flink; flink = entry->nle_flink; head->nle_flink = flink; flink->nle_blink = head; - FASTCALL2(hal_unlock, &lock->nsl_spinlock, lock->nsl_kirql); + ntoskrnl_release_spinlock(&lock->nsl_spinlock, lock->nsl_kirql); return(entry); } @@ -2356,14 +2353,13 @@ { list_entry *blink; - lock->nsl_kirql = FASTCALL2(hal_lock, - &lock->nsl_spinlock, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(&lock->nsl_spinlock, &lock->nsl_kirql); blink = head->nle_blink; entry->nle_flink = head; entry->nle_blink = blink; blink->nle_flink = entry; head->nle_blink = entry; - FASTCALL2(hal_unlock, &lock->nsl_spinlock, lock->nsl_kirql); + ntoskrnl_release_spinlock(&lock->nsl_spinlock, lock->nsl_kirql); return(blink); } ==== //depot/projects/netperf_socket/sys/compat/ndis/subr_ntoskrnl.c#17 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.41 2004/08/01 20:04:30 wpaul Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.42 2004/08/04 18:22:50 wpaul Exp $"); #include #include @@ -984,9 +984,9 @@ slist_entry *oldhead; uint8_t irql; - irql = FASTCALL2(hal_lock, lock, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(lock, &irql); oldhead = ntoskrnl_pushsl(head, entry); - FASTCALL2(hal_unlock, lock, irql); + ntoskrnl_release_spinlock(lock, irql); return(oldhead); } @@ -997,9 +997,9 @@ slist_entry *first; uint8_t irql; - irql = FASTCALL2(hal_lock, lock, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(lock, &irql); first = ntoskrnl_popsl(head); - FASTCALL2(hal_unlock, lock, irql); + ntoskrnl_release_spinlock(lock, irql); return(first); } @@ -1040,9 +1040,9 @@ { uint8_t irql; - irql = FASTCALL2(hal_lock, &ntoskrnl_global, DISPATCH_LEVEL); + ntoskrnl_acquire_spinlock(&ntoskrnl_global, &irql); *addend += inc; - FASTCALL2(hal_unlock, &ntoskrnl_global, irql); + ntoskrnl_release_spinlock(&ntoskrnl_global, irql); return; }; @@ -1686,9 +1686,9 @@ dpc = arg; dpcfunc = (kdpc_func)dpc->k_deferedfunc; - irql = FASTCALL1(hal_raise_irql, DISPATCH_LEVEL); + irql = ntoskrnl_raise_irql(DISPATCH_LEVEL); dpcfunc(dpc, dpc->k_deferredctx, dpc->k_sysarg1, dpc->k_sysarg2); - FASTCALL1(hal_lower_irql, irql); + ntoskrnl_lower_irql(irql); return; } ==== //depot/projects/netperf_socket/sys/conf/NOTES#32 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/NOTES,v 1.1253 2004/08/01 11:40:51 markm Exp $ +# $FreeBSD: src/sys/conf/NOTES,v 1.1254 2004/08/03 19:24:53 markm Exp $ # # NOTES -- Lines that can be cut/pasted into kernel and hints configs. # @@ -839,9 +839,6 @@ # Cryptographically secure random number generator; /dev/random device random -# The bit-bucket; /dev/null -device null - # The system memory devices; /dev/mem, /dev/kmem device mem ==== //depot/projects/netperf_socket/sys/conf/files#43 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/conf/files,v 1.935 2004/08/01 11:40:51 markm Exp $ +# $FreeBSD: src/sys/conf/files,v 1.936 2004/08/03 19:24:53 markm Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -585,7 +585,7 @@ dev/musycc/musycc.c optional musycc dev/nge/if_nge.c optional nge dev/nmdm/nmdm.c optional nmdm -dev/null/null.c optional null +dev/null/null.c standard dev/patm/if_patm.c optional patm pci dev/patm/if_patm_intr.c optional patm pci dev/patm/if_patm_ioctl.c optional patm pci ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#34 (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/dev/acpica/acpi.c,v 1.178 2004/07/26 06:04:35 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.182 2004/08/03 17:16:30 njl Exp $ */ #include "opt_acpi.h" @@ -188,6 +188,8 @@ DRIVER_MODULE(acpi, nexus, acpi_driver, acpi_devclass, acpi_modevent, 0); MODULE_VERSION(acpi, 1); +#define ACPI_MINIMUM_AWAKETIME 5 + static const char* sleep_state_names[] = { "S0", "S1", "S2", "S3", "S4", "S5", "NONE"}; @@ -238,14 +240,12 @@ ACPI_STATUS acpi_Startup(void) { -#ifdef ACPI_DEBUGGER - char *debugpoint; -#endif static int started = 0; int error, val; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); + /* Only run the startup code once. The MADT driver also calls this. */ if (started) return_VALUE (0); started = 1; @@ -260,26 +260,10 @@ AcpiGbl_AllMethodsSerialized = (UINT8)acpi_serialize_methods; /* Start up the ACPI CA subsystem. */ -#ifdef ACPI_DEBUGGER - debugpoint = getenv("debug.acpi.debugger"); - if (debugpoint) { - if (!strcmp(debugpoint, "init")) - acpi_EnterDebugger(); - freeenv(debugpoint); - } -#endif if (ACPI_FAILURE(error = AcpiInitializeSubsystem())) { printf("ACPI: initialisation failed: %s\n", AcpiFormatException(error)); return_VALUE (error); } -#ifdef ACPI_DEBUGGER - debugpoint = getenv("debug.acpi.debugger"); - if (debugpoint) { - if (!strcmp(debugpoint, "tables")) - acpi_EnterDebugger(); - freeenv(debugpoint); - } -#endif >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 5 21:27:14 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6722916A4D3; Thu, 5 Aug 2004 21:27:14 +0000 (GMT) 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 3E1FD16A4CF for ; Thu, 5 Aug 2004 21:27:14 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 2122F43D46 for ; Thu, 5 Aug 2004 21:27:14 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i75LRET4084934 for ; Thu, 5 Aug 2004 21:27:14 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i75LRD4o084930 for perforce@freebsd.org; Thu, 5 Aug 2004 21:27:13 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Thu, 5 Aug 2004 21:27:13 GMT Message-Id: <200408052127.i75LRD4o084930@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 58953 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: Thu, 05 Aug 2004 21:27:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=58953 Change 58953 by rwatson@rwatson_paprika on 2004/08/05 21:26:48 Integrate netperf_socket from CVS HEAD: various pmap/vm locking fixes, cleanups, giant removal btx fixes more /dev/mem fixes if_hme checksum offload lazypmap_lock eliminated curthread avoidance in mutex code BPF lockless read for interface descriptor list looped back from rwatson_netperf Affected files ... .. //depot/projects/netperf_socket/sys/arm/arm/pmap.c#7 integrate .. //depot/projects/netperf_socket/sys/boot/i386/boot2/boot1.S#5 integrate .. //depot/projects/netperf_socket/sys/boot/i386/btx/lib/btxcsu.s#2 integrate .. //depot/projects/netperf_socket/sys/conf/files.amd64#14 integrate .. //depot/projects/netperf_socket/sys/conf/files.i386#25 integrate .. //depot/projects/netperf_socket/sys/conf/files.pc98#14 integrate .. //depot/projects/netperf_socket/sys/contrib/pf/netinet/in4_cksum.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#12 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-all.h#9 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-chipset.c#13 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-disk.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-dma.c#3 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#12 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-pci.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-queue.c#9 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-cd.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-fd.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/ata/atapi-tape.c#6 integrate .. //depot/projects/netperf_socket/sys/dev/drm/drm_drv.h#6 integrate .. //depot/projects/netperf_socket/sys/dev/hme/if_hme.c#10 integrate .. //depot/projects/netperf_socket/sys/dev/hme/if_hme_sbus.c#5 integrate .. //depot/projects/netperf_socket/sys/dev/hme/if_hmereg.h#3 integrate .. //depot/projects/netperf_socket/sys/dev/hme/if_hmevar.h#2 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.c#3 integrate .. //depot/projects/netperf_socket/sys/geom/mirror/g_mirror.h#3 integrate .. //depot/projects/netperf_socket/sys/i386/acpica/acpi_wakeup.c#7 integrate .. //depot/projects/netperf_socket/sys/i386/i386/machdep.c#12 integrate .. //depot/projects/netperf_socket/sys/i386/i386/mp_machdep.c#5 integrate .. //depot/projects/netperf_socket/sys/i386/i386/pmap.c#23 integrate .. //depot/projects/netperf_socket/sys/ia64/ia64/locore.S#2 integrate .. //depot/projects/netperf_socket/sys/kern/kern_mutex.c#10 integrate .. //depot/projects/netperf_socket/sys/kern/kern_synch.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/subr_rman.c#4 integrate .. //depot/projects/netperf_socket/sys/kern/subr_witness.c#9 integrate .. //depot/projects/netperf_socket/sys/net/bpf.c#10 integrate .. //depot/projects/netperf_socket/sys/net/if_gre.c#9 integrate .. //depot/projects/netperf_socket/sys/pc98/conf/GENERIC#12 integrate .. //depot/projects/netperf_socket/sys/pc98/i386/machdep.c#10 integrate .. //depot/projects/netperf_socket/sys/powerpc/powerpc/pmap.c#13 integrate .. //depot/projects/netperf_socket/sys/sparc64/sparc64/pmap.c#11 integrate .. //depot/projects/netperf_socket/sys/sys/bio.h#5 integrate .. //depot/projects/netperf_socket/sys/sys/mutex.h#7 integrate .. //depot/projects/netperf_socket/sys/sys/systm.h#9 integrate .. //depot/projects/netperf_socket/sys/vm/vm_map.c#17 integrate .. //depot/projects/netperf_socket/sys/vm/vm_mmap.c#11 integrate Differences ... ==== //depot/projects/netperf_socket/sys/arm/arm/pmap.c#7 (text+ko) ==== @@ -144,7 +144,7 @@ */ /* Include header files */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.9 2004/07/30 20:38:30 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.10 2004/08/04 22:03:15 alc Exp $"); #include #include #include @@ -3406,7 +3406,10 @@ vm_page_t pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) { + + mtx_lock(&Giant); pmap_enter(pmap, va, m, VM_PROT_READ | VM_PROT_EXECUTE, FALSE); + mtx_unlock(&Giant); return (NULL); } ==== //depot/projects/netperf_socket/sys/boot/i386/boot2/boot1.S#5 (text+ko) ==== @@ -12,7 +12,7 @@ * warranties of merchantability and fitness for a particular * purpose. * - * $FreeBSD: src/sys/boot/i386/boot2/boot1.S,v 1.28 2004/06/02 09:38:32 phk Exp $ + * $FreeBSD: src/sys/boot/i386/boot2/boot1.S,v 1.29 2004/08/05 06:00:05 kan Exp $ */ /* Memory Locations */ @@ -193,10 +193,6 @@ sub %si,%cx # count rep # Relocate movsb # client - sub %di,%cx # Byte count - xorb %al,%al # Zero assumed bss from - rep # the end of boot2.bin - stosb # up to 0x10000 /* * Enable A20 so we can access memory above 1 meg. ==== //depot/projects/netperf_socket/sys/boot/i386/btx/lib/btxcsu.s#2 (text+ko) ==== @@ -13,7 +13,7 @@ # purpose. # -# $FreeBSD: src/sys/boot/i386/btx/lib/btxcsu.s,v 1.3 1999/08/28 00:40:07 peter Exp $ +# $FreeBSD: src/sys/boot/i386/btx/lib/btxcsu.s,v 1.4 2004/08/05 06:00:05 kan Exp $ # # BTX C startup code (ELF). @@ -30,7 +30,15 @@ # # Client entry point. # -_start: movl %eax,__base # Set base address +_start: cld + pushl %eax + movl $_edata,%edi + movl $_end,%ecx + subl %edi, %ecx + xorb %al, %al + rep + stosb + popl __base movl %esp,%eax # Set addl $ARGADJ,%eax # argument movl %eax,__args # pointer ==== //depot/projects/netperf_socket/sys/conf/files.amd64#14 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.amd64,v 1.43 2004/08/01 11:40:51 markm Exp $ +# $FreeBSD: src/sys/conf/files.amd64,v 1.44 2004/08/04 20:49:43 markm Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -112,6 +112,7 @@ dev/kbd/kbd.c optional kbd dev/kbd/kbd.c optional sc dev/kbd/kbd.c optional ukbd +dev/mem/memutil.c optional mem dev/ppc/ppc.c optional ppc dev/sio/sio.c optional sio dev/sio/sio_isa.c optional sio isa ==== //depot/projects/netperf_socket/sys/conf/files.i386#25 (text+ko) ==== @@ -1,7 +1,7 @@ # This file tells config what files go into building a kernel, # files marked standard are always included. # -# $FreeBSD: src/sys/conf/files.i386,v 1.501 2004/08/01 11:40:51 markm Exp $ +# $FreeBSD: src/sys/conf/files.i386,v 1.502 2004/08/04 20:49:43 markm Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -153,6 +153,7 @@ dev/kbd/kbd.c optional vt dev/lnc/if_lnc_isa.c optional lnc isa dev/io/iodev.c optional io +dev/mem/memutil.c optional mem dev/ppc/ppc.c optional ppc dev/ppc/ppc_puc.c optional ppc puc pci dev/random/nehemiah.c optional random ==== //depot/projects/netperf_socket/sys/conf/files.pc98#14 (text+ko) ==== @@ -3,7 +3,7 @@ # # modified for PC-9801 # -# $FreeBSD: src/sys/conf/files.pc98,v 1.303 2004/08/01 13:00:04 nyan Exp $ +# $FreeBSD: src/sys/conf/files.pc98,v 1.304 2004/08/05 13:00:11 nyan Exp $ # # The long compile-with and dependency lines are required because of # limitations in config: backslash-newline doesn't work in strings, and @@ -111,6 +111,7 @@ dev/kbd/kbd.c optional pckbd dev/lnc/if_lnc_cbus.c optional lnc isa dev/io/iodev.c optional io +dev/mem/memutil.c optional mem dev/ppc/ppc_puc.c optional ppc puc pci dev/sbni/if_sbni.c optional sbni dev/sbni/if_sbni_pci.c optional sbni pci ==== //depot/projects/netperf_socket/sys/contrib/pf/netinet/in4_cksum.c#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/netinet/in4_cksum.c,v 1.3 2004/06/16 23:24:01 mlaier Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/netinet/in4_cksum.c,v 1.4 2004/08/05 20:41:38 mlaier Exp $ */ /* $OpenBSD: in4_cksum.c,v 1.7 2003/06/02 23:28:13 millert Exp $ */ /* $KAME: in4_cksum.c,v 1.10 2001/11/30 10:06:15 itojun Exp $ */ /* $NetBSD: in_cksum.c,v 1.13 1996/10/13 02:03:03 christos Exp $ */ @@ -64,90 +64,37 @@ */ #include +#include #include -#include -#include -#include + #include #include #include #include -#if defined(__FreeBSD__) && defined(__i386__) -/* - * Copied from FreeBSD 5.0 sys/i386/i386/in_cksum.c - * XXX - * Currently support I386 processor only. - * In the long run, we need an optimized cksum routines for each Tier1 - * architecture. Due to the lack of available hardware except I386 I - * can't support other processors now. For those users which use Sparc64, - * Alpha processors can use more optimized version in FreeBSD. - * See sys/$ARCH/$ARCH/in_cksum.c where $ARCH=`uname -p` - */ - -/* - * These asm statements require __volatile because they pass information - * via the condition codes. GCC does not currently provide a way to specify - * the condition codes as an input or output operand. - * - * The LOAD macro below is effectively a prefetch into cache. GCC will - * load the value into a register but will not use it. Since modern CPUs - * reorder operations, this will generally take place in parallel with - * other calculations. - */ -#define ADD(n) __asm __volatile \ - ("addl %1, %0" : "+r" (sum) : \ - "g" (((const u_int32_t *)w)[n / 4])) -#define ADDC(n) __asm __volatile \ - ("adcl %1, %0" : "+r" (sum) : \ - "g" (((const u_int32_t *)w)[n / 4])) -#define LOAD(n) __asm __volatile \ - ("" : : "r" (((const u_int32_t *)w)[n / 4])) -#define MOP __asm __volatile \ - ("adcl $0, %0" : "+r" (sum)) -#endif -/* - * Checksum routine for Internet Protocol family headers (Portable Version). - * This is only for IPv4 pseudo header checksum. - * No need to clear non-pseudo-header fields in IPv4 header. - * len is for actual payload size, and does not include IPv4 header and - * skipped header chain (off + len should be equal to the whole packet). - * - * This routine is very heavily used in the network - * code and should be modified for each CPU to be as fast as possible. - */ +#include #define ADDCARRY(x) (x > 65535 ? x -= 65535 : x) #define REDUCE {l_util.l = sum; sum = l_util.s[0] + l_util.s[1]; ADDCARRY(sum);} -#if defined(__FreeBSD__) -int -in4_cksum(struct mbuf *m, u_int8_t nxt, int off, int len); -#endif +int in4_cksum(struct mbuf *, u_int8_t, int, int); int -in4_cksum(m, nxt, off, len) - struct mbuf *m; - u_int8_t nxt; - int off, len; +in4_cksum(struct mbuf *m, u_int8_t nxt, int off, int len) { - u_int16_t *w; - int sum = 0; - int mlen = 0; - int byte_swapped = 0; union { struct ipovly ipov; u_int16_t w[10]; } u; union { - u_int8_t c[2]; - u_int16_t s; - } s_util; - union { u_int16_t s[2]; u_int32_t l; } l_util; + u_int16_t *w; + int psum; + int sum = 0; + if (nxt != 0) { /* pseudo header */ if (off < sizeof(struct ipovly)) @@ -165,223 +112,9 @@ sum += w[5]; sum += w[6]; sum += w[7]; sum += w[8]; sum += w[9]; } - /* skip unnecessary part */ - while (m && off > 0) { - if (m->m_len > off) - break; - off -= m->m_len; - m = m->m_next; - } - - for (;m && len; m = m->m_next) { - if (m->m_len == 0) - continue; - w = (u_int16_t *)(mtod(m, caddr_t) + off); - if (mlen == -1) { - /* - * The first byte of this mbuf is the continuation - * of a word spanning between this mbuf and the - * last mbuf. - * - * s_util.c[0] is already saved when scanning previous - * mbuf. - */ - s_util.c[1] = *(u_int8_t *)w; - sum += s_util.s; - w = (u_int16_t *)((u_int8_t *)w + 1); - mlen = m->m_len - off - 1; - len--; - } else - mlen = m->m_len - off; - off = 0; - if (len < mlen) - mlen = len; - len -= mlen; -#if defined(__FreeBSD__) && defined(__i386__) - /* - * Force to long boundary so we do longword aligned - * memory operations - */ - if (3 & (int) w) { - REDUCE; - if ((1 & (int) w) && (mlen > 0)) { - sum <<= 8; - s_util.c[0] = *(char *)w; - w = (u_short *)((char *)w + 1); - mlen--; - byte_swapped = 1; - } - if ((2 & (int) w) && (mlen >= 2)) { - sum += *w++; - mlen -= 2; - } - } - /* - * Advance to a 486 cache line boundary. - */ - if (4 & (int) w && mlen >= 4) { - ADD(0); - MOP; - w += 2; - mlen -= 4; - } - if (8 & (int) w && mlen >= 8) { - ADD(0); - ADDC(4); - MOP; - w += 4; - mlen -= 8; - } - /* - * Do as much of the checksum as possible 32 bits at at time. - * In fact, this loop is unrolled to make overhead from - * branches &c small. - */ - mlen -= 1; - while ((mlen -= 32) >= 0) { - /* - * Add with carry 16 words and fold in the last - * carry by adding a 0 with carry. - * - * The early ADD(16) and the LOAD(32) are to load - * the next 2 cache lines in advance on 486's. The - * 486 has a penalty of 2 clock cycles for loading - * a cache line, plus whatever time the external - * memory takes to load the first word(s) addressed. - * These penalties are unavoidable. Subsequent - * accesses to a cache line being loaded (and to - * other external memory?) are delayed until the - * whole load finishes. These penalties are mostly - * avoided by not accessing external memory for - * 8 cycles after the ADD(16) and 12 cycles after - * the LOAD(32). The loop terminates when mlen - * is initially 33 (not 32) to guaranteed that - * the LOAD(32) is within bounds. - */ - ADD(16); - ADDC(0); - ADDC(4); - ADDC(8); - ADDC(12); - LOAD(32); - ADDC(20); - ADDC(24); - ADDC(28); - MOP; - w += 16; - } - mlen += 32 + 1; - if (mlen >= 32) { - ADD(16); - ADDC(0); - ADDC(4); - ADDC(8); - ADDC(12); - ADDC(20); - ADDC(24); - ADDC(28); - MOP; - w += 16; - mlen -= 32; - } - if (mlen >= 16) { - ADD(0); - ADDC(4); - ADDC(8); - ADDC(12); - MOP; - w += 8; - mlen -= 16; - } - if (mlen >= 8) { - ADD(0); - ADDC(4); - MOP; - w += 4; - mlen -= 8; - } - if (mlen == 0 && byte_swapped == 0) - continue; /* worth 1% maybe ?? */ - REDUCE; - while ((mlen -= 2) >= 0) { - sum += *w++; - } - if (byte_swapped) { - REDUCE; - sum <<= 8; - byte_swapped = 0; - if (mlen == -1) { - s_util.c[1] = *(char *)w; - sum += s_util.s; - mlen = 0; - } else - mlen = -1; - } else if (mlen == -1) - /* - * This mbuf has odd number of bytes. - * There could be a word split betwen - * this mbuf and the next mbuf. - * Save the last byte (to prepend to next mbuf). - */ - s_util.c[0] = *(char *)w; -#else - /* - * Force to even boundary. - */ - if ((1 & (long) w) && (mlen > 0)) { - REDUCE; - sum <<= 8; - s_util.c[0] = *(u_int8_t *)w; - w = (u_int16_t *)((int8_t *)w + 1); - mlen--; - byte_swapped = 1; - } - /* - * Unroll the loop to make overhead from - * branches &c small. - */ - while ((mlen -= 32) >= 0) { - sum += w[0]; sum += w[1]; sum += w[2]; sum += w[3]; - sum += w[4]; sum += w[5]; sum += w[6]; sum += w[7]; - sum += w[8]; sum += w[9]; sum += w[10]; sum += w[11]; - sum += w[12]; sum += w[13]; sum += w[14]; sum += w[15]; - w += 16; - } - mlen += 32; - while ((mlen -= 8) >= 0) { - sum += w[0]; sum += w[1]; sum += w[2]; sum += w[3]; - w += 4; - } - mlen += 8; - if (mlen == 0 && byte_swapped == 0) - continue; - REDUCE; - while ((mlen -= 2) >= 0) { - sum += *w++; - } - if (byte_swapped) { - REDUCE; - sum <<= 8; - byte_swapped = 0; - if (mlen == -1) { - s_util.c[1] = *(u_int8_t *)w; - sum += s_util.s; - mlen = 0; - } else - mlen = -1; - } else if (mlen == -1) - s_util.c[0] = *(u_int8_t *)w; -#endif - } - if (len) - printf("cksum4: out of data\n"); - if (mlen == -1) { - /* The last mbuf has odd # of bytes. Follow the - standard (the odd byte may be shifted left by 8 bits - or not as determined by endian-ness of the machine) */ - s_util.c[1] = 0; - sum += s_util.s; - } + psum = in_cksum_skip(m, len + off, off); + psum = ~psum & 0xffff; + sum += psum; REDUCE; return (~sum & 0xffff); } ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#6 (text+ko) ==== @@ -24,8 +24,11 @@ * SUCH DAMAGE. */ +/* XXX Uncomment this if you have new PCI IRQ problems starting 2004/8/5. */ +/* #define ACPI_OLD_PCI_LINK 1 */ + #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.16 2004/06/14 18:54:14 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.17 2004/08/05 06:54:16 njl Exp $"); #include "opt_acpi.h" #include @@ -73,10 +76,12 @@ static int irq_penalty[MAX_ACPI_INTERRUPTS]; +#ifdef ACPI_OLD_PCI_LINK #define ACPI_STA_PRESENT 0x00000001 #define ACPI_STA_ENABLE 0x00000002 #define ACPI_STA_SHOWINUI 0x00000004 #define ACPI_STA_FUNCTIONAL 0x00000008 +#endif /* ACPI_OLD_PCI_LINK */ /* * PCI link object management @@ -171,6 +176,7 @@ (int)entry->prt.Pin); } +#ifdef ACPI_OLD_PCI_LINK static ACPI_STATUS acpi_pci_link_get_object_status(ACPI_HANDLE handle, UINT32 *sta) { @@ -215,6 +221,7 @@ AcpiOsFree(buf.Pointer); return_ACPI_STATUS (AE_OK); } +#endif /* ACPI_OLD_PCI_LINK */ static ACPI_STATUS acpi_pci_link_get_irq_resources(ACPI_RESOURCE *resources, @@ -439,7 +446,9 @@ { ACPI_HANDLE handle; ACPI_STATUS error; +#ifdef ACPI_OLD_PCI_LINK UINT32 sta; +#endif struct acpi_prt_entry *entry; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -457,6 +466,11 @@ return_ACPI_STATUS (error); } + /* + * PCI link status (_STA) is unreliable. Many systems return + * erroneous values so we ignore it. + */ +#ifdef ACPI_OLD_PCI_LINK error = acpi_pci_link_get_object_status(handle, &sta); if (ACPI_FAILURE(error)) { ACPI_DEBUG_PRINT((ACPI_DB_ERROR, @@ -471,6 +485,7 @@ acpi_name(handle))); return_ACPI_STATUS (AE_ERROR); } +#endif /* ACPI_OLD_PCI_LINK */ TAILQ_FOREACH(entry, &acpi_prt_entries, links) { if (entry->busno == busno && @@ -539,7 +554,9 @@ ACPI_STATUS error; ACPI_RESOURCE resbuf; ACPI_BUFFER crsbuf; +#ifdef ACPI_OLD_PCI_LINK UINT32 sta; +#endif ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -614,7 +631,13 @@ AcpiOsFree(crsbuf.Pointer); link->current_irq = 0; + error = AE_OK; + /* + * PCI link status (_STA) is unreliable. Many systems return + * erroneous values so we ignore it. + */ +#ifdef ACPI_OLD_PCI_LINK error = acpi_pci_link_get_object_status(link->handle, &sta); if (ACPI_FAILURE(error)) { ACPI_DEBUG_PRINT((ACPI_DB_WARN, @@ -629,7 +652,14 @@ acpi_name(link->handle))); return_ACPI_STATUS (AE_ERROR); } +#endif /* ACPI_OLD_PCI_LINK */ + /* + * Many systems always return invalid values for current settings + * (_CRS). Since we can't trust the value returned, we have to + * assume we were successful. + */ +#ifdef ACPI_OLD_PCI_LINK error = acpi_pci_link_get_current_irq(link, &link->current_irq); if (ACPI_FAILURE(error)) { ACPI_DEBUG_PRINT((ACPI_DB_WARN, @@ -647,6 +677,7 @@ link->current_irq = 0; error = AE_ERROR; } +#endif /* ACPI_OLD_PCI_LINK */ return_ACPI_STATUS (error); } ==== //depot/projects/netperf_socket/sys/dev/ata/ata-all.c#12 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.217 2004/08/01 12:31:38 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.218 2004/08/05 21:13:40 sos Exp $"); #include "opt_ata.h" #include @@ -231,7 +231,6 @@ int ata_reinit(struct ata_channel *ch) { - struct ata_request *request = ch->running; int devices, misdev, newdev; if (!ch->r_irq) @@ -242,10 +241,8 @@ ata_printf(ch, -1, "reiniting channel ..\n"); ATA_FORCELOCK_CH(ch); ch->flags |= ATA_IMMEDIATE_MODE; - ch->running = NULL; devices = ch->devices; ch->hw.reset(ch); - ATA_UNLOCK_CH(ch); if (bootverbose) ata_printf(ch, -1, "resetting done ..\n"); @@ -254,10 +251,6 @@ if ((misdev = devices & ~ch->devices)) { if ((misdev & (ATA_ATA_MASTER | ATA_ATAPI_MASTER)) && ch->device[MASTER].detach) { - if (request && (request->device == &ch->device[MASTER])) { - request->result = ENXIO; - request->retries = 0; - } ch->device[MASTER].detach(&ch->device[MASTER]); ata_fail_requests(ch, &ch->device[MASTER]); free(ch->device[MASTER].param, M_ATA); @@ -265,10 +258,6 @@ } if ((misdev & (ATA_ATA_SLAVE | ATA_ATAPI_SLAVE)) && ch->device[SLAVE].detach) { - if (request && (request->device == &ch->device[SLAVE])) { - request->result = ENXIO; - request->retries = 0; - } ch->device[SLAVE].detach(&ch->device[SLAVE]); ata_fail_requests(ch, &ch->device[SLAVE]); free(ch->device[SLAVE].param, M_ATA); @@ -276,6 +265,9 @@ } } + ch->running = NULL; + ATA_UNLOCK_CH(ch); + /* identify what is present on the channel now */ ata_identify_devices(ch); ==== //depot/projects/netperf_socket/sys/dev/ata/ata-all.h#9 (text+ko) ==== @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.79 2004/04/30 16:21:34 sos Exp $ + * $FreeBSD: src/sys/dev/ata/ata-all.h,v 1.80 2004/08/05 21:13:41 sos Exp $ */ /* ATA register defines */ @@ -297,8 +297,9 @@ u_int32_t max_iosize; /* DMA engine max IO size */ u_int32_t cur_iosize; /* DMA engine current IO size */ int flags; -#define ATA_DMA_ACTIVE 0x01 /* DMA transfer in progress */ -#define ATA_DMA_READ 0x02 /* transaction is a read */ +#define ATA_DMA_READ 0x01 /* transaction is a read */ +#define ATA_DMA_LOADED 0x02 /* DMA tables etc loaded */ +#define ATA_DMA_ACTIVE 0x04 /* DMA transfer in progress */ void (*alloc)(struct ata_channel *ch); void (*free)(struct ata_channel *ch); ==== //depot/projects/netperf_socket/sys/dev/ata/ata-chipset.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.77 2004/07/30 13:33:09 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-chipset.c,v 1.78 2004/08/05 21:13:41 sos Exp $"); #include "opt_ata.h" #include @@ -1278,16 +1278,16 @@ break; case PRMIO: - if (ctlr->r_res1) - bus_release_resource(dev, ctlr->r_type1, ctlr->r_rid1,ctlr->r_res1); +// if (ctlr->r_res1) +// bus_release_resource(dev, ctlr->r_type1, ctlr->r_rid1,ctlr->r_res1); ctlr->r_type1 = SYS_RES_MEMORY; - ctlr->r_rid1 = 0x20; + ctlr->r_rid1 = PCIR_BAR(4); if (!(ctlr->r_res1 = bus_alloc_resource_any(dev, ctlr->r_type1, &ctlr->r_rid1, RF_ACTIVE))) return ENXIO; ctlr->r_type2 = SYS_RES_MEMORY; - ctlr->r_rid2 = 0x1c; + ctlr->r_rid2 = PCIR_BAR(3); if (!(ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2, &ctlr->r_rid2, RF_ACTIVE))) return ENXIO; @@ -1433,12 +1433,14 @@ static int ata_promise_mio_dmastart(struct ata_channel *ch) { + ch->flags |= ATA_DMA_ACTIVE; return 0; } static int ata_promise_mio_dmastop(struct ata_channel *ch) { + ch->flags &= ~ATA_DMA_ACTIVE; /* get status XXX SOS */ return 0; } @@ -1777,6 +1779,7 @@ ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, ((ch->dma->flags & ATA_DMA_READ) ? ATA_BMCMD_WRITE_READ : 0) | ATA_BMCMD_START_STOP); + ch->flags |= ATA_DMA_ACTIVE; return 0; } @@ -1795,6 +1798,7 @@ error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT); ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); + ch->flags &= ~ATA_DMA_ACTIVE; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); return error; } @@ -2057,7 +2061,7 @@ } ctlr->r_type2 = SYS_RES_MEMORY; - ctlr->r_rid2 = 0x24; + ctlr->r_rid2 = PCIR_BAR(5); if (!(ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2, &ctlr->r_rid2, RF_ACTIVE))) return ENXIO; ==== //depot/projects/netperf_socket/sys/dev/ata/ata-disk.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.174 2004/07/12 10:50:50 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-disk.c,v 1.175 2004/08/05 21:11:32 sos Exp $"); #include "opt_ata.h" #include @@ -392,10 +392,11 @@ ata_mode2str(adp->device->mode)); } else { - ata_prtdev(adp->device,"%lluMB <%.40s> [%lld/%d/%d] at ata%d-%s %s", + ata_prtdev(adp->device, + "%lluMB <%.40s/%.8s> [%lld/%d/%d] at ata%d-%s %s", (unsigned long long)(adp->total_secs / ((1024L * 1024L) / DEV_BSIZE)), - adp->device->param->model, + adp->device->param->model, adp->device->param->revision, (unsigned long long)(adp->total_secs / (adp->heads * adp->sectors)), adp->heads, adp->sectors, ==== //depot/projects/netperf_socket/sys/dev/ata/ata-dma.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.126 2004/04/13 09:44:20 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-dma.c,v 1.127 2004/08/05 21:13:41 sos Exp $"); #include #include @@ -265,8 +265,7 @@ dir ? BUS_DMASYNC_PREREAD : BUS_DMASYNC_PREWRITE); ch->dma->cur_iosize = count; - ch->dma->flags = dir ? (ATA_DMA_ACTIVE | ATA_DMA_READ) : ATA_DMA_ACTIVE; - + ch->dma->flags = dir ? (ATA_DMA_LOADED | ATA_DMA_READ) : ATA_DMA_LOADED; return 0; } @@ -281,7 +280,6 @@ bus_dmamap_unload(ch->dma->ddmatag, ch->dma->ddmamap); ch->dma->cur_iosize = 0; - ch->dma->flags = 0; - + ch->dma->flags &= ~ATA_DMA_LOADED; return 0; } ==== //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#12 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.40 2004/07/24 19:03:28 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.41 2004/08/05 21:13:41 sos Exp $"); #include "opt_ata.h" #include @@ -80,9 +80,6 @@ return ATA_OP_FINISHED; } - /* record the request as running */ - ch->running = request; - ATA_DEBUG_RQ(request, "transaction"); /* disable ATAPI DMA writes if HW doesn't support it */ @@ -120,10 +117,8 @@ else printf("ATAPI_RESET timeout\n"); - if (request->status & ATA_S_ERROR) { + if (request->status & ATA_S_ERROR) request->error = ATA_IDX_INB(ch, ATA_ERROR); - //request->result = EIO; - } break; } @@ -139,7 +134,8 @@ } } - /* return and wait for interrupt */ + /* record the request as running and return for interrupt */ + ch->running = request; return ATA_OP_CONTINUES; /* ATA DMA data transfer commands */ @@ -168,7 +164,8 @@ break; } - /* return and wait for interrupt */ + /* record the request as running and return for interrupt */ + ch->running = request; return ATA_OP_CONTINUES; /* ATAPI PIO commands */ @@ -192,8 +189,10 @@ } /* command interrupt device ? just return and wait for interrupt */ - if ((request->device->param->config & ATA_DRQ_MASK) == ATA_DRQ_INTR) + if ((request->device->param->config & ATA_DRQ_MASK) == ATA_DRQ_INTR) { + ch->running = request; return ATA_OP_CONTINUES; + } /* wait for ready to write ATAPI command block */ { @@ -224,7 +223,8 @@ (request->device->param->config & ATA_PROTO_MASK) == ATA_PROTO_ATAPI_12 ? 6 : 8); - /* return and wait for interrupt */ + /* record the request as running and return for interrupt */ + ch->running = request; return ATA_OP_CONTINUES; case ATA_R_ATAPI|ATA_R_DMA: @@ -289,14 +289,14 @@ break; } - /* return and wait for interrupt */ + /* record the request as running and return for interrupt */ + ch->running = request; return ATA_OP_CONTINUES; } /* request finish here */ - if (ch->dma->flags & ATA_DMA_ACTIVE) + if (ch->dma->flags & ATA_DMA_LOADED) ch->dma->unload(ch); - ch->running = NULL; return ATA_OP_FINISHED; } ==== //depot/projects/netperf_socket/sys/dev/ata/ata-pci.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.85 2004/06/15 11:02:09 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-pci.c,v 1.86 2004/08/05 21:13:41 sos Exp $"); #include "opt_ata.h" #include @@ -454,6 +454,7 @@ (ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_WRITE_READ) | ((ch->dma->flags & ATA_DMA_READ) ? ATA_BMCMD_WRITE_READ : 0) | ATA_BMCMD_START_STOP); + ch->dma->flags |= ATA_DMA_ACTIVE; return 0; } @@ -465,6 +466,7 @@ error = ATA_IDX_INB(ch, ATA_BMSTAT_PORT) & ATA_BMSTAT_MASK; ATA_IDX_OUTB(ch, ATA_BMCMD_PORT, ATA_IDX_INB(ch, ATA_BMCMD_PORT) & ~ATA_BMCMD_START_STOP); + ch->dma->flags &= ~ATA_DMA_ACTIVE; ATA_IDX_OUTB(ch, ATA_BMSTAT_PORT, ATA_BMSTAT_INTERRUPT | ATA_BMSTAT_ERROR); return error; } ==== //depot/projects/netperf_socket/sys/dev/ata/ata-queue.c#9 (text+ko) ==== @@ -27,7 +27,7 @@ */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 6 01:28:11 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6826516A4D0; Fri, 6 Aug 2004 01:28:10 +0000 (GMT) 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 12FC416A4CE for ; Fri, 6 Aug 2004 01:28:10 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ECB2243D60 for ; Fri, 6 Aug 2004 01:28:09 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i761S9jm092407 for ; Fri, 6 Aug 2004 01:28:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i761S9LH092404 for perforce@freebsd.org; Fri, 6 Aug 2004 01:28:09 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 6 Aug 2004 01:28:09 GMT Message-Id: <200408060128.i761S9LH092404@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 58966 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: Fri, 06 Aug 2004 01:28:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=58966 Change 58966 by rwatson@rwatson_tislabs on 2004/08/06 01:27:25 Integrate netperf_socket from FreeBSD CVS HEAD: - More ACPI tweakage. - New VM contigmalloc by default. Affected files ... .. //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#35 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#19 integrate .. //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#12 integrate .. //depot/projects/netperf_socket/sys/vm/vm_contig.c#10 integrate Differences ... ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi.c#35 (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/dev/acpica/acpi.c,v 1.182 2004/08/03 17:16:30 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi.c,v 1.183 2004/08/06 00:38:50 njl Exp $ */ #include "opt_acpi.h" @@ -1339,7 +1339,7 @@ ret = TRUE; /* Return true for 'present' and 'functioning' */ - if ((devinfo->CurrentStatus & 0x9) == 0x9) + if (ACPI_DEVICE_PRESENT(devinfo->CurrentStatus)) ret = TRUE; AcpiOsFree(buf.Pointer); @@ -1372,8 +1372,8 @@ if ((devinfo->Valid & ACPI_VALID_STA) == 0) ret = TRUE; - /* Return true for 'present' and 'functioning' */ - if ((devinfo->CurrentStatus & 0x19) == 0x19) + /* Return true for 'present', 'battery present', and 'functioning' */ + if (ACPI_BATTERY_PRESENT(devinfo->CurrentStatus)) ret = TRUE; AcpiOsFree(buf.Pointer); ==== //depot/projects/netperf_socket/sys/dev/acpica/acpivar.h#19 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.77 2004/07/12 20:53:04 njl Exp $ + * $FreeBSD: src/sys/dev/acpica/acpivar.h,v 1.78 2004/08/06 00:38:50 njl Exp $ */ #include "acpi_if.h" @@ -222,7 +222,21 @@ device_printf(dev, x); \ } while (0) -#define ACPI_DEVINFO_PRESENT(x) (((x) & 0x9) == 9) +/* Values for the device _STA (status) method. */ +#define ACPI_STA_PRESENT (1 << 0) +#define ACPI_STA_ENABLED (1 << 1) +#define ACPI_STA_SHOW_IN_UI (1 << 2) +#define ACPI_STA_FUNCTIONAL (1 << 3) +#define ACPI_STA_BATT_PRESENT (1 << 4) + +#define ACPI_DEVINFO_PRESENT(x, flags) \ + (((x) & (flags)) == (flags)) +#define ACPI_DEVICE_PRESENT(x) \ + ACPI_DEVINFO_PRESENT(x, ACPI_STA_PRESENT | ACPI_STA_FUNCTIONAL) +#define ACPI_BATTERY_PRESENT(x) \ + ACPI_DEVINFO_PRESENT(x, ACPI_STA_PRESENT | ACPI_STA_FUNCTIONAL | \ + ACPI_STA_BATT_PRESENT) + BOOLEAN acpi_DeviceIsPresent(device_t dev); BOOLEAN acpi_BatteryIsPresent(device_t dev); ACPI_STATUS acpi_GetHandleInScope(ACPI_HANDLE parent, char *path, ==== //depot/projects/netperf_socket/sys/dev/syscons/syscons.c#12 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.426 2004/08/02 02:07:56 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/syscons/syscons.c,v 1.427 2004/08/05 23:54:04 des Exp $"); #include "opt_syscons.h" #include "opt_splash.h" @@ -2764,7 +2764,7 @@ #endif #ifdef DEV_SPLASH - if (!(sc->flags & SC_SPLASH_SCRN) && (flags & SC_KERNEL_CONSOLE)) { + if (!(sc->flags & SC_SPLASH_SCRN)) { /* we are ready to put up the splash image! */ splash_init(sc->adp, scsplash_callback, sc); sc->flags |= SC_SPLASH_SCRN; ==== //depot/projects/netperf_socket/sys/vm/vm_contig.c#10 (text+ko) ==== @@ -60,7 +60,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.37 2004/07/19 23:29:36 green Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.38 2004/08/05 21:54:11 green Exp $"); #include #include @@ -515,7 +515,7 @@ return ((void *)addr); } -static int vm_old_contigmalloc = 1; +static int vm_old_contigmalloc = 0; SYSCTL_INT(_vm, OID_AUTO, old_contigmalloc, CTLFLAG_RW, &vm_old_contigmalloc, 0, "Use the old contigmalloc algorithm"); TUNABLE_INT("vm.old_contigmalloc", &vm_old_contigmalloc); From owner-p4-projects@FreeBSD.ORG Fri Aug 6 20:40:46 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E5BC316A4D1; Fri, 6 Aug 2004 20:40:45 +0000 (GMT) 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 BDAD616A4CF for ; Fri, 6 Aug 2004 20:40:45 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9DB8D43D41 for ; Fri, 6 Aug 2004 20:40:45 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i76KejaX028988 for ; Fri, 6 Aug 2004 20:40:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i76KejKt028980 for perforce@freebsd.org; Fri, 6 Aug 2004 20:40:45 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 6 Aug 2004 20:40:45 GMT Message-Id: <200408062040.i76KejKt028980@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 59018 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: Fri, 06 Aug 2004 20:40:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=59018 Change 59018 by rwatson@rwatson_paprika on 2004/08/06 20:40:30 Integrate netperf_socket from rwatson_netperf: More /dev/mem fixage. ACPI PCI interrupt routing foo. Loop back of entropy harvesting KTR additions to ithread_schedule(). Colin's modifications to callouts so that callout reset doesn't recurse the callout mutex. Loop back of in6_pcbnotify() inpcb/pcbinfo locking fixes from rwatson_netperf. Affected files ... .. //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#13 integrate .. //depot/projects/netperf_socket/sys/amd64/amd64/mp_machdep.c#8 integrate .. //depot/projects/netperf_socket/sys/boot/common/help.common#4 integrate .. //depot/projects/netperf_socket/sys/boot/forth/loader.conf#11 integrate .. //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#7 integrate .. //depot/projects/netperf_socket/sys/dev/fb/splash_bmp.c#1 branch .. //depot/projects/netperf_socket/sys/dev/fb/splash_pcx.c#1 branch .. //depot/projects/netperf_socket/sys/dev/uart/uart_dev_ns8250.c#6 integrate .. //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/kern_intr.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/kern_switch.c#8 integrate .. //depot/projects/netperf_socket/sys/kern/kern_timeout.c#6 integrate .. //depot/projects/netperf_socket/sys/net/if.c#15 integrate .. //depot/projects/netperf_socket/sys/netinet/tcp_subr.c#15 integrate .. //depot/projects/netperf_socket/sys/netinet/udp_usrreq.c#10 integrate .. //depot/projects/netperf_socket/sys/netinet6/in6_pcb.c#8 integrate .. //depot/projects/netperf_socket/sys/netinet6/in6_pcb.h#5 integrate .. //depot/projects/netperf_socket/sys/netinet6/raw_ip6.c#6 integrate .. //depot/projects/netperf_socket/sys/netinet6/udp6_usrreq.c#7 integrate .. //depot/projects/netperf_socket/sys/pci/if_xl.c#11 integrate Differences ... ==== //depot/projects/netperf_socket/sys/amd64/amd64/machdep.c#13 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.615 2004/07/31 14:02:29 davidxu Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.616 2004/08/06 07:20:32 markm Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -65,6 +65,7 @@ #include #include #include +#include #include #include #include @@ -164,6 +165,8 @@ struct mtx icu_lock; +struct mem_range_softc mem_range_softc; + static void cpu_startup(dummy) void *dummy; ==== //depot/projects/netperf_socket/sys/amd64/amd64/mp_machdep.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.240 2004/08/04 18:30:31 markm Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.241 2004/08/06 07:22:36 markm Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -142,8 +142,6 @@ static struct sysctl_ctx_list logical_cpu_clist; static u_int bootMP_size; -struct mem_range_softc mem_range_softc; - static void mem_range_AP_init(void) { ==== //depot/projects/netperf_socket/sys/boot/common/help.common#4 (text+ko) ==== @@ -205,7 +205,8 @@ Sets the list of directories which will be searched in for modules named in a load command or implicitly required by a dependency. The - default module_path is "/boot/kernel;/boot/modules". + default module_path is "/boot/modules" with the kernel directory + prepended. ################################################################################ # Tset Sprompt DSet the command prompt ==== //depot/projects/netperf_socket/sys/boot/forth/loader.conf#11 (text+ko) ==== @@ -6,7 +6,7 @@ # # All arguments must be in double quotes. # -# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.84 2004/07/29 20:08:40 ceri Exp $ +# $FreeBSD: src/sys/boot/forth/loader.conf,v 1.85 2004/08/06 15:06:06 jmg Exp $ ############################################################## ### Basic configuration options ############################ @@ -49,7 +49,7 @@ #beastie_disable="NO" # Turn the beastie boot menu on and off #console="vidconsole" # Set the current console #currdev="disk1s1a" # Set the current device -module_path="/boot/kernel;/boot/modules" # Set the module search path +module_path="/boot/modules" # Set the module search path #prompt="\\${interpret}" # Set the command prompt #root_disk_unit="0" # Force the root disk unit number #rootdev="disk1s1a" # Set the root filesystem ==== //depot/projects/netperf_socket/sys/dev/acpica/acpi_pci_link.c#7 (text+ko) ==== @@ -28,7 +28,7 @@ /* #define ACPI_OLD_PCI_LINK 1 */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.17 2004/08/05 06:54:16 njl Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_pci_link.c,v 1.18 2004/08/06 04:50:56 njl Exp $"); #include "opt_acpi.h" #include @@ -76,13 +76,6 @@ static int irq_penalty[MAX_ACPI_INTERRUPTS]; -#ifdef ACPI_OLD_PCI_LINK -#define ACPI_STA_PRESENT 0x00000001 -#define ACPI_STA_ENABLE 0x00000002 -#define ACPI_STA_SHOWINUI 0x00000004 -#define ACPI_STA_FUNCTIONAL 0x00000008 -#endif /* ACPI_OLD_PCI_LINK */ - /* * PCI link object management */ @@ -176,7 +169,6 @@ (int)entry->prt.Pin); } -#ifdef ACPI_OLD_PCI_LINK static ACPI_STATUS acpi_pci_link_get_object_status(ACPI_HANDLE handle, UINT32 *sta) { @@ -221,7 +213,6 @@ AcpiOsFree(buf.Pointer); return_ACPI_STATUS (AE_OK); } -#endif /* ACPI_OLD_PCI_LINK */ static ACPI_STATUS acpi_pci_link_get_irq_resources(ACPI_RESOURCE *resources, @@ -446,9 +437,7 @@ { ACPI_HANDLE handle; ACPI_STATUS error; -#ifdef ACPI_OLD_PCI_LINK UINT32 sta; -#endif struct acpi_prt_entry *entry; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -466,11 +455,6 @@ return_ACPI_STATUS (error); } - /* - * PCI link status (_STA) is unreliable. Many systems return - * erroneous values so we ignore it. - */ -#ifdef ACPI_OLD_PCI_LINK error = acpi_pci_link_get_object_status(handle, &sta); if (ACPI_FAILURE(error)) { ACPI_DEBUG_PRINT((ACPI_DB_ERROR, @@ -479,13 +463,21 @@ return_ACPI_STATUS (error); } + /* + * PCI link status (_STA) is unreliable. Many systems return + * erroneous values so we ignore it. + */ if ((sta & (ACPI_STA_PRESENT | ACPI_STA_FUNCTIONAL)) == 0) { +#ifndef ACPI_OLD_PCI_LINK + device_printf(pcidev, "acpi PRT ignoring status for %s\n", + acpi_name(handle)); +#else ACPI_DEBUG_PRINT((ACPI_DB_ERROR, "interrupt link is not functional - %s\n", acpi_name(handle))); return_ACPI_STATUS (AE_ERROR); +#endif /* !ACPI_OLD_PCI_LINK */ } -#endif /* ACPI_OLD_PCI_LINK */ TAILQ_FOREACH(entry, &acpi_prt_entries, links) { if (entry->busno == busno && @@ -534,18 +526,31 @@ UINT8 i; if (irq == 0) - return (0); + return (FALSE); +#ifndef ACPI_OLD_PCI_LINK + /* + * Look up the given interrupt in the list of possible settings for + * this link. We don't special-case the initial link setting. Some + * systems return current settings that are outside the list of valid + * settings so only allow choices explicitly specified in _PRS. + */ +#endif for (i = 0; i < link->number_of_interrupts; i++) { if (link->interrupts[i] == irq) - return (1); + return (TRUE); } /* allow initial IRQ as valid one. */ if (link->initial_irq == irq) - return (1); +#ifndef ACPI_OLD_PCI_LINK + printf("acpi link check: %d initial irq, %d irq to route\n", + link->initial_irq, irq); +#else + return (TRUE); +#endif - return (0); + return (FALSE); } static ACPI_STATUS @@ -554,9 +559,7 @@ ACPI_STATUS error; ACPI_RESOURCE resbuf; ACPI_BUFFER crsbuf; -#ifdef ACPI_OLD_PCI_LINK UINT32 sta; -#endif ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -637,7 +640,6 @@ * PCI link status (_STA) is unreliable. Many systems return * erroneous values so we ignore it. */ -#ifdef ACPI_OLD_PCI_LINK error = acpi_pci_link_get_object_status(link->handle, &sta); if (ACPI_FAILURE(error)) { ACPI_DEBUG_PRINT((ACPI_DB_WARN, @@ -646,20 +648,23 @@ return_ACPI_STATUS (error); } - if ((sta & ACPI_STA_ENABLE) == 0) { + if ((sta & ACPI_STA_ENABLED) == 0) { +#ifndef ACPI_OLD_PCI_LINK + printf("acpi link set: ignoring status for %s\n", + acpi_name(link->handle)); +#else ACPI_DEBUG_PRINT((ACPI_DB_WARN, "interrupt link %s is disabled\n", acpi_name(link->handle))); return_ACPI_STATUS (AE_ERROR); +#endif /* !ACPI_OLD_PCI_LINK */ } -#endif /* ACPI_OLD_PCI_LINK */ /* * Many systems always return invalid values for current settings * (_CRS). Since we can't trust the value returned, we have to * assume we were successful. */ -#ifdef ACPI_OLD_PCI_LINK error = acpi_pci_link_get_current_irq(link, &link->current_irq); if (ACPI_FAILURE(error)) { ACPI_DEBUG_PRINT((ACPI_DB_WARN, @@ -671,13 +676,19 @@ if (link->current_irq == irq) { error = AE_OK; } else { +#ifndef ACPI_OLD_PCI_LINK + printf("acpi link set: curr irq %d != %d for %s (ignoring)\n", + link->current_irq, irq, acpi_name(link->handle)); + link->current_irq = irq; + error = AE_OK; +#else ACPI_DEBUG_PRINT((ACPI_DB_WARN, "couldn't set IRQ %d to PCI interrupt link %d - %s\n", irq, link->current_irq, acpi_name(link->handle))); link->current_irq = 0; error = AE_ERROR; +#endif /* !ACPI_OLD_PCI_LINK */ } -#endif /* ACPI_OLD_PCI_LINK */ return_ACPI_STATUS (error); } ==== //depot/projects/netperf_socket/sys/dev/uart/uart_dev_ns8250.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.9 2004/07/26 03:54:40 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.10 2004/08/06 15:51:31 marcel Exp $"); #include #include @@ -700,11 +700,19 @@ */ sc->sc_txfifosz = 16; +#if 0 + /* + * XXX there are some issues related to hardware flow control and + * it's likely that uart(4) is the cause. This basicly needs more + * investigation, but we avoid using for hardware flow control + * until then. + */ /* 16650s or higher have automatic flow control. */ if (sc->sc_rxfifosz > 16) { sc->sc_hwiflow = 1; sc->sc_hwoflow = 1; } +#endif return (0); } ==== //depot/projects/netperf_socket/sys/geom/stripe/g_stripe.c#6 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/geom/stripe/g_stripe.c,v 1.8 2004/07/26 17:14:47 pjd Exp $"); +__FBSDID("$FreeBSD: src/sys/geom/stripe/g_stripe.c,v 1.11 2004/08/06 10:19:34 pjd Exp $"); #include #include @@ -89,6 +89,9 @@ TUNABLE_INT("kern.geom.stripe.maxmem", &g_stripe_maxmem); SYSCTL_UINT(_kern_geom_stripe, OID_AUTO, maxmem, CTLFLAG_RD, &g_stripe_maxmem, 0, "Maximum memory that can be allocated in \"fast\" mode (in bytes)"); +static u_int g_stripe_fast_failed = 0; +SYSCTL_UINT(_kern_geom_stripe, OID_AUTO, fast_failed, CTLFLAG_RD, + &g_stripe_fast_failed, 0, "How many times \"fast\" mode failed"); /* * Greatest Common Divisor. @@ -287,17 +290,17 @@ if (pbp->bio_error == 0) pbp->bio_error = bp->bio_error; pbp->bio_completed += bp->bio_completed; - if (bp->bio_cmd == BIO_READ && bp->bio_driver1 != NULL) { - g_stripe_copy(sc, bp->bio_data, bp->bio_driver1, bp->bio_offset, + if (bp->bio_cmd == BIO_READ && bp->bio_caller1 != NULL) { + g_stripe_copy(sc, bp->bio_data, bp->bio_caller1, bp->bio_offset, bp->bio_length, 1); - bp->bio_data = bp->bio_driver1; - bp->bio_driver1 = NULL; + bp->bio_data = bp->bio_caller1; + bp->bio_caller1 = NULL; } g_destroy_bio(bp); pbp->bio_inbed++; if (pbp->bio_children == pbp->bio_inbed) { - if (pbp->bio_caller1 != NULL) - uma_zfree(g_stripe_zone, pbp->bio_caller1); + if (pbp->bio_driver1 != NULL) + uma_zfree(g_stripe_zone, pbp->bio_driver1); g_io_deliver(pbp, pbp->bio_error); } } @@ -330,9 +333,9 @@ cbp->bio_done = g_stripe_done; cbp->bio_offset = offset; cbp->bio_data = addr; - cbp->bio_driver1 = NULL; + cbp->bio_caller1 = NULL; cbp->bio_length = length; - cbp->bio_driver2 = sc->sc_disks[no]; + cbp->bio_caller2 = sc->sc_disks[no]; /* offset -= offset % stripesize; */ offset -= offset & (stripesize - 1); @@ -356,8 +359,8 @@ * (bp->bio_length % sc->sc_stripesize) != 0. */ cbp->bio_length += MIN(stripesize, length); - if (cbp->bio_driver1 == NULL) { - cbp->bio_driver1 = cbp->bio_data; + if (cbp->bio_caller1 == NULL) { + cbp->bio_caller1 = cbp->bio_data; cbp->bio_data = NULL; if (data == NULL) { data = uma_zalloc(g_stripe_zone, @@ -382,13 +385,13 @@ cbp->bio_done = g_stripe_done; cbp->bio_offset = offset; cbp->bio_data = addr; - cbp->bio_driver1 = NULL; + cbp->bio_caller1 = NULL; /* * MIN() is in case when * (bp->bio_length % sc->sc_stripesize) != 0. */ cbp->bio_length = MIN(stripesize, length); - cbp->bio_driver2 = sc->sc_disks[no]; + cbp->bio_caller2 = sc->sc_disks[no]; } } if (data != NULL) @@ -400,13 +403,13 @@ struct g_consumer *cp; TAILQ_REMOVE(&queue, cbp, bio_queue); - cp = cbp->bio_driver2; - cbp->bio_driver2 = NULL; + cp = cbp->bio_caller2; + cbp->bio_caller2 = NULL; cbp->bio_to = cp->provider; - if (cbp->bio_driver1 != NULL) { + if (cbp->bio_caller1 != NULL) { cbp->bio_data = data; if (bp->bio_cmd == BIO_WRITE) { - g_stripe_copy(sc, cbp->bio_driver1, data, + g_stripe_copy(sc, cbp->bio_caller1, data, cbp->bio_offset, cbp->bio_length, 0); } data += cbp->bio_length; @@ -420,10 +423,11 @@ uma_zfree(g_stripe_zone, data); while ((cbp = TAILQ_FIRST(&queue)) != NULL) { TAILQ_REMOVE(&queue, cbp, bio_queue); - if (cbp->bio_driver1 != NULL) { - cbp->bio_data = cbp->bio_driver1; - cbp->bio_driver1 = NULL; + if (cbp->bio_caller1 != NULL) { + cbp->bio_data = cbp->bio_caller1; + cbp->bio_caller1 = NULL; } + bp->bio_children--; g_destroy_bio(cbp); } return (error); @@ -457,7 +461,7 @@ cbp->bio_offset = offset; cbp->bio_data = addr; cbp->bio_length = length; - cbp->bio_driver2 = sc->sc_disks[no]; + cbp->bio_caller2 = sc->sc_disks[no]; /* offset -= offset % stripesize; */ offset -= offset & (stripesize - 1); @@ -487,7 +491,7 @@ */ cbp->bio_length = MIN(stripesize, length); - cbp->bio_driver2 = sc->sc_disks[no]; + cbp->bio_caller2 = sc->sc_disks[no]; } /* * Fire off all allocated requests! @@ -496,8 +500,8 @@ struct g_consumer *cp; TAILQ_REMOVE(&queue, cbp, bio_queue); - cp = cbp->bio_driver2; - cbp->bio_driver2 = NULL; + cp = cbp->bio_caller2; + cbp->bio_caller2 = NULL; cbp->bio_to = cp->provider; G_STRIPE_LOGREQ(cbp, "Sending request."); g_io_request(cbp, cp); @@ -506,6 +510,7 @@ failure: while ((cbp = TAILQ_FIRST(&queue)) != NULL) { TAILQ_REMOVE(&queue, cbp, bio_queue); + bp->bio_children--; g_destroy_bio(cbp); } return (error); @@ -581,8 +586,11 @@ fast = 1; } error = 0; - if (fast) + if (fast) { error = g_stripe_start_fast(bp, no, offset, length); + if (error != 0) + g_stripe_fast_failed++; + } /* * Do use "economic" when: * 1. "Economic" mode is ON. ==== //depot/projects/netperf_socket/sys/kern/kern_intr.c#8 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.111 2004/07/02 20:21:43 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_intr.c,v 1.112 2004/08/06 03:39:28 rwatson Exp $"); #include "opt_ddb.h" @@ -379,19 +379,21 @@ return (EINVAL); ctd = curthread; + td = ithread->it_td; + p = td->td_proc; /* * If any of the handlers for this ithread claim to be good * sources of entropy, then gather some. */ if (harvest.interrupt && ithread->it_flags & IT_ENTROPY) { + CTR3(KTR_INTR, "%s: pid %d (%s) gathering entropy", __func__, + p->p_pid, p->p_comm); entropy.vector = ithread->it_vector; entropy.proc = ctd->td_proc; random_harvest(&entropy, sizeof(entropy), 2, 0, RANDOM_INTERRUPT); } - td = ithread->it_td; - p = td->td_proc; KASSERT(p != NULL, ("ithread %s has no process", ithread->it_name)); CTR4(KTR_INTR, "%s: pid %d: (%s) need = %d", __func__, p->p_pid, p->p_comm, ithread->it_need); ==== //depot/projects/netperf_socket/sys/kern/kern_switch.c#8 (text+ko) ==== @@ -86,7 +86,7 @@ ***/ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.74 2004/07/27 16:41:01 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_switch.c,v 1.75 2004/08/06 15:49:44 jhb Exp $"); #include "opt_full_preemption.h" @@ -537,6 +537,7 @@ #endif } +#if 0 #ifndef PREEMPTION /* XXX: There should be a non-static version of this. */ static void @@ -549,6 +550,7 @@ SYSINIT(preempt_warning, SI_SUB_COPYRIGHT, SI_ORDER_ANY, printf_caddr_t, preempt_warning) #endif +#endif /************************************************************************ * SYSTEM RUN QUEUE manipulations and tests * ==== //depot/projects/netperf_socket/sys/kern/kern_timeout.c#6 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_timeout.c,v 1.89 2004/04/25 04:10:17 hmp Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_timeout.c,v 1.90 2004/08/06 02:44:58 cperciva Exp $"); #include #include @@ -401,8 +401,22 @@ mtx_unlock_spin(&callout_lock); return; } - if (c->c_flags & CALLOUT_PENDING) - callout_stop(c); + if (c->c_flags & CALLOUT_PENDING) { + if (nextsoftcheck == c) { + nextsoftcheck = TAILQ_NEXT(c, c_links.tqe); + } + TAILQ_REMOVE(&callwheel[c->c_time & callwheelmask], c, + c_links.tqe); + + /* + * Part of the normal "stop a pending callout" process + * is to clear the CALLOUT_ACTIVE and CALLOUT_PENDING + * flags. We're not going to bother doing that here, + * because we're going to be setting those flags ten lines + * after this point, and we're holding callout_lock + * between now and then. + */ + } /* * We could unlock callout_lock here and lock it again before the ==== //depot/projects/netperf_socket/sys/net/if.c#15 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if.c 8.5 (Berkeley) 1/9/95 - * $FreeBSD: src/sys/net/if.c,v 1.197 2004/07/27 23:20:44 rwatson Exp $ + * $FreeBSD: src/sys/net/if.c,v 1.198 2004/08/06 09:08:33 roam Exp $ */ #include "opt_compat.h" @@ -518,6 +518,8 @@ int s; int i; struct domain *dp; + struct ifnet *iter; + int found; EVENTHANDLER_INVOKE(ifnet_departure_event, ifp); /* @@ -584,9 +586,11 @@ /* We can now free link ifaddr. */ - ifa = TAILQ_FIRST(&ifp->if_addrhead); - TAILQ_REMOVE(&ifp->if_addrhead, ifa, ifa_link); - IFAFREE(ifa); + if (!TAILQ_EMPTY(&ifp->if_addrhead)) { + ifa = TAILQ_FIRST(&ifp->if_addrhead); + TAILQ_REMOVE(&ifp->if_addrhead, ifa, ifa_link); + IFAFREE(ifa); + } /* * Delete all remaining routes using this interface @@ -618,7 +622,14 @@ #endif /* MAC */ KNOTE(&ifp->if_klist, NOTE_EXIT); IFNET_WLOCK(); - TAILQ_REMOVE(&ifnet, ifp, if_link); + found = 0; + TAILQ_FOREACH(iter, &ifnet, if_link) + if (iter == ifp) { + found = 1; + break; + } + if (found) + TAILQ_REMOVE(&ifnet, ifp, if_link); IFNET_WUNLOCK(); mtx_destroy(&ifp->if_snd.ifq_mtx); IF_AFDATA_DESTROY(ifp); ==== //depot/projects/netperf_socket/sys/netinet/tcp_subr.c#15 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)tcp_subr.c 8.2 (Berkeley) 5/24/95 - * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.196 2004/08/03 13:54:11 andre Exp $ + * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.197 2004/08/06 03:45:45 rwatson Exp $ */ #include "opt_compat.h" @@ -1236,7 +1236,7 @@ bzero(&th, sizeof(th)); m_copydata(m, off, sizeof(*thp), (caddr_t)&th); - in6_pcbnotify(&tcb, sa, th.th_dport, + in6_pcbnotify(&tcbinfo, sa, th.th_dport, (struct sockaddr *)ip6cp->ip6c_src, th.th_sport, cmd, NULL, notify); @@ -1247,7 +1247,7 @@ inc.inc_isipv6 = 1; syncache_unreach(&inc, &th); } else - in6_pcbnotify(&tcb, sa, 0, (const struct sockaddr *)sa6_src, + in6_pcbnotify(&tcbinfo, sa, 0, (const struct sockaddr *)sa6_src, 0, cmd, NULL, notify); } #endif /* INET6 */ ==== //depot/projects/netperf_socket/sys/netinet/udp_usrreq.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)udp_usrreq.c 8.6 (Berkeley) 5/23/95 - * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.157 2004/07/26 07:24:03 cperciva Exp $ + * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.158 2004/08/06 02:08:31 rwatson Exp $ */ #include "opt_ipsec.h" @@ -287,26 +287,23 @@ */ last = NULL; LIST_FOREACH(inp, &udb, inp_list) { - INP_LOCK(inp); - if (inp->inp_lport != uh->uh_dport) { - docontinue: - INP_UNLOCK(inp); + if (inp->inp_lport != uh->uh_dport) continue; - } #ifdef INET6 if ((inp->inp_vflag & INP_IPV4) == 0) - goto docontinue; + continue; #endif if (inp->inp_laddr.s_addr != INADDR_ANY) { if (inp->inp_laddr.s_addr != ip->ip_dst.s_addr) - goto docontinue; + continue; } if (inp->inp_faddr.s_addr != INADDR_ANY) { if (inp->inp_faddr.s_addr != ip->ip_src.s_addr || inp->inp_fport != uh->uh_sport) - goto docontinue; + continue; } + INP_LOCK(inp); /* * Check multicast packets to make sure they are only @@ -327,8 +324,10 @@ break; } } - if (foundmship == 0) - goto docontinue; + if (foundmship == 0) { + INP_UNLOCK(inp); + continue; + } } #undef NMSHIPS #undef MSHIP ==== //depot/projects/netperf_socket/sys/netinet6/in6_pcb.c#8 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/in6_pcb.c,v 1.57 2004/07/28 13:03:07 yar Exp $ */ +/* $FreeBSD: src/sys/netinet6/in6_pcb.c,v 1.58 2004/08/06 03:45:45 rwatson Exp $ */ /* $KAME: in6_pcb.c,v 1.31 2001/05/21 05:45:10 jinmei Exp $ */ /* @@ -610,8 +610,8 @@ * Must be called at splnet. */ void -in6_pcbnotify(head, dst, fport_arg, src, lport_arg, cmd, cmdarg, notify) - struct inpcbhead *head; +in6_pcbnotify(pcbinfo, dst, fport_arg, src, lport_arg, cmd, cmdarg, notify) + struct inpcbinfo *pcbinfo; struct sockaddr *dst; const struct sockaddr *src; u_int fport_arg, lport_arg; @@ -619,6 +619,7 @@ void *cmdarg; struct inpcb *(*notify) __P((struct inpcb *, int)); { + struct inpcbhead *head; struct inpcb *inp, *ninp; struct sockaddr_in6 sa6_src, *sa6_dst; u_short fport = fport_arg, lport = lport_arg; @@ -656,11 +657,16 @@ } errno = inet6ctlerrmap[cmd]; s = splnet(); + head = pcbinfo->listhead; + INP_INFO_WLOCK(pcbinfo); for (inp = LIST_FIRST(head); inp != NULL; inp = ninp) { + INP_LOCK(inp); ninp = LIST_NEXT(inp, inp_list); - if ((inp->inp_vflag & INP_IPV6) == 0) + if ((inp->inp_vflag & INP_IPV6) == 0) { + INP_UNLOCK(inp); continue; + } /* * If the error designates a new path MTU for a destination @@ -698,13 +704,17 @@ (!IN6_IS_ADDR_UNSPECIFIED(&sa6_src.sin6_addr) && !IN6_ARE_ADDR_EQUAL(&inp->in6p_laddr, &sa6_src.sin6_addr)) || - (fport && inp->inp_fport != fport)) + (fport && inp->inp_fport != fport)) { + INP_UNLOCK(inp); continue; + } do_notify: if (notify) (*notify)(inp, errno); + INP_UNLOCK(inp); } + INP_INFO_WUNLOCK(pcbinfo); splx(s); } ==== //depot/projects/netperf_socket/sys/netinet6/in6_pcb.h#5 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/in6_pcb.h,v 1.14 2004/04/07 20:46:15 imp Exp $ */ +/* $FreeBSD: src/sys/netinet6/in6_pcb.h,v 1.15 2004/08/06 03:45:45 rwatson Exp $ */ /* $KAME: in6_pcb.h,v 1.13 2001/02/06 09:16:53 itojun Exp $ */ /* @@ -85,7 +85,7 @@ in6_pcblookup_hash __P((struct inpcbinfo *, struct in6_addr *, u_int, struct in6_addr *, u_int, int, struct ifnet *)); -void in6_pcbnotify __P((struct inpcbhead *, struct sockaddr *, +void in6_pcbnotify __P((struct inpcbinfo *, struct sockaddr *, u_int, const struct sockaddr *, u_int, int, void *, struct inpcb *(*)(struct inpcb *, int))); struct inpcb * ==== //depot/projects/netperf_socket/sys/netinet6/raw_ip6.c#6 (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/netinet6/raw_ip6.c,v 1.43 2004/07/27 23:45:19 rwatson Exp $ + * $FreeBSD: src/sys/netinet6/raw_ip6.c,v 1.44 2004/08/06 03:45:45 rwatson Exp $ */ /* @@ -298,7 +298,8 @@ sa6_src = &sa6_any; } - (void) in6_pcbnotify(&ripcb, sa, 0, (const struct sockaddr *)sa6_src, + (void) in6_pcbnotify(&ripcbinfo, sa, 0, + (const struct sockaddr *)sa6_src, 0, cmd, cmdarg, notify); } ==== //depot/projects/netperf_socket/sys/netinet6/udp6_usrreq.c#7 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/netinet6/udp6_usrreq.c,v 1.50 2004/07/27 23:45:19 rwatson Exp $ */ +/* $FreeBSD: src/sys/netinet6/udp6_usrreq.c,v 1.51 2004/08/06 03:45:45 rwatson Exp $ */ /* $KAME: udp6_usrreq.c,v 1.27 2001/05/21 05:45:10 jinmei Exp $ */ /* @@ -444,11 +444,11 @@ bzero(&uh, sizeof(uh)); m_copydata(m, off, sizeof(*uhp), (caddr_t)&uh); - (void) in6_pcbnotify(&udb, sa, uh.uh_dport, + (void) in6_pcbnotify(&udbinfo, sa, uh.uh_dport, (struct sockaddr *)ip6cp->ip6c_src, uh.uh_sport, cmd, cmdarg, notify); } else - (void) in6_pcbnotify(&udb, sa, 0, + (void) in6_pcbnotify(&udbinfo, sa, 0, (const struct sockaddr *)sa6_src, 0, cmd, cmdarg, notify); } ==== //depot/projects/netperf_socket/sys/pci/if_xl.c#11 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/pci/if_xl.c,v 1.178 2004/07/09 02:28:23 bms Exp $"); +__FBSDID("$FreeBSD: src/sys/pci/if_xl.c,v 1.179 2004/08/06 09:08:33 roam Exp $"); /* * 3Com 3c90x Etherlink XL PCI NIC driver @@ -3169,7 +3169,8 @@ sc->xl_cdata.xl_rx_chain[i].xl_mbuf = NULL; } } - bzero(sc->xl_ldata.xl_rx_list, XL_RX_LIST_SZ); + if (sc->xl_ldata.xl_rx_list != NULL) + bzero(sc->xl_ldata.xl_rx_list, XL_RX_LIST_SZ); /* * Free the TX list buffers. */ @@ -3183,7 +3184,8 @@ sc->xl_cdata.xl_tx_chain[i].xl_mbuf = NULL; } } - bzero(sc->xl_ldata.xl_tx_list, XL_TX_LIST_SZ); + if (sc->xl_ldata.xl_tx_list != NULL) + bzero(sc->xl_ldata.xl_tx_list, XL_TX_LIST_SZ); ifp->if_flags &= ~(IFF_RUNNING | IFF_OACTIVE); } From owner-p4-projects@FreeBSD.ORG Fri Aug 6 20:42:50 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF56016A4D1; Fri, 6 Aug 2004 20:42:49 +0000 (GMT) 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 8845D16A4CE for ; Fri, 6 Aug 2004 20:42:49 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 64AE143D3F for ; Fri, 6 Aug 2004 20:42:49 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i76KgnKd029057 for ; Fri, 6 Aug 2004 20:42:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i76Kgnx0029052 for perforce@freebsd.org; Fri, 6 Aug 2004 20:42:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 6 Aug 2004 20:42:49 GMT Message-Id: <200408062042.i76Kgnx0029052@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 59021 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: Fri, 06 Aug 2004 20:42:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=59021 Change 59021 by rwatson@rwatson_paprika on 2004/08/06 20:42:40 Integrate netperf_socket (top-up) from FreeBSD CVS. Affected files ... .. //depot/projects/netperf_socket/sys/dev/fb/splash_bmp.c#2 integrate .. //depot/projects/netperf_socket/sys/dev/fb/splash_pcx.c#2 integrate .. //depot/projects/netperf_socket/sys/modules/splash/bmp/Makefile#2 integrate .. //depot/projects/netperf_socket/sys/modules/splash/bmp/splash_bmp.c#3 delete .. //depot/projects/netperf_socket/sys/modules/splash/pcx/Makefile#2 integrate .. //depot/projects/netperf_socket/sys/modules/splash/pcx/splash_pcx.c#3 delete Differences ... ==== //depot/projects/netperf_socket/sys/dev/fb/splash_bmp.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/fb/splash_bmp.c,v 1.18 2004/05/30 20:23:28 phk Exp $ + * $FreeBSD: src/sys/dev/fb/splash_bmp.c,v 1.19 2004/08/06 20:37:08 des Exp $ */ #include ==== //depot/projects/netperf_socket/sys/dev/fb/splash_pcx.c#2 (text+ko) ==== @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/fb/splash_pcx.c,v 1.6 2004/05/30 20:23:29 phk Exp $ + * $FreeBSD: src/sys/dev/fb/splash_pcx.c,v 1.7 2004/08/06 20:37:08 des Exp $ */ #include ==== //depot/projects/netperf_socket/sys/modules/splash/bmp/Makefile#2 (text+ko) ==== @@ -1,4 +1,6 @@ -# $FreeBSD: src/sys/modules/splash/bmp/Makefile,v 1.8 2002/11/06 13:46:59 nyan Exp $ +# $FreeBSD: src/sys/modules/splash/bmp/Makefile,v 1.9 2004/08/06 20:37:08 des Exp $ + +.PATH: ${.CURDIR}/../../../dev/fb KMOD= splash_bmp SRCS= splash_bmp.c ==== //depot/projects/netperf_socket/sys/modules/splash/pcx/Makefile#2 (text+ko) ==== @@ -1,4 +1,6 @@ -# $FreeBSD: src/sys/modules/splash/pcx/Makefile,v 1.6 2002/01/11 15:48:57 ru Exp $ +# $FreeBSD: src/sys/modules/splash/pcx/Makefile,v 1.7 2004/08/06 20:37:08 des Exp $ + +.PATH: ${.CURDIR}/../../../dev/fb KMOD= splash_pcx SRCS= splash_pcx.c From owner-p4-projects@FreeBSD.ORG Sat Aug 7 02:34:01 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8207D16A4D0; Sat, 7 Aug 2004 02:34:01 +0000 (GMT) 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 5BA4816A4CE for ; Sat, 7 Aug 2004 02:34:01 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3E7A343D31 for ; Sat, 7 Aug 2004 02:34:01 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i772Y1cu039298 for ; Sat, 7 Aug 2004 02:34:01 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i772Y0dM039295 for perforce@freebsd.org; Sat, 7 Aug 2004 02:34:00 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 7 Aug 2004 02:34:00 GMT Message-Id: <200408070234.i772Y0dM039295@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Subject: PERFORCE change 59044 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: Sat, 07 Aug 2004 02:34:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=59044 Change 59044 by rwatson@rwatson_paprika on 2004/08/07 02:33:01 Integrate netperf_socket from FreeBSD CVS: ath driver grabs Giant before entering 802.11? Loop back i386 system call tracing with KTR. Loop back fcntl() Giant pushdown. Loop back uidinfo lock narrowing in chgsbsize(). Loop back thread_exit() KTR trace enhancement. Loop back additional VFS Giant assertions, Giant narrowing in fdesc ops on vnodes. Loop back KTR_UMA, KTR_CALLOUT definitions. Loop back KTR UMA tracing. Loop back KTR callout/timeout tracing. Affected files ... .. //depot/projects/netperf_socket/sys/arm/arm/pmap.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#13 integrate .. //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#8 integrate .. //depot/projects/netperf_socket/sys/dev/fb/splash_pcx.c#3 integrate .. //depot/projects/netperf_socket/sys/i386/i386/trap.c#6 integrate .. //depot/projects/netperf_socket/sys/kern/kern_descrip.c#14 integrate .. //depot/projects/netperf_socket/sys/kern/kern_resource.c#11 integrate .. //depot/projects/netperf_socket/sys/kern/kern_thread.c#21 integrate .. //depot/projects/netperf_socket/sys/kern/kern_timeout.c#7 integrate .. //depot/projects/netperf_socket/sys/kern/vfs_vnops.c#9 integrate .. //depot/projects/netperf_socket/sys/net/if_sl.c#10 integrate .. //depot/projects/netperf_socket/sys/powerpc/include/cpufunc.h#3 integrate .. //depot/projects/netperf_socket/sys/sys/ktr.h#2 integrate .. //depot/projects/netperf_socket/sys/vm/uma_core.c#13 integrate Differences ... ==== //depot/projects/netperf_socket/sys/arm/arm/pmap.c#8 (text+ko) ==== @@ -144,7 +144,7 @@ */ /* Include header files */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.10 2004/08/04 22:03:15 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.11 2004/08/06 22:32:53 cognet Exp $"); #include #include #include @@ -1103,8 +1103,8 @@ * Pool cache constructors for L2 descriptor tables, metadata and pmap * structures. */ -static void -pmap_l2ptp_ctor(void *mem, int size, void *arg) +static int +pmap_l2ptp_ctor(void *mem, int size, void *arg, int flags) { #ifndef PMAP_INCLUDE_PTE_SYNC struct l2_bucket *l2b; @@ -1136,6 +1136,7 @@ memset(mem, 0, L2_TABLE_SIZE_REAL); PTE_SYNC_RANGE(mem, L2_TABLE_SIZE_REAL / sizeof(pt_entry_t)); + return (0); } /* ==== //depot/projects/netperf_socket/sys/dev/ata/ata-lowlevel.c#13 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.41 2004/08/05 21:13:41 sos Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-lowlevel.c,v 1.42 2004/08/06 22:23:53 njl Exp $"); #include "opt_ata.h" #include @@ -295,7 +295,7 @@ } /* request finish here */ - if (ch->dma->flags & ATA_DMA_LOADED) + if (request->flags & ATA_R_DMA && ch->dma->flags & ATA_DMA_LOADED) ch->dma->unload(ch); return ATA_OP_FINISHED; } ==== //depot/projects/netperf_socket/sys/dev/ath/if_ath.c#8 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.55 2004/08/01 23:58:04 mlaier Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.56 2004/08/07 00:45:05 sam Exp $"); /* * Driver for the Atheros Wireless LAN controller. @@ -532,7 +532,9 @@ * machine will drop us into scanning after timing * out waiting for a probe response. */ + NET_LOCK_GIANT(); ieee80211_new_state(ic, IEEE80211_S_ASSOC, -1); + NET_UNLOCK_GIANT(); } } @@ -1662,6 +1664,8 @@ u_int phyerr; HAL_STATUS status; + NET_LOCK_GIANT(); /* XXX */ + DPRINTF(ATH_DEBUG_RX_PROC, ("%s: pending %u\n", __func__, npending)); do { bf = TAILQ_FIRST(&sc->sc_rxbuf); @@ -1815,6 +1819,8 @@ ath_hal_rxmonitor(ah); /* rx signal state monitoring */ ath_hal_rxena(ah); /* in case of RXEOL */ + + NET_UNLOCK_GIANT(); /* XXX */ #undef PA2DESC } ==== //depot/projects/netperf_socket/sys/dev/fb/splash_pcx.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/fb/splash_pcx.c,v 1.7 2004/08/06 20:37:08 des Exp $ + * $FreeBSD: src/sys/dev/fb/splash_pcx.c,v 1.8 2004/08/06 21:35:51 des Exp $ */ #include @@ -40,224 +40,232 @@ #include #include -#define FADE_TIMEOUT 300 /* sec */ - static int splash_mode = -1; static int splash_on = FALSE; static int pcx_start(video_adapter_t *adp); static int pcx_end(video_adapter_t *adp); static int pcx_splash(video_adapter_t *adp, int on); -static int pcx_init(char *data, int sdepth); +static int pcx_init(void *data, int sdepth); static int pcx_draw(video_adapter_t *adp); static splash_decoder_t pcx_decoder = { - "splash_pcx", pcx_start, pcx_end, pcx_splash, SPLASH_IMAGE, + .name = "splash_pcx", + .init = pcx_start, + .term = pcx_end, + .splash = pcx_splash, + .data_type = SPLASH_IMAGE, }; SPLASH_DECODER(splash_pcx, pcx_decoder); -static struct -{ - int width, height, bpsl; - int bpp, planes, zlen; - const u_char *zdata; - u_char *palette; +static struct { + int width; + int height; + int bpsl; + int bpp; + int planes; + int zlen; + const uint8_t *zdata; + uint8_t *palette; } pcx_info; -static int +static int pcx_start(video_adapter_t *adp) { - static int modes[] = { - M_VGA_CG320, - M_VESA_CG640x480, - M_VESA_CG800x600, - M_VESA_CG1024x768, - -1, - }; - video_info_t info; - int i; + static int modes[] = { + M_VGA_CG320, + M_VESA_CG640x480, + M_VESA_CG800x600, + M_VESA_CG1024x768, + -1, + }; + video_info_t info; + int i; + + if (pcx_decoder.data == NULL || + pcx_decoder.data_size <= 0 || + pcx_init(pcx_decoder.data, pcx_decoder.data_size)) + return (ENODEV); + + if (bootverbose) + printf("splash_pcx: image good:\n" + " width = %d\n" + " height = %d\n" + " depth = %d\n" + " planes = %d\n", + pcx_info.width, pcx_info.height, + pcx_info.bpp, pcx_info.planes); - if (pcx_decoder.data == NULL - || pcx_decoder.data_size <= 0 - || pcx_init((u_char *)pcx_decoder.data, pcx_decoder.data_size)) - return ENODEV; + for (i = 0; modes[i] >= 0; ++i) { + if (get_mode_info(adp, modes[i], &info) != 0) + continue; + if (bootverbose) + printf("splash_pcx: considering mode %d:\n" + " vi_width = %d\n" + " vi_height = %d\n" + " vi_depth = %d\n" + " vi_planes = %d\n", + modes[i], + info.vi_width, info.vi_height, + info.vi_depth, info.vi_planes); + if (info.vi_width >= pcx_info.width + && info.vi_height >= pcx_info.height + && info.vi_depth == pcx_info.bpp + && info.vi_planes == pcx_info.planes) + break; + } - if (bootverbose) - printf("splash_pcx: image good:\n" - " width = %d\n" - " height = %d\n" - " depth = %d\n" - " planes = %d\n", - pcx_info.width, pcx_info.height, - pcx_info.bpp, pcx_info.planes); - - for (i = 0; modes[i] >= 0; ++i) { - if (get_mode_info(adp, modes[i], &info) != 0) - continue; + splash_mode = modes[i]; + if (splash_mode == -1) + return (ENODEV); if (bootverbose) - printf("splash_pcx: considering mode %d:\n" - " vi_width = %d\n" - " vi_height = %d\n" - " vi_depth = %d\n" - " vi_planes = %d\n", - modes[i], - info.vi_width, info.vi_height, - info.vi_depth, info.vi_planes); - if (info.vi_width >= pcx_info.width - && info.vi_height >= pcx_info.height - && info.vi_depth == pcx_info.bpp - && info.vi_planes == pcx_info.planes) - break; - } - - splash_mode = modes[i]; - if (splash_mode == -1) - return ENODEV; - if (bootverbose) - printf("pcx_splash: selecting mode %d\n", splash_mode); - return 0; + printf("splash_pcx: selecting mode %d\n", splash_mode); + return (0); } static int pcx_end(video_adapter_t *adp) { - /* nothing to do */ - return 0; + /* nothing to do */ + return (0); } static int pcx_splash(video_adapter_t *adp, int on) { - if (on) { - if (!splash_on) { - if (set_video_mode(adp, splash_mode) || pcx_draw(adp)) - return 1; - splash_on = TRUE; + if (on) { + if (!splash_on) { + if (set_video_mode(adp, splash_mode) || pcx_draw(adp)) + return 1; + splash_on = TRUE; + } + return (0); + } else { + splash_on = FALSE; + return (0); } - return 0; - } else { - splash_on = FALSE; - return 0; - } } -struct pcxheader { - u_char manufactor; - u_char version; - u_char encoding; - u_char bpp; - u_short xmin, ymin, xmax, ymax; - u_short hres, vres; - u_char colormap[48]; - u_char rsvd; - u_char nplanes; - u_short bpsl; - u_short palinfo; - u_short hsize, vsize; +struct pcx_header { + uint8_t manufactor; + uint8_t version; + uint8_t encoding; + uint8_t bpp; + uint16_t xmin; + uint16_t ymin; + uint16_t xmax; + uint16_t ymax; + uint16_t hres; + uint16_t vres; + uint8_t colormap[48]; + uint8_t rsvd; + uint8_t nplanes; + uint16_t bpsl; + uint16_t palinfo; + uint16_t hsize; + uint16_t vsize; }; #define MAXSCANLINE 1024 static int -pcx_init(char *data, int size) +pcx_init(void *data, int size) { - const struct pcxheader *hdr; + const struct pcx_header *hdr = data; - hdr = (const struct pcxheader *)data; - - if (size < 128 + 1 + 1 + 768 - || hdr->manufactor != 10 - || hdr->version != 5 - || hdr->encoding != 1 - || hdr->nplanes != 1 - || hdr->bpp != 8 - || hdr->bpsl > MAXSCANLINE - || data[size-769] != 12) { - printf("splash_pcx: invalid PCX image\n"); - return 1; - } - pcx_info.width = hdr->xmax - hdr->xmin + 1; - pcx_info.height = hdr->ymax - hdr->ymin + 1; - pcx_info.bpsl = hdr->bpsl; - pcx_info.bpp = hdr->bpp; - pcx_info.planes = hdr->nplanes; - pcx_info.zlen = size - (128 + 1 + 768); - pcx_info.zdata = data + 128; - pcx_info.palette = data + size - 768; - return 0; + if (size < 128 + 1 + 1 + 768 || + hdr->manufactor != 10 || + hdr->version != 5 || + hdr->encoding != 1 || + hdr->nplanes != 1 || + hdr->bpp != 8 || + hdr->bpsl > MAXSCANLINE || + ((uint8_t *)data)[size - 769] != 12) { + printf("splash_pcx: invalid PCX image\n"); + return (1); + } + pcx_info.width = hdr->xmax - hdr->xmin + 1; + pcx_info.height = hdr->ymax - hdr->ymin + 1; + pcx_info.bpsl = hdr->bpsl; + pcx_info.bpp = hdr->bpp; + pcx_info.planes = hdr->nplanes; + pcx_info.zlen = size - (128 + 1 + 768); + pcx_info.zdata = (uint8_t *)data + 128; + pcx_info.palette = (uint8_t *)data + size - 768; + return (0); } static int pcx_draw(video_adapter_t *adp) { - u_char *vidmem; - int swidth, sheight, sbpsl, sdepth, splanes; - int banksize, origin; - int c, i, j, pos, scan, x, y; - u_char line[MAXSCANLINE]; - - if (pcx_info.zlen < 1) - return 1; + uint8_t *vidmem; + int swidth, sheight, sbpsl, sdepth, splanes; + int banksize, origin; + int c, i, j, pos, scan, x, y; + uint8_t line[MAXSCANLINE]; + + if (pcx_info.zlen < 1) + return (1); + + load_palette(adp, pcx_info.palette); + + vidmem = (uint8_t *)adp->va_window; + swidth = adp->va_info.vi_width; + sheight = adp->va_info.vi_height; + sbpsl = adp->va_line_width; + sdepth = adp->va_info.vi_depth; + splanes = adp->va_info.vi_planes; + banksize = adp->va_window_size; - load_palette(adp, pcx_info.palette); - - vidmem = (u_char *)adp->va_window; - swidth = adp->va_info.vi_width; - sheight = adp->va_info.vi_height; - sbpsl = adp->va_line_width; - sdepth = adp->va_info.vi_depth; - splanes = adp->va_info.vi_planes; - banksize = adp->va_window_size; - - for (origin = 0; origin < sheight*sbpsl; origin += banksize) { - set_origin(adp, origin); - bzero(vidmem, banksize); - } - - x = (swidth - pcx_info.width) / 2; - y = (sheight - pcx_info.height) / 2; - origin = 0; - pos = y * sbpsl + x; - while (pos > banksize) { - pos -= banksize; - origin += banksize; - } - set_origin(adp, origin); - - for (scan = i = 0; scan < pcx_info.height; ++scan, ++y, pos += sbpsl) { - for (j = 0; j < pcx_info.bpsl && i < pcx_info.zlen; ++i) { - if ((pcx_info.zdata[i] & 0xc0) == 0xc0) { - c = pcx_info.zdata[i++] & 0x3f; - if (i >= pcx_info.zlen) - return 1; - } else { - c = 1; - } - if (j + c > pcx_info.bpsl) - return 1; - while (c--) - line[j++] = pcx_info.zdata[i]; + for (origin = 0; origin < sheight*sbpsl; origin += banksize) { + set_origin(adp, origin); + bzero(vidmem, banksize); } - if (pos > banksize) { - origin += banksize; - pos -= banksize; - set_origin(adp, origin); + x = (swidth - pcx_info.width) / 2; + y = (sheight - pcx_info.height) / 2; + origin = 0; + pos = y * sbpsl + x; + while (pos > banksize) { + pos -= banksize; + origin += banksize; } + set_origin(adp, origin); + + for (scan = i = 0; scan < pcx_info.height; ++scan, ++y, pos += sbpsl) { + for (j = 0; j < pcx_info.bpsl && i < pcx_info.zlen; ++i) { + if ((pcx_info.zdata[i] & 0xc0) == 0xc0) { + c = pcx_info.zdata[i++] & 0x3f; + if (i >= pcx_info.zlen) + return (1); + } else { + c = 1; + } + if (j + c > pcx_info.bpsl) + return (1); + while (c--) + line[j++] = pcx_info.zdata[i]; + } - if (pos + pcx_info.width > banksize) { - /* scanline crosses bank boundary */ - j = banksize - pos; - bcopy(line, vidmem + pos, j); - origin += banksize; - pos -= banksize; - set_origin(adp, origin); - bcopy(line + j, vidmem, pcx_info.width - j); - } else { - bcopy(line, vidmem + pos, pcx_info.width); + if (pos > banksize) { + origin += banksize; + pos -= banksize; + set_origin(adp, origin); + } + + if (pos + pcx_info.width > banksize) { + /* scanline crosses bank boundary */ + j = banksize - pos; + bcopy(line, vidmem + pos, j); + origin += banksize; + pos -= banksize; + set_origin(adp, origin); + bcopy(line + j, vidmem, pcx_info.width - j); + } else { + bcopy(line, vidmem + pos, pcx_info.width); + } } - } - return 0; + return (0); } ==== //depot/projects/netperf_socket/sys/i386/i386/trap.c#6 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/trap.c,v 1.266 2004/07/10 22:11:14 marcel Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/trap.c,v 1.267 2004/08/06 21:56:26 rwatson Exp $"); /* * 386 Trap and System call handling @@ -983,6 +983,9 @@ ktrsyscall(code, narg, args); #endif + CTR4(KTR_SYSC, "syscall enter thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); + /* * Try to run the syscall without Giant if the syscall * is MP safe. @@ -1050,6 +1053,9 @@ */ userret(td, &frame, sticks); + CTR4(KTR_SYSC, "syscall exit thread %p pid %d proc %s code %d", td, + td->td_proc->p_pid, td->td_proc->p_comm, code); + #ifdef KTRACE if (KTRPOINT(td, KTR_SYSRET)) ktrsysret(code, error, td->td_retval[0]); ==== //depot/projects/netperf_socket/sys/kern/kern_descrip.c#14 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.239 2004/08/04 18:35:33 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_descrip.c,v 1.240 2004/08/06 22:00:55 rwatson Exp $"); #include "opt_compat.h" @@ -333,12 +333,29 @@ struct vnode *vp; u_int newmin; int error, flg, tmp; + int giant_locked; + + /* + * XXXRW: Some fcntl() calls require Giant -- others don't. Try to + * avoid grabbing Giant for calls we know don't need it. + */ + switch (cmd) { + case F_DUPFD: + case F_GETFD: + case F_SETFD: + case F_GETFL: + giant_locked = 0; + break; + default: + giant_locked = 1; + mtx_lock(&Giant); + } + error = 0; flg = F_POSIX; p = td->td_proc; fdp = p->p_fd; - mtx_lock(&Giant); FILEDESC_LOCK(fdp); if ((unsigned)fd >= fdp->fd_nfiles || (fp = fdp->fd_ofiles[fd]) == NULL) { @@ -350,6 +367,7 @@ switch (cmd) { case F_DUPFD: + mtx_assert(&Giant, MA_NOTOWNED); FILEDESC_UNLOCK(fdp); newmin = arg; PROC_LOCK(p); @@ -364,17 +382,21 @@ break; case F_GETFD: + mtx_assert(&Giant, MA_NOTOWNED); td->td_retval[0] = (*pop & UF_EXCLOSE) ? FD_CLOEXEC : 0; FILEDESC_UNLOCK(fdp); break; case F_SETFD: + mtx_assert(&Giant, MA_NOTOWNED); *pop = (*pop &~ UF_EXCLOSE) | (arg & FD_CLOEXEC ? UF_EXCLOSE : 0); FILEDESC_UNLOCK(fdp); break; case F_GETFL: + /* MPSAFE */ + mtx_assert(&Giant, MA_NOTOWNED); FILE_LOCK(fp); FILEDESC_UNLOCK(fdp); td->td_retval[0] = OFLAGS(fp->f_flag); @@ -382,6 +404,7 @@ break; case F_SETFL: + mtx_assert(&Giant, MA_OWNED); FILE_LOCK(fp); FILEDESC_UNLOCK(fdp); fhold_locked(fp); @@ -409,6 +432,7 @@ break; case F_GETOWN: + mtx_assert(&Giant, MA_OWNED); fhold(fp); FILEDESC_UNLOCK(fdp); error = fo_ioctl(fp, FIOGETOWN, &tmp, td->td_ucred, td); @@ -418,6 +442,7 @@ break; case F_SETOWN: + mtx_assert(&Giant, MA_OWNED); fhold(fp); FILEDESC_UNLOCK(fdp); tmp = arg; @@ -426,10 +451,12 @@ break; case F_SETLKW: + mtx_assert(&Giant, MA_OWNED); flg |= F_WAIT; /* FALLTHROUGH F_SETLK */ case F_SETLK: + mtx_assert(&Giant, MA_OWNED); if (fp->f_type != DTYPE_VNODE) { FILEDESC_UNLOCK(fdp); error = EBADF; @@ -503,6 +530,7 @@ break; case F_GETLK: + mtx_assert(&Giant, MA_OWNED); if (fp->f_type != DTYPE_VNODE) { FILEDESC_UNLOCK(fdp); error = EBADF; @@ -542,7 +570,8 @@ break; } done2: - mtx_unlock(&Giant); + if (giant_locked) + mtx_unlock(&Giant); return (error); } ==== //depot/projects/netperf_socket/sys/kern/kern_resource.c#11 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_resource.c,v 1.142 2004/08/04 18:19:09 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_resource.c,v 1.143 2004/08/06 22:04:33 rwatson Exp $"); #include "opt_compat.h" @@ -1142,9 +1142,9 @@ return (0); } uip->ui_sbsize = new; + UIDINFO_UNLOCK(uip); *hiwat = to; - if (uip->ui_sbsize < 0) + if (new < 0) printf("negative sbsize for uid = %d\n", uip->ui_uid); - UIDINFO_UNLOCK(uip); return (1); } ==== //depot/projects/netperf_socket/sys/kern/kern_thread.c#21 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.190 2004/08/02 00:18:35 green Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_thread.c,v 1.191 2004/08/06 22:06:14 rwatson Exp $"); #include #include @@ -613,7 +613,8 @@ KASSERT(ke != NULL, ("thread exiting without a kse")); KASSERT(kg != NULL, ("thread exiting without a kse group")); PROC_LOCK_ASSERT(p, MA_OWNED); - CTR1(KTR_PROC, "thread_exit: thread %p", td); + CTR3(KTR_PROC, "thread_exit: thread %p (pid %ld, %s)", td, + (long)p->p_pid, p->p_comm); mtx_assert(&Giant, MA_NOTOWNED); if (td->td_standin != NULL) { ==== //depot/projects/netperf_socket/sys/kern/kern_timeout.c#7 (text+ko) ==== @@ -35,13 +35,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_timeout.c,v 1.90 2004/08/06 02:44:58 cperciva Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_timeout.c,v 1.91 2004/08/06 21:49:00 rwatson Exp $"); #include #include #include #include #include +#include #include #include #include @@ -245,8 +246,11 @@ if (!(c_flags & CALLOUT_MPSAFE)) { mtx_lock(&Giant); gcalls++; + CTR1(KTR_CALLOUT, "callout %p", c_func); } else { mpcalls++; + CTR1(KTR_CALLOUT, "callout mpsafe %p", + c_func); } #ifdef DIAGNOSTIC binuptime(&bt1); ==== //depot/projects/netperf_socket/sys/kern/vfs_vnops.c#9 (text+ko) ==== @@ -35,7 +35,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_vnops.c,v 1.205 2004/07/22 20:40:23 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_vnops.c,v 1.206 2004/08/06 22:25:35 rwatson Exp $"); #include "opt_mac.h" @@ -117,6 +117,8 @@ exclusive = 0; #endif + GIANT_REQUIRED; + restart: fmode = *flagp; if (fmode & O_CREAT) { @@ -315,6 +317,8 @@ { int error; + GIANT_REQUIRED; + if (flags & FWRITE) vp->v_writecount--; error = VOP_CLOSE(vp, flags, file_cred, td); @@ -387,6 +391,8 @@ struct ucred *cred; int error; + GIANT_REQUIRED; + if ((ioflg & IO_NODELOCKED) == 0) { mp = NULL; if (rw == UIO_WRITE) { @@ -474,6 +480,8 @@ int error = 0; int iaresid; + GIANT_REQUIRED; + do { int chunk; @@ -518,7 +526,6 @@ struct vnode *vp; int error, ioflag; - mtx_lock(&Giant); KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); vp = fp->f_vnode; @@ -527,6 +534,7 @@ ioflag |= IO_NDELAY; if (fp->f_flag & O_DIRECT) ioflag |= IO_DIRECT; + mtx_lock(&Giant); VOP_LEASE(vp, td, fp->f_cred, LEASE_READ); /* * According to McKusick the vn lock is protecting f_offset here. @@ -568,10 +576,10 @@ struct mount *mp; int error, ioflag; - mtx_lock(&Giant); KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); vp = fp->f_vnode; + mtx_lock(&Giant); if (vp->v_type == VREG) bwillwrite(); ioflag = IO_UNIT; @@ -647,6 +655,8 @@ int error; u_short mode; + GIANT_REQUIRED; + #ifdef MAC error = mac_check_vnode_stat(active_cred, file_cred, vp); if (error) @@ -769,6 +779,8 @@ struct vattr vattr; int error; + GIANT_REQUIRED; + switch (vp->v_type) { case VREG: @@ -846,6 +858,8 @@ int error; #endif + GIANT_REQUIRED; + vp = fp->f_vnode; #ifdef MAC vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); @@ -1000,6 +1014,8 @@ { int error; + GIANT_REQUIRED; + if (vp != NULL) { if ((error = VOP_GETWRITEMOUNT(vp, &mp)) != 0) { if (error != EOPNOTSUPP) @@ -1054,6 +1070,8 @@ struct thread *td = curthread; int error; + GIANT_REQUIRED; + if (mp->mnt_kern_flag & MNTK_SUSPEND) return (0); mp->mnt_kern_flag |= MNTK_SUSPEND; @@ -1075,6 +1093,8 @@ struct mount *mp; { + GIANT_REQUIRED; + if ((mp->mnt_kern_flag & MNTK_SUSPEND) == 0) return; mp->mnt_kern_flag &= ~(MNTK_SUSPEND | MNTK_SUSPENDED); @@ -1089,6 +1109,8 @@ vn_kqfilter(struct file *fp, struct knote *kn) { + GIANT_REQUIRED; + return (VOP_KQFILTER(fp->f_vnode, kn)); } ==== //depot/projects/netperf_socket/sys/net/if_sl.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)if_sl.c 8.6 (Berkeley) 2/1/94 - * $FreeBSD: src/sys/net/if_sl.c,v 1.121 2004/07/15 08:26:06 phk Exp $ + * $FreeBSD: src/sys/net/if_sl.c,v 1.122 2004/08/06 22:41:13 rwatson Exp $ */ /* @@ -309,7 +309,7 @@ #ifdef SLIP_IFF_OPTS SLIP_IFF_OPTS; #else - IFF_POINTOPOINT | SC_AUTOCOMP | IFF_MULTICAST; + IFF_POINTOPOINT | SC_AUTOCOMP | IFF_MULTICAST | IFF_NEEDSGIANT; #endif sc->sc_if.if_type = IFT_SLIP; sc->sc_if.if_ioctl = slioctl; @@ -610,6 +610,8 @@ int s; register int len = 0; + GIANT_REQUIRED; /* tty */ + for (;;) { /* * Call output process whether or not there is more in the ==== //depot/projects/netperf_socket/sys/powerpc/include/cpufunc.h#3 (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/powerpc/include/cpufunc.h,v 1.20 2004/07/12 22:16:04 grehan Exp $ + * $FreeBSD: src/sys/powerpc/include/cpufunc.h,v 1.21 2004/08/07 00:20:00 grehan Exp $ */ #ifndef _MACHINE_CPUFUNC_H_ @@ -65,7 +65,7 @@ mtmsr(register_t value) { - __asm __volatile ("mtmsr %0" :: "r"(value)); + __asm __volatile ("mtmsr %0; isync" :: "r"(value)); } static __inline register_t ==== //depot/projects/netperf_socket/sys/sys/ktr.h#2 (text+ko) ==== @@ -26,7 +26,7 @@ * SUCH DAMAGE. * * from BSDI $Id: ktr.h,v 1.10.2.7 2000/03/16 21:44:42 cp Exp $ - * $FreeBSD: src/sys/sys/ktr.h,v 1.21 2003/03/11 20:07:22 jhb Exp $ + * $FreeBSD: src/sys/sys/ktr.h,v 1.22 2004/08/06 21:46:51 rwatson Exp $ */ /* @@ -72,7 +72,9 @@ #define KTR_WITNESS 0x00200000 #define KTR_RUNQ 0x00400000 /* Run queue */ #define KTR_CONTENTION 0x00800000 /* Lock contention */ -#define KTR_ALL 0x00ffffff +#define KTR_UMA 0x01000000 /* UMA slab allocator */ +#define KTR_CALLOUT 0x02000000 /* Callouts and timeouts */ +#define KTR_ALL 0x02ffffff /* * Trace classes which can be assigned to particular use at compile time ==== //depot/projects/netperf_socket/sys/vm/uma_core.c#13 (text+ko) ==== @@ -46,7 +46,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/vm/uma_core.c,v 1.104 2004/08/02 00:18:35 green Exp $"); +__FBSDID("$FreeBSD: src/sys/vm/uma_core.c,v 1.105 2004/08/06 21:52:38 rwatson Exp $"); /* I should really use ktr.. */ /* >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 7 03:46:20 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B430516A4D0; Sat, 7 Aug 2004 03:46:19 +0000 (GMT) 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 89C9016A4CE for ; Sat, 7 Aug 2004 03:46:19 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6972D43D45 for ; Sat, 7 Aug 2004 03:46:19 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i773kJ4r041846 for ; Sat, 7 Aug 2004 03:46:19 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i773jdkI041831 for perforce@freebsd.org; Sat, 7 Aug 2004 03:45:39 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 03:45:39 GMT Message-Id: <200408070345.i773jdkI041831@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59048 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: Sat, 07 Aug 2004 03:46:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=59048 Change 59048 by davidxu@davidxu_alona on 2004/08/07 03:45:10 IFC @59405 Affected files ... .. //depot/projects/davidxu_ksedbg/src/MAINTAINERS#4 integrate .. //depot/projects/davidxu_ksedbg/src/Makefile#4 integrate .. //depot/projects/davidxu_ksedbg/src/Makefile.inc1#3 integrate .. //depot/projects/davidxu_ksedbg/src/UPDATING#6 integrate .. //depot/projects/davidxu_ksedbg/src/bin/Makefile.inc#2 integrate .. //depot/projects/davidxu_ksedbg/src/bin/cat/cat.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/bin/dd/args.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/bin/df/df.1#3 integrate .. //depot/projects/davidxu_ksedbg/src/bin/df/df.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/bin/ed/Makefile#2 integrate .. //depot/projects/davidxu_ksedbg/src/bin/ps/print.c#3 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/FREEBSD-Xlist#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/NEWS#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/VERSION#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/gensnmpdef/gensnmpdef.1#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/gensnmpdef/gensnmpdef.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/gensnmptree/gensnmptree.1#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/gensnmptree/gensnmptree.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/asn1.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/asn1.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/asn1.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/bsnmpagent.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/bsnmpclient.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/bsnmplib.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmp.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmp.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmpagent.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmpagent.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmpclient.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmpclient.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/snmppriv.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/support.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/lib/support.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_ifmib.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_ifstack.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_interfaces.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_ip.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_ipaddr.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_nettomedia.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_rcvaddr.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_route.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_tcp.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_tree.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/mibII_udp.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/snmp_mibII.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmp_mibII/snmp_mibII.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/BEGEMOT-MIB.txt#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/FOKUS-MIB.txt#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/action.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/bsnmpd.1#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/config.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/export.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/main.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/snmpd.config#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/snmpd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/snmpd.sh#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/snmpmod.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/snmpmod.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/trans_lsock.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/trans_lsock.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/trans_udp.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/trans_udp.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/trap.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/bsnmp/snmpd/tree.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/cvs/src/tag.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.1#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.10#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.2#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.3#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.4#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.5#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.6#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.7#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.8#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ChangeLog.9#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/Makefile.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/README.Portability#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/aclocal.m4#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/alias.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/alloc-pool.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/alloc-pool.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ansidecl.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/attribs.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/basic-block.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/bb-reorder.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/bitmap.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/bitmap.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/bt-load.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/builtin-attrs.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/builtin-types.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/builtins.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/builtins.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-aux-info.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-common.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-common.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-common.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-convert.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-cppbuiltin.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-decl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-dump.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-errors.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-format.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-incpath.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-incpath.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-lang.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-lex.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-objc-common.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-opts.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-parse.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-pch.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-ppoutput.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-pragma.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-pragma.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-pretty-print.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-pretty-print.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-semantics.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-tree.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c-typeck.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/c.opt#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/caller-save.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/calls.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfg.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfganal.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgbuild.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgcleanup.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfghooks.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfghooks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfglayout.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfglayout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgloop.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgloop.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgloopanal.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgloopmanip.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cfgrtl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cgraph.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cgraph.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cgraphunit.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/collect2.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/collect2.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/combine.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/common.opt#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config.build#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config.gcc#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config.host#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/alpha-modes.def#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/alpha-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/alpha.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/alpha.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/alpha.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/ev4.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/ev5.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/ev6.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/gnu.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/lib1funcs.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/linux-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/netbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/openbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/osf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/osf5.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/t-osf-pthread#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/t-osf4#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/unicosmk.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-cc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-crt0-64.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-crt0.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-dwarf2.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-dwarf2eh.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-ld.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-psxcrt0-64.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms-psxcrt0.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/vms_tramp.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/alpha/xm-vms.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/README-interworking#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/aof.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/arm-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/arm-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/arm.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/arm.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/arm.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/cirrus.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/coff.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/crtn.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/ecos-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/fpa.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/ieee754-df.S#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/ieee754-sf.S#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/iwmmxt.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/kaos-arm.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/kaos-strongarm.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/lib1funcs.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/linux-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/linux-gas.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/mmintrin.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/netbsd-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/netbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/pe.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/pe.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/rtems-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/semi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/semiaof.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/strongarm-coff.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/strongarm-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/strongarm-pe.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-arm-coff#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-arm-elf#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-linux#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-netbsd#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-pe#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-semi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-strongarm-pe#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-vxworks#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-wince-pe#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/t-xscale-elf#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/uclinux-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/unknown-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/vxworks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/wince-pe.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/arm/xscale-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/darwin-c.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/darwin-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/darwin.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/darwin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/dbx.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/dbxcoff.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/dbxelf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/elfos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/fp-bit.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/fp-bit.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/freebsd-nthr.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/freebsd-spec.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/cmovd.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/cmovh.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/cmovw.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv-abi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv-asm.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frv.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frvbegin.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/frvend.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/lib1funcs.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/frv/t-frv#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/gnu.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/gofast.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/athlon.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/att.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/beos-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/biarch64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/bsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/crtdll.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/cygming.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/cygwin.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/cygwin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/cygwin1.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/cygwin2.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/darwin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/djgpp.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/emmintrin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/freebsd-aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/freebsd64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/gas.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/gnu.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/gthr-win32.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386-aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386-coff.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386-interix.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386-interix3.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/i386elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/k6.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/kaos-i386.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/kfreebsdgnu.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/linux-aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/linux64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/lynx-ng.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/lynx.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/mingw32.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/mmintrin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/moss.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/netbsd-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/netbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/netbsd64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/nto.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/openbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/pentium.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/pmmintrin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/ppro.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/ptx4-i.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/rtemself.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/sco5.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/sol2.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/svr3dbx.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/svr3gas.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/sysv3.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/sysv4-cpp.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/sysv4.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/sysv5.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-beos#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-cygming#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-cygwin#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-interix#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-nto#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-sco5#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/t-vxworks#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/unix.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/uwin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/vsta.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/vxworks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/winnt.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/x-mingw32#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/x86-64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/xm-cygwin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/xm-djgpp.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/xm-mingw32.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/i386/xmmintrin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/crtbegin.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/crtend.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/crti.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/crtn.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/fde-glibc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/hpux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/ia64-c.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/ia64-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/ia64-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/ia64.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/ia64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/ia64.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/itanium1.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/itanium2.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/lib1funcs.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/quadlib.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/sysv4.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/t-hpux#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/t-ia64#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/unwind-ia64.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ia64/unwind-ia64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/interix.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/interix3.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/kaos.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/kfreebsdgnu.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/libgloss.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/linux-aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/lynx-ng.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/lynx.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/netbsd-aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/netbsd-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/netbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/openbsd-oldgas.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/openbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/ptx4.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/40x.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/440.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/603.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/6xx.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/7450.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/7xx.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/8540.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/aix.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/aix41.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/aix43.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/aix51.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/aix52.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/altivec-defs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/altivec.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/altivec.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/beos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/biarch64.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/crtsavres.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/darwin-ldouble.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/darwin.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/default64.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/eabi-ci.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/eabi-cn.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/eabi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/eabialtivec.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/eabisim.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/eabispe.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/gnu.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/host-darwin.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/kaos-ppc.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/libgcc-ppc64.ver#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/linux64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/linuxaltivec.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/linuxspe.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/lynx.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/lynxbase.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/mpc.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/netbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/power4.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/power5.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/ppc-asm.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/ppc64-fp.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rios1.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rios2.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs6000-c.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs6000-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs6000-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs6000.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs6000.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs6000.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rs64.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/rtems.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/sol-ci.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/sol-cn.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/spe.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/spe.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/sysv4.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/sysv4le.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-beos#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-darwin#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-fprules#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-linux64#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-newas#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-ppccomm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-ppcgas#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-rs6000#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-spe#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/t-vxworks#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/tramp.asm#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/vxworks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/windiss.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/x-darwin#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/x-linux64#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rs6000/xcoff.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/rtems.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/2064.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/2084.md#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/fixdfdi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/s390-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/s390-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/s390.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/s390.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/s390.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/s390x.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/t-tpf#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/s390/tpf.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sol2.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/biarch64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/cypress.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/freebsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/gmon-sol2.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/hypersparc.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/linux.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/linux64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/lite.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/litecoff.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/liteelf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/netbsd-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/openbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/openbsd64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/pbd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/rtemself.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol2-64.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol2-bi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol2-gas-bi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol2-gld-bi.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol2-gld.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol2.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sol26-sld.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sp64-aout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sp64-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sp86x-elf.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sparc-modes.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sparc-protos.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sparc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sparc.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sparc.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sparclet.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/supersparc.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sysv4-only.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/sysv4.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/t-sol2#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/ultra1_2.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/sparc/ultra3.md#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/svr3.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/svr4.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-darwin#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-freebsd#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-gnu#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-kfreebsd-gnu#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-libunwind#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-linux#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-netbsd#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-openbsd#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-rtems#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-slibgcc-darwin#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-slibgcc-elf-ver#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/t-vxworks#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/usegas.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/vxlib.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/vxworks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/config/windiss.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/configure#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/configure.ac#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/conflict.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/convert.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/convert.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/coretypes.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/coverage.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/coverage.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp-demangle.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp-demangle.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp-demint.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/ChangeLog#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/ChangeLog.1#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/ChangeLog.2#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/ChangeLog.3#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/Make-lang.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/NEWS#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/call.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cfns.gperf#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/class.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/config-lang.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cp-lang.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cp-tree.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cp-tree.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cvt.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cxx-pretty-print.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/cxx-pretty-print.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/decl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/decl.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/decl2.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/dump.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/error.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/except.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/expr.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/friend.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/g++spec.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/init.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/lang-specs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/lex.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/lex.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/mangle.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/method.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/name-lookup.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/name-lookup.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/operators.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/optimize.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/parser.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/pt.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/ptree.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/repo.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/rtti.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/search.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/semantics.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/tree.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/typeck.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cp/typeck2.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cplus-dem.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppcharset.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppdefault.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppdefault.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpperror.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppexp.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppfiles.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpphash.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpphash.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppinit.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpplex.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpplib.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpplib.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppmacro.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpppch.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppspec.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cpptrad.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppucnid.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppucnid.pl#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cppucnid.tab#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/crtstuff.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cse.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cselib.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/cselib.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dbxout.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dbxout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/debug.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/debug.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/defaults.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/demangle.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/df.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/df.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/diagnostic.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/diagnostic.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/diagnostic.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/bugreport.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/c-tree.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/compat.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/configfiles.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/configterms.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/contrib.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/contribute.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/cpp.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/cppenv.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/cppinternals.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/cppopts.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/extend.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/fragments.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/frontends.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/gcc.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/gccint.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/gcov.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/gty.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/hostconfig.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/include/gcc-common.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/include/texinfo.tex#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/interface.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/invoke.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/libgcc.texi#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/makefile.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/md.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/objc.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/passes.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/portability.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/rtl.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/sourcebuild.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/standards.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/tm.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doc/trouble.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dojump.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/doloop.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dominance.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dummy-conditions.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dwarf2.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dwarf2asm.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dwarf2asm.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dwarf2out.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/dwarf2out.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/emit-rtl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/errors.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/errors.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/et-forest.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/et-forest.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/except.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/except.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/explow.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/expmed.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/expr.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/expr.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/ChangeLog#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/Make-lang.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/ansify.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/bad.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/bld.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/bld.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/bugs.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/com-rt.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/com.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/com.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/data.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/equiv.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/expr.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/ffe.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/fini.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/g77.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/g77spec.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/global.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/global.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/implic.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/info.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/intdoc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/intdoc.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/intdoc.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/intrin.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/invoke.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/lab.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/lab.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/lang-specs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/lang.opt#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/lex.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/malloc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/name.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/news.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/parse.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/proj.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/root.texi#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/src.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/st.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/sta.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/stb.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/stb.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/stc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/stc.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/std.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/std.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/ste.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/ste.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/storag.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/storag.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/str.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/stt.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/stw.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/symbol.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/symbol.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/target.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/target.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/top.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/top.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/type.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/f/where.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/fibheap.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/fibheap.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/filenames.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/final.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/fix-header.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/fixproto#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/flags.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/flow.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/fold-const.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/fp-test.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/function.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/function.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gbl-ctors.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcc.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gccbug.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gccspec.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcov-dump.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcov-io.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcov-io.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcov-iov.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcov.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gcse.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gdbinit.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gen-protos.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genattr.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genattrtab.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genattrtab.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genautomata.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gencheck.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gencodes.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genconditions.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genconfig.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genconstants.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genemit.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genextract.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genflags.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gengenrtl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gengtype-lex.l#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gengtype-yacc.y#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gengtype.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gengtype.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genmodes.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genmultilib#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genopinit.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genoutput.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genpeep.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genpreds.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/genrecog.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gensupport.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gensupport.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ggc-common.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ggc-none.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ggc-page.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ggc-simple.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ggc-zone.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ggc.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ginclude/float.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ginclude/iso646.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ginclude/stdarg.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ginclude/stdbool.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ginclude/stddef.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/global.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/graph.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/graph.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-dce.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-gnat.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-gnat.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-posix.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-posix.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-rtems.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-solaris.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-vxworks.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr-win32.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/gthr.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/haifa-sched.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hard-reg-set.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hashtab.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hashtab.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hashtable.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hashtable.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hex.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hooks.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hooks.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/host-default.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hosthooks-def.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hosthooks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/hwint.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ifcvt.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/input.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/integrate.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/integrate.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/intl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/intl.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/jump.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/langhooks-def.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/langhooks.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/langhooks.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/lbasename.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/lcm.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libfuncs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libgcc-darwin.ver#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libgcc-std.ver#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libgcc2.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libgcc2.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libgcov.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/libiberty.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/line-map.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/line-map.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/lists.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/local-alloc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/longlong.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/loop-init.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/loop-unroll.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/loop-unswitch.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/loop.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/loop.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/machmode.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/machmode.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/main.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mips-tdump.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mips-tfile.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mkconfig.sh#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mkdeps.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mkdeps.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mkheaders.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mklibgcc.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/mode-classes.def#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/Make-lang.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/config-lang.in#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/lang-specs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/objc-act.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/objc-act.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/objc-lang.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/objc/objc-tree.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/obstack.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/optabs.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/optabs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/opts.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/opts.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/opts.sh#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/output.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/params.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/params.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/params.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/pex-unix.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/postreload.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/predict.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/predict.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/predict.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/prefix.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/prefix.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/pretty-print.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/pretty-print.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/print-rtl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/print-tree.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/profile.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/protoize.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ra-build.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ra-colorize.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ra-debug.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ra-rewrite.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ra.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/ra.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/read-rtl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/real.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/real.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/recog.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/recog.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/reg-stack.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/regclass.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/regmove.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/regrename.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/regs.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/reload.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/reload.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/reload1.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/reorg.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/resource.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/resource.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/rtl-error.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/rtl.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/rtl.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/rtl.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/rtlanal.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sbitmap.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sbitmap.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/scan-decls.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/scan.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/scan.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sched-deps.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sched-ebb.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sched-int.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sched-rgn.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sched-vis.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sdbout.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sdbout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sibcall.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/simplify-rtx.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/splay-tree.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/splay-tree.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sreal.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/sreal.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/stack.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/stmt.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/stor-layout.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/stringpool.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/stub-objc.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/system.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/target-def.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/target.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/targhooks.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/targhooks.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/timevar.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/timevar.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/timevar.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tlink.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/toplev.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/toplev.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tracer.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree-dump.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree-dump.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree-inline.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree-inline.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree-optimize.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree.def#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tree.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/tsystem.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unroll.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-c.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-dw2-fde-darwin.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-dw2-fde-glibc.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-dw2-fde.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-dw2-fde.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-dw2.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-pe.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind-sjlj.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/unwind.inc#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/value-prof.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/value-prof.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/varasm.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/varray.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/varray.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/version.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/vmsdbgout.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/web.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xcoff.h#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xcoffout.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xcoffout.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xexit.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xmalloc.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xstrdup.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gcc/xstrerror.c#1 branch .. //depot/projects/davidxu_ksedbg/src/contrib/gdb/gdb/config/ia64/nm-fbsd.h#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gdb/gdb/corelow.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gdb/gdb/ia64-fbsd-nat.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gdb/gdb/ia64-fbsd-tdep.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gdb/gdb/ia64-tdep.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/gdb/gdb/inftarg.c#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/groff/tmac/doc-syms#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/groff/tmac/groff_mdoc.man#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/libf2c/ChangeLog#2 integrate .. //depot/projects/davidxu_ksedbg/src/contrib/libf2c/Makefile.in#2 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 7 03:56:32 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7FE9616A4D0; Sat, 7 Aug 2004 03:56:32 +0000 (GMT) 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 5AAA016A4CE for ; Sat, 7 Aug 2004 03:56:32 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3D92E43D66 for ; Sat, 7 Aug 2004 03:56:32 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i773uWdb042175 for ; Sat, 7 Aug 2004 03:56:32 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i773uVrG042172 for perforce@freebsd.org; Sat, 7 Aug 2004 03:56:31 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 03:56:31 GMT Message-Id: <200408070356.i773uVrG042172@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59049 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: Sat, 07 Aug 2004 03:56:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=59049 Change 59049 by davidxu@davidxu_alona on 2004/08/07 03:55:54 Revert to code in cvs tree. Add code to support tls debug. Affected files ... .. //depot/projects/davidxu_ksedbg/src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#17 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/gnu/usr.bin/gdb/libgdb/fbsd-threads.c#17 (text+ko) ==== @@ -35,6 +35,7 @@ #include "target.h" #include "regcache.h" #include "gdbcmd.h" +#include "solib-svr4.h" #include @@ -70,10 +71,8 @@ static td_thragent_t *thread_agent; /* The last thread we are single stepping */ -static lwpid_t last_single_step_lwp; +static ptid_t last_single_step_thread; -static ptid_t last_single_step_ptid; - /* Pointers to the libthread_db functions. */ static td_err_e (*td_init_p) (void); @@ -111,13 +110,14 @@ static td_err_e (*td_ta_tsd_iter_p) (const td_thragent_t *ta, td_key_iter_f *func, void *data); - +static td_err_e (*td_thr_tls_get_addr_p) (const td_thrhandle_t *th, + void *map_address, + size_t offset, void **address); static td_err_e (*td_thr_dbsuspend_p) (const td_thrhandle_t *); static td_err_e (*td_thr_dbresume_p) (const td_thrhandle_t *); /* Prototypes for local functions. */ static void fbsd_thread_find_new_threads (void); -static int fbsd_thread_alive (ptid_t ptid); /* Building process ids. */ @@ -319,6 +319,7 @@ gdb_assert (proc_handle.pid == 0); keep_thread_db = 1; } + /* We can only poke around if there actually is a child process. If there is no child process alive, postpone the steps below until one has been created. */ @@ -385,7 +386,7 @@ td_thrinfo_t ti; ptid_t work_ptid; int resume_all, ret; - long lwp; + long lwp, thvalid = 0; #if 0 printf_filtered("%s ptid=%ld.%ld.%ld step=%d\n", __func__, @@ -401,7 +402,7 @@ return; } - if (GET_PID (ptid) != -1 && step != 0) + if (GET_PID(ptid) != -1 && step != 0) { resume_all = 0; work_ptid = ptid; @@ -412,26 +413,6 @@ work_ptid = inferior_ptid; } - /* - * For KSE thread, if last time we were single stepping - * a thread, first we unbind thread because we had bound it, - * may rebind it in following code. - */ - if (!ptid_equal(last_single_step_ptid, null_ptid)) - { - ret = td_ta_map_id2thr_p (thread_agent, - GET_THREAD(last_single_step_ptid), &th); - if (ret == TD_OK) - { - /* - * keep stepping flag (may be cleared in following code), - * but unbind the thread - */ - td_thr_sstep_p (&th, 1); - } - last_single_step_ptid = null_ptid; - } - lwp = GET_LWP (work_ptid); if (lwp == 0) { @@ -441,84 +422,65 @@ error (thread_db_err_str (ret)); /* - * For KSE thread, we need to tell UTS to set/unset single step + * For M:N thread, we need to tell UTS to set/unset single step * flag at context switch time, the flag will be written into * thread mailbox. This becauses some architecture may not have * machine single step flag in ucontext, so we put the flag in mailbox, * when the thread switches back, kse_switchin restores the single step * state. - */ - ret = td_thr_sstep_p (&th, resume_all ? step : 2); + */ + ret = td_thr_sstep_p (&th, step); if (ret) error (thread_db_err_str (ret)); ret = td_thr_get_info_p (&th, &ti); if (ret) error (thread_db_err_str (ret)); + thvalid = 1; lwp = ti.ti_lid; - if (!resume_all) - last_single_step_ptid = work_ptid; - } - - if (!resume_all && lwp == 0) - { - error ("sorry this version of FreeBSD can not resume inactivated thread"); } if (lwp) { int req = step ? PT_SETSTEP : PT_CLEARSTEP; - if (ptrace (req, (pid_t) lwp, 0, 0)) + if (ptrace (req, (pid_t) lwp, (caddr_t) 1, target_signal_to_host(signo))) perror_with_name ("PT_SETSTEP/PT_CLEARSTEP"); } - int nlwps = ptrace (PT_GETNUMLWPS, proc_handle.pid, 0, 0); - if (nlwps == -1) - perror_with_name ("PT_GETNUMLWPS"); - lwpid_t *lwps = malloc (nlwps * sizeof(lwpid_t)); - nlwps = ptrace (PT_GETLWPLIST, proc_handle.pid, (caddr_t)lwps, nlwps); - if (nlwps == -1) + if (!ptid_equal (last_single_step_thread, null_ptid)) { - perror_with_name ("PT_GETLWPLIST"); - free (lwps); + ret = td_ta_thr_iter_p (thread_agent, resume_thread_callback, NULL, + TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY, + TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS); + if (ret != TD_OK) + error ("resume error: %s", thread_db_err_str (ret)); } - /* - * FIX ME! if we can let PT_CONTINUE continue a single lwp, - * we needn't to iterate through lwp list to suspend/resume them, - * we just let the lwp run, this frees PT_SUSPEND PT_RESUME to user, - * so td_thr_dbsuspend/resume can be used to suspend or resume - * thread by user on command line... - */ - - int i; - if (last_single_step_lwp != 0) + if (!resume_all) { - /* resume all threads if ever suspend them */ - for (i = 0; i < nlwps; ++i) - { - if (ptrace (PT_RESUME, lwps[i], 0, 0)) - perror_with_name ("PT_SUSPEND"); - } + ret = td_ta_thr_iter_p (thread_agent, suspend_thread_callback, NULL, + TD_THR_ANY_STATE, TD_THR_LOWEST_PRIORITY, + TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS); + if (ret != TD_OK) + error ("suspend error: %s", thread_db_err_str (ret)); + last_single_step_thread = work_ptid; } + else + last_single_step_thread = null_ptid; - if (!resume_all) + if (thvalid) { - for (i = 0; i < nlwps; ++i) - { - if (lwps[i] == lwp) - continue; - if (ptrace (PT_SUSPEND, lwps[i], 0, 0)) - perror_with_name ("PT_SUSPEND"); - } - last_single_step_lwp = lwp; + ret = td_thr_dbresume_p (&th); + if (ret != TD_OK) + error ("resume error: %s", thread_db_err_str (ret)); } else - last_single_step_lwp = 0; + { + /* it is not necessary, put it here for completness */ + ret = ptrace(PT_RESUME, lwp, 0, 0); + } - free (lwps); - /* now continue the process, suspended thread wont run */ - if (ptrace (PT_CONTINUE, proc_handle.pid, (caddr_t)1, + if (ptrace (PT_CONTINUE, proc_handle.pid , (caddr_t)1, target_signal_to_host(signo))) perror_with_name ("PT_CONTINUE"); } @@ -537,17 +499,6 @@ ret = thread_from_lwp (BUILD_LWP (lwp, GET_PID (ret))); if (!in_thread_list (ret)) add_thread (ret); - /* this is a hack, if an event won't cause gdb to stop, for example, - SIGARLM, gdb resumes the process immediatly without setting - inferior_ptid to the new thread returned here, this is a bug - because inferior_ptid may already not exist there, and passing - a none existing thread to fbsd_thread_resume causes error, this - should be treated as a bug of gdb. */ - if (!fbsd_thread_alive (inferior_ptid)) - { - delete_thread (inferior_ptid); - inferior_ptid = ret; - } } return (ret); @@ -868,6 +819,59 @@ return normal_pid_to_str (ptid); } +CORE_ADDR +fbsd_thread_get_local_address(ptid_t ptid, struct objfile *objfile, + CORE_ADDR offset) +{ + td_thrhandle_t th; + void *address; + CORE_ADDR lm; + int ret, is_library = (objfile->flags & OBJF_SHARED); + + if (IS_THREAD (ptid)) + { + if (!td_thr_tls_get_addr_p) + error ("Cannot find thread-local interface in thread_db library."); + + /* Get the address of the link map for this objfile. */ + lm = svr4_fetch_objfile_link_map (objfile); + + /* Couldn't find link map. Bail out. */ + if (!lm) + { + if (is_library) + error ("Cannot find shared library `%s' link_map in dynamic" + " linker's module list", objfile->name); + else + error ("Cannot find executable file `%s' link_map in dynamic" + " linker's module list", objfile->name); + } + + ret = td_ta_map_id2thr_p (thread_agent, GET_THREAD(ptid), &th); + + /* get the address of the variable. */ + ret = td_thr_tls_get_addr_p (&th, (void *) lm, offset, &address); + + if (ret != TD_OK) + { + if (is_library) + error ("Cannot find thread-local storage for thread %ld, " + "shared library %s:\n%s", + (long) GET_THREAD (ptid), + objfile->name, thread_db_err_str (ret)); + else + error ("Cannot find thread-local storage for thread %ld, " + "executable file %s:\n%s", + (long) GET_THREAD (ptid), + objfile->name, thread_db_err_str (ret)); + } + + /* Cast assuming host == target. */ + return (CORE_ADDR) address; + } + return (0); +} + static int tsd_cb (thread_key_t key, void (*destructor)(void *), void *ignore) { @@ -914,6 +918,7 @@ thread_db_ops.to_has_thread_control = tc_none; thread_db_ops.to_insert_breakpoint = memory_insert_breakpoint; thread_db_ops.to_remove_breakpoint = memory_remove_breakpoint; + thread_db_ops.to_get_thread_local_address = fbsd_thread_get_local_address; thread_db_ops.to_magic = OPS_MAGIC; } @@ -987,6 +992,8 @@ if (td_thr_dbresume_p == NULL) return 0; + td_thr_tls_get_addr_p = dlsym (handle, "td_thr_tls_get_addr"); + /* Initialize the library. */ err = td_init_p (); if (err != TD_OK) From owner-p4-projects@FreeBSD.ORG Sat Aug 7 03:58:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 75C1C16A4D0; Sat, 7 Aug 2004 03:58:35 +0000 (GMT) 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 3B15D16A4CE for ; Sat, 7 Aug 2004 03:58:35 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 32D2A43D3F for ; Sat, 7 Aug 2004 03:58:35 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i773wZ7g042203 for ; Sat, 7 Aug 2004 03:58:35 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i773wY48042200 for perforce@freebsd.org; Sat, 7 Aug 2004 03:58:34 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 03:58:34 GMT Message-Id: <200408070358.i773wY48042200@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59050 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: Sat, 07 Aug 2004 03:58:36 -0000 http://perforce.freebsd.org/chv.cgi?CH=59050 Change 59050 by davidxu@davidxu_alona on 2004/08/07 03:58:34 call thread debugging module. Affected files ... .. //depot/projects/davidxu_ksedbg/src/gnu/usr.bin/gdb/arch/amd64/init.c#2 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/gnu/usr.bin/gdb/arch/amd64/init.c#2 (text+ko) ==== @@ -107,6 +107,7 @@ extern initialize_file_ftype _initialize_mi_cmd_env; extern initialize_file_ftype _initialize_mi_interp; extern initialize_file_ftype _initialize_mi_main; +extern initialize_file_ftype _initialize_thread_db; extern initialize_file_ftype _initialize_tui_hooks; extern initialize_file_ftype _initialize_tui_interp; extern initialize_file_ftype _initialize_tui_layout; @@ -134,6 +135,7 @@ _initialize_amd64fbsd_nat (); _initialize_gcore (); _initialize_fbsd_proc (); + _initialize_thread_db (); _initialize_remote (); _initialize_dcache (); _initialize_sr_support (); From owner-p4-projects@FreeBSD.ORG Sat Aug 7 03:59:37 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5AE5616A4D0; Sat, 7 Aug 2004 03:59:37 +0000 (GMT) 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 3757416A4CE for ; Sat, 7 Aug 2004 03:59:37 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 164B343D62 for ; Sat, 7 Aug 2004 03:59:37 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i773xajb042222 for ; Sat, 7 Aug 2004 03:59:36 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i773xaKO042219 for perforce@freebsd.org; Sat, 7 Aug 2004 03:59:36 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 03:59:36 GMT Message-Id: <200408070359.i773xaKO042219@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59051 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: Sat, 07 Aug 2004 03:59:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=59051 Change 59051 by davidxu@davidxu_alona on 2004/08/07 03:58:55 Eliminate diff. Affected files ... .. //depot/projects/davidxu_ksedbg/src/gnu/usr.bin/gdb/arch/i386/init.c#3 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/gnu/usr.bin/gdb/arch/i386/init.c#3 (text+ko) ==== @@ -116,7 +116,6 @@ extern initialize_file_ftype _initialize_tui_regs; extern initialize_file_ftype _initialize_tui_stack; extern initialize_file_ftype _initialize_tui_win; - void initialize_all_files (void) { From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:04:44 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D50EB16A4D0; Sat, 7 Aug 2004 04:04:43 +0000 (GMT) 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 AF23116A4CE for ; Sat, 7 Aug 2004 04:04:43 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9E2CC43D58 for ; Sat, 7 Aug 2004 04:04:43 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i7744hFq042432 for ; Sat, 7 Aug 2004 04:04:43 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i7744hLV042429 for perforce@freebsd.org; Sat, 7 Aug 2004 04:04:43 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:04:43 GMT Message-Id: <200408070404.i7744hLV042429@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59052 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: Sat, 07 Aug 2004 04:04:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=59052 Change 59052 by davidxu@davidxu_alona on 2004/08/07 04:04:28 add pl_flags into struct ptrace_lwpinfo to indicate a SA thread is in critical region. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/kern/kern_kse.c#12 edit .. //depot/projects/davidxu_ksedbg/src/sys/kern/sys_process.c#15 edit .. //depot/projects/davidxu_ksedbg/src/sys/sys/kse.h#8 edit .. //depot/projects/davidxu_ksedbg/src/sys/sys/ptrace.h#9 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/kern/kern_kse.c#12 (text+ko) ==== @@ -185,6 +185,9 @@ { struct proc *p; struct thread *td2; + struct kse_upcall *ku; + struct kse_thr_mailbox *tmbx; + uint32_t flags; p = td->td_proc; @@ -236,6 +239,30 @@ PROC_LOCK(p); sigexit(td, (int)uap->data); break; + + case KSE_INTR_DBSUSPEND: + /* this sub-function is only for bound thread */ + if (td->td_pflags & TDP_SA) + return (EINVAL); + ku = td->td_upcall; + tmbx = (void *)fuword((void *)&ku->ku_mailbox->km_curthread); + if (tmbx == NULL || tmbx == (void *)-1) + return (EINVAL); + flags = 0; + while ((p->p_flag & P_TRACED) && !(p->p_flag & P_SINGLE_EXIT)) { + flags = fuword32(&tmbx->tm_dflags); + if (!(flags & TMDF_SUSPEND)) + break; + PROC_LOCK(p); + mtx_lock_spin(&sched_lock); + thread_stopped(p); + thread_suspend_one(td); + PROC_UNLOCK(p); + mi_switch(SW_VOL, NULL); + mtx_unlock_spin(&sched_lock); + } + return (0); + default: return (EINVAL); } @@ -1078,10 +1105,14 @@ * If it is a short term event, just suspend it in * a way that takes its KSE with it. * Select the events for which we want to schedule upcalls. - * For now it's just sleep. + * For now it's just sleep or if thread is suspended but + * not process wide suspending flag is not set (debugger + * suspends thread). * XXXKSE eventually almost any inhibition could do. */ - if (TD_CAN_UNBIND(td) && (td->td_standin) && TD_ON_SLEEPQ(td)) { + if (TD_CAN_UNBIND(td) && (td->td_standin) && + (TD_ON_SLEEPQ(td) || (TD_IS_SUSPENDED(td) && + !P_SHOULDSTOP(td->td_proc)))) { /* * Release ownership of upcall, and schedule an upcall * thread, this new upcall thread becomes the owner of @@ -1134,14 +1165,14 @@ KASSERT(ku->ku_owner == td, ("wrong owner")); KASSERT(!TD_CAN_UNBIND(td), ("can unbind")); + if (td->td_standin == NULL) + thread_alloc_spare(td); ku->ku_mflags = fuword32((void *)&ku->ku_mailbox->km_flags); tmbx = (void *)fuword((void *)&ku->ku_mailbox->km_curthread); if ((tmbx == NULL) || (tmbx == (void *)-1L) || (ku->ku_mflags & KMF_NOUPCALL)) { td->td_mailbox = NULL; } else { - if (td->td_standin == NULL) - thread_alloc_spare(td); flags = fuword32(&tmbx->tm_flags); /* * On some architectures, TP register points to thread @@ -1210,16 +1241,6 @@ td->td_pflags &= ~TDP_USTATCLOCK; } - /* - * Check if we should unbind and schedule upcall - * after returned from interrupt or etcs, this - * is usually true when process is being debugged. - */ - if (td->td_mailbox == NULL && ku != NULL && - !(td->td_pflags & TDP_UPCALLING) && - (kg->kg_completed || ku->ku_flags & KUF_DOUPCALL)) - thread_user_enter(p, td); - uts_crit = (td->td_mailbox == NULL); /* * Optimisation: @@ -1372,12 +1393,6 @@ } ku->ku_mflags = 0; - /* - * Clear thread mailbox first, then clear system tick count. - * The order is important because thread_statclock() use - * mailbox pointer to see if it is an userland thread or - * an UTS kernel thread. - */ td->td_mailbox = NULL; td->td_usticks = 0; return (error); /* go sync */ ==== //depot/projects/davidxu_ksedbg/src/sys/kern/sys_process.c#15 (text+ko) ==== @@ -807,19 +807,13 @@ else pl->pl_event = 0; } - if (!(td2->td_pflags & TDP_SA)) { - printf("not sa\n"); - pl->pl_bound = 1; + if (td2->td_pflags & TDP_SA) { + pl->pl_flags = PL_FLAG_SA; + if (td2->td_upcall && !TD_CAN_UNBIND(td2)) + pl->pl_flags |= PL_FLAG_BOUND; + } else { + pl->pl_flags = 0; } - else if (td2->td_upcall == NULL) { - pl->pl_bound = 0; - printf("upcall == NULL\n"); - } - else if (TD_CAN_UNBIND(td2)) { - pl->pl_bound = 0; - printf("lwp=%d can unbind\n", saved_pid); - } else - pl->pl_bound = 1; _PRELE(p); PROC_UNLOCK(p); return (0); ==== //depot/projects/davidxu_ksedbg/src/sys/sys/kse.h#8 (text+ko) ==== @@ -107,10 +107,11 @@ #define KSE_SWITCHIN_SETTMBX 0x01 /* Commands for kse_thr_interrupt */ -#define KSE_INTR_INTERRUPT 0x01 -#define KSE_INTR_RESTART 0x02 -#define KSE_INTR_SENDSIG 0x03 -#define KSE_INTR_SIGEXIT 0x04 +#define KSE_INTR_INTERRUPT 1 +#define KSE_INTR_RESTART 2 +#define KSE_INTR_SENDSIG 3 +#define KSE_INTR_SIGEXIT 4 +#define KSE_INTR_DBSUSPEND 5 #ifndef _KERNEL int kse_create(struct kse_mailbox *, int); ==== //depot/projects/davidxu_ksedbg/src/sys/sys/ptrace.h#9 (text+ko) ==== @@ -89,7 +89,9 @@ int pl_event; /* Event that stopped the LWP. */ #define PL_EVENT_NONE 0 #define PL_EVENT_SIGNAL 1 - int pl_bound; + int pl_flags; /* LWP flags. */ +#define PL_FLAG_SA 0x01 /* M:N thread */ +#define PL_FLAG_BOUND 0x02 /* M:N bound thread */ }; #ifdef _KERNEL From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:06:47 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D9C5B16A4D0; Sat, 7 Aug 2004 04:06:46 +0000 (GMT) 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 B5AF916A4CE for ; Sat, 7 Aug 2004 04:06:46 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 96EE943D53 for ; Sat, 7 Aug 2004 04:06:46 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i7746kGN042552 for ; Sat, 7 Aug 2004 04:06:46 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i7746kRc042549 for perforce@freebsd.org; Sat, 7 Aug 2004 04:06:46 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:06:46 GMT Message-Id: <200408070406.i7746kRc042549@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59053 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: Sat, 07 Aug 2004 04:06:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=59053 Change 59053 by davidxu@davidxu_alona on 2004/08/07 04:06:12 Introduce KSE_INTR_DBSUSPEND to suspend a scope thread after it left critical region. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/kern/kern_kse.c#13 edit .. //depot/projects/davidxu_ksedbg/src/sys/sys/kse.h#9 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/kern/kern_kse.c#13 (text+ko) ==== ==== //depot/projects/davidxu_ksedbg/src/sys/sys/kse.h#9 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:11:53 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7A80416A4D0; Sat, 7 Aug 2004 04:11:53 +0000 (GMT) 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 3E87C16A4CE for ; Sat, 7 Aug 2004 04:11:53 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3742943D58 for ; Sat, 7 Aug 2004 04:11:53 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774Br90042687 for ; Sat, 7 Aug 2004 04:11:53 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774BqHv042684 for perforce@freebsd.org; Sat, 7 Aug 2004 04:11:52 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:11:52 GMT Message-Id: <200408070411.i774BqHv042684@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59054 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: Sat, 07 Aug 2004 04:11:54 -0000 http://perforce.freebsd.org/chv.cgi?CH=59054 Change 59054 by davidxu@davidxu_alona on 2004/08/07 04:10:58 add td_thr_tls_get_addr Affected files ... .. //depot/projects/davidxu_ksedbg/src/lib/libthread_db/thread_db.h#2 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/lib/libthread_db/thread_db.h#2 (text+ko) ==== @@ -231,6 +231,7 @@ td_err_e td_thr_setfpregs(const td_thrhandle_t *, const prfpregset_t *); td_err_e td_thr_setgregs(const td_thrhandle_t *, const prgregset_t); td_err_e td_thr_validate(const td_thrhandle_t *); +td_err_e td_thr_tls_get_addr(const td_thrhandle_t *, void *, size_t, void **); /* FreeBSD specific extensions. */ td_err_e td_thr_sstep(const td_thrhandle_t *, int); From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:11:54 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 43DFD16A4DC; Sat, 7 Aug 2004 04:11:54 +0000 (GMT) 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 B23E116A4EC for ; Sat, 7 Aug 2004 04:11:53 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9F68A43D58 for ; Sat, 7 Aug 2004 04:11:53 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774Brob042694 for ; Sat, 7 Aug 2004 04:11:53 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774Br9n042690 for perforce@freebsd.org; Sat, 7 Aug 2004 04:11:53 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:11:53 GMT Message-Id: <200408070411.i774Br9n042690@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59055 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: Sat, 07 Aug 2004 04:11:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=59055 Change 59055 by davidxu@davidxu_alona on 2004/08/07 04:11:30 Add code to support retrieving tls variable. Affected files ... .. //depot/projects/davidxu_ksedbg/src/lib/libthread_db/Makefile#4 edit .. //depot/projects/davidxu_ksedbg/src/lib/libthread_db/libpthread_db.c#2 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/lib/libthread_db/Makefile#4 (text+ko) ==== @@ -11,7 +11,13 @@ INCS= thread_db.h WARNS?= 1 -CFLAGS+=-I. -I${.CURDIR} +CFLAGS+=-I. -I${.CURDIR} -I${.CURDIR}/../../libexec/rtld-elf +CFLAGS+=-I${.CURDIR}/../../libexec/rtld-elf/${MACHINE_ARCH} +.if ${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH} == "i386" +CFLAGS+=-DTLS_DTV_AT_TCB +.else +CFLAGS+=-DTLS_DTV_AT_TP +.endif SRCS+= libpthread.h CLEANFILES+= libpthread.h ==== //depot/projects/davidxu_ksedbg/src/lib/libthread_db/libpthread_db.c#2 (text+ko) ==== @@ -27,6 +27,7 @@ #include __FBSDID("$FreeBSD: src/lib/libthread_db/libpthread_db.c,v 1.3 2004/08/03 02:23:06 davidxu Exp $"); +#include #include #include #include @@ -38,6 +39,8 @@ #include #include +#include "rtld.h" + #include "libpthread.h" #include "libpthread_db.h" @@ -413,8 +416,7 @@ psaddr_t tcb_addr, tmbx_addr, ptr; lwpid_t lwp; uint32_t dflags; - int attrflags; - int ret; + int attrflags, locklevel, ret; TDBG_FUNC(); @@ -445,40 +447,57 @@ ret = ps_pread(ta->ph, ptr, &lwp, sizeof(lwpid_t)); if (ret != 0) return (P2T(ret)); - /* - * Don't stop lwp assigned to a M:N thread, it belongs - * to UTS, UTS shouldn't be stopped. - */ - if (lwp != 0 && (attrflags & PTHREAD_SCOPE_SYSTEM)) { - /* dont' suspend signal thread */ + + if (lwp != 0) { + /* don't suspend signal thread */ if (attrflags & THR_SIGNAL_THREAD) - return 0; - ptr = ta->map[th->th_tid].thr + - offsetof(struct pthread, kse); - /* Too many indirect level :-( */ - /* read struct kse * */ - ret = ps_pread(ta->ph, ptr, &ptr, sizeof(ptr)); - if (ret != 0) - return (P2T(ret)); - ptr = ptr + offsetof(struct kse, k_kcb); - /* read k_kcb * */ - ret = ps_pread(ta->ph, ptr, &ptr, sizeof(ptr)); - if (ret != 0) - return (P2T(ret)); - /* read kcb.kcb_kmbx.km_curthread */ - ptr = ptr + offsetof(struct kcb, kcb_kmbx.km_curthread); - ret = ps_pread(ta->ph, ptr, &ptr, sizeof(ptr)); - if (ret != 0) - return (P2T(ret)); - if (ptr != 0) { /* not in critical */ - if (suspend) - ret = ps_lstop(ta->ph, lwp); - else + return (0); + if (attrflags & PTHREAD_SCOPE_SYSTEM) { + /* + * don't suspend system scope thread if it is holding + * some low level locks + */ + ptr = ta->map[th->th_tid].thr + + offsetof(struct pthread, kse); + ret = ps_pread(ta->ph, ptr, &ptr, sizeof(ptr)); + if (ret != 0) + return (P2T(ret)); + ret = ps_pread(ta->ph, ptr + offsetof(struct kse, + k_locklevel), &locklevel, sizeof(int)); + if (ret != 0) + return (P2T(ret)); + if (locklevel <= 0) { + ptr = ta->map[th->th_tid].thr + + offsetof(struct pthread, locklevel); + ret = ps_pread(ta->ph, ptr, &locklevel, + sizeof(int)); + if (ret != 0) + return (P2T(ret)); + } + if (suspend) { + if (locklevel <= 0) + ret = ps_lstop(ta->ph, lwp); + } else { + ret = ps_lcontinue(ta->ph, lwp); + } + if (ret != 0) + return (P2T(ret)); + /* FALLTHROUGH */ + } else { + struct ptrace_lwpinfo pl; + + if (ptrace(PT_LWPINFO, lwp, (caddr_t) &pl, sizeof(pl))) + return (TD_ERR); + if (suspend) { + if (!(pl.pl_flags & PL_FLAG_BOUND)) + ret = ps_lstop(ta->ph, lwp); + } else { ret = ps_lcontinue(ta->ph, lwp); + } if (ret != 0) return (P2T(ret)); + /* FALLTHROUGH */ } - /* FALLTHROUGH */ } /* read tm_dflags */ ret = ps_pread(ta->ph, @@ -899,6 +918,62 @@ return (TD_OK); } +td_err_e +pt_thr_tls_get_addr(const td_thrhandle_t *th, void *_linkmap, size_t offset, + void **address) +{ + Obj_Entry *obj_entry; + const td_thragent_t *ta = th->th_ta; + psaddr_t tcb_addr, *dtv_addr, tcb_tp; + int tls_index, ret; + + /* linkmap is a member of Obj_Entry */ + obj_entry = (Obj_Entry *) + (((char *)_linkmap) - offsetof(Obj_Entry, linkmap)); + + /* get tlsindex of the object file */ + ret = ps_pread(ta->ph, + ((char *)obj_entry) + offsetof(Obj_Entry, tlsindex), + &tls_index, sizeof(tls_index)); + if (ret != 0) + return (P2T(ret)); + + /* get thread tcb */ + ret = ps_pread(ta->ph, ta->map[th->th_tid].thr + + offsetof(struct pthread, tcb), + &tcb_addr, sizeof(tcb_addr)); + if (ret != 0) + return (P2T(ret)); + +#ifdef TLS_DTV_AT_TCB + /* get dtv array address */ + ret = ps_pread(ta->ph, tcb_addr + offsetof(struct tcb, tcb_dtv), + &dtv_addr, sizeof(dtv_addr)); + if (ret != 0) + return (P2T(ret)); +#else + #ifdef TLS_DTV_AT_TP + ret = ps_pread(ta->ph, tcb_addr + offsetof(struct tcb, tcb_tp), + &tcb_tp, sizeof(tcb_tp)); + if (ret != 0) + return (P2T(ret)); + ret = ps_pread(ta->ph, tcb_tp + offsetof(struct tp, tp_dtv), + &dtv_addr, sizeof(dtv_addr)); + #else + #error "Either TLS_DTV_AT_TP or TLS_DTV_AT_TCB must be defined." + #endif +#endif + /* now get the object's tls block base address */ + ret = ps_pread(ta->ph, &dtv_addr[tls_index+1], address, + sizeof(*address)); + if (ret != 0) + return (P2T(ret)); + + *address += offset; + + return (TD_OK); +} + struct ta_ops libpthread_db_ops = { .to_init = pt_init, .to_ta_clear_event = pt_ta_clear_event, @@ -923,6 +998,7 @@ .to_thr_setfpregs = pt_thr_setfpregs, .to_thr_setgregs = pt_thr_setgregs, .to_thr_validate = pt_thr_validate, + .to_thr_tls_get_addr = pt_thr_tls_get_addr, /* FreeBSD specific extensions. */ .to_thr_sstep = pt_thr_sstep, From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:14:58 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1E1E16A4D0; Sat, 7 Aug 2004 04:14:57 +0000 (GMT) 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 CE80116A4CE for ; Sat, 7 Aug 2004 04:14:57 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id C738843D3F for ; Sat, 7 Aug 2004 04:14:57 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774EvPu042739 for ; Sat, 7 Aug 2004 04:14:57 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774Evn1042736 for perforce@freebsd.org; Sat, 7 Aug 2004 04:14:57 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:14:57 GMT Message-Id: <200408070414.i774Evn1042736@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59056 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: Sat, 07 Aug 2004 04:14:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=59056 Change 59056 by davidxu@davidxu_alona on 2004/08/07 04:14:26 Fix comment. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/kern/kern_kse.c#14 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/kern/kern_kse.c#14 (text+ko) ==== @@ -1106,7 +1106,7 @@ * a way that takes its KSE with it. * Select the events for which we want to schedule upcalls. * For now it's just sleep or if thread is suspended but - * not process wide suspending flag is not set (debugger + * process wide suspending flag is not set (debugger * suspends thread). * XXXKSE eventually almost any inhibition could do. */ From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:25:11 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C353B16A4D0; Sat, 7 Aug 2004 04:25:10 +0000 (GMT) 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 9F7B616A4CE for ; Sat, 7 Aug 2004 04:25:10 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8019443D53 for ; Sat, 7 Aug 2004 04:25:10 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774PAM1043294 for ; Sat, 7 Aug 2004 04:25:10 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774PAnN043291 for perforce@freebsd.org; Sat, 7 Aug 2004 04:25:10 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:25:10 GMT Message-Id: <200408070425.i774PAnN043291@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59057 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: Sat, 07 Aug 2004 04:25:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=59057 Change 59057 by davidxu@davidxu_alona on 2004/08/07 04:24:44 Buggy debug tries to change prilivege bits, just ignore it. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#6 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#6 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:27:13 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9EA2C16A4D0; Sat, 7 Aug 2004 04:27:13 +0000 (GMT) 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 7955016A4CE for ; Sat, 7 Aug 2004 04:27:13 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5B85143D5D for ; Sat, 7 Aug 2004 04:27:13 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774RDZ5043536 for ; Sat, 7 Aug 2004 04:27:13 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774RDqJ043533 for perforce@freebsd.org; Sat, 7 Aug 2004 04:27:13 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:27:13 GMT Message-Id: <200408070427.i774RDqJ043533@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59058 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: Sat, 07 Aug 2004 04:27:14 -0000 http://perforce.freebsd.org/chv.cgi?CH=59058 Change 59058 by davidxu@davidxu_alona on 2004/08/07 04:26:15 The real code of previous commit. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#7 edit .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/trap.c#3 edit .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/vm_machdep.c#2 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#7 (text+ko) ==== ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/trap.c#3 (text+ko) ==== ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/vm_machdep.c#2 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:28:15 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 729CF16A4D0; Sat, 7 Aug 2004 04:28:15 +0000 (GMT) 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 37D1E16A4CE for ; Sat, 7 Aug 2004 04:28:15 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 196F743D2F for ; Sat, 7 Aug 2004 04:28:15 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774SE5v043979 for ; Sat, 7 Aug 2004 04:28:14 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774SEWr043976 for perforce@freebsd.org; Sat, 7 Aug 2004 04:28:14 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:28:14 GMT Message-Id: <200408070428.i774SEWr043976@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59059 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: Sat, 07 Aug 2004 04:28:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=59059 Change 59059 by davidxu@davidxu_alona on 2004/08/07 04:27:53 mark end of frames. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/vm_machdep.c#3 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/vm_machdep.c#3 (text+ko) ==== @@ -317,6 +317,7 @@ td->td_frame->tf_rsp = ((register_t)ku->ku_stack.ss_sp + ku->ku_stack.ss_size) & ~0x0f; td->td_frame->tf_rsp -= 8; + td->td_frame->tf_rbp = 0; td->td_frame->tf_rip = (register_t)ku->ku_func; /* From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:30:20 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6DDC716A4D1; Sat, 7 Aug 2004 04:30:20 +0000 (GMT) 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 4A93416A4CF for ; Sat, 7 Aug 2004 04:30:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 40CD943D3F for ; Sat, 7 Aug 2004 04:30:19 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774UHXa044538 for ; Sat, 7 Aug 2004 04:30:17 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774UHQE044535 for perforce@freebsd.org; Sat, 7 Aug 2004 04:30:17 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:30:17 GMT Message-Id: <200408070430.i774UHQE044535@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59060 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: Sat, 07 Aug 2004 04:30:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=59060 Change 59060 by davidxu@davidxu_alona on 2004/08/07 04:30:06 Make a copy of syscall parameters, syscalls use set_mcontext can sneakily change the parameters, cause kernel to crash, security risk. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/trap.c#4 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/trap.c#4 (text+ko) ==== @@ -729,21 +729,17 @@ /* * copyin and the ktrsyscall()/ktrsysret() code is MP-aware */ - if (narg <= regcnt) { - argp = &frame.tf_rdi; - argp += reg; - error = 0; - } else { - KASSERT(narg <= sizeof(args) / sizeof(args[0]), - ("Too many syscall arguments!")); - KASSERT(params != NULL, ("copyin args with no params!")); - argp = &frame.tf_rdi; - argp += reg; - bcopy(argp, args, sizeof(args[0]) * regcnt); + error = 0; + KASSERT(narg <= sizeof(args) / sizeof(args[0]), + ("Too many syscall arguments!")); + KASSERT(params != NULL, ("copyin args with no params!")); + argp = &frame.tf_rdi; + argp += reg; + bcopy(argp, args, sizeof(args[0]) * regcnt); + if (narg > regcnt) error = copyin(params, &args[regcnt], - (narg - regcnt) * sizeof(args[0])); - argp = &args[0]; - } + (narg - regcnt) * sizeof(args[0])); + argp = &args[0]; #ifdef KTRACE if (KTRPOINT(td, KTR_SYSCALL)) From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:32:21 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1D54316A4D0; Sat, 7 Aug 2004 04:32:21 +0000 (GMT) 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 EC98416A4CE for ; Sat, 7 Aug 2004 04:32:20 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id E436C43D2D for ; Sat, 7 Aug 2004 04:32:20 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774WKwa044666 for ; Sat, 7 Aug 2004 04:32:20 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774WKfs044663 for perforce@freebsd.org; Sat, 7 Aug 2004 04:32:20 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:32:20 GMT Message-Id: <200408070432.i774WKfs044663@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59061 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: Sat, 07 Aug 2004 04:32:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=59061 Change 59061 by davidxu@davidxu_alona on 2004/08/07 04:31:33 Buggy debugger tries to change prilivege bits, just ignore it. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#8 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/amd64/amd64/machdep.c#8 (text+ko) ==== @@ -1348,11 +1348,14 @@ { struct pcb *pcb; struct trapframe *tp; + register_t rflags; tp = td->td_frame; - if (!EFL_SECURE(regs->r_rflags, tp->tf_rflags) || - !CS_SECURE(regs->r_cs)) + if (!CS_SECURE(regs->r_cs)) return (EINVAL); + + rflags = (regs->r_rflags & PSL_USERCHANGE) | + (tp->tf_rflags & ~PSL_USERCHANGE); tp->tf_r15 = regs->r_r15; tp->tf_r14 = regs->r_r14; tp->tf_r13 = regs->r_r13; @@ -1370,7 +1373,7 @@ tp->tf_rax = regs->r_rax; tp->tf_rip = regs->r_rip; tp->tf_cs = regs->r_cs; - tp->tf_rflags = regs->r_rflags; + tp->tf_rflags = rflags; tp->tf_rsp = regs->r_rsp; tp->tf_ss = regs->r_ss; pcb = td->td_pcb; From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:35:25 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 509B116A4D0; Sat, 7 Aug 2004 04:35:25 +0000 (GMT) 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 25D2F16A4CE for ; Sat, 7 Aug 2004 04:35:25 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 05F7E43D2F for ; Sat, 7 Aug 2004 04:35:25 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774ZOKu044785 for ; Sat, 7 Aug 2004 04:35:24 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774ZOpV044782 for perforce@freebsd.org; Sat, 7 Aug 2004 04:35:24 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:35:24 GMT Message-Id: <200408070435.i774ZOpV044782@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59062 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: Sat, 07 Aug 2004 04:35:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=59062 Change 59062 by davidxu@davidxu_alona on 2004/08/07 04:34:35 call thread_use_enter for SA thread. Affected files ... .. //depot/projects/davidxu_ksedbg/src/sys/kern/subr_trap.c#6 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/sys/kern/subr_trap.c#6 (text+ko) ==== @@ -161,7 +161,8 @@ mtx_assert(&Giant, MA_NOTOWNED); mtx_assert(&sched_lock, MA_NOTOWNED); td->td_frame = framep; - if (p->p_flag & P_SA) + + if ((p->p_flag & P_SA) && (td->td_mailbox == NULL)) thread_user_enter(p, td); /* * This updates the p_sflag's for the checks below in one From owner-p4-projects@FreeBSD.ORG Sat Aug 7 04:44:38 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E037D16A4D0; Sat, 7 Aug 2004 04:44:37 +0000 (GMT) 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 B5D5016A4CE for ; Sat, 7 Aug 2004 04:44:37 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id ADD3243D4C for ; Sat, 7 Aug 2004 04:44:37 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i774ibh3045196 for ; Sat, 7 Aug 2004 04:44:37 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i774ibQa045193 for perforce@freebsd.org; Sat, 7 Aug 2004 04:44:37 GMT (envelope-from davidxu@freebsd.org) Date: Sat, 7 Aug 2004 04:44:37 GMT Message-Id: <200408070444.i774ibQa045193@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 59065 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: Sat, 07 Aug 2004 04:44:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=59065 Change 59065 by davidxu@davidxu_alona on 2004/08/07 04:43:38 suspend system scope thread after leaving critical region. Affected files ... .. //depot/projects/davidxu_ksedbg/src/lib/libpthread/thread/thr_kern.c#9 edit Differences ... ==== //depot/projects/davidxu_ksedbg/src/lib/libpthread/thread/thr_kern.c#9 (text+ko) ==== @@ -937,8 +937,7 @@ } /* - * No current thread anymore, calling _get_curthread in UTS - * should dump core + * No current thread anymore */ _tcb_set(curkse->k_kcb, NULL); @@ -2541,7 +2540,11 @@ * is cleared by debugger, the flag will be cleared in next * suspension event. */ - if ((curthread->attr.flags & PTHREAD_SCOPE_SYSTEM) == 0 && - !DBG_CAN_RUN(curthread)) - _thr_sched_switch(curthread); + if (!DBG_CAN_RUN(curthread)) { + if ((curthread->attr.flags & PTHREAD_SCOPE_SYSTEM) == 0) + _thr_sched_switch(curthread); + else + kse_thr_interrupt(&curthread->tcb->tcb_tmbx, + KSE_INTR_DBSUSPEND, 0); + } }