From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 15:24:17 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03285106564A; Mon, 27 Sep 2010 15:24:17 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E5D9D8FC0C; Mon, 27 Sep 2010 15:24:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RFOGCG040229; Mon, 27 Sep 2010 15:24:16 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RFOGOm040224; Mon, 27 Sep 2010 15:24:16 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009271524.o8RFOGOm040224@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 15:24:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213200 - in projects/sv/sys: dev/e1000 netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 15:24:17 -0000 Author: attilio Date: Mon Sep 27 15:24:16 2010 New Revision: 213200 URL: http://svn.freebsd.org/changeset/base/213200 Log: Implement netdump interfaces for if_em and if_lem specifically and, contemporary, rework the netdump hooks. The netdump methods are now composed by the following interfaces: - normal polling operation - polling operation that tries to skip locking as much as it can (to be used in DDB case in order to increase chances of deadlock avoidance) - functions for enabling and disabling interrupts when DEVICE_POLLING option is not enabled, in order to avoid problems with polling. The normal/unlocked version of polling is a bit awkward but still used in several places in the FreeBSD kernel and effective when entering DDB. The implementation of netdump_methods is suited for having independency between NETDUMP_CLIENT and DEVICE_POLLING. Right now, the only issue left open is using unlocked version in the KDB_UNATTENDED version too, but it is going to be fixed soon. Reviewed by: rstone Modified: projects/sv/sys/dev/e1000/if_em.c projects/sv/sys/dev/e1000/if_lem.c projects/sv/sys/netinet/netdump.h projects/sv/sys/netinet/netdump_client.c Modified: projects/sv/sys/dev/e1000/if_em.c ============================================================================== --- projects/sv/sys/dev/e1000/if_em.c Mon Sep 27 14:50:51 2010 (r213199) +++ projects/sv/sys/dev/e1000/if_em.c Mon Sep 27 15:24:16 2010 (r213200) @@ -35,6 +35,7 @@ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" #include "opt_inet.h" +#include "opt_netdump.h" #endif #include @@ -73,6 +74,9 @@ #include #include #include +#ifdef NETDUMP_CLIENT +#include +#endif #include #include @@ -283,14 +287,32 @@ static void em_add_rx_process_limit(stru static __inline void em_rx_discard(struct rx_ring *, int); -#ifdef DEVICE_POLLING +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) +static int _em_poll_generic(struct ifnet *ifp, enum poll_cmd cmd, + int count, int locking); static poll_handler_t em_poll; -#endif /* POLLING */ +#endif +#ifdef NETDUMP_CLIENT +static poll_handler_t em_poll_unlocked; +static ndumplock_handler_t em_ndump_disable_intr; +static ndumplock_handler_t em_ndump_enable_intr; +#endif /********************************************************************* * FreeBSD Device Interface Entry Points *********************************************************************/ +#ifdef NETDUMP_CLIENT + +static struct netdump_methods em_ndump_methods = { + .poll_locked = em_poll, + .poll_unlocked = em_poll_unlocked, + .disable_intr = em_ndump_disable_intr, + .enable_intr = em_ndump_enable_intr +}; + +#endif + static device_method_t em_methods[] = { /* Device interface */ DEVMETHOD(device_probe, em_probe), @@ -1355,14 +1377,14 @@ em_init(void *arg) } -#ifdef DEVICE_POLLING +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) /********************************************************************* * * Legacy polling routine: note this only works with single queue * *********************************************************************/ static int -em_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +_em_poll_generic(struct ifnet *ifp, enum poll_cmd cmd, int count, int locking) { struct adapter *adapter = ifp->if_softc; struct tx_ring *txr = adapter->tx_rings; @@ -1370,9 +1392,11 @@ em_poll(struct ifnet *ifp, enum poll_cmd u32 reg_icr; int rx_done; - EM_CORE_LOCK(adapter); + if (locking != 0) + EM_CORE_LOCK(adapter); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - EM_CORE_UNLOCK(adapter); + if (locking != 0) + EM_CORE_UNLOCK(adapter); return (0); } @@ -1386,11 +1410,13 @@ em_poll(struct ifnet *ifp, enum poll_cmd em_local_timer, adapter); } } - EM_CORE_UNLOCK(adapter); + if (locking != 0) + EM_CORE_UNLOCK(adapter); em_rxeof(rxr, count, &rx_done); - EM_TX_LOCK(txr); + if (locking != 0) + EM_TX_LOCK(txr); em_txeof(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -1399,12 +1425,50 @@ em_poll(struct ifnet *ifp, enum poll_cmd if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) em_start_locked(ifp, txr); #endif - EM_TX_UNLOCK(txr); + if (locking != 0) + EM_TX_UNLOCK(txr); return (rx_done); } -#endif /* DEVICE_POLLING */ +static int +em_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + + return (_em_poll_generic(ifp, cmd, count, 1)); +} +#endif /* !DEVICE_POLLING && !NETDUMP_CLIENT */ + +#ifdef NETDUMP_CLIENT +static int +em_poll_unlocked(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + + return (_em_poll_generic(ifp, cmd, count, 0)); +} + +static void +em_ndump_disable_intr(struct ifnet *ifp) +{ + struct adapter *adapter; + + adapter = ifp->if_softc; + EM_CORE_LOCK(adapter); + em_disable_intr(adapter); + EM_CORE_UNLOCK(adapter); +} + +static void +em_ndump_enable_intr(struct ifnet *ifp) +{ + struct adapter *adapter; + + adapter = ifp->if_softc; + EM_CORE_LOCK(adapter); + em_enable_intr(adapter); + EM_CORE_UNLOCK(adapter); +} +#endif /* !NETDUMP_CLIENT */ /********************************************************************* * @@ -2676,6 +2740,9 @@ em_setup_interface(device_t dev, struct ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = em_ioctl; ifp->if_start = em_start; +#ifdef NETDUMP_CLIENT + ifp->if_ndumpfuncs = &em_ndump_methods; +#endif IFQ_SET_MAXLEN(&ifp->if_snd, adapter->num_tx_desc - 1); ifp->if_snd.ifq_drv_maxlen = adapter->num_tx_desc - 1; IFQ_SET_READY(&ifp->if_snd); Modified: projects/sv/sys/dev/e1000/if_lem.c ============================================================================== --- projects/sv/sys/dev/e1000/if_lem.c Mon Sep 27 14:50:51 2010 (r213199) +++ projects/sv/sys/dev/e1000/if_lem.c Mon Sep 27 15:24:16 2010 (r213200) @@ -35,6 +35,7 @@ #ifdef HAVE_KERNEL_OPTION_HEADERS #include "opt_device_polling.h" #include "opt_inet.h" +#include "opt_netdump.h" #endif #include @@ -72,6 +73,9 @@ #include #include #include +#ifdef NETDUMP_CLIENT +#include +#endif #include #include @@ -262,14 +266,32 @@ static void lem_add_rx_process_limit(str const char *, int *, int); #endif /* ~EM_LEGACY_IRQ */ -#ifdef DEVICE_POLLING +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) +static int _lem_poll_generic(struct ifnet *ifp, enum poll_cmd cmd, + int count, int locking); static poll_handler_t lem_poll; -#endif /* POLLING */ +#endif +#ifdef NETDUMP_CLIENT +static poll_handler_t lem_poll_unlocked; +static ndumplock_handler_t lem_ndump_disable_intr; +static ndumplock_handler_t lem_ndump_enable_intr; +#endif /********************************************************************* * FreeBSD Device Interface Entry Points *********************************************************************/ +#ifdef NETDUMP_CLIENT + +static struct netdump_methods lem_ndump_methods = { + .poll_locked = lem_poll, + .poll_unlocked = lem_poll_unlocked, + .disable_intr = lem_ndump_disable_intr, + .enable_intr = lem_ndump_enable_intr +}; + +#endif + static device_method_t lem_methods[] = { /* Device interface */ DEVMETHOD(device_probe, lem_probe), @@ -1239,21 +1261,23 @@ lem_init(void *arg) } -#ifdef DEVICE_POLLING +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) /********************************************************************* * * Legacy polling routine * *********************************************************************/ static int -lem_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +_lem_poll_generic(struct ifnet *ifp, enum poll_cmd cmd, int count, int locking) { struct adapter *adapter = ifp->if_softc; u32 reg_icr, rx_done = 0; - EM_CORE_LOCK(adapter); + if (locking != 0) + EM_CORE_LOCK(adapter); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - EM_CORE_UNLOCK(adapter); + if (locking != 0) + EM_CORE_UNLOCK(adapter); return (rx_done); } @@ -1267,18 +1291,59 @@ lem_poll(struct ifnet *ifp, enum poll_cm lem_local_timer, adapter); } } - EM_CORE_UNLOCK(adapter); + if (locking != 0) + EM_CORE_UNLOCK(adapter); lem_rxeof(adapter, count, &rx_done); - EM_TX_LOCK(adapter); + if (locking != 0) + EM_TX_LOCK(adapter); lem_txeof(adapter); if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) lem_start_locked(ifp); - EM_TX_UNLOCK(adapter); + if (locking != 0) + EM_TX_UNLOCK(adapter); return (rx_done); } -#endif /* DEVICE_POLLING */ + +static int +lem_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + + return (_lem_poll_generic(ifp, cmd, count, 1)); +} +#endif /* !DEVICE_POLLING && !NETDUMP_CLIENT */ + +#ifdef NETDUMP_CLIENT +static int +lem_poll_unlocked(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + + return (_lem_poll_generic(ifp, cmd, count, 0)); +} + +static void +lem_ndump_disable_intr(struct ifnet *ifp) +{ + struct adapter *adapter; + + adapter = ifp->if_softc; + EM_CORE_LOCK(adapter); + lem_disable_intr(adapter); + EM_CORE_UNLOCK(adapter); +} + +static void +lem_ndump_enable_intr(struct ifnet *ifp) +{ + struct adapter *adapter; + + adapter = ifp->if_softc; + EM_CORE_LOCK(adapter); + lem_enable_intr(adapter); + EM_CORE_UNLOCK(adapter); +} +#endif /* !NETDUMP_CLIENT */ #ifdef EM_LEGACY_IRQ /********************************************************************* @@ -2416,6 +2481,9 @@ lem_setup_interface(device_t dev, struct ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = lem_ioctl; ifp->if_start = lem_start; +#ifdef NETDUMP_CLIENT + ifp->if_ndumpfuncs = &lem_ndump_methods; +#endif IFQ_SET_MAXLEN(&ifp->if_snd, adapter->num_tx_desc - 1); ifp->if_snd.ifq_drv_maxlen = adapter->num_tx_desc - 1; IFQ_SET_READY(&ifp->if_snd); Modified: projects/sv/sys/netinet/netdump.h ============================================================================== --- projects/sv/sys/netinet/netdump.h Mon Sep 27 14:50:51 2010 (r213199) +++ projects/sv/sys/netinet/netdump.h Mon Sep 27 15:24:16 2010 (r213200) @@ -64,10 +64,10 @@ struct netdump_msg { typedef void ndumplock_handler_t(struct ifnet *); struct netdump_methods { - ndumplock_handler_t *test_get_lock; - ndumplock_handler_t *acquire_lock; - ndumplock_handler_t *release_lock; poll_handler_t *poll_locked; + poll_handler_t *poll_unlocked; + ndumplock_handler_t *disable_intr; + ndumplock_handler_t *enable_intr; }; #endif Modified: projects/sv/sys/netinet/netdump_client.c ============================================================================== --- projects/sv/sys/netinet/netdump_client.c Mon Sep 27 14:50:51 2010 (r213199) +++ projects/sv/sys/netinet/netdump_client.c Mon Sep 27 15:24:16 2010 (r213200) @@ -1063,7 +1063,12 @@ done: static void netdump_network_poll() { - nd_nic->if_ndumpfuncs->poll_locked(nd_nic, POLL_AND_CHECK_STATUS, 1000); + if (panicstr == NULL) + nd_nic->if_ndumpfuncs->poll_locked(nd_nic, + POLL_AND_CHECK_STATUS, 1000); + else + nd_nic->if_ndumpfuncs->poll_unlocked(nd_nic, + POLL_AND_CHECK_STATUS, 1000); } /*- @@ -1172,20 +1177,13 @@ netdump_trigger(void *arg, int howto) dumptid = curthread->td_tid; dumping++; - if (panicstr == NULL) - nd_nic->if_ndumpfuncs->acquire_lock(nd_nic); + if (panicstr == NULL && (nd_nic->if_capenable & IFCAP_POLLING) == 0) + nd_nic->if_ndumpfuncs->disable_intr(nd_nic); /* Make the card use *our* receive callback */ old_if_input = nd_nic->if_input; nd_nic->if_input = netdump_pkt_in; - /* Check if we can use polling */ - if (!(nd_nic->if_capenable & IFCAP_POLLING)) { - printf("netdump_trigger: Can't dump: interface %s does not have" - " polling enabled.\n", nd_nic->if_xname); - goto trig_abort; - } - if (nd_gw.s_addr == INADDR_ANY) { nd_gw.s_addr = nd_server.s_addr; } @@ -1230,8 +1228,8 @@ netdump_trigger(void *arg, int howto) trig_abort: if (old_if_input) nd_nic->if_input = old_if_input; - if (panicstr == NULL) - nd_nic->if_ndumpfuncs->release_lock(nd_nic); + if (panicstr == NULL && (nd_nic->if_capenable & IFCAP_POLLING) == 0) + nd_nic->if_ndumpfuncs->enable_intr(nd_nic); dumping--; } From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 16:26:37 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EDA9A1065695; Mon, 27 Sep 2010 16:26:37 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D74FA8FC20; Mon, 27 Sep 2010 16:26:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RGQbYr041885; Mon, 27 Sep 2010 16:26:37 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RGQbZD041869; Mon, 27 Sep 2010 16:26:37 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009271626.o8RGQbZD041869@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 16:26:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213204 - in projects/sv: bin/ps cddl/contrib/opensolaris/cmd/zinject cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/lib/libzfs/common cddl/usr.sbin/plockstat contrib/bzip2... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 16:26:38 -0000 Author: attilio Date: Mon Sep 27 16:26:35 2010 New Revision: 213204 URL: http://svn.freebsd.org/changeset/base/213204 Log: MFC @ 213203 Added: projects/sv/contrib/llvm/include/llvm/ADT/NullablePtr.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/ADT/NullablePtr.h projects/sv/contrib/llvm/include/llvm/Analysis/RegionInfo.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/Analysis/RegionInfo.h projects/sv/contrib/llvm/include/llvm/Analysis/RegionIterator.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/Analysis/RegionIterator.h projects/sv/contrib/llvm/include/llvm/Analysis/RegionPrinter.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/Analysis/RegionPrinter.h projects/sv/contrib/llvm/include/llvm/Assembly/AssemblyAnnotationWriter.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/Assembly/AssemblyAnnotationWriter.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/AutoGenerated.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/CompilerDriver/AutoGenerated.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/Main.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/CompilerDriver/Main.h projects/sv/contrib/llvm/include/llvm/Config/llvm-config.h.cmake - copied unchanged from r213200, head/contrib/llvm/include/llvm/Config/llvm-config.h.cmake projects/sv/contrib/llvm/include/llvm/Config/llvm-config.h.in - copied unchanged from r213200, head/contrib/llvm/include/llvm/Config/llvm-config.h.in projects/sv/contrib/llvm/include/llvm/MC/ELFObjectWriter.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/MC/ELFObjectWriter.h projects/sv/contrib/llvm/include/llvm/MC/MCDwarf.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/MC/MCDwarf.h projects/sv/contrib/llvm/include/llvm/MC/MCELFSymbolFlags.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/MC/MCELFSymbolFlags.h projects/sv/contrib/llvm/include/llvm/PassRegistry.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/PassRegistry.h projects/sv/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h projects/sv/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h - copied unchanged from r213200, head/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h projects/sv/contrib/llvm/lib/Analysis/RegionInfo.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Analysis/RegionInfo.cpp projects/sv/contrib/llvm/lib/Analysis/RegionPrinter.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Analysis/RegionPrinter.cpp projects/sv/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp projects/sv/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp projects/sv/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp projects/sv/contrib/llvm/lib/CodeGen/RenderMachineFunction.cpp - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/RenderMachineFunction.cpp projects/sv/contrib/llvm/lib/CodeGen/RenderMachineFunction.h - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/RenderMachineFunction.h projects/sv/contrib/llvm/lib/CodeGen/SplitKit.cpp - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/SplitKit.cpp projects/sv/contrib/llvm/lib/CodeGen/SplitKit.h - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/SplitKit.h projects/sv/contrib/llvm/lib/CodeGen/Splitter.cpp - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/Splitter.cpp projects/sv/contrib/llvm/lib/CodeGen/Splitter.h - copied unchanged from r213200, head/contrib/llvm/lib/CodeGen/Splitter.h projects/sv/contrib/llvm/lib/MC/ELFObjectWriter.cpp - copied unchanged from r213200, head/contrib/llvm/lib/MC/ELFObjectWriter.cpp projects/sv/contrib/llvm/lib/MC/MCDisassembler/ - copied from r213200, head/contrib/llvm/lib/MC/MCDisassembler/ projects/sv/contrib/llvm/lib/MC/MCDwarf.cpp - copied unchanged from r213200, head/contrib/llvm/lib/MC/MCDwarf.cpp projects/sv/contrib/llvm/lib/MC/MCELFStreamer.cpp - copied unchanged from r213200, head/contrib/llvm/lib/MC/MCELFStreamer.cpp projects/sv/contrib/llvm/lib/Support/CrashRecoveryContext.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Support/CrashRecoveryContext.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMGlobalMerge.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/ARM/ARMGlobalMerge.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMMCInstLower.h - copied unchanged from r213200, head/contrib/llvm/lib/Target/ARM/ARMMCInstLower.h projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/AsmPrinter/X86InstComments.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86InstComments.h - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/AsmPrinter/X86InstComments.h projects/sv/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/X86/X86AsmPrinter.h - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/X86AsmPrinter.h projects/sv/contrib/llvm/lib/Target/X86/X86InstrFMA.td - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/X86InstrFMA.td projects/sv/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp projects/sv/contrib/llvm/lib/Target/X86/X86MCInstLower.h - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/X86MCInstLower.h projects/sv/contrib/llvm/lib/Target/X86/X86ShuffleDecode.h - copied unchanged from r213200, head/contrib/llvm/lib/Target/X86/X86ShuffleDecode.h projects/sv/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp - copied unchanged from r213200, head/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp projects/sv/contrib/llvm/lib/VMCore/PassRegistry.cpp - copied unchanged from r213200, head/contrib/llvm/lib/VMCore/PassRegistry.cpp projects/sv/contrib/llvm/runtime/libprofile/libprofile.exports - copied unchanged from r213200, head/contrib/llvm/runtime/libprofile/libprofile.exports projects/sv/contrib/llvm/tools/bugpoint-passes/ - copied from r213200, head/contrib/llvm/tools/bugpoint-passes/ projects/sv/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Analysis/CFGStmtMap.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/CheckerHelpers.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/CheckerHelpers.h projects/sv/contrib/llvm/tools/clang/include/clang/FrontendTool/ - copied from r213200, head/contrib/llvm/tools/clang/include/clang/FrontendTool/ projects/sv/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Designator.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Designator.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/ObjCMethodList.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Overload.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/PrettyDeclStackTrace.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/PrettyDeclStackTrace.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Scope.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Sema.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/Template.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/Template.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h projects/sv/contrib/llvm/tools/clang/include/clang/Serialization/ - copied from r213200, head/contrib/llvm/tools/clang/include/clang/Serialization/ projects/sv/contrib/llvm/tools/clang/lib/AST/CXXABI.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/AST/CXXABI.h projects/sv/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/FormatStringParsing.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Analysis/FormatStringParsing.h projects/sv/contrib/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/AnalysisManager.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Checker/AnalysisManager.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CheckerHelpers.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Checker/CheckerHelpers.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/UnreachableCodeChecker.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Checker/UnreachableCodeChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/FrontendTool/ - copied from r213200, head/contrib/llvm/tools/clang/lib/FrontendTool/ projects/sv/contrib/llvm/tools/clang/lib/Headers/avxintrin.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Headers/avxintrin.h projects/sv/contrib/llvm/tools/clang/lib/Headers/immintrin.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Headers/immintrin.h projects/sv/contrib/llvm/tools/clang/lib/Headers/x86intrin.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Headers/x86intrin.h projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp projects/sv/contrib/llvm/tools/clang/lib/Serialization/ - copied from r213200, head/contrib/llvm/tools/clang/lib/Serialization/ projects/sv/contrib/llvm/tools/clang/tools/driver/Info.plist.in - copied unchanged from r213200, head/contrib/llvm/tools/clang/tools/driver/Info.plist.in projects/sv/contrib/llvm/tools/clang/tools/libclang/CIndexCXX.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/tools/libclang/CIndexCXX.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CXType.cpp - copied unchanged from r213200, head/contrib/llvm/tools/clang/tools/libclang/CXType.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CXType.h - copied unchanged from r213200, head/contrib/llvm/tools/clang/tools/libclang/CXType.h projects/sv/contrib/llvm/tools/llvm-diff/ - copied from r213200, head/contrib/llvm/tools/llvm-diff/ projects/sv/contrib/llvm/tools/llvmc/examples/ - copied from r213200, head/contrib/llvm/tools/llvmc/examples/ projects/sv/contrib/llvm/tools/llvmc/src/ - copied from r213200, head/contrib/llvm/tools/llvmc/src/ projects/sv/contrib/llvm/utils/lit/lit/ExampleTests/required-and-missing.c - copied unchanged from r213200, head/contrib/llvm/utils/lit/lit/ExampleTests/required-and-missing.c projects/sv/contrib/llvm/utils/lit/lit/ExampleTests/required-and-present.c - copied unchanged from r213200, head/contrib/llvm/utils/lit/lit/ExampleTests/required-and-present.c projects/sv/contrib/llvm/utils/llvm-lit/ - copied from r213200, head/contrib/llvm/utils/llvm-lit/ projects/sv/etc/rc.d/gptboot - copied unchanged from r213200, head/etc/rc.d/gptboot projects/sv/lib/clang/include/ARMGenAsmMatcher.inc - copied unchanged from r213200, head/lib/clang/include/ARMGenAsmMatcher.inc projects/sv/lib/clang/include/ARMGenFastISel.inc - copied unchanged from r213200, head/lib/clang/include/ARMGenFastISel.inc projects/sv/lib/clang/include/X86GenDisassemblerTables.inc - copied unchanged from r213200, head/lib/clang/include/X86GenDisassemblerTables.inc projects/sv/lib/clang/include/X86GenEDInfo.inc - copied unchanged from r213200, head/lib/clang/include/X86GenEDInfo.inc projects/sv/lib/clang/include/clang/AST/AttrImpl.inc - copied unchanged from r213200, head/lib/clang/include/clang/AST/AttrImpl.inc projects/sv/lib/clang/include/clang/Serialization/ - copied from r213200, head/lib/clang/include/clang/Serialization/ projects/sv/lib/clang/include/llvm/Config/llvm-config.h - copied unchanged from r213200, head/lib/clang/include/llvm/Config/llvm-config.h projects/sv/lib/clang/libclangfrontendtool/ - copied from r213200, head/lib/clang/libclangfrontendtool/ projects/sv/lib/clang/libclangindex/ - copied from r213200, head/lib/clang/libclangindex/ projects/sv/lib/clang/libclangserialization/ - copied from r213200, head/lib/clang/libclangserialization/ projects/sv/lib/clang/libllvmx86disassembler/ - copied from r213200, head/lib/clang/libllvmx86disassembler/ projects/sv/sys/boot/common/crc32.c - copied unchanged from r213200, head/sys/boot/common/crc32.c projects/sv/sys/boot/common/crc32.h - copied unchanged from r213200, head/sys/boot/common/crc32.h projects/sv/sys/boot/common/gpt.c - copied unchanged from r213200, head/sys/boot/common/gpt.c projects/sv/sys/boot/common/gpt.h - copied unchanged from r213200, head/sys/boot/common/gpt.h projects/sv/sys/boot/common/util.c - copied unchanged from r213200, head/sys/boot/common/util.c projects/sv/sys/boot/common/util.h - copied unchanged from r213200, head/sys/boot/common/util.h projects/sv/sys/boot/i386/common/ - copied from r213200, head/sys/boot/i386/common/ projects/sv/sys/libkern/inet_ntop.c - copied unchanged from r213200, head/sys/libkern/inet_ntop.c projects/sv/sys/libkern/inet_pton.c - copied unchanged from r213200, head/sys/libkern/inet_pton.c projects/sv/tools/regression/acltools/mktrivial.sh - copied unchanged from r213200, head/tools/regression/acltools/mktrivial.sh projects/sv/tools/regression/geom_eli/init-J.t - copied unchanged from r213200, head/tools/regression/geom_eli/init-J.t projects/sv/tools/regression/geom_eli/resize.t - copied unchanged from r213200, head/tools/regression/geom_eli/resize.t projects/sv/tools/regression/pthread/unwind/ - copied from r213200, head/tools/regression/pthread/unwind/ projects/sv/usr.bin/grep/nls/zh_CN.UTF-8.msg - copied unchanged from r213200, head/usr.bin/grep/nls/zh_CN.UTF-8.msg Deleted: projects/sv/contrib/llvm/autoconf/m4/bison.m4 projects/sv/contrib/llvm/autoconf/m4/cxx_bidi_iterator.m4 projects/sv/contrib/llvm/autoconf/m4/cxx_fwd_iterator.m4 projects/sv/contrib/llvm/autoconf/m4/cxx_namespaces.m4 projects/sv/contrib/llvm/autoconf/m4/cxx_std_iterator.m4 projects/sv/contrib/llvm/autoconf/m4/flex.m4 projects/sv/contrib/llvm/include/llvm/ADT/iterator.cmake projects/sv/contrib/llvm/include/llvm/ADT/iterator.h.in projects/sv/contrib/llvm/include/llvm/Assembly/AsmAnnotationWriter.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/ForceLinkage.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/ForceLinkageMacros.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/Plugin.h projects/sv/contrib/llvm/include/llvm/MC/MCParser/AsmParser.h projects/sv/contrib/llvm/include/llvm/Support/DataTypes.h.cmake projects/sv/contrib/llvm/include/llvm/Support/DataTypes.h.in projects/sv/contrib/llvm/include/llvm/Support/SlowOperationInformer.h projects/sv/contrib/llvm/include/llvm/Transforms/Utils/SSI.h projects/sv/contrib/llvm/lib/CodeGen/OptimizeExts.cpp projects/sv/contrib/llvm/lib/CompilerDriver/Plugin.cpp projects/sv/contrib/llvm/lib/Support/SlowOperationInformer.cpp projects/sv/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMMCInstLower.cpp projects/sv/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMMCInstLower.h projects/sv/contrib/llvm/lib/Target/MSIL/ projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86AsmPrinter.h projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.h projects/sv/contrib/llvm/lib/Target/X86/X86FloatingPointRegKill.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/ABCD.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/SSI.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/ValueMapper.h projects/sv/contrib/llvm/mklib projects/sv/contrib/llvm/runtime/libprofile/BlockProfiling.c projects/sv/contrib/llvm/runtime/libprofile/FunctionProfiling.c projects/sv/contrib/llvm/runtime/libprofile/exported_symbols.lst projects/sv/contrib/llvm/tools/bugpoint/TestPasses.cpp projects/sv/contrib/llvm/tools/clang/VER projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclNodes.def projects/sv/contrib/llvm/tools/clang/include/clang/AST/StmtNodes.def projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PrintfFormatString.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/PCHBitCodes.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/PCHDeserializationListener.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/PCHReader.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/PCHWriter.h projects/sv/contrib/llvm/tools/clang/include/clang/Index/Utils.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/Action.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/AttributeList.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/DeclSpec.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/Designator.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/Ownership.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/Scope.h projects/sv/contrib/llvm/tools/clang/include/clang/Parse/Template.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/ParseAST.h projects/sv/contrib/llvm/tools/clang/lib/Checker/CallInliner.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/GeneratePCH.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PCHReader.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PCHReaderDecl.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PCHReaderStmt.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PCHWriter.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PCHWriterDecl.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PCHWriterStmt.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/PrintParserCallbacks.cpp projects/sv/contrib/llvm/tools/clang/lib/Headers/arm_neon.h projects/sv/contrib/llvm/tools/clang/lib/Headers/arm_neon.td projects/sv/contrib/llvm/tools/clang/lib/Index/ResolveLocation.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/AttributeList.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/DeclSpec.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/MinimalAction.cpp projects/sv/contrib/llvm/tools/clang/lib/Runtime/ projects/sv/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.h projects/sv/contrib/llvm/tools/clang/lib/Sema/CXXFieldCollector.h projects/sv/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.h projects/sv/contrib/llvm/tools/clang/lib/Sema/Lookup.h projects/sv/contrib/llvm/tools/clang/lib/Sema/ParseAST.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/Sema.h projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaInit.h projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaOverload.h projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.h projects/sv/contrib/llvm/tools/clang/tools/CIndex/ projects/sv/contrib/llvm/tools/clang/tools/index-test/ projects/sv/contrib/llvm/tools/clang/tools/libclang/CXTypes.cpp projects/sv/contrib/llvm/tools/clang/utils/pch-test.pl projects/sv/contrib/llvm/tools/edis/EDDisassembler.cpp projects/sv/contrib/llvm/tools/edis/EDDisassembler.h projects/sv/contrib/llvm/tools/edis/EDInfo.td projects/sv/contrib/llvm/tools/edis/EDInst.cpp projects/sv/contrib/llvm/tools/edis/EDInst.h projects/sv/contrib/llvm/tools/edis/EDOperand.cpp projects/sv/contrib/llvm/tools/edis/EDOperand.h projects/sv/contrib/llvm/tools/edis/EDToken.cpp projects/sv/contrib/llvm/tools/edis/EDToken.h projects/sv/contrib/llvm/tools/llvmc/driver/Main.cpp projects/sv/contrib/llvm/tools/llvmc/driver/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Hello/Hello.cpp projects/sv/contrib/llvm/tools/llvmc/example/Hello/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Simple/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Simple/PluginMain.cpp projects/sv/contrib/llvm/tools/llvmc/example/Simple/Simple.td projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/README projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/driver/Main.cpp projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/driver/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/plugins/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/plugins/Plugin/Makefile projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/plugins/Plugin/Plugin.td projects/sv/contrib/llvm/tools/llvmc/example/Skeleton/plugins/Plugin/PluginMain.cpp projects/sv/contrib/llvm/tools/llvmc/example/mcc16/Makefile projects/sv/contrib/llvm/tools/llvmc/example/mcc16/README projects/sv/contrib/llvm/tools/llvmc/example/mcc16/driver/Main.cpp projects/sv/contrib/llvm/tools/llvmc/example/mcc16/driver/Makefile projects/sv/contrib/llvm/tools/llvmc/example/mcc16/plugins/Makefile projects/sv/contrib/llvm/tools/llvmc/example/mcc16/plugins/PIC16Base/Makefile projects/sv/contrib/llvm/tools/llvmc/example/mcc16/plugins/PIC16Base/PIC16Base.td projects/sv/contrib/llvm/tools/llvmc/example/mcc16/plugins/PIC16Base/PluginMain.cpp projects/sv/contrib/llvm/tools/llvmc/plugins/Base/Base.td.in projects/sv/contrib/llvm/tools/llvmc/plugins/Base/Hooks.cpp projects/sv/contrib/llvm/tools/llvmc/plugins/Base/Makefile projects/sv/contrib/llvm/tools/llvmc/plugins/Base/PluginMain.cpp projects/sv/contrib/llvm/tools/llvmc/plugins/Clang/Clang.td projects/sv/contrib/llvm/tools/llvmc/plugins/Clang/Makefile projects/sv/contrib/llvm/tools/llvmc/plugins/Clang/PluginMain.cpp projects/sv/contrib/llvm/tools/llvmc/plugins/Makefile projects/sv/contrib/llvm/utils/RegressionFinder.pl projects/sv/contrib/llvm/utils/mkpatch projects/sv/contrib/llvm/utils/userloc.pl projects/sv/contrib/llvm/utils/valgrind/x86_64-pc-linux-gnu_gcc-4.3.3.supp projects/sv/sys/rpc/inet_ntop.c projects/sv/sys/rpc/inet_pton.c Modified: projects/sv/bin/ps/extern.h projects/sv/cddl/contrib/opensolaris/cmd/zinject/zinject.c projects/sv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c projects/sv/cddl/usr.sbin/plockstat/plockstat.1 projects/sv/contrib/bzip2/decompress.c projects/sv/contrib/gcc/config/rs6000/freebsd.h projects/sv/contrib/llvm/CMakeLists.txt projects/sv/contrib/llvm/CREDITS.TXT projects/sv/contrib/llvm/Makefile projects/sv/contrib/llvm/Makefile.config.in projects/sv/contrib/llvm/Makefile.rules projects/sv/contrib/llvm/README.txt projects/sv/contrib/llvm/autoconf/configure.ac projects/sv/contrib/llvm/autoconf/m4/link_options.m4 projects/sv/contrib/llvm/bindings/ada/llvm/llvm.ads projects/sv/contrib/llvm/bindings/ocaml/llvm/llvm.ml projects/sv/contrib/llvm/bindings/ocaml/llvm/llvm.mli projects/sv/contrib/llvm/bindings/ocaml/llvm/llvm_ocaml.c projects/sv/contrib/llvm/configure projects/sv/contrib/llvm/include/llvm-c/Core.h projects/sv/contrib/llvm/include/llvm-c/EnhancedDisassembly.h projects/sv/contrib/llvm/include/llvm-c/ExecutionEngine.h projects/sv/contrib/llvm/include/llvm-c/Target.h projects/sv/contrib/llvm/include/llvm-c/lto.h projects/sv/contrib/llvm/include/llvm/ADT/APInt.h projects/sv/contrib/llvm/include/llvm/ADT/DenseMap.h projects/sv/contrib/llvm/include/llvm/ADT/DenseSet.h projects/sv/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h projects/sv/contrib/llvm/include/llvm/ADT/FoldingSet.h projects/sv/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h projects/sv/contrib/llvm/include/llvm/ADT/STLExtras.h projects/sv/contrib/llvm/include/llvm/ADT/ScopedHashTable.h projects/sv/contrib/llvm/include/llvm/ADT/SmallVector.h projects/sv/contrib/llvm/include/llvm/ADT/StringMap.h projects/sv/contrib/llvm/include/llvm/ADT/StringRef.h projects/sv/contrib/llvm/include/llvm/ADT/StringSet.h projects/sv/contrib/llvm/include/llvm/ADT/StringSwitch.h projects/sv/contrib/llvm/include/llvm/ADT/Triple.h projects/sv/contrib/llvm/include/llvm/ADT/ValueMap.h projects/sv/contrib/llvm/include/llvm/ADT/ilist.h projects/sv/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h projects/sv/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h projects/sv/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h projects/sv/contrib/llvm/include/llvm/Analysis/DebugInfo.h projects/sv/contrib/llvm/include/llvm/Analysis/Dominators.h projects/sv/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h projects/sv/contrib/llvm/include/llvm/Analysis/IntervalPartition.h projects/sv/contrib/llvm/include/llvm/Analysis/LazyValueInfo.h projects/sv/contrib/llvm/include/llvm/Analysis/LibCallAliasAnalysis.h projects/sv/contrib/llvm/include/llvm/Analysis/LibCallSemantics.h projects/sv/contrib/llvm/include/llvm/Analysis/LoopDependenceAnalysis.h projects/sv/contrib/llvm/include/llvm/Analysis/LoopInfo.h projects/sv/contrib/llvm/include/llvm/Analysis/LoopPass.h projects/sv/contrib/llvm/include/llvm/Analysis/Passes.h projects/sv/contrib/llvm/include/llvm/Analysis/PointerTracking.h projects/sv/contrib/llvm/include/llvm/Analysis/PostDominators.h projects/sv/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h projects/sv/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h projects/sv/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h projects/sv/contrib/llvm/include/llvm/Analysis/ValueTracking.h projects/sv/contrib/llvm/include/llvm/AutoUpgrade.h projects/sv/contrib/llvm/include/llvm/Bitcode/Archive.h projects/sv/contrib/llvm/include/llvm/Bitcode/BitstreamWriter.h projects/sv/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h projects/sv/contrib/llvm/include/llvm/CallGraphSCCPass.h projects/sv/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h projects/sv/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h projects/sv/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h projects/sv/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h projects/sv/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h projects/sv/contrib/llvm/include/llvm/CodeGen/LiveInterval.h projects/sv/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h projects/sv/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h projects/sv/contrib/llvm/include/llvm/CodeGen/LiveVariables.h projects/sv/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h projects/sv/contrib/llvm/include/llvm/CodeGen/MachineFunction.h projects/sv/contrib/llvm/include/llvm/CodeGen/MachineFunctionPass.h projects/sv/contrib/llvm/include/llvm/CodeGen/MachineInstr.h projects/sv/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h projects/sv/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h projects/sv/contrib/llvm/include/llvm/CodeGen/Passes.h projects/sv/contrib/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h projects/sv/contrib/llvm/include/llvm/CodeGen/SchedulerRegistry.h projects/sv/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h projects/sv/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h projects/sv/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h projects/sv/contrib/llvm/include/llvm/CodeGen/ValueTypes.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/Action.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/BuiltinOptions.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/Common.td projects/sv/contrib/llvm/include/llvm/CompilerDriver/CompilationGraph.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/Error.h projects/sv/contrib/llvm/include/llvm/CompilerDriver/Main.inc projects/sv/contrib/llvm/include/llvm/CompilerDriver/Tool.h projects/sv/contrib/llvm/include/llvm/Config/config.h.cmake projects/sv/contrib/llvm/include/llvm/Config/config.h.in projects/sv/contrib/llvm/include/llvm/Constants.h projects/sv/contrib/llvm/include/llvm/DerivedTypes.h projects/sv/contrib/llvm/include/llvm/ExecutionEngine/JITMemoryManager.h projects/sv/contrib/llvm/include/llvm/GlobalValue.h projects/sv/contrib/llvm/include/llvm/Instruction.h projects/sv/contrib/llvm/include/llvm/Instructions.h projects/sv/contrib/llvm/include/llvm/IntrinsicInst.h projects/sv/contrib/llvm/include/llvm/Intrinsics.td projects/sv/contrib/llvm/include/llvm/IntrinsicsARM.td projects/sv/contrib/llvm/include/llvm/IntrinsicsPowerPC.td projects/sv/contrib/llvm/include/llvm/IntrinsicsX86.td projects/sv/contrib/llvm/include/llvm/LLVMContext.h projects/sv/contrib/llvm/include/llvm/LinkAllPasses.h projects/sv/contrib/llvm/include/llvm/LinkAllVMCore.h projects/sv/contrib/llvm/include/llvm/Linker.h projects/sv/contrib/llvm/include/llvm/MC/MCAsmInfo.h projects/sv/contrib/llvm/include/llvm/MC/MCAssembler.h projects/sv/contrib/llvm/include/llvm/MC/MCContext.h projects/sv/contrib/llvm/include/llvm/MC/MCObjectStreamer.h projects/sv/contrib/llvm/include/llvm/MC/MCObjectWriter.h projects/sv/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h projects/sv/contrib/llvm/include/llvm/MC/MCParser/MCAsmParserExtension.h projects/sv/contrib/llvm/include/llvm/MC/MCParser/MCParsedAsmOperand.h projects/sv/contrib/llvm/include/llvm/MC/MCSectionELF.h projects/sv/contrib/llvm/include/llvm/MC/MCStreamer.h projects/sv/contrib/llvm/include/llvm/Metadata.h projects/sv/contrib/llvm/include/llvm/Module.h projects/sv/contrib/llvm/include/llvm/Pass.h projects/sv/contrib/llvm/include/llvm/PassAnalysisSupport.h projects/sv/contrib/llvm/include/llvm/PassManager.h projects/sv/contrib/llvm/include/llvm/PassManagers.h projects/sv/contrib/llvm/include/llvm/PassSupport.h projects/sv/contrib/llvm/include/llvm/Support/COFF.h projects/sv/contrib/llvm/include/llvm/Support/CallSite.h projects/sv/contrib/llvm/include/llvm/Support/Casting.h projects/sv/contrib/llvm/include/llvm/Support/CommandLine.h projects/sv/contrib/llvm/include/llvm/Support/Compiler.h projects/sv/contrib/llvm/include/llvm/Support/ConstantRange.h projects/sv/contrib/llvm/include/llvm/Support/DataFlow.h projects/sv/contrib/llvm/include/llvm/Support/ELF.h projects/sv/contrib/llvm/include/llvm/Support/ErrorHandling.h projects/sv/contrib/llvm/include/llvm/Support/GraphWriter.h projects/sv/contrib/llvm/include/llvm/Support/IRBuilder.h projects/sv/contrib/llvm/include/llvm/Support/IRReader.h projects/sv/contrib/llvm/include/llvm/Support/MachO.h projects/sv/contrib/llvm/include/llvm/Support/MathExtras.h projects/sv/contrib/llvm/include/llvm/Support/PassNameParser.h projects/sv/contrib/llvm/include/llvm/Support/PatternMatch.h projects/sv/contrib/llvm/include/llvm/Support/PrettyStackTrace.h projects/sv/contrib/llvm/include/llvm/Support/Regex.h projects/sv/contrib/llvm/include/llvm/Support/Registry.h projects/sv/contrib/llvm/include/llvm/Support/SourceMgr.h projects/sv/contrib/llvm/include/llvm/Support/StandardPasses.h projects/sv/contrib/llvm/include/llvm/Support/SystemUtils.h projects/sv/contrib/llvm/include/llvm/Support/TypeBuilder.h projects/sv/contrib/llvm/include/llvm/Support/raw_ostream.h projects/sv/contrib/llvm/include/llvm/System/Memory.h projects/sv/contrib/llvm/include/llvm/System/Path.h projects/sv/contrib/llvm/include/llvm/System/Process.h projects/sv/contrib/llvm/include/llvm/System/Program.h projects/sv/contrib/llvm/include/llvm/System/Signals.h projects/sv/contrib/llvm/include/llvm/System/ThreadLocal.h projects/sv/contrib/llvm/include/llvm/Target/Target.td projects/sv/contrib/llvm/include/llvm/Target/TargetAsmParser.h projects/sv/contrib/llvm/include/llvm/Target/TargetCallingConv.td projects/sv/contrib/llvm/include/llvm/Target/TargetData.h projects/sv/contrib/llvm/include/llvm/Target/TargetInstrDesc.h projects/sv/contrib/llvm/include/llvm/Target/TargetInstrInfo.h projects/sv/contrib/llvm/include/llvm/Target/TargetLowering.h projects/sv/contrib/llvm/include/llvm/Target/TargetMachine.h projects/sv/contrib/llvm/include/llvm/Target/TargetOpcodes.h projects/sv/contrib/llvm/include/llvm/Target/TargetOptions.h projects/sv/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h projects/sv/contrib/llvm/include/llvm/Target/TargetRegistry.h projects/sv/contrib/llvm/include/llvm/Target/TargetSelect.h projects/sv/contrib/llvm/include/llvm/Transforms/IPO.h projects/sv/contrib/llvm/include/llvm/Transforms/IPO/InlinerPass.h projects/sv/contrib/llvm/include/llvm/Transforms/Scalar.h projects/sv/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h projects/sv/contrib/llvm/include/llvm/Transforms/Utils/Local.h projects/sv/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h projects/sv/contrib/llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h projects/sv/contrib/llvm/include/llvm/Type.h projects/sv/contrib/llvm/include/llvm/Use.h projects/sv/contrib/llvm/include/llvm/Value.h projects/sv/contrib/llvm/include/llvm/ValueSymbolTable.h projects/sv/contrib/llvm/lib/Analysis/AliasAnalysis.cpp projects/sv/contrib/llvm/lib/Analysis/AliasAnalysisCounter.cpp projects/sv/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp projects/sv/contrib/llvm/lib/Analysis/AliasDebugger.cpp projects/sv/contrib/llvm/lib/Analysis/AliasSetTracker.cpp projects/sv/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp projects/sv/contrib/llvm/lib/Analysis/CFGPrinter.cpp projects/sv/contrib/llvm/lib/Analysis/CMakeLists.txt projects/sv/contrib/llvm/lib/Analysis/CaptureTracking.cpp projects/sv/contrib/llvm/lib/Analysis/ConstantFolding.cpp projects/sv/contrib/llvm/lib/Analysis/DbgInfoPrinter.cpp projects/sv/contrib/llvm/lib/Analysis/DebugInfo.cpp projects/sv/contrib/llvm/lib/Analysis/DomPrinter.cpp projects/sv/contrib/llvm/lib/Analysis/IPA/CallGraph.cpp projects/sv/contrib/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp projects/sv/contrib/llvm/lib/Analysis/IPA/FindUsedTypes.cpp projects/sv/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp projects/sv/contrib/llvm/lib/Analysis/IVUsers.cpp projects/sv/contrib/llvm/lib/Analysis/InlineCost.cpp projects/sv/contrib/llvm/lib/Analysis/InstCount.cpp projects/sv/contrib/llvm/lib/Analysis/IntervalPartition.cpp projects/sv/contrib/llvm/lib/Analysis/LazyValueInfo.cpp projects/sv/contrib/llvm/lib/Analysis/LibCallAliasAnalysis.cpp projects/sv/contrib/llvm/lib/Analysis/LibCallSemantics.cpp projects/sv/contrib/llvm/lib/Analysis/Lint.cpp projects/sv/contrib/llvm/lib/Analysis/LiveValues.cpp projects/sv/contrib/llvm/lib/Analysis/LoopDependenceAnalysis.cpp projects/sv/contrib/llvm/lib/Analysis/LoopInfo.cpp projects/sv/contrib/llvm/lib/Analysis/LoopPass.cpp projects/sv/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp projects/sv/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp projects/sv/contrib/llvm/lib/Analysis/PointerTracking.cpp projects/sv/contrib/llvm/lib/Analysis/PostDominators.cpp projects/sv/contrib/llvm/lib/Analysis/ProfileEstimatorPass.cpp projects/sv/contrib/llvm/lib/Analysis/ProfileInfo.cpp projects/sv/contrib/llvm/lib/Analysis/ProfileInfoLoaderPass.cpp projects/sv/contrib/llvm/lib/Analysis/ProfileVerifierPass.cpp projects/sv/contrib/llvm/lib/Analysis/ScalarEvolution.cpp projects/sv/contrib/llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp projects/sv/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp projects/sv/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp projects/sv/contrib/llvm/lib/Analysis/ValueTracking.cpp projects/sv/contrib/llvm/lib/AsmParser/LLLexer.cpp projects/sv/contrib/llvm/lib/AsmParser/LLParser.cpp projects/sv/contrib/llvm/lib/AsmParser/LLParser.h projects/sv/contrib/llvm/lib/AsmParser/LLToken.h projects/sv/contrib/llvm/lib/AsmParser/Parser.cpp projects/sv/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp projects/sv/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.h projects/sv/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp projects/sv/contrib/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp projects/sv/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp projects/sv/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h projects/sv/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp projects/sv/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h projects/sv/contrib/llvm/lib/CodeGen/Analysis.cpp projects/sv/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp projects/sv/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp projects/sv/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp projects/sv/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp projects/sv/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h projects/sv/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp projects/sv/contrib/llvm/lib/CodeGen/BranchFolding.cpp projects/sv/contrib/llvm/lib/CodeGen/CMakeLists.txt projects/sv/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp projects/sv/contrib/llvm/lib/CodeGen/CodePlacementOpt.cpp projects/sv/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp projects/sv/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h projects/sv/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp projects/sv/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp projects/sv/contrib/llvm/lib/CodeGen/ELF.h projects/sv/contrib/llvm/lib/CodeGen/ELFCodeEmitter.cpp projects/sv/contrib/llvm/lib/CodeGen/ELFWriter.cpp projects/sv/contrib/llvm/lib/CodeGen/ELFWriter.h projects/sv/contrib/llvm/lib/CodeGen/GCMetadata.cpp projects/sv/contrib/llvm/lib/CodeGen/GCStrategy.cpp projects/sv/contrib/llvm/lib/CodeGen/IfConversion.cpp projects/sv/contrib/llvm/lib/CodeGen/InlineSpiller.cpp projects/sv/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp projects/sv/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp projects/sv/contrib/llvm/lib/CodeGen/LiveInterval.cpp projects/sv/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp projects/sv/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp projects/sv/contrib/llvm/lib/CodeGen/LiveVariables.cpp projects/sv/contrib/llvm/lib/CodeGen/LowerSubregs.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineCSE.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineDominators.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineFunction.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineFunctionAnalysis.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineInstr.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineLICM.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineLoopInfo.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineSink.cpp projects/sv/contrib/llvm/lib/CodeGen/MachineVerifier.cpp projects/sv/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp projects/sv/contrib/llvm/lib/CodeGen/PBQP/HeuristicBase.h projects/sv/contrib/llvm/lib/CodeGen/PBQP/HeuristicSolver.h projects/sv/contrib/llvm/lib/CodeGen/PBQP/Heuristics/Briggs.h projects/sv/contrib/llvm/lib/CodeGen/PBQP/Solution.h projects/sv/contrib/llvm/lib/CodeGen/PHIElimination.cpp projects/sv/contrib/llvm/lib/CodeGen/PHIElimination.h projects/sv/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp projects/sv/contrib/llvm/lib/CodeGen/PreAllocSplitting.cpp projects/sv/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp projects/sv/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp projects/sv/contrib/llvm/lib/CodeGen/PrologEpilogInserter.h projects/sv/contrib/llvm/lib/CodeGen/RegAllocFast.cpp projects/sv/contrib/llvm/lib/CodeGen/RegAllocLinearScan.cpp projects/sv/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp projects/sv/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp projects/sv/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp projects/sv/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp projects/sv/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.h projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp projects/sv/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp projects/sv/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp projects/sv/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.h projects/sv/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp projects/sv/contrib/llvm/lib/CodeGen/SlotIndexes.cpp projects/sv/contrib/llvm/lib/CodeGen/Spiller.cpp projects/sv/contrib/llvm/lib/CodeGen/Spiller.h projects/sv/contrib/llvm/lib/CodeGen/StackProtector.cpp projects/sv/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp projects/sv/contrib/llvm/lib/CodeGen/StrongPHIElimination.cpp projects/sv/contrib/llvm/lib/CodeGen/TailDuplication.cpp projects/sv/contrib/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp projects/sv/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp projects/sv/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp projects/sv/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp projects/sv/contrib/llvm/lib/CodeGen/VirtRegMap.cpp projects/sv/contrib/llvm/lib/CodeGen/VirtRegMap.h projects/sv/contrib/llvm/lib/CodeGen/VirtRegRewriter.cpp projects/sv/contrib/llvm/lib/CompilerDriver/Action.cpp projects/sv/contrib/llvm/lib/CompilerDriver/BuiltinOptions.cpp projects/sv/contrib/llvm/lib/CompilerDriver/CompilationGraph.cpp projects/sv/contrib/llvm/lib/CompilerDriver/Main.cpp projects/sv/contrib/llvm/lib/CompilerDriver/Makefile projects/sv/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp projects/sv/contrib/llvm/lib/ExecutionEngine/JIT/Intercept.cpp projects/sv/contrib/llvm/lib/ExecutionEngine/JIT/JIT.cpp projects/sv/contrib/llvm/lib/ExecutionEngine/JIT/JITDebugRegisterer.cpp projects/sv/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp projects/sv/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.h projects/sv/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp projects/sv/contrib/llvm/lib/Linker/LinkModules.cpp projects/sv/contrib/llvm/lib/MC/CMakeLists.txt projects/sv/contrib/llvm/lib/MC/MCAsmInfo.cpp projects/sv/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp projects/sv/contrib/llvm/lib/MC/MCAsmStreamer.cpp projects/sv/contrib/llvm/lib/MC/MCAssembler.cpp projects/sv/contrib/llvm/lib/MC/MCContext.cpp projects/sv/contrib/llvm/lib/MC/MCMachOStreamer.cpp projects/sv/contrib/llvm/lib/MC/MCNullStreamer.cpp projects/sv/contrib/llvm/lib/MC/MCObjectStreamer.cpp projects/sv/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp projects/sv/contrib/llvm/lib/MC/MCParser/AsmParser.cpp projects/sv/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp projects/sv/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp projects/sv/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp projects/sv/contrib/llvm/lib/MC/MCParser/TargetAsmParser.cpp projects/sv/contrib/llvm/lib/MC/MCStreamer.cpp projects/sv/contrib/llvm/lib/MC/MachObjectWriter.cpp projects/sv/contrib/llvm/lib/MC/Makefile projects/sv/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp projects/sv/contrib/llvm/lib/MC/WinCOFFStreamer.cpp projects/sv/contrib/llvm/lib/Support/APFloat.cpp projects/sv/contrib/llvm/lib/Support/APInt.cpp projects/sv/contrib/llvm/lib/Support/CMakeLists.txt projects/sv/contrib/llvm/lib/Support/ConstantRange.cpp projects/sv/contrib/llvm/lib/Support/ErrorHandling.cpp projects/sv/contrib/llvm/lib/Support/FoldingSet.cpp projects/sv/contrib/llvm/lib/Support/PrettyStackTrace.cpp projects/sv/contrib/llvm/lib/Support/SmallVector.cpp projects/sv/contrib/llvm/lib/Support/Statistic.cpp projects/sv/contrib/llvm/lib/Support/StringRef.cpp projects/sv/contrib/llvm/lib/Support/SystemUtils.cpp projects/sv/contrib/llvm/lib/Support/Triple.cpp projects/sv/contrib/llvm/lib/Support/raw_ostream.cpp projects/sv/contrib/llvm/lib/System/DynamicLibrary.cpp projects/sv/contrib/llvm/lib/System/Path.cpp projects/sv/contrib/llvm/lib/System/RWMutex.cpp projects/sv/contrib/llvm/lib/System/ThreadLocal.cpp projects/sv/contrib/llvm/lib/System/Unix/Path.inc projects/sv/contrib/llvm/lib/System/Unix/Signals.inc projects/sv/contrib/llvm/lib/System/Unix/ThreadLocal.inc projects/sv/contrib/llvm/lib/System/Win32/Path.inc projects/sv/contrib/llvm/lib/System/Win32/Signals.inc projects/sv/contrib/llvm/lib/System/Win32/ThreadLocal.inc projects/sv/contrib/llvm/lib/Target/ARM/ARM.h projects/sv/contrib/llvm/lib/Target/ARM/ARM.td projects/sv/contrib/llvm/lib/Target/ARM/ARMAddressingModes.h projects/sv/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h projects/sv/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h projects/sv/contrib/llvm/lib/Target/ARM/ARMCallingConv.td projects/sv/contrib/llvm/lib/Target/ARM/ARMCodeEmitter.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMISelLowering.h projects/sv/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td projects/sv/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td projects/sv/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td projects/sv/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td projects/sv/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td projects/sv/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td projects/sv/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMMachineFunctionInfo.h projects/sv/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td projects/sv/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMSubtarget.h projects/sv/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp projects/sv/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h projects/sv/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp projects/sv/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp projects/sv/contrib/llvm/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h projects/sv/contrib/llvm/lib/Target/ARM/AsmPrinter/CMakeLists.txt projects/sv/contrib/llvm/lib/Target/ARM/CMakeLists.txt projects/sv/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp projects/sv/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp projects/sv/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.h projects/sv/contrib/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h projects/sv/contrib/llvm/lib/Target/ARM/Makefile projects/sv/contrib/llvm/lib/Target/ARM/NEONMoveFix.cpp projects/sv/contrib/llvm/lib/Target/ARM/NEONPreAllocPass.cpp projects/sv/contrib/llvm/lib/Target/ARM/README.txt projects/sv/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.h projects/sv/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp projects/sv/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp projects/sv/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaBranchSelector.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaInstrInfo.h projects/sv/contrib/llvm/lib/Target/Alpha/AlphaLLRP.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.h projects/sv/contrib/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/Blackfin/BlackfinInstrInfo.h projects/sv/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h projects/sv/contrib/llvm/lib/Target/CBackend/CBackend.cpp projects/sv/contrib/llvm/lib/Target/CellSPU/SPUCallingConv.td projects/sv/contrib/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.cpp projects/sv/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.h projects/sv/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.td projects/sv/contrib/llvm/lib/Target/CellSPU/SPUOperands.td projects/sv/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.h projects/sv/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.td projects/sv/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp projects/sv/contrib/llvm/lib/Target/MBlaze/AsmPrinter/MBlazeAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/MBlaze/MBlaze.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeCallingConv.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeDelaySlotFiller.cpp projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeInstrFPU.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeInstrFSL.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeInstrFormats.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.h projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeIntrinsics.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.h projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.td projects/sv/contrib/llvm/lib/Target/MBlaze/MBlazeSchedule.td projects/sv/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp projects/sv/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp projects/sv/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h projects/sv/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h projects/sv/contrib/llvm/lib/Target/Mangler.cpp projects/sv/contrib/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/Mips/Mips.td projects/sv/contrib/llvm/lib/Target/Mips/MipsCallingConv.td projects/sv/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp projects/sv/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp projects/sv/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td projects/sv/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td projects/sv/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h projects/sv/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td projects/sv/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h projects/sv/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td projects/sv/contrib/llvm/lib/Target/Mips/MipsSchedule.td projects/sv/contrib/llvm/lib/Target/PIC16/CMakeLists.txt projects/sv/contrib/llvm/lib/Target/PIC16/PIC16.h projects/sv/contrib/llvm/lib/Target/PIC16/PIC16ISelLowering.cpp projects/sv/contrib/llvm/lib/Target/PIC16/PIC16ISelLowering.h projects/sv/contrib/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp projects/sv/contrib/llvm/lib/Target/PIC16/PIC16InstrInfo.h projects/sv/contrib/llvm/lib/Target/PIC16/PIC16MemSelOpt.cpp projects/sv/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.cpp projects/sv/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h projects/sv/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Overlay.cpp projects/sv/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Overlay.h projects/sv/contrib/llvm/lib/Target/PIC16/PIC16RegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/PIC16/PIC16RegisterInfo.h projects/sv/contrib/llvm/lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCCallingConv.td projects/sv/contrib/llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h projects/sv/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td projects/sv/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h projects/sv/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp projects/sv/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h projects/sv/contrib/llvm/lib/Target/README.txt projects/sv/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp projects/sv/contrib/llvm/lib/Target/Sparc/FPMover.cpp projects/sv/contrib/llvm/lib/Target/Sparc/Sparc.td projects/sv/contrib/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h projects/sv/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td projects/sv/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h projects/sv/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h projects/sv/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h projects/sv/contrib/llvm/lib/Target/TargetData.cpp projects/sv/contrib/llvm/lib/Target/TargetMachine.cpp projects/sv/contrib/llvm/lib/Target/TargetRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/CMakeLists.txt projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86ATTInstPrinter.h projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86IntelInstPrinter.cpp projects/sv/contrib/llvm/lib/Target/X86/AsmPrinter/X86IntelInstPrinter.h projects/sv/contrib/llvm/lib/Target/X86/CMakeLists.txt projects/sv/contrib/llvm/lib/Target/X86/README-FPStack.txt projects/sv/contrib/llvm/lib/Target/X86/README-SSE.txt projects/sv/contrib/llvm/lib/Target/X86/README.txt projects/sv/contrib/llvm/lib/Target/X86/SSEDomainFix.cpp projects/sv/contrib/llvm/lib/Target/X86/X86.h projects/sv/contrib/llvm/lib/Target/X86/X86.td projects/sv/contrib/llvm/lib/Target/X86/X86AsmBackend.cpp projects/sv/contrib/llvm/lib/Target/X86/X86CallingConv.td projects/sv/contrib/llvm/lib/Target/X86/X86CodeEmitter.cpp projects/sv/contrib/llvm/lib/Target/X86/X86FastISel.cpp projects/sv/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp projects/sv/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp projects/sv/contrib/llvm/lib/Target/X86/X86ISelLowering.h projects/sv/contrib/llvm/lib/Target/X86/X86Instr64bit.td projects/sv/contrib/llvm/lib/Target/X86/X86InstrFPStack.td projects/sv/contrib/llvm/lib/Target/X86/X86InstrFormats.td projects/sv/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td projects/sv/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp projects/sv/contrib/llvm/lib/Target/X86/X86InstrInfo.h projects/sv/contrib/llvm/lib/Target/X86/X86InstrInfo.td projects/sv/contrib/llvm/lib/Target/X86/X86InstrMMX.td projects/sv/contrib/llvm/lib/Target/X86/X86InstrSSE.td projects/sv/contrib/llvm/lib/Target/X86/X86MCAsmInfo.cpp projects/sv/contrib/llvm/lib/Target/X86/X86MCCodeEmitter.cpp projects/sv/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/X86/X86RegisterInfo.h projects/sv/contrib/llvm/lib/Target/X86/X86RegisterInfo.td projects/sv/contrib/llvm/lib/Target/X86/X86Subtarget.cpp projects/sv/contrib/llvm/lib/Target/X86/X86Subtarget.h projects/sv/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp projects/sv/contrib/llvm/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp projects/sv/contrib/llvm/lib/Target/XCore/CMakeLists.txt projects/sv/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp projects/sv/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp projects/sv/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h projects/sv/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td projects/sv/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp projects/sv/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h projects/sv/contrib/llvm/lib/Transforms/Hello/Hello.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/DeadTypeElimination.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/InlineAlways.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/Inliner.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/Internalize.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/LowerSetJmp.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/PartialSpecialization.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp projects/sv/contrib/llvm/lib/Transforms/IPO/StructRetPromotion.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombine.h projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp projects/sv/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/sv/contrib/llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp projects/sv/contrib/llvm/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/BasicBlockPlacement.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/CMakeLists.txt projects/sv/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/ConstantProp.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/DCE.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/GEPSplitter.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/GVN.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LICM.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LoopIndexSplit.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/SimplifyHalfPowrLibCalls.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/Sink.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/TailDuplication.cpp projects/sv/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/BasicInliner.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/CMakeLists.txt projects/sv/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/InstructionNamer.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/Local.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp projects/sv/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp projects/sv/contrib/llvm/lib/VMCore/AsmWriter.cpp projects/sv/contrib/llvm/lib/VMCore/AutoUpgrade.cpp projects/sv/contrib/llvm/lib/VMCore/CMakeLists.txt projects/sv/contrib/llvm/lib/VMCore/ConstantFold.cpp projects/sv/contrib/llvm/lib/VMCore/Constants.cpp projects/sv/contrib/llvm/lib/VMCore/ConstantsContext.h projects/sv/contrib/llvm/lib/VMCore/Core.cpp projects/sv/contrib/llvm/lib/VMCore/Dominators.cpp projects/sv/contrib/llvm/lib/VMCore/Globals.cpp projects/sv/contrib/llvm/lib/VMCore/InlineAsm.cpp projects/sv/contrib/llvm/lib/VMCore/Instruction.cpp projects/sv/contrib/llvm/lib/VMCore/Instructions.cpp projects/sv/contrib/llvm/lib/VMCore/LLVMContext.cpp projects/sv/contrib/llvm/lib/VMCore/LLVMContextImpl.cpp projects/sv/contrib/llvm/lib/VMCore/LLVMContextImpl.h projects/sv/contrib/llvm/lib/VMCore/Metadata.cpp projects/sv/contrib/llvm/lib/VMCore/Module.cpp projects/sv/contrib/llvm/lib/VMCore/Pass.cpp projects/sv/contrib/llvm/lib/VMCore/PassManager.cpp projects/sv/contrib/llvm/lib/VMCore/PrintModulePass.cpp projects/sv/contrib/llvm/lib/VMCore/Type.cpp projects/sv/contrib/llvm/lib/VMCore/TypesContext.h projects/sv/contrib/llvm/lib/VMCore/Use.cpp projects/sv/contrib/llvm/lib/VMCore/Value.cpp projects/sv/contrib/llvm/lib/VMCore/ValueSymbolTable.cpp projects/sv/contrib/llvm/lib/VMCore/Verifier.cpp projects/sv/contrib/llvm/runtime/libprofile/Makefile projects/sv/contrib/llvm/tools/CMakeLists.txt projects/sv/contrib/llvm/tools/Makefile projects/sv/contrib/llvm/tools/bugpoint/BugDriver.cpp projects/sv/contrib/llvm/tools/bugpoint/BugDriver.h projects/sv/contrib/llvm/tools/bugpoint/CMakeLists.txt projects/sv/contrib/llvm/tools/bugpoint/CrashDebugger.cpp projects/sv/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp projects/sv/contrib/llvm/tools/bugpoint/ExtractFunction.cpp projects/sv/contrib/llvm/tools/bugpoint/FindBugs.cpp projects/sv/contrib/llvm/tools/bugpoint/Miscompilation.cpp projects/sv/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp projects/sv/contrib/llvm/tools/bugpoint/ToolRunner.cpp projects/sv/contrib/llvm/tools/bugpoint/bugpoint.cpp projects/sv/contrib/llvm/tools/clang/include/clang-c/Index.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Attr.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Decl.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Expr.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/FullExpr.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Makefile projects/sv/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Stmt.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/Type.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h projects/sv/contrib/llvm/tools/clang/include/clang/AST/TypeOrdering.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowSolver.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h projects/sv/contrib/llvm/tools/clang/include/clang/Analysis/Visitors/CFGStmtVisitor.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Attr.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def projects/sv/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Linkage.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Makefile projects/sv/contrib/llvm/tools/clang/include/clang/Basic/OnDiskHashTable.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td projects/sv/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def projects/sv/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td projects/sv/contrib/llvm/tools/clang/include/clang/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/include/clang/Checker/BugReporter/BugReporter.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/AnalysisManager.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/Checker.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/ConstraintManager.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/Environment.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRCoreEngine.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRExprEngine.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRState.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRSubEngine.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRTransferFuncs.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/GRWorkList.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/MemRegion.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/SVals.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/Store.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/SymbolManager.h projects/sv/contrib/llvm/tools/clang/include/clang/Checker/PathSensitive/ValueManager.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td projects/sv/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/Driver.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/HostInfo.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/Job.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/OptParser.td projects/sv/contrib/llvm/tools/clang/include/clang/Driver/OptTable.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/Option.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/Options.td projects/sv/contrib/llvm/tools/clang/include/clang/Driver/Tool.h projects/sv/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/AnalyzerOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/DeclXML.def projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/DocumentXML.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/HeaderSearchOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOutputOptions.h projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/StmtXML.def projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/TypeXML.def projects/sv/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h projects/sv/contrib/llvm/tools/clang/include/clang/Index/TranslationUnit.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/ExternalPreprocessorSource.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h projects/sv/contrib/llvm/tools/clang/include/clang/Lex/Token.h projects/sv/contrib/llvm/tools/clang/include/clang/Makefile projects/sv/contrib/llvm/tools/clang/include/clang/Parse/Parser.h projects/sv/contrib/llvm/tools/clang/include/clang/Rewrite/FixItRewriter.h projects/sv/contrib/llvm/tools/clang/include/clang/Rewrite/FrontendActions.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h projects/sv/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h projects/sv/contrib/llvm/tools/clang/lib/AST/ASTConsumer.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/AttrImpl.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/AST/Decl.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/Expr.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/FullExpr.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/Makefile projects/sv/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/Stmt.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/StmtDumper.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/Type.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp projects/sv/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/AnalysisContext.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/Makefile projects/sv/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp projects/sv/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/Makefile projects/sv/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/sv/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/sv/contrib/llvm/tools/clang/lib/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Checker/AdjustedReturnValueChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/AggExprVisitor.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/AnalysisConsumer.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/ArrayBoundChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/BasicObjCFoundationChecks.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/BasicStore.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/BasicValueFactory.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/BugReporter.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/BugReporterVisitors.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CFRefCount.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Checker/CStringChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CallAndMessageChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CastSizeChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CheckDeadStores.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CheckSecuritySyntaxOnly.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/CocoaConventions.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/DivZeroChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/Environment.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/FixedAddressChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/FlatStore.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/GRCXXExprEngine.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/GRCoreEngine.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/GRExprEngine.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/GRExprEngineExperimentalChecks.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/GRExprEngineExperimentalChecks.h projects/sv/contrib/llvm/tools/clang/lib/Checker/GRState.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/IdempotentOperationChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/LLVMConventionsChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/Makefile projects/sv/contrib/llvm/tools/clang/lib/Checker/MallocChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/MemRegion.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/OSAtomicChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/PointerArithChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/PointerSubChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/RangeConstraintManager.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/RegionStore.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/ReturnPointerRangeChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/ReturnUndefChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/SVals.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/SValuator.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/SimpleConstraintManager.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/SimpleConstraintManager.h projects/sv/contrib/llvm/tools/clang/lib/Checker/SimpleSValuator.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/StackAddrLeakChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/Store.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/StreamChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/SymbolManager.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/UndefBranchChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/UndefinedAssignmentChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/UnixAPIChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/VLASizeChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Checker/ValueManager.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/ABIInfo.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGException.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGTemporaries.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h projects/sv/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/Makefile projects/sv/contrib/llvm/tools/clang/lib/CodeGen/Mangle.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp projects/sv/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h projects/sv/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/Driver.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/InputInfo.h projects/sv/contrib/llvm/tools/clang/lib/Driver/Job.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/Makefile projects/sv/contrib/llvm/tools/clang/lib/Driver/OptTable.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/Option.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/ToolChains.h projects/sv/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/sv/contrib/llvm/tools/clang/lib/Driver/Tools.h projects/sv/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/DiagChecker.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/Makefile projects/sv/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/StmtXML.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp projects/sv/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticsClient.cpp projects/sv/contrib/llvm/tools/clang/lib/Headers/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Headers/Makefile projects/sv/contrib/llvm/tools/clang/lib/Headers/altivec.h projects/sv/contrib/llvm/tools/clang/lib/Headers/emmintrin.h projects/sv/contrib/llvm/tools/clang/lib/Headers/mmintrin.h projects/sv/contrib/llvm/tools/clang/lib/Headers/nmmintrin.h projects/sv/contrib/llvm/tools/clang/lib/Headers/smmintrin.h projects/sv/contrib/llvm/tools/clang/lib/Headers/stddef.h projects/sv/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h projects/sv/contrib/llvm/tools/clang/lib/Index/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Index/Entity.cpp projects/sv/contrib/llvm/tools/clang/lib/Index/Makefile projects/sv/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/Makefile projects/sv/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp projects/sv/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp projects/sv/contrib/llvm/tools/clang/lib/Makefile projects/sv/contrib/llvm/tools/clang/lib/Parse/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Parse/Makefile projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParsePragma.h projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp projects/sv/contrib/llvm/tools/clang/lib/Parse/Parser.cpp projects/sv/contrib/llvm/tools/clang/lib/Rewrite/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp projects/sv/contrib/llvm/tools/clang/lib/Rewrite/FixItRewriter.cpp projects/sv/contrib/llvm/tools/clang/lib/Rewrite/FrontendActions.cpp projects/sv/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp projects/sv/contrib/llvm/tools/clang/lib/Rewrite/Makefile projects/sv/contrib/llvm/tools/clang/lib/Rewrite/RewriteObjC.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/Makefile projects/sv/contrib/llvm/tools/clang/lib/Sema/Sema.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaCXXCast.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.cpp projects/sv/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.h projects/sv/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h projects/sv/contrib/llvm/tools/clang/tools/c-index-test/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/tools/c-index-test/Makefile projects/sv/contrib/llvm/tools/clang/tools/c-index-test/c-index-test.c projects/sv/contrib/llvm/tools/clang/tools/driver/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/tools/driver/Makefile projects/sv/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp projects/sv/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp projects/sv/contrib/llvm/tools/clang/tools/driver/driver.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CIndex.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CIndexCodeCompletion.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CIndexDiagnostic.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CIndexUSRs.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CMakeLists.txt projects/sv/contrib/llvm/tools/clang/tools/libclang/CXCursor.cpp projects/sv/contrib/llvm/tools/clang/tools/libclang/CXCursor.h projects/sv/contrib/llvm/tools/clang/tools/libclang/Makefile projects/sv/contrib/llvm/tools/clang/tools/libclang/libclang.darwin.exports projects/sv/contrib/llvm/tools/clang/tools/libclang/libclang.exports projects/sv/contrib/llvm/tools/edis/CMakeLists.txt projects/sv/contrib/llvm/tools/edis/EDMain.cpp projects/sv/contrib/llvm/tools/edis/Makefile projects/sv/contrib/llvm/tools/gold/README.txt projects/sv/contrib/llvm/tools/gold/gold-plugin.cpp projects/sv/contrib/llvm/tools/llc/llc.cpp projects/sv/contrib/llvm/tools/lli/lli.cpp projects/sv/contrib/llvm/tools/llvm-as/llvm-as.cpp projects/sv/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp projects/sv/contrib/llvm/tools/llvm-config/CMakeLists.txt projects/sv/contrib/llvm/tools/llvm-dis/llvm-dis.cpp projects/sv/contrib/llvm/tools/llvm-extract/llvm-extract.cpp projects/sv/contrib/llvm/tools/llvm-ld/llvm-ld.cpp projects/sv/contrib/llvm/tools/llvm-link/llvm-link.cpp projects/sv/contrib/llvm/tools/llvm-mc/CMakeLists.txt projects/sv/contrib/llvm/tools/llvm-mc/Disassembler.cpp projects/sv/contrib/llvm/tools/llvm-mc/Disassembler.h projects/sv/contrib/llvm/tools/llvm-mc/Makefile projects/sv/contrib/llvm/tools/llvm-mc/llvm-mc.cpp projects/sv/contrib/llvm/tools/llvm-nm/llvm-nm.cpp projects/sv/contrib/llvm/tools/llvm-prof/llvm-prof.cpp projects/sv/contrib/llvm/tools/llvm-shlib/Makefile projects/sv/contrib/llvm/tools/llvmc/CMakeLists.txt projects/sv/contrib/llvm/tools/llvmc/Makefile projects/sv/contrib/llvm/tools/llvmc/doc/LLVMC-Reference.rst projects/sv/contrib/llvm/tools/lto/LTOCodeGenerator.cpp projects/sv/contrib/llvm/tools/lto/LTOCodeGenerator.h projects/sv/contrib/llvm/tools/lto/LTOModule.cpp projects/sv/contrib/llvm/tools/lto/LTOModule.h projects/sv/contrib/llvm/tools/lto/Makefile projects/sv/contrib/llvm/tools/lto/lto.cpp projects/sv/contrib/llvm/tools/lto/lto.exports projects/sv/contrib/llvm/tools/opt/AnalysisWrappers.cpp projects/sv/contrib/llvm/tools/opt/GraphPrinters.cpp projects/sv/contrib/llvm/tools/opt/PrintSCC.cpp projects/sv/contrib/llvm/tools/opt/opt.cpp projects/sv/contrib/llvm/utils/FileCheck/FileCheck.cpp projects/sv/contrib/llvm/utils/FileUpdate/FileUpdate.cpp projects/sv/contrib/llvm/utils/Makefile projects/sv/contrib/llvm/utils/TableGen/ARMDecoderEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/ClangAttrEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/ClangAttrEmitter.h projects/sv/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp projects/sv/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp projects/sv/contrib/llvm/utils/TableGen/CodeGenInstruction.h projects/sv/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h projects/sv/contrib/llvm/utils/TableGen/CodeGenRegisters.h projects/sv/contrib/llvm/utils/TableGen/CodeGenTarget.cpp projects/sv/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/DAGISelEmitter.h projects/sv/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp projects/sv/contrib/llvm/utils/TableGen/EDEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/EDEmitter.h projects/sv/contrib/llvm/utils/TableGen/FastISelEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/NeonEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/Record.cpp projects/sv/contrib/llvm/utils/TableGen/Record.h projects/sv/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp projects/sv/contrib/llvm/utils/TableGen/TableGen.cpp projects/sv/contrib/llvm/utils/buildit/GNUmakefile projects/sv/contrib/llvm/utils/buildit/build_llvm projects/sv/contrib/llvm/utils/lit/lit/ExampleTests/lit.cfg projects/sv/contrib/llvm/utils/lit/lit/TestFormats.py projects/sv/contrib/llvm/utils/lit/lit/TestRunner.py projects/sv/contrib/llvm/utils/lit/lit/TestingConfig.py projects/sv/contrib/llvm/utils/lit/lit/lit.py projects/sv/contrib/llvm/utils/llvm.grm projects/sv/contrib/llvm/utils/llvmdo projects/sv/contrib/llvm/utils/valgrind/i386-pc-linux-gnu.supp projects/sv/contrib/llvm/utils/valgrind/x86_64-pc-linux-gnu.supp projects/sv/contrib/llvm/utils/vim/llvm.vim projects/sv/contrib/llvm/utils/vim/vimrc projects/sv/crypto/openssl/crypto/md32_common.h projects/sv/crypto/openssl/crypto/rc5/rc5_locl.h projects/sv/etc/rc.d/Makefile projects/sv/gnu/lib/libobjc/Makefile projects/sv/gnu/usr.bin/gdb/kgdb/main.c projects/sv/lib/clang/Makefile projects/sv/lib/clang/clang.build.mk projects/sv/lib/clang/include/clang/Basic/Version.inc projects/sv/lib/clang/include/llvm/Config/config.h projects/sv/lib/clang/libclanganalysis/Makefile projects/sv/lib/clang/libclangast/Makefile projects/sv/lib/clang/libclangbasic/Makefile projects/sv/lib/clang/libclangchecker/Makefile projects/sv/lib/clang/libclangcodegen/Makefile projects/sv/lib/clang/libclangfrontend/Makefile projects/sv/lib/clang/libclangparse/Makefile projects/sv/lib/clang/libclangsema/Makefile projects/sv/lib/clang/libllvmanalysis/Makefile projects/sv/lib/clang/libllvmarmasmparser/Makefile projects/sv/lib/clang/libllvmarmasmprinter/Makefile projects/sv/lib/clang/libllvmarmcodegen/Makefile projects/sv/lib/clang/libllvmbitreader/Makefile projects/sv/lib/clang/libllvmbitwriter/Makefile projects/sv/lib/clang/libllvmcodegen/Makefile projects/sv/lib/clang/libllvmcore/Makefile projects/sv/lib/clang/libllvmipo/Makefile projects/sv/lib/clang/libllvmmc/Makefile projects/sv/lib/clang/libllvmmipscodegen/Makefile projects/sv/lib/clang/libllvmpowerpccodegen/Makefile projects/sv/lib/clang/libllvmscalaropts/Makefile projects/sv/lib/clang/libllvmsupport/Makefile projects/sv/lib/clang/libllvmsystem/Makefile projects/sv/lib/clang/libllvmtarget/Makefile projects/sv/lib/clang/libllvmtransformutils/Makefile projects/sv/lib/clang/libllvmx86asmprinter/Makefile projects/sv/lib/clang/libllvmx86codegen/Makefile projects/sv/lib/libbluetooth/bluetooth.h projects/sv/lib/libc/Makefile projects/sv/lib/libc/gen/Makefile.inc projects/sv/lib/libc/gen/Symbol.map projects/sv/lib/libc/gen/_pthread_stubs.c projects/sv/lib/libc/gen/sem.c projects/sv/lib/libc/gen/sem_new.c projects/sv/lib/libc/i386/gen/ldexp.c projects/sv/lib/libc/include/libc_private.h projects/sv/lib/libc/posix1e/acl_strip.c projects/sv/lib/libc/sys/execve.2 projects/sv/lib/librt/Makefile projects/sv/lib/librt/mq.c projects/sv/lib/libthr/Makefile projects/sv/lib/libthr/pthread.map projects/sv/lib/libthr/thread/thr_cancel.c projects/sv/lib/libthr/thread/thr_clean.c projects/sv/lib/libthr/thread/thr_exit.c projects/sv/lib/libthr/thread/thr_fork.c projects/sv/lib/libthr/thread/thr_init.c projects/sv/lib/libthr/thread/thr_private.h projects/sv/lib/libthr/thread/thr_sig.c projects/sv/libexec/tftpd/Makefile projects/sv/libexec/tftpd/tftp-file.c projects/sv/libexec/tftpd/tftp-options.c projects/sv/libexec/tftpd/tftp-utils.c projects/sv/libexec/tftpd/tftp-utils.h projects/sv/libexec/tftpd/tftpd.c projects/sv/sbin/geom/class/eli/geli.8 projects/sv/sbin/geom/class/eli/geom_eli.c projects/sv/sbin/geom/class/part/geom_part.c projects/sv/sbin/geom/class/part/gpart.8 projects/sv/sbin/geom/misc/subr.c projects/sv/sbin/geom/misc/subr.h projects/sv/sbin/growfs/growfs.c projects/sv/sbin/hastd/control.c projects/sv/sbin/hastd/control.h projects/sv/sbin/hastd/hastd.c projects/sv/sbin/hastd/hastd.h projects/sv/sbin/hastd/hooks.c projects/sv/sbin/hastd/primary.c projects/sv/sbin/hastd/secondary.c projects/sv/sbin/mount_unionfs/mount_unionfs.8 projects/sv/sbin/newfs/mkfs.c projects/sv/share/dict/web2 projects/sv/share/man/man4/axe.4 projects/sv/share/man/man4/siftr.4 projects/sv/share/misc/committers-ports.dot projects/sv/sys/amd64/conf/GENERIC projects/sv/sys/boot/i386/boot2/Makefile projects/sv/sys/boot/i386/gptboot/Makefile projects/sv/sys/boot/i386/gptboot/gptboot.c projects/sv/sys/boot/i386/gptzfsboot/Makefile projects/sv/sys/boot/i386/zfsboot/Makefile projects/sv/sys/boot/i386/zfsboot/zfsboot.c projects/sv/sys/boot/pc98/boot2/Makefile projects/sv/sys/boot/zfs/Makefile projects/sv/sys/boot/zfs/zfsimpl.c projects/sv/sys/cam/cam_xpt.c projects/sv/sys/cam/scsi/scsi_pass.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zil.h projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_disk.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/sv/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c projects/sv/sys/conf/files projects/sv/sys/conf/newvers.sh projects/sv/sys/crypto/aesni/aesni.c projects/sv/sys/crypto/aesni/aesni.h projects/sv/sys/crypto/aesni/aesni_wrap.c projects/sv/sys/dev/acpica/acpi.c projects/sv/sys/dev/acpica/acpi_cpu.c projects/sv/sys/dev/ae/if_ae.c projects/sv/sys/dev/ata/chipsets/ata-ahci.c projects/sv/sys/dev/ata/chipsets/ata-siliconimage.c projects/sv/sys/dev/bge/if_bge.c projects/sv/sys/dev/e1000/if_em.c projects/sv/sys/dev/e1000/if_igb.c projects/sv/sys/dev/e1000/if_lem.c projects/sv/sys/dev/e1000/if_lem.h projects/sv/sys/dev/et/if_et.c projects/sv/sys/dev/hifn/hifn7751.c projects/sv/sys/dev/hifn/hifn7751var.h projects/sv/sys/dev/mii/acphy.c projects/sv/sys/dev/mii/bmtphy.c projects/sv/sys/dev/mii/exphy.c projects/sv/sys/dev/mii/gentbi.c projects/sv/sys/dev/mii/icsphy.c projects/sv/sys/dev/mii/lxtphy.c projects/sv/sys/dev/mii/mii.h projects/sv/sys/dev/mii/nsphy.c projects/sv/sys/dev/mii/nsphyter.c projects/sv/sys/dev/mii/qsphy.c projects/sv/sys/dev/mii/tlphy.c projects/sv/sys/dev/mii/tlphyreg.h projects/sv/sys/dev/mii/ukphy.c projects/sv/sys/dev/mpt/mpt.c projects/sv/sys/dev/mpt/mpt.h projects/sv/sys/dev/sf/if_sf.c projects/sv/sys/dev/stge/if_stge.c projects/sv/sys/dev/usb/net/if_axe.c projects/sv/sys/dev/usb/usbdevs projects/sv/sys/fs/devfs/devfs.h projects/sv/sys/fs/devfs/devfs_vnops.c projects/sv/sys/geom/eli/g_eli.c projects/sv/sys/geom/eli/g_eli.h projects/sv/sys/geom/eli/g_eli_crypto.c projects/sv/sys/geom/eli/g_eli_ctl.c projects/sv/sys/geom/eli/g_eli_integrity.c projects/sv/sys/geom/eli/g_eli_key.c projects/sv/sys/geom/eli/g_eli_privacy.c projects/sv/sys/geom/part/g_part.c projects/sv/sys/geom/part/g_part_gpt.c projects/sv/sys/geom/part/g_part_mbr.c projects/sv/sys/geom/part/g_part_pc98.c projects/sv/sys/i386/conf/GENERIC projects/sv/sys/ia64/include/_stdint.h projects/sv/sys/ia64/include/bus.h projects/sv/sys/kern/imgact_shell.c projects/sv/sys/kern/kern_clocksource.c projects/sv/sys/kern/kern_linker.c projects/sv/sys/kern/kern_tc.c projects/sv/sys/kern/sched_ule.c projects/sv/sys/kern/subr_acl_nfs4.c projects/sv/sys/kern/subr_kdb.c projects/sv/sys/kern/subr_stack.c projects/sv/sys/kern/tty.c projects/sv/sys/mips/cavium/ciu.c projects/sv/sys/mips/cavium/files.octeon1 projects/sv/sys/mips/cavium/octe/cavium-ethernet.h projects/sv/sys/mips/cavium/octe/ethernet-rgmii.c projects/sv/sys/mips/cavium/octe/ethernet-rx.c projects/sv/sys/mips/cavium/octe/ethernet-sgmii.c projects/sv/sys/mips/cavium/octe/ethernet-tx.c projects/sv/sys/mips/cavium/octe/ethernet-xaui.c projects/sv/sys/mips/cavium/octe/ethernet.c projects/sv/sys/mips/cavium/octe/octe.c projects/sv/sys/mips/cavium/octopci.c projects/sv/sys/mips/cavium/octopcireg.h projects/sv/sys/mips/include/pmap.h projects/sv/sys/mips/mips/pmap.c projects/sv/sys/mips/rmi/board.h projects/sv/sys/mips/rmi/dev/nlge/if_nlge.c projects/sv/sys/mips/rmi/pic.h projects/sv/sys/mips/rmi/rmi_mips_exts.h projects/sv/sys/mips/rmi/xlr_pci.c projects/sv/sys/mips/sibyte/sb_zbpci.c projects/sv/sys/modules/krpc/Makefile projects/sv/sys/net/if_tap.c projects/sv/sys/net/if_tun.c projects/sv/sys/netinet/in.h projects/sv/sys/netinet/ip_carp.c projects/sv/sys/netinet/ip_output.c projects/sv/sys/netinet/sctp_indata.c projects/sv/sys/netinet/siftr.c projects/sv/sys/netinet/tcp_reass.c projects/sv/sys/netinet/tcp_subr.c projects/sv/sys/netinet/tcp_var.h projects/sv/sys/netinet6/ip6_output.c projects/sv/sys/nlm/nlm_prot_impl.c projects/sv/sys/opencrypto/cryptodev.c projects/sv/sys/opencrypto/cryptodev.h projects/sv/sys/opencrypto/cryptosoft.c projects/sv/sys/opencrypto/xform.c projects/sv/sys/opencrypto/xform.h projects/sv/sys/pc98/conf/GENERIC projects/sv/sys/powerpc/conf/GENERIC projects/sv/sys/powerpc/conf/GENERIC64 projects/sv/sys/rpc/rpc_com.h projects/sv/sys/rpc/rpc_generic.c projects/sv/sys/sparc64/conf/GENERIC projects/sv/sys/sparc64/sparc64/elf_machdep.c projects/sv/sys/sun4v/conf/GENERIC projects/sv/sys/sys/acl.h projects/sv/sys/sys/disklabel.h projects/sv/sys/sys/gpt.h projects/sv/sys/sys/param.h projects/sv/sys/sys/proc.h projects/sv/sys/vm/vm_kern.c projects/sv/sys/vm/vm_map.c projects/sv/sys/vm/vm_map.h projects/sv/sys/vm/vm_mmap.c projects/sv/tools/regression/acltools/run projects/sv/tools/regression/geom_eli/init-a.t projects/sv/tools/regression/geom_eli/init.t projects/sv/tools/regression/geom_eli/integrity-copy.t projects/sv/tools/regression/geom_eli/integrity-data.t projects/sv/tools/regression/geom_eli/integrity-hmac.t projects/sv/tools/regression/geom_eli/onetime-a.t projects/sv/tools/regression/geom_eli/onetime.t projects/sv/tools/tools/nanobsd/nanobsd.sh projects/sv/tools/tools/umastat/umastat.c projects/sv/usr.bin/calendar/calendars/calendar.freebsd projects/sv/usr.bin/calendar/calendars/calendar.history projects/sv/usr.bin/clang/clang/Makefile projects/sv/usr.bin/grep/nls/Makefile.inc projects/sv/usr.bin/gzip/gzip.c projects/sv/usr.bin/tftp/Makefile projects/sv/usr.bin/tftp/main.c projects/sv/usr.sbin/named/Makefile projects/sv/usr.sbin/watchdogd/watchdogd.c Directory Properties: projects/sv/ (props changed) projects/sv/cddl/contrib/opensolaris/ (props changed) projects/sv/contrib/bind9/ (props changed) projects/sv/contrib/ee/ (props changed) projects/sv/contrib/expat/ (props changed) projects/sv/contrib/file/ (props changed) projects/sv/contrib/gdb/ (props changed) projects/sv/contrib/gdtoa/ (props changed) projects/sv/contrib/gnu-sort/ (props changed) projects/sv/contrib/groff/ (props changed) projects/sv/contrib/less/ (props changed) projects/sv/contrib/libpcap/ (props changed) projects/sv/contrib/llvm/ (props changed) projects/sv/contrib/llvm/tools/clang/ (props changed) projects/sv/contrib/ncurses/ (props changed) projects/sv/contrib/netcat/ (props changed) projects/sv/contrib/ntp/ (props changed) projects/sv/contrib/one-true-awk/ (props changed) projects/sv/contrib/openbsm/ (props changed) projects/sv/contrib/openpam/ (props changed) projects/sv/contrib/pf/ (props changed) projects/sv/contrib/sendmail/ (props changed) projects/sv/contrib/tcpdump/ (props changed) projects/sv/contrib/tcsh/ (props changed) projects/sv/contrib/top/ (props changed) projects/sv/contrib/top/install-sh (props changed) projects/sv/contrib/tzcode/stdtime/ (props changed) projects/sv/contrib/tzcode/zic/ (props changed) projects/sv/contrib/tzdata/ (props changed) projects/sv/contrib/wpa/ (props changed) projects/sv/crypto/openssh/ (props changed) projects/sv/crypto/openssl/ (props changed) projects/sv/lib/libc/ (props changed) projects/sv/lib/libc/stdtime/ (props changed) projects/sv/lib/libutil/ (props changed) projects/sv/lib/libz/ (props changed) projects/sv/sbin/ (props changed) projects/sv/sbin/ipfw/ (props changed) projects/sv/share/mk/bsd.arch.inc.mk (props changed) projects/sv/share/zoneinfo/ (props changed) projects/sv/sys/ (props changed) projects/sv/sys/amd64/include/xen/ (props changed) projects/sv/sys/cddl/contrib/opensolaris/ (props changed) projects/sv/sys/contrib/dev/acpica/ (props changed) projects/sv/sys/contrib/pf/ (props changed) projects/sv/sys/contrib/x86emu/ (props changed) projects/sv/sys/dev/xen/xenpci/ (props changed) projects/sv/usr.bin/calendar/ (props changed) projects/sv/usr.bin/csup/ (props changed) projects/sv/usr.bin/procstat/ (props changed) projects/sv/usr.sbin/zic/ (props changed) Modified: projects/sv/bin/ps/extern.h ============================================================================== --- projects/sv/bin/ps/extern.h Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/bin/ps/extern.h Mon Sep 27 16:26:35 2010 (r213204) @@ -80,8 +80,8 @@ int s_uname(KINFO *); void showkey(void); void started(KINFO *, VARENT *); void state(KINFO *, VARENT *); -void tdnam(KINFO *, VARENT *); void tdev(KINFO *, VARENT *); +void tdnam(KINFO *, VARENT *); void tname(KINFO *, VARENT *); void ucomm(KINFO *, VARENT *); void uname(KINFO *, VARENT *); Modified: projects/sv/cddl/contrib/opensolaris/cmd/zinject/zinject.c ============================================================================== --- projects/sv/cddl/contrib/opensolaris/cmd/zinject/zinject.c Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/cddl/contrib/opensolaris/cmd/zinject/zinject.c Mon Sep 27 16:26:35 2010 (r213204) @@ -19,12 +19,10 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - /* * ZFS Fault Injector * @@ -227,7 +225,7 @@ usage(void) "\t\tClear the particular record (if given a numeric ID), or\n" "\t\tall records if 'all' is specificed.\n" "\n" - "\tzinject -d device [-e errno] [-L ] pool\n" + "\tzinject -d device [-e errno] [-L ] [-F] pool\n" "\t\tInject a fault into a particular device or the device's\n" "\t\tlabel. Label injection can either be 'nvlist' or 'uber'.\n" "\t\t'errno' can either be 'nxio' (the default) or 'io'.\n" @@ -519,7 +517,7 @@ main(int argc, char **argv) return (0); } - while ((c = getopt(argc, argv, ":ab:d:f:qhc:t:l:mr:e:uL:")) != -1) { + while ((c = getopt(argc, argv, ":ab:d:f:Fqhc:t:l:mr:e:uL:")) != -1) { switch (c) { case 'a': flags |= ZINJECT_FLUSH_ARC; @@ -556,6 +554,9 @@ main(int argc, char **argv) return (1); } break; + case 'F': + record.zi_failfast = B_TRUE; + break; case 'h': usage(); return (0); Modified: projects/sv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- projects/sv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Mon Sep 27 16:26:35 2010 (r213204) @@ -980,14 +980,189 @@ max_width(zpool_handle_t *zhp, nvlist_t return (max); } +typedef struct spare_cbdata { + uint64_t cb_guid; + zpool_handle_t *cb_zhp; +} spare_cbdata_t; + +static boolean_t +find_vdev(nvlist_t *nv, uint64_t search) +{ + uint64_t guid; + nvlist_t **child; + uint_t c, children; + + if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID, &guid) == 0 && + search == guid) + return (B_TRUE); + + if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN, + &child, &children) == 0) { + for (c = 0; c < children; c++) + if (find_vdev(child[c], search)) + return (B_TRUE); + } + + return (B_FALSE); +} + +static int +find_spare(zpool_handle_t *zhp, void *data) +{ + spare_cbdata_t *cbp = data; + nvlist_t *config, *nvroot; + + config = zpool_get_config(zhp, NULL); + verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, + &nvroot) == 0); + + if (find_vdev(nvroot, cbp->cb_guid)) { + cbp->cb_zhp = zhp; + return (1); + } + + zpool_close(zhp); + return (0); +} + +/* + * Print out configuration state as requested by status_callback. + */ +void +print_status_config(zpool_handle_t *zhp, const char *name, nvlist_t *nv, + int namewidth, int depth, boolean_t isspare) +{ + nvlist_t **child; + uint_t c, children; + vdev_stat_t *vs; + char rbuf[6], wbuf[6], cbuf[6], repaired[7]; + char *vname; + uint64_t notpresent; + spare_cbdata_t cb; + char *state; + + verify(nvlist_lookup_uint64_array(nv, ZPOOL_CONFIG_STATS, + (uint64_t **)&vs, &c) == 0); + + if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN, + &child, &children) != 0) + children = 0; + + state = zpool_state_to_name(vs->vs_state, vs->vs_aux); + if (isspare) { + /* + * For hot spares, we use the terms 'INUSE' and 'AVAILABLE' for + * online drives. + */ + if (vs->vs_aux == VDEV_AUX_SPARED) + state = "INUSE"; + else if (vs->vs_state == VDEV_STATE_HEALTHY) + state = "AVAIL"; + } + + (void) printf("\t%*s%-*s %-8s", depth, "", namewidth - depth, + name, state); + + if (!isspare) { + zfs_nicenum(vs->vs_read_errors, rbuf, sizeof (rbuf)); + zfs_nicenum(vs->vs_write_errors, wbuf, sizeof (wbuf)); + zfs_nicenum(vs->vs_checksum_errors, cbuf, sizeof (cbuf)); + (void) printf(" %5s %5s %5s", rbuf, wbuf, cbuf); + } + + if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_NOT_PRESENT, + ¬present) == 0) { + char *path; + verify(nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) == 0); + (void) printf(" was %s", path); + } else if (vs->vs_aux != 0) { + (void) printf(" "); + + switch (vs->vs_aux) { + case VDEV_AUX_OPEN_FAILED: + (void) printf(gettext("cannot open")); + break; + + case VDEV_AUX_BAD_GUID_SUM: + (void) printf(gettext("missing device")); + break; + + case VDEV_AUX_NO_REPLICAS: + (void) printf(gettext("insufficient replicas")); + break; + + case VDEV_AUX_VERSION_NEWER: + (void) printf(gettext("newer version")); + break; + + case VDEV_AUX_SPARED: + verify(nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID, + &cb.cb_guid) == 0); + if (zpool_iter(g_zfs, find_spare, &cb) == 1) { + if (strcmp(zpool_get_name(cb.cb_zhp), + zpool_get_name(zhp)) == 0) + (void) printf(gettext("currently in " + "use")); + else + (void) printf(gettext("in use by " + "pool '%s'"), + zpool_get_name(cb.cb_zhp)); + zpool_close(cb.cb_zhp); + } else { + (void) printf(gettext("currently in use")); + } + break; + + case VDEV_AUX_ERR_EXCEEDED: + (void) printf(gettext("too many errors")); + break; + + case VDEV_AUX_IO_FAILURE: + (void) printf(gettext("experienced I/O failures")); + break; + + case VDEV_AUX_BAD_LOG: + (void) printf(gettext("bad intent log")); + break; + + default: + (void) printf(gettext("corrupted data")); + break; + } + } else if (vs->vs_scrub_repaired != 0 && children == 0) { + /* + * Report bytes resilvered/repaired on leaf devices. + */ + zfs_nicenum(vs->vs_scrub_repaired, repaired, sizeof (repaired)); + (void) printf(gettext(" %s %s"), repaired, + (vs->vs_scrub_type == POOL_SCRUB_RESILVER) ? + "resilvered" : "repaired"); + } + + (void) printf("\n"); + + for (c = 0; c < children; c++) { + uint64_t is_log = B_FALSE; + + /* Don't print logs here */ + (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG, + &is_log); + if (is_log) + continue; + vname = zpool_vdev_name(g_zfs, zhp, child[c]); + print_status_config(zhp, vname, child[c], + namewidth, depth + 2, isspare); + free(vname); + } +} + /* * Print the configuration of an exported pool. Iterate over all vdevs in the * pool, printing out the name and status for each one. */ void -print_import_config(const char *name, nvlist_t *nv, int namewidth, int depth, - boolean_t print_logs) +print_import_config(const char *name, nvlist_t *nv, int namewidth, int depth) { nvlist_t **child; uint_t c, children; @@ -1044,12 +1219,11 @@ print_import_config(const char *name, nv (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG, &is_log); - if ((is_log && !print_logs) || (!is_log && print_logs)) + if (is_log) continue; vname = zpool_vdev_name(g_zfs, NULL, child[c]); - print_import_config(vname, child[c], - namewidth, depth + 2, B_FALSE); + print_import_config(vname, child[c], namewidth, depth + 2); free(vname); } @@ -1075,6 +1249,43 @@ print_import_config(const char *name, nv } /* + * Print log vdevs. + * Logs are recorded as top level vdevs in the main pool child array + * but with "is_log" set to 1. We use either print_status_config() or + * print_import_config() to print the top level logs then any log + * children (eg mirrored slogs) are printed recursively - which + * works because only the top level vdev is marked "is_log" + */ +static void +print_logs(zpool_handle_t *zhp, nvlist_t *nv, int namewidth, boolean_t verbose) +{ + uint_t c, children; + nvlist_t **child; + + if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN, &child, + &children) != 0) + return; + + (void) printf(gettext("\tlogs\n")); + + for (c = 0; c < children; c++) { + uint64_t is_log = B_FALSE; + char *name; + + (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG, + &is_log); + if (!is_log) + continue; + name = zpool_vdev_name(g_zfs, zhp, child[c]); + if (verbose) + print_status_config(zhp, name, child[c], namewidth, + 2, B_FALSE); + else + print_import_config(name, child[c], namewidth, 2); + free(name); + } +} +/* * Display the status for the given pool. */ static void @@ -1242,11 +1453,9 @@ show_import(nvlist_t *config) if (namewidth < 10) namewidth = 10; - print_import_config(name, nvroot, namewidth, 0, B_FALSE); - if (num_logs(nvroot) > 0) { - (void) printf(gettext("\tlogs\n")); - print_import_config(name, nvroot, namewidth, 0, B_TRUE); - } + print_import_config(name, nvroot, namewidth, 0); + if (num_logs(nvroot) > 0) + print_logs(NULL, nvroot, namewidth, B_FALSE); if (reason == ZPOOL_STATUS_BAD_GUID_SUM) { (void) printf(gettext("\n\tAdditional devices are known to " @@ -2717,182 +2926,6 @@ print_scrub_status(nvlist_t *nvroot) (u_longlong_t)(minutes_left / 60), (uint_t)(minutes_left % 60)); } -typedef struct spare_cbdata { - uint64_t cb_guid; - zpool_handle_t *cb_zhp; -} spare_cbdata_t; - -static boolean_t -find_vdev(nvlist_t *nv, uint64_t search) -{ - uint64_t guid; - nvlist_t **child; - uint_t c, children; - - if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID, &guid) == 0 && - search == guid) - return (B_TRUE); - - if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN, - &child, &children) == 0) { - for (c = 0; c < children; c++) - if (find_vdev(child[c], search)) - return (B_TRUE); - } - - return (B_FALSE); -} - -static int -find_spare(zpool_handle_t *zhp, void *data) -{ - spare_cbdata_t *cbp = data; - nvlist_t *config, *nvroot; - - config = zpool_get_config(zhp, NULL); - verify(nvlist_lookup_nvlist(config, ZPOOL_CONFIG_VDEV_TREE, - &nvroot) == 0); - - if (find_vdev(nvroot, cbp->cb_guid)) { - cbp->cb_zhp = zhp; - return (1); - } - - zpool_close(zhp); - return (0); -} - -/* - * Print out configuration state as requested by status_callback. - */ -void -print_status_config(zpool_handle_t *zhp, const char *name, nvlist_t *nv, - int namewidth, int depth, boolean_t isspare) -{ - nvlist_t **child; - uint_t c, children; - vdev_stat_t *vs; - char rbuf[6], wbuf[6], cbuf[6], repaired[7]; - char *vname; - uint64_t notpresent; - spare_cbdata_t cb; - char *state; - - verify(nvlist_lookup_uint64_array(nv, ZPOOL_CONFIG_STATS, - (uint64_t **)&vs, &c) == 0); - - if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN, - &child, &children) != 0) - children = 0; - - state = zpool_state_to_name(vs->vs_state, vs->vs_aux); - if (isspare) { - /* - * For hot spares, we use the terms 'INUSE' and 'AVAILABLE' for - * online drives. - */ - if (vs->vs_aux == VDEV_AUX_SPARED) - state = "INUSE"; - else if (vs->vs_state == VDEV_STATE_HEALTHY) - state = "AVAIL"; - } - - (void) printf("\t%*s%-*s %-8s", depth, "", namewidth - depth, - name, state); - - if (!isspare) { - zfs_nicenum(vs->vs_read_errors, rbuf, sizeof (rbuf)); - zfs_nicenum(vs->vs_write_errors, wbuf, sizeof (wbuf)); - zfs_nicenum(vs->vs_checksum_errors, cbuf, sizeof (cbuf)); - (void) printf(" %5s %5s %5s", rbuf, wbuf, cbuf); - } - - if (nvlist_lookup_uint64(nv, ZPOOL_CONFIG_NOT_PRESENT, - ¬present) == 0) { - char *path; - verify(nvlist_lookup_string(nv, ZPOOL_CONFIG_PATH, &path) == 0); - (void) printf(" was %s", path); - } else if (vs->vs_aux != 0) { - (void) printf(" "); - - switch (vs->vs_aux) { - case VDEV_AUX_OPEN_FAILED: - (void) printf(gettext("cannot open")); - break; - - case VDEV_AUX_BAD_GUID_SUM: - (void) printf(gettext("missing device")); - break; - - case VDEV_AUX_NO_REPLICAS: - (void) printf(gettext("insufficient replicas")); - break; - - case VDEV_AUX_VERSION_NEWER: - (void) printf(gettext("newer version")); - break; - - case VDEV_AUX_SPARED: - verify(nvlist_lookup_uint64(nv, ZPOOL_CONFIG_GUID, - &cb.cb_guid) == 0); - if (zpool_iter(g_zfs, find_spare, &cb) == 1) { - if (strcmp(zpool_get_name(cb.cb_zhp), - zpool_get_name(zhp)) == 0) - (void) printf(gettext("currently in " - "use")); - else - (void) printf(gettext("in use by " - "pool '%s'"), - zpool_get_name(cb.cb_zhp)); - zpool_close(cb.cb_zhp); - } else { - (void) printf(gettext("currently in use")); - } - break; - - case VDEV_AUX_ERR_EXCEEDED: - (void) printf(gettext("too many errors")); - break; - - case VDEV_AUX_IO_FAILURE: - (void) printf(gettext("experienced I/O failures")); - break; - - case VDEV_AUX_BAD_LOG: - (void) printf(gettext("bad intent log")); - break; - - default: - (void) printf(gettext("corrupted data")); - break; - } - } else if (vs->vs_scrub_repaired != 0 && children == 0) { - /* - * Report bytes resilvered/repaired on leaf devices. - */ - zfs_nicenum(vs->vs_scrub_repaired, repaired, sizeof (repaired)); - (void) printf(gettext(" %s %s"), repaired, - (vs->vs_scrub_type == POOL_SCRUB_RESILVER) ? - "resilvered" : "repaired"); - } - - (void) printf("\n"); - - for (c = 0; c < children; c++) { - uint64_t is_log = B_FALSE; - - /* Don't print logs here */ - (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG, - &is_log); - if (is_log) - continue; - vname = zpool_vdev_name(g_zfs, zhp, child[c]); - print_status_config(zhp, vname, child[c], - namewidth, depth + 2, isspare); - free(vname); - } -} - static void print_error_log(zpool_handle_t *zhp) { @@ -2969,39 +3002,6 @@ print_l2cache(zpool_handle_t *zhp, nvlis } /* - * Print log vdevs. - * Logs are recorded as top level vdevs in the main pool child array but with - * "is_log" set to 1. We use print_status_config() to print the top level logs - * then any log children (eg mirrored slogs) are printed recursively - which - * works because only the top level vdev is marked "is_log" - */ -static void -print_logs(zpool_handle_t *zhp, nvlist_t *nv, int namewidth) -{ - uint_t c, children; - nvlist_t **child; - - if (nvlist_lookup_nvlist_array(nv, ZPOOL_CONFIG_CHILDREN, &child, - &children) != 0) - return; - - (void) printf(gettext("\tlogs\n")); - - for (c = 0; c < children; c++) { - uint64_t is_log = B_FALSE; - char *name; - - (void) nvlist_lookup_uint64(child[c], ZPOOL_CONFIG_IS_LOG, - &is_log); - if (!is_log) - continue; - name = zpool_vdev_name(g_zfs, zhp, child[c]); - print_status_config(zhp, name, child[c], namewidth, 2, B_FALSE); - free(name); - } -} - -/* * Display a summary of pool status. Displays a summary such as: * * pool: tank @@ -3229,7 +3229,7 @@ status_callback(zpool_handle_t *zhp, voi namewidth, 0, B_FALSE); if (num_logs(nvroot) > 0) - print_logs(zhp, nvroot, namewidth); + print_logs(zhp, nvroot, namewidth, B_TRUE); if (nvlist_lookup_nvlist_array(nvroot, ZPOOL_CONFIG_L2CACHE, &l2cache, &nl2cache) == 0) print_l2cache(zhp, l2cache, nl2cache, namewidth); Modified: projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Mon Sep 27 16:26:35 2010 (r213204) @@ -116,6 +116,7 @@ enum { EZFS_VDEVNOTSUP, /* unsupported vdev type */ EZFS_NOTSUP, /* ops not supported on this dataset */ EZFS_ACTIVE_SPARE, /* pool has active shared spare devices */ + EZFS_UNPLAYED_LOGS, /* log device has unplayed logs */ EZFS_UNKNOWN }; Modified: projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c ============================================================================== --- projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Mon Sep 27 16:26:35 2010 (r213204) @@ -1720,6 +1720,12 @@ zpool_vdev_fault(zpool_handle_t *zhp, ui */ return (zfs_error(hdl, EZFS_NOREPLICAS, msg)); + case EEXIST: + /* + * The log device has unplayed logs + */ + return (zfs_error(hdl, EZFS_UNPLAYED_LOGS, msg)); + default: return (zpool_standard_error(hdl, errno, msg)); } Modified: projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c ============================================================================== --- projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Mon Sep 27 16:26:35 2010 (r213204) @@ -210,6 +210,9 @@ libzfs_error_description(libzfs_handle_t case EZFS_ACTIVE_SPARE: return (dgettext(TEXT_DOMAIN, "pool has active shared spare " "device")); + case EZFS_UNPLAYED_LOGS: + return (dgettext(TEXT_DOMAIN, "log device has unplayed intent " + "logs")); case EZFS_UNKNOWN: return (dgettext(TEXT_DOMAIN, "unknown error")); default: Modified: projects/sv/cddl/usr.sbin/plockstat/plockstat.1 ============================================================================== --- projects/sv/cddl/usr.sbin/plockstat/plockstat.1 Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/cddl/usr.sbin/plockstat/plockstat.1 Mon Sep 27 16:26:35 2010 (r213204) @@ -68,7 +68,7 @@ Print all statistics. .It Fl C Print commulative statistics (the default). .It Fl H -Print an histogram. +Print a histogram. .It Fl V Print the DTrace script about to be used to stderr. .It Fl n Ar count @@ -91,5 +91,5 @@ man page for more details. .Sh HISTORY The .Nm -utility comes from the OpenSolaris and was first imported into +utility comes from OpenSolaris and was first imported into .Fx 9.0 . Modified: projects/sv/contrib/bzip2/decompress.c ============================================================================== --- projects/sv/contrib/bzip2/decompress.c Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/bzip2/decompress.c Mon Sep 27 16:26:35 2010 (r213204) @@ -381,6 +381,13 @@ Int32 BZ2_decompress ( DState* s ) es = -1; N = 1; do { + /* Check that N doesn't get too big, so that es doesn't + go negative. The maximum value that can be + RUNA/RUNB encoded is equal to the block size (post + the initial RLE), viz, 900k, so bounding N at 2 + million should guard against overflow without + rejecting any legitimate inputs. */ + if (N >= 2*1024*1024) RETURN(BZ_DATA_ERROR); if (nextSym == BZ_RUNA) es = es + (0+1) * N; else if (nextSym == BZ_RUNB) es = es + (1+1) * N; N = N * 2; Modified: projects/sv/contrib/gcc/config/rs6000/freebsd.h ============================================================================== --- projects/sv/contrib/gcc/config/rs6000/freebsd.h Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/gcc/config/rs6000/freebsd.h Mon Sep 27 16:26:35 2010 (r213204) @@ -219,17 +219,16 @@ | (TARGET_64BIT ? DW_EH_PE_udata8 : DW_EH_PE_sdata4)) \ : DW_EH_PE_absptr) +#ifdef __powerpc64__ #define MD_FROB_UPDATE_CONTEXT(CTX, FS) \ - if (TARGET_64BIT) { \ if ((FS)->regs.reg[2].how == REG_UNSAVED) \ { \ - unsigned int *insn \ - = (unsigned int *) \ + unsigned int *insn = (unsigned int *) \ _Unwind_GetGR ((CTX), LINK_REGISTER_REGNUM); \ - if (*insn == 0xE8410028) \ + if (insn != NULL && *insn == 0xE8410028) \ _Unwind_SetGRPtr ((CTX), 2, (CTX)->cfa + 40); \ - } \ - } + } +#endif /* FreeBSD doesn't support saving and restoring 64-bit regs with a 32-bit kernel. This is supported when running on a 64-bit kernel with Modified: projects/sv/contrib/llvm/CMakeLists.txt ============================================================================== --- projects/sv/contrib/llvm/CMakeLists.txt Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/llvm/CMakeLists.txt Mon Sep 27 16:26:35 2010 (r213204) @@ -1,10 +1,20 @@ # See docs/CMake.html for instructions about how to build LLVM with CMake. project(LLVM) -cmake_minimum_required(VERSION 2.6.1) +cmake_minimum_required(VERSION 2.8) + +# Add path for custom modules +set(CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + "${CMAKE_CURRENT_SOURCE_DIR}/cmake" + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" + ) + +set(PACKAGE_VERSION "2.8") +include(VersionFromVCS) +add_version_info_from_vcs(PACKAGE_VERSION) set(PACKAGE_NAME llvm) -set(PACKAGE_VERSION 2.8svn) set(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}") set(PACKAGE_BUGREPORT "llvmbugs@cs.uiuc.edu") @@ -53,7 +63,6 @@ set(LLVM_ALL_TARGETS CppBackend Mips MBlaze - MSIL MSP430 PIC16 PowerPC @@ -124,13 +133,6 @@ configure_file( set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm) -# Add path for custom modules -set(CMAKE_MODULE_PATH - ${CMAKE_MODULE_PATH} - "${LLVM_MAIN_SRC_DIR}/cmake" - "${LLVM_MAIN_SRC_DIR}/cmake/modules" - ) - include(AddLLVMDefinitions) if(WIN32) @@ -214,14 +216,8 @@ if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT endif( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 ) if( MSVC ) - # List of valid CRTs for MSVC - set(MSVC_CRT - MD - MDd - MT - MTd) + include(ChooseMSVCCRT) - set(LLVM_USE_CRT "" CACHE STRING "Specify VC++ CRT to use for debug/release configurations.") add_llvm_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS ) add_llvm_definitions( -D_SCL_SECURE_NO_WARNINGS -DCRT_NONSTDC_NO_WARNINGS ) add_llvm_definitions( -D_SCL_SECURE_NO_DEPRECATE ) @@ -231,15 +227,6 @@ if( MSVC ) # Suppress 'new behavior: elements of array 'array' will be default initialized' add_llvm_definitions( -wd4351 ) - if (NOT ${LLVM_USE_CRT} STREQUAL "") - list(FIND MSVC_CRT ${LLVM_USE_CRT} idx) - if (idx LESS 0) - message(FATAL_ERROR "Invalid value for LLVM_USE_CRT: ${LLVM_USE_CRT}. Valid options are one of: ${MSVC_CRT}") - endif (idx LESS 0) - add_llvm_definitions("/${LLVM_USE_CRT}") - message(STATUS "Using VC++ CRT: ${LLVM_USE_CRT}") - endif (NOT ${LLVM_USE_CRT} STREQUAL "") - # Enable warnings if (LLVM_ENABLE_WARNINGS) add_llvm_definitions( /W4 /Wall ) @@ -308,6 +295,7 @@ add_subdirectory(lib/Analysis) add_subdirectory(lib/Analysis/IPA) add_subdirectory(lib/MC) add_subdirectory(lib/MC/MCParser) +add_subdirectory(lib/MC/MCDisassembler) add_subdirectory(test) add_subdirectory(utils/FileCheck) @@ -372,6 +360,8 @@ add_subdirectory(tools) option(LLVM_BUILD_EXAMPLES "Build LLVM example programs." OFF) add_subdirectory(examples) +add_subdirectory(cmake/modules) + install(DIRECTORY include/ DESTINATION include FILES_MATCHING Modified: projects/sv/contrib/llvm/CREDITS.TXT ============================================================================== --- projects/sv/contrib/llvm/CREDITS.TXT Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/llvm/CREDITS.TXT Mon Sep 27 16:26:35 2010 (r213204) @@ -134,6 +134,11 @@ N: Gabor Greif E: ggreif@gmail.com D: Improvements for space efficiency +N: James Grosbach +E: grosbach@apple.com +D: SjLj exception handling support +D: General fixes and improvements for the ARM back-end + N: Lang Hames E: lhames@gmail.com D: PBQP-based register allocator @@ -247,6 +252,12 @@ N: Scott Michel E: scottm@aero.org D: Added STI Cell SPU backend. +N: Takumi Nakamura +E: geek4civic@gmail.com +E: chapuni@hf.rim.or.jp +D: Cygwin and MinGW support. +S: Yokohama, Japan + N: Edward O'Callaghan E: eocallaghan@auroraux.org W: http://www.auroraux.org @@ -277,6 +288,11 @@ N: Sandeep Patel E: deeppatel1987@gmail.com D: ARM calling conventions rewrite, hard float support +N: Wesley Peck +E: peckw@wesleypeck.com +W: http://wesleypeck.com/ +D: MicroBlaze backend + N: Vladimir Prus W: http://vladimir_prus.blogspot.com E: ghost@cs.msu.su @@ -288,7 +304,10 @@ D: MSIL backend N: Duncan Sands E: baldrick@free.fr -D: Ada front-end, exception handling improvements +D: Ada support in llvm-gcc +D: Dragonegg plugin +D: Exception handling improvements +D: Type legalizer rewrite N: Ruchira Sasanka E: sasanka@uiuc.edu @@ -306,6 +325,10 @@ N: Anand Shukla E: ashukla@cs.uiuc.edu D: The `paths' pass +N: Michael J. Spencer +E: bigcheesegs@gmail.com +D: Shepherding Windows COFF support into MC. + N: Reid Spencer E: rspencer@reidspencer.com W: http://reidspencer.com/ @@ -329,14 +352,9 @@ E: xerxes@zafena.se D: Cmake dependency chain and various bug fixes N: Bill Wendling -E: isanbard@gmail.com +E: wendling@apple.com D: Bunches of stuff N: Bob Wilson E: bob.wilson@acm.org D: Advanced SIMD (NEON) support in the ARM backend - -N: Wesley Peck -E: peckw@wesleypeck.com -W: http://wesleypeck.com/ -D: MicroBlaze backend Modified: projects/sv/contrib/llvm/Makefile ============================================================================== --- projects/sv/contrib/llvm/Makefile Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/llvm/Makefile Mon Sep 27 16:26:35 2010 (r213204) @@ -64,7 +64,8 @@ endif ifeq ($(MAKECMDGOALS),install-clang) DIRS := tools/clang/tools/driver tools/clang/lib/Headers \ - tools/clang/runtime tools/clang/docs + tools/clang/runtime tools/clang/docs \ + tools/lto OPTIONAL_DIRS := NO_INSTALL = 1 endif @@ -78,7 +79,8 @@ ifeq ($(MAKECMDGOALS),install-clang-c) endif ifeq ($(MAKECMDGOALS),clang-only) - DIRS := $(filter-out tools runtime docs unittests, $(DIRS)) tools/clang + DIRS := $(filter-out tools runtime docs unittests, $(DIRS)) \ + tools/clang tools/lto OPTIONAL_DIRS := endif @@ -110,7 +112,8 @@ cross-compile-build-tools: --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE); \ cd .. ; \ fi; \ - ($(MAKE) -C BuildTools \ + (unset SDKROOT; \ + $(MAKE) -C BuildTools \ BUILD_DIRS_ONLY=1 \ UNIVERSAL= \ ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \ @@ -167,7 +170,7 @@ FilesToConfig := \ include/llvm/Config/AsmParsers.def \ include/llvm/Config/Disassemblers.def \ include/llvm/System/DataTypes.h \ - tools/llvmc/plugins/Base/Base.td + tools/llvmc/src/Base.td FilesToConfigPATH := $(addprefix $(LLVM_OBJ_ROOT)/,$(FilesToConfig)) all-local:: $(FilesToConfigPATH) @@ -192,9 +195,6 @@ endif check-llvm2cpp: $(Verb)$(MAKE) check TESTSUITE=Feature RUNLLVM2CPP=1 -check-one: - $(Verb)$(MAKE) -C test check-one TESTONE=$(TESTONE) - srpm: $(LLVM_OBJ_ROOT)/llvm.spec rpmbuild -bs $(LLVM_OBJ_ROOT)/llvm.spec Modified: projects/sv/contrib/llvm/Makefile.config.in ============================================================================== --- projects/sv/contrib/llvm/Makefile.config.in Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/llvm/Makefile.config.in Mon Sep 27 16:26:35 2010 (r213204) @@ -39,14 +39,18 @@ ifndef PROJECT_NAME PROJECT_NAME := $(LLVMPackageName) endif -PROJ_OBJ_DIR := $(shell $(PWD)) -PROJ_OBJ_ROOT := $(shell cd $(PROJ_OBJ_DIR)/$(LEVEL); $(PWD)) +# The macro below is expanded when 'realpath' is not built-in. +# Built-in 'realpath' is available on GNU Make 3.81. +realpath = $(shell cd $(1); $(PWD)) + +PROJ_OBJ_DIR := $(call realpath, .) +PROJ_OBJ_ROOT := $(call realpath, $(PROJ_OBJ_DIR)/$(LEVEL)) ifeq ($(PROJECT_NAME),llvm) -LLVM_SRC_ROOT := $(shell cd @abs_top_srcdir@; $(PWD)) -LLVM_OBJ_ROOT := $(shell cd @abs_top_builddir@; $(PWD)) -PROJ_SRC_ROOT := $(shell cd $(LLVM_SRC_ROOT); $(PWD)) -PROJ_SRC_DIR := $(shell cd $(LLVM_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD)) +LLVM_SRC_ROOT := $(call realpath, @abs_top_srcdir@) +LLVM_OBJ_ROOT := $(call realpath, @abs_top_builddir@) +PROJ_SRC_ROOT := $(LLVM_SRC_ROOT) +PROJ_SRC_DIR := $(call realpath, $(LLVM_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR))) prefix := @prefix@ PROJ_prefix := $(prefix) PROJ_VERSION := $(LLVMVersion) @@ -66,7 +70,7 @@ endif ifndef LLVM_OBJ_ROOT $(error Projects must define LLVM_OBJ_ROOT) endif -PROJ_SRC_DIR := $(shell cd $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR)); $(PWD)) +PROJ_SRC_DIR := $(call realpath, $(PROJ_SRC_ROOT)/$(patsubst $(PROJ_OBJ_ROOT)%,%,$(PROJ_OBJ_DIR))) prefix := $(PROJ_INSTALL_ROOT) PROJ_prefix := $(prefix) ifndef PROJ_VERSION Modified: projects/sv/contrib/llvm/Makefile.rules ============================================================================== --- projects/sv/contrib/llvm/Makefile.rules Mon Sep 27 15:58:19 2010 (r213203) +++ projects/sv/contrib/llvm/Makefile.rules Mon Sep 27 16:26:35 2010 (r213204) @@ -196,105 +196,15 @@ install-local:: all-local install-bytecode:: install-bytecode-local ############################################################################### -# LLVMC: Provide rules for compiling llvmc plugins +# LLVMC: Provide rules for compiling llvmc-based driver ############################################################################### -ifdef LLVMC_PLUGIN - -LIBRARYNAME := $(patsubst %,plugin_llvmc_%,$(LLVMC_PLUGIN)) -CPP.Flags += -DLLVMC_PLUGIN_NAME=$(LLVMC_PLUGIN) -REQUIRES_EH := 1 - -ifeq ($(ENABLE_LLVMC_DYNAMIC),1) - LD.Flags += -lCompilerDriver -endif - -# Build a dynamic library if the user runs `make` directly from the plugin -# directory. -ifndef LLVMC_BUILTIN_PLUGIN - LOADABLE_MODULE = 1 -endif - -# TableGen stuff... -ifneq ($(BUILT_SOURCES),) - LLVMC_BUILD_AUTOGENERATED_INC=1 -endif - -endif # LLVMC_PLUGIN - ifdef LLVMC_BASED_DRIVER TOOLNAME = $(LLVMC_BASED_DRIVER) -REQUIRES_EH := 1 - -ifeq ($(ENABLE_LLVMC_DYNAMIC),1) - LD.Flags += -lCompilerDriver -else - LLVMLIBS = CompilerDriver.a - LINK_COMPONENTS = support system -endif - -# Preprocessor magic that generates references to static variables in built-in -# plugins. -ifneq ($(LLVMC_BUILTIN_PLUGINS),) - -USEDLIBS += $(patsubst %,plugin_llvmc_%.a,$(LLVMC_BUILTIN_PLUGINS)) - -LLVMC_BUILTIN_PLUGIN_1 = $(word 1, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_2 = $(word 2, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_3 = $(word 3, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_4 = $(word 4, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_5 = $(word 5, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_6 = $(word 6, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_7 = $(word 7, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_8 = $(word 8, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_9 = $(word 9, $(LLVMC_BUILTIN_PLUGINS)) -LLVMC_BUILTIN_PLUGIN_10 = $(word 10, $(LLVMC_BUILTIN_PLUGINS)) - - -ifneq ($(LLVMC_BUILTIN_PLUGIN_1),) -CPP.Flags += -DLLVMC_BUILTIN_PLUGIN_1=$(LLVMC_BUILTIN_PLUGIN_1) -endif - -ifneq ($(LLVMC_BUILTIN_PLUGIN_2),) -CPP.Flags += -DLLVMC_BUILTIN_PLUGIN_2=$(LLVMC_BUILTIN_PLUGIN_2) -endif - -ifneq ($(LLVMC_BUILTIN_PLUGIN_3),) -CPP.Flags += -DLLVMC_BUILTIN_PLUGIN_3=$(LLVMC_BUILTIN_PLUGIN_3) -endif - -ifneq ($(LLVMC_BUILTIN_PLUGIN_4),) -CPP.Flags += -DLLVMC_BUILTIN_PLUGIN_4=$(LLVMC_BUILTIN_PLUGIN_4) -endif - -ifneq ($(LLVMC_BUILTIN_PLUGIN_5),) -CPP.Flags += -DLLVMC_BUILTIN_PLUGIN_5=$(LLVMC_BUILTIN_PLUGIN_5) -endif - -ifneq ($(LLVMC_BUILTIN_PLUGIN_6),) -CPP.Flags += -DLLVMC_BUILTIN_PLUGIN_5=$(LLVMC_BUILTIN_PLUGIN_6) -endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 16:48:56 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A1ED1065670; Mon, 27 Sep 2010 16:48:56 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 58D058FC16; Mon, 27 Sep 2010 16:48:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RGmuUE042488; Mon, 27 Sep 2010 16:48:56 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RGmu1t042485; Mon, 27 Sep 2010 16:48:56 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009271648.o8RGmu1t042485@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 16:48:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213207 - projects/sv/sys/dev/e1000 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 16:48:56 -0000 Author: attilio Date: Mon Sep 27 16:48:56 2010 New Revision: 213207 URL: http://svn.freebsd.org/changeset/base/213207 Log: Mask the conditional locking with appropriate macros. Don't make them in the headers because their usage should be just local. Requested by: rstone Modified: projects/sv/sys/dev/e1000/if_em.c projects/sv/sys/dev/e1000/if_lem.c Modified: projects/sv/sys/dev/e1000/if_em.c ============================================================================== --- projects/sv/sys/dev/e1000/if_em.c Mon Sep 27 16:29:46 2010 (r213206) +++ projects/sv/sys/dev/e1000/if_em.c Mon Sep 27 16:48:56 2010 (r213207) @@ -89,6 +89,27 @@ #include "e1000_82571.h" #include "if_em.h" +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) + +#define EM_CORE_LOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + EM_CORE_LOCK(adapter); \ +} while (0) +#define EM_CORE_UNLOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + EM_CORE_UNLOCK(adapter); \ +} while (0) +#define EM_TX_LOCK_COND(txr, locking) do { \ + if ((locking) != 0) \ + EM_TX_LOCK(txr); \ +} while (0) +#define EM_TX_UNLOCK_COND(txr, locking) do { \ + if ((locking) != 0) \ + EM_CORE_UNLOCK(txr); \ +} while (0) + +#endif + /********************************************************************* * Set this to one to display debug statistics *********************************************************************/ @@ -1392,11 +1413,9 @@ _em_poll_generic(struct ifnet *ifp, enum u32 reg_icr; int rx_done; - if (locking != 0) - EM_CORE_LOCK(adapter); + EM_CORE_LOCK_COND(adapter, locking); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - if (locking != 0) - EM_CORE_UNLOCK(adapter); + EM_CORE_UNLOCK_COND(adapter, locking); return (0); } @@ -1410,13 +1429,11 @@ _em_poll_generic(struct ifnet *ifp, enum em_local_timer, adapter); } } - if (locking != 0) - EM_CORE_UNLOCK(adapter); + EM_CORE_UNLOCK_COND(adapter, locking); em_rxeof(rxr, count, &rx_done); - if (locking != 0) - EM_TX_LOCK(txr); + EM_TX_LOCK_COND(txr, locking); em_txeof(txr); #ifdef EM_MULTIQUEUE if (!drbr_empty(ifp, txr->br)) @@ -1425,8 +1442,7 @@ _em_poll_generic(struct ifnet *ifp, enum if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) em_start_locked(ifp, txr); #endif - if (locking != 0) - EM_TX_UNLOCK(txr); + EM_TX_UNLOCK_COND(txr, locking); return (rx_done); } Modified: projects/sv/sys/dev/e1000/if_lem.c ============================================================================== --- projects/sv/sys/dev/e1000/if_lem.c Mon Sep 27 16:29:46 2010 (r213206) +++ projects/sv/sys/dev/e1000/if_lem.c Mon Sep 27 16:48:56 2010 (r213207) @@ -87,6 +87,27 @@ #include "e1000_api.h" #include "if_lem.h" +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) + +#define EM_CORE_LOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + EM_CORE_LOCK(adapter); \ +} while (0) +#define EM_CORE_UNLOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + EM_CORE_UNLOCK(adapter); \ +} while (0) +#define EM_TX_LOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + EM_TX_LOCK(adapter); \ +} while (0) +#define EM_TX_UNLOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + EM_CORE_UNLOCK(adapter); \ +} while (0) + +#endif + /********************************************************************* * Legacy Em Driver version: *********************************************************************/ @@ -1263,11 +1284,9 @@ _lem_poll_generic(struct ifnet *ifp, enu struct adapter *adapter = ifp->if_softc; u32 reg_icr, rx_done = 0; - if (locking != 0) - EM_CORE_LOCK(adapter); + EM_CORE_LOCK_COND(adapter, locking); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - if (locking != 0) - EM_CORE_UNLOCK(adapter); + EM_CORE_UNLOCK_COND(adapter, locking); return (rx_done); } @@ -1281,18 +1300,15 @@ _lem_poll_generic(struct ifnet *ifp, enu lem_local_timer, adapter); } } - if (locking != 0) - EM_CORE_UNLOCK(adapter); + EM_CORE_UNLOCK_COND(adapter, locking); lem_rxeof(adapter, count, &rx_done); - if (locking != 0) - EM_TX_LOCK(adapter); + EM_TX_LOCK_COND(adapter, locking); lem_txeof(adapter); if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) lem_start_locked(ifp); - if (locking != 0) - EM_TX_UNLOCK(adapter); + EM_TX_UNLOCK_COND(adapter, locking); return (rx_done); } From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 17:30:57 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 692AB106566B; Mon, 27 Sep 2010 17:30:57 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20C8E8FC1C; Mon, 27 Sep 2010 17:30:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RHUvt6043520; Mon, 27 Sep 2010 17:30:57 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RHUvZx043518; Mon, 27 Sep 2010 17:30:57 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009271730.o8RHUvZx043518@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 17:30:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213210 - projects/sv/sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 17:30:57 -0000 Author: attilio Date: Mon Sep 27 17:30:56 2010 New Revision: 213210 URL: http://svn.freebsd.org/changeset/base/213210 Log: These printings make so much noise and console spam to make traces almost unuseful. Trim out them. Modified: projects/sv/sys/netinet/netdump_client.c Modified: projects/sv/sys/netinet/netdump_client.c ============================================================================== --- projects/sv/sys/netinet/netdump_client.c Mon Sep 27 17:12:54 2010 (r213209) +++ projects/sv/sys/netinet/netdump_client.c Mon Sep 27 17:30:56 2010 (r213210) @@ -687,9 +687,6 @@ nd_handle_ip(struct mbuf **mb) int rcv_ackno; /* IP processing */ - - NETDDEBUGV("nd_handle_ip: Processing IP packet...\n"); - m = *mb; if (m->m_pkthdr.len < sizeof(struct ip)) { NETDDEBUG("nd_handle_ip: dropping packet too small for IP " @@ -814,8 +811,6 @@ nd_handle_ip(struct mbuf **mb) } udp = mtod(m, struct udpiphdr *); - NETDDEBUG("nd_handle_ip: Processing packet..."); - if (ntohs(udp->ui_u.uh_dport) != NETDUMP_ACKPORT) { NETDDEBUG("not on the netdump port.\n"); return; @@ -1004,9 +999,6 @@ netdump_pkt_in(struct ifnet *ifp, struct u_short etype; /* Ethernet processing */ - - NETDDEBUGV_IF(ifp, "Processing packet...\n"); - if ((m->m_flags & M_PKTHDR) == 0) { NETDDEBUG_IF(ifp, "discard frame w/o packet header\n"); goto done; From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 17:38:19 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8492D1065674; Mon, 27 Sep 2010 17:38:19 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 744288FC08; Mon, 27 Sep 2010 17:38:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RHcJYP043728; Mon, 27 Sep 2010 17:38:19 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RHcJmL043726; Mon, 27 Sep 2010 17:38:19 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009271738.o8RHcJmL043726@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 17:38:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213212 - projects/sv/sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 17:38:19 -0000 Author: attilio Date: Mon Sep 27 17:38:19 2010 New Revision: 213212 URL: http://svn.freebsd.org/changeset/base/213212 Log: Fix NETDUMP_CLIENT_DEBUG compilation by adding a missing include for variadic printf formats. Modified: projects/sv/sys/netinet/netdump_client.c Modified: projects/sv/sys/netinet/netdump_client.c ============================================================================== --- projects/sv/sys/netinet/netdump_client.c Mon Sep 27 17:37:25 2010 (r213211) +++ projects/sv/sys/netinet/netdump_client.c Mon Sep 27 17:38:19 2010 (r213212) @@ -68,6 +68,7 @@ #include #include +#include #include #include From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 18:16:29 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4EECD106566C; Mon, 27 Sep 2010 18:16:29 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3E5618FC16; Mon, 27 Sep 2010 18:16:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RIGTtX045578; Mon, 27 Sep 2010 18:16:29 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RIGTrC045575; Mon, 27 Sep 2010 18:16:29 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009271816.o8RIGTrC045575@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 18:16:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213219 - projects/sv/sys/dev/e1000 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 18:16:29 -0000 Author: attilio Date: Mon Sep 27 18:16:28 2010 New Revision: 213219 URL: http://svn.freebsd.org/changeset/base/213219 Log: Fix typos. Modified: projects/sv/sys/dev/e1000/if_em.c projects/sv/sys/dev/e1000/if_lem.c Modified: projects/sv/sys/dev/e1000/if_em.c ============================================================================== --- projects/sv/sys/dev/e1000/if_em.c Mon Sep 27 17:54:04 2010 (r213218) +++ projects/sv/sys/dev/e1000/if_em.c Mon Sep 27 18:16:28 2010 (r213219) @@ -105,7 +105,7 @@ } while (0) #define EM_TX_UNLOCK_COND(txr, locking) do { \ if ((locking) != 0) \ - EM_CORE_UNLOCK(txr); \ + EM_TX_UNLOCK(txr); \ } while (0) #endif Modified: projects/sv/sys/dev/e1000/if_lem.c ============================================================================== --- projects/sv/sys/dev/e1000/if_lem.c Mon Sep 27 17:54:04 2010 (r213218) +++ projects/sv/sys/dev/e1000/if_lem.c Mon Sep 27 18:16:28 2010 (r213219) @@ -103,7 +103,7 @@ } while (0) #define EM_TX_UNLOCK_COND(adapter, locking) do { \ if ((locking) != 0) \ - EM_CORE_UNLOCK(adapter); \ + EM_TX_UNLOCK(adapter); \ } while (0) #endif From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 21:28:40 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 28B08106564A; Mon, 27 Sep 2010 21:28:40 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 144148FC16; Mon, 27 Sep 2010 21:28:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RLSeEk050379; Mon, 27 Sep 2010 21:28:40 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RLSdWX050334; Mon, 27 Sep 2010 21:28:39 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009272128.o8RLSdWX050334@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 21:28:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213232 - in projects/sv: contrib/top etc/rc.d share/mk sys/arm/at91 sys/conf sys/dev/dc sys/dev/mii sys/fs/devfs sys/i386/i386 sys/mips/cavium sys/netinet sys/netinet6 tools/regression... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 21:28:40 -0000 Author: attilio Date: Mon Sep 27 21:28:39 2010 New Revision: 213232 URL: http://svn.freebsd.org/changeset/base/213232 Log: MFC @ 213231 Added: projects/sv/sys/fs/devfs/devfs_dir.c - copied unchanged from r213231, head/sys/fs/devfs/devfs_dir.c projects/sv/usr.bin/clang/clang/clang.1 - copied unchanged from r213231, head/usr.bin/clang/clang/clang.1 projects/sv/usr.bin/clang/tblgen/tblgen.1 - copied unchanged from r213231, head/usr.bin/clang/tblgen/tblgen.1 Modified: projects/sv/etc/rc.d/nsswitch projects/sv/sys/arm/at91/at91_twi.c projects/sv/sys/conf/files projects/sv/sys/conf/ldscript.mips.octeon1.64 projects/sv/sys/dev/dc/dcphy.c projects/sv/sys/dev/dc/pnphy.c projects/sv/sys/dev/mii/acphy.c projects/sv/sys/dev/mii/amphy.c projects/sv/sys/dev/mii/atphy.c projects/sv/sys/dev/mii/axphy.c projects/sv/sys/dev/mii/bmtphy.c projects/sv/sys/dev/mii/brgphy.c projects/sv/sys/dev/mii/ciphy.c projects/sv/sys/dev/mii/e1000phy.c projects/sv/sys/dev/mii/exphy.c projects/sv/sys/dev/mii/gentbi.c projects/sv/sys/dev/mii/icsphy.c projects/sv/sys/dev/mii/inphy.c projects/sv/sys/dev/mii/ip1000phy.c projects/sv/sys/dev/mii/jmphy.c projects/sv/sys/dev/mii/lxtphy.c projects/sv/sys/dev/mii/mii_physubr.c projects/sv/sys/dev/mii/mlphy.c projects/sv/sys/dev/mii/nsgphy.c projects/sv/sys/dev/mii/nsphy.c projects/sv/sys/dev/mii/nsphyter.c projects/sv/sys/dev/mii/pnaphy.c projects/sv/sys/dev/mii/qsphy.c projects/sv/sys/dev/mii/rgephy.c projects/sv/sys/dev/mii/rlphy.c projects/sv/sys/dev/mii/rlswitch.c projects/sv/sys/dev/mii/ruephy.c projects/sv/sys/dev/mii/smcphy.c projects/sv/sys/dev/mii/tdkphy.c projects/sv/sys/dev/mii/truephy.c projects/sv/sys/dev/mii/ukphy.c projects/sv/sys/dev/mii/xmphy.c projects/sv/sys/fs/devfs/devfs.h projects/sv/sys/fs/devfs/devfs_devs.c projects/sv/sys/fs/devfs/devfs_int.h projects/sv/sys/fs/devfs/devfs_vnops.c projects/sv/sys/i386/i386/machdep.c projects/sv/sys/mips/cavium/octopci.c projects/sv/sys/netinet/in_rmx.c projects/sv/sys/netinet/netdump_client.c projects/sv/sys/netinet6/in6_rmx.c projects/sv/tools/regression/geom_eli/resize.t projects/sv/usr.bin/clang/clang/Makefile projects/sv/usr.bin/clang/tblgen/Makefile Directory Properties: projects/sv/ (props changed) projects/sv/cddl/contrib/opensolaris/ (props changed) projects/sv/contrib/bind9/ (props changed) projects/sv/contrib/ee/ (props changed) projects/sv/contrib/expat/ (props changed) projects/sv/contrib/file/ (props changed) projects/sv/contrib/gdb/ (props changed) projects/sv/contrib/gdtoa/ (props changed) projects/sv/contrib/gnu-sort/ (props changed) projects/sv/contrib/groff/ (props changed) projects/sv/contrib/less/ (props changed) projects/sv/contrib/libpcap/ (props changed) projects/sv/contrib/llvm/ (props changed) projects/sv/contrib/llvm/tools/clang/ (props changed) projects/sv/contrib/ncurses/ (props changed) projects/sv/contrib/netcat/ (props changed) projects/sv/contrib/ntp/ (props changed) projects/sv/contrib/one-true-awk/ (props changed) projects/sv/contrib/openbsm/ (props changed) projects/sv/contrib/openpam/ (props changed) projects/sv/contrib/pf/ (props changed) projects/sv/contrib/sendmail/ (props changed) projects/sv/contrib/tcpdump/ (props changed) projects/sv/contrib/tcsh/ (props changed) projects/sv/contrib/top/ (props changed) projects/sv/contrib/top/install-sh (props changed) projects/sv/contrib/tzcode/stdtime/ (props changed) projects/sv/contrib/tzcode/zic/ (props changed) projects/sv/contrib/tzdata/ (props changed) projects/sv/contrib/wpa/ (props changed) projects/sv/crypto/openssh/ (props changed) projects/sv/crypto/openssl/ (props changed) projects/sv/lib/libc/ (props changed) projects/sv/lib/libc/stdtime/ (props changed) projects/sv/lib/libutil/ (props changed) projects/sv/lib/libz/ (props changed) projects/sv/sbin/ (props changed) projects/sv/sbin/ipfw/ (props changed) projects/sv/share/mk/bsd.arch.inc.mk (props changed) projects/sv/share/zoneinfo/ (props changed) projects/sv/sys/ (props changed) projects/sv/sys/amd64/include/xen/ (props changed) projects/sv/sys/cddl/contrib/opensolaris/ (props changed) projects/sv/sys/contrib/dev/acpica/ (props changed) projects/sv/sys/contrib/pf/ (props changed) projects/sv/sys/contrib/x86emu/ (props changed) projects/sv/sys/dev/xen/xenpci/ (props changed) projects/sv/usr.bin/calendar/ (props changed) projects/sv/usr.bin/csup/ (props changed) projects/sv/usr.bin/procstat/ (props changed) projects/sv/usr.sbin/zic/ (props changed) Modified: projects/sv/etc/rc.d/nsswitch ============================================================================== --- projects/sv/etc/rc.d/nsswitch Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/etc/rc.d/nsswitch Mon Sep 27 21:28:39 2010 (r213232) @@ -80,7 +80,7 @@ generate_host_conf() cache | *=*) ;; *) - printf "Warning: unrecognized source [%s]\n" $_s >&2 + echo "Warning: unrecognized source [$_s]" >&2 ;; esac done Modified: projects/sv/sys/arm/at91/at91_twi.c ============================================================================== --- projects/sv/sys/arm/at91/at91_twi.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/arm/at91/at91_twi.c Mon Sep 27 21:28:39 2010 (r213232) @@ -338,7 +338,7 @@ at91_twi_transfer(device_t dev, struct i err = EINVAL; goto out; } - if (len == 1) + if (len == 1 && msgs[i].flags & IIC_M_RD) WR4(sc, TWI_CR, TWI_CR_START | TWI_CR_STOP); else WR4(sc, TWI_CR, TWI_CR_START); @@ -348,7 +348,7 @@ at91_twi_transfer(device_t dev, struct i if ((sr = RD4(sc, TWI_SR)) & TWI_SR_RXRDY) { len--; *buf++ = RD4(sc, TWI_RHR) & 0xff; - if (len == 0 && msgs[i].len != 1) + if (len == 1) WR4(sc, TWI_CR, TWI_CR_STOP); } } @@ -358,8 +358,6 @@ at91_twi_transfer(device_t dev, struct i } } else { while (len--) { - if (len == 0 && msgs[i].len != 1) - WR4(sc, TWI_CR, TWI_CR_STOP); if ((err = at91_twi_wait(sc, TWI_SR_TXRDY))) goto out; WR4(sc, TWI_THR, *buf++); Modified: projects/sv/sys/conf/files ============================================================================== --- projects/sv/sys/conf/files Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/conf/files Mon Sep 27 21:28:39 2010 (r213232) @@ -1890,6 +1890,7 @@ fs/coda/coda_vfsops.c optional vcoda fs/coda/coda_vnops.c optional vcoda fs/deadfs/dead_vnops.c standard fs/devfs/devfs_devs.c standard +fs/devfs/devfs_dir.c standard fs/devfs/devfs_rule.c standard fs/devfs/devfs_vfsops.c standard fs/devfs/devfs_vnops.c standard Modified: projects/sv/sys/conf/ldscript.mips.octeon1.64 ============================================================================== --- projects/sv/sys/conf/ldscript.mips.octeon1.64 Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/conf/ldscript.mips.octeon1.64 Mon Sep 27 21:28:39 2010 (r213232) @@ -7,24 +7,29 @@ ENTRY(_start) __DYNAMIC = 0; PROVIDE (_DYNAMIC = 0); +PHDRS { + text PT_LOAD FLAGS(0x7); +} + SECTIONS { . = KERNLOADADDR + SIZEOF_HEADERS; - .text . : { + .text : { *(.text) *(.dynamic) etext = .; _etext = .; . = ALIGN(0x2000); - } + } : text - .rodata ALIGN(0x2000) : { + . = ALIGN(0x2000); + .rodata : { _fdata = .; *(.rodata) . = ALIGN(32); } - .data . : { + .data : { _rwdata = .; *(.data) . = ALIGN(32); @@ -33,15 +38,15 @@ SECTIONS { _gp = (. + 0x8000); - .sdata . : { + .sdata : { _small_start = .; *(.sdata) . = ALIGN(32); edata = .; _edata = .; - } + } : text - .sbss . : { + .sbss : { __bss_start = .; _fbss = .; *(.sbss) *(.scommon) @@ -49,7 +54,7 @@ SECTIONS { . = ALIGN(32); } - .bss . : { + .bss : { *(.bss) *(COMMON) . = ALIGN(32); Modified: projects/sv/sys/dev/dc/dcphy.c ============================================================================== --- projects/sv/sys/dev/dc/dcphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/dc/dcphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -146,7 +146,7 @@ dcphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/dc/pnphy.c ============================================================================== --- projects/sv/sys/dev/dc/pnphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/dc/pnphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -129,7 +129,7 @@ pnphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/acphy.c ============================================================================== --- projects/sv/sys/dev/mii/acphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/acphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -129,7 +129,7 @@ acphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/amphy.c ============================================================================== --- projects/sv/sys/dev/mii/amphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/amphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -106,7 +106,7 @@ amphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/atphy.c ============================================================================== --- projects/sv/sys/dev/mii/atphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/atphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -110,7 +110,7 @@ atphy_attach(device_t dev) sc = &asc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/axphy.c ============================================================================== --- projects/sv/sys/dev/mii/axphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/axphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -96,7 +96,7 @@ axphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/bmtphy.c ============================================================================== --- projects/sv/sys/dev/mii/bmtphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/bmtphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -144,7 +144,7 @@ bmtphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/brgphy.c ============================================================================== --- projects/sv/sys/dev/mii/brgphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/brgphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -187,7 +187,7 @@ brgphy_attach(device_t dev) sc = &bsc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); /* Initialize mii_softc structure */ Modified: projects/sv/sys/dev/mii/ciphy.c ============================================================================== --- projects/sv/sys/dev/mii/ciphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/ciphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -115,7 +115,7 @@ ciphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/e1000phy.c ============================================================================== --- projects/sv/sys/dev/mii/e1000phy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/e1000phy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -141,7 +141,7 @@ e1000phy_attach(device_t dev) sc = &esc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/exphy.c ============================================================================== --- projects/sv/sys/dev/mii/exphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/exphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -135,7 +135,7 @@ exphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; /* * The 3Com PHY can never be isolated, so never allow non-zero Modified: projects/sv/sys/dev/mii/gentbi.c ============================================================================== --- projects/sv/sys/dev/mii/gentbi.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/gentbi.c Mon Sep 27 21:28:39 2010 (r213232) @@ -158,7 +158,7 @@ gentbi_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); if (bootverbose) Modified: projects/sv/sys/dev/mii/icsphy.c ============================================================================== --- projects/sv/sys/dev/mii/icsphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/icsphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -138,7 +138,7 @@ icsphy_attach(device_t dev) sc = &isc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/inphy.c ============================================================================== --- projects/sv/sys/dev/mii/inphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/inphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -104,7 +104,7 @@ inphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/ip1000phy.c ============================================================================== --- projects/sv/sys/dev/mii/ip1000phy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/ip1000phy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -111,7 +111,7 @@ ip1000phy_attach(device_t dev) sc = &isc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/jmphy.c ============================================================================== --- projects/sv/sys/dev/mii/jmphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/jmphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -109,7 +109,7 @@ jmphy_attach(device_t dev) sc = &jsc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/lxtphy.c ============================================================================== --- projects/sv/sys/dev/mii/lxtphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/lxtphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -132,7 +132,7 @@ lxtphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/mii_physubr.c ============================================================================== --- projects/sv/sys/dev/mii/mii_physubr.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/mii_physubr.c Mon Sep 27 21:28:39 2010 (r213232) @@ -326,10 +326,9 @@ mii_anar(int media) void mii_add_media(struct mii_softc *sc) { + struct mii_data *mii = sc->mii_pdata; const char *sep = ""; - struct mii_data *mii; - mii = device_get_softc(sc->mii_dev); if ((sc->mii_capabilities & BMSR_MEDIAMASK) == 0) { printf("no media present"); return; Modified: projects/sv/sys/dev/mii/mlphy.c ============================================================================== --- projects/sv/sys/dev/mii/mlphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/mlphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -143,7 +143,7 @@ mlphy_attach(dev) sc = &msc->ml_mii; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/nsgphy.c ============================================================================== --- projects/sv/sys/dev/mii/nsgphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/nsgphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -126,7 +126,7 @@ nsgphy_attach(device_t dev) device_printf(dev, "\n", MII_REV(ma->mii_id2)); device_printf(dev, " "); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/nsphy.c ============================================================================== --- projects/sv/sys/dev/mii/nsphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/nsphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -130,7 +130,7 @@ nsphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/nsphyter.c ============================================================================== --- projects/sv/sys/dev/mii/nsphyter.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/nsphyter.c Mon Sep 27 21:28:39 2010 (r213232) @@ -135,7 +135,7 @@ nsphyter_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/pnaphy.c ============================================================================== --- projects/sv/sys/dev/mii/pnaphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/pnaphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -107,7 +107,7 @@ pnaphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/qsphy.c ============================================================================== --- projects/sv/sys/dev/mii/qsphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/qsphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -130,7 +130,7 @@ qsphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/rgephy.c ============================================================================== --- projects/sv/sys/dev/mii/rgephy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/rgephy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -119,7 +119,7 @@ rgephy_attach(device_t dev) sc = &rsc->mii_sc; ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/rlphy.c ============================================================================== --- projects/sv/sys/dev/mii/rlphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/rlphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -129,7 +129,7 @@ rlphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; /* * Check whether we're the RTL8201L PHY and remember so the status Modified: projects/sv/sys/dev/mii/rlswitch.c ============================================================================== --- projects/sv/sys/dev/mii/rlswitch.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/rlswitch.c Mon Sep 27 21:28:39 2010 (r213232) @@ -117,7 +117,7 @@ rlswitch_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; /* * We handle all pseudo PHY in a single instance, so never allow Modified: projects/sv/sys/dev/mii/ruephy.c ============================================================================== --- projects/sv/sys/dev/mii/ruephy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/ruephy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -108,7 +108,7 @@ ruephy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; /* * The RealTek PHY can never be isolated, so never allow non-zero Modified: projects/sv/sys/dev/mii/smcphy.c ============================================================================== --- projects/sv/sys/dev/mii/smcphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/smcphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -102,7 +102,7 @@ smcphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/tdkphy.c ============================================================================== --- projects/sv/sys/dev/mii/tdkphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/tdkphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -108,7 +108,7 @@ tdkphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); if (bootverbose) Modified: projects/sv/sys/dev/mii/truephy.c ============================================================================== --- projects/sv/sys/dev/mii/truephy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/truephy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -150,7 +150,7 @@ truephy_attach(device_t dev) if (sc->mii_anegticks == 0) sc->mii_anegticks = MII_ANEGTICKS; sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/dev/mii/ukphy.c ============================================================================== --- projects/sv/sys/dev/mii/ukphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/ukphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -122,7 +122,7 @@ ukphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); if (bootverbose) Modified: projects/sv/sys/dev/mii/xmphy.c ============================================================================== --- projects/sv/sys/dev/mii/xmphy.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/dev/mii/xmphy.c Mon Sep 27 21:28:39 2010 (r213232) @@ -107,7 +107,7 @@ xmphy_attach(device_t dev) sc = device_get_softc(dev); ma = device_get_ivars(dev); sc->mii_dev = device_get_parent(dev); - mii = device_get_softc(sc->mii_dev); + mii = ma->mii_data; LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); sc->mii_inst = mii->mii_instance; Modified: projects/sv/sys/fs/devfs/devfs.h ============================================================================== --- projects/sv/sys/fs/devfs/devfs.h Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/fs/devfs/devfs.h Mon Sep 27 21:28:39 2010 (r213232) @@ -124,6 +124,8 @@ MALLOC_DECLARE(M_DEVFS); struct componentname; +TAILQ_HEAD(devfs_dlist_head, devfs_dirent); + struct devfs_dirent { struct cdev_priv *de_cdp; int de_inode; @@ -133,10 +135,11 @@ struct devfs_dirent { #define DE_DOTDOT 0x04 #define DE_DOOMED 0x08 #define DE_COVERED 0x10 +#define DE_USER 0x20 int de_holdcnt; struct dirent *de_dirent; TAILQ_ENTRY(devfs_dirent) de_list; - TAILQ_HEAD(, devfs_dirent) de_dlist; + struct devfs_dlist_head de_dlist; struct devfs_dirent *de_dir; int de_links; mode_t de_mode; Modified: projects/sv/sys/fs/devfs/devfs_devs.c ============================================================================== --- projects/sv/sys/fs/devfs/devfs_devs.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/fs/devfs/devfs_devs.c Mon Sep 27 21:28:39 2010 (r213232) @@ -142,6 +142,27 @@ devfs_alloc(int flags) return (cdev); } +int +devfs_dev_exists(const char *name) +{ + struct cdev_priv *cdp; + + mtx_assert(&devmtx, MA_OWNED); + + TAILQ_FOREACH(cdp, &cdevp_list, cdp_list) { + if ((cdp->cdp_flags & CDP_ACTIVE) == 0) + continue; + if (devfs_pathpath(cdp->cdp_c.si_name, name) != 0) + return (1); + if (devfs_pathpath(name, cdp->cdp_c.si_name) != 0) + return (1); + } + if (devfs_dir_find(name) != 0) + return (1); + + return (0); +} + void devfs_free(struct cdev *cdev) { @@ -338,6 +359,10 @@ devfs_delete(struct devfs_mount *dm, str dd = devfs_parent_dirent(de); if (dd != NULL) DEVFS_DE_HOLD(dd); + if (de->de_flags & DE_USER) { + KASSERT(dd != NULL, ("devfs_delete: NULL dd")); + devfs_dir_unref_de(dm, dd); + } } else dd = NULL; @@ -396,10 +421,17 @@ devfs_purge(struct devfs_mount *dm, stru DEVFS_DE_HOLD(dd); for (;;) { - de = TAILQ_FIRST(&dd->de_dlist); + /* + * Use TAILQ_LAST() to remove "." and ".." last. + * We might need ".." to resolve a path in + * devfs_dir_unref_de(). + */ + de = TAILQ_LAST(&dd->de_dlist, devfs_dlist_head); if (de == NULL) break; TAILQ_REMOVE(&dd->de_dlist, de, de_list); + if (de->de_flags & DE_USER) + devfs_dir_unref_de(dm, dd); if (de->de_flags & (DE_DOT | DE_DOTDOT)) devfs_delete(dm, de, DEVFS_DEL_NORECURSE); else if (de->de_dirent->d_type == DT_DIR) Copied: projects/sv/sys/fs/devfs/devfs_dir.c (from r213231, head/sys/fs/devfs/devfs_dir.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/sv/sys/fs/devfs/devfs_dir.c Mon Sep 27 21:28:39 2010 (r213232, copy of r213231, head/sys/fs/devfs/devfs_dir.c) @@ -0,0 +1,175 @@ +/*- + * Copyright (c) 2010 Jaakko Heinonen + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * 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 THE 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 THE 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$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +struct dirlistent { + char *dir; + int refcnt; + LIST_ENTRY(dirlistent) link; +}; + +static LIST_HEAD(, dirlistent) devfs_dirlist = + LIST_HEAD_INITIALIZER(devfs_dirlist); + +static MALLOC_DEFINE(M_DEVFS4, "DEVFS4", "DEVFS directory list"); + +static struct mtx dirlist_mtx; +MTX_SYSINIT(dirlist_mtx, &dirlist_mtx, "devfs dirlist lock", MTX_DEF); + +/* Returns 1 if the path is in the directory list. */ +int +devfs_dir_find(const char *path) +{ + struct dirlistent *dle; + + mtx_lock(&dirlist_mtx); + LIST_FOREACH(dle, &devfs_dirlist, link) { + if (devfs_pathpath(dle->dir, path) != 0) { + mtx_unlock(&dirlist_mtx); + return (1); + } + } + mtx_unlock(&dirlist_mtx); + + return (0); +} + +static struct dirlistent * +devfs_dir_findent_locked(const char *dir) +{ + struct dirlistent *dle; + + mtx_assert(&dirlist_mtx, MA_OWNED); + + LIST_FOREACH(dle, &devfs_dirlist, link) { + if (strcmp(dir, dle->dir) == 0) + return (dle); + } + + return (NULL); +} + +static void +devfs_dir_ref(const char *dir) +{ + struct dirlistent *dle, *dle_new; + + if (*dir == '\0') + return; + + dle_new = malloc(sizeof(*dle), M_DEVFS4, M_WAITOK); + dle_new->dir = strdup(dir, M_DEVFS4); + dle_new->refcnt = 1; + + mtx_lock(&dirlist_mtx); + dle = devfs_dir_findent_locked(dir); + if (dle != NULL) { + dle->refcnt++; + mtx_unlock(&dirlist_mtx); + free(dle_new->dir, M_DEVFS4); + free(dle_new, M_DEVFS4); + return; + } + LIST_INSERT_HEAD(&devfs_dirlist, dle_new, link); + mtx_unlock(&dirlist_mtx); +} + +void +devfs_dir_ref_de(struct devfs_mount *dm, struct devfs_dirent *de) +{ + char dirname[SPECNAMELEN + 1], *namep; + + namep = devfs_fqpn(dirname, dm, de, NULL); + KASSERT(namep != NULL, ("devfs_ref_dir_de: NULL namep")); + + devfs_dir_ref(namep); +} + +static void +devfs_dir_unref(const char *dir) +{ + struct dirlistent *dle; + + if (*dir == '\0') + return; + + mtx_lock(&dirlist_mtx); + dle = devfs_dir_findent_locked(dir); + KASSERT(dle != NULL, ("devfs_dir_unref: dir %s not referenced", dir)); + dle->refcnt--; + KASSERT(dle->refcnt >= 0, ("devfs_dir_unref: negative refcnt")); + if (dle->refcnt == 0) { + LIST_REMOVE(dle, link); + mtx_unlock(&dirlist_mtx); + free(dle->dir, M_DEVFS4); + free(dle, M_DEVFS4); + } else + mtx_unlock(&dirlist_mtx); +} + +void +devfs_dir_unref_de(struct devfs_mount *dm, struct devfs_dirent *de) +{ + char dirname[SPECNAMELEN + 1], *namep; + + namep = devfs_fqpn(dirname, dm, de, NULL); + KASSERT(namep != NULL, ("devfs_unref_dir_de: NULL namep")); + + devfs_dir_unref(namep); +} + +/* Returns 1 if the path p1 contains the path p2. */ +int +devfs_pathpath(const char *p1, const char *p2) +{ + + for (;;p1++, p2++) { + if (*p1 != *p2) { + if (*p1 == '/' && *p2 == '\0') + return (1); + else + return (0); + } else if (*p1 == '\0') + return (1); + } + /* NOTREACHED */ +} Modified: projects/sv/sys/fs/devfs/devfs_int.h ============================================================================== --- projects/sv/sys/fs/devfs/devfs_int.h Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/fs/devfs/devfs_int.h Mon Sep 27 21:28:39 2010 (r213232) @@ -38,6 +38,7 @@ #ifdef _KERNEL struct devfs_dirent; +struct devfs_mount; struct cdev_privdata { struct file *cdpd_fp; @@ -71,11 +72,17 @@ struct cdev_priv { #define cdev2priv(c) member2struct(cdev_priv, cdp_c, c) struct cdev *devfs_alloc(int); +int devfs_dev_exists(const char *); void devfs_free(struct cdev *); void devfs_create(struct cdev *dev); void devfs_destroy(struct cdev *dev); void devfs_destroy_cdevpriv(struct cdev_privdata *p); +int devfs_dir_find(const char *); +void devfs_dir_ref_de(struct devfs_mount *, struct devfs_dirent *); +void devfs_dir_unref_de(struct devfs_mount *, struct devfs_dirent *); +int devfs_pathpath(const char *, const char *); + extern struct unrhdr *devfs_inos; extern struct mtx devmtx; extern struct mtx devfs_de_interlock; Modified: projects/sv/sys/fs/devfs/devfs_vnops.c ============================================================================== --- projects/sv/sys/fs/devfs/devfs_vnops.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/fs/devfs/devfs_vnops.c Mon Sep 27 21:28:39 2010 (r213232) @@ -1564,6 +1564,7 @@ devfs_symlink(struct vop_symlink_args *a dd = ap->a_dvp->v_data; de = devfs_newdirent(ap->a_cnp->cn_nameptr, ap->a_cnp->cn_namelen); + de->de_flags = DE_USER; de->de_uid = 0; de->de_gid = 0; de->de_mode = 0755; @@ -1587,6 +1588,7 @@ devfs_symlink(struct vop_symlink_args *a de_dotdot = TAILQ_FIRST(&dd->de_dlist); /* "." */ de_dotdot = TAILQ_NEXT(de_dotdot, de_list); /* ".." */ TAILQ_INSERT_AFTER(&dd->de_dlist, de_dotdot, de, de_list); + devfs_dir_ref_de(dmp, dd); return (devfs_allocv(de, ap->a_dvp->v_mount, LK_EXCLUSIVE, ap->a_vpp)); } Modified: projects/sv/sys/i386/i386/machdep.c ============================================================================== --- projects/sv/sys/i386/i386/machdep.c Mon Sep 27 21:10:37 2010 (r213231) +++ projects/sv/sys/i386/i386/machdep.c Mon Sep 27 21:28:39 2010 (r213232) @@ -1950,6 +1950,7 @@ sdtossd(sd, ssd) ssd->ssd_gran = sd->sd_gran; } +#ifndef XEN static int add_smap_entry(struct bios_smap *smap, vm_paddr_t *physmap, int *physmap_idxp) { @@ -2029,78 +2030,13 @@ add_smap_entry(struct bios_smap *smap, v return (1); } -/* - * Populate the (physmap) array with base/bound pairs describing the - * available physical memory in the system, then test this memory and - * build the phys_avail array describing the actually-available memory. - * - * If we cannot accurately determine the physical memory map, then use - * value from the 0xE801 call, and failing that, the RTC. - * - * Total memory size may be set by the kernel environment variable - * hw.physmem or the compile-time define MAXMEM. - * - * XXX first should be vm_paddr_t. - */ static void -getmemsize(int first) +basemem_setup(void) { - int i, off, physmap_idx, pa_indx, da_indx; - int hasbrokenint12, has_smap; - u_long physmem_tunable; - u_int extmem; - struct vm86frame vmf; - struct vm86context vmc; - vm_paddr_t pa, physmap[PHYSMAP_SIZE]; + vm_paddr_t pa; pt_entry_t *pte; - struct bios_smap *smap, *smapbase, *smapend; - u_int32_t smapsize; - quad_t dcons_addr, dcons_size; - caddr_t kmdp; - - has_smap = 0; -#ifdef XBOX - if (arch_i386_is_xbox) { - /* - * We queried the memory size before, so chop off 4MB for - * the framebuffer and inform the OS of this. - */ - physmap[0] = 0; - physmap[1] = (arch_i386_xbox_memsize * 1024 * 1024) - XBOX_FB_SIZE; - physmap_idx = 0; - goto physmap_done; - } -#endif -#if defined(XEN) - has_smap = 0; - Maxmem = xen_start_info->nr_pages - init_first; - physmem = Maxmem; - basemem = 0; - physmap[0] = init_first << PAGE_SHIFT; - physmap[1] = ptoa(Maxmem) - round_page(MSGBUF_SIZE); - physmap_idx = 0; - goto physmap_done; -#endif - hasbrokenint12 = 0; - TUNABLE_INT_FETCH("hw.hasbrokenint12", &hasbrokenint12); - bzero(&vmf, sizeof(vmf)); - bzero(physmap, sizeof(physmap)); - basemem = 0; - - /* - * Some newer BIOSes has broken INT 12H implementation which cause - * kernel panic immediately. In this case, we need to scan SMAP - * with INT 15:E820 first, then determine base memory size. - */ - if (hasbrokenint12) { - goto int15e820; - } + int i; - /* - * Perform "base memory" related probes & setup - */ - vm86_intcall(0x12, &vmf); - basemem = vmf.vmf_ax; if (basemem > 640) { printf("Preposterous BIOS basemem of %uK, truncating to 640K\n", basemem); @@ -2140,12 +2076,69 @@ getmemsize(int first) pte = (pt_entry_t *)vm86paddr; for (i = basemem / 4; i < 160; i++) pte[i] = (i << PAGE_SHIFT) | PG_V | PG_RW | PG_U; +} +#endif + +/* + * Populate the (physmap) array with base/bound pairs describing the + * available physical memory in the system, then test this memory and + * build the phys_avail array describing the actually-available memory. + * + * If we cannot accurately determine the physical memory map, then use + * value from the 0xE801 call, and failing that, the RTC. + * + * Total memory size may be set by the kernel environment variable + * hw.physmem or the compile-time define MAXMEM. + * + * XXX first should be vm_paddr_t. + */ +static void +getmemsize(int first) +{ + int has_smap, off, physmap_idx, pa_indx, da_indx; + u_long physmem_tunable; + vm_paddr_t physmap[PHYSMAP_SIZE]; + pt_entry_t *pte; + quad_t dcons_addr, dcons_size; +#ifndef XEN + int hasbrokenint12, i; + u_int extmem; + struct vm86frame vmf; + struct vm86context vmc; + vm_paddr_t pa; + struct bios_smap *smap, *smapbase, *smapend; + u_int32_t smapsize; + caddr_t kmdp; +#endif + + has_smap = 0; +#if defined(XEN) + Maxmem = xen_start_info->nr_pages - init_first; + physmem = Maxmem; + basemem = 0; + physmap[0] = init_first << PAGE_SHIFT; + physmap[1] = ptoa(Maxmem) - round_page(MSGBUF_SIZE); + physmap_idx = 0; +#else +#ifdef XBOX + if (arch_i386_is_xbox) { + /* + * We queried the memory size before, so chop off 4MB for + * the framebuffer and inform the OS of this. + */ + physmap[0] = 0; + physmap[1] = (arch_i386_xbox_memsize * 1024 * 1024) - XBOX_FB_SIZE; + physmap_idx = 0; + goto physmap_done; + } +#endif + bzero(&vmf, sizeof(vmf)); + bzero(physmap, sizeof(physmap)); + basemem = 0; -int15e820: /* - * Fetch the memory map with INT 15:E820. First, check to see - * if the loader supplied it and use that if so. Otherwise, - * use vm86 to invoke the BIOS call directly. + * Check if the loader supplied an SMAP memory map. If so, + * use that and do not make any VM86 calls. */ physmap_idx = 0; smapbase = NULL; @@ -2156,9 +2149,10 @@ int15e820: smapbase = (struct bios_smap *)preload_search_info(kmdp, MODINFO_METADATA | MODINFOMD_SMAP); if (smapbase != NULL) { - /* subr_module.c says: + /* + * subr_module.c says: * "Consumer may safely assume that size value precedes data." - * ie: an int32_t immediately precedes smap. + * ie: an int32_t immediately precedes SMAP. */ smapsize = *((u_int32_t *)smapbase - 1); smapend = (struct bios_smap *)((uintptr_t)smapbase + smapsize); @@ -2167,33 +2161,50 @@ int15e820: for (smap = smapbase; smap < smapend; smap++) if (!add_smap_entry(smap, physmap, &physmap_idx)) break; - } else { - /* - * map page 1 R/W into the kernel page table so we can use it - * as a buffer. The kernel will unmap this page later. - */ - pmap_kenter(KERNBASE + (1 << PAGE_SHIFT), 1 << PAGE_SHIFT); - vmc.npages = 0; - smap = (void *)vm86_addpage(&vmc, 1, KERNBASE + - (1 << PAGE_SHIFT)); - vm86_getptr(&vmc, (vm_offset_t)smap, &vmf.vmf_es, &vmf.vmf_di); - - vmf.vmf_ebx = 0; - do { - vmf.vmf_eax = 0xE820; - vmf.vmf_edx = SMAP_SIG; - vmf.vmf_ecx = sizeof(struct bios_smap); - i = vm86_datacall(0x15, &vmf, &vmc); - if (i || vmf.vmf_eax != SMAP_SIG) - break; - has_smap = 1; - if (!add_smap_entry(smap, physmap, &physmap_idx)) - break; - } while (vmf.vmf_ebx != 0); + goto have_smap; } /* - * Perform "base memory" related probes & setup based on SMAP + * Some newer BIOSes have a broken INT 12H implementation *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Sep 27 23:00:02 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CAE0106564A; Mon, 27 Sep 2010 23:00:02 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 721208FC12; Mon, 27 Sep 2010 23:00:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8RN02Kk052253; Mon, 27 Sep 2010 23:00:02 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8RN02Pl052252; Mon, 27 Sep 2010 23:00:02 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009272300.o8RN02Pl052252@svn.freebsd.org> From: Attilio Rao Date: Mon, 27 Sep 2010 23:00:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213233 - projects/sv/sys/amd64/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 23:00:02 -0000 Author: attilio Date: Mon Sep 27 23:00:02 2010 New Revision: 213233 URL: http://svn.freebsd.org/changeset/base/213233 Log: Fix a line addition that crept-in. Modified: projects/sv/sys/amd64/conf/GENERIC Modified: projects/sv/sys/amd64/conf/GENERIC ============================================================================== --- projects/sv/sys/amd64/conf/GENERIC Mon Sep 27 21:28:39 2010 (r213232) +++ projects/sv/sys/amd64/conf/GENERIC Mon Sep 27 23:00:02 2010 (r213233) @@ -27,7 +27,6 @@ options SCHED_ULE # ULE scheduler options PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols -options NETDUMP_CLIENT # IPv6 communications protocols options SCTP # Stream Control Transmission Protocol options FFS # Berkeley Fast Filesystem options SOFTUPDATES # Enable FFS soft updates support From owner-svn-src-projects@FreeBSD.ORG Tue Sep 28 12:51:19 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 724891065672; Tue, 28 Sep 2010 12:51:19 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5E8CE8FC22; Tue, 28 Sep 2010 12:51:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8SCpIiI074877; Tue, 28 Sep 2010 12:51:18 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8SCpHvC074866; Tue, 28 Sep 2010 12:51:17 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009281251.o8SCpHvC074866@svn.freebsd.org> From: Attilio Rao Date: Tue, 28 Sep 2010 12:51:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213247 - in projects/sv: contrib/top include lib/libstand lib/libthr/thread sbin/geom/class/part share/mk sys/compat/linprocfs sys/conf sys/dev/e1000 sys/dev/gpio sys/kern sys/mips/ath... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 Sep 2010 12:51:19 -0000 Author: attilio Date: Tue Sep 28 12:51:17 2010 New Revision: 213247 URL: http://svn.freebsd.org/changeset/base/213247 Log: MFC @ 213246 Added: projects/sv/sys/dev/gpio/ - copied from r213246, head/sys/dev/gpio/ projects/sv/sys/mips/atheros/ar71xx_gpio.c - copied unchanged from r213246, head/sys/mips/atheros/ar71xx_gpio.c projects/sv/sys/mips/atheros/ar71xx_gpiovar.h - copied unchanged from r213246, head/sys/mips/atheros/ar71xx_gpiovar.h projects/sv/sys/sys/gpio.h - copied unchanged from r213246, head/sys/sys/gpio.h projects/sv/usr.sbin/gpioctl/ - copied from r213246, head/usr.sbin/gpioctl/ Modified: projects/sv/include/pthread.h projects/sv/lib/libstand/net.h projects/sv/lib/libthr/thread/thr_cond.c projects/sv/lib/libthr/thread/thr_init.c projects/sv/lib/libthr/thread/thr_mutex.c projects/sv/lib/libthr/thread/thr_private.h projects/sv/lib/libthr/thread/thr_rwlock.c projects/sv/sbin/geom/class/part/gpart.8 projects/sv/sys/compat/linprocfs/linprocfs.c projects/sv/sys/conf/files projects/sv/sys/dev/e1000/e1000_82571.c projects/sv/sys/dev/e1000/e1000_82571.h projects/sv/sys/dev/e1000/e1000_82575.c projects/sv/sys/dev/e1000/e1000_82575.h projects/sv/sys/dev/e1000/e1000_api.c projects/sv/sys/dev/e1000/e1000_api.h projects/sv/sys/dev/e1000/e1000_defines.h projects/sv/sys/dev/e1000/e1000_hw.h projects/sv/sys/dev/e1000/e1000_ich8lan.c projects/sv/sys/dev/e1000/e1000_ich8lan.h projects/sv/sys/dev/e1000/e1000_mac.c projects/sv/sys/dev/e1000/e1000_nvm.c projects/sv/sys/dev/e1000/e1000_nvm.h projects/sv/sys/dev/e1000/e1000_phy.c projects/sv/sys/dev/e1000/e1000_phy.h projects/sv/sys/dev/e1000/e1000_regs.h projects/sv/sys/dev/e1000/if_em.c projects/sv/sys/dev/e1000/if_em.h projects/sv/sys/dev/e1000/if_igb.c projects/sv/sys/dev/e1000/if_igb.h projects/sv/sys/dev/e1000/if_lem.c projects/sv/sys/kern/subr_trap.c projects/sv/sys/mips/atheros/ar71xxreg.h projects/sv/sys/mips/atheros/files.ar71xx projects/sv/sys/mips/conf/AR71XX projects/sv/sys/mips/conf/AR71XX.hints projects/sv/usr.sbin/Makefile Directory Properties: projects/sv/ (props changed) projects/sv/cddl/contrib/opensolaris/ (props changed) projects/sv/contrib/bind9/ (props changed) projects/sv/contrib/ee/ (props changed) projects/sv/contrib/expat/ (props changed) projects/sv/contrib/file/ (props changed) projects/sv/contrib/gdb/ (props changed) projects/sv/contrib/gdtoa/ (props changed) projects/sv/contrib/gnu-sort/ (props changed) projects/sv/contrib/groff/ (props changed) projects/sv/contrib/less/ (props changed) projects/sv/contrib/libpcap/ (props changed) projects/sv/contrib/llvm/ (props changed) projects/sv/contrib/llvm/tools/clang/ (props changed) projects/sv/contrib/ncurses/ (props changed) projects/sv/contrib/netcat/ (props changed) projects/sv/contrib/ntp/ (props changed) projects/sv/contrib/one-true-awk/ (props changed) projects/sv/contrib/openbsm/ (props changed) projects/sv/contrib/openpam/ (props changed) projects/sv/contrib/pf/ (props changed) projects/sv/contrib/sendmail/ (props changed) projects/sv/contrib/tcpdump/ (props changed) projects/sv/contrib/tcsh/ (props changed) projects/sv/contrib/top/ (props changed) projects/sv/contrib/top/install-sh (props changed) projects/sv/contrib/tzcode/stdtime/ (props changed) projects/sv/contrib/tzcode/zic/ (props changed) projects/sv/contrib/tzdata/ (props changed) projects/sv/contrib/wpa/ (props changed) projects/sv/crypto/openssh/ (props changed) projects/sv/crypto/openssl/ (props changed) projects/sv/lib/libc/ (props changed) projects/sv/lib/libc/stdtime/ (props changed) projects/sv/lib/libutil/ (props changed) projects/sv/lib/libz/ (props changed) projects/sv/sbin/ (props changed) projects/sv/sbin/ipfw/ (props changed) projects/sv/share/mk/bsd.arch.inc.mk (props changed) projects/sv/share/zoneinfo/ (props changed) projects/sv/sys/ (props changed) projects/sv/sys/amd64/include/xen/ (props changed) projects/sv/sys/cddl/contrib/opensolaris/ (props changed) projects/sv/sys/contrib/dev/acpica/ (props changed) projects/sv/sys/contrib/pf/ (props changed) projects/sv/sys/contrib/x86emu/ (props changed) projects/sv/sys/dev/xen/xenpci/ (props changed) projects/sv/usr.bin/calendar/ (props changed) projects/sv/usr.bin/csup/ (props changed) projects/sv/usr.bin/procstat/ (props changed) projects/sv/usr.sbin/zic/ (props changed) Modified: projects/sv/include/pthread.h ============================================================================== --- projects/sv/include/pthread.h Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/include/pthread.h Tue Sep 28 12:51:17 2010 (r213247) @@ -98,7 +98,7 @@ * Static initialization values. */ #define PTHREAD_MUTEX_INITIALIZER NULL -#define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP NULL +#define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP ((pthread_mutex_t)1) #define PTHREAD_COND_INITIALIZER NULL #define PTHREAD_RWLOCK_INITIALIZER NULL Modified: projects/sv/lib/libstand/net.h ============================================================================== --- projects/sv/lib/libstand/net.h Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/lib/libstand/net.h Tue Sep 28 12:51:17 2010 (r213247) @@ -50,7 +50,7 @@ #define MACPY(s, d) bcopy((char *)s, (char *)d, 6) -#define MAXTMO 20 /* seconds */ +#define MAXTMO 120 /* seconds */ #define MINTMO 2 /* seconds */ #define FNAME_SIZE 128 Modified: projects/sv/lib/libthr/thread/thr_cond.c ============================================================================== --- projects/sv/lib/libthr/thread/thr_cond.c Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/lib/libthr/thread/thr_cond.c Tue Sep 28 12:51:17 2010 (r213247) @@ -104,6 +104,19 @@ init_static(struct pthread *thread, pthr return (ret); } +#define CHECK_AND_INIT_COND \ + if (__predict_false((cv = (*cond)) <= THR_COND_DESTROYED)) { \ + if (cv == THR_COND_INITIALIZER) { \ + int ret; \ + ret = init_static(_get_curthread(), cond); \ + if (ret) \ + return (ret); \ + } else if (cv == THR_COND_DESTROYED) { \ + return (EINVAL); \ + } \ + cv = *cond; \ + } + int _pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *cond_attr) { @@ -119,16 +132,14 @@ _pthread_cond_destroy(pthread_cond_t *co struct pthread_cond *cv; int rval = 0; - if (*cond == NULL) + if ((cv = *cond) == THR_COND_INITIALIZER) + rval = 0; + else if (cv == THR_COND_DESTROYED) rval = EINVAL; else { cv = *cond; THR_UMUTEX_LOCK(curthread, &cv->c_lock); - /* - * NULL the caller's pointer now that the condition - * variable has been destroyed: - */ - *cond = NULL; + *cond = THR_COND_DESTROYED; THR_UMUTEX_UNLOCK(curthread, &cv->c_lock); /* @@ -137,7 +148,6 @@ _pthread_cond_destroy(pthread_cond_t *co */ free(cv); } - /* Return the completion status: */ return (rval); } @@ -178,22 +188,18 @@ cond_wait_common(pthread_cond_t *cond, p struct timespec ts, ts2, *tsp; struct cond_cancel_info info; pthread_cond_t cv; - int ret = 0; + int ret; /* * If the condition variable is statically initialized, * perform the dynamic initialization: */ - if (__predict_false(*cond == NULL && - (ret = init_static(curthread, cond)) != 0)) - return (ret); - - _thr_testcancel(curthread); + CHECK_AND_INIT_COND cv = *cond; THR_UMUTEX_LOCK(curthread, &cv->c_lock); ret = _mutex_cv_unlock(mutex, &info.count); - if (ret) { + if (__predict_false(ret != 0)) { THR_UMUTEX_UNLOCK(curthread, &cv->c_lock); return (ret); } @@ -273,11 +279,8 @@ cond_signal_common(pthread_cond_t *cond, * If the condition variable is statically initialized, perform dynamic * initialization. */ - if (__predict_false(*cond == NULL && - (ret = init_static(curthread, cond)) != 0)) - return (ret); + CHECK_AND_INIT_COND - cv = *cond; THR_UMUTEX_LOCK(curthread, &cv->c_lock); if (!broadcast) ret = _thr_ucond_signal(&cv->c_kerncv); Modified: projects/sv/lib/libthr/thread/thr_init.c ============================================================================== --- projects/sv/lib/libthr/thread/thr_init.c Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/lib/libthr/thread/thr_init.c Tue Sep 28 12:51:17 2010 (r213247) @@ -92,6 +92,12 @@ struct pthread_mutex_attr _pthread_mutex .m_ceiling = 0 }; +struct pthread_mutex_attr _pthread_mutexattr_adaptive_default = { + .m_type = PTHREAD_MUTEX_ADAPTIVE_NP, + .m_protocol = PTHREAD_PRIO_NONE, + .m_ceiling = 0 +}; + /* Default condition variable attributes: */ struct pthread_cond_attr _pthread_condattr_default = { .c_pshared = PTHREAD_PROCESS_PRIVATE, Modified: projects/sv/lib/libthr/thread/thr_mutex.c ============================================================================== --- projects/sv/lib/libthr/thread/thr_mutex.c Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/lib/libthr/thread/thr_mutex.c Tue Sep 28 12:51:17 2010 (r213247) @@ -124,7 +124,7 @@ __weak_reference(_pthread_mutex_isowned_ static int mutex_init(pthread_mutex_t *mutex, - const pthread_mutexattr_t *mutex_attr, + const struct pthread_mutex_attr *mutex_attr, void *(calloc_cb)(size_t, size_t)) { const struct pthread_mutex_attr *attr; @@ -133,7 +133,7 @@ mutex_init(pthread_mutex_t *mutex, if (mutex_attr == NULL) { attr = &_pthread_mutexattr_default; } else { - attr = *mutex_attr; + attr = mutex_attr; if (attr->m_type < PTHREAD_MUTEX_ERRORCHECK || attr->m_type >= PTHREAD_MUTEX_TYPE_MAX) return (EINVAL); @@ -153,6 +153,10 @@ mutex_init(pthread_mutex_t *mutex, pmutex->m_yieldloops = 0; MUTEX_INIT_LINK(pmutex); switch(attr->m_protocol) { + case PTHREAD_PRIO_NONE: + pmutex->m_lock.m_owner = UMUTEX_UNOWNED; + pmutex->m_lock.m_flags = 0; + break; case PTHREAD_PRIO_INHERIT: pmutex->m_lock.m_owner = UMUTEX_UNOWNED; pmutex->m_lock.m_flags = UMUTEX_PRIO_INHERIT; @@ -162,9 +166,6 @@ mutex_init(pthread_mutex_t *mutex, pmutex->m_lock.m_flags = UMUTEX_PRIO_PROTECT; pmutex->m_lock.m_ceilings[0] = attr->m_ceiling; break; - case PTHREAD_PRIO_NONE: - pmutex->m_lock.m_owner = UMUTEX_UNOWNED; - pmutex->m_lock.m_flags = 0; } if (pmutex->m_type == PTHREAD_MUTEX_ADAPTIVE_NP) { @@ -184,11 +185,12 @@ init_static(struct pthread *thread, pthr THR_LOCK_ACQUIRE(thread, &_mutex_static_lock); - if (*mutex == NULL) - ret = mutex_init(mutex, NULL, calloc); + if (*mutex == THR_MUTEX_INITIALIZER) + ret = mutex_init(mutex, &_pthread_mutexattr_default, calloc); + else if (*mutex == THR_ADAPTIVE_MUTEX_INITIALIZER) + ret = mutex_init(mutex, &_pthread_mutexattr_adaptive_default, calloc); else ret = 0; - THR_LOCK_RELEASE(thread, &_mutex_static_lock); return (ret); @@ -210,7 +212,7 @@ int __pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutex_attr) { - return mutex_init(mutex, mutex_attr, calloc); + return mutex_init(mutex, mutex_attr ? *mutex_attr : NULL, calloc); } /* This function is used internally by malloc. */ @@ -223,10 +225,9 @@ _pthread_mutex_init_calloc_cb(pthread_mu .m_protocol = PTHREAD_PRIO_NONE, .m_ceiling = 0 }; - static const struct pthread_mutex_attr *pattr = &attr; int ret; - ret = mutex_init(mutex, (pthread_mutexattr_t *)&pattr, calloc_cb); + ret = mutex_init(mutex, &attr, calloc_cb); if (ret == 0) (*mutex)->m_private = 1; return (ret); @@ -261,19 +262,21 @@ _pthread_mutex_destroy(pthread_mutex_t * uint32_t id; int ret = 0; - if (__predict_false(*mutex == NULL)) + m = *mutex; + if (m < THR_MUTEX_DESTROYED) { + ret = 0; + } else if (m == THR_MUTEX_DESTROYED) { ret = EINVAL; - else { + } else { id = TID(curthread); /* * Try to lock the mutex structure, we only need to * try once, if failed, the mutex is in used. */ - ret = _thr_umutex_trylock(&(*mutex)->m_lock, id); + ret = _thr_umutex_trylock(&m->m_lock, id); if (ret) return (ret); - m = *mutex; /* * Check mutex other fields to see if this mutex is * in use. Mostly for prority mutex types, or there @@ -285,11 +288,7 @@ _pthread_mutex_destroy(pthread_mutex_t * _thr_umutex_unlock(&m->m_lock, id); ret = EBUSY; } else { - /* - * Save a pointer to the mutex so it can be free'd - * and set the caller's pointer to NULL. - */ - *mutex = NULL; + *mutex = THR_MUTEX_DESTROYED; if (m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) set_inherited_priority(curthread, m); @@ -314,19 +313,30 @@ _pthread_mutex_destroy(pthread_mutex_t * TAILQ_INSERT_TAIL(&curthread->pp_mutexq, (m), m_qe);\ } while (0) +#define CHECK_AND_INIT_MUTEX \ + if (__predict_false((m = *mutex) <= THR_MUTEX_DESTROYED)) { \ + if (m == THR_MUTEX_DESTROYED) \ + return (EINVAL); \ + int ret; \ + ret = init_static(_get_curthread(), mutex); \ + if (ret) \ + return (ret); \ + m = *mutex; \ + } + static int -mutex_trylock_common(struct pthread *curthread, pthread_mutex_t *mutex) +mutex_trylock_common(pthread_mutex_t *mutex) { - struct pthread_mutex *m; + struct pthread *curthread = _get_curthread(); + struct pthread_mutex *m = *mutex; uint32_t id; int ret; id = TID(curthread); - m = *mutex; if (m->m_private) THR_CRITICAL_ENTER(curthread); ret = _thr_umutex_trylock(&m->m_lock, id); - if (ret == 0) { + if (__predict_true(ret == 0)) { ENQUEUE_MUTEX(curthread, m); } else if (m->m_owner == curthread) { ret = mutex_self_trylock(m); @@ -339,19 +349,11 @@ mutex_trylock_common(struct pthread *cur int __pthread_mutex_trylock(pthread_mutex_t *mutex) { - struct pthread *curthread = _get_curthread(); - int ret; + struct pthread_mutex *m; - /* - * If the mutex is statically initialized, perform the dynamic - * initialization: - */ - if (__predict_false(*mutex == NULL)) { - ret = init_static(curthread, mutex); - if (__predict_false(ret)) - return (ret); - } - return (mutex_trylock_common(curthread, mutex)); + CHECK_AND_INIT_MUTEX + + return (mutex_trylock_common(mutex)); } static int @@ -372,8 +374,10 @@ mutex_lock_sleep(struct pthread *curthre * the lock is likely to be released quickly and it is * faster than entering the kernel */ - if (m->m_lock.m_flags & (UMUTEX_PRIO_PROTECT | UMUTEX_PRIO_INHERIT)) - goto sleep_in_kernel; + if (__predict_false( + (m->m_lock.m_flags & + (UMUTEX_PRIO_PROTECT | UMUTEX_PRIO_INHERIT)) != 0)) + goto sleep_in_kernel; if (!_thr_is_smp) goto yield_loop; @@ -421,9 +425,10 @@ done: } static inline int -mutex_lock_common(struct pthread *curthread, struct pthread_mutex *m, +mutex_lock_common(struct pthread_mutex *m, const struct timespec *abstime) { + struct pthread *curthread = _get_curthread(); int ret; if (m->m_private) @@ -442,50 +447,25 @@ mutex_lock_common(struct pthread *curthr int __pthread_mutex_lock(pthread_mutex_t *mutex) { - struct pthread *curthread; - struct pthread_mutex *m; - int ret; + struct pthread_mutex *m; _thr_check_init(); - curthread = _get_curthread(); + CHECK_AND_INIT_MUTEX - /* - * If the mutex is statically initialized, perform the dynamic - * initialization: - */ - if (__predict_false((m = *mutex) == NULL)) { - ret = init_static(curthread, mutex); - if (__predict_false(ret)) - return (ret); - m = *mutex; - } - - return (mutex_lock_common(curthread, m, NULL)); + return (mutex_lock_common(m, NULL)); } int __pthread_mutex_timedlock(pthread_mutex_t *mutex, const struct timespec *abstime) { - struct pthread *curthread; - struct pthread_mutex *m; - int ret; + struct pthread_mutex *m; _thr_check_init(); - curthread = _get_curthread(); + CHECK_AND_INIT_MUTEX - /* - * If the mutex is statically initialized, perform the dynamic - * initialization: - */ - if (__predict_false((m = *mutex) == NULL)) { - ret = init_static(curthread, mutex); - if (__predict_false(ret)) - return (ret); - m = *mutex; - } - return (mutex_lock_common(curthread, m, abstime)); + return (mutex_lock_common(m, abstime)); } int @@ -495,20 +475,22 @@ _pthread_mutex_unlock(pthread_mutex_t *m } int -_mutex_cv_lock(pthread_mutex_t *m, int count) +_mutex_cv_lock(pthread_mutex_t *mutex, int count) { + struct pthread_mutex *m; int ret; - ret = mutex_lock_common(_get_curthread(), *m, NULL); + m = *mutex; + ret = mutex_lock_common(m, NULL); if (ret == 0) { - (*m)->m_refcount--; - (*m)->m_count += count; + m->m_refcount--; + m->m_count += count; } return (ret); } static int -mutex_self_trylock(pthread_mutex_t m) +mutex_self_trylock(struct pthread_mutex *m) { int ret; @@ -536,7 +518,7 @@ mutex_self_trylock(pthread_mutex_t m) } static int -mutex_self_lock(pthread_mutex_t m, const struct timespec *abstime) +mutex_self_lock(struct pthread_mutex *m, const struct timespec *abstime) { struct timespec ts1, ts2; int ret; @@ -611,8 +593,12 @@ mutex_unlock_common(pthread_mutex_t *mut struct pthread_mutex *m; uint32_t id; - if (__predict_false((m = *mutex) == NULL)) - return (EINVAL); + m = *mutex; + if (__predict_false(m <= THR_MUTEX_DESTROYED)) { + if (m == THR_MUTEX_DESTROYED) + return (EINVAL); + return (EPERM); + } /* * Check if the running thread is not the owner of the mutex. @@ -629,7 +615,7 @@ mutex_unlock_common(pthread_mutex_t *mut m->m_owner = NULL; /* Remove the mutex from the threads queue. */ MUTEX_ASSERT_IS_OWNED(m); - if ((m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) + if (__predict_true((m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0)) TAILQ_REMOVE(&curthread->mutexq, m, m_qe); else { TAILQ_REMOVE(&curthread->pp_mutexq, m, m_qe); @@ -649,9 +635,7 @@ _mutex_cv_unlock(pthread_mutex_t *mutex, struct pthread *curthread = _get_curthread(); struct pthread_mutex *m; - if (__predict_false((m = *mutex) == NULL)) - return (EINVAL); - + m = *mutex; /* * Check if the running thread is not the owner of the mutex. */ @@ -667,7 +651,7 @@ _mutex_cv_unlock(pthread_mutex_t *mutex, m->m_owner = NULL; /* Remove the mutex from the threads queue. */ MUTEX_ASSERT_IS_OWNED(m); - if ((m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) + if (__predict_true((m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0)) TAILQ_REMOVE(&curthread->mutexq, m, m_qe); else { TAILQ_REMOVE(&curthread->pp_mutexq, m, m_qe); @@ -685,18 +669,19 @@ int _pthread_mutex_getprioceiling(pthread_mutex_t *mutex, int *prioceiling) { + struct pthread_mutex *m; int ret; - if (*mutex == NULL) - ret = EINVAL; - else if (((*mutex)->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) + m = *mutex; + if ((m <= THR_MUTEX_DESTROYED) || + (m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) ret = EINVAL; else { - *prioceiling = (*mutex)->m_lock.m_ceilings[0]; + *prioceiling = m->m_lock.m_ceilings[0]; ret = 0; } - return(ret); + return (ret); } int @@ -708,7 +693,8 @@ _pthread_mutex_setprioceiling(pthread_mu int ret; m = *mutex; - if (m == NULL || (m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) + if ((m <= THR_MUTEX_DESTROYED) || + (m->m_lock.m_flags & UMUTEX_PRIO_PROTECT) == 0) return (EINVAL); ret = __thr_umutex_set_ceiling(&m->m_lock, ceiling, old_ceiling); @@ -737,61 +723,54 @@ _pthread_mutex_setprioceiling(pthread_mu int _pthread_mutex_getspinloops_np(pthread_mutex_t *mutex, int *count) { - if (*mutex == NULL) - return (EINVAL); - *count = (*mutex)->m_spinloops; + struct pthread_mutex *m; + + CHECK_AND_INIT_MUTEX + + *count = m->m_spinloops; return (0); } int __pthread_mutex_setspinloops_np(pthread_mutex_t *mutex, int count) { - struct pthread *curthread = _get_curthread(); - int ret; + struct pthread_mutex *m; - if (__predict_false(*mutex == NULL)) { - ret = init_static(curthread, mutex); - if (__predict_false(ret)) - return (ret); - } - (*mutex)->m_spinloops = count; + CHECK_AND_INIT_MUTEX + + m->m_spinloops = count; return (0); } int _pthread_mutex_getyieldloops_np(pthread_mutex_t *mutex, int *count) { - if (*mutex == NULL) - return (EINVAL); - *count = (*mutex)->m_yieldloops; + struct pthread_mutex *m; + + CHECK_AND_INIT_MUTEX + + *count = m->m_yieldloops; return (0); } int __pthread_mutex_setyieldloops_np(pthread_mutex_t *mutex, int count) { - struct pthread *curthread = _get_curthread(); - int ret; + struct pthread_mutex *m; - if (__predict_false(*mutex == NULL)) { - ret = init_static(curthread, mutex); - if (__predict_false(ret)) - return (ret); - } - (*mutex)->m_yieldloops = count; + CHECK_AND_INIT_MUTEX + + m->m_yieldloops = count; return (0); } int _pthread_mutex_isowned_np(pthread_mutex_t *mutex) { - struct pthread *curthread = _get_curthread(); - int ret; + struct pthread_mutex *m; - if (__predict_false(*mutex == NULL)) { - ret = init_static(curthread, mutex); - if (__predict_false(ret)) - return (ret); - } - return ((*mutex)->m_owner == curthread); + m = *mutex; + if (m <= THR_MUTEX_DESTROYED) + return (0); + return (m->m_owner == _get_curthread()); } Modified: projects/sv/lib/libthr/thread/thr_private.h ============================================================================== --- projects/sv/lib/libthr/thread/thr_private.h Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/lib/libthr/thread/thr_private.h Tue Sep 28 12:51:17 2010 (r213247) @@ -125,6 +125,15 @@ TAILQ_HEAD(mutex_queue, pthread_mutex); } \ } while (0) +/* XXX These values should be same as those defined in pthread.h */ +#define THR_MUTEX_INITIALIZER ((struct pthread_mutex *)NULL) +#define THR_ADAPTIVE_MUTEX_INITIALIZER ((struct pthread_mutex *)1) +#define THR_MUTEX_DESTROYED ((struct pthread_mutex *)2) +#define THR_COND_INITIALIZER ((struct pthread_cond *)NULL) +#define THR_COND_DESTROYED ((struct pthread_cond *)1) +#define THR_RWLOCK_INITIALIZER ((struct pthread_rwlock *)NULL) +#define THR_RWLOCK_DESTROYED ((struct pthread_rwlock *)1) + struct pthread_mutex { /* * Lock for accesses to this structure. @@ -627,6 +636,7 @@ extern struct pthread_attr _pthread_attr /* Default mutex attributes: */ extern struct pthread_mutex_attr _pthread_mutexattr_default __hidden; +extern struct pthread_mutex_attr _pthread_mutexattr_adaptive_default __hidden; /* Default condition variable attributes: */ extern struct pthread_cond_attr _pthread_condattr_default __hidden; Modified: projects/sv/lib/libthr/thread/thr_rwlock.c ============================================================================== --- projects/sv/lib/libthr/thread/thr_rwlock.c Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/lib/libthr/thread/thr_rwlock.c Tue Sep 28 12:51:17 2010 (r213247) @@ -45,6 +45,19 @@ __weak_reference(_pthread_rwlock_unlock, __weak_reference(_pthread_rwlock_wrlock, pthread_rwlock_wrlock); __weak_reference(_pthread_rwlock_timedwrlock, pthread_rwlock_timedwrlock); +#define CHECK_AND_INIT_RWLOCK \ + if (__predict_false((prwlock = (*rwlock)) <= THR_RWLOCK_DESTROYED)) { \ + if (prwlock == THR_RWLOCK_INITIALIZER) { \ + int ret; \ + ret = init_static(_get_curthread(), rwlock); \ + if (ret) \ + return (ret); \ + } else if (prwlock == THR_RWLOCK_DESTROYED) { \ + return (EINVAL); \ + } \ + prwlock = *rwlock; \ + } + /* * Prototypes */ @@ -64,15 +77,16 @@ rwlock_init(pthread_rwlock_t *rwlock, co int _pthread_rwlock_destroy (pthread_rwlock_t *rwlock) { + pthread_rwlock_t prwlock; int ret; - if (rwlock == NULL) + prwlock = *rwlock; + if (prwlock == THR_RWLOCK_INITIALIZER) + ret = 0; + else if (prwlock == THR_RWLOCK_DESTROYED) ret = EINVAL; else { - pthread_rwlock_t prwlock; - - prwlock = *rwlock; - *rwlock = NULL; + *rwlock = THR_RWLOCK_DESTROYED; free(prwlock); ret = 0; @@ -87,7 +101,7 @@ init_static(struct pthread *thread, pthr THR_LOCK_ACQUIRE(thread, &_rwlock_static_lock); - if (*rwlock == NULL) + if (*rwlock == THR_RWLOCK_INITIALIZER) ret = rwlock_init(rwlock, NULL); else ret = 0; @@ -113,18 +127,7 @@ rwlock_rdlock_common(pthread_rwlock_t *r int flags; int ret; - if (__predict_false(rwlock == NULL)) - return (EINVAL); - - prwlock = *rwlock; - - /* check for static initialization */ - if (__predict_false(prwlock == NULL)) { - if ((ret = init_static(curthread, rwlock)) != 0) - return (ret); - - prwlock = *rwlock; - } + CHECK_AND_INIT_RWLOCK if (curthread->rdlock_count) { /* @@ -206,18 +209,7 @@ _pthread_rwlock_tryrdlock (pthread_rwloc int flags; int ret; - if (__predict_false(rwlock == NULL)) - return (EINVAL); - - prwlock = *rwlock; - - /* check for static initialization */ - if (__predict_false(prwlock == NULL)) { - if ((ret = init_static(curthread, rwlock)) != 0) - return (ret); - - prwlock = *rwlock; - } + CHECK_AND_INIT_RWLOCK if (curthread->rdlock_count) { /* @@ -250,18 +242,7 @@ _pthread_rwlock_trywrlock (pthread_rwloc pthread_rwlock_t prwlock; int ret; - if (__predict_false(rwlock == NULL)) - return (EINVAL); - - prwlock = *rwlock; - - /* check for static initialization */ - if (__predict_false(prwlock == NULL)) { - if ((ret = init_static(curthread, rwlock)) != 0) - return (ret); - - prwlock = *rwlock; - } + CHECK_AND_INIT_RWLOCK ret = _thr_rwlock_trywrlock(&prwlock->lock); if (ret == 0) @@ -277,18 +258,7 @@ rwlock_wrlock_common (pthread_rwlock_t * struct timespec ts, ts2, *tsp; int ret; - if (__predict_false(rwlock == NULL)) - return (EINVAL); - - prwlock = *rwlock; - - /* check for static initialization */ - if (__predict_false(prwlock == NULL)) { - if ((ret = init_static(curthread, rwlock)) != 0) - return (ret); - - prwlock = *rwlock; - } + CHECK_AND_INIT_RWLOCK /* * POSIX said the validity of the abstimeout parameter need @@ -356,12 +326,9 @@ _pthread_rwlock_unlock (pthread_rwlock_t int ret; int32_t state; - if (__predict_false(rwlock == NULL)) - return (EINVAL); - prwlock = *rwlock; - if (__predict_false(prwlock == NULL)) + if (__predict_false(prwlock <= THR_RWLOCK_DESTROYED)) return (EINVAL); state = prwlock->lock.rw_state; Modified: projects/sv/sbin/geom/class/part/gpart.8 ============================================================================== --- projects/sv/sbin/geom/class/part/gpart.8 Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/sbin/geom/class/part/gpart.8 Tue Sep 28 12:51:17 2010 (r213247) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd Sep 24, 2010 +.Dd September 28, 2010 .Dt GPART 8 .Os .Sh NAME @@ -382,6 +382,9 @@ about its use. .\" ==== SET ==== .It Cm set Set the named attribute on the partition entry. +See the section entitled +.Sx "ATTRIBUTES" +below for a list of available attributes. .Pp Additional options include: .Bl -tag -width 10n @@ -406,6 +409,9 @@ action and can be used to undo any chang .\" ==== UNSET ==== .It Cm unset Clear the named attribute on the partition entry. +See the section entitled +.Sx "ATTRIBUTES" +below for a list of available attributes. .Pp Additional options include: .Bl -tag -width 10n @@ -502,6 +508,103 @@ This type is known as .Qq Li "!024dee41-33e7-11d3-9d69-0008c781f39f" by GPT. .El +.Sh ATTRIBUTES +The scheme-specific attributes for EBR: +.Bl -tag -width ".Ar active" +.It Ar active +.El +.Pp +The scheme-specific attributes for GPT: +.Bl -tag -width ".Ar bootfailed" +.It Ar bootme +When set, the +.Nm gptboot +stage 1 boot loader will try to boot the system from this partition. +Multiple partitions might be marked with the +.Ar bootme +attribute. +In such scenario the +.Nm gptboot +will try all +.Ar bootme +partitions one by one, until the next boot stage is successfully entered. +.It Ar bootonce +Setting this attribute automatically sets the +.Ar bootme +attribute. +When set, the +.Nm gptboot +stage 1 boot loader will try to boot the system from this partition only once. +Partitions with both +.Ar bootonce +and +.Ar bootme +attributes are tried before partitions with only the +.Ar bootme +attribute. +Before +.Ar bootonce +partition is tried, the +.Nm gptboot +removes the +.Ar bootme +attribute and tries to execute the next boot stage. +If it fails, the +.Ar bootonce +attribute that is now alone is replaced with the +.Ar bootfailed +attribute. +If the execution of the next boot stage succeeds, but the system is not fully +booted, the +.Nm gptboot +will look for +.Ar bootonce +attributes alone (without the +.Ar bootme +attribute) on the next system boot and will replace those with the +.Ar bootfailed +attribute. +If the system is fully booted, the +.Pa /etc/rc.d/gptboot +start-up script will look for partition with the +.Ar bootonce +attribute alone, will remove the attribute and log that the system was +successfully booted from this partition. +There should be at most one +.Ar bootonce +partition when system is successfully booted. +Multiple partitions might be marked with the +.Ar bootonce +and +.Ar bootme +attribute pairs. +.It Ar bootfailed +This attribute should not be manually managed. +It is managed by the +.Nm gptboot +stage 1 boot loader and the +.Pa /etc/rc.d/gptboot +start-up script. +This attribute is used to mark partitions that had the +.Ar bootonce +attribute set, but we failed to boot from them. +Once we successfully boot, the +.Pa /etc/rc.d/gptboot +script will log all the partitions we failed to boot from and will remove the +.Ar bootfailed +attributes. +.El +.Pp +The scheme-specific attributes for MBR: +.Bl -tag -width ".Ar active" +.It Ar active +.El +.Pp +The scheme-specific attributes for PC98: +.Bl -tag -width ".Ar bootable" +.It Ar active +.It Ar bootable +.El .Sh OPERATIONAL FLAGS Actions other than the .Cm commit Modified: projects/sv/sys/compat/linprocfs/linprocfs.c ============================================================================== --- projects/sv/sys/compat/linprocfs/linprocfs.c Tue Sep 28 11:32:17 2010 (r213246) +++ projects/sv/sys/compat/linprocfs/linprocfs.c Tue Sep 28 12:51:17 2010 (r213247) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -96,6 +97,10 @@ __FBSDID("$FreeBSD$"); #include #endif /* __i386__ || __amd64__ */ +#ifdef COMPAT_FREEBSD32 +#include +#endif + #ifdef COMPAT_LINUX32 /* XXX */ #include #else @@ -886,78 +891,24 @@ linprocfs_doprocroot(PFS_FILL_ARGS) return (0); } -/* - * Filler function for proc/pid/cmdline - */ -static int -linprocfs_doproccmdline(PFS_FILL_ARGS) -{ - struct ps_strings pstr; - char **ps_argvstr; - int error, i; - - /* - * If we are using the ps/cmdline caching, use that. Otherwise - * revert back to the old way which only implements full cmdline - * for the currept process and just p->p_comm for all other - * processes. - * Note that if the argv is no longer available, we deliberately - * don't fall back on p->p_comm or return an error: the authentic - * Linux behaviour is to return zero-length in this case. - */ - - PROC_LOCK(p); - if (p->p_args && p_cansee(td, p) == 0) { - sbuf_bcpy(sb, p->p_args->ar_args, p->p_args->ar_length); - PROC_UNLOCK(p); - } else if (p != td->td_proc) { - PROC_UNLOCK(p); - sbuf_printf(sb, "%.*s", MAXCOMLEN, p->p_comm); - } else { - PROC_UNLOCK(p); - error = copyin((void *)p->p_sysent->sv_psstrings, &pstr, - sizeof(pstr)); - if (error) - return (error); - if (pstr.ps_nargvstr > ARG_MAX) - return (E2BIG); - ps_argvstr = malloc(pstr.ps_nargvstr * sizeof(char *), - M_TEMP, M_WAITOK); - error = copyin((void *)pstr.ps_argvstr, ps_argvstr, - pstr.ps_nargvstr * sizeof(char *)); - if (error) { - free(ps_argvstr, M_TEMP); - return (error); - } - for (i = 0; i < pstr.ps_nargvstr; i++) { - sbuf_copyin(sb, ps_argvstr[i], 0); - sbuf_printf(sb, "%c", '\0'); - } - free(ps_argvstr, M_TEMP); - } - - return (0); -} - -extern int proc_rwmem(struct proc *p, struct uio *uio); - #define MAX_ARGV_STR 512 /* Max number of argv-like strings */ #define UIO_CHUNK_SZ 256 /* Max chunk size (bytes) for uiomove */ static int linprocfs_doargv(struct thread *td, struct proc *p, struct sbuf *sb, - void (*resolver)(const struct ps_strings, u_long *, int *)) + void (*resolver)(const struct ps_strings, u_long *, int *)) { struct iovec iov; struct uio tmp_uio; struct ps_strings pss; - int ret, i, n_elements, found_end; - u_long addr; - char* env_vector[MAX_ARGV_STR]; + int ret, i, n_elements, elm_len; + u_long addr, pbegin; + char **env_vector, *envp; char env_string[UIO_CHUNK_SZ]; - char *pbegin; - - +#ifdef COMPAT_FREEBSD32 + struct freebsd32_ps_strings pss32; + uint32_t *env_vector32; +#endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Sep 30 10:09:53 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3052B106566C; Thu, 30 Sep 2010 10:09:53 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EB608FC1C; Thu, 30 Sep 2010 10:09:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8UA9rrP059780; Thu, 30 Sep 2010 10:09:53 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8UA9qV0059774; Thu, 30 Sep 2010 10:09:52 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009301009.o8UA9qV0059774@svn.freebsd.org> From: Attilio Rao Date: Thu, 30 Sep 2010 10:09:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213295 - in projects/sv: sys/dev/e1000 sys/netinet usr.sbin/netdumpsrv X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Sep 2010 10:09:53 -0000 Author: attilio Date: Thu Sep 30 10:09:52 2010 New Revision: 213295 URL: http://svn.freebsd.org/changeset/base/213295 Log: Fix style issues: - Add cdefs in netdumpsrv.c - Fix a couple of missing whitespace in ORing operations in netdumpsrv.c - Add prefixes to structures Modified: projects/sv/sys/dev/e1000/if_em.c projects/sv/sys/dev/e1000/if_lem.c projects/sv/sys/netinet/netdump.h projects/sv/sys/netinet/netdump_client.c projects/sv/usr.sbin/netdumpsrv/netdumpsrv.c Modified: projects/sv/sys/dev/e1000/if_em.c ============================================================================== --- projects/sv/sys/dev/e1000/if_em.c Thu Sep 30 07:12:09 2010 (r213294) +++ projects/sv/sys/dev/e1000/if_em.c Thu Sep 30 10:09:52 2010 (r213295) @@ -328,10 +328,10 @@ static ndumplock_handler_t em_ndump_enab #ifdef NETDUMP_CLIENT static struct netdump_methods em_ndump_methods = { - .poll_locked = em_poll, - .poll_unlocked = em_poll_unlocked, - .disable_intr = em_ndump_disable_intr, - .enable_intr = em_ndump_enable_intr + .ne_poll_locked = em_poll, + .ne_poll_unlocked = em_poll_unlocked, + .ne_disable_intr = em_ndump_disable_intr, + .ne_enable_intr = em_ndump_enable_intr }; #endif Modified: projects/sv/sys/dev/e1000/if_lem.c ============================================================================== --- projects/sv/sys/dev/e1000/if_lem.c Thu Sep 30 07:12:09 2010 (r213294) +++ projects/sv/sys/dev/e1000/if_lem.c Thu Sep 30 10:09:52 2010 (r213295) @@ -298,10 +298,10 @@ static ndumplock_handler_t lem_ndump_ena #ifdef NETDUMP_CLIENT static struct netdump_methods lem_ndump_methods = { - .poll_locked = lem_poll, - .poll_unlocked = lem_poll_unlocked, - .disable_intr = lem_ndump_disable_intr, - .enable_intr = lem_ndump_enable_intr + .ne_poll_locked = lem_poll, + .ne_poll_unlocked = lem_poll_unlocked, + .ne_disable_intr = lem_ndump_disable_intr, + .ne_enable_intr = lem_ndump_enable_intr }; #endif Modified: projects/sv/sys/netinet/netdump.h ============================================================================== --- projects/sv/sys/netinet/netdump.h Thu Sep 30 07:12:09 2010 (r213294) +++ projects/sv/sys/netinet/netdump.h Thu Sep 30 10:09:52 2010 (r213295) @@ -43,20 +43,20 @@ #define NETDUMP_DATASIZE 8192 /* Packets payload. */ struct netdump_msg_hdr { - uint32_t type; /* NETDUMP_HERALD, _FINISHED, _VMCORE, _KDH. */ - uint32_t seqno; /* Match acks with msgs. */ - uint64_t offset; /* vmcore offset (bytes). */ - uint32_t len; /* Attached data (bytes). */ - uint32_t _pad; /* Pad space matching 32- and 64-bits archs. */ + uint32_t mh_type; /* NETDUMP_HERALD, _FINISHED, _VMCORE, _KDH. */ + uint32_t mh_seqno; /* Match acks with msgs. */ + uint64_t mh_offset; /* vmcore offset (bytes). */ + uint32_t mh_len; /* Attached data (bytes). */ + uint32_t mh__pad; /* Pad space matching 32- and 64-bits archs. */ }; struct netdump_ack { - uint32_t seqno; /* Match acks with msgs. */ + uint32_t na_seqno; /* Match acks with msgs. */ }; struct netdump_msg { - struct netdump_msg_hdr hdr; - uint8_t data[NETDUMP_DATASIZE]; + struct netdump_msg_hdr nm_hdr; + uint8_t nm_data[NETDUMP_DATASIZE]; }; #ifdef _KERNEL @@ -64,10 +64,10 @@ struct netdump_msg { typedef void ndumplock_handler_t(struct ifnet *); struct netdump_methods { - poll_handler_t *poll_locked; - poll_handler_t *poll_unlocked; - ndumplock_handler_t *disable_intr; - ndumplock_handler_t *enable_intr; + poll_handler_t *ne_poll_locked; + poll_handler_t *ne_poll_unlocked; + ndumplock_handler_t *ne_disable_intr; + ndumplock_handler_t *ne_enable_intr; }; #endif Modified: projects/sv/sys/netinet/netdump_client.c ============================================================================== --- projects/sv/sys/netinet/netdump_client.c Thu Sep 30 07:12:09 2010 (r213294) +++ projects/sv/sys/netinet/netdump_client.c Thu Sep 30 10:09:52 2010 (r213295) @@ -603,11 +603,11 @@ retransmit: /* leave room for udpip */ MH_ALIGN(m, sizeof(struct netdump_msg_hdr)); nd_msg_hdr = mtod(m, struct netdump_msg_hdr *); - nd_msg_hdr->seqno = htonl(nd_seqno+i); - nd_msg_hdr->type = htonl(type); - nd_msg_hdr->offset = htobe64(offset + sent_so_far); - nd_msg_hdr->len = htonl(pktlen); - nd_msg_hdr->_pad = 0; + nd_msg_hdr->mh_seqno = htonl(nd_seqno+i); + nd_msg_hdr->mh_type = htonl(type); + nd_msg_hdr->mh_offset = htobe64(offset + sent_so_far); + nd_msg_hdr->mh_len = htonl(pktlen); + nd_msg_hdr->mh__pad = 0; if (pktlen) { if ((m2 = m_get(M_DONTWAIT, MT_DATA)) == NULL) { @@ -827,7 +827,7 @@ nd_handle_ip(struct mbuf **mb) */ nd_ack = (struct netdump_ack *) (mtod(m, caddr_t) + sizeof(struct udpiphdr)); - rcv_ackno = ntohl(nd_ack->seqno); + rcv_ackno = ntohl(nd_ack->na_seqno); if (nd_server_port == NETDUMP_PORT) { nd_server_port = ntohs(udp->ui_u.uh_sport); @@ -1060,11 +1060,11 @@ netdump_network_poll() #if defined(KDB) && !defined(KDB_UNATTENDED) if (panicstr != NULL) - nd_nic->if_ndumpfuncs->poll_unlocked(nd_nic, + nd_nic->if_ndumpfuncs->ne_poll_unlocked(nd_nic, POLL_AND_CHECK_STATUS, 1000); else #endif - nd_nic->if_ndumpfuncs->poll_locked(nd_nic, + nd_nic->if_ndumpfuncs->ne_poll_locked(nd_nic, POLL_AND_CHECK_STATUS, 1000); } @@ -1178,7 +1178,7 @@ netdump_trigger(void *arg, int howto) #if defined(KDB) && !defined(KDB_UNATTENDED) if (panicstr == NULL) #endif - nd_nic->if_ndumpfuncs->disable_intr(nd_nic); + nd_nic->if_ndumpfuncs->ne_disable_intr(nd_nic); } /* Make the card use *our* receive callback */ @@ -1233,7 +1233,7 @@ trig_abort: #if defined(KDB) && !defined(KDB_UNATTENDED) if (panicstr == NULL) #endif - nd_nic->if_ndumpfuncs->enable_intr(nd_nic); + nd_nic->if_ndumpfuncs->ne_enable_intr(nd_nic); } dumping--; } Modified: projects/sv/usr.sbin/netdumpsrv/netdumpsrv.c ============================================================================== --- projects/sv/usr.sbin/netdumpsrv/netdumpsrv.c Thu Sep 30 07:12:09 2010 (r213294) +++ projects/sv/usr.sbin/netdumpsrv/netdumpsrv.c Thu Sep 30 10:09:52 2010 (r213295) @@ -23,6 +23,7 @@ * SUCH DAMAGE. */ +#include __FBSDID("$FreeBSD$"); #include @@ -250,7 +251,7 @@ alloc_client(struct sockaddr_in *sip) "%s/vmcore.%s.%d", dumpdir, client->hostname, i); /* Try the info file first. */ - fd = open(client->infofilename, O_WRONLY|O_CREAT|O_EXCL, + fd = open(client->infofilename, O_WRONLY | O_CREAT | O_EXCL, DEFFILEMODE); if (fd == -1) { if (errno != EEXIST) @@ -267,7 +268,7 @@ alloc_client(struct sockaddr_in *sip) } /* Next make the core file. */ - fd = open(client->corefilename, O_RDWR|O_CREAT|O_EXCL, + fd = open(client->corefilename, O_RDWR | O_CREAT | O_EXCL, DEFFILEMODE); if (fd == -1) { @@ -383,7 +384,7 @@ send_ack(struct netdump_client *client, assert(client != NULL && msg != NULL); bzero(&ack, sizeof(ack)); - ack.seqno = htonl(msg->hdr.seqno); + ack.na_seqno = htonl(msg->nm_hdr.mh_seqno); do { tryagain = 0; if (send(client->sock, &ack, sizeof(ack), 0) == -1) { @@ -448,8 +449,8 @@ handle_kdh(struct netdump_client *client return; client->any_data_rcvd = 1; - h = (struct kerneldumpheader *)msg->data; - if (msg->hdr.len < sizeof(struct kerneldumpheader)) { + h = (struct kerneldumpheader *)msg->nm_data; + if (msg->nm_hdr.len < sizeof(struct kerneldumpheader)) { LOGERR("Bad KDH from %s [%s]: packet too small\n", client->hostname, client_ntoa(client)); client_pinfo(client, "Bad KDH: packet too small\n"); @@ -495,18 +496,18 @@ handle_vmcore(struct netdump_client *cli return; client->any_data_rcvd = 1; - if (msg->hdr.seqno % 11523 == 0) { + if (msg->nm_hdr.mh_seqno % 11523 == 0) { /* Approximately every 16MB with MTU of 1500 */ LOGINFO("."); } - if (pwrite(client->corefd, msg->data, msg->hdr.len, - msg->hdr.offset) == -1) { + if (pwrite(client->corefd, msg->nm_data, msg->nm_hdr.len, + msg->nm_hdr.mh_offset) == -1) { LOGERR("pwrite (for client %s [%s]): %s\n", client->hostname, client_ntoa(client), strerror(errno)); client_pinfo(client, "Dump unsuccessful: write error @ offset %08"PRIx64": %s\n", - msg->hdr.offset, strerror(errno)); + msg->nm_hdr.mh_offset, strerror(errno)); exec_handler(client, "error"); free_client(client); return; @@ -568,15 +569,15 @@ receive_message(int isock, struct sockad } /* Convert byte order. */ - msg->hdr.type = ntohl(msg->hdr.type); - msg->hdr.seqno = ntohl(msg->hdr.seqno); - msg->hdr.offset = be64toh(msg->hdr.offset); - msg->hdr.len = ntohl(msg->hdr.len); + msg->nm_hdr.mh_type = ntohl(msg->nm_hdr.mh_type); + msg->nm_hdr.mh_seqno = ntohl(msg->nm_hdr.mh_seqno); + msg->nm_hdr.mh_offset = be64toh(msg->nm_hdr.mh_offset); + msg->nm_hdr.mh_len = ntohl(msg->nm_hdr.mh_len); - if ((size_t)len < sizeof(struct netdump_msg_hdr) + msg->hdr.len) { + if ((size_t)len < sizeof(struct netdump_msg_hdr) + msg->nm_hdr.mh_len) { LOGERR("Packet too small from %s (got %zu, expected %zu)\n", fromstr, (size_t)len, - sizeof(struct netdump_msg_hdr) + msg->hdr.len); + sizeof(struct netdump_msg_hdr) + msg->nm_hdr.mh_len); return (0); } return (len); @@ -592,7 +593,7 @@ handle_packet(struct netdump_client *cli if (client != NULL) client->last_msg = time(NULL); - switch (msg->hdr.type) { + switch (msg->nm_hdr.mh_type) { case NETDUMP_HERALD: handle_herald(from, client, msg); break; @@ -607,7 +608,7 @@ handle_packet(struct netdump_client *cli break; default: LOGERR("Received unknown message type %d from %s\n", - msg->hdr.type, fromstr); + msg->nm_hdr.mh_type, fromstr); } } @@ -687,7 +688,7 @@ eventloop(void) * packets. */ if (client != NULL && - msg.hdr.type != NETDUMP_HERALD && + msg.nm_hdr.mh_type != NETDUMP_HERALD && client->printed_port_warning == 0) { LOGWARN("Client %s responding on server port\n", client->hostname); From owner-svn-src-projects@FreeBSD.ORG Thu Sep 30 11:43:55 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31213106566C; Thu, 30 Sep 2010 11:43:55 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20B598FC20; Thu, 30 Sep 2010 11:43:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8UBht0h062635; Thu, 30 Sep 2010 11:43:55 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8UBhtpU062633; Thu, 30 Sep 2010 11:43:55 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009301143.o8UBhtpU062633@svn.freebsd.org> From: Attilio Rao Date: Thu, 30 Sep 2010 11:43:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213296 - projects/sv/sys/dev/e1000 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Sep 2010 11:43:55 -0000 Author: attilio Date: Thu Sep 30 11:43:54 2010 New Revision: 213296 URL: http://svn.freebsd.org/changeset/base/213296 Log: Add netdump support for if_igb. Modified: projects/sv/sys/dev/e1000/if_igb.c Modified: projects/sv/sys/dev/e1000/if_igb.c ============================================================================== --- projects/sv/sys/dev/e1000/if_igb.c Thu Sep 30 10:09:52 2010 (r213295) +++ projects/sv/sys/dev/e1000/if_igb.c Thu Sep 30 11:43:54 2010 (r213296) @@ -37,6 +37,7 @@ #include "opt_device_polling.h" #include "opt_inet.h" #include "opt_altq.h" +#include "opt_netdump.h" #endif #include @@ -78,6 +79,9 @@ #include #include #include +#ifdef NETDUMP_CLIENT +#include +#endif #include #include #include @@ -91,6 +95,27 @@ #include "e1000_82575.h" #include "if_igb.h" +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) + +#define IGB_CORE_LOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + IGB_CORE_LOCK(adapter); \ +} while (0) +#define IGB_CORE_UNLOCK_COND(adapter, locking) do { \ + if ((locking) != 0) \ + IGB_CORE_UNLOCK(adapter); \ +} while (0) +#define IGB_TX_LOCK_COND(txr, locking) do { \ + if ((locking) != 0) \ + IGB_TX_LOCK(txr); \ +} while (0) +#define IGB_TX_UNLOCK_COND(txr, locking) do { \ + if ((locking) != 0) \ + IGB_TX_UNLOCK(txr); \ +} while (0) + +#endif + /********************************************************************* * Set this to one to display debug statistics *********************************************************************/ @@ -252,14 +277,32 @@ static void igb_handle_link(void *contex static void igb_msix_que(void *); static void igb_msix_link(void *); -#ifdef DEVICE_POLLING +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) +static int _igb_poll_generic(struct ifnet *ifp, enum poll_cmd cmd, + int count, int locking); static poll_handler_t igb_poll; -#endif /* POLLING */ +#endif +#ifdef NETDUMP_CLIENT +static poll_handler_t igb_poll_unlocked; +static ndumplock_handler_t igb_ndump_disable_intr; +static ndumplock_handler_t igb_ndump_enable_intr; +#endif /********************************************************************* * FreeBSD Device Interface Entry Points *********************************************************************/ +#ifdef NETDUMP_CLIENT + +static struct netdump_methods igb_ndump_methods = { + .ne_poll_locked = igb_poll, + .ne_poll_unlocked = igb_poll_unlocked, + .ne_disable_intr = igb_ndump_disable_intr, + .ne_enable_intr = igb_ndump_enable_intr +}; + +#endif + static device_method_t igb_methods[] = { /* Device interface */ DEVMETHOD(device_probe, igb_probe), @@ -1354,7 +1397,7 @@ igb_irq_fast(void *arg) return FILTER_HANDLED; } -#ifdef DEVICE_POLLING +#if defined(DEVICE_POLLING) || defined(NETDUMP_CLIENT) /********************************************************************* * * Legacy polling routine : if using this code you MUST be sure that @@ -1368,7 +1411,7 @@ static int #define POLL_RETURN_COUNT(a) static void #endif -igb_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +_igb_poll_generic(struct ifnet *ifp, enum poll_cmd cmd, int count, int locking) { struct adapter *adapter = ifp->if_softc; struct igb_queue *que = adapter->queues; @@ -1377,9 +1420,9 @@ igb_poll(struct ifnet *ifp, enum poll_cm u32 loop = IGB_MAX_LOOP; bool more; - IGB_CORE_LOCK(adapter); + IGB_CORE_LOCK_COND(adapter, locking); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - IGB_CORE_UNLOCK(adapter); + IGB_CORE_UNLOCK_COND(adapter, locking); return POLL_RETURN_COUNT(rx_done); } @@ -1392,11 +1435,11 @@ igb_poll(struct ifnet *ifp, enum poll_cm if (reg_icr & E1000_ICR_RXO) adapter->rx_overruns++; } - IGB_CORE_UNLOCK(adapter); + IGB_CORE_UNLOCK_COND(adapter, locking); igb_rxeof(que, count, &rx_done); - IGB_TX_LOCK(txr); + IGB_TX_LOCK_COND(txr, locking); do { more = igb_txeof(txr); } while (loop-- && more); @@ -1407,10 +1450,48 @@ igb_poll(struct ifnet *ifp, enum poll_cm if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) igb_start_locked(txr, ifp); #endif - IGB_TX_UNLOCK(txr); + IGB_TX_UNLOCK_COND(txr, locking); return POLL_RETURN_COUNT(rx_done); } -#endif /* DEVICE_POLLING */ + +static int +igb_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + + return (_igb_poll_generic(ifp, cmd, count, 1)); +} +#endif /* !DEVICE_POLLING && !NETDUMP_CLIENT */ + +#ifdef NETDUMP_CLIENT +static int +igb_poll_unlocked(struct ifnet *ifp, enum poll_cmd cmd, int count) +{ + + return (_igb_poll_generic(ifp, cmd, count, 0)); +} + +static void +igb_ndump_disable_intr(struct ifnet *ifp) +{ + struct adapter *adapter; + + adapter = ifp->if_softc; + IGB_CORE_LOCK(adapter); + igb_disable_intr(adapter); + IGB_CORE_UNLOCK(adapter); +} + +static void +igb_ndump_enable_intr(struct ifnet *ifp) +{ + struct adapter *adapter; + + adapter = ifp->if_softc; + IGB_CORE_LOCK(adapter); + igb_enable_intr(adapter); + IGB_CORE_UNLOCK(adapter); +} +#endif /* !NETDUMP_CLIENT */ /********************************************************************* * @@ -2713,6 +2794,9 @@ igb_setup_interface(device_t dev, struct ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = igb_ioctl; ifp->if_start = igb_start; +#ifdef NETDUMP_CLIENT + ifp->if_ndumpfuncs = &igb_ndump_methods; +#endif #if __FreeBSD_version >= 800000 ifp->if_transmit = igb_mq_start; ifp->if_qflush = igb_qflush; From owner-svn-src-projects@FreeBSD.ORG Thu Sep 30 13:44:55 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0132106566B; Thu, 30 Sep 2010 13:44:55 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C06D48FC19; Thu, 30 Sep 2010 13:44:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o8UDituV071170; Thu, 30 Sep 2010 13:44:55 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o8UDith7071168; Thu, 30 Sep 2010 13:44:55 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201009301344.o8UDith7071168@svn.freebsd.org> From: Attilio Rao Date: Thu, 30 Sep 2010 13:44:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213299 - projects/sv/sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Sep 2010 13:44:55 -0000 Author: attilio Date: Thu Sep 30 13:44:55 2010 New Revision: 213299 URL: http://svn.freebsd.org/changeset/base/213299 Log: nd_server_port may have switched since the first ack of the first call. Reset accordingly. Reported by: Sergey Kandaurov Submitted by: rstone Modified: projects/sv/sys/netinet/netdump_client.c Modified: projects/sv/sys/netinet/netdump_client.c ============================================================================== --- projects/sv/sys/netinet/netdump_client.c Thu Sep 30 13:31:35 2010 (r213298) +++ projects/sv/sys/netinet/netdump_client.c Thu Sep 30 13:44:55 2010 (r213299) @@ -1174,6 +1174,11 @@ netdump_trigger(void *arg, int howto) dumptid = curthread->td_tid; dumping++; + /* + * nd_server_port could have switched after the first ack the + * first time it gets called. Adjust it accordingly. + */ + nd_server_port = NETDUMP_PORT; if ((nd_nic->if_capenable & IFCAP_POLLING) == 0) { #if defined(KDB) && !defined(KDB_UNATTENDED) if (panicstr == NULL)