From owner-svn-src-head@FreeBSD.ORG Sun May 1 01:34:22 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E1D91065670; Sun, 1 May 2011 01:34:22 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6BB8A8FC0C; Sun, 1 May 2011 01:34:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p411YMDo070863; Sun, 1 May 2011 01:34:22 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p411YM00070861; Sun, 1 May 2011 01:34:22 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105010134.p411YM00070861@svn.freebsd.org> From: Rick Macklem Date: Sun, 1 May 2011 01:34:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221288 - head/sbin/mount_nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 01:34:22 -0000 Author: rmacklem Date: Sun May 1 01:34:22 2011 New Revision: 221288 URL: http://svn.freebsd.org/changeset/base/221288 Log: Fix the Makefile for mount_nfs so that it creates a link for mount_oldnfs.8 instead of mount_newnfs.8. Modified: head/sbin/mount_nfs/Makefile Modified: head/sbin/mount_nfs/Makefile ============================================================================== --- head/sbin/mount_nfs/Makefile Sun May 1 00:48:03 2011 (r221287) +++ head/sbin/mount_nfs/Makefile Sun May 1 01:34:22 2011 (r221288) @@ -5,7 +5,7 @@ PROG= mount_nfs SRCS= mount_nfs.c getmntopts.c mounttab.c MAN= mount_nfs.8 -MLINKS= mount_nfs.8 mount_newnfs.8 +MLINKS= mount_nfs.8 mount_oldnfs.8 MOUNT= ${.CURDIR}/../mount UMNTALL= ${.CURDIR}/../../usr.sbin/rpc.umntall From owner-svn-src-head@FreeBSD.ORG Sun May 1 13:26:35 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 066201065673; Sun, 1 May 2011 13:26:35 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BF9338FC16; Sun, 1 May 2011 13:26:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41DQY4G093950; Sun, 1 May 2011 13:26:34 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41DQYoW093946; Sun, 1 May 2011 13:26:34 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201105011326.p41DQYoW093946@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 1 May 2011 13:26:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221296 - in head/sys: amd64/conf conf i386/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 13:26:35 -0000 Author: bschmidt Date: Sun May 1 13:26:34 2011 New Revision: 221296 URL: http://svn.freebsd.org/changeset/base/221296 Log: Add the remaining wireless drivers. Discussed with: joel Modified: head/sys/amd64/conf/GENERIC head/sys/conf/NOTES head/sys/i386/conf/GENERIC Modified: head/sys/amd64/conf/GENERIC ============================================================================== --- head/sys/amd64/conf/GENERIC Sun May 1 05:36:59 2011 (r221295) +++ head/sys/amd64/conf/GENERIC Sun May 1 13:26:34 2011 (r221296) @@ -261,8 +261,16 @@ device ath_pci # Atheros pci/cardbus g device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors device ath_rate_sample # SampleRate tx rate control for ath +#device bwi # Broadcom BCM430x/BCM431x wireless NICs. +#device bwn # Broadcom BCM43xx wireless NICs. +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. +device wpi # Intel 3945ABG wireless NICs. # Pseudo devices. device loop # Network loopback @@ -314,7 +322,9 @@ device rue # RealTek RTL8150 USB Ether device udav # Davicom DM9601E USB # USB Wireless device rum # Ralink Technology RT2501USB wireless NICs +device run # Ralink Technology RT2700/RT2800/RT3000 NICs. device uath # Atheros AR5523 wireless NICs +device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Sun May 1 05:36:59 2011 (r221295) +++ head/sys/conf/NOTES Sun May 1 13:26:34 2011 (r221296) @@ -1935,11 +1935,16 @@ device xmphy # XaQti XMAC II # (hint of prefer_iomap can be done to prefer I/O instead of Mem mapping) # gem: Apple GMAC/Sun ERI/Sun GEM # hme: Sun HME (Happy Meal Ethernet) +# ipw: Intel 2100 wireless NICs. +# iwi: Intel 2200BG/2225BG/2915ABG wireless NICs. +# iwn: Intel 4965/1000/5000/6000 wireless NICs. # jme: JMicron JMC260 Fast Ethernet/JMC250 Gigabit Ethernet based adapters. # le: AMD Am7900 LANCE and Am79C9xx PCnet # lge: Support for PCI gigabit ethernet adapters based on the Level 1 # LXT1001 NetCellerator chipset. This includes the D-Link DGE-500SX, # SMC TigerCard 1000 (SMC9462SX), and some Addtron cards. +# malo: Marvell Libertas wireless NICs. +# mwl: Marvell 88W8363 802.11n wireless NICs. # msk: Support for gigabit ethernet adapters based on the Marvell/SysKonnect # Yukon II Gigabit controllers, including 88E8021, 88E8022, 88E8061, # 88E8062, 88E8035, 88E8036, 88E8038, 88E8050, 88E8052, 88E8053, @@ -2011,6 +2016,7 @@ device xmphy # XaQti XMAC II # wi: Lucent WaveLAN/IEEE 802.11 PCMCIA adapters. Note: this supports both # the PCMCIA and ISA cards: the ISA card is really a PCMCIA to ISA # bridge with a PCMCIA adapter plugged into it. +# wpi: Intel 3945ABG wireless NICs. # xe: Xircom/Intel EtherExpress Pro100/16 PC Card ethernet controller, # Accton Fast EtherCard-16, Compaq Netelligent 10/100 PC Card, # Toshiba 10/100 Ethernet PC Card, Xircom 16-bit Ethernet + Modem 56 @@ -2131,7 +2137,13 @@ options AH_RXCFG_SDMAMW_4BYTES device ath_rate_sample # SampleRate tx rate control for ath device bwi # Broadcom BCM430* BCM431* device bwn # Broadcom BCM43xx +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. +device wpi # Intel 3945ABG wireless NICs. # Use "private" jumbo buffers allocated exclusively for the ti(4) driver. # This option is incompatible with the TI_JUMBO_HDRSPLIT option below. @@ -2727,6 +2739,9 @@ device run # Atheros AR5523 wireless driver device uath # +# Conexant/Intersil PrismGT wireless driver +device upgt +# # Ralink Technology RT2500USB wireless driver device ural # Modified: head/sys/i386/conf/GENERIC ============================================================================== --- head/sys/i386/conf/GENERIC Sun May 1 05:36:59 2011 (r221295) +++ head/sys/i386/conf/GENERIC Sun May 1 13:26:34 2011 (r221296) @@ -273,9 +273,17 @@ device ath_pci # Atheros pci/cardbus g device ath_hal # pci/cardbus chip support options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors device ath_rate_sample # SampleRate tx rate control for ath +#device bwi # Broadcom BCM430x/BCM431x wireless NICs. +#device bwn # Broadcom BCM43xx wireless NICs. +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device malo # Marvell Libertas wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. +device wpi # Intel 3945ABG wireless NICs. # Pseudo devices. device loop # Network loopback @@ -327,7 +335,9 @@ device rue # RealTek RTL8150 USB Ether device udav # Davicom DM9601E USB # USB Wireless device rum # Ralink Technology RT2501USB wireless NICs +device run # Ralink Technology RT2700/RT2800/RT3000 NICs. device uath # Atheros AR5523 wireless NICs +device upgt # Conexant/Intersil PrismGT wireless NICs. device ural # Ralink Technology RT2500USB wireless NICs device urtw # Realtek RTL8187B/L wireless NICs device zyd # ZyDAS zb1211/zb1211b wireless NICs From owner-svn-src-head@FreeBSD.ORG Sun May 1 15:46:18 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B22B8106566C; Sun, 1 May 2011 15:46:18 +0000 (UTC) (envelope-from ume@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A18458FC0A; Sun, 1 May 2011 15:46:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41FkISY098027; Sun, 1 May 2011 15:46:18 GMT (envelope-from ume@svn.freebsd.org) Received: (from ume@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41FkIsO098025; Sun, 1 May 2011 15:46:18 GMT (envelope-from ume@svn.freebsd.org) Message-Id: <201105011546.p41FkIsO098025@svn.freebsd.org> From: Hajimu UMEMOTO Date: Sun, 1 May 2011 15:46:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221297 - head/contrib/openresolv X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 15:46:18 -0000 Author: ume Date: Sun May 1 15:46:18 2011 New Revision: 221297 URL: http://svn.freebsd.org/changeset/base/221297 Log: Fix typo in manpage resolvconf.conf(5). PR: docs/156494 Submitted by: bcr Requested by: bcr Obtained from: http://roy.marples.name/projects/openresolv/ticket/12 Modified: head/contrib/openresolv/resolvconf.conf.5.in Modified: head/contrib/openresolv/resolvconf.conf.5.in ============================================================================== --- head/contrib/openresolv/resolvconf.conf.5.in Sun May 1 13:26:34 2011 (r221296) +++ head/contrib/openresolv/resolvconf.conf.5.in Sun May 1 15:46:18 2011 (r221297) @@ -43,7 +43,7 @@ Listed below are the standard .Nm variables that may be set. .Pp -After updaing this file, you may wish to run +After updating this file, you may wish to run .Nm resolvconf -u to apply the new configuration. .Sh RESOLVCONF OPTIONS From owner-svn-src-head@FreeBSD.ORG Sun May 1 18:41:57 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7143106566C; Sun, 1 May 2011 18:41:57 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D55E58FC0A; Sun, 1 May 2011 18:41:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41IfvCf003165; Sun, 1 May 2011 18:41:57 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41IfvP3003163; Sun, 1 May 2011 18:41:57 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201105011841.p41IfvP3003163@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 1 May 2011 18:41:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221299 - head/sys/dev/wpi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 18:41:58 -0000 Author: bschmidt Date: Sun May 1 18:41:57 2011 New Revision: 221299 URL: http://svn.freebsd.org/changeset/base/221299 Log: No need for htole32(), which is an uint8_t. Modified: head/sys/dev/wpi/if_wpi.c Modified: head/sys/dev/wpi/if_wpi.c ============================================================================== --- head/sys/dev/wpi/if_wpi.c Sun May 1 17:26:52 2011 (r221298) +++ head/sys/dev/wpi/if_wpi.c Sun May 1 18:41:57 2011 (r221299) @@ -2298,7 +2298,7 @@ wpi_mrr_setup(struct wpi_softc *sc) } /* setup MRR for control frames */ - mrr.which = htole32(WPI_MRR_CTL); + mrr.which = WPI_MRR_CTL; error = wpi_cmd(sc, WPI_CMD_MRR_SETUP, &mrr, sizeof mrr, 0); if (error != 0) { device_printf(sc->sc_dev, @@ -2307,7 +2307,7 @@ wpi_mrr_setup(struct wpi_softc *sc) } /* setup MRR for data frames */ - mrr.which = htole32(WPI_MRR_DATA); + mrr.which = WPI_MRR_DATA; error = wpi_cmd(sc, WPI_CMD_MRR_SETUP, &mrr, sizeof mrr, 0); if (error != 0) { device_printf(sc->sc_dev, From owner-svn-src-head@FreeBSD.ORG Sun May 1 18:42:56 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EFB9A106564A; Sun, 1 May 2011 18:42:56 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E01368FC0A; Sun, 1 May 2011 18:42:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41IguCL003232; Sun, 1 May 2011 18:42:56 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41IguCd003230; Sun, 1 May 2011 18:42:56 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201105011842.p41IguCd003230@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 1 May 2011 18:42:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221300 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 18:42:57 -0000 Author: bschmidt Date: Sun May 1 18:42:56 2011 New Revision: 221300 URL: http://svn.freebsd.org/changeset/base/221300 Log: Add files for wpi(4) Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Sun May 1 18:41:57 2011 (r221299) +++ head/sys/conf/files Sun May 1 18:42:56 2011 (r221300) @@ -1995,6 +1995,7 @@ dev/wi/if_wi.c optional wi dev/wi/if_wi_pccard.c optional wi pccard dev/wi/if_wi_pci.c optional wi pci dev/wl/if_wl.c optional wl isa +dev/wpi/if_wpi.c optional wpi pci wpifw.c optional wpifw \ compile-with "${AWK} -f $S/tools/fw_stub.awk wpi.fw:wpifw:153229 -mwpi -c${.TARGET}" \ no-implicit-rule before-depend local \ From owner-svn-src-head@FreeBSD.ORG Sun May 1 19:05:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80D13106566C; Sun, 1 May 2011 19:05:54 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5716C8FC12; Sun, 1 May 2011 19:05:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41J5sNw003978; Sun, 1 May 2011 19:05:54 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41J5sGs003976; Sun, 1 May 2011 19:05:54 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201105011905.p41J5sGs003976@svn.freebsd.org> From: Bernhard Schmidt Date: Sun, 1 May 2011 19:05:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 19:05:54 -0000 Author: bschmidt Date: Sun May 1 19:05:54 2011 New Revision: 221301 URL: http://svn.freebsd.org/changeset/base/221301 Log: These are of course i386/amd64 only. Modified: head/sys/conf/NOTES Modified: head/sys/conf/NOTES ============================================================================== --- head/sys/conf/NOTES Sun May 1 18:42:56 2011 (r221300) +++ head/sys/conf/NOTES Sun May 1 19:05:54 2011 (r221301) @@ -1935,9 +1935,6 @@ device xmphy # XaQti XMAC II # (hint of prefer_iomap can be done to prefer I/O instead of Mem mapping) # gem: Apple GMAC/Sun ERI/Sun GEM # hme: Sun HME (Happy Meal Ethernet) -# ipw: Intel 2100 wireless NICs. -# iwi: Intel 2200BG/2225BG/2915ABG wireless NICs. -# iwn: Intel 4965/1000/5000/6000 wireless NICs. # jme: JMicron JMC260 Fast Ethernet/JMC250 Gigabit Ethernet based adapters. # le: AMD Am7900 LANCE and Am79C9xx PCnet # lge: Support for PCI gigabit ethernet adapters based on the Level 1 @@ -2016,7 +2013,6 @@ device xmphy # XaQti XMAC II # wi: Lucent WaveLAN/IEEE 802.11 PCMCIA adapters. Note: this supports both # the PCMCIA and ISA cards: the ISA card is really a PCMCIA to ISA # bridge with a PCMCIA adapter plugged into it. -# wpi: Intel 3945ABG wireless NICs. # xe: Xircom/Intel EtherExpress Pro100/16 PC Card ethernet controller, # Accton Fast EtherCard-16, Compaq Netelligent 10/100 PC Card, # Toshiba 10/100 Ethernet PC Card, Xircom 16-bit Ethernet + Modem 56 @@ -2137,13 +2133,9 @@ options AH_RXCFG_SDMAMW_4BYTES device ath_rate_sample # SampleRate tx rate control for ath device bwi # Broadcom BCM430* BCM431* device bwn # Broadcom BCM43xx -device ipw # Intel 2100 wireless NICs. -device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. -device iwn # Intel 4965/1000/5000/6000 wireless NICs. device malo # Marvell Libertas wireless NICs. device mwl # Marvell 88W8363 802.11n wireless NICs. device ral # Ralink Technology RT2500 wireless NICs. -device wpi # Intel 3945ABG wireless NICs. # Use "private" jumbo buffers allocated exclusively for the ti(4) driver. # This option is incompatible with the TI_JUMBO_HDRSPLIT option below. From owner-svn-src-head@FreeBSD.ORG Sun May 1 19:28:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F313106566B; Sun, 1 May 2011 19:28:30 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from mail.icecube.wisc.edu (trout.icecube.wisc.edu [128.104.255.119]) by mx1.freebsd.org (Postfix) with ESMTP id 4B7438FC08; Sun, 1 May 2011 19:28:30 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 63F2558137; Sun, 1 May 2011 14:28:29 -0500 (CDT) X-Virus-Scanned: amavisd-new at icecube.wisc.edu Received: from mail.icecube.wisc.edu ([127.0.0.1]) by localhost (trout.icecube.wisc.edu [127.0.0.1]) (amavisd-new, port 10030) with ESMTP id 7xBzdC2L-T9i; Sun, 1 May 2011 14:28:29 -0500 (CDT) Received: from wanderer.tachypleus.net (unknown [205.213.213.34]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 25E7E58135; Sun, 1 May 2011 14:28:29 -0500 (CDT) Message-ID: <4DBDB45C.30906@freebsd.org> Date: Sun, 01 May 2011 14:28:28 -0500 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.15) Gecko/20110317 Thunderbird/3.1.9 MIME-Version: 1.0 To: Bernhard Schmidt References: <201105011905.p41J5sGs003976@svn.freebsd.org> In-Reply-To: <201105011905.p41J5sGs003976@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 19:28:30 -0000 On 05/01/11 14:05, Bernhard Schmidt wrote: > Author: bschmidt > Date: Sun May 1 19:05:54 2011 > New Revision: 221301 > URL: http://svn.freebsd.org/changeset/base/221301 > > Log: > These are of course i386/amd64 only. I'm not sure that's intrinsically true. Even if they mostly only ship with Intel motherboards, many of these are Mini-PCI parts which could be put into non-x86 systems. -Nathan From owner-svn-src-head@FreeBSD.ORG Sun May 1 19:47:34 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E179F1065672; Sun, 1 May 2011 19:47:34 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D23658FC18; Sun, 1 May 2011 19:47:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41JlYYN005257; Sun, 1 May 2011 19:47:34 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41JlYps005255; Sun, 1 May 2011 19:47:34 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201105011947.p41JlYps005255@svn.freebsd.org> From: Ulrich Spoerlein Date: Sun, 1 May 2011 19:47:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221303 - head/usr.bin/man X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 19:47:35 -0000 Author: uqs Date: Sun May 1 19:47:34 2011 New Revision: 221303 URL: http://svn.freebsd.org/changeset/base/221303 Log: Let users' PATH decide which groff suite to pick up. Let groff pass the -c flag to grotty, which will turn off ANSI sequences. While these are not a problem for our more/less, they get mangled by col(1) and this will result in garbage output. This makes man(1) work together with textproc/groff, in case the user decided to delete the old groff from base (-DWITHOUT_GROFF). Modified: head/usr.bin/man/man.sh Modified: head/usr.bin/man/man.sh ============================================================================== --- head/usr.bin/man/man.sh Sun May 1 19:24:51 2011 (r221302) +++ head/usr.bin/man/man.sh Sun May 1 19:47:34 2011 (r221303) @@ -889,16 +889,18 @@ do_whatis() { search_whatis whatis "$@" } -EQN=/usr/bin/eqn +# User's PATH setting decides on the groff-suite to pick up. +EQN=eqn +NROFF='groff -S -P-c -Wall -mtty-char -man' +PIC=pic +REFER=refer +TBL=tbl +TROFF='groff -S -P-c -man' +VGRIND=vgrind + COL=/usr/bin/col LOCALE=/usr/bin/locale -NROFF='/usr/bin/groff -S -Wall -mtty-char -man' -PIC=/usr/bin/pic SYSCTL=/sbin/sysctl -TBL=/usr/bin/tbl -TROFF='/usr/bin/groff -S -man' -REFER=/usr/bin/refer -VGRIND=/usr/bin/vgrind debug=0 man_default_sections='1:1aout:8:2:3:n:4:5:6:7:9:l' From owner-svn-src-head@FreeBSD.ORG Sun May 1 19:54:47 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 002D5106566B; Sun, 1 May 2011 19:54:46 +0000 (UTC) (envelope-from bschmidt@techwires.net) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 3DFCA8FC0A; Sun, 1 May 2011 19:54:45 +0000 (UTC) Received: by fxm11 with SMTP id 11so4943021fxm.13 for ; Sun, 01 May 2011 12:54:45 -0700 (PDT) Received: by 10.223.64.201 with SMTP id f9mr5562887fai.102.1304279684921; Sun, 01 May 2011 12:54:44 -0700 (PDT) Received: from amy.lab.techwires.net (dslb-088-067-204-093.pools.arcor-ip.net [88.67.204.93]) by mx.google.com with ESMTPS id d18sm79523fak.22.2011.05.01.12.54.39 (version=SSLv3 cipher=OTHER); Sun, 01 May 2011 12:54:44 -0700 (PDT) Sender: Bernhard Schmidt From: Bernhard Schmidt To: Nathan Whitehorn Date: Sun, 1 May 2011 21:54:40 +0200 User-Agent: KMail/1.13.7 (FreeBSD/8.2-STABLE; KDE/4.6.2; amd64; ; ) References: <201105011905.p41J5sGs003976@svn.freebsd.org> <4DBDB45C.30906@freebsd.org> In-Reply-To: <4DBDB45C.30906@freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201105012154.40835.bschmidt@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 19:54:47 -0000 On Sunday 01 May 2011 21:28:28 Nathan Whitehorn wrote: > On 05/01/11 14:05, Bernhard Schmidt wrote: > > Author: bschmidt > > Date: Sun May 1 19:05:54 2011 > > New Revision: 221301 > > URL: http://svn.freebsd.org/changeset/base/221301 > > > > Log: > > These are of course i386/amd64 only. > > > I'm not sure that's intrinsically true. Even if they mostly only ship > with Intel motherboards, many of these are Mini-PCI parts which could be > put into non-x86 systems. Yes, indeed. Those might of course be used on other platforms too (well at least it fits into the slot, I know that certain features are not even available on AMD platforms). I'm just not aware that anyone ever tried one of it on mips for example. I don't mind being proven wrong and if so move the entries back to a more generic location. Currently I'm just trying mimic the module behaviour in sys/modules/Makefile. -- Bernhard From owner-svn-src-head@FreeBSD.ORG Sun May 1 20:14:10 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBEA01065672; Sun, 1 May 2011 20:14:10 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BB5408FC1B; Sun, 1 May 2011 20:14:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41KEANr006062; Sun, 1 May 2011 20:14:10 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41KEAIc006059; Sun, 1 May 2011 20:14:10 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201105012014.p41KEAIc006059@svn.freebsd.org> From: Ulrich Spoerlein Date: Sun, 1 May 2011 20:14:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221304 - head/sbin/recoverdisk X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 20:14:10 -0000 Author: uqs Date: Sun May 1 20:14:10 2011 New Revision: 221304 URL: http://svn.freebsd.org/changeset/base/221304 Log: recoverdisk(8): treat output file consistently and abort on EINVAL This improves usability a little as we no longer require using touch. Also reword the manpage wrt. parameters and fix usage() [1] With no media in a cd(4) drive, the reads will loop producing EINVAL, abort in that case [2]. Document the shortcoming of sectorsize and MAXPHYS (a quick solution to this might be having MAXPHYS as the "bigsize", in short testing it didn't make a difference on throughput). Submitted by: arundel [1] PR: bin/154528 [2] Modified: head/sbin/recoverdisk/recoverdisk.1 head/sbin/recoverdisk/recoverdisk.c Modified: head/sbin/recoverdisk/recoverdisk.1 ============================================================================== --- head/sbin/recoverdisk/recoverdisk.1 Sun May 1 19:47:34 2011 (r221303) +++ head/sbin/recoverdisk/recoverdisk.1 Sun May 1 20:14:10 2011 (r221304) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 6, 2006 +.Dd May 1, 2011 .Dt RECOVERDISK 1 .Os .Sh NAME @@ -33,17 +33,20 @@ .Sh SYNOPSIS .Nm .Op Fl b Ar bigsize -.Op Fl r Ar rlist -.Op Fl s Ar snapshot -.Op Fl w Ar wlist -.Ar special -.Op Ar file +.Op Fl r Ar readlist +.Op Fl s Ar interval +.Op Fl w Ar writelist +.Ar source +.Op Ar destination .Sh DESCRIPTION The .Nm utility reads data from the -.Ar special +.Ar source file until all blocks could be successfully read. +If +.Ar destination +was specified all data is being written to that file. It starts reading in multiples of the sector size. Whenever a block fails, it is put to the end of the working queue and will be read again, possibly with a smaller read size. @@ -59,13 +62,13 @@ The options are as follows: The size of reads attempted first. The middle pass is roughly the logarithmic average of the bigsize and the sectorsize. -.It Fl r Ar rlist +.It Fl r Ar readlist Read the list of blocks and block sizes to read from the specified file. -.It Fl s Ar snapshot -How often we should update the worklist file while things go OK. -The default is 60 and the units is "progress messages" so if things +.It Fl s Ar interval +How often we should update the writelist file while things go OK. +The default is 60 and the unit is "progress messages" so if things go well, this is the same as once per minute. -.It Fl w Ar wlist +.It Fl w Ar writelist Write the list of remaining blocks to read to the specified file if .Nm is aborted via @@ -102,20 +105,19 @@ Percent complete. .Sh EXAMPLES .Bd -literal # recover data from failing hard drive ad3 -touch /data/lots_of_space -recoverdisk /dev/ad3 /data/lots_of_space +recoverdisk /dev/ad3 /data/disk.img # clone a hard disk recoverdisk /dev/ad3 /dev/ad4 # read an ISO image from a CD-ROM -touch /data/cd.iso; recoverdisk /dev/acd0 /data/cd.iso +recoverdisk /dev/cd0 /data/cd.iso # continue reading from a broken CD and update the existing worklist -recoverdisk -r worklist -w worklist /dev/acd0 /data/cd.iso +recoverdisk -r worklist -w worklist /dev/cd0 /data/cd.iso # recover a single file from the unreadable media -touch file.avi; recoverdisk /cdrom/file.avi file.avi +recoverdisk /cdrom/file.avi file.avi # If the disk hangs the system on read-errors try: recoverdisk -b 0 /dev/ad3 /somewhere @@ -133,7 +135,7 @@ utility first appeared in The original implementation was done by .An Poul-Henning Kamp Aq phk@FreeBSD.org with minor improvements from -.An Ulrich Sp\(:orlein Aq uspoerlein@gmail.com . +.An Ulrich Sp\(:orlein Aq uqs@FreeBSD.org . .Pp This manual page was written by .An Ulrich Sp\(:orlein . @@ -144,4 +146,13 @@ This is due to the DMA reads being split These reads then fail if the sectorsize is not a divisor of 128kB. When reading a full raw audio CD, this leads to roughly 700 error messages flying by. -This is harmless. +This is harmless and can be avoided by setting +.Fl b +to no more than 128kB. +.\".Pp +.\"When reading from optical media, a bug in the GEOM framework will +.\"prevent it from seeing that the media has been removed. +.\"The device can still be opened, but all reads will fail. +.\"This is usually harmless, but will send +.\".Nm +.\"into an infinite loop. Modified: head/sbin/recoverdisk/recoverdisk.c ============================================================================== --- head/sbin/recoverdisk/recoverdisk.c Sun May 1 19:47:34 2011 (r221303) +++ head/sbin/recoverdisk/recoverdisk.c Sun May 1 20:14:10 2011 (r221304) @@ -86,7 +86,7 @@ save_worklist(void) if (file == NULL) err(1, "Error opening file %s", wworklist); - TAILQ_FOREACH(llp, &lumps, list) + TAILQ_FOREACH(llp, &lumps, list) fprintf(file, "%jd %jd %d\n", (intmax_t)llp->start, (intmax_t)llp->len, llp->state); @@ -134,8 +134,8 @@ read_worklist(off_t t) static void usage(void) { - (void)fprintf(stderr, - "usage: recoverdisk [-r worklist] [-w worklist] source-drive [destination]\n"); + (void)fprintf(stderr, "usage: recoverdisk [-b bigsize] [-r readlist] " + "[-s interval] [-w writelist] source [destination]\n"); exit(1); } @@ -153,7 +153,7 @@ main(int argc, char * const argv[]) int fdr, fdw; off_t t, d, start, len; size_t i, j; - int error, flags, state; + int error, state; u_char *buf; u_int sectorsize; time_t t1, t2; @@ -196,7 +196,6 @@ main(int argc, char * const argv[]) error = fstat(fdr, &sb); if (error < 0) err(1, "fstat failed"); - flags = O_WRONLY; if (S_ISBLK(sb.st_mode) || S_ISCHR(sb.st_mode)) { error = ioctl(fdr, DIOCGSECTORSIZE, §orsize); if (error < 0) @@ -210,7 +209,6 @@ main(int argc, char * const argv[]) err(1, "DIOCGMEDIASIZE failed"); } else { t = sb.st_size; - flags |= O_CREAT | O_TRUNC; } if (bigsize < minsize) @@ -229,9 +227,12 @@ main(int argc, char * const argv[]) err(1, "Cannot allocate %zu bytes buffer", bigsize); if (argc > 1) { - fdw = open(argv[1], flags, DEFFILEMODE); + fdw = open(argv[1], O_WRONLY | O_CREAT, DEFFILEMODE); if (fdw < 0) err(1, "Cannot open write descriptor %s", argv[1]); + if (ftruncate(fdw, t) < 0) + err(1, "Cannot truncate output %s to %jd bytes", + argv[1], (intmax_t)t); } else fdw = -1; @@ -292,6 +293,10 @@ main(int argc, char * const argv[]) } printf("\n%jd %zu failed (%s)\n", lp->start, i, strerror(errno)); + if (errno == EINVAL) { + printf("read() size too big? Try with -b 131072"); + aborting = 1; + } if (errno == ENXIO) aborting = 1; new_lump(lp->start, i, lp->state + 1); From owner-svn-src-head@FreeBSD.ORG Sun May 1 20:46:38 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09B7E106564A; Sun, 1 May 2011 20:46:38 +0000 (UTC) (envelope-from brueffer@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EDEF48FC0C; Sun, 1 May 2011 20:46:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41KkbQ8006987; Sun, 1 May 2011 20:46:37 GMT (envelope-from brueffer@svn.freebsd.org) Received: (from brueffer@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41KkbS8006985; Sun, 1 May 2011 20:46:37 GMT (envelope-from brueffer@svn.freebsd.org) Message-Id: <201105012046.p41KkbS8006985@svn.freebsd.org> From: Christian Brueffer Date: Sun, 1 May 2011 20:46:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221305 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 20:46:38 -0000 Author: brueffer Date: Sun May 1 20:46:37 2011 New Revision: 221305 URL: http://svn.freebsd.org/changeset/base/221305 Log: Minor cleanup. Modified: head/share/man/man4/vxge.4 Modified: head/share/man/man4/vxge.4 ============================================================================== --- head/share/man/man4/vxge.4 Sun May 1 20:14:10 2011 (r221304) +++ head/share/man/man4/vxge.4 Sun May 1 20:46:37 2011 (r221305) @@ -49,13 +49,12 @@ The .Nm driver provides support for Neterion X3100 adapters. The driver supports TCP Segmentation Offload (TSO/LSO), -Large Receive Offlaod (LRO), Jumbo Frames, Receive Traffic Hash (RTH), +Large Receive Offload (LRO), Jumbo Frames, Receive Traffic Hash (RTH), VLAN, Promiscuous mode and Multi function mode. .Pp - The .Nm -driver supports following function modes: +driver supports the following function modes: .Bd -ragged -offset indent .Cd "SF1_VP17 - 1 function with 17 VPATHs" .Ed From owner-svn-src-head@FreeBSD.ORG Sun May 1 22:19:53 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BA55106566B; Sun, 1 May 2011 22:19:53 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2BFF08FC13; Sun, 1 May 2011 22:19:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41MJrFr009782; Sun, 1 May 2011 22:19:53 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41MJrBl009779; Sun, 1 May 2011 22:19:53 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105012219.p41MJrBl009779@svn.freebsd.org> From: Rick Macklem Date: Sun, 1 May 2011 22:19:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221306 - in head/sys: fs/nfs nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 22:19:53 -0000 Author: rmacklem Date: Sun May 1 22:19:52 2011 New Revision: 221306 URL: http://svn.freebsd.org/changeset/base/221306 Log: Add the kernel support needed to zero out the nfsstats structure for the new NFS subsystem. This will be used by nfsstats.c to implement the "-z" option. MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_commonport.c head/sys/nfs/nfssvc.h Modified: head/sys/fs/nfs/nfs_commonport.c ============================================================================== --- head/sys/fs/nfs/nfs_commonport.c Sun May 1 20:46:37 2011 (r221305) +++ head/sys/fs/nfs/nfs_commonport.c Sun May 1 22:19:52 2011 (r221306) @@ -404,6 +404,8 @@ nfssvc_call(struct thread *p, struct nfs } else if (uap->flag & NFSSVC_GETSTATS) { error = copyout(&newnfsstats, CAST_USER_ADDR_T(uap->argp), sizeof (newnfsstats)); + if ((uap->flag & NFSSVC_ZEROSTATS) != 0 && error == 0) + bzero(&newnfsstats, sizeof(newnfsstats)); return (error); } else if (uap->flag & NFSSVC_NFSUSERDPORT) { u_short sockport; Modified: head/sys/nfs/nfssvc.h ============================================================================== --- head/sys/nfs/nfssvc.h Sun May 1 20:46:37 2011 (r221305) +++ head/sys/nfs/nfssvc.h Sun May 1 22:19:52 2011 (r221306) @@ -64,5 +64,6 @@ #define NFSSVC_CBADDSOCK 0x00200000 #define NFSSVC_GETSTATS 0x00400000 #define NFSSVC_BACKUPSTABLE 0x00800000 +#define NFSSVC_ZEROSTATS 0x01000000 /* modifier for GETSTATS */ #endif /* _NFS_NFSSVC_H */ From owner-svn-src-head@FreeBSD.ORG Sun May 1 23:32:38 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 28F0A106564A; Sun, 1 May 2011 23:32:38 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 193968FC18; Sun, 1 May 2011 23:32:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41NWbt9011856; Sun, 1 May 2011 23:32:37 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41NWbiJ011854; Sun, 1 May 2011 23:32:37 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105012332.p41NWbiJ011854@svn.freebsd.org> From: Adrian Chadd Date: Sun, 1 May 2011 23:32:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221307 - head/sys/mips/atheros X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 23:32:38 -0000 Author: adrian Date: Sun May 1 23:32:37 2011 New Revision: 221307 URL: http://svn.freebsd.org/changeset/base/221307 Log: Some AR724x PCIe fixes, which should wrap up the first round of endian-ness issues with the AR724x. From Luiz: * Fix the bus space tag used so endian-ness is correctly handled; * Only do the workaround for the AR7240; AR7241/AR7242 (PB92) don't require this From me: * Add a read flush from openwrt Submitted by: Luiz Otavio O Souza Modified: head/sys/mips/atheros/ar724x_pci.c Modified: head/sys/mips/atheros/ar724x_pci.c ============================================================================== --- head/sys/mips/atheros/ar724x_pci.c Sun May 1 22:19:52 2011 (r221306) +++ head/sys/mips/atheros/ar724x_pci.c Sun May 1 23:32:37 2011 (r221307) @@ -57,8 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include /* XXX */ -#include /* XXX */ +#include #include @@ -113,7 +112,7 @@ static uint32_t ar724x_pci_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int bytes) { - uint32_t cmd, data, shift, mask; + uint32_t data, shift, mask; /* Register access is 32-bit aligned */ shift = (reg & 3) * 8; @@ -125,18 +124,9 @@ ar724x_pci_read_config(device_t dev, u_i dprintf("%s: tag (%x, %x, %x) reg %d(%d)\n", __func__, bus, slot, func, reg, bytes); - if ((bus == 0) && (slot == 0) && (func == 0)) { + if ((bus == 0) && (slot == 0) && (func == 0)) data = ATH_READ_REG(AR724X_PCI_CFG_BASE + (reg & ~3)); - /* - * WAR for BAR issue - We are unable to access the PCI device - * space if we set the BAR with proper base address. - */ - if (reg == PCIR_BAR(0) && bytes == 4) { - cmd = (ar71xx_soc == AR71XX_SOC_AR7240) ? - 0xffff : 0x1000ffff; - ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, cmd, bytes); - } - } else + else data = -1; /* Get request bytes from 32-bit word */ @@ -158,14 +148,14 @@ ar724x_pci_write_config(device_t dev, u_ if ((bus != 0) || (slot != 0) || (func != 0)) return; - ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, data, bytes); /* - * WAR for BAR issue - We are unable to access the PCI device space - * if we set the BAR with proper base address. - * Force a flush here (at register writing). + * WAR for BAR issue on AR7240 - We are unable to access the PCI device + * space if we set the BAR with proper base address. */ - if (reg == PCIR_BAR(0) && bytes == 4) - (void)ar724x_pci_read_config(dev, bus, slot, func, reg, bytes); + if (reg == PCIR_BAR(0) && bytes == 4 && ar71xx_soc == AR71XX_SOC_AR7240) + ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, 0xffff, bytes); + else + ar724x_pci_write(AR724X_PCI_CFG_BASE, reg, data, bytes); } static void @@ -232,6 +222,9 @@ ar724x_pci_setup(device_t dev) else reg = 0x1ffc1; ATH_WRITE_REG(AR724X_PCI_APP, reg); + /* Flush write */ + (void) ATH_READ_REG(AR724X_PCI_APP); + DELAY(1000); reg = ATH_READ_REG(AR724X_PCI_RESET); @@ -457,10 +450,7 @@ ar724x_pci_activate_resource(device_t bu case SYS_RES_MEMORY: case SYS_RES_IOPORT: - /* XXX */ - //rman_set_bustag(r, ar71xx_bus_space_pcimem); - //rman_set_bustag(r, mips_bus_space_generic); - rman_set_bustag(r, ar71xx_bus_space_reversed); + rman_set_bustag(r, ar71xx_bus_space_pcimem); break; } } From owner-svn-src-head@FreeBSD.ORG Sun May 1 23:41:36 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F205A106564A; Sun, 1 May 2011 23:41:35 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E231E8FC08; Sun, 1 May 2011 23:41:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41NfZK5012156; Sun, 1 May 2011 23:41:35 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41NfZ2H012154; Sun, 1 May 2011 23:41:35 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105012341.p41NfZ2H012154@svn.freebsd.org> From: Rick Macklem Date: Sun, 1 May 2011 23:41:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221308 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 23:41:36 -0000 Author: rmacklem Date: Sun May 1 23:41:35 2011 New Revision: 221308 URL: http://svn.freebsd.org/changeset/base/221308 Log: Fix nfsstat so that the "-z" option works for the new NFS subsystem. MFC after: 2 weeks Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Sun May 1 23:32:37 2011 (r221307) +++ head/usr.bin/nfsstat/nfsstat.c Sun May 1 23:41:35 2011 (r221308) @@ -85,6 +85,7 @@ static int zflag = 0; static int run_v4 = 0; static int printtitle = 1; static struct ext_nfsstats ext_nfsstats; +static int nfssvc_flag; void intpr(int, int); void printhdr(int, int); @@ -107,6 +108,7 @@ main(int argc, char **argv) char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; + nfssvc_flag = NFSSVC_GETSTATS; interval = 0; memf = nlistf = NULL; while ((ch = getopt(argc, argv, "cesWM:N:w:z")) != -1) @@ -135,6 +137,7 @@ main(int argc, char **argv) break; case 'z': zflag = 1; + nfssvc_flag |= NFSSVC_ZEROSTATS; break; case 'e': run_v4 = 1; @@ -161,7 +164,7 @@ main(int argc, char **argv) errx(1, "experimental client/server not loaded"); if (run_v4 != 0) { - if (nfssvc(NFSSVC_GETSTATS, &ext_nfsstats) < 0) + if (nfssvc(nfssvc_flag, &ext_nfsstats) < 0) err(1, "Can't get stats"); } else if (nlistf != NULL || memf != NULL) { deadkernel = 1; @@ -793,13 +796,13 @@ exp_sidewaysintpr(u_int interval, int cl int hdrcnt = 1; ext_nfsstatsp = &lastst; - if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0) + if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0) err(1, "Can't get stats"); sleep(interval); for (;;) { ext_nfsstatsp = &nfsstats; - if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0) + if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0) err(1, "Can't get stats"); if (--hdrcnt == 0) { From owner-svn-src-head@FreeBSD.ORG Sun May 1 23:55:56 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F5681065670; Sun, 1 May 2011 23:55:56 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 801068FC08; Sun, 1 May 2011 23:55:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p41Ntu2D012610; Sun, 1 May 2011 23:55:56 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p41Ntugh012608; Sun, 1 May 2011 23:55:56 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105012355.p41Ntugh012608@svn.freebsd.org> From: Rick Macklem Date: Sun, 1 May 2011 23:55:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221309 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 May 2011 23:55:56 -0000 Author: rmacklem Date: Sun May 1 23:55:56 2011 New Revision: 221309 URL: http://svn.freebsd.org/changeset/base/221309 Log: Fix nfsstat.1 to indicate that "-z" now works for the new NFS subsystems after r221308. This is a content change. MFC after: 2 weeks Modified: head/usr.bin/nfsstat/nfsstat.1 Modified: head/usr.bin/nfsstat/nfsstat.1 ============================================================================== --- head/usr.bin/nfsstat/nfsstat.1 Sun May 1 23:41:35 2011 (r221308) +++ head/usr.bin/nfsstat/nfsstat.1 Sun May 1 23:55:56 2011 (r221309) @@ -28,7 +28,7 @@ .\" From: @(#)nfsstat.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd October 18, 2007 +.Dd May 1, 2011 .Dt NFSSTAT 1 .Os .Sh NAME @@ -78,7 +78,6 @@ activity for both the client and server second intervals. .It Fl z Reset statistics after displaying them. -(Not currently supported by the experimental nfs subsystem.) .It Fl e Gather statistics from the experimental nfs subsystem that includes support for NFSv4 instead of the regular nfs subsystem. From owner-svn-src-head@FreeBSD.ORG Mon May 2 05:39:44 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C2611065673; Mon, 2 May 2011 05:39:44 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F1B288FC12; Mon, 2 May 2011 05:39:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p425dh65023583; Mon, 2 May 2011 05:39:43 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p425dh1k023581; Mon, 2 May 2011 05:39:43 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105020539.p425dh1k023581@svn.freebsd.org> From: Adrian Chadd Date: Mon, 2 May 2011 05:39:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221312 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 05:39:44 -0000 Author: adrian Date: Mon May 2 05:39:43 2011 New Revision: 221312 URL: http://svn.freebsd.org/changeset/base/221312 Log: Add documentation to sys/conf/options pointing out that AH_SUPPORT_AR9130 shouldn't be enabled by default unless you're truely building for the AR913x platform. Modified: head/sys/conf/options Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Mon May 2 01:01:03 2011 (r221311) +++ head/sys/conf/options Mon May 2 05:39:43 2011 (r221312) @@ -775,6 +775,8 @@ ATH_ENABLE_11N opt_ah.h # options for the Atheros hal AH_SUPPORT_AR5416 opt_ah.h +# XXX For now, this breaks non-AR9130 chipsets, so only use it +# XXX when actually targetting AR9130. AH_SUPPORT_AR9130 opt_ah.h AH_DEBUG opt_ah.h @@ -791,6 +793,7 @@ AH_MAXCHAN opt_ah.h AH_RXCFG_SDMAMW_4BYTES opt_ah.h # AR5416 and later interrupt mitigation +# XXX do not use this for AR9130 AH_AR5416_INTERRUPT_MITIGATION opt_ah.h # options for the Broadcom BCM43xx driver (bwi) From owner-svn-src-head@FreeBSD.ORG Mon May 2 05:48:13 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F329106566B; Mon, 2 May 2011 05:48:13 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-vw0-f54.google.com (mail-vw0-f54.google.com [209.85.212.54]) by mx1.freebsd.org (Postfix) with ESMTP id 659E48FC20; Mon, 2 May 2011 05:48:12 +0000 (UTC) Received: by vws18 with SMTP id 18so5329453vws.13 for ; Sun, 01 May 2011 22:48:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=rmo+SB8WPxnry4C0kHv+WOM/lkNANyRnu2MlJGkeQRE=; b=LQp89XfMr5kuD0r8RFpsg7RRk+z9i789iznyEmd/yJC7ZwgVdznW1NVyFQPtpF9yHj Yxqhzp9U9++SPJ7hqx2Zt/5rKPcSKQ4lexHGvRaukaGySyy3Zu7R3vH7lIkYxCE/Tg4j FGXmaMaDNFhohav9dA4h5M5FH3+NI2RqoRQQg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; b=i+JtjAKsOVCLhaTPde9daOtxxe6+V7NteiHgyIBZovIWlRcFZx/Vp+Ycl78j/1ms0/ pACOn/UBuFixZLDvw6sHZBpHaO0MKNRaV+ZF7bUfGKXrCW2NG++2k7LSPD74MOntp6dA StGUqB3/W1r/f0y8J4W6/3wQZYaCGlryImCYM= MIME-Version: 1.0 Received: by 10.52.69.69 with SMTP id c5mr4057962vdu.222.1304315291814; Sun, 01 May 2011 22:48:11 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.52.157.202 with HTTP; Sun, 1 May 2011 22:48:11 -0700 (PDT) In-Reply-To: <201105012154.40835.bschmidt@freebsd.org> References: <201105011905.p41J5sGs003976@svn.freebsd.org> <4DBDB45C.30906@freebsd.org> <201105012154.40835.bschmidt@freebsd.org> Date: Mon, 2 May 2011 13:48:11 +0800 X-Google-Sender-Auth: ZRw1gSdk4iXaAVwizy46EExGa68 Message-ID: From: Adrian Chadd To: Bernhard Schmidt Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Nathan Whitehorn Subject: Re: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 05:48:13 -0000 On 2 May 2011 03:54, Bernhard Schmidt wrote: >> I'm not sure that's intrinsically true. Even if they mostly only ship >> with Intel motherboards, many of these are Mini-PCI parts which could be >> put into non-x86 systems. > > Yes, indeed. Those might of course be used on other platforms too > (well at least it fits into the slot, I know that certain features > are not even available on AMD platforms). I'm just not aware that > anyone ever tried one of it on mips for example. > > I don't mind being proven wrong and if so move the entries back to > a more generic location. Currently I'm just trying mimic the module > behaviour in sys/modules/Makefile. I'm likely to try the intel mini-pcie stuff on the atheros PB92 ref board (AR7242 MIPS). Just not yet. I'll let you know how it goes when i've done it. Adiran From owner-svn-src-head@FreeBSD.ORG Mon May 2 09:47:13 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8E31106564A; Mon, 2 May 2011 09:47:13 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 993278FC0C; Mon, 2 May 2011 09:47:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p429lD9W031081; Mon, 2 May 2011 09:47:13 GMT (envelope-from maxim@svn.freebsd.org) Received: (from maxim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p429lDsj031079; Mon, 2 May 2011 09:47:13 GMT (envelope-from maxim@svn.freebsd.org) Message-Id: <201105020947.p429lDsj031079@svn.freebsd.org> From: Maxim Konovalov Date: Mon, 2 May 2011 09:47:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221319 - head/share/misc X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 09:47:13 -0000 Author: maxim Date: Mon May 2 09:47:13 2011 New Revision: 221319 URL: http://svn.freebsd.org/changeset/base/221319 Log: o OpenBSD 4.9 added. Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree ============================================================================== --- head/share/misc/bsd-family-tree Mon May 2 08:33:20 2011 (r221318) +++ head/share/misc/bsd-family-tree Mon May 2 09:47:13 2011 (r221319) @@ -246,7 +246,7 @@ FreeBSD 5.2 | | | | | | | NetBSD 5.1 | | | FreeBSD FreeBSD | | | | | 8.2 7.4 | | | DragonFly 2.10.1 - | v | | | | + | v | | OpenBSD 4.9 | | | | | | FreeBSD 9 -current | NetBSD -current OpenBSD -current | | | | | | @@ -533,6 +533,7 @@ NetBSD 5.1 2010-11-19 [NBD] FreeBSD 7.4 2011-02-24 [FBD] FreeBSD 8.2 2011-02-24 [FBD] DragonFly 2.10.1 2011-04-26 [DFB] +OpenBSD 4.9 2011-05-01 [OBD] Bibliography ------------------------ From owner-svn-src-head@FreeBSD.ORG Mon May 2 10:35:28 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51B97106564A; Mon, 2 May 2011 10:35:28 +0000 (UTC) (envelope-from brucec@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 274398FC0C; Mon, 2 May 2011 10:35:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42AZS3B034885; Mon, 2 May 2011 10:35:28 GMT (envelope-from brucec@svn.freebsd.org) Received: (from brucec@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42AZSfp034883; Mon, 2 May 2011 10:35:28 GMT (envelope-from brucec@svn.freebsd.org) Message-Id: <201105021035.p42AZSfp034883@svn.freebsd.org> From: Bruce Cran Date: Mon, 2 May 2011 10:35:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221320 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 10:35:28 -0000 Author: brucec Date: Mon May 2 10:35:27 2011 New Revision: 221320 URL: http://svn.freebsd.org/changeset/base/221320 Log: Add -Wmissing-include-dirs to CWARNFLAGS, so tinderbox will punish those developers committing new code with broken include directories. Fix a few whitespace issues. Improve a couple of comments. -W is now deprecated and is referred to as -Wextra (see gcc(1)). Submitted by: arundel Modified: head/sys/conf/kern.mk Modified: head/sys/conf/kern.mk ============================================================================== --- head/sys/conf/kern.mk Mon May 2 09:47:13 2011 (r221319) +++ head/sys/conf/kern.mk Mon May 2 10:35:27 2011 (r221320) @@ -3,24 +3,25 @@ # # Warning flags for compiling the kernel and components of the kernel. # -# Note that the newly added -Wcast-qual is responsible for generating +# Note that the newly added -Wcast-qual is responsible for generating # most of the remaining warnings. Warnings introduced with -Wall will # also pop up, but are easier to fix. CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ - -Wundef -Wno-pointer-sign -fformat-extensions + -Wundef -Wno-pointer-sign -fformat-extensions \ + -Wmissing-include-dirs # # The following flags are next up for working on: -# -W +# -Wextra # -# On the i386, do not align the stack to 16-byte boundaries. Otherwise GCC -# 2.95 adds code to the entry and exit point of every function to align the +# On i386, do not align the stack to 16-byte boundaries. Otherwise GCC 2.95 +# and above adds code to the entry and exit point of every function to align the # stack to 16-byte boundaries -- thus wasting approximately 12 bytes of stack -# per function call. While the 16-byte alignment may benefit micro benchmarks, +# per function call. While the 16-byte alignment may benefit micro benchmarks, # it is probably an overall loss as it makes the code bigger (less efficient # use of code cache tag lines) and uses more stack (less efficient use of data -# cache tag lines). Explicitly prohibit the use of SSE and other SIMD +# cache tag lines). Explicitly prohibit the use of FPU, SSE and other SIMD # operations inside the kernel itself. These operations are exclusively # reserved for user applications. # @@ -35,6 +36,7 @@ INLINE_LIMIT?= 8000 .if ${MACHINE_CPUARCH} == "arm" INLINE_LIMIT?= 8000 .endif + # # For IA-64, we use r13 for the kernel globals pointer and we only use # a very small subset of float registers for integer divides. @@ -98,7 +100,7 @@ INLINE_LIMIT?= 8000 CFLAGS+= -ffreestanding # -# GCC SSP support. +# GCC SSP support # .if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \ ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" @@ -106,9 +108,8 @@ CFLAGS+= -fstack-protector .endif # -# Enable CTF conversation on request. +# Enable CTF conversation on request # .if defined(WITH_CTF) .undef NO_CTF .endif - From owner-svn-src-head@FreeBSD.ORG Mon May 2 10:42:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89D6B1065672; Mon, 2 May 2011 10:42:19 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 79CF58FC08; Mon, 2 May 2011 10:42:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42AgJf4035110; Mon, 2 May 2011 10:42:19 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42AgJMQ035108; Mon, 2 May 2011 10:42:19 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105021042.p42AgJMQ035108@svn.freebsd.org> From: Adrian Chadd Date: Mon, 2 May 2011 10:42:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221321 - head/sys/mips/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 10:42:19 -0000 Author: adrian Date: Mon May 2 10:42:19 2011 New Revision: 221321 URL: http://svn.freebsd.org/changeset/base/221321 Log: Add in the work-around for the AR8316 gige switch PHY. This allows the ethernet to function on the PB92 board. Submitted by: Luiz Otavio O Souza Modified: head/sys/mips/conf/PB92.hints Modified: head/sys/mips/conf/PB92.hints ============================================================================== --- head/sys/mips/conf/PB92.hints Mon May 2 10:35:27 2011 (r221320) +++ head/sys/mips/conf/PB92.hints Mon May 2 10:42:19 2011 (r221321) @@ -30,7 +30,11 @@ hint.arge.0.at="nexus0" hint.arge.0.maddr=0x19000000 hint.arge.0.msize=0x1000 hint.arge.0.irq=2 -hint.arge.0.phymask=0x1 + +# AR8316 workaround for now +hint.arge.0.media=1000 +hint.arge.0.fduplex=1 +hint.arge.0.phymask=0x3 # GPIO hint.gpio.0.at="apb0" From owner-svn-src-head@FreeBSD.ORG Mon May 2 10:43:44 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 12A931065670; Mon, 2 May 2011 10:43:44 +0000 (UTC) Date: Mon, 2 May 2011 10:43:44 +0000 From: Alexander Best To: Bruce Cran Message-ID: <20110502104344.GA85667@freebsd.org> References: <201105021035.p42AZSfp034883@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201105021035.p42AZSfp034883@svn.freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221320 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 10:43:44 -0000 On Mon May 2 11, Bruce Cran wrote: > Author: brucec > Date: Mon May 2 10:35:27 2011 > New Revision: 221320 > URL: http://svn.freebsd.org/changeset/base/221320 > > Log: > Add -Wmissing-include-dirs to CWARNFLAGS, so tinderbox will punish those > developers committing new code with broken include directories. Bruce already committed r220712 in order to make the current tree work with -Wmissing-include-dirs. So hopefully tinderbox will not complain for any ARCH. Please also note that currently -Wmissing-include-dirs is a noop in clang. Once it gets implemented we will hopefully benefit from it via the vendor import. Thanks again Bruce for taking care! :) > Fix a few whitespace issues. > Improve a couple of comments. > -W is now deprecated and is referred to as -Wextra (see gcc(1)). > > Submitted by: arundel > > Modified: > head/sys/conf/kern.mk > > Modified: head/sys/conf/kern.mk > ============================================================================== > --- head/sys/conf/kern.mk Mon May 2 09:47:13 2011 (r221319) > +++ head/sys/conf/kern.mk Mon May 2 10:35:27 2011 (r221320) > @@ -3,24 +3,25 @@ > # > # Warning flags for compiling the kernel and components of the kernel. > # > -# Note that the newly added -Wcast-qual is responsible for generating > +# Note that the newly added -Wcast-qual is responsible for generating > # most of the remaining warnings. Warnings introduced with -Wall will > # also pop up, but are easier to fix. > CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \ > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \ > - -Wundef -Wno-pointer-sign -fformat-extensions > + -Wundef -Wno-pointer-sign -fformat-extensions \ > + -Wmissing-include-dirs > # > # The following flags are next up for working on: > -# -W > +# -Wextra > > # > -# On the i386, do not align the stack to 16-byte boundaries. Otherwise GCC > -# 2.95 adds code to the entry and exit point of every function to align the > +# On i386, do not align the stack to 16-byte boundaries. Otherwise GCC 2.95 > +# and above adds code to the entry and exit point of every function to align the > # stack to 16-byte boundaries -- thus wasting approximately 12 bytes of stack > -# per function call. While the 16-byte alignment may benefit micro benchmarks, > +# per function call. While the 16-byte alignment may benefit micro benchmarks, > # it is probably an overall loss as it makes the code bigger (less efficient > # use of code cache tag lines) and uses more stack (less efficient use of data > -# cache tag lines). Explicitly prohibit the use of SSE and other SIMD > +# cache tag lines). Explicitly prohibit the use of FPU, SSE and other SIMD > # operations inside the kernel itself. These operations are exclusively > # reserved for user applications. > # > @@ -35,6 +36,7 @@ INLINE_LIMIT?= 8000 > .if ${MACHINE_CPUARCH} == "arm" > INLINE_LIMIT?= 8000 > .endif > + > # > # For IA-64, we use r13 for the kernel globals pointer and we only use > # a very small subset of float registers for integer divides. > @@ -98,7 +100,7 @@ INLINE_LIMIT?= 8000 > CFLAGS+= -ffreestanding > > # > -# GCC SSP support. > +# GCC SSP support > # > .if ${MK_SSP} != "no" && ${MACHINE_CPUARCH} != "ia64" && \ > ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" > @@ -106,9 +108,8 @@ CFLAGS+= -fstack-protector > .endif > > # > -# Enable CTF conversation on request. > +# Enable CTF conversation on request > # > .if defined(WITH_CTF) > .undef NO_CTF > .endif > - -- a13x From owner-svn-src-head@FreeBSD.ORG Mon May 2 11:08:20 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89CBE106566B; Mon, 2 May 2011 11:08:20 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 49D528FC29; Mon, 2 May 2011 11:08:20 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:a950:cfe0:24ac:52fd] (unknown [IPv6:2001:7b8:3a7:0:a950:cfe0:24ac:52fd]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 812165C59; Mon, 2 May 2011 13:08:19 +0200 (CEST) Message-ID: <4DBE90A3.50102@FreeBSD.org> Date: Mon, 02 May 2011 13:08:19 +0200 From: Dimitry Andric Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110415 Lanikai/3.1.11pre MIME-Version: 1.0 To: Jung-uk Kim References: <201104291820.p3TIKCv7009883@svn.freebsd.org> In-Reply-To: <201104291820.p3TIKCv7009883@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221214 - head/sys/x86/x86 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 11:08:20 -0000 On 2011-04-29 20:20, Jung-uk Kim wrote: ... > +static __inline void > +vmware_hvcall(u_int cmd, u_int *p) > +{ > + > + __asm __volatile("inl (%%dx)" > + : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) > + : "0" (VMW_HVMAGIC), "1" (UINT_MAX), "2" (cmd), "3" (VMW_HVPORT) > + : "memory"); > +} This upsets clang's integrated assembler, and I think it's right in this case: sys/x86/x86/tsc.c:103:19: error: invalid operand for instruction __asm __volatile("inl (%%dx)" ^ :1:6: note: instantiated into assembly here inl (%dx) ^ Can we please add an explicit %%eax as second argument here? E.g.: diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c index 0b7510c..9638167 100644 --- a/sys/x86/x86/tsc.c +++ b/sys/x86/x86/tsc.c @@ -100,7 +100,7 @@ static __inline void vmware_hvcall(u_int cmd, u_int *p) { - __asm __volatile("inl (%%dx)" + __asm __volatile("inl (%%dx), %%eax" : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) : "0" (VMW_HVMAGIC), "1" (UINT_MAX), "2" (cmd), "3" (VMW_HVPORT) : "memory"); From owner-svn-src-head@FreeBSD.ORG Mon May 2 14:13:13 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F38EB106564A; Mon, 2 May 2011 14:13:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E14778FC14; Mon, 2 May 2011 14:13:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42EDCjK041429; Mon, 2 May 2011 14:13:12 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42EDCpt041421; Mon, 2 May 2011 14:13:12 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105021413.p42EDCpt041421@svn.freebsd.org> From: John Baldwin Date: Mon, 2 May 2011 14:13:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221324 - in head/sys: amd64/pci dev/acpica dev/pci i386/pci x86/x86 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 14:13:13 -0000 Author: jhb Date: Mon May 2 14:13:12 2011 New Revision: 221324 URL: http://svn.freebsd.org/changeset/base/221324 Log: Add implementations of BUS_ADJUST_RESOURCE() to the PCI bus driver, generic PCI-PCI bridge driver, x86 nexus driver, and x86 Host to PCI bridge drivers. Modified: head/sys/amd64/pci/pci_bus.c head/sys/dev/acpica/acpi_pcib_acpi.c head/sys/dev/pci/pci.c head/sys/dev/pci/pci_pci.c head/sys/i386/pci/pci_bus.c head/sys/x86/x86/mptable_pci.c head/sys/x86/x86/nexus.c Modified: head/sys/amd64/pci/pci_bus.c ============================================================================== --- head/sys/amd64/pci/pci_bus.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/amd64/pci/pci_bus.c Mon May 2 14:13:12 2011 (r221324) @@ -348,6 +348,7 @@ static device_method_t legacy_pcib_metho DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), Modified: head/sys/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- head/sys/dev/acpica/acpi_pcib_acpi.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/dev/acpica/acpi_pcib_acpi.c Mon May 2 14:13:12 2011 (r221324) @@ -100,6 +100,7 @@ static device_method_t acpi_pcib_acpi_me DEVMETHOD(bus_read_ivar, acpi_pcib_read_ivar), DEVMETHOD(bus_write_ivar, acpi_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, acpi_pcib_acpi_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/dev/pci/pci.c Mon May 2 14:13:12 2011 (r221324) @@ -142,6 +142,7 @@ static device_method_t pci_methods[] = { DEVMETHOD(bus_get_resource, bus_generic_rl_get_resource), DEVMETHOD(bus_delete_resource, pci_delete_resource), DEVMETHOD(bus_alloc_resource, pci_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_rl_release_resource), DEVMETHOD(bus_activate_resource, pci_activate_resource), DEVMETHOD(bus_deactivate_resource, pci_deactivate_resource), Modified: head/sys/dev/pci/pci_pci.c ============================================================================== --- head/sys/dev/pci/pci_pci.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/dev/pci/pci_pci.c Mon May 2 14:13:12 2011 (r221324) @@ -73,6 +73,7 @@ static device_method_t pcib_methods[] = DEVMETHOD(bus_read_ivar, pcib_read_ivar), DEVMETHOD(bus_write_ivar, pcib_write_ivar), DEVMETHOD(bus_alloc_resource, pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), Modified: head/sys/i386/pci/pci_bus.c ============================================================================== --- head/sys/i386/pci/pci_bus.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/i386/pci/pci_bus.c Mon May 2 14:13:12 2011 (r221324) @@ -565,6 +565,7 @@ static device_method_t legacy_pcib_metho DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), Modified: head/sys/x86/x86/mptable_pci.c ============================================================================== --- head/sys/x86/x86/mptable_pci.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/x86/x86/mptable_pci.c Mon May 2 14:13:12 2011 (r221324) @@ -116,6 +116,7 @@ static device_method_t mptable_hostb_met DEVMETHOD(bus_read_ivar, legacy_pcib_read_ivar), DEVMETHOD(bus_write_ivar, legacy_pcib_write_ivar), DEVMETHOD(bus_alloc_resource, legacy_pcib_alloc_resource), + DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), Modified: head/sys/x86/x86/nexus.c ============================================================================== --- head/sys/x86/x86/nexus.c Mon May 2 13:58:40 2011 (r221323) +++ head/sys/x86/x86/nexus.c Mon May 2 14:13:12 2011 (r221324) @@ -100,6 +100,8 @@ static device_t nexus_add_child(device_t int unit); static struct resource *nexus_alloc_resource(device_t, device_t, int, int *, u_long, u_long, u_long, u_int); +static int nexus_adjust_resource(device_t, device_t, int, struct resource *, + u_long, u_long); #ifdef SMP static int nexus_bind_intr(device_t, device_t, struct resource *, int); #endif @@ -144,6 +146,7 @@ static device_method_t nexus_methods[] = DEVMETHOD(bus_print_child, nexus_print_child), DEVMETHOD(bus_add_child, nexus_add_child), DEVMETHOD(bus_alloc_resource, nexus_alloc_resource), + DEVMETHOD(bus_adjust_resource, nexus_adjust_resource), DEVMETHOD(bus_release_resource, nexus_release_resource), DEVMETHOD(bus_activate_resource, nexus_activate_resource), DEVMETHOD(bus_deactivate_resource, nexus_deactivate_resource), @@ -332,6 +335,23 @@ nexus_add_child(device_t bus, u_int orde return(child); } +static struct rman * +nexus_rman(int type) +{ + switch (type) { + case SYS_RES_IRQ: + return (&irq_rman); + case SYS_RES_DRQ: + return (&drq_rman); + case SYS_RES_IOPORT: + return (&port_rman); + case SYS_RES_MEMORY: + return (&mem_rman); + default: + return (NULL); + } +} + /* * Allocate a resource on behalf of child. NB: child is usually going to be a * child of one of our descendants, not a direct child of nexus0. @@ -364,27 +384,9 @@ nexus_alloc_resource(device_t bus, devic } flags &= ~RF_ACTIVE; - - switch (type) { - case SYS_RES_IRQ: - rm = &irq_rman; - break; - - case SYS_RES_DRQ: - rm = &drq_rman; - break; - - case SYS_RES_IOPORT: - rm = &port_rman; - break; - - case SYS_RES_MEMORY: - rm = &mem_rman; - break; - - default: - return 0; - } + rm = nexus_rman(type); + if (rm == NULL) + return (NULL); rv = rman_reserve_resource(rm, start, end, count, flags, child); if (rv == 0) @@ -402,6 +404,20 @@ nexus_alloc_resource(device_t bus, devic } static int +nexus_adjust_resource(device_t bus, device_t child, int type, + struct resource *r, u_long start, u_long end) +{ + struct rman *rm; + + rm = nexus_rman(type); + if (rm == NULL) + return (ENXIO); + if (!rman_is_region_manager(r, rm)) + return (EINVAL); + return (rman_adjust_resource(r, start, end)); +} + +static int nexus_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *r) { From owner-svn-src-head@FreeBSD.ORG Mon May 2 14:34:03 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E61F1106566C; Mon, 2 May 2011 14:34:03 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BEF498FC08; Mon, 2 May 2011 14:34:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42EY3Kc042192; Mon, 2 May 2011 14:34:03 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42EY3kA042190; Mon, 2 May 2011 14:34:03 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105021434.p42EY3kA042190@svn.freebsd.org> From: John Baldwin Date: Mon, 2 May 2011 14:34:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221326 - head/sys/dev/puc X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 14:34:04 -0000 Author: jhb Date: Mon May 2 14:34:03 2011 New Revision: 221326 URL: http://svn.freebsd.org/changeset/base/221326 Log: Add an entry for the Kuroutoshikou SERIAL4P-LPPCI2 which uses an Oxford 4 port chip but with a nonstandard clock. PR: kern/104212 Submitted by: Shuichi KITAGUCHI kit of ysnb net MFC after: 1 week Modified: head/sys/dev/puc/pucdata.c Modified: head/sys/dev/puc/pucdata.c ============================================================================== --- head/sys/dev/puc/pucdata.c Mon May 2 14:23:36 2011 (r221325) +++ head/sys/dev/puc/pucdata.c Mon May 2 14:34:03 2011 (r221326) @@ -638,6 +638,12 @@ const struct puc_cfg puc_pci_devices[] = PUC_PORT_4S, 0x10, 0, 8, }, + { 0x1415, 0x9501, 0x14db, 0x2150, + "Kuroutoshikou SERIAL4P-LPPCI2", + DEFAULT_RCLK * 10, + PUC_PORT_4S, 0x10, 0, 8, + }, + { 0x1415, 0x9501, 0xffff, 0, "Oxford Semiconductor OX16PCI954 UARTs", DEFAULT_RCLK, From owner-svn-src-head@FreeBSD.ORG Mon May 2 14:36:32 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F661106564A; Mon, 2 May 2011 14:36:32 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 45FDA8FC18; Mon, 2 May 2011 14:36:32 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id D951946B2D; Mon, 2 May 2011 10:36:31 -0400 (EDT) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 6F5548A01B; Mon, 2 May 2011 10:36:31 -0400 (EDT) From: John Baldwin To: Bernhard Schmidt Date: Mon, 2 May 2011 08:39:57 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110325; KDE/4.5.5; amd64; ; ) References: <201105011905.p41J5sGs003976@svn.freebsd.org> In-Reply-To: <201105011905.p41J5sGs003976@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201105020839.57556.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (bigwig.baldwin.cx); Mon, 02 May 2011 10:36:31 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 14:36:32 -0000 On Sunday, May 01, 2011 3:05:54 pm Bernhard Schmidt wrote: > Author: bschmidt > Date: Sun May 1 19:05:54 2011 > New Revision: 221301 > URL: http://svn.freebsd.org/changeset/base/221301 > > Log: > These are of course i386/amd64 only. > > Modified: > head/sys/conf/NOTES Please put them in i386/conf/NOTES and amd64/conf/NOTES. All drivers should be in appropriate NOTES files. -- John Baldwin From owner-svn-src-head@FreeBSD.ORG Mon May 2 15:01:28 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AF4C9106564A; Mon, 2 May 2011 15:01:28 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9E51A8FC16; Mon, 2 May 2011 15:01:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42F1Shr042993; Mon, 2 May 2011 15:01:28 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42F1SFb042991; Mon, 2 May 2011 15:01:28 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105021501.p42F1SFb042991@svn.freebsd.org> From: John Baldwin Date: Mon, 2 May 2011 15:01:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221327 - head/sys/dev/cardbus X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 15:01:28 -0000 Author: jhb Date: Mon May 2 15:01:28 2011 New Revision: 221327 URL: http://svn.freebsd.org/changeset/base/221327 Log: Don't explicitly list pci_write_ivar() for bus_write_ivar, the method is already inherited from the PCI bus driver. Modified: head/sys/dev/cardbus/cardbus.c Modified: head/sys/dev/cardbus/cardbus.c ============================================================================== --- head/sys/dev/cardbus/cardbus.c Mon May 2 14:34:03 2011 (r221326) +++ head/sys/dev/cardbus/cardbus.c Mon May 2 15:01:28 2011 (r221327) @@ -317,7 +317,6 @@ static device_method_t cardbus_methods[] /* Bus interface */ DEVMETHOD(bus_read_ivar, cardbus_read_ivar), - DEVMETHOD(bus_write_ivar, pci_write_ivar), DEVMETHOD(bus_driver_added, cardbus_driver_added), /* Card Interface */ From owner-svn-src-head@FreeBSD.ORG Mon May 2 15:53:00 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE044106564A; Mon, 2 May 2011 15:53:00 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BC3DC8FC14; Mon, 2 May 2011 15:53:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42Fr01x044507; Mon, 2 May 2011 15:53:00 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42Fr0bX044503; Mon, 2 May 2011 15:53:00 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201105021553.p42Fr0bX044503@svn.freebsd.org> From: Michael Tuexen Date: Mon, 2 May 2011 15:53:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221328 - head/sys/netinet X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 15:53:00 -0000 Author: tuexen Date: Mon May 2 15:53:00 2011 New Revision: 221328 URL: http://svn.freebsd.org/changeset/base/221328 Log: Some more cleanups related to an kernel without INET. MFC after: 1 week Modified: head/sys/netinet/sctputil.c head/sys/netinet/sctputil.h Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Mon May 2 15:01:28 2011 (r221327) +++ head/sys/netinet/sctputil.c Mon May 2 15:53:00 2011 (r221328) @@ -2844,9 +2844,11 @@ sctp_notify_peer_addr_change(struct sctp spc->spc_flags = 0; spc->spc_length = sizeof(struct sctp_paddr_change); switch (sa->sa_family) { +#ifdef INET case AF_INET: memcpy(&spc->spc_aaddr, sa, sizeof(struct sockaddr_in)); break; +#endif #ifdef INET6 case AF_INET6: { @@ -4084,6 +4086,7 @@ sctp_cmpaddr(struct sockaddr *sa1, struc sin6_2)); } #endif +#ifdef INET case AF_INET: { /* IPv4 addresses */ @@ -4093,6 +4096,7 @@ sctp_cmpaddr(struct sockaddr *sa1, struc sin_2 = (struct sockaddr_in *)sa2; return (sin_1->sin_addr.s_addr == sin_2->sin_addr.s_addr); } +#endif default: /* we don't do these... */ return (0); @@ -4122,6 +4126,7 @@ sctp_print_address(struct sockaddr *sa) break; } #endif +#ifdef INET case AF_INET: { struct sockaddr_in *sin; @@ -4133,6 +4138,7 @@ sctp_print_address(struct sockaddr *sa) p[0], p[1], p[2], p[3], ntohs(sin->sin_port)); break; } +#endif default: SCTP_PRINTF("?\n"); break; @@ -4143,6 +4149,7 @@ void sctp_print_address_pkt(struct ip *iph, struct sctphdr *sh) { switch (iph->ip_v) { +#ifdef INET case IPVERSION: { struct sockaddr_in lsa, fsa; @@ -4163,6 +4170,7 @@ sctp_print_address_pkt(struct ip *iph, s sctp_print_address((struct sockaddr *)&fsa); break; } +#endif #ifdef INET6 case IPV6_VERSION >> 4: { @@ -4862,22 +4870,33 @@ sctp_find_ifa_in_ep(struct sctp_inpcb *i uint32_t sctp_get_ifa_hash_val(struct sockaddr *addr) { - if (addr->sa_family == AF_INET) { - struct sockaddr_in *sin; + switch (addr->sa_family) { +#ifdef INET + case AF_INET: + { + struct sockaddr_in *sin; - sin = (struct sockaddr_in *)addr; - return (sin->sin_addr.s_addr ^ (sin->sin_addr.s_addr >> 16)); - } else if (addr->sa_family == AF_INET6) { - struct sockaddr_in6 *sin6; - uint32_t hash_of_addr; + sin = (struct sockaddr_in *)addr; + return (sin->sin_addr.s_addr ^ (sin->sin_addr.s_addr >> 16)); + } +#endif +#ifdef INET6 + case INET6: + { + struct sockaddr_in6 *sin6; + uint32_t hash_of_addr; - sin6 = (struct sockaddr_in6 *)addr; - hash_of_addr = (sin6->sin6_addr.s6_addr32[0] + - sin6->sin6_addr.s6_addr32[1] + - sin6->sin6_addr.s6_addr32[2] + - sin6->sin6_addr.s6_addr32[3]); - hash_of_addr = (hash_of_addr ^ (hash_of_addr >> 16)); - return (hash_of_addr); + sin6 = (struct sockaddr_in6 *)addr; + hash_of_addr = (sin6->sin6_addr.s6_addr32[0] + + sin6->sin6_addr.s6_addr32[1] + + sin6->sin6_addr.s6_addr32[2] + + sin6->sin6_addr.s6_addr32[3]); + hash_of_addr = (hash_of_addr ^ (hash_of_addr >> 16)); + return (hash_of_addr); + } +#endif + default: + break; } return (0); } @@ -6250,7 +6269,9 @@ sctp_connectx_helper_add(struct sctp_tcb inp = stcb->sctp_ep; *error = 0; for (i = 0; i < totaddr; i++) { - if (sa->sa_family == AF_INET) { + switch (sa->sa_family) { +#ifdef INET + case AF_INET: incr = sizeof(struct sockaddr_in); if (sctp_add_remote_addr(stcb, sa, SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) { /* assoc gone no un-lock */ @@ -6260,7 +6281,10 @@ sctp_connectx_helper_add(struct sctp_tcb goto out_now; } added++; - } else if (sa->sa_family == AF_INET6) { + break; +#endif +#ifdef INET6 + case AF_INET6: incr = sizeof(struct sockaddr_in6); if (sctp_add_remote_addr(stcb, sa, SCTP_DONOT_SETSCOPE, SCTP_ADDR_IS_CONFIRMED)) { /* assoc gone no un-lock */ @@ -6270,6 +6294,10 @@ sctp_connectx_helper_add(struct sctp_tcb goto out_now; } added++; + break; +#endif + default: + break; } sa = (struct sockaddr *)((caddr_t)sa + incr); } @@ -6288,10 +6316,13 @@ sctp_connectx_helper_find(struct sctp_in at = incr = 0; sa = addr; + *error = *num_v6 = *num_v4 = 0; /* account and validate addresses */ for (i = 0; i < (size_t)*totaddr; i++) { - if (sa->sa_family == AF_INET) { + switch (sa->sa_family) { +#ifdef INET + case AF_INET: (*num_v4) += 1; incr = sizeof(struct sockaddr_in); if (sa->sa_len != incr) { @@ -6300,30 +6331,40 @@ sctp_connectx_helper_find(struct sctp_in *bad_addr = 1; return (NULL); } - } else if (sa->sa_family == AF_INET6) { - struct sockaddr_in6 *sin6; - - sin6 = (struct sockaddr_in6 *)sa; - if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { - /* Must be non-mapped for connectx */ - SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL); - *error = EINVAL; - *bad_addr = 1; - return (NULL); - } - (*num_v6) += 1; - incr = sizeof(struct sockaddr_in6); - if (sa->sa_len != incr) { - SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL); - *error = EINVAL; - *bad_addr = 1; - return (NULL); + break; +#endif +#ifdef INET6 + case AF_INET6: + { + struct sockaddr_in6 *sin6; + + sin6 = (struct sockaddr_in6 *)sa; + if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) { + /* Must be non-mapped for connectx */ + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL); + *error = EINVAL; + *bad_addr = 1; + return (NULL); + } + (*num_v6) += 1; + incr = sizeof(struct sockaddr_in6); + if (sa->sa_len != incr) { + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL); + *error = EINVAL; + *bad_addr = 1; + return (NULL); + } + break; } - } else { +#endif + default: *totaddr = i; /* we are done */ break; } + if (i == (size_t)*totaddr) { + break; + } SCTP_INP_INCR_REF(inp); stcb = sctp_findassociation_ep_addr(&inp, sa, NULL, NULL, NULL); if (stcb != NULL) { @@ -6364,7 +6405,7 @@ sctp_bindx_add_address(struct socket *so return; } addr_touse = sa; -#if defined(INET6) && !defined(__Userspace__) /* TODO port in6_sin6_2_sin */ +#ifdef INET6 if (sa->sa_family == AF_INET6) { struct sockaddr_in6 *sin6; @@ -6393,6 +6434,7 @@ sctp_bindx_add_address(struct socket *so } } #endif +#ifdef INET if (sa->sa_family == AF_INET) { if (sa->sa_len != sizeof(struct sockaddr_in)) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL); @@ -6407,6 +6449,7 @@ sctp_bindx_add_address(struct socket *so return; } } +#endif if (inp->sctp_flags & SCTP_PCB_FLAGS_UNBOUND) { if (p == NULL) { /* Can't get proc for Net/Open BSD */ @@ -6519,6 +6562,7 @@ sctp_bindx_delete_address(struct socket } } #endif +#ifdef INET if (sa->sa_family == AF_INET) { if (sa->sa_len != sizeof(struct sockaddr_in)) { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTPUTIL, EINVAL); @@ -6533,6 +6577,7 @@ sctp_bindx_delete_address(struct socket return; } } +#endif /* * No lock required mgmt_ep_sa does its own locking. If the FIX: * below is ever changed we may need to lock before calling @@ -6599,6 +6644,7 @@ sctp_local_addr_count(struct sctp_tcb *s if (sctp_is_addr_restricted(stcb, sctp_ifa)) continue; switch (sctp_ifa->address.sa.sa_family) { +#ifdef INET case AF_INET: if (ipv4_addr_legal) { struct sockaddr_in *sin; @@ -6621,6 +6667,7 @@ sctp_local_addr_count(struct sctp_tcb *s continue; } break; +#endif #ifdef INET6 case AF_INET6: if (ipv6_addr_legal) { @@ -6715,6 +6762,8 @@ sctp_log_trace(uint32_t subsys, const ch } #endif +/* XXX: Remove the #ifdef after tunneling over IPv6 works also on FreeBSD. */ +#ifdef INET /* We will need to add support * to bind the ports and such here * so we can do UDP tunneling. In @@ -6816,7 +6865,7 @@ out: m_freem(m); } -void +void sctp_over_udp_stop(void) { struct socket *sop; @@ -6833,7 +6882,8 @@ sctp_over_udp_stop(void) soclose(sop); SCTP_BASE_INFO(udp_tun_socket) = NULL; } -int + +int sctp_over_udp_start(void) { uint16_t port; @@ -6886,3 +6936,5 @@ exit_stage_left: */ return (0); } + +#endif Modified: head/sys/netinet/sctputil.h ============================================================================== --- head/sys/netinet/sctputil.h Mon May 2 15:01:28 2011 (r221327) +++ head/sys/netinet/sctputil.h Mon May 2 15:53:00 2011 (r221328) @@ -313,10 +313,14 @@ do { \ } \ } while (0) -/* new functions to start/stop udp tunneling */ +/* functions to start/stop udp tunneling */ +/* XXX: Remove the #ifdef after tunneling over IPv6 works also on FreeBSD. */ +#ifdef INET void sctp_over_udp_stop(void); int sctp_over_udp_start(void); +#endif + int sctp_soreceive(struct socket *so, struct sockaddr **psa, struct uio *uio, From owner-svn-src-head@FreeBSD.ORG Mon May 2 16:51:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9ABF5106566C; Mon, 2 May 2011 16:51:02 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8A34C8FC34; Mon, 2 May 2011 16:51:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42Gp2US046255; Mon, 2 May 2011 16:51:02 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42Gp2m2046253; Mon, 2 May 2011 16:51:02 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201105021651.p42Gp2m2046253@svn.freebsd.org> From: Bernhard Schmidt Date: Mon, 2 May 2011 16:51:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221329 - head/sys/i386/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 16:51:02 -0000 Author: bschmidt Date: Mon May 2 16:51:02 2011 New Revision: 221329 URL: http://svn.freebsd.org/changeset/base/221329 Log: All PCI based wireless drivers seem to be explicitly removed from the PAE kernel config, do that also for those added to GENERIC lately. Modified: head/sys/i386/conf/PAE Modified: head/sys/i386/conf/PAE ============================================================================== --- head/sys/i386/conf/PAE Mon May 2 15:53:00 2011 (r221328) +++ head/sys/i386/conf/PAE Mon May 2 16:51:02 2011 (r221329) @@ -77,5 +77,11 @@ nodevice ath # Atheros pci/cardbus NIC' nodevice ath_pci nodevice ath_hal nodevice ath_rate_sample # SampleRate tx rate control for ath +nodevice ipw +nodevice iwi +nodevice iwn +nodevice malo +nodevice mwl nodevice ral nodevice wi +nodevice wpi From owner-svn-src-head@FreeBSD.ORG Mon May 2 16:55:07 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5306A1065670; Mon, 2 May 2011 16:55:07 +0000 (UTC) (envelope-from bschmidt@techwires.net) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 661A38FC14; Mon, 2 May 2011 16:55:05 +0000 (UTC) Received: by fxm11 with SMTP id 11so5473519fxm.13 for ; Mon, 02 May 2011 09:55:05 -0700 (PDT) Received: by 10.223.66.200 with SMTP id o8mr274462fai.38.1304355194649; Mon, 02 May 2011 09:53:14 -0700 (PDT) Received: from amy.lab.techwires.net (p54B4AA32.dip.t-dialin.net [84.180.170.50]) by mx.google.com with ESMTPS id 5sm741794faz.2.2011.05.02.09.53.12 (version=SSLv3 cipher=OTHER); Mon, 02 May 2011 09:53:13 -0700 (PDT) Sender: Bernhard Schmidt From: Bernhard Schmidt To: John Baldwin Date: Mon, 2 May 2011 18:53:22 +0200 User-Agent: KMail/1.13.7 (FreeBSD/8.2-STABLE; KDE/4.6.2; amd64; ; ) References: <201105011905.p41J5sGs003976@svn.freebsd.org> <201105020839.57556.jhb@freebsd.org> In-Reply-To: <201105020839.57556.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201105021853.23130.bschmidt@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 16:55:07 -0000 On Monday 02 May 2011 14:39:57 John Baldwin wrote: > On Sunday, May 01, 2011 3:05:54 pm Bernhard Schmidt wrote: > > Author: bschmidt > > Date: Sun May 1 19:05:54 2011 > > New Revision: 221301 > > URL: http://svn.freebsd.org/changeset/base/221301 > > > > Log: > > These are of course i386/amd64 only. > > > > Modified: > > head/sys/conf/NOTES > > Please put them in i386/conf/NOTES and amd64/conf/NOTES. All drivers should > be in appropriate NOTES files. They actually are. My fault was to not check those 2 files in the first place. Sorry the noise this has caused. -- Bernhard From owner-svn-src-head@FreeBSD.ORG Mon May 2 17:08:36 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 99C55106564A; Mon, 2 May 2011 17:08:36 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 884F38FC08; Mon, 2 May 2011 17:08:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42H8aME046825; Mon, 2 May 2011 17:08:36 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42H8auB046822; Mon, 2 May 2011 17:08:36 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201105021708.p42H8auB046822@svn.freebsd.org> From: Jung-uk Kim Date: Mon, 2 May 2011 17:08:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221331 - head/sys/x86/x86 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 17:08:36 -0000 Author: jkim Date: Mon May 2 17:08:36 2011 New Revision: 221331 URL: http://svn.freebsd.org/changeset/base/221331 Log: Fix build with clang. Please note there is an LLVM/Clang PR: http://llvm.org/bugs/show_bug.cgi?id=9379 Reported by: rpaulo, dim Modified: head/sys/x86/x86/tsc.c Modified: head/sys/x86/x86/tsc.c ============================================================================== --- head/sys/x86/x86/tsc.c Mon May 2 17:04:09 2011 (r221330) +++ head/sys/x86/x86/tsc.c Mon May 2 17:08:36 2011 (r221331) @@ -100,7 +100,7 @@ static __inline void vmware_hvcall(u_int cmd, u_int *p) { - __asm __volatile("inl (%%dx)" + __asm __volatile("inl %w3, %0" : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) : "0" (VMW_HVMAGIC), "1" (UINT_MAX), "2" (cmd), "3" (VMW_HVPORT) : "memory"); From owner-svn-src-head@FreeBSD.ORG Mon May 2 17:11:38 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 359721065670; Mon, 2 May 2011 17:11:38 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: Dimitry Andric Date: Mon, 2 May 2011 13:11:21 -0400 User-Agent: KMail/1.6.2 References: <201104291820.p3TIKCv7009883@svn.freebsd.org> <4DBE90A3.50102@FreeBSD.org> In-Reply-To: <4DBE90A3.50102@FreeBSD.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201105021311.24782.jkim@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221214 - head/sys/x86/x86 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 17:11:38 -0000 On Monday 02 May 2011 07:08 am, Dimitry Andric wrote: > On 2011-04-29 20:20, Jung-uk Kim wrote: > ... > > > +static __inline void > > +vmware_hvcall(u_int cmd, u_int *p) > > +{ > > + > > + __asm __volatile("inl (%%dx)" > > + : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) > > + : "0" (VMW_HVMAGIC), "1" (UINT_MAX), "2" (cmd), "3" > > (VMW_HVPORT) + : "memory"); > > +} > > This upsets clang's integrated assembler, and I think it's right in > this case: > > sys/x86/x86/tsc.c:103:19: error: invalid operand for instruction > __asm __volatile("inl (%%dx)" > ^ > :1:6: note: instantiated into assembly here > inl (%dx) > ^ > > Can we please add an explicit %%eax as second argument here? E.g.: > > diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c > index 0b7510c..9638167 100644 > --- a/sys/x86/x86/tsc.c > +++ b/sys/x86/x86/tsc.c > @@ -100,7 +100,7 @@ static __inline void > vmware_hvcall(u_int cmd, u_int *p) > { > > - __asm __volatile("inl (%%dx)" > + __asm __volatile("inl (%%dx), %%eax" > > : "=a" (p[0]), "=b" (p[1]), "=c" (p[2]), "=d" (p[3]) > : "0" (VMW_HVMAGIC), "1" (UINT_MAX), "2" (cmd), "3" (VMW_HVPORT) > : "memory"); Fixed in r221331. Sorry for the breakage. Jung-uk Kim From owner-svn-src-head@FreeBSD.ORG Mon May 2 17:29:45 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8D3AC106564A; Mon, 2 May 2011 17:29:45 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 61D508FC16; Mon, 2 May 2011 17:29:45 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 12AA546B23; Mon, 2 May 2011 13:29:45 -0400 (EDT) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 96E0A8A01B; Mon, 2 May 2011 13:29:44 -0400 (EDT) From: John Baldwin To: Bernhard Schmidt Date: Mon, 2 May 2011 13:29:43 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110325; KDE/4.5.5; amd64; ; ) References: <201105011905.p41J5sGs003976@svn.freebsd.org> <201105020839.57556.jhb@freebsd.org> <201105021853.23130.bschmidt@freebsd.org> In-Reply-To: <201105021853.23130.bschmidt@freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201105021329.44027.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (bigwig.baldwin.cx); Mon, 02 May 2011 13:29:44 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221301 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 17:29:45 -0000 On Monday, May 02, 2011 12:53:22 pm Bernhard Schmidt wrote: > On Monday 02 May 2011 14:39:57 John Baldwin wrote: > > On Sunday, May 01, 2011 3:05:54 pm Bernhard Schmidt wrote: > > > Author: bschmidt > > > Date: Sun May 1 19:05:54 2011 > > > New Revision: 221301 > > > URL: http://svn.freebsd.org/changeset/base/221301 > > > > > > Log: > > > These are of course i386/amd64 only. > > > > > > Modified: > > > head/sys/conf/NOTES > > > > Please put them in i386/conf/NOTES and amd64/conf/NOTES. All drivers should > > be in appropriate NOTES files. > > They actually are. My fault was to not check those 2 files in the > first place. > > Sorry the noise this has caused. Ah, whoops. :) There are many drivers missing from the NOTES files, so I just assumed they had been missing. :-P I wrote a python script to look for missing drivers and options, it's at src/tools/tools/notescheck/notescheck.py. I haven't had time to sit down and fix all the missing entries though. -- John Baldwin From owner-svn-src-head@FreeBSD.ORG Mon May 2 17:46:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACB711065672; Mon, 2 May 2011 17:46:59 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9BE128FC16; Mon, 2 May 2011 17:46:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42Hkxs8048033; Mon, 2 May 2011 17:46:59 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42Hkxl3048031; Mon, 2 May 2011 17:46:59 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105021746.p42Hkxl3048031@svn.freebsd.org> From: Dimitry Andric Date: Mon, 2 May 2011 17:46:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221333 - head X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 17:46:59 -0000 Author: dim Date: Mon May 2 17:46:59 2011 New Revision: 221333 URL: http://svn.freebsd.org/changeset/base/221333 Log: Remove usr/include/nfs/krpc.h and usr/include/nfs/nfsdiskless.h from ObsoleteFiles.inc, since these files have been reincarnated in the new NFS implementation. Reviewed by: rmacklem Modified: head/ObsoleteFiles.inc Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Mon May 2 17:13:40 2011 (r221332) +++ head/ObsoleteFiles.inc Mon May 2 17:46:59 2011 (r221333) @@ -4874,9 +4874,7 @@ OLD_FILES+=usr/include/netns/spidp.h OLD_FILES+=usr/include/netns/spp_debug.h OLD_FILES+=usr/include/netns/spp_timer.h OLD_FILES+=usr/include/netns/spp_var.h -OLD_FILES+=usr/include/nfs/krpc.h OLD_FILES+=usr/include/nfs/nfs.h -OLD_FILES+=usr/include/nfs/nfsdiskless.h OLD_FILES+=usr/include/nfs/nfsm_subs.h OLD_FILES+=usr/include/nfs/nfsmount.h OLD_FILES+=usr/include/nfs/nfsnode.h From owner-svn-src-head@FreeBSD.ORG Mon May 2 17:49:06 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19C1F106564A; Mon, 2 May 2011 17:49:06 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0863D8FC18; Mon, 2 May 2011 17:49:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42Hn5c7048134; Mon, 2 May 2011 17:49:05 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42Hn53t048132; Mon, 2 May 2011 17:49:05 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201105021749.p42Hn53t048132@svn.freebsd.org> From: Marcel Moolenaar Date: Mon, 2 May 2011 17:49:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221334 - head/sys/ia64/include X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 17:49:06 -0000 Author: marcel Date: Mon May 2 17:49:05 2011 New Revision: 221334 URL: http://svn.freebsd.org/changeset/base/221334 Log: Don't use the whole region 5 for KVA, because the CPU may not implement all of the 61 bits available within the region for virtual addressing. Since there's no good way for us to map out the gap in the virtual address space, limit KVA to the architectural minimum implemented address bits. This still gives us 1 petabyte of KVA, so no worries. Modified: head/sys/ia64/include/vmparam.h Modified: head/sys/ia64/include/vmparam.h ============================================================================== --- head/sys/ia64/include/vmparam.h Mon May 2 17:46:59 2011 (r221333) +++ head/sys/ia64/include/vmparam.h Mon May 2 17:49:05 2011 (r221334) @@ -182,7 +182,8 @@ #define VM_MIN_ADDRESS 0 #define VM_MAXUSER_ADDRESS IA64_RR_BASE(IA64_VM_MINKERN_REGION) #define VM_MIN_KERNEL_ADDRESS IA64_RR_BASE(IA64_VM_MINKERN_REGION + 1) -#define VM_MAX_KERNEL_ADDRESS (IA64_RR_BASE(IA64_VM_MINKERN_REGION + 2) - 1) +#define VM_MAX_KERNEL_ADDRESS \ + (VM_MIN_KERNEL_ADDRESS + IA64_REGION_GAP_START - 1) #define VM_MAX_ADDRESS ~0UL #define KERNBASE VM_MAXUSER_ADDRESS From owner-svn-src-head@FreeBSD.ORG Mon May 2 18:41:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6DE1B106564A; Mon, 2 May 2011 18:41:54 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5D1FE8FC12; Mon, 2 May 2011 18:41:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42IfsLE049725; Mon, 2 May 2011 18:41:54 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42Ifs08049723; Mon, 2 May 2011 18:41:54 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201105021841.p42Ifs08049723@svn.freebsd.org> From: Xin LI Date: Mon, 2 May 2011 18:41:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221335 - head/sys/dev/coretemp X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 18:41:54 -0000 Author: delphij Date: Mon May 2 18:41:54 2011 New Revision: 221335 URL: http://svn.freebsd.org/changeset/base/221335 Log: Correct a typo. According to Intel document 318914, the Tj(max) for Core 2 Duo Mobile CPUs should be 105. Noticed by: Mark Johnston MFC after: 3 days Modified: head/sys/dev/coretemp/coretemp.c Modified: head/sys/dev/coretemp/coretemp.c ============================================================================== --- head/sys/dev/coretemp/coretemp.c Mon May 2 17:49:05 2011 (r221334) +++ head/sys/dev/coretemp/coretemp.c Mon May 2 18:41:54 2011 (r221335) @@ -192,7 +192,7 @@ coretemp_attach(device_t dev) } else if (cpu_model == 0x17) { switch (cpu_stepping) { case 0x6: /* Mobile Core 2 Duo */ - sc->sc_tjmax = 104; + sc->sc_tjmax = 105; break; default: /* Unknown stepping */ break; From owner-svn-src-head@FreeBSD.ORG Mon May 2 19:02:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6F3E106566C; Mon, 2 May 2011 19:02:30 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A68078FC1C; Mon, 2 May 2011 19:02:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42J2U06050384; Mon, 2 May 2011 19:02:30 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42J2UVd050382; Mon, 2 May 2011 19:02:30 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105021902.p42J2UVd050382@svn.freebsd.org> From: John Baldwin Date: Mon, 2 May 2011 19:02:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221336 - head/sys/dev/acpica X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 19:02:30 -0000 Author: jhb Date: Mon May 2 19:02:30 2011 New Revision: 221336 URL: http://svn.freebsd.org/changeset/base/221336 Log: The ACPI Host-PCI bridge driver actually supports multiple domains via the optional _SEG function. Return that value (ap->segment) rather than 0 for the pcib domain ivar. Modified: head/sys/dev/acpica/acpi_pcib_acpi.c Modified: head/sys/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- head/sys/dev/acpica/acpi_pcib_acpi.c Mon May 2 18:41:54 2011 (r221335) +++ head/sys/dev/acpica/acpi_pcib_acpi.c Mon May 2 19:02:30 2011 (r221336) @@ -268,7 +268,7 @@ acpi_pcib_read_ivar(device_t dev, device switch (which) { case PCIB_IVAR_DOMAIN: - *result = 0; + *result = sc->ap_segment; return (0); case PCIB_IVAR_BUS: *result = sc->ap_bus; From owner-svn-src-head@FreeBSD.ORG Mon May 2 19:16:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx2.freebsd.org (mx2.freebsd.org [IPv6:2001:4f8:fff6::35]) by hub.freebsd.org (Postfix) with ESMTP id 567911065677; Mon, 2 May 2011 19:16:05 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from 65-241-43-5.globalsuite.net (hub.freebsd.org [IPv6:2001:4f8:fff6::36]) by mx2.freebsd.org (Postfix) with ESMTP id 7B19D150407; Mon, 2 May 2011 19:16:02 +0000 (UTC) Message-ID: <4DBF02F1.7050407@FreeBSD.org> Date: Mon, 02 May 2011 12:16:01 -0700 From: Doug Barton Organization: http://SupersetSolutions.com/ User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.17) Gecko/20110429 Thunderbird/3.1.10 MIME-Version: 1.0 To: Bruce Cran References: <201105021035.p42AZSfp034883@svn.freebsd.org> In-Reply-To: <201105021035.p42AZSfp034883@svn.freebsd.org> X-Enigmail-Version: 1.1.2 OpenPGP: id=1A1ABC84 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221320 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 19:16:05 -0000 On 05/02/2011 03:35, Bruce Cran wrote: > Fix a few whitespace issues. Please do not mix whitespace changes with substantive changes, in any file. The same reasons this is annoying apply whether it is source code or not. I realize that it is a tiny bit of extra work for the person doing the change, but it makes reviewing the diffs MUCH easier, both now, and more importantly years from now. Thanks, Doug -- Nothin' ever doesn't change, but nothin' changes much. -- OK Go Breadth of IT experience, and depth of knowledge in the DNS. Yours for the right price. :) http://SupersetSolutions.com/ From owner-svn-src-head@FreeBSD.ORG Mon May 2 20:37:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E4581065672; Mon, 2 May 2011 20:37:30 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8F5E48FC18; Mon, 2 May 2011 20:37:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42KbUSx053438; Mon, 2 May 2011 20:37:30 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42KbU7B053435; Mon, 2 May 2011 20:37:30 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201105022037.p42KbU7B053435@svn.freebsd.org> From: Marius Strobl Date: Mon, 2 May 2011 20:37:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221341 - head/sys/dev/mii X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 20:37:30 -0000 Author: marius Date: Mon May 2 20:37:30 2011 New Revision: 221341 URL: http://svn.freebsd.org/changeset/base/221341 Log: Probe the PHY accompanying BCM57765. Tested by: Paul Thornton MFC after: 1 week Modified: head/sys/dev/mii/brgphy.c head/sys/dev/mii/miidevs Modified: head/sys/dev/mii/brgphy.c ============================================================================== --- head/sys/dev/mii/brgphy.c Mon May 2 19:40:52 2011 (r221340) +++ head/sys/dev/mii/brgphy.c Mon May 2 20:37:30 2011 (r221341) @@ -143,6 +143,7 @@ static const struct mii_phydesc brgphys[ MII_PHY_DESC(xxBROADCOM_ALT1, BCM5761), MII_PHY_DESC(xxBROADCOM_ALT1, BCM5709S), MII_PHY_DESC(xxBROADCOM_ALT2, BCM5717C), + MII_PHY_DESC(xxBROADCOM_ALT2, BCM57765), MII_PHY_DESC(BROADCOM2, BCM5906), MII_PHY_END }; Modified: head/sys/dev/mii/miidevs ============================================================================== --- head/sys/dev/mii/miidevs Mon May 2 19:40:52 2011 (r221340) +++ head/sys/dev/mii/miidevs Mon May 2 20:37:30 2011 (r221341) @@ -159,6 +159,7 @@ model xxBROADCOM_ALT1 BCM5709C 0x003c BC model xxBROADCOM_ALT1 BCM5761 0x003d BCM5761 10/100/1000baseTX PHY model xxBROADCOM_ALT1 BCM5709S 0x003f BCM5709S 1000/2500baseSX PHY model xxBROADCOM_ALT2 BCM5717C 0x0020 BCM5717C 10/100/1000baseTX PHY +model xxBROADCOM_ALT2 BCM57765 0x0024 BCM57765 10/100/1000baseTX PHY model BROADCOM2 BCM5906 0x0004 BCM5906 10/100baseTX PHY /* Cicada Semiconductor PHYs (now owned by Vitesse?) */ From owner-svn-src-head@FreeBSD.ORG Mon May 2 20:43:24 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FB6F106566C; Mon, 2 May 2011 20:43:24 +0000 (UTC) (envelope-from davidch@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 60B808FC1A; Mon, 2 May 2011 20:43:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42KhOvI053654; Mon, 2 May 2011 20:43:24 GMT (envelope-from davidch@svn.freebsd.org) Received: (from davidch@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42KhOcj053651; Mon, 2 May 2011 20:43:24 GMT (envelope-from davidch@svn.freebsd.org) Message-Id: <201105022043.p42KhOcj053651@svn.freebsd.org> From: David Christensen Date: Mon, 2 May 2011 20:43:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221342 - head/sys/dev/bxe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 20:43:24 -0000 Author: davidch Date: Mon May 2 20:43:24 2011 New Revision: 221342 URL: http://svn.freebsd.org/changeset/base/221342 Log: - Re-committed r220603 which was accidentally backed out by an earlier commit. - Fixed a bug in an unused debug macro. MFC after: One week. Modified: head/sys/dev/bxe/bxe_debug.h head/sys/dev/bxe/if_bxe.h Modified: head/sys/dev/bxe/bxe_debug.h ============================================================================== --- head/sys/dev/bxe/bxe_debug.h Mon May 2 20:37:30 2011 (r221341) +++ head/sys/dev/bxe/bxe_debug.h Mon May 2 20:43:24 2011 (r221342) @@ -210,7 +210,7 @@ extern uint32_t bxe_debug; /* Returns FALSE in "defects" per 2^31 - 1 calls, otherwise returns TRUE. */ #define DB_RANDOMFALSE(defects) (random() > defects) #define DB_OR_RANDOMFALSE(defects) || (random() > defects) -#define DB_AND_RANDOMFALSE(defects) && (random() > ddfects) +#define DB_AND_RANDOMFALSE(defects) && (random() > defects) /* Returns TRUE in "defects" per 2^31 - 1 calls, otherwise returns FALSE. */ #define DB_RANDOMTRUE(defects) (random() < defects) Modified: head/sys/dev/bxe/if_bxe.h ============================================================================== --- head/sys/dev/bxe/if_bxe.h Mon May 2 20:37:30 2011 (r221341) +++ head/sys/dev/bxe/if_bxe.h Mon May 2 20:43:24 2011 (r221342) @@ -1150,9 +1150,6 @@ struct bxe_fastpath { /* ToDo: Audit this structure for unused varaibles. */ struct bxe_softc { - /* - * MUST start with ifnet pointer (see definition of miibus_statchg()). - */ struct ifnet *bxe_ifp; int media; From owner-svn-src-head@FreeBSD.ORG Mon May 2 20:45:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 806A4106566C; Mon, 2 May 2011 20:45:19 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 719D98FC08; Mon, 2 May 2011 20:45:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42KjJsH053757; Mon, 2 May 2011 20:45:19 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42KjJL4053755; Mon, 2 May 2011 20:45:19 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201105022045.p42KjJL4053755@svn.freebsd.org> From: Marius Strobl Date: Mon, 2 May 2011 20:45:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221343 - head/sys/dev/bge X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 20:45:19 -0000 Author: marius Date: Mon May 2 20:45:19 2011 New Revision: 221343 URL: http://svn.freebsd.org/changeset/base/221343 Log: Fix an logic bug which caused jumbo buffers to not be synced. Reported and tested by: Michael Moll MFC after: 3 days Modified: head/sys/dev/bge/if_bge.c Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Mon May 2 20:43:24 2011 (r221342) +++ head/sys/dev/bge/if_bge.c Mon May 2 20:45:19 2011 (r221343) @@ -1022,7 +1022,7 @@ bge_newbuf_jumbo(struct bge_softc *sc, i return (error); } - if (sc->bge_cdata.bge_rx_jumbo_chain[i] == NULL) { + if (sc->bge_cdata.bge_rx_jumbo_chain[i] != NULL) { bus_dmamap_sync(sc->bge_cdata.bge_mtag_jumbo, sc->bge_cdata.bge_rx_jumbo_dmamap[i], BUS_DMASYNC_POSTREAD); bus_dmamap_unload(sc->bge_cdata.bge_mtag_jumbo, From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:04:23 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9A86106564A; Mon, 2 May 2011 21:04:23 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CAE958FC08; Mon, 2 May 2011 21:04:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42L4N7Z054374; Mon, 2 May 2011 21:04:23 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42L4NTw054372; Mon, 2 May 2011 21:04:23 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201105022104.p42L4NTw054372@svn.freebsd.org> From: Marius Strobl Date: Mon, 2 May 2011 21:04:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221344 - head/sys/dev/bge X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:04:23 -0000 Author: marius Date: Mon May 2 21:04:23 2011 New Revision: 221344 URL: http://svn.freebsd.org/changeset/base/221344 Log: Correct spelling in comments. Submitted by: brucec Modified: head/sys/dev/bge/if_bge.c Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Mon May 2 20:45:19 2011 (r221343) +++ head/sys/dev/bge/if_bge.c Mon May 2 21:04:23 2011 (r221344) @@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$"); * * The Broadcom BCM5700 is based on technology originally developed by * Alteon Networks as part of the Tigon I and Tigon II gigabit ethernet - * MAC chips. The BCM5700, sometimes refered to as the Tigon III, has + * MAC chips. The BCM5700, sometimes referred to as the Tigon III, has * two on-board MIPS R4000 CPUs and can have as much as 16MB of external * SSRAM. The BCM5700 supports TCP, UDP and IP checksum offload, jumbo * frames, highly configurable RX filtering, and 16 RX and TX queues @@ -3419,7 +3419,7 @@ bge_reset(struct bge_softc *sc) pci_write_config(dev, sc->bge_pcixcap + PCIXR_COMMAND, devctl, 2); } - /* Re-enable MSI, if neccesary, and enable the memory arbiter. */ + /* Re-enable MSI, if necessary, and enable the memory arbiter. */ if (BGE_IS_5714_FAMILY(sc)) { /* This chip disables MSI on reset. */ if (sc->bge_flags & BGE_FLAG_MSI) { From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:04:38 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 757D3106568A; Mon, 2 May 2011 21:04:38 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6116F8FC1F; Mon, 2 May 2011 21:04:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42L4cle054428; Mon, 2 May 2011 21:04:38 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42L4cR8054410; Mon, 2 May 2011 21:04:38 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105022104.p42L4cR8054410@svn.freebsd.org> From: Dimitry Andric Date: Mon, 2 May 2011 21:04:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221345 - in head: . contrib/llvm/include/llvm contrib/llvm/include/llvm-c contrib/llvm/include/llvm-c/Transforms contrib/llvm/include/llvm/ADT contrib/llvm/include/llvm/Analysis contri... X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:04:38 -0000 Author: dim Date: Mon May 2 21:04:37 2011 New Revision: 221345 URL: http://svn.freebsd.org/changeset/base/221345 Log: Upgrade our copy of llvm/clang to r130700, from upstream's trunk. Added: head/contrib/llvm/include/llvm-c/Disassembler.h - copied unchanged from r221340, vendor/llvm/dist/include/llvm-c/Disassembler.h head/contrib/llvm/include/llvm-c/Object.h - copied unchanged from r221340, vendor/llvm/dist/include/llvm-c/Object.h head/contrib/llvm/include/llvm/DebugInfoProbe.h - copied unchanged from r221340, vendor/llvm/dist/include/llvm/DebugInfoProbe.h head/contrib/llvm/include/llvm/ExecutionEngine/RuntimeDyld.h - copied unchanged from r221340, vendor/llvm/dist/include/llvm/ExecutionEngine/RuntimeDyld.h head/contrib/llvm/include/llvm/IntrinsicsPTX.td - copied unchanged from r221340, vendor/llvm/dist/include/llvm/IntrinsicsPTX.td head/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/CodeGen/AsmPrinter/ARMException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h - copied unchanged from r221340, vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h head/contrib/llvm/lib/CodeGen/InterferenceCache.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/CodeGen/InterferenceCache.cpp head/contrib/llvm/lib/CodeGen/InterferenceCache.h - copied unchanged from r221340, vendor/llvm/dist/lib/CodeGen/InterferenceCache.h head/contrib/llvm/lib/ExecutionEngine/MCJIT/Intercept.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/ExecutionEngine/MCJIT/Intercept.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h - copied unchanged from r221340, vendor/llvm/dist/lib/ExecutionEngine/MCJIT/MCJITMemoryManager.h head/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/ - copied from r221340, vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/ head/contrib/llvm/lib/MC/ELFObjectWriter.h - copied unchanged from r221340, vendor/llvm/dist/lib/MC/ELFObjectWriter.h head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h - copied unchanged from r221340, vendor/llvm/dist/lib/MC/MCDisassembler/Disassembler.h head/contrib/llvm/lib/MC/MCELF.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/MC/MCELF.cpp head/contrib/llvm/lib/MC/MCELF.h - copied unchanged from r221340, vendor/llvm/dist/lib/MC/MCELF.h head/contrib/llvm/lib/MC/MCELFStreamer.h - copied unchanged from r221340, vendor/llvm/dist/lib/MC/MCELFStreamer.h head/contrib/llvm/lib/Object/MachOObjectFile.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/Object/MachOObjectFile.cpp head/contrib/llvm/lib/Object/Object.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/Object/Object.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeSchedule3.td - copied unchanged from r221340, vendor/llvm/dist/lib/Target/MBlaze/MBlazeSchedule3.td head/contrib/llvm/lib/Target/MBlaze/MBlazeSchedule5.td - copied unchanged from r221340, vendor/llvm/dist/lib/Target/MBlaze/MBlazeSchedule5.td head/contrib/llvm/lib/Target/Mips/MipsExpandPseudo.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/Target/Mips/MipsExpandPseudo.cpp head/contrib/llvm/lib/Target/PTX/PTXIntrinsicInstrInfo.td - copied unchanged from r221340, vendor/llvm/dist/lib/Target/PTX/PTXIntrinsicInstrInfo.td head/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/Transforms/Instrumentation/GCOVProfiling.cpp head/contrib/llvm/lib/VMCore/DebugInfoProbe.cpp - copied unchanged from r221340, vendor/llvm/dist/lib/VMCore/DebugInfoProbe.cpp head/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Basic/AddressSpaces.h head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsPTX.def - copied unchanged from r221340, vendor/clang/dist/include/clang/Basic/BuiltinsPTX.def head/contrib/llvm/tools/clang/include/clang/Basic/ExceptionSpecificationType.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Basic/ExceptionSpecificationType.h head/contrib/llvm/tools/clang/include/clang/Basic/ExpressionTraits.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Basic/ExpressionTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/OpenCL.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Basic/OpenCL.h head/contrib/llvm/tools/clang/include/clang/Basic/VersionTuple.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Basic/VersionTuple.h head/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Frontend/LogDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Serialization/ChainedIncludesSource.h - copied unchanged from r221340, vendor/clang/dist/include/clang/Serialization/ChainedIncludesSource.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h - copied unchanged from r221340, vendor/clang/dist/include/clang/StaticAnalyzer/Core/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h - copied unchanged from r221340, vendor/clang/dist/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h head/contrib/llvm/tools/clang/include/clang/Tooling/ - copied from r221340, vendor/clang/dist/include/clang/Tooling/ head/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp - copied unchanged from r221340, vendor/clang/dist/lib/AST/ExternalASTSource.cpp head/contrib/llvm/tools/clang/lib/Basic/VersionTuple.cpp - copied unchanged from r221340, vendor/clang/dist/lib/Basic/VersionTuple.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp - copied unchanged from r221340, vendor/clang/dist/lib/CodeGen/CGObjCRuntime.cpp head/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp - copied unchanged from r221340, vendor/clang/dist/lib/Frontend/CreateInvocationFromCommandLine.cpp head/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp - copied unchanged from r221340, vendor/clang/dist/lib/Frontend/LogDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/Headers/mm3dnow.h - copied unchanged from r221340, vendor/clang/dist/lib/Headers/mm3dnow.h head/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp - copied unchanged from r221340, vendor/clang/dist/lib/Sema/DelayedDiagnostic.cpp head/contrib/llvm/tools/clang/lib/Sema/Scope.cpp - copied unchanged from r221340, vendor/clang/dist/lib/Sema/Scope.cpp head/contrib/llvm/tools/clang/lib/Serialization/ChainedIncludesSource.cpp - copied unchanged from r221340, vendor/clang/dist/lib/Serialization/ChainedIncludesSource.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorsChecker.cpp - copied unchanged from r221340, vendor/clang/dist/lib/StaticAnalyzer/Checkers/IteratorsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp - copied unchanged from r221340, vendor/clang/dist/lib/StaticAnalyzer/Core/CheckerContext.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp - copied unchanged from r221340, vendor/clang/dist/lib/StaticAnalyzer/Core/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/Tooling/ - copied from r221340, vendor/clang/dist/lib/Tooling/ head/lib/clang/include/clang/Basic/DiagnosticIndexName.inc (contents, props changed) head/lib/clang/libllvminstrumentation/ head/lib/clang/libllvminstrumentation/Makefile (contents, props changed) Deleted: head/contrib/llvm/include/llvm/Analysis/LiveValues.h head/contrib/llvm/lib/Analysis/LiveValues.cpp head/contrib/llvm/lib/Target/PTX/Makefile head/contrib/llvm/lib/Transforms/IPO/StructRetPromotion.cpp head/contrib/llvm/lib/Transforms/Scalar/GEPSplitter.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyHalfPowrLibCalls.cpp head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValuesV2.h head/contrib/llvm/tools/clang/include/clang/Frontend/DeclContextXML.def head/contrib/llvm/tools/clang/include/clang/Frontend/DeclXML.def head/contrib/llvm/tools/clang/include/clang/Frontend/DocumentXML.def head/contrib/llvm/tools/clang/include/clang/Frontend/DocumentXML.h head/contrib/llvm/tools/clang/include/clang/Frontend/StmtXML.def head/contrib/llvm/tools/clang/include/clang/Frontend/TypeXML.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerV2.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Checker.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerVisitor.def head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerVisitor.h head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValuesV2.cpp head/contrib/llvm/tools/clang/lib/Frontend/DeclXML.cpp head/contrib/llvm/tools/clang/lib/Frontend/DocumentXML.cpp head/contrib/llvm/tools/clang/lib/Frontend/StmtXML.cpp head/contrib/llvm/tools/clang/lib/Frontend/TypeXML.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExperimentalChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExperimentalChecks.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/InternalChecks.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp Modified: head/ObsoleteFiles.inc head/contrib/llvm/include/llvm-c/EnhancedDisassembly.h head/contrib/llvm/include/llvm-c/Transforms/Scalar.h head/contrib/llvm/include/llvm-c/lto.h head/contrib/llvm/include/llvm/ADT/APFloat.h head/contrib/llvm/include/llvm/ADT/APInt.h head/contrib/llvm/include/llvm/ADT/ArrayRef.h head/contrib/llvm/include/llvm/ADT/DenseMap.h head/contrib/llvm/include/llvm/ADT/DenseMapInfo.h head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h head/contrib/llvm/include/llvm/ADT/FoldingSet.h head/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h head/contrib/llvm/include/llvm/ADT/IntervalMap.h head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h head/contrib/llvm/include/llvm/ADT/PointerUnion.h head/contrib/llvm/include/llvm/ADT/ScopedHashTable.h head/contrib/llvm/include/llvm/ADT/SmallPtrSet.h head/contrib/llvm/include/llvm/ADT/Statistic.h head/contrib/llvm/include/llvm/ADT/StringExtras.h head/contrib/llvm/include/llvm/ADT/StringMap.h head/contrib/llvm/include/llvm/ADT/Triple.h head/contrib/llvm/include/llvm/ADT/ilist.h head/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h head/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h head/contrib/llvm/include/llvm/Analysis/CFGPrinter.h head/contrib/llvm/include/llvm/Analysis/DIBuilder.h head/contrib/llvm/include/llvm/Analysis/DebugInfo.h head/contrib/llvm/include/llvm/Analysis/IVUsers.h head/contrib/llvm/include/llvm/Analysis/InlineCost.h head/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h head/contrib/llvm/include/llvm/Analysis/Lint.h head/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h head/contrib/llvm/include/llvm/Analysis/Passes.h head/contrib/llvm/include/llvm/Analysis/PathProfileInfo.h head/contrib/llvm/include/llvm/Analysis/PostDominators.h head/contrib/llvm/include/llvm/Analysis/RegionInfo.h head/contrib/llvm/include/llvm/Analysis/RegionIterator.h head/contrib/llvm/include/llvm/Analysis/RegionPass.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h head/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h head/contrib/llvm/include/llvm/Bitcode/Archive.h head/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h head/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h head/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h head/contrib/llvm/include/llvm/CodeGen/EdgeBundles.h head/contrib/llvm/include/llvm/CodeGen/FastISel.h head/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h head/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h head/contrib/llvm/include/llvm/CodeGen/JITCodeEmitter.h head/contrib/llvm/include/llvm/CodeGen/LiveInterval.h head/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h head/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h head/contrib/llvm/include/llvm/CodeGen/MachineCodeEmitter.h head/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h head/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h head/contrib/llvm/include/llvm/CodeGen/MachineInstr.h head/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Graph.h head/contrib/llvm/include/llvm/CodeGen/PBQP/Heuristics/Briggs.h head/contrib/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h head/contrib/llvm/include/llvm/CodeGen/RegisterScavenging.h head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h head/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h head/contrib/llvm/include/llvm/CodeGen/ScoreboardHazardRecognizer.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h head/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h head/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h head/contrib/llvm/include/llvm/CompilerDriver/CompilationGraph.h head/contrib/llvm/include/llvm/CompilerDriver/Tool.h head/contrib/llvm/include/llvm/Constant.h head/contrib/llvm/include/llvm/Constants.h head/contrib/llvm/include/llvm/DerivedTypes.h head/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h head/contrib/llvm/include/llvm/ExecutionEngine/JITMemoryManager.h head/contrib/llvm/include/llvm/GlobalVariable.h head/contrib/llvm/include/llvm/InitializePasses.h head/contrib/llvm/include/llvm/InstrTypes.h head/contrib/llvm/include/llvm/Instructions.h head/contrib/llvm/include/llvm/Intrinsics.td head/contrib/llvm/include/llvm/IntrinsicsARM.td head/contrib/llvm/include/llvm/IntrinsicsX86.td head/contrib/llvm/include/llvm/IntrinsicsXCore.td head/contrib/llvm/include/llvm/LinkAllPasses.h head/contrib/llvm/include/llvm/MC/MCAsmInfo.h head/contrib/llvm/include/llvm/MC/MCAsmLayout.h head/contrib/llvm/include/llvm/MC/MCAssembler.h head/contrib/llvm/include/llvm/MC/MCContext.h head/contrib/llvm/include/llvm/MC/MCDisassembler.h head/contrib/llvm/include/llvm/MC/MCDwarf.h head/contrib/llvm/include/llvm/MC/MCExpr.h head/contrib/llvm/include/llvm/MC/MCInstPrinter.h head/contrib/llvm/include/llvm/MC/MCObjectStreamer.h head/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h head/contrib/llvm/include/llvm/MC/MCSection.h head/contrib/llvm/include/llvm/MC/MCSectionMachO.h head/contrib/llvm/include/llvm/MC/MCStreamer.h head/contrib/llvm/include/llvm/MC/MCSymbol.h head/contrib/llvm/include/llvm/Metadata.h head/contrib/llvm/include/llvm/Module.h head/contrib/llvm/include/llvm/Object/MachOObject.h head/contrib/llvm/include/llvm/Pass.h head/contrib/llvm/include/llvm/PassAnalysisSupport.h head/contrib/llvm/include/llvm/Support/Allocator.h head/contrib/llvm/include/llvm/Support/CFG.h head/contrib/llvm/include/llvm/Support/Casting.h head/contrib/llvm/include/llvm/Support/CommandLine.h head/contrib/llvm/include/llvm/Support/Compiler.h head/contrib/llvm/include/llvm/Support/ConstantFolder.h head/contrib/llvm/include/llvm/Support/CrashRecoveryContext.h head/contrib/llvm/include/llvm/Support/DOTGraphTraits.h head/contrib/llvm/include/llvm/Support/DebugLoc.h head/contrib/llvm/include/llvm/Support/Dwarf.h head/contrib/llvm/include/llvm/Support/ErrorHandling.h head/contrib/llvm/include/llvm/Support/FileSystem.h head/contrib/llvm/include/llvm/Support/FileUtilities.h head/contrib/llvm/include/llvm/Support/GraphWriter.h head/contrib/llvm/include/llvm/Support/IRBuilder.h head/contrib/llvm/include/llvm/Support/Memory.h head/contrib/llvm/include/llvm/Support/MemoryBuffer.h head/contrib/llvm/include/llvm/Support/NoFolder.h head/contrib/llvm/include/llvm/Support/PathV1.h head/contrib/llvm/include/llvm/Support/PatternMatch.h head/contrib/llvm/include/llvm/Support/PrettyStackTrace.h head/contrib/llvm/include/llvm/Support/Program.h head/contrib/llvm/include/llvm/Support/Regex.h head/contrib/llvm/include/llvm/Support/Signals.h head/contrib/llvm/include/llvm/Support/SourceMgr.h head/contrib/llvm/include/llvm/Support/StandardPasses.h head/contrib/llvm/include/llvm/Support/TimeValue.h head/contrib/llvm/include/llvm/Support/system_error.h head/contrib/llvm/include/llvm/Target/SubtargetFeature.h head/contrib/llvm/include/llvm/Target/Target.td head/contrib/llvm/include/llvm/Target/TargetAsmBackend.h head/contrib/llvm/include/llvm/Target/TargetAsmInfo.h head/contrib/llvm/include/llvm/Target/TargetData.h head/contrib/llvm/include/llvm/Target/TargetInstrDesc.h head/contrib/llvm/include/llvm/Target/TargetInstrInfo.h head/contrib/llvm/include/llvm/Target/TargetInstrItineraries.h head/contrib/llvm/include/llvm/Target/TargetLibraryInfo.h head/contrib/llvm/include/llvm/Target/TargetLowering.h head/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h head/contrib/llvm/include/llvm/Target/TargetMachine.h head/contrib/llvm/include/llvm/Target/TargetOptions.h head/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h head/contrib/llvm/include/llvm/Target/TargetRegistry.h head/contrib/llvm/include/llvm/Target/TargetSelect.h head/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td head/contrib/llvm/include/llvm/Transforms/IPO.h head/contrib/llvm/include/llvm/Transforms/Instrumentation.h head/contrib/llvm/include/llvm/Transforms/Scalar.h head/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h head/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h head/contrib/llvm/include/llvm/Transforms/Utils/Local.h head/contrib/llvm/include/llvm/TypeSymbolTable.h head/contrib/llvm/include/llvm/User.h head/contrib/llvm/include/llvm/Value.h head/contrib/llvm/lib/Analysis/AliasAnalysis.cpp head/contrib/llvm/lib/Analysis/AliasSetTracker.cpp head/contrib/llvm/lib/Analysis/Analysis.cpp head/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/CaptureTracking.cpp head/contrib/llvm/lib/Analysis/ConstantFolding.cpp head/contrib/llvm/lib/Analysis/DIBuilder.cpp head/contrib/llvm/lib/Analysis/DebugInfo.cpp head/contrib/llvm/lib/Analysis/IPA/GlobalsModRef.cpp head/contrib/llvm/lib/Analysis/IVUsers.cpp head/contrib/llvm/lib/Analysis/InlineCost.cpp head/contrib/llvm/lib/Analysis/InstructionSimplify.cpp head/contrib/llvm/lib/Analysis/LazyValueInfo.cpp head/contrib/llvm/lib/Analysis/Lint.cpp head/contrib/llvm/lib/Analysis/Loads.cpp head/contrib/llvm/lib/Analysis/LoopPass.cpp head/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp head/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp head/contrib/llvm/lib/Analysis/PHITransAddr.cpp head/contrib/llvm/lib/Analysis/PathNumbering.cpp head/contrib/llvm/lib/Analysis/PathProfileVerifier.cpp head/contrib/llvm/lib/Analysis/PostDominators.cpp head/contrib/llvm/lib/Analysis/ProfileEstimatorPass.cpp head/contrib/llvm/lib/Analysis/ProfileInfo.cpp head/contrib/llvm/lib/Analysis/ProfileInfoLoader.cpp head/contrib/llvm/lib/Analysis/RegionInfo.cpp head/contrib/llvm/lib/Analysis/RegionPrinter.cpp head/contrib/llvm/lib/Analysis/ScalarEvolution.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp head/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp head/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp head/contrib/llvm/lib/Analysis/ValueTracking.cpp head/contrib/llvm/lib/Archive/ArchiveWriter.cpp head/contrib/llvm/lib/AsmParser/LLParser.cpp head/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp head/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp head/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h head/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp head/contrib/llvm/lib/CodeGen/Analysis.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.h head/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfTableException.cpp head/contrib/llvm/lib/CodeGen/BranchFolding.cpp head/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp head/contrib/llvm/lib/CodeGen/CallingConvLower.cpp head/contrib/llvm/lib/CodeGen/CodePlacementOpt.cpp head/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp head/contrib/llvm/lib/CodeGen/ELF.h head/contrib/llvm/lib/CodeGen/ELFWriter.cpp head/contrib/llvm/lib/CodeGen/EdgeBundles.cpp head/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp head/contrib/llvm/lib/CodeGen/IfConversion.cpp head/contrib/llvm/lib/CodeGen/InlineSpiller.cpp head/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp head/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp head/contrib/llvm/lib/CodeGen/LiveInterval.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp head/contrib/llvm/lib/CodeGen/LiveIntervalUnion.h head/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp head/contrib/llvm/lib/CodeGen/LiveRangeEdit.h head/contrib/llvm/lib/CodeGen/LiveVariables.cpp head/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp head/contrib/llvm/lib/CodeGen/MachineCSE.cpp head/contrib/llvm/lib/CodeGen/MachineInstr.cpp head/contrib/llvm/lib/CodeGen/MachineLICM.cpp head/contrib/llvm/lib/CodeGen/MachineSink.cpp head/contrib/llvm/lib/CodeGen/MachineVerifier.cpp head/contrib/llvm/lib/CodeGen/PHIElimination.cpp head/contrib/llvm/lib/CodeGen/Passes.cpp head/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp head/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp head/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp head/contrib/llvm/lib/CodeGen/RegAllocBase.h head/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp head/contrib/llvm/lib/CodeGen/RegAllocFast.cpp head/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp head/contrib/llvm/lib/CodeGen/RegAllocLinearScan.cpp head/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp head/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp head/contrib/llvm/lib/CodeGen/RenderMachineFunction.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp head/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp head/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp head/contrib/llvm/lib/CodeGen/ShrinkWrapping.cpp head/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.cpp head/contrib/llvm/lib/CodeGen/SimpleRegisterCoalescing.h head/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp head/contrib/llvm/lib/CodeGen/SlotIndexes.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.cpp head/contrib/llvm/lib/CodeGen/SpillPlacement.h head/contrib/llvm/lib/CodeGen/Spiller.cpp head/contrib/llvm/lib/CodeGen/Spiller.h head/contrib/llvm/lib/CodeGen/SplitKit.cpp head/contrib/llvm/lib/CodeGen/SplitKit.h head/contrib/llvm/lib/CodeGen/StackProtector.cpp head/contrib/llvm/lib/CodeGen/StrongPHIElimination.cpp head/contrib/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp head/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp head/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp head/contrib/llvm/lib/CodeGen/VirtRegMap.cpp head/contrib/llvm/lib/CodeGen/VirtRegRewriter.cpp head/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/Intercept.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JIT.h head/contrib/llvm/lib/ExecutionEngine/JIT/JITDebugRegisterer.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.h head/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/OProfileJITEventListener.cpp head/contrib/llvm/lib/ExecutionEngine/JIT/TargetSelect.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp head/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.h head/contrib/llvm/lib/Linker/LinkModules.cpp head/contrib/llvm/lib/MC/ELFObjectWriter.cpp head/contrib/llvm/lib/MC/MCAsmInfo.cpp head/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp head/contrib/llvm/lib/MC/MCAsmStreamer.cpp head/contrib/llvm/lib/MC/MCAssembler.cpp head/contrib/llvm/lib/MC/MCContext.cpp head/contrib/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp head/contrib/llvm/lib/MC/MCDisassembler/EDDisassembler.h head/contrib/llvm/lib/MC/MCDisassembler/EDInfo.h head/contrib/llvm/lib/MC/MCDisassembler/EDInst.cpp head/contrib/llvm/lib/MC/MCDisassembler/EDOperand.cpp head/contrib/llvm/lib/MC/MCDwarf.cpp head/contrib/llvm/lib/MC/MCELFStreamer.cpp head/contrib/llvm/lib/MC/MCExpr.cpp head/contrib/llvm/lib/MC/MCInstPrinter.cpp head/contrib/llvm/lib/MC/MCLoggingStreamer.cpp head/contrib/llvm/lib/MC/MCMachOStreamer.cpp head/contrib/llvm/lib/MC/MCNullStreamer.cpp head/contrib/llvm/lib/MC/MCObjectStreamer.cpp head/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp head/contrib/llvm/lib/MC/MCParser/AsmParser.cpp head/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp head/contrib/llvm/lib/MC/MCSectionELF.cpp head/contrib/llvm/lib/MC/MCSectionMachO.cpp head/contrib/llvm/lib/MC/MCStreamer.cpp head/contrib/llvm/lib/MC/MCSymbol.cpp head/contrib/llvm/lib/MC/MachObjectWriter.cpp head/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp head/contrib/llvm/lib/Object/COFFObjectFile.cpp head/contrib/llvm/lib/Object/ELFObjectFile.cpp head/contrib/llvm/lib/Object/MachOObject.cpp head/contrib/llvm/lib/Object/ObjectFile.cpp head/contrib/llvm/lib/Support/APFloat.cpp head/contrib/llvm/lib/Support/APInt.cpp head/contrib/llvm/lib/Support/Allocator.cpp head/contrib/llvm/lib/Support/CommandLine.cpp head/contrib/llvm/lib/Support/CrashRecoveryContext.cpp head/contrib/llvm/lib/Support/Dwarf.cpp head/contrib/llvm/lib/Support/ErrorHandling.cpp head/contrib/llvm/lib/Support/FileUtilities.cpp head/contrib/llvm/lib/Support/FoldingSet.cpp head/contrib/llvm/lib/Support/Host.cpp head/contrib/llvm/lib/Support/MemoryBuffer.cpp head/contrib/llvm/lib/Support/Path.cpp head/contrib/llvm/lib/Support/PrettyStackTrace.cpp head/contrib/llvm/lib/Support/Regex.cpp head/contrib/llvm/lib/Support/Signals.cpp head/contrib/llvm/lib/Support/SmallPtrSet.cpp head/contrib/llvm/lib/Support/Statistic.cpp head/contrib/llvm/lib/Support/StringMap.cpp head/contrib/llvm/lib/Support/StringRef.cpp head/contrib/llvm/lib/Support/Triple.cpp head/contrib/llvm/lib/Support/Unix/Host.inc head/contrib/llvm/lib/Support/Unix/Memory.inc head/contrib/llvm/lib/Support/Unix/Path.inc head/contrib/llvm/lib/Support/Unix/Program.inc head/contrib/llvm/lib/Support/Unix/Signals.inc head/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc head/contrib/llvm/lib/Support/Windows/Path.inc head/contrib/llvm/lib/Support/Windows/PathV2.inc head/contrib/llvm/lib/Support/raw_ostream.cpp head/contrib/llvm/lib/Support/regcomp.c head/contrib/llvm/lib/Target/ARM/ARM.td head/contrib/llvm/lib/Target/ARM/ARMAddressingModes.h head/contrib/llvm/lib/Target/ARM/ARMAsmBackend.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp head/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h head/contrib/llvm/lib/Target/ARM/ARMBaseInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h head/contrib/llvm/lib/Target/ARM/ARMCallingConv.td head/contrib/llvm/lib/Target/ARM/ARMCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp head/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp head/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h head/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp head/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp head/contrib/llvm/lib/Target/ARM/ARMISelLowering.h head/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td head/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td head/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td head/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td head/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td head/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp head/contrib/llvm/lib/Target/ARM/ARMMCAsmInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMMCCodeEmitter.cpp head/contrib/llvm/lib/Target/ARM/ARMMCExpr.h head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td head/contrib/llvm/lib/Target/ARM/ARMScheduleA9.td head/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp head/contrib/llvm/lib/Target/ARM/ARMSubtarget.h head/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp head/contrib/llvm/lib/Target/ARM/ARMTargetObjectFile.cpp head/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp head/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.h head/contrib/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp head/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h head/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp head/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h head/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2RegisterInfo.cpp head/contrib/llvm/lib/Target/ARM/Thumb2RegisterInfo.h head/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp head/contrib/llvm/lib/Target/Alpha/Alpha.td head/contrib/llvm/lib/Target/Alpha/AlphaISelLowering.cpp head/contrib/llvm/lib/Target/Alpha/AlphaInstrInfo.td head/contrib/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp head/contrib/llvm/lib/Target/CBackend/CBackend.cpp head/contrib/llvm/lib/Target/CellSPU/SPU64InstrInfo.td head/contrib/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp head/contrib/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp head/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.cpp head/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.h head/contrib/llvm/lib/Target/CellSPU/SPUInstrFormats.td head/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp head/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.td head/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.h head/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp head/contrib/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp head/contrib/llvm/lib/Target/MBlaze/InstPrinter/MBlazeInstPrinter.h head/contrib/llvm/lib/Target/MBlaze/MBlaze.td head/contrib/llvm/lib/Target/MBlaze/MBlazeAsmBackend.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeAsmPrinter.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeDelaySlotFiller.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeISelLowering.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrFPU.td head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrFSL.td head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrFormats.td head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.h head/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.td head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.h head/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.td head/contrib/llvm/lib/Target/MBlaze/MBlazeSchedule.td head/contrib/llvm/lib/Target/MBlaze/MBlazeSubtarget.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeSubtarget.h head/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.cpp head/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.h head/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h head/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp head/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp head/contrib/llvm/lib/Target/Mips/Mips.h head/contrib/llvm/lib/Target/Mips/Mips.td head/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp head/contrib/llvm/lib/Target/Mips/MipsCallingConv.td head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h head/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp head/contrib/llvm/lib/Target/Mips/MipsISelLowering.h head/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td head/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h head/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td head/contrib/llvm/lib/Target/Mips/MipsMCAsmInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h head/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td head/contrib/llvm/lib/Target/Mips/MipsSchedule.td head/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp head/contrib/llvm/lib/Target/Mips/MipsSubtarget.h head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp head/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h head/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.h head/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp head/contrib/llvm/lib/Target/PTX/PTX.h head/contrib/llvm/lib/Target/PTX/PTX.td head/contrib/llvm/lib/Target/PTX/PTXAsmPrinter.cpp head/contrib/llvm/lib/Target/PTX/PTXFrameLowering.h head/contrib/llvm/lib/Target/PTX/PTXISelDAGToDAG.cpp head/contrib/llvm/lib/Target/PTX/PTXISelLowering.cpp head/contrib/llvm/lib/Target/PTX/PTXISelLowering.h head/contrib/llvm/lib/Target/PTX/PTXInstrInfo.cpp head/contrib/llvm/lib/Target/PTX/PTXInstrInfo.h head/contrib/llvm/lib/Target/PTX/PTXInstrInfo.td head/contrib/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp head/contrib/llvm/lib/Target/PTX/PTXMFInfoExtract.cpp head/contrib/llvm/lib/Target/PTX/PTXMachineFunctionInfo.h head/contrib/llvm/lib/Target/PTX/PTXRegisterInfo.td head/contrib/llvm/lib/Target/PTX/PTXSubtarget.cpp head/contrib/llvm/lib/Target/PTX/PTXSubtarget.h head/contrib/llvm/lib/Target/PTX/PTXTargetMachine.cpp head/contrib/llvm/lib/Target/PTX/PTXTargetMachine.h head/contrib/llvm/lib/Target/PTX/TargetInfo/PTXTargetInfo.cpp head/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h head/contrib/llvm/lib/Target/PowerPC/PPCAsmBackend.cpp head/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp head/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp head/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td head/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td head/contrib/llvm/lib/Target/PowerPC/PPCMCAsmInfo.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp head/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h head/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp head/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp head/contrib/llvm/lib/Target/SubtargetFeature.cpp head/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp head/contrib/llvm/lib/Target/TargetData.cpp head/contrib/llvm/lib/Target/TargetInstrInfo.cpp head/contrib/llvm/lib/Target/TargetLibraryInfo.cpp head/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp head/contrib/llvm/lib/Target/TargetMachine.cpp head/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h head/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h head/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp head/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp head/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h head/contrib/llvm/lib/Target/X86/X86.td head/contrib/llvm/lib/Target/X86/X86AsmBackend.cpp head/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp head/contrib/llvm/lib/Target/X86/X86CallingConv.td head/contrib/llvm/lib/Target/X86/X86CodeEmitter.cpp head/contrib/llvm/lib/Target/X86/X86FastISel.cpp head/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp head/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp head/contrib/llvm/lib/Target/X86/X86ISelLowering.h head/contrib/llvm/lib/Target/X86/X86Instr3DNow.td head/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td head/contrib/llvm/lib/Target/X86/X86InstrControl.td head/contrib/llvm/lib/Target/X86/X86InstrFormats.td head/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td head/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp head/contrib/llvm/lib/Target/X86/X86InstrInfo.h head/contrib/llvm/lib/Target/X86/X86InstrInfo.td head/contrib/llvm/lib/Target/X86/X86InstrSSE.td head/contrib/llvm/lib/Target/X86/X86InstrSystem.td head/contrib/llvm/lib/Target/X86/X86MCAsmInfo.cpp head/contrib/llvm/lib/Target/X86/X86MCAsmInfo.h head/contrib/llvm/lib/Target/X86/X86MCCodeEmitter.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp head/contrib/llvm/lib/Target/X86/X86RegisterInfo.h head/contrib/llvm/lib/Target/X86/X86RegisterInfo.td head/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.cpp head/contrib/llvm/lib/Target/X86/X86Subtarget.h head/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp head/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h head/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp head/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp head/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp head/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h head/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp head/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp head/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp head/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp head/contrib/llvm/lib/Transforms/IPO/IPO.cpp head/contrib/llvm/lib/Transforms/IPO/Inliner.cpp head/contrib/llvm/lib/Transforms/IPO/Internalize.cpp head/contrib/llvm/lib/Transforms/IPO/LowerSetJmp.cpp head/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp head/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp head/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombine.h head/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp head/contrib/llvm/lib/Transforms/InstCombine/InstCombineWorklist.h head/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp head/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp head/contrib/llvm/lib/Transforms/Instrumentation/MaximumSpanningTree.h head/contrib/llvm/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/PathProfiling.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp head/contrib/llvm/lib/Transforms/Instrumentation/ProfilingUtils.h head/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp head/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp head/contrib/llvm/lib/Transforms/Scalar/DCE.cpp head/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp head/contrib/llvm/lib/Transforms/Scalar/GVN.cpp head/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp head/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp head/contrib/llvm/lib/Transforms/Scalar/LICM.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp head/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp head/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp head/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp head/contrib/llvm/lib/Transforms/Scalar/Reg2Mem.cpp head/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp head/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp head/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp head/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp head/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp head/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp head/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp head/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp head/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp head/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp head/contrib/llvm/lib/Transforms/Utils/Local.cpp head/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp head/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp head/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp head/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp head/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp head/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp head/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp head/contrib/llvm/lib/VMCore/AsmWriter.cpp head/contrib/llvm/lib/VMCore/AutoUpgrade.cpp head/contrib/llvm/lib/VMCore/ConstantFold.cpp head/contrib/llvm/lib/VMCore/Constants.cpp head/contrib/llvm/lib/VMCore/ConstantsContext.h head/contrib/llvm/lib/VMCore/Core.cpp head/contrib/llvm/lib/VMCore/DebugLoc.cpp head/contrib/llvm/lib/VMCore/Dominators.cpp head/contrib/llvm/lib/VMCore/Function.cpp head/contrib/llvm/lib/VMCore/IRBuilder.cpp head/contrib/llvm/lib/VMCore/Instructions.cpp head/contrib/llvm/lib/VMCore/LLVMContextImpl.h head/contrib/llvm/lib/VMCore/Metadata.cpp head/contrib/llvm/lib/VMCore/PassManager.cpp head/contrib/llvm/lib/VMCore/PassRegistry.cpp head/contrib/llvm/lib/VMCore/Type.cpp head/contrib/llvm/lib/VMCore/TypesContext.h head/contrib/llvm/lib/VMCore/Verifier.cpp head/contrib/llvm/tools/clang/include/clang-c/Index.h head/contrib/llvm/tools/clang/include/clang/AST/ASTConsumer.h head/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h head/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h head/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h head/contrib/llvm/tools/clang/include/clang/AST/Attr.h head/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h head/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h head/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h head/contrib/llvm/tools/clang/include/clang/AST/Decl.h head/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h head/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h head/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h head/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h head/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h head/contrib/llvm/tools/clang/include/clang/AST/EvaluatedExprVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Expr.h head/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h head/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h head/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h head/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h head/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h head/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h head/contrib/llvm/tools/clang/include/clang/AST/Stmt.h head/contrib/llvm/tools/clang/include/clang/AST/StmtCXX.h head/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h head/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h head/contrib/llvm/tools/clang/include/clang/AST/Type.h head/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h head/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h head/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowSolver.h head/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h head/contrib/llvm/tools/clang/include/clang/Analysis/Visitors/CFGStmtVisitor.h head/contrib/llvm/tools/clang/include/clang/Basic/Attr.td head/contrib/llvm/tools/clang/include/clang/Basic/AttrKinds.h head/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def head/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def head/contrib/llvm/tools/clang/include/clang/Basic/ConvertUTF.h head/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td head/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h head/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h head/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h head/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h head/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h head/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td head/contrib/llvm/tools/clang/include/clang/Basic/TargetBuiltins.h head/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h head/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def head/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h head/contrib/llvm/tools/clang/include/clang/Basic/Version.h head/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td head/contrib/llvm/tools/clang/include/clang/Driver/Arg.h head/contrib/llvm/tools/clang/include/clang/Driver/CC1AsOptions.td head/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td head/contrib/llvm/tools/clang/include/clang/Driver/Driver.h head/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Driver/OptParser.td head/contrib/llvm/tools/clang/include/clang/Driver/Options.td head/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h head/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h head/contrib/llvm/tools/clang/include/clang/Frontend/Analyses.def head/contrib/llvm/tools/clang/include/clang/Frontend/AnalyzerOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticClient.h head/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h head/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h head/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h head/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def head/contrib/llvm/tools/clang/include/clang/Frontend/MultiplexConsumer.h head/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOptions.h head/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h head/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h head/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h head/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h head/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h head/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h head/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h head/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h head/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h head/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h head/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h head/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h head/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h head/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Parse/Parser.h head/contrib/llvm/tools/clang/include/clang/Rewrite/FrontendActions.h head/contrib/llvm/tools/clang/include/clang/Rewrite/Rewriter.h head/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h head/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h head/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h head/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h head/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h head/contrib/llvm/tools/clang/include/clang/Sema/Overload.h head/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h head/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h head/contrib/llvm/tools/clang/include/clang/Sema/Scope.h head/contrib/llvm/tools/clang/include/clang/Sema/Sema.h head/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h head/contrib/llvm/tools/clang/include/clang/Sema/Template.h head/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h head/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerProvider.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticClients.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/GRState.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ObjCMessage.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h head/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp head/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp head/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp head/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp head/contrib/llvm/tools/clang/lib/AST/Decl.cpp head/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp head/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp head/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp head/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp head/contrib/llvm/tools/clang/lib/AST/DumpXML.cpp head/contrib/llvm/tools/clang/lib/AST/Expr.cpp head/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp head/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp head/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp head/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp head/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp head/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/AST/Stmt.cpp head/contrib/llvm/tools/clang/lib/AST/StmtDumper.cpp head/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp head/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp head/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp head/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp head/contrib/llvm/tools/clang/lib/AST/Type.cpp head/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp head/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp head/contrib/llvm/tools/clang/lib/Analysis/AnalysisContext.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp head/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp head/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp head/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp head/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp head/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp head/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp head/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp head/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp head/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp head/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp head/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp head/contrib/llvm/tools/clang/lib/Basic/Version.cpp head/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h head/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h head/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h head/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGException.h head/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h head/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp head/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h head/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp head/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp head/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp head/contrib/llvm/tools/clang/lib/Driver/Driver.cpp head/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp head/contrib/llvm/tools/clang/lib/Driver/OptTable.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp head/contrib/llvm/tools/clang/lib/Driver/ToolChains.h head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp head/contrib/llvm/tools/clang/lib/Driver/Tools.h head/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp head/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp head/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp head/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp head/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp head/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp head/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp head/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp head/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp head/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp head/contrib/llvm/tools/clang/lib/Headers/avxintrin.h head/contrib/llvm/tools/clang/lib/Headers/emmintrin.h head/contrib/llvm/tools/clang/lib/Headers/mm_malloc.h head/contrib/llvm/tools/clang/lib/Headers/stddef.h head/contrib/llvm/tools/clang/lib/Headers/stdint.h head/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h head/contrib/llvm/tools/clang/lib/Index/DeclReferenceMap.cpp head/contrib/llvm/tools/clang/lib/Index/Entity.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp head/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp head/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp head/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp head/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp head/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp head/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp head/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp head/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp head/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp head/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp head/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp head/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp head/contrib/llvm/tools/clang/lib/Parse/ParsePragma.h head/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp head/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp head/contrib/llvm/tools/clang/lib/Parse/Parser.cpp head/contrib/llvm/tools/clang/lib/Parse/RAIIObjectsForParser.h head/contrib/llvm/tools/clang/lib/Rewrite/RewriteObjC.cpp head/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp head/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp head/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp head/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp head/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp head/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp head/contrib/llvm/tools/clang/lib/Sema/Sema.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXCast.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp head/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp head/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.cpp head/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h head/contrib/llvm/tools/clang/lib/Sema/TypeLocBuilder.h head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h head/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp head/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AdjustedReturnValueChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckerProvider.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckers.h head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSAtomicChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AggExprVisitor.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CFRefCount.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CXXExprEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FlatStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ObjCMessage.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp head/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp head/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp head/contrib/llvm/tools/clang/tools/driver/driver.cpp head/contrib/llvm/utils/TableGen/ARMDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/AsmMatcherEmitter.h head/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp head/contrib/llvm/utils/TableGen/AsmWriterEmitter.h head/contrib/llvm/utils/TableGen/CallingConvEmitter.h head/contrib/llvm/utils/TableGen/ClangASTNodesEmitter.cpp head/contrib/llvm/utils/TableGen/ClangAttrEmitter.cpp head/contrib/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp head/contrib/llvm/utils/TableGen/ClangDiagnosticsEmitter.h head/contrib/llvm/utils/TableGen/ClangSACheckersEmitter.cpp head/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp head/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h head/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp head/contrib/llvm/utils/TableGen/CodeGenInstruction.h head/contrib/llvm/utils/TableGen/CodeGenRegisters.h head/contrib/llvm/utils/TableGen/CodeGenTarget.cpp head/contrib/llvm/utils/TableGen/CodeGenTarget.h head/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelEmitter.h head/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcher.h head/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp head/contrib/llvm/utils/TableGen/DAGISelMatcherOpt.cpp head/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp head/contrib/llvm/utils/TableGen/EDEmitter.cpp head/contrib/llvm/utils/TableGen/FastISelEmitter.cpp head/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp head/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp head/contrib/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp head/contrib/llvm/utils/TableGen/NeonEmitter.cpp head/contrib/llvm/utils/TableGen/NeonEmitter.h head/contrib/llvm/utils/TableGen/OptParserEmitter.cpp head/contrib/llvm/utils/TableGen/Record.h head/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp head/contrib/llvm/utils/TableGen/SubtargetEmitter.h head/contrib/llvm/utils/TableGen/TGLexer.h head/contrib/llvm/utils/TableGen/TGParser.cpp head/contrib/llvm/utils/TableGen/TGValueTypes.cpp head/contrib/llvm/utils/TableGen/TableGen.cpp head/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp head/contrib/llvm/utils/TableGen/X86DisassemblerTables.h head/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp head/contrib/llvm/utils/TableGen/X86RecognizableInstr.h head/etc/mtree/BSD.include.dist head/lib/clang/Makefile head/lib/clang/clang.build.mk head/lib/clang/include/Makefile head/lib/clang/include/clang/Basic/Version.inc head/lib/clang/include/llvm/Config/config.h head/lib/clang/libclanganalysis/Makefile head/lib/clang/libclangast/Makefile head/lib/clang/libclangbasic/Makefile head/lib/clang/libclangcodegen/Makefile head/lib/clang/libclangfrontend/Makefile head/lib/clang/libclangsema/Makefile head/lib/clang/libclangserialization/Makefile head/lib/clang/libclangstaticanalyzercheckers/Makefile head/lib/clang/libclangstaticanalyzercore/Makefile head/lib/clang/libllvmanalysis/Makefile head/lib/clang/libllvmasmprinter/Makefile head/lib/clang/libllvmcodegen/Makefile head/lib/clang/libllvmcore/Makefile head/lib/clang/libllvmipo/Makefile head/lib/clang/libllvmmc/Makefile head/lib/clang/libllvmmipscodegen/Makefile head/lib/clang/libllvmscalaropts/Makefile head/lib/clang/libllvmx86instprinter/Makefile head/usr.bin/clang/clang/Makefile Directory Properties: head/contrib/llvm/ (props changed) head/contrib/llvm/tools/clang/ (props changed) Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Mon May 2 21:04:23 2011 (r221344) +++ head/ObsoleteFiles.inc Mon May 2 21:04:37 2011 (r221345) @@ -38,6 +38,14 @@ # xargs -n1 | sort | uniq -d; # done +# 20110502: new clang import which bumps version from 2.9 to 3.0 +OLD_FILES+=usr/include/clang/2.9/emmintrin.h +OLD_FILES+=usr/include/clang/2.9/mm_malloc.h +OLD_FILES+=usr/include/clang/2.9/mmintrin.h +OLD_FILES+=usr/include/clang/2.9/pmmintrin.h +OLD_FILES+=usr/include/clang/2.9/tmmintrin.h +OLD_FILES+=usr/include/clang/2.9/xmmintrin.h +OLD_DIRS+=usr/include/clang/2.9 # 20110417: removal of Objective-C support OLD_FILES+=usr/include/objc/encoding.h OLD_FILES+=usr/include/objc/hash.h Copied: head/contrib/llvm/include/llvm-c/Disassembler.h (from r221340, vendor/llvm/dist/include/llvm-c/Disassembler.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/llvm/include/llvm-c/Disassembler.h Mon May 2 21:04:37 2011 (r221345, copy of r221340, vendor/llvm/dist/include/llvm-c/Disassembler.h) @@ -0,0 +1,149 @@ +/*===-- llvm-c/Disassembler.h - Disassembler Public C Interface ---*- C -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This header provides public interface to a disassembler library. *| +|* LLVM provides an implementation of this interface. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_C_DISASSEMBLER_H +#define LLVM_C_DISASSEMBLER_H 1 + +#include +#include "llvm/Support/DataTypes.h" + +/** + * An opaque reference to a disassembler context. + */ +typedef void *LLVMDisasmContextRef; + +/** + * The type for the operand information call back function. This is called to + * get the symbolic information for an operand of an instruction. Typically + * this is from the relocation information, symbol table, etc. That block of + * information is saved when the disassembler context is created and passed to + * the call back in the DisInfo parameter. The instruction containing operand + * is at the PC parameter. For some instruction sets, there can be more than + * one operand with symbolic information. To determine the symbolic operand + * information for each operand, the bytes for the specific operand in the + * instruction are specified by the Offset parameter and its byte widith is the + * size parameter. For instructions sets with fixed widths and one symbolic + * operand per instruction, the Offset parameter will be zero and Size parameter + * will be the instruction width. The information is returned in TagBuf and is + * Triple specific with its specific information defined by the value of + * TagType for that Triple. If symbolic information is returned the function + * returns 1 else it returns 0. + */ +typedef int (*LLVMOpInfoCallback)(void *DisInfo, + uint64_t PC, + uint64_t Offset, + uint64_t Size, + int TagType, + void *TagBuf); + +/** + * The initial support in LLVM MC for the most general form of a relocatable + * expression is "AddSymbol - SubtractSymbol + Offset". For some Darwin targets + * this full form is encoded in the relocation information so that AddSymbol and + * SubtractSymbol can be link edited independent of each other. Many other + * platforms only allow a relocatable expression of the form AddSymbol + Offset + * to be encoded. + * + * The LLVMOpInfoCallback() for the TagType value of 1 uses the struct + * LLVMOpInfo1. The value of the relocatable expression for the operand, + * including any PC adjustment, is passed in to the call back in the Value + * field. The symbolic information about the operand is returned using all + * the fields of the structure with the Offset of the relocatable expression + * returned in the Value field. It is possible that some symbols in the + * relocatable expression were assembly temporary symbols, for example + * "Ldata - LpicBase + constant", and only the Values of the symbols without + * symbol names are present in the relocation information. The VariantKind + * type is one of the Target specific #defines below and is used to print + * operands like "_foo@GOT", ":lower16:_foo", etc. + */ +struct LLVMOpInfoSymbol1 { + uint64_t Present; /* 1 if this symbol is present */ + char *Name; /* symbol name if not NULL */ + uint64_t Value; /* symbol value if name is NULL */ +}; +struct LLVMOpInfo1 { + struct LLVMOpInfoSymbol1 AddSymbol; + struct LLVMOpInfoSymbol1 SubtractSymbol; + uint64_t Value; + uint64_t VariantKind; +}; + +/** + * The operand VariantKinds for symbolic disassembly. + */ +#define LLVMDisassembler_VariantKind_None 0 /* all targets */ + +/** + * The ARM target VariantKinds. + */ +#define LLVMDisassembler_VariantKind_ARM_HI16 1 /* :upper16: */ +#define LLVMDisassembler_VariantKind_ARM_LO16 2 /* :lower16: */ + +/** + * The type for the symbol lookup function. This may be called by the + * disassembler for such things like adding a comment for a PC plus a constant + * offset load instruction to use a symbol name instead of a load address value. + * It is passed the block information is saved when the disassembler context is + * created and a value of a symbol to look up. If no symbol is found NULL is + * to be returned. + */ +typedef const char *(*LLVMSymbolLookupCallback)(void *DisInfo, + uint64_t SymbolValue); + +#ifdef __cplusplus +extern "C" { +#endif /* !defined(__cplusplus) */ + +/** + * Create a disassembler for the TripleName. Symbolic disassembly is supported + * by passing a block of information in the DisInfo parameter and specifing the + * TagType and call back functions as described above. These can all be passed + * as NULL. If successful this returns a disassembler context if not it + * returns NULL. + */ +extern LLVMDisasmContextRef +LLVMCreateDisasm(const char *TripleName, + void *DisInfo, + int TagType, + LLVMOpInfoCallback GetOpInfo, + LLVMSymbolLookupCallback SymbolLookUp); + +/** + * Dispose of a disassembler context. + */ +extern void +LLVMDisasmDispose(LLVMDisasmContextRef DC); + +/** + * Disassmble a single instruction using the disassembler context specified in + * the parameter DC. The bytes of the instruction are specified in the parameter + * Bytes, and contains at least BytesSize number of bytes. The instruction is + * at the address specified by the PC parameter. If a valid instruction can be + * disassembled its string is returned indirectly in OutString which whos size + * is specified in the parameter OutStringSize. This function returns the + * number of bytes in the instruction or zero if there was no valid instruction. + */ +extern size_t +LLVMDisasmInstruction(LLVMDisasmContextRef DC, + uint8_t *Bytes, + uint64_t BytesSize, + uint64_t PC, + char *OutString, + size_t OutStringSize); + +#ifdef __cplusplus +} +#endif /* !defined(__cplusplus) */ + +#endif /* !defined(LLVM_C_DISASSEMBLER_H) */ Modified: head/contrib/llvm/include/llvm-c/EnhancedDisassembly.h ============================================================================== --- head/contrib/llvm/include/llvm-c/EnhancedDisassembly.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm-c/EnhancedDisassembly.h Mon May 2 21:04:37 2011 (r221345) @@ -44,7 +44,7 @@ typedef int (*EDByteReaderCallback)(uint @param arg An anonymous argument for client use. @result 0 if the register could be read; -1 otherwise. */ -typedef int (*EDRegisterReaderCallback)(uint64_t *value, unsigned regID, +typedef int (*EDRegisterReaderCallback)(uint64_t *value, unsigned regID, void* arg); /*! @@ -83,7 +83,7 @@ typedef void *EDTokenRef; Encapsulates an operand of an instruction. */ typedef void *EDOperandRef; - + /*! @functiongroup Getting a disassembler */ @@ -91,7 +91,7 @@ typedef void *EDOperandRef; /*! @function EDGetDisassembler Gets the disassembler for a given target. - @param disassembler A pointer whose target will be filled in with the + @param disassembler A pointer whose target will be filled in with the disassembler. @param triple Identifies the target. Example: "x86_64-apple-darwin10" @param syntax The assembly syntax to use when decoding instructions. @@ -104,12 +104,12 @@ int EDGetDisassembler(EDDisassemblerRef /*! @functiongroup Generic architectural queries */ - + /*! @function EDGetRegisterName Gets the human-readable name for a given register. @param regName A pointer whose target will be pointed at the name of the - register. The name does not need to be deallocated and will be + register. The name does not need to be deallocated and will be @param disassembler The disassembler to query for the name. @param regID The register identifier, as returned by EDRegisterTokenValue. @result 0 on success; -1 otherwise. @@ -117,7 +117,7 @@ int EDGetDisassembler(EDDisassemblerRef int EDGetRegisterName(const char** regName, EDDisassemblerRef disassembler, unsigned regID); - + /*! @function EDRegisterIsStackPointer Determines if a register is one of the platform's stack-pointer registers. @@ -137,16 +137,16 @@ int EDRegisterIsStackPointer(EDDisassemb */ int EDRegisterIsProgramCounter(EDDisassemblerRef disassembler, unsigned regID); - + /*! @functiongroup Creating and querying instructions */ - + /*! @function EDCreateInst Gets a set of contiguous instructions from a disassembler. @param insts A pointer to an array that will be filled in with the - instructions. Must have at least count entries. Entries not filled in will + instructions. Must have at least count entries. Entries not filled in will be set to NULL. @param count The maximum number of instructions to fill in. @param disassembler The disassembler to use when decoding the instructions. @@ -197,7 +197,7 @@ int EDGetInstString(const char **buf, @result 0 on success; -1 otherwise. */ int EDInstID(unsigned *instID, EDInstRef inst); - + /*! @function EDInstIsBranch @param inst The instruction to be queried. @@ -217,7 +217,7 @@ int EDInstIsMove(EDInstRef inst); /*! @function EDBranchTargetID @param inst The instruction to be queried. - @result The ID of the branch target operand, suitable for use with + @result The ID of the branch target operand, suitable for use with EDCopyOperand. -1 if no such operand exists. */ int EDBranchTargetID(EDInstRef inst); @@ -225,7 +225,7 @@ int EDBranchTargetID(EDInstRef inst); /*! @function EDMoveSourceID @param inst The instruction to be queried. - @result The ID of the move source operand, suitable for use with + @result The ID of the move source operand, suitable for use with EDCopyOperand. -1 if no such operand exists. */ int EDMoveSourceID(EDInstRef inst); @@ -233,7 +233,7 @@ int EDMoveSourceID(EDInstRef inst); /*! @function EDMoveTargetID @param inst The instruction to be queried. - @result The ID of the move source operand, suitable for use with + @result The ID of the move source operand, suitable for use with EDCopyOperand. -1 if no such operand exists. */ int EDMoveTargetID(EDInstRef inst); @@ -241,7 +241,7 @@ int EDMoveTargetID(EDInstRef inst); /*! @functiongroup Creating and querying tokens */ - + /*! @function EDNumTokens @param inst The instruction to be queried. @@ -261,7 +261,7 @@ int EDNumTokens(EDInstRef inst); int EDGetToken(EDTokenRef *token, EDInstRef inst, int index); - + /*! @function EDGetTokenString Gets the disassembled text for a token. @@ -287,7 +287,7 @@ int EDOperandIndexForToken(EDTokenRef to @result 1 if the token is whitespace; 0 if not; -1 on error. */ int EDTokenIsWhitespace(EDTokenRef token); - + /*! @function EDTokenIsPunctuation @param token The token to be queried. @@ -335,18 +335,18 @@ int EDLiteralTokenAbsoluteValue(uint64_t /*! @function EDRegisterTokenValue - @param registerID A pointer whose target will be filled in with the LLVM + @param registerID A pointer whose target will be filled in with the LLVM register identifier for the token. @param token The token to be queried. @result 0 on success; -1 otherwise. */ int EDRegisterTokenValue(unsigned *registerID, EDTokenRef token); - + /*! @functiongroup Creating and querying operands */ - + /*! @function EDNumOperands @param inst The instruction to be queried. @@ -366,7 +366,7 @@ int EDNumOperands(EDInstRef inst); int EDGetOperand(EDOperandRef *operand, EDInstRef inst, int index); - + /*! @function EDOperandIsRegister @param operand The operand to be queried. @@ -391,13 +391,13 @@ int EDOperandIsMemory(EDOperandRef opera /*! @function EDRegisterOperandValue @param value A pointer whose target will be filled in with the LLVM register ID - of the register named by the operand. + of the register named by the operand. @param operand The operand to be queried. @result 0 on success; -1 otherwise. */ int EDRegisterOperandValue(unsigned *value, EDOperandRef operand); - + /*! @function EDImmediateOperandValue @param value A pointer whose target will be filled in with the value of the @@ -427,7 +427,7 @@ int EDEvaluateOperand(uint64_t *result, EDOperandRef operand, EDRegisterReaderCallback regReader, void *arg); - + #ifdef __BLOCKS__ /*! @@ -458,13 +458,13 @@ typedef int (^EDRegisterBlock_t)(uint64_ typedef int (^EDTokenVisitor_t)(EDTokenRef token); /*! @functiongroup Block-based interfaces */ - + /*! @function EDBlockCreateInsts Gets a set of contiguous instructions from a disassembler, using a block to read memory. @param insts A pointer to an array that will be filled in with the - instructions. Must have at least count entries. Entries not filled in will + instructions. Must have at least count entries. Entries not filled in will be set to NULL. @param count The maximum number of instructions to fill in. @param disassembler The disassembler to use when decoding the instructions. @@ -505,7 +505,7 @@ int EDBlockVisitTokens(EDInstRef inst, EDTokenVisitor_t visitor); #endif - + #ifdef __cplusplus } #endif Copied: head/contrib/llvm/include/llvm-c/Object.h (from r221340, vendor/llvm/dist/include/llvm-c/Object.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/contrib/llvm/include/llvm-c/Object.h Mon May 2 21:04:37 2011 (r221345, copy of r221340, vendor/llvm/dist/include/llvm-c/Object.h) @@ -0,0 +1,77 @@ +/*===-- llvm-c/Object.h - Object Lib C Iface --------------------*- C++ -*-===*/ +/* */ +/* The LLVM Compiler Infrastructure */ +/* */ +/* This file is distributed under the University of Illinois Open Source */ +/* License. See LICENSE.TXT for details. */ +/* */ +/*===----------------------------------------------------------------------===*/ +/* */ +/* This header declares the C interface to libLLVMObject.a, which */ +/* implements object file reading and writing. */ +/* */ +/* Many exotic languages can interoperate with C code but have a harder time */ +/* with C++ due to name mangling. So in addition to C, this interface enables */ +/* tools written in such languages. */ +/* */ +/*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_C_OBJECT_H +#define LLVM_C_OBJECT_H + +#include "llvm-c/Core.h" +#include "llvm/Config/llvm-config.h" + +#ifdef __cplusplus +#include "llvm/Object/ObjectFile.h" + +extern "C" { +#endif + + +typedef struct LLVMOpaqueObjectFile *LLVMObjectFileRef; + +typedef struct LLVMOpaqueSectionIterator *LLVMSectionIteratorRef; + +LLVMObjectFileRef LLVMCreateObjectFile(LLVMMemoryBufferRef MemBuf); +void LLVMDisposeObjectFile(LLVMObjectFileRef ObjectFile); + +LLVMSectionIteratorRef LLVMGetSections(LLVMObjectFileRef ObjectFile); +void LLVMDisposeSectionIterator(LLVMSectionIteratorRef SI); +LLVMBool LLVMIsSectionIteratorAtEnd(LLVMObjectFileRef ObjectFile, + LLVMSectionIteratorRef SI); +void LLVMMoveToNextSection(LLVMSectionIteratorRef SI); +const char *LLVMGetSectionName(LLVMSectionIteratorRef SI); +uint64_t LLVMGetSectionSize(LLVMSectionIteratorRef SI); +const char *LLVMGetSectionContents(LLVMSectionIteratorRef SI); + + +#ifdef __cplusplus +} + +namespace llvm { + namespace object { + inline ObjectFile *unwrap(LLVMObjectFileRef OF) { + return reinterpret_cast(OF); + } + + inline LLVMObjectFileRef wrap(const ObjectFile *OF) { + return reinterpret_cast(const_cast(OF)); + } + + inline ObjectFile::section_iterator *unwrap(LLVMSectionIteratorRef SI) { + return reinterpret_cast(SI); + } + + inline LLVMSectionIteratorRef + wrap(const ObjectFile::section_iterator *SI) { + return reinterpret_cast + (const_cast(SI)); + } + } +} + +#endif /* defined(__cplusplus) */ + +#endif + Modified: head/contrib/llvm/include/llvm-c/Transforms/Scalar.h ============================================================================== --- head/contrib/llvm/include/llvm-c/Transforms/Scalar.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm-c/Transforms/Scalar.h Mon May 2 21:04:37 2011 (r221345) @@ -52,6 +52,9 @@ void LLVMAddLICMPass(LLVMPassManagerRef /** See llvm::createLoopDeletionPass function. */ void LLVMAddLoopDeletionPass(LLVMPassManagerRef PM); +/** See llvm::createLoopIdiomPass function */ +void LLVMAddLoopIdiomPass(LLVMPassManagerRef PM); + /** See llvm::createLoopRotatePass function. */ void LLVMAddLoopRotatePass(LLVMPassManagerRef PM); @@ -77,6 +80,9 @@ void LLVMAddSCCPPass(LLVMPassManagerRef void LLVMAddScalarReplAggregatesPass(LLVMPassManagerRef PM); /** See llvm::createScalarReplAggregatesPass function. */ +void LLVMAddScalarReplAggregatesPassSSA(LLVMPassManagerRef PM); + +/** See llvm::createScalarReplAggregatesPass function. */ void LLVMAddScalarReplAggregatesPassWithThreshold(LLVMPassManagerRef PM, int Threshold); @@ -95,6 +101,19 @@ void LLVMAddDemoteMemoryToRegisterPass(L /** See llvm::createVerifierPass function. */ void LLVMAddVerifierPass(LLVMPassManagerRef PM); +/** See llvm::createCorrelatedValuePropagationPass function */ +void LLVMAddCorrelatedValuePropagationPass(LLVMPassManagerRef PM); + +/** See llvm::createEarlyCSEPass function */ +void LLVMAddEarlyCSEPass(LLVMPassManagerRef PM); + +/** See llvm::createTypeBasedAliasAnalysisPass function */ +void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM); + +/** See llvm::createBasicAliasAnalysisPass function */ +void LLVMAddBasicAliasAnalysisPass(LLVMPassManagerRef PM); + + #ifdef __cplusplus } #endif /* defined(__cplusplus) */ Modified: head/contrib/llvm/include/llvm-c/lto.h ============================================================================== --- head/contrib/llvm/include/llvm-c/lto.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm-c/lto.h Mon May 2 21:04:37 2011 (r221345) @@ -72,7 +72,7 @@ lto_get_version(void); /** - * Returns the last error string or NULL if last operation was sucessful. + * Returns the last error string or NULL if last operation was successful. */ extern const char* lto_get_error_message(void); @@ -127,7 +127,15 @@ lto_module_create_from_memory(const void * Returns NULL on error (check lto_get_error_message() for details). */ extern lto_module_t -lto_module_create_from_fd(int fd, const char *path, off_t size); +lto_module_create_from_fd(int fd, const char *path, size_t file_size); + +/** + * Loads an object file from disk. The seek point of fd is not preserved. + * Returns NULL on error (check lto_get_error_message() for details). + */ +extern lto_module_t +lto_module_create_from_fd_at_offset(int fd, const char *path, size_t file_size, + size_t map_size, off_t offset); /** @@ -255,7 +263,7 @@ lto_codegen_write_merged_modules(lto_cod /** * Generates code for all added modules into one native object file. - * On sucess returns a pointer to a generated mach-o/ELF buffer and + * On success returns a pointer to a generated mach-o/ELF buffer and * length set to the buffer size. The buffer is owned by the * lto_code_gen_t and will be freed when lto_codegen_dispose() * is called, or lto_codegen_compile() is called again. @@ -264,6 +272,13 @@ lto_codegen_write_merged_modules(lto_cod extern const void* lto_codegen_compile(lto_code_gen_t cg, size_t* length); +/** + * Generates code for all added modules into one native object file. + * The name of the file is written to name. Returns true on error. + */ +extern bool +lto_codegen_compile_to_file(lto_code_gen_t cg, const char** name); + /** * Sets options to help debug codegen bugs. Modified: head/contrib/llvm/include/llvm/ADT/APFloat.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/APFloat.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/APFloat.h Mon May 2 21:04:37 2011 (r221345) @@ -353,6 +353,10 @@ namespace llvm { unsigned FormatPrecision = 0, unsigned FormatMaxPadding = 3) const; + /// getExactInverse - If this value has an exact multiplicative inverse, + /// store it in inv and return true. + bool getExactInverse(APFloat *inv) const; + private: /* Trivial queries. */ Modified: head/contrib/llvm/include/llvm/ADT/APInt.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/APInt.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/APInt.h Mon May 2 21:04:37 2011 (r221345) @@ -818,6 +818,7 @@ public: APInt usub_ov(const APInt &RHS, bool &Overflow) const; APInt sdiv_ov(const APInt &RHS, bool &Overflow) const; APInt smul_ov(const APInt &RHS, bool &Overflow) const; + APInt umul_ov(const APInt &RHS, bool &Overflow) const; APInt sshl_ov(unsigned Amt, bool &Overflow) const; /// @returns the bit value at bitPosition @@ -1372,7 +1373,7 @@ public: /// Calculate the magic number for unsigned division by a constant. struct mu; - mu magicu() const; + mu magicu(unsigned LeadingZeros = 0) const; /// @} /// @name Building-block Operations for APInt and APFloat Modified: head/contrib/llvm/include/llvm/ADT/ArrayRef.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/ArrayRef.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/ArrayRef.h Mon May 2 21:04:37 2011 (r221345) @@ -22,8 +22,8 @@ namespace llvm { /// /// This class does not own the underlying data, it is expected to be used in /// situations where the data resides in some other buffer, whose lifetime - /// extends past that of the StringRef. For this reason, it is not in general - /// safe to store a ArrayRef. + /// extends past that of the ArrayRef. For this reason, it is not in general + /// safe to store an ArrayRef. /// /// This is intended to be trivially copyable, so it should be passed by /// value. @@ -79,6 +79,8 @@ namespace llvm { /// empty - Check if the array is empty. bool empty() const { return Length == 0; } + const T *data() const { return Data; } + /// size - Get the array size. size_t size() const { return Length; } @@ -94,10 +96,22 @@ namespace llvm { return Data[Length-1]; } + /// slice(n) - Chop off the first N elements of the array. + ArrayRef slice(unsigned N) { + assert(N <= size() && "Invalid specifier"); + return ArrayRef(data()+N, size()-N); + } + + /// slice(n, m) - Chop off the first N elements of the array, and keep M + /// elements in the array. + ArrayRef slice(unsigned N, unsigned M) { + assert(N+M <= size() && "Invalid specifier"); + return ArrayRef(data()+N, M); + } + /// @} /// @name Operator Overloads /// @{ - const T &operator[](size_t Index) const { assert(Index < Length && "Invalid index!"); return Data[Index]; @@ -106,7 +120,6 @@ namespace llvm { /// @} /// @name Expensive Operations /// @{ - std::vector vec() const { return std::vector(Data, Data+Length); } Modified: head/contrib/llvm/include/llvm/ADT/DenseMap.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/DenseMap.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/DenseMap.h Mon May 2 21:04:37 2011 (r221345) @@ -53,13 +53,13 @@ public: CopyFrom(other); } - explicit DenseMap(unsigned NumInitBuckets = 64) { + explicit DenseMap(unsigned NumInitBuckets = 0) { init(NumInitBuckets); } template DenseMap(const InputIt &I, const InputIt &E) { - init(64); + init(NextPowerOf2(std::distance(I, E))); insert(I, E); } @@ -72,7 +72,8 @@ public: P->first.~KeyT(); } #ifndef NDEBUG - memset(Buckets, 0x5a, sizeof(BucketT)*NumBuckets); + if (NumBuckets) + memset((void*)Buckets, 0x5a, sizeof(BucketT)*NumBuckets); #endif operator delete(Buckets); } @@ -98,7 +99,10 @@ public: unsigned size() const { return NumEntries; } /// Grow the densemap so that it has at least Size buckets. Does not shrink - void resize(size_t Size) { grow(Size); } + void resize(size_t Size) { + if (Size > NumBuckets) + grow(Size); + } void clear() { if (NumEntries == 0 && NumTombstones == 0) return; @@ -248,23 +252,29 @@ private: if (NumBuckets) { #ifndef NDEBUG - memset(Buckets, 0x5a, sizeof(BucketT)*NumBuckets); + memset((void*)Buckets, 0x5a, sizeof(BucketT)*NumBuckets); #endif operator delete(Buckets); } - Buckets = static_cast(operator new(sizeof(BucketT) * - other.NumBuckets)); + + NumBuckets = other.NumBuckets; + + if (NumBuckets == 0) { + Buckets = 0; + return; + } + + Buckets = static_cast(operator new(sizeof(BucketT) * NumBuckets)); if (isPodLike::value && isPodLike::value) - memcpy(Buckets, other.Buckets, other.NumBuckets * sizeof(BucketT)); + memcpy(Buckets, other.Buckets, NumBuckets * sizeof(BucketT)); else - for (size_t i = 0; i < other.NumBuckets; ++i) { + for (size_t i = 0; i < NumBuckets; ++i) { new (&Buckets[i].first) KeyT(other.Buckets[i].first); if (!KeyInfoT::isEqual(Buckets[i].first, getEmptyKey()) && !KeyInfoT::isEqual(Buckets[i].first, getTombstoneKey())) new (&Buckets[i].second) ValueT(other.Buckets[i].second); } - NumBuckets = other.NumBuckets; } BucketT *InsertIntoBucket(const KeyT &Key, const ValueT &Value, @@ -279,11 +289,14 @@ private: // table completely filled with tombstones, no lookup would ever succeed, // causing infinite loops in lookup. ++NumEntries; - if (NumEntries*4 >= NumBuckets*3 || - NumBuckets-(NumEntries+NumTombstones) < NumBuckets/8) { + if (NumEntries*4 >= NumBuckets*3) { this->grow(NumBuckets * 2); LookupBucketFor(Key, TheBucket); } + if (NumBuckets-(NumEntries+NumTombstones) < NumBuckets/8) { + this->grow(NumBuckets); + LookupBucketFor(Key, TheBucket); + } // If we are writing over a tombstone, remember this. if (!KeyInfoT::isEqual(TheBucket->first, getEmptyKey())) @@ -313,6 +326,11 @@ private: unsigned ProbeAmt = 1; BucketT *BucketsPtr = Buckets; + if (NumBuckets == 0) { + FoundBucket = 0; + return false; + } + // FoundTombstone - Keep track of whether we find a tombstone while probing. BucketT *FoundTombstone = 0; const KeyT EmptyKey = getEmptyKey(); @@ -354,6 +372,12 @@ private: NumEntries = 0; NumTombstones = 0; NumBuckets = InitBuckets; + + if (InitBuckets == 0) { + Buckets = 0; + return; + } + assert(InitBuckets && (InitBuckets & (InitBuckets-1)) == 0 && "# initial buckets must be a power of two!"); Buckets = static_cast(operator new(sizeof(BucketT)*InitBuckets)); @@ -367,6 +391,9 @@ private: unsigned OldNumBuckets = NumBuckets; BucketT *OldBuckets = Buckets; + if (NumBuckets < 64) + NumBuckets = 64; + // Double the number of buckets. while (NumBuckets < AtLeast) NumBuckets <<= 1; @@ -398,7 +425,8 @@ private: } #ifndef NDEBUG - memset(OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets); + if (OldNumBuckets) + memset((void*)OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets); #endif // Free the old table. operator delete(OldBuckets); @@ -431,13 +459,22 @@ private: } #ifndef NDEBUG - memset(OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets); + memset((void*)OldBuckets, 0x5a, sizeof(BucketT)*OldNumBuckets); #endif // Free the old table. operator delete(OldBuckets); NumEntries = 0; } + +public: + /// Return the approximate size (in bytes) of the actual map. + /// This is just the raw memory used by DenseMap. + /// If entries are pointers to objects, the size of the referenced objects + /// are not included. + size_t getMemorySize() const { + return NumBuckets * sizeof(BucketT); + } }; template > { key ^= (key >> 31); return (unsigned)key; } - static bool isEqual(const Pair& LHS, const Pair& RHS) { return LHS == RHS; } + static bool isEqual(const Pair &LHS, const Pair &RHS) { + return FirstInfo::isEqual(LHS.first, RHS.first) && + SecondInfo::isEqual(LHS.second, RHS.second); + } }; } // end namespace llvm Modified: head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/DepthFirstIterator.h Mon May 2 21:04:37 2011 (r221345) @@ -143,8 +143,7 @@ public: static inline _Self end(const GraphT& G, SetType &S) { return _Self(S); } inline bool operator==(const _Self& x) const { - return VisitStack.size() == x.VisitStack.size() && - VisitStack == x.VisitStack; + return VisitStack == x.VisitStack; } inline bool operator!=(const _Self& x) const { return !operator==(x); } Modified: head/contrib/llvm/include/llvm/ADT/FoldingSet.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/FoldingSet.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/FoldingSet.h Mon May 2 21:04:37 2011 (r221345) @@ -209,10 +209,10 @@ template struct FoldingSetTr /// for FoldingSetTrait implementations. /// template struct DefaultFoldingSetTrait { - static void Profile(const T& X, FoldingSetNodeID& ID) { + static void Profile(const T &X, FoldingSetNodeID &ID) { X.Profile(ID); } - static void Profile(T& X, FoldingSetNodeID& ID) { + static void Profile(T &X, FoldingSetNodeID &ID) { X.Profile(ID); } @@ -267,7 +267,7 @@ template struc /// is often much larger than necessary, and the possibility of heap /// allocation means it requires a non-trivial destructor call. class FoldingSetNodeIDRef { - const unsigned* Data; + const unsigned *Data; size_t Size; public: FoldingSetNodeIDRef() : Data(0), Size(0) {} @@ -310,9 +310,10 @@ public: void AddInteger(unsigned long long I); void AddBoolean(bool B) { AddInteger(B ? 1U : 0U); } void AddString(StringRef String); + void AddNodeID(const FoldingSetNodeID &ID); template - inline void Add(const T& x) { FoldingSetTrait::Profile(x, *this); } + inline void Add(const T &x) { FoldingSetTrait::Profile(x, *this); } /// clear - Clear the accumulated profile, allowing this FoldingSetNodeID /// object to be used to compute a new profile. @@ -548,7 +549,7 @@ public: return static_cast(NodePtr); } - inline FoldingSetIterator& operator++() { // Preincrement + inline FoldingSetIterator &operator++() { // Preincrement advance(); return *this; } @@ -596,10 +597,10 @@ public: FoldingSetBucketIterator(void **Bucket, bool) : FoldingSetBucketIteratorImpl(Bucket, true) {} - T& operator*() const { return *static_cast(Ptr); } - T* operator->() const { return static_cast(Ptr); } + T &operator*() const { return *static_cast(Ptr); } + T *operator->() const { return static_cast(Ptr); } - inline FoldingSetBucketIterator& operator++() { // Preincrement + inline FoldingSetBucketIterator &operator++() { // Preincrement advance(); return *this; } @@ -615,36 +616,36 @@ template class FoldingSetNodeWrapper : public FoldingSetNode { T data; public: - explicit FoldingSetNodeWrapper(const T& x) : data(x) {} + explicit FoldingSetNodeWrapper(const T &x) : data(x) {} virtual ~FoldingSetNodeWrapper() {} template - explicit FoldingSetNodeWrapper(const A1& a1) + explicit FoldingSetNodeWrapper(const A1 &a1) : data(a1) {} template - explicit FoldingSetNodeWrapper(const A1& a1, const A2& a2) + explicit FoldingSetNodeWrapper(const A1 &a1, const A2 &a2) : data(a1,a2) {} template - explicit FoldingSetNodeWrapper(const A1& a1, const A2& a2, const A3& a3) + explicit FoldingSetNodeWrapper(const A1 &a1, const A2 &a2, const A3 &a3) : data(a1,a2,a3) {} template - explicit FoldingSetNodeWrapper(const A1& a1, const A2& a2, const A3& a3, - const A4& a4) + explicit FoldingSetNodeWrapper(const A1 &a1, const A2 &a2, const A3 &a3, + const A4 &a4) : data(a1,a2,a3,a4) {} template - explicit FoldingSetNodeWrapper(const A1& a1, const A2& a2, const A3& a3, - const A4& a4, const A5& a5) + explicit FoldingSetNodeWrapper(const A1 &a1, const A2 &a2, const A3 &a3, + const A4 &a4, const A5 &a5) : data(a1,a2,a3,a4,a5) {} - void Profile(FoldingSetNodeID& ID) { FoldingSetTrait::Profile(data, ID); } + void Profile(FoldingSetNodeID &ID) { FoldingSetTrait::Profile(data, ID); } - T& getValue() { return data; } - const T& getValue() const { return data; } + T &getValue() { return data; } + const T &getValue() const { return data; } operator T&() { return data; } operator const T&() const { return data; } @@ -661,20 +662,22 @@ class FastFoldingSetNode : public Foldin protected: explicit FastFoldingSetNode(const FoldingSetNodeID &ID) : FastID(ID) {} public: - void Profile(FoldingSetNodeID& ID) const { ID = FastID; } + void Profile(FoldingSetNodeID &ID) const { + ID.AddNodeID(FastID); + } }; //===----------------------------------------------------------------------===// // Partial specializations of FoldingSetTrait. template struct FoldingSetTrait { - static inline void Profile(const T* X, FoldingSetNodeID& ID) { + static inline void Profile(const T *X, FoldingSetNodeID &ID) { ID.AddPointer(X); } }; template struct FoldingSetTrait { - static inline void Profile(const T* X, FoldingSetNodeID& ID) { + static inline void Profile(const T *X, FoldingSetNodeID &ID) { ID.AddPointer(X); } }; Modified: head/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/ImmutableIntervalMap.h Mon May 2 21:04:37 2011 (r221345) @@ -10,6 +10,10 @@ // This file defines the ImmutableIntervalMap class. // //===----------------------------------------------------------------------===// + +#ifndef LLVM_ADT_IMMUTABLE_INTERVAL_MAP_H +#define LLVM_ADT_IMMUTABLE_INTERVAL_MAP_H + #include "llvm/ADT/ImmutableMap.h" namespace llvm { @@ -240,3 +244,5 @@ private: }; } // end namespace llvm + +#endif Modified: head/contrib/llvm/include/llvm/ADT/IntervalMap.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/IntervalMap.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/IntervalMap.h Mon May 2 21:04:37 2011 (r221345) @@ -1328,6 +1328,10 @@ public: /// const_iterator - Create an iterator that isn't pointing anywhere. const_iterator() : map(0) {} + /// setMap - Change the map iterated over. This call must be followed by a + /// call to goToBegin(), goToEnd(), or find() + void setMap(const IntervalMap &m) { map = const_cast(&m); } + /// valid - Return true if the current position is valid, false for end(). bool valid() const { return path.valid(); } Modified: head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h ============================================================================== --- head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h Mon May 2 21:04:23 2011 (r221344) +++ head/contrib/llvm/include/llvm/ADT/IntrusiveRefCntPtr.h Mon May 2 21:04:37 2011 (r221345) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:05:52 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A2A801065670; Mon, 2 May 2011 21:05:52 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8839C8FC12; Mon, 2 May 2011 21:05:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42L5qhN054502; Mon, 2 May 2011 21:05:52 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42L5q3j054498; Mon, 2 May 2011 21:05:52 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105022105.p42L5q3j054498@svn.freebsd.org> From: John Baldwin Date: Mon, 2 May 2011 21:05:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221346 - head/sys/netinet X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:05:52 -0000 Author: jhb Date: Mon May 2 21:05:52 2011 New Revision: 221346 URL: http://svn.freebsd.org/changeset/base/221346 Log: Handle a rare edge case with nearly full TCP receive buffers. If a TCP buffer fills up causing the remote sender to enter into persist mode, but there is still room available in the receive buffer when a window probe arrives (either due to window scaling, or due to the local application very slowing draining data from the receive buffer), then the single byte of data in the window probe is accepted. However, this can cause rcv_nxt to be greater than rcv_adv. This condition will only last until the next ACK packet is pushed out via tcp_output(), and since the previous ACK advertised a zero window, the ACK should be pushed out while the TCP pcb is write-locked. During the window while rcv_nxt is greather than rcv_adv, a few places would compute the remaining receive window via rcv_adv - rcv_nxt. However, this value was then (uint32_t)-1. On a 64 bit machine this could expand to a positive 2^32 - 1 when cast to a long. In particular, when calculating the receive window in tcp_output(), the result would be that the receive window was computed as 2^32 - 1 resulting in advertising a far larger window to the remote peer than actually existed. Fix various places that compute the remaining receive window to either assert that it is not negative (i.e. rcv_nxt <= rcv_adv), or treat the window as full if rcv_nxt is greather than rcv_adv. Reviewed by: bz MFC after: 1 month Modified: head/sys/netinet/tcp_input.c head/sys/netinet/tcp_output.c head/sys/netinet/tcp_timewait.c Modified: head/sys/netinet/tcp_input.c ============================================================================== --- head/sys/netinet/tcp_input.c Mon May 2 21:04:37 2011 (r221345) +++ head/sys/netinet/tcp_input.c Mon May 2 21:05:52 2011 (r221346) @@ -1831,6 +1831,9 @@ tcp_do_segment(struct mbuf *m, struct tc win = sbspace(&so->so_rcv); if (win < 0) win = 0; + KASSERT(SEQ_GEQ(tp->rcv_adv, tp->rcv_nxt), + ("tcp_input negative window: tp %p rcv_nxt %u rcv_adv %u", tp, + tp->rcv_adv, tp->rcv_nxt)); tp->rcv_wnd = imax(win, (int)(tp->rcv_adv - tp->rcv_nxt)); /* Reset receive buffer auto scaling when not in bulk receive mode. */ @@ -2868,7 +2871,10 @@ dodata: /* XXX */ * buffer size. * XXX: Unused. */ - len = so->so_rcv.sb_hiwat - (tp->rcv_adv - tp->rcv_nxt); + if (SEQ_GT(tp->rcv_adv, tp->rcv_nxt)) + len = so->so_rcv.sb_hiwat - (tp->rcv_adv - tp->rcv_nxt); + else + len = so->so_rcv.sb_hiwat; #endif } else { m_freem(m); Modified: head/sys/netinet/tcp_output.c ============================================================================== --- head/sys/netinet/tcp_output.c Mon May 2 21:04:37 2011 (r221345) +++ head/sys/netinet/tcp_output.c Mon May 2 21:05:52 2011 (r221346) @@ -561,15 +561,21 @@ after_sack_rexmit: * taking into account that we are limited by * TCP_MAXWIN << tp->rcv_scale. */ - long adv = min(recwin, (long)TCP_MAXWIN << tp->rcv_scale) - - (tp->rcv_adv - tp->rcv_nxt); + long adv; + int oldwin; + + adv = min(recwin, (long)TCP_MAXWIN << tp->rcv_scale); + if (SEQ_GT(tp->rcv_adv, tp->rcv_nxt)) { + oldwin = (tp->rcv_adv - tp->rcv_nxt); + adv -= oldwin; + } else + oldwin = 0; /* * If the new window size ends up being the same as the old * size when it is scaled, then don't force a window update. */ - if ((tp->rcv_adv - tp->rcv_nxt) >> tp->rcv_scale == - (adv + tp->rcv_adv - tp->rcv_nxt) >> tp->rcv_scale) + if (oldwin >> tp->rcv_scale == (adv + oldwin) >> tp->rcv_scale) goto dontupdate; if (adv >= (long) (2 * tp->t_maxseg)) goto send; @@ -1008,7 +1014,8 @@ send: if (recwin < (long)(so->so_rcv.sb_hiwat / 4) && recwin < (long)tp->t_maxseg) recwin = 0; - if (recwin < (long)(tp->rcv_adv - tp->rcv_nxt)) + if (SEQ_GT(tp->rcv_adv, tp->rcv_nxt) && + recwin < (long)(tp->rcv_adv - tp->rcv_nxt)) recwin = (long)(tp->rcv_adv - tp->rcv_nxt); if (recwin > (long)TCP_MAXWIN << tp->rcv_scale) recwin = (long)TCP_MAXWIN << tp->rcv_scale; Modified: head/sys/netinet/tcp_timewait.c ============================================================================== --- head/sys/netinet/tcp_timewait.c Mon May 2 21:04:37 2011 (r221345) +++ head/sys/netinet/tcp_timewait.c Mon May 2 21:05:52 2011 (r221346) @@ -242,6 +242,9 @@ tcp_twstart(struct tcpcb *tp) /* * Recover last window size sent. */ + KASSERT(SEQ_GEQ(tp->rcv_adv, tp->rcv_nxt), + ("tcp_twstart negative window: tp %p rcv_nxt %u rcv_adv %u", tp, + tp->rcv_adv, tp->rcv_nxt)); tw->last_win = (tp->rcv_adv - tp->rcv_nxt) >> tp->rcv_scale; /* From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:07:38 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ADD621065676 for ; Mon, 2 May 2011 21:07:38 +0000 (UTC) (envelope-from lifanov@mail.lifanov.com) Received: from mail.lifanov.com (mail.lifanov.com [206.125.175.12]) by mx1.freebsd.org (Postfix) with ESMTP id 7BA7F8FC13 for ; Mon, 2 May 2011 21:07:38 +0000 (UTC) Received: by mail.lifanov.com (Postfix, from userid 65534) id 249BE136EA0; Mon, 2 May 2011 20:58:42 +0000 (UTC) Received: from localhost (157.sub-174-252-144.myvzw.com [174.252.144.157]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lifanov.com (Postfix) with ESMTPSA id 68363136A93 for ; Mon, 2 May 2011 20:58:39 +0000 (UTC) Date: Mon, 02 May 2011 17:00:05 -0400 Message-ID: <5alg8t0yj1ngqaan4tsr1xyj.1304370005205@email.android.com> From: Nikolai Lifanov To: svn-src-head@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Subject: Re: svn-src-head Digest, Vol 88, Issue 2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:07:38 -0000 Cgpzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZyB3cm90ZToKCj5TZW5kIHN2bi1zcmMt aGVhZCBtYWlsaW5nIGxpc3Qgc3VibWlzc2lvbnMgdG8KPglzdm4tc3JjLWhlYWRAZnJlZWJzZC5v cmcKPgo+VG8gc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHZpYSB0aGUgV29ybGQgV2lkZSBXZWIs IHZpc2l0Cj4JaHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNy Yy1oZWFkCj5vciwgdmlhIGVtYWlsLCBzZW5kIGEgbWVzc2FnZSB3aXRoIHN1YmplY3Qgb3IgYm9k eSAnaGVscCcgdG8KPglzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZwo+Cj5Zb3UgY2Fu IHJlYWNoIHRoZSBwZXJzb24gbWFuYWdpbmcgdGhlIGxpc3QgYXQKPglzdm4tc3JjLWhlYWQtb3du ZXJAZnJlZWJzZC5vcmcKPgo+V2hlbiByZXBseWluZywgcGxlYXNlIGVkaXQgeW91ciBTdWJqZWN0 IGxpbmUgc28gaXQgaXMgbW9yZSBzcGVjaWZpYwo+dGhhbiAiUmU6IENvbnRlbnRzIG9mIHN2bi1z cmMtaGVhZCBkaWdlc3QuLi4iCj4KPlRvZGF5J3MgVG9waWNzOgo+Cj4gICAxLiBzdm4gY29tbWl0 OiByMjIxMzAwIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgIDIuIHN2biBj b21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChCZXJuaGFyZCBTY2htaWR0KQo+ICAgMy4g UmU6IHN2biBjb21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChOYXRoYW4gV2hpdGVob3Ju KQo+ICAgNC4gc3ZuIGNvbW1pdDogcjIyMTMwMyAtIGhlYWQvdXNyLmJpbi9tYW4gKFVscmljaCBT cG9lcmxlaW4pCj4gICA1LiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYg KEJlcm5oYXJkIFNjaG1pZHQpCj4gICA2LiBzdm4gY29tbWl0OiByMjIxMzA0IC0gaGVhZC9zYmlu L3JlY292ZXJkaXNrIChVbHJpY2ggU3BvZXJsZWluKQo+ICAgNy4gc3ZuIGNvbW1pdDogcjIyMTMw NSAtIGhlYWQvc2hhcmUvbWFuL21hbjQgKENocmlzdGlhbiBCcnVlZmZlcikKPiAgIDguIHN2biBj b21taXQ6IHIyMjEzMDYgLSBpbiBoZWFkL3N5czogZnMvbmZzIG5mcyAoUmljayBNYWNrbGVtKQo+ ICAgOS4gc3ZuIGNvbW1pdDogcjIyMTMwNyAtIGhlYWQvc3lzL21pcHMvYXRoZXJvcyAoQWRyaWFu IENoYWRkKQo+ICAxMC4gc3ZuIGNvbW1pdDogcjIyMTMwOCAtIGhlYWQvdXNyLmJpbi9uZnNzdGF0 IChSaWNrIE1hY2tsZW0pCj4gIDExLiBzdm4gY29tbWl0OiByMjIxMzA5IC0gaGVhZC91c3IuYmlu L25mc3N0YXQgKFJpY2sgTWFja2xlbSkKPiAgMTIuIHN2biBjb21taXQ6IHIyMjEzMTIgLSBoZWFk L3N5cy9jb25mIChBZHJpYW4gQ2hhZGQpCj4gIDEzLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAt IGhlYWQvc3lzL2NvbmYgKEFkcmlhbiBDaGFkZCkKPiAgMTQuIHN2biBjb21taXQ6IHIyMjEzMTkg LSBoZWFkL3NoYXJlL21pc2MgKE1heGltIEtvbm92YWxvdikKPiAgMTUuIHN2biBjb21taXQ6IHIy MjEzMjAgLSBoZWFkL3N5cy9jb25mIChCcnVjZSBDcmFuKQo+ICAxNi4gc3ZuIGNvbW1pdDogcjIy MTMyMSAtIGhlYWQvc3lzL21pcHMvY29uZiAoQWRyaWFuIENoYWRkKQo+ICAxNy4gUmU6IHN2biBj b21taXQ6IHIyMjEzMjAgLSBoZWFkL3N5cy9jb25mIChBbGV4YW5kZXIgQmVzdCkKPiAgMTguIFJl OiBzdm4gY29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoRGltaXRyeSBBbmRyaWMp Cj4gIDE5LiBzdm4gY29tbWl0OiByMjIxMzI0IC0gaW4gaGVhZC9zeXM6IGFtZDY0L3BjaSBkZXYv YWNwaWNhCj4gICAgICBkZXYvcGNpCWkzODYvcGNpIHg4Ni94ODYgKEpvaG4gQmFsZHdpbikKPiAg MjAuIHN2biBjb21taXQ6IHIyMjEzMjYgLSBoZWFkL3N5cy9kZXYvcHVjIChKb2huIEJhbGR3aW4p Cj4gIDIxLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFs ZHdpbikKPiAgMjIuIHN2biBjb21taXQ6IHIyMjEzMjcgLSBoZWFkL3N5cy9kZXYvY2FyZGJ1cyAo Sm9obiBCYWxkd2luKQo+ICAyMy4gc3ZuIGNvbW1pdDogcjIyMTMyOCAtIGhlYWQvc3lzL25ldGlu ZXQgKE1pY2hhZWwgVHVleGVuKQo+ICAyNC4gc3ZuIGNvbW1pdDogcjIyMTMyOSAtIGhlYWQvc3lz L2kzODYvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjUuIFJlOiBzdm4gY29tbWl0OiByMjIx MzAxIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjYuIHN2biBjb21taXQ6 IHIyMjEzMzEgLSBoZWFkL3N5cy94ODYveDg2IChKdW5nLXVrIEtpbSkKPiAgMjcuIFJlOiBzdm4g Y29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoSnVuZy11ayBLaW0pCj4gIDI4LiBS ZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFsZHdpbikKPiAg MjkuIHN2biBjb21taXQ6IHIyMjEzMzMgLSBoZWFkIChEaW1pdHJ5IEFuZHJpYykKPiAgMzAuIHN2 biBjb21taXQ6IHIyMjEzMzQgLSBoZWFkL3N5cy9pYTY0L2luY2x1ZGUgKE1hcmNlbCBNb29sZW5h YXIpCj4gIDMxLiBzdm4gY29tbWl0OiByMjIxMzM1IC0gaGVhZC9zeXMvZGV2L2NvcmV0ZW1wIChY aW4gTEkpCj4gIDMyLiBzdm4gY29tbWl0OiByMjIxMzM2IC0gaGVhZC9zeXMvZGV2L2FjcGljYSAo Sm9obiBCYWxkd2luKQo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRlOiBTdW4gTWF5ICAxIDE4OjQy OjU2IDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzAwCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5v cmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAwCj4KPkxvZzoKPiAgQWRkIGZpbGVzIGZvciB3cGkoNCkK Pgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYvZmlsZXMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lz L2NvbmYvZmlsZXMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL2NvbmYvZmls ZXMJU3VuIE1heSAgMSAxODo0MTo1NyAyMDExCShyMjIxMjk5KQo+KysrIGhlYWQvc3lzL2NvbmYv ZmlsZXMJU3VuIE1heSAgMSAxODo0Mjo1NiAyMDExCShyMjIxMzAwKQo+QEAgLTE5OTUsNiArMTk5 NSw3IEBAIGRldi93aS9pZl93aS5jCQkJb3B0aW9uYWwgd2kKPiBkZXYvd2kvaWZfd2lfcGNjYXJk LmMJCW9wdGlvbmFsIHdpIHBjY2FyZAo+IGRldi93aS9pZl93aV9wY2kuYwkJb3B0aW9uYWwgd2kg cGNpCj4gZGV2L3dsL2lmX3dsLmMJCQlvcHRpb25hbCB3bCBpc2EKPitkZXYvd3BpL2lmX3dwaS5j CQlvcHRpb25hbCB3cGkgcGNpCj4gd3BpZncuYwkJCW9wdGlvbmFsIHdwaWZ3CQkJCQlcCj4gCWNv bXBpbGUtd2l0aAkiJHtBV0t9IC1mICRTL3Rvb2xzL2Z3X3N0dWIuYXdrIHdwaS5mdzp3cGlmdzox NTMyMjkgLW13cGkgLWMkey5UQVJHRVR9IiBcCj4gCW5vLWltcGxpY2l0LXJ1bGUgYmVmb3JlLWRl cGVuZCBsb2NhbAkJCQlcCj4KPgo+QXV0aG9yOiBic2NobWlkdAo+RGF0ZTogU3VuIE1heSAgMSAx OTowNTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwMQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVi c2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Cj5Mb2c6Cj4gIFRoZXNlIGFyZSBvZiBjb3Vy c2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9OT1RFUwo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9OT1RFUwo+PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4t LS0gaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE4OjQyOjU2IDIwMTEJKHIyMjEzMDAp Cj4rKysgaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEJKHIyMjEz MDEpCj5AQCAtMTkzNSw5ICsxOTM1LDYgQEAgZGV2aWNlCQl4bXBoeQkJIyBYYVF0aSBYTUFDIElJ Cj4gIwkoaGludCBvZiBwcmVmZXJfaW9tYXAgY2FuIGJlIGRvbmUgdG8gcHJlZmVyIEkvTyBpbnN0 ZWFkIG9mIE1lbSBtYXBwaW5nKQo+ICMgZ2VtOiAgQXBwbGUgR01BQy9TdW4gRVJJL1N1biBHRU0K PiAjIGhtZTogIFN1biBITUUgKEhhcHB5IE1lYWwgRXRoZXJuZXQpCj4tIyBpcHc6ICBJbnRlbCAy MTAwIHdpcmVsZXNzIE5JQ3MuCj4tIyBpd2k6ICBJbnRlbCAyMjAwQkcvMjIyNUJHLzI5MTVBQkcg d2lyZWxlc3MgTklDcy4KPi0jIGl3bjogIEludGVsIDQ5NjUvMTAwMC81MDAwLzYwMDAgd2lyZWxl c3MgTklDcy4KPiAjIGptZTogIEpNaWNyb24gSk1DMjYwIEZhc3QgRXRoZXJuZXQvSk1DMjUwIEdp Z2FiaXQgRXRoZXJuZXQgYmFzZWQgYWRhcHRlcnMuCj4gIyBsZTogICBBTUQgQW03OTAwIExBTkNF IGFuZCBBbTc5Qzl4eCBQQ25ldAo+ICMgbGdlOglTdXBwb3J0IGZvciBQQ0kgZ2lnYWJpdCBldGhl cm5ldCBhZGFwdGVycyBiYXNlZCBvbiB0aGUgTGV2ZWwgMQo+QEAgLTIwMTYsNyArMjAxMyw2IEBA IGRldmljZQkJeG1waHkJCSMgWGFRdGkgWE1BQyBJSQo+ICMgd2k6ICAgTHVjZW50IFdhdmVMQU4v SUVFRSA4MDIuMTEgUENNQ0lBIGFkYXB0ZXJzLiBOb3RlOiB0aGlzIHN1cHBvcnRzIGJvdGgKPiAj ICAgICAgIHRoZSBQQ01DSUEgYW5kIElTQSBjYXJkczogdGhlIElTQSBjYXJkIGlzIHJlYWxseSBh IFBDTUNJQSB0byBJU0EKPiAjICAgICAgIGJyaWRnZSB3aXRoIGEgUENNQ0lBIGFkYXB0ZXIgcGx1 Z2dlZCBpbnRvIGl0Lgo+LSMgd3BpOiAgSW50ZWwgMzk0NUFCRyB3aXJlbGVzcyBOSUNzLgo+ICMg eGU6ICAgWGlyY29tL0ludGVsIEV0aGVyRXhwcmVzcyBQcm8xMDAvMTYgUEMgQ2FyZCBldGhlcm5l dCBjb250cm9sbGVyLAo+ICMgICAgICAgQWNjdG9uIEZhc3QgRXRoZXJDYXJkLTE2LCBDb21wYXEg TmV0ZWxsaWdlbnQgMTAvMTAwIFBDIENhcmQsCj4gIyAgICAgICBUb3NoaWJhIDEwLzEwMCBFdGhl cm5ldCBQQyBDYXJkLCBYaXJjb20gMTYtYml0IEV0aGVybmV0ICsgTW9kZW0gNTYKPkBAIC0yMTM3 LDEzICsyMTMzLDkgQEAgb3B0aW9ucwkgICAJQUhfUlhDRkdfU0RNQU1XXzRCWVRFUwo+IGRldmlj ZQkJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRyb2wgZm9yIGF0aAo+ IGRldmljZQkJYndpCQkjIEJyb2FkY29tIEJDTTQzMCogQkNNNDMxKgo+IGRldmljZQkJYnduCQkj IEJyb2FkY29tIEJDTTQzeHgKPi1kZXZpY2UJCWlwdwkJIyBJbnRlbCAyMTAwIHdpcmVsZXNzIE5J Q3MuCj4tZGV2aWNlCQlpd2kJCSMgSW50ZWwgMjIwMEJHLzIyMjVCRy8yOTE1QUJHIHdpcmVsZXNz IE5JQ3MuCj4tZGV2aWNlCQlpd24JCSMgSW50ZWwgNDk2NS8xMDAwLzUwMDAvNjAwMCB3aXJlbGVz cyBOSUNzLgo+IGRldmljZQkJbWFsbwkJIyBNYXJ2ZWxsIExpYmVydGFzIHdpcmVsZXNzIE5JQ3Mu Cj4gZGV2aWNlCQltd2wJCSMgTWFydmVsbCA4OFc4MzYzIDgwMi4xMW4gd2lyZWxlc3MgTklDcy4K PiBkZXZpY2UJCXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDAgd2lyZWxlc3MgTklDcy4K Pi1kZXZpY2UJCXdwaQkJIyBJbnRlbCAzOTQ1QUJHIHdpcmVsZXNzIE5JQ3MuCj4gCj4gIyBVc2Ug InByaXZhdGUiIGp1bWJvIGJ1ZmZlcnMgYWxsb2NhdGVkIGV4Y2x1c2l2ZWx5IGZvciB0aGUgdGko NCkgZHJpdmVyLgo+ICMgVGhpcyBvcHRpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIFRJX0pV TUJPX0hEUlNQTElUIG9wdGlvbiBiZWxvdy4KPgo+Cj5PbiAwNS8wMS8xMSAxNDowNSwgQmVybmhh cmQgU2NobWlkdCB3cm90ZToKPj4gQXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAx IDE5OjA1OjU0IDIwMTEKPj4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Pgo+PiBMb2c6Cj4+ICAgIFRoZXNl IGFyZSBvZiBjb3Vyc2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj4KPkknbSBub3Qgc3VyZSB0aGF0J3Mg aW50cmluc2ljYWxseSB0cnVlLiBFdmVuIGlmIHRoZXkgbW9zdGx5IG9ubHkgc2hpcCAKPndpdGgg SW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3aGlj aCBjb3VsZCBiZSAKPnB1dCBpbnRvIG5vbi14ODYgc3lzdGVtcy4KPi1OYXRoYW4KPgo+Cj5BdXRo b3I6IHVxcwo+RGF0ZTogU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCj5OZXcgUmV2aXNpb246IDIy MTMwMwo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMwo+ Cj5Mb2c6Cj4gIExldCB1c2VycycgUEFUSCBkZWNpZGUgd2hpY2ggZ3JvZmYgc3VpdGUgdG8gcGlj ayB1cC4KPiAgCj4gIExldCBncm9mZiBwYXNzIHRoZSAtYyBmbGFnIHRvIGdyb3R0eSwgd2hpY2gg d2lsbCB0dXJuIG9mZiBBTlNJCj4gIHNlcXVlbmNlcy4gV2hpbGUgdGhlc2UgYXJlIG5vdCBhIHBy b2JsZW0gZm9yIG91ciBtb3JlL2xlc3MsIHRoZXkgZ2V0Cj4gIG1hbmdsZWQgYnkgY29sKDEpIGFu ZCB0aGlzIHdpbGwgcmVzdWx0IGluIGdhcmJhZ2Ugb3V0cHV0Lgo+ICAKPiAgVGhpcyBtYWtlcyBt YW4oMSkgd29yayB0b2dldGhlciB3aXRoIHRleHRwcm9jL2dyb2ZmLCBpbiBjYXNlIHRoZQo+ICB1 c2VyIGRlY2lkZWQgdG8gZGVsZXRlIHRoZSBvbGQgZ3JvZmYgZnJvbSBiYXNlICgtRFdJVEhPVVRf R1JPRkYpLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC91c3IuYmluL21hbi9tYW4uc2gKPgo+TW9kaWZp ZWQ6IGhlYWQvdXNyLmJpbi9tYW4vbWFuLnNoCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3Vzci5iaW4vbWFuL21hbi5zaAlTdW4gTWF5ICAxIDE5OjI0OjUxIDIwMTEJKHIyMjEzMDIp Cj4rKysgaGVhZC91c3IuYmluL21hbi9tYW4uc2gJU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCShy MjIxMzAzKQo+QEAgLTg4OSwxNiArODg5LDE4IEBAIGRvX3doYXRpcygpIHsKPiAJc2VhcmNoX3do YXRpcyB3aGF0aXMgIiRAIgo+IH0KPiAKPi1FUU49L3Vzci9iaW4vZXFuCj4rIyBVc2VyJ3MgUEFU SCBzZXR0aW5nIGRlY2lkZXMgb24gdGhlIGdyb2ZmLXN1aXRlIHRvIHBpY2sgdXAuCj4rRVFOPWVx bgo+K05ST0ZGPSdncm9mZiAtUyAtUC1jIC1XYWxsIC1tdHR5LWNoYXIgLW1hbicKPitQSUM9cGlj Cj4rUkVGRVI9cmVmZXIKPitUQkw9dGJsCj4rVFJPRkY9J2dyb2ZmIC1TIC1QLWMgLW1hbicKPitW R1JJTkQ9dmdyaW5kCj4rCj4gQ09MPS91c3IvYmluL2NvbAo+IExPQ0FMRT0vdXNyL2Jpbi9sb2Nh bGUKPi1OUk9GRj0nL3Vzci9iaW4vZ3JvZmYgLVMgLVdhbGwgLW10dHktY2hhciAtbWFuJwo+LVBJ Qz0vdXNyL2Jpbi9waWMKPiBTWVNDVEw9L3NiaW4vc3lzY3RsCj4tVEJMPS91c3IvYmluL3RibAo+ LVRST0ZGPScvdXNyL2Jpbi9ncm9mZiAtUyAtbWFuJwo+LVJFRkVSPS91c3IvYmluL3JlZmVyCj4t VkdSSU5EPS91c3IvYmluL3ZncmluZAo+IAo+IGRlYnVnPTAKPiBtYW5fZGVmYXVsdF9zZWN0aW9u cz0nMToxYW91dDo4OjI6MzpuOjQ6NTo2Ojc6OTpsJwo+Cj4KPk9uIFN1bmRheSAwMSBNYXkgMjAx MSAyMToyODoyOCBOYXRoYW4gV2hpdGVob3JuIHdyb3RlOgo+PiBPbiAwNS8wMS8xMSAxNDowNSwg QmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTog U3VuIE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBV Ukw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4KPj4g PiBMb2c6Cj4+ID4gICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+IAo+ PiAKPj4gSSdtIG5vdCBzdXJlIHRoYXQncyBpbnRyaW5zaWNhbGx5IHRydWUuIEV2ZW4gaWYgdGhl eSBtb3N0bHkgb25seSBzaGlwIAo+PiB3aXRoIEludGVsIG1vdGhlcmJvYXJkcywgbWFueSBvZiB0 aGVzZSBhcmUgTWluaS1QQ0kgcGFydHMgd2hpY2ggY291bGQgYmUgCj4+IHB1dCBpbnRvIG5vbi14 ODYgc3lzdGVtcy4KPgo+WWVzLCBpbmRlZWQuIFRob3NlIG1pZ2h0IG9mIGNvdXJzZSBiZSB1c2Vk IG9uIG90aGVyIHBsYXRmb3JtcyB0b28KPih3ZWxsIGF0IGxlYXN0IGl0IGZpdHMgaW50byB0aGUg c2xvdCwgSSBrbm93IHRoYXQgY2VydGFpbiBmZWF0dXJlcwo+YXJlIG5vdCBldmVuIGF2YWlsYWJs ZSBvbiBBTUQgcGxhdGZvcm1zKS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPmFueW9uZSBldmVy IHRyaWVkIG9uZSBvZiBpdCBvbiBtaXBzIGZvciBleGFtcGxlLgo+Cj5JIGRvbid0IG1pbmQgYmVp bmcgcHJvdmVuIHdyb25nIGFuZCBpZiBzbyBtb3ZlIHRoZSBlbnRyaWVzIGJhY2sgdG8KPmEgbW9y ZSBnZW5lcmljIGxvY2F0aW9uLiBDdXJyZW50bHkgSSdtIGp1c3QgdHJ5aW5nIG1pbWljIHRoZSBt b2R1bGUKPmJlaGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+LS0gCj5CZXJuaGFy ZAo+Cj4KPkF1dGhvcjogdXFzCj5EYXRlOiBTdW4gTWF5ICAxIDIwOjE0OjEwIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzA0Cj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzA0Cj4KPkxvZzoKPiAgcmVjb3ZlcmRpc2soOCk6IHRyZWF0IG91dHB1dCBmaWxlIGNv bnNpc3RlbnRseSBhbmQgYWJvcnQgb24gRUlOVkFMCj4gIAo+ICBUaGlzIGltcHJvdmVzIHVzYWJp bGl0eSBhIGxpdHRsZSBhcyB3ZSBubyBsb25nZXIgcmVxdWlyZSB1c2luZyB0b3VjaC4KPiAgQWxz byByZXdvcmQgdGhlIG1hbnBhZ2Ugd3J0LiBwYXJhbWV0ZXJzIGFuZCBmaXggdXNhZ2UoKSBbMV0K PiAgCj4gIFdpdGggbm8gbWVkaWEgaW4gYSBjZCg0KSBkcml2ZSwgdGhlIHJlYWRzIHdpbGwgbG9v cCBwcm9kdWNpbmcgRUlOVkFMLAo+ICBhYm9ydCBpbiB0aGF0IGNhc2UgWzJdLgo+ICAKPiAgRG9j dW1lbnQgdGhlIHNob3J0Y29taW5nIG9mIHNlY3RvcnNpemUgYW5kIE1BWFBIWVMgKGEgcXVpY2sg c29sdXRpb24KPiAgdG8gdGhpcyBtaWdodCBiZSBoYXZpbmcgTUFYUEhZUyBhcyB0aGUgImJpZ3Np emUiLCBpbiBzaG9ydCB0ZXN0aW5nIGl0Cj4gIGRpZG4ndCBtYWtlIGEgZGlmZmVyZW5jZSBvbiB0 aHJvdWdocHV0KS4KPiAgCj4gIFN1Ym1pdHRlZCBieToJYXJ1bmRlbCBbMV0KPiAgUFI6CQliaW4v MTU0NTI4IFsyXQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJkaXNrLmMKPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay4xCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suMQlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTI0LDcgKzI0LDcg QEAKPiAuXCIKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE1heSA2LCAyMDA2Cj4rLkRkIE1h eSAxLCAyMDExCj4gLkR0IFJFQ09WRVJESVNLIDEKPiAuT3MKPiAuU2ggTkFNRQo+QEAgLTMzLDE3 ICszMywyMCBAQAo+IC5TaCBTWU5PUFNJUwo+IC5ObQo+IC5PcCBGbCBiIEFyIGJpZ3NpemUKPi0u T3AgRmwgciBBciBybGlzdAo+LS5PcCBGbCBzIEFyIHNuYXBzaG90Cj4tLk9wIEZsIHcgQXIgd2xp c3QKPi0uQXIgc3BlY2lhbAo+LS5PcCBBciBmaWxlCj4rLk9wIEZsIHIgQXIgcmVhZGxpc3QKPisu T3AgRmwgcyBBciBpbnRlcnZhbAo+Ky5PcCBGbCB3IEFyIHdyaXRlbGlzdAo+Ky5BciBzb3VyY2UK PisuT3AgQXIgZGVzdGluYXRpb24KPiAuU2ggREVTQ1JJUFRJT04KPiBUaGUKPiAuTm0KPiB1dGls aXR5IHJlYWRzIGRhdGEgZnJvbSB0aGUKPi0uQXIgc3BlY2lhbAo+Ky5BciBzb3VyY2UKPiBmaWxl IHVudGlsIGFsbCBibG9ja3MgY291bGQgYmUgc3VjY2Vzc2Z1bGx5IHJlYWQuCj4rSWYKPisuQXIg ZGVzdGluYXRpb24KPit3YXMgc3BlY2lmaWVkIGFsbCBkYXRhIGlzIGJlaW5nIHdyaXR0ZW4gdG8g dGhhdCBmaWxlLgo+IEl0IHN0YXJ0cyByZWFkaW5nIGluIG11bHRpcGxlcyBvZiB0aGUgc2VjdG9y IHNpemUuCj4gV2hlbmV2ZXIgYSBibG9jayBmYWlscywgaXQgaXMgcHV0IHRvIHRoZSBlbmQgb2Yg dGhlIHdvcmtpbmcgcXVldWUgYW5kIHdpbGwgYmUKPiByZWFkIGFnYWluLCBwb3NzaWJseSB3aXRo IGEgc21hbGxlciByZWFkIHNpemUuCj5AQCAtNTksMTMgKzYyLDEzIEBAIFRoZSBvcHRpb25zIGFy ZSBhcyBmb2xsb3dzOgo+IFRoZSBzaXplIG9mIHJlYWRzIGF0dGVtcHRlZCBmaXJzdC4KPiBUaGUg bWlkZGxlIHBhc3MgaXMgcm91Z2hseSB0aGUgbG9nYXJpdGhtaWMgYXZlcmFnZSBvZiB0aGUgYmln c2l6ZSBhbmQKPiB0aGUgc2VjdG9yc2l6ZS4KPi0uSXQgRmwgciBBciBybGlzdAo+Ky5JdCBGbCBy IEFyIHJlYWRsaXN0Cj4gUmVhZCB0aGUgbGlzdCBvZiBibG9ja3MgYW5kIGJsb2NrIHNpemVzIHRv IHJlYWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUuCj4tLkl0IEZsIHMgQXIgc25hcHNob3QKPi1I b3cgb2Z0ZW4gd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgd29ya2xpc3QgZmlsZSB3aGlsZSB0aGluZ3Mg Z28gT0suCj4tVGhlIGRlZmF1bHQgaXMgNjAgYW5kIHRoZSB1bml0cyBpcyAicHJvZ3Jlc3MgbWVz c2FnZXMiIHNvIGlmIHRoaW5ncwo+Ky5JdCBGbCBzIEFyIGludGVydmFsCj4rSG93IG9mdGVuIHdl IHNob3VsZCB1cGRhdGUgdGhlIHdyaXRlbGlzdCBmaWxlIHdoaWxlIHRoaW5ncyBnbyBPSy4KPitU aGUgZGVmYXVsdCBpcyA2MCBhbmQgdGhlIHVuaXQgaXMgInByb2dyZXNzIG1lc3NhZ2VzIiBzbyBp ZiB0aGluZ3MKPiBnbyB3ZWxsLCB0aGlzIGlzIHRoZSBzYW1lIGFzIG9uY2UgcGVyIG1pbnV0ZS4K Pi0uSXQgRmwgdyBBciB3bGlzdAo+Ky5JdCBGbCB3IEFyIHdyaXRlbGlzdAo+IFdyaXRlIHRoZSBs aXN0IG9mIHJlbWFpbmluZyBibG9ja3MgdG8gcmVhZCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgaWYK PiAuTm0KPiBpcyBhYm9ydGVkIHZpYQo+QEAgLTEwMiwyMCArMTA1LDE5IEBAIFBlcmNlbnQgY29t cGxldGUuCj4gLlNoIEVYQU1QTEVTCj4gLkJkIC1saXRlcmFsCj4gIyByZWNvdmVyIGRhdGEgZnJv bSBmYWlsaW5nIGhhcmQgZHJpdmUgYWQzCj4tdG91Y2ggL2RhdGEvbG90c19vZl9zcGFjZQo+LXJl Y292ZXJkaXNrIC9kZXYvYWQzIC9kYXRhL2xvdHNfb2Zfc3BhY2UKPityZWNvdmVyZGlzayAvZGV2 L2FkMyAvZGF0YS9kaXNrLmltZwo+IAo+ICMgY2xvbmUgYSBoYXJkIGRpc2sKPiByZWNvdmVyZGlz ayAvZGV2L2FkMyAvZGV2L2FkNAo+IAo+ICMgcmVhZCBhbiBJU08gaW1hZ2UgZnJvbSBhIENELVJP TQo+LXRvdWNoIC9kYXRhL2NkLmlzbzsgcmVjb3ZlcmRpc2sgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC9kZXYvY2QwIC9kYXRhL2NkLmlzbwo+IAo+ICMgY29udGludWUgcmVh ZGluZyBmcm9tIGEgYnJva2VuIENEIGFuZCB1cGRhdGUgdGhlIGV4aXN0aW5nIHdvcmtsaXN0Cj4t cmVjb3ZlcmRpc2sgLXIgd29ya2xpc3QgLXcgd29ya2xpc3QgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC1yIHdvcmtsaXN0IC13IHdvcmtsaXN0IC9kZXYvY2QwIC9kYXRhL2Nk Lmlzbwo+IAo+ICMgcmVjb3ZlciBhIHNpbmdsZSBmaWxlIGZyb20gdGhlIHVucmVhZGFibGUgbWVk aWEKPi10b3VjaCBmaWxlLmF2aTsgcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZp Cj4rcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZpCj4gCj4gIyBJZiB0aGUgZGlz ayBoYW5ncyB0aGUgc3lzdGVtIG9uIHJlYWQtZXJyb3JzIHRyeToKPiByZWNvdmVyZGlzayAtYiAw IC9kZXYvYWQzIC9zb21ld2hlcmUKPkBAIC0xMzMsNyArMTM1LDcgQEAgdXRpbGl0eSBmaXJzdCBh cHBlYXJlZCBpbgo+IFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3YXMgZG9uZSBieQo+IC5B biBQb3VsLUhlbm5pbmcgS2FtcCBBcSBwaGtARnJlZUJTRC5vcmcKPiB3aXRoIG1pbm9yIGltcHJv dmVtZW50cyBmcm9tCj4tLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1c3BvZXJsZWluQGdtYWls LmNvbSAuCj4rLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1cXNARnJlZUJTRC5vcmcgLgo+IC5Q cAo+IFRoaXMgbWFudWFsIHBhZ2Ugd2FzIHdyaXR0ZW4gYnkKPiAuQW4gVWxyaWNoIFNwXCg6b3Js ZWluIC4KPkBAIC0xNDQsNCArMTQ2LDEzIEBAIFRoaXMgaXMgZHVlIHRvIHRoZSBETUEgcmVhZHMg YmVpbmcgc3BsaXQKPiBUaGVzZSByZWFkcyB0aGVuIGZhaWwgaWYgdGhlIHNlY3RvcnNpemUgaXMg bm90IGEgZGl2aXNvciBvZiAxMjhrQi4KPiBXaGVuIHJlYWRpbmcgYSBmdWxsIHJhdyBhdWRpbyBD RCwgdGhpcyBsZWFkcyB0byByb3VnaGx5IDcwMCBlcnJvciBtZXNzYWdlcwo+IGZseWluZyBieS4K Pi1UaGlzIGlzIGhhcm1sZXNzLgo+K1RoaXMgaXMgaGFybWxlc3MgYW5kIGNhbiBiZSBhdm9pZGVk IGJ5IHNldHRpbmcKPisuRmwgYgo+K3RvIG5vIG1vcmUgdGhhbiAxMjhrQi4KPisuXCIuUHAKPisu XCJXaGVuIHJlYWRpbmcgZnJvbSBvcHRpY2FsIG1lZGlhLCBhIGJ1ZyBpbiB0aGUgR0VPTSBmcmFt ZXdvcmsgd2lsbAo+Ky5cInByZXZlbnQgaXQgZnJvbSBzZWVpbmcgdGhhdCB0aGUgbWVkaWEgaGFz IGJlZW4gcmVtb3ZlZC4KPisuXCJUaGUgZGV2aWNlIGNhbiBzdGlsbCBiZSBvcGVuZWQsIGJ1dCBh bGwgcmVhZHMgd2lsbCBmYWlsLgo+Ky5cIlRoaXMgaXMgdXN1YWxseSBoYXJtbGVzcywgYnV0IHdp bGwgc2VuZAo+Ky5cIi5ObQo+Ky5cImludG8gYW4gaW5maW5pdGUgbG9vcC4KPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suYwlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLmMJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTg2LDcgKzg2LDcg QEAgc2F2ZV93b3JrbGlzdCh2b2lkKQo+IAkJaWYgKGZpbGUgPT0gTlVMTCkKPiAJCQllcnIoMSwg IkVycm9yIG9wZW5pbmcgZmlsZSAlcyIsIHd3b3JrbGlzdCk7Cj4gCj4tCQlUQUlMUV9GT1JFQUNI KGxscCwgJmx1bXBzLCBsaXN0KSAKPisJCVRBSUxRX0ZPUkVBQ0gobGxwLCAmbHVtcHMsIGxpc3Qp Cj4gCQkJZnByaW50ZihmaWxlLCAiJWpkICVqZCAlZFxuIiwKPiAJCQkgICAgKGludG1heF90KWxs cC0+c3RhcnQsIChpbnRtYXhfdClsbHAtPmxlbiwKPiAJCQkgICAgbGxwLT5zdGF0ZSk7Cj5AQCAt MTM0LDggKzEzNCw4IEBAIHJlYWRfd29ya2xpc3Qob2ZmX3QgdCkKPiBzdGF0aWMgdm9pZAo+IHVz YWdlKHZvaWQpCj4gewo+LQkodm9pZClmcHJpbnRmKHN0ZGVyciwKPi0gICAgInVzYWdlOiByZWNv dmVyZGlzayBbLXIgd29ya2xpc3RdIFstdyB3b3JrbGlzdF0gc291cmNlLWRyaXZlIFtkZXN0aW5h dGlvbl1cbiIpOwo+Kwkodm9pZClmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiByZWNvdmVyZGlzayBb LWIgYmlnc2l6ZV0gWy1yIHJlYWRsaXN0XSAiCj4rCSAgICAiWy1zIGludGVydmFsXSBbLXcgd3Jp dGVsaXN0XSBzb3VyY2UgW2Rlc3RpbmF0aW9uXVxuIik7Cj4gCWV4aXQoMSk7Cj4gfQo+IAo+QEAg LTE1Myw3ICsxNTMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdKQo+IAlp bnQgZmRyLCBmZHc7Cj4gCW9mZl90IHQsIGQsIHN0YXJ0LCBsZW47Cj4gCXNpemVfdCBpLCBqOwo+ LQlpbnQgZXJyb3IsIGZsYWdzLCBzdGF0ZTsKPisJaW50IGVycm9yLCBzdGF0ZTsKPiAJdV9jaGFy ICpidWY7Cj4gCXVfaW50IHNlY3RvcnNpemU7Cj4gCXRpbWVfdCB0MSwgdDI7Cj5AQCAtMTk2LDcg KzE5Niw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10pCj4gCWVycm9yID0g ZnN0YXQoZmRyLCAmc2IpOwo+IAlpZiAoZXJyb3IgPCAwKQo+IAkJZXJyKDEsICJmc3RhdCBmYWls ZWQiKTsKPi0JZmxhZ3MgPSBPX1dST05MWTsKPiAJaWYgKFNfSVNCTEsoc2Iuc3RfbW9kZSkgfHwg U19JU0NIUihzYi5zdF9tb2RlKSkgewo+IAkJZXJyb3IgPSBpb2N0bChmZHIsIERJT0NHU0VDVE9S U0laRSwgJnNlY3RvcnNpemUpOwo+IAkJaWYgKGVycm9yIDwgMCkKPkBAIC0yMTAsNyArMjA5LDYg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSkKPiAJCQllcnIoMSwgIkRJT0NH TUVESUFTSVpFIGZhaWxlZCIpOwo+IAl9IGVsc2Ugewo+IAkJdCA9IHNiLnN0X3NpemU7Cj4tCQlm bGFncyB8PSBPX0NSRUFUIHwgT19UUlVOQzsKPiAJfQo+IAo+IAlpZiAoYmlnc2l6ZSA8IG1pbnNp emUpCj5AQCAtMjI5LDkgKzIyNywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJn dltdKQo+IAkJZXJyKDEsICJDYW5ub3QgYWxsb2NhdGUgJXp1IGJ5dGVzIGJ1ZmZlciIsIGJpZ3Np emUpOwo+IAo+IAlpZiAoYXJnYyA+IDEpIHsKPi0JCWZkdyA9IG9wZW4oYXJndlsxXSwgZmxhZ3Ms IERFRkZJTEVNT0RFKTsKPisJCWZkdyA9IG9wZW4oYXJndlsxXSwgT19XUk9OTFkgfCBPX0NSRUFU LCBERUZGSUxFTU9ERSk7Cj4gCQlpZiAoZmR3IDwgMCkKPiAJCQllcnIoMSwgIkNhbm5vdCBvcGVu IHdyaXRlIGRlc2NyaXB0b3IgJXMiLCBhcmd2WzFdKTsKPisJCWlmIChmdHJ1bmNhdGUoZmR3LCB0 KSA8IDApCj4rCQkJZXJyKDEsICJDYW5ub3QgdHJ1bmNhdGUgb3V0cHV0ICVzIHRvICVqZCBieXRl cyIsCj4rCQkJICAgIGFyZ3ZbMV0sIChpbnRtYXhfdCl0KTsKPiAJfSBlbHNlCj4gCQlmZHcgPSAt MTsKPiAKPkBAIC0yOTIsNiArMjkzLDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBh cmd2W10pCj4gCQkJfQo+IAkJCXByaW50ZigiXG4lamQgJXp1IGZhaWxlZCAoJXMpXG4iLAo+IAkJ CSAgICBscC0+c3RhcnQsIGksIHN0cmVycm9yKGVycm5vKSk7Cj4rCQkJaWYgKGVycm5vID09IEVJ TlZBTCkgewo+KwkJCQlwcmludGYoInJlYWQoKSBzaXplIHRvbyBiaWc/IFRyeSB3aXRoIC1iIDEz MTA3MiIpOwo+KwkJCQlhYm9ydGluZyA9IDE7Cj4rCQkJfQo+IAkJCWlmIChlcnJubyA9PSBFTlhJ TykKPiAJCQkJYWJvcnRpbmcgPSAxOwo+IAkJCW5ld19sdW1wKGxwLT5zdGFydCwgaSwgbHAtPnN0 YXRlICsgMSk7Cj4KPgo+QXV0aG9yOiBicnVlZmZlcgo+RGF0ZTogU3VuIE1heSAgMSAyMDo0Njoz NyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMwNQo+Cj5Mb2c6Cj4gIE1pbm9yIGNsZWFudXAuCj4KPk1vZGlm aWVkOgo+ICBoZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAo+Cj5Nb2RpZmllZDogaGVhZC9zaGFy ZS9tYW4vbWFuNC92eGdlLjQKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc2hhcmUv bWFuL21hbjQvdnhnZS40CVN1biBNYXkgIDEgMjA6MTQ6MTAgMjAxMQkocjIyMTMwNCkKPisrKyBo ZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEz MDUpCj5AQCAtNDksMTMgKzQ5LDEyIEBAIFRoZQo+IC5ObQo+IGRyaXZlciBwcm92aWRlcyBzdXBw b3J0IGZvciBOZXRlcmlvbiBYMzEwMCBhZGFwdGVycy4KPiBUaGUgZHJpdmVyIHN1cHBvcnRzIFRD UCBTZWdtZW50YXRpb24gT2ZmbG9hZCAoVFNPL0xTTyksIAo+LUxhcmdlIFJlY2VpdmUgT2ZmbGFv ZCAoTFJPKSwgSnVtYm8gRnJhbWVzLCBSZWNlaXZlIFRyYWZmaWMgSGFzaCAoUlRIKSwKPitMYXJn ZSBSZWNlaXZlIE9mZmxvYWQgKExSTyksIEp1bWJvIEZyYW1lcywgUmVjZWl2ZSBUcmFmZmljIEhh c2ggKFJUSCksCj4gVkxBTiwgUHJvbWlzY3VvdXMgbW9kZSBhbmQgTXVsdGkgZnVuY3Rpb24gbW9k ZS4KPiAuUHAKPi0KPiBUaGUKPiAuTm0KPi1kcml2ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGZ1bmN0 aW9uIG1vZGVzOgo+K2RyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG1vZGVz Ogo+IC5CZCAtcmFnZ2VkIC1vZmZzZXQgaW5kZW50Cj4gLkNkICJTRjFfVlAxNyAtIDEgZnVuY3Rp b24gd2l0aCAxNyBWUEFUSHMiCj4gLkVkCj4KPgo+QXV0aG9yOiBybWFja2xlbQo+RGF0ZTogU3Vu IE1heSAgMSAyMjoxOTo1MiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNgo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNgo+Cj5Mb2c6Cj4gIEFkZCB0aGUg a2VybmVsIHN1cHBvcnQgbmVlZGVkIHRvIHplcm8gb3V0IHRoZSBuZnNzdGF0cwo+ICBzdHJ1Y3R1 cmUgZm9yIHRoZSBuZXcgTkZTIHN1YnN5c3RlbS4gVGhpcyB3aWxsIGJlIHVzZWQKPiAgYnkgbmZz c3RhdHMuYyB0byBpbXBsZW1lbnQgdGhlICIteiIgb3B0aW9uLgo+ICAKPiAgTUZDIGFmdGVyOgky IHdlZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3N5cy9mcy9uZnMvbmZzX2NvbW1vbnBvcnQuYwo+ ICBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2ZzL25mcy9uZnNf Y29tbW9ucG9ydC5jCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3N5cy9mcy9uZnMv bmZzX2NvbW1vbnBvcnQuYwlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEzMDUpCj4rKysg aGVhZC9zeXMvZnMvbmZzL25mc19jb21tb25wb3J0LmMJU3VuIE1heSAgMSAyMjoxOTo1MiAyMDEx CShyMjIxMzA2KQo+QEAgLTQwNCw2ICs0MDQsOCBAQCBuZnNzdmNfY2FsbChzdHJ1Y3QgdGhyZWFk ICpwLCBzdHJ1Y3QgbmZzCj4gCX0gZWxzZSBpZiAodWFwLT5mbGFnICYgTkZTU1ZDX0dFVFNUQVRT KSB7Cj4gCQllcnJvciA9IGNvcHlvdXQoJm5ld25mc3N0YXRzLAo+IAkJICAgIENBU1RfVVNFUl9B RERSX1QodWFwLT5hcmdwKSwgc2l6ZW9mIChuZXduZnNzdGF0cykpOwo+KwkJaWYgKCh1YXAtPmZs YWcgJiBORlNTVkNfWkVST1NUQVRTKSAhPSAwICYmIGVycm9yID09IDApCj4rCQkJYnplcm8oJm5l d25mc3N0YXRzLCBzaXplb2YobmV3bmZzc3RhdHMpKTsKPiAJCXJldHVybiAoZXJyb3IpOwo+IAl9 IGVsc2UgaWYgKHVhcC0+ZmxhZyAmIE5GU1NWQ19ORlNVU0VSRFBPUlQpIHsKPiAJCXVfc2hvcnQg c29ja3BvcnQ7Cj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL25mcy9uZnNzdmMuaAlTdW4gTWF5ICAxIDIwOjQ2OjM3 IDIwMTEJKHIyMjEzMDUpCj4rKysgaGVhZC9zeXMvbmZzL25mc3N2Yy5oCVN1biBNYXkgIDEgMjI6 MTk6NTIgMjAxMQkocjIyMTMwNikKPkBAIC02NCw1ICs2NCw2IEBACj4gI2RlZmluZQlORlNTVkNf Q0JBRERTT0NLCTB4MDAyMDAwMDAKPiAjZGVmaW5lCU5GU1NWQ19HRVRTVEFUUwkJMHgwMDQwMDAw MAo+ICNkZWZpbmUJTkZTU1ZDX0JBQ0tVUFNUQUJMRQkweDAwODAwMDAwCj4rI2RlZmluZQlORlNT VkNfWkVST1NUQVRTCTB4MDEwMDAwMDAJLyogbW9kaWZpZXIgZm9yIEdFVFNUQVRTICovCj4gCj4g I2VuZGlmIC8qIF9ORlNfTkZTU1ZDX0ggKi8KPgo+Cj5BdXRob3I6IGFkcmlhbgo+RGF0ZTogU3Vu IE1heSAgMSAyMzozMjozNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNwo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNwo+Cj5Mb2c6Cj4gIFNvbWUgQVI3 MjR4IFBDSWUgZml4ZXMsIHdoaWNoIHNob3VsZCB3cmFwIHVwIHRoZSBmaXJzdCByb3VuZAo+ICBv ZiBlbmRpYW4tbmVzcyBpc3N1ZXMgd2l0aCB0aGUgQVI3MjR4Lgo+ICAKPiAgRnJvbSBMdWl6Ogo+ ICAKPiAgKiBGaXggdGhlIGJ1cyBzcGFjZSB0YWcgdXNlZCBzbyBlbmRpYW4tbmVzcyBpcyBjb3Jy ZWN0bHkgaGFuZGxlZDsKPiAgKiBPbmx5IGRvIHRoZSB3b3JrYXJvdW5kIGZvciB0aGUgQVI3MjQw OyBBUjcyNDEvQVI3MjQyIChQQjkyKQo+ICAgIGRvbid0IHJlcXVpcmUgdGhpcwo+ICAKPiAgRnJv bSBtZToKPiAgCj4gICogQWRkIGEgcmVhZCBmbHVzaCBmcm9tIG9wZW53cnQKPiAgCj4gIFN1Ym1p dHRlZCBieToJTHVpeiBPdGF2aW8gTyBTb3V6YQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvbWlw cy9hdGhlcm9zL2FyNzI0eF9wY2kuYwo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvbWlwcy9hdGhlcm9z L2FyNzI0eF9wY2kuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9h dGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIyOjE5OjUyIDIwMTEJKHIyMjEzMDYpCj4r KysgaGVhZC9zeXMvbWlwcy9hdGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIzOjMyOjM3 IDIwMTEJKHIyMjEzMDcpCj5AQCAtNTcsOCArNTcsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7 Cj4gI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaD4KPiAjaW5jbHVkZSA8bWlwcy9h dGhlcm9zL2FyNzI0eHJlZy5oPgo+ICNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3NldHVw Lmg+Cj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfcGNpX2J1c19zcGFjZS5oPgkJLyog WFhYICovCj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfYnVzX3NwYWNlX3JldmVyc2Vk Lmg+CS8qIFhYWCAqLwo+KyNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3BjaV9idXNfc3Bh Y2UuaD4KPiAKPiAjaW5jbHVkZSA8bWlwcy9hdGhlcm9zL2FyNzF4eF9jcHVkZWYuaD4KPiAKPkBA IC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIHVpbnQzMl90Cj4gYXI3MjR4X3BjaV9yZWFkX2NvbmZp ZyhkZXZpY2VfdCBkZXYsIHVfaW50IGJ1cywgdV9pbnQgc2xvdCwgdV9pbnQgZnVuYywgCj4gICAg IHVfaW50IHJlZywgaW50IGJ5dGVzKQo+IHsKPi0JdWludDMyX3QgY21kLCBkYXRhLCBzaGlmdCwg bWFzazsKPisJdWludDMyX3QgZGF0YSwgc2hpZnQsIG1hc2s7Cj4gCj4gCS8qIFJlZ2lzdGVyIGFj Y2VzcyBpcyAzMi1iaXQgYWxpZ25lZCAqLwo+IAlzaGlmdCA9IChyZWcgJiAzKSAqIDg7Cj5AQCAt MTI1LDE4ICsxMjQsOSBAQCBhcjcyNHhfcGNpX3JlYWRfY29uZmlnKGRldmljZV90IGRldiwgdV9p Cj4gCWRwcmludGYoIiVzOiB0YWcgKCV4LCAleCwgJXgpIHJlZyAlZCglZClcbiIsIF9fZnVuY19f LCBidXMsIHNsb3QsCj4gCSAgICBmdW5jLCByZWcsIGJ5dGVzKTsKPiAKPi0JaWYgKChidXMgPT0g MCkgJiYgKHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpIHsKPisJaWYgKChidXMgPT0gMCkgJiYg KHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpCj4gCQlkYXRhID0gQVRIX1JFQURfUkVHKEFSNzI0 WF9QQ0lfQ0ZHX0JBU0UgKyAocmVnICYgfjMpKTsKPi0JCS8qCj4tCQkgKiBXQVIgZm9yIEJBUiBp c3N1ZSAtIFdlIGFyZSB1bmFibGUgdG8gYWNjZXNzIHRoZSBQQ0kgZGV2aWNlCj4tCQkgKiBzcGFj ZSBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNlIGFkZHJlc3MuCj4tCQkgKi8KPi0J CWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0ZXMgPT0gNCkgewo+LQkJCWNtZCA9IChhcjcx eHhfc29jID09IEFSNzFYWF9TT0NfQVI3MjQwKSA/Cj4tCQkJICAgIDB4ZmZmZiA6IDB4MTAwMGZm ZmY7Cj4tCQkJYXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGNtZCwg Ynl0ZXMpOwo+LQkJfQo+LQl9IGVsc2UKPisJZWxzZQo+IAkJZGF0YSA9IC0xOwo+IAo+IAkvKiBH ZXQgcmVxdWVzdCBieXRlcyBmcm9tIDMyLWJpdCB3b3JkICovCj5AQCAtMTU4LDE0ICsxNDgsMTQg QEAgYXI3MjR4X3BjaV93cml0ZV9jb25maWcoZGV2aWNlX3QgZGV2LCB1Xwo+IAlpZiAoKGJ1cyAh PSAwKSB8fCAoc2xvdCAhPSAwKSB8fCAoZnVuYyAhPSAwKSkKPiAJCXJldHVybjsKPiAKPi0JYXI3 MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsKPiAJ LyoKPi0JICogV0FSIGZvciBCQVIgaXNzdWUgLSBXZSBhcmUgdW5hYmxlIHRvIGFjY2VzcyB0aGUg UENJIGRldmljZSBzcGFjZQo+LQkgKiBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNl IGFkZHJlc3MuCj4tCSAqIEZvcmNlIGEgZmx1c2ggaGVyZSAoYXQgcmVnaXN0ZXIgd3JpdGluZyku Cj4rCSAqIFdBUiBmb3IgQkFSIGlzc3VlIG9uIEFSNzI0MCAtIFdlIGFyZSB1bmFibGUgdG8gYWNj ZXNzIHRoZSBQQ0kgZGV2aWNlCj4rCSAqIHNwYWNlIGlmIHdlIHNldCB0aGUgQkFSIHdpdGggcHJv cGVyIGJhc2UgYWRkcmVzcy4KPiAJICovCj4tCWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0 ZXMgPT0gNCkKPi0JCSh2b2lkKWFyNzI0eF9wY2lfcmVhZF9jb25maWcoZGV2LCBidXMsIHNsb3Qs IGZ1bmMsIHJlZywgYnl0ZXMpOwo+KwlpZiAocmVnID09IFBDSVJfQkFSKDApICYmIGJ5dGVzID09 IDQgJiYgYXI3MXh4X3NvYyA9PSBBUjcxWFhfU09DX0FSNzI0MCkKPisJCWFyNzI0eF9wY2lfd3Jp dGUoQVI3MjRYX1BDSV9DRkdfQkFTRSwgcmVnLCAweGZmZmYsIGJ5dGVzKTsKPisJZWxzZQo+KwkJ YXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsK PiB9Cj4gCj4gc3RhdGljIHZvaWQgCj5AQCAtMjMyLDYgKzIyMiw5IEBAIGFyNzI0eF9wY2lfc2V0 dXAoZGV2aWNlX3QgZGV2KQo+IAllbHNlCj4gCQlyZWcgPSAweDFmZmMxOwo+IAlBVEhfV1JJVEVf UkVHKEFSNzI0WF9QQ0lfQVBQLCByZWcpOwo+KwkvKiBGbHVzaCB3cml0ZSAqLwo+Kwkodm9pZCkg QVRIX1JFQURfUkVHKEFSNzI0WF9QQ0lfQVBQKTsKPisKPiAJREVMQVkoMTAwMCk7Cj4gCj4gCXJl ZyA9IEFUSF9SRUFEX1JFRyhBUjcyNFhfUENJX1JFU0VUKTsKPkBAIC00NTcsMTAgKzQ1MCw3IEBA IGFyNzI0eF9wY2lfYWN0aXZhdGVfcmVzb3VyY2UoZGV2aWNlX3QgYnUKPiAJCWNhc2UgU1lTX1JF U19NRU1PUlk6Cj4gCQljYXNlIFNZU19SRVNfSU9QT1JUOgo+IAo+LQkJCS8qIFhYWCAqLwo+LQkJ CS8vcm1hbl9zZXRfYnVzdGFnKHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPi0JCQkvL3Jt YW5fc2V0X2J1c3RhZyhyLCBtaXBzX2J1c19zcGFjZV9nZW5lcmljKTsKPi0JCQlybWFuX3NldF9i dXN0YWcociwgYXI3MXh4X2J1c19zcGFjZV9yZXZlcnNlZCk7Cj4rCQkJcm1hbl9zZXRfYnVzdGFn KHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPiAJCQlicmVhazsKPiAJCX0KPiAJfQo+Cj4K PkF1dGhvcjogcm1hY2tsZW0KPkRhdGU6IFN1biBNYXkgIDEgMjM6NDE6MzUgMjAxMQo+TmV3IFJl dmlzaW9uOiAyMjEzMDgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFz ZS8yMjEzMDgKPgo+TG9nOgo+ICBGaXggbmZzc3RhdCBzbyB0aGF0IHRoZSAiLXoiIG9wdGlvbiB3 b3JrcyBmb3IgdGhlCj4gIG5ldyBORlMgc3Vic3lzdGVtLgo+ICAKPiAgTUZDIGFmdGVyOgkyIHdl ZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMKPgo+TW9k aWZpZWQ6IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuYwo+PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Cj4tLS0gaGVhZC91c3IuYmluL25mc3N0YXQvbmZzc3RhdC5jCVN1biBNYXkgIDEgMjM6MzI6 MzcgMjAxMQkocjIyMTMwNykKPisrKyBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMJU3Vu IE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+QEAgLTg1LDYgKzg1LDcgQEAgc3RhdGlj IGludCB6ZmxhZyA9IDA7Cj4gc3RhdGljIGludCBydW5fdjQgPSAwOwo+IHN0YXRpYyBpbnQgcHJp bnR0aXRsZSA9IDE7Cj4gc3RhdGljIHN0cnVjdCBleHRfbmZzc3RhdHMgZXh0X25mc3N0YXRzOwo+ K3N0YXRpYyBpbnQgbmZzc3ZjX2ZsYWc7Cj4gCj4gdm9pZCBpbnRwcihpbnQsIGludCk7Cj4gdm9p ZCBwcmludGhkcihpbnQsIGludCk7Cj5AQCAtMTA3LDYgKzEwOCw3IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQo+IAljaGFyICptZW1mLCAqbmxpc3RmOwo+IAljaGFyIGVycmJ1ZltfUE9T SVgyX0xJTkVfTUFYXTsKPiAKPisJbmZzc3ZjX2ZsYWcgPSBORlNTVkNfR0VUU1RBVFM7Cj4gCWlu dGVydmFsID0gMDsKPiAJbWVtZiA9IG5saXN0ZiA9IE5VTEw7Cj4gCXdoaWxlICgoY2ggPSBnZXRv cHQoYXJnYywgYXJndiwgImNlc1dNOk46dzp6IikpICE9IC0xKQo+QEAgLTEzNSw2ICsxMzcsNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAJCQlicmVhazsKPiAJCWNhc2UgJ3onOgo+ IAkJCXpmbGFnID0gMTsKPisJCQluZnNzdmNfZmxhZyB8PSBORlNTVkNfWkVST1NUQVRTOwo+IAkJ CWJyZWFrOwo+IAkJY2FzZSAnZSc6Cj4gCQkJcnVuX3Y0ID0gMTsKPkBAIC0xNjEsNyArMTY0LDcg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gCQllcnJ4KDEsICJleHBlcmltZW50YWwg Y2xpZW50L3NlcnZlciBub3QgbG9hZGVkIik7Cj4gCj4gCWlmIChydW5fdjQgIT0gMCkgewo+LQkJ aWYgKG5mc3N2YyhORlNTVkNfR0VUU1RBVFMsICZleHRfbmZzc3RhdHMpIDwgMCkKPisJCWlmIChu ZnNzdmMobmZzc3ZjX2ZsYWcsICZleHRfbmZzc3RhdHMpIDwgMCkKPiAJCQllcnIoMSwgIkNhbid0 IGdldCBzdGF0cyIpOwo+IAl9IGVsc2UgaWYgKG5saXN0ZiAhPSBOVUxMIHx8IG1lbWYgIT0gTlVM TCkgewo+IAkJZGVhZGtlcm5lbCA9IDE7Cj5AQCAtNzkzLDEzICs3OTYsMTMgQEAgZXhwX3NpZGV3 YXlzaW50cHIodV9pbnQgaW50ZXJ2YWwsIGludCBjbAo+IAlpbnQgaGRyY250ID0gMTsKPiAKPiAJ ZXh0X25mc3N0YXRzcCA9ICZsYXN0c3Q7Cj4tCWlmIChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBl eHRfbmZzc3RhdHNwKSA8IDApCj4rCWlmIChuZnNzdmMobmZzc3ZjX2ZsYWcsIGV4dF9uZnNzdGF0 c3ApIDwgMCkKPiAJCWVycigxLCAiQ2FuJ3QgZ2V0IHN0YXRzIik7Cj4gCXNsZWVwKGludGVydmFs KTsKPiAKPiAJZm9yICg7Oykgewo+IAkJZXh0X25mc3N0YXRzcCA9ICZuZnNzdGF0czsKPi0JCWlm IChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBleHRfbmZzc3RhdHNwKSA8IDApCj4rCQlpZiAobmZz c3ZjKG5mc3N2Y19mbGFnLCBleHRfbmZzc3RhdHNwKSA8IDApCj4gCQkJZXJyKDEsICJDYW4ndCBn ZXQgc3RhdHMiKTsKPiAKPiAJCWlmICgtLWhkcmNudCA9PSAwKSB7Cj4KPgo+QXV0aG9yOiBybWFj a2xlbQo+RGF0ZTogU3VuIE1heSAgMSAyMzo1NTo1NiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMw OQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwOQo+Cj5M b2c6Cj4gIEZpeCBuZnNzdGF0LjEgdG8gaW5kaWNhdGUgdGhhdCAiLXoiIG5vdyB3b3JrcyBmb3IK PiAgdGhlIG5ldyBORlMgc3Vic3lzdGVtcyBhZnRlciByMjIxMzA4Lgo+ICBUaGlzIGlzIGEgY29u dGVudCBjaGFuZ2UuCj4gIAo+ICBNRkMgYWZ0ZXI6CTIgd2Vla3MKPgo+TW9kaWZpZWQ6Cj4gIGhl YWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQo+Cj5Nb2RpZmllZDogaGVhZC91c3IuYmluL25m c3N0YXQvbmZzc3RhdC4xCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3Vzci5iaW4v bmZzc3RhdC9uZnNzdGF0LjEJU3VuIE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+Kysr IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQlTdW4gTWF5ICAxIDIzOjU1OjU2IDIwMTEJ KHIyMjEzMDkpCj5AQCAtMjgsNyArMjgsNyBAQAo+IC5cIiAgICAgRnJvbTogQCgjKW5mc3N0YXQu MQk4LjEgKEJlcmtlbGV5KSA2LzYvOTMKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE9jdG9i ZXIgMTgsIDIwMDcKPisuRGQgTWF5IDEsIDIwMTEKPiAuRHQgTkZTU1RBVCAxCj4gLk9zCj4gLlNo IE5BTUUKPkBAIC03OCw3ICs3OCw2IEBAIGFjdGl2aXR5IGZvciBib3RoIHRoZSBjbGllbnQgYW5k IHNlcnZlciAKPiBzZWNvbmQgaW50ZXJ2YWxzLgo+IC5JdCBGbCB6Cj4gUmVzZXQgc3RhdGlzdGlj cyBhZnRlciBkaXNwbGF5aW5nIHRoZW0uCj4tKE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRo ZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbS4pCj4gLkl0IEZsIGUKPiBHYXRoZXIgc3RhdGlz dGljcyBmcm9tIHRoZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbSB0aGF0IGluY2x1ZGVzCj4g c3VwcG9ydCBmb3IgTkZTdjQgaW5zdGVhZCBvZiB0aGUgcmVndWxhciBuZnMgc3Vic3lzdGVtLgo+ Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDA1OjM5OjQzIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzEyCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzEyCj4KPkxvZzoKPiAgQWRkIGRvY3VtZW50YXRpb24gdG8gc3lzL2NvbmYvb3B0aW9u cyBwb2ludGluZyBvdXQgdGhhdCBBSF9TVVBQT1JUX0FSOTEzMAo+ICBzaG91bGRuJ3QgYmUgZW5h YmxlZCBieSBkZWZhdWx0IHVubGVzcyB5b3UncmUgdHJ1ZWx5IGJ1aWxkaW5nIGZvciB0aGUKPiAg QVI5MTN4IHBsYXRmb3JtLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9vcHRpb25zCj4K Pk1vZGlmaWVkOiBoZWFkL3N5cy9jb25mL29wdGlvbnMKPj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ LS0tIGhlYWQvc3lzL2NvbmYvb3B0aW9ucwlNb24gTWF5ICAyIDAxOjAxOjAzIDIwMTEJKHIyMjEz MTEpCj4rKysgaGVhZC9zeXMvY29uZi9vcHRpb25zCU1vbiBNYXkgIDIgMDU6Mzk6NDMgMjAxMQko cjIyMTMxMikKPkBAIC03NzUsNiArNzc1LDggQEAgQVRIX0VOQUJMRV8xMU4JCW9wdF9haC5oCj4g Cj4gIyBvcHRpb25zIGZvciB0aGUgQXRoZXJvcyBoYWwKPiBBSF9TVVBQT1JUX0FSNTQxNglvcHRf YWguaAo+KyMgWFhYIEZvciBub3csIHRoaXMgYnJlYWtzIG5vbi1BUjkxMzAgY2hpcHNldHMsIHNv IG9ubHkgdXNlIGl0Cj4rIyBYWFggd2hlbiBhY3R1YWxseSB0YXJnZXR0aW5nIEFSOTEzMC4KPiBB SF9TVVBQT1JUX0FSOTEzMAlvcHRfYWguaAo+IAo+IEFIX0RFQlVHCQlvcHRfYWguaAo+QEAgLTc5 MSw2ICs3OTMsNyBAQCBBSF9NQVhDSEFOCQlvcHRfYWguaAo+IEFIX1JYQ0ZHX1NETUFNV180QllU RVMJb3B0X2FoLmgKPiAKPiAjIEFSNTQxNiBhbmQgbGF0ZXIgaW50ZXJydXB0IG1pdGlnYXRpb24K PisjIFhYWCBkbyBub3QgdXNlIHRoaXMgZm9yIEFSOTEzMAo+IEFIX0FSNTQxNl9JTlRFUlJVUFRf TUlUSUdBVElPTglvcHRfYWguaAo+IAo+ICMgb3B0aW9ucyBmb3IgdGhlIEJyb2FkY29tIEJDTTQz eHggZHJpdmVyIChid2kpCj4KPgo+T24gMiBNYXkgMjAxMSAwMzo1NCwgQmVybmhhcmQgU2NobWlk dCA8YnNjaG1pZHRAZnJlZWJzZC5vcmc+IHdyb3RlOgo+Cj4+PiBJJ20gbm90IHN1cmUgdGhhdCdz IGludHJpbnNpY2FsbHkgdHJ1ZS4gRXZlbiBpZiB0aGV5IG1vc3RseSBvbmx5IHNoaXAKPj4+IHdp dGggSW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3 aGljaCBjb3VsZCBiZQo+Pj4gcHV0IGludG8gbm9uLXg4NiBzeXN0ZW1zLgo+Pgo+PiBZZXMsIGlu ZGVlZC4gVGhvc2UgbWlnaHQgb2YgY291cnNlIGJlIHVzZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRv bwo+PiAod2VsbCBhdCBsZWFzdCBpdCBmaXRzIGludG8gdGhlIHNsb3QsIEkga25vdyB0aGF0IGNl cnRhaW4gZmVhdHVyZXMKPj4gYXJlIG5vdCBldmVuIGF2YWlsYWJsZSBvbiBBTUQgcGxhdGZvcm1z KS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPj4gYW55b25lIGV2ZXIgdHJpZWQgb25lIG9mIGl0 IG9uIG1pcHMgZm9yIGV4YW1wbGUuCj4+Cj4+IEkgZG9uJ3QgbWluZCBiZWluZyBwcm92ZW4gd3Jv bmcgYW5kIGlmIHNvIG1vdmUgdGhlIGVudHJpZXMgYmFjayB0bwo+PiBhIG1vcmUgZ2VuZXJpYyBs b2NhdGlvbi4gQ3VycmVudGx5IEknbSBqdXN0IHRyeWluZyBtaW1pYyB0aGUgbW9kdWxlCj4+IGJl aGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+SSdtIGxpa2VseSB0byB0cnkgdGhl IGludGVsIG1pbmktcGNpZSBzdHVmZiBvbiB0aGUgYXRoZXJvcyBQQjkyIHJlZgo+Ym9hcmQgKEFS NzI0MiBNSVBTKS4gSnVzdCBub3QgeWV0Lgo+Cj5JJ2xsIGxldCB5b3Uga25vdyBob3cgaXQgZ29l cyB3aGVuIGkndmUgZG9uZSBpdC4KPgo+Cj4KPkFkaXJhbgo+Cj4KPkF1dGhvcjogbWF4aW0KPkRh dGU6IE1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMTkKPlVSTDog aHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMTkKPgo+TG9nOgo+ICBv IE9wZW5CU0QgNC45IGFkZGVkLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zaGFyZS9taXNjL2JzZC1m YW1pbHktdHJlZQo+Cj5Nb2RpZmllZDogaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJlZQo+ PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJl ZQlNb24gTWF5ICAyIDA4OjMzOjIwIDIwMTEJKHIyMjEzMTgpCj4rKysgaGVhZC9zaGFyZS9taXNj L2JzZC1mYW1pbHktdHJlZQlNb24gTWF5ICAyIDA5OjQ3OjEzIDIwMTEJKHIyMjEzMTkpCj5AQCAt MjQ2LDcgKzI0Niw3IEBAIEZyZWVCU0QgNS4yICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAK PiAgfCAgICAgfCAgICAgICAgfCAgICAgfCAgICAgIHwgTmV0QlNEIDUuMSAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwKPiAgfCAgRnJlZUJTRCAgRnJlZUJTRCAgfCAgICAgIHwgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgfCAgICA4LjIgICAgICA3LjQg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBEcmFnb25GbHkgMi4x MC4xCj4tIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICB8Cj4rIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgICAgIE9wZW5CU0QgNC45ICAgICAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gRnJlZUJTRCA5IC1jdXJyZW50ICAgIHwgIE5ldEJTRCAtY3VycmVudCAgT3BlbkJTRCAtY3Vy cmVudCAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICB8ICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8Cj5AQCAtNTMzLDYgKzUzMyw3IEBA IE5ldEJTRCA1LjEJCTIwMTAtMTEtMTkgW05CRF0KPiBGcmVlQlNEIDcuNAkJMjAxMS0wMi0yNCBb RkJEXQo+IEZyZWVCU0QgOC4yCQkyMDExLTAyLTI0IFtGQkRdCj4gRHJhZ29uRmx5IDIuMTAuMQky MDExLTA0LTI2IFtERkJdCj4rT3BlbkJTRCA0LjkJCTIwMTEtMDUtMDEgW09CRF0KPiAKPiBCaWJs aW9ncmFwaHkKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+Cj5BdXRob3I6IGJydWNlYwo+ RGF0ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMyMAo+VVJM OiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMyMAo+Cj5Mb2c6Cj4g IEFkZCAtV21pc3NpbmctaW5jbHVkZS1kaXJzIHRvIENXQVJORkxBR1MsIHNvIHRpbmRlcmJveCB3 aWxsIHB1bmlzaCB0aG9zZQo+ICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNvZGUgd2l0aCBi cm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPiAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVz Lgo+ICBJbXByb3ZlIGEgY291cGxlIG9mIGNvbW1lbnRzLgo+ICAtVyBpcyBub3cgZGVwcmVjYXRl ZCBhbmQgaXMgcmVmZXJyZWQgdG8gYXMgLVdleHRyYSAoc2VlIGdjYygxKSkuCj4gIAo+ICBTdWJt aXR0ZWQgYnk6CWFydW5kZWwKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYva2Vybi5tawo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy9jb25mL2tlcm4ubWsJTW9uIE1heSAgMiAwOTo0NzoxMyAyMDExCShyMjIx MzE5KQo+KysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj5AQCAtMywyNCArMywyNSBAQAo+ICMKPiAjIFdhcm5pbmcgZmxhZ3MgZm9yIGNv bXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4gIwo+LSMg Tm90ZSB0aGF0IHRoZSBuZXdseSBhZGRlZCAtV2Nhc3QtcXVhbCBpcyByZXNwb25zaWJsZSBmb3Ig Z2VuZXJhdGluZyAKPisjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMg cmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPiAjIG1vc3Qgb2YgdGhlIHJlbWFpbmluZyB3YXJu aW5ncy4gIFdhcm5pbmdzIGludHJvZHVjZWQgd2l0aCAtV2FsbCB3aWxsCj4gIyBhbHNvIHBvcCB1 cCwgYnV0IGFyZSBlYXNpZXIgdG8gZml4Lgo+IENXQVJORkxBR1M/PQktV2FsbCAtV3JlZHVuZGFu dC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3RvdHlwZXMgXAo+IAkJLVdtaXNz aW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XaW5saW5lIC1XY2FzdC1xdWFsIFwKPi0J CS1XdW5kZWYgLVduby1wb2ludGVyLXNpZ24gLWZmb3JtYXQtZXh0ZW5zaW9ucwo+KwkJLVd1bmRl ZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRlbnNpb25zIFwKPisJCS1XbWlzc2luZy1p bmNsdWRlLWRpcnMKPiAjCj4gIyBUaGUgZm9sbG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3 b3JraW5nIG9uOgo+LSMJLVcKPisjCS1XZXh0cmEKPiAKPiAjCj4tIyBPbiB0aGUgaTM4NiwgZG8g bm90IGFsaWduIHRoZSBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMuICBPdGhlcndpc2UgR0ND Cj4tIyAyLjk1IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkg ZnVuY3Rpb24gdG8gYWxpZ24gdGhlCj4rIyBPbiBpMzg2LCBkbyBub3QgYWxpZ24gdGhlIHN0YWNr IHRvIDE2LWJ5dGUgYm91bmRhcmllcy4gIE90aGVyd2lzZSBHQ0MgMi45NQo+KyMgYW5kIGFib3Zl IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24g dG8gYWxpZ24gdGhlCj4gIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0 aW5nIGFwcHJveGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPi0jIHBlciBmdW5jdGlvbiBjYWxs LiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBiZW5lZml0IG1pY3JvIGJlbmNobWFy a3MsIAo+KyMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGlsZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQg bWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywKPiAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJh bGwgbG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4gIyB1 c2Ugb2YgY29kZSBjYWNoZSB0YWcgbGluZXMpIGFuZCB1c2VzIG1vcmUgc3RhY2sgKGxlc3MgZWZm aWNpZW50IHVzZSBvZiBkYXRhCj4tIyBjYWNoZSB0YWcgbGluZXMpLiAgRXhwbGljaXRseSBwcm9o aWJpdCB0aGUgdXNlIG9mIFNTRSBhbmQgb3RoZXIgU0lNRAo+KyMgY2FjaGUgdGFnIGxpbmVzKS4g IEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lNRAo+ ICMgb3BlcmF0aW9ucyBpbnNpZGUgdGhlIGtlcm5lbCBpdHNlbGYuICBUaGVzZSBvcGVyYXRpb25z IGFyZSBleGNsdXNpdmVseQo+ICMgcmVzZXJ2ZWQgZm9yIHVzZXIgYXBwbGljYXRpb25zLgo+ICMK PkBAIC0zNSw2ICszNiw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPiAuaWYgJHtNQUNISU5FX0NQ VUFSQ0h9ID09ICJhcm0iCj4gSU5MSU5FX0xJTUlUPz0JODAwMAo+IC5lbmRpZgo+Kwo+ICMKPiAj IEZvciBJQS02NCwgd2UgdXNlIHIxMyBmb3IgdGhlIGtlcm5lbCBnbG9iYWxzIHBvaW50ZXIgYW5k IHdlIG9ubHkgdXNlCj4gIyBhIHZlcnkgc21hbGwgc3Vic2V0IG9mIGZsb2F0IHJlZ2lzdGVycyBm b3IgaW50ZWdlciBkaXZpZGVzLgo+QEAgLTk4LDcgKzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgw MDAKPiBDRkxBR1MrPQktZmZyZWVzdGFuZGluZwo+IAo+ICMKPi0jIEdDQyBTU1Agc3VwcG9ydC4K PisjIEdDQyBTU1Agc3VwcG9ydAo+ICMKPiAuaWYgJHtNS19TU1B9ICE9ICJubyIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJpYTY0IiAmJiBcCj4gICAgICR7TUFDSElORV9DUFVBUkNIfSAhPSAi YXJtIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gIm1pcHMiCj5AQCAtMTA2LDkgKzEwOCw4IEBA IENGTEFHUys9CS1mc3RhY2stcHJvdGVjdG9yCj4gLmVuZGlmCj4gCj4gIwo+LSMgRW5hYmxlIENU RiBjb252ZXJzYXRpb24gb24gcmVxdWVzdC4KPisjIEVuYWJsZSBDVEYgY29udmVyc2F0aW9uIG9u IHJlcXVlc3QKPiAjCj4gLmlmIGRlZmluZWQoV0lUSF9DVEYpCj4gLnVuZGVmIE5PX0NURgo+IC5l bmRpZgo+LQo+Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDEwOjQyOjE5IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzIxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzIxCj4KPkxvZzoKPiAgQWRkIGluIHRoZSB3b3JrLWFyb3VuZCBmb3Ig dGhlIEFSODMxNiBnaWdlIHN3aXRjaCBQSFkuCj4gIAo+ICBUaGlzIGFsbG93cyB0aGUgZXRoZXJu ZXQgdG8gZnVuY3Rpb24gb24gdGhlIFBCOTIgYm9hcmQuCj4gIAo+ICBTdWJtaXR0ZWQgYnk6CUx1 aXogT3RhdmlvIE8gU291emEKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9taXBzL2NvbmYvUEI5Mi5oaW50cwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9jb25mL1BCOTIuaGludHMJTW9uIE1h eSAgMiAxMDozNToyNyAyMDExCShyMjIxMzIwKQo+KysrIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCU1vbiBNYXkgIDIgMTA6NDI6MTkgMjAxMQkocjIyMTMyMSkKPkBAIC0zMCw3ICszMCwx MSBAQCBoaW50LmFyZ2UuMC5hdD0ibmV4dXMwIgo+IGhpbnQuYXJnZS4wLm1hZGRyPTB4MTkwMDAw MDAKPiBoaW50LmFyZ2UuMC5tc2l6ZT0weDEwMDAKPiBoaW50LmFyZ2UuMC5pcnE9Mgo+LWhpbnQu YXJnZS4wLnBoeW1hc2s9MHgxCj4rCj4rIyBBUjgzMTYgd29ya2Fyb3VuZCBmb3Igbm93Cj4raGlu dC5hcmdlLjAubWVkaWE9MTAwMAo+K2hpbnQuYXJnZS4wLmZkdXBsZXg9MQo+K2hpbnQuYXJnZS4w LnBoeW1hc2s9MHgzCj4gCj4gIyBHUElPCj4gaGludC5ncGlvLjAuYXQ9ImFwYjAiCj4KPgo+T24g TW9uIE1heSAgMiAxMSwgQnJ1Y2UgQ3JhbiB3cm90ZToKPj4gQXV0aG9yOiBicnVjZWMKPj4gRGF0 ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj4+IE5ldyBSZXZpc2lvbjogMjIxMzIwCj4+IFVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjAKPj4gCj4+IExv ZzoKPj4gICBBZGQgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyB0byBDV0FSTkZMQUdTLCBzbyB0aW5k ZXJib3ggd2lsbCBwdW5pc2ggdGhvc2UKPj4gICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNv ZGUgd2l0aCBicm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPgo+QnJ1Y2UgYWxyZWFkeSBjb21t aXR0ZWQgcjIyMDcxMiBpbiBvcmRlciB0byBtYWtlIHRoZSBjdXJyZW50IHRyZWUgd29yayB3aXRo Cj4tV21pc3NpbmctaW5jbHVkZS1kaXJzLiBTbyBob3BlZnVsbHkgdGluZGVyYm94IHdpbGwgbm90 IGNvbXBsYWluIGZvciBhbnkgQVJDSC4KPgo+UGxlYXNlIGFsc28gbm90ZSB0aGF0IGN1cnJlbnRs eSAtV21pc3NpbmctaW5jbHVkZS1kaXJzIGlzIGEgbm9vcCBpbiBjbGFuZy4gT25jZQo+aXQgZ2V0 cyBpbXBsZW1lbnRlZCB3ZSB3aWxsIGhvcGVmdWxseSBiZW5lZml0IGZyb20gaXQgdmlhIHRoZSB2 ZW5kb3IgaW1wb3J0Lgo+Cj5UaGFua3MgYWdhaW4gQnJ1Y2UgZm9yIHRha2luZyBjYXJlISA6KQo+ Cj4+ICAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVzLgo+PiAgIEltcHJvdmUgYSBjb3VwbGUg b2YgY29tbWVudHMuCj4+ICAgLVcgaXMgbm93IGRlcHJlY2F0ZWQgYW5kIGlzIHJlZmVycmVkIHRv IGFzIC1XZXh0cmEgKHNlZSBnY2MoMSkpLgo+PiAgIAo+PiAgIFN1Ym1pdHRlZCBieToJYXJ1bmRl bAo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+IAo+PiBNb2Rp ZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiAt LS0gaGVhZC9zeXMvY29uZi9rZXJuLm1rCU1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQkocjIyMTMx OSkKPj4gKysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj4+IEBAIC0zLDI0ICszLDI1IEBACj4+ICAjCj4+ICAjIFdhcm5pbmcgZmxhZ3Mg Zm9yIGNvbXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4+ ICAjCj4+IC0jIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMgcmVzcG9u c2libGUgZm9yIGdlbmVyYXRpbmcgCj4+ICsjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdj YXN0LXF1YWwgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPj4gICMgbW9zdCBvZiB0aGUg cmVtYWluaW5nIHdhcm5pbmdzLiAgV2FybmluZ3MgaW50cm9kdWNlZCB3aXRoIC1XYWxsIHdpbGwK Pj4gICMgYWxzbyBwb3AgdXAsIGJ1dCBhcmUgZWFzaWVyIHRvIGZpeC4KPj4gIENXQVJORkxBR1M/ PQktV2FsbCAtV3JlZHVuZGFudC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3Rv dHlwZXMgXAo+PiAgCQktV21pc3NpbmctcHJvdG90eXBlcyAtV3BvaW50ZXItYXJpdGggLVdpbmxp bmUgLVdjYXN0LXF1YWwgXAo+PiAtCQktV3VuZGVmIC1Xbm8tcG9pbnRlci1zaWduIC1mZm9ybWF0 LWV4dGVuc2lvbnMKPj4gKwkJLVd1bmRlZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRl bnNpb25zIFwKPj4gKwkJLVdtaXNzaW5nLWluY2x1ZGUtZGlycwo+PiAgIwo+PiAgIyBUaGUgZm9s bG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3b3JraW5nIG9uOgo+PiAtIwktVwo+PiArIwkt V2V4dHJhCj4+ICAKPj4gICMKPj4gLSMgT24gdGhlIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3Rh Y2sgdG8gMTYtYnl0ZSBib3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQwo+PiAtIyAyLjk1IGFkZHMg Y29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24gdG8gYWxp Z24gdGhlCj4+ICsjIE9uIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3RhY2sgdG8gMTYtYnl0ZSBi b3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQyAyLjk1Cj4+ICsjIGFuZCBhYm92ZSBhZGRzIGNvZGUg dG8gdGhlIGVudHJ5IGFuZCBleGl0IHBvaW50IG9mIGV2ZXJ5IGZ1bmN0aW9uIHRvIGFsaWduIHRo ZQo+PiAgIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0aW5nIGFwcHJv eGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPj4gLSMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGls ZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQgbWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywgCj4+ ICsjIHBlciBmdW5jdGlvbiBjYWxsLiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBi ZW5lZml0IG1pY3JvIGJlbmNobWFya3MsCj4+ICAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJhbGwg bG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4+ICAjIHVz ZSBvZiBjb2RlIGNhY2hlIHRhZyBsaW5lcykgYW5kIHVzZXMgbW9yZSBzdGFjayAobGVzcyBlZmZp Y2llbnQgdXNlIG9mIGRhdGEKPj4gLSMgY2FjaGUgdGFnIGxpbmVzKS4gIEV4cGxpY2l0bHkgcHJv aGliaXQgdGhlIHVzZSBvZiBTU0UgYW5kIG90aGVyIFNJTUQKPj4gKyMgY2FjaGUgdGFnIGxpbmVz KS4gIEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lN RAo+PiAgIyBvcGVyYXRpb25zIGluc2lkZSB0aGUga2VybmVsIGl0c2VsZi4gIFRoZXNlIG9wZXJh dGlvbnMgYXJlIGV4Y2x1c2l2ZWx5Cj4+ICAjIHJlc2VydmVkIGZvciB1c2VyIGFwcGxpY2F0aW9u cy4KPj4gICMKPj4gQEAgLTM1LDYgKzM2LDcgQEAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAgLmlm ICR7TUFDSElORV9DUFVBUkNIfSA9PSAiYXJtIgo+PiAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAg LmVuZGlmCj4+ICsKPj4gICMKPj4gICMgRm9yIElBLTY0LCB3ZSB1c2UgcjEzIGZvciB0aGUga2Vy bmVsIGdsb2JhbHMgcG9pbnRlciBhbmQgd2Ugb25seSB1c2UKPj4gICMgYSB2ZXJ5IHNtYWxsIHN1 YnNldCBvZiBmbG9hdCByZWdpc3RlcnMgZm9yIGludGVnZXIgZGl2aWRlcy4KPj4gQEAgLTk4LDcg KzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPj4gIENGTEFHUys9CS1mZnJlZXN0YW5kaW5n Cj4+ICAKPj4gICMKPj4gLSMgR0NDIFNTUCBzdXBwb3J0Lgo+PiArIyBHQ0MgU1NQIHN1cHBvcnQK Pj4gICMKPj4gIC5pZiAke01LX1NTUH0gIT0gIm5vIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0g ImlhNjQiICYmIFwKPj4gICAgICAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gImFybSIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJtaXBzIgo+PiBAQCAtMTA2LDkgKzEwOCw4IEBAIENGTEFHUys9CS1m c3RhY2stcHJvdGVjdG9yCj4+ICAuZW5kaWYKPj4gIAo+PiAgIwo+PiAtIyBFbmFibGUgQ1RGIGNv bnZlcnNhdGlvbiBvbiByZXF1ZXN0Lgo+PiArIyBFbmFibGUgQ1RGIGNvbnZlcnNhdGlvbiBvbiBy ZXF1ZXN0Cj4+ICAjCj4+ICAuaWYgZGVmaW5lZChXSVRIX0NURikKPj4gIC51bmRlZiBOT19DVEYK Pj4gIC5lbmRpZgo+PiAtCj4KPi0tIAo+YTEzeAo+Cj4KPk9uIDIwMTEtMDQtMjkgMjA6MjAsIEp1 bmctdWsgS2ltIHdyb3RlOgo+Li4uCj4+ICtzdGF0aWMgX19pbmxpbmUgdm9pZAo+PiArdm13YXJl X2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50ICpwKQo+PiArewo+PiArCj4+ICsJX19hc20gX192b2xh dGlsZSgiaW5sICglJWR4KSIKPj4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAo cFsyXSksICI9ZCIgKHBbM10pCj4+ICsJOiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01B WCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+PiArCTogIm1lbW9yeSIpOwo+PiArfQo+ Cj5UaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGluayBp dCdzIHJpZ2h0IGluIHRoaXMKPmNhc2U6Cj4KPnN5cy94ODYveDg2L3RzYy5jOjEwMzoxOTogZXJy b3I6IGludmFsaWQgb3BlcmFuZCBmb3IgaW5zdHJ1Y3Rpb24KPiAgICAgICAgIF9fYXNtIF9fdm9s YXRpbGUoImlubCAoJSVkeCkiCj4gICAgICAgICAgICAgICAgICAgICAgICAgIF4KPjxpbmxpbmUg YXNtPjoxOjY6IG5vdGU6IGluc3RhbnRpYXRlZCBpbnRvIGFzc2VtYmx5IGhlcmUKPiAgICAgICAg IGlubCAoJWR4KQo+ICAgICAgICAgICAgIF4KPgo+Q2FuIHdlIHBsZWFzZSBhZGQgYW4gZXhwbGlj aXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBFLmcuOgo+Cj5kaWZmIC0tZ2l0IGEv c3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90c2MuYwo+aW5kZXggMGI3NTEwYy4uOTYz ODE2NyAxMDA2NDQKPi0tLSBhL3N5cy94ODYveDg2L3RzYy5jCj4rKysgYi9zeXMveDg2L3g4Ni90 c2MuYwo+QEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgX19pbmxpbmUgdm9pZAo+ICB2bXdhcmVf aHZjYWxsKHVfaW50IGNtZCwgdV9pbnQgKnApCj4gIHsKPiAgCj4tCV9fYXNtIF9fdm9sYXRpbGUo ImlubCAoJSVkeCkiCj4rCV9fYXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+ICAJ OiAiPWEiIChwWzBdKSwgIj1iIiAocFsxXSksICI9YyIgKHBbMl0pLCAiPWQiIChwWzNdKQo+ICAJ OiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdf SFZQT1JUKQo+ICAJOiAibWVtb3J5Iik7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkg IDIgMTQ6MTM6MTIgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjQKPlVSTDogaHR0cDovL3N2bi5m cmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjQKPgo+TG9nOgo+ICBBZGQgaW1wbGVtZW50 YXRpb25zIG9mIEJVU19BREpVU1RfUkVTT1VSQ0UoKSB0byB0aGUgUENJIGJ1cyBkcml2ZXIsCj4g IGdlbmVyaWMgUENJLVBDSSBicmlkZ2UgZHJpdmVyLCB4ODYgbmV4dXMgZHJpdmVyLCBhbmQgeDg2 IEhvc3QgdG8gUENJIGJyaWRnZQo+ICBkcml2ZXJzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMv YW1kNjQvcGNpL3BjaV9idXMuYwo+ICBoZWFkL3N5cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3Bp LmMKPiAgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+ICBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2ku Ywo+ICBoZWFkL3N5cy9pMzg2L3BjaS9wY2lfYnVzLmMKPiAgaGVhZC9zeXMveDg2L3g4Ni9tcHRh YmxlX3BjaS5jCj4gIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwo+Cj5Nb2RpZmllZDogaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMp Cj4rKysgaGVhZC9zeXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDE0OjEzOjEyIDIw MTEJKHIyMjEzMjQpCj5AQCAtMzQ4LDYgKzM0OCw3IEBAIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3Qg bGVnYWN5X3BjaWJfbWV0aG8KPiAJREVWTUVUSE9EKGJ1c19yZWFkX2l2YXIsCWxlZ2FjeV9wY2li X3JlYWRfaXZhciksCj4gCURFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJbGVnYWN5X3BjaWJfd3Jp dGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCWxlZ2FjeV9wY2liX2Fs bG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19nZW5l cmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJ YnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVf cmVzb3VyY2UsIGJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1 c19kZWFjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19kZWFjdGl2YXRlX3Jlc291cmNlKSwK Pgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvYWNw aWNhL2FjcGlfcGNpYl9hY3BpLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+ QEAgLTEwMCw2ICsxMDAsNyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGFjcGlfcGNpYl9hY3Bp X21lCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFyLAkJYWNwaV9wY2liX3JlYWRfaXZhciks Cj4gICAgIERFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJCWFjcGlfcGNpYl93cml0ZV9pdmFyKSwK PiAgICAgREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJYWNwaV9wY2liX2FjcGlfYWxsb2Nf cmVzb3VyY2UpLAo+KyAgICBERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVy aWNfYWRqdXN0X3Jlc291cmNlKSwKPiAgICAgREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNl LAlidXNfZ2VuZXJpY19yZWxlYXNlX3Jlc291cmNlKSwKPiAgICAgREVWTUVUSE9EKGJ1c19hY3Rp dmF0ZV9yZXNvdXJjZSwJYnVzX2dlbmVyaWNfYWN0aXZhdGVfcmVzb3VyY2UpLAo+ICAgICBERVZN RVRIT0QoYnVzX2RlYWN0aXZhdGVfcmVzb3VyY2UsCWJ1c19nZW5lcmljX2RlYWN0aXZhdGVfcmVz b3VyY2UpLAo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwlNb24gTWF5ICAyIDEzOjU4OjQw IDIwMTEJKHIyMjEzMjMpCj4rKysgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwlNb24gTWF5ICAyIDE0 OjEzOjEyIDIwMTEJKHIyMjEzMjQpCj5AQCAtMTQyLDYgKzE0Miw3IEBAIHN0YXRpYyBkZXZpY2Vf bWV0aG9kX3QgcGNpX21ldGhvZHNbXSA9IHsKPiAJREVWTUVUSE9EKGJ1c19nZXRfcmVzb3VyY2Us CWJ1c19nZW5lcmljX3JsX2dldF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfZGVsZXRlX3Jl c291cmNlLAlwY2lfZGVsZXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19hbGxvY19yZXNv dXJjZSwJcGNpX2FsbG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3Vy Y2UsCWJ1c19nZW5lcmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFz ZV9yZXNvdXJjZSwJYnVzX2dlbmVyaWNfcmxfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhP RChidXNfYWN0aXZhdGVfcmVzb3VyY2UsIHBjaV9hY3RpdmF0ZV9yZXNvdXJjZSksCj4gCURFVk1F VEhPRChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwgcGNpX2RlYWN0aXZhdGVfcmVzb3VyY2UpLAo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvZGV2L3BjaS9wY2lfcGNpLmMKPj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQo+LS0tIGhlYWQvc3lzL2Rldi9wY2kvcGNpX3BjaS5jCU1vbiBNYXkgIDIgMTM6NTg6NDAg MjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2kuYwlNb24gTWF5ICAy IDE0OjEzOjEyIDIwMTEJKHIyMjEzMjQpCj5AQCAtNzMsNiArNzMsNyBAQCBzdGF0aWMgZGV2aWNl X21ldGhvZF90IHBjaWJfbWV0aG9kc1tdID0gCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFy LAkJcGNpYl9yZWFkX2l2YXIpLAo+ICAgICBERVZNRVRIT0QoYnVzX3dyaXRlX2l2YXIsCQlwY2li X3dyaXRlX2l2YXIpLAo+ICAgICBERVZNRVRIT0QoYnVzX2FsbG9jX3Jlc291cmNlLAlwY2liX2Fs bG9jX3Jlc291cmNlKSwKPisgICAgREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19n ZW5lcmljX2FkanVzdF9yZXNvdXJjZSksCj4gICAgIERFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNv dXJjZSwJYnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gICAgIERFVk1FVEhPRChidXNf YWN0aXZhdGVfcmVzb3VyY2UsCWJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAgICAg REVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLAlidXNfZ2VuZXJpY19kZWFjdGl2YXRl X3Jlc291cmNlKSwKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2kzODYvcGNpL3BjaV9idXMuYwo+PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvaTM4Ni9wY2kvcGNpX2J1cy5jCU1vbiBN YXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9pMzg2L3BjaS9wY2lf YnVzLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+QEAgLTU2NSw2ICs1NjUs NyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGxlZ2FjeV9wY2liX21ldGhvCj4gCURFVk1FVEhP RChidXNfcmVhZF9pdmFyLAlsZWdhY3lfcGNpYl9yZWFkX2l2YXIpLAo+IAlERVZNRVRIT0QoYnVz X3dyaXRlX2l2YXIsCWxlZ2FjeV9wY2liX3dyaXRlX2l2YXIpLAo+IAlERVZNRVRIT0QoYnVzX2Fs bG9jX3Jlc291cmNlLAlsZWdhY3lfcGNpYl9hbGxvY19yZXNvdXJjZSksCj4rCURFVk1FVEhPRChi dXNfYWRqdXN0X3Jlc291cmNlLAlidXNfZ2VuZXJpY19hZGp1c3RfcmVzb3VyY2UpLAo+IAlERVZN RVRIT0QoYnVzX3JlbGVhc2VfcmVzb3VyY2UsCWJ1c19nZW5lcmljX3JlbGVhc2VfcmVzb3VyY2Up LAo+IAlERVZNRVRIT0QoYnVzX2FjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19hY3RpdmF0 ZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwgYnVzX2dl bmVyaWNfZGVhY3RpdmF0ZV9yZXNvdXJjZSksCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy94ODYveDg2 L21wdGFibGVfcGNpLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL3g4Ni94 ODYvbXB0YWJsZV9wY2kuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMpCj4rKysg aGVhZC9zeXMveDg2L3g4Ni9tcHRhYmxlX3BjaS5jCU1vbiBNYXkgIDIgMTQ6MTM6MTIgMjAxMQko cjIyMTMyNCkKPkBAIC0xMTYsNiArMTE2LDcgQEAgc3RhdGljIGRldmljZV9tZXRob2RfdCBtcHRh YmxlX2hvc3RiX21ldAo+IAlERVZNRVRIT0QoYnVzX3JlYWRfaXZhciwJbGVnYWN5X3BjaWJfcmVh ZF9pdmFyKSwKPiAJREVWTUVUSE9EKGJ1c193cml0ZV9pdmFyLAlsZWdhY3lfcGNpYl93cml0ZV9p dmFyKSwKPiAJREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJbGVnYWN5X3BjaWJfYWxsb2Nf cmVzb3VyY2UpLAo+KwlERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVyaWNf YWRqdXN0X3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNlLAlidXNf Z2VuZXJpY19yZWxlYXNlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19hY3RpdmF0ZV9yZXNv dXJjZSwgYnVzX2dlbmVyaWNfYWN0aXZhdGVfcmVzb3VyY2UpLAo+IAlERVZNRVRIT0QoYnVzX2Rl YWN0aXZhdGVfcmVzb3VyY2UsIGJ1c19nZW5lcmljX2RlYWN0aXZhdGVfcmVzb3VyY2UpLAo+Cj5N b2RpZmllZDogaGVhZC9zeXMveDg2L3g4Ni9uZXh1cy5jCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy94ODYveDg2L25leHVzLmMJTW9uIE1heSAgMiAxMzo1ODo0MCAyMDExCShy MjIxMzIzKQo+KysrIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwlNb24gTWF5ICAyIDE0OjEzOjEy IDIwMTEJKHIyMjEzMjQpCj5AQCAtMTAwLDYgKzEwMCw4IEBAIHN0YXRpYyBkZXZpY2VfdCBuZXh1 c19hZGRfY2hpbGQoZGV2aWNlX3QKPiAJCQkJaW50IHVuaXQpOwo+IHN0YXRpYwlzdHJ1Y3QgcmVz b3VyY2UgKm5leHVzX2FsbG9jX3Jlc291cmNlKGRldmljZV90LCBkZXZpY2VfdCwgaW50LCBpbnQg KiwKPiAJCQkJCSAgICAgIHVfbG9uZywgdV9sb25nLCB1X2xvbmcsIHVfaW50KTsKPitzdGF0aWMJ aW50IG5leHVzX2FkanVzdF9yZXNvdXJjZShkZXZpY2VfdCwgZGV2aWNlX3QsIGludCwgc3RydWN0 IHJlc291cmNlICosCj4rCQkJCSAgdV9sb25nLCB1X2xvbmcpOwo+ICNpZmRlZiBTTVAKPiBzdGF0 aWMJaW50IG5leHVzX2JpbmRfaW50cihkZXZpY2VfdCwgZGV2aWNlX3QsIHN0cnVjdCByZXNvdXJj ZSAqLCBpbnQpOwo+ICNlbmRpZgo+QEAgLTE0NCw2ICsxNDYsNyBAQCBzdGF0aWMgZGV2aWNlX21l dGhvZF90IG5leHVzX21ldGhvZHNbXSA9Cj4gCURFVk1FVEhPRChidXNfcHJpbnRfY2hpbGQsCW5l eHVzX3ByaW50X2NoaWxkKSwKPiAJREVWTUVUSE9EKGJ1c19hZGRfY2hpbGQsCW5leHVzX2FkZF9j aGlsZCksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCW5leHVzX2FsbG9jX3Jlc291 cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCW5leHVzX2FkanVzdF9yZXNv dXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJbmV4dXNfcmVsZWFzZV9y ZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVfcmVzb3VyY2UsIG5leHVzX2FjdGl2 YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLCBuZXh1 c19kZWFjdGl2YXRlX3Jlc291cmNlKSwKPkBAIC0zMzIsNiArMzM1LDIzIEBAIG5leHVzX2FkZF9j aGlsZChkZXZpY2VfdCBidXMsIHVfaW50IG9yZGUKPiAJcmV0dXJuKGNoaWxkKTsKPiB9Cj4gCj4r c3RhdGljIHN0cnVjdCBybWFuICoKPituZXh1c19ybWFuKGludCB0eXBlKQo+K3sKPisJc3dpdGNo ICh0eXBlKSB7Cj4rCWNhc2UgU1lTX1JFU19JUlE6Cj4rCQlyZXR1cm4gKCZpcnFfcm1hbik7Cj4r CWNhc2UgU1lTX1JFU19EUlE6Cj4rCQlyZXR1cm4gKCZkcnFfcm1hbik7Cj4rCWNhc2UgU1lTX1JF U19JT1BPUlQ6Cj4rCQlyZXR1cm4gKCZwb3J0X3JtYW4pOwo+KwljYXNlIFNZU19SRVNfTUVNT1JZ Ogo+KwkJcmV0dXJuICgmbWVtX3JtYW4pOwo+KwlkZWZhdWx0Ogo+KwkJcmV0dXJuIChOVUxMKTsK PisJfQo+K30KPisKPiAvKgo+ICAqIEFsbG9jYXRlIGEgcmVzb3VyY2Ugb24gYmVoYWxmIG9mIGNo aWxkLiAgTkI6IGNoaWxkIGlzIHVzdWFsbHkgZ29pbmcgdG8gYmUgYQo+ICAqIGNoaWxkIG9mIG9u ZSBvZiBvdXIgZGVzY2VuZGFudHMsIG5vdCBhIGRpcmVjdCBjaGlsZCBvZiBuZXh1czAuCj5AQCAt MzY0LDI3ICszODQsOSBAQCBuZXh1c19hbGxvY19yZXNvdXJjZShkZXZpY2VfdCBidXMsIGRldmlj Cj4gCX0KPiAKPiAJZmxhZ3MgJj0gflJGX0FDVElWRTsKPi0KPi0Jc3dpdGNoICh0eXBlKSB7Cj4t CWNhc2UgU1lTX1JFU19JUlE6Cj4tCQlybSA9ICZpcnFfcm1hbjsKPi0JCWJyZWFrOwo+LQo+LQlj YXNlIFNZU19SRVNfRFJROgo+LQkJcm0gPSAmZHJxX3JtYW47Cj4tCQlicmVhazsKPi0KPi0JY2Fz ZSBTWVNfUkVTX0lPUE9SVDoKPi0JCXJtID0gJnBvcnRfcm1hbjsKPi0JCWJyZWFrOwo+LQo+LQlj YXNlIFNZU19SRVNfTUVNT1JZOgo+LQkJcm0gPSAmbWVtX3JtYW47Cj4tCQlicmVhazsKPi0KPi0J ZGVmYXVsdDoKPi0JCXJldHVybiAwOwo+LQl9Cj4rCXJtID0gbmV4dXNfcm1hbih0eXBlKTsKPisJ aWYgKHJtID09IE5VTEwpCj4rCQlyZXR1cm4gKE5VTEwpOwo+IAo+IAlydiA9IHJtYW5fcmVzZXJ2 ZV9yZXNvdXJjZShybSwgc3RhcnQsIGVuZCwgY291bnQsIGZsYWdzLCBjaGlsZCk7Cj4gCWlmIChy diA9PSAwKQo+QEAgLTQwMiw2ICs0MDQsMjAgQEAgbmV4dXNfYWxsb2NfcmVzb3VyY2UoZGV2aWNl X3QgYnVzLCBkZXZpYwo+IH0KPiAKPiBzdGF0aWMgaW50Cj4rbmV4dXNfYWRqdXN0X3Jlc291cmNl KGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB0eXBlLAo+KyAgICBzdHJ1Y3QgcmVz b3VyY2UgKnIsIHVfbG9uZyBzdGFydCwgdV9sb25nIGVuZCkKPit7Cj4rCXN0cnVjdCBybWFuICpy bTsKPisKPisJcm0gPSBuZXh1c19ybWFuKHR5cGUpOwo+KwlpZiAocm0gPT0gTlVMTCkKPisJCXJl dHVybiAoRU5YSU8pOwo+KwlpZiAoIXJtYW5faXNfcmVnaW9uX21hbmFnZXIociwgcm0pKQo+KwkJ cmV0dXJuIChFSU5WQUwpOwo+KwlyZXR1cm4gKHJtYW5fYWRqdXN0X3Jlc291cmNlKHIsIHN0YXJ0 LCBlbmQpKTsKPit9Cj4rCj4rc3RhdGljIGludAo+IG5leHVzX2FjdGl2YXRlX3Jlc291cmNlKGRl dmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB0eXBlLCBpbnQgcmlkLAo+IAkJCXN0cnVj dCByZXNvdXJjZSAqcikKPiB7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkgIDIgMTQ6 MzQ6MDMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjYKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNk Lm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjYKPgo+TG9nOgo+ICBBZGQgYW4gZW50cnkgZm9yIHRo ZSBLdXJvdXRvc2hpa291IFNFUklBTDRQLUxQUENJMiB3aGljaCB1c2VzIGFuIE94Zm9yZAo+ICA0 IHBvcnQgY2hpcCBidXQgd2l0aCBhIG5vbnN0YW5kYXJkIGNsb2NrLgo+ICAKPiAgUFI6CQlrZXJu LzEwNDIxMgo+ICBTdWJtaXR0ZWQgYnk6CVNodWljaGkgS0lUQUdVQ0hJICBraXQgb2YgeXNuYiBu ZXQKPiAgTUZDIGFmdGVyOgkxIHdlZWsKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2Rldi9wdWMv cHVjZGF0YS5jCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9kZXYvcHVjL3B1Y2RhdGEuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L3B1Yy9wdWNkYXRhLmMJTW9uIE1heSAg MiAxNDoyMzozNiAyMDExCShyMjIxMzI1KQo+KysrIGhlYWQvc3lzL2Rldi9wdWMvcHVjZGF0YS5j CU1vbiBNYXkgIDIgMTQ6MzQ6MDMgMjAxMQkocjIyMTMyNikKPkBAIC02MzgsNiArNjM4LDEyIEBA IGNvbnN0IHN0cnVjdCBwdWNfY2ZnIHB1Y19wY2lfZGV2aWNlc1tdID0KPiAJICAgIFBVQ19QT1JU XzRTLCAweDEwLCAwLCA4LAo+IAl9LAo+IAo+Kwl7ICAgMHgxNDE1LCAweDk1MDEsIDB4MTRkYiwg MHgyMTUwLAo+KwkgICAgIkt1cm91dG9zaGlrb3UgU0VSSUFMNFAtTFBQQ0kyIiwKPisJICAgIERF RkFVTFRfUkNMSyAqIDEwLAo+KwkgICAgUFVDX1BPUlRfNFMsIDB4MTAsIDAsIDgsCj4rCX0sCj4r Cj4gCXsgICAweDE0MTUsIDB4OTUwMSwgMHhmZmZmLCAwLAo+IAkgICAgIk94Zm9yZCBTZW1pY29u ZHVjdG9yIE9YMTZQQ0k5NTQgVUFSVHMiLAo+IAkgICAgREVGQVVMVF9SQ0xLLAo+Cj4KPk9uIFN1 bmRheSwgTWF5IDAxLCAyMDExIDM6MDU6NTQgcG0gQmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4g QXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEKPj4gTmV3 IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNl dC9iYXNlLzIyMTMwMQo+PiAKPj4gTG9nOgo+PiAgIFRoZXNlIGFyZSBvZiBjb3Vyc2UgaTM4Ni9h bWQ2NCBvbmx5Lgo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9OT1RFUwo+Cj5Q bGVhc2UgcHV0IHRoZW0gaW4gaTM4Ni9jb25mL05PVEVTIGFuZCBhbWQ2NC9jb25mL05PVEVTLiAg QWxsIGRyaXZlcnMgc2hvdWxkIAo+YmUgaW4gYXBwcm9wcmlhdGUgTk9URVMgZmlsZXMuCj4KPi0t IAo+Sm9obiBCYWxkd2luCj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkgIDIgMTU6MDE6 MjggMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjcKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9y Zy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjcKPgo+TG9nOgo+ICBEb24ndCBleHBsaWNpdGx5IGxpc3Qg cGNpX3dyaXRlX2l2YXIoKSBmb3IgYnVzX3dyaXRlX2l2YXIsIHRoZSBtZXRob2QgaXMKPiAgYWxy ZWFkeSBpbmhlcml0ZWQgZnJvbSB0aGUgUENJIGJ1cyBkcml2ZXIuCj4KPk1vZGlmaWVkOgo+ICBo ZWFkL3N5cy9kZXYvY2FyZGJ1cy9jYXJkYnVzLmMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9j YXJkYnVzL2NhcmRidXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2 L2NhcmRidXMvY2FyZGJ1cy5jCU1vbiBNYXkgIDIgMTQ6MzQ6MDMgMjAxMQkocjIyMTMyNikKPisr KyBoZWFkL3N5cy9kZXYvY2FyZGJ1cy9jYXJkYnVzLmMJTW9uIE1heSAgMiAxNTowMToyOCAyMDEx CShyMjIxMzI3KQo+QEAgLTMxNyw3ICszMTcsNiBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGNh cmRidXNfbWV0aG9kc1tdCj4gCj4gCS8qIEJ1cyBpbnRlcmZhY2UgKi8KPiAJREVWTUVUSE9EKGJ1 c19yZWFkX2l2YXIsCWNhcmRidXNfcmVhZF9pdmFyKSwKPi0JREVWTUVUSE9EKGJ1c193cml0ZV9p dmFyLAlwY2lfd3JpdGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfZHJpdmVyX2FkZGVkLAljYXJk YnVzX2RyaXZlcl9hZGRlZCksCj4gCj4gCS8qIENhcmQgSW50ZXJmYWNlICovCj4KPgo+QXV0aG9y OiB0dWV4ZW4KPkRhdGU6IE1vbiBNYXkgIDIgMTU6NTM6MDAgMjAxMQo+TmV3IFJldmlzaW9uOiAy MjEzMjgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjgK Pgo+TG9nOgo+ICBTb21lIG1vcmUgY2xlYW51cHMgcmVsYXRlZCB0byBhbiBrZXJuZWwgd2l0aG91 dCBJTkVULgo+ICAKPiAgTUZDIGFmdGVyOiAxIHdlZWsKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lz L25ldGluZXQvc2N0cHV0aWwuYwo+ICBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmgKPgo+TW9k aWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuYwo+PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4tLS0gaGVhZC9zeXMvbmV0aW5ldC9zY3RwdXRpbC5jCU1vbiBNYXkgIDIgMTU6MDE6MjggMjAx MQkocjIyMTMyNykKPisrKyBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmMJTW9uIE1heSAgMiAx NTo1MzowMCAyMDExCShyMjIxMzI4KQo+QEAgLTI4NDQsOSArMjg0NCwxMSBAQCBzY3RwX25vdGlm eV9wZWVyX2FkZHJfY2hhbmdlKHN0cnVjdCBzY3RwCj4gCXNwYy0+c3BjX2ZsYWdzID0gMDsKPiAJ c3BjLT5zcGNfbGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhZGRyX2NoYW5nZSk7Cj4gCXN3 aXRjaCAoc2EtPnNhX2ZhbWlseSkgewo+KyNpZmRlZiBJTkVUCj4gCWNhc2UgQUZfSU5FVDoKPiAJ CW1lbWNweSgmc3BjLT5zcGNfYWFkZHIsIHNhLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7 Cj4gCQlicmVhazsKPisjZW5kaWYKPiAjaWZkZWYgSU5FVDYKPiAJY2FzZSBBRl9JTkVUNjoKPiAJ CXsKPkBAIC00MDg0LDYgKzQwODYsNyBAQCBzY3RwX2NtcGFkZHIoc3RydWN0IHNvY2thZGRyICpz YTEsIHN0cnVjCj4gCQkJICAgIHNpbjZfMikpOwo+IAkJfQo+ICNlbmRpZgo+KyNpZmRlZiBJTkVU Cj4gCWNhc2UgQUZfSU5FVDoKPiAJCXsKPiAJCQkvKiBJUHY0IGFkZHJlc3NlcyAqLwo+QEAgLTQw OTMsNiArNDA5Niw3IEBAIHNjdHBfY21wYWRkcihzdHJ1Y3Qgc29ja2FkZHIgKnNhMSwgc3RydWMK PiAJCQlzaW5fMiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilzYTI7Cj4gCQkJcmV0dXJuIChzaW5f MS0+c2luX2FkZHIuc19hZGRyID09IHNpbl8yLT5zaW5fYWRkci5zX2FkZHIpOwo+IAkJfQo+KyNl bmRpZgo+IAlkZWZhdWx0Ogo+IAkJLyogd2UgZG9uJ3QgZG8gdGhlc2UuLi4gKi8KPiAJCXJldHVy biAoMCk7Cj5AQCAtNDEyMiw2ICs0MTI2LDcgQEAgc2N0cF9wcmludF9hZGRyZXNzKHN0cnVjdCBz b2NrYWRkciAqc2EpCj4gCQkJYnJlYWs7Cj4gCQl9Cj4gI2VuZGlmCj4rI2lmZGVmIElORVQKPiAJ Y2FzZSBBRl9JTkVUOgo+IAkJewo+IAkJCXN0cnVjdCBzb2NrYWRkcl9pbiAqc2luOwo+QEAgLTQx MzMsNiArNDEzOCw3IEBAIHNjdHBfcHJpbnRfYWRkcmVzcyhzdHJ1Y3Qgc29ja2FkZHIgKnNhKQo+ IAkJCSAgICBwWzBdLCBwWzFdLCBwWzJdLCBwWzNdLCBudG9ocyhzaW4tPnNpbl9wb3J0KSk7Cj4g CQkJYnJlYWs7Cj4gCQl9Cj4rI2VuZGlmCj4gCWRlZmF1bHQ6Cj4gCQlTQ1RQX1BSSU5URigiP1xu Iik7Cj4gCQlicmVhazsKPkBAIC00MTQzLDYgKzQxNDksNyBAQCB2b2lkCj4gc2N0cF9wcmludF9h ZGRyZXNzX3BrdChzdHJ1Y3QgaXAgKmlwaCwgc3RydWN0IHNjdHBoZHIgKnNoKQo+IHsKPiAJc3dp dGNoIChpcGgtPmlwX3YpIHsKPisjaWZkZWYgSU5FVAo+IAljYXNlIElQVkVSU0lPTjoKPiAJCXsK PiAJCQlzdHJ1Y3Qgc29ja2FkZHJfaW4gbHNhLCBmc2E7Cj5AQCAtNDE2Myw2ICs0MTcwLDcgQEAg c2N0cF9wcmludF9hZGRyZXNzX3BrdChzdHJ1Y3QgaXAgKmlwaCwgcwo+IAkJCXNjdHBfcHJpbnRf YWRkcmVzcygoc3RydWN0IHNvY2thZGRyICopJmZzYSk7Cj4gCQkJYnJlYWs7Cj4gCQl9Cj4rI2Vu ZGlmCj4gI2lmZGVmIElORVQ2Cj4gCWNhc2UgSVBWNl9WRVJTSU9OID4+IDQ6Cj4gCQl7Cj5AQCAt NDg2MiwyMiArNDg3MCwzMyBAQCBzY3RwX2ZpbmRfaWZhX2luX2VwKHN0cnVjdCBzY3RwX2lucGNi ICppCj4gdWludDMyX3QKPiBzY3RwX2dldF9pZmFfaGFzaF92YWwoc3RydWN0IHNvY2thZGRyICph ZGRyKQo+IHsKPi0JaWYgKGFkZHItPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4tCQlzdHJ1Y3Qg c29ja2FkZHJfaW4gKnNpbjsKPisJc3dpdGNoIChhZGRyLT5zYV9mYW1pbHkpIHsKPisjaWZkZWYg SU5FVAo+KwljYXNlIEFGX0lORVQ6Cj4rCQl7Cj4rCQkJc3RydWN0IHNvY2thZGRyX2luICpzaW47 Cj4gCj4tCQlzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopYWRkcjsKPi0JCXJldHVybiAoc2lu LT5zaW5fYWRkci5zX2FkZHIgXiAoc2luLT5zaW5fYWRkci5zX2FkZHIgPj4gMTYpKTsKPi0JfSBl bHNlIGlmIChhZGRyLT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKPi0JCXN0cnVjdCBzb2NrYWRk cl9pbjYgKnNpbjY7Cj4tCQl1aW50MzJfdCBoYXNoX29mX2FkZHI7Cj4rCQkJc2luID0gKHN0cnVj dCBzb2NrYWRkcl9pbiAqKWFkZHI7Cj4rCQkJcmV0dXJuIChzaW4tPnNpbl9hZGRyLnNfYWRkciBe IChzaW4tPnNpbl9hZGRyLnNfYWRkciA+PiAxNikpOwo+KwkJfQo+KyNlbmRpZgo+KyNpZmRlZiBJ TkVUNgo+KwljYXNlIElORVQ2Ogo+KwkJewo+KwkJCXN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjY7 Cj4rCQkJdWludDMyX3QgaGFzaF9vZl9hZGRyOwo+IAo+LQkJc2luNiA9IChzdHJ1Y3Qgc29ja2Fk ZHJfaW42ICopYWRkcjsKPi0JCWhhc2hfb2ZfYWRkciA9IChzaW42LT5zaW42X2FkZHIuczZfYWRk cjMyWzBdICsKPi0JCSAgICBzaW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzFdICsKPi0JCSAgICBz aW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzJdICsKPi0JCSAgICBzaW42LT5zaW42X2FkZHIuczZf YWRkcjMyWzNdKTsKPi0JCWhhc2hfb2ZfYWRkciA9IChoYXNoX29mX2FkZHIgXiAoaGFzaF9vZl9h ZGRyID4+IDE2KSk7Cj4tCQlyZXR1cm4gKGhhc2hfb2ZfYWRkcik7Cj4rCQkJc2luNiA9IChzdHJ1 Y3Qgc29ja2FkZHJfaW42ICopYWRkcjsKPisJCQloYXNoX29mX2FkZHIgPSAoc2luNi0+c2luNl9h ZGRyLnM2X2FkZHIzMlswXSArCj4rCQkJICAgIHNpbjYtPnNpbjZfYWRkci5zNl9hZGRyMzJbMV0g Kwo+KwkJCSAgICBzaW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzJdICsKPisJCQkgICAgc2luNi0+ c2luNl9hZGRyLnM2X2FkZHIzMlszXSk7Cj4rCQkJaGFzaF9vZl9hZGRyID0gKGhhc2hfb2ZfYWRk ciBeIChoYXNoX29mX2FkZHIgPj4gMTYpKTsKPisJCQlyZXR1cm4gKGhhc2hfb2ZfYWRkcik7Cj4r CQl9Cj4rI2VuZGlmCj4rCWRlZmF1bHQ6Cj4rCQlicmVhazsKPiAJfQo+IAlyZXR1cm4gKDApOwo+ IH0KPkBAIC02MjUwLDcgKzYyNjksOSBAQCBzY3RwX2Nvbm5lY3R4X2hlbHBlcl9hZGQoc3RydWN0 IHNjdHBfdGNiCj4gCWlucCA9IHN0Y2ItPnNjdHBfZXA7Cj4gCSplcnJvciA9IDA7Cj4gCWZvciAo aSA9IDA7IGkgPCB0b3RhZGRyOyBpKyspIHsKPi0JCWlmIChzYS0+c2FfZmFtaWx5ID09IEFGX0lO RVQpIHsKPisJCXN3aXRjaCAoc2EtPnNhX2ZhbWlseSkgewo+KyNpZmRlZiBJTkVUCj4rCQljYXNl IEFGX0lORVQ6Cj4gCQkJaW5jciA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwo+IAkJCWlm IChzY3RwX2FkZF9yZW1vdGVfYWRkcihzdGNiLCBzYSwgU0NUUF9ET05PVF9TRVRTQ09QRSwgU0NU UF9BRERSX0lTX0NPTkZJUk1FRCkpIHsKPiAJCQkJLyogYXNzb2MgZ29uZSBubyB1bi1sb2NrICov Cj5AQCAtNjI2MCw3ICs2MjgxLDEwIEBAIHNjdHBfY29ubmVjdHhfaGVscGVyX2FkZChzdHJ1Y3Qg c2N0cF90Y2IKPiAJCQkJZ290byBvdXRfbm93Owo+IAkJCX0KPiAJCQlhZGRlZCsrOwo+LQkJfSBl bHNlIGlmIChzYS0+c2FfZmFtaWx5ID09IEFGX0lORVQ2KSB7Cj4rCQkJYnJlYWs7Cj4rI2VuZGlm Cj4rI2lmZGVmIElORVQ2Cj4rCQljYXNlIEFGX0lORVQ2Ogo+IAkJCWluY3IgPSBzaXplb2Yoc3Ry dWN0IHNvY2thZGRyX2luNik7Cj4gCQkJaWYgKHNjdHBfYWRkX3JlbW90ZV9hZGRyKHN0Y2IsIHNh LCBTQ1RQX0RPTk9UX1NFVFNDT1BFLCBTQ1RQX0FERFJfSVNfQ09ORklSTUVEKSkgewo+IAkJCQkv KiBhc3NvYyBnb25lIG5vIHVuLWxvY2sgKi8KPkBAIC02MjcwLDYgKzYyOTQsMTAgQEAgc2N0cF9j b25uZWN0eF9oZWxwZXJfYWRkKHN0cnVjdCBzY3RwX3RjYgo+IAkJCQlnb3RvIG91dF9ub3c7Cj4g CQkJfQo+IAkJCWFkZGVkKys7Cj4rCQkJYnJlYWs7Cj4rI2VuZGlmCj4rCQlkZWZhdWx0Ogo+KwkJ CWJyZWFrOwo+IAkJfQo+IAkJc2EgPSAoc3RydWN0IHNvY2thZGRyICopKChjYWRkcl90KXNhICsg aW5jcik7Cj4gCX0KPkBAIC02Mjg4LDEwICs2MzE2LDEzIEBAIHNjdHBfY29ubmVjdHhfaGVscGVy X2ZpbmQoc3RydWN0IHNjdHBfaW4KPiAKPiAJYXQgPSBpbmNyID0gMDsKPiAJc2EgPSBhZGRyOwo+ Kwo+IAkqZXJyb3IgPSAqbnVtX3Y2ID0gKm51bV92NCA9IDA7Cj4gCS8qIGFjY291bnQgYW5kIHZh bGlkYXRlIGFkZHJlc3NlcyAqLwo+IAlmb3IgKGkgPSAwOyBpIDwgKHNpemVfdCkqdG90YWRkcjsg aSsrKSB7Cj4tCQlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4rCQlzd2l0Y2ggKHNh LT5zYV9mYW1pbHkpIHsKPisjaWZkZWYgSU5FVAo+KwkJY2FzZSBBRl9JTkVUOgo+IAkJCSgqbnVt X3Y0KSArPSAxOwo+IAkJCWluY3IgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsKPiAJCQlp ZiAoc2EtPnNhX2xlbiAhPSBpbmNyKSB7Cj5AQCAtNjMwMCwzMCArNjMzMSw0MCBAQCBzY3RwX2Nv bm5lY3R4X2hlbHBlcl9maW5kKHN0cnVjdCBzY3RwX2luCj4gCQkJCSpiYWRfYWRkciA9IDE7Cj4g CQkJCXJldHVybiAoTlVMTCk7Cj4gCQkJfQo+LQkJfSBlbHNlIGlmIChzYS0+c2FfZmFtaWx5ID09 IEFGX0lORVQ2KSB7Cj4tCQkJc3RydWN0IHNvY2thZGRyX2luNiAqc2luNjsKPi0KPi0JCQlzaW42 ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilzYTsKPi0JCQlpZiAoSU42X0lTX0FERFJfVjRNQVBQ RUQoJnNpbjYtPnNpbjZfYWRkcikpIHsKPi0JCQkJLyogTXVzdCBiZSBub24tbWFwcGVkIGZvciBj b25uZWN0eCAqLwo+LQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NU UF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+LQkJCQkqZXJyb3IgPSBFSU5WQUw7Cj4tCQkJCSpi YWRfYWRkciA9IDE7Cj4tCQkJCXJldHVybiAoTlVMTCk7Cj4tCQkJfQo+LQkJCSgqbnVtX3Y2KSAr PSAxOwo+LQkJCWluY3IgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNik7Cj4tCQkJaWYgKHNh LT5zYV9sZW4gIT0gaW5jcikgewo+LQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwg TlVMTCwgU0NUUF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+LQkJCQkqZXJyb3IgPSBFSU5WQUw7 Cj4tCQkJCSpiYWRfYWRkciA9IDE7Cj4tCQkJCXJldHVybiAoTlVMTCk7Cj4rCQkJYnJlYWs7Cj4r I2VuZGlmCj4rI2lmZGVmIElORVQ2Cj4rCQljYXNlIEFGX0lORVQ2Ogo+KwkJCXsKPisJCQkJc3Ry dWN0IHNvY2thZGRyX2luNiAqc2luNjsKPisKPisJCQkJc2luNiA9IChzdHJ1Y3Qgc29ja2FkZHJf aW42ICopc2E7Cj4rCQkJCWlmIChJTjZfSVNfQUREUl9WNE1BUFBFRCgmc2luNi0+c2luNl9hZGRy KSkgewo+KwkJCQkJLyogTXVzdCBiZSBub24tbWFwcGVkIGZvciBjb25uZWN0eCAqLwo+KwkJCQkJ U0NUUF9MVFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQVVRJTCwg RUlOVkFMKTsKPisJCQkJCSplcnJvciA9IEVJTlZBTDsKPisJCQkJCSpiYWRfYWRkciA9IDE7Cj4r CQkJCQlyZXR1cm4gKE5VTEwpOwo+KwkJCQl9Cj4rCQkJCSgqbnVtX3Y2KSArPSAxOwo+KwkJCQlp bmNyID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOwo+KwkJCQlpZiAoc2EtPnNhX2xlbiAh PSBpbmNyKSB7Cj4rCQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NU UF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+KwkJCQkJKmVycm9yID0gRUlOVkFMOwo+KwkJCQkJ KmJhZF9hZGRyID0gMTsKPisJCQkJCXJldHVybiAoTlVMTCk7Cj4rCQkJCX0KPisJCQkJYnJlYWs7 Cj4gCQkJfQo+LQkJfSBlbHNlIHsKPisjZW5kaWYKPisJCWRlZmF1bHQ6Cj4gCQkJKnRvdGFkZHIg PSBpOwo+IAkJCS8qIHdlIGFyZSBkb25lICovCj4gCQkJYnJlYWs7Cj4gCQl9Cj4rCQlpZiAoaSA9 PSAoc2l6ZV90KSp0b3RhZGRyKSB7Cj4rCQkJYnJlYWs7Cj4rCQl9Cj4gCQlTQ1RQX0lOUF9JTkNS X1JFRihpbnApOwo+IAkJc3RjYiA9IHNjdHBfZmluZGFzc29jaWF0aW9uX2VwX2FkZHIoJmlucCwg c2EsIE5VTEwsIE5VTEwsIE5VTEwpOwo+IAkJaWYgKHN0Y2IgIT0gTlVMTCkgewo+QEAgLTYzNjQs NyArNjQwNSw3IEBAIHNjdHBfYmluZHhfYWRkX2FkZHJlc3Moc3RydWN0IHNvY2tldCAqc28KPiAJ CXJldHVybjsKPiAJfQo+IAlhZGRyX3RvdXNlID0gc2E7Cj4tI2lmIGRlZmluZWQoSU5FVDYpICYm ICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCS8qIFRPRE8gcG9ydCBpbjZfc2luNl8yX3NpbiAqLwo+ KyNpZmRlZiBJTkVUNgo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgewo+IAkJc3Ry dWN0IHNvY2thZGRyX2luNiAqc2luNjsKPiAKPkBAIC02MzkzLDYgKzY0MzQsNyBAQCBzY3RwX2Jp bmR4X2FkZF9hZGRyZXNzKHN0cnVjdCBzb2NrZXQgKnNvCj4gCQl9Cj4gCX0KPiAjZW5kaWYKPisj aWZkZWYgSU5FVAo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4gCQlpZiAoc2Et PnNhX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgewo+IAkJCVNDVFBfTFRSQUNF X0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NUUFVUSUwsIEVJTlZBTCk7Cj5A QCAtNjQwNyw2ICs2NDQ5LDcgQEAgc2N0cF9iaW5keF9hZGRfYWRkcmVzcyhzdHJ1Y3Qgc29ja2V0 ICpzbwo+IAkJCXJldHVybjsKPiAJCX0KPiAJfQo+KyNlbmRpZgo+IAlpZiAoaW5wLT5zY3RwX2Zs YWdzICYgU0NUUF9QQ0JfRkxBR1NfVU5CT1VORCkgewo+IAkJaWYgKHAgPT0gTlVMTCkgewo+IAkJ CS8qIENhbid0IGdldCBwcm9jIGZvciBOZXQvT3BlbiBCU0QgKi8KPkBAIC02NTE5LDYgKzY1NjIs NyBAQCBzY3RwX2JpbmR4X2RlbGV0ZV9hZGRyZXNzKHN0cnVjdCBzb2NrZXQgCj4gCQl9Cj4gCX0K PiAjZW5kaWYKPisjaWZkZWYgSU5FVAo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7 Cj4gCQlpZiAoc2EtPnNhX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgewo+IAkJ CVNDVFBfTFRSQUNFX0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NUUFVUSUws IEVJTlZBTCk7Cj5AQCAtNjUzMyw2ICs2NTc3LDcgQEAgc2N0cF9iaW5keF9kZWxldGVfYWRkcmVz cyhzdHJ1Y3Qgc29ja2V0IAo+IAkJCXJldHVybjsKPiAJCX0KPiAJfQo+KyNlbmRpZgo+IAkvKgo+ IAkgKiBObyBsb2NrIHJlcXVpcmVkIG1nbXRfZXBfc2EgZG9lcyBpdHMgb3duIGxvY2tpbmcuIElm IHRoZSBGSVg6Cj4gCSAqIGJlbG93IGlzIGV2ZXIgY2hhbmdlZCB3ZSBtYXkgbmVlZCB0byBsb2Nr IGJlZm9yZSBjYWxsaW5nCj5AQCAtNjU5OSw2ICs2NjQ0LDcgQEAgc2N0cF9sb2NhbF9hZGRyX2Nv dW50KHN0cnVjdCBzY3RwX3RjYiAqcwo+IAkJCQlpZiAoc2N0cF9pc19hZGRyX3Jlc3RyaWN0ZWQo c3RjYiwgc2N0cF9pZmEpKQo+IAkJCQkJY29udGludWU7Cj4gCQkJCXN3aXRjaCAoc2N0cF9pZmEt PmFkZHJlc3Muc2Euc2FfZmFtaWx5KSB7Cj4rI2lmZGVmIElORVQKPiAJCQkJY2FzZSBBRl9JTkVU Ogo+IAkJCQkJaWYgKGlwdjRfYWRkcl9sZWdhbCkgewo+IAkJCQkJCXN0cnVjdCBzb2NrYWRkcl9p biAqc2luOwo+QEAgLTY2MjEsNiArNjY2Nyw3IEBAIHNjdHBfbG9jYWxfYWRkcl9jb3VudChzdHJ1 Y3Qgc2N0cF90Y2IgKnMKPiAJCQkJCQljb250aW51ZTsKPiAJCQkJCX0KPiAJCQkJCWJyZWFrOwo+ KyNlbmRpZgo+ICNpZmRlZiBJTkVUNgo+IAkJCQljYXNlIEFGX0lORVQ2Ogo+IAkJCQkJaWYgKGlw djZfYWRkcl9sZWdhbCkgewo+QEAgLTY3MTUsNiArNjc2Miw4IEBAIHNjdHBfbG9nX3RyYWNlKHVp bnQzMl90IHN1YnN5cywgY29uc3QgY2gKPiB9Cj4gCj4gI2VuZGlmCj4rLyogWFhYOiBSZW1vdmUg dGhlICNpZmRlZiBhZnRlciB0dW5uZWxpbmcgb3ZlciBJUHY2IHdvcmtzIGFsc28gb24gRnJlZUJT RC4gKi8KPisjaWZkZWYgSU5FVAo+IC8qIFdlIHdpbGwgbmVlZCB0byBhZGQgc3VwcG9ydAo+ICAq IHRvIGJpbmQgdGhlIHBvcnRzIGFuZCBzdWNoIGhlcmUKPiAgKiBzbyB3ZSBjYW4gZG8gVURQIHR1 bm5lbGluZy4gSW4KPkBAIC02ODE2LDcgKzY4NjUsNyBAQCBvdXQ6Cj4gCW1fZnJlZW0obSk7Cj4g fQo+IAo+LXZvaWQgCj4rdm9pZAo+IHNjdHBfb3Zlcl91ZHBfc3RvcCh2b2lkKQo+IHsKPiAJc3Ry dWN0IHNvY2tldCAqc29wOwo+QEAgLTY4MzMsNyArNjg4Miw4IEBAIHNjdHBfb3Zlcl91ZHBfc3Rv cCh2b2lkKQo+IAlzb2Nsb3NlKHNvcCk7Cj4gCVNDVFBfQkFTRV9JTkZPKHVkcF90dW5fc29ja2V0 KSA9IE5VTEw7Cj4gfQo+LWludCAKPisKPitpbnQKPiBzY3RwX292ZXJfdWRwX3N0YXJ0KHZvaWQp Cj4gewo+IAl1aW50MTZfdCBwb3J0Owo+QEAgLTY4ODYsMyArNjkzNiw1IEBAIGV4aXRfc3RhZ2Vf bGVmdDoKPiAJICovCj4gCXJldHVybiAoMCk7Cj4gfQo+Kwo+KyNlbmRpZgo+Cj5Nb2RpZmllZDog aGVhZC9zeXMvbmV0aW5ldC9zY3RwdXRpbC5oCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmgJTW9uIE1heSAgMiAxNTowMToyOCAyMDExCShyMjIx MzI3KQo+KysrIGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuaAlNb24gTWF5ICAyIDE1OjUzOjAw IDIwMTEJKHIyMjEzMjgpCj5AQCAtMzEzLDEwICszMTMsMTQgQEAgZG8geyBcCj4gCX0gXAo+IH0g d2hpbGUgKDApCj4gCj4tLyogbmV3IGZ1bmN0aW9ucyB0byBzdGFydC9zdG9wIHVkcCB0dW5uZWxp bmcgKi8KPisvKiBmdW5jdGlvbnMgdG8gc3RhcnQvc3RvcCB1ZHAgdHVubmVsaW5nICovCj4rLyog WFhYOiBSZW1vdmUgdGhlICNpZmRlZiBhZnRlciB0dW5uZWxpbmcgb3ZlciBJUHY2IHdvcmtzIGFs c28gb24gRnJlZUJTRC4gKi8KPisjaWZkZWYgSU5FVAo+IHZvaWQgc2N0cF9vdmVyX3VkcF9zdG9w KHZvaWQpOwo+IGludCBzY3RwX292ZXJfdWRwX3N0YXJ0KHZvaWQpOwo+IAo+KyNlbmRpZgo+Kwo+ IGludAo+IHNjdHBfc29yZWNlaXZlKHN0cnVjdCBzb2NrZXQgKnNvLCBzdHJ1Y3Qgc29ja2FkZHIg Kipwc2EsCj4gICAgIHN0cnVjdCB1aW8gKnVpbywKPgo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRl OiBNb24gTWF5ICAyIDE2OjUxOjAyIDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzI5Cj5VUkw6IGh0 dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzI5Cj4KPkxvZzoKPiAgQWxs IFBDSSBiYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHNlZW0gdG8gYmUgZXhwbGljaXRseSByZW1vdmVk IGZyb20gdGhlCj4gIFBBRSBrZXJuZWwgY29uZmlnLCBkbyB0aGF0IGFsc28gZm9yIHRob3NlIGFk ZGVkIHRvIEdFTkVSSUMgbGF0ZWx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvaTM4Ni9jb25m L1BBRQo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQo+PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4tLS0gaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQlNb24gTWF5ICAyIDE1OjUzOjAwIDIw MTEJKHIyMjEzMjgpCj4rKysgaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQlNb24gTWF5ICAyIDE2OjUx OjAyIDIwMTEJKHIyMjEzMjkpCj5AQCAtNzcsNSArNzcsMTEgQEAgbm9kZXZpY2UJYXRoCQkjIEF0 aGVyb3MgcGNpL2NhcmRidXMgTklDJwo+IG5vZGV2aWNlCWF0aF9wY2kKPiBub2RldmljZQlhdGhf aGFsCj4gbm9kZXZpY2UJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRy b2wgZm9yIGF0aAo+K25vZGV2aWNlCWlwdwo+K25vZGV2aWNlCWl3aQo+K25vZGV2aWNlCWl3bgo+ K25vZGV2aWNlCW1hbG8KPitub2RldmljZQltd2wKPiBub2RldmljZQlyYWwKPiBub2RldmljZQl3 aQo+K25vZGV2aWNlCXdwaQo+Cj4KPk9uIE1vbmRheSAwMiBNYXkgMjAxMSAxNDozOTo1NyBKb2hu IEJhbGR3aW4gd3JvdGU6Cj4+IE9uIFN1bmRheSwgTWF5IDAxLCAyMDExIDM6MDU6NTQgcG0gQmVy bmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTogU3Vu IE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBVUkw6 IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4gCj4+ID4g TG9nOgo+PiA+ICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+ID4gCj4+ ID4gTW9kaWZpZWQ6Cj4+ID4gICBoZWFkL3N5cy9jb25mL05PVEVTCj4+IAo+PiBQbGVhc2UgcHV0 IHRoZW0gaW4gaTM4Ni9jb25mL05PVEVTIGFuZCBhbWQ2NC9jb25mL05PVEVTLiAgQWxsIGRyaXZl cnMgc2hvdWxkIAo+PiBiZSBpbiBhcHByb3ByaWF0ZSBOT1RFUyBmaWxlcy4KPgo+VGhleSBhY3R1 YWxseSBhcmUuIE15IGZhdWx0IHdhcyB0byBub3QgY2hlY2sgdGhvc2UgMiBmaWxlcyBpbiB0aGUK PmZpcnN0IHBsYWNlLgo+Cj5Tb3JyeSB0aGUgbm9pc2UgdGhpcyBoYXMgY2F1c2VkLgo+Cj4tLSAK PkJlcm5oYXJkCj4KPgo+QXV0aG9yOiBqa2ltCj5EYXRlOiBNb24gTWF5ICAyIDE3OjA4OjM2IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzMxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzMxCj4KPkxvZzoKPiAgRml4IGJ1aWxkIHdpdGggY2xhbmcuICBQbGVh c2Ugbm90ZSB0aGVyZSBpcyBhbiBMTFZNL0NsYW5nIFBSOgo+ICAKPiAgaHR0cDovL2xsdm0ub3Jn L2J1Z3Mvc2hvd19idWcuY2dpP2lkPTkzNzkKPiAgCj4gIFJlcG9ydGVkIGJ5OglycGF1bG8sIGRp bQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMveDg2L3g4Ni90c2MuYwo+Cj5Nb2RpZmllZDogaGVh ZC9zeXMveDg2L3g4Ni90c2MuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMv eDg2L3g4Ni90c2MuYwlNb24gTWF5ICAyIDE3OjA0OjA5IDIwMTEJKHIyMjEzMzApCj4rKysgaGVh ZC9zeXMveDg2L3g4Ni90c2MuYwlNb24gTWF5ICAyIDE3OjA4OjM2IDIwMTEJKHIyMjEzMzEpCj5A QCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBfX2lubGluZSB2b2lkCj4gdm13YXJlX2h2Y2FsbCh1 X2ludCBjbWQsIHVfaW50ICpwKQo+IHsKPiAKPi0JX19hc20gX192b2xhdGlsZSgiaW5sICglJWR4 KSIKPisJX19hc20gX192b2xhdGlsZSgiaW5sICV3MywgJTAiCj4gCTogIj1hIiAocFswXSksICI9 YiIgKHBbMV0pLCAiPWMiIChwWzJdKSwgIj1kIiAocFszXSkKPiAJOiAiMCIgKFZNV19IVk1BR0lD KSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+IAk6ICJtZW1v cnkiKTsKPgo+Cj5PbiBNb25kYXkgMDIgTWF5IDIwMTEgMDc6MDggYW0sIERpbWl0cnkgQW5kcmlj IHdyb3RlOgo+PiBPbiAyMDExLTA0LTI5IDIwOjIwLCBKdW5nLXVrIEtpbSB3cm90ZToKPj4gLi4u Cj4+Cj4+ID4gK3N0YXRpYyBfX2lubGluZSB2b2lkCj4+ID4gK3Ztd2FyZV9odmNhbGwodV9pbnQg Y21kLCB1X2ludCAqcCkKPj4gPiArewo+PiA+ICsKPj4gPiArCV9fYXNtIF9fdm9sYXRpbGUoImlu bCAoJSVkeCkiCj4+ID4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAocFsyXSks ICI9ZCIgKHBbM10pCj4+ID4gKwk6ICIwIiAoVk1XX0hWTUFHSUMpLCAiMSIgKFVJTlRfTUFYKSwg IjIiIChjbWQpLCAiMyIKPj4gPiAoVk1XX0hWUE9SVCkgKwk6ICJtZW1vcnkiKTsKPj4gPiArfQo+ Pgo+PiBUaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGlu ayBpdCdzIHJpZ2h0IGluCj4+IHRoaXMgY2FzZToKPj4KPj4gc3lzL3g4Ni94ODYvdHNjLmM6MTAz OjE5OiBlcnJvcjogaW52YWxpZCBvcGVyYW5kIGZvciBpbnN0cnVjdGlvbgo+PiAgICAgICAgICBf X2FzbSBfX3ZvbGF0aWxlKCJpbmwgKCUlZHgpIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KPj4gPGlubGluZSBhc20+OjE6Njogbm90ZTogaW5zdGFudGlhdGVkIGludG8gYXNzZW1ibHkg aGVyZQo+PiAgICAgICAgICBpbmwgKCVkeCkKPj4gICAgICAgICAgICAgIF4KPj4KPj4gQ2FuIHdl IHBsZWFzZSBhZGQgYW4gZXhwbGljaXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBF LmcuOgo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90 c2MuYwo+PiBpbmRleCAwYjc1MTBjLi45NjM4MTY3IDEwMDY0NAo+PiAtLS0gYS9zeXMveDg2L3g4 Ni90c2MuYwo+PiArKysgYi9zeXMveDg2L3g4Ni90c2MuYwo+PiBAQCAtMTAwLDcgKzEwMCw3IEBA IHN0YXRpYyBfX2lubGluZSB2b2lkCj4+ICAgdm13YXJlX2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50 ICpwKQo+PiAgIHsKPj4KPj4gLQlfX2FzbSBfX3ZvbGF0aWxlKCJpbmwgKCUlZHgpIgo+PiArCV9f YXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+Pgo+PiAgIAk6ICI9YSIgKHBbMF0p LCAiPWIiIChwWzFdKSwgIj1jIiAocFsyXSksICI9ZCIgKHBbM10pCj4+ICAgCTogIjAiIChWTVdf SFZNQUdJQyksICIxIiAoVUlOVF9NQVgpLCAiMiIgKGNtZCksICIzIiAoVk1XX0hWUE9SVCkKPj4g ICAJOiAibWVtb3J5Iik7Cj4KPkZpeGVkIGluIHIyMjEzMzEuCj4KPlNvcnJ5IGZvciB0aGUgYnJl YWthZ2UuCj4KPkp1bmctdWsgS2ltCj4KPgo+T24gTW9uZGF5LCBNYXkgMDIsIDIwMTEgMTI6NTM6 MjIgcG0gQmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gT24gTW9uZGF5IDAyIE1heSAyMDExIDE0 OjM5OjU3IEpvaG4gQmFsZHdpbiB3cm90ZToKPj4gPiBPbiBTdW5kYXksIE1heSAwMSwgMjAxMSAz OjA1OjU0IHBtIEJlcm5oYXJkIFNjaG1pZHQgd3JvdGU6Cj4+ID4gPiBBdXRob3I6IGJzY2htaWR0 Cj4+ID4gPiBEYXRlOiBTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEKPj4gPiA+IE5ldyBSZXZpc2lv bjogMjIxMzAxCj4+ID4gPiBVUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzAxCj4+ID4gPiAKPj4gPiA+IExvZzoKPj4gPiA+ICAgVGhlc2UgYXJlIG9mIGNvdXJz ZSBpMzg2L2FtZDY0IG9ubHkuCj4+ID4gPiAKPj4gPiA+IE1vZGlmaWVkOgo+PiA+ID4gICBoZWFk L3N5cy9jb25mL05PVEVTCj4+ID4gCj4+ID4gUGxlYXNlIHB1dCB0aGVtIGluIGkzODYvY29uZi9O T1RFUyBhbmQgYW1kNjQvY29uZi9OT1RFUy4gIEFsbCBkcml2ZXJzIHNob3VsZCAKPj4gPiBiZSBp biBhcHByb3ByaWF0ZSBOT1RFUyBmaWxlcy4KPj4gCj4+IFRoZXkgYWN0dWFsbHkgYXJlLiBNeSBm YXVsdCB3YXMgdG8gbm90IGNoZWNrIHRob3NlIDIgZmlsZXMgaW4gdGhlCj4+IGZpcnN0IHBsYWNl Lgo+PiAKPj4gU29ycnkgdGhlIG5vaXNlIHRoaXMgaGFzIGNhdXNlZC4KPgo+QWgsIHdob29wcy4g OikKPgo+VGhlcmUgYXJlIG1hbnkgZHJpdmVycyBtaXNzaW5nIGZyb20gdGhlIE5PVEVTIGZpbGVz LCBzbyBJIGp1c3QgYXNzdW1lZCB0aGV5Cj5oYWQgYmVlbiBtaXNzaW5nLiA6LVAKPgo+SSB3cm90 ZSBhIHB5dGhvbiBzY3JpcHQgdG8gbG9vayBmb3IgbWlzc2luZyBkcml2ZXJzIGFuZCBvcHRpb25z LCBpdCdzIGF0Cj5zcmMvdG9vbHMvdG9vbHMvbm90ZXNjaGVjay9ub3Rlc2NoZWNrLnB5LiAgSSBo YXZlbid0IGhhZCB0aW1lIHRvIHNpdCBkb3duCj5hbmQgZml4IGFsbCB0aGUgbWlzc2luZyBlbnRy aWVzIHRob3VnaC4KPgo+LS0gCj5Kb2huIEJhbGR3aW4KPgo+Cj5BdXRob3I6IGRpbQo+RGF0ZTog TW9uIE1heSAgMiAxNzo0Njo1OSAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzMwo+VVJMOiBodHRw Oi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMzMwo+Cj5Mb2c6Cj4gIFJlbW92 ZSB1c3IvaW5jbHVkZS9uZnMva3JwYy5oIGFuZCB1c3IvaW5jbHVkZS9uZnMvbmZzZGlza2xlc3Mu aCBmcm9tCj4gIE9ic29sZXRlRmlsZXMuaW5jLCBzaW5jZSB0aGVzZSBmaWxlcyBoYXZlIGJlZW4g cmVpbmNhcm5hdGVkIGluIHRoZSBuZXcKPiAgTkZTIGltcGxlbWVudGF0aW9uLgo+ICAKPiAgUmV2 aWV3ZWQgYnk6CXJtYWNrbGVtCj4KPk1vZGlmaWVkOgo+ICBoZWFkL09ic29sZXRlRmlsZXMuaW5j Cj4KPk1vZGlmaWVkOiBoZWFkL09ic29sZXRlRmlsZXMuaW5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL09ic29sZXRlRmlsZXMuaW5jCU1vbiBNYXkgIDIgMTc6MTM6NDAgMjAxMQko cjIyMTMzMikKPisrKyBoZWFkL09ic29sZXRlRmlsZXMuaW5jCU1vbiBNYXkgIDIgMTc6NDY6NTkg MjAxMQkocjIyMTMzMykKPkBAIC00ODc0LDkgKzQ4NzQsNyBAQCBPTERfRklMRVMrPXVzci9pbmNs dWRlL25ldG5zL3NwaWRwLmgKPiBPTERfRklMRVMrPXVzci9pbmNsdWRlL25ldG5zL3NwcF9kZWJ1 Zy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZXRucy9zcHBfdGltZXIuaAo+IE9MRF9GSUxF Uys9dXNyL2luY2x1ZGUvbmV0bnMvc3BwX3Zhci5oCj4tT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9u ZnMva3JwYy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZnMvbmZzLmgKPi1PTERfRklMRVMr PXVzci9pbmNsdWRlL25mcy9uZnNkaXNrbGVzcy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9u ZnMvbmZzbV9zdWJzLmgKPiBPTERfRklMRVMrPXVzci9pbmNsdWRlL25mcy9uZnNtb3VudC5oCj4g T0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZnMvbmZzbm9kZS5oCj4KPgo+QXV0aG9yOiBtYXJjZWwK PkRhdGU6IE1vbiBNYXkgIDIgMTc6NDk6MDUgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMzQKPlVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMzQKPgo+TG9nOgo+ ICBEb24ndCB1c2UgdGhlIHdob2xlIHJlZ2lvbiA1IGZvciBLVkEsIGJlY2F1c2UgdGhlIENQVSBt YXkgbm90IGltcGxlbWVudCBhbGwKPiAgb2YgdGhlIDYxIGJpdHMgYXZhaWxhYmxlIHdpdGhpbiB0 aGUgcmVnaW9uIGZvciB2aXJ0dWFsIGFkZHJlc3NpbmcuICBTaW5jZQo+ICB0aGVyZSdzIG5vIGdv b2Qgd2F5IGZvciB1cyB0byBtYXAgb3V0IHRoZSBnYXAgaW4gdGhlIHZpcnR1YWwgYWRkcmVzcyBz cGFjZSwKPiAgbGltaXQgS1ZBIHRvIHRoZSBhcmNoaXRlY3R1cmFsIG1pbmltdW0gaW1wbGVtZW50 ZWQgYWRkcmVzcyBiaXRzLiBUaGlzIHN0aWxsCj4gIGdpdmVzIHVzIDEgcGV0YWJ5dGUgb2YgS1ZB LCBzbyBubyB3b3JyaWVzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3Zt cGFyYW0uaAo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3ZtcGFyYW0uaAo+PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3ZtcGFyYW0uaAlN b24gTWF5ICAyIDE3OjQ2OjU5IDIwMTEJKHIyMjEzMzMpCj4rKysgaGVhZC9zeXMvaWE2NC9pbmNs dWRlL3ZtcGFyYW0uaAlNb24gTWF5ICAyIDE3OjQ5OjA1IDIwMTEJKHIyMjEzMzQpCj5AQCAtMTgy LDcgKzE4Miw4IEBACj4gI2RlZmluZQlWTV9NSU5fQUREUkVTUwkJMAo+ICNkZWZpbmUJVk1fTUFY VVNFUl9BRERSRVNTCUlBNjRfUlJfQkFTRShJQTY0X1ZNX01JTktFUk5fUkVHSU9OKQo+ICNkZWZp bmUJVk1fTUlOX0tFUk5FTF9BRERSRVNTCUlBNjRfUlJfQkFTRShJQTY0X1ZNX01JTktFUk5fUkVH SU9OICsgMSkKPi0jZGVmaW5lCVZNX01BWF9LRVJORUxfQUREUkVTUwkoSUE2NF9SUl9CQVNFKElB NjRfVk1fTUlOS0VSTl9SRUdJT04gKyAyKSAtIDEpCj4rI2RlZmluZQlWTV9NQVhfS0VSTkVMX0FE RFJFU1MJXAo+KwkJKFZNX01JTl9LRVJORUxfQUREUkVTUyArIElBNjRfUkVHSU9OX0dBUF9TVEFS VCAtIDEpCj4gI2RlZmluZQlWTV9NQVhfQUREUkVTUwkJfjBVTAo+IAo+ICNkZWZpbmUJS0VSTkJB U0UJCVZNX01BWFVTRVJfQUREUkVTUwo+Cj4KPkF1dGhvcjogZGVscGhpago+RGF0ZTogTW9uIE1h eSAgMiAxODo0MTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzNQo+VVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMzNQo+Cj5Mb2c6Cj4gIENvcnJlY3QgYSB0 eXBvLiAgQWNjb3JkaW5nIHRvIEludGVsIGRvY3VtZW50IDMxODkxNCwgdGhlIFRqKG1heCkgZm9y IENvcmUgMgo+ICBEdW8gTW9iaWxlIENQVXMgc2hvdWxkIGJlIDEwNS4KPiAgCj4gIE5vdGljZWQg Ynk6CU1hcmsgSm9obnN0b24gPG1hcmtqZGIgZ21haWwuY29tPgo+ICBNRkMgYWZ0ZXI6CTMgZGF5 cwo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvZGV2L2NvcmV0ZW1wL2NvcmV0ZW1wLmMKPgo+TW9k aWZpZWQ6IGhlYWQvc3lzL2Rldi9jb3JldGVtcC9jb3JldGVtcC5jCj49PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KPi0tLSBoZWFkL3N5cy9kZXYvY29yZXRlbXAvY29yZXRlbXAuYwlNb24gTWF5ICAyIDE3 OjQ5OjA1IDIwMTEJKHIyMjEzMzQpCj4rKysgaGVhZC9zeXMvZGV2L2NvcmV0ZW1wL2NvcmV0ZW1w LmMJTW9uIE1heSAgMiAxODo0MTo1NCAyMDExCShyMjIxMzM1KQo+QEAgLTE5Miw3ICsxOTIsNyBA QCBjb3JldGVtcF9hdHRhY2goZGV2aWNlX3QgZGV2KQo+IAl9IGVsc2UgaWYgKGNwdV9tb2RlbCA9 PSAweDE3KSB7Cj4gCQlzd2l0Y2ggKGNwdV9zdGVwcGluZykgewo+IAkJY2FzZSAweDY6CS8qIE1v YmlsZSBDb3JlIDIgRHVvICovCj4tCQkJc2MtPnNjX3RqbWF4ID0gMTA0Owo+KwkJCXNjLT5zY190 am1heCA9IDEwNTsKPiAJCQlicmVhazsKPiAJCWRlZmF1bHQ6CS8qIFVua25vd24gc3RlcHBpbmcg Ki8KPiAJCQlicmVhazsKPgo+Cj5BdXRob3I6IGpoYgo+RGF0ZTogTW9uIE1heSAgMiAxOTowMjoz MCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzNgo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMzNgo+Cj5Mb2c6Cj4gIFRoZSBBQ1BJIEhvc3QtUENJIGJyaWRn ZSBkcml2ZXIgYWN0dWFsbHkgc3VwcG9ydHMgbXVsdGlwbGUgZG9tYWlucyB2aWEKPiAgdGhlIG9w dGlvbmFsIF9TRUcgZnVuY3Rpb24uICBSZXR1cm4gdGhhdCB2YWx1ZSAoYXAtPnNlZ21lbnQpIHJh dGhlciB0aGFuCj4gIDAgZm9yIHRoZSBwY2liIGRvbWFpbiBpdmFyLgo+Cj5Nb2RpZmllZDoKPiAg aGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5jCj4KPk1vZGlmaWVkOiBoZWFkL3N5 cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3BpLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0t IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwlNb24gTWF5ICAyIDE4OjQxOjU0 IDIwMTEJKHIyMjEzMzUpCj4rKysgaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTk6MDI6MzAgMjAxMQkocjIyMTMzNikKPkBAIC0yNjgsNyArMjY4LDcgQEAg YWNwaV9wY2liX3JlYWRfaXZhcihkZXZpY2VfdCBkZXYsIGRldmljZQo+IAo+ICAgICBzd2l0Y2gg KHdoaWNoKSB7Cj4gICAgIGNhc2UgUENJQl9JVkFSX0RPTUFJTjoKPi0JKnJlc3VsdCA9IDA7Cj4r CSpyZXN1bHQgPSBzYy0+YXBfc2VnbWVudDsKPiAJcmV0dXJuICgwKTsKPiAgICAgY2FzZSBQQ0lC X0lWQVJfQlVTOgo+IAkqcmVzdWx0ID0gc2MtPmFwX2J1czsKPgo+Cj5fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+c3ZuLXNyYy1oZWFkQGZyZWVic2Qub3Jn IG1haWxpbmcgbGlzdAo+aHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8v c3ZuLXNyYy1oZWFkCj5UbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNyYy1o ZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg== From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:10:13 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E0301065670; Mon, 2 May 2011 21:10:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 847038FC24; Mon, 2 May 2011 21:10:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42LADNA054797; Mon, 2 May 2011 21:10:13 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42LADdf054794; Mon, 2 May 2011 21:10:13 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105022110.p42LADdf054794@svn.freebsd.org> From: Dimitry Andric Date: Mon, 2 May 2011 21:10:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221347 - in head/usr.bin/clang: clang tblgen X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:10:13 -0000 Author: dim Date: Mon May 2 21:10:13 2011 New Revision: 221347 URL: http://svn.freebsd.org/changeset/base/221347 Log: Minor updates to the clang and tblgen manpages. Modified: head/usr.bin/clang/clang/clang.1 head/usr.bin/clang/tblgen/tblgen.1 Modified: head/usr.bin/clang/clang/clang.1 ============================================================================== --- head/usr.bin/clang/clang/clang.1 Mon May 2 21:05:52 2011 (r221346) +++ head/usr.bin/clang/clang/clang.1 Mon May 2 21:10:13 2011 (r221347) @@ -125,7 +125,7 @@ .\" ======================================================================== .\" .IX Title "CLANG 1" -.TH CLANG 1 "2010-10-25" "clang 2.9" "Clang Tools Documentation" +.TH CLANG 1 "2011-04-30" "clang 3.0" "Clang Tools Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -135,7 +135,7 @@ clang \- the Clang C, C++, and Objective .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBclang\fR [\fB\-c\fR|\fB\-S\fR|\fB\-E\fR] \fB\-std=\fR\fIstandard\fR \fB\-g\fR - [\fB\-O0\fR|\fB\-O1\fR|\fB\-O2\fR|\fB\-Os\fR|\fB\-O3\fR|\fB\-O4\fR] + [\fB\-O0\fR|\fB\-O1\fR|\fB\-O2\fR|\fB\-Os\fR|\fB\-Oz\fR|\fB\-O3\fR|\fB\-O4\fR] \fB\-W\fR\fIwarnings...\fR \fB\-pedantic\fR \fB\-I\fR\fIdir...\fR \fB\-L\fR\fIdir...\fR \fB\-D\fR\fImacro[=defn]\fR @@ -174,7 +174,7 @@ parse errors. The output of this stage .IX Item "Code Generation and Optimization" This stage translates an \s-1AST\s0 into low-level intermediate code (known as \*(L"\s-1LLVM\s0 \&\s-1IR\s0\*(R") and ultimately to machine code. This phase is responsible for optimizing -the generated code and handling target-specfic code generation. The output of +the generated code and handling target-specific code generation. The output of this stage is typically called a \*(L".s\*(R" file or \*(L"assembly\*(R" file. .Sp Clang also supports the use of an integrated assembler, in which the code @@ -325,12 +325,13 @@ generate instructions that are valid on may not exist on earlier ones. .SS "Code Generation Options" .IX Subsection "Code Generation Options" -.IP "\fB\-O0\fR \fB\-O1\fR \fB\-O2\fR \fB\-Os\fR \fB\-O3\fR \fB\-O4\fR" 4 -.IX Item "-O0 -O1 -O2 -Os -O3 -O4" +.IP "\fB\-O0\fR \fB\-O1\fR \fB\-O2\fR \fB\-Os\fR \fB\-Oz\fR \fB\-O3\fR \fB\-O4\fR" 4 +.IX Item "-O0 -O1 -O2 -Os -Oz -O3 -O4" Specify which optimization level to use. \fB\-O0\fR means \*(L"no optimization\*(R": this level compiles the fastest and generates the most debuggable code. \fB\-O2\fR is a moderate level of optimization which enables most optimizations. \fB\-Os\fR is like -\&\fB\-O2\fR with extra optimizations to reduce code size. \fB\-O3\fR is like \fB\-O2\fR, +\&\fB\-O2\fR with extra optimizations to reduce code size. \fB\-Oz\fR is like \fB\-Os\fR +(and thus \fB\-O2\fR), but reduces code size further. \fB\-O3\fR is like \fB\-O2\fR, except that it enables optimizations that take longer to perform or that may generate larger code (in an attempt to make the program run faster). On supported platforms, \fB\-O4\fR enables link-time optimization; object files are @@ -389,15 +390,9 @@ Pass \fIarg\fR to the static analyzer. .IP "\fB\-Xassembler\fR \fIarg\fR" 4 .IX Item "-Xassembler arg" Pass \fIarg\fR to the assembler. -.IP "\fB\-Xclang\fR \fIarg\fR" 4 -.IX Item "-Xclang arg" -Pass \fIarg\fR to the clang compiler frontend. .IP "\fB\-Xlinker\fR \fIarg\fR" 4 .IX Item "-Xlinker arg" Pass \fIarg\fR to the linker. -.IP "\fB\-mllvm\fR \fIarg\fR" 4 -.IX Item "-mllvm arg" -Pass \fIarg\fR to the \s-1LLVM\s0 backend. .IP "\fB\-Xpreprocessor\fR \fIarg\fR" 4 .IX Item "-Xpreprocessor arg" Pass \fIarg\fR to the preprocessor. Modified: head/usr.bin/clang/tblgen/tblgen.1 ============================================================================== --- head/usr.bin/clang/tblgen/tblgen.1 Mon May 2 21:05:52 2011 (r221346) +++ head/usr.bin/clang/tblgen/tblgen.1 Mon May 2 21:10:13 2011 (r221347) @@ -125,7 +125,7 @@ .\" ======================================================================== .\" .IX Title "TBLGEN 1" -.TH TBLGEN 1 "2010-06-19" "LLVM 2.9" "LLVM Command Guide" +.TH TBLGEN 1 "2011-04-23" "LLVM 3.0" "LLVM Command Guide" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -212,4 +212,4 @@ If \fBtblgen\fR succeeds, it will exit w occurs, it will exit with a non-zero value. .SH "AUTHORS" .IX Header "AUTHORS" -Maintained by The \s-1LLVM\s0 Team (). +Maintained by The \s-1LLVM\s0 Team (). From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:12:39 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6390F106564A for ; Mon, 2 May 2011 21:12:39 +0000 (UTC) (envelope-from lifanov@mail.lifanov.com) Received: from mail.lifanov.com (mail.lifanov.com [206.125.175.12]) by mx1.freebsd.org (Postfix) with ESMTP id 49D608FC13 for ; Mon, 2 May 2011 21:12:39 +0000 (UTC) Received: by mail.lifanov.com (Postfix, from userid 65534) id 31D85136EA2; Mon, 2 May 2011 20:55:35 +0000 (UTC) Received: from localhost (157.sub-174-252-144.myvzw.com [174.252.144.157]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lifanov.com (Postfix) with ESMTPSA id 94319136EA0 for ; Mon, 2 May 2011 20:55:31 +0000 (UTC) Date: Mon, 02 May 2011 16:57:03 -0400 Message-ID: From: Nikolai Lifanov To: svn-src-head@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Subject: Re: svn-src-head Digest, Vol 88, Issue 2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:12:39 -0000 Cgpzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZyB3cm90ZToKCj5TZW5kIHN2bi1zcmMt aGVhZCBtYWlsaW5nIGxpc3Qgc3VibWlzc2lvbnMgdG8KPglzdm4tc3JjLWhlYWRAZnJlZWJzZC5v cmcKPgo+VG8gc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHZpYSB0aGUgV29ybGQgV2lkZSBXZWIs IHZpc2l0Cj4JaHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNy Yy1oZWFkCj5vciwgdmlhIGVtYWlsLCBzZW5kIGEgbWVzc2FnZSB3aXRoIHN1YmplY3Qgb3IgYm9k eSAnaGVscCcgdG8KPglzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZwo+Cj5Zb3UgY2Fu IHJlYWNoIHRoZSBwZXJzb24gbWFuYWdpbmcgdGhlIGxpc3QgYXQKPglzdm4tc3JjLWhlYWQtb3du ZXJAZnJlZWJzZC5vcmcKPgo+V2hlbiByZXBseWluZywgcGxlYXNlIGVkaXQgeW91ciBTdWJqZWN0 IGxpbmUgc28gaXQgaXMgbW9yZSBzcGVjaWZpYwo+dGhhbiAiUmU6IENvbnRlbnRzIG9mIHN2bi1z cmMtaGVhZCBkaWdlc3QuLi4iCj4KPlRvZGF5J3MgVG9waWNzOgo+Cj4gICAxLiBzdm4gY29tbWl0 OiByMjIxMzAwIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgIDIuIHN2biBj b21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChCZXJuaGFyZCBTY2htaWR0KQo+ICAgMy4g UmU6IHN2biBjb21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChOYXRoYW4gV2hpdGVob3Ju KQo+ICAgNC4gc3ZuIGNvbW1pdDogcjIyMTMwMyAtIGhlYWQvdXNyLmJpbi9tYW4gKFVscmljaCBT cG9lcmxlaW4pCj4gICA1LiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYg KEJlcm5oYXJkIFNjaG1pZHQpCj4gICA2LiBzdm4gY29tbWl0OiByMjIxMzA0IC0gaGVhZC9zYmlu L3JlY292ZXJkaXNrIChVbHJpY2ggU3BvZXJsZWluKQo+ICAgNy4gc3ZuIGNvbW1pdDogcjIyMTMw NSAtIGhlYWQvc2hhcmUvbWFuL21hbjQgKENocmlzdGlhbiBCcnVlZmZlcikKPiAgIDguIHN2biBj b21taXQ6IHIyMjEzMDYgLSBpbiBoZWFkL3N5czogZnMvbmZzIG5mcyAoUmljayBNYWNrbGVtKQo+ ICAgOS4gc3ZuIGNvbW1pdDogcjIyMTMwNyAtIGhlYWQvc3lzL21pcHMvYXRoZXJvcyAoQWRyaWFu IENoYWRkKQo+ICAxMC4gc3ZuIGNvbW1pdDogcjIyMTMwOCAtIGhlYWQvdXNyLmJpbi9uZnNzdGF0 IChSaWNrIE1hY2tsZW0pCj4gIDExLiBzdm4gY29tbWl0OiByMjIxMzA5IC0gaGVhZC91c3IuYmlu L25mc3N0YXQgKFJpY2sgTWFja2xlbSkKPiAgMTIuIHN2biBjb21taXQ6IHIyMjEzMTIgLSBoZWFk L3N5cy9jb25mIChBZHJpYW4gQ2hhZGQpCj4gIDEzLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAt IGhlYWQvc3lzL2NvbmYgKEFkcmlhbiBDaGFkZCkKPiAgMTQuIHN2biBjb21taXQ6IHIyMjEzMTkg LSBoZWFkL3NoYXJlL21pc2MgKE1heGltIEtvbm92YWxvdikKPiAgMTUuIHN2biBjb21taXQ6IHIy MjEzMjAgLSBoZWFkL3N5cy9jb25mIChCcnVjZSBDcmFuKQo+ICAxNi4gc3ZuIGNvbW1pdDogcjIy MTMyMSAtIGhlYWQvc3lzL21pcHMvY29uZiAoQWRyaWFuIENoYWRkKQo+ICAxNy4gUmU6IHN2biBj b21taXQ6IHIyMjEzMjAgLSBoZWFkL3N5cy9jb25mIChBbGV4YW5kZXIgQmVzdCkKPiAgMTguIFJl OiBzdm4gY29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoRGltaXRyeSBBbmRyaWMp Cj4gIDE5LiBzdm4gY29tbWl0OiByMjIxMzI0IC0gaW4gaGVhZC9zeXM6IGFtZDY0L3BjaSBkZXYv YWNwaWNhCj4gICAgICBkZXYvcGNpCWkzODYvcGNpIHg4Ni94ODYgKEpvaG4gQmFsZHdpbikKPiAg MjAuIHN2biBjb21taXQ6IHIyMjEzMjYgLSBoZWFkL3N5cy9kZXYvcHVjIChKb2huIEJhbGR3aW4p Cj4gIDIxLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFs ZHdpbikKPiAgMjIuIHN2biBjb21taXQ6IHIyMjEzMjcgLSBoZWFkL3N5cy9kZXYvY2FyZGJ1cyAo Sm9obiBCYWxkd2luKQo+ICAyMy4gc3ZuIGNvbW1pdDogcjIyMTMyOCAtIGhlYWQvc3lzL25ldGlu ZXQgKE1pY2hhZWwgVHVleGVuKQo+ICAyNC4gc3ZuIGNvbW1pdDogcjIyMTMyOSAtIGhlYWQvc3lz L2kzODYvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjUuIFJlOiBzdm4gY29tbWl0OiByMjIx MzAxIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjYuIHN2biBjb21taXQ6 IHIyMjEzMzEgLSBoZWFkL3N5cy94ODYveDg2IChKdW5nLXVrIEtpbSkKPiAgMjcuIFJlOiBzdm4g Y29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoSnVuZy11ayBLaW0pCj4gIDI4LiBS ZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFsZHdpbikKPiAg MjkuIHN2biBjb21taXQ6IHIyMjEzMzMgLSBoZWFkIChEaW1pdHJ5IEFuZHJpYykKPiAgMzAuIHN2 biBjb21taXQ6IHIyMjEzMzQgLSBoZWFkL3N5cy9pYTY0L2luY2x1ZGUgKE1hcmNlbCBNb29sZW5h YXIpCj4gIDMxLiBzdm4gY29tbWl0OiByMjIxMzM1IC0gaGVhZC9zeXMvZGV2L2NvcmV0ZW1wIChY aW4gTEkpCj4gIDMyLiBzdm4gY29tbWl0OiByMjIxMzM2IC0gaGVhZC9zeXMvZGV2L2FjcGljYSAo Sm9obiBCYWxkd2luKQo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRlOiBTdW4gTWF5ICAxIDE4OjQy OjU2IDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzAwCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5v cmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAwCj4KPkxvZzoKPiAgQWRkIGZpbGVzIGZvciB3cGkoNCkK Pgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYvZmlsZXMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lz L2NvbmYvZmlsZXMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL2NvbmYvZmls ZXMJU3VuIE1heSAgMSAxODo0MTo1NyAyMDExCShyMjIxMjk5KQo+KysrIGhlYWQvc3lzL2NvbmYv ZmlsZXMJU3VuIE1heSAgMSAxODo0Mjo1NiAyMDExCShyMjIxMzAwKQo+QEAgLTE5OTUsNiArMTk5 NSw3IEBAIGRldi93aS9pZl93aS5jCQkJb3B0aW9uYWwgd2kKPiBkZXYvd2kvaWZfd2lfcGNjYXJk LmMJCW9wdGlvbmFsIHdpIHBjY2FyZAo+IGRldi93aS9pZl93aV9wY2kuYwkJb3B0aW9uYWwgd2kg cGNpCj4gZGV2L3dsL2lmX3dsLmMJCQlvcHRpb25hbCB3bCBpc2EKPitkZXYvd3BpL2lmX3dwaS5j CQlvcHRpb25hbCB3cGkgcGNpCj4gd3BpZncuYwkJCW9wdGlvbmFsIHdwaWZ3CQkJCQlcCj4gCWNv bXBpbGUtd2l0aAkiJHtBV0t9IC1mICRTL3Rvb2xzL2Z3X3N0dWIuYXdrIHdwaS5mdzp3cGlmdzox NTMyMjkgLW13cGkgLWMkey5UQVJHRVR9IiBcCj4gCW5vLWltcGxpY2l0LXJ1bGUgYmVmb3JlLWRl cGVuZCBsb2NhbAkJCQlcCj4KPgo+QXV0aG9yOiBic2NobWlkdAo+RGF0ZTogU3VuIE1heSAgMSAx OTowNTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwMQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVi c2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Cj5Mb2c6Cj4gIFRoZXNlIGFyZSBvZiBjb3Vy c2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9OT1RFUwo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9OT1RFUwo+PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4t LS0gaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE4OjQyOjU2IDIwMTEJKHIyMjEzMDAp Cj4rKysgaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEJKHIyMjEz MDEpCj5AQCAtMTkzNSw5ICsxOTM1LDYgQEAgZGV2aWNlCQl4bXBoeQkJIyBYYVF0aSBYTUFDIElJ Cj4gIwkoaGludCBvZiBwcmVmZXJfaW9tYXAgY2FuIGJlIGRvbmUgdG8gcHJlZmVyIEkvTyBpbnN0 ZWFkIG9mIE1lbSBtYXBwaW5nKQo+ICMgZ2VtOiAgQXBwbGUgR01BQy9TdW4gRVJJL1N1biBHRU0K PiAjIGhtZTogIFN1biBITUUgKEhhcHB5IE1lYWwgRXRoZXJuZXQpCj4tIyBpcHc6ICBJbnRlbCAy MTAwIHdpcmVsZXNzIE5JQ3MuCj4tIyBpd2k6ICBJbnRlbCAyMjAwQkcvMjIyNUJHLzI5MTVBQkcg d2lyZWxlc3MgTklDcy4KPi0jIGl3bjogIEludGVsIDQ5NjUvMTAwMC81MDAwLzYwMDAgd2lyZWxl c3MgTklDcy4KPiAjIGptZTogIEpNaWNyb24gSk1DMjYwIEZhc3QgRXRoZXJuZXQvSk1DMjUwIEdp Z2FiaXQgRXRoZXJuZXQgYmFzZWQgYWRhcHRlcnMuCj4gIyBsZTogICBBTUQgQW03OTAwIExBTkNF IGFuZCBBbTc5Qzl4eCBQQ25ldAo+ICMgbGdlOglTdXBwb3J0IGZvciBQQ0kgZ2lnYWJpdCBldGhl cm5ldCBhZGFwdGVycyBiYXNlZCBvbiB0aGUgTGV2ZWwgMQo+QEAgLTIwMTYsNyArMjAxMyw2IEBA IGRldmljZQkJeG1waHkJCSMgWGFRdGkgWE1BQyBJSQo+ICMgd2k6ICAgTHVjZW50IFdhdmVMQU4v SUVFRSA4MDIuMTEgUENNQ0lBIGFkYXB0ZXJzLiBOb3RlOiB0aGlzIHN1cHBvcnRzIGJvdGgKPiAj ICAgICAgIHRoZSBQQ01DSUEgYW5kIElTQSBjYXJkczogdGhlIElTQSBjYXJkIGlzIHJlYWxseSBh IFBDTUNJQSB0byBJU0EKPiAjICAgICAgIGJyaWRnZSB3aXRoIGEgUENNQ0lBIGFkYXB0ZXIgcGx1 Z2dlZCBpbnRvIGl0Lgo+LSMgd3BpOiAgSW50ZWwgMzk0NUFCRyB3aXJlbGVzcyBOSUNzLgo+ICMg eGU6ICAgWGlyY29tL0ludGVsIEV0aGVyRXhwcmVzcyBQcm8xMDAvMTYgUEMgQ2FyZCBldGhlcm5l dCBjb250cm9sbGVyLAo+ICMgICAgICAgQWNjdG9uIEZhc3QgRXRoZXJDYXJkLTE2LCBDb21wYXEg TmV0ZWxsaWdlbnQgMTAvMTAwIFBDIENhcmQsCj4gIyAgICAgICBUb3NoaWJhIDEwLzEwMCBFdGhl cm5ldCBQQyBDYXJkLCBYaXJjb20gMTYtYml0IEV0aGVybmV0ICsgTW9kZW0gNTYKPkBAIC0yMTM3 LDEzICsyMTMzLDkgQEAgb3B0aW9ucwkgICAJQUhfUlhDRkdfU0RNQU1XXzRCWVRFUwo+IGRldmlj ZQkJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRyb2wgZm9yIGF0aAo+ IGRldmljZQkJYndpCQkjIEJyb2FkY29tIEJDTTQzMCogQkNNNDMxKgo+IGRldmljZQkJYnduCQkj IEJyb2FkY29tIEJDTTQzeHgKPi1kZXZpY2UJCWlwdwkJIyBJbnRlbCAyMTAwIHdpcmVsZXNzIE5J Q3MuCj4tZGV2aWNlCQlpd2kJCSMgSW50ZWwgMjIwMEJHLzIyMjVCRy8yOTE1QUJHIHdpcmVsZXNz IE5JQ3MuCj4tZGV2aWNlCQlpd24JCSMgSW50ZWwgNDk2NS8xMDAwLzUwMDAvNjAwMCB3aXJlbGVz cyBOSUNzLgo+IGRldmljZQkJbWFsbwkJIyBNYXJ2ZWxsIExpYmVydGFzIHdpcmVsZXNzIE5JQ3Mu Cj4gZGV2aWNlCQltd2wJCSMgTWFydmVsbCA4OFc4MzYzIDgwMi4xMW4gd2lyZWxlc3MgTklDcy4K PiBkZXZpY2UJCXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDAgd2lyZWxlc3MgTklDcy4K Pi1kZXZpY2UJCXdwaQkJIyBJbnRlbCAzOTQ1QUJHIHdpcmVsZXNzIE5JQ3MuCj4gCj4gIyBVc2Ug InByaXZhdGUiIGp1bWJvIGJ1ZmZlcnMgYWxsb2NhdGVkIGV4Y2x1c2l2ZWx5IGZvciB0aGUgdGko NCkgZHJpdmVyLgo+ICMgVGhpcyBvcHRpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIFRJX0pV TUJPX0hEUlNQTElUIG9wdGlvbiBiZWxvdy4KPgo+Cj5PbiAwNS8wMS8xMSAxNDowNSwgQmVybmhh cmQgU2NobWlkdCB3cm90ZToKPj4gQXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAx IDE5OjA1OjU0IDIwMTEKPj4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Pgo+PiBMb2c6Cj4+ICAgIFRoZXNl IGFyZSBvZiBjb3Vyc2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj4KPkknbSBub3Qgc3VyZSB0aGF0J3Mg aW50cmluc2ljYWxseSB0cnVlLiBFdmVuIGlmIHRoZXkgbW9zdGx5IG9ubHkgc2hpcCAKPndpdGgg SW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3aGlj aCBjb3VsZCBiZSAKPnB1dCBpbnRvIG5vbi14ODYgc3lzdGVtcy4KPi1OYXRoYW4KPgo+Cj5BdXRo b3I6IHVxcwo+RGF0ZTogU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCj5OZXcgUmV2aXNpb246IDIy MTMwMwo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMwo+ Cj5Mb2c6Cj4gIExldCB1c2VycycgUEFUSCBkZWNpZGUgd2hpY2ggZ3JvZmYgc3VpdGUgdG8gcGlj ayB1cC4KPiAgCj4gIExldCBncm9mZiBwYXNzIHRoZSAtYyBmbGFnIHRvIGdyb3R0eSwgd2hpY2gg d2lsbCB0dXJuIG9mZiBBTlNJCj4gIHNlcXVlbmNlcy4gV2hpbGUgdGhlc2UgYXJlIG5vdCBhIHBy b2JsZW0gZm9yIG91ciBtb3JlL2xlc3MsIHRoZXkgZ2V0Cj4gIG1hbmdsZWQgYnkgY29sKDEpIGFu ZCB0aGlzIHdpbGwgcmVzdWx0IGluIGdhcmJhZ2Ugb3V0cHV0Lgo+ICAKPiAgVGhpcyBtYWtlcyBt YW4oMSkgd29yayB0b2dldGhlciB3aXRoIHRleHRwcm9jL2dyb2ZmLCBpbiBjYXNlIHRoZQo+ICB1 c2VyIGRlY2lkZWQgdG8gZGVsZXRlIHRoZSBvbGQgZ3JvZmYgZnJvbSBiYXNlICgtRFdJVEhPVVRf R1JPRkYpLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC91c3IuYmluL21hbi9tYW4uc2gKPgo+TW9kaWZp ZWQ6IGhlYWQvdXNyLmJpbi9tYW4vbWFuLnNoCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3Vzci5iaW4vbWFuL21hbi5zaAlTdW4gTWF5ICAxIDE5OjI0OjUxIDIwMTEJKHIyMjEzMDIp Cj4rKysgaGVhZC91c3IuYmluL21hbi9tYW4uc2gJU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCShy MjIxMzAzKQo+QEAgLTg4OSwxNiArODg5LDE4IEBAIGRvX3doYXRpcygpIHsKPiAJc2VhcmNoX3do YXRpcyB3aGF0aXMgIiRAIgo+IH0KPiAKPi1FUU49L3Vzci9iaW4vZXFuCj4rIyBVc2VyJ3MgUEFU SCBzZXR0aW5nIGRlY2lkZXMgb24gdGhlIGdyb2ZmLXN1aXRlIHRvIHBpY2sgdXAuCj4rRVFOPWVx bgo+K05ST0ZGPSdncm9mZiAtUyAtUC1jIC1XYWxsIC1tdHR5LWNoYXIgLW1hbicKPitQSUM9cGlj Cj4rUkVGRVI9cmVmZXIKPitUQkw9dGJsCj4rVFJPRkY9J2dyb2ZmIC1TIC1QLWMgLW1hbicKPitW R1JJTkQ9dmdyaW5kCj4rCj4gQ09MPS91c3IvYmluL2NvbAo+IExPQ0FMRT0vdXNyL2Jpbi9sb2Nh bGUKPi1OUk9GRj0nL3Vzci9iaW4vZ3JvZmYgLVMgLVdhbGwgLW10dHktY2hhciAtbWFuJwo+LVBJ Qz0vdXNyL2Jpbi9waWMKPiBTWVNDVEw9L3NiaW4vc3lzY3RsCj4tVEJMPS91c3IvYmluL3RibAo+ LVRST0ZGPScvdXNyL2Jpbi9ncm9mZiAtUyAtbWFuJwo+LVJFRkVSPS91c3IvYmluL3JlZmVyCj4t VkdSSU5EPS91c3IvYmluL3ZncmluZAo+IAo+IGRlYnVnPTAKPiBtYW5fZGVmYXVsdF9zZWN0aW9u cz0nMToxYW91dDo4OjI6MzpuOjQ6NTo2Ojc6OTpsJwo+Cj4KPk9uIFN1bmRheSAwMSBNYXkgMjAx MSAyMToyODoyOCBOYXRoYW4gV2hpdGVob3JuIHdyb3RlOgo+PiBPbiAwNS8wMS8xMSAxNDowNSwg QmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTog U3VuIE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBV Ukw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4KPj4g PiBMb2c6Cj4+ID4gICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+IAo+ PiAKPj4gSSdtIG5vdCBzdXJlIHRoYXQncyBpbnRyaW5zaWNhbGx5IHRydWUuIEV2ZW4gaWYgdGhl eSBtb3N0bHkgb25seSBzaGlwIAo+PiB3aXRoIEludGVsIG1vdGhlcmJvYXJkcywgbWFueSBvZiB0 aGVzZSBhcmUgTWluaS1QQ0kgcGFydHMgd2hpY2ggY291bGQgYmUgCj4+IHB1dCBpbnRvIG5vbi14 ODYgc3lzdGVtcy4KPgo+WWVzLCBpbmRlZWQuIFRob3NlIG1pZ2h0IG9mIGNvdXJzZSBiZSB1c2Vk IG9uIG90aGVyIHBsYXRmb3JtcyB0b28KPih3ZWxsIGF0IGxlYXN0IGl0IGZpdHMgaW50byB0aGUg c2xvdCwgSSBrbm93IHRoYXQgY2VydGFpbiBmZWF0dXJlcwo+YXJlIG5vdCBldmVuIGF2YWlsYWJs ZSBvbiBBTUQgcGxhdGZvcm1zKS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPmFueW9uZSBldmVy IHRyaWVkIG9uZSBvZiBpdCBvbiBtaXBzIGZvciBleGFtcGxlLgo+Cj5JIGRvbid0IG1pbmQgYmVp bmcgcHJvdmVuIHdyb25nIGFuZCBpZiBzbyBtb3ZlIHRoZSBlbnRyaWVzIGJhY2sgdG8KPmEgbW9y ZSBnZW5lcmljIGxvY2F0aW9uLiBDdXJyZW50bHkgSSdtIGp1c3QgdHJ5aW5nIG1pbWljIHRoZSBt b2R1bGUKPmJlaGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+LS0gCj5CZXJuaGFy ZAo+Cj4KPkF1dGhvcjogdXFzCj5EYXRlOiBTdW4gTWF5ICAxIDIwOjE0OjEwIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzA0Cj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzA0Cj4KPkxvZzoKPiAgcmVjb3ZlcmRpc2soOCk6IHRyZWF0IG91dHB1dCBmaWxlIGNv bnNpc3RlbnRseSBhbmQgYWJvcnQgb24gRUlOVkFMCj4gIAo+ICBUaGlzIGltcHJvdmVzIHVzYWJp bGl0eSBhIGxpdHRsZSBhcyB3ZSBubyBsb25nZXIgcmVxdWlyZSB1c2luZyB0b3VjaC4KPiAgQWxz byByZXdvcmQgdGhlIG1hbnBhZ2Ugd3J0LiBwYXJhbWV0ZXJzIGFuZCBmaXggdXNhZ2UoKSBbMV0K PiAgCj4gIFdpdGggbm8gbWVkaWEgaW4gYSBjZCg0KSBkcml2ZSwgdGhlIHJlYWRzIHdpbGwgbG9v cCBwcm9kdWNpbmcgRUlOVkFMLAo+ICBhYm9ydCBpbiB0aGF0IGNhc2UgWzJdLgo+ICAKPiAgRG9j dW1lbnQgdGhlIHNob3J0Y29taW5nIG9mIHNlY3RvcnNpemUgYW5kIE1BWFBIWVMgKGEgcXVpY2sg c29sdXRpb24KPiAgdG8gdGhpcyBtaWdodCBiZSBoYXZpbmcgTUFYUEhZUyBhcyB0aGUgImJpZ3Np emUiLCBpbiBzaG9ydCB0ZXN0aW5nIGl0Cj4gIGRpZG4ndCBtYWtlIGEgZGlmZmVyZW5jZSBvbiB0 aHJvdWdocHV0KS4KPiAgCj4gIFN1Ym1pdHRlZCBieToJYXJ1bmRlbCBbMV0KPiAgUFI6CQliaW4v MTU0NTI4IFsyXQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJkaXNrLmMKPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay4xCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suMQlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTI0LDcgKzI0LDcg QEAKPiAuXCIKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE1heSA2LCAyMDA2Cj4rLkRkIE1h eSAxLCAyMDExCj4gLkR0IFJFQ09WRVJESVNLIDEKPiAuT3MKPiAuU2ggTkFNRQo+QEAgLTMzLDE3 ICszMywyMCBAQAo+IC5TaCBTWU5PUFNJUwo+IC5ObQo+IC5PcCBGbCBiIEFyIGJpZ3NpemUKPi0u T3AgRmwgciBBciBybGlzdAo+LS5PcCBGbCBzIEFyIHNuYXBzaG90Cj4tLk9wIEZsIHcgQXIgd2xp c3QKPi0uQXIgc3BlY2lhbAo+LS5PcCBBciBmaWxlCj4rLk9wIEZsIHIgQXIgcmVhZGxpc3QKPisu T3AgRmwgcyBBciBpbnRlcnZhbAo+Ky5PcCBGbCB3IEFyIHdyaXRlbGlzdAo+Ky5BciBzb3VyY2UK PisuT3AgQXIgZGVzdGluYXRpb24KPiAuU2ggREVTQ1JJUFRJT04KPiBUaGUKPiAuTm0KPiB1dGls aXR5IHJlYWRzIGRhdGEgZnJvbSB0aGUKPi0uQXIgc3BlY2lhbAo+Ky5BciBzb3VyY2UKPiBmaWxl IHVudGlsIGFsbCBibG9ja3MgY291bGQgYmUgc3VjY2Vzc2Z1bGx5IHJlYWQuCj4rSWYKPisuQXIg ZGVzdGluYXRpb24KPit3YXMgc3BlY2lmaWVkIGFsbCBkYXRhIGlzIGJlaW5nIHdyaXR0ZW4gdG8g dGhhdCBmaWxlLgo+IEl0IHN0YXJ0cyByZWFkaW5nIGluIG11bHRpcGxlcyBvZiB0aGUgc2VjdG9y IHNpemUuCj4gV2hlbmV2ZXIgYSBibG9jayBmYWlscywgaXQgaXMgcHV0IHRvIHRoZSBlbmQgb2Yg dGhlIHdvcmtpbmcgcXVldWUgYW5kIHdpbGwgYmUKPiByZWFkIGFnYWluLCBwb3NzaWJseSB3aXRo IGEgc21hbGxlciByZWFkIHNpemUuCj5AQCAtNTksMTMgKzYyLDEzIEBAIFRoZSBvcHRpb25zIGFy ZSBhcyBmb2xsb3dzOgo+IFRoZSBzaXplIG9mIHJlYWRzIGF0dGVtcHRlZCBmaXJzdC4KPiBUaGUg bWlkZGxlIHBhc3MgaXMgcm91Z2hseSB0aGUgbG9nYXJpdGhtaWMgYXZlcmFnZSBvZiB0aGUgYmln c2l6ZSBhbmQKPiB0aGUgc2VjdG9yc2l6ZS4KPi0uSXQgRmwgciBBciBybGlzdAo+Ky5JdCBGbCBy IEFyIHJlYWRsaXN0Cj4gUmVhZCB0aGUgbGlzdCBvZiBibG9ja3MgYW5kIGJsb2NrIHNpemVzIHRv IHJlYWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUuCj4tLkl0IEZsIHMgQXIgc25hcHNob3QKPi1I b3cgb2Z0ZW4gd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgd29ya2xpc3QgZmlsZSB3aGlsZSB0aGluZ3Mg Z28gT0suCj4tVGhlIGRlZmF1bHQgaXMgNjAgYW5kIHRoZSB1bml0cyBpcyAicHJvZ3Jlc3MgbWVz c2FnZXMiIHNvIGlmIHRoaW5ncwo+Ky5JdCBGbCBzIEFyIGludGVydmFsCj4rSG93IG9mdGVuIHdl IHNob3VsZCB1cGRhdGUgdGhlIHdyaXRlbGlzdCBmaWxlIHdoaWxlIHRoaW5ncyBnbyBPSy4KPitU aGUgZGVmYXVsdCBpcyA2MCBhbmQgdGhlIHVuaXQgaXMgInByb2dyZXNzIG1lc3NhZ2VzIiBzbyBp ZiB0aGluZ3MKPiBnbyB3ZWxsLCB0aGlzIGlzIHRoZSBzYW1lIGFzIG9uY2UgcGVyIG1pbnV0ZS4K Pi0uSXQgRmwgdyBBciB3bGlzdAo+Ky5JdCBGbCB3IEFyIHdyaXRlbGlzdAo+IFdyaXRlIHRoZSBs aXN0IG9mIHJlbWFpbmluZyBibG9ja3MgdG8gcmVhZCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgaWYK PiAuTm0KPiBpcyBhYm9ydGVkIHZpYQo+QEAgLTEwMiwyMCArMTA1LDE5IEBAIFBlcmNlbnQgY29t cGxldGUuCj4gLlNoIEVYQU1QTEVTCj4gLkJkIC1saXRlcmFsCj4gIyByZWNvdmVyIGRhdGEgZnJv bSBmYWlsaW5nIGhhcmQgZHJpdmUgYWQzCj4tdG91Y2ggL2RhdGEvbG90c19vZl9zcGFjZQo+LXJl Y292ZXJkaXNrIC9kZXYvYWQzIC9kYXRhL2xvdHNfb2Zfc3BhY2UKPityZWNvdmVyZGlzayAvZGV2 L2FkMyAvZGF0YS9kaXNrLmltZwo+IAo+ICMgY2xvbmUgYSBoYXJkIGRpc2sKPiByZWNvdmVyZGlz ayAvZGV2L2FkMyAvZGV2L2FkNAo+IAo+ICMgcmVhZCBhbiBJU08gaW1hZ2UgZnJvbSBhIENELVJP TQo+LXRvdWNoIC9kYXRhL2NkLmlzbzsgcmVjb3ZlcmRpc2sgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC9kZXYvY2QwIC9kYXRhL2NkLmlzbwo+IAo+ICMgY29udGludWUgcmVh ZGluZyBmcm9tIGEgYnJva2VuIENEIGFuZCB1cGRhdGUgdGhlIGV4aXN0aW5nIHdvcmtsaXN0Cj4t cmVjb3ZlcmRpc2sgLXIgd29ya2xpc3QgLXcgd29ya2xpc3QgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC1yIHdvcmtsaXN0IC13IHdvcmtsaXN0IC9kZXYvY2QwIC9kYXRhL2Nk Lmlzbwo+IAo+ICMgcmVjb3ZlciBhIHNpbmdsZSBmaWxlIGZyb20gdGhlIHVucmVhZGFibGUgbWVk aWEKPi10b3VjaCBmaWxlLmF2aTsgcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZp Cj4rcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZpCj4gCj4gIyBJZiB0aGUgZGlz ayBoYW5ncyB0aGUgc3lzdGVtIG9uIHJlYWQtZXJyb3JzIHRyeToKPiByZWNvdmVyZGlzayAtYiAw IC9kZXYvYWQzIC9zb21ld2hlcmUKPkBAIC0xMzMsNyArMTM1LDcgQEAgdXRpbGl0eSBmaXJzdCBh cHBlYXJlZCBpbgo+IFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3YXMgZG9uZSBieQo+IC5B biBQb3VsLUhlbm5pbmcgS2FtcCBBcSBwaGtARnJlZUJTRC5vcmcKPiB3aXRoIG1pbm9yIGltcHJv dmVtZW50cyBmcm9tCj4tLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1c3BvZXJsZWluQGdtYWls LmNvbSAuCj4rLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1cXNARnJlZUJTRC5vcmcgLgo+IC5Q cAo+IFRoaXMgbWFudWFsIHBhZ2Ugd2FzIHdyaXR0ZW4gYnkKPiAuQW4gVWxyaWNoIFNwXCg6b3Js ZWluIC4KPkBAIC0xNDQsNCArMTQ2LDEzIEBAIFRoaXMgaXMgZHVlIHRvIHRoZSBETUEgcmVhZHMg YmVpbmcgc3BsaXQKPiBUaGVzZSByZWFkcyB0aGVuIGZhaWwgaWYgdGhlIHNlY3RvcnNpemUgaXMg bm90IGEgZGl2aXNvciBvZiAxMjhrQi4KPiBXaGVuIHJlYWRpbmcgYSBmdWxsIHJhdyBhdWRpbyBD RCwgdGhpcyBsZWFkcyB0byByb3VnaGx5IDcwMCBlcnJvciBtZXNzYWdlcwo+IGZseWluZyBieS4K Pi1UaGlzIGlzIGhhcm1sZXNzLgo+K1RoaXMgaXMgaGFybWxlc3MgYW5kIGNhbiBiZSBhdm9pZGVk IGJ5IHNldHRpbmcKPisuRmwgYgo+K3RvIG5vIG1vcmUgdGhhbiAxMjhrQi4KPisuXCIuUHAKPisu XCJXaGVuIHJlYWRpbmcgZnJvbSBvcHRpY2FsIG1lZGlhLCBhIGJ1ZyBpbiB0aGUgR0VPTSBmcmFt ZXdvcmsgd2lsbAo+Ky5cInByZXZlbnQgaXQgZnJvbSBzZWVpbmcgdGhhdCB0aGUgbWVkaWEgaGFz IGJlZW4gcmVtb3ZlZC4KPisuXCJUaGUgZGV2aWNlIGNhbiBzdGlsbCBiZSBvcGVuZWQsIGJ1dCBh bGwgcmVhZHMgd2lsbCBmYWlsLgo+Ky5cIlRoaXMgaXMgdXN1YWxseSBoYXJtbGVzcywgYnV0IHdp bGwgc2VuZAo+Ky5cIi5ObQo+Ky5cImludG8gYW4gaW5maW5pdGUgbG9vcC4KPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suYwlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLmMJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTg2LDcgKzg2LDcg QEAgc2F2ZV93b3JrbGlzdCh2b2lkKQo+IAkJaWYgKGZpbGUgPT0gTlVMTCkKPiAJCQllcnIoMSwg IkVycm9yIG9wZW5pbmcgZmlsZSAlcyIsIHd3b3JrbGlzdCk7Cj4gCj4tCQlUQUlMUV9GT1JFQUNI KGxscCwgJmx1bXBzLCBsaXN0KSAKPisJCVRBSUxRX0ZPUkVBQ0gobGxwLCAmbHVtcHMsIGxpc3Qp Cj4gCQkJZnByaW50ZihmaWxlLCAiJWpkICVqZCAlZFxuIiwKPiAJCQkgICAgKGludG1heF90KWxs cC0+c3RhcnQsIChpbnRtYXhfdClsbHAtPmxlbiwKPiAJCQkgICAgbGxwLT5zdGF0ZSk7Cj5AQCAt MTM0LDggKzEzNCw4IEBAIHJlYWRfd29ya2xpc3Qob2ZmX3QgdCkKPiBzdGF0aWMgdm9pZAo+IHVz YWdlKHZvaWQpCj4gewo+LQkodm9pZClmcHJpbnRmKHN0ZGVyciwKPi0gICAgInVzYWdlOiByZWNv dmVyZGlzayBbLXIgd29ya2xpc3RdIFstdyB3b3JrbGlzdF0gc291cmNlLWRyaXZlIFtkZXN0aW5h dGlvbl1cbiIpOwo+Kwkodm9pZClmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiByZWNvdmVyZGlzayBb LWIgYmlnc2l6ZV0gWy1yIHJlYWRsaXN0XSAiCj4rCSAgICAiWy1zIGludGVydmFsXSBbLXcgd3Jp dGVsaXN0XSBzb3VyY2UgW2Rlc3RpbmF0aW9uXVxuIik7Cj4gCWV4aXQoMSk7Cj4gfQo+IAo+QEAg LTE1Myw3ICsxNTMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdKQo+IAlp bnQgZmRyLCBmZHc7Cj4gCW9mZl90IHQsIGQsIHN0YXJ0LCBsZW47Cj4gCXNpemVfdCBpLCBqOwo+ LQlpbnQgZXJyb3IsIGZsYWdzLCBzdGF0ZTsKPisJaW50IGVycm9yLCBzdGF0ZTsKPiAJdV9jaGFy ICpidWY7Cj4gCXVfaW50IHNlY3RvcnNpemU7Cj4gCXRpbWVfdCB0MSwgdDI7Cj5AQCAtMTk2LDcg KzE5Niw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10pCj4gCWVycm9yID0g ZnN0YXQoZmRyLCAmc2IpOwo+IAlpZiAoZXJyb3IgPCAwKQo+IAkJZXJyKDEsICJmc3RhdCBmYWls ZWQiKTsKPi0JZmxhZ3MgPSBPX1dST05MWTsKPiAJaWYgKFNfSVNCTEsoc2Iuc3RfbW9kZSkgfHwg U19JU0NIUihzYi5zdF9tb2RlKSkgewo+IAkJZXJyb3IgPSBpb2N0bChmZHIsIERJT0NHU0VDVE9S U0laRSwgJnNlY3RvcnNpemUpOwo+IAkJaWYgKGVycm9yIDwgMCkKPkBAIC0yMTAsNyArMjA5LDYg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSkKPiAJCQllcnIoMSwgIkRJT0NH TUVESUFTSVpFIGZhaWxlZCIpOwo+IAl9IGVsc2Ugewo+IAkJdCA9IHNiLnN0X3NpemU7Cj4tCQlm bGFncyB8PSBPX0NSRUFUIHwgT19UUlVOQzsKPiAJfQo+IAo+IAlpZiAoYmlnc2l6ZSA8IG1pbnNp emUpCj5AQCAtMjI5LDkgKzIyNywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJn dltdKQo+IAkJZXJyKDEsICJDYW5ub3QgYWxsb2NhdGUgJXp1IGJ5dGVzIGJ1ZmZlciIsIGJpZ3Np emUpOwo+IAo+IAlpZiAoYXJnYyA+IDEpIHsKPi0JCWZkdyA9IG9wZW4oYXJndlsxXSwgZmxhZ3Ms IERFRkZJTEVNT0RFKTsKPisJCWZkdyA9IG9wZW4oYXJndlsxXSwgT19XUk9OTFkgfCBPX0NSRUFU LCBERUZGSUxFTU9ERSk7Cj4gCQlpZiAoZmR3IDwgMCkKPiAJCQllcnIoMSwgIkNhbm5vdCBvcGVu IHdyaXRlIGRlc2NyaXB0b3IgJXMiLCBhcmd2WzFdKTsKPisJCWlmIChmdHJ1bmNhdGUoZmR3LCB0 KSA8IDApCj4rCQkJZXJyKDEsICJDYW5ub3QgdHJ1bmNhdGUgb3V0cHV0ICVzIHRvICVqZCBieXRl cyIsCj4rCQkJICAgIGFyZ3ZbMV0sIChpbnRtYXhfdCl0KTsKPiAJfSBlbHNlCj4gCQlmZHcgPSAt MTsKPiAKPkBAIC0yOTIsNiArMjkzLDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBh cmd2W10pCj4gCQkJfQo+IAkJCXByaW50ZigiXG4lamQgJXp1IGZhaWxlZCAoJXMpXG4iLAo+IAkJ CSAgICBscC0+c3RhcnQsIGksIHN0cmVycm9yKGVycm5vKSk7Cj4rCQkJaWYgKGVycm5vID09IEVJ TlZBTCkgewo+KwkJCQlwcmludGYoInJlYWQoKSBzaXplIHRvbyBiaWc/IFRyeSB3aXRoIC1iIDEz MTA3MiIpOwo+KwkJCQlhYm9ydGluZyA9IDE7Cj4rCQkJfQo+IAkJCWlmIChlcnJubyA9PSBFTlhJ TykKPiAJCQkJYWJvcnRpbmcgPSAxOwo+IAkJCW5ld19sdW1wKGxwLT5zdGFydCwgaSwgbHAtPnN0 YXRlICsgMSk7Cj4KPgo+QXV0aG9yOiBicnVlZmZlcgo+RGF0ZTogU3VuIE1heSAgMSAyMDo0Njoz NyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMwNQo+Cj5Mb2c6Cj4gIE1pbm9yIGNsZWFudXAuCj4KPk1vZGlm aWVkOgo+ICBoZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAo+Cj5Nb2RpZmllZDogaGVhZC9zaGFy ZS9tYW4vbWFuNC92eGdlLjQKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc2hhcmUv bWFuL21hbjQvdnhnZS40CVN1biBNYXkgIDEgMjA6MTQ6MTAgMjAxMQkocjIyMTMwNCkKPisrKyBo ZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEz MDUpCj5AQCAtNDksMTMgKzQ5LDEyIEBAIFRoZQo+IC5ObQo+IGRyaXZlciBwcm92aWRlcyBzdXBw b3J0IGZvciBOZXRlcmlvbiBYMzEwMCBhZGFwdGVycy4KPiBUaGUgZHJpdmVyIHN1cHBvcnRzIFRD UCBTZWdtZW50YXRpb24gT2ZmbG9hZCAoVFNPL0xTTyksIAo+LUxhcmdlIFJlY2VpdmUgT2ZmbGFv ZCAoTFJPKSwgSnVtYm8gRnJhbWVzLCBSZWNlaXZlIFRyYWZmaWMgSGFzaCAoUlRIKSwKPitMYXJn ZSBSZWNlaXZlIE9mZmxvYWQgKExSTyksIEp1bWJvIEZyYW1lcywgUmVjZWl2ZSBUcmFmZmljIEhh c2ggKFJUSCksCj4gVkxBTiwgUHJvbWlzY3VvdXMgbW9kZSBhbmQgTXVsdGkgZnVuY3Rpb24gbW9k ZS4KPiAuUHAKPi0KPiBUaGUKPiAuTm0KPi1kcml2ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGZ1bmN0 aW9uIG1vZGVzOgo+K2RyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG1vZGVz Ogo+IC5CZCAtcmFnZ2VkIC1vZmZzZXQgaW5kZW50Cj4gLkNkICJTRjFfVlAxNyAtIDEgZnVuY3Rp b24gd2l0aCAxNyBWUEFUSHMiCj4gLkVkCj4KPgo+QXV0aG9yOiBybWFja2xlbQo+RGF0ZTogU3Vu IE1heSAgMSAyMjoxOTo1MiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNgo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNgo+Cj5Mb2c6Cj4gIEFkZCB0aGUg a2VybmVsIHN1cHBvcnQgbmVlZGVkIHRvIHplcm8gb3V0IHRoZSBuZnNzdGF0cwo+ICBzdHJ1Y3R1 cmUgZm9yIHRoZSBuZXcgTkZTIHN1YnN5c3RlbS4gVGhpcyB3aWxsIGJlIHVzZWQKPiAgYnkgbmZz c3RhdHMuYyB0byBpbXBsZW1lbnQgdGhlICIteiIgb3B0aW9uLgo+ICAKPiAgTUZDIGFmdGVyOgky IHdlZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3N5cy9mcy9uZnMvbmZzX2NvbW1vbnBvcnQuYwo+ ICBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2ZzL25mcy9uZnNf Y29tbW9ucG9ydC5jCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3N5cy9mcy9uZnMv bmZzX2NvbW1vbnBvcnQuYwlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEzMDUpCj4rKysg aGVhZC9zeXMvZnMvbmZzL25mc19jb21tb25wb3J0LmMJU3VuIE1heSAgMSAyMjoxOTo1MiAyMDEx CShyMjIxMzA2KQo+QEAgLTQwNCw2ICs0MDQsOCBAQCBuZnNzdmNfY2FsbChzdHJ1Y3QgdGhyZWFk ICpwLCBzdHJ1Y3QgbmZzCj4gCX0gZWxzZSBpZiAodWFwLT5mbGFnICYgTkZTU1ZDX0dFVFNUQVRT KSB7Cj4gCQllcnJvciA9IGNvcHlvdXQoJm5ld25mc3N0YXRzLAo+IAkJICAgIENBU1RfVVNFUl9B RERSX1QodWFwLT5hcmdwKSwgc2l6ZW9mIChuZXduZnNzdGF0cykpOwo+KwkJaWYgKCh1YXAtPmZs YWcgJiBORlNTVkNfWkVST1NUQVRTKSAhPSAwICYmIGVycm9yID09IDApCj4rCQkJYnplcm8oJm5l d25mc3N0YXRzLCBzaXplb2YobmV3bmZzc3RhdHMpKTsKPiAJCXJldHVybiAoZXJyb3IpOwo+IAl9 IGVsc2UgaWYgKHVhcC0+ZmxhZyAmIE5GU1NWQ19ORlNVU0VSRFBPUlQpIHsKPiAJCXVfc2hvcnQg c29ja3BvcnQ7Cj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL25mcy9uZnNzdmMuaAlTdW4gTWF5ICAxIDIwOjQ2OjM3 IDIwMTEJKHIyMjEzMDUpCj4rKysgaGVhZC9zeXMvbmZzL25mc3N2Yy5oCVN1biBNYXkgIDEgMjI6 MTk6NTIgMjAxMQkocjIyMTMwNikKPkBAIC02NCw1ICs2NCw2IEBACj4gI2RlZmluZQlORlNTVkNf Q0JBRERTT0NLCTB4MDAyMDAwMDAKPiAjZGVmaW5lCU5GU1NWQ19HRVRTVEFUUwkJMHgwMDQwMDAw MAo+ICNkZWZpbmUJTkZTU1ZDX0JBQ0tVUFNUQUJMRQkweDAwODAwMDAwCj4rI2RlZmluZQlORlNT VkNfWkVST1NUQVRTCTB4MDEwMDAwMDAJLyogbW9kaWZpZXIgZm9yIEdFVFNUQVRTICovCj4gCj4g I2VuZGlmIC8qIF9ORlNfTkZTU1ZDX0ggKi8KPgo+Cj5BdXRob3I6IGFkcmlhbgo+RGF0ZTogU3Vu IE1heSAgMSAyMzozMjozNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNwo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNwo+Cj5Mb2c6Cj4gIFNvbWUgQVI3 MjR4IFBDSWUgZml4ZXMsIHdoaWNoIHNob3VsZCB3cmFwIHVwIHRoZSBmaXJzdCByb3VuZAo+ICBv ZiBlbmRpYW4tbmVzcyBpc3N1ZXMgd2l0aCB0aGUgQVI3MjR4Lgo+ICAKPiAgRnJvbSBMdWl6Ogo+ ICAKPiAgKiBGaXggdGhlIGJ1cyBzcGFjZSB0YWcgdXNlZCBzbyBlbmRpYW4tbmVzcyBpcyBjb3Jy ZWN0bHkgaGFuZGxlZDsKPiAgKiBPbmx5IGRvIHRoZSB3b3JrYXJvdW5kIGZvciB0aGUgQVI3MjQw OyBBUjcyNDEvQVI3MjQyIChQQjkyKQo+ICAgIGRvbid0IHJlcXVpcmUgdGhpcwo+ICAKPiAgRnJv bSBtZToKPiAgCj4gICogQWRkIGEgcmVhZCBmbHVzaCBmcm9tIG9wZW53cnQKPiAgCj4gIFN1Ym1p dHRlZCBieToJTHVpeiBPdGF2aW8gTyBTb3V6YQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvbWlw cy9hdGhlcm9zL2FyNzI0eF9wY2kuYwo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvbWlwcy9hdGhlcm9z L2FyNzI0eF9wY2kuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9h dGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIyOjE5OjUyIDIwMTEJKHIyMjEzMDYpCj4r KysgaGVhZC9zeXMvbWlwcy9hdGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIzOjMyOjM3 IDIwMTEJKHIyMjEzMDcpCj5AQCAtNTcsOCArNTcsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7 Cj4gI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaD4KPiAjaW5jbHVkZSA8bWlwcy9h dGhlcm9zL2FyNzI0eHJlZy5oPgo+ICNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3NldHVw Lmg+Cj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfcGNpX2J1c19zcGFjZS5oPgkJLyog WFhYICovCj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfYnVzX3NwYWNlX3JldmVyc2Vk Lmg+CS8qIFhYWCAqLwo+KyNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3BjaV9idXNfc3Bh Y2UuaD4KPiAKPiAjaW5jbHVkZSA8bWlwcy9hdGhlcm9zL2FyNzF4eF9jcHVkZWYuaD4KPiAKPkBA IC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIHVpbnQzMl90Cj4gYXI3MjR4X3BjaV9yZWFkX2NvbmZp ZyhkZXZpY2VfdCBkZXYsIHVfaW50IGJ1cywgdV9pbnQgc2xvdCwgdV9pbnQgZnVuYywgCj4gICAg IHVfaW50IHJlZywgaW50IGJ5dGVzKQo+IHsKPi0JdWludDMyX3QgY21kLCBkYXRhLCBzaGlmdCwg bWFzazsKPisJdWludDMyX3QgZGF0YSwgc2hpZnQsIG1hc2s7Cj4gCj4gCS8qIFJlZ2lzdGVyIGFj Y2VzcyBpcyAzMi1iaXQgYWxpZ25lZCAqLwo+IAlzaGlmdCA9IChyZWcgJiAzKSAqIDg7Cj5AQCAt MTI1LDE4ICsxMjQsOSBAQCBhcjcyNHhfcGNpX3JlYWRfY29uZmlnKGRldmljZV90IGRldiwgdV9p Cj4gCWRwcmludGYoIiVzOiB0YWcgKCV4LCAleCwgJXgpIHJlZyAlZCglZClcbiIsIF9fZnVuY19f LCBidXMsIHNsb3QsCj4gCSAgICBmdW5jLCByZWcsIGJ5dGVzKTsKPiAKPi0JaWYgKChidXMgPT0g MCkgJiYgKHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpIHsKPisJaWYgKChidXMgPT0gMCkgJiYg KHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpCj4gCQlkYXRhID0gQVRIX1JFQURfUkVHKEFSNzI0 WF9QQ0lfQ0ZHX0JBU0UgKyAocmVnICYgfjMpKTsKPi0JCS8qCj4tCQkgKiBXQVIgZm9yIEJBUiBp c3N1ZSAtIFdlIGFyZSB1bmFibGUgdG8gYWNjZXNzIHRoZSBQQ0kgZGV2aWNlCj4tCQkgKiBzcGFj ZSBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNlIGFkZHJlc3MuCj4tCQkgKi8KPi0J CWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0ZXMgPT0gNCkgewo+LQkJCWNtZCA9IChhcjcx eHhfc29jID09IEFSNzFYWF9TT0NfQVI3MjQwKSA/Cj4tCQkJICAgIDB4ZmZmZiA6IDB4MTAwMGZm ZmY7Cj4tCQkJYXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGNtZCwg Ynl0ZXMpOwo+LQkJfQo+LQl9IGVsc2UKPisJZWxzZQo+IAkJZGF0YSA9IC0xOwo+IAo+IAkvKiBH ZXQgcmVxdWVzdCBieXRlcyBmcm9tIDMyLWJpdCB3b3JkICovCj5AQCAtMTU4LDE0ICsxNDgsMTQg QEAgYXI3MjR4X3BjaV93cml0ZV9jb25maWcoZGV2aWNlX3QgZGV2LCB1Xwo+IAlpZiAoKGJ1cyAh PSAwKSB8fCAoc2xvdCAhPSAwKSB8fCAoZnVuYyAhPSAwKSkKPiAJCXJldHVybjsKPiAKPi0JYXI3 MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsKPiAJ LyoKPi0JICogV0FSIGZvciBCQVIgaXNzdWUgLSBXZSBhcmUgdW5hYmxlIHRvIGFjY2VzcyB0aGUg UENJIGRldmljZSBzcGFjZQo+LQkgKiBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNl IGFkZHJlc3MuCj4tCSAqIEZvcmNlIGEgZmx1c2ggaGVyZSAoYXQgcmVnaXN0ZXIgd3JpdGluZyku Cj4rCSAqIFdBUiBmb3IgQkFSIGlzc3VlIG9uIEFSNzI0MCAtIFdlIGFyZSB1bmFibGUgdG8gYWNj ZXNzIHRoZSBQQ0kgZGV2aWNlCj4rCSAqIHNwYWNlIGlmIHdlIHNldCB0aGUgQkFSIHdpdGggcHJv cGVyIGJhc2UgYWRkcmVzcy4KPiAJICovCj4tCWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0 ZXMgPT0gNCkKPi0JCSh2b2lkKWFyNzI0eF9wY2lfcmVhZF9jb25maWcoZGV2LCBidXMsIHNsb3Qs IGZ1bmMsIHJlZywgYnl0ZXMpOwo+KwlpZiAocmVnID09IFBDSVJfQkFSKDApICYmIGJ5dGVzID09 IDQgJiYgYXI3MXh4X3NvYyA9PSBBUjcxWFhfU09DX0FSNzI0MCkKPisJCWFyNzI0eF9wY2lfd3Jp dGUoQVI3MjRYX1BDSV9DRkdfQkFTRSwgcmVnLCAweGZmZmYsIGJ5dGVzKTsKPisJZWxzZQo+KwkJ YXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsK PiB9Cj4gCj4gc3RhdGljIHZvaWQgCj5AQCAtMjMyLDYgKzIyMiw5IEBAIGFyNzI0eF9wY2lfc2V0 dXAoZGV2aWNlX3QgZGV2KQo+IAllbHNlCj4gCQlyZWcgPSAweDFmZmMxOwo+IAlBVEhfV1JJVEVf UkVHKEFSNzI0WF9QQ0lfQVBQLCByZWcpOwo+KwkvKiBGbHVzaCB3cml0ZSAqLwo+Kwkodm9pZCkg QVRIX1JFQURfUkVHKEFSNzI0WF9QQ0lfQVBQKTsKPisKPiAJREVMQVkoMTAwMCk7Cj4gCj4gCXJl ZyA9IEFUSF9SRUFEX1JFRyhBUjcyNFhfUENJX1JFU0VUKTsKPkBAIC00NTcsMTAgKzQ1MCw3IEBA IGFyNzI0eF9wY2lfYWN0aXZhdGVfcmVzb3VyY2UoZGV2aWNlX3QgYnUKPiAJCWNhc2UgU1lTX1JF U19NRU1PUlk6Cj4gCQljYXNlIFNZU19SRVNfSU9QT1JUOgo+IAo+LQkJCS8qIFhYWCAqLwo+LQkJ CS8vcm1hbl9zZXRfYnVzdGFnKHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPi0JCQkvL3Jt YW5fc2V0X2J1c3RhZyhyLCBtaXBzX2J1c19zcGFjZV9nZW5lcmljKTsKPi0JCQlybWFuX3NldF9i dXN0YWcociwgYXI3MXh4X2J1c19zcGFjZV9yZXZlcnNlZCk7Cj4rCQkJcm1hbl9zZXRfYnVzdGFn KHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPiAJCQlicmVhazsKPiAJCX0KPiAJfQo+Cj4K PkF1dGhvcjogcm1hY2tsZW0KPkRhdGU6IFN1biBNYXkgIDEgMjM6NDE6MzUgMjAxMQo+TmV3IFJl dmlzaW9uOiAyMjEzMDgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFz ZS8yMjEzMDgKPgo+TG9nOgo+ICBGaXggbmZzc3RhdCBzbyB0aGF0IHRoZSAiLXoiIG9wdGlvbiB3 b3JrcyBmb3IgdGhlCj4gIG5ldyBORlMgc3Vic3lzdGVtLgo+ICAKPiAgTUZDIGFmdGVyOgkyIHdl ZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMKPgo+TW9k aWZpZWQ6IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuYwo+PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Cj4tLS0gaGVhZC91c3IuYmluL25mc3N0YXQvbmZzc3RhdC5jCVN1biBNYXkgIDEgMjM6MzI6 MzcgMjAxMQkocjIyMTMwNykKPisrKyBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMJU3Vu IE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+QEAgLTg1LDYgKzg1LDcgQEAgc3RhdGlj IGludCB6ZmxhZyA9IDA7Cj4gc3RhdGljIGludCBydW5fdjQgPSAwOwo+IHN0YXRpYyBpbnQgcHJp bnR0aXRsZSA9IDE7Cj4gc3RhdGljIHN0cnVjdCBleHRfbmZzc3RhdHMgZXh0X25mc3N0YXRzOwo+ K3N0YXRpYyBpbnQgbmZzc3ZjX2ZsYWc7Cj4gCj4gdm9pZCBpbnRwcihpbnQsIGludCk7Cj4gdm9p ZCBwcmludGhkcihpbnQsIGludCk7Cj5AQCAtMTA3LDYgKzEwOCw3IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQo+IAljaGFyICptZW1mLCAqbmxpc3RmOwo+IAljaGFyIGVycmJ1ZltfUE9T SVgyX0xJTkVfTUFYXTsKPiAKPisJbmZzc3ZjX2ZsYWcgPSBORlNTVkNfR0VUU1RBVFM7Cj4gCWlu dGVydmFsID0gMDsKPiAJbWVtZiA9IG5saXN0ZiA9IE5VTEw7Cj4gCXdoaWxlICgoY2ggPSBnZXRv cHQoYXJnYywgYXJndiwgImNlc1dNOk46dzp6IikpICE9IC0xKQo+QEAgLTEzNSw2ICsxMzcsNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAJCQlicmVhazsKPiAJCWNhc2UgJ3onOgo+ IAkJCXpmbGFnID0gMTsKPisJCQluZnNzdmNfZmxhZyB8PSBORlNTVkNfWkVST1NUQVRTOwo+IAkJ CWJyZWFrOwo+IAkJY2FzZSAnZSc6Cj4gCQkJcnVuX3Y0ID0gMTsKPkBAIC0xNjEsNyArMTY0LDcg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gCQllcnJ4KDEsICJleHBlcmltZW50YWwg Y2xpZW50L3NlcnZlciBub3QgbG9hZGVkIik7Cj4gCj4gCWlmIChydW5fdjQgIT0gMCkgewo+LQkJ aWYgKG5mc3N2YyhORlNTVkNfR0VUU1RBVFMsICZleHRfbmZzc3RhdHMpIDwgMCkKPisJCWlmIChu ZnNzdmMobmZzc3ZjX2ZsYWcsICZleHRfbmZzc3RhdHMpIDwgMCkKPiAJCQllcnIoMSwgIkNhbid0 IGdldCBzdGF0cyIpOwo+IAl9IGVsc2UgaWYgKG5saXN0ZiAhPSBOVUxMIHx8IG1lbWYgIT0gTlVM TCkgewo+IAkJZGVhZGtlcm5lbCA9IDE7Cj5AQCAtNzkzLDEzICs3OTYsMTMgQEAgZXhwX3NpZGV3 YXlzaW50cHIodV9pbnQgaW50ZXJ2YWwsIGludCBjbAo+IAlpbnQgaGRyY250ID0gMTsKPiAKPiAJ ZXh0X25mc3N0YXRzcCA9ICZsYXN0c3Q7Cj4tCWlmIChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBl eHRfbmZzc3RhdHNwKSA8IDApCj4rCWlmIChuZnNzdmMobmZzc3ZjX2ZsYWcsIGV4dF9uZnNzdGF0 c3ApIDwgMCkKPiAJCWVycigxLCAiQ2FuJ3QgZ2V0IHN0YXRzIik7Cj4gCXNsZWVwKGludGVydmFs KTsKPiAKPiAJZm9yICg7Oykgewo+IAkJZXh0X25mc3N0YXRzcCA9ICZuZnNzdGF0czsKPi0JCWlm IChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBleHRfbmZzc3RhdHNwKSA8IDApCj4rCQlpZiAobmZz c3ZjKG5mc3N2Y19mbGFnLCBleHRfbmZzc3RhdHNwKSA8IDApCj4gCQkJZXJyKDEsICJDYW4ndCBn ZXQgc3RhdHMiKTsKPiAKPiAJCWlmICgtLWhkcmNudCA9PSAwKSB7Cj4KPgo+QXV0aG9yOiBybWFj a2xlbQo+RGF0ZTogU3VuIE1heSAgMSAyMzo1NTo1NiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMw OQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwOQo+Cj5M b2c6Cj4gIEZpeCBuZnNzdGF0LjEgdG8gaW5kaWNhdGUgdGhhdCAiLXoiIG5vdyB3b3JrcyBmb3IK PiAgdGhlIG5ldyBORlMgc3Vic3lzdGVtcyBhZnRlciByMjIxMzA4Lgo+ICBUaGlzIGlzIGEgY29u dGVudCBjaGFuZ2UuCj4gIAo+ICBNRkMgYWZ0ZXI6CTIgd2Vla3MKPgo+TW9kaWZpZWQ6Cj4gIGhl YWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQo+Cj5Nb2RpZmllZDogaGVhZC91c3IuYmluL25m c3N0YXQvbmZzc3RhdC4xCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3Vzci5iaW4v bmZzc3RhdC9uZnNzdGF0LjEJU3VuIE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+Kysr IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQlTdW4gTWF5ICAxIDIzOjU1OjU2IDIwMTEJ KHIyMjEzMDkpCj5AQCAtMjgsNyArMjgsNyBAQAo+IC5cIiAgICAgRnJvbTogQCgjKW5mc3N0YXQu MQk4LjEgKEJlcmtlbGV5KSA2LzYvOTMKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE9jdG9i ZXIgMTgsIDIwMDcKPisuRGQgTWF5IDEsIDIwMTEKPiAuRHQgTkZTU1RBVCAxCj4gLk9zCj4gLlNo IE5BTUUKPkBAIC03OCw3ICs3OCw2IEBAIGFjdGl2aXR5IGZvciBib3RoIHRoZSBjbGllbnQgYW5k IHNlcnZlciAKPiBzZWNvbmQgaW50ZXJ2YWxzLgo+IC5JdCBGbCB6Cj4gUmVzZXQgc3RhdGlzdGlj cyBhZnRlciBkaXNwbGF5aW5nIHRoZW0uCj4tKE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRo ZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbS4pCj4gLkl0IEZsIGUKPiBHYXRoZXIgc3RhdGlz dGljcyBmcm9tIHRoZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbSB0aGF0IGluY2x1ZGVzCj4g c3VwcG9ydCBmb3IgTkZTdjQgaW5zdGVhZCBvZiB0aGUgcmVndWxhciBuZnMgc3Vic3lzdGVtLgo+ Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDA1OjM5OjQzIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzEyCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzEyCj4KPkxvZzoKPiAgQWRkIGRvY3VtZW50YXRpb24gdG8gc3lzL2NvbmYvb3B0aW9u cyBwb2ludGluZyBvdXQgdGhhdCBBSF9TVVBQT1JUX0FSOTEzMAo+ICBzaG91bGRuJ3QgYmUgZW5h YmxlZCBieSBkZWZhdWx0IHVubGVzcyB5b3UncmUgdHJ1ZWx5IGJ1aWxkaW5nIGZvciB0aGUKPiAg QVI5MTN4IHBsYXRmb3JtLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9vcHRpb25zCj4K Pk1vZGlmaWVkOiBoZWFkL3N5cy9jb25mL29wdGlvbnMKPj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ LS0tIGhlYWQvc3lzL2NvbmYvb3B0aW9ucwlNb24gTWF5ICAyIDAxOjAxOjAzIDIwMTEJKHIyMjEz MTEpCj4rKysgaGVhZC9zeXMvY29uZi9vcHRpb25zCU1vbiBNYXkgIDIgMDU6Mzk6NDMgMjAxMQko cjIyMTMxMikKPkBAIC03NzUsNiArNzc1LDggQEAgQVRIX0VOQUJMRV8xMU4JCW9wdF9haC5oCj4g Cj4gIyBvcHRpb25zIGZvciB0aGUgQXRoZXJvcyBoYWwKPiBBSF9TVVBQT1JUX0FSNTQxNglvcHRf YWguaAo+KyMgWFhYIEZvciBub3csIHRoaXMgYnJlYWtzIG5vbi1BUjkxMzAgY2hpcHNldHMsIHNv IG9ubHkgdXNlIGl0Cj4rIyBYWFggd2hlbiBhY3R1YWxseSB0YXJnZXR0aW5nIEFSOTEzMC4KPiBB SF9TVVBQT1JUX0FSOTEzMAlvcHRfYWguaAo+IAo+IEFIX0RFQlVHCQlvcHRfYWguaAo+QEAgLTc5 MSw2ICs3OTMsNyBAQCBBSF9NQVhDSEFOCQlvcHRfYWguaAo+IEFIX1JYQ0ZHX1NETUFNV180QllU RVMJb3B0X2FoLmgKPiAKPiAjIEFSNTQxNiBhbmQgbGF0ZXIgaW50ZXJydXB0IG1pdGlnYXRpb24K PisjIFhYWCBkbyBub3QgdXNlIHRoaXMgZm9yIEFSOTEzMAo+IEFIX0FSNTQxNl9JTlRFUlJVUFRf TUlUSUdBVElPTglvcHRfYWguaAo+IAo+ICMgb3B0aW9ucyBmb3IgdGhlIEJyb2FkY29tIEJDTTQz eHggZHJpdmVyIChid2kpCj4KPgo+T24gMiBNYXkgMjAxMSAwMzo1NCwgQmVybmhhcmQgU2NobWlk dCA8YnNjaG1pZHRAZnJlZWJzZC5vcmc+IHdyb3RlOgo+Cj4+PiBJJ20gbm90IHN1cmUgdGhhdCdz IGludHJpbnNpY2FsbHkgdHJ1ZS4gRXZlbiBpZiB0aGV5IG1vc3RseSBvbmx5IHNoaXAKPj4+IHdp dGggSW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3 aGljaCBjb3VsZCBiZQo+Pj4gcHV0IGludG8gbm9uLXg4NiBzeXN0ZW1zLgo+Pgo+PiBZZXMsIGlu ZGVlZC4gVGhvc2UgbWlnaHQgb2YgY291cnNlIGJlIHVzZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRv bwo+PiAod2VsbCBhdCBsZWFzdCBpdCBmaXRzIGludG8gdGhlIHNsb3QsIEkga25vdyB0aGF0IGNl cnRhaW4gZmVhdHVyZXMKPj4gYXJlIG5vdCBldmVuIGF2YWlsYWJsZSBvbiBBTUQgcGxhdGZvcm1z KS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPj4gYW55b25lIGV2ZXIgdHJpZWQgb25lIG9mIGl0 IG9uIG1pcHMgZm9yIGV4YW1wbGUuCj4+Cj4+IEkgZG9uJ3QgbWluZCBiZWluZyBwcm92ZW4gd3Jv bmcgYW5kIGlmIHNvIG1vdmUgdGhlIGVudHJpZXMgYmFjayB0bwo+PiBhIG1vcmUgZ2VuZXJpYyBs b2NhdGlvbi4gQ3VycmVudGx5IEknbSBqdXN0IHRyeWluZyBtaW1pYyB0aGUgbW9kdWxlCj4+IGJl aGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+SSdtIGxpa2VseSB0byB0cnkgdGhl IGludGVsIG1pbmktcGNpZSBzdHVmZiBvbiB0aGUgYXRoZXJvcyBQQjkyIHJlZgo+Ym9hcmQgKEFS NzI0MiBNSVBTKS4gSnVzdCBub3QgeWV0Lgo+Cj5JJ2xsIGxldCB5b3Uga25vdyBob3cgaXQgZ29l cyB3aGVuIGkndmUgZG9uZSBpdC4KPgo+Cj4KPkFkaXJhbgo+Cj4KPkF1dGhvcjogbWF4aW0KPkRh dGU6IE1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMTkKPlVSTDog aHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMTkKPgo+TG9nOgo+ICBv IE9wZW5CU0QgNC45IGFkZGVkLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zaGFyZS9taXNjL2JzZC1m YW1pbHktdHJlZQo+Cj5Nb2RpZmllZDogaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJlZQo+ PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJl ZQlNb24gTWF5ICAyIDA4OjMzOjIwIDIwMTEJKHIyMjEzMTgpCj4rKysgaGVhZC9zaGFyZS9taXNj L2JzZC1mYW1pbHktdHJlZQlNb24gTWF5ICAyIDA5OjQ3OjEzIDIwMTEJKHIyMjEzMTkpCj5AQCAt MjQ2LDcgKzI0Niw3IEBAIEZyZWVCU0QgNS4yICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAK PiAgfCAgICAgfCAgICAgICAgfCAgICAgfCAgICAgIHwgTmV0QlNEIDUuMSAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwKPiAgfCAgRnJlZUJTRCAgRnJlZUJTRCAgfCAgICAgIHwgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgfCAgICA4LjIgICAgICA3LjQg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBEcmFnb25GbHkgMi4x MC4xCj4tIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICB8Cj4rIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgICAgIE9wZW5CU0QgNC45ICAgICAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gRnJlZUJTRCA5IC1jdXJyZW50ICAgIHwgIE5ldEJTRCAtY3VycmVudCAgT3BlbkJTRCAtY3Vy cmVudCAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICB8ICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8Cj5AQCAtNTMzLDYgKzUzMyw3IEBA IE5ldEJTRCA1LjEJCTIwMTAtMTEtMTkgW05CRF0KPiBGcmVlQlNEIDcuNAkJMjAxMS0wMi0yNCBb RkJEXQo+IEZyZWVCU0QgOC4yCQkyMDExLTAyLTI0IFtGQkRdCj4gRHJhZ29uRmx5IDIuMTAuMQky MDExLTA0LTI2IFtERkJdCj4rT3BlbkJTRCA0LjkJCTIwMTEtMDUtMDEgW09CRF0KPiAKPiBCaWJs aW9ncmFwaHkKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+Cj5BdXRob3I6IGJydWNlYwo+ RGF0ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMyMAo+VVJM OiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMyMAo+Cj5Mb2c6Cj4g IEFkZCAtV21pc3NpbmctaW5jbHVkZS1kaXJzIHRvIENXQVJORkxBR1MsIHNvIHRpbmRlcmJveCB3 aWxsIHB1bmlzaCB0aG9zZQo+ICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNvZGUgd2l0aCBi cm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPiAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVz Lgo+ICBJbXByb3ZlIGEgY291cGxlIG9mIGNvbW1lbnRzLgo+ICAtVyBpcyBub3cgZGVwcmVjYXRl ZCBhbmQgaXMgcmVmZXJyZWQgdG8gYXMgLVdleHRyYSAoc2VlIGdjYygxKSkuCj4gIAo+ICBTdWJt aXR0ZWQgYnk6CWFydW5kZWwKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYva2Vybi5tawo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy9jb25mL2tlcm4ubWsJTW9uIE1heSAgMiAwOTo0NzoxMyAyMDExCShyMjIx MzE5KQo+KysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj5AQCAtMywyNCArMywyNSBAQAo+ICMKPiAjIFdhcm5pbmcgZmxhZ3MgZm9yIGNv bXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4gIwo+LSMg Tm90ZSB0aGF0IHRoZSBuZXdseSBhZGRlZCAtV2Nhc3QtcXVhbCBpcyByZXNwb25zaWJsZSBmb3Ig Z2VuZXJhdGluZyAKPisjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMg cmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPiAjIG1vc3Qgb2YgdGhlIHJlbWFpbmluZyB3YXJu aW5ncy4gIFdhcm5pbmdzIGludHJvZHVjZWQgd2l0aCAtV2FsbCB3aWxsCj4gIyBhbHNvIHBvcCB1 cCwgYnV0IGFyZSBlYXNpZXIgdG8gZml4Lgo+IENXQVJORkxBR1M/PQktV2FsbCAtV3JlZHVuZGFu dC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3RvdHlwZXMgXAo+IAkJLVdtaXNz aW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XaW5saW5lIC1XY2FzdC1xdWFsIFwKPi0J CS1XdW5kZWYgLVduby1wb2ludGVyLXNpZ24gLWZmb3JtYXQtZXh0ZW5zaW9ucwo+KwkJLVd1bmRl ZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRlbnNpb25zIFwKPisJCS1XbWlzc2luZy1p bmNsdWRlLWRpcnMKPiAjCj4gIyBUaGUgZm9sbG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3 b3JraW5nIG9uOgo+LSMJLVcKPisjCS1XZXh0cmEKPiAKPiAjCj4tIyBPbiB0aGUgaTM4NiwgZG8g bm90IGFsaWduIHRoZSBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMuICBPdGhlcndpc2UgR0ND Cj4tIyAyLjk1IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkg ZnVuY3Rpb24gdG8gYWxpZ24gdGhlCj4rIyBPbiBpMzg2LCBkbyBub3QgYWxpZ24gdGhlIHN0YWNr IHRvIDE2LWJ5dGUgYm91bmRhcmllcy4gIE90aGVyd2lzZSBHQ0MgMi45NQo+KyMgYW5kIGFib3Zl IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24g dG8gYWxpZ24gdGhlCj4gIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0 aW5nIGFwcHJveGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPi0jIHBlciBmdW5jdGlvbiBjYWxs LiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBiZW5lZml0IG1pY3JvIGJlbmNobWFy a3MsIAo+KyMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGlsZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQg bWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywKPiAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJh bGwgbG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4gIyB1 c2Ugb2YgY29kZSBjYWNoZSB0YWcgbGluZXMpIGFuZCB1c2VzIG1vcmUgc3RhY2sgKGxlc3MgZWZm aWNpZW50IHVzZSBvZiBkYXRhCj4tIyBjYWNoZSB0YWcgbGluZXMpLiAgRXhwbGljaXRseSBwcm9o aWJpdCB0aGUgdXNlIG9mIFNTRSBhbmQgb3RoZXIgU0lNRAo+KyMgY2FjaGUgdGFnIGxpbmVzKS4g IEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lNRAo+ ICMgb3BlcmF0aW9ucyBpbnNpZGUgdGhlIGtlcm5lbCBpdHNlbGYuICBUaGVzZSBvcGVyYXRpb25z IGFyZSBleGNsdXNpdmVseQo+ICMgcmVzZXJ2ZWQgZm9yIHVzZXIgYXBwbGljYXRpb25zLgo+ICMK PkBAIC0zNSw2ICszNiw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPiAuaWYgJHtNQUNISU5FX0NQ VUFSQ0h9ID09ICJhcm0iCj4gSU5MSU5FX0xJTUlUPz0JODAwMAo+IC5lbmRpZgo+Kwo+ICMKPiAj IEZvciBJQS02NCwgd2UgdXNlIHIxMyBmb3IgdGhlIGtlcm5lbCBnbG9iYWxzIHBvaW50ZXIgYW5k IHdlIG9ubHkgdXNlCj4gIyBhIHZlcnkgc21hbGwgc3Vic2V0IG9mIGZsb2F0IHJlZ2lzdGVycyBm b3IgaW50ZWdlciBkaXZpZGVzLgo+QEAgLTk4LDcgKzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgw MDAKPiBDRkxBR1MrPQktZmZyZWVzdGFuZGluZwo+IAo+ICMKPi0jIEdDQyBTU1Agc3VwcG9ydC4K PisjIEdDQyBTU1Agc3VwcG9ydAo+ICMKPiAuaWYgJHtNS19TU1B9ICE9ICJubyIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJpYTY0IiAmJiBcCj4gICAgICR7TUFDSElORV9DUFVBUkNIfSAhPSAi YXJtIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gIm1pcHMiCj5AQCAtMTA2LDkgKzEwOCw4IEBA IENGTEFHUys9CS1mc3RhY2stcHJvdGVjdG9yCj4gLmVuZGlmCj4gCj4gIwo+LSMgRW5hYmxlIENU RiBjb252ZXJzYXRpb24gb24gcmVxdWVzdC4KPisjIEVuYWJsZSBDVEYgY29udmVyc2F0aW9uIG9u IHJlcXVlc3QKPiAjCj4gLmlmIGRlZmluZWQoV0lUSF9DVEYpCj4gLnVuZGVmIE5PX0NURgo+IC5l bmRpZgo+LQo+Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDEwOjQyOjE5IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzIxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzIxCj4KPkxvZzoKPiAgQWRkIGluIHRoZSB3b3JrLWFyb3VuZCBmb3Ig dGhlIEFSODMxNiBnaWdlIHN3aXRjaCBQSFkuCj4gIAo+ICBUaGlzIGFsbG93cyB0aGUgZXRoZXJu ZXQgdG8gZnVuY3Rpb24gb24gdGhlIFBCOTIgYm9hcmQuCj4gIAo+ICBTdWJtaXR0ZWQgYnk6CUx1 aXogT3RhdmlvIE8gU291emEKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9taXBzL2NvbmYvUEI5Mi5oaW50cwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9jb25mL1BCOTIuaGludHMJTW9uIE1h eSAgMiAxMDozNToyNyAyMDExCShyMjIxMzIwKQo+KysrIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCU1vbiBNYXkgIDIgMTA6NDI6MTkgMjAxMQkocjIyMTMyMSkKPkBAIC0zMCw3ICszMCwx MSBAQCBoaW50LmFyZ2UuMC5hdD0ibmV4dXMwIgo+IGhpbnQuYXJnZS4wLm1hZGRyPTB4MTkwMDAw MDAKPiBoaW50LmFyZ2UuMC5tc2l6ZT0weDEwMDAKPiBoaW50LmFyZ2UuMC5pcnE9Mgo+LWhpbnQu YXJnZS4wLnBoeW1hc2s9MHgxCj4rCj4rIyBBUjgzMTYgd29ya2Fyb3VuZCBmb3Igbm93Cj4raGlu dC5hcmdlLjAubWVkaWE9MTAwMAo+K2hpbnQuYXJnZS4wLmZkdXBsZXg9MQo+K2hpbnQuYXJnZS4w LnBoeW1hc2s9MHgzCj4gCj4gIyBHUElPCj4gaGludC5ncGlvLjAuYXQ9ImFwYjAiCj4KPgo+T24g TW9uIE1heSAgMiAxMSwgQnJ1Y2UgQ3JhbiB3cm90ZToKPj4gQXV0aG9yOiBicnVjZWMKPj4gRGF0 ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj4+IE5ldyBSZXZpc2lvbjogMjIxMzIwCj4+IFVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjAKPj4gCj4+IExv ZzoKPj4gICBBZGQgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyB0byBDV0FSTkZMQUdTLCBzbyB0aW5k ZXJib3ggd2lsbCBwdW5pc2ggdGhvc2UKPj4gICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNv ZGUgd2l0aCBicm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPgo+QnJ1Y2UgYWxyZWFkeSBjb21t aXR0ZWQgcjIyMDcxMiBpbiBvcmRlciB0byBtYWtlIHRoZSBjdXJyZW50IHRyZWUgd29yayB3aXRo Cj4tV21pc3NpbmctaW5jbHVkZS1kaXJzLiBTbyBob3BlZnVsbHkgdGluZGVyYm94IHdpbGwgbm90 IGNvbXBsYWluIGZvciBhbnkgQVJDSC4KPgo+UGxlYXNlIGFsc28gbm90ZSB0aGF0IGN1cnJlbnRs eSAtV21pc3NpbmctaW5jbHVkZS1kaXJzIGlzIGEgbm9vcCBpbiBjbGFuZy4gT25jZQo+aXQgZ2V0 cyBpbXBsZW1lbnRlZCB3ZSB3aWxsIGhvcGVmdWxseSBiZW5lZml0IGZyb20gaXQgdmlhIHRoZSB2 ZW5kb3IgaW1wb3J0Lgo+Cj5UaGFua3MgYWdhaW4gQnJ1Y2UgZm9yIHRha2luZyBjYXJlISA6KQo+ Cj4+ICAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVzLgo+PiAgIEltcHJvdmUgYSBjb3VwbGUg b2YgY29tbWVudHMuCj4+ICAgLVcgaXMgbm93IGRlcHJlY2F0ZWQgYW5kIGlzIHJlZmVycmVkIHRv IGFzIC1XZXh0cmEgKHNlZSBnY2MoMSkpLgo+PiAgIAo+PiAgIFN1Ym1pdHRlZCBieToJYXJ1bmRl bAo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+IAo+PiBNb2Rp ZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiAt LS0gaGVhZC9zeXMvY29uZi9rZXJuLm1rCU1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQkocjIyMTMx OSkKPj4gKysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj4+IEBAIC0zLDI0ICszLDI1IEBACj4+ICAjCj4+ICAjIFdhcm5pbmcgZmxhZ3Mg Zm9yIGNvbXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4+ ICAjCj4+IC0jIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMgcmVzcG9u c2libGUgZm9yIGdlbmVyYXRpbmcgCj4+ICsjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdj YXN0LXF1YWwgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPj4gICMgbW9zdCBvZiB0aGUg cmVtYWluaW5nIHdhcm5pbmdzLiAgV2FybmluZ3MgaW50cm9kdWNlZCB3aXRoIC1XYWxsIHdpbGwK Pj4gICMgYWxzbyBwb3AgdXAsIGJ1dCBhcmUgZWFzaWVyIHRvIGZpeC4KPj4gIENXQVJORkxBR1M/ PQktV2FsbCAtV3JlZHVuZGFudC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3Rv dHlwZXMgXAo+PiAgCQktV21pc3NpbmctcHJvdG90eXBlcyAtV3BvaW50ZXItYXJpdGggLVdpbmxp bmUgLVdjYXN0LXF1YWwgXAo+PiAtCQktV3VuZGVmIC1Xbm8tcG9pbnRlci1zaWduIC1mZm9ybWF0 LWV4dGVuc2lvbnMKPj4gKwkJLVd1bmRlZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRl bnNpb25zIFwKPj4gKwkJLVdtaXNzaW5nLWluY2x1ZGUtZGlycwo+PiAgIwo+PiAgIyBUaGUgZm9s bG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3b3JraW5nIG9uOgo+PiAtIwktVwo+PiArIwkt V2V4dHJhCj4+ICAKPj4gICMKPj4gLSMgT24gdGhlIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3Rh Y2sgdG8gMTYtYnl0ZSBib3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQwo+PiAtIyAyLjk1IGFkZHMg Y29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24gdG8gYWxp Z24gdGhlCj4+ICsjIE9uIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3RhY2sgdG8gMTYtYnl0ZSBi b3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQyAyLjk1Cj4+ICsjIGFuZCBhYm92ZSBhZGRzIGNvZGUg dG8gdGhlIGVudHJ5IGFuZCBleGl0IHBvaW50IG9mIGV2ZXJ5IGZ1bmN0aW9uIHRvIGFsaWduIHRo ZQo+PiAgIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0aW5nIGFwcHJv eGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPj4gLSMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGls ZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQgbWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywgCj4+ ICsjIHBlciBmdW5jdGlvbiBjYWxsLiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBi ZW5lZml0IG1pY3JvIGJlbmNobWFya3MsCj4+ICAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJhbGwg bG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4+ICAjIHVz ZSBvZiBjb2RlIGNhY2hlIHRhZyBsaW5lcykgYW5kIHVzZXMgbW9yZSBzdGFjayAobGVzcyBlZmZp Y2llbnQgdXNlIG9mIGRhdGEKPj4gLSMgY2FjaGUgdGFnIGxpbmVzKS4gIEV4cGxpY2l0bHkgcHJv aGliaXQgdGhlIHVzZSBvZiBTU0UgYW5kIG90aGVyIFNJTUQKPj4gKyMgY2FjaGUgdGFnIGxpbmVz KS4gIEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lN RAo+PiAgIyBvcGVyYXRpb25zIGluc2lkZSB0aGUga2VybmVsIGl0c2VsZi4gIFRoZXNlIG9wZXJh dGlvbnMgYXJlIGV4Y2x1c2l2ZWx5Cj4+ICAjIHJlc2VydmVkIGZvciB1c2VyIGFwcGxpY2F0aW9u cy4KPj4gICMKPj4gQEAgLTM1LDYgKzM2LDcgQEAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAgLmlm ICR7TUFDSElORV9DUFVBUkNIfSA9PSAiYXJtIgo+PiAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAg LmVuZGlmCj4+ICsKPj4gICMKPj4gICMgRm9yIElBLTY0LCB3ZSB1c2UgcjEzIGZvciB0aGUga2Vy bmVsIGdsb2JhbHMgcG9pbnRlciBhbmQgd2Ugb25seSB1c2UKPj4gICMgYSB2ZXJ5IHNtYWxsIHN1 YnNldCBvZiBmbG9hdCByZWdpc3RlcnMgZm9yIGludGVnZXIgZGl2aWRlcy4KPj4gQEAgLTk4LDcg KzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPj4gIENGTEFHUys9CS1mZnJlZXN0YW5kaW5n Cj4+ICAKPj4gICMKPj4gLSMgR0NDIFNTUCBzdXBwb3J0Lgo+PiArIyBHQ0MgU1NQIHN1cHBvcnQK Pj4gICMKPj4gIC5pZiAke01LX1NTUH0gIT0gIm5vIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0g ImlhNjQiICYmIFwKPj4gICAgICAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gImFybSIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJtaXBzIgo+PiBAQCAtMTA2LDkgKzEwOCw4IEBAIENGTEFHUys9CS1m c3RhY2stcHJvdGVjdG9yCj4+ICAuZW5kaWYKPj4gIAo+PiAgIwo+PiAtIyBFbmFibGUgQ1RGIGNv bnZlcnNhdGlvbiBvbiByZXF1ZXN0Lgo+PiArIyBFbmFibGUgQ1RGIGNvbnZlcnNhdGlvbiBvbiBy ZXF1ZXN0Cj4+ICAjCj4+ICAuaWYgZGVmaW5lZChXSVRIX0NURikKPj4gIC51bmRlZiBOT19DVEYK Pj4gIC5lbmRpZgo+PiAtCj4KPi0tIAo+YTEzeAo+Cj4KPk9uIDIwMTEtMDQtMjkgMjA6MjAsIEp1 bmctdWsgS2ltIHdyb3RlOgo+Li4uCj4+ICtzdGF0aWMgX19pbmxpbmUgdm9pZAo+PiArdm13YXJl X2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50ICpwKQo+PiArewo+PiArCj4+ICsJX19hc20gX192b2xh dGlsZSgiaW5sICglJWR4KSIKPj4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAo cFsyXSksICI9ZCIgKHBbM10pCj4+ICsJOiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01B WCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+PiArCTogIm1lbW9yeSIpOwo+PiArfQo+ Cj5UaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGluayBp dCdzIHJpZ2h0IGluIHRoaXMKPmNhc2U6Cj4KPnN5cy94ODYveDg2L3RzYy5jOjEwMzoxOTogZXJy b3I6IGludmFsaWQgb3BlcmFuZCBmb3IgaW5zdHJ1Y3Rpb24KPiAgICAgICAgIF9fYXNtIF9fdm9s YXRpbGUoImlubCAoJSVkeCkiCj4gICAgICAgICAgICAgICAgICAgICAgICAgIF4KPjxpbmxpbmUg YXNtPjoxOjY6IG5vdGU6IGluc3RhbnRpYXRlZCBpbnRvIGFzc2VtYmx5IGhlcmUKPiAgICAgICAg IGlubCAoJWR4KQo+ICAgICAgICAgICAgIF4KPgo+Q2FuIHdlIHBsZWFzZSBhZGQgYW4gZXhwbGlj aXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBFLmcuOgo+Cj5kaWZmIC0tZ2l0IGEv c3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90c2MuYwo+aW5kZXggMGI3NTEwYy4uOTYz ODE2NyAxMDA2NDQKPi0tLSBhL3N5cy94ODYveDg2L3RzYy5jCj4rKysgYi9zeXMveDg2L3g4Ni90 c2MuYwo+QEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgX19pbmxpbmUgdm9pZAo+ICB2bXdhcmVf aHZjYWxsKHVfaW50IGNtZCwgdV9pbnQgKnApCj4gIHsKPiAgCj4tCV9fYXNtIF9fdm9sYXRpbGUo ImlubCAoJSVkeCkiCj4rCV9fYXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+ICAJ OiAiPWEiIChwWzBdKSwgIj1iIiAocFsxXSksICI9YyIgKHBbMl0pLCAiPWQiIChwWzNdKQo+ICAJ OiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdf SFZQT1JUKQo+ICAJOiAibWVtb3J5Iik7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkg IDIgMTQ6MTM6MTIgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjQKPlVSTDogaHR0cDovL3N2bi5m cmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjQKPgo+TG9nOgo+ICBBZGQgaW1wbGVtZW50 YXRpb25zIG9mIEJVU19BREpVU1RfUkVTT1VSQ0UoKSB0byB0aGUgUENJIGJ1cyBkcml2ZXIsCj4g IGdlbmVyaWMgUENJLVBDSSBicmlkZ2UgZHJpdmVyLCB4ODYgbmV4dXMgZHJpdmVyLCBhbmQgeDg2 IEhvc3QgdG8gUENJIGJyaWRnZQo+ICBkcml2ZXJzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMv YW1kNjQvcGNpL3BjaV9idXMuYwo+ICBoZWFkL3N5cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3Bp LmMKPiAgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+ICBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2ku Ywo+ICBoZWFkL3N5cy9pMzg2L3BjaS9wY2lfYnVzLmMKPiAgaGVhZC9zeXMveDg2L3g4Ni9tcHRh YmxlX3BjaS5jCj4gIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwo+Cj5Nb2RpZmllZDogaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMp Cj4rKysgaGVhZC9zeXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDE0OjEzOjEyIDIw MTEJKHIyMjEzMjQpCj5AQCAtMzQ4LDYgKzM0OCw3IEBAIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3Qg bGVnYWN5X3BjaWJfbWV0aG8KPiAJREVWTUVUSE9EKGJ1c19yZWFkX2l2YXIsCWxlZ2FjeV9wY2li X3JlYWRfaXZhciksCj4gCURFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJbGVnYWN5X3BjaWJfd3Jp dGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCWxlZ2FjeV9wY2liX2Fs bG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19nZW5l cmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJ YnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVf cmVzb3VyY2UsIGJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1 c19kZWFjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19kZWFjdGl2YXRlX3Jlc291cmNlKSwK Pgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvYWNw aWNhL2FjcGlfcGNpYl9hY3BpLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+ QEAgLTEwMCw2ICsxMDAsNyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGFjcGlfcGNpYl9hY3Bp X21lCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFyLAkJYWNwaV9wY2liX3JlYWRfaXZhciks Cj4gICAgIERFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJCWFjcGlfcGNpYl93cml0ZV9pdmFyKSwK PiAgICAgREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJYWNwaV9wY2liX2FjcGlfYWxsb2Nf cmVzb3VyY2UpLAo+KyAgICBERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVy aWNfYWRqdXN0X3Jlc291cmNlKSwKPiAgICAgREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNl LAlidXNfZ2VuZXJpY19yZWxlYXNlX3Jlc291cmNlKSwKPiAgICAgREVWTUVUSE9EKGJ1c19hY3Rp dmF0ZV9yZXNvdXJjZSwJYnVzX2dlbmVyaWNfYWN0aXZhdGVfcmVzb3VyY2UpLAo+ICAgICBERVZN RVRIT0QoYnVzX2RlYWN0aXZhdGVfcmVzb3VyY2UsCWJ1c19nZW5lcmljX2RlYWN0aXZhdGVfcmVz b3VyY2UpLAo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwlNb24gTWF5ICAyIDEzOjU4OjQw IDIwMTEJKHIyMjEzMjMpCj4rKysgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwlNb24gTWF5ICAyIDE0 OjEzOjEyIDIwMTEJKHIyMjEzMjQpCj5AQCAtMTQyLDYgKzE0Miw3IEBAIHN0YXRpYyBkZXZpY2Vf bWV0aG9kX3QgcGNpX21ldGhvZHNbXSA9IHsKPiAJREVWTUVUSE9EKGJ1c19nZXRfcmVzb3VyY2Us CWJ1c19nZW5lcmljX3JsX2dldF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfZGVsZXRlX3Jl c291cmNlLAlwY2lfZGVsZXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19hbGxvY19yZXNv dXJjZSwJcGNpX2FsbG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3Vy Y2UsCWJ1c19nZW5lcmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFz ZV9yZXNvdXJjZSwJYnVzX2dlbmVyaWNfcmxfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhP RChidXNfYWN0aXZhdGVfcmVzb3VyY2UsIHBjaV9hY3RpdmF0ZV9yZXNvdXJjZSksCj4gCURFVk1F VEhPRChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwgcGNpX2RlYWN0aXZhdGVfcmVzb3VyY2UpLAo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvZGV2L3BjaS9wY2lfcGNpLmMKPj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQo+LS0tIGhlYWQvc3lzL2Rldi9wY2kvcGNpX3BjaS5jCU1vbiBNYXkgIDIgMTM6NTg6NDAg MjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2kuYwlNb24gTWF5ICAy IDE0OjEzOjEyIDIwMTEJKHIyMjEzMjQpCj5AQCAtNzMsNiArNzMsNyBAQCBzdGF0aWMgZGV2aWNl X21ldGhvZF90IHBjaWJfbWV0aG9kc1tdID0gCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFy LAkJcGNpYl9yZWFkX2l2YXIpLAo+ICAgICBERVZNRVRIT0QoYnVzX3dyaXRlX2l2YXIsCQlwY2li X3dyaXRlX2l2YXIpLAo+ICAgICBERVZNRVRIT0QoYnVzX2FsbG9jX3Jlc291cmNlLAlwY2liX2Fs bG9jX3Jlc291cmNlKSwKPisgICAgREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19n ZW5lcmljX2FkanVzdF9yZXNvdXJjZSksCj4gICAgIERFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNv dXJjZSwJYnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gICAgIERFVk1FVEhPRChidXNf YWN0aXZhdGVfcmVzb3VyY2UsCWJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAgICAg REVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLAlidXNfZ2VuZXJpY19kZWFjdGl2YXRl X3Jlc291cmNlKSwKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2kzODYvcGNpL3BjaV9idXMuYwo+PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvaTM4Ni9wY2kvcGNpX2J1cy5jCU1vbiBN YXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9pMzg2L3BjaS9wY2lf YnVzLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+QEAgLTU2NSw2ICs1NjUs NyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGxlZ2FjeV9wY2liX21ldGhvCj4gCURFVk1FVEhP RChidXNfcmVhZF9pdmFyLAlsZWdhY3lfcGNpYl9yZWFkX2l2YXIpLAo+IAlERVZNRVRIT0QoYnVz X3dyaXRlX2l2YXIsCWxlZ2FjeV9wY2liX3dyaXRlX2l2YXIpLAo+IAlERVZNRVRIT0QoYnVzX2Fs bG9jX3Jlc291cmNlLAlsZWdhY3lfcGNpYl9hbGxvY19yZXNvdXJjZSksCj4rCURFVk1FVEhPRChi dXNfYWRqdXN0X3Jlc291cmNlLAlidXNfZ2VuZXJpY19hZGp1c3RfcmVzb3VyY2UpLAo+IAlERVZN RVRIT0QoYnVzX3JlbGVhc2VfcmVzb3VyY2UsCWJ1c19nZW5lcmljX3JlbGVhc2VfcmVzb3VyY2Up LAo+IAlERVZNRVRIT0QoYnVzX2FjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19hY3RpdmF0 ZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwgYnVzX2dl bmVyaWNfZGVhY3RpdmF0ZV9yZXNvdXJjZSksCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy94ODYveDg2 L21wdGFibGVfcGNpLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL3g4Ni94 ODYvbXB0YWJsZV9wY2kuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMpCj4rKysg aGVhZC9zeXMveDg2L3g4Ni9tcHRhYmxlX3BjaS5jCU1vbiBNYXkgIDIgMTQ6MTM6MTIgMjAxMQko cjIyMTMyNCkKPkBAIC0xMTYsNiArMTE2LDcgQEAgc3RhdGljIGRldmljZV9tZXRob2RfdCBtcHRh YmxlX2hvc3RiX21ldAo+IAlERVZNRVRIT0QoYnVzX3JlYWRfaXZhciwJbGVnYWN5X3BjaWJfcmVh ZF9pdmFyKSwKPiAJREVWTUVUSE9EKGJ1c193cml0ZV9pdmFyLAlsZWdhY3lfcGNpYl93cml0ZV9p dmFyKSwKPiAJREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJbGVnYWN5X3BjaWJfYWxsb2Nf cmVzb3VyY2UpLAo+KwlERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVyaWNf YWRqdXN0X3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19yZWxlYXNlX3Jlc291cmNlLAlidXNf Z2VuZXJpY19yZWxlYXNlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19hY3RpdmF0ZV9yZXNv dXJjZSwgYnVzX2dlbmVyaWNfYWN0aXZhdGVfcmVzb3VyY2UpLAo+IAlERVZNRVRIT0QoYnVzX2Rl YWN0aXZhdGVfcmVzb3VyY2UsIGJ1c19nZW5lcmljX2RlYWN0aXZhdGVfcmVzb3VyY2UpLAo+Cj5N b2RpZmllZDogaGVhZC9zeXMveDg2L3g4Ni9uZXh1cy5jCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy94ODYveDg2L25leHVzLmMJTW9uIE1heSAgMiAxMzo1ODo0MCAyMDExCShy MjIxMzIzKQo+KysrIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwlNb24gTWF5ICAyIDE0OjEzOjEy IDIwMTEJKHIyMjEzMjQpCj5AQCAtMTAwLDYgKzEwMCw4IEBAIHN0YXRpYyBkZXZpY2VfdCBuZXh1 c19hZGRfY2hpbGQoZGV2aWNlX3QKPiAJCQkJaW50IHVuaXQpOwo+IHN0YXRpYwlzdHJ1Y3QgcmVz b3VyY2UgKm5leHVzX2FsbG9jX3Jlc291cmNlKGRldmljZV90LCBkZXZpY2VfdCwgaW50LCBpbnQg KiwKPiAJCQkJCSAgICAgIHVfbG9uZywgdV9sb25nLCB1X2xvbmcsIHVfaW50KTsKPitzdGF0aWMJ aW50IG5leHVzX2FkanVzdF9yZXNvdXJjZShkZXZpY2VfdCwgZGV2aWNlX3QsIGludCwgc3RydWN0 IHJlc291cmNlICosCj4rCQkJCSAgdV9sb25nLCB1X2xvbmcpOwo+ICNpZmRlZiBTTVAKPiBzdGF0 aWMJaW50IG5leHVzX2JpbmRfaW50cihkZXZpY2VfdCwgZGV2aWNlX3QsIHN0cnVjdCByZXNvdXJj ZSAqLCBpbnQpOwo+ICNlbmRpZgo+QEAgLTE0NCw2ICsxNDYsNyBAQCBzdGF0aWMgZGV2aWNlX21l dGhvZF90IG5leHVzX21ldGhvZHNbXSA9Cj4gCURFVk1FVEhPRChidXNfcHJpbnRfY2hpbGQsCW5l eHVzX3ByaW50X2NoaWxkKSwKPiAJREVWTUVUSE9EKGJ1c19hZGRfY2hpbGQsCW5leHVzX2FkZF9j aGlsZCksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCW5leHVzX2FsbG9jX3Jlc291 cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCW5leHVzX2FkanVzdF9yZXNv dXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJbmV4dXNfcmVsZWFzZV9y ZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVfcmVzb3VyY2UsIG5leHVzX2FjdGl2 YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1c19kZWFjdGl2YXRlX3Jlc291cmNlLCBuZXh1 c19kZWFjdGl2YXRlX3Jlc291cmNlKSwKPkBAIC0zMzIsNiArMzM1LDIzIEBAIG5leHVzX2FkZF9j aGlsZChkZXZpY2VfdCBidXMsIHVfaW50IG9yZGUKPiAJcmV0dXJuKGNoaWxkKTsKPiB9Cj4gCj4r c3RhdGljIHN0cnVjdCBybWFuICoKPituZXh1c19ybWFuKGludCB0eXBlKQo+K3sKPisJc3dpdGNo ICh0eXBlKSB7Cj4rCWNhc2UgU1lTX1JFU19JUlE6Cj4rCQlyZXR1cm4gKCZpcnFfcm1hbik7Cj4r CWNhc2UgU1lTX1JFU19EUlE6Cj4rCQlyZXR1cm4gKCZkcnFfcm1hbik7Cj4rCWNhc2UgU1lTX1JF U19JT1BPUlQ6Cj4rCQlyZXR1cm4gKCZwb3J0X3JtYW4pOwo+KwljYXNlIFNZU19SRVNfTUVNT1JZ Ogo+KwkJcmV0dXJuICgmbWVtX3JtYW4pOwo+KwlkZWZhdWx0Ogo+KwkJcmV0dXJuIChOVUxMKTsK PisJfQo+K30KPisKPiAvKgo+ICAqIEFsbG9jYXRlIGEgcmVzb3VyY2Ugb24gYmVoYWxmIG9mIGNo aWxkLiAgTkI6IGNoaWxkIGlzIHVzdWFsbHkgZ29pbmcgdG8gYmUgYQo+ICAqIGNoaWxkIG9mIG9u ZSBvZiBvdXIgZGVzY2VuZGFudHMsIG5vdCBhIGRpcmVjdCBjaGlsZCBvZiBuZXh1czAuCj5AQCAt MzY0LDI3ICszODQsOSBAQCBuZXh1c19hbGxvY19yZXNvdXJjZShkZXZpY2VfdCBidXMsIGRldmlj Cj4gCX0KPiAKPiAJZmxhZ3MgJj0gflJGX0FDVElWRTsKPi0KPi0Jc3dpdGNoICh0eXBlKSB7Cj4t CWNhc2UgU1lTX1JFU19JUlE6Cj4tCQlybSA9ICZpcnFfcm1hbjsKPi0JCWJyZWFrOwo+LQo+LQlj YXNlIFNZU19SRVNfRFJROgo+LQkJcm0gPSAmZHJxX3JtYW47Cj4tCQlicmVhazsKPi0KPi0JY2Fz ZSBTWVNfUkVTX0lPUE9SVDoKPi0JCXJtID0gJnBvcnRfcm1hbjsKPi0JCWJyZWFrOwo+LQo+LQlj YXNlIFNZU19SRVNfTUVNT1JZOgo+LQkJcm0gPSAmbWVtX3JtYW47Cj4tCQlicmVhazsKPi0KPi0J ZGVmYXVsdDoKPi0JCXJldHVybiAwOwo+LQl9Cj4rCXJtID0gbmV4dXNfcm1hbih0eXBlKTsKPisJ aWYgKHJtID09IE5VTEwpCj4rCQlyZXR1cm4gKE5VTEwpOwo+IAo+IAlydiA9IHJtYW5fcmVzZXJ2 ZV9yZXNvdXJjZShybSwgc3RhcnQsIGVuZCwgY291bnQsIGZsYWdzLCBjaGlsZCk7Cj4gCWlmIChy diA9PSAwKQo+QEAgLTQwMiw2ICs0MDQsMjAgQEAgbmV4dXNfYWxsb2NfcmVzb3VyY2UoZGV2aWNl X3QgYnVzLCBkZXZpYwo+IH0KPiAKPiBzdGF0aWMgaW50Cj4rbmV4dXNfYWRqdXN0X3Jlc291cmNl KGRldmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB0eXBlLAo+KyAgICBzdHJ1Y3QgcmVz b3VyY2UgKnIsIHVfbG9uZyBzdGFydCwgdV9sb25nIGVuZCkKPit7Cj4rCXN0cnVjdCBybWFuICpy bTsKPisKPisJcm0gPSBuZXh1c19ybWFuKHR5cGUpOwo+KwlpZiAocm0gPT0gTlVMTCkKPisJCXJl dHVybiAoRU5YSU8pOwo+KwlpZiAoIXJtYW5faXNfcmVnaW9uX21hbmFnZXIociwgcm0pKQo+KwkJ cmV0dXJuIChFSU5WQUwpOwo+KwlyZXR1cm4gKHJtYW5fYWRqdXN0X3Jlc291cmNlKHIsIHN0YXJ0 LCBlbmQpKTsKPit9Cj4rCj4rc3RhdGljIGludAo+IG5leHVzX2FjdGl2YXRlX3Jlc291cmNlKGRl dmljZV90IGJ1cywgZGV2aWNlX3QgY2hpbGQsIGludCB0eXBlLCBpbnQgcmlkLAo+IAkJCXN0cnVj dCByZXNvdXJjZSAqcikKPiB7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkgIDIgMTQ6 MzQ6MDMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjYKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNk Lm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjYKPgo+TG9nOgo+ICBBZGQgYW4gZW50cnkgZm9yIHRo ZSBLdXJvdXRvc2hpa291IFNFUklBTDRQLUxQUENJMiB3aGljaCB1c2VzIGFuIE94Zm9yZAo+ICA0 IHBvcnQgY2hpcCBidXQgd2l0aCBhIG5vbnN0YW5kYXJkIGNsb2NrLgo+ICAKPiAgUFI6CQlrZXJu LzEwNDIxMgo+ICBTdWJtaXR0ZWQgYnk6CVNodWljaGkgS0lUQUdVQ0hJICBraXQgb2YgeXNuYiBu ZXQKPiAgTUZDIGFmdGVyOgkxIHdlZWsKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2Rldi9wdWMv cHVjZGF0YS5jCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9kZXYvcHVjL3B1Y2RhdGEuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L3B1Yy9wdWNkYXRhLmMJTW9uIE1heSAg MiAxNDoyMzozNiAyMDExCShyMjIxMzI1KQo+KysrIGhlYWQvc3lzL2Rldi9wdWMvcHVjZGF0YS5j CU1vbiBNYXkgIDIgMTQ6MzQ6MDMgMjAxMQkocjIyMTMyNikKPkBAIC02MzgsNiArNjM4LDEyIEBA IGNvbnN0IHN0cnVjdCBwdWNfY2ZnIHB1Y19wY2lfZGV2aWNlc1tdID0KPiAJICAgIFBVQ19QT1JU XzRTLCAweDEwLCAwLCA4LAo+IAl9LAo+IAo+Kwl7ICAgMHgxNDE1LCAweDk1MDEsIDB4MTRkYiwg MHgyMTUwLAo+KwkgICAgIkt1cm91dG9zaGlrb3UgU0VSSUFMNFAtTFBQQ0kyIiwKPisJICAgIERF RkFVTFRfUkNMSyAqIDEwLAo+KwkgICAgUFVDX1BPUlRfNFMsIDB4MTAsIDAsIDgsCj4rCX0sCj4r Cj4gCXsgICAweDE0MTUsIDB4OTUwMSwgMHhmZmZmLCAwLAo+IAkgICAgIk94Zm9yZCBTZW1pY29u ZHVjdG9yIE9YMTZQQ0k5NTQgVUFSVHMiLAo+IAkgICAgREVGQVVMVF9SQ0xLLAo+Cj4KPk9uIFN1 bmRheSwgTWF5IDAxLCAyMDExIDM6MDU6NTQgcG0gQmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4g QXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEKPj4gTmV3 IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNl dC9iYXNlLzIyMTMwMQo+PiAKPj4gTG9nOgo+PiAgIFRoZXNlIGFyZSBvZiBjb3Vyc2UgaTM4Ni9h bWQ2NCBvbmx5Lgo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9OT1RFUwo+Cj5Q bGVhc2UgcHV0IHRoZW0gaW4gaTM4Ni9jb25mL05PVEVTIGFuZCBhbWQ2NC9jb25mL05PVEVTLiAg QWxsIGRyaXZlcnMgc2hvdWxkIAo+YmUgaW4gYXBwcm9wcmlhdGUgTk9URVMgZmlsZXMuCj4KPi0t IAo+Sm9obiBCYWxkd2luCj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkgIDIgMTU6MDE6 MjggMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjcKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9y Zy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjcKPgo+TG9nOgo+ICBEb24ndCBleHBsaWNpdGx5IGxpc3Qg cGNpX3dyaXRlX2l2YXIoKSBmb3IgYnVzX3dyaXRlX2l2YXIsIHRoZSBtZXRob2QgaXMKPiAgYWxy ZWFkeSBpbmhlcml0ZWQgZnJvbSB0aGUgUENJIGJ1cyBkcml2ZXIuCj4KPk1vZGlmaWVkOgo+ICBo ZWFkL3N5cy9kZXYvY2FyZGJ1cy9jYXJkYnVzLmMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9j YXJkYnVzL2NhcmRidXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2 L2NhcmRidXMvY2FyZGJ1cy5jCU1vbiBNYXkgIDIgMTQ6MzQ6MDMgMjAxMQkocjIyMTMyNikKPisr KyBoZWFkL3N5cy9kZXYvY2FyZGJ1cy9jYXJkYnVzLmMJTW9uIE1heSAgMiAxNTowMToyOCAyMDEx CShyMjIxMzI3KQo+QEAgLTMxNyw3ICszMTcsNiBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGNh cmRidXNfbWV0aG9kc1tdCj4gCj4gCS8qIEJ1cyBpbnRlcmZhY2UgKi8KPiAJREVWTUVUSE9EKGJ1 c19yZWFkX2l2YXIsCWNhcmRidXNfcmVhZF9pdmFyKSwKPi0JREVWTUVUSE9EKGJ1c193cml0ZV9p dmFyLAlwY2lfd3JpdGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfZHJpdmVyX2FkZGVkLAljYXJk YnVzX2RyaXZlcl9hZGRlZCksCj4gCj4gCS8qIENhcmQgSW50ZXJmYWNlICovCj4KPgo+QXV0aG9y OiB0dWV4ZW4KPkRhdGU6IE1vbiBNYXkgIDIgMTU6NTM6MDAgMjAxMQo+TmV3IFJldmlzaW9uOiAy MjEzMjgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjgK Pgo+TG9nOgo+ICBTb21lIG1vcmUgY2xlYW51cHMgcmVsYXRlZCB0byBhbiBrZXJuZWwgd2l0aG91 dCBJTkVULgo+ICAKPiAgTUZDIGFmdGVyOiAxIHdlZWsKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lz L25ldGluZXQvc2N0cHV0aWwuYwo+ICBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmgKPgo+TW9k aWZpZWQ6IGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuYwo+PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4tLS0gaGVhZC9zeXMvbmV0aW5ldC9zY3RwdXRpbC5jCU1vbiBNYXkgIDIgMTU6MDE6MjggMjAx MQkocjIyMTMyNykKPisrKyBoZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmMJTW9uIE1heSAgMiAx NTo1MzowMCAyMDExCShyMjIxMzI4KQo+QEAgLTI4NDQsOSArMjg0NCwxMSBAQCBzY3RwX25vdGlm eV9wZWVyX2FkZHJfY2hhbmdlKHN0cnVjdCBzY3RwCj4gCXNwYy0+c3BjX2ZsYWdzID0gMDsKPiAJ c3BjLT5zcGNfbGVuZ3RoID0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhZGRyX2NoYW5nZSk7Cj4gCXN3 aXRjaCAoc2EtPnNhX2ZhbWlseSkgewo+KyNpZmRlZiBJTkVUCj4gCWNhc2UgQUZfSU5FVDoKPiAJ CW1lbWNweSgmc3BjLT5zcGNfYWFkZHIsIHNhLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7 Cj4gCQlicmVhazsKPisjZW5kaWYKPiAjaWZkZWYgSU5FVDYKPiAJY2FzZSBBRl9JTkVUNjoKPiAJ CXsKPkBAIC00MDg0LDYgKzQwODYsNyBAQCBzY3RwX2NtcGFkZHIoc3RydWN0IHNvY2thZGRyICpz YTEsIHN0cnVjCj4gCQkJICAgIHNpbjZfMikpOwo+IAkJfQo+ICNlbmRpZgo+KyNpZmRlZiBJTkVU Cj4gCWNhc2UgQUZfSU5FVDoKPiAJCXsKPiAJCQkvKiBJUHY0IGFkZHJlc3NlcyAqLwo+QEAgLTQw OTMsNiArNDA5Niw3IEBAIHNjdHBfY21wYWRkcihzdHJ1Y3Qgc29ja2FkZHIgKnNhMSwgc3RydWMK PiAJCQlzaW5fMiA9IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilzYTI7Cj4gCQkJcmV0dXJuIChzaW5f MS0+c2luX2FkZHIuc19hZGRyID09IHNpbl8yLT5zaW5fYWRkci5zX2FkZHIpOwo+IAkJfQo+KyNl bmRpZgo+IAlkZWZhdWx0Ogo+IAkJLyogd2UgZG9uJ3QgZG8gdGhlc2UuLi4gKi8KPiAJCXJldHVy biAoMCk7Cj5AQCAtNDEyMiw2ICs0MTI2LDcgQEAgc2N0cF9wcmludF9hZGRyZXNzKHN0cnVjdCBz b2NrYWRkciAqc2EpCj4gCQkJYnJlYWs7Cj4gCQl9Cj4gI2VuZGlmCj4rI2lmZGVmIElORVQKPiAJ Y2FzZSBBRl9JTkVUOgo+IAkJewo+IAkJCXN0cnVjdCBzb2NrYWRkcl9pbiAqc2luOwo+QEAgLTQx MzMsNiArNDEzOCw3IEBAIHNjdHBfcHJpbnRfYWRkcmVzcyhzdHJ1Y3Qgc29ja2FkZHIgKnNhKQo+ IAkJCSAgICBwWzBdLCBwWzFdLCBwWzJdLCBwWzNdLCBudG9ocyhzaW4tPnNpbl9wb3J0KSk7Cj4g CQkJYnJlYWs7Cj4gCQl9Cj4rI2VuZGlmCj4gCWRlZmF1bHQ6Cj4gCQlTQ1RQX1BSSU5URigiP1xu Iik7Cj4gCQlicmVhazsKPkBAIC00MTQzLDYgKzQxNDksNyBAQCB2b2lkCj4gc2N0cF9wcmludF9h ZGRyZXNzX3BrdChzdHJ1Y3QgaXAgKmlwaCwgc3RydWN0IHNjdHBoZHIgKnNoKQo+IHsKPiAJc3dp dGNoIChpcGgtPmlwX3YpIHsKPisjaWZkZWYgSU5FVAo+IAljYXNlIElQVkVSU0lPTjoKPiAJCXsK PiAJCQlzdHJ1Y3Qgc29ja2FkZHJfaW4gbHNhLCBmc2E7Cj5AQCAtNDE2Myw2ICs0MTcwLDcgQEAg c2N0cF9wcmludF9hZGRyZXNzX3BrdChzdHJ1Y3QgaXAgKmlwaCwgcwo+IAkJCXNjdHBfcHJpbnRf YWRkcmVzcygoc3RydWN0IHNvY2thZGRyICopJmZzYSk7Cj4gCQkJYnJlYWs7Cj4gCQl9Cj4rI2Vu ZGlmCj4gI2lmZGVmIElORVQ2Cj4gCWNhc2UgSVBWNl9WRVJTSU9OID4+IDQ6Cj4gCQl7Cj5AQCAt NDg2MiwyMiArNDg3MCwzMyBAQCBzY3RwX2ZpbmRfaWZhX2luX2VwKHN0cnVjdCBzY3RwX2lucGNi ICppCj4gdWludDMyX3QKPiBzY3RwX2dldF9pZmFfaGFzaF92YWwoc3RydWN0IHNvY2thZGRyICph ZGRyKQo+IHsKPi0JaWYgKGFkZHItPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4tCQlzdHJ1Y3Qg c29ja2FkZHJfaW4gKnNpbjsKPisJc3dpdGNoIChhZGRyLT5zYV9mYW1pbHkpIHsKPisjaWZkZWYg SU5FVAo+KwljYXNlIEFGX0lORVQ6Cj4rCQl7Cj4rCQkJc3RydWN0IHNvY2thZGRyX2luICpzaW47 Cj4gCj4tCQlzaW4gPSAoc3RydWN0IHNvY2thZGRyX2luICopYWRkcjsKPi0JCXJldHVybiAoc2lu LT5zaW5fYWRkci5zX2FkZHIgXiAoc2luLT5zaW5fYWRkci5zX2FkZHIgPj4gMTYpKTsKPi0JfSBl bHNlIGlmIChhZGRyLT5zYV9mYW1pbHkgPT0gQUZfSU5FVDYpIHsKPi0JCXN0cnVjdCBzb2NrYWRk cl9pbjYgKnNpbjY7Cj4tCQl1aW50MzJfdCBoYXNoX29mX2FkZHI7Cj4rCQkJc2luID0gKHN0cnVj dCBzb2NrYWRkcl9pbiAqKWFkZHI7Cj4rCQkJcmV0dXJuIChzaW4tPnNpbl9hZGRyLnNfYWRkciBe IChzaW4tPnNpbl9hZGRyLnNfYWRkciA+PiAxNikpOwo+KwkJfQo+KyNlbmRpZgo+KyNpZmRlZiBJ TkVUNgo+KwljYXNlIElORVQ2Ogo+KwkJewo+KwkJCXN0cnVjdCBzb2NrYWRkcl9pbjYgKnNpbjY7 Cj4rCQkJdWludDMyX3QgaGFzaF9vZl9hZGRyOwo+IAo+LQkJc2luNiA9IChzdHJ1Y3Qgc29ja2Fk ZHJfaW42ICopYWRkcjsKPi0JCWhhc2hfb2ZfYWRkciA9IChzaW42LT5zaW42X2FkZHIuczZfYWRk cjMyWzBdICsKPi0JCSAgICBzaW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzFdICsKPi0JCSAgICBz aW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzJdICsKPi0JCSAgICBzaW42LT5zaW42X2FkZHIuczZf YWRkcjMyWzNdKTsKPi0JCWhhc2hfb2ZfYWRkciA9IChoYXNoX29mX2FkZHIgXiAoaGFzaF9vZl9h ZGRyID4+IDE2KSk7Cj4tCQlyZXR1cm4gKGhhc2hfb2ZfYWRkcik7Cj4rCQkJc2luNiA9IChzdHJ1 Y3Qgc29ja2FkZHJfaW42ICopYWRkcjsKPisJCQloYXNoX29mX2FkZHIgPSAoc2luNi0+c2luNl9h ZGRyLnM2X2FkZHIzMlswXSArCj4rCQkJICAgIHNpbjYtPnNpbjZfYWRkci5zNl9hZGRyMzJbMV0g Kwo+KwkJCSAgICBzaW42LT5zaW42X2FkZHIuczZfYWRkcjMyWzJdICsKPisJCQkgICAgc2luNi0+ c2luNl9hZGRyLnM2X2FkZHIzMlszXSk7Cj4rCQkJaGFzaF9vZl9hZGRyID0gKGhhc2hfb2ZfYWRk ciBeIChoYXNoX29mX2FkZHIgPj4gMTYpKTsKPisJCQlyZXR1cm4gKGhhc2hfb2ZfYWRkcik7Cj4r CQl9Cj4rI2VuZGlmCj4rCWRlZmF1bHQ6Cj4rCQlicmVhazsKPiAJfQo+IAlyZXR1cm4gKDApOwo+ IH0KPkBAIC02MjUwLDcgKzYyNjksOSBAQCBzY3RwX2Nvbm5lY3R4X2hlbHBlcl9hZGQoc3RydWN0 IHNjdHBfdGNiCj4gCWlucCA9IHN0Y2ItPnNjdHBfZXA7Cj4gCSplcnJvciA9IDA7Cj4gCWZvciAo aSA9IDA7IGkgPCB0b3RhZGRyOyBpKyspIHsKPi0JCWlmIChzYS0+c2FfZmFtaWx5ID09IEFGX0lO RVQpIHsKPisJCXN3aXRjaCAoc2EtPnNhX2ZhbWlseSkgewo+KyNpZmRlZiBJTkVUCj4rCQljYXNl IEFGX0lORVQ6Cj4gCQkJaW5jciA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwo+IAkJCWlm IChzY3RwX2FkZF9yZW1vdGVfYWRkcihzdGNiLCBzYSwgU0NUUF9ET05PVF9TRVRTQ09QRSwgU0NU UF9BRERSX0lTX0NPTkZJUk1FRCkpIHsKPiAJCQkJLyogYXNzb2MgZ29uZSBubyB1bi1sb2NrICov Cj5AQCAtNjI2MCw3ICs2MjgxLDEwIEBAIHNjdHBfY29ubmVjdHhfaGVscGVyX2FkZChzdHJ1Y3Qg c2N0cF90Y2IKPiAJCQkJZ290byBvdXRfbm93Owo+IAkJCX0KPiAJCQlhZGRlZCsrOwo+LQkJfSBl bHNlIGlmIChzYS0+c2FfZmFtaWx5ID09IEFGX0lORVQ2KSB7Cj4rCQkJYnJlYWs7Cj4rI2VuZGlm Cj4rI2lmZGVmIElORVQ2Cj4rCQljYXNlIEFGX0lORVQ2Ogo+IAkJCWluY3IgPSBzaXplb2Yoc3Ry dWN0IHNvY2thZGRyX2luNik7Cj4gCQkJaWYgKHNjdHBfYWRkX3JlbW90ZV9hZGRyKHN0Y2IsIHNh LCBTQ1RQX0RPTk9UX1NFVFNDT1BFLCBTQ1RQX0FERFJfSVNfQ09ORklSTUVEKSkgewo+IAkJCQkv KiBhc3NvYyBnb25lIG5vIHVuLWxvY2sgKi8KPkBAIC02MjcwLDYgKzYyOTQsMTAgQEAgc2N0cF9j b25uZWN0eF9oZWxwZXJfYWRkKHN0cnVjdCBzY3RwX3RjYgo+IAkJCQlnb3RvIG91dF9ub3c7Cj4g CQkJfQo+IAkJCWFkZGVkKys7Cj4rCQkJYnJlYWs7Cj4rI2VuZGlmCj4rCQlkZWZhdWx0Ogo+KwkJ CWJyZWFrOwo+IAkJfQo+IAkJc2EgPSAoc3RydWN0IHNvY2thZGRyICopKChjYWRkcl90KXNhICsg aW5jcik7Cj4gCX0KPkBAIC02Mjg4LDEwICs2MzE2LDEzIEBAIHNjdHBfY29ubmVjdHhfaGVscGVy X2ZpbmQoc3RydWN0IHNjdHBfaW4KPiAKPiAJYXQgPSBpbmNyID0gMDsKPiAJc2EgPSBhZGRyOwo+ Kwo+IAkqZXJyb3IgPSAqbnVtX3Y2ID0gKm51bV92NCA9IDA7Cj4gCS8qIGFjY291bnQgYW5kIHZh bGlkYXRlIGFkZHJlc3NlcyAqLwo+IAlmb3IgKGkgPSAwOyBpIDwgKHNpemVfdCkqdG90YWRkcjsg aSsrKSB7Cj4tCQlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4rCQlzd2l0Y2ggKHNh LT5zYV9mYW1pbHkpIHsKPisjaWZkZWYgSU5FVAo+KwkJY2FzZSBBRl9JTkVUOgo+IAkJCSgqbnVt X3Y0KSArPSAxOwo+IAkJCWluY3IgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKTsKPiAJCQlp ZiAoc2EtPnNhX2xlbiAhPSBpbmNyKSB7Cj5AQCAtNjMwMCwzMCArNjMzMSw0MCBAQCBzY3RwX2Nv bm5lY3R4X2hlbHBlcl9maW5kKHN0cnVjdCBzY3RwX2luCj4gCQkJCSpiYWRfYWRkciA9IDE7Cj4g CQkJCXJldHVybiAoTlVMTCk7Cj4gCQkJfQo+LQkJfSBlbHNlIGlmIChzYS0+c2FfZmFtaWx5ID09 IEFGX0lORVQ2KSB7Cj4tCQkJc3RydWN0IHNvY2thZGRyX2luNiAqc2luNjsKPi0KPi0JCQlzaW42 ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilzYTsKPi0JCQlpZiAoSU42X0lTX0FERFJfVjRNQVBQ RUQoJnNpbjYtPnNpbjZfYWRkcikpIHsKPi0JCQkJLyogTXVzdCBiZSBub24tbWFwcGVkIGZvciBj b25uZWN0eCAqLwo+LQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NU UF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+LQkJCQkqZXJyb3IgPSBFSU5WQUw7Cj4tCQkJCSpi YWRfYWRkciA9IDE7Cj4tCQkJCXJldHVybiAoTlVMTCk7Cj4tCQkJfQo+LQkJCSgqbnVtX3Y2KSAr PSAxOwo+LQkJCWluY3IgPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNik7Cj4tCQkJaWYgKHNh LT5zYV9sZW4gIT0gaW5jcikgewo+LQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwg TlVMTCwgU0NUUF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+LQkJCQkqZXJyb3IgPSBFSU5WQUw7 Cj4tCQkJCSpiYWRfYWRkciA9IDE7Cj4tCQkJCXJldHVybiAoTlVMTCk7Cj4rCQkJYnJlYWs7Cj4r I2VuZGlmCj4rI2lmZGVmIElORVQ2Cj4rCQljYXNlIEFGX0lORVQ2Ogo+KwkJCXsKPisJCQkJc3Ry dWN0IHNvY2thZGRyX2luNiAqc2luNjsKPisKPisJCQkJc2luNiA9IChzdHJ1Y3Qgc29ja2FkZHJf aW42ICopc2E7Cj4rCQkJCWlmIChJTjZfSVNfQUREUl9WNE1BUFBFRCgmc2luNi0+c2luNl9hZGRy KSkgewo+KwkJCQkJLyogTXVzdCBiZSBub24tbWFwcGVkIGZvciBjb25uZWN0eCAqLwo+KwkJCQkJ U0NUUF9MVFJBQ0VfRVJSX1JFVChpbnAsIE5VTEwsIE5VTEwsIFNDVFBfRlJPTV9TQ1RQVVRJTCwg RUlOVkFMKTsKPisJCQkJCSplcnJvciA9IEVJTlZBTDsKPisJCQkJCSpiYWRfYWRkciA9IDE7Cj4r CQkJCQlyZXR1cm4gKE5VTEwpOwo+KwkJCQl9Cj4rCQkJCSgqbnVtX3Y2KSArPSAxOwo+KwkJCQlp bmNyID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOwo+KwkJCQlpZiAoc2EtPnNhX2xlbiAh PSBpbmNyKSB7Cj4rCQkJCQlTQ1RQX0xUUkFDRV9FUlJfUkVUKGlucCwgTlVMTCwgTlVMTCwgU0NU UF9GUk9NX1NDVFBVVElMLCBFSU5WQUwpOwo+KwkJCQkJKmVycm9yID0gRUlOVkFMOwo+KwkJCQkJ KmJhZF9hZGRyID0gMTsKPisJCQkJCXJldHVybiAoTlVMTCk7Cj4rCQkJCX0KPisJCQkJYnJlYWs7 Cj4gCQkJfQo+LQkJfSBlbHNlIHsKPisjZW5kaWYKPisJCWRlZmF1bHQ6Cj4gCQkJKnRvdGFkZHIg PSBpOwo+IAkJCS8qIHdlIGFyZSBkb25lICovCj4gCQkJYnJlYWs7Cj4gCQl9Cj4rCQlpZiAoaSA9 PSAoc2l6ZV90KSp0b3RhZGRyKSB7Cj4rCQkJYnJlYWs7Cj4rCQl9Cj4gCQlTQ1RQX0lOUF9JTkNS X1JFRihpbnApOwo+IAkJc3RjYiA9IHNjdHBfZmluZGFzc29jaWF0aW9uX2VwX2FkZHIoJmlucCwg c2EsIE5VTEwsIE5VTEwsIE5VTEwpOwo+IAkJaWYgKHN0Y2IgIT0gTlVMTCkgewo+QEAgLTYzNjQs NyArNjQwNSw3IEBAIHNjdHBfYmluZHhfYWRkX2FkZHJlc3Moc3RydWN0IHNvY2tldCAqc28KPiAJ CXJldHVybjsKPiAJfQo+IAlhZGRyX3RvdXNlID0gc2E7Cj4tI2lmIGRlZmluZWQoSU5FVDYpICYm ICFkZWZpbmVkKF9fVXNlcnNwYWNlX18pCS8qIFRPRE8gcG9ydCBpbjZfc2luNl8yX3NpbiAqLwo+ KyNpZmRlZiBJTkVUNgo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgewo+IAkJc3Ry dWN0IHNvY2thZGRyX2luNiAqc2luNjsKPiAKPkBAIC02MzkzLDYgKzY0MzQsNyBAQCBzY3RwX2Jp bmR4X2FkZF9hZGRyZXNzKHN0cnVjdCBzb2NrZXQgKnNvCj4gCQl9Cj4gCX0KPiAjZW5kaWYKPisj aWZkZWYgSU5FVAo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7Cj4gCQlpZiAoc2Et PnNhX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgewo+IAkJCVNDVFBfTFRSQUNF X0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NUUFVUSUwsIEVJTlZBTCk7Cj5A QCAtNjQwNyw2ICs2NDQ5LDcgQEAgc2N0cF9iaW5keF9hZGRfYWRkcmVzcyhzdHJ1Y3Qgc29ja2V0 ICpzbwo+IAkJCXJldHVybjsKPiAJCX0KPiAJfQo+KyNlbmRpZgo+IAlpZiAoaW5wLT5zY3RwX2Zs YWdzICYgU0NUUF9QQ0JfRkxBR1NfVU5CT1VORCkgewo+IAkJaWYgKHAgPT0gTlVMTCkgewo+IAkJ CS8qIENhbid0IGdldCBwcm9jIGZvciBOZXQvT3BlbiBCU0QgKi8KPkBAIC02NTE5LDYgKzY1NjIs NyBAQCBzY3RwX2JpbmR4X2RlbGV0ZV9hZGRyZXNzKHN0cnVjdCBzb2NrZXQgCj4gCQl9Cj4gCX0K PiAjZW5kaWYKPisjaWZkZWYgSU5FVAo+IAlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUKSB7 Cj4gCQlpZiAoc2EtPnNhX2xlbiAhPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgewo+IAkJ CVNDVFBfTFRSQUNFX0VSUl9SRVQoaW5wLCBOVUxMLCBOVUxMLCBTQ1RQX0ZST01fU0NUUFVUSUws IEVJTlZBTCk7Cj5AQCAtNjUzMyw2ICs2NTc3LDcgQEAgc2N0cF9iaW5keF9kZWxldGVfYWRkcmVz cyhzdHJ1Y3Qgc29ja2V0IAo+IAkJCXJldHVybjsKPiAJCX0KPiAJfQo+KyNlbmRpZgo+IAkvKgo+ IAkgKiBObyBsb2NrIHJlcXVpcmVkIG1nbXRfZXBfc2EgZG9lcyBpdHMgb3duIGxvY2tpbmcuIElm IHRoZSBGSVg6Cj4gCSAqIGJlbG93IGlzIGV2ZXIgY2hhbmdlZCB3ZSBtYXkgbmVlZCB0byBsb2Nr IGJlZm9yZSBjYWxsaW5nCj5AQCAtNjU5OSw2ICs2NjQ0LDcgQEAgc2N0cF9sb2NhbF9hZGRyX2Nv dW50KHN0cnVjdCBzY3RwX3RjYiAqcwo+IAkJCQlpZiAoc2N0cF9pc19hZGRyX3Jlc3RyaWN0ZWQo c3RjYiwgc2N0cF9pZmEpKQo+IAkJCQkJY29udGludWU7Cj4gCQkJCXN3aXRjaCAoc2N0cF9pZmEt PmFkZHJlc3Muc2Euc2FfZmFtaWx5KSB7Cj4rI2lmZGVmIElORVQKPiAJCQkJY2FzZSBBRl9JTkVU Ogo+IAkJCQkJaWYgKGlwdjRfYWRkcl9sZWdhbCkgewo+IAkJCQkJCXN0cnVjdCBzb2NrYWRkcl9p biAqc2luOwo+QEAgLTY2MjEsNiArNjY2Nyw3IEBAIHNjdHBfbG9jYWxfYWRkcl9jb3VudChzdHJ1 Y3Qgc2N0cF90Y2IgKnMKPiAJCQkJCQljb250aW51ZTsKPiAJCQkJCX0KPiAJCQkJCWJyZWFrOwo+ KyNlbmRpZgo+ICNpZmRlZiBJTkVUNgo+IAkJCQljYXNlIEFGX0lORVQ2Ogo+IAkJCQkJaWYgKGlw djZfYWRkcl9sZWdhbCkgewo+QEAgLTY3MTUsNiArNjc2Miw4IEBAIHNjdHBfbG9nX3RyYWNlKHVp bnQzMl90IHN1YnN5cywgY29uc3QgY2gKPiB9Cj4gCj4gI2VuZGlmCj4rLyogWFhYOiBSZW1vdmUg dGhlICNpZmRlZiBhZnRlciB0dW5uZWxpbmcgb3ZlciBJUHY2IHdvcmtzIGFsc28gb24gRnJlZUJT RC4gKi8KPisjaWZkZWYgSU5FVAo+IC8qIFdlIHdpbGwgbmVlZCB0byBhZGQgc3VwcG9ydAo+ICAq IHRvIGJpbmQgdGhlIHBvcnRzIGFuZCBzdWNoIGhlcmUKPiAgKiBzbyB3ZSBjYW4gZG8gVURQIHR1 bm5lbGluZy4gSW4KPkBAIC02ODE2LDcgKzY4NjUsNyBAQCBvdXQ6Cj4gCW1fZnJlZW0obSk7Cj4g fQo+IAo+LXZvaWQgCj4rdm9pZAo+IHNjdHBfb3Zlcl91ZHBfc3RvcCh2b2lkKQo+IHsKPiAJc3Ry dWN0IHNvY2tldCAqc29wOwo+QEAgLTY4MzMsNyArNjg4Miw4IEBAIHNjdHBfb3Zlcl91ZHBfc3Rv cCh2b2lkKQo+IAlzb2Nsb3NlKHNvcCk7Cj4gCVNDVFBfQkFTRV9JTkZPKHVkcF90dW5fc29ja2V0 KSA9IE5VTEw7Cj4gfQo+LWludCAKPisKPitpbnQKPiBzY3RwX292ZXJfdWRwX3N0YXJ0KHZvaWQp Cj4gewo+IAl1aW50MTZfdCBwb3J0Owo+QEAgLTY4ODYsMyArNjkzNiw1IEBAIGV4aXRfc3RhZ2Vf bGVmdDoKPiAJICovCj4gCXJldHVybiAoMCk7Cj4gfQo+Kwo+KyNlbmRpZgo+Cj5Nb2RpZmllZDog aGVhZC9zeXMvbmV0aW5ldC9zY3RwdXRpbC5oCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3N5cy9uZXRpbmV0L3NjdHB1dGlsLmgJTW9uIE1heSAgMiAxNTowMToyOCAyMDExCShyMjIx MzI3KQo+KysrIGhlYWQvc3lzL25ldGluZXQvc2N0cHV0aWwuaAlNb24gTWF5ICAyIDE1OjUzOjAw IDIwMTEJKHIyMjEzMjgpCj5AQCAtMzEzLDEwICszMTMsMTQgQEAgZG8geyBcCj4gCX0gXAo+IH0g d2hpbGUgKDApCj4gCj4tLyogbmV3IGZ1bmN0aW9ucyB0byBzdGFydC9zdG9wIHVkcCB0dW5uZWxp bmcgKi8KPisvKiBmdW5jdGlvbnMgdG8gc3RhcnQvc3RvcCB1ZHAgdHVubmVsaW5nICovCj4rLyog WFhYOiBSZW1vdmUgdGhlICNpZmRlZiBhZnRlciB0dW5uZWxpbmcgb3ZlciBJUHY2IHdvcmtzIGFs c28gb24gRnJlZUJTRC4gKi8KPisjaWZkZWYgSU5FVAo+IHZvaWQgc2N0cF9vdmVyX3VkcF9zdG9w KHZvaWQpOwo+IGludCBzY3RwX292ZXJfdWRwX3N0YXJ0KHZvaWQpOwo+IAo+KyNlbmRpZgo+Kwo+ IGludAo+IHNjdHBfc29yZWNlaXZlKHN0cnVjdCBzb2NrZXQgKnNvLCBzdHJ1Y3Qgc29ja2FkZHIg Kipwc2EsCj4gICAgIHN0cnVjdCB1aW8gKnVpbywKPgo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRl OiBNb24gTWF5ICAyIDE2OjUxOjAyIDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzI5Cj5VUkw6IGh0 dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzI5Cj4KPkxvZzoKPiAgQWxs IFBDSSBiYXNlZCB3aXJlbGVzcyBkcml2ZXJzIHNlZW0gdG8gYmUgZXhwbGljaXRseSByZW1vdmVk IGZyb20gdGhlCj4gIFBBRSBrZXJuZWwgY29uZmlnLCBkbyB0aGF0IGFsc28gZm9yIHRob3NlIGFk ZGVkIHRvIEdFTkVSSUMgbGF0ZWx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvaTM4Ni9jb25m L1BBRQo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQo+PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Cj4tLS0gaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQlNb24gTWF5ICAyIDE1OjUzOjAwIDIw MTEJKHIyMjEzMjgpCj4rKysgaGVhZC9zeXMvaTM4Ni9jb25mL1BBRQlNb24gTWF5ICAyIDE2OjUx OjAyIDIwMTEJKHIyMjEzMjkpCj5AQCAtNzcsNSArNzcsMTEgQEAgbm9kZXZpY2UJYXRoCQkjIEF0 aGVyb3MgcGNpL2NhcmRidXMgTklDJwo+IG5vZGV2aWNlCWF0aF9wY2kKPiBub2RldmljZQlhdGhf aGFsCj4gbm9kZXZpY2UJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRy b2wgZm9yIGF0aAo+K25vZGV2aWNlCWlwdwo+K25vZGV2aWNlCWl3aQo+K25vZGV2aWNlCWl3bgo+ K25vZGV2aWNlCW1hbG8KPitub2RldmljZQltd2wKPiBub2RldmljZQlyYWwKPiBub2RldmljZQl3 aQo+K25vZGV2aWNlCXdwaQo+Cj4KPk9uIE1vbmRheSAwMiBNYXkgMjAxMSAxNDozOTo1NyBKb2hu IEJhbGR3aW4gd3JvdGU6Cj4+IE9uIFN1bmRheSwgTWF5IDAxLCAyMDExIDM6MDU6NTQgcG0gQmVy bmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTogU3Vu IE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBVUkw6 IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4gCj4+ID4g TG9nOgo+PiA+ICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+ID4gCj4+ ID4gTW9kaWZpZWQ6Cj4+ID4gICBoZWFkL3N5cy9jb25mL05PVEVTCj4+IAo+PiBQbGVhc2UgcHV0 IHRoZW0gaW4gaTM4Ni9jb25mL05PVEVTIGFuZCBhbWQ2NC9jb25mL05PVEVTLiAgQWxsIGRyaXZl cnMgc2hvdWxkIAo+PiBiZSBpbiBhcHByb3ByaWF0ZSBOT1RFUyBmaWxlcy4KPgo+VGhleSBhY3R1 YWxseSBhcmUuIE15IGZhdWx0IHdhcyB0byBub3QgY2hlY2sgdGhvc2UgMiBmaWxlcyBpbiB0aGUK PmZpcnN0IHBsYWNlLgo+Cj5Tb3JyeSB0aGUgbm9pc2UgdGhpcyBoYXMgY2F1c2VkLgo+Cj4tLSAK PkJlcm5oYXJkCj4KPgo+QXV0aG9yOiBqa2ltCj5EYXRlOiBNb24gTWF5ICAyIDE3OjA4OjM2IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzMxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzMxCj4KPkxvZzoKPiAgRml4IGJ1aWxkIHdpdGggY2xhbmcuICBQbGVh c2Ugbm90ZSB0aGVyZSBpcyBhbiBMTFZNL0NsYW5nIFBSOgo+ICAKPiAgaHR0cDovL2xsdm0ub3Jn L2J1Z3Mvc2hvd19idWcuY2dpP2lkPTkzNzkKPiAgCj4gIFJlcG9ydGVkIGJ5OglycGF1bG8sIGRp bQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMveDg2L3g4Ni90c2MuYwo+Cj5Nb2RpZmllZDogaGVh ZC9zeXMveDg2L3g4Ni90c2MuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMv eDg2L3g4Ni90c2MuYwlNb24gTWF5ICAyIDE3OjA0OjA5IDIwMTEJKHIyMjEzMzApCj4rKysgaGVh ZC9zeXMveDg2L3g4Ni90c2MuYwlNb24gTWF5ICAyIDE3OjA4OjM2IDIwMTEJKHIyMjEzMzEpCj5A QCAtMTAwLDcgKzEwMCw3IEBAIHN0YXRpYyBfX2lubGluZSB2b2lkCj4gdm13YXJlX2h2Y2FsbCh1 X2ludCBjbWQsIHVfaW50ICpwKQo+IHsKPiAKPi0JX19hc20gX192b2xhdGlsZSgiaW5sICglJWR4 KSIKPisJX19hc20gX192b2xhdGlsZSgiaW5sICV3MywgJTAiCj4gCTogIj1hIiAocFswXSksICI9 YiIgKHBbMV0pLCAiPWMiIChwWzJdKSwgIj1kIiAocFszXSkKPiAJOiAiMCIgKFZNV19IVk1BR0lD KSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+IAk6ICJtZW1v cnkiKTsKPgo+Cj5PbiBNb25kYXkgMDIgTWF5IDIwMTEgMDc6MDggYW0sIERpbWl0cnkgQW5kcmlj IHdyb3RlOgo+PiBPbiAyMDExLTA0LTI5IDIwOjIwLCBKdW5nLXVrIEtpbSB3cm90ZToKPj4gLi4u Cj4+Cj4+ID4gK3N0YXRpYyBfX2lubGluZSB2b2lkCj4+ID4gK3Ztd2FyZV9odmNhbGwodV9pbnQg Y21kLCB1X2ludCAqcCkKPj4gPiArewo+PiA+ICsKPj4gPiArCV9fYXNtIF9fdm9sYXRpbGUoImlu bCAoJSVkeCkiCj4+ID4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAocFsyXSks ICI9ZCIgKHBbM10pCj4+ID4gKwk6ICIwIiAoVk1XX0hWTUFHSUMpLCAiMSIgKFVJTlRfTUFYKSwg IjIiIChjbWQpLCAiMyIKPj4gPiAoVk1XX0hWUE9SVCkgKwk6ICJtZW1vcnkiKTsKPj4gPiArfQo+ Pgo+PiBUaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGlu ayBpdCdzIHJpZ2h0IGluCj4+IHRoaXMgY2FzZToKPj4KPj4gc3lzL3g4Ni94ODYvdHNjLmM6MTAz OjE5OiBlcnJvcjogaW52YWxpZCBvcGVyYW5kIGZvciBpbnN0cnVjdGlvbgo+PiAgICAgICAgICBf X2FzbSBfX3ZvbGF0aWxlKCJpbmwgKCUlZHgpIgo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KPj4gPGlubGluZSBhc20+OjE6Njogbm90ZTogaW5zdGFudGlhdGVkIGludG8gYXNzZW1ibHkg aGVyZQo+PiAgICAgICAgICBpbmwgKCVkeCkKPj4gICAgICAgICAgICAgIF4KPj4KPj4gQ2FuIHdl IHBsZWFzZSBhZGQgYW4gZXhwbGljaXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBF LmcuOgo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90 c2MuYwo+PiBpbmRleCAwYjc1MTBjLi45NjM4MTY3IDEwMDY0NAo+PiAtLS0gYS9zeXMveDg2L3g4 Ni90c2MuYwo+PiArKysgYi9zeXMveDg2L3g4Ni90c2MuYwo+PiBAQCAtMTAwLDcgKzEwMCw3IEBA IHN0YXRpYyBfX2lubGluZSB2b2lkCj4+ICAgdm13YXJlX2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50 ICpwKQo+PiAgIHsKPj4KPj4gLQlfX2FzbSBfX3ZvbGF0aWxlKCJpbmwgKCUlZHgpIgo+PiArCV9f YXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+Pgo+PiAgIAk6ICI9YSIgKHBbMF0p LCAiPWIiIChwWzFdKSwgIj1jIiAocFsyXSksICI9ZCIgKHBbM10pCj4+ICAgCTogIjAiIChWTVdf SFZNQUdJQyksICIxIiAoVUlOVF9NQVgpLCAiMiIgKGNtZCksICIzIiAoVk1XX0hWUE9SVCkKPj4g ICAJOiAibWVtb3J5Iik7Cj4KPkZpeGVkIGluIHIyMjEzMzEuCj4KPlNvcnJ5IGZvciB0aGUgYnJl YWthZ2UuCj4KPkp1bmctdWsgS2ltCj4KPgo+T24gTW9uZGF5LCBNYXkgMDIsIDIwMTEgMTI6NTM6 MjIgcG0gQmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gT24gTW9uZGF5IDAyIE1heSAyMDExIDE0 OjM5OjU3IEpvaG4gQmFsZHdpbiB3cm90ZToKPj4gPiBPbiBTdW5kYXksIE1heSAwMSwgMjAxMSAz OjA1OjU0IHBtIEJlcm5oYXJkIFNjaG1pZHQgd3JvdGU6Cj4+ID4gPiBBdXRob3I6IGJzY2htaWR0 Cj4+ID4gPiBEYXRlOiBTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEKPj4gPiA+IE5ldyBSZXZpc2lv bjogMjIxMzAxCj4+ID4gPiBVUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzAxCj4+ID4gPiAKPj4gPiA+IExvZzoKPj4gPiA+ICAgVGhlc2UgYXJlIG9mIGNvdXJz ZSBpMzg2L2FtZDY0IG9ubHkuCj4+ID4gPiAKPj4gPiA+IE1vZGlmaWVkOgo+PiA+ID4gICBoZWFk L3N5cy9jb25mL05PVEVTCj4+ID4gCj4+ID4gUGxlYXNlIHB1dCB0aGVtIGluIGkzODYvY29uZi9O T1RFUyBhbmQgYW1kNjQvY29uZi9OT1RFUy4gIEFsbCBkcml2ZXJzIHNob3VsZCAKPj4gPiBiZSBp biBhcHByb3ByaWF0ZSBOT1RFUyBmaWxlcy4KPj4gCj4+IFRoZXkgYWN0dWFsbHkgYXJlLiBNeSBm YXVsdCB3YXMgdG8gbm90IGNoZWNrIHRob3NlIDIgZmlsZXMgaW4gdGhlCj4+IGZpcnN0IHBsYWNl Lgo+PiAKPj4gU29ycnkgdGhlIG5vaXNlIHRoaXMgaGFzIGNhdXNlZC4KPgo+QWgsIHdob29wcy4g OikKPgo+VGhlcmUgYXJlIG1hbnkgZHJpdmVycyBtaXNzaW5nIGZyb20gdGhlIE5PVEVTIGZpbGVz LCBzbyBJIGp1c3QgYXNzdW1lZCB0aGV5Cj5oYWQgYmVlbiBtaXNzaW5nLiA6LVAKPgo+SSB3cm90 ZSBhIHB5dGhvbiBzY3JpcHQgdG8gbG9vayBmb3IgbWlzc2luZyBkcml2ZXJzIGFuZCBvcHRpb25z LCBpdCdzIGF0Cj5zcmMvdG9vbHMvdG9vbHMvbm90ZXNjaGVjay9ub3Rlc2NoZWNrLnB5LiAgSSBo YXZlbid0IGhhZCB0aW1lIHRvIHNpdCBkb3duCj5hbmQgZml4IGFsbCB0aGUgbWlzc2luZyBlbnRy aWVzIHRob3VnaC4KPgo+LS0gCj5Kb2huIEJhbGR3aW4KPgo+Cj5BdXRob3I6IGRpbQo+RGF0ZTog TW9uIE1heSAgMiAxNzo0Njo1OSAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzMwo+VVJMOiBodHRw Oi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMzMwo+Cj5Mb2c6Cj4gIFJlbW92 ZSB1c3IvaW5jbHVkZS9uZnMva3JwYy5oIGFuZCB1c3IvaW5jbHVkZS9uZnMvbmZzZGlza2xlc3Mu aCBmcm9tCj4gIE9ic29sZXRlRmlsZXMuaW5jLCBzaW5jZSB0aGVzZSBmaWxlcyBoYXZlIGJlZW4g cmVpbmNhcm5hdGVkIGluIHRoZSBuZXcKPiAgTkZTIGltcGxlbWVudGF0aW9uLgo+ICAKPiAgUmV2 aWV3ZWQgYnk6CXJtYWNrbGVtCj4KPk1vZGlmaWVkOgo+ICBoZWFkL09ic29sZXRlRmlsZXMuaW5j Cj4KPk1vZGlmaWVkOiBoZWFkL09ic29sZXRlRmlsZXMuaW5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL09ic29sZXRlRmlsZXMuaW5jCU1vbiBNYXkgIDIgMTc6MTM6NDAgMjAxMQko cjIyMTMzMikKPisrKyBoZWFkL09ic29sZXRlRmlsZXMuaW5jCU1vbiBNYXkgIDIgMTc6NDY6NTkg MjAxMQkocjIyMTMzMykKPkBAIC00ODc0LDkgKzQ4NzQsNyBAQCBPTERfRklMRVMrPXVzci9pbmNs dWRlL25ldG5zL3NwaWRwLmgKPiBPTERfRklMRVMrPXVzci9pbmNsdWRlL25ldG5zL3NwcF9kZWJ1 Zy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZXRucy9zcHBfdGltZXIuaAo+IE9MRF9GSUxF Uys9dXNyL2luY2x1ZGUvbmV0bnMvc3BwX3Zhci5oCj4tT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9u ZnMva3JwYy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZnMvbmZzLmgKPi1PTERfRklMRVMr PXVzci9pbmNsdWRlL25mcy9uZnNkaXNrbGVzcy5oCj4gT0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9u ZnMvbmZzbV9zdWJzLmgKPiBPTERfRklMRVMrPXVzci9pbmNsdWRlL25mcy9uZnNtb3VudC5oCj4g T0xEX0ZJTEVTKz11c3IvaW5jbHVkZS9uZnMvbmZzbm9kZS5oCj4KPgo+QXV0aG9yOiBtYXJjZWwK PkRhdGU6IE1vbiBNYXkgIDIgMTc6NDk6MDUgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMzQKPlVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMzQKPgo+TG9nOgo+ ICBEb24ndCB1c2UgdGhlIHdob2xlIHJlZ2lvbiA1IGZvciBLVkEsIGJlY2F1c2UgdGhlIENQVSBt YXkgbm90IGltcGxlbWVudCBhbGwKPiAgb2YgdGhlIDYxIGJpdHMgYXZhaWxhYmxlIHdpdGhpbiB0 aGUgcmVnaW9uIGZvciB2aXJ0dWFsIGFkZHJlc3NpbmcuICBTaW5jZQo+ICB0aGVyZSdzIG5vIGdv b2Qgd2F5IGZvciB1cyB0byBtYXAgb3V0IHRoZSBnYXAgaW4gdGhlIHZpcnR1YWwgYWRkcmVzcyBz cGFjZSwKPiAgbGltaXQgS1ZBIHRvIHRoZSBhcmNoaXRlY3R1cmFsIG1pbmltdW0gaW1wbGVtZW50 ZWQgYWRkcmVzcyBiaXRzLiBUaGlzIHN0aWxsCj4gIGdpdmVzIHVzIDEgcGV0YWJ5dGUgb2YgS1ZB LCBzbyBubyB3b3JyaWVzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3Zt cGFyYW0uaAo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3ZtcGFyYW0uaAo+PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvaWE2NC9pbmNsdWRlL3ZtcGFyYW0uaAlN b24gTWF5ICAyIDE3OjQ2OjU5IDIwMTEJKHIyMjEzMzMpCj4rKysgaGVhZC9zeXMvaWE2NC9pbmNs dWRlL3ZtcGFyYW0uaAlNb24gTWF5ICAyIDE3OjQ5OjA1IDIwMTEJKHIyMjEzMzQpCj5AQCAtMTgy LDcgKzE4Miw4IEBACj4gI2RlZmluZQlWTV9NSU5fQUREUkVTUwkJMAo+ICNkZWZpbmUJVk1fTUFY VVNFUl9BRERSRVNTCUlBNjRfUlJfQkFTRShJQTY0X1ZNX01JTktFUk5fUkVHSU9OKQo+ICNkZWZp bmUJVk1fTUlOX0tFUk5FTF9BRERSRVNTCUlBNjRfUlJfQkFTRShJQTY0X1ZNX01JTktFUk5fUkVH SU9OICsgMSkKPi0jZGVmaW5lCVZNX01BWF9LRVJORUxfQUREUkVTUwkoSUE2NF9SUl9CQVNFKElB NjRfVk1fTUlOS0VSTl9SRUdJT04gKyAyKSAtIDEpCj4rI2RlZmluZQlWTV9NQVhfS0VSTkVMX0FE RFJFU1MJXAo+KwkJKFZNX01JTl9LRVJORUxfQUREUkVTUyArIElBNjRfUkVHSU9OX0dBUF9TVEFS VCAtIDEpCj4gI2RlZmluZQlWTV9NQVhfQUREUkVTUwkJfjBVTAo+IAo+ICNkZWZpbmUJS0VSTkJB U0UJCVZNX01BWFVTRVJfQUREUkVTUwo+Cj4KPkF1dGhvcjogZGVscGhpago+RGF0ZTogTW9uIE1h eSAgMiAxODo0MTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzNQo+VVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMzNQo+Cj5Mb2c6Cj4gIENvcnJlY3QgYSB0 eXBvLiAgQWNjb3JkaW5nIHRvIEludGVsIGRvY3VtZW50IDMxODkxNCwgdGhlIFRqKG1heCkgZm9y IENvcmUgMgo+ICBEdW8gTW9iaWxlIENQVXMgc2hvdWxkIGJlIDEwNS4KPiAgCj4gIE5vdGljZWQg Ynk6CU1hcmsgSm9obnN0b24gPG1hcmtqZGIgZ21haWwuY29tPgo+ICBNRkMgYWZ0ZXI6CTMgZGF5 cwo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvZGV2L2NvcmV0ZW1wL2NvcmV0ZW1wLmMKPgo+TW9k aWZpZWQ6IGhlYWQvc3lzL2Rldi9jb3JldGVtcC9jb3JldGVtcC5jCj49PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KPi0tLSBoZWFkL3N5cy9kZXYvY29yZXRlbXAvY29yZXRlbXAuYwlNb24gTWF5ICAyIDE3 OjQ5OjA1IDIwMTEJKHIyMjEzMzQpCj4rKysgaGVhZC9zeXMvZGV2L2NvcmV0ZW1wL2NvcmV0ZW1w LmMJTW9uIE1heSAgMiAxODo0MTo1NCAyMDExCShyMjIxMzM1KQo+QEAgLTE5Miw3ICsxOTIsNyBA QCBjb3JldGVtcF9hdHRhY2goZGV2aWNlX3QgZGV2KQo+IAl9IGVsc2UgaWYgKGNwdV9tb2RlbCA9 PSAweDE3KSB7Cj4gCQlzd2l0Y2ggKGNwdV9zdGVwcGluZykgewo+IAkJY2FzZSAweDY6CS8qIE1v YmlsZSBDb3JlIDIgRHVvICovCj4tCQkJc2MtPnNjX3RqbWF4ID0gMTA0Owo+KwkJCXNjLT5zY190 am1heCA9IDEwNTsKPiAJCQlicmVhazsKPiAJCWRlZmF1bHQ6CS8qIFVua25vd24gc3RlcHBpbmcg Ki8KPiAJCQlicmVhazsKPgo+Cj5BdXRob3I6IGpoYgo+RGF0ZTogTW9uIE1heSAgMiAxOTowMjoz MCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMzNgo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMzNgo+Cj5Mb2c6Cj4gIFRoZSBBQ1BJIEhvc3QtUENJIGJyaWRn ZSBkcml2ZXIgYWN0dWFsbHkgc3VwcG9ydHMgbXVsdGlwbGUgZG9tYWlucyB2aWEKPiAgdGhlIG9w dGlvbmFsIF9TRUcgZnVuY3Rpb24uICBSZXR1cm4gdGhhdCB2YWx1ZSAoYXAtPnNlZ21lbnQpIHJh dGhlciB0aGFuCj4gIDAgZm9yIHRoZSBwY2liIGRvbWFpbiBpdmFyLgo+Cj5Nb2RpZmllZDoKPiAg aGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5jCj4KPk1vZGlmaWVkOiBoZWFkL3N5 cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3BpLmMKPj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0t IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwlNb24gTWF5ICAyIDE4OjQxOjU0 IDIwMTEJKHIyMjEzMzUpCj4rKysgaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTk6MDI6MzAgMjAxMQkocjIyMTMzNikKPkBAIC0yNjgsNyArMjY4LDcgQEAg YWNwaV9wY2liX3JlYWRfaXZhcihkZXZpY2VfdCBkZXYsIGRldmljZQo+IAo+ICAgICBzd2l0Y2gg KHdoaWNoKSB7Cj4gICAgIGNhc2UgUENJQl9JVkFSX0RPTUFJTjoKPi0JKnJlc3VsdCA9IDA7Cj4r CSpyZXN1bHQgPSBzYy0+YXBfc2VnbWVudDsKPiAJcmV0dXJuICgwKTsKPiAgICAgY2FzZSBQQ0lC X0lWQVJfQlVTOgo+IAkqcmVzdWx0ID0gc2MtPmFwX2J1czsKPgo+Cj5fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+c3ZuLXNyYy1oZWFkQGZyZWVic2Qub3Jn IG1haWxpbmcgbGlzdAo+aHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8v c3ZuLXNyYy1oZWFkCj5UbyB1bnN1YnNjcmliZSwgc2VuZCBhbnkgbWFpbCB0byAic3ZuLXNyYy1o ZWFkLXVuc3Vic2NyaWJlQGZyZWVic2Qub3JnIg== From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:12:39 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A6F51065673 for ; Mon, 2 May 2011 21:12:39 +0000 (UTC) (envelope-from lifanov@mail.lifanov.com) Received: from mail.lifanov.com (mail.lifanov.com [206.125.175.12]) by mx1.freebsd.org (Postfix) with ESMTP id 49DE08FC14 for ; Mon, 2 May 2011 21:12:39 +0000 (UTC) Received: by mail.lifanov.com (Postfix, from userid 65534) id 15E01136E94; Mon, 2 May 2011 20:55:12 +0000 (UTC) Received: from localhost (157.sub-174-252-144.myvzw.com [174.252.144.157]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.lifanov.com (Postfix) with ESMTPSA id D27CE136A93 for ; Mon, 2 May 2011 20:55:09 +0000 (UTC) Date: Mon, 02 May 2011 16:56:37 -0400 Message-ID: <2ocqwk9i52ulmc0iqg29sgmr.1304369797581@email.android.com> From: Nikolai Lifanov To: svn-src-head@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 Subject: Re: svn-src-head Digest, Vol 88, Issue 2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:12:39 -0000 Cgpzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZyB3cm90ZToKCj5TZW5kIHN2bi1zcmMt aGVhZCBtYWlsaW5nIGxpc3Qgc3VibWlzc2lvbnMgdG8KPglzdm4tc3JjLWhlYWRAZnJlZWJzZC5v cmcKPgo+VG8gc3Vic2NyaWJlIG9yIHVuc3Vic2NyaWJlIHZpYSB0aGUgV29ybGQgV2lkZSBXZWIs IHZpc2l0Cj4JaHR0cDovL2xpc3RzLmZyZWVic2Qub3JnL21haWxtYW4vbGlzdGluZm8vc3ZuLXNy Yy1oZWFkCj5vciwgdmlhIGVtYWlsLCBzZW5kIGEgbWVzc2FnZSB3aXRoIHN1YmplY3Qgb3IgYm9k eSAnaGVscCcgdG8KPglzdm4tc3JjLWhlYWQtcmVxdWVzdEBmcmVlYnNkLm9yZwo+Cj5Zb3UgY2Fu IHJlYWNoIHRoZSBwZXJzb24gbWFuYWdpbmcgdGhlIGxpc3QgYXQKPglzdm4tc3JjLWhlYWQtb3du ZXJAZnJlZWJzZC5vcmcKPgo+V2hlbiByZXBseWluZywgcGxlYXNlIGVkaXQgeW91ciBTdWJqZWN0 IGxpbmUgc28gaXQgaXMgbW9yZSBzcGVjaWZpYwo+dGhhbiAiUmU6IENvbnRlbnRzIG9mIHN2bi1z cmMtaGVhZCBkaWdlc3QuLi4iCj4KPlRvZGF5J3MgVG9waWNzOgo+Cj4gICAxLiBzdm4gY29tbWl0 OiByMjIxMzAwIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgIDIuIHN2biBj b21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChCZXJuaGFyZCBTY2htaWR0KQo+ICAgMy4g UmU6IHN2biBjb21taXQ6IHIyMjEzMDEgLSBoZWFkL3N5cy9jb25mIChOYXRoYW4gV2hpdGVob3Ju KQo+ICAgNC4gc3ZuIGNvbW1pdDogcjIyMTMwMyAtIGhlYWQvdXNyLmJpbi9tYW4gKFVscmljaCBT cG9lcmxlaW4pCj4gICA1LiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYg KEJlcm5oYXJkIFNjaG1pZHQpCj4gICA2LiBzdm4gY29tbWl0OiByMjIxMzA0IC0gaGVhZC9zYmlu L3JlY292ZXJkaXNrIChVbHJpY2ggU3BvZXJsZWluKQo+ICAgNy4gc3ZuIGNvbW1pdDogcjIyMTMw NSAtIGhlYWQvc2hhcmUvbWFuL21hbjQgKENocmlzdGlhbiBCcnVlZmZlcikKPiAgIDguIHN2biBj b21taXQ6IHIyMjEzMDYgLSBpbiBoZWFkL3N5czogZnMvbmZzIG5mcyAoUmljayBNYWNrbGVtKQo+ ICAgOS4gc3ZuIGNvbW1pdDogcjIyMTMwNyAtIGhlYWQvc3lzL21pcHMvYXRoZXJvcyAoQWRyaWFu IENoYWRkKQo+ICAxMC4gc3ZuIGNvbW1pdDogcjIyMTMwOCAtIGhlYWQvdXNyLmJpbi9uZnNzdGF0 IChSaWNrIE1hY2tsZW0pCj4gIDExLiBzdm4gY29tbWl0OiByMjIxMzA5IC0gaGVhZC91c3IuYmlu L25mc3N0YXQgKFJpY2sgTWFja2xlbSkKPiAgMTIuIHN2biBjb21taXQ6IHIyMjEzMTIgLSBoZWFk L3N5cy9jb25mIChBZHJpYW4gQ2hhZGQpCj4gIDEzLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAt IGhlYWQvc3lzL2NvbmYgKEFkcmlhbiBDaGFkZCkKPiAgMTQuIHN2biBjb21taXQ6IHIyMjEzMTkg LSBoZWFkL3NoYXJlL21pc2MgKE1heGltIEtvbm92YWxvdikKPiAgMTUuIHN2biBjb21taXQ6IHIy MjEzMjAgLSBoZWFkL3N5cy9jb25mIChCcnVjZSBDcmFuKQo+ICAxNi4gc3ZuIGNvbW1pdDogcjIy MTMyMSAtIGhlYWQvc3lzL21pcHMvY29uZiAoQWRyaWFuIENoYWRkKQo+ICAxNy4gUmU6IHN2biBj b21taXQ6IHIyMjEzMjAgLSBoZWFkL3N5cy9jb25mIChBbGV4YW5kZXIgQmVzdCkKPiAgMTguIFJl OiBzdm4gY29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoRGltaXRyeSBBbmRyaWMp Cj4gIDE5LiBzdm4gY29tbWl0OiByMjIxMzI0IC0gaW4gaGVhZC9zeXM6IGFtZDY0L3BjaSBkZXYv YWNwaWNhCj4gICAgICBkZXYvcGNpCWkzODYvcGNpIHg4Ni94ODYgKEpvaG4gQmFsZHdpbikKPiAg MjAuIHN2biBjb21taXQ6IHIyMjEzMjYgLSBoZWFkL3N5cy9kZXYvcHVjIChKb2huIEJhbGR3aW4p Cj4gIDIxLiBSZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFs ZHdpbikKPiAgMjIuIHN2biBjb21taXQ6IHIyMjEzMjcgLSBoZWFkL3N5cy9kZXYvY2FyZGJ1cyAo Sm9obiBCYWxkd2luKQo+ICAyMy4gc3ZuIGNvbW1pdDogcjIyMTMyOCAtIGhlYWQvc3lzL25ldGlu ZXQgKE1pY2hhZWwgVHVleGVuKQo+ICAyNC4gc3ZuIGNvbW1pdDogcjIyMTMyOSAtIGhlYWQvc3lz L2kzODYvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjUuIFJlOiBzdm4gY29tbWl0OiByMjIx MzAxIC0gaGVhZC9zeXMvY29uZiAoQmVybmhhcmQgU2NobWlkdCkKPiAgMjYuIHN2biBjb21taXQ6 IHIyMjEzMzEgLSBoZWFkL3N5cy94ODYveDg2IChKdW5nLXVrIEtpbSkKPiAgMjcuIFJlOiBzdm4g Y29tbWl0OiByMjIxMjE0IC0gaGVhZC9zeXMveDg2L3g4NiAoSnVuZy11ayBLaW0pCj4gIDI4LiBS ZTogc3ZuIGNvbW1pdDogcjIyMTMwMSAtIGhlYWQvc3lzL2NvbmYgKEpvaG4gQmFsZHdpbikKPiAg MjkuIHN2biBjb21taXQ6IHIyMjEzMzMgLSBoZWFkIChEaW1pdHJ5IEFuZHJpYykKPiAgMzAuIHN2 biBjb21taXQ6IHIyMjEzMzQgLSBoZWFkL3N5cy9pYTY0L2luY2x1ZGUgKE1hcmNlbCBNb29sZW5h YXIpCj4gIDMxLiBzdm4gY29tbWl0OiByMjIxMzM1IC0gaGVhZC9zeXMvZGV2L2NvcmV0ZW1wIChY aW4gTEkpCj4gIDMyLiBzdm4gY29tbWl0OiByMjIxMzM2IC0gaGVhZC9zeXMvZGV2L2FjcGljYSAo Sm9obiBCYWxkd2luKQo+Cj5BdXRob3I6IGJzY2htaWR0Cj5EYXRlOiBTdW4gTWF5ICAxIDE4OjQy OjU2IDIwMTEKPk5ldyBSZXZpc2lvbjogMjIxMzAwCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5v cmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAwCj4KPkxvZzoKPiAgQWRkIGZpbGVzIGZvciB3cGkoNCkK Pgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYvZmlsZXMKPgo+TW9kaWZpZWQ6IGhlYWQvc3lz L2NvbmYvZmlsZXMKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL2NvbmYvZmls ZXMJU3VuIE1heSAgMSAxODo0MTo1NyAyMDExCShyMjIxMjk5KQo+KysrIGhlYWQvc3lzL2NvbmYv ZmlsZXMJU3VuIE1heSAgMSAxODo0Mjo1NiAyMDExCShyMjIxMzAwKQo+QEAgLTE5OTUsNiArMTk5 NSw3IEBAIGRldi93aS9pZl93aS5jCQkJb3B0aW9uYWwgd2kKPiBkZXYvd2kvaWZfd2lfcGNjYXJk LmMJCW9wdGlvbmFsIHdpIHBjY2FyZAo+IGRldi93aS9pZl93aV9wY2kuYwkJb3B0aW9uYWwgd2kg cGNpCj4gZGV2L3dsL2lmX3dsLmMJCQlvcHRpb25hbCB3bCBpc2EKPitkZXYvd3BpL2lmX3dwaS5j CQlvcHRpb25hbCB3cGkgcGNpCj4gd3BpZncuYwkJCW9wdGlvbmFsIHdwaWZ3CQkJCQlcCj4gCWNv bXBpbGUtd2l0aAkiJHtBV0t9IC1mICRTL3Rvb2xzL2Z3X3N0dWIuYXdrIHdwaS5mdzp3cGlmdzox NTMyMjkgLW13cGkgLWMkey5UQVJHRVR9IiBcCj4gCW5vLWltcGxpY2l0LXJ1bGUgYmVmb3JlLWRl cGVuZCBsb2NhbAkJCQlcCj4KPgo+QXV0aG9yOiBic2NobWlkdAo+RGF0ZTogU3VuIE1heSAgMSAx OTowNTo1NCAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwMQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVi c2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Cj5Mb2c6Cj4gIFRoZXNlIGFyZSBvZiBjb3Vy c2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9OT1RFUwo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9OT1RFUwo+PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4t LS0gaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE4OjQyOjU2IDIwMTEJKHIyMjEzMDAp Cj4rKysgaGVhZC9zeXMvY29uZi9OT1RFUwlTdW4gTWF5ICAxIDE5OjA1OjU0IDIwMTEJKHIyMjEz MDEpCj5AQCAtMTkzNSw5ICsxOTM1LDYgQEAgZGV2aWNlCQl4bXBoeQkJIyBYYVF0aSBYTUFDIElJ Cj4gIwkoaGludCBvZiBwcmVmZXJfaW9tYXAgY2FuIGJlIGRvbmUgdG8gcHJlZmVyIEkvTyBpbnN0 ZWFkIG9mIE1lbSBtYXBwaW5nKQo+ICMgZ2VtOiAgQXBwbGUgR01BQy9TdW4gRVJJL1N1biBHRU0K PiAjIGhtZTogIFN1biBITUUgKEhhcHB5IE1lYWwgRXRoZXJuZXQpCj4tIyBpcHc6ICBJbnRlbCAy MTAwIHdpcmVsZXNzIE5JQ3MuCj4tIyBpd2k6ICBJbnRlbCAyMjAwQkcvMjIyNUJHLzI5MTVBQkcg d2lyZWxlc3MgTklDcy4KPi0jIGl3bjogIEludGVsIDQ5NjUvMTAwMC81MDAwLzYwMDAgd2lyZWxl c3MgTklDcy4KPiAjIGptZTogIEpNaWNyb24gSk1DMjYwIEZhc3QgRXRoZXJuZXQvSk1DMjUwIEdp Z2FiaXQgRXRoZXJuZXQgYmFzZWQgYWRhcHRlcnMuCj4gIyBsZTogICBBTUQgQW03OTAwIExBTkNF IGFuZCBBbTc5Qzl4eCBQQ25ldAo+ICMgbGdlOglTdXBwb3J0IGZvciBQQ0kgZ2lnYWJpdCBldGhl cm5ldCBhZGFwdGVycyBiYXNlZCBvbiB0aGUgTGV2ZWwgMQo+QEAgLTIwMTYsNyArMjAxMyw2IEBA IGRldmljZQkJeG1waHkJCSMgWGFRdGkgWE1BQyBJSQo+ICMgd2k6ICAgTHVjZW50IFdhdmVMQU4v SUVFRSA4MDIuMTEgUENNQ0lBIGFkYXB0ZXJzLiBOb3RlOiB0aGlzIHN1cHBvcnRzIGJvdGgKPiAj ICAgICAgIHRoZSBQQ01DSUEgYW5kIElTQSBjYXJkczogdGhlIElTQSBjYXJkIGlzIHJlYWxseSBh IFBDTUNJQSB0byBJU0EKPiAjICAgICAgIGJyaWRnZSB3aXRoIGEgUENNQ0lBIGFkYXB0ZXIgcGx1 Z2dlZCBpbnRvIGl0Lgo+LSMgd3BpOiAgSW50ZWwgMzk0NUFCRyB3aXJlbGVzcyBOSUNzLgo+ICMg eGU6ICAgWGlyY29tL0ludGVsIEV0aGVyRXhwcmVzcyBQcm8xMDAvMTYgUEMgQ2FyZCBldGhlcm5l dCBjb250cm9sbGVyLAo+ICMgICAgICAgQWNjdG9uIEZhc3QgRXRoZXJDYXJkLTE2LCBDb21wYXEg TmV0ZWxsaWdlbnQgMTAvMTAwIFBDIENhcmQsCj4gIyAgICAgICBUb3NoaWJhIDEwLzEwMCBFdGhl cm5ldCBQQyBDYXJkLCBYaXJjb20gMTYtYml0IEV0aGVybmV0ICsgTW9kZW0gNTYKPkBAIC0yMTM3 LDEzICsyMTMzLDkgQEAgb3B0aW9ucwkgICAJQUhfUlhDRkdfU0RNQU1XXzRCWVRFUwo+IGRldmlj ZQkJYXRoX3JhdGVfc2FtcGxlCSMgU2FtcGxlUmF0ZSB0eCByYXRlIGNvbnRyb2wgZm9yIGF0aAo+ IGRldmljZQkJYndpCQkjIEJyb2FkY29tIEJDTTQzMCogQkNNNDMxKgo+IGRldmljZQkJYnduCQkj IEJyb2FkY29tIEJDTTQzeHgKPi1kZXZpY2UJCWlwdwkJIyBJbnRlbCAyMTAwIHdpcmVsZXNzIE5J Q3MuCj4tZGV2aWNlCQlpd2kJCSMgSW50ZWwgMjIwMEJHLzIyMjVCRy8yOTE1QUJHIHdpcmVsZXNz IE5JQ3MuCj4tZGV2aWNlCQlpd24JCSMgSW50ZWwgNDk2NS8xMDAwLzUwMDAvNjAwMCB3aXJlbGVz cyBOSUNzLgo+IGRldmljZQkJbWFsbwkJIyBNYXJ2ZWxsIExpYmVydGFzIHdpcmVsZXNzIE5JQ3Mu Cj4gZGV2aWNlCQltd2wJCSMgTWFydmVsbCA4OFc4MzYzIDgwMi4xMW4gd2lyZWxlc3MgTklDcy4K PiBkZXZpY2UJCXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI1MDAgd2lyZWxlc3MgTklDcy4K Pi1kZXZpY2UJCXdwaQkJIyBJbnRlbCAzOTQ1QUJHIHdpcmVsZXNzIE5JQ3MuCj4gCj4gIyBVc2Ug InByaXZhdGUiIGp1bWJvIGJ1ZmZlcnMgYWxsb2NhdGVkIGV4Y2x1c2l2ZWx5IGZvciB0aGUgdGko NCkgZHJpdmVyLgo+ICMgVGhpcyBvcHRpb24gaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIFRJX0pV TUJPX0hEUlNQTElUIG9wdGlvbiBiZWxvdy4KPgo+Cj5PbiAwNS8wMS8xMSAxNDowNSwgQmVybmhh cmQgU2NobWlkdCB3cm90ZToKPj4gQXV0aG9yOiBic2NobWlkdAo+PiBEYXRlOiBTdW4gTWF5ICAx IDE5OjA1OjU0IDIwMTEKPj4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gVVJMOiBodHRwOi8vc3Zu LmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMQo+Pgo+PiBMb2c6Cj4+ICAgIFRoZXNl IGFyZSBvZiBjb3Vyc2UgaTM4Ni9hbWQ2NCBvbmx5Lgo+Cj4KPkknbSBub3Qgc3VyZSB0aGF0J3Mg aW50cmluc2ljYWxseSB0cnVlLiBFdmVuIGlmIHRoZXkgbW9zdGx5IG9ubHkgc2hpcCAKPndpdGgg SW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3aGlj aCBjb3VsZCBiZSAKPnB1dCBpbnRvIG5vbi14ODYgc3lzdGVtcy4KPi1OYXRoYW4KPgo+Cj5BdXRo b3I6IHVxcwo+RGF0ZTogU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCj5OZXcgUmV2aXNpb246IDIy MTMwMwo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwMwo+ Cj5Mb2c6Cj4gIExldCB1c2VycycgUEFUSCBkZWNpZGUgd2hpY2ggZ3JvZmYgc3VpdGUgdG8gcGlj ayB1cC4KPiAgCj4gIExldCBncm9mZiBwYXNzIHRoZSAtYyBmbGFnIHRvIGdyb3R0eSwgd2hpY2gg d2lsbCB0dXJuIG9mZiBBTlNJCj4gIHNlcXVlbmNlcy4gV2hpbGUgdGhlc2UgYXJlIG5vdCBhIHBy b2JsZW0gZm9yIG91ciBtb3JlL2xlc3MsIHRoZXkgZ2V0Cj4gIG1hbmdsZWQgYnkgY29sKDEpIGFu ZCB0aGlzIHdpbGwgcmVzdWx0IGluIGdhcmJhZ2Ugb3V0cHV0Lgo+ICAKPiAgVGhpcyBtYWtlcyBt YW4oMSkgd29yayB0b2dldGhlciB3aXRoIHRleHRwcm9jL2dyb2ZmLCBpbiBjYXNlIHRoZQo+ICB1 c2VyIGRlY2lkZWQgdG8gZGVsZXRlIHRoZSBvbGQgZ3JvZmYgZnJvbSBiYXNlICgtRFdJVEhPVVRf R1JPRkYpLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC91c3IuYmluL21hbi9tYW4uc2gKPgo+TW9kaWZp ZWQ6IGhlYWQvdXNyLmJpbi9tYW4vbWFuLnNoCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBo ZWFkL3Vzci5iaW4vbWFuL21hbi5zaAlTdW4gTWF5ICAxIDE5OjI0OjUxIDIwMTEJKHIyMjEzMDIp Cj4rKysgaGVhZC91c3IuYmluL21hbi9tYW4uc2gJU3VuIE1heSAgMSAxOTo0NzozNCAyMDExCShy MjIxMzAzKQo+QEAgLTg4OSwxNiArODg5LDE4IEBAIGRvX3doYXRpcygpIHsKPiAJc2VhcmNoX3do YXRpcyB3aGF0aXMgIiRAIgo+IH0KPiAKPi1FUU49L3Vzci9iaW4vZXFuCj4rIyBVc2VyJ3MgUEFU SCBzZXR0aW5nIGRlY2lkZXMgb24gdGhlIGdyb2ZmLXN1aXRlIHRvIHBpY2sgdXAuCj4rRVFOPWVx bgo+K05ST0ZGPSdncm9mZiAtUyAtUC1jIC1XYWxsIC1tdHR5LWNoYXIgLW1hbicKPitQSUM9cGlj Cj4rUkVGRVI9cmVmZXIKPitUQkw9dGJsCj4rVFJPRkY9J2dyb2ZmIC1TIC1QLWMgLW1hbicKPitW R1JJTkQ9dmdyaW5kCj4rCj4gQ09MPS91c3IvYmluL2NvbAo+IExPQ0FMRT0vdXNyL2Jpbi9sb2Nh bGUKPi1OUk9GRj0nL3Vzci9iaW4vZ3JvZmYgLVMgLVdhbGwgLW10dHktY2hhciAtbWFuJwo+LVBJ Qz0vdXNyL2Jpbi9waWMKPiBTWVNDVEw9L3NiaW4vc3lzY3RsCj4tVEJMPS91c3IvYmluL3RibAo+ LVRST0ZGPScvdXNyL2Jpbi9ncm9mZiAtUyAtbWFuJwo+LVJFRkVSPS91c3IvYmluL3JlZmVyCj4t VkdSSU5EPS91c3IvYmluL3ZncmluZAo+IAo+IGRlYnVnPTAKPiBtYW5fZGVmYXVsdF9zZWN0aW9u cz0nMToxYW91dDo4OjI6MzpuOjQ6NTo2Ojc6OTpsJwo+Cj4KPk9uIFN1bmRheSAwMSBNYXkgMjAx MSAyMToyODoyOCBOYXRoYW4gV2hpdGVob3JuIHdyb3RlOgo+PiBPbiAwNS8wMS8xMSAxNDowNSwg QmVybmhhcmQgU2NobWlkdCB3cm90ZToKPj4gPiBBdXRob3I6IGJzY2htaWR0Cj4+ID4gRGF0ZTog U3VuIE1heSAgMSAxOTowNTo1NCAyMDExCj4+ID4gTmV3IFJldmlzaW9uOiAyMjEzMDEKPj4gPiBV Ukw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jhc2UvMjIxMzAxCj4+ID4KPj4g PiBMb2c6Cj4+ID4gICAgVGhlc2UgYXJlIG9mIGNvdXJzZSBpMzg2L2FtZDY0IG9ubHkuCj4+IAo+ PiAKPj4gSSdtIG5vdCBzdXJlIHRoYXQncyBpbnRyaW5zaWNhbGx5IHRydWUuIEV2ZW4gaWYgdGhl eSBtb3N0bHkgb25seSBzaGlwIAo+PiB3aXRoIEludGVsIG1vdGhlcmJvYXJkcywgbWFueSBvZiB0 aGVzZSBhcmUgTWluaS1QQ0kgcGFydHMgd2hpY2ggY291bGQgYmUgCj4+IHB1dCBpbnRvIG5vbi14 ODYgc3lzdGVtcy4KPgo+WWVzLCBpbmRlZWQuIFRob3NlIG1pZ2h0IG9mIGNvdXJzZSBiZSB1c2Vk IG9uIG90aGVyIHBsYXRmb3JtcyB0b28KPih3ZWxsIGF0IGxlYXN0IGl0IGZpdHMgaW50byB0aGUg c2xvdCwgSSBrbm93IHRoYXQgY2VydGFpbiBmZWF0dXJlcwo+YXJlIG5vdCBldmVuIGF2YWlsYWJs ZSBvbiBBTUQgcGxhdGZvcm1zKS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPmFueW9uZSBldmVy IHRyaWVkIG9uZSBvZiBpdCBvbiBtaXBzIGZvciBleGFtcGxlLgo+Cj5JIGRvbid0IG1pbmQgYmVp bmcgcHJvdmVuIHdyb25nIGFuZCBpZiBzbyBtb3ZlIHRoZSBlbnRyaWVzIGJhY2sgdG8KPmEgbW9y ZSBnZW5lcmljIGxvY2F0aW9uLiBDdXJyZW50bHkgSSdtIGp1c3QgdHJ5aW5nIG1pbWljIHRoZSBt b2R1bGUKPmJlaGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+LS0gCj5CZXJuaGFy ZAo+Cj4KPkF1dGhvcjogdXFzCj5EYXRlOiBTdW4gTWF5ICAxIDIwOjE0OjEwIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzA0Cj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzA0Cj4KPkxvZzoKPiAgcmVjb3ZlcmRpc2soOCk6IHRyZWF0IG91dHB1dCBmaWxlIGNv bnNpc3RlbnRseSBhbmQgYWJvcnQgb24gRUlOVkFMCj4gIAo+ICBUaGlzIGltcHJvdmVzIHVzYWJp bGl0eSBhIGxpdHRsZSBhcyB3ZSBubyBsb25nZXIgcmVxdWlyZSB1c2luZyB0b3VjaC4KPiAgQWxz byByZXdvcmQgdGhlIG1hbnBhZ2Ugd3J0LiBwYXJhbWV0ZXJzIGFuZCBmaXggdXNhZ2UoKSBbMV0K PiAgCj4gIFdpdGggbm8gbWVkaWEgaW4gYSBjZCg0KSBkcml2ZSwgdGhlIHJlYWRzIHdpbGwgbG9v cCBwcm9kdWNpbmcgRUlOVkFMLAo+ICBhYm9ydCBpbiB0aGF0IGNhc2UgWzJdLgo+ICAKPiAgRG9j dW1lbnQgdGhlIHNob3J0Y29taW5nIG9mIHNlY3RvcnNpemUgYW5kIE1BWFBIWVMgKGEgcXVpY2sg c29sdXRpb24KPiAgdG8gdGhpcyBtaWdodCBiZSBoYXZpbmcgTUFYUEhZUyBhcyB0aGUgImJpZ3Np emUiLCBpbiBzaG9ydCB0ZXN0aW5nIGl0Cj4gIGRpZG4ndCBtYWtlIGEgZGlmZmVyZW5jZSBvbiB0 aHJvdWdocHV0KS4KPiAgCj4gIFN1Ym1pdHRlZCBieToJYXJ1bmRlbCBbMV0KPiAgUFI6CQliaW4v MTU0NTI4IFsyXQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEKPiAgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJkaXNrLmMKPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay4xCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suMQlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLjEJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTI0LDcgKzI0LDcg QEAKPiAuXCIKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE1heSA2LCAyMDA2Cj4rLkRkIE1h eSAxLCAyMDExCj4gLkR0IFJFQ09WRVJESVNLIDEKPiAuT3MKPiAuU2ggTkFNRQo+QEAgLTMzLDE3 ICszMywyMCBAQAo+IC5TaCBTWU5PUFNJUwo+IC5ObQo+IC5PcCBGbCBiIEFyIGJpZ3NpemUKPi0u T3AgRmwgciBBciBybGlzdAo+LS5PcCBGbCBzIEFyIHNuYXBzaG90Cj4tLk9wIEZsIHcgQXIgd2xp c3QKPi0uQXIgc3BlY2lhbAo+LS5PcCBBciBmaWxlCj4rLk9wIEZsIHIgQXIgcmVhZGxpc3QKPisu T3AgRmwgcyBBciBpbnRlcnZhbAo+Ky5PcCBGbCB3IEFyIHdyaXRlbGlzdAo+Ky5BciBzb3VyY2UK PisuT3AgQXIgZGVzdGluYXRpb24KPiAuU2ggREVTQ1JJUFRJT04KPiBUaGUKPiAuTm0KPiB1dGls aXR5IHJlYWRzIGRhdGEgZnJvbSB0aGUKPi0uQXIgc3BlY2lhbAo+Ky5BciBzb3VyY2UKPiBmaWxl IHVudGlsIGFsbCBibG9ja3MgY291bGQgYmUgc3VjY2Vzc2Z1bGx5IHJlYWQuCj4rSWYKPisuQXIg ZGVzdGluYXRpb24KPit3YXMgc3BlY2lmaWVkIGFsbCBkYXRhIGlzIGJlaW5nIHdyaXR0ZW4gdG8g dGhhdCBmaWxlLgo+IEl0IHN0YXJ0cyByZWFkaW5nIGluIG11bHRpcGxlcyBvZiB0aGUgc2VjdG9y IHNpemUuCj4gV2hlbmV2ZXIgYSBibG9jayBmYWlscywgaXQgaXMgcHV0IHRvIHRoZSBlbmQgb2Yg dGhlIHdvcmtpbmcgcXVldWUgYW5kIHdpbGwgYmUKPiByZWFkIGFnYWluLCBwb3NzaWJseSB3aXRo IGEgc21hbGxlciByZWFkIHNpemUuCj5AQCAtNTksMTMgKzYyLDEzIEBAIFRoZSBvcHRpb25zIGFy ZSBhcyBmb2xsb3dzOgo+IFRoZSBzaXplIG9mIHJlYWRzIGF0dGVtcHRlZCBmaXJzdC4KPiBUaGUg bWlkZGxlIHBhc3MgaXMgcm91Z2hseSB0aGUgbG9nYXJpdGhtaWMgYXZlcmFnZSBvZiB0aGUgYmln c2l6ZSBhbmQKPiB0aGUgc2VjdG9yc2l6ZS4KPi0uSXQgRmwgciBBciBybGlzdAo+Ky5JdCBGbCBy IEFyIHJlYWRsaXN0Cj4gUmVhZCB0aGUgbGlzdCBvZiBibG9ja3MgYW5kIGJsb2NrIHNpemVzIHRv IHJlYWQgZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUuCj4tLkl0IEZsIHMgQXIgc25hcHNob3QKPi1I b3cgb2Z0ZW4gd2Ugc2hvdWxkIHVwZGF0ZSB0aGUgd29ya2xpc3QgZmlsZSB3aGlsZSB0aGluZ3Mg Z28gT0suCj4tVGhlIGRlZmF1bHQgaXMgNjAgYW5kIHRoZSB1bml0cyBpcyAicHJvZ3Jlc3MgbWVz c2FnZXMiIHNvIGlmIHRoaW5ncwo+Ky5JdCBGbCBzIEFyIGludGVydmFsCj4rSG93IG9mdGVuIHdl IHNob3VsZCB1cGRhdGUgdGhlIHdyaXRlbGlzdCBmaWxlIHdoaWxlIHRoaW5ncyBnbyBPSy4KPitU aGUgZGVmYXVsdCBpcyA2MCBhbmQgdGhlIHVuaXQgaXMgInByb2dyZXNzIG1lc3NhZ2VzIiBzbyBp ZiB0aGluZ3MKPiBnbyB3ZWxsLCB0aGlzIGlzIHRoZSBzYW1lIGFzIG9uY2UgcGVyIG1pbnV0ZS4K Pi0uSXQgRmwgdyBBciB3bGlzdAo+Ky5JdCBGbCB3IEFyIHdyaXRlbGlzdAo+IFdyaXRlIHRoZSBs aXN0IG9mIHJlbWFpbmluZyBibG9ja3MgdG8gcmVhZCB0byB0aGUgc3BlY2lmaWVkIGZpbGUgaWYK PiAuTm0KPiBpcyBhYm9ydGVkIHZpYQo+QEAgLTEwMiwyMCArMTA1LDE5IEBAIFBlcmNlbnQgY29t cGxldGUuCj4gLlNoIEVYQU1QTEVTCj4gLkJkIC1saXRlcmFsCj4gIyByZWNvdmVyIGRhdGEgZnJv bSBmYWlsaW5nIGhhcmQgZHJpdmUgYWQzCj4tdG91Y2ggL2RhdGEvbG90c19vZl9zcGFjZQo+LXJl Y292ZXJkaXNrIC9kZXYvYWQzIC9kYXRhL2xvdHNfb2Zfc3BhY2UKPityZWNvdmVyZGlzayAvZGV2 L2FkMyAvZGF0YS9kaXNrLmltZwo+IAo+ICMgY2xvbmUgYSBoYXJkIGRpc2sKPiByZWNvdmVyZGlz ayAvZGV2L2FkMyAvZGV2L2FkNAo+IAo+ICMgcmVhZCBhbiBJU08gaW1hZ2UgZnJvbSBhIENELVJP TQo+LXRvdWNoIC9kYXRhL2NkLmlzbzsgcmVjb3ZlcmRpc2sgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC9kZXYvY2QwIC9kYXRhL2NkLmlzbwo+IAo+ICMgY29udGludWUgcmVh ZGluZyBmcm9tIGEgYnJva2VuIENEIGFuZCB1cGRhdGUgdGhlIGV4aXN0aW5nIHdvcmtsaXN0Cj4t cmVjb3ZlcmRpc2sgLXIgd29ya2xpc3QgLXcgd29ya2xpc3QgL2Rldi9hY2QwIC9kYXRhL2NkLmlz bwo+K3JlY292ZXJkaXNrIC1yIHdvcmtsaXN0IC13IHdvcmtsaXN0IC9kZXYvY2QwIC9kYXRhL2Nk Lmlzbwo+IAo+ICMgcmVjb3ZlciBhIHNpbmdsZSBmaWxlIGZyb20gdGhlIHVucmVhZGFibGUgbWVk aWEKPi10b3VjaCBmaWxlLmF2aTsgcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZp Cj4rcmVjb3ZlcmRpc2sgL2Nkcm9tL2ZpbGUuYXZpIGZpbGUuYXZpCj4gCj4gIyBJZiB0aGUgZGlz ayBoYW5ncyB0aGUgc3lzdGVtIG9uIHJlYWQtZXJyb3JzIHRyeToKPiByZWNvdmVyZGlzayAtYiAw IC9kZXYvYWQzIC9zb21ld2hlcmUKPkBAIC0xMzMsNyArMTM1LDcgQEAgdXRpbGl0eSBmaXJzdCBh cHBlYXJlZCBpbgo+IFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3YXMgZG9uZSBieQo+IC5B biBQb3VsLUhlbm5pbmcgS2FtcCBBcSBwaGtARnJlZUJTRC5vcmcKPiB3aXRoIG1pbm9yIGltcHJv dmVtZW50cyBmcm9tCj4tLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1c3BvZXJsZWluQGdtYWls LmNvbSAuCj4rLkFuIFVscmljaCBTcFwoOm9ybGVpbiBBcSB1cXNARnJlZUJTRC5vcmcgLgo+IC5Q cAo+IFRoaXMgbWFudWFsIHBhZ2Ugd2FzIHdyaXR0ZW4gYnkKPiAuQW4gVWxyaWNoIFNwXCg6b3Js ZWluIC4KPkBAIC0xNDQsNCArMTQ2LDEzIEBAIFRoaXMgaXMgZHVlIHRvIHRoZSBETUEgcmVhZHMg YmVpbmcgc3BsaXQKPiBUaGVzZSByZWFkcyB0aGVuIGZhaWwgaWYgdGhlIHNlY3RvcnNpemUgaXMg bm90IGEgZGl2aXNvciBvZiAxMjhrQi4KPiBXaGVuIHJlYWRpbmcgYSBmdWxsIHJhdyBhdWRpbyBD RCwgdGhpcyBsZWFkcyB0byByb3VnaGx5IDcwMCBlcnJvciBtZXNzYWdlcwo+IGZseWluZyBieS4K Pi1UaGlzIGlzIGhhcm1sZXNzLgo+K1RoaXMgaXMgaGFybWxlc3MgYW5kIGNhbiBiZSBhdm9pZGVk IGJ5IHNldHRpbmcKPisuRmwgYgo+K3RvIG5vIG1vcmUgdGhhbiAxMjhrQi4KPisuXCIuUHAKPisu XCJXaGVuIHJlYWRpbmcgZnJvbSBvcHRpY2FsIG1lZGlhLCBhIGJ1ZyBpbiB0aGUgR0VPTSBmcmFt ZXdvcmsgd2lsbAo+Ky5cInByZXZlbnQgaXQgZnJvbSBzZWVpbmcgdGhhdCB0aGUgbWVkaWEgaGFz IGJlZW4gcmVtb3ZlZC4KPisuXCJUaGUgZGV2aWNlIGNhbiBzdGlsbCBiZSBvcGVuZWQsIGJ1dCBh bGwgcmVhZHMgd2lsbCBmYWlsLgo+Ky5cIlRoaXMgaXMgdXN1YWxseSBoYXJtbGVzcywgYnV0IHdp bGwgc2VuZAo+Ky5cIi5ObQo+Ky5cImludG8gYW4gaW5maW5pdGUgbG9vcC4KPgo+TW9kaWZpZWQ6 IGhlYWQvc2Jpbi9yZWNvdmVyZGlzay9yZWNvdmVyZGlzay5jCj49PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPi0tLSBoZWFkL3NiaW4vcmVjb3ZlcmRpc2svcmVjb3ZlcmRpc2suYwlTdW4gTWF5ICAxIDE5 OjQ3OjM0IDIwMTEJKHIyMjEzMDMpCj4rKysgaGVhZC9zYmluL3JlY292ZXJkaXNrL3JlY292ZXJk aXNrLmMJU3VuIE1heSAgMSAyMDoxNDoxMCAyMDExCShyMjIxMzA0KQo+QEAgLTg2LDcgKzg2LDcg QEAgc2F2ZV93b3JrbGlzdCh2b2lkKQo+IAkJaWYgKGZpbGUgPT0gTlVMTCkKPiAJCQllcnIoMSwg IkVycm9yIG9wZW5pbmcgZmlsZSAlcyIsIHd3b3JrbGlzdCk7Cj4gCj4tCQlUQUlMUV9GT1JFQUNI KGxscCwgJmx1bXBzLCBsaXN0KSAKPisJCVRBSUxRX0ZPUkVBQ0gobGxwLCAmbHVtcHMsIGxpc3Qp Cj4gCQkJZnByaW50ZihmaWxlLCAiJWpkICVqZCAlZFxuIiwKPiAJCQkgICAgKGludG1heF90KWxs cC0+c3RhcnQsIChpbnRtYXhfdClsbHAtPmxlbiwKPiAJCQkgICAgbGxwLT5zdGF0ZSk7Cj5AQCAt MTM0LDggKzEzNCw4IEBAIHJlYWRfd29ya2xpc3Qob2ZmX3QgdCkKPiBzdGF0aWMgdm9pZAo+IHVz YWdlKHZvaWQpCj4gewo+LQkodm9pZClmcHJpbnRmKHN0ZGVyciwKPi0gICAgInVzYWdlOiByZWNv dmVyZGlzayBbLXIgd29ya2xpc3RdIFstdyB3b3JrbGlzdF0gc291cmNlLWRyaXZlIFtkZXN0aW5h dGlvbl1cbiIpOwo+Kwkodm9pZClmcHJpbnRmKHN0ZGVyciwgInVzYWdlOiByZWNvdmVyZGlzayBb LWIgYmlnc2l6ZV0gWy1yIHJlYWRsaXN0XSAiCj4rCSAgICAiWy1zIGludGVydmFsXSBbLXcgd3Jp dGVsaXN0XSBzb3VyY2UgW2Rlc3RpbmF0aW9uXVxuIik7Cj4gCWV4aXQoMSk7Cj4gfQo+IAo+QEAg LTE1Myw3ICsxNTMsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdKQo+IAlp bnQgZmRyLCBmZHc7Cj4gCW9mZl90IHQsIGQsIHN0YXJ0LCBsZW47Cj4gCXNpemVfdCBpLCBqOwo+ LQlpbnQgZXJyb3IsIGZsYWdzLCBzdGF0ZTsKPisJaW50IGVycm9yLCBzdGF0ZTsKPiAJdV9jaGFy ICpidWY7Cj4gCXVfaW50IHNlY3RvcnNpemU7Cj4gCXRpbWVfdCB0MSwgdDI7Cj5AQCAtMTk2LDcg KzE5Niw2IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10pCj4gCWVycm9yID0g ZnN0YXQoZmRyLCAmc2IpOwo+IAlpZiAoZXJyb3IgPCAwKQo+IAkJZXJyKDEsICJmc3RhdCBmYWls ZWQiKTsKPi0JZmxhZ3MgPSBPX1dST05MWTsKPiAJaWYgKFNfSVNCTEsoc2Iuc3RfbW9kZSkgfHwg U19JU0NIUihzYi5zdF9tb2RlKSkgewo+IAkJZXJyb3IgPSBpb2N0bChmZHIsIERJT0NHU0VDVE9S U0laRSwgJnNlY3RvcnNpemUpOwo+IAkJaWYgKGVycm9yIDwgMCkKPkBAIC0yMTAsNyArMjA5LDYg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqIGNvbnN0IGFyZ3ZbXSkKPiAJCQllcnIoMSwgIkRJT0NH TUVESUFTSVpFIGZhaWxlZCIpOwo+IAl9IGVsc2Ugewo+IAkJdCA9IHNiLnN0X3NpemU7Cj4tCQlm bGFncyB8PSBPX0NSRUFUIHwgT19UUlVOQzsKPiAJfQo+IAo+IAlpZiAoYmlnc2l6ZSA8IG1pbnNp emUpCj5AQCAtMjI5LDkgKzIyNywxMiBAQCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJn dltdKQo+IAkJZXJyKDEsICJDYW5ub3QgYWxsb2NhdGUgJXp1IGJ5dGVzIGJ1ZmZlciIsIGJpZ3Np emUpOwo+IAo+IAlpZiAoYXJnYyA+IDEpIHsKPi0JCWZkdyA9IG9wZW4oYXJndlsxXSwgZmxhZ3Ms IERFRkZJTEVNT0RFKTsKPisJCWZkdyA9IG9wZW4oYXJndlsxXSwgT19XUk9OTFkgfCBPX0NSRUFU LCBERUZGSUxFTU9ERSk7Cj4gCQlpZiAoZmR3IDwgMCkKPiAJCQllcnIoMSwgIkNhbm5vdCBvcGVu IHdyaXRlIGRlc2NyaXB0b3IgJXMiLCBhcmd2WzFdKTsKPisJCWlmIChmdHJ1bmNhdGUoZmR3LCB0 KSA8IDApCj4rCQkJZXJyKDEsICJDYW5ub3QgdHJ1bmNhdGUgb3V0cHV0ICVzIHRvICVqZCBieXRl cyIsCj4rCQkJICAgIGFyZ3ZbMV0sIChpbnRtYXhfdCl0KTsKPiAJfSBlbHNlCj4gCQlmZHcgPSAt MTsKPiAKPkBAIC0yOTIsNiArMjkzLDEwIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBh cmd2W10pCj4gCQkJfQo+IAkJCXByaW50ZigiXG4lamQgJXp1IGZhaWxlZCAoJXMpXG4iLAo+IAkJ CSAgICBscC0+c3RhcnQsIGksIHN0cmVycm9yKGVycm5vKSk7Cj4rCQkJaWYgKGVycm5vID09IEVJ TlZBTCkgewo+KwkJCQlwcmludGYoInJlYWQoKSBzaXplIHRvbyBiaWc/IFRyeSB3aXRoIC1iIDEz MTA3MiIpOwo+KwkJCQlhYm9ydGluZyA9IDE7Cj4rCQkJfQo+IAkJCWlmIChlcnJubyA9PSBFTlhJ TykKPiAJCQkJYWJvcnRpbmcgPSAxOwo+IAkJCW5ld19sdW1wKGxwLT5zdGFydCwgaSwgbHAtPnN0 YXRlICsgMSk7Cj4KPgo+QXV0aG9yOiBicnVlZmZlcgo+RGF0ZTogU3VuIE1heSAgMSAyMDo0Njoz NyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3Jn L2NoYW5nZXNldC9iYXNlLzIyMTMwNQo+Cj5Mb2c6Cj4gIE1pbm9yIGNsZWFudXAuCj4KPk1vZGlm aWVkOgo+ICBoZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAo+Cj5Nb2RpZmllZDogaGVhZC9zaGFy ZS9tYW4vbWFuNC92eGdlLjQKPj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+LS0tIGhlYWQvc2hhcmUv bWFuL21hbjQvdnhnZS40CVN1biBNYXkgIDEgMjA6MTQ6MTAgMjAxMQkocjIyMTMwNCkKPisrKyBo ZWFkL3NoYXJlL21hbi9tYW40L3Z4Z2UuNAlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEz MDUpCj5AQCAtNDksMTMgKzQ5LDEyIEBAIFRoZQo+IC5ObQo+IGRyaXZlciBwcm92aWRlcyBzdXBw b3J0IGZvciBOZXRlcmlvbiBYMzEwMCBhZGFwdGVycy4KPiBUaGUgZHJpdmVyIHN1cHBvcnRzIFRD UCBTZWdtZW50YXRpb24gT2ZmbG9hZCAoVFNPL0xTTyksIAo+LUxhcmdlIFJlY2VpdmUgT2ZmbGFv ZCAoTFJPKSwgSnVtYm8gRnJhbWVzLCBSZWNlaXZlIFRyYWZmaWMgSGFzaCAoUlRIKSwKPitMYXJn ZSBSZWNlaXZlIE9mZmxvYWQgKExSTyksIEp1bWJvIEZyYW1lcywgUmVjZWl2ZSBUcmFmZmljIEhh c2ggKFJUSCksCj4gVkxBTiwgUHJvbWlzY3VvdXMgbW9kZSBhbmQgTXVsdGkgZnVuY3Rpb24gbW9k ZS4KPiAuUHAKPi0KPiBUaGUKPiAuTm0KPi1kcml2ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGZ1bmN0 aW9uIG1vZGVzOgo+K2RyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIG1vZGVz Ogo+IC5CZCAtcmFnZ2VkIC1vZmZzZXQgaW5kZW50Cj4gLkNkICJTRjFfVlAxNyAtIDEgZnVuY3Rp b24gd2l0aCAxNyBWUEFUSHMiCj4gLkVkCj4KPgo+QXV0aG9yOiBybWFja2xlbQo+RGF0ZTogU3Vu IE1heSAgMSAyMjoxOTo1MiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNgo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNgo+Cj5Mb2c6Cj4gIEFkZCB0aGUg a2VybmVsIHN1cHBvcnQgbmVlZGVkIHRvIHplcm8gb3V0IHRoZSBuZnNzdGF0cwo+ICBzdHJ1Y3R1 cmUgZm9yIHRoZSBuZXcgTkZTIHN1YnN5c3RlbS4gVGhpcyB3aWxsIGJlIHVzZWQKPiAgYnkgbmZz c3RhdHMuYyB0byBpbXBsZW1lbnQgdGhlICIteiIgb3B0aW9uLgo+ICAKPiAgTUZDIGFmdGVyOgky IHdlZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3N5cy9mcy9uZnMvbmZzX2NvbW1vbnBvcnQuYwo+ ICBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2ZzL25mcy9uZnNf Y29tbW9ucG9ydC5jCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3N5cy9mcy9uZnMv bmZzX2NvbW1vbnBvcnQuYwlTdW4gTWF5ICAxIDIwOjQ2OjM3IDIwMTEJKHIyMjEzMDUpCj4rKysg aGVhZC9zeXMvZnMvbmZzL25mc19jb21tb25wb3J0LmMJU3VuIE1heSAgMSAyMjoxOTo1MiAyMDEx CShyMjIxMzA2KQo+QEAgLTQwNCw2ICs0MDQsOCBAQCBuZnNzdmNfY2FsbChzdHJ1Y3QgdGhyZWFk ICpwLCBzdHJ1Y3QgbmZzCj4gCX0gZWxzZSBpZiAodWFwLT5mbGFnICYgTkZTU1ZDX0dFVFNUQVRT KSB7Cj4gCQllcnJvciA9IGNvcHlvdXQoJm5ld25mc3N0YXRzLAo+IAkJICAgIENBU1RfVVNFUl9B RERSX1QodWFwLT5hcmdwKSwgc2l6ZW9mIChuZXduZnNzdGF0cykpOwo+KwkJaWYgKCh1YXAtPmZs YWcgJiBORlNTVkNfWkVST1NUQVRTKSAhPSAwICYmIGVycm9yID09IDApCj4rCQkJYnplcm8oJm5l d25mc3N0YXRzLCBzaXplb2YobmV3bmZzc3RhdHMpKTsKPiAJCXJldHVybiAoZXJyb3IpOwo+IAl9 IGVsc2UgaWYgKHVhcC0+ZmxhZyAmIE5GU1NWQ19ORlNVU0VSRFBPUlQpIHsKPiAJCXVfc2hvcnQg c29ja3BvcnQ7Cj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9uZnMvbmZzc3ZjLmgKPj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQo+LS0tIGhlYWQvc3lzL25mcy9uZnNzdmMuaAlTdW4gTWF5ICAxIDIwOjQ2OjM3 IDIwMTEJKHIyMjEzMDUpCj4rKysgaGVhZC9zeXMvbmZzL25mc3N2Yy5oCVN1biBNYXkgIDEgMjI6 MTk6NTIgMjAxMQkocjIyMTMwNikKPkBAIC02NCw1ICs2NCw2IEBACj4gI2RlZmluZQlORlNTVkNf Q0JBRERTT0NLCTB4MDAyMDAwMDAKPiAjZGVmaW5lCU5GU1NWQ19HRVRTVEFUUwkJMHgwMDQwMDAw MAo+ICNkZWZpbmUJTkZTU1ZDX0JBQ0tVUFNUQUJMRQkweDAwODAwMDAwCj4rI2RlZmluZQlORlNT VkNfWkVST1NUQVRTCTB4MDEwMDAwMDAJLyogbW9kaWZpZXIgZm9yIEdFVFNUQVRTICovCj4gCj4g I2VuZGlmIC8qIF9ORlNfTkZTU1ZDX0ggKi8KPgo+Cj5BdXRob3I6IGFkcmlhbgo+RGF0ZTogU3Vu IE1heSAgMSAyMzozMjozNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMwNwo+VVJMOiBodHRwOi8v c3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwNwo+Cj5Mb2c6Cj4gIFNvbWUgQVI3 MjR4IFBDSWUgZml4ZXMsIHdoaWNoIHNob3VsZCB3cmFwIHVwIHRoZSBmaXJzdCByb3VuZAo+ICBv ZiBlbmRpYW4tbmVzcyBpc3N1ZXMgd2l0aCB0aGUgQVI3MjR4Lgo+ICAKPiAgRnJvbSBMdWl6Ogo+ ICAKPiAgKiBGaXggdGhlIGJ1cyBzcGFjZSB0YWcgdXNlZCBzbyBlbmRpYW4tbmVzcyBpcyBjb3Jy ZWN0bHkgaGFuZGxlZDsKPiAgKiBPbmx5IGRvIHRoZSB3b3JrYXJvdW5kIGZvciB0aGUgQVI3MjQw OyBBUjcyNDEvQVI3MjQyIChQQjkyKQo+ICAgIGRvbid0IHJlcXVpcmUgdGhpcwo+ICAKPiAgRnJv bSBtZToKPiAgCj4gICogQWRkIGEgcmVhZCBmbHVzaCBmcm9tIG9wZW53cnQKPiAgCj4gIFN1Ym1p dHRlZCBieToJTHVpeiBPdGF2aW8gTyBTb3V6YQo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvbWlw cy9hdGhlcm9zL2FyNzI0eF9wY2kuYwo+Cj5Nb2RpZmllZDogaGVhZC9zeXMvbWlwcy9hdGhlcm9z L2FyNzI0eF9wY2kuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9h dGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIyOjE5OjUyIDIwMTEJKHIyMjEzMDYpCj4r KysgaGVhZC9zeXMvbWlwcy9hdGhlcm9zL2FyNzI0eF9wY2kuYwlTdW4gTWF5ICAxIDIzOjMyOjM3 IDIwMTEJKHIyMjEzMDcpCj5AQCAtNTcsOCArNTcsNyBAQCBfX0ZCU0RJRCgiJEZyZWVCU0QkIik7 Cj4gI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhyZWcuaD4KPiAjaW5jbHVkZSA8bWlwcy9h dGhlcm9zL2FyNzI0eHJlZy5oPgo+ICNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3NldHVw Lmg+Cj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfcGNpX2J1c19zcGFjZS5oPgkJLyog WFhYICovCj4tI2luY2x1ZGUgPG1pcHMvYXRoZXJvcy9hcjcxeHhfYnVzX3NwYWNlX3JldmVyc2Vk Lmg+CS8qIFhYWCAqLwo+KyNpbmNsdWRlIDxtaXBzL2F0aGVyb3MvYXI3MXh4X3BjaV9idXNfc3Bh Y2UuaD4KPiAKPiAjaW5jbHVkZSA8bWlwcy9hdGhlcm9zL2FyNzF4eF9jcHVkZWYuaD4KPiAKPkBA IC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIHVpbnQzMl90Cj4gYXI3MjR4X3BjaV9yZWFkX2NvbmZp ZyhkZXZpY2VfdCBkZXYsIHVfaW50IGJ1cywgdV9pbnQgc2xvdCwgdV9pbnQgZnVuYywgCj4gICAg IHVfaW50IHJlZywgaW50IGJ5dGVzKQo+IHsKPi0JdWludDMyX3QgY21kLCBkYXRhLCBzaGlmdCwg bWFzazsKPisJdWludDMyX3QgZGF0YSwgc2hpZnQsIG1hc2s7Cj4gCj4gCS8qIFJlZ2lzdGVyIGFj Y2VzcyBpcyAzMi1iaXQgYWxpZ25lZCAqLwo+IAlzaGlmdCA9IChyZWcgJiAzKSAqIDg7Cj5AQCAt MTI1LDE4ICsxMjQsOSBAQCBhcjcyNHhfcGNpX3JlYWRfY29uZmlnKGRldmljZV90IGRldiwgdV9p Cj4gCWRwcmludGYoIiVzOiB0YWcgKCV4LCAleCwgJXgpIHJlZyAlZCglZClcbiIsIF9fZnVuY19f LCBidXMsIHNsb3QsCj4gCSAgICBmdW5jLCByZWcsIGJ5dGVzKTsKPiAKPi0JaWYgKChidXMgPT0g MCkgJiYgKHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpIHsKPisJaWYgKChidXMgPT0gMCkgJiYg KHNsb3QgPT0gMCkgJiYgKGZ1bmMgPT0gMCkpCj4gCQlkYXRhID0gQVRIX1JFQURfUkVHKEFSNzI0 WF9QQ0lfQ0ZHX0JBU0UgKyAocmVnICYgfjMpKTsKPi0JCS8qCj4tCQkgKiBXQVIgZm9yIEJBUiBp c3N1ZSAtIFdlIGFyZSB1bmFibGUgdG8gYWNjZXNzIHRoZSBQQ0kgZGV2aWNlCj4tCQkgKiBzcGFj ZSBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNlIGFkZHJlc3MuCj4tCQkgKi8KPi0J CWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0ZXMgPT0gNCkgewo+LQkJCWNtZCA9IChhcjcx eHhfc29jID09IEFSNzFYWF9TT0NfQVI3MjQwKSA/Cj4tCQkJICAgIDB4ZmZmZiA6IDB4MTAwMGZm ZmY7Cj4tCQkJYXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGNtZCwg Ynl0ZXMpOwo+LQkJfQo+LQl9IGVsc2UKPisJZWxzZQo+IAkJZGF0YSA9IC0xOwo+IAo+IAkvKiBH ZXQgcmVxdWVzdCBieXRlcyBmcm9tIDMyLWJpdCB3b3JkICovCj5AQCAtMTU4LDE0ICsxNDgsMTQg QEAgYXI3MjR4X3BjaV93cml0ZV9jb25maWcoZGV2aWNlX3QgZGV2LCB1Xwo+IAlpZiAoKGJ1cyAh PSAwKSB8fCAoc2xvdCAhPSAwKSB8fCAoZnVuYyAhPSAwKSkKPiAJCXJldHVybjsKPiAKPi0JYXI3 MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsKPiAJ LyoKPi0JICogV0FSIGZvciBCQVIgaXNzdWUgLSBXZSBhcmUgdW5hYmxlIHRvIGFjY2VzcyB0aGUg UENJIGRldmljZSBzcGFjZQo+LQkgKiBpZiB3ZSBzZXQgdGhlIEJBUiB3aXRoIHByb3BlciBiYXNl IGFkZHJlc3MuCj4tCSAqIEZvcmNlIGEgZmx1c2ggaGVyZSAoYXQgcmVnaXN0ZXIgd3JpdGluZyku Cj4rCSAqIFdBUiBmb3IgQkFSIGlzc3VlIG9uIEFSNzI0MCAtIFdlIGFyZSB1bmFibGUgdG8gYWNj ZXNzIHRoZSBQQ0kgZGV2aWNlCj4rCSAqIHNwYWNlIGlmIHdlIHNldCB0aGUgQkFSIHdpdGggcHJv cGVyIGJhc2UgYWRkcmVzcy4KPiAJICovCj4tCWlmIChyZWcgPT0gUENJUl9CQVIoMCkgJiYgYnl0 ZXMgPT0gNCkKPi0JCSh2b2lkKWFyNzI0eF9wY2lfcmVhZF9jb25maWcoZGV2LCBidXMsIHNsb3Qs IGZ1bmMsIHJlZywgYnl0ZXMpOwo+KwlpZiAocmVnID09IFBDSVJfQkFSKDApICYmIGJ5dGVzID09 IDQgJiYgYXI3MXh4X3NvYyA9PSBBUjcxWFhfU09DX0FSNzI0MCkKPisJCWFyNzI0eF9wY2lfd3Jp dGUoQVI3MjRYX1BDSV9DRkdfQkFTRSwgcmVnLCAweGZmZmYsIGJ5dGVzKTsKPisJZWxzZQo+KwkJ YXI3MjR4X3BjaV93cml0ZShBUjcyNFhfUENJX0NGR19CQVNFLCByZWcsIGRhdGEsIGJ5dGVzKTsK PiB9Cj4gCj4gc3RhdGljIHZvaWQgCj5AQCAtMjMyLDYgKzIyMiw5IEBAIGFyNzI0eF9wY2lfc2V0 dXAoZGV2aWNlX3QgZGV2KQo+IAllbHNlCj4gCQlyZWcgPSAweDFmZmMxOwo+IAlBVEhfV1JJVEVf UkVHKEFSNzI0WF9QQ0lfQVBQLCByZWcpOwo+KwkvKiBGbHVzaCB3cml0ZSAqLwo+Kwkodm9pZCkg QVRIX1JFQURfUkVHKEFSNzI0WF9QQ0lfQVBQKTsKPisKPiAJREVMQVkoMTAwMCk7Cj4gCj4gCXJl ZyA9IEFUSF9SRUFEX1JFRyhBUjcyNFhfUENJX1JFU0VUKTsKPkBAIC00NTcsMTAgKzQ1MCw3IEBA IGFyNzI0eF9wY2lfYWN0aXZhdGVfcmVzb3VyY2UoZGV2aWNlX3QgYnUKPiAJCWNhc2UgU1lTX1JF U19NRU1PUlk6Cj4gCQljYXNlIFNZU19SRVNfSU9QT1JUOgo+IAo+LQkJCS8qIFhYWCAqLwo+LQkJ CS8vcm1hbl9zZXRfYnVzdGFnKHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPi0JCQkvL3Jt YW5fc2V0X2J1c3RhZyhyLCBtaXBzX2J1c19zcGFjZV9nZW5lcmljKTsKPi0JCQlybWFuX3NldF9i dXN0YWcociwgYXI3MXh4X2J1c19zcGFjZV9yZXZlcnNlZCk7Cj4rCQkJcm1hbl9zZXRfYnVzdGFn KHIsIGFyNzF4eF9idXNfc3BhY2VfcGNpbWVtKTsKPiAJCQlicmVhazsKPiAJCX0KPiAJfQo+Cj4K PkF1dGhvcjogcm1hY2tsZW0KPkRhdGU6IFN1biBNYXkgIDEgMjM6NDE6MzUgMjAxMQo+TmV3IFJl dmlzaW9uOiAyMjEzMDgKPlVSTDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFz ZS8yMjEzMDgKPgo+TG9nOgo+ICBGaXggbmZzc3RhdCBzbyB0aGF0IHRoZSAiLXoiIG9wdGlvbiB3 b3JrcyBmb3IgdGhlCj4gIG5ldyBORlMgc3Vic3lzdGVtLgo+ICAKPiAgTUZDIGFmdGVyOgkyIHdl ZWtzCj4KPk1vZGlmaWVkOgo+ICBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMKPgo+TW9k aWZpZWQ6IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuYwo+PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Cj4tLS0gaGVhZC91c3IuYmluL25mc3N0YXQvbmZzc3RhdC5jCVN1biBNYXkgIDEgMjM6MzI6 MzcgMjAxMQkocjIyMTMwNykKPisrKyBoZWFkL3Vzci5iaW4vbmZzc3RhdC9uZnNzdGF0LmMJU3Vu IE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+QEAgLTg1LDYgKzg1LDcgQEAgc3RhdGlj IGludCB6ZmxhZyA9IDA7Cj4gc3RhdGljIGludCBydW5fdjQgPSAwOwo+IHN0YXRpYyBpbnQgcHJp bnR0aXRsZSA9IDE7Cj4gc3RhdGljIHN0cnVjdCBleHRfbmZzc3RhdHMgZXh0X25mc3N0YXRzOwo+ K3N0YXRpYyBpbnQgbmZzc3ZjX2ZsYWc7Cj4gCj4gdm9pZCBpbnRwcihpbnQsIGludCk7Cj4gdm9p ZCBwcmludGhkcihpbnQsIGludCk7Cj5AQCAtMTA3LDYgKzEwOCw3IEBAIG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQo+IAljaGFyICptZW1mLCAqbmxpc3RmOwo+IAljaGFyIGVycmJ1ZltfUE9T SVgyX0xJTkVfTUFYXTsKPiAKPisJbmZzc3ZjX2ZsYWcgPSBORlNTVkNfR0VUU1RBVFM7Cj4gCWlu dGVydmFsID0gMDsKPiAJbWVtZiA9IG5saXN0ZiA9IE5VTEw7Cj4gCXdoaWxlICgoY2ggPSBnZXRv cHQoYXJnYywgYXJndiwgImNlc1dNOk46dzp6IikpICE9IC0xKQo+QEAgLTEzNSw2ICsxMzcsNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAJCQlicmVhazsKPiAJCWNhc2UgJ3onOgo+ IAkJCXpmbGFnID0gMTsKPisJCQluZnNzdmNfZmxhZyB8PSBORlNTVkNfWkVST1NUQVRTOwo+IAkJ CWJyZWFrOwo+IAkJY2FzZSAnZSc6Cj4gCQkJcnVuX3Y0ID0gMTsKPkBAIC0xNjEsNyArMTY0LDcg QEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gCQllcnJ4KDEsICJleHBlcmltZW50YWwg Y2xpZW50L3NlcnZlciBub3QgbG9hZGVkIik7Cj4gCj4gCWlmIChydW5fdjQgIT0gMCkgewo+LQkJ aWYgKG5mc3N2YyhORlNTVkNfR0VUU1RBVFMsICZleHRfbmZzc3RhdHMpIDwgMCkKPisJCWlmIChu ZnNzdmMobmZzc3ZjX2ZsYWcsICZleHRfbmZzc3RhdHMpIDwgMCkKPiAJCQllcnIoMSwgIkNhbid0 IGdldCBzdGF0cyIpOwo+IAl9IGVsc2UgaWYgKG5saXN0ZiAhPSBOVUxMIHx8IG1lbWYgIT0gTlVM TCkgewo+IAkJZGVhZGtlcm5lbCA9IDE7Cj5AQCAtNzkzLDEzICs3OTYsMTMgQEAgZXhwX3NpZGV3 YXlzaW50cHIodV9pbnQgaW50ZXJ2YWwsIGludCBjbAo+IAlpbnQgaGRyY250ID0gMTsKPiAKPiAJ ZXh0X25mc3N0YXRzcCA9ICZsYXN0c3Q7Cj4tCWlmIChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBl eHRfbmZzc3RhdHNwKSA8IDApCj4rCWlmIChuZnNzdmMobmZzc3ZjX2ZsYWcsIGV4dF9uZnNzdGF0 c3ApIDwgMCkKPiAJCWVycigxLCAiQ2FuJ3QgZ2V0IHN0YXRzIik7Cj4gCXNsZWVwKGludGVydmFs KTsKPiAKPiAJZm9yICg7Oykgewo+IAkJZXh0X25mc3N0YXRzcCA9ICZuZnNzdGF0czsKPi0JCWlm IChuZnNzdmMoTkZTU1ZDX0dFVFNUQVRTLCBleHRfbmZzc3RhdHNwKSA8IDApCj4rCQlpZiAobmZz c3ZjKG5mc3N2Y19mbGFnLCBleHRfbmZzc3RhdHNwKSA8IDApCj4gCQkJZXJyKDEsICJDYW4ndCBn ZXQgc3RhdHMiKTsKPiAKPiAJCWlmICgtLWhkcmNudCA9PSAwKSB7Cj4KPgo+QXV0aG9yOiBybWFj a2xlbQo+RGF0ZTogU3VuIE1heSAgMSAyMzo1NTo1NiAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMw OQo+VVJMOiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMwOQo+Cj5M b2c6Cj4gIEZpeCBuZnNzdGF0LjEgdG8gaW5kaWNhdGUgdGhhdCAiLXoiIG5vdyB3b3JrcyBmb3IK PiAgdGhlIG5ldyBORlMgc3Vic3lzdGVtcyBhZnRlciByMjIxMzA4Lgo+ICBUaGlzIGlzIGEgY29u dGVudCBjaGFuZ2UuCj4gIAo+ICBNRkMgYWZ0ZXI6CTIgd2Vla3MKPgo+TW9kaWZpZWQ6Cj4gIGhl YWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQo+Cj5Nb2RpZmllZDogaGVhZC91c3IuYmluL25m c3N0YXQvbmZzc3RhdC4xCj49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KPi0tLSBoZWFkL3Vzci5iaW4v bmZzc3RhdC9uZnNzdGF0LjEJU3VuIE1heSAgMSAyMzo0MTozNSAyMDExCShyMjIxMzA4KQo+Kysr IGhlYWQvdXNyLmJpbi9uZnNzdGF0L25mc3N0YXQuMQlTdW4gTWF5ICAxIDIzOjU1OjU2IDIwMTEJ KHIyMjEzMDkpCj5AQCAtMjgsNyArMjgsNyBAQAo+IC5cIiAgICAgRnJvbTogQCgjKW5mc3N0YXQu MQk4LjEgKEJlcmtlbGV5KSA2LzYvOTMKPiAuXCIgJEZyZWVCU0QkCj4gLlwiCj4tLkRkIE9jdG9i ZXIgMTgsIDIwMDcKPisuRGQgTWF5IDEsIDIwMTEKPiAuRHQgTkZTU1RBVCAxCj4gLk9zCj4gLlNo IE5BTUUKPkBAIC03OCw3ICs3OCw2IEBAIGFjdGl2aXR5IGZvciBib3RoIHRoZSBjbGllbnQgYW5k IHNlcnZlciAKPiBzZWNvbmQgaW50ZXJ2YWxzLgo+IC5JdCBGbCB6Cj4gUmVzZXQgc3RhdGlzdGlj cyBhZnRlciBkaXNwbGF5aW5nIHRoZW0uCj4tKE5vdCBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5IHRo ZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbS4pCj4gLkl0IEZsIGUKPiBHYXRoZXIgc3RhdGlz dGljcyBmcm9tIHRoZSBleHBlcmltZW50YWwgbmZzIHN1YnN5c3RlbSB0aGF0IGluY2x1ZGVzCj4g c3VwcG9ydCBmb3IgTkZTdjQgaW5zdGVhZCBvZiB0aGUgcmVndWxhciBuZnMgc3Vic3lzdGVtLgo+ Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDA1OjM5OjQzIDIwMTEKPk5ldyBS ZXZpc2lvbjogMjIxMzEyCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hhbmdlc2V0L2Jh c2UvMjIxMzEyCj4KPkxvZzoKPiAgQWRkIGRvY3VtZW50YXRpb24gdG8gc3lzL2NvbmYvb3B0aW9u cyBwb2ludGluZyBvdXQgdGhhdCBBSF9TVVBQT1JUX0FSOTEzMAo+ICBzaG91bGRuJ3QgYmUgZW5h YmxlZCBieSBkZWZhdWx0IHVubGVzcyB5b3UncmUgdHJ1ZWx5IGJ1aWxkaW5nIGZvciB0aGUKPiAg QVI5MTN4IHBsYXRmb3JtLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMvY29uZi9vcHRpb25zCj4K Pk1vZGlmaWVkOiBoZWFkL3N5cy9jb25mL29wdGlvbnMKPj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ LS0tIGhlYWQvc3lzL2NvbmYvb3B0aW9ucwlNb24gTWF5ICAyIDAxOjAxOjAzIDIwMTEJKHIyMjEz MTEpCj4rKysgaGVhZC9zeXMvY29uZi9vcHRpb25zCU1vbiBNYXkgIDIgMDU6Mzk6NDMgMjAxMQko cjIyMTMxMikKPkBAIC03NzUsNiArNzc1LDggQEAgQVRIX0VOQUJMRV8xMU4JCW9wdF9haC5oCj4g Cj4gIyBvcHRpb25zIGZvciB0aGUgQXRoZXJvcyBoYWwKPiBBSF9TVVBQT1JUX0FSNTQxNglvcHRf YWguaAo+KyMgWFhYIEZvciBub3csIHRoaXMgYnJlYWtzIG5vbi1BUjkxMzAgY2hpcHNldHMsIHNv IG9ubHkgdXNlIGl0Cj4rIyBYWFggd2hlbiBhY3R1YWxseSB0YXJnZXR0aW5nIEFSOTEzMC4KPiBB SF9TVVBQT1JUX0FSOTEzMAlvcHRfYWguaAo+IAo+IEFIX0RFQlVHCQlvcHRfYWguaAo+QEAgLTc5 MSw2ICs3OTMsNyBAQCBBSF9NQVhDSEFOCQlvcHRfYWguaAo+IEFIX1JYQ0ZHX1NETUFNV180QllU RVMJb3B0X2FoLmgKPiAKPiAjIEFSNTQxNiBhbmQgbGF0ZXIgaW50ZXJydXB0IG1pdGlnYXRpb24K PisjIFhYWCBkbyBub3QgdXNlIHRoaXMgZm9yIEFSOTEzMAo+IEFIX0FSNTQxNl9JTlRFUlJVUFRf TUlUSUdBVElPTglvcHRfYWguaAo+IAo+ICMgb3B0aW9ucyBmb3IgdGhlIEJyb2FkY29tIEJDTTQz eHggZHJpdmVyIChid2kpCj4KPgo+T24gMiBNYXkgMjAxMSAwMzo1NCwgQmVybmhhcmQgU2NobWlk dCA8YnNjaG1pZHRAZnJlZWJzZC5vcmc+IHdyb3RlOgo+Cj4+PiBJJ20gbm90IHN1cmUgdGhhdCdz IGludHJpbnNpY2FsbHkgdHJ1ZS4gRXZlbiBpZiB0aGV5IG1vc3RseSBvbmx5IHNoaXAKPj4+IHdp dGggSW50ZWwgbW90aGVyYm9hcmRzLCBtYW55IG9mIHRoZXNlIGFyZSBNaW5pLVBDSSBwYXJ0cyB3 aGljaCBjb3VsZCBiZQo+Pj4gcHV0IGludG8gbm9uLXg4NiBzeXN0ZW1zLgo+Pgo+PiBZZXMsIGlu ZGVlZC4gVGhvc2UgbWlnaHQgb2YgY291cnNlIGJlIHVzZWQgb24gb3RoZXIgcGxhdGZvcm1zIHRv bwo+PiAod2VsbCBhdCBsZWFzdCBpdCBmaXRzIGludG8gdGhlIHNsb3QsIEkga25vdyB0aGF0IGNl cnRhaW4gZmVhdHVyZXMKPj4gYXJlIG5vdCBldmVuIGF2YWlsYWJsZSBvbiBBTUQgcGxhdGZvcm1z KS4gSSdtIGp1c3Qgbm90IGF3YXJlIHRoYXQKPj4gYW55b25lIGV2ZXIgdHJpZWQgb25lIG9mIGl0 IG9uIG1pcHMgZm9yIGV4YW1wbGUuCj4+Cj4+IEkgZG9uJ3QgbWluZCBiZWluZyBwcm92ZW4gd3Jv bmcgYW5kIGlmIHNvIG1vdmUgdGhlIGVudHJpZXMgYmFjayB0bwo+PiBhIG1vcmUgZ2VuZXJpYyBs b2NhdGlvbi4gQ3VycmVudGx5IEknbSBqdXN0IHRyeWluZyBtaW1pYyB0aGUgbW9kdWxlCj4+IGJl aGF2aW91ciBpbiBzeXMvbW9kdWxlcy9NYWtlZmlsZS4KPgo+SSdtIGxpa2VseSB0byB0cnkgdGhl IGludGVsIG1pbmktcGNpZSBzdHVmZiBvbiB0aGUgYXRoZXJvcyBQQjkyIHJlZgo+Ym9hcmQgKEFS NzI0MiBNSVBTKS4gSnVzdCBub3QgeWV0Lgo+Cj5JJ2xsIGxldCB5b3Uga25vdyBob3cgaXQgZ29l cyB3aGVuIGkndmUgZG9uZSBpdC4KPgo+Cj4KPkFkaXJhbgo+Cj4KPkF1dGhvcjogbWF4aW0KPkRh dGU6IE1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMTkKPlVSTDog aHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMTkKPgo+TG9nOgo+ICBv IE9wZW5CU0QgNC45IGFkZGVkLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zaGFyZS9taXNjL2JzZC1m YW1pbHktdHJlZQo+Cj5Nb2RpZmllZDogaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJlZQo+ PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zaGFyZS9taXNjL2JzZC1mYW1pbHktdHJl ZQlNb24gTWF5ICAyIDA4OjMzOjIwIDIwMTEJKHIyMjEzMTgpCj4rKysgaGVhZC9zaGFyZS9taXNj L2JzZC1mYW1pbHktdHJlZQlNb24gTWF5ICAyIDA5OjQ3OjEzIDIwMTEJKHIyMjEzMTkpCj5AQCAt MjQ2LDcgKzI0Niw3IEBAIEZyZWVCU0QgNS4yICAgICAgICAgICB8ICAgICAgfCAgICAgICAgICAK PiAgfCAgICAgfCAgICAgICAgfCAgICAgfCAgICAgIHwgTmV0QlNEIDUuMSAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwKPiAgfCAgRnJlZUJTRCAgRnJlZUJTRCAgfCAgICAgIHwgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwKPiAgfCAgICA4LjIgICAgICA3LjQg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBEcmFnb25GbHkgMi4x MC4xCj4tIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICB8Cj4rIHwgICAgIHYgICAgICAgICAgICAgIHwgICAgICB8ICAg ICAgICAgICAgIE9wZW5CU0QgNC45ICAgICAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 Cj4gRnJlZUJTRCA5IC1jdXJyZW50ICAgIHwgIE5ldEJTRCAtY3VycmVudCAgT3BlbkJTRCAtY3Vy cmVudCAgICAgICAgICAgICB8Cj4gIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICB8ICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8Cj5AQCAtNTMzLDYgKzUzMyw3IEBA IE5ldEJTRCA1LjEJCTIwMTAtMTEtMTkgW05CRF0KPiBGcmVlQlNEIDcuNAkJMjAxMS0wMi0yNCBb RkJEXQo+IEZyZWVCU0QgOC4yCQkyMDExLTAyLTI0IFtGQkRdCj4gRHJhZ29uRmx5IDIuMTAuMQky MDExLTA0LTI2IFtERkJdCj4rT3BlbkJTRCA0LjkJCTIwMTEtMDUtMDEgW09CRF0KPiAKPiBCaWJs aW9ncmFwaHkKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+Cj5BdXRob3I6IGJydWNlYwo+ RGF0ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj5OZXcgUmV2aXNpb246IDIyMTMyMAo+VVJM OiBodHRwOi8vc3ZuLmZyZWVic2Qub3JnL2NoYW5nZXNldC9iYXNlLzIyMTMyMAo+Cj5Mb2c6Cj4g IEFkZCAtV21pc3NpbmctaW5jbHVkZS1kaXJzIHRvIENXQVJORkxBR1MsIHNvIHRpbmRlcmJveCB3 aWxsIHB1bmlzaCB0aG9zZQo+ICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNvZGUgd2l0aCBi cm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPiAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVz Lgo+ICBJbXByb3ZlIGEgY291cGxlIG9mIGNvbW1lbnRzLgo+ICAtVyBpcyBub3cgZGVwcmVjYXRl ZCBhbmQgaXMgcmVmZXJyZWQgdG8gYXMgLVdleHRyYSAoc2VlIGdjYygxKSkuCj4gIAo+ICBTdWJt aXR0ZWQgYnk6CWFydW5kZWwKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL2NvbmYva2Vybi5tawo+ Cj5Nb2RpZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj49PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Pi0tLSBoZWFkL3N5cy9jb25mL2tlcm4ubWsJTW9uIE1heSAgMiAwOTo0NzoxMyAyMDExCShyMjIx MzE5KQo+KysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj5AQCAtMywyNCArMywyNSBAQAo+ICMKPiAjIFdhcm5pbmcgZmxhZ3MgZm9yIGNv bXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4gIwo+LSMg Tm90ZSB0aGF0IHRoZSBuZXdseSBhZGRlZCAtV2Nhc3QtcXVhbCBpcyByZXNwb25zaWJsZSBmb3Ig Z2VuZXJhdGluZyAKPisjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMg cmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPiAjIG1vc3Qgb2YgdGhlIHJlbWFpbmluZyB3YXJu aW5ncy4gIFdhcm5pbmdzIGludHJvZHVjZWQgd2l0aCAtV2FsbCB3aWxsCj4gIyBhbHNvIHBvcCB1 cCwgYnV0IGFyZSBlYXNpZXIgdG8gZml4Lgo+IENXQVJORkxBR1M/PQktV2FsbCAtV3JlZHVuZGFu dC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3RvdHlwZXMgXAo+IAkJLVdtaXNz aW5nLXByb3RvdHlwZXMgLVdwb2ludGVyLWFyaXRoIC1XaW5saW5lIC1XY2FzdC1xdWFsIFwKPi0J CS1XdW5kZWYgLVduby1wb2ludGVyLXNpZ24gLWZmb3JtYXQtZXh0ZW5zaW9ucwo+KwkJLVd1bmRl ZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRlbnNpb25zIFwKPisJCS1XbWlzc2luZy1p bmNsdWRlLWRpcnMKPiAjCj4gIyBUaGUgZm9sbG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3 b3JraW5nIG9uOgo+LSMJLVcKPisjCS1XZXh0cmEKPiAKPiAjCj4tIyBPbiB0aGUgaTM4NiwgZG8g bm90IGFsaWduIHRoZSBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMuICBPdGhlcndpc2UgR0ND Cj4tIyAyLjk1IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkg ZnVuY3Rpb24gdG8gYWxpZ24gdGhlCj4rIyBPbiBpMzg2LCBkbyBub3QgYWxpZ24gdGhlIHN0YWNr IHRvIDE2LWJ5dGUgYm91bmRhcmllcy4gIE90aGVyd2lzZSBHQ0MgMi45NQo+KyMgYW5kIGFib3Zl IGFkZHMgY29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24g dG8gYWxpZ24gdGhlCj4gIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0 aW5nIGFwcHJveGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPi0jIHBlciBmdW5jdGlvbiBjYWxs LiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBiZW5lZml0IG1pY3JvIGJlbmNobWFy a3MsIAo+KyMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGlsZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQg bWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywKPiAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJh bGwgbG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4gIyB1 c2Ugb2YgY29kZSBjYWNoZSB0YWcgbGluZXMpIGFuZCB1c2VzIG1vcmUgc3RhY2sgKGxlc3MgZWZm aWNpZW50IHVzZSBvZiBkYXRhCj4tIyBjYWNoZSB0YWcgbGluZXMpLiAgRXhwbGljaXRseSBwcm9o aWJpdCB0aGUgdXNlIG9mIFNTRSBhbmQgb3RoZXIgU0lNRAo+KyMgY2FjaGUgdGFnIGxpbmVzKS4g IEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lNRAo+ ICMgb3BlcmF0aW9ucyBpbnNpZGUgdGhlIGtlcm5lbCBpdHNlbGYuICBUaGVzZSBvcGVyYXRpb25z IGFyZSBleGNsdXNpdmVseQo+ICMgcmVzZXJ2ZWQgZm9yIHVzZXIgYXBwbGljYXRpb25zLgo+ICMK PkBAIC0zNSw2ICszNiw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPiAuaWYgJHtNQUNISU5FX0NQ VUFSQ0h9ID09ICJhcm0iCj4gSU5MSU5FX0xJTUlUPz0JODAwMAo+IC5lbmRpZgo+Kwo+ICMKPiAj IEZvciBJQS02NCwgd2UgdXNlIHIxMyBmb3IgdGhlIGtlcm5lbCBnbG9iYWxzIHBvaW50ZXIgYW5k IHdlIG9ubHkgdXNlCj4gIyBhIHZlcnkgc21hbGwgc3Vic2V0IG9mIGZsb2F0IHJlZ2lzdGVycyBm b3IgaW50ZWdlciBkaXZpZGVzLgo+QEAgLTk4LDcgKzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgw MDAKPiBDRkxBR1MrPQktZmZyZWVzdGFuZGluZwo+IAo+ICMKPi0jIEdDQyBTU1Agc3VwcG9ydC4K PisjIEdDQyBTU1Agc3VwcG9ydAo+ICMKPiAuaWYgJHtNS19TU1B9ICE9ICJubyIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJpYTY0IiAmJiBcCj4gICAgICR7TUFDSElORV9DUFVBUkNIfSAhPSAi YXJtIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gIm1pcHMiCj5AQCAtMTA2LDkgKzEwOCw4IEBA IENGTEFHUys9CS1mc3RhY2stcHJvdGVjdG9yCj4gLmVuZGlmCj4gCj4gIwo+LSMgRW5hYmxlIENU RiBjb252ZXJzYXRpb24gb24gcmVxdWVzdC4KPisjIEVuYWJsZSBDVEYgY29udmVyc2F0aW9uIG9u IHJlcXVlc3QKPiAjCj4gLmlmIGRlZmluZWQoV0lUSF9DVEYpCj4gLnVuZGVmIE5PX0NURgo+IC5l bmRpZgo+LQo+Cj4KPkF1dGhvcjogYWRyaWFuCj5EYXRlOiBNb24gTWF5ICAyIDEwOjQyOjE5IDIw MTEKPk5ldyBSZXZpc2lvbjogMjIxMzIxCj5VUkw6IGh0dHA6Ly9zdm4uZnJlZWJzZC5vcmcvY2hh bmdlc2V0L2Jhc2UvMjIxMzIxCj4KPkxvZzoKPiAgQWRkIGluIHRoZSB3b3JrLWFyb3VuZCBmb3Ig dGhlIEFSODMxNiBnaWdlIHN3aXRjaCBQSFkuCj4gIAo+ICBUaGlzIGFsbG93cyB0aGUgZXRoZXJu ZXQgdG8gZnVuY3Rpb24gb24gdGhlIFBCOTIgYm9hcmQuCj4gIAo+ICBTdWJtaXR0ZWQgYnk6CUx1 aXogT3RhdmlvIE8gU291emEKPgo+TW9kaWZpZWQ6Cj4gIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCj4KPk1vZGlmaWVkOiBoZWFkL3N5cy9taXBzL2NvbmYvUEI5Mi5oaW50cwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvbWlwcy9jb25mL1BCOTIuaGludHMJTW9uIE1h eSAgMiAxMDozNToyNyAyMDExCShyMjIxMzIwKQo+KysrIGhlYWQvc3lzL21pcHMvY29uZi9QQjky LmhpbnRzCU1vbiBNYXkgIDIgMTA6NDI6MTkgMjAxMQkocjIyMTMyMSkKPkBAIC0zMCw3ICszMCwx MSBAQCBoaW50LmFyZ2UuMC5hdD0ibmV4dXMwIgo+IGhpbnQuYXJnZS4wLm1hZGRyPTB4MTkwMDAw MDAKPiBoaW50LmFyZ2UuMC5tc2l6ZT0weDEwMDAKPiBoaW50LmFyZ2UuMC5pcnE9Mgo+LWhpbnQu YXJnZS4wLnBoeW1hc2s9MHgxCj4rCj4rIyBBUjgzMTYgd29ya2Fyb3VuZCBmb3Igbm93Cj4raGlu dC5hcmdlLjAubWVkaWE9MTAwMAo+K2hpbnQuYXJnZS4wLmZkdXBsZXg9MQo+K2hpbnQuYXJnZS4w LnBoeW1hc2s9MHgzCj4gCj4gIyBHUElPCj4gaGludC5ncGlvLjAuYXQ9ImFwYjAiCj4KPgo+T24g TW9uIE1heSAgMiAxMSwgQnJ1Y2UgQ3JhbiB3cm90ZToKPj4gQXV0aG9yOiBicnVjZWMKPj4gRGF0 ZTogTW9uIE1heSAgMiAxMDozNToyNyAyMDExCj4+IE5ldyBSZXZpc2lvbjogMjIxMzIwCj4+IFVS TDogaHR0cDovL3N2bi5mcmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjAKPj4gCj4+IExv ZzoKPj4gICBBZGQgLVdtaXNzaW5nLWluY2x1ZGUtZGlycyB0byBDV0FSTkZMQUdTLCBzbyB0aW5k ZXJib3ggd2lsbCBwdW5pc2ggdGhvc2UKPj4gICBkZXZlbG9wZXJzIGNvbW1pdHRpbmcgbmV3IGNv ZGUgd2l0aCBicm9rZW4gaW5jbHVkZSBkaXJlY3Rvcmllcy4KPgo+QnJ1Y2UgYWxyZWFkeSBjb21t aXR0ZWQgcjIyMDcxMiBpbiBvcmRlciB0byBtYWtlIHRoZSBjdXJyZW50IHRyZWUgd29yayB3aXRo Cj4tV21pc3NpbmctaW5jbHVkZS1kaXJzLiBTbyBob3BlZnVsbHkgdGluZGVyYm94IHdpbGwgbm90 IGNvbXBsYWluIGZvciBhbnkgQVJDSC4KPgo+UGxlYXNlIGFsc28gbm90ZSB0aGF0IGN1cnJlbnRs eSAtV21pc3NpbmctaW5jbHVkZS1kaXJzIGlzIGEgbm9vcCBpbiBjbGFuZy4gT25jZQo+aXQgZ2V0 cyBpbXBsZW1lbnRlZCB3ZSB3aWxsIGhvcGVmdWxseSBiZW5lZml0IGZyb20gaXQgdmlhIHRoZSB2 ZW5kb3IgaW1wb3J0Lgo+Cj5UaGFua3MgYWdhaW4gQnJ1Y2UgZm9yIHRha2luZyBjYXJlISA6KQo+ Cj4+ICAgRml4IGEgZmV3IHdoaXRlc3BhY2UgaXNzdWVzLgo+PiAgIEltcHJvdmUgYSBjb3VwbGUg b2YgY29tbWVudHMuCj4+ICAgLVcgaXMgbm93IGRlcHJlY2F0ZWQgYW5kIGlzIHJlZmVycmVkIHRv IGFzIC1XZXh0cmEgKHNlZSBnY2MoMSkpLgo+PiAgIAo+PiAgIFN1Ym1pdHRlZCBieToJYXJ1bmRl bAo+PiAKPj4gTW9kaWZpZWQ6Cj4+ICAgaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+IAo+PiBNb2Rp ZmllZDogaGVhZC9zeXMvY29uZi9rZXJuLm1rCj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+PiAt LS0gaGVhZC9zeXMvY29uZi9rZXJuLm1rCU1vbiBNYXkgIDIgMDk6NDc6MTMgMjAxMQkocjIyMTMx OSkKPj4gKysrIGhlYWQvc3lzL2NvbmYva2Vybi5tawlNb24gTWF5ICAyIDEwOjM1OjI3IDIwMTEJ KHIyMjEzMjApCj4+IEBAIC0zLDI0ICszLDI1IEBACj4+ICAjCj4+ICAjIFdhcm5pbmcgZmxhZ3Mg Zm9yIGNvbXBpbGluZyB0aGUga2VybmVsIGFuZCBjb21wb25lbnRzIG9mIHRoZSBrZXJuZWwuCj4+ ICAjCj4+IC0jIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdjYXN0LXF1YWwgaXMgcmVzcG9u c2libGUgZm9yIGdlbmVyYXRpbmcgCj4+ICsjIE5vdGUgdGhhdCB0aGUgbmV3bHkgYWRkZWQgLVdj YXN0LXF1YWwgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcKPj4gICMgbW9zdCBvZiB0aGUg cmVtYWluaW5nIHdhcm5pbmdzLiAgV2FybmluZ3MgaW50cm9kdWNlZCB3aXRoIC1XYWxsIHdpbGwK Pj4gICMgYWxzbyBwb3AgdXAsIGJ1dCBhcmUgZWFzaWVyIHRvIGZpeC4KPj4gIENXQVJORkxBR1M/ PQktV2FsbCAtV3JlZHVuZGFudC1kZWNscyAtV25lc3RlZC1leHRlcm5zIC1Xc3RyaWN0LXByb3Rv dHlwZXMgXAo+PiAgCQktV21pc3NpbmctcHJvdG90eXBlcyAtV3BvaW50ZXItYXJpdGggLVdpbmxp bmUgLVdjYXN0LXF1YWwgXAo+PiAtCQktV3VuZGVmIC1Xbm8tcG9pbnRlci1zaWduIC1mZm9ybWF0 LWV4dGVuc2lvbnMKPj4gKwkJLVd1bmRlZiAtV25vLXBvaW50ZXItc2lnbiAtZmZvcm1hdC1leHRl bnNpb25zIFwKPj4gKwkJLVdtaXNzaW5nLWluY2x1ZGUtZGlycwo+PiAgIwo+PiAgIyBUaGUgZm9s bG93aW5nIGZsYWdzIGFyZSBuZXh0IHVwIGZvciB3b3JraW5nIG9uOgo+PiAtIwktVwo+PiArIwkt V2V4dHJhCj4+ICAKPj4gICMKPj4gLSMgT24gdGhlIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3Rh Y2sgdG8gMTYtYnl0ZSBib3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQwo+PiAtIyAyLjk1IGFkZHMg Y29kZSB0byB0aGUgZW50cnkgYW5kIGV4aXQgcG9pbnQgb2YgZXZlcnkgZnVuY3Rpb24gdG8gYWxp Z24gdGhlCj4+ICsjIE9uIGkzODYsIGRvIG5vdCBhbGlnbiB0aGUgc3RhY2sgdG8gMTYtYnl0ZSBi b3VuZGFyaWVzLiAgT3RoZXJ3aXNlIEdDQyAyLjk1Cj4+ICsjIGFuZCBhYm92ZSBhZGRzIGNvZGUg dG8gdGhlIGVudHJ5IGFuZCBleGl0IHBvaW50IG9mIGV2ZXJ5IGZ1bmN0aW9uIHRvIGFsaWduIHRo ZQo+PiAgIyBzdGFjayB0byAxNi1ieXRlIGJvdW5kYXJpZXMgLS0gdGh1cyB3YXN0aW5nIGFwcHJv eGltYXRlbHkgMTIgYnl0ZXMgb2Ygc3RhY2sKPj4gLSMgcGVyIGZ1bmN0aW9uIGNhbGwuICBXaGls ZSB0aGUgMTYtYnl0ZSBhbGlnbm1lbnQgbWF5IGJlbmVmaXQgbWljcm8gYmVuY2htYXJrcywgCj4+ ICsjIHBlciBmdW5jdGlvbiBjYWxsLiAgV2hpbGUgdGhlIDE2LWJ5dGUgYWxpZ25tZW50IG1heSBi ZW5lZml0IG1pY3JvIGJlbmNobWFya3MsCj4+ICAjIGl0IGlzIHByb2JhYmx5IGFuIG92ZXJhbGwg bG9zcyBhcyBpdCBtYWtlcyB0aGUgY29kZSBiaWdnZXIgKGxlc3MgZWZmaWNpZW50Cj4+ICAjIHVz ZSBvZiBjb2RlIGNhY2hlIHRhZyBsaW5lcykgYW5kIHVzZXMgbW9yZSBzdGFjayAobGVzcyBlZmZp Y2llbnQgdXNlIG9mIGRhdGEKPj4gLSMgY2FjaGUgdGFnIGxpbmVzKS4gIEV4cGxpY2l0bHkgcHJv aGliaXQgdGhlIHVzZSBvZiBTU0UgYW5kIG90aGVyIFNJTUQKPj4gKyMgY2FjaGUgdGFnIGxpbmVz KS4gIEV4cGxpY2l0bHkgcHJvaGliaXQgdGhlIHVzZSBvZiBGUFUsIFNTRSBhbmQgb3RoZXIgU0lN RAo+PiAgIyBvcGVyYXRpb25zIGluc2lkZSB0aGUga2VybmVsIGl0c2VsZi4gIFRoZXNlIG9wZXJh dGlvbnMgYXJlIGV4Y2x1c2l2ZWx5Cj4+ICAjIHJlc2VydmVkIGZvciB1c2VyIGFwcGxpY2F0aW9u cy4KPj4gICMKPj4gQEAgLTM1LDYgKzM2LDcgQEAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAgLmlm ICR7TUFDSElORV9DUFVBUkNIfSA9PSAiYXJtIgo+PiAgSU5MSU5FX0xJTUlUPz0JODAwMAo+PiAg LmVuZGlmCj4+ICsKPj4gICMKPj4gICMgRm9yIElBLTY0LCB3ZSB1c2UgcjEzIGZvciB0aGUga2Vy bmVsIGdsb2JhbHMgcG9pbnRlciBhbmQgd2Ugb25seSB1c2UKPj4gICMgYSB2ZXJ5IHNtYWxsIHN1 YnNldCBvZiBmbG9hdCByZWdpc3RlcnMgZm9yIGludGVnZXIgZGl2aWRlcy4KPj4gQEAgLTk4LDcg KzEwMCw3IEBAIElOTElORV9MSU1JVD89CTgwMDAKPj4gIENGTEFHUys9CS1mZnJlZXN0YW5kaW5n Cj4+ICAKPj4gICMKPj4gLSMgR0NDIFNTUCBzdXBwb3J0Lgo+PiArIyBHQ0MgU1NQIHN1cHBvcnQK Pj4gICMKPj4gIC5pZiAke01LX1NTUH0gIT0gIm5vIiAmJiAke01BQ0hJTkVfQ1BVQVJDSH0gIT0g ImlhNjQiICYmIFwKPj4gICAgICAke01BQ0hJTkVfQ1BVQVJDSH0gIT0gImFybSIgJiYgJHtNQUNI SU5FX0NQVUFSQ0h9ICE9ICJtaXBzIgo+PiBAQCAtMTA2LDkgKzEwOCw4IEBAIENGTEFHUys9CS1m c3RhY2stcHJvdGVjdG9yCj4+ICAuZW5kaWYKPj4gIAo+PiAgIwo+PiAtIyBFbmFibGUgQ1RGIGNv bnZlcnNhdGlvbiBvbiByZXF1ZXN0Lgo+PiArIyBFbmFibGUgQ1RGIGNvbnZlcnNhdGlvbiBvbiBy ZXF1ZXN0Cj4+ICAjCj4+ICAuaWYgZGVmaW5lZChXSVRIX0NURikKPj4gIC51bmRlZiBOT19DVEYK Pj4gIC5lbmRpZgo+PiAtCj4KPi0tIAo+YTEzeAo+Cj4KPk9uIDIwMTEtMDQtMjkgMjA6MjAsIEp1 bmctdWsgS2ltIHdyb3RlOgo+Li4uCj4+ICtzdGF0aWMgX19pbmxpbmUgdm9pZAo+PiArdm13YXJl X2h2Y2FsbCh1X2ludCBjbWQsIHVfaW50ICpwKQo+PiArewo+PiArCj4+ICsJX19hc20gX192b2xh dGlsZSgiaW5sICglJWR4KSIKPj4gKwk6ICI9YSIgKHBbMF0pLCAiPWIiIChwWzFdKSwgIj1jIiAo cFsyXSksICI9ZCIgKHBbM10pCj4+ICsJOiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01B WCksICIyIiAoY21kKSwgIjMiIChWTVdfSFZQT1JUKQo+PiArCTogIm1lbW9yeSIpOwo+PiArfQo+ Cj5UaGlzIHVwc2V0cyBjbGFuZydzIGludGVncmF0ZWQgYXNzZW1ibGVyLCBhbmQgSSB0aGluayBp dCdzIHJpZ2h0IGluIHRoaXMKPmNhc2U6Cj4KPnN5cy94ODYveDg2L3RzYy5jOjEwMzoxOTogZXJy b3I6IGludmFsaWQgb3BlcmFuZCBmb3IgaW5zdHJ1Y3Rpb24KPiAgICAgICAgIF9fYXNtIF9fdm9s YXRpbGUoImlubCAoJSVkeCkiCj4gICAgICAgICAgICAgICAgICAgICAgICAgIF4KPjxpbmxpbmUg YXNtPjoxOjY6IG5vdGU6IGluc3RhbnRpYXRlZCBpbnRvIGFzc2VtYmx5IGhlcmUKPiAgICAgICAg IGlubCAoJWR4KQo+ICAgICAgICAgICAgIF4KPgo+Q2FuIHdlIHBsZWFzZSBhZGQgYW4gZXhwbGlj aXQgJSVlYXggYXMgc2Vjb25kIGFyZ3VtZW50IGhlcmU/ICBFLmcuOgo+Cj5kaWZmIC0tZ2l0IGEv c3lzL3g4Ni94ODYvdHNjLmMgYi9zeXMveDg2L3g4Ni90c2MuYwo+aW5kZXggMGI3NTEwYy4uOTYz ODE2NyAxMDA2NDQKPi0tLSBhL3N5cy94ODYveDg2L3RzYy5jCj4rKysgYi9zeXMveDg2L3g4Ni90 c2MuYwo+QEAgLTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgX19pbmxpbmUgdm9pZAo+ICB2bXdhcmVf aHZjYWxsKHVfaW50IGNtZCwgdV9pbnQgKnApCj4gIHsKPiAgCj4tCV9fYXNtIF9fdm9sYXRpbGUo ImlubCAoJSVkeCkiCj4rCV9fYXNtIF9fdm9sYXRpbGUoImlubCAoJSVkeCksICUlZWF4Igo+ICAJ OiAiPWEiIChwWzBdKSwgIj1iIiAocFsxXSksICI9YyIgKHBbMl0pLCAiPWQiIChwWzNdKQo+ICAJ OiAiMCIgKFZNV19IVk1BR0lDKSwgIjEiIChVSU5UX01BWCksICIyIiAoY21kKSwgIjMiIChWTVdf SFZQT1JUKQo+ICAJOiAibWVtb3J5Iik7Cj4KPgo+QXV0aG9yOiBqaGIKPkRhdGU6IE1vbiBNYXkg IDIgMTQ6MTM6MTIgMjAxMQo+TmV3IFJldmlzaW9uOiAyMjEzMjQKPlVSTDogaHR0cDovL3N2bi5m cmVlYnNkLm9yZy9jaGFuZ2VzZXQvYmFzZS8yMjEzMjQKPgo+TG9nOgo+ICBBZGQgaW1wbGVtZW50 YXRpb25zIG9mIEJVU19BREpVU1RfUkVTT1VSQ0UoKSB0byB0aGUgUENJIGJ1cyBkcml2ZXIsCj4g IGdlbmVyaWMgUENJLVBDSSBicmlkZ2UgZHJpdmVyLCB4ODYgbmV4dXMgZHJpdmVyLCBhbmQgeDg2 IEhvc3QgdG8gUENJIGJyaWRnZQo+ICBkcml2ZXJzLgo+Cj5Nb2RpZmllZDoKPiAgaGVhZC9zeXMv YW1kNjQvcGNpL3BjaV9idXMuYwo+ICBoZWFkL3N5cy9kZXYvYWNwaWNhL2FjcGlfcGNpYl9hY3Bp LmMKPiAgaGVhZC9zeXMvZGV2L3BjaS9wY2kuYwo+ICBoZWFkL3N5cy9kZXYvcGNpL3BjaV9wY2ku Ywo+ICBoZWFkL3N5cy9pMzg2L3BjaS9wY2lfYnVzLmMKPiAgaGVhZC9zeXMveDg2L3g4Ni9tcHRh YmxlX3BjaS5jCj4gIGhlYWQvc3lzL3g4Ni94ODYvbmV4dXMuYwo+Cj5Nb2RpZmllZDogaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwo+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9z eXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDEzOjU4OjQwIDIwMTEJKHIyMjEzMjMp Cj4rKysgaGVhZC9zeXMvYW1kNjQvcGNpL3BjaV9idXMuYwlNb24gTWF5ICAyIDE0OjEzOjEyIDIw MTEJKHIyMjEzMjQpCj5AQCAtMzQ4LDYgKzM0OCw3IEBAIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3Qg bGVnYWN5X3BjaWJfbWV0aG8KPiAJREVWTUVUSE9EKGJ1c19yZWFkX2l2YXIsCWxlZ2FjeV9wY2li X3JlYWRfaXZhciksCj4gCURFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJbGVnYWN5X3BjaWJfd3Jp dGVfaXZhciksCj4gCURFVk1FVEhPRChidXNfYWxsb2NfcmVzb3VyY2UsCWxlZ2FjeV9wY2liX2Fs bG9jX3Jlc291cmNlKSwKPisJREVWTUVUSE9EKGJ1c19hZGp1c3RfcmVzb3VyY2UsCWJ1c19nZW5l cmljX2FkanVzdF9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfcmVsZWFzZV9yZXNvdXJjZSwJ YnVzX2dlbmVyaWNfcmVsZWFzZV9yZXNvdXJjZSksCj4gCURFVk1FVEhPRChidXNfYWN0aXZhdGVf cmVzb3VyY2UsIGJ1c19nZW5lcmljX2FjdGl2YXRlX3Jlc291cmNlKSwKPiAJREVWTUVUSE9EKGJ1 c19kZWFjdGl2YXRlX3Jlc291cmNlLCBidXNfZ2VuZXJpY19kZWFjdGl2YXRlX3Jlc291cmNlKSwK Pgo+TW9kaWZpZWQ6IGhlYWQvc3lzL2Rldi9hY3BpY2EvYWNwaV9wY2liX2FjcGkuYwo+PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Cj4tLS0gaGVhZC9zeXMvZGV2L2FjcGljYS9hY3BpX3BjaWJfYWNwaS5j CU1vbiBNYXkgIDIgMTM6NTg6NDAgMjAxMQkocjIyMTMyMykKPisrKyBoZWFkL3N5cy9kZXYvYWNw aWNhL2FjcGlfcGNpYl9hY3BpLmMJTW9uIE1heSAgMiAxNDoxMzoxMiAyMDExCShyMjIxMzI0KQo+ QEAgLTEwMCw2ICsxMDAsNyBAQCBzdGF0aWMgZGV2aWNlX21ldGhvZF90IGFjcGlfcGNpYl9hY3Bp X21lCj4gICAgIERFVk1FVEhPRChidXNfcmVhZF9pdmFyLAkJYWNwaV9wY2liX3JlYWRfaXZhciks Cj4gICAgIERFVk1FVEhPRChidXNfd3JpdGVfaXZhciwJCWFjcGlfcGNpYl93cml0ZV9pdmFyKSwK PiAgICAgREVWTUVUSE9EKGJ1c19hbGxvY19yZXNvdXJjZSwJYWNwaV9wY2liX2FjcGlfYWxsb2Nf cmVzb3VyY2UpLAo+KyAgICBERVZNRVRIT0QoYnVzX2FkanVzdF9yZXNvdXJjZSwJYnVzX2dlbmVy aWNfYWRqdXN0X3Jlc291cmM= From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:13:08 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1D44106564A; Mon, 2 May 2011 21:13:08 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A31238FC0A; Mon, 2 May 2011 21:13:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42LD8ca055004; Mon, 2 May 2011 21:13:08 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42LD8TH055002; Mon, 2 May 2011 21:13:08 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105022113.p42LD8TH055002@svn.freebsd.org> From: Dimitry Andric Date: Mon, 2 May 2011 21:13:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221348 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:13:08 -0000 Author: dim Date: Mon May 2 21:13:08 2011 New Revision: 221348 URL: http://svn.freebsd.org/changeset/base/221348 Log: Clang r130700 can now compile sys/boot/i386/boot2 with room to spare. Modified: head/sys/boot/i386/boot2/Makefile Modified: head/sys/boot/i386/boot2/Makefile ============================================================================== --- head/sys/boot/i386/boot2/Makefile Mon May 2 21:10:13 2011 (r221347) +++ head/sys/boot/i386/boot2/Makefile Mon May 2 21:13:08 2011 (r221348) @@ -2,9 +2,6 @@ .include -# XXX: clang can compile the boot code just fine, but boot2 gets too big -CC:=${CC:C/^(.*\/)?clang$/gcc/1} - FILES= boot boot1 boot2 NM?= nm @@ -45,6 +42,12 @@ CFLAGS= -Os \ -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ -Winline --param max-inline-insns-single=100 +.if ${CC:T:Mclang} == "clang" +CFLAGS+= -mllvm -stack-alignment=8 -mllvm -inline-threshold=3 +# XXX: clang integrated-as doesn't grok .codeNN directives yet +CFLAGS+= ${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/} +.endif + LDFLAGS=-static -N --gc-sections # Pick up ../Makefile.inc early. From owner-svn-src-head@FreeBSD.ORG Mon May 2 21:32:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 05A751065670; Mon, 2 May 2011 21:32:19 +0000 (UTC) Date: Mon, 2 May 2011 21:32:19 +0000 From: Alexander Best To: Dimitry Andric Message-ID: <20110502213218.GA86377@freebsd.org> References: <201105022113.p42LD8TH055002@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201105022113.p42LD8TH055002@svn.freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221348 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 21:32:19 -0000 On Mon May 2 11, Dimitry Andric wrote: > Author: dim > Date: Mon May 2 21:13:08 2011 > New Revision: 221348 > URL: http://svn.freebsd.org/changeset/base/221348 > > Log: > Clang r130700 can now compile sys/boot/i386/boot2 with room to spare. congratulations! everybody hanging out in #freebsd-clang knows how hard all of you guys have been working on this and persuading the llvm devs to look into the issues. alex > > Modified: > head/sys/boot/i386/boot2/Makefile > > Modified: head/sys/boot/i386/boot2/Makefile > ============================================================================== > --- head/sys/boot/i386/boot2/Makefile Mon May 2 21:10:13 2011 (r221347) > +++ head/sys/boot/i386/boot2/Makefile Mon May 2 21:13:08 2011 (r221348) > @@ -2,9 +2,6 @@ > > .include > > -# XXX: clang can compile the boot code just fine, but boot2 gets too big > -CC:=${CC:C/^(.*\/)?clang$/gcc/1} > - > FILES= boot boot1 boot2 > > NM?= nm > @@ -45,6 +42,12 @@ CFLAGS= -Os \ > -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ > -Winline --param max-inline-insns-single=100 > > +.if ${CC:T:Mclang} == "clang" > +CFLAGS+= -mllvm -stack-alignment=8 -mllvm -inline-threshold=3 > +# XXX: clang integrated-as doesn't grok .codeNN directives yet > +CFLAGS+= ${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/} > +.endif > + > LDFLAGS=-static -N --gc-sections > > # Pick up ../Makefile.inc early. -- a13x From owner-svn-src-head@FreeBSD.ORG Mon May 2 22:54:25 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55416106566B; Mon, 2 May 2011 22:54:25 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2B2688FC0A; Mon, 2 May 2011 22:54:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42MsP5p058191; Mon, 2 May 2011 22:54:25 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42MsPpX058189; Mon, 2 May 2011 22:54:25 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201105022254.p42MsPpX058189@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Mon, 2 May 2011 22:54:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221353 - head/sys/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 22:54:25 -0000 Author: bz Date: Mon May 2 22:54:24 2011 New Revision: 221353 URL: http://svn.freebsd.org/changeset/base/221353 Log: Add LINT-NOINET6 which we have inofficially supported for years and our users complained when broken. Similarly add LINT-NOINET, and for at least documentation purposes add LINT-NOIP (which compiles out INET and INET6 and couple of NIC drivers). Tested by: make universe (if you broke it since you fix it) Reviewed by: gnn Sponsored by: The FreeBSD Foundation Sponsored by: iXsystems MFC after: 2 weeks Modified: head/sys/conf/makeLINT.mk Modified: head/sys/conf/makeLINT.mk ============================================================================== --- head/sys/conf/makeLINT.mk Mon May 2 22:52:22 2011 (r221352) +++ head/sys/conf/makeLINT.mk Mon May 2 22:54:24 2011 (r221353) @@ -16,6 +16,34 @@ LINT: ${NOTES} ../../conf/makeLINT.sed echo "include ${.TARGET}" > ${.TARGET}-VIMAGE echo "ident ${.TARGET}-VIMAGE" >> ${.TARGET}-VIMAGE echo "options VIMAGE" >> ${.TARGET}-VIMAGE + echo "include ${.TARGET}" > ${.TARGET}-NOINET + echo "ident ${.TARGET}-NOINET" >> ${.TARGET}-NOINET + echo 'makeoptions MKMODULESENV+="WITHOUT_INET_SUPPORT="' >> ${.TARGET}-NOINET + echo "nooptions INET" >> ${.TARGET}-NOINET + echo "nodevice gre" >> ${.TARGET}-NOINET + echo "include ${.TARGET}" > ${.TARGET}-NOINET6 + echo "ident ${.TARGET}-NOINET6" >> ${.TARGET}-NOINET6 + echo "nooptions INET6" >> ${.TARGET}-NOINET6 + echo "include ${.TARGET}" > ${.TARGET}-NOIP + echo "ident ${.TARGET}-NOIP" >> ${.TARGET}-NOIP + echo 'makeoptions MKMODULESENV+="WITHOUT_INET_SUPPORT="' >> ${.TARGET}-NOIP + echo 'makeoptions MKMODULESENV+="WITHOUT_INET6_SUPPORT="' >> ${.TARGET}-NOIP + echo "nooptions INET" >> ${.TARGET}-NOIP + echo "nooptions INET6" >> ${.TARGET}-NOIP + echo "nodevice age" >> ${.TARGET}-NOIP + echo "nodevice alc" >> ${.TARGET}-NOIP + echo "nodevice ale" >> ${.TARGET}-NOIP + echo "nodevice bxe" >> ${.TARGET}-NOIP + echo "nodevice em" >> ${.TARGET}-NOIP + echo "nodevice fxp" >> ${.TARGET}-NOIP + echo "nodevice igb" >> ${.TARGET}-NOIP + echo "nodevice jme" >> ${.TARGET}-NOIP + echo "nodevice msk" >> ${.TARGET}-NOIP + echo "nodevice mxge" >> ${.TARGET}-NOIP + echo "nodevice sge" >> ${.TARGET}-NOIP + echo "nodevice sk" >> ${.TARGET}-NOIP + echo "nodevice txp" >> ${.TARGET}-NOIP + echo "nodevice vxge" >> ${.TARGET}-NOIP .endif .if ${TARGET} == "powerpc" || ${TARGET} == "mips" echo "machine ${TARGET} ${TARGET_ARCH}" >> ${.TARGET} From owner-svn-src-head@FreeBSD.ORG Mon May 2 23:34:34 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 26AF5106566B; Mon, 2 May 2011 23:34:34 +0000 (UTC) (envelope-from davidch@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1624C8FC14; Mon, 2 May 2011 23:34:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p42NYX0Q059467; Mon, 2 May 2011 23:34:33 GMT (envelope-from davidch@svn.freebsd.org) Received: (from davidch@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p42NYXNf059465; Mon, 2 May 2011 23:34:33 GMT (envelope-from davidch@svn.freebsd.org) Message-Id: <201105022334.p42NYXNf059465@svn.freebsd.org> From: David Christensen Date: Mon, 2 May 2011 23:34:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221354 - head/sys/dev/bxe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2011 23:34:34 -0000 Author: davidch Date: Mon May 2 23:34:33 2011 New Revision: 221354 URL: http://svn.freebsd.org/changeset/base/221354 Log: - Fixed a typo in an if() statement when setting flow control for MTU greater than 5000 bytes. Submitted by: yongari Modified: head/sys/dev/bxe/if_bxe.c Modified: head/sys/dev/bxe/if_bxe.c ============================================================================== --- head/sys/dev/bxe/if_bxe.c Mon May 2 22:54:24 2011 (r221353) +++ head/sys/dev/bxe/if_bxe.c Mon May 2 23:34:33 2011 (r221354) @@ -3600,7 +3600,7 @@ bxe_initial_phy_init(struct bxe_softc *s * It is recommended to turn off RX flow control for 5771x * when using jumbo frames for better performance. */ - if (!IS_E1HMF(sc) & (sc->mbuf_alloc_size > 5000)) + if (!IS_E1HMF(sc) && (sc->mbuf_alloc_size > 5000)) sc->link_params.req_fc_auto_adv = FLOW_CTRL_TX; else sc->link_params.req_fc_auto_adv = FLOW_CTRL_BOTH; From owner-svn-src-head@FreeBSD.ORG Tue May 3 01:43:04 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94434106566C; Tue, 3 May 2011 01:43:04 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 824048FC08; Tue, 3 May 2011 01:43:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p431h4fL063233; Tue, 3 May 2011 01:43:04 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p431h4To063231; Tue, 3 May 2011 01:43:04 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201105030143.p431h4To063231@svn.freebsd.org> From: Marcel Moolenaar Date: Tue, 3 May 2011 01:43:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221356 - head/sys/boot/ia64/common X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 01:43:04 -0000 Author: marcel Date: Tue May 3 01:43:04 2011 New Revision: 221356 URL: http://svn.freebsd.org/changeset/base/221356 Log: Fix corner case where the size is a power of two. Modified: head/sys/boot/ia64/common/exec.c Modified: head/sys/boot/ia64/common/exec.c ============================================================================== --- head/sys/boot/ia64/common/exec.c Tue May 3 01:19:39 2011 (r221355) +++ head/sys/boot/ia64/common/exec.c Tue May 3 01:43:04 2011 (r221356) @@ -76,7 +76,7 @@ sz2shft(vm_offset_t ofs, vm_size_t sz) shft = 12; /* Start with 4K */ s = 1 << shft; - while (s < sz) { + while (s <= sz) { shft++; s <<= 1; } From owner-svn-src-head@FreeBSD.ORG Tue May 3 04:44:51 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5100A106566B; Tue, 3 May 2011 04:44:51 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 346948FC14; Tue, 3 May 2011 04:44:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p434ipbO069852; Tue, 3 May 2011 04:44:51 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p434ipEj069845; Tue, 3 May 2011 04:44:51 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <201105030444.p434ipEj069845@svn.freebsd.org> From: Craig Rodrigues Date: Tue, 3 May 2011 04:44:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221358 - head/lib/libstand X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 04:44:51 -0000 Author: rodrigc Date: Tue May 3 04:44:50 2011 New Revision: 221358 URL: http://svn.freebsd.org/changeset/base/221358 Log: Switch to ANSI function prototypes in a few places. Get rid of some unused parameter warnings. Modified: head/lib/libstand/__main.c head/lib/libstand/bswap.c head/lib/libstand/cd9660.c head/lib/libstand/environment.c head/lib/libstand/getopt.c head/lib/libstand/tftp.c Modified: head/lib/libstand/__main.c ============================================================================== --- head/lib/libstand/__main.c Tue May 3 01:55:27 2011 (r221357) +++ head/lib/libstand/__main.c Tue May 3 04:44:50 2011 (r221358) @@ -38,6 +38,6 @@ __FBSDID("$FreeBSD$"); void __main(void); void -__main() +__main(void) { } Modified: head/lib/libstand/bswap.c ============================================================================== --- head/lib/libstand/bswap.c Tue May 3 01:55:27 2011 (r221357) +++ head/lib/libstand/bswap.c Tue May 3 04:44:50 2011 (r221358) @@ -16,9 +16,11 @@ static char *rcsid = "$NetBSD: bswap64.c #undef bswap32 #undef bswap64 +u_int32_t bswap32(u_int32_t x); +u_int64_t bswap64(u_int64_t x); + u_int32_t -bswap32(x) - u_int32_t x; +bswap32(u_int32_t x) { return ((x << 24) & 0xff000000 ) | ((x << 8) & 0x00ff0000 ) | @@ -27,8 +29,7 @@ bswap32(x) } u_int64_t -bswap64(x) - u_int64_t x; +bswap64(u_int64_t x) { u_int32_t *p = (u_int32_t*)&x; u_int32_t t; Modified: head/lib/libstand/cd9660.c ============================================================================== --- head/lib/libstand/cd9660.c Tue May 3 01:55:27 2011 (r221357) +++ head/lib/libstand/cd9660.c Tue May 3 04:44:50 2011 (r221358) @@ -545,7 +545,7 @@ again: } static int -cd9660_write(struct open_file *f, void *start, size_t size, size_t *resid) +cd9660_write(struct open_file *f __unused, void *start __unused, size_t size __unused, size_t *resid __unused) { return EROFS; } Modified: head/lib/libstand/environment.c ============================================================================== --- head/lib/libstand/environment.c Tue May 3 01:55:27 2011 (r221357) +++ head/lib/libstand/environment.c Tue May 3 04:44:50 2011 (r221358) @@ -207,13 +207,14 @@ env_discard(struct env_var *ev) } int -env_noset(struct env_var *ev, int flags, const void *value) +env_noset(struct env_var *ev __unused, int flags __unused, + const void *value __unused) { return(EPERM); } int -env_nounset(struct env_var *ev) +env_nounset(struct env_var *ev __unused) { return(EPERM); } Modified: head/lib/libstand/getopt.c ============================================================================== --- head/lib/libstand/getopt.c Tue May 3 01:55:27 2011 (r221357) +++ head/lib/libstand/getopt.c Tue May 3 04:44:50 2011 (r221358) @@ -52,10 +52,7 @@ char *optarg; /* argument associated wi * Parse argc/argv argument vector. */ int -getopt(nargc, nargv, ostr) - int nargc; - char * const *nargv; - const char *ostr; +getopt(int nargc, char * const *nargv, const char *ostr) { static char *place = EMSG; /* option letter processing */ char *oli; /* option letter list index */ Modified: head/lib/libstand/tftp.c ============================================================================== --- head/lib/libstand/tftp.c Tue May 3 01:55:27 2011 (r221357) +++ head/lib/libstand/tftp.c Tue May 3 04:44:50 2011 (r221358) @@ -110,11 +110,7 @@ static const int tftperrors[8] = { }; static ssize_t -recvtftp(d, pkt, len, tleft) - struct iodesc *d; - void *pkt; - ssize_t len; - time_t tleft; +recvtftp(struct iodesc *d, void *pkt, ssize_t len, time_t tleft) { struct tftphdr *t; @@ -168,8 +164,7 @@ recvtftp(d, pkt, len, tleft) /* send request, expect first block (or error) */ static int -tftp_makereq(h) - struct tftp_handle *h; +tftp_makereq(struct tftp_handle *h) { struct { u_char header[HEADER_SIZE]; @@ -212,8 +207,7 @@ tftp_makereq(h) /* ack block, expect next */ static int -tftp_getnextblock(h) - struct tftp_handle *h; +tftp_getnextblock(struct tftp_handle *h) { struct { u_char header[HEADER_SIZE]; @@ -246,9 +240,7 @@ tftp_getnextblock(h) } static int -tftp_open(path, f) - const char *path; - struct open_file *f; +tftp_open(const char *path, struct open_file *f) { struct tftp_handle *tftpfile; struct iodesc *io; @@ -287,11 +279,8 @@ tftp_open(path, f) } static int -tftp_read(f, addr, size, resid) - struct open_file *f; - void *addr; - size_t size; - size_t *resid; /* out */ +tftp_read(struct open_file *f, void *addr, size_t size, + size_t *resid /* out */) { struct tftp_handle *tftpfile; static int tc = 0; @@ -361,8 +350,7 @@ tftp_read(f, addr, size, resid) } static int -tftp_close(f) - struct open_file *f; +tftp_close(struct open_file *f) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; @@ -377,19 +365,14 @@ tftp_close(f) } static int -tftp_write(f, start, size, resid) - struct open_file *f; - void *start; - size_t size; - size_t *resid; /* out */ +tftp_write(struct open_file *f __unused, void *start __unused, size_t size __unused, + size_t *resid /* out */ __unused) { return (EROFS); } static int -tftp_stat(f, sb) - struct open_file *f; - struct stat *sb; +tftp_stat(struct open_file *f, struct stat *sb) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; @@ -403,10 +386,7 @@ tftp_stat(f, sb) } static off_t -tftp_seek(f, offset, where) - struct open_file *f; - off_t offset; - int where; +tftp_seek(struct open_file *f, off_t offset, int where) { struct tftp_handle *tftpfile; tftpfile = (struct tftp_handle *) f->f_fsdata; From owner-svn-src-head@FreeBSD.ORG Tue May 3 07:32:58 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 974D0106564A; Tue, 3 May 2011 07:32:58 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 84C338FC12; Tue, 3 May 2011 07:32:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p437Wwgw074940; Tue, 3 May 2011 07:32:58 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p437Wwoa074933; Tue, 3 May 2011 07:32:58 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201105030732.p437Wwoa074933@svn.freebsd.org> From: Edward Tomasz Napierala Date: Tue, 3 May 2011 07:32:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221362 - in head: sys/kern sys/sys usr.bin/rctl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 07:32:58 -0000 Author: trasz Date: Tue May 3 07:32:58 2011 New Revision: 221362 URL: http://svn.freebsd.org/changeset/base/221362 Log: Change the way rctl interfaces with jails by introducing prison_racct structure, which acts as a proxy between them. This makes jail rules persistent, i.e. they can be added before jail gets created, and they don't disappear when the jail gets destroyed. Modified: head/sys/kern/kern_jail.c head/sys/kern/kern_racct.c head/sys/kern/kern_rctl.c head/sys/sys/jail.h head/sys/sys/rctl.h head/usr.bin/rctl/rctl.8 Modified: head/sys/kern/kern_jail.c ============================================================================== --- head/sys/kern/kern_jail.c Tue May 3 07:24:47 2011 (r221361) +++ head/sys/kern/kern_jail.c Tue May 3 07:32:58 2011 (r221362) @@ -50,7 +50,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include @@ -78,6 +78,7 @@ __FBSDID("$FreeBSD$"); #define DEFAULT_HOSTUUID "00000000-0000-0000-0000-000000000000" MALLOC_DEFINE(M_PRISON, "prison", "Prison structures"); +MALLOC_DEFINE(M_PRISON_RACCT, "prison_racct", "Prison racct structures"); /* Keep struct prison prison0 and some code in kern_jail_set() readable. */ #ifdef INET @@ -114,10 +115,11 @@ struct prison prison0 = { }; MTX_SYSINIT(prison0, &prison0.pr_mtx, "jail mutex", MTX_DEF); -/* allprison and lastprid are protected by allprison_lock. */ +/* allprison, allprison_racct and lastprid are protected by allprison_lock. */ struct sx allprison_lock; SX_SYSINIT(allprison_lock, &allprison_lock, "allprison"); struct prisonlist allprison = TAILQ_HEAD_INITIALIZER(allprison); +LIST_HEAD(, prison_racct) allprison_racct; int lastprid = 0; static int do_jail_attach(struct thread *td, struct prison *pr); @@ -125,6 +127,10 @@ static void prison_complete(void *contex static void prison_deref(struct prison *pr, int flags); static char *prison_path(struct prison *pr1, struct prison *pr2); static void prison_remove_one(struct prison *pr); +#ifdef RACCT +static void prison_racct_attach(struct prison *pr); +static void prison_racct_detach(struct prison *pr); +#endif #ifdef INET static int _prison_check_ip4(struct prison *pr, struct in_addr *ia); static int prison_restrict_ip4(struct prison *pr, struct in_addr *newip4); @@ -1197,7 +1203,6 @@ kern_jail_set(struct thread *td, struct root = mypr->pr_root; vref(root); } - racct_create(&pr->pr_racct); strlcpy(pr->pr_hostuuid, DEFAULT_HOSTUUID, HOSTUUIDLEN); pr->pr_flags |= PR_HOST; #if defined(INET) || defined(INET6) @@ -1657,6 +1662,11 @@ kern_jail_set(struct thread *td, struct pr->pr_flags = (pr->pr_flags & ~ch_flags) | pr_flags; mtx_unlock(&pr->pr_mtx); +#ifdef RACCT + if (created) + prison_racct_attach(pr); +#endif + /* Locks may have prevented a complete restriction of child IP * addresses. If so, allocate some more memory and try again. */ @@ -2533,10 +2543,9 @@ prison_deref(struct prison *pr, int flag if (pr->pr_cpuset != NULL) cpuset_rel(pr->pr_cpuset); osd_jail_exit(pr); -#ifdef RCTL - rctl_racct_release(pr->pr_racct); +#ifdef RACCT + prison_racct_detach(pr); #endif - racct_destroy(&pr->pr_racct); free(pr, M_PRISON); /* Removing a prison frees a reference on its parent. */ @@ -4277,14 +4286,103 @@ void prison_racct_foreach(void (*callback)(struct racct *racct, void *arg2, void *arg3), void *arg2, void *arg3) { - struct prison *pr; + struct prison_racct *prr; sx_slock(&allprison_lock); - TAILQ_FOREACH(pr, &allprison, pr_list) - (callback)(pr->pr_racct, arg2, arg3); + LIST_FOREACH(prr, &allprison_racct, prr_next) + (callback)(prr->prr_racct, arg2, arg3); sx_sunlock(&allprison_lock); } +static struct prison_racct * +prison_racct_find_locked(const char *name) +{ + struct prison_racct *prr; + + sx_assert(&allprison_lock, SA_XLOCKED); + + if (name[0] == '\0' || strlen(name) >= MAXHOSTNAMELEN) + return (NULL); + + LIST_FOREACH(prr, &allprison_racct, prr_next) { + if (strcmp(name, prr->prr_name) != 0) + continue; + + /* Found prison_racct with a matching name? */ + prison_racct_hold(prr); + return (prr); + } + + /* Add new prison_racct. */ + prr = malloc(sizeof(*prr), M_PRISON_RACCT, M_ZERO | M_WAITOK); + racct_create(&prr->prr_racct); + + strcpy(prr->prr_name, name); + refcount_init(&prr->prr_refcount, 1); + LIST_INSERT_HEAD(&allprison_racct, prr, prr_next); + + return (prr); +} + +struct prison_racct * +prison_racct_find(const char *name) +{ + struct prison_racct *prr; + + sx_xlock(&allprison_lock); + prr = prison_racct_find_locked(name); + sx_xunlock(&allprison_lock); + return (prr); +} + +void +prison_racct_hold(struct prison_racct *prr) +{ + + refcount_acquire(&prr->prr_refcount); +} + +void +prison_racct_free(struct prison_racct *prr) +{ + int old; + + old = prr->prr_refcount; + if (old > 1 && atomic_cmpset_int(&prr->prr_refcount, old, old - 1)) + return; + + sx_xlock(&allprison_lock); + if (refcount_release(&prr->prr_refcount)) { + racct_destroy(&prr->prr_racct); + LIST_REMOVE(prr, prr_next); + sx_xunlock(&allprison_lock); + free(prr, M_PRISON_RACCT); + + return; + } + sx_xunlock(&allprison_lock); +} + +#ifdef RACCT +static void +prison_racct_attach(struct prison *pr) +{ + struct prison_racct *prr; + + prr = prison_racct_find_locked(pr->pr_name); + KASSERT(prr != NULL, ("cannot find prison_racct")); + + pr->pr_prison_racct = prr; +} + +static void +prison_racct_detach(struct prison *pr) +{ + prison_racct_free(pr->pr_prison_racct); + pr->pr_prison_racct = NULL; +} +#endif /* RACCT */ + #ifdef DDB static void Modified: head/sys/kern/kern_racct.c ============================================================================== --- head/sys/kern/kern_racct.c Tue May 3 07:24:47 2011 (r221361) +++ head/sys/kern/kern_racct.c Tue May 3 07:32:58 2011 (r221362) @@ -313,7 +313,8 @@ racct_add_cred_locked(struct ucred *cred racct_alloc_resource(cred->cr_ruidinfo->ui_racct, resource, amount); for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - racct_alloc_resource(pr->pr_racct, resource, amount); + racct_alloc_resource(pr->pr_prison_racct->prr_racct, resource, + amount); racct_alloc_resource(cred->cr_loginclass->lc_racct, resource, amount); } @@ -522,7 +523,8 @@ racct_sub_cred_locked(struct ucred *cred racct_alloc_resource(cred->cr_ruidinfo->ui_racct, resource, -amount); for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) - racct_alloc_resource(pr->pr_racct, resource, -amount); + racct_alloc_resource(pr->pr_prison_racct->prr_racct, resource, + -amount); racct_alloc_resource(cred->cr_loginclass->lc_racct, resource, -amount); } @@ -669,9 +671,11 @@ racct_proc_ucred_changed(struct proc *p, } if (newpr != oldpr) { for (pr = oldpr; pr != NULL; pr = pr->pr_parent) - racct_sub_racct(pr->pr_racct, p->p_racct); + racct_sub_racct(pr->pr_prison_racct->prr_racct, + p->p_racct); for (pr = newpr; pr != NULL; pr = pr->pr_parent) - racct_add_racct(pr->pr_racct, p->p_racct); + racct_add_racct(pr->pr_prison_racct->prr_racct, + p->p_racct); } mtx_unlock(&racct_lock); @@ -744,7 +748,7 @@ racct_init(void) /* * XXX: Move this somewhere. */ - racct_create(&prison0.pr_racct); + prison0.pr_prison_racct = prison_racct_find("0"); } SYSINIT(racct, SI_SUB_RACCT, SI_ORDER_FIRST, racct_init, NULL); Modified: head/sys/kern/kern_rctl.c ============================================================================== --- head/sys/kern/kern_rctl.c Tue May 3 07:24:47 2011 (r221361) +++ head/sys/kern/kern_rctl.c Tue May 3 07:32:58 2011 (r221362) @@ -241,7 +241,8 @@ rctl_available_resource(const struct pro break; case RCTL_SUBJECT_TYPE_JAIL: available = rule->rr_amount - - cred->cr_prison->pr_racct->r_resources[resource]; + cred->cr_prison->pr_prison_racct->prr_racct-> + r_resources[resource]; break; default: panic("rctl_compute_available: unknown per %d", @@ -327,7 +328,7 @@ rctl_enforce(struct proc *p, int resourc printf("rctl: rule \"%s\" matched by pid %d " "(%s), uid %d, jail %s\n", sbuf_data(&sb), p->p_pid, p->p_comm, p->p_ucred->cr_uid, - p->p_ucred->cr_prison->pr_name); + p->p_ucred->cr_prison->pr_prison_racct->prr_name); sbuf_delete(&sb); free(buf, M_RCTL); link->rrl_exceeded = 1; @@ -346,7 +347,7 @@ rctl_enforce(struct proc *p, int resourc rctl_rule_to_sbuf(&sb, rule); sbuf_printf(&sb, " pid=%d ruid=%d jail=%s", p->p_pid, p->p_ucred->cr_ruid, - p->p_ucred->cr_prison->pr_name); + p->p_ucred->cr_prison->pr_prison_racct->prr_name); sbuf_finish(&sb); devctl_notify_f("RCTL", "rule", "matched", sbuf_data(&sb), M_NOWAIT); @@ -481,9 +482,9 @@ rctl_rule_matches(const struct rctl_rule return (0); break; case RCTL_SUBJECT_TYPE_JAIL: - if (filter->rr_subject.rs_prison != NULL && - rule->rr_subject.rs_prison != - filter->rr_subject.rs_prison) + if (filter->rr_subject.rs_prison_racct != NULL && + rule->rr_subject.rs_prison_racct != + filter->rr_subject.rs_prison_racct) return (0); break; default: @@ -635,7 +636,10 @@ rctl_rule_acquire_subject(struct rctl_ru switch (rule->rr_subject_type) { case RCTL_SUBJECT_TYPE_UNDEFINED: case RCTL_SUBJECT_TYPE_PROCESS: + break; case RCTL_SUBJECT_TYPE_JAIL: + if (rule->rr_subject.rs_prison_racct != NULL) + prison_racct_hold(rule->rr_subject.rs_prison_racct); break; case RCTL_SUBJECT_TYPE_USER: if (rule->rr_subject.rs_uip != NULL) @@ -658,7 +662,10 @@ rctl_rule_release_subject(struct rctl_ru switch (rule->rr_subject_type) { case RCTL_SUBJECT_TYPE_UNDEFINED: case RCTL_SUBJECT_TYPE_PROCESS: + break; case RCTL_SUBJECT_TYPE_JAIL: + if (rule->rr_subject.rs_prison_racct != NULL) + prison_racct_free(rule->rr_subject.rs_prison_racct); break; case RCTL_SUBJECT_TYPE_USER: if (rule->rr_subject.rs_uip != NULL) @@ -686,7 +693,7 @@ rctl_rule_alloc(int flags) rule->rr_subject.rs_proc = NULL; rule->rr_subject.rs_uip = NULL; rule->rr_subject.rs_loginclass = NULL; - rule->rr_subject.rs_prison = NULL; + rule->rr_subject.rs_prison_racct = NULL; rule->rr_per = RCTL_SUBJECT_TYPE_UNDEFINED; rule->rr_resource = RACCT_UNDEFINED; rule->rr_action = RCTL_ACTION_UNDEFINED; @@ -708,7 +715,7 @@ rctl_rule_duplicate(const struct rctl_ru copy->rr_subject.rs_proc = rule->rr_subject.rs_proc; copy->rr_subject.rs_uip = rule->rr_subject.rs_uip; copy->rr_subject.rs_loginclass = rule->rr_subject.rs_loginclass; - copy->rr_subject.rs_prison = rule->rr_subject.rs_prison; + copy->rr_subject.rs_prison_racct = rule->rr_subject.rs_prison_racct; copy->rr_per = rule->rr_per; copy->rr_resource = rule->rr_resource; copy->rr_action = rule->rr_action; @@ -784,7 +791,7 @@ rctl_rule_fully_specified(const struct r return (0); break; case RCTL_SUBJECT_TYPE_JAIL: - if (rule->rr_subject.rs_prison == NULL) + if (rule->rr_subject.rs_prison_racct == NULL) return (0); break; default: @@ -833,7 +840,7 @@ rctl_string_to_rule(char *rulestr, struc rule->rr_subject.rs_proc = NULL; rule->rr_subject.rs_uip = NULL; rule->rr_subject.rs_loginclass = NULL; - rule->rr_subject.rs_prison = NULL; + rule->rr_subject.rs_prison_racct = NULL; } else { switch (rule->rr_subject_type) { case RCTL_SUBJECT_TYPE_UNDEFINED: @@ -866,23 +873,12 @@ rctl_string_to_rule(char *rulestr, struc } break; case RCTL_SUBJECT_TYPE_JAIL: - rule->rr_subject.rs_prison = - prison_find_name(&prison0, subject_idstr); - if (rule->rr_subject.rs_prison == NULL) { - /* - * No jail with that name; try with the JID. - */ - error = str2id(subject_idstr, &id); - if (error != 0) - goto out; - rule->rr_subject.rs_prison = prison_find(id); - if (rule->rr_subject.rs_prison == NULL) { - error = ESRCH; - goto out; - } + rule->rr_subject.rs_prison_racct = + prison_racct_find(subject_idstr); + if (rule->rr_subject.rs_prison_racct == NULL) { + error = ENAMETOOLONG; + goto out; } - /* prison_find() returns with mutex held. */ - mtx_unlock(&rule->rr_subject.rs_prison->pr_mtx); break; default: panic("rctl_string_to_rule: unknown subject type %d", @@ -944,6 +940,7 @@ rctl_rule_add(struct rctl_rule *rule) struct ucred *cred; struct uidinfo *uip; struct prison *pr; + struct prison_racct *prr; struct loginclass *lc; struct rctl_rule *rule2; int match; @@ -1008,9 +1005,9 @@ rctl_rule_add(struct rctl_rule *rule) break; case RCTL_SUBJECT_TYPE_JAIL: - pr = rule->rr_subject.rs_prison; - KASSERT(pr != NULL, ("rctl_rule_add: NULL pr")); - rctl_racct_add_rule(pr->pr_racct, rule); + prr = rule->rr_subject.rs_prison_racct; + KASSERT(prr != NULL, ("rctl_rule_add: NULL pr")); + rctl_racct_add_rule(prr->prr_racct, rule); break; default: @@ -1040,7 +1037,7 @@ rctl_rule_add(struct rctl_rule *rule) case RCTL_SUBJECT_TYPE_JAIL: match = 0; for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) { - if (pr == rule->rr_subject.rs_prison) { + if (pr->pr_prison_racct == rule->rr_subject.rs_prison_racct) { match = 1; break; } @@ -1144,11 +1141,11 @@ rctl_rule_to_sbuf(struct sbuf *sb, const rule->rr_subject.rs_loginclass->lc_name); break; case RCTL_SUBJECT_TYPE_JAIL: - if (rule->rr_subject.rs_prison == NULL) + if (rule->rr_subject.rs_prison_racct == NULL) sbuf_printf(sb, ":"); else sbuf_printf(sb, "%s:", - rule->rr_subject.rs_prison->pr_name); + rule->rr_subject.rs_prison_racct->prr_name); break; default: panic("rctl_rule_to_sbuf: unknown subject type %d", @@ -1245,7 +1242,7 @@ rctl_get_racct(struct thread *td, struct struct proc *p; struct uidinfo *uip; struct loginclass *lc; - struct prison *pr; + struct prison_racct *prr; error = priv_check(td, PRIV_RCTL_GET_RACCT); if (error != 0) @@ -1256,11 +1253,9 @@ rctl_get_racct(struct thread *td, struct return (error); sx_slock(&allproc_lock); - sx_slock(&allprison_lock); error = rctl_string_to_rule(inputstr, &filter); free(inputstr, M_RCTL); if (error != 0) { - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); } @@ -1295,19 +1290,18 @@ rctl_get_racct(struct thread *td, struct outputsbuf = rctl_racct_to_sbuf(lc->lc_racct, 1); break; case RCTL_SUBJECT_TYPE_JAIL: - pr = filter->rr_subject.rs_prison; - if (pr == NULL) { + prr = filter->rr_subject.rs_prison_racct; + if (prr == NULL) { error = EINVAL; goto out; } - outputsbuf = rctl_racct_to_sbuf(pr->pr_racct, 1); + outputsbuf = rctl_racct_to_sbuf(prr->prr_racct, 1); break; default: error = EINVAL; } out: rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); if (error != 0) return (error); @@ -1354,11 +1348,9 @@ rctl_get_rules(struct thread *td, struct return (error); sx_slock(&allproc_lock); - sx_slock(&allprison_lock); error = rctl_string_to_rule(inputstr, &filter); free(inputstr, M_RCTL); if (error != 0) { - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); } @@ -1406,7 +1398,6 @@ again: error = rctl_write_outbuf(sb, uap->outbufp, uap->outbuflen); rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); free(buf, M_RCTL); return (error); @@ -1431,30 +1422,25 @@ rctl_get_limits(struct thread *td, struc return (error); sx_slock(&allproc_lock); - sx_slock(&allprison_lock); error = rctl_string_to_rule(inputstr, &filter); free(inputstr, M_RCTL); if (error != 0) { - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); } if (filter->rr_subject_type == RCTL_SUBJECT_TYPE_UNDEFINED) { rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (EINVAL); } if (filter->rr_subject_type != RCTL_SUBJECT_TYPE_PROCESS) { rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (EOPNOTSUPP); } if (filter->rr_subject.rs_proc == NULL) { rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (EINVAL); } @@ -1486,7 +1472,6 @@ again: error = rctl_write_outbuf(sb, uap->outbufp, uap->outbuflen); rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); free(buf, M_RCTL); return (error); @@ -1508,11 +1493,9 @@ rctl_add_rule(struct thread *td, struct return (error); sx_slock(&allproc_lock); - sx_slock(&allprison_lock); error = rctl_string_to_rule(inputstr, &rule); free(inputstr, M_RCTL); if (error != 0) { - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); } @@ -1532,7 +1515,6 @@ rctl_add_rule(struct thread *td, struct out: rctl_rule_release(rule); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); } @@ -1553,18 +1535,15 @@ rctl_remove_rule(struct thread *td, stru return (error); sx_slock(&allproc_lock); - sx_slock(&allprison_lock); error = rctl_string_to_rule(inputstr, &filter); free(inputstr, M_RCTL); if (error != 0) { - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); } error = rctl_rule_remove(filter); rctl_rule_release(filter); - sx_sunlock(&allprison_lock); sx_sunlock(&allproc_lock); return (error); @@ -1580,12 +1559,12 @@ rctl_proc_ucred_changed(struct proc *p, struct rctl_rule_link *link, *newlink; struct uidinfo *newuip; struct loginclass *newlc; - struct prison *newpr; + struct prison_racct *newprr; LIST_HEAD(, rctl_rule_link) newrules; newuip = newcred->cr_ruidinfo; newlc = newcred->cr_loginclass; - newpr = newcred->cr_prison; + newprr = newcred->cr_prison->pr_prison_racct; LIST_INIT(&newrules); @@ -1605,7 +1584,7 @@ again: rulecnt++; LIST_FOREACH(link, &newlc->lc_racct->r_rule_links, rrl_next) rulecnt++; - LIST_FOREACH(link, &newpr->pr_racct->r_rule_links, rrl_next) + LIST_FOREACH(link, &newprr->prr_racct->r_rule_links, rrl_next) rulecnt++; rw_runlock(&rctl_lock); @@ -1655,7 +1634,7 @@ again: rulecnt--; } - LIST_FOREACH(link, &newpr->pr_racct->r_rule_links, rrl_next) { + LIST_FOREACH(link, &newprr->prr_racct->r_rule_links, rrl_next) { if (newlink == NULL) goto goaround; rctl_rule_acquire(link->rrl_rule); Modified: head/sys/sys/jail.h ============================================================================== --- head/sys/sys/jail.h Tue May 3 07:24:47 2011 (r221361) +++ head/sys/sys/jail.h Tue May 3 07:32:58 2011 (r221362) @@ -136,6 +136,7 @@ MALLOC_DECLARE(M_PRISON); #define HOSTUUIDLEN 64 struct racct; +struct prison_racct; /* * This structure describes a prison. It is pointed to by all struct @@ -168,7 +169,7 @@ struct prison { int pr_ip6s; /* (p) number of v6 IPs */ struct in_addr *pr_ip4; /* (p) v4 IPs of jail */ struct in6_addr *pr_ip6; /* (p) v6 IPs of jail */ - struct racct *pr_racct; /* (c) resource accounting */ + struct prison_racct *pr_prison_racct; /* (c) racct jail proxy */ void *pr_sparep[3]; int pr_childcount; /* (a) number of child jails */ int pr_childmax; /* (p) maximum child jails */ @@ -183,6 +184,13 @@ struct prison { char pr_domainname[MAXHOSTNAMELEN]; /* (p) jail domainname */ char pr_hostuuid[HOSTUUIDLEN]; /* (p) jail hostuuid */ }; + +struct prison_racct { + LIST_ENTRY(prison_racct) prr_next; + char prr_name[MAXHOSTNAMELEN]; + u_int prr_refcount; + struct racct *prr_racct; +}; #endif /* _KERNEL || _WANT_PRISON */ #ifdef _KERNEL @@ -385,6 +393,9 @@ int prison_priv_check(struct ucred *cred int sysctl_jail_param(SYSCTL_HANDLER_ARGS); void prison_racct_foreach(void (*callback)(struct racct *racct, void *arg2, void *arg3), void *arg2, void *arg3); +struct prison_racct *prison_racct_find(const char *name); +void prison_racct_hold(struct prison_racct *prr); +void prison_racct_free(struct prison_racct *prr); #endif /* _KERNEL */ #endif /* !_SYS_JAIL_H_ */ Modified: head/sys/sys/rctl.h ============================================================================== --- head/sys/sys/rctl.h Tue May 3 07:24:47 2011 (r221361) +++ head/sys/sys/rctl.h Tue May 3 07:32:58 2011 (r221362) @@ -44,7 +44,7 @@ struct proc; struct uidinfo; struct loginclass; -struct prison; +struct prison_racct; struct ucred; struct rctl_rule_link; @@ -70,7 +70,7 @@ struct rctl_rule { struct proc *rs_proc; struct uidinfo *rs_uip; struct loginclass *rs_loginclass; - struct prison *rs_prison; + struct prison_racct *rs_prison_racct; } rr_subject; int rr_per; int rr_resource; Modified: head/usr.bin/rctl/rctl.8 ============================================================================== --- head/usr.bin/rctl/rctl.8 Tue May 3 07:24:47 2011 (r221361) +++ head/usr.bin/rctl/rctl.8 Tue May 3 07:32:58 2011 (r221362) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 14, 2011 +.Dd May 3, 2011 .Dt RCTL 8 .Os .Sh NAME @@ -90,7 +90,7 @@ Subject defines the kind of entity the r It can be either process, user, login class, or jail. .Pp Subject ID identifies the subject. It can be user name, -numerical user ID, login class name, jail name, or numerical jail ID. +numerical user ID, login class name, or jail name. .Pp Resource identifies the resource the rule controls. .Pp @@ -177,9 +177,9 @@ Prevent user "joe" from allocating more .Pp Remove all RCTL rules. .Pp -.Dl rctl -hu jail:5 +.Dl rctl -hu jail:www .Pp -Display resource usage information for jail with JID 5. +Display resource usage information for jail named "www". .Pp .Dl rctl -l process:512 .Pp From owner-svn-src-head@FreeBSD.ORG Tue May 3 07:33:39 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8DB5B106566C; Tue, 3 May 2011 07:33:39 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7BB668FC15; Tue, 3 May 2011 07:33:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p437XdTX075014; Tue, 3 May 2011 07:33:39 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p437XduH075011; Tue, 3 May 2011 07:33:39 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105030733.p437XduH075011@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Tue, 3 May 2011 07:33:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221363 - head/sbin/geom/class/part X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 07:33:39 -0000 Author: ae Date: Tue May 3 07:33:39 2011 New Revision: 221363 URL: http://svn.freebsd.org/changeset/base/221363 Log: Add "-a alignment" option to gpart(8). When it specified gpart(8) tries to align partition start offset and size to be multiple of alignment value. MFC after: 2 weeks Modified: head/sbin/geom/class/part/geom_part.c head/sbin/geom/class/part/gpart.8 Modified: head/sbin/geom/class/part/geom_part.c ============================================================================== --- head/sbin/geom/class/part/geom_part.c Tue May 3 07:32:58 2011 (r221362) +++ head/sbin/geom/class/part/geom_part.c Tue May 3 07:33:39 2011 (r221363) @@ -93,6 +93,7 @@ static void gpart_restore(struct gctl_re struct g_command PUBSYM(class_commands)[] = { { "add", 0, gpart_issue, { + { 'a', "alignment", GPART_AUTOFILL, G_TYPE_STRING }, { 'b', "start", GPART_AUTOFILL, G_TYPE_STRING }, { 's', "size", GPART_AUTOFILL, G_TYPE_STRING }, { 't', "type", NULL, G_TYPE_STRING }, @@ -100,7 +101,8 @@ struct g_command PUBSYM(class_commands)[ { 'l', "label", G_VAL_OPTIONAL, G_TYPE_STRING }, { 'f', "flags", GPART_FLAGS, G_TYPE_STRING }, G_OPT_SENTINEL }, - "[-b start] [-s size] -t type [-i index] [-l label] [-f flags] geom" + "[-a alignment] [-b start] [-s size] -t type [-i index] " + "[-l label] [-f flags] geom" }, { "backup", 0, gpart_backup, G_NULL_OPTS, "geom" @@ -168,11 +170,12 @@ struct g_command PUBSYM(class_commands)[ "-a attrib -i index [-f flags] geom" }, { "resize", 0, gpart_issue, { + { 'a', "alignment", GPART_AUTOFILL, G_TYPE_STRING }, { 's', "size", GPART_AUTOFILL, G_TYPE_STRING }, { 'i', GPART_PARAM_INDEX, NULL, G_TYPE_NUMBER }, { 'f', "flags", GPART_FLAGS, G_TYPE_STRING }, G_OPT_SENTINEL }, - "[-s size] -i index [-f flags] geom" + "[-a alignment] [-s size] -i index [-f flags] geom" }, { "restore", 0, gpart_restore, { { 'F', "force", NULL, G_TYPE_BOOL }, @@ -298,6 +301,9 @@ fmtattrib(struct gprovider *pp) return (buf); } +#define ALIGNDOWN(d, a) (-(a) & (d)) +#define ALIGNUP(d, a) (-(-(a) & -(d))) + static int gpart_autofill_resize(struct gctl_req *req) { @@ -306,7 +312,7 @@ gpart_autofill_resize(struct gctl_req *r struct ggeom *gp; struct gprovider *pp; off_t last, size, start, new_size; - off_t lba, new_lba; + off_t lba, new_lba, alignment; const char *s; int error, idx; @@ -333,6 +339,19 @@ gpart_autofill_resize(struct gctl_req *r if (pp == NULL) errx(EXIT_FAILURE, "Provider for geom %s not found.", s); + s = gctl_get_ascii(req, "alignment"); + alignment = 1; + if (*s != '*') { + error = g_parse_lba(s, pp->lg_sectorsize, &alignment); + if (error) + errc(EXIT_FAILURE, error, "Invalid alignment param"); + if (alignment == 0) + errx(EXIT_FAILURE, "Invalid alignment param"); + } + error = gctl_delete_param(req, "alignment"); + if (error) + errc(EXIT_FAILURE, error, "internal error"); + s = gctl_get_ascii(req, "size"); if (*s == '*') new_size = 0; @@ -341,10 +360,14 @@ gpart_autofill_resize(struct gctl_req *r if (error) errc(EXIT_FAILURE, error, "Invalid size param"); /* no autofill necessary. */ - goto done; + if (alignment == 1) + goto done; + if (new_size > alignment) + new_size = ALIGNDOWN(new_size, alignment); } last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); + last = ALIGNDOWN(last, alignment); LIST_FOREACH(pp, &gp->lg_provider, lg_provider) { s = find_provcfg(pp, "index"); if (s == NULL) @@ -376,7 +399,7 @@ gpart_autofill_resize(struct gctl_req *r size = lba - start; pp = find_provider(gp, lba); if (pp == NULL) - new_size = last - start + 1; + new_size = ALIGNDOWN(last - start + 1, alignment); else { s = find_provcfg(pp, "start"); if (s == NULL) { @@ -389,6 +412,7 @@ gpart_autofill_resize(struct gctl_req *r * Is there any free space between current and * next providers? */ + new_lba = ALIGNUP(new_lba, alignment); if (new_lba > lba) new_size = new_lba - start; else { @@ -410,12 +434,12 @@ gpart_autofill(struct gctl_req *req) struct gclass *cp; struct ggeom *gp; struct gprovider *pp; - off_t first, last; - off_t size, start; - off_t lba, len; + off_t first, last, a_first; + off_t size, start, a_lba; + off_t lba, len, alignment; uintmax_t grade; const char *s; - int error, has_size, has_start; + int error, has_size, has_start, has_alignment; s = gctl_get_ascii(req, "verb"); if (strcmp(s, "resize") == 0) @@ -442,6 +466,20 @@ gpart_autofill(struct gctl_req *req) if (pp == NULL) errx(EXIT_FAILURE, "Provider for geom %s not found.", s); + s = gctl_get_ascii(req, "alignment"); + has_alignment = (*s == '*') ? 0 : 1; + alignment = 1; + if (has_alignment) { + error = g_parse_lba(s, pp->lg_sectorsize, &alignment); + if (error) + errc(EXIT_FAILURE, error, "Invalid alignment param"); + if (alignment == 0) + errx(EXIT_FAILURE, "Invalid alignment param"); + } + error = gctl_delete_param(req, "alignment"); + if (error) + errc(EXIT_FAILURE, error, "internal error"); + s = gctl_get_ascii(req, "size"); has_size = (*s == '*') ? 0 : 1; size = 0; @@ -449,6 +487,8 @@ gpart_autofill(struct gctl_req *req) error = g_parse_lba(s, pp->lg_sectorsize, &size); if (error) errc(EXIT_FAILURE, error, "Invalid size param"); + if (size > alignment) + size = ALIGNDOWN(size, alignment); } s = gctl_get_ascii(req, "start"); @@ -458,15 +498,18 @@ gpart_autofill(struct gctl_req *req) error = g_parse_lba(s, pp->lg_sectorsize, &start); if (error) errc(EXIT_FAILURE, error, "Invalid start param"); + start = ALIGNUP(start, alignment); } /* No autofill necessary. */ - if (has_size && has_start) + if (has_size && has_start && !has_alignment) goto done; first = (off_t)strtoimax(find_geomcfg(gp, "first"), NULL, 0); last = (off_t)strtoimax(find_geomcfg(gp, "last"), NULL, 0); grade = ~0ULL; + a_first = ALIGNUP(first, alignment); + last = ALIGNDOWN(last, alignment); while ((pp = find_provider(gp, first)) != NULL) { s = find_provcfg(pp, "start"); if (s == NULL) { @@ -475,23 +518,24 @@ gpart_autofill(struct gctl_req *req) } else lba = (off_t)strtoimax(s, NULL, 0); - if (first < lba) { + a_lba = ALIGNDOWN(lba, alignment); + if (first < a_lba && a_first < a_lba) { /* Free space [first, lba> */ - len = lba - first; + len = a_lba - a_first; if (has_size) { if (len >= size && (uintmax_t)(len - size) < grade) { - start = first; + start = a_first; grade = len - size; } } else if (has_start) { - if (start >= first && start < lba) { - size = lba - start; - grade = start - first; + if (start >= a_first && start < a_lba) { + size = a_lba - start; + grade = start - a_first; } } else { if (grade == ~0ULL || len > size) { - start = first; + start = a_first; size = len; grade = 0; } @@ -505,24 +549,25 @@ gpart_autofill(struct gctl_req *req) (off_t)strtoimax(s, NULL, 0) / pp->lg_sectorsize; } else first = (off_t)strtoimax(s, NULL, 0) + 1; + a_first = ALIGNUP(first, alignment); } - if (first <= last) { + if (a_first <= last) { /* Free space [first-last] */ - len = last - first + 1; + len = ALIGNDOWN(last - a_first + 1, alignment); if (has_size) { if (len >= size && (uintmax_t)(len - size) < grade) { - start = first; + start = a_first; grade = len - size; } } else if (has_start) { - if (start >= first && start <= last) { - size = last - start + 1; - grade = start - first; + if (start >= a_first && start <= last) { + size = ALIGNDOWN(last - start + 1, alignment); + grade = start - a_first; } } else { if (grade == ~0ULL || len > size) { - start = first; + start = a_first; size = len; grade = 0; } Modified: head/sbin/geom/class/part/gpart.8 ============================================================================== --- head/sbin/geom/class/part/gpart.8 Tue May 3 07:32:58 2011 (r221362) +++ head/sbin/geom/class/part/gpart.8 Tue May 3 07:33:39 2011 (r221363) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 12, 2011 +.Dd May 03, 2011 .Dt GPART 8 .Os .Sh NAME @@ -91,6 +91,7 @@ utility: .Nm .Cm add .Fl t Ar type +.Op Fl a Ar alignment .Op Fl b Ar start .Op Fl s Ar size .Op Fl i Ar index @@ -148,6 +149,7 @@ utility: .Nm .Cm resize .Fl i Ar index +.Op Fl a Ar alignment .Op Fl s Ar size .Op Fl f Ar flags .Ar geom @@ -209,7 +211,17 @@ Partition types are discussed below in t .Sx "PARTITION TYPES" . .Pp Additional options include: -.Bl -tag -width 10n +.Bl -tag -width 12n +.It Fl a Ar alignment +If specified, then +.Nm +utility tries to align +.Ar start +offset and partition +.Ar size +to be multiple of +.Ar alignment +value. .It Fl i Ar index The index in the partition table at which the new partition is to be placed. @@ -416,7 +428,15 @@ to maximum available from given geom .Ar geom . .Pp Additional options include: -.Bl -tag -width 10n +.Bl -tag -width 12n +.It Fl a Ar alignment +If specified, then +.Nm +utility tries to align partition +.Ar size +to be multiple of +.Ar alignment +value. .It Fl f Ar flags Additional operational flags. See the section entitled @@ -834,6 +854,13 @@ partition that would contain UFS where t /sbin/gpart add -s 512M -t freebsd-ufs da0 .Ed .Pp +Create a 15GB-sized +.Cm freebsd-ufs +partition that would contain UFS and aligned on 4KB boundaries: +.Bd -literal -offset indent +/sbin/gpart add -s 15G -t freebsd-ufs -a 4k da0 +.Ed +.Pp After having created all required partitions, embed bootstrap code into them. .Bd -literal -offset indent /sbin/gpart bootcode -p /boot/boot1 da0 From owner-svn-src-head@FreeBSD.ORG Tue May 3 07:39:55 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F502106564A; Tue, 3 May 2011 07:39:55 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F26458FC17; Tue, 3 May 2011 07:39:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p437dscp075223; Tue, 3 May 2011 07:39:54 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p437dsud075220; Tue, 3 May 2011 07:39:54 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <201105030739.p437dsud075220@svn.freebsd.org> From: Craig Rodrigues Date: Tue, 3 May 2011 07:39:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221364 - head/lib/libstand X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 07:39:55 -0000 Author: rodrigc Date: Tue May 3 07:39:54 2011 New Revision: 221364 URL: http://svn.freebsd.org/changeset/base/221364 Log: Add #include for missing forward declation of struct inpcb. Modified: head/lib/libstand/net.c head/lib/libstand/udp.c Modified: head/lib/libstand/net.c ============================================================================== --- head/lib/libstand/net.c Tue May 3 07:33:39 2011 (r221363) +++ head/lib/libstand/net.c Tue May 3 07:39:54 2011 (r221364) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include Modified: head/lib/libstand/udp.c ============================================================================== --- head/lib/libstand/udp.c Tue May 3 07:33:39 2011 (r221363) +++ head/lib/libstand/udp.c Tue May 3 07:39:54 2011 (r221364) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include From owner-svn-src-head@FreeBSD.ORG Tue May 3 07:43:47 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8FFAE106566B; Tue, 3 May 2011 07:43:47 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7EAF78FC1C; Tue, 3 May 2011 07:43:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p437hlSu075370; Tue, 3 May 2011 07:43:47 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p437hl8M075368; Tue, 3 May 2011 07:43:47 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <201105030743.p437hl8M075368@svn.freebsd.org> From: Craig Rodrigues Date: Tue, 3 May 2011 07:43:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221365 - head/lib/libstand X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 07:43:47 -0000 Author: rodrigc Date: Tue May 3 07:43:47 2011 New Revision: 221365 URL: http://svn.freebsd.org/changeset/base/221365 Log: - Comment out unused variable. - Add parentheses around expression to eliminate compiler warning. Modified: head/lib/libstand/dosfs.c Modified: head/lib/libstand/dosfs.c ============================================================================== --- head/lib/libstand/dosfs.c Tue May 3 07:39:54 2011 (r221364) +++ head/lib/libstand/dosfs.c Tue May 3 07:43:47 2011 (r221365) @@ -358,7 +358,7 @@ dos_stat(struct open_file *fd, struct st static int dos_readdir(struct open_file *fd, struct dirent *d) { - DOS_FILE *f = (DOS_FILE *)fd->f_fsdata; + /* DOS_FILE *f = (DOS_FILE *)fd->f_fsdata; */ u_char fn[261]; DOS_DIR dd; size_t res; @@ -414,7 +414,7 @@ dos_readdir(struct open_file *fd, struct } } - d->d_fileno = dd.de.clus[1] << 8 + dd.de.clus[0]; + d->d_fileno = (dd.de.clus[1] << 8) + dd.de.clus[0]; d->d_reclen = sizeof(*d); d->d_type = (dd.de.attr & FA_DIR) ? DT_DIR : DT_REG; memcpy(d->d_name, fn, sizeof(d->d_name)); From owner-svn-src-head@FreeBSD.ORG Tue May 3 07:46:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D267106566C; Tue, 3 May 2011 07:46:02 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8BB8D8FC14; Tue, 3 May 2011 07:46:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p437k2tj075485; Tue, 3 May 2011 07:46:02 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p437k2ve075483; Tue, 3 May 2011 07:46:02 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <201105030746.p437k2ve075483@svn.freebsd.org> From: Craig Rodrigues Date: Tue, 3 May 2011 07:46:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221366 - head/lib/libstand X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 07:46:02 -0000 Author: rodrigc Date: Tue May 3 07:46:02 2011 New Revision: 221366 URL: http://svn.freebsd.org/changeset/base/221366 Log: Rename DEBUG macro to TFTP_DEBUG, to be more consistent with debug macros in other files. Modified: head/lib/libstand/tftp.c Modified: head/lib/libstand/tftp.c ============================================================================== --- head/lib/libstand/tftp.c Tue May 3 07:43:47 2011 (r221365) +++ head/lib/libstand/tftp.c Tue May 3 07:46:02 2011 (r221366) @@ -148,14 +148,14 @@ recvtftp(struct iodesc *d, void *pkt, ss printf("illegal tftp error %d\n", ntohs(t->th_code)); errno = EIO; } else { -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp-error %d\n", ntohs(t->th_code)); #endif errno = tftperrors[ntohs(t->th_code)]; } return (-1); default: -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp type %d not handled\n", ntohs(t->th_opcode)); #endif return (-1); @@ -303,7 +303,7 @@ tftp_read(struct open_file *f, void *add res = tftp_getnextblock(tftpfile); if (res) { /* no answer */ -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp: read error\n"); #endif return (res); @@ -319,7 +319,7 @@ tftp_read(struct open_file *f, void *add inbuffer = tftpfile->validsize - offinblock; if (inbuffer < 0) { -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp: invalid offset %d\n", tftpfile->off); #endif @@ -336,7 +336,7 @@ tftp_read(struct open_file *f, void *add if ((tftpfile->islastblock) && (count == inbuffer)) break; /* EOF */ } else { -#ifdef DEBUG +#ifdef TFTP_DEBUG printf("tftp: block %d not found\n", needblock); #endif return (EINVAL); From owner-svn-src-head@FreeBSD.ORG Tue May 3 10:08:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 41111106566C; Tue, 3 May 2011 10:08:12 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2CAB88FC13; Tue, 3 May 2011 10:08:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43A8CGI079953; Tue, 3 May 2011 10:08:12 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43A8CPF079951; Tue, 3 May 2011 10:08:12 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105031008.p43A8CPF079951@svn.freebsd.org> From: Ruslan Ermilov Date: Tue, 3 May 2011 10:08:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221372 - head/bin/stty X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 10:08:12 -0000 Author: ru Date: Tue May 3 10:08:11 2011 New Revision: 221372 URL: http://svn.freebsd.org/changeset/base/221372 Log: Don't call -f option's argument "stdin". MFC after: 3 days Modified: head/bin/stty/stty.c Modified: head/bin/stty/stty.c ============================================================================== --- head/bin/stty/stty.c Tue May 3 10:01:08 2011 (r221371) +++ head/bin/stty/stty.c Tue May 3 10:08:11 2011 (r221372) @@ -61,9 +61,11 @@ main(int argc, char *argv[]) struct info i; enum FMT fmt; int ch; + const char *file; fmt = NOTSET; i.fd = STDIN_FILENO; + file = "stdin"; opterr = 0; while (optind < argc && @@ -79,6 +81,7 @@ main(int argc, char *argv[]) case 'f': if ((i.fd = open(optarg, O_RDONLY | O_NONBLOCK)) < 0) err(1, "%s", optarg); + file = optarg; break; case 'g': fmt = GFLAG; @@ -92,7 +95,7 @@ args: argc -= optind; argv += optind; if (tcgetattr(i.fd, &i.t) < 0) - errx(1, "stdin isn't a terminal"); + errx(1, "%s isn't a terminal", file); if (ioctl(i.fd, TIOCGETD, &i.ldisc) < 0) err(1, "TIOCGETD"); if (ioctl(i.fd, TIOCGWINSZ, &i.win) < 0) From owner-svn-src-head@FreeBSD.ORG Tue May 3 10:11:45 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 44B1B106566B; Tue, 3 May 2011 10:11:45 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3048B8FC19; Tue, 3 May 2011 10:11:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43ABjII080104; Tue, 3 May 2011 10:11:45 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43ABjcm080102; Tue, 3 May 2011 10:11:45 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105031011.p43ABjcm080102@svn.freebsd.org> From: Ruslan Ermilov Date: Tue, 3 May 2011 10:11:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221373 - head/contrib/bsnmp/snmp_mibII X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 10:11:45 -0000 Author: ru Date: Tue May 3 10:11:44 2011 New Revision: 221373 URL: http://svn.freebsd.org/changeset/base/221373 Log: Properly detect interface's state in the LINK_STATE_UNKNOWN case. MFC after: 1 week Modified: head/contrib/bsnmp/snmp_mibII/mibII_interfaces.c Modified: head/contrib/bsnmp/snmp_mibII/mibII_interfaces.c ============================================================================== --- head/contrib/bsnmp/snmp_mibII/mibII_interfaces.c Tue May 3 10:08:11 2011 (r221372) +++ head/contrib/bsnmp/snmp_mibII/mibII_interfaces.c Tue May 3 10:11:44 2011 (r221373) @@ -289,8 +289,7 @@ op_ifentry(struct snmp_context *ctx, str * cable) and hence return 'dormant'. */ if (ifp->mib.ifmd_flags & IFF_RUNNING) { - if (ifp->mib.ifmd_data.ifi_link_state == - LINK_STATE_DOWN) + if (ifp->mib.ifmd_data.ifi_link_state != LINK_STATE_UP) value->v.integer = 5; /* state dormant */ else value->v.integer = 1; /* state up */ From owner-svn-src-head@FreeBSD.ORG Tue May 3 10:18:28 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3FEBE106567D; Tue, 3 May 2011 10:18:28 +0000 (UTC) (envelope-from dfr@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2BE138FC29; Tue, 3 May 2011 10:18:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43AISJH080337; Tue, 3 May 2011 10:18:28 GMT (envelope-from dfr@svn.freebsd.org) Received: (from dfr@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43AISvQ080335; Tue, 3 May 2011 10:18:28 GMT (envelope-from dfr@svn.freebsd.org) Message-Id: <201105031018.p43AISvQ080335@svn.freebsd.org> From: Doug Rabson Date: Tue, 3 May 2011 10:18:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221374 - head/usr.bin/login X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 10:18:28 -0000 Author: dfr Date: Tue May 3 10:18:27 2011 New Revision: 221374 URL: http://svn.freebsd.org/changeset/base/221374 Log: Call pam_setcred() before login_getpwclass to support home directories on GSS-API authenticated NFS where the kerberos credentials need to be saved so that the kernel can authenticate to the NFS server. Modified: head/usr.bin/login/login.c Modified: head/usr.bin/login/login.c ============================================================================== --- head/usr.bin/login/login.c Tue May 3 10:11:44 2011 (r221373) +++ head/usr.bin/login/login.c Tue May 3 10:18:27 2011 (r221374) @@ -380,6 +380,19 @@ main(int argc, char *argv[]) au_login_success(); #endif + /* + * This needs to happen before login_getpwclass to support + * home directories on GSS-API authenticated NFS where the + * kerberos credentials need to be saved so that the kernel + * can authenticate to the NFS server. + */ + pam_err = pam_setcred(pamh, pam_silent|PAM_ESTABLISH_CRED); + if (pam_err != PAM_SUCCESS) { + pam_syslog("pam_setcred()"); + bail(NO_SLEEP_EXIT, 1); + } + pam_cred_established = 1; + /* * Establish the login class. */ @@ -513,12 +526,11 @@ main(int argc, char *argv[]) bail(NO_SLEEP_EXIT, 1); } - pam_err = pam_setcred(pamh, pam_silent|PAM_ESTABLISH_CRED); + pam_err = pam_setcred(pamh, pam_silent|PAM_REINITIALIZE_CRED); if (pam_err != PAM_SUCCESS) { pam_syslog("pam_setcred()"); bail(NO_SLEEP_EXIT, 1); } - pam_cred_established = 1; pam_err = pam_open_session(pamh, pam_silent); if (pam_err != PAM_SUCCESS) { From owner-svn-src-head@FreeBSD.ORG Tue May 3 11:47:20 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25A0B106566B; Tue, 3 May 2011 11:47:20 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1050A8FC15; Tue, 3 May 2011 11:47:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43BlJHx091851; Tue, 3 May 2011 11:47:19 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43BlJjR091843; Tue, 3 May 2011 11:47:19 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105031147.p43BlJjR091843@svn.freebsd.org> From: Ruslan Ermilov Date: Tue, 3 May 2011 11:47:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221381 - head/contrib/one-true-awk X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 11:47:20 -0000 Author: ru Date: Tue May 3 11:47:19 2011 New Revision: 221381 URL: http://svn.freebsd.org/changeset/base/221381 Log: Update to a 1-May-2011 release (except for the isblank change). Modified: head/contrib/one-true-awk/FIXES head/contrib/one-true-awk/README head/contrib/one-true-awk/b.c head/contrib/one-true-awk/lib.c head/contrib/one-true-awk/main.c head/contrib/one-true-awk/makefile head/contrib/one-true-awk/run.c Directory Properties: head/contrib/one-true-awk/ (props changed) Modified: head/contrib/one-true-awk/FIXES ============================================================================== --- head/contrib/one-true-awk/FIXES Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/FIXES Tue May 3 11:47:19 2011 (r221381) @@ -25,6 +25,32 @@ THIS SOFTWARE. This file lists all bug fixes, changes, etc., made since the AWK book was sent to the printers in August, 1987. +May 1, 2011: + after advice from todd miller, kevin lo, ruslan ermilov, + and arnold robbins, changed srand() to return the previous + seed (which is 1 on the first call of srand). the seed is + an Awkfloat internally though converted to unsigned int to + pass to the library srand(). thanks, everyone. + + fixed a subtle (and i hope low-probability) overflow error + in fldbld, by adding space for one extra \0. thanks to + robert bassett for spotting this one and providing a fix. + + removed the files related to compilation on windows. i no + longer have anything like a current windows environment, so + i can't test any of it. + +May 23, 2010: + fixed long-standing overflow bug in run.c; many thanks to + nelson beebe for spotting it and providing the fix. + + fixed bug that didn't parse -vd=1 properly; thanks to santiago + vila for spotting it. + +Feb 8, 2010: + i give up. replaced isblank with isspace in b.c; there are + no consistent header files. + Nov 26, 2009: fixed a long-standing issue with when FS takes effect. a change to FS is now noticed immediately for subsequent splits. Modified: head/contrib/one-true-awk/README ============================================================================== --- head/contrib/one-true-awk/README Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/README Tue May 3 11:47:19 2011 (r221381) @@ -29,7 +29,7 @@ by Al Aho, Brian Kernighan, and Peter We Changes, mostly bug fixes and occasional enhancements, are listed in FIXES. If you distribute this code further, please please please distribute FIXES with it. If you find errors, please report them -to bwk@bell-labs.com. Thanks. +to bwk@cs.princeton.edu. Thanks. The program itself is created by make Modified: head/contrib/one-true-awk/b.c ============================================================================== --- head/contrib/one-true-awk/b.c Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/b.c Tue May 3 11:47:19 2011 (r221381) @@ -752,7 +752,7 @@ Node *unary(Node *np) /* #define HAS_ISBLANK */ #ifndef HAS_ISBLANK -int (isblank)(int c) +int (xisblank)(int c) { return c==' ' || c=='\t'; } @@ -766,7 +766,11 @@ struct charclass { } charclasses[] = { { "alnum", 5, isalnum }, { "alpha", 5, isalpha }, +#ifndef HAS_ISBLANK + { "blank", 5, isspace }, /* was isblank */ +#else { "blank", 5, isblank }, +#endif { "cntrl", 5, iscntrl }, { "digit", 5, isdigit }, { "graph", 5, isgraph }, Modified: head/contrib/one-true-awk/lib.c ============================================================================== --- head/contrib/one-true-awk/lib.c Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/lib.c Tue May 3 11:47:19 2011 (r221381) @@ -256,6 +256,7 @@ void fldbld(void) /* create fields from { /* this relies on having fields[] the same length as $0 */ /* the fields are all stored in this one array with \0's */ + /* possibly with a final trailing \0 not associated with any field */ char *r, *fr, sep; Cell *p; int i, j, n; @@ -268,7 +269,7 @@ void fldbld(void) /* create fields from n = strlen(r); if (n > fieldssize) { xfree(fields); - if ((fields = (char *) malloc(n+1)) == NULL) + if ((fields = (char *) malloc(n+2)) == NULL) /* possibly 2 final \0s */ FATAL("out of space for fields in fldbld %d", n); fieldssize = n; } Modified: head/contrib/one-true-awk/main.c ============================================================================== --- head/contrib/one-true-awk/main.c Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/main.c Tue May 3 11:47:19 2011 (r221381) @@ -25,7 +25,7 @@ THIS SOFTWARE. #include __FBSDID("$FreeBSD$"); -const char *version = "version 20091126 (FreeBSD)"; +const char *version = "version 20110501 (FreeBSD)"; #define DEBUG #include @@ -41,6 +41,7 @@ extern char **environ; extern int nfields; int dbg = 0; +Awkfloat srand_seed = 1; char *cmdname; /* gets argv[0] for error messages */ extern FILE *yyin; /* lex input file */ char *lexprog; /* points to program argument if it exists */ @@ -71,6 +72,10 @@ int main(int argc, char *argv[]) exit(1); } signal(SIGFPE, fpecatch); + + srand_seed = 1; + srand(srand_seed); + yyin = NULL; symtab = makesymtab(NSYMTAB/NSYMTAB); while (argc > 1 && argv[1][0] == '-' && argv[1][1] != '\0') { @@ -120,14 +125,10 @@ int main(int argc, char *argv[]) WARNING("field separator FS is empty"); break; case 'v': /* -v a=1 to be done NOW. one -v for each */ - if (argv[1][2] != 0) { /* arg is -vsomething */ - if (argv[1][2] != 0) - setclvar(&argv[1][2]); - } else { /* arg is -v something */ - argc--; argv++; - if (argc > 1 && isclvar(argv[1])) - setclvar(argv[1]); - } + if (argv[1][2] == '\0' && --argc > 1 && isclvar((++argv)[1])) + setclvar(argv[1]); + else if (argv[1][2] != '\0') + setclvar(&argv[1][2]); break; case 'd': dbg = atoi(&argv[1][2]); Modified: head/contrib/one-true-awk/makefile ============================================================================== --- head/contrib/one-true-awk/makefile Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/makefile Tue May 3 11:47:19 2011 (r221381) @@ -26,13 +26,12 @@ CFLAGS = -g CFLAGS = -O2 CFLAGS = -CC = gcc -Wall -g -Wwrite-strings -CC = gcc -fprofile-arcs -ftest-coverage # then gcov f1.c; cat f1.c.gcov CC = gcc -Wall -g CC = cc +CC = gcc -Wall -g -Wwrite-strings +CC = gcc -fprofile-arcs -ftest-coverage # then gcov f1.c; cat f1.c.gcov CC = gcc -O4 - YACC = bison -y YACC = yacc YFLAGS = -d @@ -40,13 +39,13 @@ YFLAGS = -d OFILES = b.o main.o parse.o proctab.o tran.o lib.o run.o lex.o SOURCE = awk.h ytab.c ytab.h proto.h awkgram.y lex.c b.c main.c \ - maketab.c parse.c lib.c run.c tran.c proctab.c missing95.c + maketab.c parse.c lib.c run.c tran.c proctab.c LISTING = awk.h proto.h awkgram.y lex.c b.c main.c maketab.c parse.c \ - lib.c run.c tran.c missing95.c + lib.c run.c tran.c -SHIP = README FIXES $(SOURCE) ytab[ch].bak makefile makefile.win \ - vcvars32.bat buildwin.bat awk.1 +SHIP = README FIXES $(SOURCE) ytab[ch].bak makefile \ + awk.1 a.out: ytab.o $(OFILES) $(CC) $(CFLAGS) ytab.o $(OFILES) $(ALLOC) -lm Modified: head/contrib/one-true-awk/run.c ============================================================================== --- head/contrib/one-true-awk/run.c Tue May 3 11:39:00 2011 (r221380) +++ head/contrib/one-true-awk/run.c Tue May 3 11:47:19 2011 (r221381) @@ -69,6 +69,7 @@ void tempfree(Cell *p) { jmp_buf env; extern int pairstack[]; +extern Awkfloat srand_seed; Node *winner = NULL; /* root of parse tree */ Cell *tmps; /* free temporary cells for execution */ @@ -1469,6 +1470,7 @@ Cell *bltin(Node **a, int n) /* builtin Cell *x, *y; Awkfloat u; int t; + Awkfloat tmp; char *p, *buf; Node *nextarg; FILE *fp; @@ -1520,7 +1522,10 @@ Cell *bltin(Node **a, int n) /* builtin u = time((time_t *)0); else u = getfval(x); + tmp = u; srand((unsigned int) u); + u = srand_seed; + srand_seed = tmp; break; case FTOUPPER: case FTOLOWER: @@ -1890,9 +1895,10 @@ Cell *gsub(Node **a, int nnn) /* global adjbuf(&buf, &bufsz, 1+strlen(sptr)+pb-buf, 0, &pb, "gsub"); while ((*pb++ = *sptr++) != 0) ; - done: if (pb > buf + bufsz) - FATAL("gsub result2 %.30s too big; can't happen", buf); - *pb = '\0'; + done: if (pb < buf + bufsz) + *pb = '\0'; + else if (*(pb-1) != '\0') + FATAL("gsub result2 %.30s truncated; can't happen", buf); setsval(x, buf); /* BUG: should be able to avoid copy + free */ pfa->initstat = tempstat; } From owner-svn-src-head@FreeBSD.ORG Tue May 3 12:21:08 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E25C4106579F; Tue, 3 May 2011 12:21:08 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id B585F8FC15; Tue, 3 May 2011 12:21:08 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 5AC8B46B52; Tue, 3 May 2011 08:21:08 -0400 (EDT) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id E9DAB8A027; Tue, 3 May 2011 08:21:07 -0400 (EDT) From: John Baldwin To: Craig Rodrigues Date: Tue, 3 May 2011 07:50:44 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110325; KDE/4.5.5; amd64; ; ) References: <201105030743.p437hl8M075368@svn.freebsd.org> In-Reply-To: <201105030743.p437hl8M075368@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201105030750.44240.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.6 (bigwig.baldwin.cx); Tue, 03 May 2011 08:21:08 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221365 - head/lib/libstand X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 12:21:09 -0000 On Tuesday, May 03, 2011 3:43:47 am Craig Rodrigues wrote: > Author: rodrigc > Date: Tue May 3 07:43:47 2011 > New Revision: 221365 > URL: http://svn.freebsd.org/changeset/base/221365 > > Log: > - Comment out unused variable. > - Add parentheses around expression to eliminate compiler warning. > > Modified: > head/lib/libstand/dosfs.c > > Modified: head/lib/libstand/dosfs.c > ============================================================================== > --- head/lib/libstand/dosfs.c Tue May 3 07:39:54 2011 (r221364) > +++ head/lib/libstand/dosfs.c Tue May 3 07:43:47 2011 (r221365) > @@ -358,7 +358,7 @@ dos_stat(struct open_file *fd, struct st > static int > dos_readdir(struct open_file *fd, struct dirent *d) > { > - DOS_FILE *f = (DOS_FILE *)fd->f_fsdata; > + /* DOS_FILE *f = (DOS_FILE *)fd->f_fsdata; */ Err, wouldn't it be better to just remove it if it is unused? -- John Baldwin From owner-svn-src-head@FreeBSD.ORG Tue May 3 12:22:46 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 946C01065677; Tue, 3 May 2011 12:22:46 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 801118FC08; Tue, 3 May 2011 12:22:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43CMkBp092964; Tue, 3 May 2011 12:22:46 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43CMkUb092962; Tue, 3 May 2011 12:22:46 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105031222.p43CMkUb092962@svn.freebsd.org> From: Ruslan Ermilov Date: Tue, 3 May 2011 12:22:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221382 - head/etc X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 12:22:46 -0000 Author: ru Date: Tue May 3 12:22:46 2011 New Revision: 221382 URL: http://svn.freebsd.org/changeset/base/221382 Log: Updated `flags' field description. Modified: head/etc/newsyslog.conf Modified: head/etc/newsyslog.conf ============================================================================== --- head/etc/newsyslog.conf Tue May 3 11:47:19 2011 (r221381) +++ head/etc/newsyslog.conf Tue May 3 12:22:46 2011 (r221382) @@ -8,7 +8,7 @@ # is no process which needs to be signalled when a given log file is # rotated, then the entry for that file should include the 'N' flag. # -# The 'flags' field is one or more of the letters: BCGJNUWZ or a '-'. +# The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'. # # Note: some sites will want to select more restrictive protections than the # defaults. In particular, it may be desirable to switch many of the 644 From owner-svn-src-head@FreeBSD.ORG Tue May 3 12:29:04 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25CF6106566C; Tue, 3 May 2011 12:29:04 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 056CA8FC08; Tue, 3 May 2011 12:29:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43CT370093193; Tue, 3 May 2011 12:29:03 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43CT3Yk093191; Tue, 3 May 2011 12:29:03 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105031229.p43CT3Yk093191@svn.freebsd.org> From: Ruslan Ermilov Date: Tue, 3 May 2011 12:29:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221383 - head/usr.bin/calendar/calendars X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 12:29:04 -0000 Author: ru Date: Tue May 3 12:29:03 2011 New Revision: 221383 URL: http://svn.freebsd.org/changeset/base/221383 Log: Fixed bad format and misorder. Modified: head/usr.bin/calendar/calendars/calendar.freebsd Modified: head/usr.bin/calendar/calendars/calendar.freebsd ============================================================================== --- head/usr.bin/calendar/calendars/calendar.freebsd Tue May 3 12:22:46 2011 (r221382) +++ head/usr.bin/calendar/calendars/calendar.freebsd Tue May 3 12:29:03 2011 (r221383) @@ -45,8 +45,8 @@ 02/01 Juli Mallett born in Washington, Pennsylvania, United States, 1985 02/02 Diomidis D. Spinellis born in Athens, Greece, 1967 02/02 Michael W Lucas born in Detroit, Michigan, United States, 1967 -02/02 Yoichi Nakayama born in Tsu, Mie, Japan, 1976 02/02 Dmitry Chagin born in Stalingrad, USSR, 1976 +02/02 Yoichi Nakayama born in Tsu, Mie, Japan, 1976 02/05 Frank Laszlo born in Howell, Michigan, United States, 1983 02/10 David Greenman born in Portland, Oregon, United States, 1968 02/10 Paul Richards born in Ammanford, Carmarthenshire, United Kingdom, 1968 @@ -68,7 +68,6 @@ 02/24 Johan Karlsson born in Mariannelund, Sweden, 1974 02/24 Colin Percival born in Burnaby, Canada, 1981 02/26 Pietro Cerutti born in Faido, Switzerland, 1984 -05/19 Sofian Brabez born in Toulouse, France, 1984 02/28 Daichi GOTO born in Shimizu Suntou, Shizuoka, Japan, 1980 03/01 Hye-Shik Chang born in Daejeon, Republic of Korea, 1980 03/02 Cy Schubert born in Edmonton, Alberta, Canada, 1956 @@ -151,7 +150,8 @@ 05/17 Thomas Abthorpe born in Port Arthur, Ontario, Canada, 1968 05/19 Philippe Charnier born in Fontainebleau, France, 1966 05/19 Ian Dowse born in Dublin, Ireland, 1975 -05/20 Dan Moschuk died in Burlington, Ontario, Canada, 2010 +05/19 Sofian Brabez born in Toulouse, France, 1984 +05/20 Dan Moschuk died in Burlington, Ontario, Canada, 2010 05/21 Kris Kennaway born in Winnipeg, Manitoba, Canada, 1978 05/22 Clive Tong-I Lin born in Changhua, Taiwan, Republic of China, 1978 05/22 Michael Bushkov born in Rostov-on-Don, Russian Federation, 1985 @@ -175,7 +175,7 @@ 06/04 Justin Gibbs born in San Pedro, California, United States, 1973 06/04 Jason Evans born in Greeley, Colorado, United States, 1973 06/04 Thomas Moestl born in Braunschweig, Niedersachsen, Germany, 1980 -06/04 Zack Kirsch born in Memphis, Tennessee, United States, 1982 +06/04 Zack Kirsch born in Memphis, Tennessee, United States, 1982 06/06 Sergei Kolobov born in Karpinsk, Russian Federation, 1972 06/06 Alan Eldridge died in Denver, Colorado, 2003 06/07 Jimmy Olgeni born in Milano, Italy, 1976 From owner-svn-src-head@FreeBSD.ORG Tue May 3 13:16:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6693106566B; Tue, 3 May 2011 13:16:02 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C2AE68FC0C; Tue, 3 May 2011 13:16:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43DG2xK094666; Tue, 3 May 2011 13:16:02 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43DG21G094664; Tue, 3 May 2011 13:16:02 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201105031316.p43DG21G094664@svn.freebsd.org> From: Alexander Motin Date: Tue, 3 May 2011 13:16:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221384 - head/sys/cam X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 13:16:02 -0000 Author: mav Date: Tue May 3 13:16:02 2011 New Revision: 221384 URL: http://svn.freebsd.org/changeset/base/221384 Log: Do not report legacy unit numbers (do not create legacy aliases) for disks on port multiplier ports above first two. They don't fit into ATA_STATIC_ID scheme and so can't be mapped properly. No need to pollute dev. Modified: head/sys/cam/cam_xpt.c Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Tue May 3 12:29:03 2011 (r221383) +++ head/sys/cam/cam_xpt.c Tue May 3 13:16:02 2011 (r221384) @@ -3600,9 +3600,12 @@ xpt_path_legacy_ata_id(struct cam_path * } xpt_unlock_buses(); } - if (path->target != NULL) - return (bus_id * 2 + path->target->target_id); - else + if (path->target != NULL) { + if (path->target->target_id < 2) + return (bus_id * 2 + path->target->target_id); + else + return (-1); + } else return (bus_id * 2); } From owner-svn-src-head@FreeBSD.ORG Tue May 3 13:34:40 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D65A3106566B; Tue, 3 May 2011 13:34:40 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C2C3F8FC13; Tue, 3 May 2011 13:34:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43DYeIl095250; Tue, 3 May 2011 13:34:40 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43DYevk095248; Tue, 3 May 2011 13:34:40 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105031334.p43DYevk095248@svn.freebsd.org> From: Ruslan Ermilov Date: Tue, 3 May 2011 13:34:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221385 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 13:34:40 -0000 Author: ru Date: Tue May 3 13:34:40 2011 New Revision: 221385 URL: http://svn.freebsd.org/changeset/base/221385 Log: Fixed the HISTORY section which was copied without editing from aio(4). Submitted by: Igor Sysoev Modified: head/share/man/man4/sem.4 Modified: head/share/man/man4/sem.4 ============================================================================== --- head/share/man/man4/sem.4 Tue May 3 13:16:02 2011 (r221384) +++ head/share/man/man4/sem.4 Tue May 3 13:34:40 2011 (r221385) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 11, 2006 +.Dd May 3, 2011 .Dt SEM 4 .Os .Sh NAME @@ -73,9 +73,5 @@ dynamic kernel module. .Sh HISTORY The .Nm -facility appeared as a kernel option in -.Fx 3.0 . -The -.Nm -kernel module appeared in +facility appeared in .Fx 5.0 . From owner-svn-src-head@FreeBSD.ORG Tue May 3 14:16:04 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1A66106566C; Tue, 3 May 2011 14:16:04 +0000 (UTC) (envelope-from rdivacky@vlakno.cz) Received: from vlakno.cz (lev.vlakno.cz [46.28.110.116]) by mx1.freebsd.org (Postfix) with ESMTP id 909F38FC0C; Tue, 3 May 2011 14:16:04 +0000 (UTC) Received: by vlakno.cz (Postfix, from userid 1002) id 9E41E7F3A8B; Tue, 3 May 2011 15:39:27 +0200 (CEST) Date: Tue, 3 May 2011 15:39:27 +0200 From: Roman Divacky To: Dimitry Andric Message-ID: <20110503133927.GA41839@freebsd.org> References: <201105022113.p42LD8TH055002@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201105022113.p42LD8TH055002@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221348 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 14:16:04 -0000 With the recent libobjc removal this means that we can compile all (no exceptions) of FreeBSD/{i386,amd64} with clang. Quite a milestone in my opinion :) On Mon, May 02, 2011 at 09:13:08PM +0000, Dimitry Andric wrote: > Author: dim > Date: Mon May 2 21:13:08 2011 > New Revision: 221348 > URL: http://svn.freebsd.org/changeset/base/221348 > > Log: > Clang r130700 can now compile sys/boot/i386/boot2 with room to spare. > > Modified: > head/sys/boot/i386/boot2/Makefile > > Modified: head/sys/boot/i386/boot2/Makefile > ============================================================================== > --- head/sys/boot/i386/boot2/Makefile Mon May 2 21:10:13 2011 (r221347) > +++ head/sys/boot/i386/boot2/Makefile Mon May 2 21:13:08 2011 (r221348) > @@ -2,9 +2,6 @@ > > .include > > -# XXX: clang can compile the boot code just fine, but boot2 gets too big > -CC:=${CC:C/^(.*\/)?clang$/gcc/1} > - > FILES= boot boot1 boot2 > > NM?= nm > @@ -45,6 +42,12 @@ CFLAGS= -Os \ > -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ > -Winline --param max-inline-insns-single=100 > > +.if ${CC:T:Mclang} == "clang" > +CFLAGS+= -mllvm -stack-alignment=8 -mllvm -inline-threshold=3 > +# XXX: clang integrated-as doesn't grok .codeNN directives yet > +CFLAGS+= ${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/} > +.endif > + > LDFLAGS=-static -N --gc-sections > > # Pick up ../Makefile.inc early. From owner-svn-src-head@FreeBSD.ORG Tue May 3 14:43:16 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 693671065690; Tue, 3 May 2011 14:43:16 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 562588FC20; Tue, 3 May 2011 14:43:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43EhGRo097952; Tue, 3 May 2011 14:43:16 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43EhGhj097950; Tue, 3 May 2011 14:43:16 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105031443.p43EhGhj097950@svn.freebsd.org> From: Dimitry Andric Date: Tue, 3 May 2011 14:43:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221386 - head/contrib/texinfo/makeinfo X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 14:43:16 -0000 Author: dim Date: Tue May 3 14:43:16 2011 New Revision: 221386 URL: http://svn.freebsd.org/changeset/base/221386 Log: Fix stack smash problem in makeinfo, by increasing buffer sizes in current_chapter_number(). Modified: head/contrib/texinfo/makeinfo/sectioning.c Modified: head/contrib/texinfo/makeinfo/sectioning.c ============================================================================== --- head/contrib/texinfo/makeinfo/sectioning.c Tue May 3 13:34:40 2011 (r221385) +++ head/contrib/texinfo/makeinfo/sectioning.c Tue May 3 14:43:16 2011 (r221386) @@ -256,13 +256,13 @@ current_chapter_number (void) return xstrdup (""); else if (enum_marker == APPENDIX_MAGIC) { - char s[1]; + char s[2]; sprintf (s, "%c", numbers[0] + 64); return xstrdup (s); } else { - char s[5]; + char s[11]; sprintf (s, "%d", numbers[0]); return xstrdup (s); } From owner-svn-src-head@FreeBSD.ORG Tue May 3 15:12:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25E5D106566C; Tue, 3 May 2011 15:12:02 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1239F8FC0C; Tue, 3 May 2011 15:12:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43FC1SW099142; Tue, 3 May 2011 15:12:01 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43FC1Jr099140; Tue, 3 May 2011 15:12:01 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105031512.p43FC1Jr099140@svn.freebsd.org> From: Nathan Whitehorn Date: Tue, 3 May 2011 15:12:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221387 - head/usr.sbin/makefs/cd9660 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 15:12:02 -0000 Author: nwhitehorn Date: Tue May 3 15:12:01 2011 New Revision: 221387 URL: http://svn.freebsd.org/changeset/base/221387 Log: Add support for synthesizing an APM partition map to map Mac PowerPC bootstrap partitions from the ISO9660 boot catalog. This preserves OS X's ability to mount the CD, while allowing us a way to provide HFS-ified bootstrap code for Open Firmware. Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c ============================================================================== --- head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Tue May 3 14:43:16 2011 (r221386) +++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Tue May 3 15:12:01 2011 (r221387) @@ -31,6 +31,9 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. */ + +#include + #include "cd9660.h" #include "cd9660_eltorito.h" @@ -497,11 +500,43 @@ cd9660_setup_boot_volume_descriptor(volu return 1; } +static int +cd9660_write_apm_partition_entry(FILE *fd, int index, int total_partitions, + off_t sector_start, off_t nsectors, off_t sector_size, + const char *part_name, const char *part_type) { + uint32_t apm32; + uint16_t apm16; + + fseeko(fd, (off_t)(index + 1) * sector_size, SEEK_SET); + + /* Signature */ + apm16 = htons(0x504d); + fwrite(&apm16, sizeof(apm16), 1, fd); + apm16 = 0; + fwrite(&apm16, sizeof(apm16), 1, fd); + + /* Total number of partitions */ + apm32 = htonl(total_partitions); + fwrite(&apm32, sizeof(apm32), 1, fd); + /* Bounds */ + apm32 = htonl(sector_start); + fwrite(&apm32, sizeof(apm32), 1, fd); + apm32 = htonl(nsectors); + fwrite(&apm32, sizeof(apm32), 1, fd); + + fwrite(part_name, strlen(part_name) + 1, 1, fd); + fseek(fd, 32 - strlen(part_name) - 1, SEEK_CUR); + fwrite(part_type, strlen(part_type) + 1, 1, fd); + + return 0; +} + int cd9660_write_boot(FILE *fd) { struct boot_catalog_entry *e; struct cd9660_boot_image *t; + int apm_partitions = 0; /* write boot catalog */ if (fseeko(fd, (off_t)diskStructure.boot_catalog_sector * @@ -533,7 +568,51 @@ cd9660_write_boot(FILE *fd) t->filename, t->sector); } cd9660_copy_file(fd, t->sector, t->filename); + + if (t->system == ET_SYS_MAC) + apm_partitions++; + } + + if (apm_partitions > 0) { + /* Write DDR and global APM info */ + uint32_t apm32; + uint16_t apm16; + int total_parts; + + fseek(fd, 0, SEEK_SET); + apm16 = htons(0x4552); + fwrite(&apm16, sizeof(apm16), 1, fd); + apm16 = htons(diskStructure.sectorSize); + fwrite(&apm16, sizeof(apm16), 1, fd); + apm32 = htonl(diskStructure.totalSectors); + fwrite(&apm32, sizeof(apm32), 1, fd); + + /* Count total needed entries */ + total_parts = 2 + apm_partitions; /* Self + ISO9660 */ + + /* Write self-descriptor */ + cd9660_write_apm_partition_entry(fd, 0, + total_parts, 1, total_parts, diskStructure.sectorSize, + "Apple", "Apple_partition_map"); + + /* Write ISO9660 descriptor, enclosing the whole disk */ + cd9660_write_apm_partition_entry(fd, 1, + total_parts, 0, diskStructure.totalSectors, + diskStructure.sectorSize, "", "CD_ROM_Mode_1"); + + /* Write all partition entries */ + apm_partitions = 0; + TAILQ_FOREACH(t, &diskStructure.boot_images, image_list) { + if (t->system != ET_SYS_MAC) + continue; + + cd9660_write_apm_partition_entry(fd, + 2 + apm_partitions++, total_parts, + t->sector, t->num_sectors, diskStructure.sectorSize, + "CD Boot", "Apple_Bootstrap"); + } } return 0; } + From owner-svn-src-head@FreeBSD.ORG Tue May 3 15:12:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0716106566B; Tue, 3 May 2011 15:12:30 +0000 (UTC) (envelope-from alexander@leidinger.net) Received: from mail.ebusiness-leidinger.de (mail.ebusiness-leidinger.de [217.11.53.44]) by mx1.freebsd.org (Postfix) with ESMTP id 504748FC35; Tue, 3 May 2011 15:12:29 +0000 (UTC) Received: from outgoing.leidinger.net (p5B155A42.dip.t-dialin.net [91.21.90.66]) by mail.ebusiness-leidinger.de (Postfix) with ESMTPSA id 32A7E844017; Tue, 3 May 2011 16:55:16 +0200 (CEST) Received: from webmail.leidinger.net (webmail.Leidinger.net [IPv6:fd73:10c7:2053:1::2:102]) by outgoing.leidinger.net (Postfix) with ESMTP id 5DF4811C7; Tue, 3 May 2011 16:55:13 +0200 (CEST) Received: (from www@localhost) by webmail.leidinger.net (8.14.4/8.13.8/Submit) id p43EtDU3051300; Tue, 3 May 2011 16:55:13 +0200 (CEST) (envelope-from Alexander@Leidinger.net) Received: from pslux.ec.europa.eu (pslux.ec.europa.eu [158.169.9.14]) by webmail.leidinger.net (Horde Framework) with HTTP; Tue, 03 May 2011 16:55:13 +0200 Message-ID: <20110503165513.1811181sivefe4xw@webmail.leidinger.net> Date: Tue, 03 May 2011 16:55:13 +0200 From: Alexander Leidinger To: Roman Divacky References: <201105022113.p42LD8TH055002@svn.freebsd.org> <20110503133927.GA41839@freebsd.org> In-Reply-To: <20110503133927.GA41839@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.6) X-EBL-MailScanner-Information: Please contact the ISP for more information X-EBL-MailScanner-ID: 32A7E844017.AE0D4 X-EBL-MailScanner: Found to be clean X-EBL-MailScanner-SpamCheck: not spam, spamhaus-ZEN, SpamAssassin (not cached, score=0.154, required 6, autolearn=disabled, TW_BJ 0.08, TW_SV 0.08) X-EBL-MailScanner-From: alexander@leidinger.net X-EBL-MailScanner-Watermark: 1305039316.81097@Rwd3+soK/9QwGaLBmKm8jw X-EBL-Spam-Status: No Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Dimitry Andric Subject: Re: svn commit: r221348 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 15:12:30 -0000 Quoting Roman Divacky (from Tue, 3 May 2011 15:39:27 +0200): > With the recent libobjc removal this means that we can compile > all (no exceptions) of FreeBSD/{i386,amd64} with clang. > > Quite a milestone in my opinion :) Newsflash? Bye, Alexander. -- Alas, how love can trifle with itself! -- William Shakespeare, "The Two Gentlemen of Verona" http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 From owner-svn-src-head@FreeBSD.ORG Tue May 3 15:50:22 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76C491065673; Tue, 3 May 2011 15:50:22 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 645688FC08; Tue, 3 May 2011 15:50:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43FoMuB000711; Tue, 3 May 2011 15:50:22 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43FoMhw000709; Tue, 3 May 2011 15:50:22 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201105031550.p43FoMhw000709@svn.freebsd.org> From: Andriy Gapon Date: Tue, 3 May 2011 15:50:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221388 - head/sys/dev/sound/pcm X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 15:50:22 -0000 Author: avg Date: Tue May 3 15:50:22 2011 New Revision: 221388 URL: http://svn.freebsd.org/changeset/base/221388 Log: SNDCTL_DSP_GETIPTR: set pointer to sndbuf_getfreeptr() Rationale: - unlike current behavior this seems to be compliant with OSS specification: http://manuals.opensound.com/developer/SNDCTL_DSP_GETIPTR.html - this seems to meet expectations of some OSS programs compiled for or ported from Linux, e.g. ALSA OSS plugin - this doesn't seem to break any programs as far as current testing shows Tested by: nox, hselasky MFC after: 4 days Modified: head/sys/dev/sound/pcm/dsp.c Modified: head/sys/dev/sound/pcm/dsp.c ============================================================================== --- head/sys/dev/sound/pcm/dsp.c Tue May 3 15:12:01 2011 (r221387) +++ head/sys/dev/sound/pcm/dsp.c Tue May 3 15:50:22 2011 (r221388) @@ -1655,7 +1655,7 @@ dsp_ioctl(struct cdev *i_dev, u_long cmd /* XXX abusive DMA update: chn_rdupdate(rdch); */ a->bytes = sndbuf_gettotal(bs); a->blocks = sndbuf_getblocks(bs) - rdch->blocks; - a->ptr = sndbuf_getreadyptr(bs); + a->ptr = sndbuf_getfreeptr(bs); rdch->blocks = sndbuf_getblocks(bs); CHN_UNLOCK(rdch); } else From owner-svn-src-head@FreeBSD.ORG Tue May 3 15:58:06 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0072B106564A; Tue, 3 May 2011 15:58:06 +0000 (UTC) (envelope-from baptiste.daroussin@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id 4D6408FC14; Tue, 3 May 2011 15:58:05 +0000 (UTC) Received: by fxm11 with SMTP id 11so266641fxm.13 for ; Tue, 03 May 2011 08:58:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:from :date:x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=K0vwWbqTzyaKuquUXhWtPrTbJLo5fgh3pILOke5J6m4=; b=NSqAfQYJ/xVzmvbJMl40+j8/EL2Ccej/JpgDZR+6+m/X5kt4T3H60WnSUljm/fpcN6 oiU2/hPEyRF3HKvowaJpPopG7iswryGYVzqParqzvjbrjBKm/n0hWJbiUiUDM+FwsPXb bUlSAiXGbHcJdgKHkCe/ryw492PAV0K8mSgQI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; b=K4eDce90QU8RSatUu16ZzM9uwWxu8VesLg2sNQhYvnIRH3oS/iv92sjJJcUUxmycHr NlioZUibeny+vMI+lCnojnPQxPIN+buRxI9tCR1mXptU9pGPzEPuYtJk5bSq6Pp8X4P8 3WfZPdYrhcOttlenCTLR1NduN1i7WqV+K9BNc= Received: by 10.223.87.218 with SMTP id x26mr1596429fal.133.1304436472967; Tue, 03 May 2011 08:27:52 -0700 (PDT) MIME-Version: 1.0 Sender: baptiste.daroussin@gmail.com Received: by 10.223.123.137 with HTTP; Tue, 3 May 2011 08:27:32 -0700 (PDT) In-Reply-To: <201105031512.p43FC1Jr099140@svn.freebsd.org> References: <201105031512.p43FC1Jr099140@svn.freebsd.org> From: Baptiste Daroussin Date: Tue, 3 May 2011 17:27:32 +0200 X-Google-Sender-Auth: BS1l8_j-3_D5OXOowdOFC6Yzv4U Message-ID: To: Nathan Whitehorn Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221387 - head/usr.sbin/makefs/cd9660 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 15:58:06 -0000 2011/5/3 Nathan Whitehorn : > Author: nwhitehorn > Date: Tue May =A03 15:12:01 2011 > New Revision: 221387 > URL: http://svn.freebsd.org/changeset/base/221387 > > Log: > =A0Add support for synthesizing an APM partition map to map Mac PowerPC > =A0bootstrap partitions from the ISO9660 boot catalog. This preserves OS = X's > =A0ability to mount the CD, while allowing us a way to provide HFS-ified > =A0bootstrap code for Open Firmware. > > Modified: > =A0head/usr.sbin/makefs/cd9660/cd9660_eltorito.c > > Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/usr.sbin/makefs/cd9660/cd9660_eltorito.c =A0 =A0 =A0 Tue May =A0= 3 14:43:16 2011 =A0 =A0 =A0 =A0(r221386) > +++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.c =A0 =A0 =A0 Tue May =A0= 3 15:12:01 2011 =A0 =A0 =A0 =A0(r221387) > @@ -31,6 +31,9 @@ > =A0* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY > =A0* OF SUCH DAMAGE. > =A0*/ > + > +#include > + > =A0#include "cd9660.h" > =A0#include "cd9660_eltorito.h" > > @@ -497,11 +500,43 @@ cd9660_setup_boot_volume_descriptor(volu > =A0 =A0 =A0 =A0return 1; > =A0} > > +static int > +cd9660_write_apm_partition_entry(FILE *fd, int index, int total_partitio= ns, > + =A0 =A0off_t sector_start, off_t nsectors, off_t sector_size, > + =A0 =A0const char *part_name, const char *part_type) { > + =A0 =A0 =A0 uint32_t apm32; > + =A0 =A0 =A0 uint16_t apm16; > + > + =A0 =A0 =A0 fseeko(fd, (off_t)(index + 1) * sector_size, SEEK_SET); > + > + =A0 =A0 =A0 /* Signature */ > + =A0 =A0 =A0 apm16 =3D htons(0x504d); > + =A0 =A0 =A0 fwrite(&apm16, sizeof(apm16), 1, fd); > + =A0 =A0 =A0 apm16 =3D 0; > + =A0 =A0 =A0 fwrite(&apm16, sizeof(apm16), 1, fd); > + > + =A0 =A0 =A0 /* Total number of partitions */ > + =A0 =A0 =A0 apm32 =3D htonl(total_partitions); > + =A0 =A0 =A0 fwrite(&apm32, sizeof(apm32), 1, fd); > + =A0 =A0 =A0 /* Bounds */ > + =A0 =A0 =A0 apm32 =3D htonl(sector_start); > + =A0 =A0 =A0 fwrite(&apm32, sizeof(apm32), 1, fd); > + =A0 =A0 =A0 apm32 =3D htonl(nsectors); > + =A0 =A0 =A0 fwrite(&apm32, sizeof(apm32), 1, fd); > + > + =A0 =A0 =A0 fwrite(part_name, strlen(part_name) + 1, 1, fd); > + =A0 =A0 =A0 fseek(fd, 32 - strlen(part_name) - 1, SEEK_CUR); > + =A0 =A0 =A0 fwrite(part_type, strlen(part_type) + 1, 1, fd); > + > + =A0 =A0 =A0 return 0; > +} > + > =A0int > =A0cd9660_write_boot(FILE *fd) > =A0{ > =A0 =A0 =A0 =A0struct boot_catalog_entry *e; > =A0 =A0 =A0 =A0struct cd9660_boot_image *t; > + =A0 =A0 =A0 int apm_partitions =3D 0; > > =A0 =A0 =A0 =A0/* write boot catalog */ > =A0 =A0 =A0 =A0if (fseeko(fd, (off_t)diskStructure.boot_catalog_sector * > @@ -533,7 +568,51 @@ cd9660_write_boot(FILE *fd) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0t->filename, t->se= ctor); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0cd9660_copy_file(fd, t->sector, t->filenam= e); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (t->system =3D=3D ET_SYS_MAC) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 apm_partitions++; > + =A0 =A0 =A0 } > + > + =A0 =A0 =A0 if (apm_partitions > 0) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Write DDR and global APM info */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 uint32_t apm32; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 uint16_t apm16; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 int total_parts; > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 fseek(fd, 0, SEEK_SET); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 apm16 =3D htons(0x4552); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 fwrite(&apm16, sizeof(apm16), 1, fd); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 apm16 =3D htons(diskStructure.sectorSize); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 fwrite(&apm16, sizeof(apm16), 1, fd); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 apm32 =3D htonl(diskStructure.totalSectors)= ; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 fwrite(&apm32, sizeof(apm32), 1, fd); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Count total needed entries */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 total_parts =3D 2 + apm_partitions; /* Self= + ISO9660 */ > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Write self-descriptor */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 cd9660_write_apm_partition_entry(fd, 0, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 total_parts, 1, total_parts, diskSt= ructure.sectorSize, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "Apple", "Apple_partition_map"); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Write ISO9660 descriptor, enclosing the = whole disk */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 cd9660_write_apm_partition_entry(fd, 1, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 total_parts, 0, diskStructure.total= Sectors, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 diskStructure.sectorSize, "", "CD_R= OM_Mode_1"); > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Write all partition entries */ > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 apm_partitions =3D 0; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 TAILQ_FOREACH(t, &diskStructure.boot_images= , image_list) { > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (t->system !=3D ET_SYS_M= AC) > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 continue; > + > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 cd9660_write_apm_partition_= entry(fd, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 2 + apm_partitions+= +, total_parts, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 t->sector, t->num_s= ectors, diskStructure.sectorSize, > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "CD Boot", "Apple_B= ootstrap"); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 } > =A0 =A0 =A0 =A0} > > =A0 =A0 =A0 =A0return 0; > =A0} > + > _______________________________________________ > svn-src-all@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" > Nice, Do not forget to send this to the netbsd folks so that both makefs keep as in sync as possible, christos@NetBSD.org should be interested by this. if you already did this, sorry for the noise. regards, Bapt From owner-svn-src-head@FreeBSD.ORG Tue May 3 15:58:24 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AEFAB1065689; Tue, 3 May 2011 15:58:24 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 81AB68FC13; Tue, 3 May 2011 15:58:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43FwOGe000993; Tue, 3 May 2011 15:58:24 GMT (envelope-from gnn@svn.freebsd.org) Received: (from gnn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43FwONI000989; Tue, 3 May 2011 15:58:24 GMT (envelope-from gnn@svn.freebsd.org) Message-Id: <201105031558.p43FwONI000989@svn.freebsd.org> From: "George V. Neville-Neil" Date: Tue, 3 May 2011 15:58:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221389 - in head/sys/dev/vxge: . include X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 15:58:24 -0000 Author: gnn Date: Tue May 3 15:58:24 2011 New Revision: 221389 URL: http://svn.freebsd.org/changeset/base/221389 Log: Add in support for multicast. Submitted by: Sriram Rapuru at @ Wipro for Exar Inc. MFC after: 2 weeks Modified: head/sys/dev/vxge/include/build-version.h head/sys/dev/vxge/vxge.c head/sys/dev/vxge/vxge.h Modified: head/sys/dev/vxge/include/build-version.h ============================================================================== --- head/sys/dev/vxge/include/build-version.h Tue May 3 15:50:22 2011 (r221388) +++ head/sys/dev/vxge/include/build-version.h Tue May 3 15:58:24 2011 (r221389) @@ -3,5 +3,5 @@ #ifndef BUILD_VERSION_H #define BUILD_VERSION_H /* Do not edit! Automatically generated when released. */ -#define GENERATED_BUILD_VERSION 22708 +#define GENERATED_BUILD_VERSION 22770 #endif /* BUILD_VERSION_H */ Modified: head/sys/dev/vxge/vxge.c ============================================================================== --- head/sys/dev/vxge/vxge.c Tue May 3 15:50:22 2011 (r221388) +++ head/sys/dev/vxge/vxge.c Tue May 3 15:58:24 2011 (r221389) @@ -357,6 +357,9 @@ vxge_init_locked(vxge_dev_t *vdev) if (!vpath_handle) continue; + /* Enabling mcast for all vpath */ + vxge_hal_vpath_mcast_enable(vpath_handle); + /* Enabling bcast for all vpath */ status = vxge_hal_vpath_bcast_enable(vpath_handle); if (status != VXGE_HAL_OK) @@ -2879,26 +2882,6 @@ vxge_promisc_set(vxge_dev_t *vdev) ifp = vdev->ifp; - if ((ifp->if_flags & IFF_ALLMULTI) && (!vdev->all_multi_flag)) { - for (i = 0; i < vdev->no_of_vpath; i++) { - vpath_handle = vxge_vpath_handle_get(vdev, i); - if (!vpath_handle) - continue; - - vxge_hal_vpath_mcast_enable(vpath_handle); - vdev->all_multi_flag = 1; - } - - } else if (!(ifp->if_flags & IFF_ALLMULTI) && (vdev->all_multi_flag)) { - for (i = 0; i < vdev->no_of_vpath; i++) { - vpath_handle = vxge_vpath_handle_get(vdev, i); - if (!vpath_handle) - continue; - - vxge_hal_vpath_mcast_disable(vpath_handle); - vdev->all_multi_flag = 0; - } - } for (i = 0; i < vdev->no_of_vpath; i++) { vpath_handle = vxge_vpath_handle_get(vdev, i); if (!vpath_handle) Modified: head/sys/dev/vxge/vxge.h ============================================================================== --- head/sys/dev/vxge/vxge.h Tue May 3 15:50:22 2011 (r221388) +++ head/sys/dev/vxge/vxge.h Tue May 3 15:58:24 2011 (r221389) @@ -406,7 +406,6 @@ struct vxge_dev_t { int no_of_vpath; u64 active_port; u32 no_of_func; - u32 all_multi_flag; u32 hw_fw_version; u32 max_supported_vpath; int rx_mbuf_sz; From owner-svn-src-head@FreeBSD.ORG Tue May 3 16:00:27 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18A01106566B; Tue, 3 May 2011 16:00:27 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 063C18FC12; Tue, 3 May 2011 16:00:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43G0QJw001109; Tue, 3 May 2011 16:00:26 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43G0QiD001107; Tue, 3 May 2011 16:00:26 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201105031600.p43G0QiD001107@svn.freebsd.org> From: Jaakko Heinonen Date: Tue, 3 May 2011 16:00:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221390 - head/cddl/compat/opensolaris/misc X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 16:00:27 -0000 Author: jh Date: Tue May 3 16:00:26 2011 New Revision: 221390 URL: http://svn.freebsd.org/changeset/base/221390 Log: Don't pass empty mount options to nmount(2). Reviewed by: pjd MFC after: 2 weeks Modified: head/cddl/compat/opensolaris/misc/zmount.c Modified: head/cddl/compat/opensolaris/misc/zmount.c ============================================================================== --- head/cddl/compat/opensolaris/misc/zmount.c Tue May 3 15:58:24 2011 (r221389) +++ head/cddl/compat/opensolaris/misc/zmount.c Tue May 3 16:00:26 2011 (r221390) @@ -98,8 +98,10 @@ zmount(const char *spec, const char *dir build_iovec(&iov, &iovlen, "fspath", __DECONST(char *, dir), (size_t)-1); build_iovec(&iov, &iovlen, "from", __DECONST(char *, spec), (size_t)-1); - for (p = optstr; p != NULL; strsep(&p, ",/ ")) - build_iovec(&iov, &iovlen, p, NULL, (size_t)-1); + for (p = optstr; p != NULL; strsep(&p, ",/ ")) { + if (*p != '\0') + build_iovec(&iov, &iovlen, p, NULL, (size_t)-1); + } rv = nmount(iov, iovlen, 0); free(optstr); return (rv); From owner-svn-src-head@FreeBSD.ORG Tue May 3 16:00:37 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4BD6310656F2; Tue, 3 May 2011 16:00:37 +0000 (UTC) (envelope-from gnn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3940F8FC19; Tue, 3 May 2011 16:00:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43G0bxe001161; Tue, 3 May 2011 16:00:37 GMT (envelope-from gnn@svn.freebsd.org) Received: (from gnn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43G0bhZ001159; Tue, 3 May 2011 16:00:37 GMT (envelope-from gnn@svn.freebsd.org) Message-Id: <201105031600.p43G0bhZ001159@svn.freebsd.org> From: "George V. Neville-Neil" Date: Tue, 3 May 2011 16:00:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221391 - head/tools/tools/vxge X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 16:00:37 -0000 Author: gnn Date: Tue May 3 16:00:36 2011 New Revision: 221391 URL: http://svn.freebsd.org/changeset/base/221391 Log: Give some sort of message when the program is not run as root. Root privileges are required to talk to the device. Submitted by: Sriram Rapuru at Wipro for Exar Inc. MFC after: 2 weeks Modified: head/tools/tools/vxge/vxge_info.c Modified: head/tools/tools/vxge/vxge_info.c ============================================================================== --- head/tools/tools/vxge/vxge_info.c Tue May 3 16:00:26 2011 (r221390) +++ head/tools/tools/vxge/vxge_info.c Tue May 3 16:00:36 2011 (r221391) @@ -31,6 +31,7 @@ /*$FreeBSD$*/ #include "vxge_info.h" +#include static int sockfd; static struct ifreq ifr; @@ -38,6 +39,15 @@ static struct ifreq ifr; int main(int argc, char *argv[]) { + uid_t uid; + + uid = getuid(); + + if (uid) { + printf("vxge-manage: Operation not permitted.\nExiting...\n"); + goto _exit0; + } + if (argc >= 4) { if (!((strcasecmp(argv[2], "regs") == 0) || (strcasecmp(argv[2], "stats") == 0) || From owner-svn-src-head@FreeBSD.ORG Tue May 3 16:49:31 2011 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 07C341065674; Tue, 3 May 2011 16:49:31 +0000 (UTC) (envelope-from brooks@lor.one-eyed-alien.net) Received: from lor.one-eyed-alien.net (lor.one-eyed-alien.net [69.66.77.232]) by mx1.freebsd.org (Postfix) with ESMTP id 8E00F8FC08; Tue, 3 May 2011 16:49:29 +0000 (UTC) Received: from lor.one-eyed-alien.net (localhost [127.0.0.1]) by lor.one-eyed-alien.net (8.14.4/8.14.4) with ESMTP id p439RvKu024629; Tue, 3 May 2011 04:27:57 -0500 (CDT) (envelope-from brooks@lor.one-eyed-alien.net) Received: (from brooks@localhost) by lor.one-eyed-alien.net (8.14.4/8.14.4/Submit) id p439RvS3024628; Tue, 3 May 2011 04:27:57 -0500 (CDT) (envelope-from brooks) Date: Tue, 3 May 2011 04:27:57 -0500 From: Brooks Davis To: Roman Divacky Message-ID: <20110503092757.GA24552@lor.one-eyed-alien.net> References: <201105022113.p42LD8TH055002@svn.freebsd.org> <20110503133927.GA41839@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="fdj2RfSjLxBAspz7" Content-Disposition: inline In-Reply-To: <20110503133927.GA41839@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.6 (lor.one-eyed-alien.net [127.0.0.1]); Tue, 03 May 2011 04:27:57 -0500 (CDT) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Dimitry Andric Subject: Re: svn commit: r221348 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 16:49:31 -0000 --fdj2RfSjLxBAspz7 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, May 03, 2011 at 03:39:27PM +0200, Roman Divacky wrote: > With the recent libobjc removal this means that we can compile > all (no exceptions) of FreeBSD/{i386,amd64} with clang. >=20 > Quite a milestone in my opinion :) Great news! Thanks for all the work to make this happen! Has boot2 been submitted to LLVM as a clang regression test? Thanks, Brooks >=20 > On Mon, May 02, 2011 at 09:13:08PM +0000, Dimitry Andric wrote: > > Author: dim > > Date: Mon May 2 21:13:08 2011 > > New Revision: 221348 > > URL: http://svn.freebsd.org/changeset/base/221348 > >=20 > > Log: > > Clang r130700 can now compile sys/boot/i386/boot2 with room to spare. > >=20 > > Modified: > > head/sys/boot/i386/boot2/Makefile > >=20 > > Modified: head/sys/boot/i386/boot2/Makefile > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/boot/i386/boot2/Makefile Mon May 2 21:10:13 2011 (r221347) > > +++ head/sys/boot/i386/boot2/Makefile Mon May 2 21:13:08 2011 (r221348) > > @@ -2,9 +2,6 @@ > > =20 > > .include > > =20 > > -# XXX: clang can compile the boot code just fine, but boot2 gets too b= ig > > -CC:=3D${CC:C/^(.*\/)?clang$/gcc/1} > > - > > FILES=3D boot boot1 boot2 > > =20 > > NM?=3D nm > > @@ -45,6 +42,12 @@ CFLAGS=3D -Os \ > > -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings \ > > -Winline --param max-inline-insns-single=3D100 > > =20 > > +.if ${CC:T:Mclang} =3D=3D "clang" > > +CFLAGS+=3D -mllvm -stack-alignment=3D8 -mllvm -inline-threshold=3D3 > > +# XXX: clang integrated-as doesn't grok .codeNN directives yet > > +CFLAGS+=3D ${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/} > > +.endif > > + > > LDFLAGS=3D-static -N --gc-sections > > =20 > > # Pick up ../Makefile.inc early. >=20 --fdj2RfSjLxBAspz7 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iD8DBQFNv8qdXY6L6fI4GtQRAqqsAKDfekWELf17Jni2vZFXibzcLxjsyACgrXol qd1b5HxJJpih4ETohr1Ahuk= =CVJH -----END PGP SIGNATURE----- --fdj2RfSjLxBAspz7-- From owner-svn-src-head@FreeBSD.ORG Tue May 3 17:01:08 2011 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 239F0106566C; Tue, 3 May 2011 17:01:08 +0000 (UTC) (envelope-from rdivacky@vlakno.cz) Received: from vlakno.cz (lev.vlakno.cz [46.28.110.116]) by mx1.freebsd.org (Postfix) with ESMTP id CFBBB8FC08; Tue, 3 May 2011 17:01:07 +0000 (UTC) Received: by vlakno.cz (Postfix, from userid 1002) id 06C517F39FE; Tue, 3 May 2011 18:51:20 +0200 (CEST) Date: Tue, 3 May 2011 18:51:19 +0200 From: Roman Divacky To: Brooks Davis Message-ID: <20110503165119.GA64219@freebsd.org> References: <201105022113.p42LD8TH055002@svn.freebsd.org> <20110503133927.GA41839@freebsd.org> <20110503092757.GA24552@lor.one-eyed-alien.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110503092757.GA24552@lor.one-eyed-alien.net> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Dimitry Andric , pawel.worach@gmail.com Subject: Re: svn commit: r221348 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 17:01:08 -0000 On Tue, May 03, 2011 at 04:27:57AM -0500, Brooks Davis wrote: > On Tue, May 03, 2011 at 03:39:27PM +0200, Roman Divacky wrote: > > With the recent libobjc removal this means that we can compile > > all (no exceptions) of FreeBSD/{i386,amd64} with clang. > > > > Quite a milestone in my opinion :) > > > Great news! Thanks for all the work to make this happen! > > Has boot2 been submitted to LLVM as a clang regression test? No, but we are setting up a testing environment to track the code size changes in boot2. Pawel, can you comment on this? From owner-svn-src-head@FreeBSD.ORG Tue May 3 17:37:25 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A937106566C; Tue, 3 May 2011 17:37:25 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 06DDD8FC0C; Tue, 3 May 2011 17:37:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43HbPnV004125; Tue, 3 May 2011 17:37:25 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43HbOM5004112; Tue, 3 May 2011 17:37:24 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105031737.p43HbOM5004112@svn.freebsd.org> From: John Baldwin Date: Tue, 3 May 2011 17:37:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221393 - in head/sys: amd64/pci conf dev/acpica dev/pci i386/pci sparc64/pci x86/pci x86/x86 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 17:37:25 -0000 Author: jhb Date: Tue May 3 17:37:24 2011 New Revision: 221393 URL: http://svn.freebsd.org/changeset/base/221393 Log: Reimplement how PCI-PCI bridges manage their I/O windows. Previously the driver would verify that requests for child devices were confined to any existing I/O windows, but the driver relied on the firmware to initialize the windows and would never grow the windows for new requests. Now the driver actively manages the I/O windows. This is implemented by allocating a bus resource for each I/O window from the parent PCI bus and suballocating that resource to child devices. The suballocations are managed by creating an rman for each I/O window. The suballocated resources are mapped by passing the bus_activate_resource() call up to the parent PCI bus. Windows are grown when needed by using bus_adjust_resource() to adjust the resource allocated from the parent PCI bus. If the adjust request succeeds, the window is adjusted and the suballocation request for the child device is retried. When growing a window, the rman_first_free_region() and rman_last_free_region() routines are used to determine if the front or end of the existing I/O window is free. From using that, the smallest ranges that need to be added to either the front or back of the window are computed. The driver will first try to grow the window in whichever direction requires the smallest growth first followed by the other direction if that fails. Subtractive bridges will first attempt to satisfy requests for child resources from I/O windows (including attempts to grow the windows). If that fails, the request is passed up to the parent PCI bus directly however. The PCI-PCI bridge driver will try to use firmware-assigned ranges for child BARs first and only allocate a "fresh" range if that specific range cannot be accommodated in the I/O window. This allows systems where the firmware assigns resources during boot but later wipes the I/O windows (some ACPI BIOSen are known to do this) to "rediscover" the original I/O window ranges. The ACPI Host-PCI bridge driver has been adjusted to correctly honor hw.acpi.host_mem_start and the I/O port equivalent when a PCI-PCI bridge makes a wildcard request for an I/O window range. The new PCI-PCI bridge driver is only enabled if the NEW_PCIB kernel option is enabled. This is a transition aide to allow platforms that do not yet support bus_activate_resource() and bus_adjust_resource() in their Host-PCI bridge drivers (and possibly other drivers as needed) to use the old driver for now. Once all platforms support the new driver, the kernel option and old driver will be removed. PR: kern/143874 kern/149306 Tested by: mav Modified: head/sys/amd64/pci/pci_bus.c head/sys/conf/options head/sys/dev/acpica/acpi_pcib_acpi.c head/sys/dev/acpica/acpi_pcib_pci.c head/sys/dev/pci/pci.c head/sys/dev/pci/pci_pci.c head/sys/dev/pci/pcib_private.h head/sys/i386/pci/pci_bus.c head/sys/sparc64/pci/apb.c head/sys/sparc64/pci/ofw_pcib.c head/sys/x86/pci/qpi.c head/sys/x86/x86/mptable_pci.c Modified: head/sys/amd64/pci/pci_bus.c ============================================================================== --- head/sys/amd64/pci/pci_bus.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/amd64/pci/pci_bus.c Tue May 3 17:37:24 2011 (r221393) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Tue May 3 16:36:39 2011 (r221392) +++ head/sys/conf/options Tue May 3 17:37:24 2011 (r221393) @@ -136,6 +136,7 @@ MFI_DEBUG opt_mfi.h MFI_DECODE_LOG opt_mfi.h MPROF_BUFFERS opt_mprof.h MPROF_HASH_SIZE opt_mprof.h +NEW_PCIB opt_global.h NO_ADAPTIVE_MUTEXES opt_adaptive_mutexes.h NO_ADAPTIVE_RWLOCKS NO_ADAPTIVE_SX Modified: head/sys/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- head/sys/dev/acpica/acpi_pcib_acpi.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/dev/acpica/acpi_pcib_acpi.c Tue May 3 17:37:24 2011 (r221393) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -370,11 +371,17 @@ acpi_pcib_acpi_alloc_resource(device_t d * Hardcoding like this sucks, so a more MD/MI way needs to be * found to do it. This is typically only used on older laptops * that don't have pci busses behind pci bridge, so assuming > 32MB - * is liekly OK. + * is likely OK. + * + * PCI-PCI bridges may allocate smaller ranges for their windows, + * but the heuristics here should apply to those, so we allow + * several different end addresses. */ - if (type == SYS_RES_MEMORY && start == 0UL && end == ~0UL) + if (type == SYS_RES_MEMORY && start == 0UL && (end == ~0UL || + end == 0xffffffff)) start = acpi_host_mem_start; - if (type == SYS_RES_IOPORT && start == 0UL && end == ~0UL) + if (type == SYS_RES_IOPORT && start == 0UL && (end == ~0UL || + end == 0xffff || end == 0xffffffff)) start = 0x1000; return (bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags)); Modified: head/sys/dev/acpica/acpi_pcib_pci.c ============================================================================== --- head/sys/dev/acpica/acpi_pcib_pci.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/dev/acpica/acpi_pcib_pci.c Tue May 3 17:37:24 2011 (r221393) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/dev/pci/pci.c Tue May 3 17:37:24 2011 (r221393) @@ -3967,6 +3967,26 @@ pci_alloc_resource(device_t dev, device_ break; case SYS_RES_IOPORT: case SYS_RES_MEMORY: +#ifdef NEW_PCIB + /* + * PCI-PCI bridge I/O window resources are not BARs. + * For those allocations just pass the request up the + * tree. + */ + if (cfg->hdrtype == PCIM_HDRTYPE_BRIDGE) { + switch (*rid) { + case PCIR_IOBASEL_1: + case PCIR_MEMBASE_1: + case PCIR_PMBASEL_1: + /* + * XXX: Should we bother creating a resource + * list entry? + */ + return (bus_generic_alloc_resource(dev, child, + type, rid, start, end, count, flags)); + } + } +#endif /* Reserve resources for this BAR if needed. */ rle = resource_list_find(rl, type, *rid); if (rle == NULL) { Modified: head/sys/dev/pci/pci_pci.c ============================================================================== --- head/sys/dev/pci/pci_pci.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/dev/pci/pci_pci.c Tue May 3 17:37:24 2011 (r221393) @@ -36,14 +36,16 @@ __FBSDID("$FreeBSD$"); */ #include -#include +#include #include +#include +#include #include -#include -#include #include #include +#include +#include #include #include @@ -73,8 +75,13 @@ static device_method_t pcib_methods[] = DEVMETHOD(bus_read_ivar, pcib_read_ivar), DEVMETHOD(bus_write_ivar, pcib_write_ivar), DEVMETHOD(bus_alloc_resource, pcib_alloc_resource), +#ifdef NEW_PCIB + DEVMETHOD(bus_adjust_resource, pcib_adjust_resource), + DEVMETHOD(bus_release_resource, pcib_release_resource), +#else DEVMETHOD(bus_adjust_resource, bus_generic_adjust_resource), DEVMETHOD(bus_release_resource, bus_generic_release_resource), +#endif DEVMETHOD(bus_activate_resource, bus_generic_activate_resource), DEVMETHOD(bus_deactivate_resource, bus_generic_deactivate_resource), DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), @@ -100,6 +107,243 @@ static devclass_t pcib_devclass; DEFINE_CLASS_0(pcib, pcib_driver, pcib_methods, sizeof(struct pcib_softc)); DRIVER_MODULE(pcib, pci, pcib_driver, pcib_devclass, 0, 0); +#ifdef NEW_PCIB +/* + * XXX Todo: + * - properly handle the ISA enable bit. If it is set, we should change + * the behavior of the I/O window resource and rman to not allocate the + * blocked ranges (upper 768 bytes of each 1K in the first 64k of the + * I/O port address space). + */ + +/* + * Is a resource from a child device sub-allocated from one of our + * resource managers? + */ +static int +pcib_is_resource_managed(struct pcib_softc *sc, int type, struct resource *r) +{ + + switch (type) { + case SYS_RES_IOPORT: + return (rman_is_region_manager(r, &sc->io.rman)); + case SYS_RES_MEMORY: + /* Prefetchable resources may live in either memory rman. */ + if (rman_get_flags(r) & RF_PREFETCHABLE && + rman_is_region_manager(r, &sc->pmem.rman)) + return (1); + return (rman_is_region_manager(r, &sc->mem.rman)); + } + return (0); +} + +static int +pcib_is_window_open(struct pcib_window *pw) +{ + + return (pw->valid && pw->base < pw->limit); +} + +/* + * XXX: If RF_ACTIVE did not also imply allocating a bus space tag and + * handle for the resource, we could pass RF_ACTIVE up to the PCI bus + * when allocating the resource windows and rely on the PCI bus driver + * to do this for us. + */ +static void +pcib_activate_window(struct pcib_softc *sc, int type) +{ + + PCI_ENABLE_IO(device_get_parent(sc->dev), sc->dev, type); +} + +static void +pcib_write_windows(struct pcib_softc *sc, int mask) +{ + device_t dev; + uint32_t val; + + dev = sc->dev; + if (sc->io.valid && mask & WIN_IO) { + val = pci_read_config(dev, PCIR_IOBASEL_1, 1); + if ((val & PCIM_BRIO_MASK) == PCIM_BRIO_32) { + pci_write_config(dev, PCIR_IOBASEH_1, + sc->io.base >> 16, 2); + pci_write_config(dev, PCIR_IOLIMITH_1, + sc->io.limit >> 16, 2); + } + pci_write_config(dev, PCIR_IOBASEL_1, sc->io.base >> 8, 1); + pci_write_config(dev, PCIR_IOLIMITL_1, sc->io.limit >> 8, 1); + } + + if (mask & WIN_MEM) { + pci_write_config(dev, PCIR_MEMBASE_1, sc->mem.base >> 16, 2); + pci_write_config(dev, PCIR_MEMLIMIT_1, sc->mem.limit >> 16, 2); + } + + if (sc->pmem.valid && mask & WIN_PMEM) { + val = pci_read_config(dev, PCIR_PMBASEL_1, 2); + if ((val & PCIM_BRPM_MASK) == PCIM_BRPM_64) { + pci_write_config(dev, PCIR_PMBASEH_1, + sc->pmem.base >> 32, 4); + pci_write_config(dev, PCIR_PMLIMITH_1, + sc->pmem.limit >> 32, 4); + } + pci_write_config(dev, PCIR_PMBASEL_1, sc->pmem.base >> 16, 2); + pci_write_config(dev, PCIR_PMLIMITL_1, sc->pmem.limit >> 16, 2); + } +} + +static void +pcib_alloc_window(struct pcib_softc *sc, struct pcib_window *w, int type, + int flags, pci_addr_t max_address) +{ + char buf[64]; + int error, rid; + + if (max_address != (u_long)max_address) + max_address = ~0ul; + w->rman.rm_start = 0; + w->rman.rm_end = max_address; + w->rman.rm_type = RMAN_ARRAY; + snprintf(buf, sizeof(buf), "%s %s window", + device_get_nameunit(sc->dev), w->name); + w->rman.rm_descr = strdup(buf, M_DEVBUF); + error = rman_init(&w->rman); + if (error) + panic("Failed to initialize %s %s rman", + device_get_nameunit(sc->dev), w->name); + + if (!pcib_is_window_open(w)) + return; + + if (w->base > max_address || w->limit > max_address) { + device_printf(sc->dev, + "initial %s window has too many bits, ignoring\n", w->name); + return; + } + rid = w->reg; + w->res = bus_alloc_resource(sc->dev, type, &rid, w->base, w->limit, + w->limit - w->base + 1, flags); + if (w->res == NULL) { + device_printf(sc->dev, + "failed to allocate initial %s window: %#jx-%#jx\n", + w->name, (uintmax_t)w->base, (uintmax_t)w->limit); + w->base = max_address; + w->limit = 0; + pcib_write_windows(sc, w->mask); + return; + } + pcib_activate_window(sc, type); + + error = rman_manage_region(&w->rman, rman_get_start(w->res), + rman_get_end(w->res)); + if (error) + panic("Failed to initialize rman with resource"); +} + +/* + * Initialize I/O windows. + */ +static void +pcib_probe_windows(struct pcib_softc *sc) +{ + pci_addr_t max; + device_t dev; + uint32_t val; + + dev = sc->dev; + + /* Determine if the I/O port window is implemented. */ + val = pci_read_config(dev, PCIR_IOBASEL_1, 1); + if (val == 0) { + /* + * If 'val' is zero, then only 16-bits of I/O space + * are supported. + */ + pci_write_config(dev, PCIR_IOBASEL_1, 0xff, 1); + if (pci_read_config(dev, PCIR_IOBASEL_1, 1) != 0) { + sc->io.valid = 1; + pci_write_config(dev, PCIR_IOBASEL_1, 0, 1); + } + } else + sc->io.valid = 1; + + /* Read the existing I/O port window. */ + if (sc->io.valid) { + sc->io.reg = PCIR_IOBASEL_1; + sc->io.step = 12; + sc->io.mask = WIN_IO; + sc->io.name = "I/O port"; + if ((val & PCIM_BRIO_MASK) == PCIM_BRIO_32) { + sc->io.base = PCI_PPBIOBASE( + pci_read_config(dev, PCIR_IOBASEH_1, 2), val); + sc->io.limit = PCI_PPBIOLIMIT( + pci_read_config(dev, PCIR_IOLIMITH_1, 2), + pci_read_config(dev, PCIR_IOLIMITL_1, 1)); + max = 0xffffffff; + } else { + sc->io.base = PCI_PPBIOBASE(0, val); + sc->io.limit = PCI_PPBIOLIMIT(0, + pci_read_config(dev, PCIR_IOLIMITL_1, 1)); + max = 0xffff; + } + pcib_alloc_window(sc, &sc->io, SYS_RES_IOPORT, 0, max); + } + + /* Read the existing memory window. */ + sc->mem.valid = 1; + sc->mem.reg = PCIR_MEMBASE_1; + sc->mem.step = 20; + sc->mem.mask = WIN_MEM; + sc->mem.name = "memory"; + sc->mem.base = PCI_PPBMEMBASE(0, + pci_read_config(dev, PCIR_MEMBASE_1, 2)); + sc->mem.limit = PCI_PPBMEMLIMIT(0, + pci_read_config(dev, PCIR_MEMLIMIT_1, 2)); + pcib_alloc_window(sc, &sc->mem, SYS_RES_MEMORY, 0, 0xffffffff); + + /* Determine if the prefetchable memory window is implemented. */ + val = pci_read_config(dev, PCIR_PMBASEL_1, 2); + if (val == 0) { + /* + * If 'val' is zero, then only 32-bits of memory space + * are supported. + */ + pci_write_config(dev, PCIR_PMBASEL_1, 0xffff, 2); + if (pci_read_config(dev, PCIR_PMBASEL_1, 2) != 0) { + sc->pmem.valid = 1; + pci_write_config(dev, PCIR_PMBASEL_1, 0, 2); + } + } else + sc->pmem.valid = 1; + + /* Read the existing prefetchable memory window. */ + if (sc->pmem.valid) { + sc->pmem.reg = PCIR_PMBASEL_1; + sc->pmem.step = 20; + sc->pmem.mask = WIN_PMEM; + sc->pmem.name = "prefetch"; + if ((val & PCIM_BRPM_MASK) == PCIM_BRPM_64) { + sc->pmem.base = PCI_PPBMEMBASE( + pci_read_config(dev, PCIR_PMBASEH_1, 4), val); + sc->pmem.limit = PCI_PPBMEMLIMIT( + pci_read_config(dev, PCIR_PMLIMITH_1, 4), + pci_read_config(dev, PCIR_PMLIMITL_1, 2)); + max = 0xffffffffffffffff; + } else { + sc->pmem.base = PCI_PPBMEMBASE(0, val); + sc->pmem.limit = PCI_PPBMEMLIMIT(0, + pci_read_config(dev, PCIR_PMLIMITL_1, 2)); + max = 0xffffffff; + } + pcib_alloc_window(sc, &sc->pmem, SYS_RES_MEMORY, + RF_PREFETCHABLE, max); + } +} + +#else + /* * Is the prefetch window open (eg, can we allocate memory in it?) */ @@ -230,6 +474,7 @@ pcib_set_mem_decode(struct pcib_softc *s pci_write_config(dev, PCIR_PMLIMITH_1, pmemhi, 4); pci_write_config(dev, PCIR_PMLIMITL_1, sc->pmemlimit >> 16, 2); } +#endif /* * Get current bridge configuration. @@ -247,10 +492,12 @@ pcib_cfg_save(struct pcib_softc *sc) sc->subbus = pci_read_config(dev, PCIR_SUBBUS_1, 1); sc->bridgectl = pci_read_config(dev, PCIR_BRIDGECTL_1, 2); sc->seclat = pci_read_config(dev, PCIR_SECLAT_1, 1); +#ifndef NEW_PCIB if (sc->command & PCIM_CMD_PORTEN) pcib_get_io_decode(sc); if (sc->command & PCIM_CMD_MEMEN) pcib_get_mem_decode(sc); +#endif } /* @@ -269,10 +516,14 @@ pcib_cfg_restore(struct pcib_softc *sc) pci_write_config(dev, PCIR_SUBBUS_1, sc->subbus, 1); pci_write_config(dev, PCIR_BRIDGECTL_1, sc->bridgectl, 2); pci_write_config(dev, PCIR_SECLAT_1, sc->seclat, 1); +#ifdef NEW_PCIB + pcib_write_windows(sc, WIN_IO | WIN_MEM | WIN_PMEM); +#else if (sc->command & PCIM_CMD_PORTEN) pcib_set_io_decode(sc); if (sc->command & PCIM_CMD_MEMEN) pcib_set_mem_decode(sc); +#endif } /* @@ -389,18 +640,35 @@ pcib_attach_common(device_t dev) if ((pci_get_devid(dev) & 0xff00ffff) == 0x24008086 || pci_read_config(dev, PCIR_PROGIF, 1) == PCIP_BRIDGE_PCI_SUBTRACTIVE) sc->flags |= PCIB_SUBTRACTIVE; - + +#ifdef NEW_PCIB + pcib_probe_windows(sc); +#endif if (bootverbose) { device_printf(dev, " domain %d\n", sc->domain); device_printf(dev, " secondary bus %d\n", sc->secbus); device_printf(dev, " subordinate bus %d\n", sc->subbus); - device_printf(dev, " I/O decode 0x%x-0x%x\n", sc->iobase, sc->iolimit); +#ifdef NEW_PCIB + if (pcib_is_window_open(&sc->io)) + device_printf(dev, " I/O decode 0x%jx-0x%jx\n", + (uintmax_t)sc->io.base, (uintmax_t)sc->io.limit); + if (pcib_is_window_open(&sc->mem)) + device_printf(dev, " memory decode 0x%jx-0x%jx\n", + (uintmax_t)sc->mem.base, (uintmax_t)sc->mem.limit); + if (pcib_is_window_open(&sc->pmem)) + device_printf(dev, " prefetched decode 0x%jx-0x%jx\n", + (uintmax_t)sc->pmem.base, (uintmax_t)sc->pmem.limit); +#else + if (pcib_is_io_open(sc)) + device_printf(dev, " I/O decode 0x%x-0x%x\n", + sc->iobase, sc->iolimit); if (pcib_is_nonprefetch_open(sc)) device_printf(dev, " memory decode 0x%jx-0x%jx\n", (uintmax_t)sc->membase, (uintmax_t)sc->memlimit); if (pcib_is_prefetch_open(sc)) device_printf(dev, " prefetched decode 0x%jx-0x%jx\n", (uintmax_t)sc->pmembase, (uintmax_t)sc->pmemlimit); +#endif else device_printf(dev, " no prefetched decode\n"); if (sc->flags & PCIB_SUBTRACTIVE) @@ -502,6 +770,377 @@ pcib_write_ivar(device_t dev, device_t c return(ENOENT); } +#ifdef NEW_PCIB +static const char * +pcib_child_name(device_t child) +{ + static char buf[64]; + + if (device_get_nameunit(child) != NULL) + return (device_get_nameunit(child)); + snprintf(buf, sizeof(buf), "pci%d:%d:%d:%d", pci_get_domain(child), + pci_get_bus(child), pci_get_slot(child), pci_get_function(child)); + return (buf); +} + +/* + * Attempt to allocate a resource from the existing resources assigned + * to a window. + */ +static struct resource * +pcib_suballoc_resource(struct pcib_softc *sc, struct pcib_window *w, + device_t child, int type, int *rid, u_long start, u_long end, u_long count, + u_int flags) +{ + struct resource *res; + + if (!pcib_is_window_open(w)) + return (NULL); + + res = rman_reserve_resource(&w->rman, start, end, count, + flags & ~RF_ACTIVE, child); + if (res == NULL) + return (NULL); + + if (bootverbose) + device_printf(sc->dev, + "allocated %s range (%#lx-%#lx) for rid %x of %s\n", + w->name, rman_get_start(res), rman_get_end(res), *rid, + pcib_child_name(child)); + rman_set_rid(res, *rid); + + /* + * If the resource should be active, pass that request up the + * tree. This assumes the parent drivers can handle + * activating sub-allocated resources. + */ + if (flags & RF_ACTIVE) { + if (bus_activate_resource(child, type, *rid, res) != 0) { + rman_release_resource(res); + return (NULL); + } + } + + return (res); +} + +/* + * Attempt to grow a window to make room for a given resource request. + * The 'step' parameter is log_2 of the desired I/O window's alignment. + */ +static int +pcib_grow_window(struct pcib_softc *sc, struct pcib_window *w, int type, + u_long start, u_long end, u_long count, u_int flags) +{ + u_long align, start_free, end_free, front, back; + int error, rid; + + /* + * Clamp the desired resource range to the maximum address + * this window supports. Reject impossible requests. + */ + if (!w->valid) + return (EINVAL); + if (end > w->rman.rm_end) + end = w->rman.rm_end; + if (start + count - 1 > end || start + count < start) + return (EINVAL); + + /* + * If there is no resource at all, just try to allocate enough + * aligned space for this resource. + */ + if (w->res == NULL) { + if (RF_ALIGNMENT(flags) < w->step) { + flags &= ~RF_ALIGNMENT_MASK; + flags |= RF_ALIGNMENT_LOG2(w->step); + } + start &= ~((1ul << w->step) - 1); + end |= ((1ul << w->step) - 1); + count = roundup2(count, 1ul << w->step); + rid = w->reg; + w->res = bus_alloc_resource(sc->dev, type, &rid, start, end, + count, flags & ~RF_ACTIVE); + if (w->res == NULL) { + if (bootverbose) + device_printf(sc->dev, + "failed to allocate initial %s window (%#lx-%#lx,%#lx)\n", + w->name, start, end, count); + return (ENXIO); + } + if (bootverbose) + device_printf(sc->dev, + "allocated initial %s window of %#lx-%#lx\n", + w->name, rman_get_start(w->res), + rman_get_end(w->res)); + error = rman_manage_region(&w->rman, rman_get_start(w->res), + rman_get_end(w->res)); + if (error) { + if (bootverbose) + device_printf(sc->dev, + "failed to add initial %s window to rman\n", + w->name); + bus_release_resource(sc->dev, type, w->reg, w->res); + w->res = NULL; + return (error); + } + pcib_activate_window(sc, type); + goto updatewin; + } + + /* + * See if growing the window would help. Compute the minimum + * amount of address space needed on both the front and back + * ends of the existing window to satisfy the allocation. + * + * For each end, build a candidate region adjusting for the + * required alignment, etc. If there is a free region at the + * edge of the window, grow from the inner edge of the free + * region. Otherwise grow from the window boundary. + * + * XXX: Special case: if w->res is completely empty and the + * request size is larger than w->res, we should find the + * optimal aligned buffer containing w->res and allocate that. + */ + if (bootverbose) + device_printf(sc->dev, + "attempting to grow %s window for (%#lx-%#lx,%#lx)\n", + w->name, start, end, count); + align = 1ul << RF_ALIGNMENT(flags); + if (start < rman_get_start(w->res)) { + if (rman_first_free_region(&w->rman, &start_free, &end_free) != + 0 || start_free != rman_get_start(w->res)) + end_free = rman_get_start(w->res) - 1; + if (end_free > end) + end_free = end; + + /* Move end_free down until it is properly aligned. */ + end_free &= ~(align - 1); + front = end_free - count; + + /* + * The resource would now be allocated at (front, + * end_free). Ensure that fits in the (start, end) + * bounds. end_free is checked above. If 'front' is + * ok, ensure it is properly aligned for this window. + * Also check for underflow. + */ + if (front >= start && front <= end_free) { + if (bootverbose) + printf("\tfront candidate range: %#lx-%#lx\n", + front, end_free); + front &= (1ul << w->step) - 1; + front = rman_get_start(w->res) - front; + } else + front = 0; + } else + front = 0; + if (end > rman_get_end(w->res)) { + if (rman_last_free_region(&w->rman, &start_free, &end_free) != + 0 || end_free != rman_get_end(w->res)) + start_free = rman_get_end(w->res) + 1; + if (start_free < start) + start_free = start; + + /* Move start_free up until it is properly aligned. */ + start_free = roundup2(start_free, align); + back = start_free + count; + + /* + * The resource would now be allocated at (start_free, + * back). Ensure that fits in the (start, end) + * bounds. start_free is checked above. If 'back' is + * ok, ensure it is properly aligned for this window. + * Also check for overflow. + */ + if (back <= end && start_free <= back) { + if (bootverbose) + printf("\tback candidate range: %#lx-%#lx\n", + start_free, back); + back = roundup2(back, w->step) - 1; + back -= rman_get_end(w->res); + } else + back = 0; + } else + back = 0; + + /* + * Try to allocate the smallest needed region first. + * If that fails, fall back to the other region. + */ + error = ENOSPC; + while (front != 0 || back != 0) { + if (front != 0 && (front <= back || back == 0)) { + error = bus_adjust_resource(sc->dev, type, w->res, + rman_get_start(w->res) - front, + rman_get_end(w->res)); + if (error == 0) + break; + front = 0; + } else { + error = bus_adjust_resource(sc->dev, type, w->res, + rman_get_start(w->res), + rman_get_end(w->res) + back); + if (error == 0) + break; + back = 0; + } + } + + if (error) + return (error); + if (bootverbose) + device_printf(sc->dev, "grew %s window to %#lx-%#lx\n", + w->name, rman_get_start(w->res), rman_get_end(w->res)); + + /* Add the newly allocated region to the resource manager. */ + if (w->base != rman_get_start(w->res)) { + KASSERT(w->limit == rman_get_end(w->res), ("both ends moved")); + error = rman_manage_region(&w->rman, rman_get_start(w->res), + w->base - 1); + } else { + KASSERT(w->limit != rman_get_end(w->res), + ("neither end moved")); + error = rman_manage_region(&w->rman, w->limit + 1, + rman_get_end(w->res)); + } + if (error) { + if (bootverbose) + device_printf(sc->dev, + "failed to expand %s resource manager\n", w->name); + bus_adjust_resource(sc->dev, type, w->res, w->base, w->limit); + return (error); + } + +updatewin: + /* Save the new window. */ + w->base = rman_get_start(w->res); + w->limit = rman_get_end(w->res); + KASSERT((w->base & ((1ul << w->step) - 1)) == 0, + ("start address is not aligned")); + KASSERT((w->limit & ((1ul << w->step) - 1)) == (1ul << w->step) - 1, + ("end address is not aligned")); + pcib_write_windows(sc, w->mask); + return (0); +} + +/* + * We have to trap resource allocation requests and ensure that the bridge + * is set up to, or capable of handling them. + */ +struct resource * +pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, + u_long start, u_long end, u_long count, u_int flags) +{ + struct pcib_softc *sc; + struct resource *r; + + sc = device_get_softc(dev); + + /* + * VGA resources are decoded iff the VGA enable bit is set in + * the bridge control register. VGA resources do not fall into + * the resource windows and are passed up to the parent. + */ + if ((type == SYS_RES_IOPORT && pci_is_vga_ioport_range(start, end)) || + (type == SYS_RES_MEMORY && pci_is_vga_memory_range(start, end))) { + if (sc->bridgectl & PCIB_BCR_VGA_ENABLE) + return (bus_generic_alloc_resource(dev, child, type, + rid, start, end, count, flags)); + else + return (NULL); + } + + switch (type) { + case SYS_RES_IOPORT: + r = pcib_suballoc_resource(sc, &sc->io, child, type, rid, start, + end, count, flags); + if (r != NULL) + break; + if (pcib_grow_window(sc, &sc->io, type, start, end, count, + flags) == 0) + r = pcib_suballoc_resource(sc, &sc->io, child, type, + rid, start, end, count, flags); + break; + case SYS_RES_MEMORY: + /* + * For prefetchable resources, prefer the prefetchable + * memory window, but fall back to the regular memory + * window if that fails. Try both windows before + * attempting to grow a window in case the firmware + * has used a range in the regular memory window to + * map a prefetchable BAR. + */ + if (flags & RF_PREFETCHABLE) { + r = pcib_suballoc_resource(sc, &sc->pmem, child, type, + rid, start, end, count, flags); + if (r != NULL) + break; + } + r = pcib_suballoc_resource(sc, &sc->mem, child, type, rid, + start, end, count, flags); + if (r != NULL) + break; + if (flags & RF_PREFETCHABLE) { + if (pcib_grow_window(sc, &sc->pmem, type, start, end, + count, flags) == 0) { + r = pcib_suballoc_resource(sc, &sc->pmem, child, + type, rid, start, end, count, flags); + if (r != NULL) + break; + } + } + if (pcib_grow_window(sc, &sc->mem, type, start, end, count, + flags & ~RF_PREFETCHABLE) == 0) + r = pcib_suballoc_resource(sc, &sc->mem, child, type, + rid, start, end, count, flags); + break; + default: + return (bus_generic_alloc_resource(dev, child, type, rid, + start, end, count, flags)); + } + + /* + * If attempts to suballocate from the window fail but this is a + * subtractive bridge, pass the request up the tree. + */ + if (sc->flags & PCIB_SUBTRACTIVE && r == NULL) + return (bus_generic_alloc_resource(dev, child, type, rid, + start, end, count, flags)); + return (r); +} + +int +pcib_adjust_resource(device_t bus, device_t child, int type, struct resource *r, + u_long start, u_long end) +{ + struct pcib_softc *sc; + + sc = device_get_softc(bus); + if (pcib_is_resource_managed(sc, type, r)) + return (rman_adjust_resource(r, start, end)); + return (bus_generic_adjust_resource(bus, child, type, r, start, end)); +} + +int +pcib_release_resource(device_t dev, device_t child, int type, int rid, + struct resource *r) +{ + struct pcib_softc *sc; + int error; + + sc = device_get_softc(dev); + if (pcib_is_resource_managed(sc, type, r)) { + if (rman_get_flags(r) & RF_ACTIVE) { + error = bus_deactivate_resource(child, type, rid, r); + if (error) + return (error); + } + return (rman_release_resource(r)); + } + return (bus_generic_release_resource(dev, child, type, rid, r)); +} +#else /* * We have to trap resource allocation requests and ensure that the bridge * is set up to, or capable of handling them. @@ -657,6 +1296,7 @@ pcib_alloc_resource(device_t dev, device return (bus_generic_alloc_resource(dev, child, type, rid, start, end, count, flags)); } +#endif /* * PCIB interface. Modified: head/sys/dev/pci/pcib_private.h ============================================================================== --- head/sys/dev/pci/pcib_private.h Tue May 3 16:36:39 2011 (r221392) +++ head/sys/dev/pci/pcib_private.h Tue May 3 17:37:24 2011 (r221393) @@ -39,6 +39,24 @@ */ DECLARE_CLASS(pcib_driver); +#ifdef NEW_PCIB +#define WIN_IO 0x1 +#define WIN_MEM 0x2 +#define WIN_PMEM 0x4 + +struct pcib_window { + pci_addr_t base; /* base address */ + pci_addr_t limit; /* topmost address */ + struct rman rman; + struct resource *res; + int reg; /* resource id from parent */ + int valid; + int mask; /* WIN_* bitmask of this window */ + int step; /* log_2 of window granularity */ + const char *name; +}; +#endif + /* * Bridge-specific data. */ @@ -53,12 +71,18 @@ struct pcib_softc u_int pribus; /* primary bus number */ u_int secbus; /* secondary bus number */ u_int subbus; /* subordinate bus number */ +#ifdef NEW_PCIB + struct pcib_window io; /* I/O port window */ + struct pcib_window mem; /* memory window */ + struct pcib_window pmem; /* prefetchable memory window */ +#else pci_addr_t pmembase; /* base address of prefetchable memory */ pci_addr_t pmemlimit; /* topmost address of prefetchable memory */ pci_addr_t membase; /* base address of memory window */ pci_addr_t memlimit; /* topmost address of memory window */ uint32_t iobase; /* base address of port window */ uint32_t iolimit; /* topmost address of port window */ +#endif uint16_t secstat; /* secondary bus status register */ uint16_t bridgectl; /* bridge control register */ uint8_t seclat; /* secondary bus latency timer */ @@ -74,6 +98,12 @@ int pcib_read_ivar(device_t dev, device int pcib_write_ivar(device_t dev, device_t child, int which, uintptr_t value); struct resource *pcib_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags); +#ifdef NEW_PCIB +int pcib_adjust_resource(device_t bus, device_t child, int type, + struct resource *r, u_long start, u_long end); +int pcib_release_resource(device_t dev, device_t child, int type, int rid, + struct resource *r); +#endif int pcib_maxslots(device_t dev); uint32_t pcib_read_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, int width); void pcib_write_config(device_t dev, u_int b, u_int s, u_int f, u_int reg, uint32_t val, int width); Modified: head/sys/i386/pci/pci_bus.c ============================================================================== --- head/sys/i386/pci/pci_bus.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/i386/pci/pci_bus.c Tue May 3 17:37:24 2011 (r221393) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/sparc64/pci/apb.c ============================================================================== --- head/sys/sparc64/pci/apb.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/sparc64/pci/apb.c Tue May 3 17:37:24 2011 (r221393) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/sparc64/pci/ofw_pcib.c ============================================================================== --- head/sys/sparc64/pci/ofw_pcib.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/sparc64/pci/ofw_pcib.c Tue May 3 17:37:24 2011 (r221393) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/x86/pci/qpi.c ============================================================================== --- head/sys/x86/pci/qpi.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/x86/pci/qpi.c Tue May 3 17:37:24 2011 (r221393) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include Modified: head/sys/x86/x86/mptable_pci.c ============================================================================== --- head/sys/x86/x86/mptable_pci.c Tue May 3 16:36:39 2011 (r221392) +++ head/sys/x86/x86/mptable_pci.c Tue May 3 17:37:24 2011 (r221393) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include From owner-svn-src-head@FreeBSD.ORG Tue May 3 18:23:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45E141065670; Tue, 3 May 2011 18:23:12 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3560A8FC15; Tue, 3 May 2011 18:23:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43INCON005566; Tue, 3 May 2011 18:23:12 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43INCON005563; Tue, 3 May 2011 18:23:12 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105031823.p43INCON005563@svn.freebsd.org> From: John Baldwin Date: Tue, 3 May 2011 18:23:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221394 - in head/sys: amd64/conf i386/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 18:23:12 -0000 Author: jhb Date: Tue May 3 18:23:11 2011 New Revision: 221394 URL: http://svn.freebsd.org/changeset/base/221394 Log: Enable the new PCI-PCI bridge driver on amd64 and i386 by default. It can be disabled via 'nooptions NEW_PCIB'. Modified: head/sys/amd64/conf/DEFAULTS head/sys/i386/conf/DEFAULTS Modified: head/sys/amd64/conf/DEFAULTS ============================================================================== --- head/sys/amd64/conf/DEFAULTS Tue May 3 17:37:24 2011 (r221393) +++ head/sys/amd64/conf/DEFAULTS Tue May 3 18:23:11 2011 (r221394) @@ -20,3 +20,5 @@ options GEOM_PART_BSD options GEOM_PART_EBR options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR + +options NEW_PCIB Modified: head/sys/i386/conf/DEFAULTS ============================================================================== --- head/sys/i386/conf/DEFAULTS Tue May 3 17:37:24 2011 (r221393) +++ head/sys/i386/conf/DEFAULTS Tue May 3 18:23:11 2011 (r221394) @@ -28,3 +28,5 @@ options GEOM_PART_MBR # enable support for native hardware options NATIVE device atpic + +options NEW_PCIB From owner-svn-src-head@FreeBSD.ORG Tue May 3 18:54:18 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0795106566C; Tue, 3 May 2011 18:54:18 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B5CE68FC12; Tue, 3 May 2011 18:54:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43IsIKE006819; Tue, 3 May 2011 18:54:18 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43IsIJ5006816; Tue, 3 May 2011 18:54:18 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105031854.p43IsIJ5006816@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Tue, 3 May 2011 18:54:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221397 - in head/sys: kern sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 18:54:19 -0000 Author: ae Date: Tue May 3 18:54:18 2011 New Revision: 221397 URL: http://svn.freebsd.org/changeset/base/221397 Log: Add make_dev_alias_p() function. It is similar to make_dev_alias(), but it may return an error like make_dev_p() does. Reviewed by: kib (previous version) MFC after: 2 weeks Modified: head/sys/kern/kern_conf.c head/sys/sys/conf.h Modified: head/sys/kern/kern_conf.c ============================================================================== --- head/sys/kern/kern_conf.c Tue May 3 18:48:06 2011 (r221396) +++ head/sys/kern/kern_conf.c Tue May 3 18:54:18 2011 (r221397) @@ -893,23 +893,34 @@ dev_depends(struct cdev *pdev, struct cd dev_unlock(); } -struct cdev * -make_dev_alias(struct cdev *pdev, const char *fmt, ...) +static int +make_dev_alias_v(int flags, struct cdev **cdev, struct cdev *pdev, + const char *fmt, va_list ap) { struct cdev *dev; - va_list ap; int error; - KASSERT(pdev != NULL, ("NULL pdev")); - dev = devfs_alloc(MAKEDEV_WAITOK); + KASSERT(pdev != NULL, ("make_dev_alias_v: pdev is NULL")); + KASSERT((flags & MAKEDEV_WAITOK) == 0 || (flags & MAKEDEV_NOWAIT) == 0, + ("make_dev_alias_v: both WAITOK and NOWAIT specified")); + KASSERT((flags & ~(MAKEDEV_WAITOK | MAKEDEV_NOWAIT | + MAKEDEV_CHECKNAME)) == 0, + ("make_dev_alias_v: invalid flags specified (flags=%02x)", flags)); + + dev = devfs_alloc(flags); + if (dev == NULL) + return (ENOMEM); dev_lock(); dev->si_flags |= SI_ALIAS; - va_start(ap, fmt); error = prep_devname(dev, fmt, ap); - va_end(ap); if (error != 0) { - panic("make_dev_alias: bad si_name (error=%d, si_name=%s)", - error, dev->si_name); + if ((flags & MAKEDEV_CHECKNAME) == 0) { + panic("make_dev_alias_v: bad si_name " + "(error=%d, si_name=%s)", error, dev->si_name); + } + dev_unlock(); + devfs_free(dev); + return (error); } dev->si_flags |= SI_NAMED; devfs_create(dev); @@ -917,11 +928,41 @@ make_dev_alias(struct cdev *pdev, const clean_unrhdrl(devfs_inos); dev_unlock(); - notify_create(dev, MAKEDEV_WAITOK); + notify_create(dev, flags); + *cdev = dev; + + return (0); +} +struct cdev * +make_dev_alias(struct cdev *pdev, const char *fmt, ...) +{ + struct cdev *dev; + va_list ap; + int res; + + va_start(ap, fmt); + res = make_dev_alias_v(MAKEDEV_WAITOK, &dev, pdev, fmt, ap); + va_end(ap); + + KASSERT(res == 0 && dev != NULL, + ("make_dev_alias: failed make_dev_alias_v (error=%d)", res)); return (dev); } +int +make_dev_alias_p(int flags, struct cdev **cdev, struct cdev *pdev, + const char *fmt, ...) +{ + va_list ap; + int res; + + va_start(ap, fmt); + res = make_dev_alias_v(flags, cdev, pdev, fmt, ap); + va_end(ap); + return (res); +} + static void destroy_devl(struct cdev *dev) { Modified: head/sys/sys/conf.h ============================================================================== --- head/sys/sys/conf.h Tue May 3 18:48:06 2011 (r221396) +++ head/sys/sys/conf.h Tue May 3 18:54:18 2011 (r221397) @@ -278,6 +278,8 @@ int make_dev_p(int _flags, struct cdev * const char *_fmt, ...) __printflike(8, 9); struct cdev *make_dev_alias(struct cdev *_pdev, const char *_fmt, ...) __printflike(2, 3); +int make_dev_alias_p(int _flags, struct cdev **_cdev, struct cdev *_pdev, + const char *_fmt, ...) __printflike(4, 5); void dev_lock(void); void dev_unlock(void); void setconf(void); From owner-svn-src-head@FreeBSD.ORG Tue May 3 18:55:16 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CCBB3106564A; Tue, 3 May 2011 18:55:16 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A22E08FC0A; Tue, 3 May 2011 18:55:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43ItG2r006895; Tue, 3 May 2011 18:55:16 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43ItGoP006893; Tue, 3 May 2011 18:55:16 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105031855.p43ItGoP006893@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Tue, 3 May 2011 18:55:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221398 - head/share/man/man9 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 18:55:16 -0000 Author: ae Date: Tue May 3 18:55:16 2011 New Revision: 221398 URL: http://svn.freebsd.org/changeset/base/221398 Log: Document make_dev_alias_p(). MFC after: 2 weeks Modified: head/share/man/man9/make_dev.9 Modified: head/share/man/man9/make_dev.9 ============================================================================== --- head/share/man/man9/make_dev.9 Tue May 3 18:54:18 2011 (r221397) +++ head/share/man/man9/make_dev.9 Tue May 3 18:55:16 2011 (r221398) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 24, 2010 +.Dd May 03, 2011 .Dt MAKE_DEV 9 .Os .Sh NAME @@ -33,6 +33,7 @@ .Nm make_dev_credf , .Nm make_dev_p , .Nm make_dev_alias , +.Nm make_dev_alias_p , .Nm destroy_dev , .Nm destroy_dev_sched , .Nm destroy_dev_sched_cb , @@ -54,6 +55,8 @@ and DEVFS registration for devices .Fn make_dev_p "int flags" "struct cdev **cdev" "struct cdevsw *devsw" "struct ucred *cr" "uid_t uid" "gid_t gid" "int mode" "const char *fmt" ... .Ft struct cdev * .Fn make_dev_alias "struct cdev *pdev" "const char *fmt" ... +.Ft int +.Fn make_dev_alias_p "int flags" "struct cdev **cdev" "struct cdev *pdev" "const char *fmt" ... .Ft void .Fn destroy_dev "struct cdev *dev" .Ft void @@ -149,6 +152,15 @@ created device will be never destroyed return an error if the device name is invalid or already exists .El .Pp +Only +.Dv MAKEDEV_NOWAIT , +.Dv MAKEDEV_WAITOK +and +.Dv MAKEDEV_CHECKNAME +values are accepted for the +.Fn make_dev_alias_p +function. +.Pp The .Dv MAKEDEV_WAITOK flag is assumed if none of @@ -214,6 +226,13 @@ It is an error to call prior to calling .Fn make_dev . .Pp +.Fn make_dev_alias_p +function is similar to +.Fn make_dev_alias +but it takes a pointer to the resulting +.Ft *cdev +as an argument and may return an error. +.Pp The .Fa cdev returned by @@ -321,6 +340,8 @@ pointer, otherwise it will return .Sh ERRORS The .Fn make_dev_p +and +.Fn make_dev_alias_p call will fail and the device will be not registered if: .Bl -tag -width Er .It Bq Er ENOMEM From owner-svn-src-head@FreeBSD.ORG Tue May 3 19:12:42 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D6AF106566B; Tue, 3 May 2011 19:12:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6D5C58FC14; Tue, 3 May 2011 19:12:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43JCgGn007756; Tue, 3 May 2011 19:12:42 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43JCg5N007754; Tue, 3 May 2011 19:12:42 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201105031912.p43JCg5N007754@svn.freebsd.org> From: Alexander Motin Date: Tue, 3 May 2011 19:12:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221400 - head/sys/geom X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 19:12:42 -0000 Author: mav Date: Tue May 3 19:12:42 2011 New Revision: 221400 URL: http://svn.freebsd.org/changeset/base/221400 Log: Use make_dev_alias_p() added in r221397 to create alias dev entry. It removes panic in case if alias name is already busy for some reason. Modified: head/sys/geom/geom_dev.c Modified: head/sys/geom/geom_dev.c ============================================================================== --- head/sys/geom/geom_dev.c Tue May 3 18:57:46 2011 (r221399) +++ head/sys/geom/geom_dev.c Tue May 3 19:12:42 2011 (r221400) @@ -148,7 +148,8 @@ g_dev_taste(struct g_class *mp, struct g snprintf(buf, sizeof(buf), "%s%s", val, gp->name + len); freeenv(val); - adev = make_dev_alias(dev, buf); + make_dev_alias_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, + &adev, dev, "%s", buf); break; } } From owner-svn-src-head@FreeBSD.ORG Tue May 3 19:33:07 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 080E61065674; Tue, 3 May 2011 19:33:07 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EC49E8FC16; Tue, 3 May 2011 19:33:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43JX6YT009094; Tue, 3 May 2011 19:33:06 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43JX6V7009091; Tue, 3 May 2011 19:33:06 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201105031933.p43JX6V7009091@svn.freebsd.org> From: Xin LI Date: Tue, 3 May 2011 19:33:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221401 - head/lib/libc/string X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 19:33:07 -0000 Author: delphij Date: Tue May 3 19:33:06 2011 New Revision: 221401 URL: http://svn.freebsd.org/changeset/base/221401 Log: Fix prototype for ffsll(3) and fls(3). PR: docs/156796 Submitted by: Jean-Yves Migeon MFC after: 3 days Modified: head/lib/libc/string/ffs.3 Modified: head/lib/libc/string/ffs.3 ============================================================================== --- head/lib/libc/string/ffs.3 Tue May 3 19:12:42 2011 (r221400) +++ head/lib/libc/string/ffs.3 Tue May 3 19:33:06 2011 (r221401) @@ -30,7 +30,7 @@ .\" @(#)ffs.3 8.2 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd October 26, 2008 +.Dd May 3, 2011 .Dt FFS 3 .Os .Sh NAME @@ -50,8 +50,8 @@ .Ft int .Fn ffsl "long value" .Ft int -.Ft int .Fn ffsll "long long value" +.Ft int .Fn fls "int value" .Ft int .Fn flsl "long value" From owner-svn-src-head@FreeBSD.ORG Tue May 3 19:51:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F35B106566C; Tue, 3 May 2011 19:51:30 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2B2838FC08; Tue, 3 May 2011 19:51:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43JpUNO010252; Tue, 3 May 2011 19:51:30 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43JpTnT010228; Tue, 3 May 2011 19:51:29 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201105031951.p43JpTnT010228@svn.freebsd.org> From: Marius Strobl Date: Tue, 3 May 2011 19:51:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221407 - in head/sys: dev/ae dev/age dev/alc dev/ale dev/bce dev/bfe dev/bge dev/dc dev/ed dev/et dev/fxp dev/hme dev/jme dev/lge dev/mii dev/nfe dev/nge dev/nve dev/pcn dev/sf dev/sge... X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 19:51:30 -0000 Author: marius Date: Tue May 3 19:51:29 2011 New Revision: 221407 URL: http://svn.freebsd.org/changeset/base/221407 Log: - Remove attempts to implement setting of BMCR_LOOP/MIIF_NOLOOP (reporting IFM_LOOP based on BMCR_LOOP is left in place though as it might provide useful for debugging). For most mii(4) drivers it was unclear whether the PHYs driven by them actually support loopback or not. Moreover, typically loopback mode also needs to be activated on the MAC, which none of the Ethernet drivers using mii(4) implements. Given that loopback media has no real use (and obviously hardly had a chance to actually work) besides for driver development (which just loopback mode should be sufficient for though, i.e one doesn't necessary need support for loopback media) support for it is just dropped as both NetBSD and OpenBSD already did quite some time ago. - Let mii_phy_add_media() also announce the support of IFM_NONE. - Restructure the PHY entry points to use a structure of entry points instead of discrete function pointers, and extend this to include a "reset" entry point. Make sure any PHY-specific reset routine is always used, and provide one for lxtphy(4) which disables MII interrupts (as is done for a few other PHYs we have drivers for). This includes changing NIC drivers which previously just called the generic mii_phy_reset() to now actually call the PHY-specific reset routine, which might be crucial in some cases. While at it, the redundant checks in these NIC drivers for mii->mii_instance not being zero before calling the reset routines were removed because as soon as one PHY driver attaches mii->mii_instance is incremented and we hardly can end up in their media change callbacks etc if no PHY driver has attached as mii_attach() would have failed in that case and not attach a miibus(4) instance. Consequently, NIC drivers now no longer should call mii_phy_reset() directly, so it was removed from EXPORT_SYMS. - Add a mii_phy_dev_attach() as a companion helper to mii_phy_dev_probe(). The purpose of that function is to perform the common steps to attach a PHY driver instance and to hook it up to the miibus(4) instance and to optionally also handle the probing, addition and initialization of the supported media. So all a PHY driver without any special requirements has to do in its bus attach method is to call mii_phy_dev_attach() along with PHY-specific MIIF_* flags, a pointer to its PHY functions and the add_media set to one. All PHY drivers were updated to take advantage of mii_phy_dev_attach() as appropriate. Along with these changes the capability mask was added to the mii_softc structure so PHY drivers taking advantage of mii_phy_dev_attach() but still handling media on their own do not need to fiddle with the MII attach arguments anyway. - Keep track of the PHY offset in the mii_softc structure. This is done for compatibility with NetBSD/OpenBSD. - Keep track of the PHY's OUI, model and revision in the mii_softc structure. Several PHY drivers require this information also after attaching and previously had to wrap their own softc around mii_softc. NetBSD/OpenBSD also keep track of the model and revision on their mii_softc structure. All PHY drivers were updated to take advantage as appropriate. - Convert the mebers of the MII data structure to unsigned where appropriate. This is partly inspired by NetBSD/OpenBSD. - According to IEEE 802.3-2002 the bits actually have to be reversed when mapping an OUI to the MII ID registers. All PHY drivers and miidevs where changed as necessary. Actually this now again allows to largely share miidevs with NetBSD, which fixed this problem already 9 years ago. Consequently miidevs was synced as far as possible. - Add MIIF_NOMANPAUSE and mii_phy_flowstatus() calls to drivers that weren't explicitly converted to support flow control before. It's unclear whether flow control actually works with these but typically it should and their net behavior should be more correct with these changes in place than without if the MAC driver sets MIIF_DOPAUSE. Obtained from: NetBSD (partially) Reviewed by: yongari (earlier version), silence on arch@ and net@ Modified: head/sys/dev/ae/if_ae.c head/sys/dev/age/if_age.c head/sys/dev/alc/if_alc.c head/sys/dev/ale/if_ale.c head/sys/dev/bce/if_bce.c head/sys/dev/bfe/if_bfe.c head/sys/dev/bge/if_bge.c head/sys/dev/dc/dcphy.c head/sys/dev/dc/pnphy.c head/sys/dev/ed/if_ed_pccard.c head/sys/dev/et/if_et.c head/sys/dev/fxp/if_fxp.c head/sys/dev/hme/if_hme.c head/sys/dev/jme/if_jme.c head/sys/dev/lge/if_lge.c head/sys/dev/mii/acphy.c head/sys/dev/mii/amphy.c head/sys/dev/mii/atphy.c head/sys/dev/mii/axphy.c head/sys/dev/mii/bmtphy.c head/sys/dev/mii/brgphy.c head/sys/dev/mii/ciphy.c head/sys/dev/mii/e1000phy.c head/sys/dev/mii/exphy.c head/sys/dev/mii/gentbi.c head/sys/dev/mii/icsphy.c head/sys/dev/mii/inphy.c head/sys/dev/mii/ip1000phy.c head/sys/dev/mii/jmphy.c head/sys/dev/mii/lxtphy.c head/sys/dev/mii/mii.c head/sys/dev/mii/mii.h head/sys/dev/mii/mii_physubr.c head/sys/dev/mii/miidevs head/sys/dev/mii/miivar.h head/sys/dev/mii/mlphy.c head/sys/dev/mii/nsgphy.c head/sys/dev/mii/nsphy.c head/sys/dev/mii/nsphyter.c head/sys/dev/mii/pnaphy.c head/sys/dev/mii/qsphy.c head/sys/dev/mii/rdcphy.c head/sys/dev/mii/rgephy.c head/sys/dev/mii/rlphy.c head/sys/dev/mii/rlswitch.c head/sys/dev/mii/ruephy.c head/sys/dev/mii/smcphy.c head/sys/dev/mii/tdkphy.c head/sys/dev/mii/tlphy.c head/sys/dev/mii/truephy.c head/sys/dev/mii/ukphy.c head/sys/dev/mii/xmphy.c head/sys/dev/nfe/if_nfe.c head/sys/dev/nge/if_nge.c head/sys/dev/nve/if_nve.c head/sys/dev/pcn/if_pcn.c head/sys/dev/sf/if_sf.c head/sys/dev/sge/if_sge.c head/sys/dev/sis/if_sis.c head/sys/dev/ste/if_ste.c head/sys/dev/tx/if_tx.c head/sys/dev/usb/net/if_aue.c head/sys/dev/usb/net/if_axe.c head/sys/dev/usb/net/if_rue.c head/sys/dev/usb/net/if_udav.c head/sys/dev/vr/if_vr.c head/sys/dev/vte/if_vte.c head/sys/dev/wb/if_wb.c head/sys/mips/atheros/if_arge.c head/sys/mips/cavium/octe/octe.c head/sys/mips/idt/if_kr.c head/sys/modules/mii/Makefile Modified: head/sys/dev/ae/if_ae.c ============================================================================== --- head/sys/dev/ae/if_ae.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/ae/if_ae.c Tue May 3 19:51:29 2011 (r221407) @@ -903,10 +903,8 @@ ae_mediachange(struct ifnet *ifp) KASSERT(sc != NULL, ("[ae, %d]: sc is NULL", __LINE__)); AE_LOCK(sc); mii = device_get_softc(sc->miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(mii_sc, &mii->mii_phys, mii_list) - mii_phy_reset(mii_sc); - } + LIST_FOREACH(mii_sc, &mii->mii_phys, mii_list) + PHY_RESET(mii_sc); error = mii_mediachg(mii); AE_UNLOCK(sc); Modified: head/sys/dev/age/if_age.c ============================================================================== --- head/sys/dev/age/if_age.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/age/if_age.c Tue May 3 19:51:29 2011 (r221407) @@ -301,10 +301,8 @@ age_mediachange(struct ifnet *ifp) sc = ifp->if_softc; AGE_LOCK(sc); mii = device_get_softc(sc->age_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); error = mii_mediachg(mii); AGE_UNLOCK(sc); Modified: head/sys/dev/alc/if_alc.c ============================================================================== --- head/sys/dev/alc/if_alc.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/alc/if_alc.c Tue May 3 19:51:29 2011 (r221407) @@ -365,10 +365,8 @@ alc_mediachange(struct ifnet *ifp) sc = ifp->if_softc; ALC_LOCK(sc); mii = device_get_softc(sc->alc_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); error = mii_mediachg(mii); ALC_UNLOCK(sc); Modified: head/sys/dev/ale/if_ale.c ============================================================================== --- head/sys/dev/ale/if_ale.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/ale/if_ale.c Tue May 3 19:51:29 2011 (r221407) @@ -286,10 +286,8 @@ ale_mediachange(struct ifnet *ifp) sc = ifp->if_softc; ALE_LOCK(sc); mii = device_get_softc(sc->ale_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); error = mii_mediachg(mii); ALE_UNLOCK(sc); Modified: head/sys/dev/bce/if_bce.c ============================================================================== --- head/sys/dev/bce/if_bce.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/bce/if_bce.c Tue May 3 19:51:29 2011 (r221407) @@ -6141,6 +6141,7 @@ bce_ifmedia_upd_locked(struct ifnet *ifp { struct bce_softc *sc = ifp->if_softc; struct mii_data *mii; + struct mii_softc *miisc; int error; DBENTER(BCE_VERBOSE_PHY); @@ -6153,12 +6154,8 @@ bce_ifmedia_upd_locked(struct ifnet *ifp /* Make sure the MII bus has been enumerated. */ if (mii) { sc->bce_link_up = FALSE; - if (mii->mii_instance) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); error = mii_mediachg(mii); } Modified: head/sys/dev/bfe/if_bfe.c ============================================================================== --- head/sys/dev/bfe/if_bfe.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/bfe/if_bfe.c Tue May 3 19:51:29 2011 (r221407) @@ -1736,18 +1736,15 @@ bfe_ifmedia_upd(struct ifnet *ifp) { struct bfe_softc *sc; struct mii_data *mii; + struct mii_softc *miisc; int error; sc = ifp->if_softc; BFE_LOCK(sc); mii = device_get_softc(sc->bfe_miibus); - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); error = mii_mediachg(mii); BFE_UNLOCK(sc); Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/bge/if_bge.c Tue May 3 19:51:29 2011 (r221407) @@ -4854,9 +4854,8 @@ bge_ifmedia_upd_locked(struct ifnet *ifp sc->bge_link_evt++; mii = device_get_softc(sc->bge_miibus); - if (mii->mii_instance) - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); mii_mediachg(mii); /* Modified: head/sys/dev/dc/dcphy.c ============================================================================== --- head/sys/dev/dc/dcphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/dc/dcphy.c Tue May 3 19:51:29 2011 (r221407) @@ -114,6 +114,12 @@ static void dcphy_status(struct mii_soft static void dcphy_reset(struct mii_softc *); static int dcphy_auto(struct mii_softc *); +static const struct mii_phy_funcs dcphy_funcs = { + dcphy_service, + dcphy_status, + dcphy_reset +}; + static int dcphy_probe(device_t dev) { @@ -138,30 +144,16 @@ static int dcphy_attach(device_t dev) { struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; struct dc_softc *dc_sc; device_t brdev; sc = device_get_softc(dev); - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = dcphy_service; - sc->mii_pdata = mii; - /* - * Apparently, we can neither isolate nor do loopback. - */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + mii_phy_dev_attach(dev, MIIF_NOISOLATE | MIIF_NOMANPAUSE, + &dcphy_funcs, 0); - /*dcphy_reset(sc);*/ - dc_sc = mii->mii_ifp->if_softc; + /*PHY_RESET(sc);*/ + dc_sc = sc->mii_pdata->mii_ifp->if_softc; CSR_WRITE_4(dc_sc, DC_10BTSTAT, 0); CSR_WRITE_4(dc_sc, DC_10BTCTRL, 0); @@ -182,7 +174,7 @@ dcphy_attach(device_t dev) break; } - sc->mii_capabilities &= ma->mii_capmask; + sc->mii_capabilities &= sc->mii_capmask; device_printf(dev, " "); mii_phy_add_media(sc); printf("\n"); @@ -219,11 +211,11 @@ dcphy_service(struct mii_softc *sc, stru switch (IFM_SUBTYPE(ife->ifm_media)) { case IFM_AUTO: - /*dcphy_reset(sc);*/ - (void) dcphy_auto(sc); + /*PHY_RESET(sc);*/ + (void)dcphy_auto(sc); break; case IFM_100_TX: - dcphy_reset(sc); + PHY_RESET(sc); DC_CLRBIT(dc_sc, DC_10BTCTRL, DC_TCTL_AUTONEGENBL); mode |= DC_NETCFG_PORTSEL | DC_NETCFG_PCS | DC_NETCFG_SCRAMBLER; @@ -292,7 +284,7 @@ dcphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - dcphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); Modified: head/sys/dev/dc/pnphy.c ============================================================================== --- head/sys/dev/dc/pnphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/dc/pnphy.c Tue May 3 19:51:29 2011 (r221407) @@ -90,6 +90,13 @@ DRIVER_MODULE(pnphy, miibus, pnphy_drive static int pnphy_service(struct mii_softc *, struct mii_data *, int); static void pnphy_status(struct mii_softc *); +static void pnphy_reset(struct mii_softc *); + +static const struct mii_phy_funcs pnphy_funcs = { + pnphy_service, + pnphy_status, + pnphy_reset +}; static int pnphy_probe(device_t dev) @@ -115,29 +122,15 @@ static int pnphy_attach(device_t dev) { struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; sc = device_get_softc(dev); - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = pnphy_service; - sc->mii_pdata = mii; - /* - * Apparently, we can neither isolate nor do loopback. - */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP; + mii_phy_dev_attach(dev, MIIF_NOISOLATE | MIIF_NOMANPAUSE, + &pnphy_funcs, 0); sc->mii_capabilities = BMSR_100TXFDX | BMSR_100TXHDX | BMSR_10TFDX | BMSR_10THDX; - sc->mii_capabilities &= ma->mii_capmask; + sc->mii_capabilities &= sc->mii_capmask; device_printf(dev, " "); mii_phy_add_media(sc); printf("\n"); @@ -194,7 +187,7 @@ pnphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - pnphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -226,3 +219,9 @@ pnphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_HDX; } + +static void +pnphy_reset(struct mii_softc *sc __unused) +{ + +} Modified: head/sys/dev/ed/if_ed_pccard.c ============================================================================== --- head/sys/dev/ed/if_ed_pccard.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/ed/if_ed_pccard.c Tue May 3 19:51:29 2011 (r221407) @@ -401,17 +401,9 @@ ed_pccard_kick_phy(struct ed_softc *sc) struct mii_softc *miisc; struct mii_data *mii; - /* - * Many of the PHYs that wind up on PC Cards are weird in - * this way. Generally, we don't need to worry so much about - * the Isolation protocol since there's only one PHY in - * these designs, so this workaround is reasonable. - */ mii = device_get_softc(sc->miibus); - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) { - miisc->mii_flags |= MIIF_FORCEANEG; - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); return (mii_mediachg(mii)); } @@ -582,13 +574,13 @@ ed_pccard_attach(device_t dev) ed_pccard_dl100xx_mii_reset(sc); (void)mii_attach(dev, &sc->miibus, sc->ifp, ed_ifmedia_upd, ed_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, - MII_OFFSET_ANY, 0); + MII_OFFSET_ANY, MIIF_FORCEANEG); } else if (sc->chip_type == ED_CHIP_TYPE_AX88190 || sc->chip_type == ED_CHIP_TYPE_AX88790 || sc->chip_type == ED_CHIP_TYPE_TC5299J) { error = mii_attach(dev, &sc->miibus, sc->ifp, ed_ifmedia_upd, ed_ifmedia_sts, BMSR_DEFCAPMASK, MII_PHY_ANY, - MII_OFFSET_ANY, 0); + MII_OFFSET_ANY, MIIF_FORCEANEG); if (error != 0) { device_printf(dev, "attaching PHYs failed\n"); goto bad; Modified: head/sys/dev/et/if_et.c ============================================================================== --- head/sys/dev/et/if_et.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/et/if_et.c Tue May 3 19:51:29 2011 (r221407) @@ -515,13 +515,10 @@ et_ifmedia_upd_locked(struct ifnet *ifp) { struct et_softc *sc = ifp->if_softc; struct mii_data *mii = device_get_softc(sc->sc_miibus); + struct mii_softc *miisc; - if (mii->mii_instance != 0) { - struct mii_softc *miisc; - - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); mii_mediachg(mii); return (0); Modified: head/sys/dev/fxp/if_fxp.c ============================================================================== --- head/sys/dev/fxp/if_fxp.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/fxp/if_fxp.c Tue May 3 19:51:29 2011 (r221407) @@ -2555,14 +2555,12 @@ fxp_ifmedia_upd(struct ifnet *ifp) { struct fxp_softc *sc = ifp->if_softc; struct mii_data *mii; + struct mii_softc *miisc; mii = device_get_softc(sc->miibus); FXP_LOCK(sc); - if (mii->mii_instance) { - struct mii_softc *miisc; - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); mii_mediachg(mii); FXP_UNLOCK(sc); return (0); Modified: head/sys/dev/hme/if_hme.c ============================================================================== --- head/sys/dev/hme/if_hme.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/hme/if_hme.c Tue May 3 19:51:29 2011 (r221407) @@ -1566,7 +1566,7 @@ hme_mediachange_locked(struct hme_softc */ if (sc->sc_phys[0] != -1 && sc->sc_phys[1] != -1) LIST_FOREACH(child, &sc->sc_mii->mii_phys, mii_list) - mii_phy_reset(child); + PHY_RESET(child); return (mii_mediachg(sc->sc_mii)); } Modified: head/sys/dev/jme/if_jme.c ============================================================================== --- head/sys/dev/jme/if_jme.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/jme/if_jme.c Tue May 3 19:51:29 2011 (r221407) @@ -318,10 +318,8 @@ jme_mediachange(struct ifnet *ifp) sc = ifp->if_softc; JME_LOCK(sc); mii = device_get_softc(sc->jme_miibus); - if (mii->mii_instance != 0) { - LIST_FOREACH(miisc, &mii->mii_phys, mii_list) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); error = mii_mediachg(mii); JME_UNLOCK(sc); Modified: head/sys/dev/lge/if_lge.c ============================================================================== --- head/sys/dev/lge/if_lge.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/lge/if_lge.c Tue May 3 19:51:29 2011 (r221407) @@ -1402,18 +1402,15 @@ lge_ifmedia_upd_locked(ifp) { struct lge_softc *sc; struct mii_data *mii; + struct mii_softc *miisc; sc = ifp->if_softc; LGE_LOCK_ASSERT(sc); mii = device_get_softc(sc->lge_miibus); sc->lge_link = 0; - if (mii->mii_instance) { - struct mii_softc *miisc; - for (miisc = LIST_FIRST(&mii->mii_phys); miisc != NULL; - miisc = LIST_NEXT(miisc, mii_list)) - mii_phy_reset(miisc); - } + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) + PHY_RESET(miisc); mii_mediachg(mii); } Modified: head/sys/dev/mii/acphy.c ============================================================================== --- head/sys/dev/mii/acphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/mii/acphy.c Tue May 3 19:51:29 2011 (r221407) @@ -105,13 +105,19 @@ static void acphy_reset(struct mii_softc static void acphy_status(struct mii_softc *); static const struct mii_phydesc acphys[] = { - MII_PHY_DESC(xxALTIMA, AC101), - MII_PHY_DESC(xxALTIMA, AC101L), + MII_PHY_DESC(ALTIMA, AC101), + MII_PHY_DESC(ALTIMA, AC101L), /* XXX This is reported to work, but it's not from any data sheet. */ - MII_PHY_DESC(xxALTIMA, ACXXX), + MII_PHY_DESC(ALTIMA, ACXXX), MII_PHY_END }; +static const struct mii_phy_funcs acphy_funcs = { + acphy_service, + acphy_status, + acphy_reset +}; + static int acphy_probe(device_t dev) { @@ -123,27 +129,17 @@ static int acphy_attach(device_t dev) { struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; sc = device_get_softc(dev); - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = acphy_service; - sc->mii_pdata = mii; - acphy_reset(sc); + mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &acphy_funcs, 0); + + PHY_RESET(sc); - sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; + sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & sc->mii_capmask; device_printf(dev, " "); -#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) +#define ADD(m, c) ifmedia_add(&sc->mii_pdata->mii_media, (m), (c), NULL) if ((PHY_READ(sc, MII_ACPHY_MCTL) & AC_MCTL_FX_SEL) != 0) { sc->mii_flags |= MIIF_HAVEFIBER; ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_FX, 0, sc->mii_inst), @@ -200,7 +196,7 @@ acphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - acphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -245,7 +241,8 @@ acphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T; if (diag & AC_DIAG_DUPLEX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; } else Modified: head/sys/dev/mii/amphy.c ============================================================================== --- head/sys/dev/mii/amphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/mii/amphy.c Tue May 3 19:51:29 2011 (r221407) @@ -83,12 +83,18 @@ static int amphy_service(struct mii_soft static void amphy_status(struct mii_softc *); static const struct mii_phydesc amphys[] = { - MII_PHY_DESC(DAVICOM, DM9102), - MII_PHY_DESC(xxAMD, 79C873), + MII_PHY_DESC(xxDAVICOM, DM9102), MII_PHY_DESC(xxDAVICOM, DM9101), + MII_PHY_DESC(yyDAVICOM, DM9101), MII_PHY_END }; +static const struct mii_phy_funcs amphy_funcs = { + amphy_service, + amphy_status, + mii_phy_reset +}; + static int amphy_probe(device_t dev) { @@ -99,37 +105,8 @@ amphy_probe(device_t dev) static int amphy_attach(device_t dev) { - struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; - - sc = device_get_softc(dev); - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = amphy_service; - sc->mii_pdata = mii; - -#define ADD(m, c) ifmedia_add(&mii->mii_media, (m), (c), NULL) - -#if 0 - ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst), - MII_MEDIA_100_TX); -#endif - - mii_phy_reset(sc); - - sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; - device_printf(dev, " "); - mii_phy_add_media(sc); - printf("\n"); -#undef ADD - MIIBUS_MEDIAINIT(sc->mii_dev); + + mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &hy_funcs, 1); return (0); } @@ -158,7 +135,7 @@ amphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - amphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -231,6 +208,8 @@ amphy_status(struct mii_softc *sc) mii->mii_media_active |= IFM_10_T|IFM_HDX; else if (par & DSCSR_10HDX) mii->mii_media_active |= IFM_10_T|IFM_HDX; + if ((mii->mii_media_active & IFM_FDX) != 0) + mii->mii_media_active |= mii_phy_flowstatus(sc); } else mii->mii_media_active = ife->ifm_media; } Modified: head/sys/dev/mii/atphy.c ============================================================================== --- head/sys/dev/mii/atphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/mii/atphy.c Tue May 3 19:51:29 2011 (r221407) @@ -53,13 +53,6 @@ __FBSDID("$FreeBSD$"); static int atphy_probe(device_t); static int atphy_attach(device_t); -struct atphy_softc { - struct mii_softc mii_sc; - int mii_oui; - int mii_model; - int mii_rev; -}; - static device_method_t atphy_methods[] = { /* Device interface. */ DEVMETHOD(device_probe, atphy_probe), @@ -73,7 +66,7 @@ static devclass_t atphy_devclass; static driver_t atphy_driver = { "atphy", atphy_methods, - sizeof(struct atphy_softc) + sizeof(struct mii_softc) }; DRIVER_MODULE(atphy, miibus, atphy_driver, atphy_devclass, 0, 0); @@ -85,12 +78,18 @@ static uint16_t atphy_anar(struct ifmedi static int atphy_setmedia(struct mii_softc *, int); static const struct mii_phydesc atphys[] = { - MII_PHY_DESC(ATHEROS, F1), - MII_PHY_DESC(ATHEROS, F1_7), - MII_PHY_DESC(ATHEROS, F2), + MII_PHY_DESC(xxATHEROS, F1), + MII_PHY_DESC(xxATHEROS, F1_7), + MII_PHY_DESC(xxATHEROS, F2), MII_PHY_END }; +static const struct mii_phy_funcs atphy_funcs = { + atphy_service, + atphy_status, + atphy_reset +}; + static int atphy_probe(device_t dev) { @@ -101,41 +100,8 @@ atphy_probe(device_t dev) static int atphy_attach(device_t dev) { - struct atphy_softc *asc; - struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; - - asc = device_get_softc(dev); - sc = &asc->mii_sc; - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = atphy_service; - sc->mii_pdata = mii; - - asc->mii_oui = MII_OUI(ma->mii_id1, ma->mii_id2); - asc->mii_model = MII_MODEL(ma->mii_id2); - asc->mii_rev = MII_REV(ma->mii_id2); - if (bootverbose) - device_printf(dev, "OUI 0x%06x, model 0x%04x, rev. %d\n", - asc->mii_oui, asc->mii_model, asc->mii_rev); - - atphy_reset(sc); - - sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; - if (sc->mii_capabilities & BMSR_EXTSTAT) - sc->mii_extcapabilities = PHY_READ(sc, MII_EXTSR); - device_printf(dev, " "); - mii_phy_add_media(sc); - printf("\n"); - MIIBUS_MEDIAINIT(sc->mii_dev); + mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &atphy_funcs, 1); return (0); } @@ -244,7 +210,7 @@ done: } /* Update the media status. */ - atphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -318,12 +284,9 @@ static void atphy_reset(struct mii_softc *sc) { struct ifmedia_entry *ife = sc->mii_pdata->mii_media.ifm_cur; - struct atphy_softc *asc; uint32_t reg; int i; - asc = (struct atphy_softc *)sc; - /* Take PHY out of power down mode. */ PHY_WRITE(sc, 29, 0x29); PHY_WRITE(sc, 30, 0); Modified: head/sys/dev/mii/axphy.c ============================================================================== --- head/sys/dev/mii/axphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/mii/axphy.c Tue May 3 19:51:29 2011 (r221407) @@ -73,10 +73,16 @@ static int axphy_service(struct mii_soft static void axphy_status(struct mii_softc *); static const struct mii_phydesc axphys[] = { - MII_PHY_DESC(ASIX, AX88X9X), + MII_PHY_DESC(xxASIX, AX88X9X), MII_PHY_END }; +static const struct mii_phy_funcs axphy_funcs = { + axphy_service, + axphy_status, + mii_phy_reset +}; + static int axphy_probe(device_t dev) { @@ -88,31 +94,11 @@ static int axphy_attach(device_t dev) { struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; sc = device_get_softc(dev); - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = axphy_service; - sc->mii_pdata = mii; - - sc->mii_flags |= MIIF_NOISOLATE; - - mii_phy_reset(sc); - - sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; - device_printf(dev, " "); - mii_phy_add_media(sc); - printf("\n"); - MIIBUS_MEDIAINIT(sc->mii_dev); + mii_phy_dev_attach(dev, MIIF_NOISOLATE | MIIF_NOMANPAUSE, + &axphy_funcs, 1); mii_phy_setmedia(sc); return (0); @@ -143,7 +129,7 @@ axphy_service(struct mii_softc *sc, stru } /* Update the media status. */ - axphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -187,7 +173,8 @@ axphy_status(struct mii_softc *sc) else mii->mii_media_active |= IFM_10_T; if (scr & SCR_FDX) - mii->mii_media_active |= IFM_FDX; + mii->mii_media_active |= + IFM_FDX | mii_phy_flowstatus(sc); else mii->mii_media_active |= IFM_HDX; #endif Modified: head/sys/dev/mii/bmtphy.c ============================================================================== --- head/sys/dev/mii/bmtphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/mii/bmtphy.c Tue May 3 19:51:29 2011 (r221407) @@ -85,11 +85,6 @@ __FBSDID("$FreeBSD$"); static int bmtphy_probe(device_t); static int bmtphy_attach(device_t); -struct bmtphy_softc { - struct mii_softc mii_sc; - int mii_model; -}; - static device_method_t bmtphy_methods[] = { /* Device interface */ DEVMETHOD(device_probe, bmtphy_probe), @@ -105,7 +100,7 @@ static devclass_t bmtphy_devclass; static driver_t bmtphy_driver = { "bmtphy", bmtphy_methods, - sizeof(struct bmtphy_softc) + sizeof(struct mii_softc) }; DRIVER_MODULE(bmtphy, miibus, bmtphy_driver, bmtphy_devclass, 0, 0); @@ -115,20 +110,26 @@ static void bmtphy_status(struct mii_sof static void bmtphy_reset(struct mii_softc *); static const struct mii_phydesc bmtphys_dp[] = { - MII_PHY_DESC(BROADCOM, BCM4401), - MII_PHY_DESC(BROADCOM, BCM5201), - MII_PHY_DESC(BROADCOM, BCM5214), - MII_PHY_DESC(BROADCOM, BCM5221), - MII_PHY_DESC(BROADCOM, BCM5222), + MII_PHY_DESC(xxBROADCOM, BCM4401), + MII_PHY_DESC(xxBROADCOM, BCM5201), + MII_PHY_DESC(xxBROADCOM, BCM5214), + MII_PHY_DESC(xxBROADCOM, BCM5221), + MII_PHY_DESC(xxBROADCOM, BCM5222), MII_PHY_END }; static const struct mii_phydesc bmtphys_lp[] = { - MII_PHY_DESC(BROADCOM, 3C905B), - MII_PHY_DESC(BROADCOM, 3C905C), + MII_PHY_DESC(xxBROADCOM, 3C905B), + MII_PHY_DESC(xxBROADCOM, 3C905C), MII_PHY_END }; +static const struct mii_phy_funcs bmtphy_funcs = { + bmtphy_service, + bmtphy_status, + bmtphy_reset +}; + static int bmtphy_probe(device_t dev) { @@ -145,37 +146,8 @@ bmtphy_probe(device_t dev) static int bmtphy_attach(device_t dev) { - struct bmtphy_softc *bsc; - struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; - - bsc = device_get_softc(dev); - sc = &bsc->mii_sc; - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = bmtphy_service; - sc->mii_pdata = mii; - - sc->mii_flags |= MIIF_NOMANPAUSE; - - bsc->mii_model = MII_MODEL(ma->mii_id2); - - bmtphy_reset(sc); - - sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask; - device_printf(dev, " "); - mii_phy_add_media(sc); - printf("\n"); - - MIIBUS_MEDIAINIT(sc->mii_dev); + mii_phy_dev_attach(dev, MIIF_NOMANPAUSE, &bmtphy_funcs, 1); return (0); } @@ -204,7 +176,7 @@ bmtphy_service(struct mii_softc *sc, str } /* Update the media status. */ - bmtphy_status(sc); + PHY_STATUS(sc); /* Callback if something changed. */ mii_phy_update(sc, cmd); @@ -267,14 +239,11 @@ bmtphy_status(struct mii_softc *sc) static void bmtphy_reset(struct mii_softc *sc) { - struct bmtphy_softc *bsc; u_int16_t data; - bsc = (struct bmtphy_softc *)sc; - mii_phy_reset(sc); - if (bsc->mii_model == MII_MODEL_BROADCOM_BCM5221) { + if (sc->mii_mpd_model == MII_MODEL_xxBROADCOM_BCM5221) { /* Enable shadow register mode. */ data = PHY_READ(sc, 0x1f); PHY_WRITE(sc, 0x1f, data | 0x0080); Modified: head/sys/dev/mii/brgphy.c ============================================================================== --- head/sys/dev/mii/brgphy.c Tue May 3 19:50:39 2011 (r221406) +++ head/sys/dev/mii/brgphy.c Tue May 3 19:51:29 2011 (r221407) @@ -68,9 +68,6 @@ static int brgphy_attach(device_t); struct brgphy_softc { struct mii_softc mii_sc; - int mii_oui; - int mii_model; - int mii_rev; int serdes_flags; /* Keeps track of the serdes type used */ #define BRGPHY_5706S 0x0001 #define BRGPHY_5708S 0x0002 @@ -117,37 +114,43 @@ static void brgphy_ethernet_wirespeed(st static void brgphy_jumbo_settings(struct mii_softc *, u_long); static const struct mii_phydesc brgphys[] = { - MII_PHY_DESC(xxBROADCOM, BCM5400), - MII_PHY_DESC(xxBROADCOM, BCM5401), - MII_PHY_DESC(xxBROADCOM, BCM5411), - MII_PHY_DESC(xxBROADCOM, BCM54K2), - MII_PHY_DESC(xxBROADCOM, BCM5701), - MII_PHY_DESC(xxBROADCOM, BCM5703), - MII_PHY_DESC(xxBROADCOM, BCM5704), - MII_PHY_DESC(xxBROADCOM, BCM5705), - MII_PHY_DESC(xxBROADCOM, BCM5706), - MII_PHY_DESC(xxBROADCOM, BCM5714), - MII_PHY_DESC(xxBROADCOM, BCM5750), - MII_PHY_DESC(xxBROADCOM, BCM5752), - MII_PHY_DESC(xxBROADCOM, BCM5754), - MII_PHY_DESC(xxBROADCOM, BCM5780), - MII_PHY_DESC(xxBROADCOM, BCM5708C), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5482S), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5755), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5787), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5708S), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5709CAX), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5722), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5784), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5709C), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5761), - MII_PHY_DESC(xxBROADCOM_ALT1, BCM5709S), - MII_PHY_DESC(xxBROADCOM_ALT2, BCM5717C), - MII_PHY_DESC(xxBROADCOM_ALT2, BCM57765), - MII_PHY_DESC(BROADCOM2, BCM5906), + MII_PHY_DESC(BROADCOM, BCM5400), + MII_PHY_DESC(BROADCOM, BCM5401), + MII_PHY_DESC(BROADCOM, BCM5411), + MII_PHY_DESC(BROADCOM, BCM54K2), + MII_PHY_DESC(BROADCOM, BCM5701), + MII_PHY_DESC(BROADCOM, BCM5703), + MII_PHY_DESC(BROADCOM, BCM5704), + MII_PHY_DESC(BROADCOM, BCM5705), + MII_PHY_DESC(BROADCOM, BCM5706), + MII_PHY_DESC(BROADCOM, BCM5714), + MII_PHY_DESC(BROADCOM, BCM5421), + MII_PHY_DESC(BROADCOM, BCM5750), + MII_PHY_DESC(BROADCOM, BCM5752), + MII_PHY_DESC(BROADCOM, BCM5780), + MII_PHY_DESC(BROADCOM, BCM5708C), + MII_PHY_DESC(BROADCOM2, BCM5482), + MII_PHY_DESC(BROADCOM2, BCM5708S), + MII_PHY_DESC(BROADCOM2, BCM5709C), + MII_PHY_DESC(BROADCOM2, BCM5709S), + MII_PHY_DESC(BROADCOM2, BCM5709CAX), + MII_PHY_DESC(BROADCOM2, BCM5722), + MII_PHY_DESC(BROADCOM2, BCM5755), + MII_PHY_DESC(BROADCOM2, BCM5754), + MII_PHY_DESC(BROADCOM2, BCM5761), + MII_PHY_DESC(BROADCOM2, BCM5784), + MII_PHY_DESC(BROADCOM3, BCM5717C), + MII_PHY_DESC(BROADCOM3, BCM57765), + MII_PHY_DESC(xxBROADCOM_ALT1, BCM5906), MII_PHY_END }; +static const struct mii_phy_funcs brgphy_funcs = { + brgphy_service, + brgphy_status, + brgphy_reset +}; + #define HS21_PRODUCT_ID "IBM eServer BladeCenter HS21" #define HS21_BCM_CHIPID 0x57081021 @@ -186,49 +189,22 @@ brgphy_attach(device_t dev) struct bge_softc *bge_sc = NULL; struct bce_softc *bce_sc = NULL; struct mii_softc *sc; - struct mii_attach_args *ma; - struct mii_data *mii; struct ifnet *ifp; bsc = device_get_softc(dev); sc = &bsc->mii_sc; - ma = device_get_ivars(dev); - sc->mii_dev = device_get_parent(dev); - mii = ma->mii_data; - LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list); - - /* Initialize mii_softc structure */ - sc->mii_flags = miibus_get_flags(dev); - sc->mii_inst = mii->mii_instance++; - sc->mii_phy = ma->mii_phyno; - sc->mii_service = brgphy_service; - sc->mii_pdata = mii; - /* - * At least some variants wedge when isolating, at least some also - * don't support loopback. - */ - sc->mii_flags |= MIIF_NOISOLATE | MIIF_NOLOOP | MIIF_NOMANPAUSE; + mii_phy_dev_attach(dev, MIIF_NOISOLATE | MIIF_NOMANPAUSE, + &brgphy_funcs, 0); - /* Initialize brgphy_softc structure */ - bsc->mii_oui = MII_OUI(ma->mii_id1, ma->mii_id2); - bsc->mii_model = MII_MODEL(ma->mii_id2); - bsc->mii_rev = MII_REV(ma->mii_id2); bsc->serdes_flags = 0; - if (bootverbose) - device_printf(dev, "OUI 0x%06x, model 0x%04x, rev. %d\n", - bsc->mii_oui, bsc->mii_model, bsc->mii_rev); - /* Handle any special cases based on the PHY ID */ - switch (bsc->mii_oui) { + switch (sc->mii_mpd_oui) { case MII_OUI_BROADCOM: - case MII_OUI_BROADCOM2: - break; - case MII_OUI_xxBROADCOM: - switch (bsc->mii_model) { - case MII_MODEL_xxBROADCOM_BCM5706: - case MII_MODEL_xxBROADCOM_BCM5714: + switch (sc->mii_mpd_model) { *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Tue May 3 20:13:27 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A7251065677; Tue, 3 May 2011 20:13:27 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 79EEE8FC0A; Tue, 3 May 2011 20:13:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43KDR0T011280; Tue, 3 May 2011 20:13:27 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43KDRf5011277; Tue, 3 May 2011 20:13:27 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201105032013.p43KDRf5011277@svn.freebsd.org> From: Marius Strobl Date: Tue, 3 May 2011 20:13:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221409 - in head/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 20:13:27 -0000 Author: marius Date: Tue May 3 20:13:27 2011 New Revision: 221409 URL: http://svn.freebsd.org/changeset/base/221409 Log: Convert the last use of xcopyout() to ddi_copyout() and remove the now unused xcopyin() as well as xcopyout(). MFC together with r219089. Approved by: mm Modified: head/sys/cddl/compat/opensolaris/sys/systm.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Modified: head/sys/cddl/compat/opensolaris/sys/systm.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/systm.h Tue May 3 19:51:56 2011 (r221408) +++ head/sys/cddl/compat/opensolaris/sys/systm.h Tue May 3 20:13:27 2011 (r221409) @@ -42,9 +42,6 @@ #define delay(x) pause("soldelay", (x)) -#define xcopyin(u, k, s) copyin(u, k, s) -#define xcopyout(k, u, s) copyout(k, u, s) - #endif /* _KERNEL */ #endif /* _OPENSOLARIS_SYS_SYSTM_H_ */ Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue May 3 19:51:56 2011 (r221408) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue May 3 20:13:27 2011 (r221409) @@ -4068,9 +4068,9 @@ zfs_ioc_userspace_many(zfs_cmd_t *zc) buf, &zc->zc_nvlist_dst_size); if (error == 0) { - error = xcopyout(buf, + error = ddi_copyout(buf, (void *)(uintptr_t)zc->zc_nvlist_dst, - zc->zc_nvlist_dst_size); + zc->zc_nvlist_dst_size, zc->zc_iflags); } kmem_free(buf, bufsize); zfsvfs_rele(zfsvfs, FTAG); From owner-svn-src-head@FreeBSD.ORG Tue May 3 20:32:21 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 982B01065674; Tue, 3 May 2011 20:32:21 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 88E6A8FC0C; Tue, 3 May 2011 20:32:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43KWLYn011856; Tue, 3 May 2011 20:32:21 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43KWL9I011854; Tue, 3 May 2011 20:32:21 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201105032032.p43KWL9I011854@svn.freebsd.org> From: Michael Tuexen Date: Tue, 3 May 2011 20:32:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221410 - head/sys/netinet X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 20:32:21 -0000 Author: tuexen Date: Tue May 3 20:32:21 2011 New Revision: 221410 URL: http://svn.freebsd.org/changeset/base/221410 Log: Add a missing break. This bug was introduced in r221249. MFC after: 1 week Modified: head/sys/netinet/sctp_asconf.c Modified: head/sys/netinet/sctp_asconf.c ============================================================================== --- head/sys/netinet/sctp_asconf.c Tue May 3 20:13:27 2011 (r221409) +++ head/sys/netinet/sctp_asconf.c Tue May 3 20:32:21 2011 (r221410) @@ -2930,6 +2930,7 @@ sctp_process_initack_addresses(struct sc } sin.sin_addr.s_addr = a4p->addr; sa = (struct sockaddr *)&sin; + break; } #endif default: From owner-svn-src-head@FreeBSD.ORG Tue May 3 20:34:03 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27445106566B; Tue, 3 May 2011 20:34:03 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C7308FC14; Tue, 3 May 2011 20:34:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p43KY2L9012013; Tue, 3 May 2011 20:34:02 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p43KY2GY012008; Tue, 3 May 2011 20:34:02 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201105032034.p43KY2GY012008@svn.freebsd.org> From: Michael Tuexen Date: Tue, 3 May 2011 20:34:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221411 - in head/sys: netinet netinet6 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 20:34:03 -0000 Author: tuexen Date: Tue May 3 20:34:02 2011 New Revision: 221411 URL: http://svn.freebsd.org/changeset/base/221411 Log: Remove code with any effect. Modified: head/sys/netinet/sctp_asconf.c head/sys/netinet/sctp_auth.c head/sys/netinet/sctputil.c head/sys/netinet6/sctp6_usrreq.c Modified: head/sys/netinet/sctp_asconf.c ============================================================================== --- head/sys/netinet/sctp_asconf.c Tue May 3 20:32:21 2011 (r221410) +++ head/sys/netinet/sctp_asconf.c Tue May 3 20:34:02 2011 (r221411) @@ -2813,7 +2813,6 @@ sctp_compose_asconf(struct sctp_tcb *stc lookup->ph.param_length = htons(SCTP_SIZE32(p_size)); memcpy(lookup->addr, addr_ptr, addr_size); SCTP_BUF_LEN(m_asconf_chk) += SCTP_SIZE32(p_size); - lookup_used = 1; } else { /* uh oh... don't have any address?? */ SCTPDBG(SCTP_DEBUG_ASCONF1, @@ -2823,7 +2822,6 @@ sctp_compose_asconf(struct sctp_tcb *stc lookup->ph.param_length = htons(SCTP_SIZE32(sizeof(struct sctp_ipv4addr_param))); bzero(lookup->addr, sizeof(struct in_addr)); SCTP_BUF_LEN(m_asconf_chk) += SCTP_SIZE32(sizeof(struct sctp_ipv4addr_param)); - lookup_used = 1; } } /* chain it all together */ Modified: head/sys/netinet/sctp_auth.c ============================================================================== --- head/sys/netinet/sctp_auth.c Tue May 3 20:32:21 2011 (r221410) +++ head/sys/netinet/sctp_auth.c Tue May 3 20:34:02 2011 (r221411) @@ -1949,9 +1949,6 @@ sctp_validate_init_auth_params(struct mb case SCTP_ASCONF_ACK: peer_supports_asconf = 1; break; - case SCTP_AUTHENTICATION: - peer_supports_auth = 1; - break; default: /* one we don't care about */ break; Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Tue May 3 20:32:21 2011 (r221410) +++ head/sys/netinet/sctputil.c Tue May 3 20:34:02 2011 (r221411) @@ -3850,8 +3850,6 @@ sctp_abort_an_association(struct sctp_in #endif ) { - uint32_t vtag; - #if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) struct socket *so; @@ -3872,7 +3870,6 @@ sctp_abort_an_association(struct sctp_in } else { stcb->asoc.state |= SCTP_STATE_WAS_ABORTED; } - vtag = stcb->asoc.peer_vtag; /* notify the ulp */ if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) == 0) sctp_abort_notification(stcb, error, so_locked); Modified: head/sys/netinet6/sctp6_usrreq.c ============================================================================== --- head/sys/netinet6/sctp6_usrreq.c Tue May 3 20:32:21 2011 (r221410) +++ head/sys/netinet6/sctp6_usrreq.c Tue May 3 20:34:02 2011 (r221411) @@ -1066,10 +1066,8 @@ sctp6_connect(struct socket *so, struct SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP6_USRREQ, EINVAL); return EINVAL; } - } else + } #endif /* INET */ - addr = addr; /* for true v6 address case */ - /* Now do we connect? */ if (inp->sctp_flags & SCTP_PCB_FLAGS_CONNECTED) { stcb = LIST_FIRST(&inp->sctp_asoc_list); From owner-svn-src-head@FreeBSD.ORG Tue May 3 21:53:57 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6BB7A1065672; Tue, 3 May 2011 21:53:57 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay04.stack.nl [IPv6:2001:610:1108:5010::107]) by mx1.freebsd.org (Postfix) with ESMTP id 0949D8FC0C; Tue, 3 May 2011 21:53:57 +0000 (UTC) Received: from turtle.stack.nl (turtle.stack.nl [IPv6:2001:610:1108:5010::132]) by mx1.stack.nl (Postfix) with ESMTP id 03A811DD82C; Tue, 3 May 2011 23:53:55 +0200 (CEST) Received: by turtle.stack.nl (Postfix, from userid 1677) id F16BD1736B; Tue, 3 May 2011 23:53:54 +0200 (CEST) Date: Tue, 3 May 2011 23:53:54 +0200 From: Jilles Tjoelker To: Craig Rodrigues Message-ID: <20110503215354.GA93376@stack.nl> References: <201105030743.p437hl8M075368@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201105030743.p437hl8M075368@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221365 - head/lib/libstand X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 May 2011 21:53:57 -0000 On Tue, May 03, 2011 at 07:43:47AM +0000, Craig Rodrigues wrote: > Author: rodrigc > Date: Tue May 3 07:43:47 2011 > New Revision: 221365 > URL: http://svn.freebsd.org/changeset/base/221365 > Log: > - Add parentheses around expression to eliminate compiler warning. > Modified: > head/lib/libstand/dosfs.c > - d->d_fileno = dd.de.clus[1] << 8 + dd.de.clus[0]; > + d->d_fileno = (dd.de.clus[1] << 8) + dd.de.clus[0]; This certainly seems an improvement, however not because it avoids a compiler warning but because the original code was wrong. For some strange reason, + binds more strongly than <<, so fewer different d_fileno values were generated than likely intended. -- Jilles Tjoelker From owner-svn-src-head@FreeBSD.ORG Wed May 4 02:23:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C13071065670; Wed, 4 May 2011 02:23:59 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A504A8FC0C; Wed, 4 May 2011 02:23:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p442NxWC026643; Wed, 4 May 2011 02:23:59 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p442Nx1r026636; Wed, 4 May 2011 02:23:59 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105040223.p442Nx1r026636@svn.freebsd.org> From: Adrian Chadd Date: Wed, 4 May 2011 02:23:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221418 - head/sys/net80211 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 02:23:59 -0000 Author: adrian Date: Wed May 4 02:23:59 2011 New Revision: 221418 URL: http://svn.freebsd.org/changeset/base/221418 Log: Fix some corner cases in the net80211 sequence number retransmission handling. The current sequence number code does a few things incorrectly: * It didn't try eliminating duplications from HT nodes. I guess it's assumed that out of order / retransmission handling would be handled by the AMPDU RX routines. If a HT node isn't doing AMPDU RX, then retransmissions need to be eliminated. Since most of my debugging is based on this (as AMPDU TX software packet aggregation isn't yet handled), handle this corner case. * When a sequence number of 4095 was received, any subsequent sequence number is going to be (by definition) less than 4095. So if the following sequence number (0) doesn't initially occur and the retransmit is received, it's incorrectly eliminated by the IEEE80211_FC1_RETRY && SEQ_LEQ() check. Try to handle this better. This almost completely eliminates out of order TCP statistics showing up during iperf testing for the 11a, 11g and non-aggregate 11n AMPDU RX case. The only other packet loss conditions leading to this are due to baseband resets or heavy interference. Modified: head/sys/net80211/ieee80211_adhoc.c head/sys/net80211/ieee80211_hostap.c head/sys/net80211/ieee80211_input.h head/sys/net80211/ieee80211_mesh.c head/sys/net80211/ieee80211_sta.c head/sys/net80211/ieee80211_wds.c Modified: head/sys/net80211/ieee80211_adhoc.c ============================================================================== --- head/sys/net80211/ieee80211_adhoc.c Wed May 4 01:39:44 2011 (r221417) +++ head/sys/net80211/ieee80211_adhoc.c Wed May 4 02:23:59 2011 (r221418) @@ -285,7 +285,6 @@ doprint(struct ieee80211vap *vap, int su static int adhoc_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) { -#define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) #define HAS_SEQ(type) ((type & 0x4) == 0) struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; @@ -412,9 +411,7 @@ adhoc_input(struct ieee80211_node *ni, s TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; rxseq = le16toh(*(uint16_t *)wh->i_seq); - if ((ni->ni_flags & IEEE80211_NODE_HT) == 0 && - (wh->i_fc[1] & IEEE80211_FC1_RETRY) && - SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) { + if (! ieee80211_check_rxseq(ni, wh)) { /* duplicate, discard */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, bssid, "duplicate", @@ -660,7 +657,6 @@ out: m_freem(m); } return type; -#undef SEQ_LEQ } static int Modified: head/sys/net80211/ieee80211_hostap.c ============================================================================== --- head/sys/net80211/ieee80211_hostap.c Wed May 4 01:39:44 2011 (r221417) +++ head/sys/net80211/ieee80211_hostap.c Wed May 4 02:23:59 2011 (r221418) @@ -472,7 +472,6 @@ doprint(struct ieee80211vap *vap, int su static int hostap_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) { -#define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) #define HAS_SEQ(type) ((type & 0x4) == 0) struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; @@ -572,9 +571,7 @@ hostap_input(struct ieee80211_node *ni, TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; rxseq = le16toh(*(uint16_t *)wh->i_seq); - if ((ni->ni_flags & IEEE80211_NODE_HT) == 0 && - (wh->i_fc[1] & IEEE80211_FC1_RETRY) && - SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) { + if (! ieee80211_check_rxseq(ni, wh)) { /* duplicate, discard */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, bssid, "duplicate", @@ -914,7 +911,6 @@ out: m_freem(m); } return type; -#undef SEQ_LEQ } static void Modified: head/sys/net80211/ieee80211_input.h ============================================================================== --- head/sys/net80211/ieee80211_input.h Wed May 4 01:39:44 2011 (r221417) +++ head/sys/net80211/ieee80211_input.h Wed May 4 02:23:59 2011 (r221418) @@ -142,6 +142,104 @@ ishtinfooui(const uint8_t *frm) return frm[1] > 3 && LE_READ_4(frm+2) == ((BCM_OUI_HTINFO<<24)|BCM_OUI); } +#include /* For le16toh() */ + +/* + * Check the current frame sequence number against the current TID + * state and return whether it's in sequence or should be dropped. + * + * Since out of order packet and duplicate packet eliminations should + * be done by the AMPDU RX code, this routine blindly accepts all + * frames from a HT station w/ a TID that is currently doing AMPDU-RX. + * HT stations without WME or where the TID is not doing AMPDU-RX + * are checked like non-HT stations. + * + * The routine only eliminates packets whose sequence/fragment + * match or are less than the last seen sequence/fragment number + * AND are retransmits It doesn't try to eliminate out of order packets. + * + * Since all frames after sequence number 4095 will be less than 4095 + * (as the seqnum wraps), handle that special case so packets aren't + * incorrectly dropped - ie, if the next packet is sequence number 0 + * but a retransmit since the initial packet didn't make it. + */ +static __inline int +ieee80211_check_rxseq(struct ieee80211_node *ni, struct ieee80211_frame *wh) +{ +#define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) +#define SEQ_EQ(a,b) ((int)((a)-(b)) == 0) +#define HAS_SEQ(type) ((type & 0x4) == 0) +#define SEQNO(a) ((a) >> IEEE80211_SEQ_SEQ_SHIFT) +#define FRAGNO(a) ((a) & IEEE80211_SEQ_FRAG_MASK) + uint16_t rxseq; + uint8_t type; + uint8_t tid; + struct ieee80211_rx_ampdu *rap; + + rxseq = le16toh(*(uint16_t *)wh->i_seq); + type = wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK; + + /* Types with no sequence number are always treated valid */ + if (! HAS_SEQ(type)) + return 1; + + tid = ieee80211_gettid(wh); + + /* + * Only do the HT AMPDU check for WME stations; non-WME HT stations + * shouldn't exist outside of debugging. We should at least + * handle that. + */ + if (tid < WME_NUM_TID) { + rap = &ni->ni_rx_ampdu[tid]; + /* HT nodes currently doing RX AMPDU are always valid */ + if ((ni->ni_flags & IEEE80211_NODE_HT) && + (rap->rxa_flags & IEEE80211_AGGR_RUNNING)) + return 1; + } + + /* + * Otherwise, retries for packets below or equal to the last + * seen sequence number should be dropped. + */ + + /* + * Treat frame seqnum 4095 as special due to boundary + * wrapping conditions. + */ + if (SEQNO(ni->ni_rxseqs[tid]) == 4095) { + /* + * Drop retransmits on seqnum 4095/current fragment for itself. + */ + if (SEQ_EQ(rxseq, ni->ni_rxseqs[tid]) && + (wh->i_fc[1] & IEEE80211_FC1_RETRY)) + return 0; + /* + * Treat any subsequent frame as fine if the last seen frame + * is 4095 and it's not a retransmit for the same sequence + * number. However, this doesn't capture incorrectly ordered + * fragments w/ sequence number 4095. It shouldn't be seen + * in practice, but see the comment above for further info. + */ + return 1; + } + + /* + * At this point we assume that retransmitted seq/frag numbers below + * the current can simply be eliminated. + */ + if ((wh->i_fc[1] & IEEE80211_FC1_RETRY) && + SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) + return 0; + + return 1; +#undef SEQ_LEQ +#undef SEQ_EQ +#undef HAS_SEQ +#undef SEQNO +#undef FRAGNO +} + void ieee80211_deliver_data(struct ieee80211vap *, struct ieee80211_node *, struct mbuf *); struct mbuf *ieee80211_defrag(struct ieee80211_node *, Modified: head/sys/net80211/ieee80211_mesh.c ============================================================================== --- head/sys/net80211/ieee80211_mesh.c Wed May 4 01:39:44 2011 (r221417) +++ head/sys/net80211/ieee80211_mesh.c Wed May 4 02:23:59 2011 (r221418) @@ -1040,7 +1040,6 @@ mesh_isucastforme(struct ieee80211vap *v static int mesh_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) { -#define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) #define HAS_SEQ(type) ((type & 0x4) == 0) struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; @@ -1094,9 +1093,7 @@ mesh_input(struct ieee80211_node *ni, st TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; rxseq = le16toh(*(uint16_t *)wh->i_seq); - if ((ni->ni_flags & IEEE80211_NODE_HT) == 0 && - (wh->i_fc[1] & IEEE80211_FC1_RETRY) && - SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) { + if (! ieee80211_check_rxseq(ni, wh)) { /* duplicate, discard */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr1, "duplicate", Modified: head/sys/net80211/ieee80211_sta.c ============================================================================== --- head/sys/net80211/ieee80211_sta.c Wed May 4 01:39:44 2011 (r221417) +++ head/sys/net80211/ieee80211_sta.c Wed May 4 02:23:59 2011 (r221418) @@ -512,7 +512,6 @@ doprint(struct ieee80211vap *vap, int su static int sta_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) { -#define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) #define HAS_SEQ(type) ((type & 0x4) == 0) struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; @@ -591,9 +590,7 @@ sta_input(struct ieee80211_node *ni, str TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; rxseq = le16toh(*(uint16_t *)wh->i_seq); - if ((ni->ni_flags & IEEE80211_NODE_HT) == 0 && - (wh->i_fc[1] & IEEE80211_FC1_RETRY) && - SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) { + if (! ieee80211_check_rxseq(ni, wh)) { /* duplicate, discard */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, bssid, "duplicate", @@ -910,7 +907,6 @@ out: m_freem(m); } return type; -#undef SEQ_LEQ } static void Modified: head/sys/net80211/ieee80211_wds.c ============================================================================== --- head/sys/net80211/ieee80211_wds.c Wed May 4 01:39:44 2011 (r221417) +++ head/sys/net80211/ieee80211_wds.c Wed May 4 02:23:59 2011 (r221418) @@ -406,7 +406,6 @@ wds_newstate(struct ieee80211vap *vap, e static int wds_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) { -#define SEQ_LEQ(a,b) ((int)((a)-(b)) <= 0) #define HAS_SEQ(type) ((type & 0x4) == 0) struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; @@ -495,9 +494,7 @@ wds_input(struct ieee80211_node *ni, str TID_TO_WME_AC(tid) >= WME_AC_VI) ic->ic_wme.wme_hipri_traffic++; rxseq = le16toh(*(uint16_t *)wh->i_seq); - if ((ni->ni_flags & IEEE80211_NODE_HT) == 0 && - (wh->i_fc[1] & IEEE80211_FC1_RETRY) && - SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) { + if (! ieee80211_check_rxseq(ni, wh)) { /* duplicate, discard */ IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_INPUT, wh->i_addr1, "duplicate", @@ -741,7 +738,6 @@ out: m_freem(m); } return type; -#undef SEQ_LEQ } static void From owner-svn-src-head@FreeBSD.ORG Wed May 4 02:52:41 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 982CA106566C; Wed, 4 May 2011 02:52:41 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 86EBB8FC1A; Wed, 4 May 2011 02:52:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p442qflU027518; Wed, 4 May 2011 02:52:41 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p442qfI4027516; Wed, 4 May 2011 02:52:41 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105040252.p442qfI4027516@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 4 May 2011 02:52:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221419 - head/release X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 02:52:41 -0000 Author: nwhitehorn Date: Wed May 4 02:52:41 2011 New Revision: 221419 URL: http://svn.freebsd.org/changeset/base/221419 Log: Make sure to run make obj before release. Trying to run them in one step doesn't always work reliably. Modified: head/release/generate-release.sh Modified: head/release/generate-release.sh ============================================================================== --- head/release/generate-release.sh Wed May 4 02:23:59 2011 (r221418) +++ head/release/generate-release.sh Wed May 4 02:52:41 2011 (r221419) @@ -60,6 +60,7 @@ if [ -d $2/usr/doc ]; then fi chroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildkernel" || exit 1 +chroot $2 /bin/sh -c "cd /usr/src/release && make obj" || exit 1 chroot $2 /bin/sh -c "cd /usr/src/release && make release" || exit 1 chroot $2 /bin/sh -c "cd /usr/src/release && make install DESTDIR=/R" || exit 1 From owner-svn-src-head@FreeBSD.ORG Wed May 4 03:03:51 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93032106566B; Wed, 4 May 2011 03:03:51 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from mail.icecube.wisc.edu (trout.icecube.wisc.edu [128.104.255.119]) by mx1.freebsd.org (Postfix) with ESMTP id 05B778FC15; Wed, 4 May 2011 03:03:51 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 6D5FF58140; Tue, 3 May 2011 22:03:50 -0500 (CDT) X-Virus-Scanned: amavisd-new at icecube.wisc.edu Received: from mail.icecube.wisc.edu ([127.0.0.1]) by localhost (trout.icecube.wisc.edu [127.0.0.1]) (amavisd-new, port 10030) with ESMTP id 1LmXl476ytZq; Tue, 3 May 2011 22:03:50 -0500 (CDT) Received: from wanderer.tachypleus.net (unknown [76.210.65.155]) by mail.icecube.wisc.edu (Postfix) with ESMTP id 65EC75813A; Tue, 3 May 2011 22:03:49 -0500 (CDT) Message-ID: <4DC0C214.3090004@freebsd.org> Date: Tue, 03 May 2011 22:03:48 -0500 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.15) Gecko/20110317 Thunderbird/3.1.9 MIME-Version: 1.0 To: Baptiste Daroussin References: <201105031512.p43FC1Jr099140@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221387 - head/usr.sbin/makefs/cd9660 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 03:03:51 -0000 On 05/03/11 10:27, Baptiste Daroussin wrote: > 2011/5/3 Nathan Whitehorn: >> Author: nwhitehorn >> Date: Tue May 3 15:12:01 2011 >> New Revision: 221387 >> URL: http://svn.freebsd.org/changeset/base/221387 >> >> Log: >> Add support for synthesizing an APM partition map to map Mac PowerPC >> bootstrap partitions from the ISO9660 boot catalog. This preserves OS X's >> ability to mount the CD, while allowing us a way to provide HFS-ified >> bootstrap code for Open Firmware. >> >> Modified: >> head/usr.sbin/makefs/cd9660/cd9660_eltorito.c >> >> Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c >> ============================================================================== >> --- head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Tue May 3 14:43:16 2011 (r221386) >> +++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Tue May 3 15:12:01 2011 (r221387) >> @@ -31,6 +31,9 @@ >> * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY >> * OF SUCH DAMAGE. >> */ >> + >> +#include >> + >> #include "cd9660.h" >> #include "cd9660_eltorito.h" >> >> @@ -497,11 +500,43 @@ cd9660_setup_boot_volume_descriptor(volu >> return 1; >> } >> >> +static int >> +cd9660_write_apm_partition_entry(FILE *fd, int index, int total_partitions, >> + off_t sector_start, off_t nsectors, off_t sector_size, >> + const char *part_name, const char *part_type) { >> + uint32_t apm32; >> + uint16_t apm16; >> + >> + fseeko(fd, (off_t)(index + 1) * sector_size, SEEK_SET); >> + >> + /* Signature */ >> + apm16 = htons(0x504d); >> + fwrite(&apm16, sizeof(apm16), 1, fd); >> + apm16 = 0; >> + fwrite(&apm16, sizeof(apm16), 1, fd); >> + >> + /* Total number of partitions */ >> + apm32 = htonl(total_partitions); >> + fwrite(&apm32, sizeof(apm32), 1, fd); >> + /* Bounds */ >> + apm32 = htonl(sector_start); >> + fwrite(&apm32, sizeof(apm32), 1, fd); >> + apm32 = htonl(nsectors); >> + fwrite(&apm32, sizeof(apm32), 1, fd); >> + >> + fwrite(part_name, strlen(part_name) + 1, 1, fd); >> + fseek(fd, 32 - strlen(part_name) - 1, SEEK_CUR); >> + fwrite(part_type, strlen(part_type) + 1, 1, fd); >> + >> + return 0; >> +} >> + >> int >> cd9660_write_boot(FILE *fd) >> { >> struct boot_catalog_entry *e; >> struct cd9660_boot_image *t; >> + int apm_partitions = 0; >> >> /* write boot catalog */ >> if (fseeko(fd, (off_t)diskStructure.boot_catalog_sector * >> @@ -533,7 +568,51 @@ cd9660_write_boot(FILE *fd) >> t->filename, t->sector); >> } >> cd9660_copy_file(fd, t->sector, t->filename); >> + >> + if (t->system == ET_SYS_MAC) >> + apm_partitions++; >> + } >> + >> + if (apm_partitions> 0) { >> + /* Write DDR and global APM info */ >> + uint32_t apm32; >> + uint16_t apm16; >> + int total_parts; >> + >> + fseek(fd, 0, SEEK_SET); >> + apm16 = htons(0x4552); >> + fwrite(&apm16, sizeof(apm16), 1, fd); >> + apm16 = htons(diskStructure.sectorSize); >> + fwrite(&apm16, sizeof(apm16), 1, fd); >> + apm32 = htonl(diskStructure.totalSectors); >> + fwrite(&apm32, sizeof(apm32), 1, fd); >> + >> + /* Count total needed entries */ >> + total_parts = 2 + apm_partitions; /* Self + ISO9660 */ >> + >> + /* Write self-descriptor */ >> + cd9660_write_apm_partition_entry(fd, 0, >> + total_parts, 1, total_parts, diskStructure.sectorSize, >> + "Apple", "Apple_partition_map"); >> + >> + /* Write ISO9660 descriptor, enclosing the whole disk */ >> + cd9660_write_apm_partition_entry(fd, 1, >> + total_parts, 0, diskStructure.totalSectors, >> + diskStructure.sectorSize, "", "CD_ROM_Mode_1"); >> + >> + /* Write all partition entries */ >> + apm_partitions = 0; >> + TAILQ_FOREACH(t,&diskStructure.boot_images, image_list) { >> + if (t->system != ET_SYS_MAC) >> + continue; >> + >> + cd9660_write_apm_partition_entry(fd, >> + 2 + apm_partitions++, total_parts, >> + t->sector, t->num_sectors, diskStructure.sectorSize, >> + "CD Boot", "Apple_Bootstrap"); >> + } >> } >> >> return 0; >> } >> + >> _______________________________________________ >> svn-src-all@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/svn-src-all >> To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" >> > > Nice, > > Do not forget to send this to the netbsd folks so that both makefs > keep as in sync as possible, christos@NetBSD.org should be interested > by this. > > if you already did this, sorry for the noise. > > regards, > Bapt Will do. I have some more testing to do with this, and possibly some more changes, which I was planning on sending upstream as a batch when finished. -Nathan From owner-svn-src-head@FreeBSD.ORG Wed May 4 07:34:45 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74593106564A; Wed, 4 May 2011 07:34:45 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6244E8FC12; Wed, 4 May 2011 07:34:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p447YjX2036046; Wed, 4 May 2011 07:34:45 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p447YjPB036043; Wed, 4 May 2011 07:34:45 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201105040734.p447YjPB036043@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Wed, 4 May 2011 07:34:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221420 - in head: crypto/openssh crypto/openssh/openbsd-compat etc/rc.d secure/lib/libssh secure/usr.sbin/sshd X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 07:34:45 -0000 Author: des Date: Wed May 4 07:34:44 2011 New Revision: 221420 URL: http://svn.freebsd.org/changeset/base/221420 Log: Upgrade to OpenSSH 5.8p2. Added: head/crypto/openssh/audit-linux.c - copied unchanged from r221394, vendor-crypto/openssh/dist/audit-linux.c head/crypto/openssh/bufec.c - copied unchanged from r221394, vendor-crypto/openssh/dist/bufec.c head/crypto/openssh/kexecdh.c - copied unchanged from r221394, vendor-crypto/openssh/dist/kexecdh.c head/crypto/openssh/kexecdhc.c - copied unchanged from r221394, vendor-crypto/openssh/dist/kexecdhc.c head/crypto/openssh/kexecdhs.c - copied unchanged from r221394, vendor-crypto/openssh/dist/kexecdhs.c head/crypto/openssh/openbsd-compat/charclass.h - copied unchanged from r221394, vendor-crypto/openssh/dist/openbsd-compat/charclass.h head/crypto/openssh/openbsd-compat/timingsafe_bcmp.c - copied unchanged from r221394, vendor-crypto/openssh/dist/openbsd-compat/timingsafe_bcmp.c head/crypto/openssh/ssh-ecdsa.c - copied unchanged from r221394, vendor-crypto/openssh/dist/ssh-ecdsa.c Modified: head/crypto/openssh/ChangeLog head/crypto/openssh/LICENCE head/crypto/openssh/PROTOCOL head/crypto/openssh/PROTOCOL.agent head/crypto/openssh/PROTOCOL.certkeys head/crypto/openssh/PROTOCOL.mux head/crypto/openssh/README head/crypto/openssh/atomicio.c head/crypto/openssh/atomicio.h head/crypto/openssh/audit-bsm.c head/crypto/openssh/audit.c head/crypto/openssh/audit.h head/crypto/openssh/auth-options.c head/crypto/openssh/auth-rsa.c head/crypto/openssh/auth.c head/crypto/openssh/auth1.c head/crypto/openssh/auth2-jpake.c head/crypto/openssh/auth2-pubkey.c head/crypto/openssh/auth2.c head/crypto/openssh/authfd.c head/crypto/openssh/authfile.c head/crypto/openssh/bufaux.c head/crypto/openssh/buffer.h head/crypto/openssh/canohost.c head/crypto/openssh/channels.c head/crypto/openssh/cipher-3des1.c head/crypto/openssh/cipher-acss.c head/crypto/openssh/cipher-aes.c head/crypto/openssh/cipher-bf1.c head/crypto/openssh/cipher-ctr.c head/crypto/openssh/clientloop.c head/crypto/openssh/compress.c head/crypto/openssh/config.h head/crypto/openssh/config.h.in head/crypto/openssh/defines.h head/crypto/openssh/dns.c head/crypto/openssh/entropy.c head/crypto/openssh/hostfile.c head/crypto/openssh/hostfile.h head/crypto/openssh/includes.h head/crypto/openssh/jpake.c head/crypto/openssh/kex.c head/crypto/openssh/kex.h head/crypto/openssh/kexdhc.c head/crypto/openssh/kexdhs.c head/crypto/openssh/kexgexc.c head/crypto/openssh/kexgexs.c head/crypto/openssh/key.c head/crypto/openssh/key.h head/crypto/openssh/loginrec.c head/crypto/openssh/loginrec.h head/crypto/openssh/misc.c head/crypto/openssh/misc.h head/crypto/openssh/moduli.c head/crypto/openssh/monitor.c head/crypto/openssh/monitor_wrap.c head/crypto/openssh/mux.c head/crypto/openssh/myproposal.h head/crypto/openssh/openbsd-compat/bindresvport.c head/crypto/openssh/openbsd-compat/bsd-misc.c head/crypto/openssh/openbsd-compat/bsd-misc.h head/crypto/openssh/openbsd-compat/glob.c head/crypto/openssh/openbsd-compat/glob.h head/crypto/openssh/openbsd-compat/openbsd-compat.h head/crypto/openssh/openbsd-compat/openssl-compat.c head/crypto/openssh/openbsd-compat/openssl-compat.h head/crypto/openssh/openbsd-compat/port-linux.c head/crypto/openssh/openbsd-compat/port-linux.h head/crypto/openssh/openbsd-compat/port-solaris.c head/crypto/openssh/openbsd-compat/port-solaris.h head/crypto/openssh/packet.c head/crypto/openssh/packet.h head/crypto/openssh/pathnames.h head/crypto/openssh/platform.c head/crypto/openssh/platform.h head/crypto/openssh/readconf.c head/crypto/openssh/readconf.h head/crypto/openssh/readpass.c head/crypto/openssh/schnorr.c head/crypto/openssh/scp.1 head/crypto/openssh/scp.c head/crypto/openssh/servconf.c head/crypto/openssh/servconf.h head/crypto/openssh/session.c head/crypto/openssh/sftp-client.c head/crypto/openssh/sftp-client.h head/crypto/openssh/sftp-server.c head/crypto/openssh/sftp.1 head/crypto/openssh/sftp.c head/crypto/openssh/ssh-add.1 head/crypto/openssh/ssh-add.c head/crypto/openssh/ssh-agent.1 head/crypto/openssh/ssh-agent.c head/crypto/openssh/ssh-dss.c head/crypto/openssh/ssh-keygen.1 head/crypto/openssh/ssh-keygen.c head/crypto/openssh/ssh-keyscan.1 head/crypto/openssh/ssh-keyscan.c head/crypto/openssh/ssh-keysign.8 head/crypto/openssh/ssh-keysign.c head/crypto/openssh/ssh-rsa.c head/crypto/openssh/ssh.1 head/crypto/openssh/ssh.c head/crypto/openssh/ssh2.h head/crypto/openssh/ssh_config head/crypto/openssh/ssh_config.5 head/crypto/openssh/ssh_namespace.h head/crypto/openssh/sshconnect.c head/crypto/openssh/sshconnect.h head/crypto/openssh/sshconnect2.c head/crypto/openssh/sshd.8 head/crypto/openssh/sshd.c head/crypto/openssh/sshd_config head/crypto/openssh/sshd_config.5 head/crypto/openssh/sshlogin.c head/crypto/openssh/uuencode.c head/crypto/openssh/uuencode.h head/crypto/openssh/version.h head/etc/rc.d/sshd head/secure/lib/libssh/Makefile head/secure/usr.sbin/sshd/Makefile Directory Properties: head/crypto/openssh/ (props changed) Modified: head/crypto/openssh/ChangeLog ============================================================================== --- head/crypto/openssh/ChangeLog Wed May 4 02:52:41 2011 (r221419) +++ head/crypto/openssh/ChangeLog Wed May 4 07:34:44 2011 (r221420) @@ -1,3 +1,742 @@ +20110403 + - (djm) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec] + [contrib/suse/openssh.spec] Prepare for 5.8p2 release. + - Release 5.8p2 + +20110329 + - (djm) [entropy.c] closefrom() before running ssh-rand-helper; leftover fds + noticed by tmraz AT redhat.com + +20110221 + - (dtucker) [contrib/cygwin/ssh-host-config] From Corinna: revamp of the + Cygwin-specific service installer script ssh-host-config. The actual + functionality is the same, the revisited version is just more + exact when it comes to check for problems which disallow to run + certain aspects of the script. So, part of this script and the also + rearranged service helper script library "csih" is to check if all + the tools required to run the script are available on the system. + The new script also is more thorough to inform the user why the + script failed. Patch from vinschen at redhat com. + +20110206 + - (dtucker) [openbsd-compat/port-linux.c] Bug #1851: fix syntax error in + selinux code. Patch from Leonardo Chiquitto + - (dtucker) [contrib/cygwin/ssh-{host,user}-config] Add ECDSA key + generation and simplify. Patch from Corinna Vinschen. + +20110204 + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2011/01/31 21:42:15 + [PROTOCOL.mux] + cut'n'pasto; from bert.wesarg AT googlemail.com + - djm@cvs.openbsd.org 2011/02/04 00:44:21 + [key.c] + fix uninitialised nonce variable; reported by Mateusz Kocielski + - djm@cvs.openbsd.org 2011/02/04 00:44:43 + [version.h] + openssh-5.8 + - (djm) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec] + [contrib/suse/openssh.spec] update versions in docs and spec files. + - Release OpenSSH 5.8p1 + +20110128 + - (djm) [openbsd-compat/port-linux.c] Check whether SELinux is enabled + before attempting setfscreatecon(). Check whether matchpathcon() + succeeded before using its result. Patch from cjwatson AT debian.org; + bz#1851 + +20110125 + - (djm) [configure.ac Makefile.in ssh.c openbsd-compat/port-linux.c + openbsd-compat/port-linux.h] Move SELinux-specific code from ssh.c to + port-linux.c to avoid compilation errors. Add -lselinux to ssh when + building with SELinux support to avoid linking failure; report from + amk AT spamfence.net; ok dtucker + +20110122 + - (dtucker) [configure.ac openbsd-compat/openssl-compat.{c,h}] Add + RSA_get_default_method() for the benefit of openssl versions that don't + have it (at least openssl-engine-0.9.6b). Found and tested by Kevin Brott, + ok djm@. + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2011/01/22 09:18:53 + [version.h] + crank to OpenSSH-5.7 + - (djm) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec] + [contrib/suse/openssh.spec] update versions in docs and spec files. + - (djm) Release 5.7p1 + +20110119 + - (tim) [contrib/caldera/openssh.spec] Use CFLAGS from Makefile instead + of RPM so build completes. Signatures were changed to .asc since 4.1p1. + - (djm) [configure.ac] Disable ECC on OpenSSL <0.9.8g. Releases prior to + 0.9.8 lacked it, and 0.9.8a through 0.9.8d have proven buggy in pre- + release testing (random crashes and failure to load ECC keys). + ok dtucker@ + +20110117 + - (djm) [regress/Makefile] use $TEST_SSH_KEYGEN instead of the one in + $PATH, fix cleanup of droppings; reported by openssh AT + roumenpetrov.info; ok dtucker@ + - (djm) [regress/agent-ptrace.sh] Fix false failure on OS X by adding + its unique snowflake of a gdb error to the ones we look for. + - (djm) [regress/agent-getpeereid.sh] leave stdout attached when running + ssh-add to avoid $SUDO failures on Linux + - (dtucker) [openbsd-compat/port-linux.c] Bug #1838: Add support for the new + Linux OOM-killer magic values that changed in 2.6.36 kernels, with fallback + to the old values. Feedback from vapier at gentoo org and djm, ok djm. + - (djm) [configure.ac regress/agent-getpeereid.sh regress/multiplex.sh] + [regress/sftp-glob.sh regress/test-exec.sh] Rework how feature tests are + disabled on platforms that do not support them; add a "config_defined()" + shell function that greps for defines in config.h and use them to decide + on feature tests. + Convert a couple of existing grep's over config.h to use the new function + Add a define "FILESYSTEM_NO_BACKSLASH" for filesystem that can't represent + backslash characters in filenames, enable it for Cygwin and use it to turn + of tests for quotes backslashes in sftp-glob.sh. + based on discussion with vinschen AT redhat.com and dtucker@; ok dtucker@ + - (tim) [regress/agent-getpeereid.sh] shell portability fix. + - (dtucker) [openbsd-compat/port-linux.c] Fix minor bug caught by -Werror on + the tinderbox. + - (dtucker) [LICENCE Makefile.in audit-bsm.c audit-linux.c audit.c audit.h + configure.ac defines.h loginrec.c] Bug #1402: add linux audit subsystem + support, based on patches from Tomas Mraz and jchadima at redhat. + +20110116 + - (dtucker) [Makefile.in configure.ac regress/kextype.sh] Skip sha256-based + on configurations that don't have it. + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2011/01/16 11:50:05 + [clientloop.c] + Use atomicio when flushing protocol 1 std{out,err} buffers at + session close. This was a latent bug exposed by setting a SIGCHLD + handler and spotted by kevin.brott AT gmail.com; ok dtucker@ + - djm@cvs.openbsd.org 2011/01/16 11:50:36 + [sshconnect.c] + reset the SIGPIPE handler when forking to execute child processes; + ok dtucker@ + - djm@cvs.openbsd.org 2011/01/16 12:05:59 + [clientloop.c] + a couple more tweaks to the post-close protocol 1 stderr/stdout flush: + now that we use atomicio(), convert them from while loops to if statements + add test and cast to compile cleanly with -Wsigned + +20110114 + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2011/01/13 21:54:53 + [mux.c] + correct error messages; patch from bert.wesarg AT googlemail.com + - djm@cvs.openbsd.org 2011/01/13 21:55:25 + [PROTOCOL.mux] + correct protocol names and add a couple of missing protocol number + defines; patch from bert.wesarg AT googlemail.com + - (djm) [Makefile.in] Use shell test to disable ecdsa key generating in + host-key-force target rather than a substitution that is replaced with a + comment so that the Makefile.in is still a syntactically valid Makefile + (useful to run the distprep target) + - (tim) [regress/cert-hostkey.sh] Typo. Missing $ on variable name. + - (tim) [regress/cert-hostkey.sh] Add missing TEST_SSH_ECC guard around some + ecdsa bits. + +20110113 + - (djm) [misc.c] include time.h for nanosleep() prototype + - (tim) [Makefile.in] test the ECC bits if we have the capability. ok djm + - (tim) [Makefile.in configure.ac opensshd.init.in] Add support for generating + ecdsa keys. ok djm. + - (djm) [entropy.c] cast OPENSSL_VERSION_NUMBER to u_long to avoid + gcc warning on platforms where it defaults to int + - (djm) [regress/Makefile] add a few more generated files to the clean + target + - (djm) [myproposal.h] Fix reversed OPENSSL_VERSION_NUMBER test and bad + #define that was causing diffie-hellman-group-exchange-sha256 to be + incorrectly disabled + - (djm) [regress/kextype.sh] Testing diffie-hellman-group-exchange-sha256 + should not depend on ECC support + +20110112 + - OpenBSD CVS Sync + - nicm@cvs.openbsd.org 2010/10/08 21:48:42 + [openbsd-compat/glob.c] + Extend GLOB_LIMIT to cover readdir and stat and bump the malloc limit + from ARG_MAX to 64K. + Fixes glob-using programs (notably ftp) able to be triggered to hit + resource limits. + Idea from a similar NetBSD change, original problem reported by jasper@. + ok millert tedu jasper + - djm@cvs.openbsd.org 2011/01/12 01:53:14 + avoid some integer overflows mostly with GLOB_APPEND and GLOB_DOOFFS + and sanity check arguments (these will be unnecessary when we switch + struct glob members from being type into to size_t in the future); + "looks ok" tedu@ feedback guenther@ + - (djm) [configure.ac] Turn on -Wno-unused-result for gcc >= 4.4 to avoid + silly warnings on write() calls we don't care succeed or not. + - (djm) [configure.ac] Fix broken test for gcc >= 4.4 with per-compiler + flag tests that don't depend on gcc version at all; suggested by and + ok dtucker@ + +20110111 + - (tim) [regress/host-expand.sh] Fix for building outside of read only + source tree. + - (djm) [platform.c] Some missing includes that show up under -Werror + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2011/01/08 10:51:51 + [clientloop.c] + use host and not options.hostname, as the latter may have unescaped + substitution characters + - djm@cvs.openbsd.org 2011/01/11 06:06:09 + [sshlogin.c] + fd leak on error paths; from zinovik@ + NB. Id sync only; we use loginrec.c that was also audited and fixed + recently + - djm@cvs.openbsd.org 2011/01/11 06:13:10 + [clientloop.c ssh-keygen.c sshd.c] + some unsigned long long casts that make things a bit easier for + portable without resorting to dropping PRIu64 formats everywhere + +20110109 + - (djm) [Makefile.in] list ssh_host_ecdsa key in PATHSUBS; spotted by + openssh AT roumenpetrov.info + +20110108 + - (djm) [regress/keytype.sh] s/echo -n/echon/ to repair failing regress + test on OSX and others. Reported by imorgan AT nas.nasa.gov + +20110107 + - (djm) [regress/cert-hostkey.sh regress/cert-userkey.sh] fix shell test + for no-ECC case. Patch from cristian.ionescu-idbohrn AT axis.com + - djm@cvs.openbsd.org 2011/01/06 22:23:53 + [ssh.c] + unbreak %n expansion in LocalCommand; patch from bert.wesarg AT + googlemail.com; ok markus@ + - djm@cvs.openbsd.org 2011/01/06 22:23:02 + [clientloop.c] + when exiting due to ServerAliveTimeout, mention the hostname that caused + it (useful with backgrounded controlmaster) + - djm@cvs.openbsd.org 2011/01/06 22:46:21 + [regress/Makefile regress/host-expand.sh] + regress test for LocalCommand %n expansion from bert.wesarg AT + googlemail.com; ok markus@ + - djm@cvs.openbsd.org 2011/01/06 23:01:35 + [sshconnect.c] + reset SIGCHLD handler to SIG_DFL when execuring LocalCommand; + ok markus@ + +20110106 + - (djm) OpenBSD CVS Sync + - markus@cvs.openbsd.org 2010/12/08 22:46:03 + [scp.1 scp.c] + add a new -3 option to scp: Copies between two remote hosts are + transferred through the local host. Without this option the data + is copied directly between the two remote hosts. ok djm@ (bugzilla #1837) + - jmc@cvs.openbsd.org 2010/12/09 14:13:33 + [scp.1 scp.c] + scp.1: grammer fix + scp.c: add -3 to usage() + - markus@cvs.openbsd.org 2010/12/14 11:59:06 + [sshconnect.c] + don't mention key type in key-changed-warning, since we also print + this warning if a new key type appears. ok djm@ + - djm@cvs.openbsd.org 2010/12/15 00:49:27 + [readpass.c] + fix ControlMaster=ask regression + reset SIGCHLD handler before fork (and restore it after) so we don't miss + the the askpass child's exit status. Correct test for exit status/signal to + account for waitpid() failure; with claudio@ ok claudio@ markus@ + - djm@cvs.openbsd.org 2010/12/24 21:41:48 + [auth-options.c] + don't send the actual forced command in a debug message; ok markus deraadt + - otto@cvs.openbsd.org 2011/01/04 20:44:13 + [ssh-keyscan.c] + handle ecdsa-sha2 with various key lengths; hint and ok djm@ + +20110104 + - (djm) [configure.ac Makefile.in] Use mandoc as preferred manpage + formatter if it is present, followed by nroff and groff respectively. + Fixes distprep target on OpenBSD (which has bumped groff/nroff to ports + in favour of mandoc). feedback and ok tim + +20110103 + - (djm) [Makefile.in] revert local hack I didn't intend to commit + +20110102 + - (djm) [loginrec.c] Fix some fd leaks on error paths. ok dtucker + - (djm) [configure.ac] Check whether libdes is needed when building + with Heimdal krb5 support. On OpenBSD this library no longer exists, + so linking it unconditionally causes a build failure; ok dtucker + +20101226 + - (dtucker) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2010/12/08 04:02:47 + [ssh_config.5 sshd_config.5] + explain that IPQoS arguments are separated by whitespace; iirc requested + by jmc@ a while back + +20101205 + - (dtucker) openbsd-compat/openssl-compat.c] remove sleep leftover from + debugging. Spotted by djm. + - (dtucker) OpenBSD CVS Sync + - djm@cvs.openbsd.org 2010/12/03 23:49:26 + [schnorr.c] + check that g^x^q === 1 mod p; recommended by JPAKE author Feng Hao + (this code is still disabled, but apprently people are treating it as + a reference implementation) + - djm@cvs.openbsd.org 2010/12/03 23:55:27 + [auth-rsa.c] + move check for revoked keys to run earlier (in auth_rsa_key_allowed) + bz#1829; patch from ldv AT altlinux.org; ok markus@ + - djm@cvs.openbsd.org 2010/12/04 00:18:01 + [sftp-server.c sftp.1 sftp-client.h sftp.c PROTOCOL sftp-client.c] + add a protocol extension to support a hard link operation. It is + available through the "ln" command in the client. The old "ln" + behaviour of creating a symlink is available using its "-s" option + or through the preexisting "symlink" command; based on a patch from + miklos AT szeredi.hu in bz#1555; ok markus@ + - djm@cvs.openbsd.org 2010/12/04 13:31:37 + [hostfile.c] + fix fd leak; spotted and ok dtucker + - djm@cvs.openbsd.org 2010/12/04 00:21:19 + [regress/sftp-cmds.sh] + adjust for hard-link support + - (dtucker) [regress/Makefile] Id sync. + +20101204 + - (djm) [openbsd-compat/bindresvport.c] Use arc4random_uniform(range) + instead of (arc4random() % range) + - (dtucker) [configure.ac moduli.c openbsd-compat/openssl-compat.{c,h}] Add + shims for the new, non-deprecated OpenSSL key generation functions for + platforms that don't have the new interfaces. + +20101201 + - OpenBSD CVS Sync + - deraadt@cvs.openbsd.org 2010/11/20 05:12:38 + [auth2-pubkey.c] + clean up cases of ;; + - djm@cvs.openbsd.org 2010/11/21 01:01:13 + [clientloop.c misc.c misc.h ssh-agent.1 ssh-agent.c] + honour $TMPDIR for client xauth and ssh-agent temporary directories; + feedback and ok markus@ + - djm@cvs.openbsd.org 2010/11/21 10:57:07 + [authfile.c] + Refactor internals of private key loading and saving to work on memory + buffers rather than directly on files. This will make a few things + easier to do in the future; ok markus@ + - djm@cvs.openbsd.org 2010/11/23 02:35:50 + [auth.c] + use strict_modes already passed as function argument over referencing + global options.strict_modes + - djm@cvs.openbsd.org 2010/11/23 23:57:24 + [clientloop.c] + avoid NULL deref on receiving a channel request on an unknown or invalid + channel; report bz#1842 from jchadima AT redhat.com; ok dtucker@ + - djm@cvs.openbsd.org 2010/11/24 01:24:14 + [channels.c] + remove a debug() that pollutes stderr on client connecting to a server + in debug mode (channel_close_fds is called transitively from the session + code post-fork); bz#1719, ok dtucker + - djm@cvs.openbsd.org 2010/11/25 04:10:09 + [session.c] + replace close() loop for fds 3->64 with closefrom(); + ok markus deraadt dtucker + - djm@cvs.openbsd.org 2010/11/26 05:52:49 + [scp.c] + Pass through ssh command-line flags and options when doing remote-remote + transfers, e.g. to enable agent forwarding which is particularly useful + in this case; bz#1837 ok dtucker@ + - markus@cvs.openbsd.org 2010/11/29 18:57:04 + [authfile.c] + correctly load comment for encrypted rsa1 keys; + report/fix Joachim Schipper; ok djm@ + - djm@cvs.openbsd.org 2010/11/29 23:45:51 + [auth.c hostfile.c hostfile.h ssh.c ssh_config.5 sshconnect.c] + [sshconnect.h sshconnect2.c] + automatically order the hostkeys requested by the client based on + which hostkeys are already recorded in known_hosts. This avoids + hostkey warnings when connecting to servers with new ECDSA keys + that are preferred by default; with markus@ + +20101124 + - (dtucker) [platform.c session.c] Move the getluid call out of session.c and + into the platform-specific code Only affects SCO, tested by and ok tim@. + - (djm) [loginrec.c] Relax permission requirement on btmp logs to allow + group read/write. ok dtucker@ + - (dtucker) [packet.c] Remove redundant local declaration of "int tos". + - (djm) [defines.h] Add IP DSCP defines + +20101122 + - (dtucker) Bug #1840: fix warning when configuring --with-ssl-engine, patch + from vapier at gentoo org. + +20101120 + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2010/11/05 02:46:47 + [packet.c] + whitespace KNF + - djm@cvs.openbsd.org 2010/11/10 01:33:07 + [kexdhc.c kexdhs.c kexgexc.c kexgexs.c key.c moduli.c] + use only libcrypto APIs that are retained with OPENSSL_NO_DEPRECATED. + these have been around for years by this time. ok markus + - djm@cvs.openbsd.org 2010/11/13 23:27:51 + [clientloop.c misc.c misc.h packet.c packet.h readconf.c readconf.h] + [servconf.c servconf.h session.c ssh.c ssh_config.5 sshd_config.5] + allow ssh and sshd to set arbitrary TOS/DSCP/QoS values instead of + hardcoding lowdelay/throughput. + + bz#1733 patch from philipp AT redfish-solutions.com; ok markus@ deraadt@ + - jmc@cvs.openbsd.org 2010/11/15 07:40:14 + [ssh_config.5] + libary -> library; + - jmc@cvs.openbsd.org 2010/11/18 15:01:00 + [scp.1 sftp.1 ssh.1 sshd_config.5] + add IPQoS to the various -o lists, and zap some trailing whitespace; + +20101111 + - (djm) [servconf.c ssh-add.c ssh-keygen.c] don't look for ECDSA keys on + platforms that don't support ECC. Fixes some spurious warnings reported + by tim@ + +20101109 + - (tim) [regress/kextype.sh] Not all platforms have time in /usr/bin. + Feedback from dtucker@ + - (tim) [configure.ac openbsd-compat/bsd-misc.h openbsd-compat/bsd-misc.c] Add + support for platforms missing isblank(). ok djm@ + +20101108 + - (tim) [regress/Makefile] Fixes to allow building/testing outside source + tree. + - (tim) [regress/kextype.sh] Shell portability fix. + +20101107 + - (dtucker) [platform.c] includes.h instead of defines.h so that we get + the correct typedefs. + +20101105 + - (djm) [loginrec.c loginrec.h] Use correct uid_t/pid_t types instead of + int. Should fix bz#1817 cleanly; ok dtucker@ + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2010/09/22 12:26:05 + [regress/Makefile regress/kextype.sh] + regress test for each of the key exchange algorithms that we support + - djm@cvs.openbsd.org 2010/10/28 11:22:09 + [authfile.c key.c key.h ssh-keygen.c] + fix a possible NULL deref on loading a corrupt ECDH key + + store ECDH group information in private keys files as "named groups" + rather than as a set of explicit group parameters (by setting + the OPENSSL_EC_NAMED_CURVE flag). This makes for shorter key files and + retrieves the group's OpenSSL NID that we need for various things. + - jmc@cvs.openbsd.org 2010/10/28 18:33:28 + [scp.1 ssh-add.1 ssh-keygen.1 ssh.1 ssh_config.5 sshd.8 sshd_config.5] + knock out some "-*- nroff -*-" lines; + - djm@cvs.openbsd.org 2010/11/04 02:45:34 + [sftp-server.c] + umask should be parsed as octal. reported by candland AT xmission.com; + ok markus@ + - (dtucker) [configure.ac platform.{c,h} session.c + openbsd-compat/port-solaris.{c,h}] Bug #1824: Add Solaris Project support. + Patch from cory.erickson at csu mnscu edu with a bit of rework from me. + ok djm@ + - (dtucker) [platform.c platform.h session.c] Add a platform hook to run + after the user's groups are established and move the selinux calls into it. + - (dtucker) [platform.c session.c] Move the AIX setpcred+chroot hack into + platform.c + - (dtucker) [platform.c session.c] Move the BSDI setpgrp into platform.c. + - (dtucker) [platform.c] Only call setpgrp on BSDI if running as root to + retain previous behavior. + - (dtucker) [platform.c session.c] Move the PAM credential establishment for + the LOGIN_CAP case into platform.c. + - (dtucker) platform.c session.c] Move the USE_LIBIAF fragment into + platform.c + - (dtucker) [platform.c session.c] Move aix_usrinfo frament into platform.c. + - (dtucker) [platform.c session.c] Move irix setusercontext fragment into + platform.c. + - (dtucker) [platform.c session.c] Move PAM credential establishment for the + non-LOGIN_CAP case into platform.c. + - (dtucker) [platform.c platform.h session.c] Move the Cygwin special-case + check into platform.c + - (dtucker) [regress/keytype.sh] Import new test. + - (dtucker) [Makefile configure.ac regress/Makefile regress/keytype.sh] + Import recent changes to regress/Makefile, pass a flag to enable ECC tests + from configure through to regress/Makefile and use it in the tests. + - (dtucker) [regress/kextype.sh] Add missing "test". + - (dtucker) [regress/kextype.sh] Make sha256 test depend on ECC. This is not + strictly correct since while ECC requires sha256 the reverse is not true + however it does prevent spurious test failures. + - (dtucker) [platform.c] Need servconf.h and extern options. + +20101025 + - (tim) [openbsd-compat/glob.h] Remove sys/cdefs.h include that came with + 1.12 to unbreak Solaris build. + ok djm@ + - (dtucker) [defines.h] Use SIZE_T_MAX for SIZE_MAX for platforms that have a + native one. + +20101024 + - (dtucker) [includes.h] Add missing ifdef GLOB_HAS_GL_STATV to fix build. + - (dtucker) [regress/cert-hostkey.sh] Disable ECC-based tests on platforms + which don't have ECC support in libcrypto. + - (dtucker) [regress/cert-userkey.sh] Disable ECC-based tests on platforms + which don't have ECC support in libcrypto. + - (dtucker) [defines.h] Add SIZE_MAX for the benefit of platforms that don't + have it. + - (dtucker) OpenBSD CVS Sync + - sthen@cvs.openbsd.org 2010/10/23 22:06:12 + [sftp.c] + escape '[' in filename tab-completion; fix a type while there. + ok djm@ + +20101021 + - OpenBSD CVS Sync + - dtucker@cvs.openbsd.org 2010/10/12 02:22:24 + [mux.c] + Typo in confirmation message. bz#1827, patch from imorgan at + nas nasa gov + - djm@cvs.openbsd.org 2010/08/31 12:24:09 + [regress/cert-hostkey.sh regress/cert-userkey.sh] + tests for ECDSA certificates + +20101011 + - (djm) [canohost.c] Zero a4 instead of addr to better match type. + bz#1825, reported by foo AT mailinator.com + - (djm) [sshconnect.c] Need signal.h for prototype for kill(2) + +20101011 + - (djm) [configure.ac] Use = instead of == in shell tests. Patch from + dr AT vasco.com + +20101007 + - (djm) [ssh-agent.c] Fix type for curve name. + - (djm) OpenBSD CVS Sync + - matthew@cvs.openbsd.org 2010/09/24 13:33:00 + [misc.c misc.h configure.ac openbsd-compat/openbsd-compat.h] + [openbsd-compat/timingsafe_bcmp.c] + Add timingsafe_bcmp(3) to libc, mention that it's already in the + kernel in kern(9), and remove it from OpenSSH. + ok deraadt@, djm@ + NB. re-added under openbsd-compat/ for portable OpenSSH + - djm@cvs.openbsd.org 2010/09/25 09:30:16 + [sftp.c configure.ac openbsd-compat/glob.c openbsd-compat/glob.h] + make use of new glob(3) GLOB_KEEPSTAT extension to save extra server + rountrips to fetch per-file stat(2) information. + NB. update openbsd-compat/ glob(3) implementation from OpenBSD libc to + match. + - djm@cvs.openbsd.org 2010/09/26 22:26:33 + [sftp.c] + when performing an "ls" in columnated (short) mode, only call + ioctl(TIOCGWINSZ) once to get the window width instead of per- + filename + - djm@cvs.openbsd.org 2010/09/30 11:04:51 + [servconf.c] + prevent free() of string in .rodata when overriding AuthorizedKeys in + a Match block; patch from rein AT basefarm.no + - djm@cvs.openbsd.org 2010/10/01 23:05:32 + [cipher-3des1.c cipher-bf1.c cipher-ctr.c openbsd-compat/openssl-compat.h] + adapt to API changes in openssl-1.0.0a + NB. contains compat code to select correct API for older OpenSSL + - djm@cvs.openbsd.org 2010/10/05 05:13:18 + [sftp.c sshconnect.c] + use default shell /bin/sh if $SHELL is ""; ok markus@ + - djm@cvs.openbsd.org 2010/10/06 06:39:28 + [clientloop.c ssh.c sshconnect.c sshconnect.h] + kill proxy command on fatal() (we already kill it on clean exit); + ok markus@ + - djm@cvs.openbsd.org 2010/10/06 21:10:21 + [sshconnect.c] + swapped args to kill(2) + - (djm) [openbsd-compat/glob.c] restore ARG_MAX compat code. + - (djm) [cipher-acss.c] Add missing header. + - (djm) [openbsd-compat/Makefile.in] Actually link timingsafe_bcmp + +20100924 + - (djm) OpenBSD CVS Sync + - naddy@cvs.openbsd.org 2010/09/10 15:19:29 + [ssh-keygen.1] + * mention ECDSA in more places + * less repetition in FILES section + * SSHv1 keys are still encrypted with 3DES + help and ok jmc@ + - djm@cvs.openbsd.org 2010/09/11 21:44:20 + [ssh.1] + mention RFC 5656 for ECC stuff + - jmc@cvs.openbsd.org 2010/09/19 21:30:05 + [sftp.1] + more wacky macro fixing; + - djm@cvs.openbsd.org 2010/09/20 04:41:47 + [ssh.c] + install a SIGCHLD handler to reap expiried child process; ok markus@ + - djm@cvs.openbsd.org 2010/09/20 04:50:53 + [jpake.c schnorr.c] + check that received values are smaller than the group size in the + disabled and unfinished J-PAKE code. + avoids catastrophic security failure found by Sebastien Martini + - djm@cvs.openbsd.org 2010/09/20 04:54:07 + [jpake.c] + missing #include + - djm@cvs.openbsd.org 2010/09/20 07:19:27 + [mux.c] + "atomically" create the listening mux socket by binding it on a temorary + name and then linking it into position after listen() has succeeded. + this allows the mux clients to determine that the server socket is + either ready or stale without races. stale server sockets are now + automatically removed + ok deraadt + - djm@cvs.openbsd.org 2010/09/22 05:01:30 + [kex.c kex.h kexecdh.c kexecdhc.c kexecdhs.c readconf.c readconf.h] + [servconf.c servconf.h ssh_config.5 sshconnect2.c sshd.c sshd_config.5] + add a KexAlgorithms knob to the client and server configuration to allow + selection of which key exchange methods are used by ssh(1) and sshd(8) + and their order of preference. + ok markus@ + - jmc@cvs.openbsd.org 2010/09/22 08:30:08 + [ssh.1 ssh_config.5] + ssh.1: add kexalgorithms to the -o list + ssh_config.5: format the kexalgorithms in a more consistent + (prettier!) way + ok djm + - djm@cvs.openbsd.org 2010/09/22 22:58:51 + [atomicio.c atomicio.h misc.c misc.h scp.c sftp-client.c] + [sftp-client.h sftp.1 sftp.c] + add an option per-read/write callback to atomicio + + factor out bandwidth limiting code from scp(1) into a generic bandwidth + limiter that can be attached using the atomicio callback mechanism + + add a bandwidth limit option to sftp(1) using the above + "very nice" markus@ + - jmc@cvs.openbsd.org 2010/09/23 13:34:43 + [sftp.c] + add [-l limit] to usage(); + - jmc@cvs.openbsd.org 2010/09/23 13:36:46 + [scp.1 sftp.1] + add KexAlgorithms to the -o list; + +20100910 + - (dtucker) [openbsd-compat/port-linux.c] Check is_selinux_enabled for exact + return code since it can apparently return -1 under some conditions. From + openssh bugs werbittewas de, ok djm@ + - OpenBSD CVS Sync + - djm@cvs.openbsd.org 2010/08/31 12:33:38 + [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keysign.c ssh.c sshd.c] + reintroduce commit from tedu@, which I pulled out for release + engineering: + OpenSSL_add_all_algorithms is the name of the function we have a + man page for, so use that. ok djm + - jmc@cvs.openbsd.org 2010/08/31 17:40:54 + [ssh-agent.1] + fix some macro abuse; + - jmc@cvs.openbsd.org 2010/08/31 21:14:58 + [ssh.1] + small text tweak to accommodate previous; + - naddy@cvs.openbsd.org 2010/09/01 15:21:35 + [servconf.c] + pick up ECDSA host key by default; ok djm@ + - markus@cvs.openbsd.org 2010/09/02 16:07:25 + [ssh-keygen.c] + permit -b 256, 384 or 521 as key size for ECDSA; ok djm@ + - markus@cvs.openbsd.org 2010/09/02 16:08:39 + [ssh.c] + unbreak ControlPersist=yes for ControlMaster=yes; ok djm@ + - naddy@cvs.openbsd.org 2010/09/02 17:21:50 + [ssh-keygen.c] + Switch ECDSA default key size to 256 bits, which according to RFC5656 + should still be better than our current RSA-2048 default. + ok djm@, markus@ + - jmc@cvs.openbsd.org 2010/09/03 11:09:29 + [scp.1] + add an EXIT STATUS section for /usr/bin; + - jmc@cvs.openbsd.org 2010/09/04 09:38:34 + [ssh-add.1 ssh.1] + two more EXIT STATUS sections; + - naddy@cvs.openbsd.org 2010/09/06 17:10:19 + [sshd_config] + add ssh_host_ecdsa_key to /etc; from Mattieu Baptiste + + ok deraadt@ + - djm@cvs.openbsd.org 2010/09/08 03:54:36 + [authfile.c] + typo + - deraadt@cvs.openbsd.org 2010/09/08 04:13:31 + [compress.c] + work around name-space collisions some buggy compilers (looking at you + gcc, at least in earlier versions, but this does not forgive your current + transgressions) seen between zlib and openssl + ok djm + - djm@cvs.openbsd.org 2010/09/09 10:45:45 + [kex.c kex.h kexecdh.c key.c key.h monitor.c ssh-ecdsa.c] + ECDH/ECDSA compliance fix: these methods vary the hash function they use + (SHA256/384/512) depending on the length of the curve in use. The previous + code incorrectly used SHA256 in all cases. + + This fix will cause authentication failure when using 384 or 521-bit curve + keys if one peer hasn't been upgraded and the other has. (256-bit curve + keys work ok). In particular you may need to specify HostkeyAlgorithms + when connecting to a server that has not been upgraded from an upgraded + client. + + ok naddy@ + - (djm) [authfd.c authfile.c bufec.c buffer.h configure.ac kex.h kexecdh.c] + [kexecdhc.c kexecdhs.c key.c key.h myproposal.h packet.c readconf.c] + [ssh-agent.c ssh-ecdsa.c ssh-keygen.c ssh.c] Disable ECDH and ECDSA on + platforms that don't have the requisite OpenSSL support. ok dtucker@ + - (dtucker) [kex.h key.c packet.h ssh-agent.c ssh.c] A few more ECC ifdefs + for missing headers and compiler warnings. + +20100831 + - OpenBSD CVS Sync + - jmc@cvs.openbsd.org 2010/08/08 19:36:30 + [ssh-keysign.8 ssh.1 sshd.8] + use the same template for all FILES sections; i.e. -compact/.Pp where we + have multiple items, and .Pa for path names; + - tedu@cvs.openbsd.org 2010/08/12 23:34:39 + [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keysign.c ssh.c sshd.c] + OpenSSL_add_all_algorithms is the name of the function we have a man page + for, so use that. ok djm + - djm@cvs.openbsd.org 2010/08/16 04:06:06 + [ssh-add.c ssh-agent.c ssh-keygen.c ssh-keysign.c ssh.c sshd.c] + backout previous temporarily; discussed with deraadt@ + - djm@cvs.openbsd.org 2010/08/31 09:58:37 + [auth-options.c auth1.c auth2.c bufaux.c buffer.h kex.c key.c packet.c] + [packet.h ssh-dss.c ssh-rsa.c] + Add buffer_get_cstring() and related functions that verify that the + string extracted from the buffer contains no embedded \0 characters* + This prevents random (possibly malicious) crap from being appended to + strings where it would not be noticed if the string is used with + a string(3) function. + + Use the new API in a few sensitive places. + + * actually, we allow a single one at the end of the string for now because + we don't know how many deployed implementations get this wrong, but don't + count on this to remain indefinitely. + - djm@cvs.openbsd.org 2010/08/31 11:54:45 + [PROTOCOL PROTOCOL.agent PROTOCOL.certkeys auth2-jpake.c authfd.c] + [authfile.c buffer.h dns.c kex.c kex.h key.c key.h monitor.c] + [monitor_wrap.c myproposal.h packet.c packet.h pathnames.h readconf.c] + [ssh-add.1 ssh-add.c ssh-agent.1 ssh-agent.c ssh-keygen.1 ssh-keygen.c] + [ssh-keyscan.1 ssh-keyscan.c ssh-keysign.8 ssh.1 ssh.c ssh2.h] + [ssh_config.5 sshconnect.c sshconnect2.c sshd.8 sshd.c sshd_config.5] + [uuencode.c uuencode.h bufec.c kexecdh.c kexecdhc.c kexecdhs.c ssh-ecdsa.c] + Implement Elliptic Curve Cryptography modes for key exchange (ECDH) and + host/user keys (ECDSA) as specified by RFC5656. ECDH and ECDSA offer + better performance than plain DH and DSA at the same equivalent symmetric + key length, as well as much shorter keys. + + Only the mandatory sections of RFC5656 are implemented, specifically the + three REQUIRED curves nistp256, nistp384 and nistp521 and only ECDH and + ECDSA. Point compression (optional in RFC5656 is NOT implemented). + + Certificate host and user keys using the new ECDSA key types are supported. + + Note that this code has not been tested for interoperability and may be + subject to change. + + feedback and ok markus@ + - (djm) [Makefile.in] Add new ECC files + - (djm) [bufec.c kexecdh.c kexecdhc.c kexecdhs.c ssh-ecdsa.c] include + includes.h + +20100827 + - (dtucker) [contrib/redhat/sshd.init] Bug #1810: initlog is deprecated, + remove. Patch from martynas at venck us + 20100823 - (djm) Release OpenSSH-5.6p1 @@ -517,2746 +1256,3 @@ ok markus@ -20100410 - - (dtucker) [configure.ac] Put the check for the existence of getaddrinfo - back so we disable the IPv6 tests if we don't have it. - -20100409 - - (dtucker) [contrib/cygwin/Makefile] Don't overwrite files with the wrong - ones. Based on a patch from Roumen Petrov. - - (dtucker) [configure.ac] Bug #1744: use pkg-config for libedit flags if we - have it and the path is not provided to --with-libedit. Based on a patch - from Iain Morgan. - - (dtucker) [configure.ac defines.h loginrec.c logintest.c] Bug #1732: enable - utmpx support on FreeBSD where possible. Patch from Ed Schouten, ok djm@ - -20100326 - - (djm) [openbsd-compat/bsd-arc4random.c] Fix preprocessor detection - for arc4random_buf() and arc4random_uniform(); from Josh Gilkerson - - (dtucker) [configure.ac] Bug #1741: Add section for Haiku, patch originally - by Ingo Weinhold via Scott McCreary, ok djm@ - - (djm) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2010/03/25 23:38:28 - [servconf.c] - from portable: getcwd(NULL, 0) doesn't work on all platforms, so - use a stack buffer; ok dtucker@ - - djm@cvs.openbsd.org 2010/03/26 00:26:58 - [ssh.1] - mention that -S none disables connection sharing; from Colin Watson - - (djm) [session.c] Allow ChrootDirectory to work on SELinux platforms - - set up SELinux execution context before chroot() call. From Russell - Coker via Colin watson; bz#1726 ok dtucker@ - - (djm) [channels.c] Check for EPFNOSUPPORT as a socket() errno; bz#1721 - ok dtucker@ - - (dtucker) Bug #1725: explicitly link libX11 into gnome-ssh-askpass2 using - pkg-config, patch from Colin Watson. Needed for newer linkers (ie gold). - - (djm) [contrib/ssh-copy-id] Don't blow up when the agent has no keys; - bz#1723 patch from Adeodato Simóvia Colin Watson; ok dtucker@ - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2010/03/26 01:06:13 - [ssh_config.5] - Reformat default value of PreferredAuthentications entry (current - formatting implies ", " is acceptable as a separator, which it's not. - ok djm@ - -20100324 - - (dtucker) [contrib/cygwin/ssh-host-config] Mount the Windows directory - containing the services file explicitely case-insensitive. This allows to - tweak the Windows services file reliably. Patch from vinschen at redhat. - -20100321 - - (djm) OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2010/03/08 09:41:27 - [ssh-keygen.1] - sort the list of constraints (to -O); ok djm - - jmc@cvs.openbsd.org 2010/03/10 07:40:35 - [ssh-keygen.1] - typos; from Ross Richardson - closes prs 6334 and 6335 - - djm@cvs.openbsd.org 2010/03/10 23:27:17 - [auth2-pubkey.c] - correct certificate logging and make it more consistent between - authorized_keys and TrustedCAKeys; ok markus@ - - djm@cvs.openbsd.org 2010/03/12 01:06:25 - [servconf.c] - unbreak AuthorizedKeys option with a $HOME-relative path; reported by - vinschen AT redhat.com, ok dtucker@ - - markus@cvs.openbsd.org 2010/03/12 11:37:40 - [servconf.c] - do not prepend AuthorizedKeysFile with getcwd(), unbreaks relative paths - free() (not xfree()) the buffer returned by getcwd() - - djm@cvs.openbsd.org 2010/03/13 21:10:38 - [clientloop.c] - protocol conformance fix: send language tag when disconnecting normally; - spotted by 1.41421 AT gmail.com, ok markus@ deraadt@ - - djm@cvs.openbsd.org 2010/03/13 21:45:46 - [ssh-keygen.1] - Certificates are named *-cert.pub, not *_cert.pub; committing a diff - from stevesk@ ok me - - jmc@cvs.openbsd.org 2010/03/13 23:38:13 - [ssh-keygen.1] - fix a formatting error (args need quoted); noted by stevesk - - stevesk@cvs.openbsd.org 2010/03/15 19:40:02 - [key.c key.h ssh-keygen.c] - also print certificate type (user or host) for ssh-keygen -L - ok djm kettenis - - stevesk@cvs.openbsd.org 2010/03/16 15:46:52 - [auth-options.c] - spelling in error message. ok djm kettenis - - djm@cvs.openbsd.org 2010/03/16 16:36:49 - [version.h] - crank version to openssh-5.5 since we have a few fixes since 5.4; - requested deraadt@ kettenis@ - - (djm) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec] - [contrib/suse/openssh.spec] Crank version numbers - -20100314 - - (djm) [ssh-pkcs11-helper.c] Move #ifdef to after #defines to fix - compilation failure when !HAVE_DLOPEN. Reported by felix-mindrot - AT fefe.de - - (djm) [Makefile.in] Respecify -lssh after -lopenbsd-compat for - ssh-pkcs11-helper to repair static builds (we do the same for - ssh-keyscan). Reported by felix-mindrot AT fefe.de - -20100312 - - (tim) [Makefile.in] Now that scard is gone, no need to make $(datadir) - - (tim) [Makefile.in] Add missing $(EXEEXT) to install targets. - Patch from Corinna Vinschen. - - (tim) [contrib/cygwin/Makefile] Fix list of documentation files to install - on a Cygwin installation. Patch from Corinna Vinschen. - -20100311 - - (tim) [contrib/suse/openssh.spec] crank version number here too. - report by imorgan AT nas.nasa.gov - -20100309 - - (dtucker) [configure.ac] Use a proper AC_CHECK_DECL for BROKEN_GETADDRINFO - so setting it in CFLAGS correctly skips IPv6 tests. - -20100428 - - (djm) OpenBSD CVS Sync - - djm@cvs.openbsd.org 2010/03/07 22:16:01 - [ssh-keygen.c] - make internal strptime string match strftime format; - suggested by vinschen AT redhat.com and markus@ - - djm@cvs.openbsd.org 2010/03/08 00:28:55 - [ssh-keygen.1] - document permit-agent-forwarding certificate constraint; patch from - stevesk@ - - djm@cvs.openbsd.org 2010/03/07 22:01:32 - [version.h] - openssh-5.4 - - (djm) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec] - crank version numbers - - (djm) Release OpenSSH-5.4p1 - -20100307 - - (dtucker) [auth.c] Bug #1710: call setauthdb on AIX before getpwuid so that - it gets the passwd struct from the LAM that knows about the user which is - not necessarily the default. Patch from Alexandre Letourneau. - - (dtucker) [session.c] Bug #1567: move setpcred call to before chroot and - do not set real uid, since that's needed for the chroot, and will be set - by permanently_set_uid. - - (dtucker) [session.c] Also initialize creds to NULL for handing to - setpcred. - - (dtucker) OpenBSD CVS Sync - - dtucker@cvs.openbsd.org 2010/03/07 11:57:13 - [auth-rhosts.c monitor.c monitor_wrap.c session.c auth-options.c sshd.c] - Hold authentication debug messages until after successful authentication. - Fixes an info leak of environment variables specified in authorized_keys, - reported by Jacob Appelbaum. ok djm@ - -20100305 - - OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2010/03/04 12:51:25 - [ssh.1 sshd_config.5] - tweak previous; - - djm@cvs.openbsd.org 2010/03/04 20:35:08 - [ssh-keygen.1 ssh-keygen.c] - Add a -L flag to print the contents of a certificate; ok markus@ - - jmc@cvs.openbsd.org 2010/03/04 22:52:40 - [ssh-keygen.1] - fix Bk/Ek; - - djm@cvs.openbsd.org 2010/03/04 23:17:25 - [sshd_config.5] - missing word; spotted by jmc@ - - djm@cvs.openbsd.org 2010/03/04 23:19:29 - [ssh.1 sshd.8] - move section on CA and revoked keys from ssh.1 to sshd.8's known hosts - format section and rework it a bit; requested by jmc@ - - djm@cvs.openbsd.org 2010/03/04 23:27:25 - [auth-options.c ssh-keygen.c] - "force-command" is not spelled "forced-command"; spotted by - imorgan AT nas.nasa.gov - - djm@cvs.openbsd.org 2010/03/05 02:58:11 - [auth.c] - make the warning for a revoked key louder and more noticable - - jmc@cvs.openbsd.org 2010/03/05 06:50:35 - [ssh.1 sshd.8] - tweak previous; - - jmc@cvs.openbsd.org 2010/03/05 08:31:20 - [ssh.1] - document certificate authentication; help/ok djm - - djm@cvs.openbsd.org 2010/03/05 10:28:21 - [ssh-add.1 ssh.1 ssh_config.5] - mention loading of certificate files from [private]-cert.pub when - they are present; feedback and ok jmc@ - - (tim) [ssh-pkcs11.c] Fix "non-constant initializer" errors in older - compilers. OK djm@ - - (djm) [ssh-rand-helper.c] declare optind, avoiding compilation failure - on some platforms - - (djm) [configure.ac] set -fno-strict-aliasing for gcc4; ok dtucker@ - -20100304 - - (djm) [ssh-keygen.c] Use correct local variable, instead of - maybe-undefined global "optarg" - - (djm) [contrib/redhat/openssh.spec] Replace obsolete BuildPreReq - on XFree86-devel with neutral /usr/include/X11/Xlib.h; - imorgan AT nas.nasa.gov in bz#1731 - - (djm) [.cvsignore] Ignore ssh-pkcs11-helper - - (djm) [regress/Makefile] Cleanup sshd_proxy_orig - - OpenBSD CVS Sync - - djm@cvs.openbsd.org 2010/03/03 01:44:36 - [auth-options.c key.c] - reject strings with embedded ASCII nul chars in certificate key IDs, - principal names and constraints - - djm@cvs.openbsd.org 2010/03/03 22:49:50 - [sshd.8] - the authorized_keys option for CA keys is "cert-authority", not - "from=cert-authority". spotted by imorgan AT nas.nasa.gov - - djm@cvs.openbsd.org 2010/03/03 22:50:40 - [PROTOCOL.certkeys] - s/similar same/similar/; from imorgan AT nas.nasa.gov - - djm@cvs.openbsd.org 2010/03/04 01:44:57 - [key.c] - use buffer_get_string_ptr_ret() where we are checking the return - value explicitly instead of the fatal()-causing buffer_get_string_ptr() - - djm@cvs.openbsd.org 2010/03/04 10:36:03 - [auth-rh-rsa.c auth-rsa.c auth.c auth.h auth2-hostbased.c auth2-pubkey.c] - [authfile.c authfile.h hostfile.c hostfile.h servconf.c servconf.h] - [ssh-keygen.c ssh.1 sshconnect.c sshd_config.5] - Add a TrustedUserCAKeys option to sshd_config to specify CA keys that - are trusted to authenticate users (in addition than doing it per-user - in authorized_keys). - - Add a RevokedKeys option to sshd_config and a @revoked marker to - known_hosts to allow keys to me revoked and banned for user or host - authentication. - - feedback and ok markus@ - - djm@cvs.openbsd.org 2010/03/03 00:47:23 - [regress/cert-hostkey.sh regress/cert-userkey.sh] - add an extra test to ensure that authentication with the wrong - certificate fails as it should (and it does) - - djm@cvs.openbsd.org 2010/03/04 10:38:23 - [regress/cert-hostkey.sh regress/cert-userkey.sh] - additional regression tests for revoked keys and TrustedUserCAKeys - -20100303 - - (djm) [PROTOCOL.certkeys] Add RCS Ident - - OpenBSD CVS Sync - - jmc@cvs.openbsd.org 2010/02/26 22:09:28 - [ssh-keygen.1 ssh.1 sshd.8] - tweak previous; - - otto@cvs.openbsd.org 2010/03/01 11:07:06 - [ssh-add.c] - zap what seems to be a left-over debug message; ok markus@ - - djm@cvs.openbsd.org 2010/03/02 23:20:57 - [ssh-keygen.c] - POSIX strptime is stricter than OpenBSD's so do a little dance to - appease it. - - (djm) [regress/cert-userkey.sh] s/echo -n/echon/ here too - -20100302 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Wed May 4 08:31:58 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E01F61065670; Wed, 4 May 2011 08:31:58 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CFD208FC15; Wed, 4 May 2011 08:31:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p448VwvP037856; Wed, 4 May 2011 08:31:58 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p448VwBh037855; Wed, 4 May 2011 08:31:58 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105040831.p448VwBh037855@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 08:31:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221423 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 08:31:59 -0000 Author: netchild Date: Wed May 4 08:31:58 2011 New Revision: 221423 URL: http://svn.freebsd.org/changeset/base/221423 Log: Copy the v4l2 header unchanged from the vendor branch. Added: head/sys/compat/linux/linux_videodev2.h - copied unchanged from r221422, vendor/v4l/dist/videodev2.h Copied: head/sys/compat/linux/linux_videodev2.h (from r221422, vendor/v4l/dist/videodev2.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/compat/linux/linux_videodev2.h Wed May 4 08:31:58 2011 (r221423, copy of r221422, vendor/v4l/dist/videodev2.h) @@ -0,0 +1,1164 @@ +#ifndef __LINUX_VIDEODEV2_H +#define __LINUX_VIDEODEV2_H +/* + * Video for Linux Two + * + * Header file for v4l or V4L2 drivers and applications, for + * Linux kernels 2.2.x or 2.4.x. + * + * See http://bytesex.org/v4l/ for API specs and other + * v4l2 documentation. + * + * Author: Bill Dirks + * Justin Schoeman + * et al. + */ +#ifdef __KERNEL__ +#include /* need struct timeval */ +#include +#include +#include +#endif +#include /* need __user */ + + +#define OBSOLETE_OWNER 1 /* It will be removed for 2.6.17 */ +#define HAVE_V4L2 1 + +/* + * Common stuff for both V4L1 and V4L2 + * Moved from videodev.h + */ + +#define VIDEO_MAX_FRAME 32 + +#define VID_TYPE_CAPTURE 1 /* Can capture */ +#define VID_TYPE_TUNER 2 /* Can tune */ +#define VID_TYPE_TELETEXT 4 /* Does teletext */ +#define VID_TYPE_OVERLAY 8 /* Overlay onto frame buffer */ +#define VID_TYPE_CHROMAKEY 16 /* Overlay by chromakey */ +#define VID_TYPE_CLIPPING 32 /* Can clip */ +#define VID_TYPE_FRAMERAM 64 /* Uses the frame buffer memory */ +#define VID_TYPE_SCALES 128 /* Scalable */ +#define VID_TYPE_MONOCHROME 256 /* Monochrome only */ +#define VID_TYPE_SUBCAPTURE 512 /* Can capture subareas of the image */ +#define VID_TYPE_MPEG_DECODER 1024 /* Can decode MPEG streams */ +#define VID_TYPE_MPEG_ENCODER 2048 /* Can encode MPEG streams */ +#define VID_TYPE_MJPEG_DECODER 4096 /* Can decode MJPEG streams */ +#define VID_TYPE_MJPEG_ENCODER 8192 /* Can encode MJPEG streams */ + +#ifdef __KERNEL__ + +/* Minor device allocation */ +#define MINOR_VFL_TYPE_GRABBER_MIN 0 +#define MINOR_VFL_TYPE_GRABBER_MAX 63 +#define MINOR_VFL_TYPE_RADIO_MIN 64 +#define MINOR_VFL_TYPE_RADIO_MAX 127 +#define MINOR_VFL_TYPE_VTX_MIN 192 +#define MINOR_VFL_TYPE_VTX_MAX 223 +#define MINOR_VFL_TYPE_VBI_MIN 224 +#define MINOR_VFL_TYPE_VBI_MAX 255 + +#define VFL_TYPE_GRABBER 0 +#define VFL_TYPE_VBI 1 +#define VFL_TYPE_RADIO 2 +#define VFL_TYPE_VTX 3 + +struct video_device +{ + /* device info */ + struct device *dev; + char name[32]; + int type; /* v4l1 */ + int type2; /* v4l2 */ + int hardware; + int minor; + + /* device ops + callbacks */ + const struct file_operations *fops; + void (*release)(struct video_device *vfd); + + +#if OBSOLETE_OWNER /* to be removed in 2.6.15 */ + /* obsolete -- fops->owner is used instead */ + struct module *owner; + /* dev->driver_data will be used instead some day. + * Use the video_{get|set}_drvdata() helper functions, + * so the switch over will be transparent for you. + * Or use {pci|usb}_{get|set}_drvdata() directly. */ + void *priv; +#endif + + /* for videodev.c intenal usage -- please don't touch */ + int users; /* video_exclusive_{open|close} ... */ + struct mutex lock; /* ... helper function uses these */ + char devfs_name[64]; /* devfs */ + struct class_device class_dev; /* sysfs */ +}; + +#define VIDEO_MAJOR 81 + +extern int video_register_device(struct video_device *, int type, int nr); +extern void video_unregister_device(struct video_device *); +extern int video_usercopy(struct inode *inode, struct file *file, + unsigned int cmd, unsigned long arg, + int (*func)(struct inode *inode, struct file *file, + unsigned int cmd, void *arg)); + +/* helper functions to alloc / release struct video_device, the + later can be used for video_device->release() */ +struct video_device *video_device_alloc(void); +void video_device_release(struct video_device *vfd); + +#endif + +/* + * M I S C E L L A N E O U S + */ + +/* Four-character-code (FOURCC) */ +#define v4l2_fourcc(a,b,c,d)\ + (((__u32)(a)<<0)|((__u32)(b)<<8)|((__u32)(c)<<16)|((__u32)(d)<<24)) + +/* + * E N U M S + */ +enum v4l2_field { + V4L2_FIELD_ANY = 0, /* driver can choose from none, + top, bottom, interlaced + depending on whatever it thinks + is approximate ... */ + V4L2_FIELD_NONE = 1, /* this device has no fields ... */ + V4L2_FIELD_TOP = 2, /* top field only */ + V4L2_FIELD_BOTTOM = 3, /* bottom field only */ + V4L2_FIELD_INTERLACED = 4, /* both fields interlaced */ + V4L2_FIELD_SEQ_TB = 5, /* both fields sequential into one + buffer, top-bottom order */ + V4L2_FIELD_SEQ_BT = 6, /* same as above + bottom-top order */ + V4L2_FIELD_ALTERNATE = 7, /* both fields alternating into + separate buffers */ +}; +#define V4L2_FIELD_HAS_TOP(field) \ + ((field) == V4L2_FIELD_TOP ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) +#define V4L2_FIELD_HAS_BOTTOM(field) \ + ((field) == V4L2_FIELD_BOTTOM ||\ + (field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) +#define V4L2_FIELD_HAS_BOTH(field) \ + ((field) == V4L2_FIELD_INTERLACED ||\ + (field) == V4L2_FIELD_SEQ_TB ||\ + (field) == V4L2_FIELD_SEQ_BT) + +enum v4l2_buf_type { + V4L2_BUF_TYPE_VIDEO_CAPTURE = 1, + V4L2_BUF_TYPE_VIDEO_OUTPUT = 2, + V4L2_BUF_TYPE_VIDEO_OVERLAY = 3, + V4L2_BUF_TYPE_VBI_CAPTURE = 4, + V4L2_BUF_TYPE_VBI_OUTPUT = 5, +#if 1 + /* Experimental Sliced VBI */ + V4L2_BUF_TYPE_SLICED_VBI_CAPTURE = 6, + V4L2_BUF_TYPE_SLICED_VBI_OUTPUT = 7, +#endif + V4L2_BUF_TYPE_PRIVATE = 0x80, +}; + +enum v4l2_ctrl_type { + V4L2_CTRL_TYPE_INTEGER = 1, + V4L2_CTRL_TYPE_BOOLEAN = 2, + V4L2_CTRL_TYPE_MENU = 3, + V4L2_CTRL_TYPE_BUTTON = 4, +}; + +enum v4l2_tuner_type { + V4L2_TUNER_RADIO = 1, + V4L2_TUNER_ANALOG_TV = 2, + V4L2_TUNER_DIGITAL_TV = 3, +}; + +enum v4l2_memory { + V4L2_MEMORY_MMAP = 1, + V4L2_MEMORY_USERPTR = 2, + V4L2_MEMORY_OVERLAY = 3, +}; + +/* see also http://vektor.theorem.ca/graphics/ycbcr/ */ +enum v4l2_colorspace { + /* ITU-R 601 -- broadcast NTSC/PAL */ + V4L2_COLORSPACE_SMPTE170M = 1, + + /* 1125-Line (US) HDTV */ + V4L2_COLORSPACE_SMPTE240M = 2, + + /* HD and modern captures. */ + V4L2_COLORSPACE_REC709 = 3, + + /* broken BT878 extents (601, luma range 16-253 instead of 16-235) */ + V4L2_COLORSPACE_BT878 = 4, + + /* These should be useful. Assume 601 extents. */ + V4L2_COLORSPACE_470_SYSTEM_M = 5, + V4L2_COLORSPACE_470_SYSTEM_BG = 6, + + /* I know there will be cameras that send this. So, this is + * unspecified chromaticities and full 0-255 on each of the + * Y'CbCr components + */ + V4L2_COLORSPACE_JPEG = 7, + + /* For RGB colourspaces, this is probably a good start. */ + V4L2_COLORSPACE_SRGB = 8, +}; + +enum v4l2_priority { + V4L2_PRIORITY_UNSET = 0, /* not initialized */ + V4L2_PRIORITY_BACKGROUND = 1, + V4L2_PRIORITY_INTERACTIVE = 2, + V4L2_PRIORITY_RECORD = 3, + V4L2_PRIORITY_DEFAULT = V4L2_PRIORITY_INTERACTIVE, +}; + +struct v4l2_rect { + __s32 left; + __s32 top; + __s32 width; + __s32 height; +}; + +struct v4l2_fract { + __u32 numerator; + __u32 denominator; +}; + +/* + * D R I V E R C A P A B I L I T I E S + */ +struct v4l2_capability +{ + __u8 driver[16]; /* i.e. "bttv" */ + __u8 card[32]; /* i.e. "Hauppauge WinTV" */ + __u8 bus_info[32]; /* "PCI:" + pci_name(pci_dev) */ + __u32 version; /* should use KERNEL_VERSION() */ + __u32 capabilities; /* Device capabilities */ + __u32 reserved[4]; +}; + +/* Values for 'capabilities' field */ +#define V4L2_CAP_VIDEO_CAPTURE 0x00000001 /* Is a video capture device */ +#define V4L2_CAP_VIDEO_OUTPUT 0x00000002 /* Is a video output device */ +#define V4L2_CAP_VIDEO_OVERLAY 0x00000004 /* Can do video overlay */ +#define V4L2_CAP_VBI_CAPTURE 0x00000010 /* Is a raw VBI capture device */ +#define V4L2_CAP_VBI_OUTPUT 0x00000020 /* Is a raw VBI output device */ +#if 1 +#define V4L2_CAP_SLICED_VBI_CAPTURE 0x00000040 /* Is a sliced VBI capture device */ +#define V4L2_CAP_SLICED_VBI_OUTPUT 0x00000080 /* Is a sliced VBI output device */ +#endif +#define V4L2_CAP_RDS_CAPTURE 0x00000100 /* RDS data capture */ + +#define V4L2_CAP_TUNER 0x00010000 /* has a tuner */ +#define V4L2_CAP_AUDIO 0x00020000 /* has audio support */ +#define V4L2_CAP_RADIO 0x00040000 /* is a radio device */ + +#define V4L2_CAP_READWRITE 0x01000000 /* read/write systemcalls */ +#define V4L2_CAP_ASYNCIO 0x02000000 /* async I/O */ +#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */ + +/* + * V I D E O I M A G E F O R M A T + */ + +struct v4l2_pix_format +{ + __u32 width; + __u32 height; + __u32 pixelformat; + enum v4l2_field field; + __u32 bytesperline; /* for padding, zero if unused */ + __u32 sizeimage; + enum v4l2_colorspace colorspace; + __u32 priv; /* private data, depends on pixelformat */ +}; + +/* Pixel format FOURCC depth Description */ +#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R','G','B','1') /* 8 RGB-3-3-2 */ +#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R','G','B','O') /* 16 RGB-5-5-5 */ +#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R','G','B','P') /* 16 RGB-5-6-5 */ +#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R','G','B','Q') /* 16 RGB-5-5-5 BE */ +#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R','G','B','R') /* 16 RGB-5-6-5 BE */ +#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B','G','R','3') /* 24 BGR-8-8-8 */ +#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R','G','B','3') /* 24 RGB-8-8-8 */ +#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B','G','R','4') /* 32 BGR-8-8-8-8 */ +#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R','G','B','4') /* 32 RGB-8-8-8-8 */ +#define V4L2_PIX_FMT_GREY v4l2_fourcc('G','R','E','Y') /* 8 Greyscale */ +#define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y','V','U','9') /* 9 YVU 4:1:0 */ +#define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y','V','1','2') /* 12 YVU 4:2:0 */ +#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y','U','Y','V') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U','Y','V','Y') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4','2','2','P') /* 16 YVU422 planar */ +#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4','1','1','P') /* 16 YVU411 planar */ +#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y','4','1','P') /* 12 YUV 4:1:1 */ + +/* two planes -- one Y, one Cr + Cb interleaved */ +#define V4L2_PIX_FMT_NV12 v4l2_fourcc('N','V','1','2') /* 12 Y/CbCr 4:2:0 */ +#define V4L2_PIX_FMT_NV21 v4l2_fourcc('N','V','2','1') /* 12 Y/CrCb 4:2:0 */ + +/* The following formats are not defined in the V4L2 specification */ +#define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y','U','V','9') /* 9 YUV 4:1:0 */ +#define V4L2_PIX_FMT_YUV420 v4l2_fourcc('Y','U','1','2') /* 12 YUV 4:2:0 */ +#define V4L2_PIX_FMT_YYUV v4l2_fourcc('Y','Y','U','V') /* 16 YUV 4:2:2 */ +#define V4L2_PIX_FMT_HI240 v4l2_fourcc('H','I','2','4') /* 8 8-bit color */ + +/* see http://www.siliconimaging.com/RGB%20Bayer.htm */ +#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B','A','8','1') /* 8 BGBG.. GRGR.. */ + +/* compressed formats */ +#define V4L2_PIX_FMT_MJPEG v4l2_fourcc('M','J','P','G') /* Motion-JPEG */ +#define V4L2_PIX_FMT_JPEG v4l2_fourcc('J','P','E','G') /* JFIF JPEG */ +#define V4L2_PIX_FMT_DV v4l2_fourcc('d','v','s','d') /* 1394 */ +#define V4L2_PIX_FMT_MPEG v4l2_fourcc('M','P','E','G') /* MPEG */ + +/* Vendor-specific formats */ +#define V4L2_PIX_FMT_WNVA v4l2_fourcc('W','N','V','A') /* Winnov hw compress */ +#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S','9','1','0') /* SN9C10x compression */ +#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') /* pwc older webcam */ +#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') /* pwc newer webcam */ +#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E','6','2','5') /* ET61X251 compression */ + +/* + * F O R M A T E N U M E R A T I O N + */ +struct v4l2_fmtdesc +{ + __u32 index; /* Format number */ + enum v4l2_buf_type type; /* buffer type */ + __u32 flags; + __u8 description[32]; /* Description string */ + __u32 pixelformat; /* Format fourcc */ + __u32 reserved[4]; +}; + +#define V4L2_FMT_FLAG_COMPRESSED 0x0001 + + +/* + * T I M E C O D E + */ +struct v4l2_timecode +{ + __u32 type; + __u32 flags; + __u8 frames; + __u8 seconds; + __u8 minutes; + __u8 hours; + __u8 userbits[4]; +}; + +/* Type */ +#define V4L2_TC_TYPE_24FPS 1 +#define V4L2_TC_TYPE_25FPS 2 +#define V4L2_TC_TYPE_30FPS 3 +#define V4L2_TC_TYPE_50FPS 4 +#define V4L2_TC_TYPE_60FPS 5 + +/* Flags */ +#define V4L2_TC_FLAG_DROPFRAME 0x0001 /* "drop-frame" mode */ +#define V4L2_TC_FLAG_COLORFRAME 0x0002 +#define V4L2_TC_USERBITS_field 0x000C +#define V4L2_TC_USERBITS_USERDEFINED 0x0000 +#define V4L2_TC_USERBITS_8BITCHARS 0x0008 +/* The above is based on SMPTE timecodes */ + + +/* + * M P E G C O M P R E S S I O N P A R A M E T E R S + * + * ### WARNING: this is still work-in-progress right now, most likely + * ### there will be some incompatible changes. + * + */ + + +enum v4l2_bitrate_mode { + V4L2_BITRATE_NONE = 0, /* not specified */ + V4L2_BITRATE_CBR, /* constant bitrate */ + V4L2_BITRATE_VBR, /* variable bitrate */ +}; +struct v4l2_bitrate { + /* rates are specified in kbit/sec */ + enum v4l2_bitrate_mode mode; + __u32 min; + __u32 target; /* use this one for CBR */ + __u32 max; +}; + +enum v4l2_mpeg_streamtype { + V4L2_MPEG_SS_1, /* MPEG-1 system stream */ + V4L2_MPEG_PS_2, /* MPEG-2 program stream */ + V4L2_MPEG_TS_2, /* MPEG-2 transport stream */ + V4L2_MPEG_PS_DVD, /* MPEG-2 program stream with DVD header fixups */ +}; +enum v4l2_mpeg_audiotype { + V4L2_MPEG_AU_2_I, /* MPEG-2 layer 1 */ + V4L2_MPEG_AU_2_II, /* MPEG-2 layer 2 */ + V4L2_MPEG_AU_2_III, /* MPEG-2 layer 3 */ + V4L2_MPEG_AC3, /* AC3 */ + V4L2_MPEG_LPCM, /* LPCM */ +}; +enum v4l2_mpeg_videotype { + V4L2_MPEG_VI_1, /* MPEG-1 */ + V4L2_MPEG_VI_2, /* MPEG-2 */ +}; +enum v4l2_mpeg_aspectratio { + V4L2_MPEG_ASPECT_SQUARE = 1, /* square pixel */ + V4L2_MPEG_ASPECT_4_3 = 2, /* 4 : 3 */ + V4L2_MPEG_ASPECT_16_9 = 3, /* 16 : 9 */ + V4L2_MPEG_ASPECT_1_221 = 4, /* 1 : 2,21 */ +}; + +struct v4l2_mpeg_compression { + /* general */ + enum v4l2_mpeg_streamtype st_type; + struct v4l2_bitrate st_bitrate; + + /* transport streams */ + __u16 ts_pid_pmt; + __u16 ts_pid_audio; + __u16 ts_pid_video; + __u16 ts_pid_pcr; + + /* program stream */ + __u16 ps_size; + __u16 reserved_1; /* align */ + + /* audio */ + enum v4l2_mpeg_audiotype au_type; + struct v4l2_bitrate au_bitrate; + __u32 au_sample_rate; + __u8 au_pesid; + __u8 reserved_2[3]; /* align */ + + /* video */ + enum v4l2_mpeg_videotype vi_type; + enum v4l2_mpeg_aspectratio vi_aspect_ratio; + struct v4l2_bitrate vi_bitrate; + __u32 vi_frame_rate; + __u16 vi_frames_per_gop; + __u16 vi_bframes_count; + __u8 vi_pesid; + __u8 reserved_3[3]; /* align */ + + /* misc flags */ + __u32 closed_gops:1; + __u32 pulldown:1; + __u32 reserved_4:30; /* align */ + + /* I don't expect the above being perfect yet ;) */ + __u32 reserved_5[8]; +}; + +struct v4l2_jpegcompression +{ + int quality; + + int APPn; /* Number of APP segment to be written, + * must be 0..15 */ + int APP_len; /* Length of data in JPEG APPn segment */ + char APP_data[60]; /* Data in the JPEG APPn segment. */ + + int COM_len; /* Length of data in JPEG COM segment */ + char COM_data[60]; /* Data in JPEG COM segment */ + + __u32 jpeg_markers; /* Which markers should go into the JPEG + * output. Unless you exactly know what + * you do, leave them untouched. + * Inluding less markers will make the + * resulting code smaller, but there will + * be fewer aplications which can read it. + * The presence of the APP and COM marker + * is influenced by APP_len and COM_len + * ONLY, not by this property! */ + +#define V4L2_JPEG_MARKER_DHT (1<<3) /* Define Huffman Tables */ +#define V4L2_JPEG_MARKER_DQT (1<<4) /* Define Quantization Tables */ +#define V4L2_JPEG_MARKER_DRI (1<<5) /* Define Restart Interval */ +#define V4L2_JPEG_MARKER_COM (1<<6) /* Comment segment */ +#define V4L2_JPEG_MARKER_APP (1<<7) /* App segment, driver will + * allways use APP0 */ +}; + + +/* + * M E M O R Y - M A P P I N G B U F F E R S + */ +struct v4l2_requestbuffers +{ + __u32 count; + enum v4l2_buf_type type; + enum v4l2_memory memory; + __u32 reserved[2]; +}; + +struct v4l2_buffer +{ + __u32 index; + enum v4l2_buf_type type; + __u32 bytesused; + __u32 flags; + enum v4l2_field field; + struct timeval timestamp; + struct v4l2_timecode timecode; + __u32 sequence; + + /* memory location */ + enum v4l2_memory memory; + union { + __u32 offset; + unsigned long userptr; + } m; + __u32 length; + __u32 input; + __u32 reserved; +}; + +/* Flags for 'flags' field */ +#define V4L2_BUF_FLAG_MAPPED 0x0001 /* Buffer is mapped (flag) */ +#define V4L2_BUF_FLAG_QUEUED 0x0002 /* Buffer is queued for processing */ +#define V4L2_BUF_FLAG_DONE 0x0004 /* Buffer is ready */ +#define V4L2_BUF_FLAG_KEYFRAME 0x0008 /* Image is a keyframe (I-frame) */ +#define V4L2_BUF_FLAG_PFRAME 0x0010 /* Image is a P-frame */ +#define V4L2_BUF_FLAG_BFRAME 0x0020 /* Image is a B-frame */ +#define V4L2_BUF_FLAG_TIMECODE 0x0100 /* timecode field is valid */ +#define V4L2_BUF_FLAG_INPUT 0x0200 /* input field is valid */ + +/* + * O V E R L A Y P R E V I E W + */ +struct v4l2_framebuffer +{ + __u32 capability; + __u32 flags; +/* FIXME: in theory we should pass something like PCI device + memory + * region + offset instead of some physical address */ + void* base; + struct v4l2_pix_format fmt; +}; +/* Flags for the 'capability' field. Read only */ +#define V4L2_FBUF_CAP_EXTERNOVERLAY 0x0001 +#define V4L2_FBUF_CAP_CHROMAKEY 0x0002 +#define V4L2_FBUF_CAP_LIST_CLIPPING 0x0004 +#define V4L2_FBUF_CAP_BITMAP_CLIPPING 0x0008 +/* Flags for the 'flags' field. */ +#define V4L2_FBUF_FLAG_PRIMARY 0x0001 +#define V4L2_FBUF_FLAG_OVERLAY 0x0002 +#define V4L2_FBUF_FLAG_CHROMAKEY 0x0004 + +struct v4l2_clip +{ + struct v4l2_rect c; + struct v4l2_clip __user *next; +}; + +struct v4l2_window +{ + struct v4l2_rect w; + enum v4l2_field field; + __u32 chromakey; + struct v4l2_clip __user *clips; + __u32 clipcount; + void __user *bitmap; +}; + + +/* + * C A P T U R E P A R A M E T E R S + */ +struct v4l2_captureparm +{ + __u32 capability; /* Supported modes */ + __u32 capturemode; /* Current mode */ + struct v4l2_fract timeperframe; /* Time per frame in .1us units */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 readbuffers; /* # of buffers for read */ + __u32 reserved[4]; +}; +/* Flags for 'capability' and 'capturemode' fields */ +#define V4L2_MODE_HIGHQUALITY 0x0001 /* High quality imaging mode */ +#define V4L2_CAP_TIMEPERFRAME 0x1000 /* timeperframe field is supported */ + +struct v4l2_outputparm +{ + __u32 capability; /* Supported modes */ + __u32 outputmode; /* Current mode */ + struct v4l2_fract timeperframe; /* Time per frame in seconds */ + __u32 extendedmode; /* Driver-specific extensions */ + __u32 writebuffers; /* # of buffers for write */ + __u32 reserved[4]; +}; + +/* + * I N P U T I M A G E C R O P P I N G + */ + +struct v4l2_cropcap { + enum v4l2_buf_type type; + struct v4l2_rect bounds; + struct v4l2_rect defrect; + struct v4l2_fract pixelaspect; +}; + +struct v4l2_crop { + enum v4l2_buf_type type; + struct v4l2_rect c; +}; + +/* + * A N A L O G V I D E O S T A N D A R D + */ + +typedef __u64 v4l2_std_id; + +/* one bit for each */ +#define V4L2_STD_PAL_B ((v4l2_std_id)0x00000001) +#define V4L2_STD_PAL_B1 ((v4l2_std_id)0x00000002) +#define V4L2_STD_PAL_G ((v4l2_std_id)0x00000004) +#define V4L2_STD_PAL_H ((v4l2_std_id)0x00000008) +#define V4L2_STD_PAL_I ((v4l2_std_id)0x00000010) +#define V4L2_STD_PAL_D ((v4l2_std_id)0x00000020) +#define V4L2_STD_PAL_D1 ((v4l2_std_id)0x00000040) +#define V4L2_STD_PAL_K ((v4l2_std_id)0x00000080) + +#define V4L2_STD_PAL_M ((v4l2_std_id)0x00000100) +#define V4L2_STD_PAL_N ((v4l2_std_id)0x00000200) +#define V4L2_STD_PAL_Nc ((v4l2_std_id)0x00000400) +#define V4L2_STD_PAL_60 ((v4l2_std_id)0x00000800) + +#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) +#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) +#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) +#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000) + +#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) +#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) +#define V4L2_STD_SECAM_G ((v4l2_std_id)0x00040000) +#define V4L2_STD_SECAM_H ((v4l2_std_id)0x00080000) +#define V4L2_STD_SECAM_K ((v4l2_std_id)0x00100000) +#define V4L2_STD_SECAM_K1 ((v4l2_std_id)0x00200000) +#define V4L2_STD_SECAM_L ((v4l2_std_id)0x00400000) +#define V4L2_STD_SECAM_LC ((v4l2_std_id)0x00800000) + +/* ATSC/HDTV */ +#define V4L2_STD_ATSC_8_VSB ((v4l2_std_id)0x01000000) +#define V4L2_STD_ATSC_16_VSB ((v4l2_std_id)0x02000000) + +/* some merged standards */ +#define V4L2_STD_MN (V4L2_STD_PAL_M|V4L2_STD_PAL_N|V4L2_STD_PAL_Nc|V4L2_STD_NTSC) +#define V4L2_STD_B (V4L2_STD_PAL_B|V4L2_STD_PAL_B1|V4L2_STD_SECAM_B) +#define V4L2_STD_GH (V4L2_STD_PAL_G|V4L2_STD_PAL_H|V4L2_STD_SECAM_G|V4L2_STD_SECAM_H) +#define V4L2_STD_DK (V4L2_STD_PAL_DK|V4L2_STD_SECAM_DK) + +/* some common needed stuff */ +#define V4L2_STD_PAL_BG (V4L2_STD_PAL_B |\ + V4L2_STD_PAL_B1 |\ + V4L2_STD_PAL_G) +#define V4L2_STD_PAL_DK (V4L2_STD_PAL_D |\ + V4L2_STD_PAL_D1 |\ + V4L2_STD_PAL_K) +#define V4L2_STD_PAL (V4L2_STD_PAL_BG |\ + V4L2_STD_PAL_DK |\ + V4L2_STD_PAL_H |\ + V4L2_STD_PAL_I) +#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ + V4L2_STD_NTSC_M_JP |\ + V4L2_STD_NTSC_M_KR) +#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ + V4L2_STD_SECAM_K |\ + V4L2_STD_SECAM_K1) +#define V4L2_STD_SECAM (V4L2_STD_SECAM_B |\ + V4L2_STD_SECAM_G |\ + V4L2_STD_SECAM_H |\ + V4L2_STD_SECAM_DK |\ + V4L2_STD_SECAM_L |\ + V4L2_STD_SECAM_LC) + +#define V4L2_STD_525_60 (V4L2_STD_PAL_M |\ + V4L2_STD_PAL_60 |\ + V4L2_STD_NTSC |\ + V4L2_STD_NTSC_443) +#define V4L2_STD_625_50 (V4L2_STD_PAL |\ + V4L2_STD_PAL_N |\ + V4L2_STD_PAL_Nc |\ + V4L2_STD_SECAM) +#define V4L2_STD_ATSC (V4L2_STD_ATSC_8_VSB |\ + V4L2_STD_ATSC_16_VSB) + +#define V4L2_STD_UNKNOWN 0 +#define V4L2_STD_ALL (V4L2_STD_525_60 |\ + V4L2_STD_625_50) + +struct v4l2_standard +{ + __u32 index; + v4l2_std_id id; + __u8 name[24]; + struct v4l2_fract frameperiod; /* Frames, not fields */ + __u32 framelines; + __u32 reserved[4]; +}; + + +/* + * V I D E O I N P U T S + */ +struct v4l2_input +{ + __u32 index; /* Which input */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of input */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 tuner; /* Associated tuner */ + v4l2_std_id std; + __u32 status; + __u32 reserved[4]; +}; +/* Values for the 'type' field */ +#define V4L2_INPUT_TYPE_TUNER 1 +#define V4L2_INPUT_TYPE_CAMERA 2 + +/* field 'status' - general */ +#define V4L2_IN_ST_NO_POWER 0x00000001 /* Attached device is off */ +#define V4L2_IN_ST_NO_SIGNAL 0x00000002 +#define V4L2_IN_ST_NO_COLOR 0x00000004 + +/* field 'status' - analog */ +#define V4L2_IN_ST_NO_H_LOCK 0x00000100 /* No horizontal sync lock */ +#define V4L2_IN_ST_COLOR_KILL 0x00000200 /* Color killer is active */ + +/* field 'status' - digital */ +#define V4L2_IN_ST_NO_SYNC 0x00010000 /* No synchronization lock */ +#define V4L2_IN_ST_NO_EQU 0x00020000 /* No equalizer lock */ +#define V4L2_IN_ST_NO_CARRIER 0x00040000 /* Carrier recovery failed */ + +/* field 'status' - VCR and set-top box */ +#define V4L2_IN_ST_MACROVISION 0x01000000 /* Macrovision detected */ +#define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */ +#define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */ + +/* + * V I D E O O U T P U T S + */ +struct v4l2_output +{ + __u32 index; /* Which output */ + __u8 name[32]; /* Label */ + __u32 type; /* Type of output */ + __u32 audioset; /* Associated audios (bitfield) */ + __u32 modulator; /* Associated modulator */ + v4l2_std_id std; + __u32 reserved[4]; +}; +/* Values for the 'type' field */ +#define V4L2_OUTPUT_TYPE_MODULATOR 1 +#define V4L2_OUTPUT_TYPE_ANALOG 2 +#define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3 + +/* + * C O N T R O L S + */ +struct v4l2_control +{ + __u32 id; + __s32 value; +}; + +/* Used in the VIDIOC_QUERYCTRL ioctl for querying controls */ +struct v4l2_queryctrl +{ + __u32 id; + enum v4l2_ctrl_type type; + __u8 name[32]; /* Whatever */ + __s32 minimum; /* Note signedness */ + __s32 maximum; + __s32 step; + __s32 default_value; + __u32 flags; + __u32 reserved[2]; +}; + +/* Used in the VIDIOC_QUERYMENU ioctl for querying menu items */ +struct v4l2_querymenu +{ + __u32 id; + __u32 index; + __u8 name[32]; /* Whatever */ + __u32 reserved; +}; + +/* Control flags */ +#define V4L2_CTRL_FLAG_DISABLED 0x0001 +#define V4L2_CTRL_FLAG_GRABBED 0x0002 + +/* Control IDs defined by V4L2 */ +#define V4L2_CID_BASE 0x00980900 +/* IDs reserved for driver specific controls */ +#define V4L2_CID_PRIVATE_BASE 0x08000000 + +#define V4L2_CID_BRIGHTNESS (V4L2_CID_BASE+0) +#define V4L2_CID_CONTRAST (V4L2_CID_BASE+1) +#define V4L2_CID_SATURATION (V4L2_CID_BASE+2) +#define V4L2_CID_HUE (V4L2_CID_BASE+3) +#define V4L2_CID_AUDIO_VOLUME (V4L2_CID_BASE+5) +#define V4L2_CID_AUDIO_BALANCE (V4L2_CID_BASE+6) +#define V4L2_CID_AUDIO_BASS (V4L2_CID_BASE+7) +#define V4L2_CID_AUDIO_TREBLE (V4L2_CID_BASE+8) +#define V4L2_CID_AUDIO_MUTE (V4L2_CID_BASE+9) +#define V4L2_CID_AUDIO_LOUDNESS (V4L2_CID_BASE+10) +#define V4L2_CID_BLACK_LEVEL (V4L2_CID_BASE+11) +#define V4L2_CID_AUTO_WHITE_BALANCE (V4L2_CID_BASE+12) +#define V4L2_CID_DO_WHITE_BALANCE (V4L2_CID_BASE+13) +#define V4L2_CID_RED_BALANCE (V4L2_CID_BASE+14) +#define V4L2_CID_BLUE_BALANCE (V4L2_CID_BASE+15) +#define V4L2_CID_GAMMA (V4L2_CID_BASE+16) +#define V4L2_CID_WHITENESS (V4L2_CID_GAMMA) /* ? Not sure */ +#define V4L2_CID_EXPOSURE (V4L2_CID_BASE+17) +#define V4L2_CID_AUTOGAIN (V4L2_CID_BASE+18) +#define V4L2_CID_GAIN (V4L2_CID_BASE+19) +#define V4L2_CID_HFLIP (V4L2_CID_BASE+20) +#define V4L2_CID_VFLIP (V4L2_CID_BASE+21) +#define V4L2_CID_HCENTER (V4L2_CID_BASE+22) +#define V4L2_CID_VCENTER (V4L2_CID_BASE+23) +#define V4L2_CID_LASTP1 (V4L2_CID_BASE+24) /* last CID + 1 */ + +/* + * T U N I N G + */ +struct v4l2_tuner +{ + __u32 index; + __u8 name[32]; + enum v4l2_tuner_type type; + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 rxsubchans; + __u32 audmode; + __s32 signal; + __s32 afc; + __u32 reserved[4]; +}; + +struct v4l2_modulator +{ + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 rangelow; + __u32 rangehigh; + __u32 txsubchans; + __u32 reserved[4]; +}; + +/* Flags for the 'capability' field */ +#define V4L2_TUNER_CAP_LOW 0x0001 +#define V4L2_TUNER_CAP_NORM 0x0002 +#define V4L2_TUNER_CAP_STEREO 0x0010 +#define V4L2_TUNER_CAP_LANG2 0x0020 +#define V4L2_TUNER_CAP_SAP 0x0020 +#define V4L2_TUNER_CAP_LANG1 0x0040 + +/* Flags for the 'rxsubchans' field */ +#define V4L2_TUNER_SUB_MONO 0x0001 +#define V4L2_TUNER_SUB_STEREO 0x0002 +#define V4L2_TUNER_SUB_LANG2 0x0004 +#define V4L2_TUNER_SUB_SAP 0x0004 +#define V4L2_TUNER_SUB_LANG1 0x0008 + +/* Values for the 'audmode' field */ +#define V4L2_TUNER_MODE_MONO 0x0000 +#define V4L2_TUNER_MODE_STEREO 0x0001 +#define V4L2_TUNER_MODE_LANG2 0x0002 +#define V4L2_TUNER_MODE_SAP 0x0002 +#define V4L2_TUNER_MODE_LANG1 0x0003 +#define V4L2_TUNER_MODE_LANG1_LANG2 0x0004 + +struct v4l2_frequency +{ + __u32 tuner; + enum v4l2_tuner_type type; + __u32 frequency; + __u32 reserved[8]; +}; + +/* + * A U D I O + */ +struct v4l2_audio +{ + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 mode; + __u32 reserved[2]; +}; +/* Flags for the 'capability' field */ +#define V4L2_AUDCAP_STEREO 0x00001 +#define V4L2_AUDCAP_AVL 0x00002 + +/* Flags for the 'mode' field */ +#define V4L2_AUDMODE_AVL 0x00001 + +struct v4l2_audioout +{ + __u32 index; + __u8 name[32]; + __u32 capability; + __u32 mode; + __u32 reserved[2]; +}; + +/* + * D A T A S E R V I C E S ( V B I ) + * + * Data services API by Michael Schimek + */ + +/* Raw VBI */ + +struct v4l2_vbi_format +{ + __u32 sampling_rate; /* in 1 Hz */ + __u32 offset; + __u32 samples_per_line; + __u32 sample_format; /* V4L2_PIX_FMT_* */ + __s32 start[2]; + __u32 count[2]; + __u32 flags; /* V4L2_VBI_* */ + __u32 reserved[2]; /* must be zero */ +}; + +/* VBI flags */ +#define V4L2_VBI_UNSYNC (1<< 0) +#define V4L2_VBI_INTERLACED (1<< 1) + +#if 1 +/* Sliced VBI + * + * This implements is a proposal V4L2 API to allow SLICED VBI + * required for some hardware encoders. It should change without + * notice in the definitive implementation. + */ + +struct v4l2_sliced_vbi_format +{ + __u16 service_set; + /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field + service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field + (equals frame lines 313-336 for 625 line video + standards, 263-286 for 525 line standards) */ + __u16 service_lines[2][24]; + __u32 io_size; + __u32 reserved[2]; /* must be zero */ +}; + +/* Teletext World System Teletext + (WST), defined on ITU-R BT.653-2 */ +#define V4L2_SLICED_TELETEXT_B (0x0001) +/* Video Program System, defined on ETS 300 231*/ +#define V4L2_SLICED_VPS (0x0400) +/* Closed Caption, defined on EIA-608 */ +#define V4L2_SLICED_CAPTION_525 (0x1000) +/* Wide Screen System, defined on ITU-R BT1119.1 */ +#define V4L2_SLICED_WSS_625 (0x4000) + +#define V4L2_SLICED_VBI_525 (V4L2_SLICED_CAPTION_525) +#define V4L2_SLICED_VBI_625 (V4L2_SLICED_TELETEXT_B | V4L2_SLICED_VPS | V4L2_SLICED_WSS_625) + + +struct v4l2_sliced_vbi_cap +{ + __u16 service_set; + /* service_lines[0][...] specifies lines 0-23 (1-23 used) of the first field + service_lines[1][...] specifies lines 0-23 (1-23 used) of the second field + (equals frame lines 313-336 for 625 line video + standards, 263-286 for 525 line standards) */ + __u16 service_lines[2][24]; + __u32 reserved[4]; /* must be 0 */ +}; + +struct v4l2_sliced_vbi_data +{ + __u32 id; + __u32 field; /* 0: first field, 1: second field */ + __u32 line; /* 1-23 */ + __u32 reserved; /* must be 0 */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-head@FreeBSD.ORG Wed May 4 08:41:55 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E9831106564A; Wed, 4 May 2011 08:41:55 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D9FE58FC12; Wed, 4 May 2011 08:41:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p448ftwT038190; Wed, 4 May 2011 08:41:55 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p448ftQP038188; Wed, 4 May 2011 08:41:55 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105040841.p448ftQP038188@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 08:41:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221424 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 08:41:56 -0000 Author: netchild Date: Wed May 4 08:41:55 2011 New Revision: 221424 URL: http://svn.freebsd.org/changeset/base/221424 Log: Add explanation about the use-permission and FreeBSDify it. Modified: head/sys/compat/linux/linux_videodev2.h Modified: head/sys/compat/linux/linux_videodev2.h ============================================================================== --- head/sys/compat/linux/linux_videodev2.h Wed May 4 08:31:58 2011 (r221423) +++ head/sys/compat/linux/linux_videodev2.h Wed May 4 08:41:55 2011 (r221424) @@ -1,3 +1,12 @@ +/* + * This header comes from linux, but it has no license. The author + * (Bill Dirks) gave explicit permissions to use it in FreeBSD. + * The FreeBSD vendor branch for v4l gives a more detailed description + * about this in the README. + * + * $FreeBSD$ + */ + #ifndef __LINUX_VIDEODEV2_H #define __LINUX_VIDEODEV2_H /* @@ -13,6 +22,11 @@ * Justin Schoeman * et al. */ +#ifdef __FreeBSD__ +#define __user +typedef uint64_t __u64; +typedef int64_t __s64; +#else #ifdef __KERNEL__ #include /* need struct timeval */ #include @@ -20,6 +34,7 @@ #include #endif #include /* need __user */ +#endif #define OBSOLETE_OWNER 1 /* It will be removed for 2.6.17 */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 08:42:31 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAE2B106566B; Wed, 4 May 2011 08:42:31 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9AFAA8FC13; Wed, 4 May 2011 08:42:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p448gViX038246; Wed, 4 May 2011 08:42:31 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p448gV62038244; Wed, 4 May 2011 08:42:31 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105040842.p448gV62038244@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 08:42:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221425 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 08:42:31 -0000 Author: netchild Date: Wed May 4 08:42:31 2011 New Revision: 221425 URL: http://svn.freebsd.org/changeset/base/221425 Log: Fix typo in comment, improve comment. Modified: head/sys/compat/linux/linux_videodev.h Modified: head/sys/compat/linux/linux_videodev.h ============================================================================== --- head/sys/compat/linux/linux_videodev.h Wed May 4 08:41:55 2011 (r221424) +++ head/sys/compat/linux/linux_videodev.h Wed May 4 08:42:31 2011 (r221425) @@ -1,8 +1,8 @@ /* * This header comes from linux, but it has no license. The author * (Alan Cox @ Redhat) gave explicit permissions to use it in FreeBSD. - * The freeBSD vendor branch for v4l gives a more detailed description - * about this. + * The FreeBSD vendor branch for v4l gives a more detailed description + * about this in the README. * * $FreeBSD$ */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 09:05:40 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 178B11065672; Wed, 4 May 2011 09:05:40 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 062CF8FC20; Wed, 4 May 2011 09:05:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4495e3V039070; Wed, 4 May 2011 09:05:40 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4495dqA039067; Wed, 4 May 2011 09:05:39 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105040905.p4495dqA039067@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 09:05:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221426 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 09:05:40 -0000 Author: netchild Date: Wed May 4 09:05:39 2011 New Revision: 221426 URL: http://svn.freebsd.org/changeset/base/221426 Log: This is v4l2 support for the linuxulator. This allows to access FreeBSD native devices which support the v4l2 API from processes running within the linuxulator, e.g. skype or flash can access the multimedia/pwcbsd or multimedia/webcamd supplied drivers. Submitted by: nox MFC after: 1 month Modified: head/sys/compat/linux/linux_ioctl.c head/sys/compat/linux/linux_ioctl.h Modified: head/sys/compat/linux/linux_ioctl.c ============================================================================== --- head/sys/compat/linux/linux_ioctl.c Wed May 4 08:42:31 2011 (r221425) +++ head/sys/compat/linux/linux_ioctl.c Wed May 4 09:05:39 2011 (r221426) @@ -59,6 +59,9 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include +#include #include #include @@ -83,6 +86,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include + CTASSERT(LINUX_IFNAMSIZ == IFNAMSIZ); static linux_ioctl_function_t linux_ioctl_cdrom; @@ -97,6 +103,7 @@ static linux_ioctl_function_t linux_ioct static linux_ioctl_function_t linux_ioctl_drm; static linux_ioctl_function_t linux_ioctl_sg; static linux_ioctl_function_t linux_ioctl_v4l; +static linux_ioctl_function_t linux_ioctl_v4l2; static linux_ioctl_function_t linux_ioctl_special; static linux_ioctl_function_t linux_ioctl_fbsd_usb; @@ -124,6 +131,8 @@ static struct linux_ioctl_handler sg_han { linux_ioctl_sg, LINUX_IOCTL_SG_MIN, LINUX_IOCTL_SG_MAX }; static struct linux_ioctl_handler video_handler = { linux_ioctl_v4l, LINUX_IOCTL_VIDEO_MIN, LINUX_IOCTL_VIDEO_MAX }; +static struct linux_ioctl_handler video2_handler = +{ linux_ioctl_v4l2, LINUX_IOCTL_VIDEO2_MIN, LINUX_IOCTL_VIDEO2_MAX }; static struct linux_ioctl_handler fbsd_usb = { linux_ioctl_fbsd_usb, FBSD_LUSB_MIN, FBSD_LUSB_MAX }; @@ -139,6 +148,7 @@ DATA_SET(linux_ioctl_handler_set, privat DATA_SET(linux_ioctl_handler_set, drm_handler); DATA_SET(linux_ioctl_handler_set, sg_handler); DATA_SET(linux_ioctl_handler_set, video_handler); +DATA_SET(linux_ioctl_handler_set, video2_handler); DATA_SET(linux_ioctl_handler_set, fbsd_usb); struct handler_element @@ -2988,6 +2998,302 @@ linux_ioctl_special(struct thread *td, s return (error); } +static int +linux_to_bsd_v4l2_standard(struct l_v4l2_standard *lvstd, struct v4l2_standard *vstd) +{ + vstd->index = lvstd->index; + vstd->id = lvstd->id; + memcpy(&vstd->name, &lvstd->name, sizeof(*lvstd) - offsetof(struct l_v4l2_standard, name)); + return (0); +} + +static int +bsd_to_linux_v4l2_standard(struct v4l2_standard *vstd, struct l_v4l2_standard *lvstd) +{ + lvstd->index = vstd->index; + lvstd->id = vstd->id; + memcpy(&lvstd->name, &vstd->name, sizeof(*lvstd) - offsetof(struct l_v4l2_standard, name)); + return (0); +} + +static int +linux_to_bsd_v4l2_buffer(struct l_v4l2_buffer *lvb, struct v4l2_buffer *vb) +{ + vb->index = lvb->index; + vb->type = lvb->type; + vb->bytesused = lvb->bytesused; + vb->flags = lvb->flags; + vb->field = lvb->field; + vb->timestamp.tv_sec = lvb->timestamp.tv_sec; + vb->timestamp.tv_usec = lvb->timestamp.tv_usec; + memcpy(&vb->timecode, &lvb->timecode, sizeof (lvb->timecode)); + vb->sequence = lvb->sequence; + vb->memory = lvb->memory; + if (lvb->memory == V4L2_MEMORY_USERPTR) + /* possible pointer size conversion */ + vb->m.userptr = (unsigned long)PTRIN(lvb->m.userptr); + else + vb->m.offset = lvb->m.offset; + vb->length = lvb->length; + vb->input = lvb->input; + vb->reserved = lvb->reserved; + return (0); +} + +static int +bsd_to_linux_v4l2_buffer(struct v4l2_buffer *vb, struct l_v4l2_buffer *lvb) +{ + lvb->index = vb->index; + lvb->type = vb->type; + lvb->bytesused = vb->bytesused; + lvb->flags = vb->flags; + lvb->field = vb->field; + lvb->timestamp.tv_sec = vb->timestamp.tv_sec; + lvb->timestamp.tv_usec = vb->timestamp.tv_usec; + memcpy(&lvb->timecode, &vb->timecode, sizeof (vb->timecode)); + lvb->sequence = vb->sequence; + lvb->memory = vb->memory; + if (vb->memory == V4L2_MEMORY_USERPTR) + /* possible pointer size conversion */ + lvb->m.userptr = PTROUT(vb->m.userptr); + else + lvb->m.offset = vb->m.offset; + lvb->length = vb->length; + lvb->input = vb->input; + lvb->reserved = vb->reserved; + return (0); +} + +static int +linux_to_bsd_v4l2_format(struct l_v4l2_format *lvf, struct v4l2_format *vf) +{ + vf->type = lvf->type; + if (lvf->type == V4L2_BUF_TYPE_VIDEO_OVERLAY +#ifdef V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + || lvf->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY +#endif + ) + /* + * XXX TODO - needs 32 -> 64 bit conversion: + * (unused by webcams?) + */ + return EINVAL; + memcpy(&vf->fmt, &lvf->fmt, sizeof(vf->fmt)); + return 0; +} + +static int +bsd_to_linux_v4l2_format(struct v4l2_format *vf, struct l_v4l2_format *lvf) +{ + lvf->type = vf->type; + if (vf->type == V4L2_BUF_TYPE_VIDEO_OVERLAY +#ifdef V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY + || vf->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY +#endif + ) + /* + * XXX TODO - needs 32 -> 64 bit conversion: + * (unused by webcams?) + */ + return EINVAL; + memcpy(&lvf->fmt, &vf->fmt, sizeof(vf->fmt)); + return 0; +} +static int +linux_ioctl_v4l2(struct thread *td, struct linux_ioctl_args *args) +{ + struct file *fp; + int error; + struct v4l2_format vformat; + struct l_v4l2_format l_vformat; + struct v4l2_standard vstd; + struct l_v4l2_standard l_vstd; + struct l_v4l2_buffer l_vbuf; + struct v4l2_buffer vbuf; + struct v4l2_input vinp; + + switch (args->cmd & 0xffff) { + case LINUX_VIDIOC_RESERVED: + case LINUX_VIDIOC_LOG_STATUS: + if ((args->cmd & IOC_DIRMASK) != LINUX_IOC_VOID) + return ENOIOCTL; + args->cmd = (args->cmd & 0xffff) | IOC_VOID; + break; + + case LINUX_VIDIOC_OVERLAY: + case LINUX_VIDIOC_STREAMON: + case LINUX_VIDIOC_STREAMOFF: + case LINUX_VIDIOC_S_STD: + case LINUX_VIDIOC_S_TUNER: + case LINUX_VIDIOC_S_AUDIO: + case LINUX_VIDIOC_S_AUDOUT: + case LINUX_VIDIOC_S_MODULATOR: + case LINUX_VIDIOC_S_FREQUENCY: + case LINUX_VIDIOC_S_CROP: + case LINUX_VIDIOC_S_JPEGCOMP: + case LINUX_VIDIOC_S_PRIORITY: + case LINUX_VIDIOC_DBG_S_REGISTER: + case LINUX_VIDIOC_S_HW_FREQ_SEEK: + case LINUX_VIDIOC_SUBSCRIBE_EVENT: + case LINUX_VIDIOC_UNSUBSCRIBE_EVENT: + args->cmd = (args->cmd & ~IOC_DIRMASK) | IOC_IN; + break; + + case LINUX_VIDIOC_QUERYCAP: + case LINUX_VIDIOC_G_STD: + case LINUX_VIDIOC_G_AUDIO: + case LINUX_VIDIOC_G_INPUT: + case LINUX_VIDIOC_G_OUTPUT: + case LINUX_VIDIOC_G_AUDOUT: + case LINUX_VIDIOC_G_JPEGCOMP: + case LINUX_VIDIOC_QUERYSTD: + case LINUX_VIDIOC_G_PRIORITY: + case LINUX_VIDIOC_QUERY_DV_PRESET: + args->cmd = (args->cmd & ~IOC_DIRMASK) | IOC_OUT; + break; + + case LINUX_VIDIOC_ENUM_FMT: + case LINUX_VIDIOC_REQBUFS: + case LINUX_VIDIOC_G_PARM: + case LINUX_VIDIOC_S_PARM: + case LINUX_VIDIOC_G_CTRL: + case LINUX_VIDIOC_S_CTRL: + case LINUX_VIDIOC_G_TUNER: + case LINUX_VIDIOC_QUERYCTRL: + case LINUX_VIDIOC_QUERYMENU: + case LINUX_VIDIOC_S_INPUT: + case LINUX_VIDIOC_S_OUTPUT: + case LINUX_VIDIOC_ENUMOUTPUT: + case LINUX_VIDIOC_G_MODULATOR: + case LINUX_VIDIOC_G_FREQUENCY: + case LINUX_VIDIOC_CROPCAP: + case LINUX_VIDIOC_G_CROP: + case LINUX_VIDIOC_ENUMAUDIO: + case LINUX_VIDIOC_ENUMAUDOUT: + case LINUX_VIDIOC_G_SLICED_VBI_CAP: +#ifdef VIDIOC_ENUM_FRAMESIZES + case LINUX_VIDIOC_ENUM_FRAMESIZES: + case LINUX_VIDIOC_ENUM_FRAMEINTERVALS: + case LINUX_VIDIOC_ENCODER_CMD: + case LINUX_VIDIOC_TRY_ENCODER_CMD: +#endif + case LINUX_VIDIOC_DBG_G_REGISTER: + case LINUX_VIDIOC_DBG_G_CHIP_IDENT: + case LINUX_VIDIOC_ENUM_DV_PRESETS: + case LINUX_VIDIOC_S_DV_PRESET: + case LINUX_VIDIOC_G_DV_PRESET: + case LINUX_VIDIOC_S_DV_TIMINGS: + case LINUX_VIDIOC_G_DV_TIMINGS: + args->cmd = (args->cmd & ~IOC_DIRMASK) | IOC_INOUT; + break; + + case LINUX_VIDIOC_G_FMT: + case LINUX_VIDIOC_S_FMT: + case LINUX_VIDIOC_TRY_FMT: + error = copyin((void *)args->arg, &l_vformat, sizeof(l_vformat)); + if (error) + return (error); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + if (linux_to_bsd_v4l2_format(&l_vformat, &vformat) != 0) + error = EINVAL; + else if ((args->cmd & 0xffff) == LINUX_VIDIOC_G_FMT) + error = fo_ioctl(fp, VIDIOC_G_FMT, &vformat, + td->td_ucred, td); + else if ((args->cmd & 0xffff) == LINUX_VIDIOC_S_FMT) + error = fo_ioctl(fp, VIDIOC_S_FMT, &vformat, + td->td_ucred, td); + else + error = fo_ioctl(fp, VIDIOC_TRY_FMT, &vformat, + td->td_ucred, td); + bsd_to_linux_v4l2_format(&vformat, &l_vformat); + copyout(&l_vformat, (void *)args->arg, sizeof(l_vformat)); + fdrop(fp, td); + return (error); + + case LINUX_VIDIOC_ENUMSTD: + error = copyin((void *)args->arg, &l_vstd, sizeof(l_vstd)); + if (error) + return (error); + linux_to_bsd_v4l2_standard(&l_vstd, &vstd); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + error = fo_ioctl(fp, VIDIOC_ENUMSTD, (caddr_t)&vstd, + td->td_ucred, td); + if (error) { + fdrop(fp, td); + return (error); + } + bsd_to_linux_v4l2_standard(&vstd, &l_vstd); + error = copyout(&l_vstd, (void *)args->arg, sizeof(l_vstd)); + fdrop(fp, td); + return (error); + + case LINUX_VIDIOC_ENUMINPUT: + /* + * The Linux struct l_v4l2_input differs only in size, + * it has no padding at the end. + */ + error = copyin((void *)args->arg, &vinp, + sizeof(struct l_v4l2_input)); + if (error != 0) + return (error); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + error = fo_ioctl(fp, VIDIOC_ENUMINPUT, (caddr_t)&vinp, + td->td_ucred, td); + if (error) { + fdrop(fp, td); + return (error); + } + error = copyout(&vinp, (void *)args->arg, + sizeof(struct l_v4l2_input)); + fdrop(fp, td); + return (error); + + case LINUX_VIDIOC_QUERYBUF: + case LINUX_VIDIOC_QBUF: + case LINUX_VIDIOC_DQBUF: + error = copyin((void *)args->arg, &l_vbuf, sizeof(l_vbuf)); + if (error) + return (error); + if ((error = fget(td, args->fd, &fp)) != 0) + return (error); + linux_to_bsd_v4l2_buffer(&l_vbuf, &vbuf); + if ((args->cmd & 0xffff) == LINUX_VIDIOC_QUERYBUF) + error = fo_ioctl(fp, VIDIOC_QUERYBUF, &vbuf, + td->td_ucred, td); + else if ((args->cmd & 0xffff) == LINUX_VIDIOC_QBUF) + error = fo_ioctl(fp, VIDIOC_QBUF, &vbuf, + td->td_ucred, td); + else + error = fo_ioctl(fp, VIDIOC_DQBUF, &vbuf, + td->td_ucred, td); + bsd_to_linux_v4l2_buffer(&vbuf, &l_vbuf); + copyout(&l_vbuf, (void *)args->arg, sizeof(l_vbuf)); + fdrop(fp, td); + return (error); + + /* + * XXX TODO - these need 32 -> 64 bit conversion: + * (are any of them needed for webcams?) + */ + case LINUX_VIDIOC_G_FBUF: + case LINUX_VIDIOC_S_FBUF: + + case LINUX_VIDIOC_G_EXT_CTRLS: + case LINUX_VIDIOC_S_EXT_CTRLS: + case LINUX_VIDIOC_TRY_EXT_CTRLS: + + case LINUX_VIDIOC_DQEVENT: + + default: return (ENOIOCTL); + } + + error = ioctl(td, (struct ioctl_args *)args); + return (error); +} + /* * Support for emulators/linux-libusb. This port uses FBSD_LUSB* macros * instead of USB* ones. This lets us to provide correct values for cmd. Modified: head/sys/compat/linux/linux_ioctl.h ============================================================================== --- head/sys/compat/linux/linux_ioctl.h Wed May 4 08:42:31 2011 (r221425) +++ head/sys/compat/linux/linux_ioctl.h Wed May 4 09:05:39 2011 (r221426) @@ -32,6 +32,17 @@ #define _LINUX_IOCTL_H_ /* + * ioctl + * + * XXX comments in Linux' indicate these + * could be arch-dependant... + */ +#define LINUX_IOC_VOID 0 +#define LINUX_IOC_IN 0x40000000 +#define LINUX_IOC_OUT 0x80000000 +#define LINUX_IOC_INOUT (LINUX_IOC_IN|LINUX_IOC_OUT) + +/* * disk */ #define LINUX_BLKROSET 0x125d @@ -612,6 +623,92 @@ int linux_ifname(struct ifnet *, char #define LINUX_IOCTL_VIDEO_MIN LINUX_VIDIOCGCAP #define LINUX_IOCTL_VIDEO_MAX LINUX_VIDIOCSVBIFMT +/* videodev2 aka V4L2 */ + +#define LINUX_VIDIOC_QUERYCAP 0x5600 /* 0x80685600 */ +#define LINUX_VIDIOC_RESERVED 0x5601 /* 0x00005601 */ +#define LINUX_VIDIOC_ENUM_FMT 0x5602 /* 0xc0405602 */ +#define LINUX_VIDIOC_G_FMT 0x5604 /* 0xc0cc5604 */ +#define LINUX_VIDIOC_S_FMT 0x5605 /* 0xc0cc5605 */ +#define LINUX_VIDIOC_REQBUFS 0x5608 /* 0xc0145608 */ +#define LINUX_VIDIOC_QUERYBUF 0x5609 /* 0xc0445609 */ +#define LINUX_VIDIOC_G_FBUF 0x560a /* 0x802c560a */ +#define LINUX_VIDIOC_S_FBUF 0x560b /* 0x402c560b */ +#define LINUX_VIDIOC_OVERLAY 0x560e /* 0x4004560e */ +#define LINUX_VIDIOC_QBUF 0x560f /* 0xc044560f */ +#define LINUX_VIDIOC_DQBUF 0x5611 /* 0xc0445611 */ +#define LINUX_VIDIOC_STREAMON 0x5612 /* 0x40045612 */ +#define LINUX_VIDIOC_STREAMOFF 0x5613 /* 0x40045613 */ +#define LINUX_VIDIOC_G_PARM 0x5615 /* 0xc0cc5615 */ +#define LINUX_VIDIOC_S_PARM 0x5616 /* 0xc0cc5616 */ +#define LINUX_VIDIOC_G_STD 0x5617 /* 0x80085617 */ +#define LINUX_VIDIOC_S_STD 0x5618 /* 0x40085618 */ +#define LINUX_VIDIOC_ENUMSTD 0x5619 /* 0xc0405619 */ +#define LINUX_VIDIOC_ENUMINPUT 0x561a /* 0xc04c561a */ +#define LINUX_VIDIOC_G_CTRL 0x561b /* 0xc008561b */ +#define LINUX_VIDIOC_S_CTRL 0x561c /* 0xc008561c */ +#define LINUX_VIDIOC_G_TUNER 0x561d /* 0xc054561d */ +#define LINUX_VIDIOC_S_TUNER 0x561e /* 0x4054561e */ +#define LINUX_VIDIOC_G_AUDIO 0x5621 /* 0x80345621 */ +#define LINUX_VIDIOC_S_AUDIO 0x5622 /* 0x40345622 */ +#define LINUX_VIDIOC_QUERYCTRL 0x5624 /* 0xc0445624 */ +#define LINUX_VIDIOC_QUERYMENU 0x5625 /* 0xc02c5625 */ +#define LINUX_VIDIOC_G_INPUT 0x5626 /* 0x80045626 */ +#define LINUX_VIDIOC_S_INPUT 0x5627 /* 0xc0045627 */ +#define LINUX_VIDIOC_G_OUTPUT 0x562e /* 0x8004562e */ +#define LINUX_VIDIOC_S_OUTPUT 0x562f /* 0xc004562f */ +#define LINUX_VIDIOC_ENUMOUTPUT 0x5630 /* 0xc0485630 */ +#define LINUX_VIDIOC_G_AUDOUT 0x5631 /* 0x80345631 */ +#define LINUX_VIDIOC_S_AUDOUT 0x5632 /* 0x40345632 */ +#define LINUX_VIDIOC_G_MODULATOR 0x5636 /* 0xc0445636 */ +#define LINUX_VIDIOC_S_MODULATOR 0x5637 /* 0x40445637 */ +#define LINUX_VIDIOC_G_FREQUENCY 0x5638 /* 0xc02c5638 */ +#define LINUX_VIDIOC_S_FREQUENCY 0x5639 /* 0x402c5639 */ +#define LINUX_VIDIOC_CROPCAP 0x563a /* 0xc02c563a */ +#define LINUX_VIDIOC_G_CROP 0x563b /* 0xc014563b */ +#define LINUX_VIDIOC_S_CROP 0x563c /* 0x4014563c */ +#define LINUX_VIDIOC_G_JPEGCOMP 0x563d /* 0x808c563d */ +#define LINUX_VIDIOC_S_JPEGCOMP 0x563e /* 0x408c563e */ +#define LINUX_VIDIOC_QUERYSTD 0x563f /* 0x8008563f */ +#define LINUX_VIDIOC_TRY_FMT 0x5640 /* 0xc0cc5640 */ +#define LINUX_VIDIOC_ENUMAUDIO 0x5641 /* 0xc0345641 */ +#define LINUX_VIDIOC_ENUMAUDOUT 0x5642 /* 0xc0345642 */ +#define LINUX_VIDIOC_G_PRIORITY 0x5643 /* 0x80045643 */ +#define LINUX_VIDIOC_S_PRIORITY 0x5644 /* 0x40045644 */ +#define LINUX_VIDIOC_G_SLICED_VBI_CAP 0x5645 /* 0xc0745645 */ +#define LINUX_VIDIOC_LOG_STATUS 0x5646 /* 0x00005646 */ +#define LINUX_VIDIOC_G_EXT_CTRLS 0x5647 /* 0xc0185647 */ +#define LINUX_VIDIOC_S_EXT_CTRLS 0x5648 /* 0xc0185648 */ +#define LINUX_VIDIOC_TRY_EXT_CTRLS 0x5649 /* 0xc0185649 */ +#define LINUX_VIDIOC_ENUM_FRAMESIZES 0x564a /* 0xc02c564a */ +#define LINUX_VIDIOC_ENUM_FRAMEINTERVALS 0x564b /* 0xc034564b */ +#define LINUX_VIDIOC_G_ENC_INDEX 0x564c /* 0x8818564c */ +#define LINUX_VIDIOC_ENCODER_CMD 0x564d /* 0xc028564d */ +#define LINUX_VIDIOC_TRY_ENCODER_CMD 0x564e /* 0xc028564e */ +#define LINUX_VIDIOC_DBG_S_REGISTER 0x564f /* 0x4038564f */ +#define LINUX_VIDIOC_DBG_G_REGISTER 0x5650 /* 0xc0385650 */ +#define LINUX_VIDIOC_DBG_G_CHIP_IDENT 0x5651 /* 0xc02c5651 */ +#define LINUX_VIDIOC_S_HW_FREQ_SEEK 0x5652 /* 0x40305652 */ +#define LINUX_VIDIOC_ENUM_DV_PRESETS 0x5653 /* 0xc0405653 */ +#define LINUX_VIDIOC_S_DV_PRESET 0x5654 /* 0xc0145654 */ +#define LINUX_VIDIOC_G_DV_PRESET 0x5655 /* 0xc0145655 */ +#define LINUX_VIDIOC_QUERY_DV_PRESET 0x5656 /* 0x80145656 */ +#define LINUX_VIDIOC_S_DV_TIMINGS 0x5657 /* 0xc0845657 */ +#define LINUX_VIDIOC_G_DV_TIMINGS 0x5658 /* 0xc0845658 */ +#define LINUX_VIDIOC_DQEVENT 0x5659 /* 0x80785659 */ +#define LINUX_VIDIOC_SUBSCRIBE_EVENT 0x565a /* 0x4020565a */ +#define LINUX_VIDIOC_UNSUBSCRIBE_EVENT 0x565b /* 0x4020565b */ + +#define LINUX_VIDIOC_OVERLAY_OLD 0x560e /* 0xc004560e */ +#define LINUX_VIDIOC_S_PARM_OLD 0x5616 /* 0x40cc5616 */ +#define LINUX_VIDIOC_S_CTRL_OLD 0x561c /* 0x4008561c */ +#define LINUX_VIDIOC_G_AUDIO_OLD 0x5621 /* 0xc0345621 */ +#define LINUX_VIDIOC_G_AUDOUT_OLD 0x5631 /* 0xc0345631 */ +#define LINUX_VIDIOC_CROPCAP_OLD 0x563a /* 0x802c563a */ + +#define LINUX_IOCTL_VIDEO2_MIN LINUX_VIDIOC_QUERYCAP +#define LINUX_IOCTL_VIDEO2_MAX LINUX_VIDIOC_UNSUBSCRIBE_EVENT + /* * Our libusb(8) calls emulated within linux(4). */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 09:26:33 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EB18106566B; Wed, 4 May 2011 09:26:33 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6DFC88FC08; Wed, 4 May 2011 09:26:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p449QXlE039715; Wed, 4 May 2011 09:26:33 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p449QXPr039713; Wed, 4 May 2011 09:26:33 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105040926.p449QXPr039713@svn.freebsd.org> From: Adrian Chadd Date: Wed, 4 May 2011 09:26:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221427 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 09:26:33 -0000 Author: adrian Date: Wed May 4 09:26:33 2011 New Revision: 221427 URL: http://svn.freebsd.org/changeset/base/221427 Log: Remove this useless bit of code for Kite. The RIFS register value is overriden by the initvals, so disabling RIFS before calling writeIni() effectively does nothing. Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed May 4 09:05:39 2011 (r221426) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Wed May 4 09:26:33 2011 (r221427) @@ -168,13 +168,6 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMO if (AR_SREV_MERLIN_10_OR_LATER(ah)) OS_REG_SET_BIT(ah, AR_GPIO_INPUT_EN_VAL, AR_GPIO_JTAG_DISABLE); - if (AR_SREV_KITE(ah)) { - uint32_t val; - val = OS_REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS); - val &= ~AR_PHY_RIFS_INIT_DELAY; - OS_REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val); - } - AH5416(ah)->ah_writeIni(ah, chan); /* Override ini values (that can be overriden in this fashion) */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 09:52:34 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8FE61065670; Wed, 4 May 2011 09:52:34 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A777B8FC18; Wed, 4 May 2011 09:52:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p449qYNX040492; Wed, 4 May 2011 09:52:34 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p449qYkt040490; Wed, 4 May 2011 09:52:34 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105040952.p449qYkt040490@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 09:52:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221428 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 09:52:34 -0000 Author: netchild Date: Wed May 4 09:52:34 2011 New Revision: 221428 URL: http://svn.freebsd.org/changeset/base/221428 Log: Add FEATURE macros for v4l and v4l2 to the linuxulator. Suggested by: ae Modified: head/sys/compat/linux/linux_ioctl.c Modified: head/sys/compat/linux/linux_ioctl.c ============================================================================== --- head/sys/compat/linux/linux_ioctl.c Wed May 4 09:26:33 2011 (r221427) +++ head/sys/compat/linux/linux_ioctl.c Wed May 4 09:52:34 2011 (r221428) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -91,6 +92,9 @@ __FBSDID("$FreeBSD$"); CTASSERT(LINUX_IFNAMSIZ == IFNAMSIZ); +FEATURE(linuxulator_v4l, "V4L ioctl wrapper support in the linuxulator"); +FEATURE(linuxulator_v4l2, "V4L2 ioctl wrapper support in the linuxulator"); + static linux_ioctl_function_t linux_ioctl_cdrom; static linux_ioctl_function_t linux_ioctl_vfat; static linux_ioctl_function_t linux_ioctl_console; From owner-svn-src-head@FreeBSD.ORG Wed May 4 11:18:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33FED1065670; Wed, 4 May 2011 11:18:02 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from mx0.hoeg.nl (mx0.hoeg.nl [IPv6:2a01:4f8:101:5343::aa]) by mx1.freebsd.org (Postfix) with ESMTP id BEE738FC23; Wed, 4 May 2011 11:18:01 +0000 (UTC) Received: by mx0.hoeg.nl (Postfix, from userid 1000) id 901182A2915A; Wed, 4 May 2011 13:17:59 +0200 (CEST) Date: Wed, 4 May 2011 13:17:59 +0200 From: Ed Schouten To: Nathan Whitehorn Message-ID: <20110504111759.GK2183@hoeg.nl> References: <201105040252.p442qfI4027516@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="GvuyDaC2GNSBQusT" Content-Disposition: inline In-Reply-To: <201105040252.p442qfI4027516@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221419 - head/release X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 11:18:02 -0000 --GvuyDaC2GNSBQusT Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi Nathan, * Nathan Whitehorn , 20110504 04:52: > chroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildke= rnel" || exit 1 > +chroot $2 /bin/sh -c "cd /usr/src/release && make obj" || exit 1 > chroot $2 /bin/sh -c "cd /usr/src/release && make release" || exit 1 > chroot $2 /bin/sh -c "cd /usr/src/release && make install DESTDIR=3D/R" = || exit 1 Wouldn't it be a bit more elegant to do something like this? chroot $2 make -C /usr/src/release obj Also, if you enable set -e, the script terminates upon error. Greetings, --=20 Ed Schouten WWW: http://80386.nl/ --GvuyDaC2GNSBQusT Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) iQIcBAEBAgAGBQJNwTXnAAoJEG5e2P40kaK7VboQAJlUVWbg1IGd1RojNStV65h9 4zMMxgjzaD/dcUoysCdTMNXCpI82f2XUTDi+mu//qeyuI3ZVfUquddF+dW1+lOmT SKD8vc4aCD6Z1uLJ49wRImjBCyTWl25Gs8JYqwo5GUueNNmTlBc/7mYtuKkrLEAU WLKE72A/cXRqxg8iksCRpsCAjh7HfnwQwhxcNAjChgDQoLiaY2XHaxv2I3lpFgAL HU6xSqY72Olb2wD3/dfthUAYamd8lqRLEGPrlt6fI6CTDu0Y5G1WY4hGgtt9GQOS F6NMnl7W+sCZzK2eReOxiZ+VUOPF2eD1ZmJImThcOeEK/2wsGwLYDMb7ZPssdtau rY6CjglaOLnbyhN9sDT5LDn1hZgSEizNurJ9pHxv1ueaHS94r2Nner2k/GVLe6kX COFoGB6b+x6y2+eaUfIo+oFwDCKn4ZtfVFgXU/MVSwk3J6uUaoXu3P+eA015DVge 9iECxamIDWxwCP5P7W2Eu3e4+v1h287KEaldNipptEqXf2y4bgN7IfpRHlIR5/SS WlE9z7Wv0oeGvpdoN/ove2UBBHIUAAzHtdM920p3sDEnOUqy6qQn3WL/QGKPSP9n wXfguAsdDF9hwMk/AilNhDPemLeid4q2+h2VK07NMW0iXXYqCmFdguZw/NZrt/m3 cjkW+pE7SqhdAseROKIk =zcss -----END PGP SIGNATURE----- --GvuyDaC2GNSBQusT-- From owner-svn-src-head@FreeBSD.ORG Wed May 4 11:22:52 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9E216106566B; Wed, 4 May 2011 11:22:52 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8CB218FC08; Wed, 4 May 2011 11:22:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44BMq7a047398; Wed, 4 May 2011 11:22:52 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44BMqEl047396; Wed, 4 May 2011 11:22:52 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105041122.p44BMqEl047396@svn.freebsd.org> From: Ruslan Ermilov Date: Wed, 4 May 2011 11:22:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221429 - head/sys/fs/nfsclient X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 11:22:52 -0000 Author: ru Date: Wed May 4 11:22:52 2011 New Revision: 221429 URL: http://svn.freebsd.org/changeset/base/221429 Log: In ncl_printf(), call vprintf() instead of printf(). MFC after: 3 days Modified: head/sys/fs/nfsclient/nfs_clsubs.c Modified: head/sys/fs/nfsclient/nfs_clsubs.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clsubs.c Wed May 4 09:52:34 2011 (r221428) +++ head/sys/fs/nfsclient/nfs_clsubs.c Wed May 4 11:22:52 2011 (r221429) @@ -167,7 +167,7 @@ ncl_printf(const char *fmt, ...) mtx_lock(&Giant); va_start(ap, fmt); - printf(fmt, ap); + vprintf(fmt, ap); va_end(ap); mtx_unlock(&Giant); } From owner-svn-src-head@FreeBSD.ORG Wed May 4 11:29:45 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B5D0106566C; Wed, 4 May 2011 11:29:45 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mx1.sbone.de (mx1.sbone.de [IPv6:2a01:4f8:130:3ffc::401:25]) by mx1.freebsd.org (Postfix) with ESMTP id C86318FC0C; Wed, 4 May 2011 11:29:44 +0000 (UTC) Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:31::2013:587]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.sbone.de (Postfix) with ESMTPS id 5E97F25D3860; Wed, 4 May 2011 11:29:43 +0000 (UTC) Received: from content-filter.sbone.de (content-filter.sbone.de [IPv6:fde9:577b:c1a9:31::2013:2742]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 5CDC9159EA70; Wed, 4 May 2011 11:29:42 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:31::2013:587]) by content-filter.sbone.de (content-filter.sbone.de [fde9:577b:c1a9:31::2013:2742]) (amavisd-new, port 10024) with ESMTP id l6o5e4Asnl+3; Wed, 4 May 2011 11:29:41 +0000 (UTC) Received: from orange-en1.sbone.de (orange-en1.sbone.de [IPv6:fde9:577b:c1a9:31:cabc:c8ff:fecf:e8e3]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 3C3C5159EA6F; Wed, 4 May 2011 11:29:41 +0000 (UTC) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: "Bjoern A. Zeeb" In-Reply-To: <20110504111759.GK2183@hoeg.nl> Date: Wed, 4 May 2011 11:29:40 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201105040252.p442qfI4027516@svn.freebsd.org> <20110504111759.GK2183@hoeg.nl> To: Ed Schouten X-Mailer: Apple Mail (2.1084) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Nathan Whitehorn Subject: Re: svn commit: r221419 - head/release X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 11:29:45 -0000 On May 4, 2011, at 11:17 AM, Ed Schouten wrote: > Hi Nathan, >=20 > * Nathan Whitehorn , 20110504 04:52: >> chroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld = buildkernel" || exit 1 >> +chroot $2 /bin/sh -c "cd /usr/src/release && make obj" || exit 1 >> chroot $2 /bin/sh -c "cd /usr/src/release && make release" || exit 1 >> chroot $2 /bin/sh -c "cd /usr/src/release && make install DESTDIR=3D/R"= || exit 1 >=20 > Wouldn't it be a bit more elegant to do something like this? >=20 > chroot $2 make -C /usr/src/release obj >=20 > Also, if you enable set -e, the script terminates upon error. Which is as bad as well as it needs to cleanup devfs mounts etc. in case = of errors. I am trying to get one finished and will post the results as = well as possible error cases I have hit so we can generally improve the script = and make it more robust. So far I am on build #4 ;-) /bz --=20 Bjoern A. Zeeb You have to have visions! Stop bit received. Insert coin for new address family. From owner-svn-src-head@FreeBSD.ORG Wed May 4 12:25:16 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF3271065670; Wed, 4 May 2011 12:25:16 +0000 (UTC) (envelope-from fidaj@ukr.net) Received: from fsm1.ukr.net (fsm1.ukr.net [195.214.192.120]) by mx1.freebsd.org (Postfix) with ESMTP id 2F9048FC1F; Wed, 4 May 2011 12:25:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ukr.net; s=fsm; h=Content-Transfer-Encoding:Content-Type:Mime-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date; bh=SNhnbh+tnPRIAnqmhuk4cf2KgY0+6RkaXI62dYZqvrw=; b=WYDbgKwMXQb9HGL7ZfvAM302P6z1aw1kFCk0Nl9rBB6SdP5YoP/pTmDP0PPfSoOTC1QXYPlqFM6QT1eW/t9vPgWaWsdlhqp9Qj/K22VgjaJ5lK4Es1DnVkxyOibJKy1GuDtNuidWEAaOwHYou+CPVXMKXrDDkgoypjIwf8CGyU0=; Received: from [46.185.0.237] (helo=localhost) by fsm1.ukr.net with esmtps ID 1QHaIM-000PAE-BK ; Wed, 04 May 2011 14:31:06 +0300 Date: Wed, 4 May 2011 14:32:20 +0300 From: Ivan Klymenko To: Alexander Leidinger Message-ID: <20110504143220.2c997f6b@ukr.net> In-Reply-To: <201105040905.p4495dqA039067@svn.freebsd.org> References: <201105040905.p4495dqA039067@svn.freebsd.org> X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.1; amd64-portbld-freebsd9.0) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221426 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 12:25:16 -0000 =D0=92 Wed, 4 May 2011 09:05:39 +0000 (UTC) Alexander Leidinger =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > Author: netchild > Date: Wed May 4 09:05:39 2011 > New Revision: 221426 > URL: http://svn.freebsd.org/changeset/base/221426 >=20 > Log: > This is v4l2 support for the linuxulator. This allows to access > FreeBSD native devices which support the v4l2 API from processes > running within the linuxulator, e.g. skype or flash can access the > multimedia/pwcbsd or multimedia/webcamd supplied drivers. > =20 > Submitted by: nox > MFC after: 1 month >=20 > Modified: > head/sys/compat/linux/linux_ioctl.c > head/sys/compat/linux/linux_ioctl.h >=20 > Modified: head/sys/compat/linux/linux_ioctl.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/linux/linux_ioctl.c Wed May 4 08:42:31 > 2011 (r221425) +++ head/sys/compat/linux/linux_ioctl.c > Wed May 4 09:05:39 2011 (r221426) @@ -59,6 +59,9 @@ > __FBSDID("$FreeBSD$"); #include > #include > #include > +#include > +#include > +#include > =20 > #include > #include > @@ -83,6 +86,9 @@ __FBSDID("$FreeBSD$"); > #include > #include > =20 > +#include > +#include > + > CTASSERT(LINUX_IFNAMSIZ =3D=3D IFNAMSIZ); > =20 > static linux_ioctl_function_t linux_ioctl_cdrom; > @@ -97,6 +103,7 @@ static linux_ioctl_function_t linux_ioct > static linux_ioctl_function_t linux_ioctl_drm; > static linux_ioctl_function_t linux_ioctl_sg; > static linux_ioctl_function_t linux_ioctl_v4l; > +static linux_ioctl_function_t linux_ioctl_v4l2; > static linux_ioctl_function_t linux_ioctl_special; > static linux_ioctl_function_t linux_ioctl_fbsd_usb; > =20 > @@ -124,6 +131,8 @@ static struct linux_ioctl_handler sg_han > { linux_ioctl_sg, LINUX_IOCTL_SG_MIN, LINUX_IOCTL_SG_MAX }; > static struct linux_ioctl_handler video_handler =3D > { linux_ioctl_v4l, LINUX_IOCTL_VIDEO_MIN, LINUX_IOCTL_VIDEO_MAX }; > +static struct linux_ioctl_handler video2_handler =3D > +{ linux_ioctl_v4l2, LINUX_IOCTL_VIDEO2_MIN, LINUX_IOCTL_VIDEO2_MAX }; > static struct linux_ioctl_handler fbsd_usb =3D > { linux_ioctl_fbsd_usb, FBSD_LUSB_MIN, FBSD_LUSB_MAX }; > =20 > @@ -139,6 +148,7 @@ DATA_SET(linux_ioctl_handler_set, privat > DATA_SET(linux_ioctl_handler_set, drm_handler); > DATA_SET(linux_ioctl_handler_set, sg_handler); > DATA_SET(linux_ioctl_handler_set, video_handler); > +DATA_SET(linux_ioctl_handler_set, video2_handler); > DATA_SET(linux_ioctl_handler_set, fbsd_usb); > =20 > struct handler_element > @@ -2988,6 +2998,302 @@ linux_ioctl_special(struct thread *td, s > return (error); > } > =20 > +static int > +linux_to_bsd_v4l2_standard(struct l_v4l2_standard *lvstd, struct > v4l2_standard *vstd) +{ > + vstd->index =3D lvstd->index; > + vstd->id =3D lvstd->id; > + memcpy(&vstd->name, &lvstd->name, sizeof(*lvstd) - > offsetof(struct l_v4l2_standard, name)); > + return (0); > +} > + > +static int > +bsd_to_linux_v4l2_standard(struct v4l2_standard *vstd, struct > l_v4l2_standard *lvstd) +{ > + lvstd->index =3D vstd->index; > + lvstd->id =3D vstd->id; > + memcpy(&lvstd->name, &vstd->name, sizeof(*lvstd) - > offsetof(struct l_v4l2_standard, name)); > + return (0); > +} > + > +static int > +linux_to_bsd_v4l2_buffer(struct l_v4l2_buffer *lvb, struct > v4l2_buffer *vb) +{ > + vb->index =3D lvb->index; > + vb->type =3D lvb->type; > + vb->bytesused =3D lvb->bytesused; > + vb->flags =3D lvb->flags; > + vb->field =3D lvb->field; > + vb->timestamp.tv_sec =3D lvb->timestamp.tv_sec; > + vb->timestamp.tv_usec =3D lvb->timestamp.tv_usec; > + memcpy(&vb->timecode, &lvb->timecode, sizeof > (lvb->timecode)); > + vb->sequence =3D lvb->sequence; > + vb->memory =3D lvb->memory; > + if (lvb->memory =3D=3D V4L2_MEMORY_USERPTR) > + /* possible pointer size conversion */ > + vb->m.userptr =3D (unsigned long)PTRIN(lvb->m.userptr); > + else > + vb->m.offset =3D lvb->m.offset; > + vb->length =3D lvb->length; > + vb->input =3D lvb->input; > + vb->reserved =3D lvb->reserved; > + return (0); > +} > + > +static int > +bsd_to_linux_v4l2_buffer(struct v4l2_buffer *vb, struct > l_v4l2_buffer *lvb) +{ > + lvb->index =3D vb->index; > + lvb->type =3D vb->type; > + lvb->bytesused =3D vb->bytesused; > + lvb->flags =3D vb->flags; > + lvb->field =3D vb->field; > + lvb->timestamp.tv_sec =3D vb->timestamp.tv_sec; > + lvb->timestamp.tv_usec =3D vb->timestamp.tv_usec; > + memcpy(&lvb->timecode, &vb->timecode, sizeof (vb->timecode)); > + lvb->sequence =3D vb->sequence; > + lvb->memory =3D vb->memory; > + if (vb->memory =3D=3D V4L2_MEMORY_USERPTR) > + /* possible pointer size conversion */ > + lvb->m.userptr =3D PTROUT(vb->m.userptr); > + else > + lvb->m.offset =3D vb->m.offset; > + lvb->length =3D vb->length; > + lvb->input =3D vb->input; > + lvb->reserved =3D vb->reserved; > + return (0); > +} > + > +static int > +linux_to_bsd_v4l2_format(struct l_v4l2_format *lvf, struct > v4l2_format *vf) +{ > + vf->type =3D lvf->type; > + if (lvf->type =3D=3D V4L2_BUF_TYPE_VIDEO_OVERLAY > +#ifdef V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY > + || lvf->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY > +#endif > + ) > + /* > + * XXX TODO - needs 32 -> 64 bit conversion: > + * (unused by webcams?) > + */ > + return EINVAL; > + memcpy(&vf->fmt, &lvf->fmt, sizeof(vf->fmt)); > + return 0; > +} > + > +static int > +bsd_to_linux_v4l2_format(struct v4l2_format *vf, struct > l_v4l2_format *lvf) +{ > + lvf->type =3D vf->type; > + if (vf->type =3D=3D V4L2_BUF_TYPE_VIDEO_OVERLAY > +#ifdef V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY > + || vf->type =3D=3D V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY > +#endif > + ) > + /* > + * XXX TODO - needs 32 -> 64 bit conversion: > + * (unused by webcams?) > + */ > + return EINVAL; > + memcpy(&lvf->fmt, &vf->fmt, sizeof(vf->fmt)); > + return 0; > +} > +static int > +linux_ioctl_v4l2(struct thread *td, struct linux_ioctl_args *args) > +{ > + struct file *fp; > + int error; > + struct v4l2_format vformat; > + struct l_v4l2_format l_vformat; > + struct v4l2_standard vstd; > + struct l_v4l2_standard l_vstd; > + struct l_v4l2_buffer l_vbuf; > + struct v4l2_buffer vbuf; > + struct v4l2_input vinp; > + > + switch (args->cmd & 0xffff) { > + case LINUX_VIDIOC_RESERVED: > + case LINUX_VIDIOC_LOG_STATUS: > + if ((args->cmd & IOC_DIRMASK) !=3D LINUX_IOC_VOID) > + return ENOIOCTL; > + args->cmd =3D (args->cmd & 0xffff) | IOC_VOID; > + break; > + > + case LINUX_VIDIOC_OVERLAY: > + case LINUX_VIDIOC_STREAMON: > + case LINUX_VIDIOC_STREAMOFF: > + case LINUX_VIDIOC_S_STD: > + case LINUX_VIDIOC_S_TUNER: > + case LINUX_VIDIOC_S_AUDIO: > + case LINUX_VIDIOC_S_AUDOUT: > + case LINUX_VIDIOC_S_MODULATOR: > + case LINUX_VIDIOC_S_FREQUENCY: > + case LINUX_VIDIOC_S_CROP: > + case LINUX_VIDIOC_S_JPEGCOMP: > + case LINUX_VIDIOC_S_PRIORITY: > + case LINUX_VIDIOC_DBG_S_REGISTER: > + case LINUX_VIDIOC_S_HW_FREQ_SEEK: > + case LINUX_VIDIOC_SUBSCRIBE_EVENT: > + case LINUX_VIDIOC_UNSUBSCRIBE_EVENT: > + args->cmd =3D (args->cmd & ~IOC_DIRMASK) | IOC_IN; > + break; > + > + case LINUX_VIDIOC_QUERYCAP: > + case LINUX_VIDIOC_G_STD: > + case LINUX_VIDIOC_G_AUDIO: > + case LINUX_VIDIOC_G_INPUT: > + case LINUX_VIDIOC_G_OUTPUT: > + case LINUX_VIDIOC_G_AUDOUT: > + case LINUX_VIDIOC_G_JPEGCOMP: > + case LINUX_VIDIOC_QUERYSTD: > + case LINUX_VIDIOC_G_PRIORITY: > + case LINUX_VIDIOC_QUERY_DV_PRESET: > + args->cmd =3D (args->cmd & ~IOC_DIRMASK) | IOC_OUT; > + break; > + > + case LINUX_VIDIOC_ENUM_FMT: > + case LINUX_VIDIOC_REQBUFS: > + case LINUX_VIDIOC_G_PARM: > + case LINUX_VIDIOC_S_PARM: > + case LINUX_VIDIOC_G_CTRL: > + case LINUX_VIDIOC_S_CTRL: > + case LINUX_VIDIOC_G_TUNER: > + case LINUX_VIDIOC_QUERYCTRL: > + case LINUX_VIDIOC_QUERYMENU: > + case LINUX_VIDIOC_S_INPUT: > + case LINUX_VIDIOC_S_OUTPUT: > + case LINUX_VIDIOC_ENUMOUTPUT: > + case LINUX_VIDIOC_G_MODULATOR: > + case LINUX_VIDIOC_G_FREQUENCY: > + case LINUX_VIDIOC_CROPCAP: > + case LINUX_VIDIOC_G_CROP: > + case LINUX_VIDIOC_ENUMAUDIO: > + case LINUX_VIDIOC_ENUMAUDOUT: > + case LINUX_VIDIOC_G_SLICED_VBI_CAP: > +#ifdef VIDIOC_ENUM_FRAMESIZES > + case LINUX_VIDIOC_ENUM_FRAMESIZES: > + case LINUX_VIDIOC_ENUM_FRAMEINTERVALS: > + case LINUX_VIDIOC_ENCODER_CMD: > + case LINUX_VIDIOC_TRY_ENCODER_CMD: > +#endif > + case LINUX_VIDIOC_DBG_G_REGISTER: > + case LINUX_VIDIOC_DBG_G_CHIP_IDENT: > + case LINUX_VIDIOC_ENUM_DV_PRESETS: > + case LINUX_VIDIOC_S_DV_PRESET: > + case LINUX_VIDIOC_G_DV_PRESET: > + case LINUX_VIDIOC_S_DV_TIMINGS: > + case LINUX_VIDIOC_G_DV_TIMINGS: > + args->cmd =3D (args->cmd & ~IOC_DIRMASK) | IOC_INOUT; > + break; > + > + case LINUX_VIDIOC_G_FMT: > + case LINUX_VIDIOC_S_FMT: > + case LINUX_VIDIOC_TRY_FMT: > + error =3D copyin((void *)args->arg, &l_vformat, > sizeof(l_vformat)); > + if (error) > + return (error); > + if ((error =3D fget(td, args->fd, &fp)) !=3D 0) > + return (error); > + if (linux_to_bsd_v4l2_format(&l_vformat, > &vformat) !=3D 0) > + error =3D EINVAL; > + else if ((args->cmd & 0xffff) =3D=3D LINUX_VIDIOC_G_FMT) > + error =3D fo_ioctl(fp, VIDIOC_G_FMT, &vformat, > + td->td_ucred, td); > + else if ((args->cmd & 0xffff) =3D=3D LINUX_VIDIOC_S_FMT) > + error =3D fo_ioctl(fp, VIDIOC_S_FMT, &vformat, > + td->td_ucred, td); > + else > + error =3D fo_ioctl(fp, VIDIOC_TRY_FMT, > &vformat, > + td->td_ucred, td); > + bsd_to_linux_v4l2_format(&vformat, &l_vformat); > + copyout(&l_vformat, (void *)args->arg, > sizeof(l_vformat)); > + fdrop(fp, td); > + return (error); > + > + case LINUX_VIDIOC_ENUMSTD: > + error =3D copyin((void *)args->arg, &l_vstd, > sizeof(l_vstd)); > + if (error) > + return (error); > + linux_to_bsd_v4l2_standard(&l_vstd, &vstd); > + if ((error =3D fget(td, args->fd, &fp)) !=3D 0) > + return (error); > + error =3D fo_ioctl(fp, VIDIOC_ENUMSTD, (caddr_t)&vstd, > + td->td_ucred, td); > + if (error) { > + fdrop(fp, td); > + return (error); > + } > + bsd_to_linux_v4l2_standard(&vstd, &l_vstd); > + error =3D copyout(&l_vstd, (void *)args->arg, > sizeof(l_vstd)); > + fdrop(fp, td); > + return (error); > + > + case LINUX_VIDIOC_ENUMINPUT: > + /* > + * The Linux struct l_v4l2_input differs only in > size, > + * it has no padding at the end. > + */ > + error =3D copyin((void *)args->arg, &vinp, > + sizeof(struct l_v4l2_input)); > + if (error !=3D 0) > + return (error); > + if ((error =3D fget(td, args->fd, &fp)) !=3D 0) > + return (error); > + error =3D fo_ioctl(fp, VIDIOC_ENUMINPUT, > (caddr_t)&vinp, > + td->td_ucred, td); > + if (error) { > + fdrop(fp, td); > + return (error); > + } > + error =3D copyout(&vinp, (void *)args->arg, > + sizeof(struct l_v4l2_input)); > + fdrop(fp, td); > + return (error); > + > + case LINUX_VIDIOC_QUERYBUF: > + case LINUX_VIDIOC_QBUF: > + case LINUX_VIDIOC_DQBUF: > + error =3D copyin((void *)args->arg, &l_vbuf, > sizeof(l_vbuf)); > + if (error) > + return (error); > + if ((error =3D fget(td, args->fd, &fp)) !=3D 0) > + return (error); > + linux_to_bsd_v4l2_buffer(&l_vbuf, &vbuf); > + if ((args->cmd & 0xffff) =3D=3D LINUX_VIDIOC_QUERYBUF) > + error =3D fo_ioctl(fp, VIDIOC_QUERYBUF, &vbuf, > + td->td_ucred, td); > + else if ((args->cmd & 0xffff) =3D=3D LINUX_VIDIOC_QBUF) > + error =3D fo_ioctl(fp, VIDIOC_QBUF, &vbuf, > + td->td_ucred, td); > + else > + error =3D fo_ioctl(fp, VIDIOC_DQBUF, &vbuf, > + td->td_ucred, td); > + bsd_to_linux_v4l2_buffer(&vbuf, &l_vbuf); > + copyout(&l_vbuf, (void *)args->arg, sizeof(l_vbuf)); > + fdrop(fp, td); > + return (error); > + > + /* > + * XXX TODO - these need 32 -> 64 bit conversion: > + * (are any of them needed for webcams?) > + */ > + case LINUX_VIDIOC_G_FBUF: > + case LINUX_VIDIOC_S_FBUF: > + > + case LINUX_VIDIOC_G_EXT_CTRLS: > + case LINUX_VIDIOC_S_EXT_CTRLS: > + case LINUX_VIDIOC_TRY_EXT_CTRLS: > + > + case LINUX_VIDIOC_DQEVENT: > + > + default: return (ENOIOCTL); > + } > + > + error =3D ioctl(td, (struct ioctl_args *)args); > + return (error); > +} > + > /* > * Support for emulators/linux-libusb. This port uses FBSD_LUSB* > macros > * instead of USB* ones. This lets us to provide correct values for > cmd. >=20 > Modified: head/sys/compat/linux/linux_ioctl.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/compat/linux/linux_ioctl.h Wed May 4 08:42:31 > 2011 (r221425) +++ head/sys/compat/linux/linux_ioctl.h > Wed May 4 09:05:39 2011 (r221426) @@ -32,6 +32,17 @@ > #define _LINUX_IOCTL_H_ > =20 > /* > + * ioctl > + * > + * XXX comments in Linux' indicate these > + * could be arch-dependant... > + */ > +#define LINUX_IOC_VOID 0 > +#define LINUX_IOC_IN 0x40000000 > +#define LINUX_IOC_OUT 0x80000000 > +#define LINUX_IOC_INOUT (LINUX_IOC_IN|LINUX_IOC_OUT) > + > +/* > * disk > */ > #define LINUX_BLKROSET 0x125d > @@ -612,6 +623,92 @@ int linux_ifname(struct ifnet *, > char #define LINUX_IOCTL_VIDEO_MIN LINUX_VIDIOCGCAP > #define LINUX_IOCTL_VIDEO_MAX LINUX_VIDIOCSVBIFMT > =20 > +/* videodev2 aka V4L2 */ > + > +#define LINUX_VIDIOC_QUERYCAP 0x5600 /* > 0x80685600 */ +#define LINUX_VIDIOC_RESERVED > 0x5601 /* 0x00005601 */ +#define > LINUX_VIDIOC_ENUM_FMT 0x5602 /* 0xc0405602 */ > +#define LINUX_VIDIOC_G_FMT 0x5604 /* > 0xc0cc5604 */ +#define LINUX_VIDIOC_S_FMT > 0x5605 /* 0xc0cc5605 */ +#define > LINUX_VIDIOC_REQBUFS 0x5608 /* 0xc0145608 */ > +#define LINUX_VIDIOC_QUERYBUF 0x5609 /* > 0xc0445609 */ +#define LINUX_VIDIOC_G_FBUF > 0x560a /* 0x802c560a */ +#define > LINUX_VIDIOC_S_FBUF 0x560b /* 0x402c560b */ > +#define LINUX_VIDIOC_OVERLAY 0x560e /* > 0x4004560e */ +#define LINUX_VIDIOC_QBUF > 0x560f /* 0xc044560f */ +#define > LINUX_VIDIOC_DQBUF 0x5611 /* 0xc0445611 */ > +#define LINUX_VIDIOC_STREAMON 0x5612 /* > 0x40045612 */ +#define LINUX_VIDIOC_STREAMOFF > 0x5613 /* 0x40045613 */ +#define > LINUX_VIDIOC_G_PARM 0x5615 /* 0xc0cc5615 */ > +#define LINUX_VIDIOC_S_PARM 0x5616 /* > 0xc0cc5616 */ +#define LINUX_VIDIOC_G_STD > 0x5617 /* 0x80085617 */ +#define > LINUX_VIDIOC_S_STD 0x5618 /* 0x40085618 */ > +#define LINUX_VIDIOC_ENUMSTD 0x5619 /* > 0xc0405619 */ +#define LINUX_VIDIOC_ENUMINPUT > 0x561a /* 0xc04c561a */ +#define > LINUX_VIDIOC_G_CTRL 0x561b /* 0xc008561b */ > +#define LINUX_VIDIOC_S_CTRL 0x561c /* > 0xc008561c */ +#define LINUX_VIDIOC_G_TUNER > 0x561d /* 0xc054561d */ +#define > LINUX_VIDIOC_S_TUNER 0x561e /* 0x4054561e */ > +#define LINUX_VIDIOC_G_AUDIO 0x5621 /* > 0x80345621 */ +#define LINUX_VIDIOC_S_AUDIO > 0x5622 /* 0x40345622 */ +#define > LINUX_VIDIOC_QUERYCTRL 0x5624 /* 0xc0445624 */ > +#define LINUX_VIDIOC_QUERYMENU 0x5625 /* > 0xc02c5625 */ +#define LINUX_VIDIOC_G_INPUT > 0x5626 /* 0x80045626 */ +#define > LINUX_VIDIOC_S_INPUT 0x5627 /* 0xc0045627 */ > +#define LINUX_VIDIOC_G_OUTPUT 0x562e /* > 0x8004562e */ +#define LINUX_VIDIOC_S_OUTPUT > 0x562f /* 0xc004562f */ +#define > LINUX_VIDIOC_ENUMOUTPUT 0x5630 /* 0xc0485630 > */ +#define LINUX_VIDIOC_G_AUDOUT 0x5631 /* > 0x80345631 */ +#define LINUX_VIDIOC_S_AUDOUT > 0x5632 /* 0x40345632 */ +#define > LINUX_VIDIOC_G_MODULATOR 0x5636 /* 0xc0445636 */ > +#define LINUX_VIDIOC_S_MODULATOR 0x5637 /* 0x40445637 > */ +#define LINUX_VIDIOC_G_FREQUENCY 0x5638 /* > 0xc02c5638 */ +#define LINUX_VIDIOC_S_FREQUENCY > 0x5639 /* 0x402c5639 */ +#define > LINUX_VIDIOC_CROPCAP 0x563a /* 0xc02c563a */ > +#define LINUX_VIDIOC_G_CROP 0x563b /* > 0xc014563b */ +#define LINUX_VIDIOC_S_CROP > 0x563c /* 0x4014563c */ +#define > LINUX_VIDIOC_G_JPEGCOMP 0x563d /* 0x808c563d > */ +#define LINUX_VIDIOC_S_JPEGCOMP 0x563e /* > 0x408c563e */ +#define LINUX_VIDIOC_QUERYSTD > 0x563f /* 0x8008563f */ +#define > LINUX_VIDIOC_TRY_FMT 0x5640 /* 0xc0cc5640 */ > +#define LINUX_VIDIOC_ENUMAUDIO 0x5641 /* > 0xc0345641 */ +#define LINUX_VIDIOC_ENUMAUDOUT > 0x5642 /* 0xc0345642 */ +#define > LINUX_VIDIOC_G_PRIORITY 0x5643 /* 0x80045643 > */ +#define LINUX_VIDIOC_S_PRIORITY 0x5644 /* > 0x40045644 */ +#define LINUX_VIDIOC_G_SLICED_VBI_CAP > 0x5645 /* 0xc0745645 */ +#define > LINUX_VIDIOC_LOG_STATUS 0x5646 /* 0x00005646 > */ +#define LINUX_VIDIOC_G_EXT_CTRLS 0x5647 /* > 0xc0185647 */ +#define LINUX_VIDIOC_S_EXT_CTRLS > 0x5648 /* 0xc0185648 */ +#define > LINUX_VIDIOC_TRY_EXT_CTRLS 0x5649 /* 0xc0185649 */ > +#define LINUX_VIDIOC_ENUM_FRAMESIZES 0x564a /* > 0xc02c564a */ +#define LINUX_VIDIOC_ENUM_FRAMEINTERVALS > 0x564b /* 0xc034564b */ +#define > LINUX_VIDIOC_G_ENC_INDEX 0x564c /* 0x8818564c */ > +#define LINUX_VIDIOC_ENCODER_CMD 0x564d /* 0xc028564d > */ +#define LINUX_VIDIOC_TRY_ENCODER_CMD 0x564e /* > 0xc028564e */ +#define LINUX_VIDIOC_DBG_S_REGISTER > 0x564f /* 0x4038564f */ +#define > LINUX_VIDIOC_DBG_G_REGISTER 0x5650 /* 0xc0385650 */ > +#define LINUX_VIDIOC_DBG_G_CHIP_IDENT 0x5651 /* > 0xc02c5651 */ +#define LINUX_VIDIOC_S_HW_FREQ_SEEK > 0x5652 /* 0x40305652 */ +#define > LINUX_VIDIOC_ENUM_DV_PRESETS 0x5653 /* 0xc0405653 */ > +#define LINUX_VIDIOC_S_DV_PRESET 0x5654 /* 0xc0145654 > */ +#define LINUX_VIDIOC_G_DV_PRESET 0x5655 /* > 0xc0145655 */ +#define LINUX_VIDIOC_QUERY_DV_PRESET > 0x5656 /* 0x80145656 */ +#define > LINUX_VIDIOC_S_DV_TIMINGS 0x5657 /* 0xc0845657 */ > +#define LINUX_VIDIOC_G_DV_TIMINGS 0x5658 /* > 0xc0845658 */ +#define LINUX_VIDIOC_DQEVENT > 0x5659 /* 0x80785659 */ +#define > LINUX_VIDIOC_SUBSCRIBE_EVENT 0x565a /* 0x4020565a */ > +#define LINUX_VIDIOC_UNSUBSCRIBE_EVENT 0x565b /* > 0x4020565b */ + +#define LINUX_VIDIOC_OVERLAY_OLD > 0x560e /* 0xc004560e */ +#define > LINUX_VIDIOC_S_PARM_OLD 0x5616 /* 0x40cc5616 > */ +#define LINUX_VIDIOC_S_CTRL_OLD 0x561c /* > 0x4008561c */ +#define LINUX_VIDIOC_G_AUDIO_OLD > 0x5621 /* 0xc0345621 */ +#define > LINUX_VIDIOC_G_AUDOUT_OLD 0x5631 /* 0xc0345631 */ > +#define LINUX_VIDIOC_CROPCAP_OLD 0x563a /* 0x802c563a > */ + +#define LINUX_IOCTL_VIDEO2_MIN LINUX_VIDIOC_QUERYCAP > +#define LINUX_IOCTL_VIDEO2_MAX LINUX_VIDIOC_UNSUBSCRIBE_EVENT > + /* > * Our libusb(8) calls emulated within linux(4). > */ > _______________________________________________ > svn-src-all@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-all > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org" >=20 >=20 ... /usr/src/sys/modules/linux/../../compat/linux/linux_ioctl.c:91:49: error: c= ompat/linux/linux_videodev2_compat.h: No such file or directory ... From owner-svn-src-head@FreeBSD.ORG Wed May 4 12:37:10 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F1948106564A; Wed, 4 May 2011 12:37:10 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E055B8FC18; Wed, 4 May 2011 12:37:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44CbAIq049627; Wed, 4 May 2011 12:37:10 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44CbAcW049625; Wed, 4 May 2011 12:37:10 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105041237.p44CbAcW049625@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 12:37:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221430 - head/etc/periodic/daily X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 12:37:11 -0000 Author: netchild Date: Wed May 4 12:37:10 2011 New Revision: 221430 URL: http://svn.freebsd.org/changeset/base/221430 Log: Use proper return codes (valuable output, invalid config, problems). MFC after: 1 week Modified: head/etc/periodic/daily/800.scrub-zfs Modified: head/etc/periodic/daily/800.scrub-zfs ============================================================================== --- head/etc/periodic/daily/800.scrub-zfs Wed May 4 11:22:52 2011 (r221429) +++ head/etc/periodic/daily/800.scrub-zfs Wed May 4 12:37:10 2011 (r221430) @@ -26,10 +26,12 @@ case "$daily_scrub_zfs_enable" in daily_scrub_zfs_pools="$(zpool list -H -o name)" fi + rc=0 for pool in ${daily_scrub_zfs_pools}; do # sanity check _status=$(zpool list "${pool}" 2> /dev/null) if [ $? -ne 0 ]; then + rc=2 echo " WARNING: pool '${pool}' specified in" echo " '/etc/periodic.conf:daily_scrub_zfs_pools'" echo " does not exist" @@ -38,13 +40,11 @@ case "$daily_scrub_zfs_enable" in _status=${_status##*$newline} case ${_status} in *FAULTED*) + rc=3 echo "Skipping faulted pool: ${pool}" continue ;; esac - # successful only if there is at least one pool to scrub - rc=0 - # determine how many days shall be between scrubs eval _pool_threshold=\${daily_scrub_zfs_${pool}_threshold} if [ -z "${_pool_threshold}" ];then @@ -77,10 +77,12 @@ case "$daily_scrub_zfs_enable" in *"none requested"*) echo " starting first scrub (since reboot) of pool '${pool}':" zpool scrub ${pool} + [ $rc -eq 0 ] && rc=1 ;; *) echo " starting scrub of pool '${pool}':" zpool scrub ${pool} + [ $rc -eq 0 ] && rc=1 ;; esac From owner-svn-src-head@FreeBSD.ORG Wed May 4 12:44:46 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6569D1065675; Wed, 4 May 2011 12:44:46 +0000 (UTC) (envelope-from jonathan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 526168FC12; Wed, 4 May 2011 12:44:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44CiktT049916; Wed, 4 May 2011 12:44:46 GMT (envelope-from jonathan@svn.freebsd.org) Received: (from jonathan@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44CikvT049911; Wed, 4 May 2011 12:44:46 GMT (envelope-from jonathan@svn.freebsd.org) Message-Id: <201105041244.p44CikvT049911@svn.freebsd.org> From: Jonathan Anderson Date: Wed, 4 May 2011 12:44:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221431 - head/tools/regression/security/cap_test X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 12:44:46 -0000 Author: jonathan Date: Wed May 4 12:44:46 2011 New Revision: 221431 URL: http://svn.freebsd.org/changeset/base/221431 Log: Regression tests for Capsicum capability mode. Ensure that system calls that access global namespaces, e.g. open(2), are not permitted, and that whitelisted sysctls like kern.osreldate are. Approved by: rwatson Sponsored by: Google, Inc. Added: head/tools/regression/security/cap_test/ head/tools/regression/security/cap_test/Makefile (contents, props changed) head/tools/regression/security/cap_test/cap_test.c (contents, props changed) head/tools/regression/security/cap_test/cap_test.h (contents, props changed) head/tools/regression/security/cap_test/cap_test_capmode.c (contents, props changed) head/tools/regression/security/cap_test/cap_test_sysctl.c (contents, props changed) Added: head/tools/regression/security/cap_test/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/security/cap_test/Makefile Wed May 4 12:44:46 2011 (r221431) @@ -0,0 +1,9 @@ +# $FreeBSD$ + +PROG= cap_test +SRCS= cap_test.c cap_test_capmode.c cap_test_sysctl.c +WARNS= 3 +NO_MAN= +CFLAGS+= -DMACHINE=\"${MACHINE}\" + +.include Added: head/tools/regression/security/cap_test/cap_test.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/security/cap_test/cap_test.c Wed May 4 12:44:46 2011 (r221431) @@ -0,0 +1,47 @@ +/*- + * Copyright (c) 2008-2011 Robert N. M. Watson + * 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 +__FBSDID("$FreeBSD$"); + +#include + +#include "cap_test.h" + +int +main(int argc, char *argv[]) +{ + test_capmode(); + test_sysctl(); + /* + test_capabilities(); + test_syscalls(); + test_fcntl(); + */ + exit(0); +} Added: head/tools/regression/security/cap_test/cap_test.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/security/cap_test/cap_test.h Wed May 4 12:44:46 2011 (r221431) @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2008-2011 Robert N. M. Watson + * 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$ + */ + +#ifndef CAP_TEST_H +#define CAP_TEST_H + +void test_capmode(void); +void test_capabilities(void); +void test_syscalls(void); +void test_sysctl(void); +void test_fcntl(void); + +#endif /* CAP_TEST_H */ Added: head/tools/regression/security/cap_test/cap_test_capmode.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/security/cap_test/cap_test_capmode.c Wed May 4 12:44:46 2011 (r221431) @@ -0,0 +1,426 @@ +/*- + * Copyright (c) 2008-2009 Robert N. M. Watson + * 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$ + */ + +/* + * Test routines to make sure a variety of system calls are or are not + * available in capability mode. The goal is not to see if they work, just + * whether or not they return the expected ECAPMODE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include + +/* Need to check machine-dependent sysarch(). */ +#define ARCH_IS(s) (!strncmp(s, MACHINE, sizeof(s) + 1)) + +#include "cap_test.h" + +void +test_capmode(void) +{ + struct sockaddr_in sin; + struct statfs statfs; + struct stat sb; + ssize_t len; + long sysarch_arg = 0; + int fd, fd_close, fd_dir, fd_file, fd_socket, fd2[2], ret; + pid_t pid, wpid; + char ch; + + fd_file = open("/tmp/cap_test_syscalls", O_RDWR|O_CREAT, 0644); + if (fd_file < 0) + err(-1, "test_syscalls:prep: open cap_test_syscalls"); + + fd_close = open("/dev/null", O_RDWR); + if (fd_close < 0) + err(-1, "test_syscalls:prep: open /dev/null"); + + fd_dir = open("/tmp", O_RDONLY); + if (fd_dir < 0) + err(-1, "test_syscalls:prep: open /tmp"); + + fd_socket = socket(PF_INET, SOCK_DGRAM, 0); + if (fd_socket < 0) + err(-1, "test_syscalls:prep: socket"); + + if (cap_enter() < 0) + err(-1, "test_syscalls:prep: cap_enter"); + + + bzero(&sin, sizeof(sin)); + sin.sin_len = sizeof(sin); + sin.sin_family = AF_INET; + + /* + * Here begin the tests, sorted roughly alphabetically by system call + * name. + */ + fd = accept(fd_socket, NULL, NULL); + if (fd < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:accept"); + } else { + warnx("test_syscalls:accept succeeded"); + close(fd); + } + + if (access("/tmp/cap_test_syscalls_access", F_OK) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:access"); + } else + warnx("test_syscalls:access succeeded"); + + if (acct("/tmp/cap_test_syscalls_acct") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:acct"); + } else + warnx("test_syscalls:acct succeeded"); + + if (bind(PF_INET, (struct sockaddr *)&sin, sizeof(sin)) < 0) { + if (errno != ECAPMODE) + warn("test_syscall:bind"); + } else + warnx("test_syscall:bind succeeded"); + + if (chdir("/tmp/cap_test_syscalls_chdir") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:chdir"); + } else + warnx("test_syscalls:chdir succeeded"); + + if (chflags("/tmp/cap_test_syscalls_chflags", UF_NODUMP) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:chflags"); + } else + warnx("test_syscalls:chflags succeeded"); + + if (chmod("/tmp/cap_test_syscalls_chmod", 0644) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:chmod"); + } else + warnx("test_syscalls:chmod succeeded"); + + if (chown("/tmp/cap_test_syscalls_chown", -1, -1) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:chown"); + } else + warnx("test_syscalls:chown succeeded"); + + if (chroot("/tmp/cap_test_syscalls_chroot") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:chroot"); + } else + warnx("test_syscalls:chroot succeeded"); + + if (close(fd_close)) { + if (errno == ECAPMODE) + warnx("test_syscalls:close"); + else + warn("test_syscalls:close"); + } + + if (connect(PF_INET, (struct sockaddr *)&sin, sizeof(sin)) < 0) { + if (errno != ECAPMODE) + warn("test_syscall:connect"); + } else + warnx("test_syscall:connect succeeded"); + + fd = creat("/tmp/cap_test_syscalls_creat", 0644); + if (fd >= 0) { + warnx("test_syscalls:creat succeeded"); + close(fd); + } else if (errno != ECAPMODE) + warn("test_syscalls:creat"); + + fd = dup(fd_file); + if (fd < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:dup"); + } else + close(fd); + + if (fchdir(fd_dir) < 0) { + if (errno != ECAPMODE) + warn("test_syscall:fchdir"); + } else + warnx("test_syscalls:fchdir succeeded"); + + if (fchflags(fd_file, UF_NODUMP) < 0) { + if (errno == ECAPMODE) + warnx("test_syscall:fchflags"); + } + + pid = fork(); + if (pid >= 0) { + if (pid == 0) { + exit(0); + } else if (pid > 0) { + wpid = waitpid(pid, NULL, 0); + if (wpid < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:waitpid"); + } else + warnx("test_syscalls:waitpid succeeded"); + } + } else + warn("test_syscalls:fork"); + + if (fstat(fd_file, &sb) < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:fstat"); + } + + /* + * getegid() can't return an error but check for it anyway. + */ + errno = 0; + (void)getegid(); + if (errno == ECAPMODE) + warnx("test_syscalls:getegid"); + + /* + * geteuid() can't return an error but check for it anyway. + */ + errno = 0; + geteuid(); + if (errno == ECAPMODE) + warnx("test_syscalls:geteuid"); + + if (getfsstat(&statfs, sizeof(statfs), MNT_NOWAIT) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:getfsstat"); + } else + warnx("test_syscalls:getfsstat succeeded"); + + /* + * getgid() can't return an error but check for it anyway. + */ + errno = 0; + getgid(); + if (errno == ECAPMODE) + warnx("test_syscalls:getgid"); + + if (getpeername(fd_socket, NULL, NULL) < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:getpeername"); + } + + if (getlogin() == NULL) + warn("test_sycalls:getlogin %d", errno); + + /* + * getpid() can't return an error but check for it anyway. + */ + errno = 0; + (void)getpid(); + if (errno == ECAPMODE) + warnx("test_syscalls:getpid"); + + /* + * getppid() can't return an error but check for it anyway. + */ + errno = 0; + (void)getppid(); + if (errno == ECAPMODE) + warnx("test_syscalls:getppid"); + + if (getsockname(fd_socket, NULL, NULL) < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:getsockname"); + } + + /* + * getuid() can't return an error but check for it anyway. + */ + errno = 0; + (void)getuid(); + if (errno == ECAPMODE) + warnx("test_syscalls:getuid"); + + /* XXXRW: ktrace */ + + if (link("/tmp/foo", "/tmp/bar") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:link"); + } else + warnx("test_syscalls:link succeeded"); + + ret = lseek(fd_file, SEEK_SET, 0); + if (ret < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:lseek"); + else + warn("test_syscalls:lseek"); + } + + if (lstat("/tmp/cap_test_syscalls_lstat", &sb) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:lstat"); + } else + warnx("test_syscalls:lstat succeeded"); + + if (mknod("/tmp/test_syscalls_mknod", 06440, 0) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:mknod"); + } else + warnx("test_syscalls:mknod succeeded"); + + /* + * mount() is a bit tricky but do our best. + */ + if (mount("procfs", "/not_mounted", 0, NULL) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:mount"); + } else + warnx("test_syscalls:mount succeeded"); + + if (msync(&fd_file, 8192, MS_ASYNC) < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:msync"); + } + + fd = open("/dev/null", O_RDWR); + if (fd >= 0) { + warnx("test_syscalls:open succeeded"); + close(fd); + } + + if (pipe(fd2) == 0) { + close(fd2[0]); + close(fd2[1]); + } else if (errno == ECAPMODE) + warnx("test_syscalls:pipe"); + + if (profil(NULL, 0, 0, 0) < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:profile"); + } + + /* XXXRW: ptrace. */ + + len = read(fd_file, &ch, sizeof(ch)); + if (len < 0 && errno == ECAPMODE) + warnx("test_syscalls:read"); + + if (readlink("/tmp/cap_test_syscalls_readlink", NULL, 0) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:readlink"); + } else + warnx("test_syscalls:readlink succeeded"); + + len = recvfrom(fd_socket, NULL, 0, 0, NULL, NULL); + if (len < 0 && errno == ECAPMODE) + warnx("test_syscalls:recvfrom"); + + len = recvmsg(fd_socket, NULL, 0); + if (len < 0 && errno == ECAPMODE) + warnx("test_syscalls:recvmsg"); + + if (revoke("/tmp/cap_test_syscalls_revoke") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:revoke"); + } else + warnx("test_syscalls:revoke succeeded"); + + len = sendmsg(fd_socket, NULL, 0); + if (len < 0 && errno == ECAPMODE) + warnx("test_syscalls:sendmsg"); + + len = sendto(fd_socket, NULL, 0, 0, NULL, 0); + if (len < 0 && errno == ECAPMODE) + warn("test_syscalls:sendto(NULL)"); + + if (setuid(getuid()) < 0) { + if (errno == ECAPMODE) + warnx("test_syscalls:setuid"); + } + + if (stat("/tmp/cap_test_syscalls_stat", &sb) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:stat"); + } else + warnx("test_syscalls:stat succeeded"); + + if (symlink("/tmp/cap_test_syscalls_symlink_from", + "/tmp/cap_test_syscalls_symlink_to") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:symlink"); + } else + warnx("test_syscalls:symlink succeeded"); + + /* sysarch() is, by definition, architecture-dependent */ + if (ARCH_IS("i386") || ARCH_IS("amd64")) { + if (sysarch(I386_SET_IOPERM, &sysarch_arg) != -1) + warnx("test_syscalls:sysarch succeeded"); + else if (errno != ECAPMODE) + warn("test_syscalls:sysarch errno != ECAPMODE"); + + /* XXXJA: write a test for arm */ + } else { + warnx("test_syscalls:no sysarch() test for architecture '%s'", MACHINE); + } + + /* XXXRW: No error return from sync(2) to test. */ + + if (unlink("/tmp/cap_test_syscalls_unlink") < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:unlink"); + } else + warnx("test_syscalls:unlink succeeded"); + + if (unmount("/not_mounted", 0) < 0) { + if (errno != ECAPMODE) + warn("test_syscalls:unmount"); + } else + warnx("test_syscalls:unmount succeeded"); + + len = write(fd_file, &ch, sizeof(ch)); + if (len < 0 && errno == ECAPMODE) + warnx("test_syscalls:write"); + + exit(0); +} Added: head/tools/regression/security/cap_test/cap_test_sysctl.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/security/cap_test/cap_test_sysctl.c Wed May 4 12:44:46 2011 (r221431) @@ -0,0 +1,67 @@ +/*- + * Copyright (c) 2008-2011 Robert N. M. Watson + * 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$ + */ + +/* + * Test that various sysctls are (and aren't) available on capability mode. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "cap_test.h" + +/* + * Certain sysctls are permitted in capability mode, but most are not. Test + * for the ones that should be, and try one or two that shouldn't. + */ +void +test_sysctl(void) +{ + int error, i, oid[2]; + size_t len; + + oid[0] = CTL_KERN; + oid[1] = KERN_OSRELDATE; + len = sizeof(i); + error = sysctl(oid, 2, &i, &len, NULL, 0); + if (error) + warnx("capmode and kern.osreldate failed error %d", errno); + + exit(0); +} From owner-svn-src-head@FreeBSD.ORG Wed May 4 12:48:03 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1FBEC106564A; Wed, 4 May 2011 12:48:03 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0E6C88FC14; Wed, 4 May 2011 12:48:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44Cm2lE050049; Wed, 4 May 2011 12:48:02 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44Cm2Ni050047; Wed, 4 May 2011 12:48:02 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105041248.p44Cm2Ni050047@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 12:48:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221432 - head/etc/periodic/daily X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 12:48:03 -0000 Author: netchild Date: Wed May 4 12:48:02 2011 New Revision: 221432 URL: http://svn.freebsd.org/changeset/base/221432 Log: The security run requests unmaskable output, even if the only output is to tell that there is a separate email or that the output is logged to a file. This commit changes the return code for the non-inline case to tell that this message is not important enough and can be masked if necessary. The messages from the security checks themself are not affected by this and show up as before in the periodic security email/file. The inline case still requests to not mask the output, as with the current way of handling this there is no easy way to handle this. PR: 138692 Analysis/patch atch by: Chris Cowart X-MFC after: on request Modified: head/etc/periodic/daily/450.status-security Modified: head/etc/periodic/daily/450.status-security ============================================================================== --- head/etc/periodic/daily/450.status-security Wed May 4 12:44:46 2011 (r221431) +++ head/etc/periodic/daily/450.status-security Wed May 4 12:48:02 2011 (r221432) @@ -23,16 +23,17 @@ case "$daily_status_security_enable" in export security_output="${daily_status_security_output}" case "${daily_status_security_output}" in "") - ;; + rc=3;; /*) - echo " (output logged separately)";; + echo " (output logged separately)" + rc=0;; *) - echo " (output mailed separately)";; + echo " (output mailed separately)" + rc=0;; esac;; esac - periodic security - rc=3;; + periodic security || rc=3;; *) rc=0;; esac From owner-svn-src-head@FreeBSD.ORG Wed May 4 12:59:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B0141065675; Wed, 4 May 2011 12:59:12 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3146E8FC12; Wed, 4 May 2011 12:59:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44CxCja050390; Wed, 4 May 2011 12:59:12 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44CxCfn050388; Wed, 4 May 2011 12:59:12 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041259.p44CxCfn050388@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 12:59:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221433 - head/sys/geom/label X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 12:59:12 -0000 Author: ae Date: Wed May 4 12:59:11 2011 New Revision: 221433 URL: http://svn.freebsd.org/changeset/base/221433 Log: When checking existence of providers skip those which are orphaned. PR: kern/132273 MFC after: 2 week Modified: head/sys/geom/label/g_label.c Modified: head/sys/geom/label/g_label.c ============================================================================== --- head/sys/geom/label/g_label.c Wed May 4 12:48:02 2011 (r221432) +++ head/sys/geom/label/g_label.c Wed May 4 12:59:11 2011 (r221433) @@ -164,6 +164,8 @@ g_label_create(struct gctl_req *req, str pp2 = LIST_FIRST(&gp->provider); if (pp2 == NULL) continue; + if ((pp2->flags & G_PF_ORPHAN) != 0) + continue; if (strcmp(pp2->name, name) == 0) { G_LABEL_DEBUG(1, "Label %s(%s) already exists (%s).", label, name, pp->name); From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:09:20 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA0EF106564A; Wed, 4 May 2011 13:09:20 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BDD498FC15; Wed, 4 May 2011 13:09:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44D9Kho050751; Wed, 4 May 2011 13:09:20 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44D9KwC050750; Wed, 4 May 2011 13:09:20 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201105041309.p44D9KwC050750@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 4 May 2011 13:09:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221434 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:09:21 -0000 Author: netchild Date: Wed May 4 13:09:20 2011 New Revision: 221434 URL: http://svn.freebsd.org/changeset/base/221434 Log: Commit the missing linux_videdev2_compat.h (lost somewhere between commit tree patch generation -> successful compile tree build test -> commmit). Pointy hat to: netchild Added: head/sys/compat/linux/linux_videodev2_compat.h (contents, props changed) Added: head/sys/compat/linux/linux_videodev2_compat.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/compat/linux/linux_videodev2_compat.h Wed May 4 13:09:20 2011 (r221434) @@ -0,0 +1,137 @@ +/* + * $FreeBSD$ + */ + +/* + * This file defines compatibility versions of several video structures + * defined in the Linux videodev2.h header (linux_videodev2.h). The + * structures defined in this file are the ones that have been determined + * to have 32- to 64-bit size dependencies. + */ + +#ifndef _LINUX_VIDEODEV2_COMPAT_H_ +#define _LINUX_VIDEODEV2_COMPAT_H_ + +struct l_v4l2_buffer { + uint32_t index; + enum v4l2_buf_type type; + uint32_t bytesused; + uint32_t flags; + enum v4l2_field field; + l_timeval timestamp; + struct v4l2_timecode timecode; + uint32_t sequence; + + /* memory location */ + enum v4l2_memory memory; + union { + uint32_t offset; + l_ulong userptr; + } m; + uint32_t length; + uint32_t input; + uint32_t reserved; +}; + +struct l_v4l2_framebuffer { + uint32_t capability; + uint32_t flags; +/* FIXME: in theory we should pass something like PCI device + memory + * region + offset instead of some physical address */ + l_uintptr_t base; + struct v4l2_pix_format fmt; +}; + +struct l_v4l2_clip { + struct v4l2_rect c; + l_uintptr_t next; +}; + +struct l_v4l2_window { + struct v4l2_rect w; + enum v4l2_field field; + uint32_t chromakey; + l_uintptr_t clips; + uint32_t clipcount; + l_uintptr_t bitmap; + uint8_t global_alpha; +}; + +struct l_v4l2_standard { + uint32_t index; + v4l2_std_id id; + uint8_t name[24]; + struct v4l2_fract frameperiod; /* Frames, not fields */ + uint32_t framelines; + uint32_t reserved[4]; +} +#ifdef COMPAT_LINUX32 /* 32bit linuxolator */ +__attribute__ ((packed)) +#endif +; + +struct l_v4l2_ext_control { + uint32_t id; + uint32_t size; + uint32_t reserved2[1]; + union { + int32_t value; + int64_t value64; + l_uintptr_t string; + } u; +} __attribute__ ((packed)); + +struct l_v4l2_ext_controls { + uint32_t ctrl_class; + uint32_t count; + uint32_t error_idx; + uint32_t reserved[2]; + l_uintptr_t controls; +}; + +struct l_v4l2_format { + enum v4l2_buf_type type; + union { + struct v4l2_pix_format pix; /* V4L2_BUF_TYPE_VIDEO_CAPTURE */ + struct l_v4l2_window win; /* V4L2_BUF_TYPE_VIDEO_OVERLAY */ + struct v4l2_vbi_format vbi; /* V4L2_BUF_TYPE_VBI_CAPTURE */ + struct v4l2_sliced_vbi_format sliced; /* V4L2_BUF_TYPE_SLICED_VBI_CAPTURE */ + uint8_t raw_data[200]; /* user-defined */ + } fmt; +} +#ifdef COMPAT_LINUX32 /* 32bit linuxolator */ +__attribute__ ((packed)) +#endif +; + +#ifdef VIDIOC_DQEVENT +struct l_v4l2_event { + uint32_t type; + union { + struct v4l2_event_vsync vsync; + uint8_t data[64]; + } u; + uint32_t pending; + uint32_t sequence; + struct l_timespec timestamp; + uint32_t reserved[9]; +}; +#endif + +struct l_v4l2_input { + uint32_t index; /* Which input */ + uint8_t name[32]; /* Label */ + uint32_t type; /* Type of input */ + uint32_t audioset; /* Associated audios (bitfield) */ + uint32_t tuner; /* Associated tuner */ + v4l2_std_id std; + uint32_t status; + uint32_t capabilities; + uint32_t reserved[3]; +} +#ifdef COMPAT_LINUX32 /* 32bit linuxolator */ +__attribute__ ((packed)) +#endif +; + +#endif /* _LINUX_VIDEODEV2_COMPAT_H_ */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:20:44 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF457106566B; Wed, 4 May 2011 13:20:44 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BE7938FC17; Wed, 4 May 2011 13:20:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44DKiuU051173; Wed, 4 May 2011 13:20:44 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44DKitH051171; Wed, 4 May 2011 13:20:44 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105041320.p44DKitH051171@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 13:20:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221435 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:20:44 -0000 Author: rmacklem Date: Wed May 4 13:20:44 2011 New Revision: 221435 URL: http://svn.freebsd.org/changeset/base/221435 Log: Revert r221308, since it incorrectly zero'd both client and server stats when "-c" or "-s" was specified. Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Wed May 4 13:09:20 2011 (r221434) +++ head/usr.bin/nfsstat/nfsstat.c Wed May 4 13:20:44 2011 (r221435) @@ -85,7 +85,6 @@ static int zflag = 0; static int run_v4 = 0; static int printtitle = 1; static struct ext_nfsstats ext_nfsstats; -static int nfssvc_flag; void intpr(int, int); void printhdr(int, int); @@ -108,7 +107,6 @@ main(int argc, char **argv) char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; - nfssvc_flag = NFSSVC_GETSTATS; interval = 0; memf = nlistf = NULL; while ((ch = getopt(argc, argv, "cesWM:N:w:z")) != -1) @@ -137,7 +135,6 @@ main(int argc, char **argv) break; case 'z': zflag = 1; - nfssvc_flag |= NFSSVC_ZEROSTATS; break; case 'e': run_v4 = 1; @@ -164,7 +161,7 @@ main(int argc, char **argv) errx(1, "experimental client/server not loaded"); if (run_v4 != 0) { - if (nfssvc(nfssvc_flag, &ext_nfsstats) < 0) + if (nfssvc(NFSSVC_GETSTATS, &ext_nfsstats) < 0) err(1, "Can't get stats"); } else if (nlistf != NULL || memf != NULL) { deadkernel = 1; @@ -796,13 +793,13 @@ exp_sidewaysintpr(u_int interval, int cl int hdrcnt = 1; ext_nfsstatsp = &lastst; - if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0) + if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0) err(1, "Can't get stats"); sleep(interval); for (;;) { ext_nfsstatsp = &nfsstats; - if (nfssvc(nfssvc_flag, ext_nfsstatsp) < 0) + if (nfssvc(NFSSVC_GETSTATS, ext_nfsstatsp) < 0) err(1, "Can't get stats"); if (--hdrcnt == 0) { From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:27:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56ACF106566B; Wed, 4 May 2011 13:27:30 +0000 (UTC) (envelope-from netchild@freebsd.org) Received: from mail.ebusiness-leidinger.de (mail.ebusiness-leidinger.de [217.11.53.44]) by mx1.freebsd.org (Postfix) with ESMTP id 093C38FC21; Wed, 4 May 2011 13:27:29 +0000 (UTC) Received: from outgoing.leidinger.net (p5B155BB6.dip.t-dialin.net [91.21.91.182]) by mail.ebusiness-leidinger.de (Postfix) with ESMTPSA id 3C38B844010; Wed, 4 May 2011 15:11:04 +0200 (CEST) Received: from webmail.leidinger.net (webmail.Leidinger.net [IPv6:fd73:10c7:2053:1::2:102]) by outgoing.leidinger.net (Postfix) with ESMTP id 7C17D11DC; Wed, 4 May 2011 15:11:01 +0200 (CEST) Received: (from www@localhost) by webmail.leidinger.net (8.14.4/8.13.8/Submit) id p44DB1t3052190; Wed, 4 May 2011 15:11:01 +0200 (CEST) (envelope-from netchild@FreeBSD.org) Received: from pslux.ec.europa.eu (pslux.ec.europa.eu [158.169.9.14]) by webmail.leidinger.net (Horde Framework) with HTTP; Wed, 04 May 2011 15:11:01 +0200 Message-ID: <20110504151101.114973fmqbdad084@webmail.leidinger.net> Date: Wed, 04 May 2011 15:11:01 +0200 From: Alexander Leidinger To: Ivan Klymenko References: <201105040905.p4495dqA039067@svn.freebsd.org> <20110504143220.2c997f6b@ukr.net> In-Reply-To: <20110504143220.2c997f6b@ukr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 7bit User-Agent: Dynamic Internet Messaging Program (DIMP) H3 (1.1.6) X-EBL-MailScanner-Information: Please contact the ISP for more information X-EBL-MailScanner-ID: 3C38B844010.AA052 X-EBL-MailScanner: Found to be clean X-EBL-MailScanner-SpamCheck: not spam, spamhaus-ZEN, SpamAssassin (not cached, score=0.077, required 6, autolearn=disabled, TW_SV 0.08) X-EBL-MailScanner-From: netchild@freebsd.org X-EBL-MailScanner-Watermark: 1305119466.61172@/fZx/oPJg1miGJ90ExLsng X-EBL-Spam-Status: No Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r221426 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:27:30 -0000 Quoting Ivan Klymenko (from Wed, 4 May 2011 14:32:20 +0300): > ... > /usr/src/sys/modules/linux/../../compat/linux/linux_ioctl.c:91:49: > error: compat/linux/linux_videodev2_compat.h: No such file or > directory > ... Fixed. Thanks, Alexander. -- http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7 http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137 In every hierarchy the cream rises until it sours. -- Dr. Laurence J. Peter From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:27:45 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCCF91065678; Wed, 4 May 2011 13:27:45 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CB2B78FC20; Wed, 4 May 2011 13:27:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44DRjaf051440; Wed, 4 May 2011 13:27:45 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44DRjfh051432; Wed, 4 May 2011 13:27:45 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105041327.p44DRjfh051432@svn.freebsd.org> From: Ruslan Ermilov Date: Wed, 4 May 2011 13:27:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221436 - in head: sbin/mount_nfs sys/fs/nfsclient sys/nfs sys/nfsclient X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:27:46 -0000 Author: ru Date: Wed May 4 13:27:45 2011 New Revision: 221436 URL: http://svn.freebsd.org/changeset/base/221436 Log: Implemented a mount option "nocto" that disables cache coherency checking at open time. It may improve performance for read-only NFS mounts. Use deliberately. MFC after: 1 week Reviewed by: rmacklem, jhb (earlier version) Modified: head/sbin/mount_nfs/mount_nfs.8 head/sys/fs/nfsclient/nfs_clvfsops.c head/sys/fs/nfsclient/nfs_clvnops.c head/sys/nfs/nfs_diskless.c head/sys/nfsclient/nfs_vfsops.c head/sys/nfsclient/nfs_vnops.c head/sys/nfsclient/nfsargs.h Modified: head/sbin/mount_nfs/mount_nfs.8 ============================================================================== --- head/sbin/mount_nfs/mount_nfs.8 Wed May 4 13:20:44 2011 (r221435) +++ head/sbin/mount_nfs/mount_nfs.8 Wed May 4 13:27:45 2011 (r221436) @@ -28,7 +28,7 @@ .\" @(#)mount_nfs.8 8.3 (Berkeley) 3/29/95 .\" $FreeBSD$ .\" -.Dd April 27, 2011 +.Dd May 3, 2011 .Dt MOUNT_NFS 8 .Os .Sh NAME @@ -180,6 +180,17 @@ NFS port number 2049 or replies to reque Setting the .Va vfs.nfs.nfs_ip_paranoia sysctl to 0 will make this option the default. +.It Cm nocto +Normally, NFS clients maintain the close-to-open cache coherency. +This works by flushing at close time and checking at open time. +Checking at open time is implemented by getting attributes from +the server and purging the data cache if they do not match +attributes cached by the client. +.Pp +This option disables checking at open time. +It may improve performance for read-only mounts, +but should only be used if the data on the server changes rarely. +Be sure to understand the consequences before enabling this option. .It Cm noinet4 , noinet6 Disables .Dv AF_INET Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Wed May 4 13:20:44 2011 (r221435) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Wed May 4 13:27:45 2011 (r221436) @@ -716,7 +716,7 @@ static const char *nfs_opts[] = { "from" "retrans", "acregmin", "acregmax", "acdirmin", "acdirmax", "resvport", "readahead", "hostname", "timeout", "addr", "fh", "nfsv3", "sec", "principal", "nfsv4", "gssname", "allgssname", "dirpath", - "negnametimeo", + "negnametimeo", "nocto", NULL }; /* @@ -833,6 +833,8 @@ nfs_mount(struct mount *mp) } if (vfs_getopt(mp->mnt_optnew, "allgssname", NULL, NULL) == 0) args.flags |= NFSMNT_ALLGSSNAME; + if (vfs_getopt(mp->mnt_optnew, "nocto", NULL, NULL) == 0) + args.flags |= NFSMNT_NOCTO; if (vfs_getopt(mp->mnt_optnew, "readdirsize", (void **)&opt, NULL) == 0) { if (opt == NULL) { vfs_mount_error(mp, "illegal readdirsize"); Modified: head/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvnops.c Wed May 4 13:20:44 2011 (r221435) +++ head/sys/fs/nfsclient/nfs_clvnops.c Wed May 4 13:27:45 2011 (r221436) @@ -1026,7 +1026,8 @@ nfs_lookup(struct vop_lookup_args *ap) */ newvp = *vpp; newnp = VTONFS(newvp); - if ((flags & (ISLASTCN | ISOPEN)) == (ISLASTCN | ISOPEN) && + if (!(nmp->nm_flag & NFSMNT_NOCTO) && + (flags & (ISLASTCN | ISOPEN)) == (ISLASTCN | ISOPEN) && !(newnp->n_flag & NMODIFIED)) { mtx_lock(&newnp->n_mtx); newnp->n_attrstamp = 0; Modified: head/sys/nfs/nfs_diskless.c ============================================================================== --- head/sys/nfs/nfs_diskless.c Wed May 4 13:20:44 2011 (r221435) +++ head/sys/nfs/nfs_diskless.c Wed May 4 13:27:45 2011 (r221436) @@ -112,6 +112,8 @@ nfs_parse_options(const char *envopts, s nd->flags |= NFSMNT_NOCONN; else if (strcmp(o, "nolockd") == 0) nd->flags |= NFSMNT_NOLOCKD; + else if (strcmp(o, "nocto") == 0) + nd->flags |= NFSMNT_NOCTO; else if (strcmp(o, "nfsv2") == 0) nd->flags &= ~(NFSMNT_NFSV3 | NFSMNT_NFSV4); else if (strcmp(o, "nfsv3") == 0) { Modified: head/sys/nfsclient/nfs_vfsops.c ============================================================================== --- head/sys/nfsclient/nfs_vfsops.c Wed May 4 13:20:44 2011 (r221435) +++ head/sys/nfsclient/nfs_vfsops.c Wed May 4 13:27:45 2011 (r221436) @@ -786,7 +786,7 @@ static const char *nfs_opts[] = { "from" "readahead", "readdirsize", "soft", "hard", "mntudp", "tcp", "udp", "wsize", "rsize", "retrans", "acregmin", "acregmax", "acdirmin", "acdirmax", "deadthresh", "hostname", "timeout", "addr", "fh", "nfsv3", - "sec", "maxgroups", "principal", "negnametimeo", + "sec", "maxgroups", "principal", "negnametimeo", "nocto", NULL }; /* @@ -901,6 +901,8 @@ nfs_mount(struct mount *mp) args.sotype = SOCK_STREAM; if (vfs_getopt(mp->mnt_optnew, "nfsv3", NULL, NULL) == 0) args.flags |= NFSMNT_NFSV3; + if (vfs_getopt(mp->mnt_optnew, "nocto", NULL, NULL) == 0) + args.flags |= NFSMNT_NOCTO; if (vfs_getopt(mp->mnt_optnew, "readdirsize", (void **)&opt, NULL) == 0) { if (opt == NULL) { vfs_mount_error(mp, "illegal readdirsize"); Modified: head/sys/nfsclient/nfs_vnops.c ============================================================================== --- head/sys/nfsclient/nfs_vnops.c Wed May 4 13:20:44 2011 (r221435) +++ head/sys/nfsclient/nfs_vnops.c Wed May 4 13:27:45 2011 (r221436) @@ -960,7 +960,8 @@ nfs_lookup(struct vop_lookup_args *ap) */ newvp = *vpp; newnp = VTONFS(newvp); - if ((flags & (ISLASTCN | ISOPEN)) == (ISLASTCN | ISOPEN) && + if (!(nmp->nm_flag & NFSMNT_NOCTO) && + (flags & (ISLASTCN | ISOPEN)) == (ISLASTCN | ISOPEN) && !(newnp->n_flag & NMODIFIED)) { mtx_lock(&newnp->n_mtx); newnp->n_attrstamp = 0; Modified: head/sys/nfsclient/nfsargs.h ============================================================================== --- head/sys/nfsclient/nfsargs.h Wed May 4 13:20:44 2011 (r221435) +++ head/sys/nfsclient/nfsargs.h Wed May 4 13:27:45 2011 (r221436) @@ -97,5 +97,6 @@ struct nfs_args { #define NFSMNT_PRIVACY 0x04000000 /* Use privacy with RPCSEC_GSS */ #define NFSMNT_ALLGSSNAME 0x08000000 /* Use principal for all accesses */ #define NFSMNT_STRICT3530 0x10000000 /* Adhere strictly to RFC3530 */ +#define NFSMNT_NOCTO 0x20000000 /* Don't flush attrcache on open */ #endif From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:30:39 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0742A1065673; Wed, 4 May 2011 13:30:39 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EABE68FC1B; Wed, 4 May 2011 13:30:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44DUcVJ051604; Wed, 4 May 2011 13:30:38 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44DUcwl051601; Wed, 4 May 2011 13:30:38 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105041330.p44DUcwl051601@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 13:30:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221438 - in head/sys: fs/nfs nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:30:39 -0000 Author: rmacklem Date: Wed May 4 13:30:38 2011 New Revision: 221438 URL: http://svn.freebsd.org/changeset/base/221438 Log: Revert r221306, since NFSSVC_ZEROSTATS zero'd both client and server stats, when separate modifiers for NFSSVC_GETSTATS for each of client and server stats is what it required by nfsstat(1). Modified: head/sys/fs/nfs/nfs_commonport.c head/sys/nfs/nfssvc.h Modified: head/sys/fs/nfs/nfs_commonport.c ============================================================================== --- head/sys/fs/nfs/nfs_commonport.c Wed May 4 13:28:53 2011 (r221437) +++ head/sys/fs/nfs/nfs_commonport.c Wed May 4 13:30:38 2011 (r221438) @@ -404,8 +404,6 @@ nfssvc_call(struct thread *p, struct nfs } else if (uap->flag & NFSSVC_GETSTATS) { error = copyout(&newnfsstats, CAST_USER_ADDR_T(uap->argp), sizeof (newnfsstats)); - if ((uap->flag & NFSSVC_ZEROSTATS) != 0 && error == 0) - bzero(&newnfsstats, sizeof(newnfsstats)); return (error); } else if (uap->flag & NFSSVC_NFSUSERDPORT) { u_short sockport; Modified: head/sys/nfs/nfssvc.h ============================================================================== --- head/sys/nfs/nfssvc.h Wed May 4 13:28:53 2011 (r221437) +++ head/sys/nfs/nfssvc.h Wed May 4 13:30:38 2011 (r221438) @@ -64,6 +64,5 @@ #define NFSSVC_CBADDSOCK 0x00200000 #define NFSSVC_GETSTATS 0x00400000 #define NFSSVC_BACKUPSTABLE 0x00800000 -#define NFSSVC_ZEROSTATS 0x01000000 /* modifier for GETSTATS */ #endif /* _NFS_NFSSVC_H */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:36:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33B83106567A; Wed, 4 May 2011 13:36:19 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 22D708FC13; Wed, 4 May 2011 13:36:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44DaJhg051814; Wed, 4 May 2011 13:36:19 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44DaJER051811; Wed, 4 May 2011 13:36:19 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105041336.p44DaJER051811@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 13:36:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221439 - in head/sys: fs/nfs nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:36:19 -0000 Author: rmacklem Date: Wed May 4 13:36:18 2011 New Revision: 221439 URL: http://svn.freebsd.org/changeset/base/221439 Log: Add kernel support for NFSSVC_ZEROCLTSTATS and NFSSVC_ZEROSRVSTATS so that they can be used by nfsstat(1) to implement the "-z" option for the new NFS subsystem. MFC after: 2 weeks Modified: head/sys/fs/nfs/nfs_commonport.c head/sys/nfs/nfssvc.h Modified: head/sys/fs/nfs/nfs_commonport.c ============================================================================== --- head/sys/fs/nfs/nfs_commonport.c Wed May 4 13:30:38 2011 (r221438) +++ head/sys/fs/nfs/nfs_commonport.c Wed May 4 13:36:18 2011 (r221439) @@ -404,6 +404,64 @@ nfssvc_call(struct thread *p, struct nfs } else if (uap->flag & NFSSVC_GETSTATS) { error = copyout(&newnfsstats, CAST_USER_ADDR_T(uap->argp), sizeof (newnfsstats)); + if (error == 0) { + if ((uap->flag & NFSSVC_ZEROCLTSTATS) != 0) { + newnfsstats.attrcache_hits = 0; + newnfsstats.attrcache_misses = 0; + newnfsstats.lookupcache_hits = 0; + newnfsstats.lookupcache_misses = 0; + newnfsstats.direofcache_hits = 0; + newnfsstats.direofcache_misses = 0; + newnfsstats.accesscache_hits = 0; + newnfsstats.accesscache_misses = 0; + newnfsstats.biocache_reads = 0; + newnfsstats.read_bios = 0; + newnfsstats.read_physios = 0; + newnfsstats.biocache_writes = 0; + newnfsstats.write_bios = 0; + newnfsstats.write_physios = 0; + newnfsstats.biocache_readlinks = 0; + newnfsstats.readlink_bios = 0; + newnfsstats.biocache_readdirs = 0; + newnfsstats.readdir_bios = 0; + newnfsstats.rpcretries = 0; + newnfsstats.rpcrequests = 0; + newnfsstats.rpctimeouts = 0; + newnfsstats.rpcunexpected = 0; + newnfsstats.rpcinvalid = 0; + bzero(newnfsstats.rpccnt, + sizeof(newnfsstats.rpccnt)); + } + if ((uap->flag & NFSSVC_ZEROSRVSTATS) != 0) { + newnfsstats.srvrpc_errs = 0; + newnfsstats.srv_errs = 0; + newnfsstats.srvcache_inproghits = 0; + newnfsstats.srvcache_idemdonehits = 0; + newnfsstats.srvcache_nonidemdonehits = 0; + newnfsstats.srvcache_misses = 0; + newnfsstats.srvcache_tcppeak = 0; + newnfsstats.srvcache_size = 0; + newnfsstats.srvclients = 0; + newnfsstats.srvopenowners = 0; + newnfsstats.srvopens = 0; + newnfsstats.srvlockowners = 0; + newnfsstats.srvlocks = 0; + newnfsstats.srvdelegates = 0; + newnfsstats.clopenowners = 0; + newnfsstats.clopens = 0; + newnfsstats.cllockowners = 0; + newnfsstats.cllocks = 0; + newnfsstats.cldelegates = 0; + newnfsstats.cllocalopenowners = 0; + newnfsstats.cllocalopens = 0; + newnfsstats.cllocallockowners = 0; + newnfsstats.cllocallocks = 0; + bzero(newnfsstats.srvrpccnt, + sizeof(newnfsstats.srvrpccnt)); + bzero(newnfsstats.cbrpccnt, + sizeof(newnfsstats.cbrpccnt)); + } + } return (error); } else if (uap->flag & NFSSVC_NFSUSERDPORT) { u_short sockport; Modified: head/sys/nfs/nfssvc.h ============================================================================== --- head/sys/nfs/nfssvc.h Wed May 4 13:30:38 2011 (r221438) +++ head/sys/nfs/nfssvc.h Wed May 4 13:36:18 2011 (r221439) @@ -64,5 +64,7 @@ #define NFSSVC_CBADDSOCK 0x00200000 #define NFSSVC_GETSTATS 0x00400000 #define NFSSVC_BACKUPSTABLE 0x00800000 +#define NFSSVC_ZEROCLTSTATS 0x01000000 /* modifier for GETSTATS */ +#define NFSSVC_ZEROSRVSTATS 0x02000000 /* modifier for GETSTATS */ #endif /* _NFS_NFSSVC_H */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 13:50:37 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA32E106564A; Wed, 4 May 2011 13:50:37 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A9CDA8FC15; Wed, 4 May 2011 13:50:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44Dobmd053355; Wed, 4 May 2011 13:50:37 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44DobOq053353; Wed, 4 May 2011 13:50:37 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105041350.p44DobOq053353@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 13:50:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221440 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 13:50:37 -0000 Author: rmacklem Date: Wed May 4 13:50:37 2011 New Revision: 221440 URL: http://svn.freebsd.org/changeset/base/221440 Log: Fix nfsstat.c so that the "-z" option works for the new NFS subsystem. MFC after: 2 weeks Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Wed May 4 13:36:18 2011 (r221439) +++ head/usr.bin/nfsstat/nfsstat.c Wed May 4 13:50:37 2011 (r221440) @@ -160,10 +160,7 @@ main(int argc, char **argv) if (run_v4 != 0 && modfind("nfscommon") < 0) errx(1, "experimental client/server not loaded"); - if (run_v4 != 0) { - if (nfssvc(NFSSVC_GETSTATS, &ext_nfsstats) < 0) - err(1, "Can't get stats"); - } else if (nlistf != NULL || memf != NULL) { + if (run_v4 == 0 && (nlistf != NULL || memf != NULL)) { deadkernel = 1; if ((kd = kvm_openfiles(nlistf, memf, NULL, O_RDONLY, @@ -545,7 +542,17 @@ sperc2(int ttl, int misses) void exp_intpr(int clientOnly, int serverOnly) { + int nfssvc_flag; + nfssvc_flag = NFSSVC_GETSTATS; + if (zflag != 0) { + if (clientOnly != 0) + nfssvc_flag |= NFSSVC_ZEROCLTSTATS; + if (serverOnly != 0) + nfssvc_flag |= NFSSVC_ZEROSRVSTATS; + } + if (nfssvc(nfssvc_flag, &ext_nfsstats) < 0) + err(1, "Can't get stats"); if (clientOnly != 0) { if (printtitle) { printf("Client Info:\n"); From owner-svn-src-head@FreeBSD.ORG Wed May 4 14:37:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6865A1065670; Wed, 4 May 2011 14:37: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 3E0B38FC15; Wed, 4 May 2011 14:37:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44Eb23p054778; Wed, 4 May 2011 14:37:02 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44Eb2pP054777; Wed, 4 May 2011 14:37:02 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105041437.p44Eb2pP054777@svn.freebsd.org> From: Attilio Rao Date: Wed, 4 May 2011 14:37:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221441 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 14:37:02 -0000 Author: attilio Date: Wed May 4 14:37:01 2011 New Revision: 221441 URL: http://svn.freebsd.org/changeset/base/221441 Log: Remove the previously added comment. Probabilly me is the only one who didn't know userland and kerneland sizes were mismatching. Added: head/sys/sys/_cpuset.h (contents, props changed) Added: head/sys/sys/_cpuset.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/sys/_cpuset.h Wed May 4 14:37:01 2011 (r221441) @@ -0,0 +1,54 @@ +/*- + * Copyright (c) 2008, Jeffrey Roberson + * All rights reserved. + * + * Copyright (c) 2008 Nokia Corporation + * 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 unmodified, 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 ``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 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$ + */ + +#ifndef _SYS__CPUSET_H_ +#define _SYS__CPUSET_H_ + +#include + +#ifdef _KERNEL +#define CPU_SETSIZE MAXCPU +#endif + +#define CPU_MAXSIZE (4 * MAXCPU) + +#ifndef CPU_SETSIZE +#define CPU_SETSIZE CPU_MAXSIZE +#endif + +#define _NCPUBITS (sizeof(long) * NBBY) /* bits per mask */ +#define _NCPUWORDS howmany(CPU_SETSIZE, _NCPUBITS) + +typedef struct _cpuset { + long __bits[howmany(CPU_SETSIZE, _NCPUBITS)]; +} cpuset_t; + +#endif /* !_SYS__CPUSET_H_ */ From owner-svn-src-head@FreeBSD.ORG Wed May 4 14:46:21 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A7CC106564A; Wed, 4 May 2011 14:46:21 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 08FF18FC0A; Wed, 4 May 2011 14:46:20 +0000 (UTC) Received: by vxc34 with SMTP id 34so1686069vxc.13 for ; Wed, 04 May 2011 07:46:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; bh=C3S3TrDl6wOb1ru2avZOdfNks4/pX8ZQFcOWzlUhiNU=; b=M0CComaMRkE6/UXjzWfXLVKHd5h2/6Xoc9pziyZYOfUeu5z5Wj+Qk/UrCgo4wW/7Cr Yfm80wZyMnR7IGVTRMFNGw87/FW/GWlAwL5OdjthmeZDW9m2efMmxKd9vgCVNTHerAEU 7A8lTTpZTHYl1m1GX2pkD3XrzxBb9tDTK9RRM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; b=SLUJ04r1S1bXtSA2Ci8qI0oxDZ1PtbnzM0WSjI3Jkfl4nOdAJzcQ5oq1P7MXIYmWds nELjA+gJJJU83PxEZyUK/bplNie94dmZOafm+p25v8i1tjo7oyLzTGAlB9AH09ew4HYe PNSpS2tv/wd0TxKRKraK9JcE+y16MrSyI/s5I= MIME-Version: 1.0 Received: by 10.52.93.115 with SMTP id ct19mr1431107vdb.238.1304520379835; Wed, 04 May 2011 07:46:19 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.220.201.3 with HTTP; Wed, 4 May 2011 07:46:19 -0700 (PDT) In-Reply-To: <201105041437.p44Eb2pP054777@svn.freebsd.org> References: <201105041437.p44Eb2pP054777@svn.freebsd.org> Date: Wed, 4 May 2011 10:46:19 -0400 X-Google-Sender-Auth: 3ob4ZccNwQDbgn2oyZjiU1GNZxE Message-ID: From: Attilio Rao To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Subject: Re: svn commit: r221441 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 14:46:21 -0000 Argh, sorry, I committed this file by accident, reverting it. Attilio 2011/5/4 Attilio Rao : > Author: attilio > Date: Wed May =C2=A04 14:37:01 2011 > New Revision: 221441 > URL: http://svn.freebsd.org/changeset/base/221441 > > Log: > =C2=A0Remove the previously added comment. > =C2=A0Probabilly me is the only one who didn't know userland and kernelan= d sizes > =C2=A0were mismatching. > > Added: > =C2=A0head/sys/sys/_cpuset.h =C2=A0 (contents, props changed) > > Added: head/sys/sys/_cpuset.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- /dev/null =C2=A0 00:00:00 1970 =C2=A0 (empty, because file is newly a= dded) > +++ head/sys/sys/_cpuset.h =C2=A0 =C2=A0 =C2=A0Wed May =C2=A04 14:37:01 2= 011 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r221441) > @@ -0,0 +1,54 @@ > +/*- > + * Copyright (c) 2008, Jeffrey Roberson > + * All rights reserved. > + * > + * Copyright (c) 2008 Nokia Corporation > + * 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 > + * =C2=A0 =C2=A0notice unmodified, this list of conditions, and the foll= owing > + * =C2=A0 =C2=A0disclaimer. > + * 2. Redistributions in binary form must reproduce the above copyright > + * =C2=A0 =C2=A0notice, this list of conditions and the following discla= imer in the > + * =C2=A0 =C2=A0documentation and/or other materials provided with the d= istribution. > + * > + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR > + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRAN= TIES > + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIME= D. > + * IN NO EVENT SHALL THE AUTHOR 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$ > + */ > + > +#ifndef _SYS__CPUSET_H_ > +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0_SYS__CPUSET_H_ > + > +#include > + > +#ifdef _KERNEL > +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_SETSIZE =C2=A0 =C2=A0 MAXCPU > +#endif > + > +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_MAXSIZE =C2=A0 =C2=A0 (4 * MAXCPU= ) > + > +#ifndef =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_SETSIZE > +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0CPU_SETSIZE =C2=A0 =C2=A0 CPU_MAXSIZE > +#endif > + > +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0_NCPUBITS =C2=A0 =C2=A0 =C2=A0 (sizeo= f(long) * NBBY) =C2=A0 /* bits per mask */ > +#define =C2=A0 =C2=A0 =C2=A0 =C2=A0_NCPUWORDS =C2=A0 =C2=A0 =C2=A0howman= y(CPU_SETSIZE, _NCPUBITS) > + > +typedef =C2=A0 =C2=A0 =C2=A0 =C2=A0struct _cpuset { > + =C2=A0 =C2=A0 =C2=A0 long =C2=A0 =C2=A0__bits[howmany(CPU_SETSIZE, _NCP= UBITS)]; > +} cpuset_t; > + > +#endif /* !_SYS__CPUSET_H_ */ > --=20 Peace can only be achieved by understanding - A. Einstein From owner-svn-src-head@FreeBSD.ORG Wed May 4 14:52:17 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D53B1106564A; Wed, 4 May 2011 14:52: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 AB3A18FC18; Wed, 4 May 2011 14:52:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44EqHvi055238; Wed, 4 May 2011 14:52:17 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44EqH5w055237; Wed, 4 May 2011 14:52:17 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201105041452.p44EqH5w055237@svn.freebsd.org> From: Attilio Rao Date: Wed, 4 May 2011 14:52:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221442 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 14:52:17 -0000 Author: attilio Date: Wed May 4 14:52:17 2011 New Revision: 221442 URL: http://svn.freebsd.org/changeset/base/221442 Log: Revert by accident r221441. Deleted: head/sys/sys/_cpuset.h From owner-svn-src-head@FreeBSD.ORG Wed May 4 15:31:03 2011 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D226106568D; Wed, 4 May 2011 15:31:03 +0000 (UTC) (envelope-from fidaj@ukr.net) Received: from fsm2.ukr.net (fsm2.ukr.net [195.214.192.121]) by mx1.freebsd.org (Postfix) with ESMTP id 1BF608FC0C; Wed, 4 May 2011 15:31:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ukr.net; s=fsm; h=Content-Transfer-Encoding:Content-Type:Mime-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date; bh=F63gniOXW4Z/9JI3H6P126klDKzkudUa6/vv4SuD4Oo=; b=GOX4bRUA7ChFtbYKpEZaCl+jYvB0p5LiZ8Qn9sxbasgRPhSzpuCRjLW0OhKM1dM9Zdo38NGgZmOX+fOq/veUxbvii3+OdFV1BmItUREYt66IG0AeC6PLgKvhs6+SsIi/CRrTBvHIsfU2vyWXqVRCBwhQUyOchGwLimiwEJeGFNY=; Received: from [46.185.0.237] (helo=localhost) by fsm2.ukr.net with esmtps ID 1QHe2X-000K7p-1x ; Wed, 04 May 2011 18:31:01 +0300 Date: Wed, 4 May 2011 18:31:00 +0300 From: Ivan Klymenko To: Alexander Leidinger Message-ID: <20110504183100.18f444f9@ukr.net> In-Reply-To: <20110504151101.114973fmqbdad084@webmail.leidinger.net> References: <201105040905.p4495dqA039067@svn.freebsd.org> <20110504143220.2c997f6b@ukr.net> <20110504151101.114973fmqbdad084@webmail.leidinger.net> X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.1; amd64-portbld-freebsd9.0) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r221426 - head/sys/compat/linux X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 15:31:03 -0000 =D0=92 Wed, 04 May 2011 15:11:01 +0200 Alexander Leidinger =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > Quoting Ivan Klymenko (from Wed, 4 May 2011 14:32:20 > +0300): >=20 > > ... > > /usr/src/sys/modules/linux/../../compat/linux/linux_ioctl.c:91:49: =20 > > error: compat/linux/linux_videodev2_compat.h: No such file or =20 > > directory > > ... >=20 > Fixed. >=20 > Thanks, > Alexander. >=20 Thanks! From owner-svn-src-head@FreeBSD.ORG Wed May 4 17:04:31 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A46F3106566C; Wed, 4 May 2011 17:04:31 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 949AF8FC15; Wed, 4 May 2011 17:04:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44H4VPS059435; Wed, 4 May 2011 17:04:31 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44H4VPn059432; Wed, 4 May 2011 17:04:31 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105041704.p44H4VPn059432@svn.freebsd.org> From: Pyun YongHyeon Date: Wed, 4 May 2011 17:04:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221445 - head/sys/dev/bge X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 17:04:31 -0000 Author: yongari Date: Wed May 4 17:04:31 2011 New Revision: 221445 URL: http://svn.freebsd.org/changeset/base/221445 Log: Add initial BCM57765 family support. The BCM57765 family seems to have similar hardware features of BCM5718 family except the number of receive return ring is 4. The BCM57765 family is known to support IEEE 802.3az EEE(Energy Efficient Ethernet) but this change does not include EEE support code. I hope EEE is implemented in near future. This change will support BCM57761, BCM57765, BCM57781, BCM57785, BCM57791 and BCM57795. All hardware offloading features are supported and suspend/resume also should work. Many thanks to Broadcom for continuing support of FreeBSD. Tested by: Paul Thornton (prt <> prt dot org) HW donated by: Broadcom Modified: head/sys/dev/bge/if_bge.c head/sys/dev/bge/if_bgereg.h Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Wed May 4 15:45:23 2011 (r221444) +++ head/sys/dev/bge/if_bge.c Wed May 4 17:04:31 2011 (r221445) @@ -214,9 +214,15 @@ static const struct bge_type { { BCOM_VENDORID, BCOM_DEVICEID_BCM5906 }, { BCOM_VENDORID, BCOM_DEVICEID_BCM5906M }, { BCOM_VENDORID, BCOM_DEVICEID_BCM57760 }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM57761 }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM57765 }, { BCOM_VENDORID, BCOM_DEVICEID_BCM57780 }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM57781 }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM57785 }, { BCOM_VENDORID, BCOM_DEVICEID_BCM57788 }, { BCOM_VENDORID, BCOM_DEVICEID_BCM57790 }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM57791 }, + { BCOM_VENDORID, BCOM_DEVICEID_BCM57795 }, { SK_VENDORID, SK_DEVICEID_ALTIMA }, @@ -307,6 +313,8 @@ static const struct bge_revision { { BGE_CHIPID_BCM5787_A2, "BCM5754/5787 A2" }, { BGE_CHIPID_BCM5906_A1, "BCM5906 A1" }, { BGE_CHIPID_BCM5906_A2, "BCM5906 A2" }, + { BGE_CHIPID_BCM57765_A0, "BCM57765 A0" }, + { BGE_CHIPID_BCM57765_B0, "BCM57765 B0" }, { BGE_CHIPID_BCM57780_A0, "BCM57780 A0" }, { BGE_CHIPID_BCM57780_A1, "BCM57780 A1" }, @@ -335,6 +343,7 @@ static const struct bge_revision const b /* 5754 and 5787 share the same ASIC ID */ { BGE_ASICREV_BCM5787, "unknown BCM5754/5787" }, { BGE_ASICREV_BCM5906, "unknown BCM5906" }, + { BGE_ASICREV_BCM57765, "unknown BCM57765" }, { BGE_ASICREV_BCM57780, "unknown BCM57780" }, { BGE_ASICREV_BCM5717, "unknown BCM5717" }, @@ -1467,8 +1476,11 @@ bge_chipinit(struct bge_softc *sc) if (sc->bge_asicrev == BGE_ASICREV_BCM5703 || sc->bge_asicrev == BGE_ASICREV_BCM5704) dma_rw_ctl &= ~BGE_PCIDMARWCTL_MINDMA; - if (BGE_IS_5717_PLUS(sc)) + if (BGE_IS_5717_PLUS(sc)) { dma_rw_ctl &= ~BGE_PCIDMARWCTL_DIS_CACHE_ALIGNMENT; + if (sc->bge_chipid == BGE_CHIPID_BCM57765_A0) + dma_rw_ctl &= ~BGE_PCIDMARWCTL_CRDRDR_RDMA_MRRS_MSK; + } pci_write_config(sc->bge_dev, BGE_PCI_DMA_RW_CTL, dma_rw_ctl, 4); /* @@ -1552,7 +1564,8 @@ bge_blockinit(struct bge_softc *sc) } /* Configure mbuf pool watermarks */ - if (sc->bge_asicrev == BGE_ASICREV_BCM5717) { + if (sc->bge_asicrev == BGE_ASICREV_BCM5717 || + sc->bge_asicrev == BGE_ASICREV_BCM57765) { CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_READDMA_LOWAT, 0x0); if (sc->bge_ifp->if_mtu > ETHERMTU) { CSR_WRITE_4(sc, BGE_BMAN_MBUFPOOL_MACRX_LOWAT, 0x7e); @@ -1819,7 +1832,8 @@ bge_blockinit(struct bge_softc *sc) limit = 16; } else if (!BGE_IS_5705_PLUS(sc)) limit = BGE_RX_RINGS_MAX; - else if (sc->bge_asicrev == BGE_ASICREV_BCM5755) + else if (sc->bge_asicrev == BGE_ASICREV_BCM5755 || + sc->bge_asicrev == BGE_ASICREV_BCM57765) limit = 4; else limit = 1; @@ -2180,6 +2194,15 @@ bge_probe(device_t dev) id = pci_read_config(dev, BGE_PCI_GEN2_PRODID_ASICREV, 4); break; + case BCOM_DEVICEID_BCM57761: + case BCOM_DEVICEID_BCM57765: + case BCOM_DEVICEID_BCM57781: + case BCOM_DEVICEID_BCM57785: + case BCOM_DEVICEID_BCM57791: + case BCOM_DEVICEID_BCM57795: + id = pci_read_config(dev, + BGE_PCI_GEN15_PRODID_ASICREV, 4); + break; default: id = pci_read_config(dev, BGE_PCI_PRODID_ASICREV, 4); @@ -2694,6 +2717,15 @@ bge_attach(device_t dev) sc->bge_chipid = pci_read_config(dev, BGE_PCI_GEN2_PRODID_ASICREV, 4); break; + case BCOM_DEVICEID_BCM57761: + case BCOM_DEVICEID_BCM57765: + case BCOM_DEVICEID_BCM57781: + case BCOM_DEVICEID_BCM57785: + case BCOM_DEVICEID_BCM57791: + case BCOM_DEVICEID_BCM57795: + sc->bge_chipid = pci_read_config(dev, + BGE_PCI_GEN15_PRODID_ASICREV, 4); + break; default: sc->bge_chipid = pci_read_config(dev, BGE_PCI_PRODID_ASICREV, 4); @@ -2750,9 +2782,11 @@ bge_attach(device_t dev) /* Save chipset family. */ switch (sc->bge_asicrev) { case BGE_ASICREV_BCM5717: + sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG; + case BGE_ASICREV_BCM57765: sc->bge_flags |= BGE_FLAG_5717_PLUS | BGE_FLAG_5755_PLUS | BGE_FLAG_575X_PLUS | BGE_FLAG_5705_PLUS | BGE_FLAG_JUMBO | - BGE_FLAG_SHORT_DMA_BUG | BGE_FLAG_JUMBO_FRAME; + BGE_FLAG_JUMBO_FRAME; break; case BGE_ASICREV_BCM5755: case BGE_ASICREV_BCM5761: @@ -2801,6 +2835,7 @@ bge_attach(device_t dev) sc->bge_asicrev != BGE_ASICREV_BCM5906 && sc->bge_asicrev != BGE_ASICREV_BCM5717 && sc->bge_asicrev != BGE_ASICREV_BCM5785 && + sc->bge_asicrev != BGE_ASICREV_BCM57765 && sc->bge_asicrev != BGE_ASICREV_BCM57780) { if (sc->bge_asicrev == BGE_ASICREV_BCM5755 || sc->bge_asicrev == BGE_ASICREV_BCM5761 || @@ -3466,6 +3501,9 @@ bge_reset(struct bge_softc *sc) device_printf(dev, "firmware handshake timed out, found 0x%08x\n", val); + /* BCM57765 A0 needs additional time before accessing. */ + if (sc->bge_chipid == BGE_CHIPID_BCM57765_A0) + DELAY(10 * 1000); /* XXX */ } /* @@ -3506,7 +3544,7 @@ bge_reset(struct bge_softc *sc) /* XXX: Broadcom Linux driver. */ if (sc->bge_flags & BGE_FLAG_PCIE && - sc->bge_asicrev != BGE_ASICREV_BCM5717 && + !BGE_IS_5717_PLUS(sc) && sc->bge_chipid != BGE_CHIPID_BCM5750_A0 && sc->bge_asicrev != BGE_ASICREV_BCM5785) { /* Enable Data FIFO protection. */ @@ -4739,7 +4777,10 @@ bge_init_locked(struct bge_softc *sc) * this number of frames, it will drop subsequent incoming * frames until the MBUF High Watermark is reached. */ - CSR_WRITE_4(sc, BGE_MAX_RX_FRAME_LOWAT, 2); + if (sc->bge_asicrev == BGE_ASICREV_BCM57765) + CSR_WRITE_4(sc, BGE_MAX_RX_FRAME_LOWAT, 1); + else + CSR_WRITE_4(sc, BGE_MAX_RX_FRAME_LOWAT, 2); /* Clear MAC statistics. */ if (BGE_IS_5705_PLUS(sc)) Modified: head/sys/dev/bge/if_bgereg.h ============================================================================== --- head/sys/dev/bge/if_bgereg.h Wed May 4 15:45:23 2011 (r221444) +++ head/sys/dev/bge/if_bgereg.h Wed May 4 17:04:31 2011 (r221445) @@ -223,6 +223,7 @@ #define BGE_PCI_ISR_MBX_LO 0xB4 #define BGE_PCI_PRODID_ASICREV 0xBC #define BGE_PCI_GEN2_PRODID_ASICREV 0xF4 +#define BGE_PCI_GEN15_PRODID_ASICREV 0xFC /* PCI Misc. Host control register */ #define BGE_PCIMISCCTL_CLEAR_INTA 0x00000001 @@ -318,6 +319,8 @@ #define BGE_CHIPID_BCM57780_A1 0x57780001 #define BGE_CHIPID_BCM5717_A0 0x05717000 #define BGE_CHIPID_BCM5717_B0 0x05717100 +#define BGE_CHIPID_BCM57765_A0 0x57785000 +#define BGE_CHIPID_BCM57765_B0 0x57785100 /* shorthand one */ #define BGE_ASICREV(x) ((x) >> 12) @@ -342,6 +345,7 @@ #define BGE_ASICREV_BCM5761 0x5761 #define BGE_ASICREV_BCM5784 0x5784 #define BGE_ASICREV_BCM5785 0x5785 +#define BGE_ASICREV_BCM57765 0x57785 #define BGE_ASICREV_BCM57780 0x57780 /* chip revisions */ @@ -381,6 +385,8 @@ #define BGE_PCIDMARWCTL_RD_CMD_SHIFT(x) ((x) << 24) #define BGE_PCIDMARWCTL_WR_CMD_SHIFT(x) ((x) << 28) +#define BGE_PCIDMARWCTL_CRDRDR_RDMA_MRRS_MSK 0x00000380 + #define BGE_PCI_READ_BNDRY_DISABLE 0x00000000 #define BGE_PCI_READ_BNDRY_16BYTES 0x00000100 #define BGE_PCI_READ_BNDRY_32BYTES 0x00000200 @@ -2298,9 +2304,15 @@ struct bge_status_block { #define BCOM_DEVICEID_BCM5906 0x1712 #define BCOM_DEVICEID_BCM5906M 0x1713 #define BCOM_DEVICEID_BCM57760 0x1690 +#define BCOM_DEVICEID_BCM57761 0x16B0 +#define BCOM_DEVICEID_BCM57765 0x16B4 #define BCOM_DEVICEID_BCM57780 0x1692 +#define BCOM_DEVICEID_BCM57781 0x16B1 +#define BCOM_DEVICEID_BCM57785 0x16B5 #define BCOM_DEVICEID_BCM57788 0x1691 #define BCOM_DEVICEID_BCM57790 0x1694 +#define BCOM_DEVICEID_BCM57791 0x16B2 +#define BCOM_DEVICEID_BCM57795 0x16B6 /* * Alteon AceNIC PCI vendor/device ID. From owner-svn-src-head@FreeBSD.ORG Wed May 4 17:37:37 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94691106564A; Wed, 4 May 2011 17:37:37 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6ADDD8FC0A; Wed, 4 May 2011 17:37:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44HbbOV060443; Wed, 4 May 2011 17:37:37 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44HbbZM060441; Wed, 4 May 2011 17:37:37 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041737.p44HbbZM060441@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 17:37:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221446 - head/sys/geom/cache X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 17:37:37 -0000 Author: ae Date: Wed May 4 17:37:37 2011 New Revision: 221446 URL: http://svn.freebsd.org/changeset/base/221446 Log: Remove unneeded checks, g_new_xxx functions can not fail. MFC after: 1 week Modified: head/sys/geom/cache/g_cache.c Modified: head/sys/geom/cache/g_cache.c ============================================================================== --- head/sys/geom/cache/g_cache.c Wed May 4 17:04:31 2011 (r221445) +++ head/sys/geom/cache/g_cache.c Wed May 4 17:37:37 2011 (r221446) @@ -501,12 +501,6 @@ g_cache_create(struct g_class *mp, struc } gp = g_new_geomf(mp, md->md_name); - if (gp == NULL) { - G_CACHE_DEBUG(0, "Cannot create geom %s.", md->md_name); - return (NULL); - } - gp->softc = NULL; /* for a moment */ - sc = g_malloc(sizeof(*sc), M_WAITOK | M_ZERO); sc->sc_type = type; sc->sc_bshift = bshift; @@ -527,10 +521,6 @@ g_cache_create(struct g_class *mp, struc gp->dumpconf = g_cache_dumpconf; newpp = g_new_providerf(gp, "cache/%s", gp->name); - if (newpp == NULL) { - G_CACHE_DEBUG(0, "Cannot create provider cache/%s.", gp->name); - goto fail; - } newpp->sectorsize = pp->sectorsize; newpp->mediasize = pp->mediasize; if (type == G_CACHE_TYPE_AUTOMATIC) @@ -538,35 +528,20 @@ g_cache_create(struct g_class *mp, struc sc->sc_tail = BNO2OFF(OFF2BNO(newpp->mediasize, sc), sc); cp = g_new_consumer(gp); - if (cp == NULL) { - G_CACHE_DEBUG(0, "Cannot create consumer for %s.", gp->name); - goto fail; - } if (g_attach(cp, pp) != 0) { G_CACHE_DEBUG(0, "Cannot attach to provider %s.", pp->name); - goto fail; + g_destroy_consumer(cp); + g_destroy_provider(newpp); + mtx_destroy(&sc->sc_mtx); + g_free(sc); + g_destroy_geom(gp); + return (NULL); } g_error_provider(newpp, 0); G_CACHE_DEBUG(0, "Device %s created.", gp->name); callout_reset(&sc->sc_callout, g_cache_timeout * hz, g_cache_go, sc); return (gp); -fail: - if (cp != NULL) { - if (cp->provider != NULL) - g_detach(cp); - g_destroy_consumer(cp); - } - if (newpp != NULL) - g_destroy_provider(newpp); - if (gp != NULL) { - if (gp->softc != NULL) { - mtx_destroy(&sc->sc_mtx); - g_free(gp->softc); - } - g_destroy_geom(gp); - } - return (NULL); } static int From owner-svn-src-head@FreeBSD.ORG Wed May 4 17:56:53 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BF31B1065673; Wed, 4 May 2011 17:56:53 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 94B6B8FC1A; Wed, 4 May 2011 17:56:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44HurSW061038; Wed, 4 May 2011 17:56:53 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44Hurt6061033; Wed, 4 May 2011 17:56:53 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041756.p44Hurt6061033@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 17:56:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221447 - in head/sys/geom: concat eli shsec stripe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 17:56:53 -0000 Author: ae Date: Wed May 4 17:56:53 2011 New Revision: 221447 URL: http://svn.freebsd.org/changeset/base/221447 Log: Remove "for a moment" assignment. struct g_geom zeroed when allocated. MFC after: 1 week Modified: head/sys/geom/concat/g_concat.c head/sys/geom/eli/g_eli.c head/sys/geom/shsec/g_shsec.c head/sys/geom/stripe/g_stripe.c Modified: head/sys/geom/concat/g_concat.c ============================================================================== --- head/sys/geom/concat/g_concat.c Wed May 4 17:37:37 2011 (r221446) +++ head/sys/geom/concat/g_concat.c Wed May 4 17:56:53 2011 (r221447) @@ -547,8 +547,6 @@ g_concat_create(struct g_class *mp, cons } } gp = g_new_geomf(mp, "%s", md->md_name); - gp->softc = NULL; /* for a moment */ - sc = malloc(sizeof(*sc), M_CONCAT, M_WAITOK | M_ZERO); gp->start = g_concat_start; gp->spoiled = g_concat_orphan; Modified: head/sys/geom/eli/g_eli.c ============================================================================== --- head/sys/geom/eli/g_eli.c Wed May 4 17:37:37 2011 (r221446) +++ head/sys/geom/eli/g_eli.c Wed May 4 17:56:53 2011 (r221447) @@ -682,8 +682,6 @@ g_eli_create(struct gctl_req *req, struc G_ELI_DEBUG(1, "Creating device %s%s.", bpp->name, G_ELI_SUFFIX); gp = g_new_geomf(mp, "%s%s", bpp->name, G_ELI_SUFFIX); - gp->softc = NULL; /* for a moment */ - sc = malloc(sizeof(*sc), M_ELI, M_WAITOK | M_ZERO); gp->start = g_eli_start; /* Modified: head/sys/geom/shsec/g_shsec.c ============================================================================== --- head/sys/geom/shsec/g_shsec.c Wed May 4 17:37:37 2011 (r221446) +++ head/sys/geom/shsec/g_shsec.c Wed May 4 17:56:53 2011 (r221447) @@ -546,8 +546,6 @@ g_shsec_create(struct g_class *mp, const } } gp = g_new_geomf(mp, "%s", md->md_name); - gp->softc = NULL; /* for a moment */ - sc = malloc(sizeof(*sc), M_SHSEC, M_WAITOK | M_ZERO); gp->start = g_shsec_start; gp->spoiled = g_shsec_orphan; Modified: head/sys/geom/stripe/g_stripe.c ============================================================================== --- head/sys/geom/stripe/g_stripe.c Wed May 4 17:37:37 2011 (r221446) +++ head/sys/geom/stripe/g_stripe.c Wed May 4 17:56:53 2011 (r221447) @@ -819,8 +819,6 @@ g_stripe_create(struct g_class *mp, cons } } gp = g_new_geomf(mp, "%s", md->md_name); - gp->softc = NULL; /* for a moment */ - sc = malloc(sizeof(*sc), M_STRIPE, M_WAITOK | M_ZERO); gp->start = g_stripe_start; gp->spoiled = g_stripe_orphan; From owner-svn-src-head@FreeBSD.ORG Wed May 4 17:58:15 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C323A1065674; Wed, 4 May 2011 17:58:15 +0000 (UTC) (envelope-from emax@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B37B18FC1A; Wed, 4 May 2011 17:58:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44HwFO0061117; Wed, 4 May 2011 17:58:15 GMT (envelope-from emax@svn.freebsd.org) Received: (from emax@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44HwFfs061115; Wed, 4 May 2011 17:58:15 GMT (envelope-from emax@svn.freebsd.org) Message-Id: <201105041758.p44HwFfs061115@svn.freebsd.org> From: Maksim Yevmenkin Date: Wed, 4 May 2011 17:58:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221448 - head/usr.sbin/bluetooth/bthidd X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 17:58:15 -0000 Author: emax Date: Wed May 4 17:58:15 2011 New Revision: 221448 URL: http://svn.freebsd.org/changeset/base/221448 Log: Encode horizontal scroll events (AC Pan) as button presses (bit 5 and 6) Submitted by: David Demelier demelier dot david at gmail dot com MFC after: 1 week Modified: head/usr.sbin/bluetooth/bthidd/hid.c Modified: head/usr.sbin/bluetooth/bthidd/hid.c ============================================================================== --- head/usr.sbin/bluetooth/bthidd/hid.c Wed May 4 17:56:53 2011 (r221447) +++ head/usr.sbin/bluetooth/bthidd/hid.c Wed May 4 17:58:15 2011 (r221448) @@ -229,6 +229,17 @@ hid_interrupt(bthid_session_p s, uint8_t break; switch (usage) { + case HUC_AC_PAN: + /* Horizontal scroll */ + if (val < 0) + mouse_butt |= (1 << 5); + else + mouse_butt |= (1 << 6); + + mevents ++; + val = 0; + break; + case 0xb5: /* Scan Next Track */ val = 0x19; break; From owner-svn-src-head@FreeBSD.ORG Wed May 4 18:06:40 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 60F14106564A; Wed, 4 May 2011 18:06:40 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 510EE8FC13; Wed, 4 May 2011 18:06:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44I6eGf061465; Wed, 4 May 2011 18:06:40 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44I6edT061463; Wed, 4 May 2011 18:06:40 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041806.p44I6edT061463@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 18:06:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221449 - head/sys/geom/journal X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 18:06:40 -0000 Author: ae Date: Wed May 4 18:06:40 2011 New Revision: 221449 URL: http://svn.freebsd.org/changeset/base/221449 Log: Removed KASSERT, g_new_providerf() can not fail. MFC after: 1 week Modified: head/sys/geom/journal/g_journal.c Modified: head/sys/geom/journal/g_journal.c ============================================================================== --- head/sys/geom/journal/g_journal.c Wed May 4 17:58:15 2011 (r221448) +++ head/sys/geom/journal/g_journal.c Wed May 4 18:06:40 2011 (r221449) @@ -2097,7 +2097,6 @@ g_journal_worker(void *arg) gp = sc->sc_geom; g_topology_lock(); pp = g_new_providerf(gp, "%s.journal", sc->sc_name); - KASSERT(pp != NULL, ("Cannot create %s.journal.", sc->sc_name)); pp->mediasize = sc->sc_mediasize; /* * There could be a problem when data provider and journal providers From owner-svn-src-head@FreeBSD.ORG Wed May 4 18:16:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1CA6106564A; Wed, 4 May 2011 18:16:05 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B1DCC8FC0A; Wed, 4 May 2011 18:16:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44IG51Y061876; Wed, 4 May 2011 18:16:05 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44IG5s6061874; Wed, 4 May 2011 18:16:05 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201105041816.p44IG5s6061874@svn.freebsd.org> From: Glen Barber Date: Wed, 4 May 2011 18:16:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221450 - head/share/man/man9 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 18:16:05 -0000 Author: gjb (doc committer) Date: Wed May 4 18:16:05 2011 New Revision: 221450 URL: http://svn.freebsd.org/changeset/base/221450 Log: Remove unneeded tab after .Ed to make manlint happy. Reported by: manlint Modified: head/share/man/man9/bus_adjust_resource.9 Modified: head/share/man/man9/bus_adjust_resource.9 ============================================================================== --- head/share/man/man9/bus_adjust_resource.9 Wed May 4 18:06:40 2011 (r221449) +++ head/share/man/man9/bus_adjust_resource.9 Wed May 4 18:16:05 2011 (r221450) @@ -93,7 +93,7 @@ Grow an existing memory resource by 4096 error = bus_adjust_resource(dev, SYS_RES_MEMORY, res, rman_get_start(res), rman_get_end(res) + 0x1000); -.Ed +.Ed .Sh SEE ALSO .Xr bus_alloc_resource 9 , .Xr bus_release_resource 9 , From owner-svn-src-head@FreeBSD.ORG Wed May 4 18:17:22 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 146111065670; Wed, 4 May 2011 18:17:22 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DDFE18FC0C; Wed, 4 May 2011 18:17:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44IHLrt061949; Wed, 4 May 2011 18:17:21 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44IHLeg061947; Wed, 4 May 2011 18:17:21 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041817.p44IHLeg061947@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 18:17:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221451 - head/sys/geom/mountver X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 18:17:22 -0000 Author: ae Date: Wed May 4 18:17:21 2011 New Revision: 221451 URL: http://svn.freebsd.org/changeset/base/221451 Log: Remove unneeded code. MFC after: 1 week Modified: head/sys/geom/mountver/g_mountver.c Modified: head/sys/geom/mountver/g_mountver.c ============================================================================== --- head/sys/geom/mountver/g_mountver.c Wed May 4 18:16:05 2011 (r221450) +++ head/sys/geom/mountver/g_mountver.c Wed May 4 18:17:21 2011 (r221451) @@ -248,10 +248,6 @@ g_mountver_create(struct gctl_req *req, } } gp = g_new_geomf(mp, name); - if (gp == NULL) { - gctl_error(req, "Cannot create geom %s.", name); - return (ENOMEM); - } sc = g_malloc(sizeof(*sc), M_WAITOK | M_ZERO); mtx_init(&sc->sc_mtx, "gmountver", NULL, MTX_DEF); TAILQ_INIT(&sc->sc_queue); @@ -263,20 +259,10 @@ g_mountver_create(struct gctl_req *req, gp->dumpconf = g_mountver_dumpconf; newpp = g_new_providerf(gp, gp->name); - if (newpp == NULL) { - gctl_error(req, "Cannot create provider %s.", name); - error = ENOMEM; - goto fail; - } newpp->mediasize = pp->mediasize; newpp->sectorsize = pp->sectorsize; cp = g_new_consumer(gp); - if (cp == NULL) { - gctl_error(req, "Cannot create consumer for %s.", gp->name); - error = ENOMEM; - goto fail; - } error = g_attach(cp, pp); if (error != 0) { gctl_error(req, "Cannot attach to provider %s.", pp->name); @@ -303,20 +289,13 @@ g_mountver_create(struct gctl_req *req, G_MOUNTVER_DEBUG(0, "Device %s created.", gp->name); return (0); fail: - if (sc->sc_provider_name != NULL) - g_free(sc->sc_provider_name); - if (cp != NULL) { - if (cp->provider != NULL) - g_detach(cp); - g_destroy_consumer(cp); - } - if (newpp != NULL) - g_destroy_provider(newpp); - if (gp != NULL) { - if (gp->softc != NULL) - g_free(gp->softc); - g_destroy_geom(gp); - } + g_free(sc->sc_provider_name); + if (cp->provider != NULL) + g_detach(cp); + g_destroy_consumer(cp); + g_destroy_provider(newpp); + g_free(gp->softc); + g_destroy_geom(gp); return (error); } From owner-svn-src-head@FreeBSD.ORG Wed May 4 18:26:46 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 24FDE106564A; Wed, 4 May 2011 18:26:46 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1471E8FC08; Wed, 4 May 2011 18:26:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44IQjiE062255; Wed, 4 May 2011 18:26:45 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44IQjxf062253; Wed, 4 May 2011 18:26:45 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041826.p44IQjxf062253@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 18:26:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221452 - head/sys/geom/multipath X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 18:26:46 -0000 Author: ae Date: Wed May 4 18:26:45 2011 New Revision: 221452 URL: http://svn.freebsd.org/changeset/base/221452 Log: Remove unneeded code. MFC after: 1 week Modified: head/sys/geom/multipath/g_multipath.c Modified: head/sys/geom/multipath/g_multipath.c ============================================================================== --- head/sys/geom/multipath/g_multipath.c Wed May 4 18:17:21 2011 (r221451) +++ head/sys/geom/multipath/g_multipath.c Wed May 4 18:26:45 2011 (r221452) @@ -293,9 +293,6 @@ g_multipath_create(struct g_class *mp, s } gp = g_new_geomf(mp, md->md_name); - if (gp == NULL) - goto fail; - sc = g_malloc(sizeof(*sc), M_WAITOK | M_ZERO); gp->softc = sc; gp->start = g_multipath_start; @@ -305,21 +302,12 @@ g_multipath_create(struct g_class *mp, s memcpy(sc->sc_name, md->md_name, sizeof (sc->sc_name)); pp = g_new_providerf(gp, "multipath/%s", md->md_name); - if (pp == NULL) - goto fail; /* limit the provider to not have it stomp on metadata */ pp->mediasize = md->md_size - md->md_sectorsize; pp->sectorsize = md->md_sectorsize; sc->pp = pp; g_error_provider(pp, 0); return (gp); -fail: - if (gp != NULL) { - if (gp->softc != NULL) - g_free(gp->softc); - g_destroy_geom(gp); - } - return (NULL); } static int @@ -348,8 +336,6 @@ g_multipath_add_disk(struct g_geom *gp, } nxtcp = LIST_FIRST(&gp->consumer); cp = g_new_consumer(gp); - if (cp == NULL) - return (ENOMEM); error = g_attach(cp, pp); if (error != 0) { printf("GEOM_MULTIPATH: cannot attach %s to %s", From owner-svn-src-head@FreeBSD.ORG Wed May 4 18:41:26 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E5E5106566B; Wed, 4 May 2011 18:41:26 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7D5B58FC15; Wed, 4 May 2011 18:41:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44IfQwx062713; Wed, 4 May 2011 18:41:26 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44IfQmM062711; Wed, 4 May 2011 18:41:26 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105041841.p44IfQmM062711@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 4 May 2011 18:41:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221453 - head/sys/geom/sched X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 18:41:26 -0000 Author: ae Date: Wed May 4 18:41:26 2011 New Revision: 221453 URL: http://svn.freebsd.org/changeset/base/221453 Log: Remove unneeded code. MFC after: 1 week Modified: head/sys/geom/sched/g_sched.c Modified: head/sys/geom/sched/g_sched.c ============================================================================== --- head/sys/geom/sched/g_sched.c Wed May 4 18:26:45 2011 (r221452) +++ head/sys/geom/sched/g_sched.c Wed May 4 18:41:26 2011 (r221453) @@ -1004,11 +1004,6 @@ g_sched_create(struct gctl_req *req, str gp = g_new_geomf(mp, name); dstgp = proxy ? pp->geom : gp; /* where do we link the provider */ - if (gp == NULL) { - gctl_error(req, "Cannot create geom %s.", name); - error = ENOMEM; - goto fail; - } sc = g_malloc(sizeof(*sc), M_WAITOK | M_ZERO); sc->sc_gsched = gsp; @@ -1034,23 +1029,10 @@ g_sched_create(struct gctl_req *req, str gp->dumpconf = g_sched_dumpconf; newpp = g_new_providerf(dstgp, gp->name); - if (newpp == NULL) { - gctl_error(req, "Cannot create provider %s.", name); - error = ENOMEM; - goto fail; - } - newpp->mediasize = pp->mediasize; newpp->sectorsize = pp->sectorsize; cp = g_new_consumer(gp); - if (cp == NULL) { - gctl_error(req, "Cannot create consumer for %s.", - gp->name); - error = ENOMEM; - goto fail; - } - error = g_attach(cp, proxy ? newpp : pp); if (error != 0) { gctl_error(req, "Cannot attach to provider %s.", @@ -1076,23 +1058,15 @@ fail: g_detach(cp); g_destroy_consumer(cp); } - if (newpp != NULL) g_destroy_provider(newpp); - - if (sc && sc->sc_hash) { + if (sc->sc_hash) g_sched_hash_fini(gp, sc->sc_hash, sc->sc_mask, gsp, sc->sc_data); - } - - if (sc && sc->sc_data) + if (sc->sc_data) gsp->gs_fini(sc->sc_data); - - if (gp != NULL) { - if (gp->softc != NULL) - g_free(gp->softc); - g_destroy_geom(gp); - } + g_free(gp->softc); + g_destroy_geom(gp); return (error); } From owner-svn-src-head@FreeBSD.ORG Wed May 4 19:28:45 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 57782106575B; Wed, 4 May 2011 19:28:45 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 45CFE8FC16; Wed, 4 May 2011 19:28:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44JSjqO064151; Wed, 4 May 2011 19:28:45 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44JSjUv064149; Wed, 4 May 2011 19:28:45 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105041928.p44JSjUv064149@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 19:28:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221454 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 19:28:45 -0000 Author: rmacklem Date: Wed May 4 19:28:44 2011 New Revision: 221454 URL: http://svn.freebsd.org/changeset/base/221454 Log: Modify nfsstat(1) so that it prints out the buffer cache stats in the same way for the new client as the old one. MFC after: 2 weeks Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Wed May 4 18:41:26 2011 (r221453) +++ head/usr.bin/nfsstat/nfsstat.c Wed May 4 19:28:44 2011 (r221454) @@ -650,9 +650,9 @@ exp_intpr(int clientOnly, int serverOnly ext_nfsstats.lookupcache_hits, ext_nfsstats.lookupcache_misses); printf(" %9d %9d %9d %9d\n", - ext_nfsstats.biocache_reads, + ext_nfsstats.biocache_reads - ext_nfsstats.read_bios, ext_nfsstats.read_bios, - ext_nfsstats.biocache_writes, + ext_nfsstats.biocache_writes - ext_nfsstats.write_bios, ext_nfsstats.write_bios); if (printtitle) { printf("%9.9s %9.9s %9.9s %9.9s", @@ -660,9 +660,11 @@ exp_intpr(int clientOnly, int serverOnly printf(" %9.9s %9.9s\n", "DirE Hits", "Misses"); } printf("%9d %9d %9d %9d", - ext_nfsstats.biocache_readlinks, + ext_nfsstats.biocache_readlinks - ext_nfsstats.readlink_bios, - ext_nfsstats.biocache_readdirs, + ext_nfsstats.readlink_bios, + ext_nfsstats.biocache_readdirs - + ext_nfsstats.readdir_bios, ext_nfsstats.readdir_bios); printf(" %9d %9d\n", ext_nfsstats.direofcache_hits, From owner-svn-src-head@FreeBSD.ORG Wed May 4 20:13:27 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 200C21065672; Wed, 4 May 2011 20:13:27 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0C2838FC1A; Wed, 4 May 2011 20:13:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44KDRSl065597; Wed, 4 May 2011 20:13:27 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44KDRCM065595; Wed, 4 May 2011 20:13:27 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105042013.p44KDRCM065595@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 20:13:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221455 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 20:13:27 -0000 Author: rmacklem Date: Wed May 4 20:13:26 2011 New Revision: 221455 URL: http://svn.freebsd.org/changeset/base/221455 Log: Modify nfsstat(1) so that it reports statistics for the new NFS client/server by default, in a format compatible with the old NFS client/server. Also add a "-o" flag that forces nfsstat(1) to get statistics for the old NFS client/server. Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Wed May 4 19:28:44 2011 (r221454) +++ head/usr.bin/nfsstat/nfsstat.c Wed May 4 20:13:26 2011 (r221455) @@ -82,9 +82,10 @@ kvm_t *kd; static int deadkernel = 0; static int widemode = 0; static int zflag = 0; -static int run_v4 = 0; +static int run_v4 = 1; static int printtitle = 1; static struct ext_nfsstats ext_nfsstats; +static int extra_output = 0; void intpr(int, int); void printhdr(int, int); @@ -109,7 +110,7 @@ main(int argc, char **argv) interval = 0; memf = nlistf = NULL; - while ((ch = getopt(argc, argv, "cesWM:N:w:z")) != -1) + while ((ch = getopt(argc, argv, "cesWM:N:ow:z")) != -1) switch(ch) { case 'M': memf = optarg; @@ -136,8 +137,15 @@ main(int argc, char **argv) case 'z': zflag = 1; break; + case 'o': + if (extra_output != 0) + err(1, "-o incompatible with -e"); + run_v4 = 0; + break; case 'e': - run_v4 = 1; + if (run_v4 == 0) + err(1, "-e incompatible with -o"); + extra_output = 1; break; case '?': default: @@ -158,7 +166,7 @@ main(int argc, char **argv) } #endif if (run_v4 != 0 && modfind("nfscommon") < 0) - errx(1, "experimental client/server not loaded"); + errx(1, "new client/server not loaded"); if (run_v4 == 0 && (nlistf != NULL || memf != NULL)) { deadkernel = 1; @@ -178,7 +186,7 @@ main(int argc, char **argv) else sidewaysintpr(interval, clientOnly, serverOnly); } else { - if (run_v4 > 0) + if (extra_output != 0) exp_intpr(clientOnly, serverOnly); else intpr(clientOnly, serverOnly); @@ -238,25 +246,38 @@ intpr(int clientOnly, int serverOnly) { struct nfsstats nfsstats, *nfsstatsp; struct nfsrvstats nfsrvstats, *nfsrvstatsp; + int nfssvc_flag; - /* - * Only read the stats we are going to display to avoid zeroing - * stats the user didn't request. - */ - if (clientOnly) - nfsstatsp = &nfsstats; - else - nfsstatsp = NULL; - if (serverOnly) - nfsrvstatsp = &nfsrvstats; - else - nfsrvstatsp = NULL; - - readstats(&nfsstatsp, &nfsrvstatsp, zflag); - - if (clientOnly && !nfsstatsp) { - printf("Client not present!\n"); - clientOnly = 0; + if (run_v4 == 0) { + /* + * Only read the stats we are going to display to avoid zeroing + * stats the user didn't request. + */ + if (clientOnly) + nfsstatsp = &nfsstats; + else + nfsstatsp = NULL; + if (serverOnly) + nfsrvstatsp = &nfsrvstats; + else + nfsrvstatsp = NULL; + + readstats(&nfsstatsp, &nfsrvstatsp, zflag); + + if (clientOnly && !nfsstatsp) { + printf("Client not present!\n"); + clientOnly = 0; + } + } else { + nfssvc_flag = NFSSVC_GETSTATS; + if (zflag != 0) { + if (clientOnly != 0) + nfssvc_flag |= NFSSVC_ZEROCLTSTATS; + if (serverOnly != 0) + nfssvc_flag |= NFSSVC_ZEROSRVSTATS; + } + if (nfssvc(nfssvc_flag, &ext_nfsstats) < 0) + err(1, "Can't get stats"); } if (clientOnly) { printf("Client Info:\n"); @@ -264,71 +285,145 @@ intpr(int clientOnly, int serverOnly) printf("%9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s\n", "Getattr", "Setattr", "Lookup", "Readlink", "Read", "Write", "Create", "Remove"); - printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", - nfsstats.rpccnt[NFSPROC_GETATTR], - nfsstats.rpccnt[NFSPROC_SETATTR], - nfsstats.rpccnt[NFSPROC_LOOKUP], - nfsstats.rpccnt[NFSPROC_READLINK], - nfsstats.rpccnt[NFSPROC_READ], - nfsstats.rpccnt[NFSPROC_WRITE], - nfsstats.rpccnt[NFSPROC_CREATE], - nfsstats.rpccnt[NFSPROC_REMOVE]); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + nfsstats.rpccnt[NFSPROC_GETATTR], + nfsstats.rpccnt[NFSPROC_SETATTR], + nfsstats.rpccnt[NFSPROC_LOOKUP], + nfsstats.rpccnt[NFSPROC_READLINK], + nfsstats.rpccnt[NFSPROC_READ], + nfsstats.rpccnt[NFSPROC_WRITE], + nfsstats.rpccnt[NFSPROC_CREATE], + nfsstats.rpccnt[NFSPROC_REMOVE]); + else + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + ext_nfsstats.rpccnt[NFSPROC_GETATTR], + ext_nfsstats.rpccnt[NFSPROC_SETATTR], + ext_nfsstats.rpccnt[NFSPROC_LOOKUP], + ext_nfsstats.rpccnt[NFSPROC_READLINK], + ext_nfsstats.rpccnt[NFSPROC_READ], + ext_nfsstats.rpccnt[NFSPROC_WRITE], + ext_nfsstats.rpccnt[NFSPROC_CREATE], + ext_nfsstats.rpccnt[NFSPROC_REMOVE]); printf("%9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s\n", "Rename", "Link", "Symlink", "Mkdir", "Rmdir", "Readdir", "RdirPlus", "Access"); - printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", - nfsstats.rpccnt[NFSPROC_RENAME], - nfsstats.rpccnt[NFSPROC_LINK], - nfsstats.rpccnt[NFSPROC_SYMLINK], - nfsstats.rpccnt[NFSPROC_MKDIR], - nfsstats.rpccnt[NFSPROC_RMDIR], - nfsstats.rpccnt[NFSPROC_READDIR], - nfsstats.rpccnt[NFSPROC_READDIRPLUS], - nfsstats.rpccnt[NFSPROC_ACCESS]); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + nfsstats.rpccnt[NFSPROC_RENAME], + nfsstats.rpccnt[NFSPROC_LINK], + nfsstats.rpccnt[NFSPROC_SYMLINK], + nfsstats.rpccnt[NFSPROC_MKDIR], + nfsstats.rpccnt[NFSPROC_RMDIR], + nfsstats.rpccnt[NFSPROC_READDIR], + nfsstats.rpccnt[NFSPROC_READDIRPLUS], + nfsstats.rpccnt[NFSPROC_ACCESS]); + else + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + ext_nfsstats.rpccnt[NFSPROC_RENAME], + ext_nfsstats.rpccnt[NFSPROC_LINK], + ext_nfsstats.rpccnt[NFSPROC_SYMLINK], + ext_nfsstats.rpccnt[NFSPROC_MKDIR], + ext_nfsstats.rpccnt[NFSPROC_RMDIR], + ext_nfsstats.rpccnt[NFSPROC_READDIR], + ext_nfsstats.rpccnt[NFSPROC_READDIRPLUS], + ext_nfsstats.rpccnt[NFSPROC_ACCESS]); printf("%9.9s %9.9s %9.9s %9.9s %9.9s\n", "Mknod", "Fsstat", "Fsinfo", "PathConf", "Commit"); - printf("%9d %9d %9d %9d %9d\n", - nfsstats.rpccnt[NFSPROC_MKNOD], - nfsstats.rpccnt[NFSPROC_FSSTAT], - nfsstats.rpccnt[NFSPROC_FSINFO], - nfsstats.rpccnt[NFSPROC_PATHCONF], - nfsstats.rpccnt[NFSPROC_COMMIT]); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d\n", + nfsstats.rpccnt[NFSPROC_MKNOD], + nfsstats.rpccnt[NFSPROC_FSSTAT], + nfsstats.rpccnt[NFSPROC_FSINFO], + nfsstats.rpccnt[NFSPROC_PATHCONF], + nfsstats.rpccnt[NFSPROC_COMMIT]); + else + printf("%9d %9d %9d %9d %9d\n", + ext_nfsstats.rpccnt[NFSPROC_MKNOD], + ext_nfsstats.rpccnt[NFSPROC_FSSTAT], + ext_nfsstats.rpccnt[NFSPROC_FSINFO], + ext_nfsstats.rpccnt[NFSPROC_PATHCONF], + ext_nfsstats.rpccnt[NFSPROC_COMMIT]); printf("Rpc Info:\n"); printf("%9.9s %9.9s %9.9s %9.9s %9.9s\n", "TimedOut", "Invalid", "X Replies", "Retries", "Requests"); - printf("%9d %9d %9d %9d %9d\n", - nfsstats.rpctimeouts, - nfsstats.rpcinvalid, - nfsstats.rpcunexpected, - nfsstats.rpcretries, - nfsstats.rpcrequests); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d\n", + nfsstats.rpctimeouts, + nfsstats.rpcinvalid, + nfsstats.rpcunexpected, + nfsstats.rpcretries, + nfsstats.rpcrequests); + else + printf("%9d %9d %9d %9d %9d\n", + ext_nfsstats.rpctimeouts, + ext_nfsstats.rpcinvalid, + ext_nfsstats.rpcunexpected, + ext_nfsstats.rpcretries, + ext_nfsstats.rpcrequests); printf("Cache Info:\n"); printf("%9.9s %9.9s %9.9s %9.9s", "Attr Hits", "Misses", "Lkup Hits", "Misses"); printf(" %9.9s %9.9s %9.9s %9.9s\n", "BioR Hits", "Misses", "BioW Hits", "Misses"); - printf("%9d %9d %9d %9d", - nfsstats.attrcache_hits, nfsstats.attrcache_misses, - nfsstats.lookupcache_hits, nfsstats.lookupcache_misses); - printf(" %9d %9d %9d %9d\n", - nfsstats.biocache_reads-nfsstats.read_bios, - nfsstats.read_bios, - nfsstats.biocache_writes-nfsstats.write_bios, - nfsstats.write_bios); + if (run_v4 == 0) { + printf("%9d %9d %9d %9d", + nfsstats.attrcache_hits, + nfsstats.attrcache_misses, + nfsstats.lookupcache_hits, + nfsstats.lookupcache_misses); + printf(" %9d %9d %9d %9d\n", + nfsstats.biocache_reads-nfsstats.read_bios, + nfsstats.read_bios, + nfsstats.biocache_writes-nfsstats.write_bios, + nfsstats.write_bios); + } else { + printf("%9d %9d %9d %9d", + ext_nfsstats.attrcache_hits, + ext_nfsstats.attrcache_misses, + ext_nfsstats.lookupcache_hits, + ext_nfsstats.lookupcache_misses); + printf(" %9d %9d %9d %9d\n", + ext_nfsstats.biocache_reads - + ext_nfsstats.read_bios, + ext_nfsstats.read_bios, + ext_nfsstats.biocache_writes - + ext_nfsstats.write_bios, + ext_nfsstats.write_bios); + } printf("%9.9s %9.9s %9.9s %9.9s", "BioRLHits", "Misses", "BioD Hits", "Misses"); printf(" %9.9s %9.9s %9.9s %9.9s\n", "DirE Hits", "Misses", "Accs Hits", "Misses"); - printf("%9d %9d %9d %9d", - nfsstats.biocache_readlinks-nfsstats.readlink_bios, - nfsstats.readlink_bios, - nfsstats.biocache_readdirs-nfsstats.readdir_bios, - nfsstats.readdir_bios); - printf(" %9d %9d %9d %9d\n", - nfsstats.direofcache_hits, nfsstats.direofcache_misses, - nfsstats.accesscache_hits, nfsstats.accesscache_misses); + if (run_v4 == 0) { + printf("%9d %9d %9d %9d", + nfsstats.biocache_readlinks - + nfsstats.readlink_bios, + nfsstats.readlink_bios, + nfsstats.biocache_readdirs - + nfsstats.readdir_bios, + nfsstats.readdir_bios); + printf(" %9d %9d %9d %9d\n", + nfsstats.direofcache_hits, + nfsstats.direofcache_misses, + nfsstats.accesscache_hits, + nfsstats.accesscache_misses); + } else { + printf("%9d %9d %9d %9d", + ext_nfsstats.biocache_readlinks - + ext_nfsstats.readlink_bios, + ext_nfsstats.readlink_bios, + ext_nfsstats.biocache_readdirs - + ext_nfsstats.readdir_bios, + ext_nfsstats.readdir_bios); + printf(" %9d %9d %9d %9d\n", + ext_nfsstats.direofcache_hits, + ext_nfsstats.direofcache_misses, + ext_nfsstats.accesscache_hits, + ext_nfsstats.accesscache_misses); + } } - if (serverOnly && !nfsrvstatsp) { + if (run_v4 == 0 && serverOnly && !nfsrvstatsp) { printf("Server not present!\n"); serverOnly = 0; } @@ -337,55 +432,107 @@ intpr(int clientOnly, int serverOnly) printf("%9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s\n", "Getattr", "Setattr", "Lookup", "Readlink", "Read", "Write", "Create", "Remove"); - printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", - nfsrvstats.srvrpccnt[NFSPROC_GETATTR], - nfsrvstats.srvrpccnt[NFSPROC_SETATTR], - nfsrvstats.srvrpccnt[NFSPROC_LOOKUP], - nfsrvstats.srvrpccnt[NFSPROC_READLINK], - nfsrvstats.srvrpccnt[NFSPROC_READ], - nfsrvstats.srvrpccnt[NFSPROC_WRITE], - nfsrvstats.srvrpccnt[NFSPROC_CREATE], - nfsrvstats.srvrpccnt[NFSPROC_REMOVE]); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + nfsrvstats.srvrpccnt[NFSPROC_GETATTR], + nfsrvstats.srvrpccnt[NFSPROC_SETATTR], + nfsrvstats.srvrpccnt[NFSPROC_LOOKUP], + nfsrvstats.srvrpccnt[NFSPROC_READLINK], + nfsrvstats.srvrpccnt[NFSPROC_READ], + nfsrvstats.srvrpccnt[NFSPROC_WRITE], + nfsrvstats.srvrpccnt[NFSPROC_CREATE], + nfsrvstats.srvrpccnt[NFSPROC_REMOVE]); + else + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + ext_nfsstats.srvrpccnt[NFSPROC_GETATTR], + ext_nfsstats.srvrpccnt[NFSPROC_SETATTR], + ext_nfsstats.srvrpccnt[NFSPROC_LOOKUP], + ext_nfsstats.srvrpccnt[NFSPROC_READLINK], + ext_nfsstats.srvrpccnt[NFSPROC_READ], + ext_nfsstats.srvrpccnt[NFSPROC_WRITE], + ext_nfsstats.srvrpccnt[NFSPROC_CREATE], + ext_nfsstats.srvrpccnt[NFSPROC_REMOVE]); printf("%9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s %9.9s\n", "Rename", "Link", "Symlink", "Mkdir", "Rmdir", "Readdir", "RdirPlus", "Access"); - printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", - nfsrvstats.srvrpccnt[NFSPROC_RENAME], - nfsrvstats.srvrpccnt[NFSPROC_LINK], - nfsrvstats.srvrpccnt[NFSPROC_SYMLINK], - nfsrvstats.srvrpccnt[NFSPROC_MKDIR], - nfsrvstats.srvrpccnt[NFSPROC_RMDIR], - nfsrvstats.srvrpccnt[NFSPROC_READDIR], - nfsrvstats.srvrpccnt[NFSPROC_READDIRPLUS], - nfsrvstats.srvrpccnt[NFSPROC_ACCESS]); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + nfsrvstats.srvrpccnt[NFSPROC_RENAME], + nfsrvstats.srvrpccnt[NFSPROC_LINK], + nfsrvstats.srvrpccnt[NFSPROC_SYMLINK], + nfsrvstats.srvrpccnt[NFSPROC_MKDIR], + nfsrvstats.srvrpccnt[NFSPROC_RMDIR], + nfsrvstats.srvrpccnt[NFSPROC_READDIR], + nfsrvstats.srvrpccnt[NFSPROC_READDIRPLUS], + nfsrvstats.srvrpccnt[NFSPROC_ACCESS]); + else + printf("%9d %9d %9d %9d %9d %9d %9d %9d\n", + ext_nfsstats.srvrpccnt[NFSPROC_RENAME], + ext_nfsstats.srvrpccnt[NFSPROC_LINK], + ext_nfsstats.srvrpccnt[NFSPROC_SYMLINK], + ext_nfsstats.srvrpccnt[NFSPROC_MKDIR], + ext_nfsstats.srvrpccnt[NFSPROC_RMDIR], + ext_nfsstats.srvrpccnt[NFSPROC_READDIR], + ext_nfsstats.srvrpccnt[NFSPROC_READDIRPLUS], + ext_nfsstats.srvrpccnt[NFSPROC_ACCESS]); printf("%9.9s %9.9s %9.9s %9.9s %9.9s\n", "Mknod", "Fsstat", "Fsinfo", "PathConf", "Commit"); - printf("%9d %9d %9d %9d %9d\n", - nfsrvstats.srvrpccnt[NFSPROC_MKNOD], - nfsrvstats.srvrpccnt[NFSPROC_FSSTAT], - nfsrvstats.srvrpccnt[NFSPROC_FSINFO], - nfsrvstats.srvrpccnt[NFSPROC_PATHCONF], - nfsrvstats.srvrpccnt[NFSPROC_COMMIT]); + if (run_v4 == 0) + printf("%9d %9d %9d %9d %9d\n", + nfsrvstats.srvrpccnt[NFSPROC_MKNOD], + nfsrvstats.srvrpccnt[NFSPROC_FSSTAT], + nfsrvstats.srvrpccnt[NFSPROC_FSINFO], + nfsrvstats.srvrpccnt[NFSPROC_PATHCONF], + nfsrvstats.srvrpccnt[NFSPROC_COMMIT]); + else + printf("%9d %9d %9d %9d %9d\n", + ext_nfsstats.srvrpccnt[NFSPROC_MKNOD], + ext_nfsstats.srvrpccnt[NFSPROC_FSSTAT], + ext_nfsstats.srvrpccnt[NFSPROC_FSINFO], + ext_nfsstats.srvrpccnt[NFSPROC_PATHCONF], + ext_nfsstats.srvrpccnt[NFSPROC_COMMIT]); printf("Server Ret-Failed\n"); - printf("%17d\n", nfsrvstats.srvrpc_errs); + if (run_v4 == 0) + printf("%17d\n", nfsrvstats.srvrpc_errs); + else + printf("%17d\n", ext_nfsstats.srvrpc_errs); printf("Server Faults\n"); - printf("%13d\n", nfsrvstats.srv_errs); + if (run_v4 == 0) + printf("%13d\n", nfsrvstats.srv_errs); + else + printf("%13d\n", ext_nfsstats.srv_errs); printf("Server Cache Stats:\n"); printf("%9.9s %9.9s %9.9s %9.9s\n", "Inprog", "Idem", "Non-idem", "Misses"); - printf("%9d %9d %9d %9d\n", - nfsrvstats.srvcache_inproghits, - nfsrvstats.srvcache_idemdonehits, - nfsrvstats.srvcache_nonidemdonehits, - nfsrvstats.srvcache_misses); + if (run_v4 == 0) + printf("%9d %9d %9d %9d\n", + nfsrvstats.srvcache_inproghits, + nfsrvstats.srvcache_idemdonehits, + nfsrvstats.srvcache_nonidemdonehits, + nfsrvstats.srvcache_misses); + else + printf("%9d %9d %9d %9d\n", + ext_nfsstats.srvcache_inproghits, + ext_nfsstats.srvcache_idemdonehits, + ext_nfsstats.srvcache_nonidemdonehits, + ext_nfsstats.srvcache_misses); printf("Server Write Gathering:\n"); printf("%9.9s %9.9s %9.9s\n", "WriteOps", "WriteRPC", "Opsaved"); - printf("%9d %9d %9d\n", - nfsrvstats.srvvop_writes, - nfsrvstats.srvrpccnt[NFSPROC_WRITE], - nfsrvstats.srvrpccnt[NFSPROC_WRITE] - - nfsrvstats.srvvop_writes); + if (run_v4 == 0) + printf("%9d %9d %9d\n", + nfsrvstats.srvvop_writes, + nfsrvstats.srvrpccnt[NFSPROC_WRITE], + nfsrvstats.srvrpccnt[NFSPROC_WRITE] - + nfsrvstats.srvvop_writes); + else + /* + * The new client doesn't do write gathering. It was + * only useful for NFSv2. + */ + printf("%9d %9d %9d\n", + ext_nfsstats.srvrpccnt[NFSPROC_WRITE], + ext_nfsstats.srvrpccnt[NFSPROC_WRITE], 0); } } From owner-svn-src-head@FreeBSD.ORG Wed May 4 20:28:06 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0A89106566C; Wed, 4 May 2011 20:28:06 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 940598FC0C; Wed, 4 May 2011 20:28:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44KS6PV066106; Wed, 4 May 2011 20:28:06 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44KS6JZ066104; Wed, 4 May 2011 20:28:06 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105042028.p44KS6JZ066104@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 20:28:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221457 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 20:28:06 -0000 Author: rmacklem Date: Wed May 4 20:28:06 2011 New Revision: 221457 URL: http://svn.freebsd.org/changeset/base/221457 Log: Update nfsstat.1 to reflect the changes done to nfsstat(1) by r221455. This includes a new "-o" option for displaying statistics from the old NFS client/server and a slightly different description for the "-e" option. This is a content change. Modified: head/usr.bin/nfsstat/nfsstat.1 Modified: head/usr.bin/nfsstat/nfsstat.1 ============================================================================== --- head/usr.bin/nfsstat/nfsstat.1 Wed May 4 20:26:48 2011 (r221456) +++ head/usr.bin/nfsstat/nfsstat.1 Wed May 4 20:28:06 2011 (r221457) @@ -28,7 +28,7 @@ .\" From: @(#)nfsstat.1 8.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd May 1, 2011 +.Dd May 4, 2011 .Dt NFSSTAT 1 .Os .Sh NAME @@ -38,7 +38,7 @@ statistics .Sh SYNOPSIS .Nm -.Op Fl ceszW +.Op Fl ceoszW .Op Fl M Ar core .Op Fl N Ar system .Op Fl w Ar wait @@ -53,6 +53,11 @@ The options are as follows: .Bl -tag -width indent .It Fl c Only display client side statistics. +.It Fl e +Report the extra statistics collected by the new NFS client and +server for NFSv4. +This option is incompatible with +.Fl o . .It Fl M Extract values associated with the name list from the specified core instead of the default @@ -60,6 +65,9 @@ instead of the default .It Fl N Extract the name list from the specified system instead of the default .Pa /boot/kernel/kernel . +.It Fl o +Report statistics for the old NFS client and/or server. Without this +option statistics for the new NFS client and/or server will be reported. .It Fl s Only display server side statistics. .It Fl W @@ -78,9 +86,6 @@ activity for both the client and server second intervals. .It Fl z Reset statistics after displaying them. -.It Fl e -Gather statistics from the experimental nfs subsystem that includes -support for NFSv4 instead of the regular nfs subsystem. .El .Sh FILES .Bl -tag -width ".Pa /boot/kernel/kernel" -compact From owner-svn-src-head@FreeBSD.ORG Wed May 4 21:27:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA2C31065672; Wed, 4 May 2011 21:27:05 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9691C8FC16; Wed, 4 May 2011 21:27:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44LR5X7067934; Wed, 4 May 2011 21:27:05 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44LR5Ho067929; Wed, 4 May 2011 21:27:05 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201105042127.p44LR5Ho067929@svn.freebsd.org> From: Michael Tuexen Date: Wed, 4 May 2011 21:27:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221460 - head/sys/netinet X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 21:27:05 -0000 Author: tuexen Date: Wed May 4 21:27:05 2011 New Revision: 221460 URL: http://svn.freebsd.org/changeset/base/221460 Log: Implement Resource Pooling V2 and an MPTCP like congestion control. Based on a patch received from Martin Becke. MFC after: 2 weeks. Modified: head/sys/netinet/sctp.h head/sys/netinet/sctp_cc_functions.c head/sys/netinet/sctp_sysctl.h head/sys/netinet/sctp_usrreq.c Modified: head/sys/netinet/sctp.h ============================================================================== --- head/sys/netinet/sctp.h Wed May 4 20:29:40 2011 (r221459) +++ head/sys/netinet/sctp.h Wed May 4 21:27:05 2011 (r221460) @@ -265,6 +265,13 @@ struct sctp_paramhdr { #define SCTP_CC_OPT_USE_DCCC_ECN 0x00002001 #define SCTP_CC_OPT_STEADY_STEP 0x00002002 +#define SCTP_CMT_OFF 0 +#define SCTP_CMT_BASE 1 +#define SCTP_CMT_RPV1 2 +#define SCTP_CMT_RPV2 3 +#define SCTP_CMT_MPTCP 4 +#define SCTP_CMT_MAX SCTP_CMT_MPTCP + /* RS - Supported stream scheduling modules for pluggable * stream scheduling */ Modified: head/sys/netinet/sctp_cc_functions.c ============================================================================== --- head/sys/netinet/sctp_cc_functions.c Wed May 4 20:29:40 2011 (r221459) +++ head/sys/netinet/sctp_cc_functions.c Wed May 4 21:27:05 2011 (r221460) @@ -47,6 +47,10 @@ #include __FBSDID("$FreeBSD$"); +#define SHIFT_MPTCP_MULTI_N 40 +#define SHIFT_MPTCP_MULTI_Z 16 +#define SHIFT_MPTCP_MULTI 8 + static void sctp_set_initial_cc_param(struct sctp_tcb *stcb, struct sctp_nets *net) { @@ -67,7 +71,8 @@ sctp_set_initial_cc_param(struct sctp_tc cwnd_in_mtu = assoc->max_burst; net->cwnd = (net->mtu - sizeof(struct sctphdr)) * cwnd_in_mtu; } - if (stcb->asoc.sctp_cmt_on_off == 2) { + if ((stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV1) || + (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV2)) { /* In case of resource pooling initialize appropriately */ net->cwnd /= assoc->numnets; if (net->cwnd < (net->mtu - sizeof(struct sctphdr))) { @@ -91,14 +96,23 @@ sctp_cwnd_update_after_fr(struct sctp_tc { struct sctp_nets *net; uint32_t t_ssthresh, t_cwnd; + uint64_t t_ucwnd_sbw; /* MT FIXME: Don't compute this over and over again */ t_ssthresh = 0; t_cwnd = 0; - if (asoc->sctp_cmt_on_off == 2) { + t_ucwnd_sbw = 0; + if ((asoc->sctp_cmt_on_off == SCTP_CMT_RPV1) || + (asoc->sctp_cmt_on_off == SCTP_CMT_RPV2)) { TAILQ_FOREACH(net, &asoc->nets, sctp_next) { t_ssthresh += net->ssthresh; t_cwnd += net->cwnd; + if (net->lastsa > 0) { + t_ucwnd_sbw += (uint64_t) net->cwnd / (uint64_t) net->lastsa; + } + } + if (t_ucwnd_sbw == 0) { + t_ucwnd_sbw = 1; } } /*- @@ -119,11 +133,37 @@ sctp_cwnd_update_after_fr(struct sctp_tc struct sctp_tmit_chunk *lchk; int old_cwnd = net->cwnd; - if (asoc->sctp_cmt_on_off == 2) { - net->ssthresh = (uint32_t) (((uint64_t) 4 * - (uint64_t) net->mtu * - (uint64_t) net->ssthresh) / - (uint64_t) t_ssthresh); + if ((asoc->sctp_cmt_on_off == SCTP_CMT_RPV1) || + (asoc->sctp_cmt_on_off == SCTP_CMT_RPV2)) { + if (asoc->sctp_cmt_on_off == SCTP_CMT_RPV1) { + net->ssthresh = (uint32_t) (((uint64_t) 4 * + (uint64_t) net->mtu * + (uint64_t) net->ssthresh) / + (uint64_t) t_ssthresh); + + } + if (asoc->sctp_cmt_on_off == SCTP_CMT_RPV2) { + uint32_t srtt; + + srtt = net->lastsa; + /* + * lastsa>>3; we don't need + * to devide ... + */ + if (srtt == 0) { + srtt = 1; + } + /* + * Short Version => Equal to + * Contel Version MBe + */ + net->ssthresh = (uint32_t) (((uint64_t) 4 * + (uint64_t) net->mtu * + (uint64_t) net->cwnd) / + ((uint64_t) srtt * + t_ucwnd_sbw)); + /* INCREASE FACTOR */ ; + } if ((net->cwnd > t_cwnd / 2) && (net->ssthresh < net->cwnd - t_cwnd / 2)) { net->ssthresh = net->cwnd - t_cwnd / 2; @@ -629,14 +669,47 @@ sctp_cwnd_update_after_sack_common(struc struct sctp_nets *net; int old_cwnd; uint32_t t_ssthresh, t_cwnd, incr; + uint64_t t_ucwnd_sbw; + uint64_t t_path_mptcp; + uint64_t mptcp_like_alpha; + uint32_t srtt; + uint64_t max_path; /* MT FIXME: Don't compute this over and over again */ t_ssthresh = 0; t_cwnd = 0; - if (stcb->asoc.sctp_cmt_on_off == 2) { + t_ucwnd_sbw = 0; + t_path_mptcp = 0; + mptcp_like_alpha = 1; + if ((stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV1) || + (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV2) || + (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_MPTCP)) { + max_path = 0; TAILQ_FOREACH(net, &stcb->asoc.nets, sctp_next) { t_ssthresh += net->ssthresh; t_cwnd += net->cwnd; + /* lastsa>>3; we don't need to devide ... */ + srtt = net->lastsa; + if (srtt > 0) { + uint64_t tmp; + + t_ucwnd_sbw += (uint64_t) net->cwnd / (uint64_t) srtt; + t_path_mptcp += (((uint64_t) net->cwnd) << SHIFT_MPTCP_MULTI_Z) / + (((uint64_t) net->mtu) * (uint64_t) srtt); + tmp = (((uint64_t) net->cwnd) << SHIFT_MPTCP_MULTI_N) / + ((uint64_t) net->mtu * (uint64_t) (srtt * srtt)); + if (tmp > max_path) { + max_path = tmp; + } + } + } + if (t_ucwnd_sbw == 0) { + t_ucwnd_sbw = 1; + } + if (t_path_mptcp > 0) { + mptcp_like_alpha = max_path / (t_path_mptcp * t_path_mptcp); + } else { + mptcp_like_alpha = 1; } } /******************************/ @@ -818,10 +891,11 @@ sctp_cwnd_update_after_sack_common(struc if (net->cwnd <= net->ssthresh) { /* We are in slow start */ if (net->flight_size + net->net_ack >= net->cwnd) { - old_cwnd = net->cwnd; - if (stcb->asoc.sctp_cmt_on_off == 2) { - uint32_t limit; + uint32_t limit; + old_cwnd = net->cwnd; + switch (asoc->sctp_cmt_on_off) { + case SCTP_CMT_RPV1: limit = (uint32_t) (((uint64_t) net->mtu * (uint64_t) SCTP_BASE_SYSCTL(sctp_L2_abc_variable) * (uint64_t) net->ssthresh) / @@ -835,11 +909,56 @@ sctp_cwnd_update_after_sack_common(struc if (incr == 0) { incr = 1; } - } else { + break; + case SCTP_CMT_RPV2: + /* + * lastsa>>3; we don't need + * to divide ... + */ + srtt = net->lastsa; + if (srtt == 0) { + srtt = 1; + } + limit = (uint32_t) (((uint64_t) net->mtu * + (uint64_t) SCTP_BASE_SYSCTL(sctp_L2_abc_variable) * + (uint64_t) net->cwnd) / + ((uint64_t) srtt * t_ucwnd_sbw)); + /* INCREASE FACTOR */ + incr = (uint32_t) (((uint64_t) net->net_ack * + (uint64_t) net->cwnd) / + ((uint64_t) srtt * t_ucwnd_sbw)); + /* INCREASE FACTOR */ + if (incr > limit) { + incr = limit; + } + if (incr == 0) { + incr = 1; + } + break; + case SCTP_CMT_MPTCP: + limit = (uint32_t) (((uint64_t) net->mtu * + mptcp_like_alpha * + (uint64_t) SCTP_BASE_SYSCTL(sctp_L2_abc_variable)) >> + SHIFT_MPTCP_MULTI); + incr = (uint32_t) (((uint64_t) net->net_ack * + mptcp_like_alpha) >> + SHIFT_MPTCP_MULTI); + if (incr > limit) { + incr = limit; + } + if (incr > net->net_ack) { + incr = net->net_ack; + } + if (incr > net->mtu) { + incr = net->mtu; + } + break; + default: incr = net->net_ack; if (incr > net->mtu * SCTP_BASE_SYSCTL(sctp_L2_abc_variable)) { incr = net->mtu * SCTP_BASE_SYSCTL(sctp_L2_abc_variable); } + break; } net->cwnd += incr; if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_CWND_MONITOR_ENABLE) { @@ -868,15 +987,44 @@ sctp_cwnd_update_after_sack_common(struc (net->partial_bytes_acked >= net->cwnd)) { net->partial_bytes_acked -= net->cwnd; old_cwnd = net->cwnd; - if (asoc->sctp_cmt_on_off == 2) { + switch (asoc->sctp_cmt_on_off) { + case SCTP_CMT_RPV1: incr = (uint32_t) (((uint64_t) net->mtu * (uint64_t) net->ssthresh) / (uint64_t) t_ssthresh); if (incr == 0) { incr = 1; } - } else { + break; + case SCTP_CMT_RPV2: + /* + * lastsa>>3; we don't need + * to divide ... + */ + srtt = net->lastsa; + if (srtt == 0) { + srtt = 1; + } + incr = (uint32_t) ((uint64_t) net->mtu * + (uint64_t) net->cwnd / + ((uint64_t) srtt * + t_ucwnd_sbw)); + /* INCREASE FACTOR */ + if (incr == 0) { + incr = 1; + } + break; + case SCTP_CMT_MPTCP: + incr = (uint32_t) ((mptcp_like_alpha * + (uint64_t) net->cwnd) >> + SHIFT_MPTCP_MULTI); + if (incr > net->mtu) { + incr = net->mtu; + } + break; + default: incr = net->mtu; + break; } net->cwnd += incr; SDT_PROBE(sctp, cwnd, net, ack, @@ -926,21 +1074,49 @@ sctp_cwnd_update_after_timeout(struct sc { int old_cwnd = net->cwnd; uint32_t t_ssthresh, t_cwnd; + uint64_t t_ucwnd_sbw; /* MT FIXME: Don't compute this over and over again */ t_ssthresh = 0; t_cwnd = 0; - if (stcb->asoc.sctp_cmt_on_off == 2) { + if ((stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV1) || + (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV2)) { struct sctp_nets *lnet; + uint32_t srtt; + t_ucwnd_sbw = 0; TAILQ_FOREACH(lnet, &stcb->asoc.nets, sctp_next) { t_ssthresh += lnet->ssthresh; t_cwnd += lnet->cwnd; + srtt = lnet->lastsa; + /* lastsa>>3; we don't need to divide ... */ + if (srtt > 0) { + t_ucwnd_sbw += (uint64_t) lnet->cwnd / (uint64_t) srtt; + } + } + if (t_ucwnd_sbw < 1) { + t_ucwnd_sbw = 1; + } + if (stcb->asoc.sctp_cmt_on_off == SCTP_CMT_RPV1) { + net->ssthresh = (uint32_t) (((uint64_t) 4 * + (uint64_t) net->mtu * + (uint64_t) net->ssthresh) / + (uint64_t) t_ssthresh); + } else { + uint64_t cc_delta; + + srtt = net->lastsa; + /* lastsa>>3; we don't need to divide ... */ + if (srtt == 0) { + srtt = 1; + } + cc_delta = t_ucwnd_sbw * (uint64_t) srtt / 2; + if (cc_delta < t_cwnd) { + net->ssthresh = (uint32_t) ((uint64_t) t_cwnd - cc_delta); + } else { + net->ssthresh = net->mtu; + } } - net->ssthresh = (uint32_t) (((uint64_t) 4 * - (uint64_t) net->mtu * - (uint64_t) net->ssthresh) / - (uint64_t) t_ssthresh); if ((net->cwnd > t_cwnd / 2) && (net->ssthresh < net->cwnd - t_cwnd / 2)) { net->ssthresh = net->cwnd - t_cwnd / 2; Modified: head/sys/netinet/sctp_sysctl.h ============================================================================== --- head/sys/netinet/sctp_sysctl.h Wed May 4 20:29:40 2011 (r221459) +++ head/sys/netinet/sctp_sysctl.h Wed May 4 21:27:05 2011 (r221460) @@ -336,9 +336,9 @@ struct sctp_sysctl { /* cmt_on_off: CMT on/off flag */ #define SCTPCTL_CMT_ON_OFF_DESC "CMT settings" -#define SCTPCTL_CMT_ON_OFF_MIN 0 -#define SCTPCTL_CMT_ON_OFF_MAX 2 -#define SCTPCTL_CMT_ON_OFF_DEFAULT 0 +#define SCTPCTL_CMT_ON_OFF_MIN SCTP_CMT_OFF +#define SCTPCTL_CMT_ON_OFF_MAX SCTP_CMT_MAX +#define SCTPCTL_CMT_ON_OFF_DEFAULT SCTP_CMT_OFF /* EY - nr_sack_on_off: NR_SACK on/off flag */ #define SCTPCTL_NR_SACK_ON_OFF_DESC "NR_SACK on/off flag" Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Wed May 4 20:29:40 2011 (r221459) +++ head/sys/netinet/sctp_usrreq.c Wed May 4 21:27:05 2011 (r221460) @@ -2992,18 +2992,22 @@ sctp_setopt(struct socket *so, int optna SCTP_CHECK_AND_CAST(av, optval, struct sctp_assoc_value, optsize); SCTP_FIND_STCB(inp, stcb, av->assoc_id); if (stcb) { - stcb->asoc.sctp_cmt_on_off = av->assoc_value; - if (stcb->asoc.sctp_cmt_on_off > 2) { - stcb->asoc.sctp_cmt_on_off = 2; + if (av->assoc_value > SCTP_CMT_MAX) { + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); + error = EINVAL; + } else { + stcb->asoc.sctp_cmt_on_off = av->assoc_value; } SCTP_TCB_UNLOCK(stcb); } else { - SCTP_INP_WLOCK(inp); - inp->sctp_cmt_on_off = av->assoc_value; - if (inp->sctp_cmt_on_off > 2) { - inp->sctp_cmt_on_off = 2; + if (av->assoc_value > SCTP_CMT_MAX) { + SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL); + error = EINVAL; + } else { + SCTP_INP_WLOCK(inp); + inp->sctp_cmt_on_off = av->assoc_value; + SCTP_INP_WUNLOCK(inp); } - SCTP_INP_WUNLOCK(inp); } } else { SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, ENOPROTOOPT); From owner-svn-src-head@FreeBSD.ORG Wed May 4 21:49:35 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E39E106564A; Wed, 4 May 2011 21:49:35 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1AAB18FC0A; Wed, 4 May 2011 21:49:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44LnZgu068627; Wed, 4 May 2011 21:49:35 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44LnYr1068623; Wed, 4 May 2011 21:49:34 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201105042149.p44LnYr1068623@svn.freebsd.org> From: Jilles Tjoelker Date: Wed, 4 May 2011 21:49:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221461 - in head: bin/sh tools/regression/bin/sh/errors X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 21:49:35 -0000 Author: jilles Date: Wed May 4 21:49:34 2011 New Revision: 221461 URL: http://svn.freebsd.org/changeset/base/221461 Log: sh: Detect an error for ${#var}. In particular, this makes things like ${#foo[0]} and ${#foo[@]} errors rather than silent equivalents of ${#foo}. PR: bin/151720 Submitted by: Mark Johnston Exp-run done by: pav (with some other sh(1) changes) Added: head/tools/regression/bin/sh/errors/bad-parm-exp6.2 (contents, props changed) head/tools/regression/bin/sh/errors/bad-parm-exp6.2.stderr (contents, props changed) Modified: head/bin/sh/parser.c Modified: head/bin/sh/parser.c ============================================================================== --- head/bin/sh/parser.c Wed May 4 21:27:05 2011 (r221460) +++ head/bin/sh/parser.c Wed May 4 21:49:34 2011 (r221461) @@ -1569,6 +1569,8 @@ varname: } } } else if (subtype != VSERROR) { + if (subtype == VSLENGTH && c != '}') + subtype = VSERROR; pungetc(); } STPUTC('=', out); Added: head/tools/regression/bin/sh/errors/bad-parm-exp6.2 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/errors/bad-parm-exp6.2 Wed May 4 21:49:34 2011 (r221461) @@ -0,0 +1,2 @@ +# $FreeBSD$ +${#foo^} Added: head/tools/regression/bin/sh/errors/bad-parm-exp6.2.stderr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/errors/bad-parm-exp6.2.stderr Wed May 4 21:49:34 2011 (r221461) @@ -0,0 +1 @@ +./errors/bad-parm-exp6.2: ${foo...}: Bad substitution From owner-svn-src-head@FreeBSD.ORG Wed May 4 22:02:34 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BB25106564A; Wed, 4 May 2011 22:02:34 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 288EC8FC12; Wed, 4 May 2011 22:02:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44M2Y4D069060; Wed, 4 May 2011 22:02:34 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44M2YeZ069058; Wed, 4 May 2011 22:02:34 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105042202.p44M2YeZ069058@svn.freebsd.org> From: Rick Macklem Date: Wed, 4 May 2011 22:02:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221462 - head/sys/fs/nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 22:02:34 -0000 Author: rmacklem Date: Wed May 4 22:02:33 2011 New Revision: 221462 URL: http://svn.freebsd.org/changeset/base/221462 Log: Add a comment noting that the NFS code assumes that the values of error numbers in sys/errno.h will be the same as the ones specified by the NFS RFCs and that the code needs to be fixed if error numbers are changed in sys/errno.h. Suggested by: Peter Jeremy MFC after: 2 weeks Modified: head/sys/fs/nfs/nfsproto.h Modified: head/sys/fs/nfs/nfsproto.h ============================================================================== --- head/sys/fs/nfs/nfsproto.h Wed May 4 21:49:34 2011 (r221461) +++ head/sys/fs/nfs/nfsproto.h Wed May 4 22:02:33 2011 (r221462) @@ -66,6 +66,14 @@ #define NFSV4_SMALLSTR 50 /* Strings small enough for stack */ /* Stat numbers for rpc returns (version 2, 3 and 4) */ +/* + * These numbers are hard-wired in the RFCs, so they can't be changed. + * The code currently assumes that the ones < 10000 are the same as + * sys/errno.h and that sys/errno.h will never go as high as 10000. + * If the value in sys/errno.h of any entry listed below is changed, + * the NFS code must be modified to do the mapping between them. + * (You can ignore NFSERR_WFLUSH, since it is never actually used.) + */ #define NFSERR_OK 0 #define NFSERR_PERM 1 #define NFSERR_NOENT 2 From owner-svn-src-head@FreeBSD.ORG Wed May 4 22:12:22 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE6701065676; Wed, 4 May 2011 22:12:22 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BACD88FC12; Wed, 4 May 2011 22:12:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44MCM6D069443; Wed, 4 May 2011 22:12:22 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44MCMQa069440; Wed, 4 May 2011 22:12:22 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201105042212.p44MCMQa069440@svn.freebsd.org> From: Jilles Tjoelker Date: Wed, 4 May 2011 22:12:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221463 - in head: bin/sh tools/regression/bin/sh/expansion X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 22:12:22 -0000 Author: jilles Date: Wed May 4 22:12:22 2011 New Revision: 221463 URL: http://svn.freebsd.org/changeset/base/221463 Log: sh: Apply set -u to variables in arithmetic. Note that this only applies to variables that are actually used. Things like (0 && unsetvar) do not cause an error. Exp-run done by: pav (with some other sh(1) changes) Added: head/tools/regression/bin/sh/expansion/set-u3.0 (contents, props changed) Modified: head/bin/sh/arith_yacc.c Modified: head/bin/sh/arith_yacc.c ============================================================================== --- head/bin/sh/arith_yacc.c Wed May 4 22:02:33 2011 (r221462) +++ head/bin/sh/arith_yacc.c Wed May 4 22:12:22 2011 (r221463) @@ -97,6 +97,8 @@ static arith_t arith_lookupvarint(char * arith_t result; str = lookupvar(varname); + if (uflag && str == NULL) + yyerror("variable not set"); if (str == NULL || *str == '\0') str = "0"; errno = 0; Added: head/tools/regression/bin/sh/expansion/set-u3.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/expansion/set-u3.0 Wed May 4 22:12:22 2011 (r221463) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +set -u +unset x +v=$( (eval ': $((x))') 2>&1 >/dev/null) +[ $? -ne 0 ] && [ -n "$v" ] From owner-svn-src-head@FreeBSD.ORG Wed May 4 23:07:31 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 11960106564A; Wed, 4 May 2011 23:07:31 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F33FC8FC0C; Wed, 4 May 2011 23:07:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44N7USW071067; Wed, 4 May 2011 23:07:30 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44N7UJY071065; Wed, 4 May 2011 23:07:30 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201105042307.p44N7UJY071065@svn.freebsd.org> From: Navdeep Parhar Date: Wed, 4 May 2011 23:07:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221464 - head/sys/dev/cxgbe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 23:07:31 -0000 Author: np Date: Wed May 4 23:07:30 2011 New Revision: 221464 URL: http://svn.freebsd.org/changeset/base/221464 Log: Always re-arm an iq's interrupt before leaving the handler. MFC after: 1 week Modified: head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Wed May 4 22:12:22 2011 (r221463) +++ head/sys/dev/cxgbe/t4_sge.c Wed May 4 23:07:30 2011 (r221464) @@ -499,11 +499,8 @@ t4_intr_fwd(void *arg) iq_next(iq); } - if (ndesc_total > 0) { - t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS), - V_CIDXINC(ndesc_pending) | V_INGRESSQID((u32)iq->cntxt_id) | - V_SEINTARM(iq->intr_params)); - } + t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS), V_CIDXINC(ndesc_pending) | + V_INGRESSQID((u32)iq->cntxt_id) | V_SEINTARM(iq->intr_params)); atomic_cmpset_32(&iq->state, IQS_BUSY, IQS_IDLE); } @@ -601,11 +598,8 @@ t4_evt_rx(void *arg) iq_next(iq); } - if (ndesc_total > 0) { - t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS), - V_CIDXINC(ndesc_pending) | V_INGRESSQID(iq->cntxt_id) | - V_SEINTARM(iq->intr_params)); - } + t4_write_reg(sc, MYPF_REG(A_SGE_PF_GTS), V_CIDXINC(ndesc_pending) | + V_INGRESSQID(iq->cntxt_id) | V_SEINTARM(iq->intr_params)); } void From owner-svn-src-head@FreeBSD.ORG Wed May 4 23:34:10 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D23B4106566B; Wed, 4 May 2011 23:34:10 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BE7258FC13; Wed, 4 May 2011 23:34:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44NYAXt071900; Wed, 4 May 2011 23:34:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44NYA5h071896; Wed, 4 May 2011 23:34:10 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105042334.p44NYA5h071896@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 4 May 2011 23:34:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221465 - head/release/powerpc X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 23:34:10 -0000 Author: nwhitehorn Date: Wed May 4 23:34:10 2011 New Revision: 221465 URL: http://svn.freebsd.org/changeset/base/221465 Log: Change the way powerpc bootable CDs are generated to work around a bug in hybrid image generation in cdrtools. This produces a small HFS partition containing loader, mapped in by an oddly-formed APM table using a new feature in makefs. This does not appear to work yet on early-model G3 systems, which will be fixed later, but produces bootable CDs on everything else. Added: head/release/powerpc/generate-hfs.sh - copied, changed from r219439, head/sys/boot/powerpc/boot1.chrp/generate-hfs.sh head/release/powerpc/hfs-boot.bz2.uu (contents, props changed) Deleted: head/release/powerpc/hfs.map Modified: head/release/powerpc/mkisoimages.sh Copied and modified: head/release/powerpc/generate-hfs.sh (from r219439, head/sys/boot/powerpc/boot1.chrp/generate-hfs.sh) ============================================================================== --- head/sys/boot/powerpc/boot1.chrp/generate-hfs.sh Wed Mar 9 23:11:30 2011 (r219439, copy source) +++ head/release/powerpc/generate-hfs.sh Wed May 4 23:34:10 2011 (r221465) @@ -12,16 +12,14 @@ # $FreeBSD$ -HFS_SIZE=1600 #Size in 512-byte blocks of the produced image - -CHRPBOOT_SIZE=2k -BOOT1_SIZE=30k +HFS_SIZE=400 #Size in 2048-byte blocks of the produced image +LOADER_SIZE=300k # Generate 800K HFS image -OUTPUT_FILE=hfs.tmpl +OUTPUT_FILE=hfs-boot -dd if=/dev/zero of=$OUTPUT_FILE bs=512 count=$HFS_SIZE -hformat -l "FreeBSD Bootstrap" $OUTPUT_FILE +dd if=/dev/zero of=$OUTPUT_FILE bs=2048 count=$HFS_SIZE +hformat -l "FreeBSD Install" $OUTPUT_FILE hmount $OUTPUT_FILE # Create and bless a directory for the boot loader @@ -29,33 +27,35 @@ hmkdir ppc hattrib -b ppc hcd ppc -# Make two dummy files for the the CHRP boot script and boot1 -echo 'Bootinfo START' | dd of=bootinfo.txt.tmp cbs=$CHRPBOOT_SIZE count=1 conv=block -echo 'Boot1 START' | dd of=boot1.elf.tmp cbs=$BOOT1_SIZE count=1 conv=block +# Make the CHRP boot script, which gets loader from the ISO9660 partition +cat > bootinfo.txt << EOF + +FreeBSD/powerpc bootloader +FreeBSD + $FreeBSD: head/sys/boot/powerpc/boot1.chrp/bootinfo.txt 184490 2008-10 +-31 00:52:31Z nwhitehorn $ + + +MacRISC MacRISC3 MacRISC4 + + +" screen" output +boot &device;:,\ppc\loader &device;:0 + + +EOF +echo 'Loader START' | dd of=loader.tmp cbs=$LOADER_SIZE count=1 conv=block -hcopy boot1.elf.tmp :boot1.elf -hcopy bootinfo.txt.tmp :bootinfo.txt +hcopy bootinfo.txt :bootinfo.txt +hcopy loader.tmp :loader hattrib -c chrp -t tbxi bootinfo.txt humount -rm bootinfo.txt.tmp -rm boot1.elf.tmp - -# Locate the offsets of the two fake files -BOOTINFO_OFFSET=$(hd $OUTPUT_FILE | grep 'Bootinfo START' | cut -f 1 -d ' ') -BOOT1_OFFSET=$(hd $OUTPUT_FILE | grep 'Boot1 START' | cut -f 1 -d ' ') - -# Convert to numbers of blocks -BOOTINFO_OFFSET=$(echo 0x$BOOTINFO_OFFSET | awk '{printf("%x\n",$1/512);}') -BOOT1_OFFSET=$(echo 0x$BOOT1_OFFSET | awk '{printf("%x\n",$1/512);}') - -echo '# This file autogenerated by generate-hfs.sh - DO NOT EDIT' > Makefile.hfs -echo '# $FreeBSD$' >> Makefile.hfs -echo "BOOTINFO_OFFSET=0x$BOOTINFO_OFFSET" >> Makefile.hfs -echo "BOOT1_OFFSET=0x$BOOT1_OFFSET" >> Makefile.hfs +rm bootinfo.txt +rm loader.tmp bzip2 $OUTPUT_FILE -echo 'HFS template boot filesystem created by generate-hfs.sh' > $OUTPUT_FILE.bz2.uu +echo 'HFS boot filesystem created by generate-hfs.sh' > $OUTPUT_FILE.bz2.uu echo 'DO NOT EDIT' >> $OUTPUT_FILE.bz2.uu echo '$FreeBSD$' >> $OUTPUT_FILE.bz2.uu Added: head/release/powerpc/hfs-boot.bz2.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/release/powerpc/hfs-boot.bz2.uu Wed May 4 23:34:10 2011 (r221465) @@ -0,0 +1,23 @@ +HFS boot filesystem created by generate-hfs.sh +DO NOT EDIT +$FreeBSD$ +begin 644 hfs-boot.bz2 +M0EIH.3%!62936=#$Y.(``"___?_O_G)7!_Y]OW??5#]U_^!`0`,@1`!!``!@ +M(0!`3,`"L"4.2U"2(H9%/:*>TFDVU3RGZID'J&C3U,@T-&@`/1!H>IZC1D#( +M`D24TTRFC1D]*;$@!IZ@Q!IH-````#0&33":?J@<:&AH:`:`Q`T!D``&F@`: +M`9````PDI1J>0Q,H/1J&@```!D-`````T-``#SZHHR(+Y*Y9J*Z:4KK=T]W@ +M4RV\LG/;0XDPC7^`9DO3/3&*].462T,NO#AA9C,O\0!)^Q@@S6";2`!);?8(B6BR1(-7Q*8?>>HPQSBQE>M$A9K6FFW<:#6[D931J%U.F8*`0 +MD(,M80A(0;]K'X'SI]G(C)Y).AK_/0)D(2$$]JB$]]F').M4RF8O%[IHK[0O +MMQ?'>O[U8EM;>U",KY^*%FO9C05_435?.4*F[6AIL%&9C<9W&& +M[ZMP(TG!'*4Z>@6TM)0BS.D._O,WR9OJ728V48I;DD=8QGBE7J-&L^?=0JEF +MV2`B/)/D\)83IS@32(;!P,152U()0VGQH>2F$UC:M!D5`F#1W$\:KKDR[TQB +MN;N5B1;P!7:AG#1BP2%-Q$7I6QE,Y?NHIK_LR+HA]22HW0.8(^G4/X`Z@!Z6 +8#PQ(0))/`A(0.'VUG_\7&1 | grep " is " >/dev/null -if [ $? -ne 0 ]; then - echo The cdrtools port is not installed. Trying to get it now. - if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then - cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean - else - if ! pkg_add -r cdrtools; then - echo "Could not get it via pkg_add - please go install this" - echo "from the ports collection and run this script again." - exit 2 - fi - fi -fi - LABEL=$1; shift NAME=$1; shift -echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab -mkisofs $bootable -l -r -part -no-desktop -V $LABEL -o $NAME $* +echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab +makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $* rm $1/etc/fstab - +rm /tmp/hfs-boot-block From owner-svn-src-head@FreeBSD.ORG Wed May 4 23:41:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00943106566C; Wed, 4 May 2011 23:41:12 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E02838FC19; Wed, 4 May 2011 23:41:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p44NfBma072139; Wed, 4 May 2011 23:41:11 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p44NfBMZ072133; Wed, 4 May 2011 23:41:11 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105042341.p44NfBMZ072133@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 4 May 2011 23:41:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221466 - in head/release: . amd64 i386 pc98 sun4v X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 May 2011 23:41:12 -0000 Author: nwhitehorn Date: Wed May 4 23:41:11 2011 New Revision: 221466 URL: http://svn.freebsd.org/changeset/base/221466 Log: Repair release CD generation on PC98 and sun4v after release building changes, and backport the new logic (ISO images are TARGET dependant, not TARGET_CPUARCH dependant) to Makefile.sysinstall. While modifying ISO image scripts, change several archs to use makefs (from base) instead of mkisofs (from ports) which makes release CD generation both faster and self-hosting. Added: head/release/pc98/mkisoimages.sh - copied, changed from r221440, head/release/i386/mkisoimages.sh head/release/sun4v/mkisoimages.sh - copied unchanged from r221440, head/release/sparc64/mkisoimages.sh Modified: head/release/Makefile.sysinstall head/release/amd64/mkisoimages.sh head/release/i386/mkisoimages.sh Modified: head/release/Makefile.sysinstall ============================================================================== --- head/release/Makefile.sysinstall Wed May 4 23:34:10 2011 (r221465) +++ head/release/Makefile.sysinstall Wed May 4 23:41:11 2011 (r221466) @@ -1136,35 +1136,35 @@ CD_DVD1_PKGS= ${CD_PACKAGE_TREE}/dvd1 .endif iso.1: -.if exists(${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh) +.if exists(${.CURDIR}/${TARGET}/mkisoimages.sh) @echo "Creating ISO images..." .if defined(CD_BOOT) - @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \ + @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \ FreeBSD_bootonly \ ${CD}/FreeBSD-${BUILDNAME}-${TARGET}-bootonly.iso ${CD_BOOT} .endif - @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \ + @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \ FreeBSD_Install \ ${CD}/FreeBSD-${BUILDNAME}-${TARGET}-disc1.iso ${CD_DISC1} \ ${CD_DISC1_PKGS} - @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh \ + @sh ${.CURDIR}/${TARGET}/mkisoimages.sh \ FreeBSD_Packages \ ${CD}/FreeBSD-${BUILDNAME}-${TARGET}-disc2.iso ${CD_DISC2} \ ${CD_DISC2_PKGS} .if defined(MAKE_DVD) - @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \ + @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \ FreeBSD_Install \ ${CD}/FreeBSD-${BUILDNAME}-${TARGET}-dvd1.iso ${CD_DVD1} \ ${CD_DVD1_PKGS} .endif .if !defined(NODOC) - @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh \ + @sh ${.CURDIR}/${TARGET}/mkisoimages.sh \ FreeBSD_Documentation \ ${CD}/FreeBSD-${BUILDNAME}-${TARGET}-disc3.iso ${CD_DOCS} \ ${CD_DOCS_PKGS} .endif .if defined(SEPARATE_LIVEFS) - @sh ${.CURDIR}/${TARGET_CPUARCH}/mkisoimages.sh ${BOOTABLE} \ + @sh ${.CURDIR}/${TARGET}/mkisoimages.sh ${BOOTABLE} \ FreeBSD_LiveFS \ ${CD}/FreeBSD-${BUILDNAME}-${TARGET}-livefs.iso ${CD_LIVEFS} .endif @@ -1173,7 +1173,7 @@ iso.1: @(cd ${CD} && sha256 *.iso > FreeBSD-${BUILDNAME}-${TARGET}-iso.CHECKSUM.SHA256) touch ${.TARGET} .else - @echo "Do not know how to create an ISO for ${TARGET_CPUARCH}." + @echo "Do not know how to create an ISO for ${TARGET}." .endif # Modified: head/release/amd64/mkisoimages.sh ============================================================================== --- head/release/amd64/mkisoimages.sh Wed May 4 23:34:10 2011 (r221465) +++ head/release/amd64/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466) @@ -26,7 +26,7 @@ publisher="The FreeBSD Project. http://www.freebsd.org/" if [ "x$1" = "x-b" ]; then # This is highly x86-centric and will be used directly below. - bootable="-b boot/cdboot -no-emul-boot" + bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" shift else bootable="" @@ -37,24 +37,9 @@ if [ $# -lt 3 ]; then exit 1 fi -type mkisofs 2>&1 | grep " is " >/dev/null -if [ $? -ne 0 ]; then - echo The cdrtools port is not installed. Trying to get it now. - if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then - cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean - else - if ! pkg_add -r cdrtools; then - echo "Could not get it via pkg_add - please go install this" - echo "from the ports collection and run this script again." - exit 2 - fi - fi -fi - LABEL=$1; shift NAME=$1; shift -echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab -mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $* +echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab +makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $* rm $1/etc/fstab - Modified: head/release/i386/mkisoimages.sh ============================================================================== --- head/release/i386/mkisoimages.sh Wed May 4 23:34:10 2011 (r221465) +++ head/release/i386/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466) @@ -24,40 +24,22 @@ # into base-bits-dir as part of making the image. publisher="The FreeBSD Project. http://www.freebsd.org/" - if [ "x$1" = "x-b" ]; then - bootable="-b boot/cdboot -no-emul-boot" - shift -elif [ "x$1" = "x-G" ]; then - bootable="-G /R/cdrom/bootonly/boot/cdboot" + # This is highly x86-centric and will be used directly below. + bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" shift else bootable="" fi if [ $# -lt 3 ]; then - echo Usage: $0 '[-bG] image-label image-name base-bits-dir [extra-bits-dir]' + echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' exit 1 fi -type mkisofs 2>&1 | grep " is " >/dev/null -if [ $? -ne 0 ]; then - echo The cdrtools port is not installed. Trying to get it now. - if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then - cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean - else - if ! pkg_add -r cdrtools; then - echo "Could not get it via pkg_add - please go install this" - echo "from the ports collection and run this script again." - exit 2 - fi - fi -fi - LABEL=$1; shift NAME=$1; shift -echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab -mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $* +echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab +makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $* rm $1/etc/fstab - Copied and modified: head/release/pc98/mkisoimages.sh (from r221440, head/release/i386/mkisoimages.sh) ============================================================================== --- head/release/i386/mkisoimages.sh Wed May 4 13:50:37 2011 (r221440, copy source) +++ head/release/pc98/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466) @@ -24,40 +24,22 @@ # into base-bits-dir as part of making the image. publisher="The FreeBSD Project. http://www.freebsd.org/" - if [ "x$1" = "x-b" ]; then - bootable="-b boot/cdboot -no-emul-boot" - shift -elif [ "x$1" = "x-G" ]; then - bootable="-G /R/cdrom/bootonly/boot/cdboot" + # This is highly x86-centric and will be used directly below. + bootable="-o generic-bootimage=$4/boot/cdboot" shift else bootable="" fi if [ $# -lt 3 ]; then - echo Usage: $0 '[-bG] image-label image-name base-bits-dir [extra-bits-dir]' + echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' exit 1 fi -type mkisofs 2>&1 | grep " is " >/dev/null -if [ $? -ne 0 ]; then - echo The cdrtools port is not installed. Trying to get it now. - if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then - cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean - else - if ! pkg_add -r cdrtools; then - echo "Could not get it via pkg_add - please go install this" - echo "from the ports collection and run this script again." - exit 2 - fi - fi -fi - LABEL=$1; shift NAME=$1; shift -echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab -mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $* +echo "/dev/iso9660/`echo $LABEL | tr '[:lower:]' '[:upper:]'` / cd9660 ro 0 0" > $1/etc/fstab +makefs -t cd9660 $bootable -o rockridge -o label=$LABEL $NAME $* rm $1/etc/fstab - Copied: head/release/sun4v/mkisoimages.sh (from r221440, head/release/sparc64/mkisoimages.sh) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/release/sun4v/mkisoimages.sh Wed May 4 23:41:11 2011 (r221466, copy of r221440, head/release/sparc64/mkisoimages.sh) @@ -0,0 +1,72 @@ +#!/bin/sh +# +# Module: mkisoimages.sh +# Author: Jordan K Hubbard +# Date: 22 June 2001 +# +# $FreeBSD$ +# +# This script is used by release/Makefile to build the (optional) ISO images +# for a FreeBSD release. It is considered architecture dependent since each +# platform has a slightly unique way of making bootable CDs. This script +# is also allowed to generate any number of images since that is more of +# publishing decision than anything else. +# +# Usage: +# +# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir] +# +# Where -b is passed if the ISO image should be made "bootable" by +# whatever standards this architecture supports (may be unsupported), +# image-label is the ISO image label, image-name is the filename of the +# resulting ISO image, base-bits-dir contains the image contents and +# extra-bits-dir, if provided, contains additional files to be merged +# into base-bits-dir as part of making the image. + +publisher="The FreeBSD Project. http://www.freebsd.org/" +IMG=/tmp/bootfs +MNT=/mnt + +if [ "x$1" = "x-b" ]; then + dd if=/dev/zero of=${IMG} bs=512 count=1024 + MD=`mdconfig -a -t vnode -f ${IMG}` + sunlabel -w -B -b $4/boot/boot1 ${MD} auto + newfs -O1 -o space -m 0 /dev/${MD} + mount /dev/${MD} ${MNT} + mkdir ${MNT}/boot + cp $4/boot/loader ${MNT}/boot + umount ${MNT} + mdconfig -d -u ${MD#md} + bootable="-B ,,,,${IMG}" + shift +else + bootable="" +fi + +if [ $# -lt 3 ]; then + echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]' + rm -f ${IMG} + exit 1 +fi + +type mkisofs 2>&1 | grep " is " >/dev/null +if [ $? -ne 0 ]; then + echo The cdrtools port is not installed. Trying to get it now. + if [ -f /usr/ports/sysutils/cdrtools/Makefile ]; then + cd /usr/ports/sysutils/cdrtools && make install BATCH=yes && make clean + else + if ! pkg_add -r cdrtools; then + echo "Could not get it via pkg_add - please go install this" + echo "from the ports collection and run this script again." + exit 2 + fi + fi +fi + +LABEL=$1; shift +NAME=$1; shift + +echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab +mkisofs $bootable -r -J -V $LABEL -publisher "$publisher" -o $NAME $* +rm $1/etc/fstab +rm -f ${IMG} From owner-svn-src-head@FreeBSD.ORG Thu May 5 00:11:10 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 08C6A106566B; Thu, 5 May 2011 00:11:10 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CF94D8FC17; Thu, 5 May 2011 00:11:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p450B9p5073076; Thu, 5 May 2011 00:11:09 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p450B9fs073074; Thu, 5 May 2011 00:11:09 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105050011.p450B9fs073074@svn.freebsd.org> From: Rick Macklem Date: Thu, 5 May 2011 00:11:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221467 - head/sys/fs/nfsclient X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 00:11:10 -0000 Author: rmacklem Date: Thu May 5 00:11:09 2011 New Revision: 221467 URL: http://svn.freebsd.org/changeset/base/221467 Log: Fix the new NFS client so that it handles the 64bit fields that are now in "struct statfs" for NFSv3 and NFSv4. Since the ffiles value is uint64_t on the wire, I clip the value to INT64_MAX to avoid setting f_ffree negative. Tested by: kib MFC after: 2 weeks Modified: head/sys/fs/nfsclient/nfs_clport.c Modified: head/sys/fs/nfsclient/nfs_clport.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clport.c Wed May 4 23:41:11 2011 (r221466) +++ head/sys/fs/nfsclient/nfs_clport.c Thu May 5 00:11:09 2011 (r221467) @@ -838,21 +838,33 @@ void nfscl_loadsbinfo(struct nfsmount *nmp, struct nfsstatfs *sfp, void *statfs) { struct statfs *sbp = (struct statfs *)statfs; - nfsquad_t tquad; if (nmp->nm_flag & (NFSMNT_NFSV3 | NFSMNT_NFSV4)) { sbp->f_bsize = NFS_FABLKSIZE; - tquad.qval = sfp->sf_tbytes; - sbp->f_blocks = (long)(tquad.qval / ((u_quad_t)NFS_FABLKSIZE)); - tquad.qval = sfp->sf_fbytes; - sbp->f_bfree = (long)(tquad.qval / ((u_quad_t)NFS_FABLKSIZE)); - tquad.qval = sfp->sf_abytes; - sbp->f_bavail = (long)(tquad.qval / ((u_quad_t)NFS_FABLKSIZE)); - tquad.qval = sfp->sf_tfiles; - sbp->f_files = (tquad.lval[0] & 0x7fffffff); - tquad.qval = sfp->sf_ffiles; - sbp->f_ffree = (tquad.lval[0] & 0x7fffffff); + sbp->f_blocks = sfp->sf_tbytes / NFS_FABLKSIZE; + sbp->f_bfree = sfp->sf_fbytes / NFS_FABLKSIZE; + /* + * Although sf_abytes is uint64_t and f_bavail is int64_t, + * the value after dividing by NFS_FABLKSIZE is small + * enough that it will fit in 63bits, so it is ok to + * assign it to f_bavail without fear that it will become + * negative. + */ + sbp->f_bavail = sfp->sf_abytes / NFS_FABLKSIZE; + sbp->f_files = sfp->sf_tfiles; + /* Since f_ffree is int64_t, clip it to 63bits. */ + if (sfp->sf_ffiles > INT64_MAX) + sbp->f_ffree = INT64_MAX; + else + sbp->f_ffree = sfp->sf_ffiles; } else if ((nmp->nm_flag & NFSMNT_NFSV4) == 0) { + /* + * The type casts to (int32_t) ensure that this code is + * compatible with the old NFS client, in that it will + * propagate bit31 to the high order bits. This may or may + * not be correct for NFSv2, but since it is a legacy + * environment, I'd rather retain backwards compatibility. + */ sbp->f_bsize = (int32_t)sfp->sf_bsize; sbp->f_blocks = (int32_t)sfp->sf_blocks; sbp->f_bfree = (int32_t)sfp->sf_bfree; From owner-svn-src-head@FreeBSD.ORG Thu May 5 00:43:40 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1CAF106566C; Thu, 5 May 2011 00:43:40 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A45FD8FC17; Thu, 5 May 2011 00:43:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p450heIE074076; Thu, 5 May 2011 00:43:40 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p450heh0074072; Thu, 5 May 2011 00:43:40 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105050043.p450heh0074072@svn.freebsd.org> From: Pyun YongHyeon Date: Thu, 5 May 2011 00:43:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221468 - in head/sys/dev: bge mii X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 00:43:40 -0000 Author: yongari Date: Thu May 5 00:43:40 2011 New Revision: 221468 URL: http://svn.freebsd.org/changeset/base/221468 Log: Enable Ethernet@WireSpeed for BCM5718/BCM57765 family. While I'm here inverse meaning of PHY flag as Ethernet@WireSpeed is enabled for most PHYs. Modified: head/sys/dev/bge/if_bge.c head/sys/dev/bge/if_bgereg.h head/sys/dev/mii/brgphy.c Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Thu May 5 00:11:09 2011 (r221467) +++ head/sys/dev/bge/if_bge.c Thu May 5 00:43:40 2011 (r221468) @@ -2769,12 +2769,12 @@ bge_attach(device_t dev) * Don't enable Ethernet@WireSpeed for the 5700, 5906, or the * 5705 A0 and A1 chips. */ - if (sc->bge_asicrev != BGE_ASICREV_BCM5700 && - sc->bge_asicrev != BGE_ASICREV_BCM5906 && - sc->bge_chipid != BGE_CHIPID_BCM5705_A0 && - sc->bge_chipid != BGE_CHIPID_BCM5705_A1 && - !BGE_IS_5717_PLUS(sc)) - sc->bge_phy_flags |= BGE_PHY_WIRESPEED; + if (sc->bge_asicrev == BGE_ASICREV_BCM5700 || + (sc->bge_asicrev == BGE_ASICREV_BCM5705 && + (sc->bge_chipid != BGE_CHIPID_BCM5705_A0 && + sc->bge_chipid != BGE_CHIPID_BCM5705_A1)) || + sc->bge_asicrev == BGE_ASICREV_BCM5906) + sc->bge_phy_flags |= BGE_PHY_NO_WIRESPEED; if (bge_has_eaddr(sc)) sc->bge_flags |= BGE_FLAG_EADDR; Modified: head/sys/dev/bge/if_bgereg.h ============================================================================== --- head/sys/dev/bge/if_bgereg.h Thu May 5 00:11:09 2011 (r221467) +++ head/sys/dev/bge/if_bgereg.h Thu May 5 00:43:40 2011 (r221468) @@ -2783,7 +2783,7 @@ struct bge_softc { #define BGE_FLAG_RX_ALIGNBUG 0x04000000 #define BGE_FLAG_SHORT_DMA_BUG 0x08000000 uint32_t bge_phy_flags; -#define BGE_PHY_WIRESPEED 0x00000001 +#define BGE_PHY_NO_WIRESPEED 0x00000001 #define BGE_PHY_ADC_BUG 0x00000002 #define BGE_PHY_5704_A0_BUG 0x00000004 #define BGE_PHY_JITTER_BUG 0x00000008 Modified: head/sys/dev/mii/brgphy.c ============================================================================== --- head/sys/dev/mii/brgphy.c Thu May 5 00:11:09 2011 (r221467) +++ head/sys/dev/mii/brgphy.c Thu May 5 00:43:40 2011 (r221468) @@ -927,7 +927,7 @@ brgphy_reset(struct mii_softc *sc) brgphy_jumbo_settings(sc, ifp->if_mtu); - if (bge_sc->bge_phy_flags & BGE_PHY_WIRESPEED) + if ((bge_sc->bge_phy_flags & BGE_PHY_NO_WIRESPEED) == 0) brgphy_ethernet_wirespeed(sc); /* Enable Link LED on Dell boxes */ From owner-svn-src-head@FreeBSD.ORG Thu May 5 00:43:55 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DCACB10656F8; Thu, 5 May 2011 00:43:55 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA0EA8FC08; Thu, 5 May 2011 00:43:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p450htJt074119; Thu, 5 May 2011 00:43:55 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p450htBe074117; Thu, 5 May 2011 00:43:55 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201105050043.p450htBe074117@svn.freebsd.org> From: "David E. O'Brien" Date: Thu, 5 May 2011 00:43:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221469 - head X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 00:43:56 -0000 Author: obrien Date: Thu May 5 00:43:55 2011 New Revision: 221469 URL: http://svn.freebsd.org/changeset/base/221469 Log: Correct the kernel config name printed out during install. PR: 156579 Submitted by: dhw Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu May 5 00:43:40 2011 (r221468) +++ head/Makefile.inc1 Thu May 5 00:43:55 2011 (r221469) @@ -868,7 +868,7 @@ reinstallkernel reinstallkernel.debug: i false .endif @echo "--------------------------------------------------------------" - @echo ">>> Installing kernel ${KERNCONF}" + @echo ">>> Installing kernel ${INSTALLKERNEL}" @echo "--------------------------------------------------------------" cd ${KRNLOBJDIR}/${INSTALLKERNEL}; \ ${CROSSENV} PATH=${TMPPATH} \ From owner-svn-src-head@FreeBSD.ORG Thu May 5 00:52:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D7A8E106566C; Thu, 5 May 2011 00:52:19 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C48578FC08; Thu, 5 May 2011 00:52:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p450qJKe074410; Thu, 5 May 2011 00:52:19 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p450qJhO074408; Thu, 5 May 2011 00:52:19 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105050052.p450qJhO074408@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 5 May 2011 00:52:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221470 - head/usr.sbin/makefs/cd9660 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 00:52:19 -0000 Author: nwhitehorn Date: Thu May 5 00:52:19 2011 New Revision: 221470 URL: http://svn.freebsd.org/changeset/base/221470 Log: Fix boot on old machines (e.g. blue and white G3s) by synthesizing a 512-byte sector map instead unused space in the first 2048-byte sector. Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c ============================================================================== --- head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Thu May 5 00:43:55 2011 (r221469) +++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Thu May 5 00:52:19 2011 (r221470) @@ -528,6 +528,25 @@ cd9660_write_apm_partition_entry(FILE *f fseek(fd, 32 - strlen(part_name) - 1, SEEK_CUR); fwrite(part_type, strlen(part_type) + 1, 1, fd); + if (sector_size > 512) { + /* + * Some old broken software looks at 512-byte boundaries for + * partition table entries instead of sector boundaries. We + * can fit 3 entries into the first 2048-byte block, so use + * that to humor old code. + */ + + int n_512_parts = (sector_size / 512) - 1; + if (n_512_parts > total_partitions) + n_512_parts = total_partitions; + + if (index < n_512_parts) + cd9660_write_apm_partition_entry(fd, index, n_512_parts, + sector_start * (sector_size / 512), + nsectors * (sector_size / 512), 512, part_name, + part_type); + } + return 0; } From owner-svn-src-head@FreeBSD.ORG Thu May 5 01:09:42 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7844D106566C; Thu, 5 May 2011 01:09:42 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 64A078FC0C; Thu, 5 May 2011 01:09:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4519gqj074961; Thu, 5 May 2011 01:09:42 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4519geI074956; Thu, 5 May 2011 01:09:42 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201105050109.p4519geI074956@svn.freebsd.org> From: "David E. O'Brien" Date: Thu, 5 May 2011 01:09:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221471 - head/lib/libcrypt X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 01:09:42 -0000 Author: obrien Date: Thu May 5 01:09:42 2011 New Revision: 221471 URL: http://svn.freebsd.org/changeset/base/221471 Log: s/shaN_crypt/crypt_shaN/g to be a more consistent with the existing naming. Reviewed by: markm Modified: head/lib/libcrypt/crypt-sha256.c head/lib/libcrypt/crypt-sha512.c head/lib/libcrypt/crypt.c head/lib/libcrypt/crypt.h Modified: head/lib/libcrypt/crypt-sha256.c ============================================================================== --- head/lib/libcrypt/crypt-sha256.c Thu May 5 00:52:19 2011 (r221470) +++ head/lib/libcrypt/crypt-sha256.c Thu May 5 01:09:42 2011 (r221471) @@ -60,7 +60,7 @@ static const char sha256_rounds_prefix[] #define ROUNDS_MAX 999999999 static char * -sha256_crypt_r(const char *key, const char *salt, char *buffer, int buflen) +crypt_sha256_r(const char *key, const char *salt, char *buffer, int buflen) { u_long srounds; int n; @@ -268,12 +268,12 @@ sha256_crypt_r(const char *key, const ch /* This entry point is equivalent to crypt(3). */ char * -sha256_crypt(const char *key, const char *salt) +crypt_sha256(const char *key, const char *salt) { /* We don't want to have an arbitrary limit in the size of the * password. We can compute an upper bound for the size of the * result in advance and so we can prepare the buffer we pass to - * `sha256_crypt_r'. */ + * `crypt_sha256_r'. */ static char *buffer; static int buflen; int needed; @@ -293,7 +293,7 @@ sha256_crypt(const char *key, const char buflen = needed; } - return sha256_crypt_r(key, salt, buffer, buflen); + return crypt_sha256_r(key, salt, buffer, buflen); } #ifdef TEST @@ -459,7 +459,7 @@ main(void) } for (cnt = 0; cnt < ntests2; ++cnt) { - char *cp = sha256_crypt(tests2[cnt].input, tests2[cnt].salt); + char *cp = crypt_sha256(tests2[cnt].input, tests2[cnt].salt); if (strcmp(cp, tests2[cnt].expected) != 0) { printf("test %d: expected \"%s\", got \"%s\"\n", Modified: head/lib/libcrypt/crypt-sha512.c ============================================================================== --- head/lib/libcrypt/crypt-sha512.c Thu May 5 00:52:19 2011 (r221470) +++ head/lib/libcrypt/crypt-sha512.c Thu May 5 01:09:42 2011 (r221471) @@ -60,7 +60,7 @@ static const char sha512_rounds_prefix[] #define ROUNDS_MAX 999999999 static char * -sha512_crypt_r(const char *key, const char *salt, char *buffer, int buflen) +crypt_sha512_r(const char *key, const char *salt, char *buffer, int buflen) { u_long srounds; int n; @@ -280,12 +280,12 @@ sha512_crypt_r(const char *key, const ch /* This entry point is equivalent to crypt(3). */ char * -sha512_crypt(const char *key, const char *salt) +crypt_sha512(const char *key, const char *salt) { /* We don't want to have an arbitrary limit in the size of the * password. We can compute an upper bound for the size of the * result in advance and so we can prepare the buffer we pass to - * `sha512_crypt_r'. */ + * `crypt_sha512_r'. */ static char *buffer; static int buflen; int needed; @@ -305,7 +305,7 @@ sha512_crypt(const char *key, const char buflen = needed; } - return sha512_crypt_r(key, salt, buffer, buflen); + return crypt_sha512_r(key, salt, buffer, buflen); } #ifdef TEST @@ -482,7 +482,7 @@ main(void) } for (cnt = 0; cnt < ntests2; ++cnt) { - char *cp = sha512_crypt(tests2[cnt].input, tests2[cnt].salt); + char *cp = crypt_sha512(tests2[cnt].input, tests2[cnt].salt); if (strcmp(cp, tests2[cnt].expected) != 0) { printf("test %d: expected \"%s\", got \"%s\"\n", Modified: head/lib/libcrypt/crypt.c ============================================================================== --- head/lib/libcrypt/crypt.c Thu May 5 00:52:19 2011 (r221470) +++ head/lib/libcrypt/crypt.c Thu May 5 01:09:42 2011 (r221471) @@ -64,12 +64,12 @@ static const struct { }, { "sha256", - sha256_crypt, + crypt_sha256, "$5$" }, { "sha512", - sha512_crypt, + crypt_sha512, "$6$" }, { Modified: head/lib/libcrypt/crypt.h ============================================================================== --- head/lib/libcrypt/crypt.h Thu May 5 00:52:19 2011 (r221470) +++ head/lib/libcrypt/crypt.h Thu May 5 01:09:42 2011 (r221471) @@ -36,8 +36,8 @@ char *crypt_des(const char *pw, const ch char *crypt_md5(const char *pw, const char *salt); char *crypt_nthash(const char *pw, const char *salt); char *crypt_blowfish(const char *pw, const char *salt); -char *sha256_crypt (const char *pw, const char *salt); -char *sha512_crypt (const char *pw, const char *salt); +char *crypt_sha256 (const char *pw, const char *salt); +char *crypt_sha512 (const char *pw, const char *salt); extern void _crypt_to64(char *s, u_long v, int n); extern void b64_from_24bit(uint8_t B2, uint8_t B1, uint8_t B0, int n, int *buflen, char **cp); From owner-svn-src-head@FreeBSD.ORG Thu May 5 01:16:07 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1D9201065700; Thu, 5 May 2011 01:16:07 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F314B8FC15; Thu, 5 May 2011 01:16:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p451G69d075209; Thu, 5 May 2011 01:16:06 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p451G6LV075205; Thu, 5 May 2011 01:16:06 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201105050116.p451G6LV075205@svn.freebsd.org> From: "David E. O'Brien" Date: Thu, 5 May 2011 01:16:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221472 - head/lib/libarchive X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 01:16:07 -0000 Author: obrien Date: Thu May 5 01:16:06 2011 New Revision: 221472 URL: http://svn.freebsd.org/changeset/base/221472 Log: libarchive is mixing libmd and libcrypto -- correct to use one or the other. [mixing the two can be quite bad -- they define the same context structures, but with differing structure members (and sizes)] Update the hash function support comments, and update config_freebsd.h to match. Approved by: kientzle Modified: head/lib/libarchive/Makefile head/lib/libarchive/archive_hash.h head/lib/libarchive/config_freebsd.h Modified: head/lib/libarchive/Makefile ============================================================================== --- head/lib/libarchive/Makefile Thu May 5 01:09:42 2011 (r221471) +++ head/lib/libarchive/Makefile Thu May 5 01:16:06 2011 (r221472) @@ -2,8 +2,8 @@ .include LIB= archive -DPADD= ${LIBZ} ${LIBMD} -LDADD= -lz -lmd +DPADD= ${LIBZ} +LDADD= -lz DPADD+= ${LIBBZ2} LDADD+= -lbz2 @@ -24,6 +24,9 @@ CFLAGS+= -I${.OBJDIR} CFLAGS+= -DWITH_OPENSSL DPADD+= ${LIBCRYPTO} LDADD+= -lcrypto +.else +DPADD+= ${LIBMD} +LDADD+= -lmd .endif # Headers to be installed in /usr/include Modified: head/lib/libarchive/archive_hash.h ============================================================================== --- head/lib/libarchive/archive_hash.h Thu May 5 01:09:42 2011 (r221471) +++ head/lib/libarchive/archive_hash.h Thu May 5 01:16:06 2011 (r221472) @@ -41,11 +41,11 @@ * - OpenBSD 4.4 and earlier have SHA2 in libc with _ after algorithm name * * DragonFly and FreeBSD (XXX not used yet): - * - MD5 and SHA1 in libmd: without _ after algorithm name - * - SHA256: with _ after algorithm name + * - MD5 in libmd: without _ after algorithm name + * - SHA{1,256,512} in libmd: with _ after algorithm name (conflicts w/OpenSSL!) * * OpenSSL: - * - MD5, SHA1 and SHA2 in libcrypto: with _ after algorithm name + * - MD5, SHA1, SHA2, SHA{256,384,512} in libcrypto: with _ after algorithm name */ #if defined(HAVE_MD5_H) && defined(HAVE_MD5INIT) Modified: head/lib/libarchive/config_freebsd.h ============================================================================== --- head/lib/libarchive/config_freebsd.h Thu May 5 01:09:42 2011 (r221471) +++ head/lib/libarchive/config_freebsd.h Thu May 5 01:16:06 2011 (r221472) @@ -47,8 +47,24 @@ #define HAVE_OPENSSL_MD5_H 1 #define HAVE_OPENSSL_RIPEMD_H 1 #define HAVE_OPENSSL_SHA_H 1 +#define HAVE_OPENSSL_SHA256_INIT 1 +#define HAVE_OPENSSL_SHA384_INIT 1 +#define HAVE_OPENSSL_SHA512_INIT 1 +#define HAVE_SHA256 1 #define HAVE_SHA384 1 #define HAVE_SHA512 1 +#else +#define HAVE_MD5_H 1 +#define HAVE_MD5INIT 1 +#define HAVE_SHA_H 1 +#define HAVE_SHA1 1 +#define HAVE_SHA1_INIT 1 +#define HAVE_SHA256 1 +#define HAVE_SHA256_H 1 +#define HAVE_SHA256_INIT 1 +#define HAVE_SHA512 1 +#define HAVE_SHA512_H 1 +#define HAVE_SHA512_INIT 1 #endif #define HAVE_BSDXML_H 1 @@ -88,7 +104,6 @@ #define HAVE_LUTIMES 1 #define HAVE_MALLOC 1 #define HAVE_MD5 1 -#define HAVE_MD5_H 1 #define HAVE_MEMMOVE 1 #define HAVE_MKDIR 1 #define HAVE_MKFIFO 1 @@ -101,10 +116,6 @@ #define HAVE_RMD160 1 #define HAVE_SELECT 1 #define HAVE_SETENV 1 -#define HAVE_SHA_H 1 -#define HAVE_SHA1 1 -#define HAVE_SHA256 1 -#define HAVE_SHA256_H 1 #define HAVE_SIGNAL_H 1 #define HAVE_STDINT_H 1 #define HAVE_STDLIB_H 1 From owner-svn-src-head@FreeBSD.ORG Thu May 5 01:21:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2DED4106564A; Thu, 5 May 2011 01:21:59 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 993CB8FC12; Thu, 5 May 2011 01:21:58 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAFj7wU2DaFvO/2dsb2JhbACEUKJGiHKtUpEhgSqDXIEBBI81hw6HSA X-IronPort-AV: E=Sophos;i="4.64,317,1301889600"; d="scan'208";a="119659511" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 04 May 2011 21:21:43 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 519B6B3F2F; Wed, 4 May 2011 21:21:43 -0400 (EDT) Date: Wed, 4 May 2011 21:21:43 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <1310797810.1031067.1304558503327.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <86mxj7gaa2.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [172.17.91.202] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 01:21:59 -0000 > Rick Macklem writes: > > "Dag-Erling Sm=C3=B8rgrav" writes: > > > Are you going to rename the sysctls as well? > > I was not planning on it, but it the "collective" thinks it's a good > > idea, I could do so. >=20 > Yes, please. The change from vfs.nfs to vfs.newnfs breaks scripts. >=20 > Ideally, both the old and the new NFS stack would use the same fstypes > and sysctl names, but I don't know if there's any way we can prevent > someone from compiling both into the kernel at the same time, or > loading > both modules. > If the scripts in /etc/rc.d are fixed to use the correct sysctl naming, do you think it matters which one is "vfs.nfs."? rick From owner-svn-src-head@FreeBSD.ORG Thu May 5 02:00:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0DC5B1065670; Thu, 5 May 2011 02:00:54 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EEF4D8FC0A; Thu, 5 May 2011 02:00:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4520rIO076634; Thu, 5 May 2011 02:00:53 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4520rvf076632; Thu, 5 May 2011 02:00:53 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105050200.p4520rvf076632@svn.freebsd.org> From: Rick Macklem Date: Thu, 5 May 2011 02:00:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221473 - head/sys/nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 02:00:54 -0000 Author: rmacklem Date: Thu May 5 02:00:53 2011 New Revision: 221473 URL: http://svn.freebsd.org/changeset/base/221473 Log: Modify the NFS nfssvc(2) syscall so that it allows anyone to get the statistics for the new NFS subsystem. MFC after: 2 weeks Modified: head/sys/nfs/nfs_nfssvc.c Modified: head/sys/nfs/nfs_nfssvc.c ============================================================================== --- head/sys/nfs/nfs_nfssvc.c Thu May 5 01:16:06 2011 (r221472) +++ head/sys/nfs/nfs_nfssvc.c Thu May 5 02:00:53 2011 (r221473) @@ -81,9 +81,12 @@ nfssvc(struct thread *td, struct nfssvc_ AUDIT_ARG_CMD(uap->flag); - error = priv_check(td, PRIV_NFS_DAEMON); - if (error) - return (error); + /* Allow anyone to get the stats. */ + if ((uap->flag & ~NFSSVC_GETSTATS) != 0) { + error = priv_check(td, PRIV_NFS_DAEMON); + if (error != 0) + return (error); + } error = EINVAL; if ((uap->flag & (NFSSVC_ADDSOCK | NFSSVC_OLDNFSD | NFSSVC_NFSD)) && nfsd_call_nfsserver != NULL) From owner-svn-src-head@FreeBSD.ORG Thu May 5 02:04:56 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CF7EB1065670; Thu, 5 May 2011 02:04:56 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BB8FF8FC12; Thu, 5 May 2011 02:04:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4524uxC076784; Thu, 5 May 2011 02:04:56 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4524uAm076779; Thu, 5 May 2011 02:04:56 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201105050204.p4524uAm076779@svn.freebsd.org> From: Navdeep Parhar Date: Thu, 5 May 2011 02:04:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221474 - head/sys/dev/cxgbe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 02:04:56 -0000 Author: np Date: Thu May 5 02:04:56 2011 New Revision: 221474 URL: http://svn.freebsd.org/changeset/base/221474 Log: T4 packet filtering/steering. - Enable 5-tuple and every-packet lookup. - Setup the default filter mode to allow filtering/steering based on IP protocol, ingress port, inner VLAN ID, IP frag, FCoE, and MPS match type; all combined together. You can also filter based on MAC index, Ethernet type, IP TOS/IPv6 Traffic Class, and outer VLAN ID but you'll have to modify the default filter mode and exclude some of the match-fields in it. IPv4 and IPv6 SIP/DIP/SPORT/DPORT are always available in all filter rules. - Add driver ioctls to get/set the global filter mode. - Add driver ioctls to program and delete hardware filters. A couple of the "switch" actions that rewrite Ethernet and VLAN information and switch the packet out of another port may not work as the L2 code is not yet in place. Everything else, including all "drop" and "pass" rules with RSS or absolute qid, should work. Obtained from: Chelsio Communications Modified: head/sys/dev/cxgbe/offload.h head/sys/dev/cxgbe/t4_ioctl.h head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/offload.h ============================================================================== --- head/sys/dev/cxgbe/offload.h Thu May 5 02:00:53 2011 (r221473) +++ head/sys/dev/cxgbe/offload.h Thu May 5 02:04:56 2011 (r221474) @@ -61,8 +61,10 @@ struct tid_info { union aopen_entry *atid_tab; unsigned int natids; + struct filter_entry *ftid_tab; unsigned int nftids; unsigned int ftid_base; + unsigned int ftids_in_use; union aopen_entry *afree; unsigned int atids_in_use; Modified: head/sys/dev/cxgbe/t4_ioctl.h ============================================================================== --- head/sys/dev/cxgbe/t4_ioctl.h Thu May 5 02:00:53 2011 (r221473) +++ head/sys/dev/cxgbe/t4_ioctl.h Thu May 5 02:04:56 2011 (r221474) @@ -31,6 +31,9 @@ #ifndef __T4_IOCTL_H__ #define __T4_IOCTL_H__ +#include +#include + /* * Ioctl commands specific to this driver. */ @@ -38,6 +41,11 @@ enum { T4_GETREG = 0x40, /* read register */ T4_SETREG, /* write register */ T4_REGDUMP, /* dump of all registers */ + T4_GET_FILTER_MODE, /* get global filter mode */ + T4_SET_FILTER_MODE, /* set global filter mode */ + T4_GET_FILTER, /* get information about a filter */ + T4_SET_FILTER, /* program a filter */ + T4_DEL_FILTER, /* delete a filter */ }; struct t4_reg { @@ -53,7 +61,133 @@ struct t4_regdump { uint32_t *data; }; +/* + * A hardware filter is some valid combination of these. + */ +#define T4_FILTER_IPv4 0x1 /* IPv4 packet */ +#define T4_FILTER_IPv6 0x2 /* IPv6 packet */ +#define T4_FILTER_IP_SADDR 0x4 /* Source IP address or network */ +#define T4_FILTER_IP_DADDR 0x8 /* Destination IP address or network */ +#define T4_FILTER_IP_SPORT 0x10 /* Source IP port */ +#define T4_FILTER_IP_DPORT 0x20 /* Destination IP port */ +#define T4_FILTER_FCoE 0x40 /* Fibre Channel over Ethernet packet */ +#define T4_FILTER_PORT 0x80 /* Physical ingress port */ +#define T4_FILTER_OVLAN 0x100 /* Outer VLAN ID */ +#define T4_FILTER_IVLAN 0x200 /* Inner VLAN ID */ +#define T4_FILTER_IP_TOS 0x400 /* IPv4 TOS/IPv6 Traffic Class */ +#define T4_FILTER_IP_PROTO 0x800 /* IP protocol */ +#define T4_FILTER_ETH_TYPE 0x1000 /* Ethernet Type */ +#define T4_FILTER_MAC_IDX 0x2000 /* MPS MAC address match index */ +#define T4_FILTER_MPS_HIT_TYPE 0x4000 /* MPS match type */ +#define T4_FILTER_IP_FRAGMENT 0x8000 /* IP fragment */ + +/* Filter action */ +enum { + FILTER_PASS = 0, /* default */ + FILTER_DROP, + FILTER_SWITCH +}; + +/* 802.1q manipulation on FILTER_SWITCH */ +enum { + VLAN_NOCHANGE = 0, /* default */ + VLAN_REMOVE, + VLAN_INSERT, + VLAN_REWRITE +}; + +/* MPS match type */ +enum { + UCAST_EXACT = 0, /* exact unicast match */ + UCAST_HASH = 1, /* inexact (hashed) unicast match */ + MCAST_EXACT = 2, /* exact multicast match */ + MCAST_HASH = 3, /* inexact (hashed) multicast match */ + PROMISC = 4, /* no match but port is promiscuous */ + HYPPROMISC = 5, /* port is hypervisor-promisuous + not bcast */ + BCAST = 6, /* broadcast packet */ +}; + +/* Rx steering */ +enum { + DST_MODE_QUEUE, /* queue is directly specified by filter */ + DST_MODE_RSS_QUEUE, /* filter specifies RSS entry containing queue */ + DST_MODE_RSS, /* queue selected by default RSS hash lookup */ + DST_MODE_FILT_RSS /* queue selected by hashing in filter-specified + RSS subtable */ +}; + +struct t4_filter_tuple { + /* + * These are always available. + */ + uint8_t sip[16]; /* source IP address (IPv4 in [3:0]) */ + uint8_t dip[16]; /* destinatin IP address (IPv4 in [3:0]) */ + uint16_t sport; /* source port */ + uint16_t dport; /* destination port */ + + /* + * A combination of these (upto 36 bits) is available. TP_VLAN_PRI_MAP + * is used to select the global mode and all filters are limited to the + * set of fields allowed by the global mode. + */ + uint16_t ovlan; /* outer VLAN */ + uint16_t ivlan; /* inner VLAN */ + uint16_t ethtype; /* Ethernet type */ + uint8_t tos; /* TOS/Traffic Type */ + uint8_t proto; /* protocol type */ + uint32_t fcoe:1; /* FCoE packet */ + uint32_t iport:3; /* ingress port */ + uint32_t matchtype:3; /* MPS match type */ + uint32_t frag:1; /* fragmentation extension header */ + uint32_t macidx:9; /* exact match MAC index */ + uint32_t ivlan_vld:1; /* inner VLAN valid */ + uint32_t ovlan_vld:1; /* outer VLAN valid */ +}; + +struct t4_filter_specification { + uint32_t hitcnts:1; /* count filter hits in TCB */ + uint32_t prio:1; /* filter has priority over active/server */ + uint32_t type:1; /* 0 => IPv4, 1 => IPv6 */ + uint32_t action:2; /* drop, pass, switch */ + uint32_t rpttid:1; /* report TID in RSS hash field */ + uint32_t dirsteer:1; /* 0 => RSS, 1 => steer to iq */ + uint32_t iq:10; /* ingress queue */ + uint32_t maskhash:1; /* dirsteer=0: store RSS hash in TCB */ + uint32_t dirsteerhash:1;/* dirsteer=1: 0 => TCB contains RSS hash */ + /* 1 => TCB contains IQ ID */ + + /* + * Switch proxy/rewrite fields. An ingress packet which matches a + * filter with "switch" set will be looped back out as an egress + * packet -- potentially with some Ethernet header rewriting. + */ + uint32_t eport:2; /* egress port to switch packet out */ + uint32_t newdmac:1; /* rewrite destination MAC address */ + uint32_t newsmac:1; /* rewrite source MAC address */ + uint32_t newvlan:2; /* rewrite VLAN Tag */ + uint8_t dmac[ETHER_ADDR_LEN]; /* new destination MAC address */ + uint8_t smac[ETHER_ADDR_LEN]; /* new source MAC address */ + uint16_t vlan; /* VLAN Tag to insert */ + + /* + * Filter rule value/mask pairs. + */ + struct t4_filter_tuple val; + struct t4_filter_tuple mask; +}; + +struct t4_filter { + uint32_t idx; + uint64_t hits; + struct t4_filter_specification fs; +}; + #define CHELSIO_T4_GETREG _IOWR('f', T4_GETREG, struct t4_reg) #define CHELSIO_T4_SETREG _IOW('f', T4_SETREG, struct t4_reg) #define CHELSIO_T4_REGDUMP _IOWR('f', T4_REGDUMP, struct t4_regdump) +#define CHELSIO_T4_GET_FILTER_MODE _IOWR('f', T4_GET_FILTER_MODE, uint32_t) +#define CHELSIO_T4_SET_FILTER_MODE _IOW('f', T4_SET_FILTER_MODE, uint32_t) +#define CHELSIO_T4_GET_FILTER _IOWR('f', T4_GET_FILTER, struct t4_filter) +#define CHELSIO_T4_SET_FILTER _IOW('f', T4_SET_FILTER, struct t4_filter) +#define CHELSIO_T4_DEL_FILTER _IOW('f', T4_DEL_FILTER, struct t4_filter) #endif Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Thu May 5 02:00:53 2011 (r221473) +++ head/sys/dev/cxgbe/t4_main.c Thu May 5 02:04:56 2011 (r221474) @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include "common/t4_hw.h" #include "common/common.h" +#include "common/t4_msg.h" #include "common/t4_regs.h" #include "common/t4_regs_values.h" #include "common/t4fw_interface.h" @@ -218,6 +219,11 @@ TUNABLE_INT("hw.cxgbe.interrupt_forwardi SYSCTL_UINT(_hw_cxgbe, OID_AUTO, interrupt_forwarding, CTLFLAG_RDTUN, &intr_fwd, 0, "always use forwarded interrupts"); +static unsigned int filter_mode = HW_TPL_FR_MT_PR_IV_P_FC; +TUNABLE_INT("hw.cxgbe.filter_mode", &filter_mode); +SYSCTL_UINT(_hw_cxgbe, OID_AUTO, filter_mode, CTLFLAG_RDTUN, + &filter_mode, 0, "default global filter mode."); + struct intrs_and_queues { int intr_type; /* INTx, MSI, or MSI-X */ int nirq; /* Number of vectors */ @@ -228,6 +234,15 @@ struct intrs_and_queues { int nrxq1g; /* # of NIC rxq's for each 1G port */ }; +struct filter_entry { + uint32_t valid:1; /* filter allocated and valid */ + uint32_t locked:1; /* filter is administratively locked */ + uint32_t pending:1; /* filter action is pending firmware reply */ + uint32_t smtidx:8; /* Source MAC Table index for smac */ + + struct t4_filter_specification fs; +}; + enum { MEMWIN0_APERTURE = 2048, MEMWIN0_BASE = 0x1b800, @@ -280,6 +295,18 @@ static int sysctl_qsize_rxq(SYSCTL_HANDL static int sysctl_qsize_txq(SYSCTL_HANDLER_ARGS); static int sysctl_handle_t4_reg64(SYSCTL_HANDLER_ARGS); static inline void txq_start(struct ifnet *, struct sge_txq *); +static uint32_t fconf_to_mode(uint32_t); +static uint32_t mode_to_fconf(uint32_t); +static uint32_t fspec_to_fconf(struct t4_filter_specification *); +static int get_filter_mode(struct adapter *, uint32_t *); +static int set_filter_mode(struct adapter *, uint32_t); +static int get_filter(struct adapter *, struct t4_filter *); +static int set_filter(struct adapter *, struct t4_filter *); +static int del_filter(struct adapter *, struct t4_filter *); +static void clear_filter(struct adapter *, struct filter_entry *); +static int set_filter_wr(struct adapter *, int); +static int del_filter_wr(struct adapter *, int); +void filter_rpl(struct adapter *, const struct cpl_set_tcb_rpl *); static int t4_mod_event(module_t, int, void *); struct t4_pciids { @@ -421,9 +448,12 @@ t4_attach(device_t dev) t4_sge_init(sc); - /* - * XXX: This is the place to call t4_set_filter_mode() - */ + t4_set_filter_mode(sc, filter_mode); + t4_set_reg_field(sc, A_TP_GLOBAL_CONFIG, + V_FIVETUPLELOOKUP(M_FIVETUPLELOOKUP), + V_FIVETUPLELOOKUP(M_FIVETUPLELOOKUP)); + t4_tp_wr_bits_indirect(sc, A_TP_INGRESS_CONFIG, F_CSUM_HAS_PSEUDO_HDR, + F_LOOKUPEVERYPKT); /* get basic stuff going */ rc = -t4_early_init(sc, sc->mbox); @@ -661,6 +691,7 @@ t4_detach(device_t dev) free(sc->sge.fiq, M_CXGBE); free(sc->sge.iqmap, M_CXGBE); free(sc->sge.eqmap, M_CXGBE); + free(sc->tids.ftid_tab, M_CXGBE); t4_destroy_dma_tag(sc); mtx_destroy(&sc->sc_lock); @@ -2699,6 +2730,481 @@ cxgbe_txq_start(void *arg, int count) TXQ_UNLOCK(txq); } +static uint32_t +fconf_to_mode(uint32_t fconf) +{ + uint32_t mode; + + mode = T4_FILTER_IPv4 | T4_FILTER_IPv6 | T4_FILTER_IP_SADDR | + T4_FILTER_IP_DADDR | T4_FILTER_IP_SPORT | T4_FILTER_IP_DPORT; + + if (fconf & F_FRAGMENTATION) + mode |= T4_FILTER_IP_FRAGMENT; + + if (fconf & F_MPSHITTYPE) + mode |= T4_FILTER_MPS_HIT_TYPE; + + if (fconf & F_MACMATCH) + mode |= T4_FILTER_MAC_IDX; + + if (fconf & F_ETHERTYPE) + mode |= T4_FILTER_ETH_TYPE; + + if (fconf & F_PROTOCOL) + mode |= T4_FILTER_IP_PROTO; + + if (fconf & F_TOS) + mode |= T4_FILTER_IP_TOS; + + if (fconf & F_VLAN) + mode |= T4_FILTER_IVLAN; + + if (fconf & F_VNIC_ID) + mode |= T4_FILTER_OVLAN; + + if (fconf & F_PORT) + mode |= T4_FILTER_PORT; + + if (fconf & F_FCOE) + mode |= T4_FILTER_FCoE; + + return (mode); +} + +static uint32_t +mode_to_fconf(uint32_t mode) +{ + uint32_t fconf = 0; + + if (mode & T4_FILTER_IP_FRAGMENT) + fconf |= F_FRAGMENTATION; + + if (mode & T4_FILTER_MPS_HIT_TYPE) + fconf |= F_MPSHITTYPE; + + if (mode & T4_FILTER_MAC_IDX) + fconf |= F_MACMATCH; + + if (mode & T4_FILTER_ETH_TYPE) + fconf |= F_ETHERTYPE; + + if (mode & T4_FILTER_IP_PROTO) + fconf |= F_PROTOCOL; + + if (mode & T4_FILTER_IP_TOS) + fconf |= F_TOS; + + if (mode & T4_FILTER_IVLAN) + fconf |= F_VLAN; + + if (mode & T4_FILTER_OVLAN) + fconf |= F_VNIC_ID; + + if (mode & T4_FILTER_PORT) + fconf |= F_PORT; + + if (mode & T4_FILTER_FCoE) + fconf |= F_FCOE; + + return (fconf); +} + +static uint32_t +fspec_to_fconf(struct t4_filter_specification *fs) +{ + uint32_t fconf = 0; + + if (fs->val.frag || fs->mask.frag) + fconf |= F_FRAGMENTATION; + + if (fs->val.matchtype || fs->mask.matchtype) + fconf |= F_MPSHITTYPE; + + if (fs->val.macidx || fs->mask.macidx) + fconf |= F_MACMATCH; + + if (fs->val.ethtype || fs->mask.ethtype) + fconf |= F_ETHERTYPE; + + if (fs->val.proto || fs->mask.proto) + fconf |= F_PROTOCOL; + + if (fs->val.tos || fs->mask.tos) + fconf |= F_TOS; + + if (fs->val.ivlan_vld || fs->mask.ivlan_vld) + fconf |= F_VLAN; + + if (fs->val.ovlan_vld || fs->mask.ovlan_vld) + fconf |= F_VNIC_ID; + + if (fs->val.iport || fs->mask.iport) + fconf |= F_PORT; + + if (fs->val.fcoe || fs->mask.fcoe) + fconf |= F_FCOE; + + return (fconf); +} + +static int +get_filter_mode(struct adapter *sc, uint32_t *mode) +{ + uint32_t fconf; + + t4_read_indirect(sc, A_TP_PIO_ADDR, A_TP_PIO_DATA, &fconf, 1, + A_TP_VLAN_PRI_MAP); + + *mode = fconf_to_mode(fconf); + + return (0); +} + +static int +set_filter_mode(struct adapter *sc, uint32_t mode) +{ + uint32_t fconf; + int rc; + + fconf = mode_to_fconf(mode); + + ADAPTER_LOCK(sc); + if (IS_BUSY(sc)) { + rc = EAGAIN; + goto done; + } + + if (sc->tids.ftids_in_use > 0) { + rc = EBUSY; + goto done; + } + + rc = -t4_set_filter_mode(sc, fconf); +done: + ADAPTER_UNLOCK(sc); + return (rc); +} + +static int +get_filter(struct adapter *sc, struct t4_filter *t) +{ + int i, nfilters = sc->tids.nftids; + struct filter_entry *f; + + ADAPTER_LOCK_ASSERT_OWNED(sc); + + if (IS_BUSY(sc)) + return (EAGAIN); + + if (sc->tids.ftids_in_use == 0 || sc->tids.ftid_tab == NULL || + t->idx >= nfilters) { + t->idx = 0xffffffff; + return (0); + } + + f = &sc->tids.ftid_tab[t->idx]; + for (i = t->idx; i < nfilters; i++, f++) { + if (f->valid) { + t->idx = i; + t->fs = f->fs; + t->hits = 0; /* XXX implement */ + + return (0); + } + } + + t->idx = 0xffffffff; + return (0); +} + +static int +set_filter(struct adapter *sc, struct t4_filter *t) +{ + uint32_t fconf; + unsigned int nfilters, nports; + struct filter_entry *f; + int i; + + ADAPTER_LOCK_ASSERT_OWNED(sc); + + nfilters = sc->tids.nftids; + nports = sc->params.nports; + + if (nfilters == 0) + return (ENOTSUP); + + if (!(sc->flags & FULL_INIT_DONE)) + return (EAGAIN); + + if (t->idx >= nfilters) + return (EINVAL); + + /* Validate against the global filter mode */ + t4_read_indirect(sc, A_TP_PIO_ADDR, A_TP_PIO_DATA, &fconf, 1, + A_TP_VLAN_PRI_MAP); + if ((fconf | fspec_to_fconf(&t->fs)) != fconf) + return (E2BIG); + + if (t->fs.action == FILTER_SWITCH && t->fs.eport >= nports) + return (EINVAL); + + if (t->fs.val.iport >= nports) + return (EINVAL); + + /* Can't specify an iq if not steering to it */ + if (!t->fs.dirsteer && t->fs.iq) + return (EINVAL); + + /* IPv6 filter idx must be 4 aligned */ + if (t->fs.type == 1 && + ((t->idx & 0x3) || t->idx + 4 >= nfilters)) + return (EINVAL); + + if (sc->tids.ftid_tab == NULL) { + KASSERT(sc->tids.ftids_in_use == 0, + ("%s: no memory allocated but filters_in_use > 0", + __func__)); + + sc->tids.ftid_tab = malloc(sizeof (struct filter_entry) * + nfilters, M_CXGBE, M_NOWAIT | M_ZERO); + if (sc->tids.ftid_tab == NULL) + return (ENOMEM); + } + + for (i = 0; i < 4; i++) { + f = &sc->tids.ftid_tab[t->idx + i]; + + if (f->pending || f->valid) + return (EBUSY); + if (f->locked) + return (EPERM); + + if (t->fs.type == 0) + break; + } + + f = &sc->tids.ftid_tab[t->idx]; + f->fs = t->fs; + + return set_filter_wr(sc, t->idx); +} + +static int +del_filter(struct adapter *sc, struct t4_filter *t) +{ + unsigned int nfilters; + struct filter_entry *f; + + ADAPTER_LOCK_ASSERT_OWNED(sc); + + if (IS_BUSY(sc)) + return (EAGAIN); + + nfilters = sc->tids.nftids; + + if (nfilters == 0) + return (ENOTSUP); + + if (sc->tids.ftid_tab == NULL || sc->tids.ftids_in_use == 0 || + t->idx >= nfilters) + return (EINVAL); + + if (!(sc->flags & FULL_INIT_DONE)) + return (EAGAIN); + + f = &sc->tids.ftid_tab[t->idx]; + + if (f->pending) + return (EBUSY); + if (f->locked) + return (EPERM); + + if (f->valid) { + t->fs = f->fs; /* extra info for the caller */ + return del_filter_wr(sc, t->idx); + } + + return (0); +} + +/* XXX: L2T */ +static void +clear_filter(struct adapter *sc, struct filter_entry *f) +{ + (void) sc; + bzero(f, sizeof (*f)); +} + +static int +set_filter_wr(struct adapter *sc, int fidx) +{ + int rc; + struct filter_entry *f = &sc->tids.ftid_tab[fidx]; + struct mbuf *m; + struct fw_filter_wr *fwr; + unsigned int ftid; + + ADAPTER_LOCK_ASSERT_OWNED(sc); + + if (f->fs.newdmac || f->fs.newvlan) + return (ENOTSUP); /* XXX: fix after L2T code */ + + ftid = sc->tids.ftid_base + fidx; + + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) + return (ENOMEM); + + fwr = mtod(m, struct fw_filter_wr *); + m->m_len = m->m_pkthdr.len = sizeof(*fwr); + bzero(fwr, sizeof (*fwr)); + + fwr->op_pkd = htobe32(V_FW_WR_OP(FW_FILTER_WR)); + fwr->len16_pkd = htobe32(FW_LEN16(*fwr)); + fwr->tid_to_iq = + htobe32(V_FW_FILTER_WR_TID(ftid) | + V_FW_FILTER_WR_RQTYPE(f->fs.type) | + V_FW_FILTER_WR_NOREPLY(0) | + V_FW_FILTER_WR_IQ(f->fs.iq)); + fwr->del_filter_to_l2tix = + htobe32(V_FW_FILTER_WR_RPTTID(f->fs.rpttid) | + V_FW_FILTER_WR_DROP(f->fs.action == FILTER_DROP) | + V_FW_FILTER_WR_DIRSTEER(f->fs.dirsteer) | + V_FW_FILTER_WR_MASKHASH(f->fs.maskhash) | + V_FW_FILTER_WR_DIRSTEERHASH(f->fs.dirsteerhash) | + V_FW_FILTER_WR_LPBK(f->fs.action == FILTER_SWITCH) | + V_FW_FILTER_WR_DMAC(f->fs.newdmac) | + V_FW_FILTER_WR_SMAC(f->fs.newsmac) | + V_FW_FILTER_WR_INSVLAN(f->fs.newvlan == VLAN_INSERT || + f->fs.newvlan == VLAN_REWRITE) | + V_FW_FILTER_WR_RMVLAN(f->fs.newvlan == VLAN_REMOVE || + f->fs.newvlan == VLAN_REWRITE) | + V_FW_FILTER_WR_HITCNTS(f->fs.hitcnts) | + V_FW_FILTER_WR_TXCHAN(f->fs.eport) | + V_FW_FILTER_WR_PRIO(f->fs.prio) | + V_FW_FILTER_WR_L2TIX(0)); /* XXX: L2T */ + fwr->ethtype = htobe16(f->fs.val.ethtype); + fwr->ethtypem = htobe16(f->fs.mask.ethtype); + fwr->frag_to_ovlan_vldm = + (V_FW_FILTER_WR_FRAG(f->fs.val.frag) | + V_FW_FILTER_WR_FRAGM(f->fs.mask.frag) | + V_FW_FILTER_WR_IVLAN_VLD(f->fs.val.ivlan_vld) | + V_FW_FILTER_WR_OVLAN_VLD(f->fs.val.ovlan_vld) | + V_FW_FILTER_WR_IVLAN_VLDM(f->fs.mask.ivlan_vld) | + V_FW_FILTER_WR_OVLAN_VLDM(f->fs.mask.ovlan_vld)); + fwr->smac_sel = 0; + fwr->rx_chan_rx_rpl_iq = htobe16(V_FW_FILTER_WR_RX_CHAN(0) | + V_FW_FILTER_WR_RX_RPL_IQ(sc->sge.fwq.abs_id)); + fwr->maci_to_matchtypem = + htobe32(V_FW_FILTER_WR_MACI(f->fs.val.macidx) | + V_FW_FILTER_WR_MACIM(f->fs.mask.macidx) | + V_FW_FILTER_WR_FCOE(f->fs.val.fcoe) | + V_FW_FILTER_WR_FCOEM(f->fs.mask.fcoe) | + V_FW_FILTER_WR_PORT(f->fs.val.iport) | + V_FW_FILTER_WR_PORTM(f->fs.mask.iport) | + V_FW_FILTER_WR_MATCHTYPE(f->fs.val.matchtype) | + V_FW_FILTER_WR_MATCHTYPEM(f->fs.mask.matchtype)); + fwr->ptcl = f->fs.val.proto; + fwr->ptclm = f->fs.mask.proto; + fwr->ttyp = f->fs.val.tos; + fwr->ttypm = f->fs.mask.tos; + fwr->ivlan = htobe16(f->fs.val.ivlan); + fwr->ivlanm = htobe16(f->fs.mask.ivlan); + fwr->ovlan = htobe16(f->fs.val.ovlan); + fwr->ovlanm = htobe16(f->fs.mask.ovlan); + bcopy(f->fs.val.dip, fwr->lip, sizeof (fwr->lip)); + bcopy(f->fs.mask.dip, fwr->lipm, sizeof (fwr->lipm)); + bcopy(f->fs.val.sip, fwr->fip, sizeof (fwr->fip)); + bcopy(f->fs.mask.sip, fwr->fipm, sizeof (fwr->fipm)); + fwr->lp = htobe16(f->fs.val.dport); + fwr->lpm = htobe16(f->fs.mask.dport); + fwr->fp = htobe16(f->fs.val.sport); + fwr->fpm = htobe16(f->fs.mask.sport); + if (f->fs.newsmac) + bcopy(f->fs.smac, fwr->sma, sizeof (fwr->sma)); + + f->pending = 1; + sc->tids.ftids_in_use++; + rc = t4_mgmt_tx(sc, m); + if (rc != 0) { + sc->tids.ftids_in_use--; + m_freem(m); + clear_filter(sc, f); + } + return (rc); +} + +static int +del_filter_wr(struct adapter *sc, int fidx) +{ + struct filter_entry *f = &sc->tids.ftid_tab[fidx]; + struct mbuf *m; + struct fw_filter_wr *fwr; + unsigned int rc, ftid; + + ADAPTER_LOCK_ASSERT_OWNED(sc); + + ftid = sc->tids.ftid_base + fidx; + + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) + return (ENOMEM); + + fwr = mtod(m, struct fw_filter_wr *); + m->m_len = m->m_pkthdr.len = sizeof(*fwr); + bzero(fwr, sizeof (*fwr)); + + t4_mk_filtdelwr(ftid, fwr, sc->sge.fwq.abs_id); + + f->pending = 1; + rc = t4_mgmt_tx(sc, m); + if (rc != 0) { + f->pending = 0; + m_freem(m); + } + return (rc); +} + +/* XXX move intr handlers to main.c and make this static */ +void +filter_rpl(struct adapter *sc, const struct cpl_set_tcb_rpl *rpl) +{ + unsigned int idx = GET_TID(rpl); + + if (idx >= sc->tids.ftid_base && + (idx -= sc->tids.ftid_base) < sc->tids.nftids) { + unsigned int rc = G_COOKIE(rpl->cookie); + struct filter_entry *f = &sc->tids.ftid_tab[idx]; + + if (rc == FW_FILTER_WR_FLT_DELETED) { + /* + * Clear the filter when we get confirmation from the + * hardware that the filter has been deleted. + */ + clear_filter(sc, f); + sc->tids.ftids_in_use--; + } else if (rc == FW_FILTER_WR_SMT_TBL_FULL) { + device_printf(sc->dev, + "filter %u setup failed due to full SMT\n", idx); + clear_filter(sc, f); + sc->tids.ftids_in_use--; + } else if (rc == FW_FILTER_WR_FLT_ADDED) { + f->smtidx = (be64toh(rpl->oldval) >> 24) & 0xff; + f->pending = 0; /* asynchronous setup completed */ + f->valid = 1; + } else { + /* + * Something went wrong. Issue a warning about the + * problem and clear everything out. + */ + device_printf(sc->dev, + "filter %u setup failed with error %u\n", idx, rc); + clear_filter(sc, f); + sc->tids.ftids_in_use--; + } + } +} + int t4_os_find_pci_capability(struct adapter *sc, int cap) { @@ -2873,6 +3379,27 @@ t4_ioctl(struct cdev *dev, unsigned long free(buf, M_CXGBE); break; } + case CHELSIO_T4_GET_FILTER_MODE: + rc = get_filter_mode(sc, (uint32_t *)data); + break; + case CHELSIO_T4_SET_FILTER_MODE: + rc = set_filter_mode(sc, *(uint32_t *)data); + break; + case CHELSIO_T4_GET_FILTER: + ADAPTER_LOCK(sc); + rc = get_filter(sc, (struct t4_filter *)data); + ADAPTER_UNLOCK(sc); + break; + case CHELSIO_T4_SET_FILTER: + ADAPTER_LOCK(sc); + rc = set_filter(sc, (struct t4_filter *)data); + ADAPTER_UNLOCK(sc); + break; + case CHELSIO_T4_DEL_FILTER: + ADAPTER_LOCK(sc); + rc = del_filter(sc, (struct t4_filter *)data); + ADAPTER_UNLOCK(sc); + break; default: rc = EINVAL; } Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Thu May 5 02:00:53 2011 (r221473) +++ head/sys/dev/cxgbe/t4_sge.c Thu May 5 02:04:56 2011 (r221474) @@ -142,6 +142,8 @@ static int handle_sge_egr_update(struct static int ctrl_tx(struct adapter *, struct sge_ctrlq *, struct mbuf *); +extern void filter_rpl(struct adapter *, const struct cpl_set_tcb_rpl *); + /* * Called on MOD_LOAD and fills up fl_buf_info[]. */ @@ -580,7 +582,9 @@ t4_evt_rx(void *arg) case CPL_SGE_EGR_UPDATE: handle_sge_egr_update(sc, (const void *)(rss + 1)); break; - + case CPL_SET_TCB_RPL: + filter_rpl(sc, (const void *) (rss + 1)); + break; default: device_printf(sc->dev, "can't handle CPL opcode %d.", rss->opcode); From owner-svn-src-head@FreeBSD.ORG Thu May 5 02:35:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5AAE2106566B; Thu, 5 May 2011 02:35:12 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 47BE88FC0C; Thu, 5 May 2011 02:35:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p452ZC4n077773; Thu, 5 May 2011 02:35:12 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p452ZCZ0077771; Thu, 5 May 2011 02:35:12 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201105050235.p452ZCZ0077771@svn.freebsd.org> From: Doug Barton Date: Thu, 5 May 2011 02:35:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221475 - head/etc/periodic/daily X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 02:35:12 -0000 Author: dougb Date: Thu May 5 02:35:11 2011 New Revision: 221475 URL: http://svn.freebsd.org/changeset/base/221475 Log: 1. If PKG_DBDIR cannot be determined from make, set the default 2. Add the -H flag to tar in case /var/db/pkg itself is a symlink 3. Direct stderr to /dev/null to suppress the leading slash warning [1] PR: ports/156810 [1] Submitted by: Jeremy Chadwick [1] Modified: head/etc/periodic/daily/220.backup-pkgdb Modified: head/etc/periodic/daily/220.backup-pkgdb ============================================================================== --- head/etc/periodic/daily/220.backup-pkgdb Thu May 5 02:04:56 2011 (r221474) +++ head/etc/periodic/daily/220.backup-pkgdb Thu May 5 02:35:11 2011 (r221475) @@ -18,7 +18,8 @@ case "$daily_backup_pkgdb_enable" in bak="${daily_backup_pkgdb_dir:-/var/backups}" bak_file="${bak}/pkgdb.bak.tbz" - pkg_dbdir=`make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR 2>/dev/null` + pkg_dbdir=`make -f/usr/share/mk/bsd.port.mk -V PKG_DBDIR 2>/dev/null` || + pkg_dbdir=/var/db/pkg if [ ! -d "$bak" ] then @@ -33,7 +34,7 @@ case "$daily_backup_pkgdb_enable" in new_bak_file=`mktemp ${bak_file}-XXXXX` - if tar -cjf "${new_bak_file}" "$pkg_dbdir"; then + if tar -cjHf "${new_bak_file}" "$pkg_dbdir" 2>/dev/null; then chmod 644 "${new_bak_file}" if [ -e "${bak_file}.2" -a -e "${bak_file}" ]; then From owner-svn-src-head@FreeBSD.ORG Thu May 5 02:35:26 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 070FC1065674; Thu, 5 May 2011 02:35:26 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E86D88FC15; Thu, 5 May 2011 02:35:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p452ZPhr077816; Thu, 5 May 2011 02:35:25 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p452ZP4n077814; Thu, 5 May 2011 02:35:25 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201105050235.p452ZP4n077814@svn.freebsd.org> From: "David E. O'Brien" Date: Thu, 5 May 2011 02:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221476 - head/sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 02:35:26 -0000 Author: obrien Date: Thu May 5 02:35:25 2011 New Revision: 221476 URL: http://svn.freebsd.org/changeset/base/221476 Log: Guard ptrdiff_t. Modified: head/sys/sys/stddef.h Modified: head/sys/sys/stddef.h ============================================================================== --- head/sys/sys/stddef.h Thu May 5 02:35:11 2011 (r221475) +++ head/sys/sys/stddef.h Thu May 5 02:35:25 2011 (r221476) @@ -33,7 +33,10 @@ #include #include +#ifndef _PTRDIFF_T_DECLARED typedef __ptrdiff_t ptrdiff_t; +#define _PTRDIFF_T_DECLARED +#endif #define offsetof(type, field) __offsetof(type, field) From owner-svn-src-head@FreeBSD.ORG Thu May 5 02:38:09 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 606E0106564A; Thu, 5 May 2011 02:38:09 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 330AE8FC12; Thu, 5 May 2011 02:38:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p452c99Z077933; Thu, 5 May 2011 02:38:09 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p452c9CB077930; Thu, 5 May 2011 02:38:09 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201105050238.p452c9CB077930@svn.freebsd.org> From: Navdeep Parhar Date: Thu, 5 May 2011 02:38:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221477 - in head/sys: dev/cxgbe modules/cxgbe/if_cxgbe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 02:38:09 -0000 Author: np Date: Thu May 5 02:38:08 2011 New Revision: 221477 URL: http://svn.freebsd.org/changeset/base/221477 Log: T4 packet timestamps. Reference code that shows how to get a packet's timestamp out of cxgbe(4). Disabled by default because we don't have a standard way today to pass this information up the stack. The timestamp is 60 bits wide and each increment represents 1 tick of the T4's core clock. As an example, the timestamp granularity is ~4.4ns for this card: # sysctl dev.t4nex.0.core_clock dev.t4nex.0.core_clock: 228125 MFC after: 1 week Modified: head/sys/dev/cxgbe/t4_sge.c head/sys/modules/cxgbe/if_cxgbe/Makefile Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Thu May 5 02:35:25 2011 (r221476) +++ head/sys/dev/cxgbe/t4_sge.c Thu May 5 02:38:08 2011 (r221477) @@ -606,6 +606,12 @@ t4_evt_rx(void *arg) V_INGRESSQID(iq->cntxt_id) | V_SEINTARM(iq->intr_params)); } +#ifdef T4_PKT_TIMESTAMP +#define RX_COPY_THRESHOLD (MINCLSIZE - 8) +#else +#define RX_COPY_THRESHOLD MINCLSIZE +#endif + void t4_eth_rx(void *arg) { @@ -669,7 +675,22 @@ t4_eth_rx(void *arg) BUS_DMASYNC_POSTREAD); m_init(m0, NULL, 0, M_NOWAIT, MT_DATA, M_PKTHDR); - if (len < MINCLSIZE) { + +#ifdef T4_PKT_TIMESTAMP + *mtod(m0, uint64_t *) = + be64toh(ctrl->u.last_flit & 0xfffffffffffffff); + m0->m_data += 8; + + /* + * 60 bit timestamp value is *(uint64_t *)m0->m_pktdat. Note + * that it is in the leading free-space (see M_LEADINGSPACE) in + * the mbuf. The kernel can clobber it during a pullup, + * m_copymdata, etc. You need to make sure that the mbuf + * reaches you unmolested if you care about the timestamp. + */ +#endif + + if (len < RX_COPY_THRESHOLD) { /* copy data to mbuf, buffer will be recycled */ bcopy(sd->cl, mtod(m0, caddr_t), len); m0->m_len = len; Modified: head/sys/modules/cxgbe/if_cxgbe/Makefile ============================================================================== --- head/sys/modules/cxgbe/if_cxgbe/Makefile Thu May 5 02:35:25 2011 (r221476) +++ head/sys/modules/cxgbe/if_cxgbe/Makefile Thu May 5 02:38:08 2011 (r221477) @@ -13,4 +13,7 @@ SRCS+= opt_inet.h CFLAGS+= -I${CXGBE} +# Provide the timestamp of a packet in its header mbuf. +#CFLAGS+= -DT4_PKT_TIMESTAMP + .include From owner-svn-src-head@FreeBSD.ORG Thu May 5 02:59:32 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 203551065670; Thu, 5 May 2011 02:59:32 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 01E228FC18; Thu, 5 May 2011 02:59:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p452xVrj078620; Thu, 5 May 2011 02:59:31 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p452xVBv078617; Thu, 5 May 2011 02:59:31 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105050259.p452xVBv078617@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 02:59:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221479 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 02:59:32 -0000 Author: adrian Date: Thu May 5 02:59:31 2011 New Revision: 221479 URL: http://svn.freebsd.org/changeset/base/221479 Log: Import some HOWL (AR9130) related fixes from Atheros. Obtained from: Atheros Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Thu May 5 02:52:10 2011 (r221478) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Thu May 5 02:59:31 2011 (r221479) @@ -251,7 +251,12 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMO OS_REG_WRITE(ah, AR_BSSMSKU, LE_READ_2(ahp->ah_bssidmask + 4)); /* Restore previous led state */ - OS_REG_WRITE(ah, AR_MAC_LED, OS_REG_READ(ah, AR_MAC_LED) | saveLedState); + if (AR_SREV_HOWL(ah)) + OS_REG_WRITE(ah, AR_MAC_LED, + AR_MAC_LED_ASSOC_ACTIVE | AR_CFG_SCLK_32KHZ); + else + OS_REG_WRITE(ah, AR_MAC_LED, OS_REG_READ(ah, AR_MAC_LED) | + saveLedState); /* Restore previous antenna */ OS_REG_WRITE(ah, AR_DEF_ANTENNA, saveDefAntenna); @@ -332,6 +337,19 @@ ar5416Reset(struct ath_hal *ah, HAL_OPMO if (bChannelChange && !IEEE80211_IS_CHAN_DFS(chan)) chan->ic_state &= ~IEEE80211_CHANSTATE_CWINT; + if (AR_SREV_HOWL(ah)) { + /* + * Enable the MBSSID block-ack fix for HOWL. + * This feature is only supported on Howl 1.4, but it is safe to + * set bit 22 of STA_ID1 on other Howl revisions (1.1, 1.2, 1.3), + * since bit 22 is unused in those Howl revisions. + */ + unsigned int reg; + reg = (OS_REG_READ(ah, AR_STA_ID1) | (1<<22)); + OS_REG_WRITE(ah,AR_STA_ID1, reg); + ath_hal_printf(ah, "MBSSID Set bit 22 of AR_STA_ID 0x%x\n", reg); + } + HALDEBUG(ah, HAL_DEBUG_RESET, "%s: done\n", __func__); OS_MARK(ah, AH_MARK_RESET_DONE, 0); @@ -1205,7 +1223,11 @@ ar5416SetReset(struct ath_hal *ah, int t #endif /* AH_SUPPORT_AR9130 */ OS_REG_WRITE(ah, AR_RTC_RC, rst_flags); - OS_DELAY(50); + + if (AR_SREV_HOWL(ah)) + OS_DELAY(10000); + else + OS_DELAY(100); /* * Clear resets and force wakeup Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Thu May 5 02:52:10 2011 (r221478) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Thu May 5 02:59:31 2011 (r221479) @@ -199,6 +199,12 @@ #define AR_RXCFG_DMASZ_512B 7 /* MAC Led registers */ +#define AR_CFG_SCLK_RATE_IND 0x00000003 /* sleep clock indication */ +#define AR_CFG_SCLK_RATE_IND_S 0 +#define AR_CFG_SCLK_32MHZ 0x00000000 /* Sleep clock rate */ +#define AR_CFG_SCLK_4MHZ 0x00000001 /* Sleep clock rate */ +#define AR_CFG_SCLK_1MHZ 0x00000002 /* Sleep clock rate */ +#define AR_CFG_SCLK_32KHZ 0x00000003 /* Sleep clock rate */ #define AR_MAC_LED_BLINK_SLOW 0x00000008 /* LED slowest blink rate mode */ #define AR_MAC_LED_BLINK_THRESH_SEL 0x00000070 /* LED blink threshold select */ #define AR_MAC_LED_MODE 0x00000380 /* LED mode select */ From owner-svn-src-head@FreeBSD.ORG Thu May 5 03:42:04 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DBAD4106566B; Thu, 5 May 2011 03:42:04 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C96CE8FC08; Thu, 5 May 2011 03:42:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p453g4le080190; Thu, 5 May 2011 03:42:04 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p453g4E7080188; Thu, 5 May 2011 03:42:04 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105050342.p453g4E7080188@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 03:42:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221480 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 03:42:05 -0000 Author: adrian Date: Thu May 5 03:42:04 2011 New Revision: 221480 URL: http://svn.freebsd.org/changeset/base/221480 Log: Fix up the chipset checks for the AR5416 and later silicon. The checks should function as follows: * AR_SREV_ : check macVersion matches that version id * AR_SREV__ : check macVersion and macRevision match the version / revision respectively * AR_SREV___OR_LATER: check that + if the chip silicon version == macVersion, enforce revision >= macRevision + if the chip silicon version > macVersion, allow it. For example, AR_SREV_MERLIN() only matches AR9280 (any revision), AR_SREV_MERLIN_10() would only match AR9280 version 1.0, but AR_SREV_MERLIN_20_OR_LATER() matches AR9280 version >= 2.0 _AND_ any subsequent MAC (So AR9285, AR9287, etc.) The specific fixes which may impact users: * if there is Merlin hardware > revision 2.0, it'll now be correctly matched by AR_SREV_MERLIN_20_OR_LATER() - the older code simply would match on either Merlin 2.0 or a subsequent MAC (AR9285, AR9287, etc.) * Kite version 1.1/1.2 should now correctly match. As these macros are used in the AR9285 reset/attach path, and it's assumed that the hardware is kite anyway, the behaviour shouldn't change. It'll only change if these macros are used in other codepaths shared with older silicon. Obtained from: Linux ath9k, Atheros Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Thu May 5 02:59:31 2011 (r221479) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Thu May 5 03:42:04 2011 (r221480) @@ -625,56 +625,83 @@ #define AR_XSREV_REVISION_KITE_11 1 /* Kite 1.1 */ #define AR_XSREV_REVISION_KITE_12 2 /* Kite 1.2 */ +/* Owl (AR5416) */ #define AR_SREV_OWL(_ah) \ ((AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_OWL_PCI) || \ (AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_OWL_PCIE)) #define AR_SREV_OWL_20_OR_LATER(_ah) \ - ((AR_SREV_OWL(_ah) && AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_OWL_20) || \ - AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_HOWL) + ((AR_SREV_OWL(_ah) && \ + AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_OWL_20) || \ + AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_HOWL) + #define AR_SREV_OWL_22_OR_LATER(_ah) \ - ((AR_SREV_OWL(_ah) && AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_OWL_22) || \ - AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_HOWL) + ((AR_SREV_OWL(_ah) && \ + AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_OWL_22) || \ + AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_HOWL) + +/* Howl (AR9130) */ #define AR_SREV_HOWL(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_HOWL) + #define AR_SREV_9100(_ah) AR_SREV_HOWL(_ah) +/* Sowl (AR9160) */ + #define AR_SREV_SOWL(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_SOWL) + #define AR_SREV_SOWL_10_OR_LATER(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_SOWL) + #define AR_SREV_SOWL_11(_ah) \ (AR_SREV_SOWL(_ah) && \ AH_PRIVATE((_ah))->ah_macRev == AR_XSREV_REVISION_SOWL_11) +/* Merlin (AR9280) */ + #define AR_SREV_MERLIN(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_MERLIN) + #define AR_SREV_MERLIN_10_OR_LATER(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_MERLIN) + #define AR_SREV_MERLIN_20(_ah) \ (AR_SREV_MERLIN(_ah) && \ AH_PRIVATE((_ah))->ah_macRev == AR_XSREV_REVISION_MERLIN_20) + #define AR_SREV_MERLIN_20_OR_LATER(_ah) \ - (AR_SREV_MERLIN_20(_ah) || \ - AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_MERLIN) + ((AH_PRIVATE((_ah))->ah_macVersion > AR_XSREV_VERSION_MERLIN) || \ + (AR_SREV_MERLIN((_ah)) && \ + AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_MERLIN_20)) + +/* Kite (AR9285) */ #define AR_SREV_KITE(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion == AR_XSREV_VERSION_KITE) + #define AR_SREV_KITE_10_OR_LATER(_ah) \ (AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_KITE) + #define AR_SREV_KITE_11(_ah) \ (AR_SREV_KITE(ah) && \ AH_PRIVATE((_ah))->ah_macRev == AR_XSREV_REVISION_KITE_11) + #define AR_SREV_KITE_11_OR_LATER(_ah) \ - (AR_SREV_KITE_11(_ah) || \ - AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_KITE_11) + ((AH_PRIVATE((_ah))->ah_macVersion > AR_XSREV_VERSION_KITE) || \ + (AR_SREV_KITE((_ah)) && \ + AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_KITE_11)) + #define AR_SREV_KITE_12(_ah) \ (AR_SREV_KITE(ah) && \ AH_PRIVATE((_ah))->ah_macRev == AR_XSREV_REVISION_KITE_12) + #define AR_SREV_KITE_12_OR_LATER(_ah) \ - (AR_SREV_KITE_12(_ah) || \ - AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_KITE_12) + ((AH_PRIVATE((_ah))->ah_macVersion > AR_XSREV_VERSION_KITE) || \ + (AR_SREV_KITE((_ah)) && \ + AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_KITE_12)) + #define AR_SREV_9285E_20(_ah) \ (AR_SREV_KITE_12_OR_LATER(_ah) && \ ((OS_REG_READ(_ah, AR_AN_SYNTH9) & 0x7) == 0x1)) From owner-svn-src-head@FreeBSD.ORG Thu May 5 04:43:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 778621065673; Thu, 5 May 2011 04:43:05 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 662088FC0C; Thu, 5 May 2011 04:43:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p454h5Pv082085; Thu, 5 May 2011 04:43:05 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p454h5Lg082083; Thu, 5 May 2011 04:43:05 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105050443.p454h5Lg082083@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 04:43:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221483 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 04:43:05 -0000 Author: adrian Date: Thu May 5 04:43:05 2011 New Revision: 221483 URL: http://svn.freebsd.org/changeset/base/221483 Log: Another Howl (AR9130) fix. I haven't seen a 5ghz AR9130 based board yet though! Obtained from: Atheros Modified: head/sys/dev/ath/ath_hal/ar5416/ar2133.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar2133.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar2133.c Thu May 5 03:58:23 2011 (r221482) +++ head/sys/dev/ath/ath_hal/ar5416/ar2133.c Thu May 5 04:43:05 2011 (r221483) @@ -165,7 +165,7 @@ ar2133SetChannel(struct ath_hal *ah, con } } else if ((freq % 20) == 0 && freq >= 5120) { channelSel = ath_hal_reverseBits(((freq - 4800) / 20 << 2), 8); - if (AR_SREV_SOWL_10_OR_LATER(ah)) + if (AR_SREV_HOWL(ah) || AR_SREV_SOWL_10_OR_LATER(ah)) aModeRefSel = ath_hal_reverseBits(3, 2); else aModeRefSel = ath_hal_reverseBits(1, 2); From owner-svn-src-head@FreeBSD.ORG Thu May 5 07:50:36 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E325F106564A; Thu, 5 May 2011 07:50:36 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 9E4508FC16; Thu, 5 May 2011 07:50:36 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 810011FFC58; Thu, 5 May 2011 07:50:34 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 2F7618456D; Thu, 5 May 2011 09:50:34 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Rick Macklem References: <1310797810.1031067.1304558503327.JavaMail.root@erie.cs.uoguelph.ca> Date: Thu, 05 May 2011 09:50:33 +0200 In-Reply-To: <1310797810.1031067.1304558503327.JavaMail.root@erie.cs.uoguelph.ca> (Rick Macklem's message of "Wed, 4 May 2011 21:21:43 -0400 (EDT)") Message-ID: <86r58dsi0m.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 07:50:37 -0000 Rick Macklem writes: > "Dag-Erling Sm=C3=B8rgrav" writes: > > Ideally, both the old and the new NFS stack would use the same > > fstypes and sysctl names, but I don't know if there's any way we can > > prevent someone from compiling both into the kernel at the same > > time, or loading both modules. > If the scripts in /etc/rc.d are fixed to use the correct sysctl naming, > do you think it matters which one is "vfs.nfs."? Yes. There is a whole world outside the base system: munin, webmin, nagios etc. Are you going to change all of them as well? DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Thu May 5 08:08:18 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 94DC2106564A; Thu, 5 May 2011 08:08:18 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8398C8FC0A; Thu, 5 May 2011 08:08:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4588InD089554; Thu, 5 May 2011 08:08:18 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4588I6S089551; Thu, 5 May 2011 08:08:18 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201105050808.p4588I6S089551@svn.freebsd.org> From: Dag-Erling Smorgrav Date: Thu, 5 May 2011 08:08:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221487 - head/crypto/openssh X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 08:08:18 -0000 Author: des Date: Thu May 5 08:08:18 2011 New Revision: 221487 URL: http://svn.freebsd.org/changeset/base/221487 Log: Merge two upstream patches from vendor branch. No functional changes. Modified: head/crypto/openssh/ChangeLog head/crypto/openssh/defines.h Directory Properties: head/crypto/openssh/ (props changed) Modified: head/crypto/openssh/ChangeLog ============================================================================== --- head/crypto/openssh/ChangeLog Thu May 5 08:04:31 2011 (r221486) +++ head/crypto/openssh/ChangeLog Thu May 5 08:08:18 2011 (r221487) @@ -1,6 +1,7 @@ 20110403 - (djm) [README contrib/caldera/openssh.spec contrib/redhat/openssh.spec] [contrib/suse/openssh.spec] Prepare for 5.8p2 release. + - (djm) [version.h] crank version - Release 5.8p2 20110329 Modified: head/crypto/openssh/defines.h ============================================================================== --- head/crypto/openssh/defines.h Thu May 5 08:04:31 2011 (r221486) +++ head/crypto/openssh/defines.h Thu May 5 08:08:18 2011 (r221487) @@ -25,7 +25,7 @@ #ifndef _DEFINES_H #define _DEFINES_H -/* $Id: defines.h,v 1.164 2011/01/17 10:15:31 dtucker Exp $ */ +/* $Id: defines.h,v 1.165 2011/05/05 01:19:15 djm Exp $ */ /* Constants */ @@ -45,6 +45,7 @@ enum /* * Definitions for IP type of service (ip_tos) */ +#include #include #ifndef IPTOS_LOWDELAY # define IPTOS_LOWDELAY 0x10 @@ -57,7 +58,6 @@ enum /* * Definitions for DiffServ Codepoints as per RFC2474 */ -#include #ifndef IPTOS_DSCP_AF11 # define IPTOS_DSCP_AF11 0x28 # define IPTOS_DSCP_AF12 0x30 From owner-svn-src-head@FreeBSD.ORG Thu May 5 08:11:23 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2BDC61065670; Thu, 5 May 2011 08:11:23 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 106978FC12; Thu, 5 May 2011 08:11:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p458BM2l089690; Thu, 5 May 2011 08:11:22 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p458BMBW089688; Thu, 5 May 2011 08:11:22 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105050811.p458BMBW089688@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 08:11:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221488 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 08:11:23 -0000 Author: adrian Date: Thu May 5 08:11:22 2011 New Revision: 221488 URL: http://svn.freebsd.org/changeset/base/221488 Log: Don't perform NF calibration for radio chains which aren't in use: Quoting the ath9k commit message: At present the noise floor calibration is processed in supported control and extension chains rather than required chains. Unnccesarily doing nfcal in all supported chains leads to invalid nf readings on extn chains and these invalid values got updated into history buffer. While loading those values from history buffer is moving the chip to deaf state. This issue was observed in AR9002/AR9003 chips while doing associate/dissociate in HT40 mode and interface up/down in iterative manner. After some iterations, the chip was moved to deaf state. Somehow the pci devices are recovered by poll work after chip reset. Raading the nf values in all supported extension chains when the hw is not yet configured in HT40 mode results invalid values. Reference: https://patchwork.kernel.org/patch/753862/ Obtained from: Linux ath9k Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c Thu May 5 08:08:18 2011 (r221487) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_cal.c Thu May 5 08:11:22 2011 (r221488) @@ -620,9 +620,9 @@ ar5416LoadNF(struct ath_hal *ah, const s HALDEBUG(ah, HAL_DEBUG_NFCAL, "CCA: "); for (i = 0; i < AR5416_NUM_NF_READINGS; i ++) { - /* Don't write to EXT radio CCA registers */ + /* Don't write to EXT radio CCA registers unless in HT/40 mode */ /* XXX this check should really be cleaner! */ - if (i >= 3 && !IEEE80211_IS_CHAN_HT40(chan)) + if (i > 2 && !IEEE80211_IS_CHAN_HT40(chan)) continue; if (chainmask & (1 << i)) { @@ -670,6 +670,12 @@ ar5416LoadNF(struct ath_hal *ah, const s * of next noise floor calibration the baseband does. */ for (i = 0; i < AR5416_NUM_NF_READINGS; i ++) + + /* Don't write to EXT radio CCA registers unless in HT/40 mode */ + /* XXX this check should really be cleaner! */ + if (i > 2 && !IEEE80211_IS_CHAN_HT40(chan)) + continue; + if (chainmask & (1 << i)) { val = OS_REG_READ(ah, ar5416_cca_regs[i]); val &= 0xFFFFFE00; @@ -701,10 +707,12 @@ ar5416InitNfHistBuff(struct ar5212NfCalH * Update the noise floor buffer as a ring buffer */ static void -ar5416UpdateNFHistBuff(struct ar5212NfCalHist *h, int16_t *nfarray) +ar5416UpdateNFHistBuff(struct ath_hal *ah, struct ar5212NfCalHist *h, + int16_t *nfarray) { int i; + /* XXX TODO: don't record nfarray[] entries for inactive chains */ for (i = 0; i < AR5416_NUM_NF_READINGS; i ++) { h[i].nfCalBuffer[h[i].currIndex] = nfarray[i]; @@ -814,7 +822,7 @@ ar5416GetNf(struct ath_hal *ah, struct i } ichan->privFlags |= CHANNEL_MIMO_NF_VALID; - ar5416UpdateNFHistBuff(AH5416(ah)->ah_cal.nfCalHist, nfarray); + ar5416UpdateNFHistBuff(ah, AH5416(ah)->ah_cal.nfCalHist, nfarray); ichan->rawNoiseFloor = nf; } return nf; From owner-svn-src-head@FreeBSD.ORG Thu May 5 09:04:49 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD4D81065672; Thu, 5 May 2011 09:04:49 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C0F5E8FC15; Thu, 5 May 2011 09:04:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4594nAR091261; Thu, 5 May 2011 09:04:49 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4594ngZ091258; Thu, 5 May 2011 09:04:49 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105050904.p4594ngZ091258@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 09:04:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221489 - head/sys/mips/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 09:04:50 -0000 Author: adrian Date: Thu May 5 09:04:49 2011 New Revision: 221489 URL: http://svn.freebsd.org/changeset/base/221489 Log: Add nvram2env (untested) and geom_map (tested) to PB92. Modified: head/sys/mips/conf/PB92 head/sys/mips/conf/PB92.hints Modified: head/sys/mips/conf/PB92 ============================================================================== --- head/sys/mips/conf/PB92 Thu May 5 08:11:22 2011 (r221488) +++ head/sys/mips/conf/PB92 Thu May 5 09:04:49 2011 (r221489) @@ -6,9 +6,13 @@ # ident PB92 +# XXX The default load address in the Uboot environment is 0x80010000 makeoptions KERNLOADADDR=0x80050000 options HZ=1000 +# The PB92 has 32mb of RAM; hard-code that +options AR71XX_REALMEM=32*1024*1024 + hints "PB92.hints" include "../atheros/std.ar71xx" @@ -21,20 +25,17 @@ options KDB options SCHED_4BSD #4BSD scheduler options INET #InterNETworking options INET6 -options NFSCLIENT #Network Filesystem Client +# options NFSCLIENT #Network Filesystem Client options PSEUDOFS #Pseudo-filesystem framework options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions options ALQ -# options NFS_LEGACYRPC -#options NFS_DEBUG - # Debugging for use in -current -options DEADLKRES -options INVARIANTS -options INVARIANT_SUPPORT -options WITNESS -options WITNESS_SKIPSPIN +#options DEADLKRES +#options INVARIANTS +#options INVARIANT_SUPPORT +#options WITNESS +#options WITNESS_SKIPSPIN options FFS #Berkeley Fast Filesystem #options SOFTUPDATES #Enable FFS soft updates support #options UFS_ACL #Support for access control lists @@ -46,9 +47,13 @@ device geom_uzip options GEOM_UZIP options ROOTDEVNAME=\"ufs:/dev/md0.uzip\" +# PCI bus device pci device ar724x_pci +# NVRAM U-Boot Environment -> Kernel environment +device nvram2env + # Wireless NIC cards options IEEE80211_DEBUG options IEEE80211_SUPPORT_MESH @@ -75,23 +80,42 @@ device ath_rate_sample device mii device arge +# USB devices - PB92 has EHCI only + device usb options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order options USB_DEBUG options USB_HOST_ALIGN=32 device ehci +# Mass storage +device scbus +device umass +device da + +# Read MSDOS formatted disks +options GEOM_PART_BSD +options GEOM_PART_MBR +options MSDOSFS + +# GPIO Bus device gpio device gpioled +# SPI and flash device spibus device ar71xx_spi device mx25l +# The flash is statically partitioned; add in that +device geom_map + device ar71xx_wdog +# Serial device uart +# Network twiddling device loop device ether device md Modified: head/sys/mips/conf/PB92.hints ============================================================================== --- head/sys/mips/conf/PB92.hints Thu May 5 08:11:22 2011 (r221488) +++ head/sys/mips/conf/PB92.hints Thu May 5 09:04:49 2011 (r221489) @@ -9,12 +9,6 @@ hint.uart.0.maddr=0x18020003 hint.uart.0.msize=0x18 hint.uart.0.irq=3 -# ohci -#hint.ohci.0.at="apb0" -#hint.ohci.0.maddr=0x1b000000 -#hint.ohci.0.msize=0x01000000 -#hint.ohci.0.irq=1 - #ehci - note the 0x100 offset for the AR913x/AR724x hint.ehci.0.at="nexus0" hint.ehci.0.maddr=0x1b000100 @@ -67,3 +61,53 @@ hint.mx25l.0.cs=0 # Watchdog hint.ar71xx_wdog.0.at="nexus0" + +# nvram mapping - XXX ? +hint.nvram.0.base=0x1f030000 +hint.nvram.0.maxsize=0x2000 +hint.nvram.0.flags=3 # 1 = No check, 2 = Format Generic +hint.nvram.1.base=0x1f032000 +hint.nvram.1.maxsize=0x4000 +hint.nvram.1.flags=3 # 1 = No check, 2 = Format Generic + +# GEOM_MAP +# +# From my PB92 environment: +# +# mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),2752k(rootfs),896k(uImage),64k(NVRAM),64k(ART) + +hint.map.0.at="flash/spi0" +hint.map.0.start=0x00000000 +hint.map.0.end=0x00040000 # 256k u-boot +hint.map.0.name="u-boot" +hint.map.0.readonly=1 + +hint.map.1.at="flash/spi0" +hint.map.1.start=0x00040000 +hint.map.1.end=0x00050000 # 64k u-boot-env +hint.map.1.name="u-boot-env" +hint.map.1.readonly=0 + +hint.map.2.at="flash/spi0" +hint.map.2.start=0x00050000 +hint.map.2.end=0x00300000 # 2752k rootfs +hint.map.2.name="rootfs" +hint.map.2.readonly=1 + +hint.map.3.at="flash/spi0" +hint.map.3.start=0x00300000 +hint.map.3.end=0x003e0000 # 896k uImage +hint.map.3.name="uImage" +hint.map.3.readonly=0 + +hint.map.4.at="flash/spi0" +hint.map.4.start=0x003e0000 +hint.map.4.end=0x003f0000 # 64k NVRAM +hint.map.4.name="NVRAM" +hint.map.4.readonly=0 + +hint.map.5.at="flash/spi0" +hint.map.5.start=0x003f0000 +hint.map.5.end=0x00400000 # 64k ART +hint.map.5.name="ART" +hint.map.5.readonly=1 From owner-svn-src-head@FreeBSD.ORG Thu May 5 09:55:56 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0F43F106566C; Thu, 5 May 2011 09:55:56 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D84FB8FC0C; Thu, 5 May 2011 09:55:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p459ttWA092760; Thu, 5 May 2011 09:55:55 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p459tt9x092758; Thu, 5 May 2011 09:55:55 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105050955.p459tt9x092758@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 5 May 2011 09:55:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221490 - head/share/man/man9 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 09:55:56 -0000 Author: ae Date: Thu May 5 09:55:55 2011 New Revision: 221490 URL: http://svn.freebsd.org/changeset/base/221490 Log: Formatting fixes: o Fix date o Break sentences o Remove trailing whitespaces o Sort xrefs by section number Requested by: ru MFC after: 2 weeks Modified: head/share/man/man9/make_dev.9 Modified: head/share/man/man9/make_dev.9 ============================================================================== --- head/share/man/man9/make_dev.9 Thu May 5 09:04:49 2011 (r221489) +++ head/share/man/man9/make_dev.9 Thu May 5 09:55:55 2011 (r221490) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 03, 2011 +.Dd May 3, 2011 .Dt MAKE_DEV 9 .Os .Sh NAME @@ -84,15 +84,15 @@ The device will be owned by .Va uid , with the group ownership as .Va gid . -The name is the expansion of -.Va fmt +The name is the expansion of +.Va fmt and following arguments as .Xr printf 9 would print it. The name determines its path under .Pa /dev -or other -.Xr devfs 5 +or other +.Xr devfs 5 mount point and may contain slash .Ql / characters to denote subdirectories. @@ -152,9 +152,9 @@ created device will be never destroyed return an error if the device name is invalid or already exists .El .Pp -Only +Only .Dv MAKEDEV_NOWAIT , -.Dv MAKEDEV_WAITOK +.Dv MAKEDEV_WAITOK and .Dv MAKEDEV_CHECKNAME values are accepted for the @@ -307,7 +307,8 @@ The .Fn d_close driver method cannot call .Fn destroy_dev -directly. Doing so causes deadlock when +directly. +Doing so causes deadlock when .Fn destroy_dev waits for all threads to leave the driver methods. Also, because @@ -321,7 +322,8 @@ The device driver may call the .Fn destroy_dev_drain function to wait until all devices that have supplied .Fa csw -as cdevsw, are destroyed. This is useful when driver knows that +as cdevsw, are destroyed. +This is useful when driver knows that .Fn destroy_dev_sched is called for all instantiated devices, but need to postpone module unload until @@ -370,9 +372,9 @@ flag was specified and the provided devi .Pp .Sh SEE ALSO .Xr devctl 4 , +.Xr devfs 5 , .Xr destroy_dev_drain 9 , -.Xr dev_clone 9 , -.Xr devfs 5 +.Xr dev_clone 9 .Sh HISTORY The .Fn make_dev From owner-svn-src-head@FreeBSD.ORG Thu May 5 09:59:10 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7BB2D1065670; Thu, 5 May 2011 09:59:10 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id E77B58FC0A; Thu, 5 May 2011 09:59:09 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.4/8.14.4/ALCHEMY.FRANKEN.DE) with ESMTP id p459fU6O087015; Thu, 5 May 2011 11:41:30 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.4/8.14.4/Submit) id p459fUnL087014; Thu, 5 May 2011 11:41:30 +0200 (CEST) (envelope-from marius) Date: Thu, 5 May 2011 11:41:30 +0200 From: Marius Strobl To: Nathan Whitehorn Message-ID: <20110505094130.GG63055@alchemy.franken.de> References: <201105042341.p44NfBMZ072133@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201105042341.p44NfBMZ072133@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221466 - in head/release: . amd64 i386 pc98 sun4v X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 09:59:10 -0000 On Wed, May 04, 2011 at 11:41:11PM +0000, Nathan Whitehorn wrote: > Author: nwhitehorn > Date: Wed May 4 23:41:11 2011 > New Revision: 221466 > URL: http://svn.freebsd.org/changeset/base/221466 > > Log: > Repair release CD generation on PC98 and sun4v after release building > changes, and backport the new logic (ISO images are TARGET dependant, not > TARGET_CPUARCH dependant) to Makefile.sysinstall. While modifying ISO > image scripts, change several archs to use makefs (from base) instead of > mkisofs (from ports) which makes release CD generation both faster and > self-hosting. > Is there any reason not to MFC the makefs part? This would allow to remove some nasty and problematic hacks from the cdrtools ports needed to allow cross-building of i386 releases on amd64 (TARGET and TARGET_ARCH set to i386 are passed to the port, although an amd64 mkisofs binary is required in this case). Btw., it looks like you may remove $publisher now. Marius From owner-svn-src-head@FreeBSD.ORG Thu May 5 10:17:08 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61475106564A; Thu, 5 May 2011 10:17:08 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 50BBD8FC18; Thu, 5 May 2011 10:17:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45AH82W095496; Thu, 5 May 2011 10:17:08 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45AH8q0095494; Thu, 5 May 2011 10:17:08 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105051017.p45AH8q0095494@svn.freebsd.org> From: Ruslan Ermilov Date: Thu, 5 May 2011 10:17:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221491 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 10:17:08 -0000 Author: ru Date: Thu May 5 10:17:08 2011 New Revision: 221491 URL: http://svn.freebsd.org/changeset/base/221491 Log: [mdoc] remove a hard sentence break. Modified: head/usr.bin/nfsstat/nfsstat.1 Modified: head/usr.bin/nfsstat/nfsstat.1 ============================================================================== --- head/usr.bin/nfsstat/nfsstat.1 Thu May 5 09:55:55 2011 (r221490) +++ head/usr.bin/nfsstat/nfsstat.1 Thu May 5 10:17:08 2011 (r221491) @@ -66,7 +66,8 @@ instead of the default Extract the name list from the specified system instead of the default .Pa /boot/kernel/kernel . .It Fl o -Report statistics for the old NFS client and/or server. Without this +Report statistics for the old NFS client and/or server. +Without this option statistics for the new NFS client and/or server will be reported. .It Fl s Only display server side statistics. From owner-svn-src-head@FreeBSD.ORG Thu May 5 10:17:50 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 294D81065675; Thu, 5 May 2011 10:17:50 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 18E1D8FC22; Thu, 5 May 2011 10:17:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45AHnkY095554; Thu, 5 May 2011 10:17:50 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45AHnQo095552; Thu, 5 May 2011 10:17:49 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105051017.p45AHnQo095552@svn.freebsd.org> From: Ruslan Ermilov Date: Thu, 5 May 2011 10:17:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221492 - head/usr.bin/nfsstat X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 10:17:50 -0000 Author: ru Date: Thu May 5 10:17:49 2011 New Revision: 221492 URL: http://svn.freebsd.org/changeset/base/221492 Log: - Add a forgotten -o to usage(). - Sync usage() with manpage's SYNOPSIS. Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c ============================================================================== --- head/usr.bin/nfsstat/nfsstat.c Thu May 5 10:17:08 2011 (r221491) +++ head/usr.bin/nfsstat/nfsstat.c Thu May 5 10:17:49 2011 (r221492) @@ -646,7 +646,7 @@ void usage(void) { (void)fprintf(stderr, - "usage: nfsstat [-ceszW] [-M core] [-N system] [-w interval]\n"); + "usage: nfsstat [-ceoszW] [-M core] [-N system] [-w wait]\n"); exit(1); } From owner-svn-src-head@FreeBSD.ORG Thu May 5 13:02:49 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD250106564A; Thu, 5 May 2011 13:02:49 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.garage.freebsd.pl (60.wheelsystems.com [83.12.187.60]) by mx1.freebsd.org (Postfix) with ESMTP id 68F7C8FC16; Thu, 5 May 2011 13:02:48 +0000 (UTC) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id 1184F45E5C; Thu, 5 May 2011 15:02:47 +0200 (CEST) Received: from localhost (public-gprs14895.centertel.pl [87.96.58.47]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id 33F1C45684; Thu, 5 May 2011 15:02:38 +0200 (CEST) Date: Thu, 5 May 2011 15:02:11 +0200 From: Pawel Jakub Dawidek To: "Andrey V. Elsukov" Message-ID: <20110505130211.GB14661@garage.freebsd.pl> References: <201105031855.p43ItGoP006893@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="b5gNqxB1S1yM7hjW" Content-Disposition: inline In-Reply-To: <201105031855.p43ItGoP006893@svn.freebsd.org> X-OS: FreeBSD 9.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-2.6 required=4.5 tests=BAYES_00 autolearn=ham version=3.0.4 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221398 - head/share/man/man9 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 13:02:49 -0000 --b5gNqxB1S1yM7hjW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, May 03, 2011 at 06:55:16PM +0000, Andrey V. Elsukov wrote: > Author: ae > Date: Tue May 3 18:55:16 2011 > New Revision: 221398 > URL: http://svn.freebsd.org/changeset/base/221398 >=20 > Log: > Document make_dev_alias_p(). You should also add it to MLINKS in share/man/man9/Makefile. --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com --b5gNqxB1S1yM7hjW Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk3Cn9IACgkQForvXbEpPzRctwCfRESNOV4rTTNjK1msOUuzULZ8 uoQAn1vUtrbUcL/F/z3dM4fG36Gg6nMF =AHx2 -----END PGP SIGNATURE----- --b5gNqxB1S1yM7hjW-- From owner-svn-src-head@FreeBSD.ORG Thu May 5 13:13:22 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23936106566B; Thu, 5 May 2011 13:13:22 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.garage.freebsd.pl (60.wheelsystems.com [83.12.187.60]) by mx1.freebsd.org (Postfix) with ESMTP id B98768FC13; Thu, 5 May 2011 13:13:21 +0000 (UTC) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id 70E9145EA7; Thu, 5 May 2011 15:13:17 +0200 (CEST) Received: from localhost (public-gprs14895.centertel.pl [87.96.58.47]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id 77AF545684; Thu, 5 May 2011 15:13:09 +0200 (CEST) Date: Thu, 5 May 2011 15:12:43 +0200 From: Pawel Jakub Dawidek To: "Andrey V. Elsukov" Message-ID: <20110505131242.GC14661@garage.freebsd.pl> References: <201105041806.p44I6edT061463@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="TYecfFk8j8mZq+dy" Content-Disposition: inline In-Reply-To: <201105041806.p44I6edT061463@svn.freebsd.org> X-OS: FreeBSD 9.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-2.6 required=4.5 tests=BAYES_00 autolearn=ham version=3.0.4 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221449 - head/sys/geom/journal X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 13:13:22 -0000 --TYecfFk8j8mZq+dy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 04, 2011 at 06:06:40PM +0000, Andrey V. Elsukov wrote: > Author: ae > Date: Wed May 4 18:06:40 2011 > New Revision: 221449 > URL: http://svn.freebsd.org/changeset/base/221449 >=20 > Log: > Removed KASSERT, g_new_providerf() can not fail. Well, the assertion was there to prepare us for times when g_new_providerf() will be able to fail. I was suspecting we might want to make g_new_providerf() to fail when the given name is already in use. In such case we use to create two identical entries in /dev/, not sure what we do now (panic?). > Modified: > head/sys/geom/journal/g_journal.c >=20 > Modified: head/sys/geom/journal/g_journal.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/geom/journal/g_journal.c Wed May 4 17:58:15 2011 (r221448) > +++ head/sys/geom/journal/g_journal.c Wed May 4 18:06:40 2011 (r221449) > @@ -2097,7 +2097,6 @@ g_journal_worker(void *arg) > gp =3D sc->sc_geom; > g_topology_lock(); > pp =3D g_new_providerf(gp, "%s.journal", sc->sc_name); > - KASSERT(pp !=3D NULL, ("Cannot create %s.journal.", sc->sc_name)); > pp->mediasize =3D sc->sc_mediasize; > /* > * There could be a problem when data provider and journal providers --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com --TYecfFk8j8mZq+dy Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk3CokoACgkQForvXbEpPzT5ogCfWqb2IW6BXrsddEg9DjDZzapA bGkAnjZiOhJL4t2TWFyS39p0NGOZfW/h =B+bh -----END PGP SIGNATURE----- --TYecfFk8j8mZq+dy-- From owner-svn-src-head@FreeBSD.ORG Thu May 5 13:53:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 217CF106566B; Thu, 5 May 2011 13:53:05 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from adsum.doit.wisc.edu (adsum.doit.wisc.edu [144.92.197.210]) by mx1.freebsd.org (Postfix) with ESMTP id E2BAA8FC0C; Thu, 5 May 2011 13:53:04 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth1.wiscmail.wisc.edu by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0LKQ00G0C6KFF600@smtpauth1.wiscmail.wisc.edu>; Thu, 05 May 2011 08:53:03 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.65.155]) by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0LKQ00FHY6K92J00@smtpauth1.wiscmail.wisc.edu>; Thu, 05 May 2011 08:52:58 -0500 (CDT) Date: Thu, 05 May 2011 08:52:56 -0500 From: Nathan Whitehorn In-reply-to: <20110505094130.GG63055@alchemy.franken.de> To: Marius Strobl Message-id: <4DC2ABB8.3090601@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.65.155 X-Spam-PmxInfo: Server=avs-11, Version=5.6.0.2009776, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.5.5.133920, SenderIP=76.210.65.155 References: <201105042341.p44NfBMZ072133@svn.freebsd.org> <20110505094130.GG63055@alchemy.franken.de> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.17) Gecko/20110429 Thunderbird/3.1.10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221466 - in head/release: . amd64 i386 pc98 sun4v X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 13:53:05 -0000 On 05/05/11 04:41, Marius Strobl wrote: > On Wed, May 04, 2011 at 11:41:11PM +0000, Nathan Whitehorn wrote: >> Author: nwhitehorn >> Date: Wed May 4 23:41:11 2011 >> New Revision: 221466 >> URL: http://svn.freebsd.org/changeset/base/221466 >> >> Log: >> Repair release CD generation on PC98 and sun4v after release building >> changes, and backport the new logic (ISO images are TARGET dependant, not >> TARGET_CPUARCH dependant) to Makefile.sysinstall. While modifying ISO >> image scripts, change several archs to use makefs (from base) instead of >> mkisofs (from ports) which makes release CD generation both faster and >> self-hosting. >> > Is there any reason not to MFC the makefs part? This would allow > to remove some nasty and problematic hacks from the cdrtools ports > needed to allow cross-building of i386 releases on amd64 (TARGET > and TARGET_ARCH set to i386 are passed to the port, although an > amd64 mkisofs binary is required in this case). > Btw., it looks like you may remove $publisher now. No, none. The whole commit can be MFC'ed back to 7.x, actually, and I'd like to do that. I was hoping to convert sparc64 and ia64 as well and make a clean sweep of it, but at least sparc64 will require some work analogous to what I did for PPC. Thanks for reminding me about the $publisher -- there's also some stray debugging code in the PPC one that crept in. -Nathan From owner-svn-src-head@FreeBSD.ORG Thu May 5 13:55:44 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 174671065672; Thu, 5 May 2011 13:55:44 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EC1258FC16; Thu, 5 May 2011 13:55:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45Dthp8002176; Thu, 5 May 2011 13:55:43 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45Dtheu002171; Thu, 5 May 2011 13:55:43 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105051355.p45Dtheu002171@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 5 May 2011 13:55:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221494 - in head/release: amd64 i386 pc98 powerpc X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 13:55:44 -0000 Author: nwhitehorn Date: Thu May 5 13:55:43 2011 New Revision: 221494 URL: http://svn.freebsd.org/changeset/base/221494 Log: Garbage collect some unused variables and stray debug code. Submitted by: marius Modified: head/release/amd64/mkisoimages.sh head/release/i386/mkisoimages.sh head/release/pc98/mkisoimages.sh head/release/powerpc/mkisoimages.sh Modified: head/release/amd64/mkisoimages.sh ============================================================================== --- head/release/amd64/mkisoimages.sh Thu May 5 12:52:05 2011 (r221493) +++ head/release/amd64/mkisoimages.sh Thu May 5 13:55:43 2011 (r221494) @@ -23,7 +23,6 @@ # extra-bits-dir, if provided, contains additional files to be merged # into base-bits-dir as part of making the image. -publisher="The FreeBSD Project. http://www.freebsd.org/" if [ "x$1" = "x-b" ]; then # This is highly x86-centric and will be used directly below. bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" Modified: head/release/i386/mkisoimages.sh ============================================================================== --- head/release/i386/mkisoimages.sh Thu May 5 12:52:05 2011 (r221493) +++ head/release/i386/mkisoimages.sh Thu May 5 13:55:43 2011 (r221494) @@ -23,7 +23,6 @@ # extra-bits-dir, if provided, contains additional files to be merged # into base-bits-dir as part of making the image. -publisher="The FreeBSD Project. http://www.freebsd.org/" if [ "x$1" = "x-b" ]; then # This is highly x86-centric and will be used directly below. bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" Modified: head/release/pc98/mkisoimages.sh ============================================================================== --- head/release/pc98/mkisoimages.sh Thu May 5 12:52:05 2011 (r221493) +++ head/release/pc98/mkisoimages.sh Thu May 5 13:55:43 2011 (r221494) @@ -23,7 +23,6 @@ # extra-bits-dir, if provided, contains additional files to be merged # into base-bits-dir as part of making the image. -publisher="The FreeBSD Project. http://www.freebsd.org/" if [ "x$1" = "x-b" ]; then # This is highly x86-centric and will be used directly below. bootable="-o generic-bootimage=$4/boot/cdboot" Modified: head/release/powerpc/mkisoimages.sh ============================================================================== --- head/release/powerpc/mkisoimages.sh Thu May 5 12:52:05 2011 (r221493) +++ head/release/powerpc/mkisoimages.sh Thu May 5 13:55:43 2011 (r221494) @@ -23,13 +23,11 @@ # extra-bits-dir, if provided, contains additional files to be merged # into base-bits-dir as part of making the image. -publisher="The FreeBSD Project. http://www.freebsd.org/" if [ "x$1" = "x-b" ]; then uudecode -o /tmp/hfs-boot-block.bz2 `dirname $0`/hfs-boot.bz2.uu bzip2 -d /tmp/hfs-boot-block.bz2 OFFSET=$(hd /tmp/hfs-boot-block | grep 'Loader START' | cut -f 1 -d ' ') OFFSET=0x$(echo 0x$OFFSET | awk '{printf("%x\n",$1/512);}') - echo dd if=$4/boot/loader of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc dd if=$4/boot/loader of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc bootable="-o bootimage=macppc;/tmp/hfs-boot-block -o no-emul-boot" From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:05:23 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F3DB106564A; Thu, 5 May 2011 14:05:23 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 6DD538FC18; Thu, 5 May 2011 14:05:21 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAH2twk2DaFvO/2dsb2JhbACEUKJdtCqRL4EqhF0Ej0qHGodR X-IronPort-AV: E=Sophos;i="4.64,319,1301889600"; d="scan'208";a="121337347" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-jnhn-pri.mail.uoguelph.ca with ESMTP; 05 May 2011 09:54:13 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 47929B3F2B; Thu, 5 May 2011 09:54:13 -0400 (EDT) Date: Thu, 5 May 2011 09:54:13 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <942285768.1045464.1304603653229.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <86r58dsi0m.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [172.17.91.201] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:05:23 -0000 > Rick Macklem writes: > > "Dag-Erling Sm=C3=B8rgrav" writes: > > > Ideally, both the old and the new NFS stack would use the same > > > fstypes and sysctl names, but I don't know if there's any way we > > > can > > > prevent someone from compiling both into the kernel at the same > > > time, or loading both modules. > > If the scripts in /etc/rc.d are fixed to use the correct sysctl > > naming, > > do you think it matters which one is "vfs.nfs."? >=20 > Yes. There is a whole world outside the base system: munin, webmin, > nagios etc. Are you going to change all of them as well? >=20 Well, another way it could be handled would be to put the sysctls and the global variables they manipulate in a module shared by both clients, like sys/nfs/nfs_lock.c (module "nfslock"). Then the same sysctl would affect both clients. (I hesitate to create "yet another" module just to share the sysctls, but since "nfslock" is used by both clients, it should work ok, I think.) What do you think of that? If anyone else reading this has an idea/opinion, please let us know. rick From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:13:09 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 254FC106566C; Thu, 5 May 2011 14:13:09 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1112E8FC16; Thu, 5 May 2011 14:13:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45ED8j1002901; Thu, 5 May 2011 14:13:08 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45ED8lO002899; Thu, 5 May 2011 14:13:08 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105051413.p45ED8lO002899@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 5 May 2011 14:13:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221496 - head/share/man/man9 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:13:09 -0000 Author: ae Date: Thu May 5 14:13:08 2011 New Revision: 221496 URL: http://svn.freebsd.org/changeset/base/221496 Log: Add make_dev_alias_p to MLINKS. Pointed out by: pjd MFC after: 2 weeks Modified: head/share/man/man9/Makefile Modified: head/share/man/man9/Makefile ============================================================================== --- head/share/man/man9/Makefile Thu May 5 14:05:29 2011 (r221495) +++ head/share/man/man9/Makefile Thu May 5 14:13:08 2011 (r221496) @@ -781,6 +781,7 @@ MLINKS+=make_dev.9 destroy_dev.9 \ make_dev.9 destroy_dev_sched_cb.9 \ make_dev.9 dev_depends.9 \ make_dev.9 make_dev_alias.9 \ + make_dev.9 make_dev_alias_p.9 \ make_dev.9 make_dev_cred.9 \ make_dev.9 make_dev_credf.9 \ make_dev.9 make_dev_p.9 From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:13:16 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7B940106576A; Thu, 5 May 2011 14:13:16 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward3.mail.yandex.net (forward3.mail.yandex.net [77.88.46.8]) by mx1.freebsd.org (Postfix) with ESMTP id D0E808FC1E; Thu, 5 May 2011 14:13:14 +0000 (UTC) Received: from smtp3.mail.yandex.net (smtp3.mail.yandex.net [77.88.46.103]) by forward3.mail.yandex.net (Yandex) with ESMTP id F0177B42EF7; Thu, 5 May 2011 18:02:11 +0400 (MSD) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1304604132; bh=z+KZiG7g9ZOaP/oSBepFHT1ck8+woazHvvwEBWQX3rg=; h=Message-ID:Date:From:MIME-Version:To:CC:Subject:References: In-Reply-To:Content-Type; b=KNST2gkAp+cTKk4z7fnQqyoiBHHmo4+iBb6cekiKR0sJUYYk3Hf2RjUeTaP39K9OP YBPnbeLJRSmcf6k061MW5R0xmSR/d7dzfhYe1zdwEuH3vIlLcLwaqFo7WiYhCqQ4jd SKefz7i7au4myAzcYZ9/TvVaZhskBxx1nvJo3fiQ= Received: from [178.141.5.18] (dynamic-178-141-5-18.kirov.comstar-r.ru [178.141.5.18]) by smtp3.mail.yandex.net (Yandex) with ESMTPSA id 92AB96980076; Thu, 5 May 2011 18:02:11 +0400 (MSD) Message-ID: <4DC2ADDD.6040409@yandex.ru> Date: Thu, 05 May 2011 18:02:05 +0400 From: "Andrey V. Elsukov" User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.17) Gecko/20110429 Thunderbird/3.1.10 MIME-Version: 1.0 To: Pawel Jakub Dawidek References: <201105041806.p44I6edT061463@svn.freebsd.org> <20110505131242.GC14661@garage.freebsd.pl> In-Reply-To: <20110505131242.GC14661@garage.freebsd.pl> X-Enigmail-Version: 1.1.2 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigFD4604761B4CDB2D5D3E7B29" X-Yandex-Spam: 1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221449 - head/sys/geom/journal X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:13:16 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigFD4604761B4CDB2D5D3E7B29 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable On 05.05.2011 17:12, Pawel Jakub Dawidek wrote: >> New Revision: 221449 >> URL: http://svn.freebsd.org/changeset/base/221449 >> >> Log: >> Removed KASSERT, g_new_providerf() can not fail. >=20 > Well, the assertion was there to prepare us for times when > g_new_providerf() will be able to fail. I was suspecting we might want > to make g_new_providerf() to fail when the given name is already in use= =2E I think such change will break all code we have now :) But now when it can not fail, KASSERT could slightly confuse those who read code as example. > In such case we use to create two identical entries in /dev/, not sure > what we do now (panic?). geom_dev prints out an error message. --=20 WBR, Andrey V. Elsukov --------------enigFD4604761B4CDB2D5D3E7B29 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) iQEcBAEBAgAGBQJNwq3dAAoJEAHF6gQQyKF6nF4H/RtUjvQz+7UzpR1s2u+uKq1w D9K/jxbJUY4WWErMPnbVOWH5jp1MsKQcuww1Vjj1SsI8SLQ+3sL7ErBSzvUwcMnq wiJnW3fwKgCokpBNaEmHs4Iu+jo67JS/R3cYwvYsXHG/e9fCSJxZKLh3ENl4peSX taUoxKdGWCjhPAKqabf6oydPWCVUXj39nLNdeleLd44jM5eWpFPhKvRrYWlcJ/7V 5lm2edEppzX5DOL1ZUuBJZVhk9oXcNfqtffwiLu70xMWt2QtNntcoq1kcn41yvNq YJvCrnxYcDv5/yUIXgYyL1t/7ypSY5u2w90E1/L2ZBX6ORLD8RWIIKtXSgkX43Q= =7ydh -----END PGP SIGNATURE----- --------------enigFD4604761B4CDB2D5D3E7B29-- From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:16:41 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 68A2E106566C; Thu, 5 May 2011 14:16:41 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 53CB48FC0C; Thu, 5 May 2011 14:16:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45EGfuu003039; Thu, 5 May 2011 14:16:41 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45EGfcd003037; Thu, 5 May 2011 14:16:41 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105051416.p45EGfcd003037@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 5 May 2011 14:16:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:16:41 -0000 Author: nwhitehorn Date: Thu May 5 14:16:40 2011 New Revision: 221497 URL: http://svn.freebsd.org/changeset/base/221497 Log: Convert IA64 ISO script to use makefs instead of mkisofs. Modified: head/release/ia64/mkisoimages.sh Modified: head/release/ia64/mkisoimages.sh ============================================================================== --- head/release/ia64/mkisoimages.sh Thu May 5 14:13:08 2011 (r221496) +++ head/release/ia64/mkisoimages.sh Thu May 5 14:16:40 2011 (r221497) @@ -41,27 +41,6 @@ LABEL=$1; shift NAME=$1; shift BASE=$1; shift -MKISOFS=mkisofs -MKISOFS_PKG=cdrtools -MKISOFS_PORT=/usr/ports/sysutils/${MKISOFS_PKG} - -if ! which ${MKISOFS} > /dev/null; then - echo -n "${MKISOFS}(8) does not exist: " - if [ -f ${MKISOFS_PORT}/Makefile ]; then - echo building the port... - if ! (cd ${MKISOFS_PORT} && make install BATCH=yes && make clean); then - echo "error: cannot build ${MKISOFS}(8). Bailing out..." - exit 2 - fi - else - echo fetching the package... - if ! pkg_add -r ${MKISOFS_PKG}; then - echo "error: cannot fetch ${MKISOFS}(8). Bailing out..." - exit 2 - fi - fi -fi - EFIPART=efipart.sys # To create a bootable CD under EFI, the boot image should be an EFI @@ -84,15 +63,13 @@ if [ $bootable = yes ]; then mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi umount $MNT mdconfig -d -u $md - BOOTOPTS="-b $EFIPART -no-emul-boot" + BOOTOPTS="-b bootimage=i386;$EFIPART -o no-emul-boot" else BOOTOPTS="" fi -publisher="The FreeBSD Project. http://www.freebsd.org/" - echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab -$MKISOFS $BOOTOPTS -r -J -V $LABEL -publisher "$publisher" -o $NAME $BASE $* +makefs -t cd9660 $BOOTOPTS -o rockridge -o label=$LABEL $NAME $BASE $* rm -f $BASE/$EFIPART rm $1/etc/fstab exit 0 From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:43:09 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A198106564A; Thu, 5 May 2011 14:43:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 835348FC1C; Thu, 5 May 2011 14:43:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45Eh96Z003928; Thu, 5 May 2011 14:43:09 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45Eh9Kh003926; Thu, 5 May 2011 14:43:09 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105051443.p45Eh9Kh003926@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 14:43:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221500 - head/sys/geom X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:43:09 -0000 Author: adrian Date: Thu May 5 14:43:09 2011 New Revision: 221500 URL: http://svn.freebsd.org/changeset/base/221500 Log: Updates to geom_map from the author. The major update here is to support 64 bit size/offsets. There's also style related changes. Submitted by: ray@dlink.ua Modified: head/sys/geom/geom_map.c Modified: head/sys/geom/geom_map.c ============================================================================== --- head/sys/geom/geom_map.c Thu May 5 14:39:14 2011 (r221499) +++ head/sys/geom/geom_map.c Thu May 5 14:43:09 2011 (r221500) @@ -43,81 +43,73 @@ __FBSDID("$FreeBSD$"); #include #include #include - #include + #include #include -#define MAP_CLASS_NAME "MAP" - -struct map_desc { - uint8_t name [16]; /* null-terminated name */ - uint32_t offset; /* offset in flash */ - uint32_t addr; /* address in memory */ - uint32_t size; /* image size in bytes */ - uint32_t entry; /* offset in image for entry point */ - uint32_t dsize; /* data size in bytes */ -}; - +#define MAP_CLASS_NAME "MAP" #define MAP_MAXSLICE 64 +#define MAP_MAX_MARKER_LEN 64 struct g_map_softc { - uint32_t entry [MAP_MAXSLICE]; - uint32_t dsize [MAP_MAXSLICE]; - uint8_t readonly[MAP_MAXSLICE]; - g_access_t *parent_access; + off_t offset[MAP_MAXSLICE]; /* offset in flash */ + off_t size[MAP_MAXSLICE]; /* image size in bytes */ + off_t entry[MAP_MAXSLICE]; + off_t dsize[MAP_MAXSLICE]; + uint8_t readonly[MAP_MAXSLICE]; + g_access_t *parent_access; }; static int -g_map_ioctl(struct g_provider *pp, u_long cmd, void *data, int fflag, struct thread *td) -{ - return (ENOIOCTL); -} - -static int g_map_access(struct g_provider *pp, int dread, int dwrite, int dexcl) { - struct g_geom *gp = pp->geom; - struct g_slicer *gsp = gp->softc; - struct g_map_softc *sc = gsp->softc; + struct g_geom *gp; + struct g_slicer *gsp; + struct g_map_softc *sc; + + gp = pp->geom; + gsp = gp->softc; + sc = gsp->softc; if (dwrite > 0 && sc->readonly[pp->index]) return (EPERM); + return (sc->parent_access(pp, dread, dwrite, dexcl)); - /* - * no (sc->parent_access(pp, dread, dwrite, dexcl));, - * We need to have way for update flash - */ } static int g_map_start(struct bio *bp) { struct g_provider *pp; - struct g_geom *gp; + struct g_geom *gp; struct g_map_softc *sc; struct g_slicer *gsp; - int idx; + int idx; pp = bp->bio_to; idx = pp->index; gp = pp->geom; gsp = gp->softc; sc = gsp->softc; + if (bp->bio_cmd == BIO_GETATTR) { if (g_handleattr_int(bp, MAP_CLASS_NAME "::entry", - sc->entry[idx])) + sc->entry[idx])) { return (1); + } if (g_handleattr_int(bp, MAP_CLASS_NAME "::dsize", - sc->dsize[idx])) + sc->dsize[idx])) { return (1); + } } + return (0); } static void g_map_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, - struct g_consumer *cp __unused, struct g_provider *pp) + struct g_consumer *cp __unused, struct g_provider *pp) { struct g_map_softc *sc; struct g_slicer *gsp; @@ -127,45 +119,237 @@ g_map_dumpconf(struct sbuf *sb, const ch g_slice_dumpconf(sb, indent, gp, cp, pp); if (pp != NULL) { if (indent == NULL) { - sbuf_printf(sb, " entry %d", sc->entry[pp->index]); - sbuf_printf(sb, " dsize %d", sc->dsize[pp->index]); + sbuf_printf(sb, " entry %lld", sc->entry[pp->index]); + sbuf_printf(sb, " dsize %lld", sc->dsize[pp->index]); } else { - sbuf_printf(sb, "%s%d\n", indent, - sc->entry[pp->index]); - sbuf_printf(sb, "%s%d\n", indent, - sc->dsize[pp->index]); + sbuf_printf(sb, "%s%lld\n", indent, + sc->entry[pp->index]); + sbuf_printf(sb, "%s%lld\n", indent, + sc->dsize[pp->index]); } } } -#include +static int +find_marker(struct g_consumer *cp, const char *line, off_t *offset) +{ + off_t search_start, search_offset, search_step; + size_t sectorsize; + uint8_t *buf; + char *op, key[MAP_MAX_MARKER_LEN], search_key[MAP_MAX_MARKER_LEN]; + int ret, c; + + /* Try convert to numeric first */ + *offset = strtouq(line, &op, 0); + if (*op == '\0') + return (0); + + bzero(search_key, MAP_MAX_MARKER_LEN); + sectorsize = cp->provider->sectorsize; + + ret = sscanf(line, "search:%qi:%qi:%63c", + &search_start, &search_step, search_key); + if (ret < 3) + return (1); + + if (bootverbose) { + printf("MAP: search key \"%s\" from 0x%llx, step 0x%llx\n", + search_key, search_start, search_step); + } + + /* error if search_key is empty */ + if (strlen(search_key) < 1) + return (1); + + /* sscanf successful, and we start marker search */ + for (search_offset = search_start; + search_offset < cp->provider->mediasize; + search_offset += search_step) { + + g_topology_unlock(); + buf = g_read_data(cp, rounddown(search_offset, sectorsize), + roundup(strlen(search_key), sectorsize), NULL); + g_topology_lock(); + + /* Wildcard, replace '.' with byte from data */ + /* TODO: add support wildcard escape '\.' */ + + strncpy(key, search_key, MAP_MAX_MARKER_LEN); + + for (c = 0; c < MAP_MAX_MARKER_LEN && key[c]; c++) { + if (key[c] == '.') { + key[c] = ((char *)(buf + + (search_offset % sectorsize)))[c]; + } + } + + if (buf != NULL && strncmp(buf + search_offset % sectorsize, + key, strlen(search_key)) == 0) { + g_free(buf); + /* Marker found, so return their offset */ + *offset = search_offset; + return (0); + } + g_free(buf); + } + /* Marker not found */ + return (1); +} + +static int +g_map_parse_part(struct g_class *mp, struct g_provider *pp, + struct g_consumer *cp, struct g_geom *gp, struct g_map_softc *sc, int i) +{ + const char *value, *name; + char *op; + off_t start, end, offset, size, dsize; + int readonly, ret; + + /* hint.map.0.at="cfid0" - bind to cfid0 media */ + if (resource_string_value("map", i, "at", &value) != 0) + return (1); + + /* Check if this correct provider */ + if (strcmp(pp->name, value) != 0) + return (1); + + /* + * hint.map.0.name="uboot" - name of partition, will be available + * as "/dev/map/uboot" + */ + if (resource_string_value("map", i, "name", &name) != 0) { + if (bootverbose) + printf("MAP: hint.map.%d has no name\n", i); + return (1); + } + + /* + * hint.map.0.start="0x00010000" - partition start at 0x00010000 + * or hint.map.0.start="search:0x00010000:0x200:marker text" - + * search for text "marker text", begin at 0x10000, step 0x200 + * until we found marker or end of media reached + */ + if (resource_string_value("map", i, "start", &value) != 0) { + if (bootverbose) + printf("MAP: \"%s\" has no start value\n", name); + return (1); + } + if (find_marker(cp, value, &start) != 0) { + if (bootverbose) { + printf("MAP: \"%s\" can't parse/use start value\n", + name); + } + return (1); + } + + /* like "start" */ + if (resource_string_value("map", i, "end", &value) != 0) { + if (bootverbose) + printf("MAP: \"%s\" has no end value\n", name); + return (1); + } + if (find_marker(cp, value, &end) != 0) { + if (bootverbose) { + printf("MAP: \"%s\" can't parse/use start value\n", + name); + } + return (1); + } + + /* variable readonly optional, disable write access */ + if (resource_int_value("map", i, "readonly", &readonly) != 0) + readonly = 0; + + /* offset of partition data, from partition begin */ + if (resource_string_value("map", i, "offset", &value) == 0) { + offset = strtouq(value, &op, 0); + if (*op != '\0') { + if (bootverbose) { + printf("MAP: \"%s\" can't parse offset\n", + name); + } + return (1); + } + } else { + offset = 0; + } + + /* partition data size */ + if (resource_string_value("map", i, "dsize", &value) == 0) { + dsize = strtouq(value, &op, 0); + if (*op != '\0') { + if (bootverbose) { + printf("MAP: \"%s\" can't parse dsize\n", + name); + } + return (1); + } + } else { + dsize = 0; + } + + size = end - start; + if (dsize == 0) + dsize = size - offset; + + /* end is 0 or size is 0, No MAP - so next */ + if (end < start) { + if (bootverbose) { + printf("MAP: \"%s\", \"end\" less than " + "\"start\"\n", name); + } + return (1); + } + + if (offset + dsize > size) { + if (bootverbose) { + printf("MAP: \"%s\", \"dsize\" bigger than " + "partition - offset\n", name); + } + return (1); + } + + ret = g_slice_config(gp, i, G_SLICE_CONFIG_SET, start + offset, + dsize, cp->provider->sectorsize, "map/%s", name); + if (ret != 0) { + if (bootverbose) { + printf("MAP: g_slice_config returns %d for \"%s\"\n", + ret, name); + } + return (1); + } + + if (bootverbose) { + printf("MAP: %llxx%llx, data=%llxx%llx " + "\"/dev/map/%s\"\n", + start, size, offset, dsize, name); + } + + sc->offset[i] = start; + sc->size[i] = size; + sc->entry[i] = offset; + sc->dsize[i] = dsize; + sc->readonly[i] = readonly ? 1 : 0; + + return (0); +} static struct g_geom * -g_map_taste(struct g_class *mp, struct g_provider *pp, int insist) +g_map_taste(struct g_class *mp, struct g_provider *pp, int insist __unused) { - struct g_geom *gp; - struct g_consumer *cp; struct g_map_softc *sc; - int error , sectorsize, i, ret; - struct map_desc *head; - u_int32_t start = 0, end = 0, size = 0, off, readonly; - const char *name; - const char *at; - const char *search; - int search_start = 0, search_end = 0; - u_char *buf; - uint32_t offmask; - u_int blksize;/* NB: flash block size stored as stripesize */ - off_t offset; + struct g_consumer *cp; + struct g_geom *gp; + int i; g_trace(G_T_TOPOLOGY, "map_taste(%s,%s)", mp->name, pp->name); g_topology_assert(); - if (!strcmp(pp->geom->class->name, MAP_CLASS_NAME)) + if (strcmp(pp->geom->class->name, MAP_CLASS_NAME) == 0) return (NULL); gp = g_slice_new(mp, MAP_MAXSLICE, pp, &cp, &sc, sizeof(*sc), - g_map_start); + g_map_start); if (gp == NULL) return (NULL); @@ -173,160 +357,14 @@ g_map_taste(struct g_class *mp, struct g sc->parent_access = gp->access; gp->access = g_map_access; - sectorsize = cp->provider->sectorsize; - blksize = cp->provider->stripesize; - if (powerof2(cp->provider->mediasize)) - offmask = cp->provider->mediasize - 1; - else - offmask = 0xffffffff; /* XXX */ - - g_topology_unlock(); - head = NULL; - offset = cp->provider->mediasize - blksize; - g_topology_lock(); - - for (i = 0; i < MAP_MAXSLICE; i++) { - search_start = search_end = start = end = off = readonly = 0; - - ret = resource_string_value("map", i, "at", &at); - if (ret) - continue; - - /* Check if my provider */ - if (strncmp(pp->name, at, strlen(at))) - continue; - - ret = resource_string_value("map", i, "start", &search); - - if (!ret && strncmp(search, "search", 6) == 0) { - uint32_t search_offset, search_start = 0; - uint32_t search_step = 0; - const char *search_key; - char key[255]; - int c; - - ret = resource_int_value("map", i, "searchstart", - &search_start); - ret = resource_int_value("map", i, "searchstep", - &search_step); - if (ret) - search_step = 0x10000U; - ret = resource_string_value("map", i, "searchkey", &search_key); - if (ret) - continue; - - printf("GEOM_MAP: searchkey=\"%s\"\n", search_key); - for (search_offset = search_start; - search_offset < cp->provider->mediasize && start == 0; - search_offset += search_step) { - buf = g_read_data(cp, - rounddown(search_offset, sectorsize), - roundup(strlen(search_key), sectorsize), - NULL); - - /* Wildcard, replace '.' with byte from data */ - strncpy(key, search_key, 255); - for (c = 0; c < 255 && key[c]; c++) - if (key[c] == '.') - key[c] = ((char *)(buf + search_offset % sectorsize))[c]; - - if (buf != NULL && strncmp( - buf + search_offset % sectorsize, - key, strlen(search_key)) == 0) - start = search_offset; - g_free(buf); - } - if (!start) - continue; - } else { - ret = resource_int_value("map", i, "start", &start); - if (ret) - continue; - } - - ret = resource_string_value("map", i, "end", &search); - - if (!ret && strncmp(search, "search", 6) == 0) { - uint32_t search_offset, search_start = 0, search_step = 0; - const char *search_key; - char key[255]; - int c; - - ret = resource_int_value("map", i, "searchstart", &search_start); - ret = resource_int_value("map", i, "searchstep", &search_step); - if (ret) - search_step = 0x10000U; - ret = resource_string_value("map", i, "searchkey", &search_key); - if (ret) - continue; - - for (search_offset = search_start; - search_offset < cp->provider->mediasize && end == 0; - search_offset += search_step) { - buf = g_read_data(cp, - rounddown(search_offset, sectorsize), - roundup(strlen(search_key), sectorsize), - NULL); - - /* Wildcard, replace '.' with byte from data */ - strncpy(key, search_key, 255); - for (c = 0; c < 255 && key[c]; c++) - if (key[c] == '.') - key[c] = ((char *)(buf + search_offset % sectorsize))[c]; - - if (buf != NULL && strncmp( - buf + search_offset % sectorsize, - key, strlen(search_key)) == 0) - end = search_offset; - g_free(buf); - } - if (!end) - continue; - } else { - ret = resource_int_value("map", i, "end", &end); - if (ret) - continue; - } - size = end - start; - - /* end is 0 or size is 0, No MAP - so next */ - if (end == 0 || size == 0) - continue; - ret = resource_int_value("map", i, "offset", &off); - ret = resource_int_value("map", i, "readonly", &readonly); - ret = resource_string_value("map", i, "name", &name); - /* No name or error read name */ - if (ret) - continue; - - if (off > size) - printf("%s: off(%d) > size(%d) for \"%s\"\n", - __func__, off, size, name); - - error = g_slice_config(gp, i, G_SLICE_CONFIG_SET, start + off, - size - off, sectorsize, "map/%s", name); - printf("MAP: %08x-%08x, offset=%08x \"map/%s\"\n", - (uint32_t) start, - (uint32_t) size, - (uint32_t) off, - name - ); - - if (error) - printf("%s g_slice_config returns %d for \"%s\"\n", - __func__, error, name); - - sc->entry[i] = off; - sc->dsize[i] = size - off; - sc->readonly[i] = readonly ? 1 : 0; - } - + for (i = 0; i < MAP_MAXSLICE; i++) + g_map_parse_part(mp, pp, cp, gp, sc, i); - if (i == 0) - return (NULL); g_access(cp, -1, 0, 0); if (LIST_EMPTY(&gp->provider)) { + if (bootverbose) + printf("MAP: No valid partition found at %s\n", pp->name); g_slice_spoiled(cp); return (NULL); } @@ -336,7 +374,7 @@ g_map_taste(struct g_class *mp, struct g static void g_map_config(struct gctl_req *req, struct g_class *mp, const char *verb) { - struct g_geom *gp; + struct g_geom *gp; g_topology_assert(); gp = gctl_get_geom(req, mp, "geom"); @@ -351,6 +389,5 @@ static struct g_class g_map_class = { .taste = g_map_taste, .dumpconf = g_map_dumpconf, .ctlreq = g_map_config, - .ioctl = g_map_ioctl, }; DECLARE_GEOM_CLASS(g_map_class, g_map); From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:43:36 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F41031065675; Thu, 5 May 2011 14:43:35 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DD29E8FC17; Thu, 5 May 2011 14:43:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45EhZ2a003975; Thu, 5 May 2011 14:43:35 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45EhZnu003972; Thu, 5 May 2011 14:43:35 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105051443.p45EhZnu003972@svn.freebsd.org> From: Adrian Chadd Date: Thu, 5 May 2011 14:43:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221501 - head/share/man/man4 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:43:36 -0000 Author: adrian Date: Thu May 5 14:43:35 2011 New Revision: 221501 URL: http://svn.freebsd.org/changeset/base/221501 Log: Add a manpage for geom_map(4). Submitted by: ray@dlink.ua Added: head/share/man/man4/geom_map.4 (contents, props changed) Modified: head/share/man/man4/Makefile Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Thu May 5 14:43:09 2011 (r221500) +++ head/share/man/man4/Makefile Thu May 5 14:43:35 2011 (r221501) @@ -134,6 +134,7 @@ MAN= aac.4 \ geom.4 \ geom_fox.4 \ geom_linux_lvm.4 \ + geom_map.4 \ geom_uzip.4 \ gif.4 \ gpib.4 \ Added: head/share/man/man4/geom_map.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/geom_map.4 Thu May 5 14:43:35 2011 (r221501) @@ -0,0 +1,179 @@ +.\" +.\" Copyright (c) 2011 Aleksandr Rybalko +.\" 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$ +.\" +.Dd April 5, 2011 +.Dt GEOM_MAP 4 +.Os +.Sh NAME +.Nm geom_map +.Nd "GEOM module that map difined items as separate partitions" +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device geom_map" +.Ed +.Sh DESCRIPTION +The +.Nm +framework provides support for mapping defined parts of the media. Basicaly it +is helpful in the embedded devices where in the one continous flash are loader, +kernel and rootfs parts. The +.Nm +allows making them available as separate parts and protect loader from +overwriting. +.Pp +At boot time +.Nm +partitions listed (only with bootverbose) as: +.Bd -literal -offset indent +MAP: 0x30000, data=0x30000 "/dev/map/bootloader" +MAP: 30000x10000, data=0x10000 "/dev/map/factory" +MAP: 40000x7a0000, data=0x7a0000 "/dev/map/upgrade" +MAP: search key ".!/bin/sh" from 0x100000, step 0x10000 +MAP: 40000x110000, data=0x110000 "/dev/map/kernel" +MAP: search key ".!/bin/sh" from 0x100000, step 0x10000 +MAP: 150000x690000, data=0x690000 "/dev/map/rootfs" +MAP: 7e0000x20000, data=0x20000 "/dev/map/config" +.Ed +.Pp +Also +.Nm +current configuration can be accessible with sysctl's kern.geom.conftxt, +kern.geom.confxml, kern.geom.confdot or geom map list. +.Bd -literal -offset indent +# sysctl kern.geom.conftxt +kern.geom.conftxt: 0 MD md0 10485760 512 u 0 s 512 f 0 fs 0 l 10485760 t malloc +0 DISK cfid0 8388608 4 hd 0 sc 0 +1 MAP map/config 131072 4 i 5 o 8257536 entry 0 dsize 131072 +1 MAP map/rootfs 6881280 4 i 4 o 1376256 entry 0 dsize 6881280 +2 UNCOMPRESS map/rootfs.uncompress 18677760 512 +1 MAP map/kernel 1114112 4 i 3 o 262144 entry 0 dsize 1114112 +1 MAP map/upgrade 7995392 4 i 2 o 262144 entry 0 dsize 7995392 +1 MAP map/factory 65536 4 i 1 o 196608 entry 0 dsize 65536 +1 MAP map/bootloader 196608 4 i 0 o 0 entry 0 dsize 196608 +.Ed +.Pp +Driver configuration can be done in device hints file. List of used parameters: +.Bl -tag -width indent +.It Fa at +select media to attach +.It Fa name +name of partiton (will create device /dev/map/that_name) +.It Fa start +offset from the beginning of the parent media to start of the mapped partition. +This field can also have special value +"search:searchstart:searchstep:searchkey", where: +.Bl -tag -width indent +.It Fa searchstart +offset from the beginning of the parent media where search will be started +.It Fa searchstep +value of the increment used while searching for the partition boundary markers +.It Fa searchkey +key which will be used to find partition boundary markers. Wildcard "." char +can be used to match any char on that position +.El +.It Fa end +offset from the beginning of the parent media to end of the mapped partition. +This field can also have special value +"search:searchstart:searchstep:searchkey", look "start" for details. +.It Fa offset +offset where the data of mapped partition begins +.El +.Pp +Each record contains start address(bytes) from the media begin, size(bytes), +offset where the data of mapped partition begins, and the name of new device. +.Bd -literal -offset indent +MAP: 150000x690000, data=0x690000 "/dev/map/rootfs" +.Ed +.Bd -literal +00150000 - begin address +00690000 - size +00000000 - data begin from zero offset +00690000 - data size +"map/rootfs" - new media will be accessible via /dev/map/rootfs dev. +.Ed +.Sh EXAMPLES +.Pp +.Bl -bullet -compact +If we need to implement layout shown above, we need to define the folowing +hints: +.Bd -literal -offset indent +hint.map.0.at="cfid0" +hint.map.0.start=0x00000000 +hint.map.0.end=0x00030000 +hint.map.0.name="bootloader" +hint.map.0.readonly=1 + +.Ed +define "/dev/map/bootloader" at disk "cfid0" starting at 0x00000000 and end +0x00030000, also marked as readonly. +.Bd -literal -offset indent +hint.map.1.at="cfid0" +hint.map.1.start=0x00030000 +hint.map.1.end=0x00040000 +hint.map.1.name="factory" + +hint.map.2.at="cfid0" +hint.map.2.start=0x00040000 +hint.map.2.end=0x007e0000 +hint.map.2.name="upgrade" + +hint.map.3.at="cfid0" +hint.map.3.name="kernel" +hint.map.3.start=0x00040000 +hint.map.3.end="search:0x00100000:0x10000:.!/bin/sh" + +.Ed +define "/dev/map/kernel" at disk "cfid0" starting at 0x00040000, but end +position must be searched by the key ".!/bin/sh", from offset 0x00100000 to end +of media with step 0x10000. Real marker in that case is "#!/bin/sh", but "#" +terminates the line when hints file is parsed, so we need to use wildcard "." +instead of "#". +.Bd -literal -offset indent +hint.map.4.at="cfid0" +hint.map.4.name="rootfs" +hint.map.4.start="search:0x00100000:0x10000:.!/bin/sh" +hint.map.4.end=0x007e0000 + +hint.map.5.at="cfid0" +hint.map.5.start=0x007e0000 +hint.map.5.end=0x00800000 +hint.map.5.name="config" +.Ed +.El +.Sh SEE ALSO +.Xr GEOM 4 , +.Xr geom 8 , +.Xr sysctl 8 +.Sh AUTHORS +.An -nosplit +The +.Nm +driver was written by +.An "Aleksandr Rybalko" Aq ray@ddteam.net . From owner-svn-src-head@FreeBSD.ORG Thu May 5 14:45:25 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F84F106564A; Thu, 5 May 2011 14:45:25 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2FFFB8FC1B; Thu, 5 May 2011 14:45:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45EjPMo004085; Thu, 5 May 2011 14:45:25 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45EjPL2004080; Thu, 5 May 2011 14:45:25 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201105051445.p45EjPL2004080@svn.freebsd.org> From: "David E. O'Brien" Date: Thu, 5 May 2011 14:45:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221502 - in head: lib/libutil sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 14:45:25 -0000 Author: obrien Date: Thu May 5 14:45:24 2011 New Revision: 221502 URL: http://svn.freebsd.org/changeset/base/221502 Log: Don't duplicate define the stdint types. Added: head/sys/sys/_stdint.h - copied, changed from r221139, head/sys/sys/stdint.h Modified: head/lib/libutil/libutil.h head/sys/sys/stdint.h head/sys/sys/types.h Modified: head/lib/libutil/libutil.h ============================================================================== --- head/lib/libutil/libutil.h Thu May 5 14:43:35 2011 (r221501) +++ head/lib/libutil/libutil.h Thu May 5 14:45:24 2011 (r221502) @@ -41,22 +41,13 @@ #include #include +#include #ifndef _GID_T_DECLARED typedef __gid_t gid_t; #define _GID_T_DECLARED #endif -#ifndef _INT64_T_DECLARED -typedef __int64_t int64_t; -#define _INT64_T_DECLARED -#endif - -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t; -#define _UINT64_T_DECLARED -#endif - #ifndef _PID_T_DECLARED typedef __pid_t pid_t; #define _PID_T_DECLARED Copied and modified: head/sys/sys/_stdint.h (from r221139, head/sys/sys/stdint.h) ============================================================================== --- head/sys/sys/stdint.h Wed Apr 27 20:42:30 2011 (r221139, copy source) +++ head/sys/sys/_stdint.h Thu May 5 14:45:24 2011 (r221502) @@ -1,4 +1,5 @@ /*- + * Copyright (c) 2011 David E. O'Brien * Copyright (c) 2001 Mike Barcroft * All rights reserved. * @@ -26,13 +27,8 @@ * $FreeBSD$ */ -#ifndef _SYS_STDINT_H_ -#define _SYS_STDINT_H_ - -#include -#include - -#include +#ifndef _SYS__STDINT_H_ +#define _SYS__STDINT_H_ #ifndef _INT8_T_DECLARED typedef __int8_t int8_t; @@ -74,33 +70,13 @@ typedef __uint64_t uint64_t; #define _UINT64_T_DECLARED #endif -typedef __int_least8_t int_least8_t; -typedef __int_least16_t int_least16_t; -typedef __int_least32_t int_least32_t; -typedef __int_least64_t int_least64_t; - -typedef __uint_least8_t uint_least8_t; -typedef __uint_least16_t uint_least16_t; -typedef __uint_least32_t uint_least32_t; -typedef __uint_least64_t uint_least64_t; - -typedef __int_fast8_t int_fast8_t; -typedef __int_fast16_t int_fast16_t; -typedef __int_fast32_t int_fast32_t; -typedef __int_fast64_t int_fast64_t; - -typedef __uint_fast8_t uint_fast8_t; -typedef __uint_fast16_t uint_fast16_t; -typedef __uint_fast32_t uint_fast32_t; -typedef __uint_fast64_t uint_fast64_t; - -typedef __intmax_t intmax_t; -typedef __uintmax_t uintmax_t; - #ifndef _INTPTR_T_DECLARED typedef __intptr_t intptr_t; -typedef __uintptr_t uintptr_t; #define _INTPTR_T_DECLARED #endif +#ifndef _UINTPTR_T_DECLARED +typedef __uintptr_t uintptr_t; +#define _UINTPTR_T_DECLARED +#endif -#endif /* !_SYS_STDINT_H_ */ +#endif /* !_SYS__STDINT_H_ */ Modified: head/sys/sys/stdint.h ============================================================================== --- head/sys/sys/stdint.h Thu May 5 14:43:35 2011 (r221501) +++ head/sys/sys/stdint.h Thu May 5 14:45:24 2011 (r221502) @@ -33,46 +33,7 @@ #include #include - -#ifndef _INT8_T_DECLARED -typedef __int8_t int8_t; -#define _INT8_T_DECLARED -#endif - -#ifndef _INT16_T_DECLARED -typedef __int16_t int16_t; -#define _INT16_T_DECLARED -#endif - -#ifndef _INT32_T_DECLARED -typedef __int32_t int32_t; -#define _INT32_T_DECLARED -#endif - -#ifndef _INT64_T_DECLARED -typedef __int64_t int64_t; -#define _INT64_T_DECLARED -#endif - -#ifndef _UINT8_T_DECLARED -typedef __uint8_t uint8_t; -#define _UINT8_T_DECLARED -#endif - -#ifndef _UINT16_T_DECLARED -typedef __uint16_t uint16_t; -#define _UINT16_T_DECLARED -#endif - -#ifndef _UINT32_T_DECLARED -typedef __uint32_t uint32_t; -#define _UINT32_T_DECLARED -#endif - -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t; -#define _UINT64_T_DECLARED -#endif +#include typedef __int_least8_t int_least8_t; typedef __int_least16_t int_least16_t; @@ -94,13 +55,13 @@ typedef __uint_fast16_t uint_fast16_t; typedef __uint_fast32_t uint_fast32_t; typedef __uint_fast64_t uint_fast64_t; +#ifndef _INTMAX_T_DECLARED typedef __intmax_t intmax_t; +#define _INTMAX_T_DECLARED +#endif +#ifndef _UINTMAX_T_DECLARED typedef __uintmax_t uintmax_t; - -#ifndef _INTPTR_T_DECLARED -typedef __intptr_t intptr_t; -typedef __uintptr_t uintptr_t; -#define _INTPTR_T_DECLARED +#define _UINTMAX_T_DECLARED #endif #endif /* !_SYS_STDINT_H_ */ Modified: head/sys/sys/types.h ============================================================================== --- head/sys/sys/types.h Thu May 5 14:43:35 2011 (r221501) +++ head/sys/sys/types.h Thu May 5 14:45:24 2011 (r221502) @@ -60,51 +60,7 @@ typedef unsigned int uint; /* Sys V com /* * XXX POSIX sized integrals that should appear only in . */ -#ifndef _INT8_T_DECLARED -typedef __int8_t int8_t; -#define _INT8_T_DECLARED -#endif - -#ifndef _INT16_T_DECLARED -typedef __int16_t int16_t; -#define _INT16_T_DECLARED -#endif - -#ifndef _INT32_T_DECLARED -typedef __int32_t int32_t; -#define _INT32_T_DECLARED -#endif - -#ifndef _INT64_T_DECLARED -typedef __int64_t int64_t; -#define _INT64_T_DECLARED -#endif - -#ifndef _UINT8_T_DECLARED -typedef __uint8_t uint8_t; -#define _UINT8_T_DECLARED -#endif - -#ifndef _UINT16_T_DECLARED -typedef __uint16_t uint16_t; -#define _UINT16_T_DECLARED -#endif - -#ifndef _UINT32_T_DECLARED -typedef __uint32_t uint32_t; -#define _UINT32_T_DECLARED -#endif - -#ifndef _UINT64_T_DECLARED -typedef __uint64_t uint64_t; -#define _UINT64_T_DECLARED -#endif - -#ifndef _INTPTR_T_DECLARED -typedef __intptr_t intptr_t; -typedef __uintptr_t uintptr_t; -#define _INTPTR_T_DECLARED -#endif +#include typedef __uint8_t u_int8_t; /* unsigned integrals (deprecated) */ typedef __uint16_t u_int16_t; From owner-svn-src-head@FreeBSD.ORG Thu May 5 16:14:14 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 03515106566B; Thu, 5 May 2011 16:14:14 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E25238FC0A; Thu, 5 May 2011 16:14:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45GEDvG006826; Thu, 5 May 2011 16:14:13 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45GEDEg006824; Thu, 5 May 2011 16:14:13 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105051614.p45GEDEg006824@svn.freebsd.org> From: Dimitry Andric Date: Thu, 5 May 2011 16:14:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221503 - head/contrib/llvm/lib/Support/Unix X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 16:14:14 -0000 Author: dim Date: Thu May 5 16:14:13 2011 New Revision: 221503 URL: http://svn.freebsd.org/changeset/base/221503 Log: Make cross-compiling using clang work better, by respecting the LLVM_HOSTTRIPLE that is defined during the cross-tools stage. Using clang, you can now build amd64 world and kernel on i386, and vice versa. Other arches still need work. Modified: head/contrib/llvm/lib/Support/Unix/Host.inc Modified: head/contrib/llvm/lib/Support/Unix/Host.inc ============================================================================== --- head/contrib/llvm/lib/Support/Unix/Host.inc Thu May 5 14:45:24 2011 (r221502) +++ head/contrib/llvm/lib/Support/Unix/Host.inc Thu May 5 16:14:13 2011 (r221503) @@ -35,6 +35,9 @@ static std::string getOSVersion() { } std::string sys::getHostTriple() { +#ifdef __FreeBSD__ + return LLVM_HOSTTRIPLE; +#else // FIXME: Derive directly instead of relying on the autoconf generated // variable. @@ -91,4 +94,5 @@ std::string sys::getHostTriple() { } return Triple; +#endif } From owner-svn-src-head@FreeBSD.ORG Thu May 5 16:42:25 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5C996106566C; Thu, 5 May 2011 16:42:25 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 143378FC12; Thu, 5 May 2011 16:42:24 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 407C51FFC35; Thu, 5 May 2011 16:42:23 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 10013845CA; Thu, 5 May 2011 18:42:23 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Rick Macklem References: <942285768.1045464.1304603653229.JavaMail.root@erie.cs.uoguelph.ca> Date: Thu, 05 May 2011 18:42:22 +0200 In-Reply-To: <942285768.1045464.1304603653229.JavaMail.root@erie.cs.uoguelph.ca> (Rick Macklem's message of "Thu, 5 May 2011 09:54:13 -0400 (EDT)") Message-ID: <86r58dqett.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 16:42:25 -0000 Rick Macklem writes: > Well, another way it could be handled would be to put the sysctls and > the global variables they manipulate in a module shared by both clients, > like sys/nfs/nfs_lock.c (module "nfslock"). Then the same sysctl would > affect both clients. (I hesitate to create "yet another" module just > to share the sysctls, but since "nfslock" is used by both clients, it > should work ok, I think.) I don't understand why you would want to do that. Can't you just change "oldnfs" back to "nfs" in the old stack? Hmm, it occurred to me that there is currently no way to tell the kernel that two drivers conflict with eachother. Perhaps I should take a shot at implementing a DRIVER_CONFLICT macro to mirror DRIVER_DEPEND. BTW, don't take this personally, I'm very grateful for (and impressed with) your NFS work, other than this little nit :) DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Thu May 5 17:11:26 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65EF1106566C; Thu, 5 May 2011 17:11:26 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 525258FC08; Thu, 5 May 2011 17:11:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45HBQWL008576; Thu, 5 May 2011 17:11:26 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45HBQIk008574; Thu, 5 May 2011 17:11:26 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201105051711.p45HBQIk008574@svn.freebsd.org> From: Alexander Motin Date: Thu, 5 May 2011 17:11:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221504 - head/sys/dev/ahci X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 17:11:26 -0000 Author: mav Date: Thu May 5 17:11:26 2011 New Revision: 221504 URL: http://svn.freebsd.org/changeset/base/221504 Log: Add PCI ID for Marvell 88SE9182 -- PCIe 2.x x2 relative of the 88SE912x. Submitted by: dchagin MFC after: 1 week Modified: head/sys/dev/ahci/ahci.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Thu May 5 16:14:13 2011 (r221503) +++ head/sys/dev/ahci/ahci.c Thu May 5 17:11:26 2011 (r221504) @@ -184,6 +184,7 @@ static struct { {0x91201b4b, 0x00, "Marvell 88SE912x", AHCI_Q_EDGEIS|AHCI_Q_NOBSYRES}, {0x91231b4b, 0x11, "Marvell 88SE912x", AHCI_Q_NOBSYRES}, {0x91231b4b, 0x00, "Marvell 88SE912x", AHCI_Q_EDGEIS|AHCI_Q_SATA2|AHCI_Q_NOBSYRES}, + {0x91821b4b, 0x00, "Marvell 88SE9182", AHCI_Q_NOBSYRES}, {0x06201103, 0x00, "HighPoint RocketRAID 620", AHCI_Q_NOBSYRES}, {0x06201b4b, 0x00, "HighPoint RocketRAID 620", AHCI_Q_NOBSYRES}, {0x06221103, 0x00, "HighPoint RocketRAID 622", AHCI_Q_NOBSYRES}, From owner-svn-src-head@FreeBSD.ORG Thu May 5 17:28:46 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16FB9106564A; Thu, 5 May 2011 17:28:46 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 03DCD8FC0C; Thu, 5 May 2011 17:28:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45HSjWP009115; Thu, 5 May 2011 17:28:45 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45HSjRN009113; Thu, 5 May 2011 17:28:45 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201105051728.p45HSjRN009113@svn.freebsd.org> From: Jack F Vogel Date: Thu, 5 May 2011 17:28:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221505 - head/sys/dev/e1000 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 17:28:46 -0000 Author: jfv Date: Thu May 5 17:28:45 2011 New Revision: 221505 URL: http://svn.freebsd.org/changeset/base/221505 Log: Add an initialization to the error variable, without this there is a rare return path that bogusly appears to fail when it should not. Also white space correction. Thanks to Arnaud Lacombe for noticing the problem. Modified: head/sys/dev/e1000/if_em.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Thu May 5 17:11:26 2011 (r221504) +++ head/sys/dev/e1000/if_em.c Thu May 5 17:28:45 2011 (r221505) @@ -3901,7 +3901,7 @@ em_setup_receive_ring(struct rx_ring *rx struct adapter *adapter = rxr->adapter; struct em_buffer *rxbuf; bus_dma_segment_t seg[1]; - int i, j, nsegs, error; + int i, j, nsegs, error = 0; /* Clear the ring contents */ @@ -3919,7 +3919,7 @@ em_setup_receive_ring(struct rx_ring *rx if (++j == adapter->num_rx_desc) j = 0; - while(j != rxr->next_to_check) { + while (j != rxr->next_to_check) { rxbuf = &rxr->rx_buffers[i]; rxbuf->m_head = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); From owner-svn-src-head@FreeBSD.ORG Thu May 5 18:47:24 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79004106564A; Thu, 5 May 2011 18:47:24 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 66EA38FC13; Thu, 5 May 2011 18:47:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45IlO2M011476; Thu, 5 May 2011 18:47:24 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45IlOHF011474; Thu, 5 May 2011 18:47:24 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201105051847.p45IlOHF011474@svn.freebsd.org> From: Dimitry Andric Date: Thu, 5 May 2011 18:47:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221506 - head/sys/boot/i386/boot2 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 18:47:24 -0000 Author: dim Date: Thu May 5 18:47:24 2011 New Revision: 221506 URL: http://svn.freebsd.org/changeset/base/221506 Log: Fine-tune llvm optimization for sys/boot/i386/boot2, which shaves off some more bytes from the final boot2 image. Submitted by: rdivacky Modified: head/sys/boot/i386/boot2/Makefile Modified: head/sys/boot/i386/boot2/Makefile ============================================================================== --- head/sys/boot/i386/boot2/Makefile Thu May 5 17:28:45 2011 (r221505) +++ head/sys/boot/i386/boot2/Makefile Thu May 5 18:47:24 2011 (r221506) @@ -43,7 +43,8 @@ CFLAGS= -Os \ -Winline --param max-inline-insns-single=100 .if ${CC:T:Mclang} == "clang" -CFLAGS+= -mllvm -stack-alignment=8 -mllvm -inline-threshold=3 +CFLAGS+= -mllvm -stack-alignment=8 -mllvm -inline-threshold=3 \ + -mllvm -enable-load-pre=false # XXX: clang integrated-as doesn't grok .codeNN directives yet CFLAGS+= ${.IMPSRC:T:Mboot1.S:C/^.+$/-no-integrated-as/} .endif From owner-svn-src-head@FreeBSD.ORG Thu May 5 18:56:48 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 60AC5106564A; Thu, 5 May 2011 18:56:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4EA418FC20; Thu, 5 May 2011 18:56:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45IumiX011826; Thu, 5 May 2011 18:56:48 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45IumkV011824; Thu, 5 May 2011 18:56:48 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201105051856.p45IumkV011824@svn.freebsd.org> From: Alexander Motin Date: Thu, 5 May 2011 18:56:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221508 - head/sys/x86/x86 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 18:56:48 -0000 Author: mav Date: Thu May 5 18:56:48 2011 New Revision: 221508 URL: http://svn.freebsd.org/changeset/base/221508 Log: Some changes around LAPIC timer programming. This fixes heavy interrupt storm and resulting system freeze when using LAPIC timer in one-shot mode under Xen HVM. There, unlike real hardware, programming timer with zero period almost immediately causes interrupt. Modified: head/sys/x86/x86/local_apic.c Modified: head/sys/x86/x86/local_apic.c ============================================================================== --- head/sys/x86/x86/local_apic.c Thu May 5 18:50:52 2011 (r221507) +++ head/sys/x86/x86/local_apic.c Thu May 5 18:56:48 2011 (r221508) @@ -159,9 +159,8 @@ static struct eventtimer lapic_et; static void lapic_enable(void); static void lapic_resume(struct pic *pic); -static void lapic_timer_enable_intr(void); -static void lapic_timer_oneshot(u_int count); -static void lapic_timer_periodic(u_int count); +static void lapic_timer_oneshot(u_int count, int enable_int); +static void lapic_timer_periodic(u_int count, int enable_int); static void lapic_timer_stop(void); static void lapic_timer_set_divisor(u_int divisor); static uint32_t lvt_mode(struct lapic *la, u_int pin, uint32_t value); @@ -379,13 +378,11 @@ lapic_setup(int boot) if (la->la_timer_mode != 0) { KASSERT(la->la_timer_period != 0, ("lapic%u: zero divisor", lapic_id())); - lapic_timer_stop(); lapic_timer_set_divisor(lapic_timer_divisor); - lapic_timer_enable_intr(); if (la->la_timer_mode == 1) - lapic_timer_periodic(la->la_timer_period); + lapic_timer_periodic(la->la_timer_period, 1); else - lapic_timer_oneshot(la->la_timer_period); + lapic_timer_oneshot(la->la_timer_period, 1); } /* Program error LVT and clear any existing errors. */ @@ -496,7 +493,7 @@ lapic_et_start(struct eventtimer *et, /* Try to calibrate the local APIC timer. */ do { lapic_timer_set_divisor(lapic_timer_divisor); - lapic_timer_oneshot(APIC_TIMER_MAX_COUNT); + lapic_timer_oneshot(APIC_TIMER_MAX_COUNT, 0); DELAY(1000000); value = APIC_TIMER_MAX_COUNT - lapic->ccr_timer; if (value != APIC_TIMER_MAX_COUNT) @@ -516,9 +513,7 @@ lapic_et_start(struct eventtimer *et, et->et_max_period.frac = ((0xfffffffeLLU << 32) / et->et_frequency) << 32; } - lapic_timer_stop(); lapic_timer_set_divisor(lapic_timer_divisor); - lapic_timer_enable_intr(); la = &lapics[lapic_id()]; if (period != NULL) { la->la_timer_mode = 1; @@ -526,14 +521,14 @@ lapic_et_start(struct eventtimer *et, (et->et_frequency * (period->frac >> 32)) >> 32; if (period->sec != 0) la->la_timer_period += et->et_frequency * period->sec; - lapic_timer_periodic(la->la_timer_period); + lapic_timer_periodic(la->la_timer_period, 1); } else { la->la_timer_mode = 2; la->la_timer_period = (et->et_frequency * (first->frac >> 32)) >> 32; if (first->sec != 0) la->la_timer_period += et->et_frequency * first->sec; - lapic_timer_oneshot(la->la_timer_period); + lapic_timer_oneshot(la->la_timer_period, 1); } return (0); } @@ -838,25 +833,29 @@ lapic_timer_set_divisor(u_int divisor) } static void -lapic_timer_oneshot(u_int count) +lapic_timer_oneshot(u_int count, int enable_int) { u_int32_t value; value = lapic->lvt_timer; value &= ~APIC_LVTT_TM; value |= APIC_LVTT_TM_ONE_SHOT; + if (enable_int) + value &= ~APIC_LVT_M; lapic->lvt_timer = value; lapic->icr_timer = count; } static void -lapic_timer_periodic(u_int count) +lapic_timer_periodic(u_int count, int enable_int) { u_int32_t value; value = lapic->lvt_timer; value &= ~APIC_LVTT_TM; value |= APIC_LVTT_TM_PERIODIC; + if (enable_int) + value &= ~APIC_LVT_M; lapic->lvt_timer = value; lapic->icr_timer = count; } @@ -870,17 +869,6 @@ lapic_timer_stop(void) value &= ~APIC_LVTT_TM; value |= APIC_LVT_M; lapic->lvt_timer = value; - lapic->icr_timer = 0; -} - -static void -lapic_timer_enable_intr(void) -{ - u_int32_t value; - - value = lapic->lvt_timer; - value &= ~APIC_LVT_M; - lapic->lvt_timer = value; } void From owner-svn-src-head@FreeBSD.ORG Thu May 5 19:15:15 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5C96106566C; Thu, 5 May 2011 19:15:15 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A3FC18FC19; Thu, 5 May 2011 19:15:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45JFFNB012404; Thu, 5 May 2011 19:15:15 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45JFF12012402; Thu, 5 May 2011 19:15:15 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201105051915.p45JFF12012402@svn.freebsd.org> From: Xin LI Date: Thu, 5 May 2011 19:15:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221509 - head/sys/dev/coretemp X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 19:15:15 -0000 Author: delphij Date: Thu May 5 19:15:15 2011 New Revision: 221509 URL: http://svn.freebsd.org/changeset/base/221509 Log: Detect and set Atom's Tj(max) to 90 if it's not the 45nm D400/D500/N400 series. MFC after: 2 weeks Modified: head/sys/dev/coretemp/coretemp.c Modified: head/sys/dev/coretemp/coretemp.c ============================================================================== --- head/sys/dev/coretemp/coretemp.c Thu May 5 18:56:48 2011 (r221508) +++ head/sys/dev/coretemp/coretemp.c Thu May 5 19:15:15 2011 (r221509) @@ -197,6 +197,15 @@ coretemp_attach(device_t dev) default: /* Unknown stepping */ break; } + } else if (cpu_model == 0x1c) { + switch (cpu_stepping) { + case 0xa: /* 45nm Atom D400, N400 and D500 series */ + sc->sc_tjmax = 100; + break; + default: + sc->sc_tjmax = 90; + break; + } } else { /* * Attempt to get Tj(max) from MSR IA32_TEMPERATURE_TARGET. From owner-svn-src-head@FreeBSD.ORG Thu May 5 19:17:55 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF21D1065672; Thu, 5 May 2011 19:17:55 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C2E498FC14; Thu, 5 May 2011 19:17:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45JHtxd012517; Thu, 5 May 2011 19:17:55 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45JHtar012515; Thu, 5 May 2011 19:17:55 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105051917.p45JHtar012515@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 5 May 2011 19:17:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221510 - head/release X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 19:17:56 -0000 Author: nwhitehorn Date: Thu May 5 19:17:55 2011 New Revision: 221510 URL: http://svn.freebsd.org/changeset/base/221510 Log: Simplify this script somewhat, following excellent suggestions from Ed Schouten. Modified: head/release/generate-release.sh Modified: head/release/generate-release.sh ============================================================================== --- head/release/generate-release.sh Thu May 5 19:15:15 2011 (r221509) +++ head/release/generate-release.sh Thu May 5 19:17:55 2011 (r221510) @@ -21,7 +21,9 @@ # mkdir -p $2/usr/src -svn co ${SVNROOT:-svn://svn.freebsd.org/base}/$1 $2/usr/src || exit 1 +set -e # Everything must succeed + +svn co ${SVNROOT:-svn://svn.freebsd.org/base}/$1 $2/usr/src if [ ! -z $CVSUP_HOST ]; then cat > $2/docports-supfile << EOF *default host=$CVSUP_HOST @@ -35,32 +37,33 @@ if [ ! -z $CVSUP_HOST ]; then EOF elif [ ! -z $CVSROOT ]; then cd $2/usr - cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} ports || exit 1 - cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} doc || exit 1 + cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} ports + cvs -R ${CVSARGS} -d ${CVSROOT} co -P -r ${CVS_TAG:-HEAD} doc fi cd $2/usr/src -make $MAKE_FLAGS buildworld || exit 1 -make installworld distribution DESTDIR=$2 || exit 1 +make $MAKE_FLAGS buildworld +make installworld distribution DESTDIR=$2 mount -t devfs devfs $2/dev +trap "umount $2/dev" EXIT # Clean up devfs mount on exit if [ ! -z $CVSUP_HOST ]; then cp /etc/resolv.conf $2/etc/resolv.conf # Checkout ports and doc trees - chroot $2 /usr/bin/csup /docports-supfile || exit 1 + chroot $2 /usr/bin/csup /docports-supfile fi if [ -d $2/usr/doc ]; then cp /etc/resolv.conf $2/etc/resolv.conf # Build ports to build the docs, then build the docs - chroot $2 /bin/sh -c 'pkg_add -r docproj || (cd /usr/ports/textproc/docproj && make install clean BATCH=yes WITHOUT_X11=yes JADETEX=no WITHOUT_PYTHON=yes)' || exit 1 - chroot $2 /bin/sh -c "cd /usr/doc && make $MAKE_FLAGS 'FORMATS=html html-split txt' URLS_ABSOLUTE=YES" || exit 1 + chroot $2 /bin/sh -c 'pkg_add -r docproj || (cd /usr/ports/textproc/docproj && make install clean BATCH=yes WITHOUT_X11=yes JADETEX=no WITHOUT_PYTHON=yes)' + chroot $2 make -C /usr/doc $MAKE_FLAGS 'FORMATS=html html-split txt' URLS_ABSOLUTE=YES fi -chroot $2 /bin/sh -c "cd /usr/src && make $MAKE_FLAGS buildworld buildkernel" || exit 1 -chroot $2 /bin/sh -c "cd /usr/src/release && make obj" || exit 1 -chroot $2 /bin/sh -c "cd /usr/src/release && make release" || exit 1 -chroot $2 /bin/sh -c "cd /usr/src/release && make install DESTDIR=/R" || exit 1 +chroot $2 make -C /usr/src $MAKE_FLAGS buildworld buildkernel +chroot $2 make -C /usr/src/release obj +chroot $2 make -C /usr/src/release release +chroot $2 make -C /usr/src/release install DESTDIR=/R From owner-svn-src-head@FreeBSD.ORG Thu May 5 19:49:27 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5F1F106566B; Thu, 5 May 2011 19:49:27 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C32ED8FC16; Thu, 5 May 2011 19:49:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45JnREh013513; Thu, 5 May 2011 19:49:27 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45JnRBb013511; Thu, 5 May 2011 19:49:27 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201105051949.p45JnRBb013511@svn.freebsd.org> From: Michael Tuexen Date: Thu, 5 May 2011 19:49:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221512 - head/lib/libc/net X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 19:49:27 -0000 Author: tuexen Date: Thu May 5 19:49:27 2011 New Revision: 221512 URL: http://svn.freebsd.org/changeset/base/221512 Log: * Update copyright notice. * Cleanup usage of iov's. * Add support for SCTP_TIMEOUTS socketoption. * Fix a bug in sctp_recvmsg(): return the msg_flags in case of an error. * Fix a bug in the error handling of sctp_peeloff(): return the -1. Modified: head/lib/libc/net/sctp_sys_calls.c Modified: head/lib/libc/net/sctp_sys_calls.c ============================================================================== --- head/lib/libc/net/sctp_sys_calls.c Thu May 5 19:35:12 2011 (r221511) +++ head/lib/libc/net/sctp_sys_calls.c Thu May 5 19:49:27 2011 (r221512) @@ -1,33 +1,35 @@ -/* $KAME: sctp_sys_calls.c,v 1.9 2004/08/17 06:08:53 itojun Exp $ */ - -/* - * Copyright (C) 2002-2007 Cisco Systems Inc, - * All rights reserved. +/*- + * Copyright (c) 2001-2007, by Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2008-2011, by Randall Stewart. All rights reserved. + * Copyright (c) 2008-2011, by Michael Tuexen. 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. - * 3. Neither the name of the project nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. + * modification, are permitted provided that the following conditions are met: + * + * a) Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * b) 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. + * + * c) Neither the name of Cisco Systems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * THIS SOFTWARE IS PROVIDED BY THE PROJECT 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 PROJECT 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. + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. */ + #include __FBSDID("$FreeBSD$"); #include @@ -58,7 +60,6 @@ __FBSDID("$FreeBSD$"); #define SCTP_CONTROL_VEC_SIZE_SND 8192 #define SCTP_CONTROL_VEC_SIZE_RCV 16384 #define SCTP_STACK_BUF_SIZE 2048 -#define SCTP_SMALL_IOVEC_SIZE 2 #ifdef SCTP_DEBUG_PRINT_ADDRESS @@ -398,6 +399,9 @@ sctp_opt_info(int sd, sctp_assoc_t id, i case SCTP_LOCAL_AUTH_CHUNKS: ((struct sctp_authchunks *)arg)->gauth_assoc_id = id; break; + case SCTP_TIMEOUTS: + ((struct sctp_timeouts *)arg)->stimo_assoc_id = id; + break; default: break; } @@ -551,11 +555,10 @@ sctp_sendmsg(int s, return (syscall(SYS_sctp_generic_sendmsg, s, data, len, to, tolen, &sinfo, 0)); #else - ssize_t sz; struct msghdr msg; struct sctp_sndrcvinfo *s_info; - struct iovec iov[SCTP_SMALL_IOVEC_SIZE]; + struct iovec iov; char controlVector[SCTP_CONTROL_VEC_SIZE_RCV]; struct cmsghdr *cmsg; struct sockaddr *who = NULL; @@ -564,20 +567,8 @@ sctp_sendmsg(int s, struct sockaddr_in6 in6; } addr; -/* - fprintf(io, "sctp_sendmsg(sd:%d, data:%x, len:%d, to:%x, tolen:%d, ppid:%x, flags:%x str:%d ttl:%d ctx:%x\n", - s, - (u_int)data, - (int)len, - (u_int)to, - (int)tolen, - ppid, flags, - (int)stream_no, - (int)timetolive, - (u_int)context); - fflush(io); -*/ - if ((tolen > 0) && ((to == NULL) || (tolen < sizeof(struct sockaddr)))) { + if ((tolen > 0) && + ((to == NULL) || (tolen < sizeof(struct sockaddr)))) { errno = EINVAL; return -1; } @@ -587,7 +578,8 @@ sctp_sendmsg(int s, errno = EINVAL; return -1; } - if ((to->sa_len > 0) && (to->sa_len != sizeof(struct sockaddr_in))) { + if ((to->sa_len > 0) && + (to->sa_len != sizeof(struct sockaddr_in))) { errno = EINVAL; return -1; } @@ -598,7 +590,8 @@ sctp_sendmsg(int s, errno = EINVAL; return -1; } - if ((to->sa_len > 0) && (to->sa_len != sizeof(struct sockaddr_in6))) { + if ((to->sa_len > 0) && + (to->sa_len != sizeof(struct sockaddr_in6))) { errno = EINVAL; return -1; } @@ -610,10 +603,8 @@ sctp_sendmsg(int s, } who = (struct sockaddr *)&addr; } - iov[0].iov_base = (char *)data; - iov[0].iov_len = len; - iov[1].iov_base = NULL; - iov[1].iov_len = 0; + iov.iov_base = (char *)data; + iov.iov_len = len; if (who) { msg.msg_name = (caddr_t)who; @@ -622,7 +613,7 @@ sctp_sendmsg(int s, msg.msg_name = (caddr_t)NULL; msg.msg_namelen = 0; } - msg.msg_iov = iov; + msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = (caddr_t)controlVector; @@ -681,7 +672,7 @@ sctp_send(int sd, const void *data, size #else ssize_t sz; struct msghdr msg; - struct iovec iov[SCTP_SMALL_IOVEC_SIZE]; + struct iovec iov; struct sctp_sndrcvinfo *s_info; char controlVector[SCTP_CONTROL_VEC_SIZE_SND]; struct cmsghdr *cmsg; @@ -690,14 +681,12 @@ sctp_send(int sd, const void *data, size errno = EINVAL; return (-1); } - iov[0].iov_base = (char *)data; - iov[0].iov_len = len; - iov[1].iov_base = NULL; - iov[1].iov_len = 0; + iov.iov_base = (char *)data; + iov.iov_len = len; msg.msg_name = 0; msg.msg_namelen = 0; - msg.msg_iov = iov; + msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = (caddr_t)controlVector; @@ -736,7 +725,7 @@ sctp_sendx(int sd, const void *msg, size return (-1); } #ifdef SYS_sctp_generic_sendmsg - if (addrcnt < SCTP_SMALL_IOVEC_SIZE) { + if (addrcnt == 1) { socklen_t l; /* @@ -846,18 +835,18 @@ sctp_recvmsg(int s, int *msg_flags) { #ifdef SYS_sctp_generic_recvmsg - struct iovec iov[SCTP_SMALL_IOVEC_SIZE]; + struct iovec iov; - iov[0].iov_base = dbuf; - iov[0].iov_len = len; + iov.iov_base = dbuf; + iov.iov_len = len; return (syscall(SYS_sctp_generic_recvmsg, s, - iov, 1, from, fromlen, sinfo, msg_flags)); + &iov, 1, from, fromlen, sinfo, msg_flags)); #else struct sctp_sndrcvinfo *s_info; ssize_t sz; int sinfo_found = 0; struct msghdr msg; - struct iovec iov[SCTP_SMALL_IOVEC_SIZE]; + struct iovec iov; char controlVector[SCTP_CONTROL_VEC_SIZE_RCV]; struct cmsghdr *cmsg; @@ -866,30 +855,28 @@ sctp_recvmsg(int s, return (-1); } msg.msg_flags = 0; - iov[0].iov_base = dbuf; - iov[0].iov_len = len; - iov[1].iov_base = NULL; - iov[1].iov_len = 0; + iov.iov_base = dbuf; + iov.iov_len = len; msg.msg_name = (caddr_t)from; if (fromlen == NULL) msg.msg_namelen = 0; else msg.msg_namelen = *fromlen; - msg.msg_iov = iov; + msg.msg_iov = &iov; msg.msg_iovlen = 1; msg.msg_control = (caddr_t)controlVector; msg.msg_controllen = sizeof(controlVector); errno = 0; sz = recvmsg(s, &msg, *msg_flags); - if (sz <= 0) + *msg_flags = msg.msg_flags; + if (sz <= 0) { return (sz); - + } s_info = NULL; len = sz; - *msg_flags = msg.msg_flags; - if (sinfo) + if (sinfo) { sinfo->sinfo_assoc_id = 0; - + } if ((msg.msg_controllen) && sinfo) { /* * parse through and see if we find the sctp_sndrcvinfo (if @@ -940,7 +927,7 @@ int sctp_peeloff(int sd, sctp_assoc_t assoc_id) { struct sctp_peeloff_opt peeloff; - int error; + int result; socklen_t optlen; /* set in the socket option params */ @@ -948,10 +935,9 @@ sctp_peeloff(int sd, sctp_assoc_t assoc_ peeloff.s = sd; peeloff.assoc_id = assoc_id; optlen = sizeof(peeloff); - error = getsockopt(sd, IPPROTO_SCTP, SCTP_PEELOFF, (void *)&peeloff, - &optlen); - if (error) { - errno = error; + result = getsockopt(sd, IPPROTO_SCTP, SCTP_PEELOFF, (void *)&peeloff, &optlen); + + if (result < 0) { return (-1); } else { return (peeloff.new_sd); @@ -984,4 +970,3 @@ sctp_peeloff(int sd, sctp_assoc_t assoc_ #undef SCTP_CONTROL_VEC_SIZE_SND #undef SCTP_CONTROL_VEC_SIZE_RCV #undef SCTP_STACK_BUF_SIZE -#undef SCTP_SMALL_IOVEC_SIZE From owner-svn-src-head@FreeBSD.ORG Thu May 5 20:55:56 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21D0B1065673; Thu, 5 May 2011 20:55:56 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0F2928FC0C; Thu, 5 May 2011 20:55:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45KtuBS015474; Thu, 5 May 2011 20:55:56 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45Ktt88015461; Thu, 5 May 2011 20:55:55 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201105052055.p45Ktt88015461@svn.freebsd.org> From: Jilles Tjoelker Date: Thu, 5 May 2011 20:55:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221513 - in head: bin/sh tools/regression/bin/sh/parser X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 20:55:56 -0000 Author: jilles Date: Thu May 5 20:55:55 2011 New Revision: 221513 URL: http://svn.freebsd.org/changeset/base/221513 Log: sh: Add $'quoting' (C-style escape sequences). A string between $' and ' may contain backslash escape sequences similar to the ones in a C string constant (except that a single-quote must be escaped and a double-quote need not be). Details are in the sh(1) man page. This construct is useful to include unprintable characters, tabs and newlines in strings; while this can be done with a command substitution containing a printf command, that needs ugly workarounds if the result is to end with a newline as command substitution removes all trailing newlines. The construct may also be useful in future to describe unprintable characters without needing to write those characters themselves in 'set -x', 'export -p' and the like. The implementation attempts to comply to the proposal for the next issue of the POSIX specification. Because this construct is not in POSIX.1-2008, using it in scripts intended to be portable is unwise. Matching the minimal locale support in the rest of sh, the \u and \U sequences are currently not useful. Exp-run done by: pav (with some other sh(1) changes) Added: head/tools/regression/bin/sh/parser/dollar-quote1.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote2.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote3.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote4.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote5.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote6.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote7.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote8.0 (contents, props changed) head/tools/regression/bin/sh/parser/dollar-quote9.0 (contents, props changed) Modified: head/bin/sh/mksyntax.c head/bin/sh/parser.c head/bin/sh/sh.1 Modified: head/bin/sh/mksyntax.c ============================================================================== --- head/bin/sh/mksyntax.c Thu May 5 19:49:27 2011 (r221512) +++ head/bin/sh/mksyntax.c Thu May 5 20:55:55 2011 (r221513) @@ -64,6 +64,7 @@ struct synclass synclass[] = { { "CWORD", "character is nothing special" }, { "CNL", "newline character" }, { "CBACK", "a backslash character" }, + { "CSBACK", "a backslash character in single quotes" }, { "CSQUOTE", "single quote" }, { "CDQUOTE", "double quote" }, { "CENDQUOTE", "a terminating quote" }, @@ -224,6 +225,7 @@ main(int argc __unused, char **argv __un init(); fputs("\n/* syntax table used when in single quotes */\n", cfile); add("\n", "CNL"); + add("\\", "CSBACK"); add("'", "CENDQUOTE"); /* ':/' for tilde expansion, '-' for [a\-x] pattern ranges */ add("!*?[=~:/-", "CCTL"); Modified: head/bin/sh/parser.c ============================================================================== --- head/bin/sh/parser.c Thu May 5 19:49:27 2011 (r221512) +++ head/bin/sh/parser.c Thu May 5 20:55:55 2011 (r221513) @@ -1127,6 +1127,127 @@ done: /* + * Called to parse a backslash escape sequence inside $'...'. + * The backslash has already been read. + */ +static char * +readcstyleesc(char *out) +{ + int c, v, i, n; + + c = pgetc(); + switch (c) { + case '\0': + synerror("Unterminated quoted string"); + case '\n': + plinno++; + if (doprompt) + setprompt(2); + else + setprompt(0); + return out; + case '\\': + case '\'': + case '"': + v = c; + break; + case 'a': v = '\a'; break; + case 'b': v = '\b'; break; + case 'e': v = '\033'; break; + case 'f': v = '\f'; break; + case 'n': v = '\n'; break; + case 'r': v = '\r'; break; + case 't': v = '\t'; break; + case 'v': v = '\v'; break; + case 'x': + v = 0; + for (;;) { + c = pgetc(); + if (c >= '0' && c <= '9') + v = (v << 4) + c - '0'; + else if (c >= 'A' && c <= 'F') + v = (v << 4) + c - 'A' + 10; + else if (c >= 'a' && c <= 'f') + v = (v << 4) + c - 'a' + 10; + else + break; + } + pungetc(); + break; + case '0': case '1': case '2': case '3': + case '4': case '5': case '6': case '7': + v = c - '0'; + c = pgetc(); + if (c >= '0' && c <= '7') { + v <<= 3; + v += c - '0'; + c = pgetc(); + if (c >= '0' && c <= '7') { + v <<= 3; + v += c - '0'; + } else + pungetc(); + } else + pungetc(); + break; + case 'c': + c = pgetc(); + if (c < 0x3f || c > 0x7a || c == 0x60) + synerror("Bad escape sequence"); + if (c == '\\' && pgetc() != '\\') + synerror("Bad escape sequence"); + if (c == '?') + v = 127; + else + v = c & 0x1f; + break; + case 'u': + case 'U': + n = c == 'U' ? 8 : 4; + v = 0; + for (i = 0; i < n; i++) { + c = pgetc(); + if (c >= '0' && c <= '9') + v = (v << 4) + c - '0'; + else if (c >= 'A' && c <= 'F') + v = (v << 4) + c - 'A' + 10; + else if (c >= 'a' && c <= 'f') + v = (v << 4) + c - 'a' + 10; + else + synerror("Bad escape sequence"); + } + if (v == 0 || (v >= 0xd800 && v <= 0xdfff)) + synerror("Bad escape sequence"); + /* We really need iconv here. */ + if (v > 127) + v = '?'; + break; + default: + synerror("Bad escape sequence"); + } + v = (char)v; + /* + * We can't handle NUL bytes. + * POSIX says we should skip till the closing quote. + */ + if (v == '\0') { + while ((c = pgetc()) != '\'') { + if (c == '\\') + c = pgetc(); + if (c == PEOF) + synerror("Unterminated quoted string"); + } + pungetc(); + return out; + } + if (SQSYNTAX[v] == CCTL) + USTPUTC(CTLESC, out); + USTPUTC(v, out); + return out; +} + + +/* * If eofmark is NULL, read a word or a redirection symbol. If eofmark * is not NULL, read a here document. In the latter case, eofmark is the * word which marks the end of the document and striptabs is true if @@ -1158,6 +1279,7 @@ readtoken1(int firstc, char const *initi struct tokenstate state_static[MAXNEST_static]; int maxnest = MAXNEST_static; struct tokenstate *state = state_static; + int sqiscstyle = 0; startlinno = plinno; quotef = 0; @@ -1188,6 +1310,12 @@ readtoken1(int firstc, char const *initi setprompt(0); c = pgetc(); goto loop; /* continue outer loop */ + case CSBACK: + if (sqiscstyle) { + out = readcstyleesc(out); + break; + } + /* FALLTHROUGH */ case CWORD: USTPUTC(c, out); break; @@ -1232,6 +1360,7 @@ readtoken1(int firstc, char const *initi case CSQUOTE: USTPUTC(CTLQUOTEMARK, out); state[level].syntax = SQSYNTAX; + sqiscstyle = 0; break; case CDQUOTE: USTPUTC(CTLQUOTEMARK, out); @@ -1450,11 +1579,7 @@ parsesub: { int c1; c = pgetc(); - if (c != '(' && c != '{' && (is_eof(c) || !is_name(c)) && - !is_special(c)) { - USTPUTC('$', out); - pungetc(); - } else if (c == '(') { /* $(command) or $((arith)) */ + if (c == '(') { /* $(command) or $((arith)) */ if (pgetc() == '(') { PARSEARITH(); } else { @@ -1465,7 +1590,7 @@ parsesub: { state[level].syntax == DQSYNTAX || state[level].syntax == ARISYNTAX); } - } else { + } else if (c == '{' || is_name(c) || is_special(c)) { USTPUTC(CTLVAR, out); typeloc = out - stackblock(); USTPUTC(VSNORMAL, out); @@ -1612,6 +1737,14 @@ varname: newvarnest++; } } + } else if (c == '\'' && state[level].syntax == BASESYNTAX) { + /* $'cstylequotes' */ + USTPUTC(CTLQUOTEMARK, out); + state[level].syntax = SQSYNTAX; + sqiscstyle = 1; + } else { + USTPUTC('$', out); + pungetc(); } goto parsesub_return; } Modified: head/bin/sh/sh.1 ============================================================================== --- head/bin/sh/sh.1 Thu May 5 19:49:27 2011 (r221512) +++ head/bin/sh/sh.1 Thu May 5 20:55:55 2011 (r221513) @@ -32,7 +32,7 @@ .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 .\" $FreeBSD$ .\" -.Dd March 20, 2011 +.Dd May 5, 2011 .Dt SH 1 .Os .Sh NAME @@ -396,13 +396,82 @@ Quoting is used to remove the special me or words to the shell, such as operators, whitespace, keywords, or alias names. .Pp -There are three types of quoting: matched single quotes, +There are four types of quoting: matched single quotes, +dollar-single quotes, matched double quotes, and backslash. .Bl -tag -width indent .It Single Quotes Enclosing characters in single quotes preserves the literal meaning of all the characters (except single quotes, making it impossible to put single-quotes in a single-quoted string). +.It Dollar-Single Quotes +Enclosing characters between +.Li $' +and +.Li ' +preserves the literal meaning of all characters +except backslashes and single quotes. +A backslash introduces a C-style escape sequence: +.Bl -tag -width xUnnnnnnnn +.It \ea +Alert (ring the terminal bell) +.It \eb +Backspace +.It \ec Ns Ar c +The control character denoted by +.Li ^ Ns Ar c +in +.Xr stty 1 . +If +.Ar c +is a backslash, it must be doubled. +.It \ee +The ESC character +.Tn ( ASCII +0x1b) +.It \ef +Formfeed +.It \en +Newline +.It \er +Carriage return +.It \et +Horizontal tab +.It \ev +Vertical tab +.It \e\e +Literal backslash +.It \e\&' +Literal single-quote +.It \e\&" +Literal double-quote +.It \e Ns Ar nnn +The byte whose octal value is +.Ar nnn +(one to three digits) +.It \ex Ns Ar nn +The byte whose hexadecimal value is +.Ar nn +(one or more digits only the last two of which are used) +.It \eu Ns Ar nnnn +The Unicode code point +.Ar nnnn +(four hexadecimal digits) +.It \eU Ns Ar nnnnnnnn +The Unicode code point +.Ar nnnnnnnn +(eight hexadecimal digits) +.El +.Pp +The sequences for Unicode code points currently only provide useful results +for values below 128. +They reject code point 0 and UTF-16 surrogates. +.Pp +If an escape sequence would produce a byte with value 0, +that byte and the rest of the string until the matching single-quote +are ignored. +.Pp +Any other string starting with a backslash is an error. .It Double Quotes Enclosing characters within double quotes preserves the literal meaning of all characters except dollar sign Added: head/tools/regression/bin/sh/parser/dollar-quote1.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote1.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,12 @@ +# $FreeBSD$ + +set -e + +[ $'hi' = hi ] +[ $'hi +there' = 'hi +there' ] +[ $'\"\'\\\a\b\f\t\v' = "\"'\\$(printf "\a\b\f\t\v")" ] +[ $'hi\nthere' = 'hi +there' ] +[ $'a\rb' = "$(printf "a\rb")" ] Added: head/tools/regression/bin/sh/parser/dollar-quote2.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote2.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# This depends on the ASCII character set. + +[ $'\e' = "$(printf "\033")" ] Added: head/tools/regression/bin/sh/parser/dollar-quote3.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote3.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,22 @@ +# $FreeBSD$ + +unset LC_ALL +LC_CTYPE=en_US.ISO8859-1 +export LC_CTYPE + +e= +for i in 0 1 2 3; do + for j in 0 1 2 3 4 5 6 7; do + for k in 0 1 2 3 4 5 6 7; do + case $i$j$k in + 000) continue ;; + esac + e="$e\\$i$j$k" + done + done +done +ee=`printf "$e"` +[ "${#ee}" = 255 ] || echo length bad + +# Start a new shell so the locale change is picked up. +[ "$(${SH} -c "printf %s \$'$e'")" = "$ee" ] Added: head/tools/regression/bin/sh/parser/dollar-quote4.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote4.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,19 @@ +# $FreeBSD$ + +unset LC_ALL +LC_CTYPE=en_US.ISO8859-1 +export LC_CTYPE + +e= +for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do + for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do + case $i$j in + 00) continue ;; + esac + e="$e\x$i$j" + done +done + +# Start a new shell so the locale change is picked up. +ee="$(${SH} -c "printf %s \$'$e'")" +[ "${#ee}" = 255 ] || echo length bad Added: head/tools/regression/bin/sh/parser/dollar-quote5.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote5.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,12 @@ +# $FreeBSD$ + +# This depends on the ASCII character set. + +set -e + +[ $'\ca\cb\cc\cd\ce\cf\cg\ch\ci\cj\ck\cl\cm\cn\co\cp\cq\cr\cs\ct\cu\cv\cw\cx\cy\cz' = $'\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032' ] +[ $'\cA\cB\cC\cD\cE\cF\cG\cH\cI\cJ\cK\cL\cM\cN\cO\cP\cQ\cR\cS\cT\cU\cV\cW\cX\cY\cZ' = $'\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032' ] +[ $'\c[' = $'\033' ] +[ $'\c]' = $'\035' ] +[ $'\c^' = $'\036' ] +[ $'\c_' = $'\037' ] Added: head/tools/regression/bin/sh/parser/dollar-quote6.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote6.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,5 @@ +# $FreeBSD$ + +# This depends on the ASCII character set. + +[ $'\c\\' = $'\034' ] Added: head/tools/regression/bin/sh/parser/dollar-quote7.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote7.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,6 @@ +# $FreeBSD$ + +set -e + +[ $'\u0024\u0040\u0060' = '$@`' ] +[ $'\U00000024\U00000040\U00000060' = '$@`' ] Added: head/tools/regression/bin/sh/parser/dollar-quote8.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote8.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,11 @@ +# $FreeBSD$ + +[ $'hello\0' = hello ] +[ $'hello\0world' = hello ] +[ $'hello\0'$'world' = helloworld ] +[ $'hello\000' = hello ] +[ $'hello\000world' = hello ] +[ $'hello\000'$'world' = helloworld ] +[ $'hello\x00' = hello ] +[ $'hello\x00world' = hello ] +[ $'hello\x00'$'world' = helloworld ] Added: head/tools/regression/bin/sh/parser/dollar-quote9.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/parser/dollar-quote9.0 Thu May 5 20:55:55 2011 (r221513) @@ -0,0 +1,8 @@ +# $FreeBSD$ + +# POSIX and C99 say D800-DFFF are undefined in a universal character name. +# We reject this but many other shells expand to something that looks like +# CESU-8. + +v=$( (eval ": \$'\uD800'") 2>&1 >/dev/null) +[ $? -ne 0 ] && [ -n "$v" ] From owner-svn-src-head@FreeBSD.ORG Thu May 5 23:00:50 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBE63106566B; Thu, 5 May 2011 23:00:50 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 25E6A8FC16; Thu, 5 May 2011 23:00:49 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEANoqw02DaFvO/2dsb2JhbACEUKJliHKrXpEngSqDXIEBBI9KhxqHUQ X-IronPort-AV: E=Sophos;i="4.64,323,1301889600"; d="scan'208";a="119782146" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 05 May 2011 19:00:49 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 1B95EB3F5A; Thu, 5 May 2011 19:00:49 -0400 (EDT) Date: Thu, 5 May 2011 19:00:49 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <134917667.1082867.1304636449048.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <86r58dqett.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.203] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 23:00:50 -0000 > Rick Macklem writes: > > Well, another way it could be handled would be to put the sysctls > > and > > the global variables they manipulate in a module shared by both > > clients, > > like sys/nfs/nfs_lock.c (module "nfslock"). Then the same sysctl > > would > > affect both clients. (I hesitate to create "yet another" module just > > to share the sysctls, but since "nfslock" is used by both clients, > > it > > should work ok, I think.) > > I don't understand why you would want to do that. Can't you just > change > "oldnfs" back to "nfs" in the old stack? > I'm not sure what you are saying. W.r.t. the SYSCTL() naming, the old NFS client is currently using vfs.nfs.xxx and the new NFS client is using vfs.newnfs.xxx. If you are referring to the fstype names, then switching "oldnfs" back to "nfs" means the new one has to change to something other than "nfs", like "newnfs". The whole idea of changing "newnfs"->"nfs" was to make it the default and get it more widely tested/used. (Presumably, if the new NFS works well, it would eventually become the only one, but I don't see that happening until FreeBSD10 at the earliest.) The problem is w.r.t. the SYSCTL() naming. I could make vfs.newnfs.xxx use vfs.nfs.xxx and vfs.nfs.xxx->vfs.oldnfs.xxx quite easily. The problem would be that people couldn't as easily use "oldnfs" instead of "nfs". (At least for cases where setting sysctls matter.) What I was proposing is have the two clients share the vfs.nfs.xxx name space, since most of the SYSCTL()s use the same name and do the same thing. For example, now there is: vfs.nfs.bufpackets: 4 vfs.newnfs.bufpackets: 4 and /etc/rc.d/nfsclient wants to fiddle with vfs.nfs.bufpackets. I was proposing that the two clients share vfs.nfs.bufpackets Make sense now? (I understood that you felt having both vfs.nfs.xxx and vfs.newnfs.xxx made maintaining the scripts awkward.) rick From owner-svn-src-head@FreeBSD.ORG Thu May 5 23:09:18 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12099106566C; Thu, 5 May 2011 23:09:18 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 019B58FC14; Thu, 5 May 2011 23:09:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p45N9Hmm022485; Thu, 5 May 2011 23:09:17 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p45N9HI6022483; Thu, 5 May 2011 23:09:17 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201105052309.p45N9HI6022483@svn.freebsd.org> From: Navdeep Parhar Date: Thu, 5 May 2011 23:09:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221516 - head/sys/dev/cxgbe X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 23:09:18 -0000 Author: np Date: Thu May 5 23:09:17 2011 New Revision: 221516 URL: http://svn.freebsd.org/changeset/base/221516 Log: Bump up the number of egress queues that the driver is allowed to use. MFC after: 3 days Modified: head/sys/dev/cxgbe/t4_main.c Modified: head/sys/dev/cxgbe/t4_main.c ============================================================================== --- head/sys/dev/cxgbe/t4_main.c Thu May 5 22:07:02 2011 (r221515) +++ head/sys/dev/cxgbe/t4_main.c Thu May 5 23:09:17 2011 (r221516) @@ -415,7 +415,7 @@ t4_attach(device_t dev) /* These are total (sum of all ports) limits for a bus driver */ rc = -t4_cfg_pfvf(sc, sc->mbox, sc->pf, 0, - 64, /* max # of egress queues */ + 128, /* max # of egress queues */ 64, /* max # of egress Ethernet or control queues */ 64, /* max # of ingress queues with fl/interrupt */ 0, /* max # of ingress queues without interrupt */ From owner-svn-src-head@FreeBSD.ORG Thu May 5 23:20:17 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 633C9106564A; Thu, 5 May 2011 23:20:17 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 81C7D8FC08; Thu, 5 May 2011 23:20:16 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAJYvw02DaFvO/2dsb2JhbACEUKJltE6RJYEqhF0Ej0qHGodR X-IronPort-AV: E=Sophos;i="4.64,323,1301889600"; d="scan'208";a="121653977" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-jnhn-pri.mail.uoguelph.ca with ESMTP; 05 May 2011 19:06:46 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id B9E26793A8; Thu, 5 May 2011 19:06:46 -0400 (EDT) Date: Thu, 5 May 2011 19:06:46 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <1076836182.1082988.1304636806753.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <86r58dqett.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.202] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 May 2011 23:20:17 -0000 > Rick Macklem writes: > > Well, another way it could be handled would be to put the sysctls > > and > > the global variables they manipulate in a module shared by both > > clients, > > like sys/nfs/nfs_lock.c (module "nfslock"). Then the same sysctl > > would > > affect both clients. (I hesitate to create "yet another" module just > > to share the sysctls, but since "nfslock" is used by both clients, > > it > > should work ok, I think.) > > I don't understand why you would want to do that. Can't you just > change > "oldnfs" back to "nfs" in the old stack? > > Hmm, it occurred to me that there is currently no way to tell the > kernel > that two drivers conflict with eachother. Perhaps I should take a shot > at implementing a DRIVER_CONFLICT macro to mirror DRIVER_DEPEND. > Also, except for the SYSCTL() naming issue they don't comflict. At the moment it is perfectly ok to use both for mounts concurrently. For example, you could have the following 2 lines in your /etc/fstab: nfs-server:/sub1 /mnt nfs rw 0 0 nfs-server:/sub2 /mnt2 oldnfs rw 0 0 I don't know why you would actually choose to do this, unless you found that the old NFS client did something that worked better for "/sub2" for your purposes, but it will work fine. rick ps: The issue you pointed out in the first post is just a line in /etc/rc.d/mountcritremote that needs to be fixed. It uses a module name of "nfs" and "nfsclient" when the new NFS is "nfs" and "nfscl" (the old one is "oldnfs" and "nfsclient"). That's easy to fix. I'm just waiting for a review. From owner-svn-src-head@FreeBSD.ORG Fri May 6 01:06:22 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F4AD1065674; Fri, 6 May 2011 01:06:22 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id D40E98FC0C; Fri, 6 May 2011 01:06:21 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAHNIw02DaFvO/2dsb2JhbACEUaJltGWRHoEqhF0Ej0qHGodR X-IronPort-AV: E=Sophos;i="4.64,323,1301889600"; d="scan'208";a="121714173" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-jnhn-pri.mail.uoguelph.ca with ESMTP; 05 May 2011 20:51:49 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id DAA85793A9; Thu, 5 May 2011 20:51:49 -0400 (EDT) Date: Thu, 5 May 2011 20:51:49 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <1714751436.1086037.1304643109772.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <86r58dsi0m.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [172.17.91.201] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 01:06:22 -0000 > Rick Macklem writes: > > "Dag-Erling Sm=C3=B8rgrav" writes: > > > Ideally, both the old and the new NFS stack would use the same > > > fstypes and sysctl names, but I don't know if there's any way we > > > can > > > prevent someone from compiling both into the kernel at the same > > > time, or loading both modules. > > If the scripts in /etc/rc.d are fixed to use the correct sysctl > > naming, > > do you think it matters which one is "vfs.nfs."? >=20 > Yes. There is a whole world outside the base system: munin, webmin, > nagios etc. Are you going to change all of them as well? >=20 Btw, the simpler patch is to just change the SYSCTL() naming conventions, but there is no easy way (at least with recompiling the kernel + modules) to switch it back so the old client uses "vfs.nfs.xxx". In other words: vfs.nfs.xxx - would be the variables on the new client vfs.oldnfs.xxx - would be the same variables for the old client Then the default/new client would work, but switching back to the old would be involved. With the SYSCTL() name space shared, the switch back and forth would be simply which fstype was used for the mounts and they would both see the same sysctl changes. rick ps: I have the shared patch running here now. It is straightforward, but fairly big. From owner-svn-src-head@FreeBSD.ORG Fri May 6 01:29:14 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7E40106566B; Fri, 6 May 2011 01:29:14 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D591C8FC12; Fri, 6 May 2011 01:29:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p461TEf9026713; Fri, 6 May 2011 01:29:14 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p461TEZD026711; Fri, 6 May 2011 01:29:14 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105060129.p461TEZD026711@svn.freebsd.org> From: Rick Macklem Date: Fri, 6 May 2011 01:29:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221517 - head/sys/fs/nfsserver X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 01:29:16 -0000 Author: rmacklem Date: Fri May 6 01:29:14 2011 New Revision: 221517 URL: http://svn.freebsd.org/changeset/base/221517 Log: Change the new NFS server so that it returns 0 when the f_bavail or f_ffree fields of "struct statfs" are negative, since the values that go on the wire are unsigned and will appear to be very large positive values otherwise. This makes the handling of a negative f_bavail compatible with the old/regular NFS server. MFC after: 2 weeks Modified: head/sys/fs/nfsserver/nfs_nfsdport.c Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Thu May 5 23:09:17 2011 (r221516) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Fri May 6 01:29:14 2011 (r221517) @@ -1280,8 +1280,23 @@ nfsvno_fsync(struct vnode *vp, u_int64_t int nfsvno_statfs(struct vnode *vp, struct statfs *sf) { + int error; - return (VFS_STATFS(vp->v_mount, sf)); + error = VFS_STATFS(vp->v_mount, sf); + if (error == 0) { + /* + * Since NFS handles these values as unsigned on the + * wire, there is no way to represent negative values, + * so set them to 0. Without this, they will appear + * to be very large positive values for clients like + * Solaris10. + */ + if (sf->f_bavail < 0) + sf->f_bavail = 0; + if (sf->f_ffree < 0) + sf->f_ffree = 0; + } + return (error); } /* From owner-svn-src-head@FreeBSD.ORG Fri May 6 01:31:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 82C621065674; Fri, 6 May 2011 01:31:02 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 364A88FC14; Fri, 6 May 2011 01:31:02 +0000 (UTC) Received: from sa-nc-mfg-210.static.jnpr.net (natint3.juniper.net [66.129.224.36]) (authenticated bits=0) by mail.xcllnt.net (8.14.4/8.14.4) with ESMTP id p45LJUnv053982 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 5 May 2011 14:19:35 -0700 (PDT) (envelope-from marcel@xcllnt.net) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Marcel Moolenaar In-Reply-To: <201105051416.p45EGfcd003037@svn.freebsd.org> Date: Thu, 5 May 2011 14:18:26 -0700 Content-Transfer-Encoding: 7bit Message-Id: <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> References: <201105051416.p45EGfcd003037@svn.freebsd.org> To: Nathan Whitehorn X-Mailer: Apple Mail (2.1084) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 01:31:02 -0000 On May 5, 2011, at 7:16 AM, Nathan Whitehorn wrote: > @@ -84,15 +63,13 @@ if [ $bootable = yes ]; then > mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi > umount $MNT > mdconfig -d -u $md > - BOOTOPTS="-b $EFIPART -no-emul-boot" > + BOOTOPTS="-b bootimage=i386;$EFIPART -o no-emul-boot" > else > BOOTOPTS="" > fi Thanks! Can you explain what this particular change does or why it's done? -- Marcel Moolenaar marcel@xcllnt.net From owner-svn-src-head@FreeBSD.ORG Fri May 6 02:45:03 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2D239106564A; Fri, 6 May 2011 02:45:03 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F096E8FC08; Fri, 6 May 2011 02:45:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p462j2BX028998; Fri, 6 May 2011 02:45:02 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p462j2mv028994; Fri, 6 May 2011 02:45:02 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105060245.p462j2mv028994@svn.freebsd.org> From: Adrian Chadd Date: Fri, 6 May 2011 02:45:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221518 - head/sys/mips/atheros X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 02:45:03 -0000 Author: adrian Date: Fri May 6 02:45:02 2011 New Revision: 221518 URL: http://svn.freebsd.org/changeset/base/221518 Log: Fix GPIO_MAXPINS calculation for the AR71xx, AR724x, AR913x SoC. Submitted by: Luiz Otavio O Souza Modified: head/sys/mips/atheros/ar71xx_gpio.c head/sys/mips/atheros/ar71xx_gpiovar.h head/sys/mips/atheros/ar724xreg.h head/sys/mips/atheros/ar91xxreg.h Modified: head/sys/mips/atheros/ar71xx_gpio.c ============================================================================== --- head/sys/mips/atheros/ar71xx_gpio.c Fri May 6 01:29:14 2011 (r221517) +++ head/sys/mips/atheros/ar71xx_gpio.c Fri May 6 02:45:02 2011 (r221518) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include "gpio_if.h" @@ -144,7 +145,19 @@ static int ar71xx_gpio_pin_max(device_t dev, int *maxpin) { - *maxpin = AR71XX_GPIO_PINS - 1; + switch (ar71xx_soc) { + case AR71XX_SOC_AR9130: + case AR71XX_SOC_AR9132: + *maxpin = AR91XX_GPIO_PINS - 1; + break; + case AR71XX_SOC_AR7240: + case AR71XX_SOC_AR7241: + case AR71XX_SOC_AR7242: + *maxpin = AR724X_GPIO_PINS - 1; + break; + default: + *maxpin = AR71XX_GPIO_PINS - 1; + } return (0); } Modified: head/sys/mips/atheros/ar71xx_gpiovar.h ============================================================================== --- head/sys/mips/atheros/ar71xx_gpiovar.h Fri May 6 01:29:14 2011 (r221517) +++ head/sys/mips/atheros/ar71xx_gpiovar.h Fri May 6 02:45:02 2011 (r221518) @@ -52,6 +52,8 @@ GPIO_WRITE(sc, reg, GPIO_READ(sc, (reg)) & ~(bits)) #define AR71XX_GPIO_PINS 12 +#define AR724X_GPIO_PINS 18 +#define AR91XX_GPIO_PINS 22 struct ar71xx_gpio_softc { device_t dev; Modified: head/sys/mips/atheros/ar724xreg.h ============================================================================== --- head/sys/mips/atheros/ar724xreg.h Fri May 6 01:29:14 2011 (r221517) +++ head/sys/mips/atheros/ar724xreg.h Fri May 6 02:45:02 2011 (r221518) @@ -105,6 +105,4 @@ #define AR724X_GPIO_FUNC_UART_EN (1 >> 1) #define AR724X_GPIO_FUNC_JTAG_DISABLE (1 >> 0) -#define AR724X_GPIO_COUNT 18 - #endif Modified: head/sys/mips/atheros/ar91xxreg.h ============================================================================== --- head/sys/mips/atheros/ar91xxreg.h Fri May 6 01:29:14 2011 (r221517) +++ head/sys/mips/atheros/ar91xxreg.h Fri May 6 02:45:02 2011 (r221518) @@ -81,6 +81,4 @@ #define AR91XX_GPIO_FUNC_UART_EN (1 << 8) #define AR91XX_GPIO_FUNC_USB_CLK_EN (1 << 4) -#define AR91XX_GPIO_COUNT 22 - #endif From owner-svn-src-head@FreeBSD.ORG Fri May 6 03:26:25 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C039106566B; Fri, 6 May 2011 03:26:25 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0A5BA8FC13; Fri, 6 May 2011 03:26:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p463QO4P030489; Fri, 6 May 2011 03:26:24 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p463QOqI030485; Fri, 6 May 2011 03:26:24 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105060326.p463QOqI030485@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 6 May 2011 03:26:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221519 - in head/sys: dev/bm powerpc/powermac X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 03:26:25 -0000 Author: nwhitehorn Date: Fri May 6 03:26:24 2011 New Revision: 221519 URL: http://svn.freebsd.org/changeset/base/221519 Log: Do not use Open Firmware to open the device and instead program its start on our own. This prevents hangs at boot when using a bm(4) NIC where the cable is not plugged in at boot time. Obtained from: NetBSD MFC after: 1 week Modified: head/sys/dev/bm/if_bm.c head/sys/powerpc/powermac/macio.c head/sys/powerpc/powermac/maciovar.h Modified: head/sys/dev/bm/if_bm.c ============================================================================== --- head/sys/dev/bm/if_bm.c Fri May 6 02:45:02 2011 (r221518) +++ head/sys/dev/bm/if_bm.c Fri May 6 03:26:24 2011 (r221519) @@ -558,6 +558,7 @@ bm_attach(device_t dev) } /* alloc interrupt */ + bm_disable_interrupts(sc); sc->sc_txdmairqid = BM_TXDMA_INTERRUPT; sc->sc_txdmairq = bus_alloc_resource_any(dev, SYS_RES_IRQ, @@ -591,9 +592,6 @@ bm_attach(device_t dev) eaddr = sc->sc_enaddr; OF_getprop(node, "local-mac-address", eaddr, ETHER_ADDR_LEN); - /* reset the adapter */ - bm_chip_setup(sc); - /* * Setup MII * On Apple BMAC controllers, we end up in a weird state of @@ -608,6 +606,9 @@ bm_attach(device_t dev) return (error); } + /* reset the adapter */ + bm_chip_setup(sc); + sc->sc_mii = device_get_softc(sc->sc_miibus); if_initname(ifp, device_get_name(sc->sc_dev), @@ -1129,31 +1130,26 @@ bm_chip_setup(struct bm_softc *sc) { uint16_t reg; uint16_t *eaddr_sect; - char path[128]; - ihandle_t bmac_ih; + struct mii_data *mii; + struct mii_softc *miisc; eaddr_sect = (uint16_t *)(sc->sc_enaddr); + dbdma_stop(sc->sc_txdma); + dbdma_stop(sc->sc_rxdma); - /* - * Enable BMAC cell by opening and closing its OF node. This enables - * the cell in macio as a side effect. We should probably directly - * twiddle the FCR bits, but we lack a good interface for this at the - * present time. - */ - - OF_package_to_path(ofw_bus_get_node(sc->sc_dev), path, sizeof(path)); - bmac_ih = OF_open(path); - if (bmac_ih == -1) { - device_printf(sc->sc_dev, - "Enabling BMAC cell failed! Hoping it's already active.\n"); - } else { - OF_close(bmac_ih); + /* Reset MII */ + mii = device_get_softc(sc->sc_miibus); + LIST_FOREACH(miisc, &mii->mii_phys, mii_list) { + PHY_RESET(miisc); + PHY_WRITE(miisc, MII_BMCR, PHY_READ(miisc, MII_BMCR) & + ~BMCR_ISO); } /* Reset chip */ CSR_WRITE_2(sc, BM_RX_RESET, 0x0000); CSR_WRITE_2(sc, BM_TX_RESET, 0x0001); do { + DELAY(10); reg = CSR_READ_2(sc, BM_TX_RESET); } while (reg & 0x0001); Modified: head/sys/powerpc/powermac/macio.c ============================================================================== --- head/sys/powerpc/powermac/macio.c Fri May 6 02:45:02 2011 (r221518) +++ head/sys/powerpc/powermac/macio.c Fri May 6 03:26:24 2011 (r221519) @@ -65,6 +65,10 @@ struct macio_softc { vm_offset_t sc_base; vm_offset_t sc_size; struct rman sc_mem_rman; + + /* FCR registers */ + int sc_memrid; + struct resource *sc_memr; }; static MALLOC_DEFINE(M_MACIO, "macio", "macio device information"); @@ -296,6 +300,10 @@ macio_attach(device_t dev) sc->sc_base = reg[2]; sc->sc_size = MACIO_REG_SIZE; + sc->sc_memrid = PCIR_BAR(0); + sc->sc_memr = bus_alloc_resource_any(dev, SYS_RES_MEMORY, + &sc->sc_memrid, RF_ACTIVE); + sc->sc_mem_rman.rm_type = RMAN_ARRAY; sc->sc_mem_rman.rm_descr = "MacIO Device Memory"; error = rman_init(&sc->sc_mem_rman); @@ -347,6 +355,29 @@ macio_attach(device_t dev) continue; } device_set_ivars(cdev, dinfo); + + /* Set FCRs to enable some devices */ + if (sc->sc_memr == NULL) + continue; + + if (strcmp(ofw_bus_get_name(cdev), "bmac") == 0 || + strcmp(ofw_bus_get_compat(cdev), "bmac+") == 0) { + uint32_t fcr; + + fcr = bus_read_4(sc->sc_memr, HEATHROW_FCR); + + fcr |= FCR_ENET_ENABLE & ~FCR_ENET_RESET; + bus_write_4(sc->sc_memr, HEATHROW_FCR, fcr); + DELAY(50000); + fcr |= FCR_ENET_RESET; + bus_write_4(sc->sc_memr, HEATHROW_FCR, fcr); + DELAY(50000); + fcr &= ~FCR_ENET_RESET; + bus_write_4(sc->sc_memr, HEATHROW_FCR, fcr); + DELAY(50000); + + bus_write_4(sc->sc_memr, HEATHROW_FCR, fcr); + } } return (bus_generic_attach(dev)); Modified: head/sys/powerpc/powermac/maciovar.h ============================================================================== --- head/sys/powerpc/powermac/maciovar.h Fri May 6 02:45:02 2011 (r221518) +++ head/sys/powerpc/powermac/maciovar.h Fri May 6 03:26:24 2011 (r221519) @@ -38,6 +38,16 @@ #define MACIO_REG_SIZE 0x7ffff /* + * Feature Control Registers (FCR) + */ +#define HEATHROW_FCR 0x38 +#define KEYLARGO_FCR0 0x38 +#define KEYLARGO_FCR1 0x3c + +#define FCR_ENET_ENABLE 0x60000000 +#define FCR_ENET_RESET 0x80000000 + +/* * Format of a macio reg property entry. */ struct macio_reg { From owner-svn-src-head@FreeBSD.ORG Fri May 6 03:29:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C108106566C; Fri, 6 May 2011 03:29:54 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from adsum.doit.wisc.edu (adsum.doit.wisc.edu [144.92.197.210]) by mx1.freebsd.org (Postfix) with ESMTP id F16EE8FC13; Fri, 6 May 2011 03:29:53 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth1.wiscmail.wisc.edu by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0LKR00G048DTRX00@smtpauth1.wiscmail.wisc.edu>; Thu, 05 May 2011 22:29:53 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.65.155]) by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0LKR009328DOMI10@smtpauth1.wiscmail.wisc.edu>; Thu, 05 May 2011 22:29:49 -0500 (CDT) Date: Thu, 05 May 2011 22:29:47 -0500 From: Nathan Whitehorn In-reply-to: <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> To: Marcel Moolenaar Message-id: <4DC36B2B.4010509@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.65.155 X-Spam-PmxInfo: Server=avs-13, Version=5.6.0.2009776, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.5.6.32122, SenderIP=76.210.65.155 References: <201105051416.p45EGfcd003037@svn.freebsd.org> <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.17) Gecko/20110429 Thunderbird/3.1.10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 03:29:54 -0000 On 05/05/11 16:18, Marcel Moolenaar wrote: > On May 5, 2011, at 7:16 AM, Nathan Whitehorn wrote: > >> @@ -84,15 +63,13 @@ if [ $bootable = yes ]; then >> mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi >> umount $MNT >> mdconfig -d -u $md >> - BOOTOPTS="-b $EFIPART -no-emul-boot" >> + BOOTOPTS="-b bootimage=i386;$EFIPART -o no-emul-boot" >> else >> BOOTOPTS="" >> fi > Thanks! > > Can you explain what this particular change does or why it's done? > I'm cleaning up the release-building code, and am switching them from mkisofs to makefs, which provides the same functionality. This started with some irritation with the cdrtools port and a bug in the HFS hybrid generation that was breaking PPC release CD generation. Switching these to depend on makefs in general speeds the release-building process and removes the number of dependencies involved, since makefs is built as part of base. -Nathan From owner-svn-src-head@FreeBSD.ORG Fri May 6 05:21:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88A71106564A; Fri, 6 May 2011 05:21:59 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 397658FC0C; Fri, 6 May 2011 05:21:59 +0000 (UTC) Received: from dhcp-192-168-2-13.wifi.xcllnt.net (atm.xcllnt.net [70.36.220.6]) (authenticated bits=0) by mail.xcllnt.net (8.14.4/8.14.4) with ESMTP id p465Lrk2074537 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Thu, 5 May 2011 22:21:58 -0700 (PDT) (envelope-from marcel@xcllnt.net) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Marcel Moolenaar In-Reply-To: <4DC36B2B.4010509@freebsd.org> Date: Thu, 5 May 2011 22:21:53 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201105051416.p45EGfcd003037@svn.freebsd.org> <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> <4DC36B2B.4010509@freebsd.org> To: Nathan Whitehorn X-Mailer: Apple Mail (2.1084) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 05:21:59 -0000 On May 5, 2011, at 8:29 PM, Nathan Whitehorn wrote: > On 05/05/11 16:18, Marcel Moolenaar wrote: >> On May 5, 2011, at 7:16 AM, Nathan Whitehorn wrote: >>=20 >>> @@ -84,15 +63,13 @@ if [ $bootable =3D yes ]; then >>> mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi >>> umount $MNT >>> mdconfig -d -u $md >>> - BOOTOPTS=3D"-b $EFIPART -no-emul-boot" >>> + BOOTOPTS=3D"-b bootimage=3Di386;$EFIPART -o no-emul-boot" >>> else >>> BOOTOPTS=3D"" >>> fi >> Thanks! >>=20 >> Can you explain what this particular change does or why it's done? >>=20 >=20 > I'm cleaning up the release-building code, and am switching them from = mkisofs to makefs, which provides the same functionality. This started = with some irritation with the cdrtools port and a bug in the HFS hybrid = generation that was breaking PPC release CD generation. Switching these = to depend on makefs in general speeds the release-building process and = removes the number of dependencies involved, since makefs is built as = part of base. Actually, I was just interested in the 'bootimage=3Di386' part of your change. I totally get why you're doing it :-) Sorry for not being clear... --=20 Marcel Moolenaar marcel@xcllnt.net From owner-svn-src-head@FreeBSD.ORG Fri May 6 07:13:34 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8FB33106566B; Fri, 6 May 2011 07:13:34 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 80AFA8FC0A; Fri, 6 May 2011 07:13:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p467DYjk037299; Fri, 6 May 2011 07:13:34 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p467DYmh037296; Fri, 6 May 2011 07:13:34 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201105060713.p467DYmh037296@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Fri, 6 May 2011 07:13:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221521 - head/sys/netinet/ipfw X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 07:13:34 -0000 Author: ae Date: Fri May 6 07:13:34 2011 New Revision: 221521 URL: http://svn.freebsd.org/changeset/base/221521 Log: Convert delay parameter back to ms when reporting to user. PR: 156838 MFC after: 1 week Modified: head/sys/netinet/ipfw/ip_dn_glue.c head/sys/netinet/ipfw/ip_dummynet.c Modified: head/sys/netinet/ipfw/ip_dn_glue.c ============================================================================== --- head/sys/netinet/ipfw/ip_dn_glue.c Fri May 6 03:44:49 2011 (r221520) +++ head/sys/netinet/ipfw/ip_dn_glue.c Fri May 6 07:13:34 2011 (r221521) @@ -624,7 +624,7 @@ dn_c_copy_pipe(struct dn_schk *s, struct /* These 4 field are the same in pipe7 and pipe8 */ pipe7->next.sle_next = (struct dn_pipe7 *)DN_IS_PIPE; pipe7->bandwidth = l->bandwidth; - pipe7->delay = l->delay; + pipe7->delay = l->delay * 1000 / hz; pipe7->pipe_nr = l->link_nr - DN_MAX_ID; if (!is7) { Modified: head/sys/netinet/ipfw/ip_dummynet.c ============================================================================== --- head/sys/netinet/ipfw/ip_dummynet.c Fri May 6 03:44:49 2011 (r221520) +++ head/sys/netinet/ipfw/ip_dummynet.c Fri May 6 07:13:34 2011 (r221521) @@ -808,6 +808,7 @@ copy_obj(char **start, char *end, void * /* Adjust burst parameter for link */ struct dn_link *l = (struct dn_link *)*start; l->burst = div64(l->burst, 8 * hz); + l->delay = l->delay * 1000 / hz; } else if (o->type == DN_SCH) { /* Set id->id to the number of instances */ struct dn_schk *s = _o; From owner-svn-src-head@FreeBSD.ORG Fri May 6 07:14:29 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 09ABD106566B; Fri, 6 May 2011 07:14:29 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.garage.freebsd.pl (60.wheelsystems.com [83.12.187.60]) by mx1.freebsd.org (Postfix) with ESMTP id A24B18FC0A; Fri, 6 May 2011 07:14:28 +0000 (UTC) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id 82C5D45EA7; Fri, 6 May 2011 09:14:27 +0200 (CEST) Received: from localhost (public-gprs263555.centertel.pl [31.60.176.196]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id 222DC4569A; Fri, 6 May 2011 09:14:18 +0200 (CEST) Date: Fri, 6 May 2011 09:13:51 +0200 From: Pawel Jakub Dawidek To: Rick Macklem Message-ID: <20110506071351.GI14661@garage.freebsd.pl> References: <86r58dqett.fsf@ds4.des.no> <1076836182.1082988.1304636806753.JavaMail.root@erie.cs.uoguelph.ca> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="SdaPbLtAangIkrMZ" Content-Disposition: inline In-Reply-To: <1076836182.1082988.1304636806753.JavaMail.root@erie.cs.uoguelph.ca> X-OS: FreeBSD 9.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-2.6 required=4.5 tests=BAYES_00 autolearn=ham version=3.0.4 Cc: svn-src-head@freebsd.org, Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= , svn-src-all@freebsd.org, src-committers@freebsd.org, Rick Macklem Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 07:14:29 -0000 --SdaPbLtAangIkrMZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, May 05, 2011 at 07:06:46PM -0400, Rick Macklem wrote: > Also, except for the SYSCTL() naming issue they don't comflict. At the > moment it is perfectly ok to use both for mounts concurrently. > For example, you could have the following 2 lines in your /etc/fstab: >=20 > nfs-server:/sub1 /mnt nfs rw 0 0 > nfs-server:/sub2 /mnt2 oldnfs rw 0 0 >=20 > I don't know why you would actually choose to do this, unless you found > that the old NFS client did something that worked better for "/sub2" for > your purposes, but it will work fine. My personal opinion is that supporting such configuration is not worth the efforts and actually I'd prefer to use the same sysctl tree (vfs.nfs.*) and the same fstype (nfs) in both clients. User would decide which to use by loading one kernel module or the other. --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com --SdaPbLtAangIkrMZ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk3Dn64ACgkQForvXbEpPzQW8gCgzRaDGicX0X32upRCtNQuhYVQ kukAn29IEv/lQRdiRUuBz7F8RhMygg/F =hgqD -----END PGP SIGNATURE----- --SdaPbLtAangIkrMZ-- From owner-svn-src-head@FreeBSD.ORG Fri May 6 08:38:03 2011 Return-Path: Delivered-To: svn-src-head@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43295106564A; Fri, 6 May 2011 08:38:03 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail04.syd.optusnet.com.au (mail04.syd.optusnet.com.au [211.29.132.185]) by mx1.freebsd.org (Postfix) with ESMTP id BF7C08FC0A; Fri, 6 May 2011 08:38:02 +0000 (UTC) Received: from c122-106-155-58.carlnfd1.nsw.optusnet.com.au (c122-106-155-58.carlnfd1.nsw.optusnet.com.au [122.106.155.58]) by mail04.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id p468bwK5023533 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 6 May 2011 18:38:00 +1000 Date: Fri, 6 May 2011 18:37:58 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: "David E. O'Brien" In-Reply-To: <201105051445.p45EjPL2004080@svn.freebsd.org> Message-ID: <20110506180643.C1014@besplex.bde.org> References: <201105051445.p45EjPL2004080@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r221502 - in head: lib/libutil sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 08:38:03 -0000 On Thu, 5 May 2011, David E. O'Brien wrote: > Log: > Don't duplicate define the stdint types. This is a regression. The [_]stdint.h files were correctly structured before. The stdint types weren't duplicate-defined (modulo bugs), but their definitions were repeated as necessary inside ifdfs. Using an omnibus header like sys/_stdint.h gives uncontrollable namespace pollution. > head/sys/sys/_stdint.h > - copied, changed from r221139, head/sys/sys/stdint.h sys/_stdint.h was intentionally left out, since it can only be used to increase namespace pollution (unlike machine/_stdint.h, which exists to avoid namespace pollution). > Modified: head/lib/libutil/libutil.h > ============================================================================== > --- head/lib/libutil/libutil.h Thu May 5 14:43:35 2011 (r221501) > +++ head/lib/libutil/libutil.h Thu May 5 14:45:24 2011 (r221502) > @@ -41,22 +41,13 @@ > > #include > #include > +#include This also unsorts the includes. > #ifndef _GID_T_DECLARED > typedef __gid_t gid_t; > #define _GID_T_DECLARED > #endif > > -#ifndef _INT64_T_DECLARED > -typedef __int64_t int64_t; > -#define _INT64_T_DECLARED > -#endif > - > -#ifndef _UINT64_T_DECLARED > -typedef __uint64_t uint64_t; > -#define _UINT64_T_DECLARED > -#endif > - It used to define only 2 application types from . Hopefully precisely the ones that it used. Now it defines all the application types defined in , and it can't control pollution bloat if the latter is expanded. > #ifndef _PID_T_DECLARED > typedef __pid_t pid_t; > #define _PID_T_DECLARED > > Copied and modified: head/sys/sys/_stdint.h (from r221139, head/sys/sys/stdint.h) > ============================================================================== > --- head/sys/sys/stdint.h Wed Apr 27 20:42:30 2011 (r221139, copy source) > +++ head/sys/sys/_stdint.h Thu May 5 14:45:24 2011 (r221502) > @@ -1,4 +1,5 @@ > /*- > + * Copyright (c) 2011 David E. O'Brien > * Copyright (c) 2001 Mike Barcroft > * All rights reserved. > * > @@ -26,13 +27,8 @@ > * $FreeBSD$ > */ > > -#ifndef _SYS_STDINT_H_ > -#define _SYS_STDINT_H_ > - > -#include > -#include > - > -#include > +#ifndef _SYS__STDINT_H_ > +#define _SYS__STDINT_H_ > > #ifndef _INT8_T_DECLARED > typedef __int8_t int8_t; > @@ -74,33 +70,13 @@ typedef __uint64_t uint64_t; > #define _UINT64_T_DECLARED > #endif > > -typedef __int_least8_t int_least8_t; > -typedef __int_least16_t int_least16_t; > -typedef __int_least32_t int_least32_t; > -typedef __int_least64_t int_least64_t; > - > -typedef __uint_least8_t uint_least8_t; > -typedef __uint_least16_t uint_least16_t; > -typedef __uint_least32_t uint_least32_t; > -typedef __uint_least64_t uint_least64_t; > - > -typedef __int_fast8_t int_fast8_t; > -typedef __int_fast16_t int_fast16_t; > -typedef __int_fast32_t int_fast32_t; > -typedef __int_fast64_t int_fast64_t; > - > -typedef __uint_fast8_t uint_fast8_t; > -typedef __uint_fast16_t uint_fast16_t; > -typedef __uint_fast32_t uint_fast32_t; > -typedef __uint_fast64_t uint_fast64_t; > - > -typedef __intmax_t intmax_t; > -typedef __uintmax_t uintmax_t; > - > #ifndef _INTPTR_T_DECLARED > typedef __intptr_t intptr_t; > -typedef __uintptr_t uintptr_t; > #define _INTPTR_T_DECLARED > #endif > +#ifndef _UINTPTR_T_DECLARED > +typedef __uintptr_t uintptr_t; > +#define _UINTPTR_T_DECLARED > +#endif > > -#endif /* !_SYS_STDINT_H_ */ > +#endif /* !_SYS__STDINT_H_ */ > > Modified: head/sys/sys/stdint.h > ============================================================================== > --- head/sys/sys/stdint.h Thu May 5 14:43:35 2011 (r221501) > +++ head/sys/sys/stdint.h Thu May 5 14:45:24 2011 (r221502) > @@ -33,46 +33,7 @@ > #include > > #include > - > -#ifndef _INT8_T_DECLARED > -typedef __int8_t int8_t; > -#define _INT8_T_DECLARED > -#endif > - > -#ifndef _INT16_T_DECLARED > -typedef __int16_t int16_t; > -#define _INT16_T_DECLARED > -#endif > - > -#ifndef _INT32_T_DECLARED > -typedef __int32_t int32_t; > -#define _INT32_T_DECLARED > -#endif > - > -#ifndef _INT64_T_DECLARED > -typedef __int64_t int64_t; > -#define _INT64_T_DECLARED > -#endif > - > -#ifndef _UINT8_T_DECLARED > -typedef __uint8_t uint8_t; > -#define _UINT8_T_DECLARED > -#endif > - > -#ifndef _UINT16_T_DECLARED > -typedef __uint16_t uint16_t; > -#define _UINT16_T_DECLARED > -#endif > - > -#ifndef _UINT32_T_DECLARED > -typedef __uint32_t uint32_t; > -#define _UINT32_T_DECLARED > -#endif > - > -#ifndef _UINT64_T_DECLARED > -typedef __uint64_t uint64_t; > -#define _UINT64_T_DECLARED > -#endif > +#include > > typedef __int_least8_t int_least8_t; > typedef __int_least16_t int_least16_t; > @@ -94,13 +55,13 @@ typedef __uint_fast16_t uint_fast16_t; > typedef __uint_fast32_t uint_fast32_t; > typedef __uint_fast64_t uint_fast64_t; > > +#ifndef _INTMAX_T_DECLARED > typedef __intmax_t intmax_t; > +#define _INTMAX_T_DECLARED > +#endif > +#ifndef _UINTMAX_T_DECLARED > typedef __uintmax_t uintmax_t; > - > -#ifndef _INTPTR_T_DECLARED > -typedef __intptr_t intptr_t; > -typedef __uintptr_t uintptr_t; > -#define _INTPTR_T_DECLARED > +#define _UINTMAX_T_DECLARED > #endif > > #endif /* !_SYS_STDINT_H_ */ sys/stdint.h (= ) is obfuscated by putting its main definitions in sys/_types.h and sys/_stdint.h. Its bad enough that its basic definitions are not visible. Hmm, why does it use sys/_types.h? That only declares POSIX-related typedefs, but cannot declare any POSIX-related types. > Modified: head/sys/sys/types.h > ============================================================================== > --- head/sys/sys/types.h Thu May 5 14:43:35 2011 (r221501) > +++ head/sys/sys/types.h Thu May 5 14:45:24 2011 (r221502) > @@ -60,51 +60,7 @@ typedef unsigned int uint; /* Sys V com > /* > * XXX POSIX sized integrals that should appear only in . > */ As the XXX comment says, it is a bug for these to be declared here at all. Applications must include if they want to use the types in it. Some of the types that should be declared only in are declared here for historical reasons. The pollution has been here so long (together with other pollution), that it is now very hard to clean up. Probably the kernel was the main abuser of the pollution here. here. But now the kernel is even more polluted by default, so the pollution here has almost no effect on the kernel, since was polluted to include mainly for the convenience of casting things to intmax_t, etc., in printfs. > -#ifndef _INT8_T_DECLARED > -typedef __int8_t int8_t; > -#define _INT8_T_DECLARED > -#endif > - > -#ifndef _INT16_T_DECLARED > -typedef __int16_t int16_t; > -#define _INT16_T_DECLARED > -#endif > - > -#ifndef _INT32_T_DECLARED > -typedef __int32_t int32_t; > -#define _INT32_T_DECLARED > -#endif > - > -#ifndef _INT64_T_DECLARED > -typedef __int64_t int64_t; > -#define _INT64_T_DECLARED > -#endif > - > -#ifndef _UINT8_T_DECLARED > -typedef __uint8_t uint8_t; > -#define _UINT8_T_DECLARED > -#endif > - > -#ifndef _UINT16_T_DECLARED > -typedef __uint16_t uint16_t; > -#define _UINT16_T_DECLARED > -#endif > - > -#ifndef _UINT32_T_DECLARED > -typedef __uint32_t uint32_t; > -#define _UINT32_T_DECLARED > -#endif > - > -#ifndef _UINT64_T_DECLARED > -typedef __uint64_t uint64_t; > -#define _UINT64_T_DECLARED > -#endif > - > -#ifndef _INTPTR_T_DECLARED > -typedef __intptr_t intptr_t; > -typedef __uintptr_t uintptr_t; > -#define _INTPTR_T_DECLARED > -#endif > +#include Declaring the pollution in another header expands the bug and makes it harder to see how large it is. > > typedef __uint8_t u_int8_t; /* unsigned integrals (deprecated) */ > typedef __uint16_t u_int16_t; > Bruce From owner-svn-src-head@FreeBSD.ORG Fri May 6 11:54:27 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31E40106566B; Fri, 6 May 2011 11:54:27 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 1AAF68FC13; Fri, 6 May 2011 11:54:26 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArgEAH7gw02DaFvO/2dsb2JhbACEU5wPB4ZQiHGrBZERgSqDXoEBBI9YhxuHVQ X-IronPort-AV: E=Sophos;i="4.64,325,1301889600"; d="scan'208";a="119829241" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 06 May 2011 07:54:25 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 21C8EB3F28; Fri, 6 May 2011 07:54:25 -0400 (EDT) Date: Fri, 6 May 2011 07:54:25 -0400 (EDT) From: Rick Macklem To: Pawel Jakub Dawidek Message-ID: <1136495405.1095168.1304682865076.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <20110506071351.GI14661@garage.freebsd.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.202] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= , svn-src-all@freebsd.org, src-committers@freebsd.org, Rick Macklem Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 11:54:27 -0000 > On Thu, May 05, 2011 at 07:06:46PM -0400, Rick Macklem wrote: > > Also, except for the SYSCTL() naming issue they don't comflict. At > > the > > moment it is perfectly ok to use both for mounts concurrently. > > For example, you could have the following 2 lines in your > > /etc/fstab: > > > > nfs-server:/sub1 /mnt nfs rw 0 0 > > nfs-server:/sub2 /mnt2 oldnfs rw 0 0 > > > > I don't know why you would actually choose to do this, unless you > > found > > that the old NFS client did something that worked better for "/sub2" > > for > > your purposes, but it will work fine. > > My personal opinion is that supporting such configuration is not worth > the efforts and actually I'd prefer to use the same sysctl tree > (vfs.nfs.*) and the same fstype (nfs) in both clients. User would > decide > which to use by loading one kernel module or the other. > Well, first off, I think there are problems if you have two modules using the same "fstype" name. For example, the old mount syscall which is still used by amd, does an unconditional kern_kldload(.., "fstype",...); I'm not sure what happens when there are two modules both with the same "fstype"? Also, there could be a script in /etc/rc.d that runs before any mount is attempted (I don't know how to do this, but I assume rc@ will) and it could load one or the other based on an rc.conf variable, but what about doing a mount from single user? And I also don't know how to tell the system to allow kernels to be built with one of NFSCLIENT, NFSCL, but not both of them? (It would fail for both of them, since there would be 2 VFS_SET()s with the same "fstype", I think?) I also think there might be situations where running both concurrently could still be useful (that's the way things have been for 8.n). Here's a not too hypothetical example: - an 8.n system mounts 3 file servers server1 - a FreeBSD server with NFSv4 enabled server2 - Solaris8 server3 - some Linux distro and the /etc/fstab entries look like: server1:/vol1 /vol1 nfs rw,nfsv4 0 0 server2:/vol2 /vol2 nfs rw 0 0 server3:/vol3 /vol3 nfs rw 0 0 (The part w.r.t. server1 using NFSv4 isn't too hypothetical, since I recently got email from a guy who is using NFSv4 on 8.2 because it fixed a file locking problem for him. Related to openoffice, if I recall correctly.) The above is using both NFS clients concurrently, although whoever set it up might not realize that, since server1 using "newnfs" because that's needed for NFSv4. Ok, now this system is upgraded to 9.0 and then /vol3 goes wonky. If both clients can still run concurrently, /etc/fstab could be changed to: server1:/vol1 /vol1 nfs rw,nfsv4 0 0 server2:/vol2 /vol2 nfs rw 0 0 server3:/vol3 /vol3 oldnfs rw 0 0 to seee if the problem is caused by the switchover to the new NFS client. If the wonkyness goes away, I have some work to do. If not, I'm off the hook because something else is causing the wonkyness. If the two stacks can't run concurrently, the above change couldn't be done, because "nfsv4" isn't supported by the old NFS client. In summary, at this point, changing the vfs.nfs.xxx to be shared by the two clients is, to me, easier than trying to change things so the two clients use the same "fstype" and can't run concurrently and I also think there may be cases where running them concurrently in 9.0 would be useful. rick From owner-svn-src-head@FreeBSD.ORG Fri May 6 13:11:50 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9AB7D106564A; Fri, 6 May 2011 13:11:50 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8AF108FC0A; Fri, 6 May 2011 13:11:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46DBo9I049379; Fri, 6 May 2011 13:11:50 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46DBoTw049377; Fri, 6 May 2011 13:11:50 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201105061311.p46DBoTw049377@svn.freebsd.org> From: Alexander Motin Date: Fri, 6 May 2011 13:11:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221523 - head/sys/fs/nfs X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 13:11:50 -0000 Author: mav Date: Fri May 6 13:11:50 2011 New Revision: 221523 URL: http://svn.freebsd.org/changeset/base/221523 Log: Increase NFS_TICKINTVL value from 10 to 500. Now that callout does useful things only once per second, so other 99 calls per second were useless and just don't allow idle system to sleep properly. Reviewed by: rmacklem Modified: head/sys/fs/nfs/nfs.h Modified: head/sys/fs/nfs/nfs.h ============================================================================== --- head/sys/fs/nfs/nfs.h Fri May 6 12:49:32 2011 (r221522) +++ head/sys/fs/nfs/nfs.h Fri May 6 13:11:50 2011 (r221523) @@ -39,7 +39,7 @@ */ #define NFS_MAXIOVEC 34 -#define NFS_TICKINTVL 10 /* Desired time for a tick (msec) */ +#define NFS_TICKINTVL 500 /* Desired time for a tick (msec) */ #define NFS_HZ (hz / nfscl_ticks) /* Ticks/sec */ #define NFS_TIMEO (1 * NFS_HZ) /* Default timeout = 1 second */ #define NFS_MINTIMEO (1 * NFS_HZ) /* Min timeout to use */ From owner-svn-src-head@FreeBSD.ORG Fri May 6 13:48:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 53CAA1065677; Fri, 6 May 2011 13:48:54 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 429468FC18; Fri, 6 May 2011 13:48:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46DmsrU050620; Fri, 6 May 2011 13:48:54 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46DmsM7050613; Fri, 6 May 2011 13:48:54 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201105061348.p46DmsM7050613@svn.freebsd.org> From: John Baldwin Date: Fri, 6 May 2011 13:48:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221526 - in head/sys: ia64/isa isa powerpc/mpc85xx sparc64/isa x86/isa X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 13:48:54 -0000 Author: jhb Date: Fri May 6 13:48:53 2011 New Revision: 221526 URL: http://svn.freebsd.org/changeset/base/221526 Log: Retire isa_setup_intr() and isa_teardown_intr() and use the generic bus versions instead. They were never needed as bus_generic_intr() and bus_teardown_intr() had been changed to pass the original child device up in 42734, but the ISA bus was not converted to new-bus until 45720. Modified: head/sys/ia64/isa/isa.c head/sys/isa/isa_common.c head/sys/isa/isa_common.h head/sys/powerpc/mpc85xx/isa.c head/sys/sparc64/isa/isa.c head/sys/x86/isa/isa.c Modified: head/sys/ia64/isa/isa.c ============================================================================== --- head/sys/ia64/isa/isa.c Fri May 6 13:24:10 2011 (r221525) +++ head/sys/ia64/isa/isa.c Fri May 6 13:48:53 2011 (r221526) @@ -135,25 +135,3 @@ isa_release_resource(device_t bus, devic struct resource_list *rl = &idev->id_resources; return resource_list_release(rl, bus, child, type, rid, r); } - -/* - * We can't use the bus_generic_* versions of these methods because those - * methods always pass the bus param as the requesting device, and we need - * to pass the child (the i386 nexus knows about this and is prepared to - * deal). - */ -int -isa_setup_intr(device_t bus, device_t child, struct resource *r, int flags, - driver_filter_t filter, void (*ihand)(void *), void *arg, - void **cookiep) -{ - return (BUS_SETUP_INTR(device_get_parent(bus), child, r, flags, - filter, ihand, arg, cookiep)); -} - -int -isa_teardown_intr(device_t bus, device_t child, struct resource *r, - void *cookie) -{ - return (BUS_TEARDOWN_INTR(device_get_parent(bus), child, r, cookie)); -} Modified: head/sys/isa/isa_common.c ============================================================================== --- head/sys/isa/isa_common.c Fri May 6 13:24:10 2011 (r221525) +++ head/sys/isa/isa_common.c Fri May 6 13:48:53 2011 (r221526) @@ -1071,8 +1071,8 @@ static device_method_t isa_methods[] = { DEVMETHOD(bus_write_ivar, isa_write_ivar), DEVMETHOD(bus_child_detached, isa_child_detached), DEVMETHOD(bus_driver_added, isa_driver_added), - DEVMETHOD(bus_setup_intr, isa_setup_intr), - DEVMETHOD(bus_teardown_intr, isa_teardown_intr), + DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), + DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), DEVMETHOD(bus_get_resource_list,isa_get_resource_list), DEVMETHOD(bus_alloc_resource, isa_alloc_resource), Modified: head/sys/isa/isa_common.h ============================================================================== --- head/sys/isa/isa_common.h Fri May 6 13:24:10 2011 (r221525) +++ head/sys/isa/isa_common.h Fri May 6 13:48:53 2011 (r221526) @@ -73,11 +73,5 @@ extern struct resource *isa_alloc_resour extern int isa_release_resource(device_t bus, device_t child, int type, int rid, struct resource *r); -extern int isa_setup_intr(device_t bus, device_t child, struct resource *r, - int flags, driver_filter_t *filter, void (*ihand)(void *), void *arg, - void **cookiep); -extern int isa_teardown_intr(device_t bus, device_t child, struct resource *r, - void *cookie); - extern driver_t isa_driver; extern devclass_t isa_devclass; Modified: head/sys/powerpc/mpc85xx/isa.c ============================================================================== --- head/sys/powerpc/mpc85xx/isa.c Fri May 6 13:24:10 2011 (r221525) +++ head/sys/powerpc/mpc85xx/isa.c Fri May 6 13:48:53 2011 (r221526) @@ -82,20 +82,3 @@ isa_release_resource(device_t bus, devic return (resource_list_release(rl, bus, child, type, rid, r)); } - -int -isa_setup_intr(device_t bus, device_t child, struct resource *r, int flags, - driver_filter_t filter, void (*ihand)(void *), void *arg, void **cookiep) -{ - - return (BUS_SETUP_INTR(device_get_parent(bus), child, r, flags, - filter, ihand, arg, cookiep)); -} - -int -isa_teardown_intr(device_t bus, device_t child, struct resource *r, - void *cookie) -{ - - return (BUS_TEARDOWN_INTR(device_get_parent(bus), child, r, cookie)); -} Modified: head/sys/sparc64/isa/isa.c ============================================================================== --- head/sys/sparc64/isa/isa.c Fri May 6 13:24:10 2011 (r221525) +++ head/sys/sparc64/isa/isa.c Fri May 6 13:48:53 2011 (r221526) @@ -359,26 +359,3 @@ isa_release_resource(device_t bus, devic return (bus_generic_rl_release_resource(bus, child, type, rid, res)); } - -int -isa_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, - driver_filter_t *filter, driver_intr_t *intr, void *arg, void **cookiep) -{ - - /* - * Just pass through. This is going to be handled by either - * one of the parent PCI buses or the nexus device. - * The interrupt had been routed before it was added to the - * resource list of the child. - */ - return (bus_generic_setup_intr(dev, child, irq, flags, filter, intr, - arg, cookiep)); -} - -int -isa_teardown_intr(device_t dev, device_t child, struct resource *irq, - void *cookie) -{ - - return (bus_generic_teardown_intr(dev, child, irq, cookie)); -} Modified: head/sys/x86/isa/isa.c ============================================================================== --- head/sys/x86/isa/isa.c Fri May 6 13:24:10 2011 (r221525) +++ head/sys/x86/isa/isa.c Fri May 6 13:48:53 2011 (r221526) @@ -238,28 +238,6 @@ isa_release_resource(device_t bus, devic } /* - * We can't use the bus_generic_* versions of these methods because those - * methods always pass the bus param as the requesting device, and we need - * to pass the child (the i386 nexus knows about this and is prepared to - * deal). - */ -int -isa_setup_intr(device_t bus, device_t child, struct resource *r, int flags, - driver_filter_t *filter, void (*ihand)(void *), void *arg, - void **cookiep) -{ - return (BUS_SETUP_INTR(device_get_parent(bus), child, r, flags, - filter, ihand, arg, cookiep)); -} - -int -isa_teardown_intr(device_t bus, device_t child, struct resource *r, - void *cookie) -{ - return (BUS_TEARDOWN_INTR(device_get_parent(bus), child, r, cookie)); -} - -/* * On this platform, isa can also attach to the legacy bus. */ DRIVER_MODULE(isa, legacy, isa_driver, isa_devclass, 0, 0); From owner-svn-src-head@FreeBSD.ORG Fri May 6 13:50:11 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 305A3106566C; Fri, 6 May 2011 13:50:11 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from argol.doit.wisc.edu (argol.doit.wisc.edu [144.92.197.212]) by mx1.freebsd.org (Postfix) with ESMTP id 0012E8FC0C; Fri, 6 May 2011 13:50:10 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth3.wiscmail.wisc.edu by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0LKS0050413MFE00@smtpauth3.wiscmail.wisc.edu>; Fri, 06 May 2011 08:50:10 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.65.155]) by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0LKS00IZU13KDQ40@smtpauth3.wiscmail.wisc.edu>; Fri, 06 May 2011 08:50:09 -0500 (CDT) Date: Fri, 06 May 2011 08:50:07 -0500 From: Nathan Whitehorn In-reply-to: To: Marcel Moolenaar Message-id: <4DC3FC8F.2070200@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.65.155 X-Spam-PmxInfo: Server=avs-11, Version=5.6.0.2009776, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2011.5.6.133619, SenderIP=76.210.65.155 References: <201105051416.p45EGfcd003037@svn.freebsd.org> <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> <4DC36B2B.4010509@freebsd.org> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.17) Gecko/20110429 Thunderbird/3.1.10 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 13:50:11 -0000 On 05/06/11 00:21, Marcel Moolenaar wrote: > On May 5, 2011, at 8:29 PM, Nathan Whitehorn wrote: > >> On 05/05/11 16:18, Marcel Moolenaar wrote: >>> On May 5, 2011, at 7:16 AM, Nathan Whitehorn wrote: >>> >>>> @@ -84,15 +63,13 @@ if [ $bootable = yes ]; then >>>> mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi >>>> umount $MNT >>>> mdconfig -d -u $md >>>> - BOOTOPTS="-b $EFIPART -no-emul-boot" >>>> + BOOTOPTS="-b bootimage=i386;$EFIPART -o no-emul-boot" >>>> else >>>> BOOTOPTS="" >>>> fi >>> Thanks! >>> >>> Can you explain what this particular change does or why it's done? >>> >> I'm cleaning up the release-building code, and am switching them from mkisofs to makefs, which provides the same functionality. This started with some irritation with the cdrtools port and a bug in the HFS hybrid generation that was breaking PPC release CD generation. Switching these to depend on makefs in general speeds the release-building process and removes the number of dependencies involved, since makefs is built as part of base. > Actually, I was just interested in the 'bootimage=i386' part > of your change. I totally get why you're doing it :-) Ah, OK :) That just sets the El Torito system type to 0 (x86), which is what IA64 uses, as far as I can tell, and doesn't turn on any special magic like is done for the mac. I suppose while we're monkeying about with makefs, we could add an 'ia64' alias. -Nathan From owner-svn-src-head@FreeBSD.ORG Fri May 6 13:51:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84777106568A; Fri, 6 May 2011 13:51:54 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6A3538FC1C; Fri, 6 May 2011 13:51:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46DpsPh050750; Fri, 6 May 2011 13:51:54 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46DpsR7050745; Fri, 6 May 2011 13:51:54 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201105061351.p46DpsR7050745@svn.freebsd.org> From: Andriy Gapon Date: Fri, 6 May 2011 13:51:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221527 - in head/sys: amd64/amd64 amd64/include i386/i386 i386/include X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 13:51:54 -0000 Author: avg Date: Fri May 6 13:51:54 2011 New Revision: 221527 URL: http://svn.freebsd.org/changeset/base/221527 Log: prepare code that does topology detection for amd cpus for bulldozer This also introduces a new detection path for family 10h and newer pre-bulldozer cpus, pre-10h hardware should not be affected. Tested by: Gary Jennejohn (with pre-10h hardware) MFC after: 2 weeks Modified: head/sys/amd64/amd64/mp_machdep.c head/sys/amd64/include/specialreg.h head/sys/i386/i386/mp_machdep.c head/sys/i386/include/specialreg.h Modified: head/sys/amd64/amd64/mp_machdep.c ============================================================================== --- head/sys/amd64/amd64/mp_machdep.c Fri May 6 13:48:53 2011 (r221526) +++ head/sys/amd64/amd64/mp_machdep.c Fri May 6 13:51:54 2011 (r221527) @@ -176,11 +176,34 @@ mem_range_AP_init(void) static void topo_probe_amd(void) { + int core_id_bits; + int id; /* AMD processors do not support HTT. */ - cpu_cores = (amd_feature2 & AMDID2_CMP) != 0 ? - (cpu_procinfo2 & AMDID_CMP_CORES) + 1 : 1; cpu_logical = 1; + + if ((amd_feature2 & AMDID2_CMP) == 0) { + cpu_cores = 1; + return; + } + + core_id_bits = (cpu_procinfo2 & AMDID_COREID_SIZE) >> + AMDID_COREID_SIZE_SHIFT; + if (core_id_bits == 0) { + cpu_cores = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; + return; + } + + /* Fam 10h and newer should get here. */ + for (id = 0; id <= MAX_APIC_ID; id++) { + /* Check logical CPU availability. */ + if (!cpu_info[id].cpu_present || cpu_info[id].cpu_disabled) + continue; + /* Check if logical CPU has the same package ID. */ + if ((id >> core_id_bits) != (boot_cpu_id >> core_id_bits)) + continue; + cpu_cores++; + } } /* Modified: head/sys/amd64/include/specialreg.h ============================================================================== --- head/sys/amd64/include/specialreg.h Fri May 6 13:48:53 2011 (r221526) +++ head/sys/amd64/include/specialreg.h Fri May 6 13:51:54 2011 (r221527) @@ -228,6 +228,8 @@ * AMD extended function 8000_0008h ecx info */ #define AMDID_CMP_CORES 0x000000ff +#define AMDID_COREID_SIZE 0x0000f000 +#define AMDID_COREID_SIZE_SHIFT 12 /* * CPUID manufacturers identifiers Modified: head/sys/i386/i386/mp_machdep.c ============================================================================== --- head/sys/i386/i386/mp_machdep.c Fri May 6 13:48:53 2011 (r221526) +++ head/sys/i386/i386/mp_machdep.c Fri May 6 13:51:54 2011 (r221527) @@ -224,11 +224,34 @@ mem_range_AP_init(void) static void topo_probe_amd(void) { + int core_id_bits; + int id; /* AMD processors do not support HTT. */ - cpu_cores = (amd_feature2 & AMDID2_CMP) != 0 ? - (cpu_procinfo2 & AMDID_CMP_CORES) + 1 : 1; cpu_logical = 1; + + if ((amd_feature2 & AMDID2_CMP) == 0) { + cpu_cores = 1; + return; + } + + core_id_bits = (cpu_procinfo2 & AMDID_COREID_SIZE) >> + AMDID_COREID_SIZE_SHIFT; + if (core_id_bits == 0) { + cpu_cores = (cpu_procinfo2 & AMDID_CMP_CORES) + 1; + return; + } + + /* Fam 10h and newer should get here. */ + for (id = 0; id <= MAX_APIC_ID; id++) { + /* Check logical CPU availability. */ + if (!cpu_info[id].cpu_present || cpu_info[id].cpu_disabled) + continue; + /* Check if logical CPU has the same package ID. */ + if ((id >> core_id_bits) != (boot_cpu_id >> core_id_bits)) + continue; + cpu_cores++; + } } /* Modified: head/sys/i386/include/specialreg.h ============================================================================== --- head/sys/i386/include/specialreg.h Fri May 6 13:48:53 2011 (r221526) +++ head/sys/i386/include/specialreg.h Fri May 6 13:51:54 2011 (r221527) @@ -227,6 +227,8 @@ * AMD extended function 8000_0008h ecx info */ #define AMDID_CMP_CORES 0x000000ff +#define AMDID_COREID_SIZE 0x0000f000 +#define AMDID_COREID_SIZE_SHIFT 12 /* * CPUID manufacturers identifiers From owner-svn-src-head@FreeBSD.ORG Fri May 6 14:21:47 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83CDD1065670; Fri, 6 May 2011 14:21:46 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 741268FC17; Fri, 6 May 2011 14:21:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46ELkqg051957; Fri, 6 May 2011 14:21:46 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46ELk7F051954; Fri, 6 May 2011 14:21:46 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105061421.p46ELk7F051954@svn.freebsd.org> From: Ruslan Ermilov Date: Fri, 6 May 2011 14:21:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221533 - head/contrib/one-true-awk X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 14:21:47 -0000 Author: ru Date: Fri May 6 14:21:46 2011 New Revision: 221533 URL: http://svn.freebsd.org/changeset/base/221533 Log: Update to a 6-May-2011 release (upstreamed some of our changes). Deleted: head/contrib/one-true-awk/proctab.c Modified: head/contrib/one-true-awk/FIXES head/contrib/one-true-awk/main.c Directory Properties: head/contrib/one-true-awk/ (props changed) Modified: head/contrib/one-true-awk/FIXES ============================================================================== --- head/contrib/one-true-awk/FIXES Fri May 6 14:11:20 2011 (r221532) +++ head/contrib/one-true-awk/FIXES Fri May 6 14:21:46 2011 (r221533) @@ -25,6 +25,11 @@ THIS SOFTWARE. This file lists all bug fixes, changes, etc., made since the AWK book was sent to the printers in August, 1987. +May 6, 2011: + added #ifdef for isblank. + now allows -ffoo as well as -f foo arguments. + (thanks, ruslan) + May 1, 2011: after advice from todd miller, kevin lo, ruslan ermilov, and arnold robbins, changed srand() to return the previous Modified: head/contrib/one-true-awk/main.c ============================================================================== --- head/contrib/one-true-awk/main.c Fri May 6 14:11:20 2011 (r221532) +++ head/contrib/one-true-awk/main.c Fri May 6 14:21:46 2011 (r221533) @@ -25,7 +25,7 @@ THIS SOFTWARE. #include __FBSDID("$FreeBSD$"); -const char *version = "version 20110501 (FreeBSD)"; +const char *version = "version 20110506 (FreeBSD)"; #define DEBUG #include @@ -95,7 +95,7 @@ int main(int argc, char *argv[]) safe = 1; break; case 'f': /* next argument is program filename */ - if (argv[1][2] != 0) { /* arg is -fsomething */ + if (argv[1][2] != 0) { /* arg is -fsomething */ if (npfile >= MAX_PFILE - 1) FATAL("too many -f options"); pfile[npfile++] = &argv[1][2]; From owner-svn-src-head@FreeBSD.ORG Fri May 6 15:33:57 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1A573106564A; Fri, 6 May 2011 15:33:57 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E49A68FC13; Fri, 6 May 2011 15:33:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46FXuQJ054155; Fri, 6 May 2011 15:33:56 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46FXuXa054151; Fri, 6 May 2011 15:33:56 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105061533.p46FXuXa054151@svn.freebsd.org> From: Adrian Chadd Date: Fri, 6 May 2011 15:33:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221535 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 15:33:57 -0000 Author: adrian Date: Fri May 6 15:33:56 2011 New Revision: 221535 URL: http://svn.freebsd.org/changeset/base/221535 Log: Add a function which enables or disables RX RIFS searching, and migrate the code which does this into it. Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416.h head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416.h Fri May 6 15:31:27 2011 (r221534) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416.h Fri May 6 15:33:56 2011 (r221535) @@ -199,6 +199,7 @@ extern HAL_STATUS ar5416GetCapability(st extern HAL_BOOL ar5416GetDiagState(struct ath_hal *ah, int request, const void *args, uint32_t argsize, void **result, uint32_t *resultsize); +extern HAL_BOOL ar5416SetRifsDelay(struct ath_hal *ah, HAL_BOOL enable); extern HAL_BOOL ar5416SetPowerMode(struct ath_hal *ah, HAL_POWER_MODE mode, int setChip); Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Fri May 6 15:31:27 2011 (r221534) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Fri May 6 15:33:56 2011 (r221535) @@ -368,6 +368,25 @@ typedef struct { uint8_t qcu_complete_state; } hal_mac_hang_check_t; +HAL_BOOL +ar5416SetRifsDelay(struct ath_hal *ah, HAL_BOOL enable) +{ + uint32_t val; + + /* Only support disabling RIFS delay for now */ + HALASSERT(enable == AH_FALSE); + + if (enable == AH_TRUE) + return AH_FALSE; + + /* Change RIFS init delay to 0 */ + val = OS_REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS); + val &= ~AR_PHY_RIFS_INIT_DELAY; + OS_REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val); + + return AH_TRUE; +} + static HAL_BOOL ar5416CompareDbgHang(struct ath_hal *ah, const mac_dbg_regs_t *regs, const hal_mac_hang_check_t *check) Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Fri May 6 15:31:27 2011 (r221534) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Fri May 6 15:33:56 2011 (r221535) @@ -2520,11 +2520,8 @@ ar5416OverrideIni(struct ath_hal *ah, co * Disable RIFS search on some chips to avoid baseband * hang issues. */ - if (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) { - val = OS_REG_READ(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS); - val &= ~AR_PHY_RIFS_INIT_DELAY; - OS_REG_WRITE(ah, AR_PHY_HEAVY_CLIP_FACTOR_RIFS, val); - } + if (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) + (void) ar5416SetRifsDelay(ah, AH_FALSE); } struct ini { From owner-svn-src-head@FreeBSD.ORG Fri May 6 15:40:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C574106564A; Fri, 6 May 2011 15:40:59 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 318778FC0A; Fri, 6 May 2011 15:40:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46FexbF054387; Fri, 6 May 2011 15:40:59 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46Fex1D054385; Fri, 6 May 2011 15:40:59 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105061540.p46Fex1D054385@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 6 May 2011 15:40:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221536 - head/usr.sbin/makefs/cd9660 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 15:40:59 -0000 Author: nwhitehorn Date: Fri May 6 15:40:58 2011 New Revision: 221536 URL: http://svn.freebsd.org/changeset/base/221536 Log: Simplify this code somewhat by only writing a 512-byte-sector APM map. All firmwares can read it, we need to write one anyway for old OF versions, and if a 512-byte one is present, OS X ignores the 2048-byte one in favor of it. Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Modified: head/usr.sbin/makefs/cd9660/cd9660_eltorito.c ============================================================================== --- head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Fri May 6 15:33:56 2011 (r221535) +++ head/usr.sbin/makefs/cd9660/cd9660_eltorito.c Fri May 6 15:40:58 2011 (r221536) @@ -528,25 +528,6 @@ cd9660_write_apm_partition_entry(FILE *f fseek(fd, 32 - strlen(part_name) - 1, SEEK_CUR); fwrite(part_type, strlen(part_type) + 1, 1, fd); - if (sector_size > 512) { - /* - * Some old broken software looks at 512-byte boundaries for - * partition table entries instead of sector boundaries. We - * can fit 3 entries into the first 2048-byte block, so use - * that to humor old code. - */ - - int n_512_parts = (sector_size / 512) - 1; - if (n_512_parts > total_partitions) - n_512_parts = total_partitions; - - if (index < n_512_parts) - cd9660_write_apm_partition_entry(fd, index, n_512_parts, - sector_start * (sector_size / 512), - nsectors * (sector_size / 512), 512, part_name, - part_type); - } - return 0; } @@ -601,23 +582,30 @@ cd9660_write_boot(FILE *fd) fseek(fd, 0, SEEK_SET); apm16 = htons(0x4552); fwrite(&apm16, sizeof(apm16), 1, fd); - apm16 = htons(diskStructure.sectorSize); + /* Device block size */ + apm16 = htons(512); fwrite(&apm16, sizeof(apm16), 1, fd); - apm32 = htonl(diskStructure.totalSectors); + /* Device block count */ + apm32 = htonl(diskStructure.totalSectors * + (diskStructure.sectorSize / 512)); fwrite(&apm32, sizeof(apm32), 1, fd); + /* Device type/id */ + apm16 = htons(1); + fwrite(&apm16, sizeof(apm16), 1, fd); + fwrite(&apm16, sizeof(apm16), 1, fd); /* Count total needed entries */ total_parts = 2 + apm_partitions; /* Self + ISO9660 */ /* Write self-descriptor */ - cd9660_write_apm_partition_entry(fd, 0, - total_parts, 1, total_parts, diskStructure.sectorSize, - "Apple", "Apple_partition_map"); + cd9660_write_apm_partition_entry(fd, 0, total_parts, 1, + total_parts, 512, "Apple", "Apple_partition_map"); /* Write ISO9660 descriptor, enclosing the whole disk */ - cd9660_write_apm_partition_entry(fd, 1, - total_parts, 0, diskStructure.totalSectors, - diskStructure.sectorSize, "", "CD_ROM_Mode_1"); + cd9660_write_apm_partition_entry(fd, 1, total_parts, 0, + diskStructure.totalSectors * + (diskStructure.sectorSize / 512), 512, "ISO9660", + "CD_ROM_Mode_1"); /* Write all partition entries */ apm_partitions = 0; @@ -627,8 +615,9 @@ cd9660_write_boot(FILE *fd) cd9660_write_apm_partition_entry(fd, 2 + apm_partitions++, total_parts, - t->sector, t->num_sectors, diskStructure.sectorSize, - "CD Boot", "Apple_Bootstrap"); + t->sector * (diskStructure.sectorSize / 512), + t->num_sectors * (diskStructure.sectorSize / 512), + 512, "CD Boot", "Apple_Bootstrap"); } } From owner-svn-src-head@FreeBSD.ORG Fri May 6 16:11:23 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 796841065675; Fri, 6 May 2011 16:11:23 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id F08AF8FC13; Fri, 6 May 2011 16:11:22 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id B95EA1FFC35; Fri, 6 May 2011 16:11:21 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 819AF8460A; Fri, 6 May 2011 18:11:21 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Pawel Jakub Dawidek References: <86r58dqett.fsf@ds4.des.no> <1076836182.1082988.1304636806753.JavaMail.root@erie.cs.uoguelph.ca> <20110506071351.GI14661@garage.freebsd.pl> Date: Fri, 06 May 2011 18:11:21 +0200 In-Reply-To: <20110506071351.GI14661@garage.freebsd.pl> (Pawel Jakub Dawidek's message of "Fri, 6 May 2011 09:13:51 +0200") Message-ID: <86aaezzu52.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, Rick Macklem , src-committers@freebsd.org Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 16:11:23 -0000 Pawel Jakub Dawidek writes: > My personal opinion is that supporting such configuration is not worth > the efforts and actually I'd prefer to use the same sysctl tree > (vfs.nfs.*) and the same fstype (nfs) in both clients. User would decide > which to use by loading one kernel module or the other. Precisely what I was trying to say. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Fri May 6 16:53:57 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4992A1065672; Fri, 6 May 2011 16:53:57 +0000 (UTC) (envelope-from pawel@dawidek.net) Received: from mail.garage.freebsd.pl (60.wheelsystems.com [83.12.187.60]) by mx1.freebsd.org (Postfix) with ESMTP id C4E5B8FC17; Fri, 6 May 2011 16:53:56 +0000 (UTC) Received: by mail.garage.freebsd.pl (Postfix, from userid 65534) id C1FF445EE5; Fri, 6 May 2011 18:53:53 +0200 (CEST) Received: from localhost (public-gprs164564.centertel.pl [178.56.110.21]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.garage.freebsd.pl (Postfix) with ESMTP id 3A6B945685; Fri, 6 May 2011 18:53:42 +0200 (CEST) Date: Fri, 6 May 2011 18:53:22 +0200 From: Pawel Jakub Dawidek To: Rick Macklem Message-ID: <20110506165322.GA1939@garage.freebsd.pl> References: <20110506071351.GI14661@garage.freebsd.pl> <1136495405.1095168.1304682865076.JavaMail.root@erie.cs.uoguelph.ca> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="J2SCkAp4GZ/dPZZf" Content-Disposition: inline In-Reply-To: <1136495405.1095168.1304682865076.JavaMail.root@erie.cs.uoguelph.ca> X-OS: FreeBSD 9.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mail.garage.freebsd.pl X-Spam-Level: X-Spam-Status: No, score=-2.6 required=4.5 tests=BAYES_00 autolearn=ham version=3.0.4 Cc: svn-src-head@freebsd.org, Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= , svn-src-all@freebsd.org, src-committers@freebsd.org, Rick Macklem Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 16:53:57 -0000 --J2SCkAp4GZ/dPZZf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, May 06, 2011 at 07:54:25AM -0400, Rick Macklem wrote: > > On Thu, May 05, 2011 at 07:06:46PM -0400, Rick Macklem wrote: > > > Also, except for the SYSCTL() naming issue they don't comflict. At > > > the > > > moment it is perfectly ok to use both for mounts concurrently. > > > For example, you could have the following 2 lines in your > > > /etc/fstab: > > > > > > nfs-server:/sub1 /mnt nfs rw 0 0 > > > nfs-server:/sub2 /mnt2 oldnfs rw 0 0 > > > > > > I don't know why you would actually choose to do this, unless you > > > found > > > that the old NFS client did something that worked better for "/sub2" > > > for > > > your purposes, but it will work fine. > >=20 > > My personal opinion is that supporting such configuration is not worth > > the efforts and actually I'd prefer to use the same sysctl tree > > (vfs.nfs.*) and the same fstype (nfs) in both clients. User would > > decide > > which to use by loading one kernel module or the other. > >=20 > Well, first off, I think there are problems if you have two modules > using the same "fstype" name. For example, the old mount syscall > which is still used by amd, does an unconditional > kern_kldload(.., "fstype",...); >=20 > I'm not sure what happens when there are two modules both with the > same "fstype"? >=20 > Also, there could be a script in /etc/rc.d that runs before any mount is > attempted (I don't know how to do this, but I assume rc@ will) and it > could load one or the other based on an rc.conf variable, but what > about doing a mount from single user? >=20 > And I also don't know how to tell the system to allow kernels to be > built with one of NFSCLIENT, NFSCL, but not both of them? (It would > fail for both of them, since there would be 2 VFS_SET()s with the > same "fstype", I think?) >=20 > I also think there might be situations where running both concurrently > could still be useful (that's the way things have been for 8.n). > Here's a not too hypothetical example: > - an 8.n system mounts 3 file servers > server1 - a FreeBSD server with NFSv4 enabled > server2 - Solaris8 > server3 - some Linux distro > and the /etc/fstab entries look like: >=20 > server1:/vol1 /vol1 nfs rw,nfsv4 0 0 > server2:/vol2 /vol2 nfs rw 0 0 > server3:/vol3 /vol3 nfs rw 0 0 >=20 > (The part w.r.t. server1 using NFSv4 isn't too hypothetical, since I > recently got email from a guy who is using NFSv4 on 8.2 because it > fixed a file locking problem for him. Related to openoffice, if I > recall correctly.) >=20 > The above is using both NFS clients concurrently, although whoever > set it up might not realize that, since server1 using "newnfs" because > that's needed for NFSv4. >=20 > Ok, now this system is upgraded to 9.0 and then /vol3 goes wonky. > If both clients can still run concurrently, /etc/fstab could be changed > to: >=20 > server1:/vol1 /vol1 nfs rw,nfsv4 0 0 > server2:/vol2 /vol2 nfs rw 0 0 > server3:/vol3 /vol3 oldnfs rw 0 0 >=20 > to seee if the problem is caused by the switchover to the new NFS > client. If the wonkyness goes away, I have some work to do. If not, > I'm off the hook because something else is causing the wonkyness. >=20 > If the two stacks can't run concurrently, the above change couldn't > be done, because "nfsv4" isn't supported by the old NFS client. >=20 > In summary, at this point, changing the vfs.nfs.xxx to be shared > by the two clients is, to me, easier than trying to change things > so the two clients use the same "fstype" and can't run concurrently > and I also think there may be cases where running them concurrently > in 9.0 would be useful. If you don't share my preference then it would be good to make new NFS just 'nfs' everywhere (sysctls, fstype, etc.), so that we won't end up with 'newnfs' in random places in five years from now. What you do with old NFS is less important to me:) --=20 Pawel Jakub Dawidek http://www.wheelsystems.com FreeBSD committer http://www.FreeBSD.org Am I Evil? Yes, I Am! http://yomoli.com --J2SCkAp4GZ/dPZZf Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAk3EJ4IACgkQForvXbEpPzQF8ACfc3JfPKLLFjMAngEBud/n0IXF ISoAn1ROIXY+eNpNVAhI8bfnGKHwgZ1/ =g74i -----END PGP SIGNATURE----- --J2SCkAp4GZ/dPZZf-- From owner-svn-src-head@FreeBSD.ORG Fri May 6 17:02:16 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E32A106566B; Fri, 6 May 2011 17:02:16 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 3989B8FC12; Fri, 6 May 2011 17:02:15 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAEUpxE2DaFvO/2dsb2JhbACEU6JwiHGqIZEIgSqDXoEBBI9YhxuHVQ X-IronPort-AV: E=Sophos;i="4.64,327,1301889600"; d="scan'208";a="119873497" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 06 May 2011 13:02:04 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 95AC4793A7; Fri, 6 May 2011 13:02:04 -0400 (EDT) Date: Fri, 6 May 2011 13:02:04 -0400 (EDT) From: Rick Macklem To: Pawel Jakub Dawidek Message-ID: <1966116316.1117177.1304701324549.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <20110506165322.GA1939@garage.freebsd.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.201] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= , svn-src-all@freebsd.org, src-committers@freebsd.org, Rick Macklem Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 17:02:16 -0000 > > If you don't share my preference then it would be good to make new > NFS just 'nfs' everywhere (sysctls, fstype, etc.), so that we won't > end > up with 'newnfs' in random places in five years from now. What you do > with old NFS is less important to me:) > As you'll see from the post I just sent (about 5sec before this showed up in my box), I don't mind the idea of the two clients not being concurrently usable. (I did have that semi-hypothetical example, but I, personally, don't think it's likely. I had assumed that others would think this is "required", but if not, that's fine with me.) My problem is that I don't know how to deal with two modules with the same name. (Getting rid of the old one as a module and making people have to compile it into their kernel solves that.) If both still need to be loadable modules, I think I'm going to need some help w.r.t. how to make that work. (The mount syscall tries to load it. The /etc/rc.d/nfsclient script forces it to be loaded and who knows what else. If there are two of them, then???) rick From owner-svn-src-head@FreeBSD.ORG Fri May 6 17:18:29 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 710721065673; Fri, 6 May 2011 17:18:29 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-jnhn.mail.uoguelph.ca (esa-jnhn.mail.uoguelph.ca [131.104.91.44]) by mx1.freebsd.org (Postfix) with ESMTP id 609B08FC0A; Fri, 6 May 2011 17:18:28 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAK0sxE2DaFvO/2dsb2JhbACEU6JwswqRB4EqhF8Ej1iHG4dV X-IronPort-AV: E=Sophos;i="4.64,327,1301889600"; d="scan'208";a="122266345" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-jnhn-pri.mail.uoguelph.ca with ESMTP; 06 May 2011 12:54:14 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 12CB8B4037; Fri, 6 May 2011 12:54:14 -0400 (EDT) Date: Fri, 6 May 2011 12:54:14 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <297798401.1116789.1304700854017.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <86aaezzu52.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.203] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 17:18:29 -0000 > Pawel Jakub Dawidek writes: > > My personal opinion is that supporting such configuration is not > > worth > > the efforts and actually I'd prefer to use the same sysctl tree > > (vfs.nfs.*) and the same fstype (nfs) in both clients. User would > > decide > > which to use by loading one kernel module or the other. > > Precisely what I was trying to say. > Well, if running the two clients concurrently isn't a requirement, how does this sound? - Get rid of the module building for the old client. (ie. delete sys/modules/nfsclient) That way there is only one client NFS module to load and there isn't any confusion over which one to load and when. --> then, if anyone wants/needs the old client, they would have to build a kernel with "options NFSCLIENT" specified. (This wouldn't really affect the diskless NFS root folks, since they have to compile a client into the kernel anyhow. If no client is compiled into the kernel, the new one would be loaded as a module. I kinda like this variation because: 1 - It's simple and I know how to do it. (I don't know how to handle things like kern_modload() calls inside the mount(2) syscall when there are 2 client modules both having fstype "nfs", etc and so forth.) 2 - It deprecates the old client, so anyone using it will know that they are and most won't switch to the old unless they really need to. The downside is that anyone wanting/needing to switch to the old client will have to recompile a kernel to do so. So, does this sound ok? rick From owner-svn-src-head@FreeBSD.ORG Fri May 6 17:51:00 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6AC491065732; Fri, 6 May 2011 17:51:00 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5C05A8FC1C; Fri, 6 May 2011 17:51:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46Hp08b059424; Fri, 6 May 2011 17:51:00 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46Hp0YS059422; Fri, 6 May 2011 17:51:00 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105061751.p46Hp0YS059422@svn.freebsd.org> From: Rick Macklem Date: Fri, 6 May 2011 17:51:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221537 - head/sys/fs/nfsclient X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 17:51:00 -0000 Author: rmacklem Date: Fri May 6 17:51:00 2011 New Revision: 221537 URL: http://svn.freebsd.org/changeset/base/221537 Log: Set the initial value of maxfilesize to OFF_MAX in the new NFS client. It will then be reduced to whatever the server says it can support. There might be an argument that this could be one block larger, but since NFS is a byte granular system, I chose not to do that. Suggested by: Matt Dillon Tested by: Daniel Braniss (earlier version) MFC after: 2 weeks Modified: head/sys/fs/nfsclient/nfs_clvfsops.c Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Fri May 6 15:40:58 2011 (r221536) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Fri May 6 17:51:00 2011 (r221537) @@ -1224,7 +1224,7 @@ mountnfs(struct nfs_args *argp, struct m if ((argp->flags & (NFSMNT_NFSV3 | NFSMNT_NFSV4)) == 0) nmp->nm_maxfilesize = 0xffffffffLL; else - nmp->nm_maxfilesize = (u_int64_t)0x80000000 * DEV_BSIZE - 1; + nmp->nm_maxfilesize = OFF_MAX; nmp->nm_timeo = NFS_TIMEO; nmp->nm_retry = NFS_RETRANS; From owner-svn-src-head@FreeBSD.ORG Fri May 6 19:10:28 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2DFF1106566B; Fri, 6 May 2011 19:10:28 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1F0D88FC19; Fri, 6 May 2011 19:10:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46JAS9C062125; Fri, 6 May 2011 19:10:28 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46JASfY062123; Fri, 6 May 2011 19:10:28 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105061910.p46JASfY062123@svn.freebsd.org> From: Ruslan Ermilov Date: Fri, 6 May 2011 19:10:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221539 - head/tools/build/options X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 19:10:28 -0000 Author: ru Date: Fri May 6 19:10:27 2011 New Revision: 221539 URL: http://svn.freebsd.org/changeset/base/221539 Log: Tidy up formatting. Modified: head/tools/build/options/WITHOUT_FDT Modified: head/tools/build/options/WITHOUT_FDT ============================================================================== --- head/tools/build/options/WITHOUT_FDT Fri May 6 18:40:51 2011 (r221538) +++ head/tools/build/options/WITHOUT_FDT Fri May 6 19:10:27 2011 (r221539) @@ -1,3 +1,3 @@ .\" $FreeBSD$ -Set to not build Flattened Device Tree support as part of the base system. This -includes the device tree compiler (dtc) and libfdt support library. +Set to not build Flattened Device Tree support as part of the base system. +This includes the device tree compiler (dtc) and libfdt support library. From owner-svn-src-head@FreeBSD.ORG Fri May 6 19:13:04 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 20CFA106566B; Fri, 6 May 2011 19:13:04 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 11CEC8FC16; Fri, 6 May 2011 19:13:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46JD3NJ062252; Fri, 6 May 2011 19:13:03 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46JD3vJ062249; Fri, 6 May 2011 19:13:03 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105061913.p46JD3vJ062249@svn.freebsd.org> From: Ruslan Ermilov Date: Fri, 6 May 2011 19:13:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221540 - head/tools/build/options X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 19:13:04 -0000 Author: ru Date: Fri May 6 19:13:03 2011 New Revision: 221540 URL: http://svn.freebsd.org/changeset/base/221540 Log: Removed trailing whitespace. Modified: head/tools/build/options/WITHOUT_ACCT head/tools/build/options/WITHOUT_FLOPPY Modified: head/tools/build/options/WITHOUT_ACCT ============================================================================== --- head/tools/build/options/WITHOUT_ACCT Fri May 6 19:10:27 2011 (r221539) +++ head/tools/build/options/WITHOUT_ACCT Fri May 6 19:13:03 2011 (r221540) @@ -1,5 +1,5 @@ .\" $FreeBSD$ Set to not build process accounting tools such as -.Xr ac 8 +.Xr ac 8 and .Xr accton 8 . Modified: head/tools/build/options/WITHOUT_FLOPPY ============================================================================== --- head/tools/build/options/WITHOUT_FLOPPY Fri May 6 19:10:27 2011 (r221539) +++ head/tools/build/options/WITHOUT_FLOPPY Fri May 6 19:13:03 2011 (r221540) @@ -1,3 +1,3 @@ .\" $FreeBSD$ -Set to not build or install programs +Set to not build or install programs for operating floppy disk driver. From owner-svn-src-head@FreeBSD.ORG Fri May 6 19:14:07 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 462371065672; Fri, 6 May 2011 19:14:07 +0000 (UTC) (envelope-from ru@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3750D8FC0A; Fri, 6 May 2011 19:14:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46JE7tw062318; Fri, 6 May 2011 19:14:07 GMT (envelope-from ru@svn.freebsd.org) Received: (from ru@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46JE7mO062316; Fri, 6 May 2011 19:14:07 GMT (envelope-from ru@svn.freebsd.org) Message-Id: <201105061914.p46JE7mO062316@svn.freebsd.org> From: Ruslan Ermilov Date: Fri, 6 May 2011 19:14:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221541 - head/tools/build/options X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 19:14:07 -0000 Author: ru Date: Fri May 6 19:14:06 2011 New Revision: 221541 URL: http://svn.freebsd.org/changeset/base/221541 Log: MK_GPIO changed its default; reflect. Added: head/tools/build/options/WITHOUT_GPIO - copied, changed from r221204, head/tools/build/options/WITH_GPIO Deleted: head/tools/build/options/WITH_GPIO Copied and modified: head/tools/build/options/WITHOUT_GPIO (from r221204, head/tools/build/options/WITH_GPIO) ============================================================================== --- head/tools/build/options/WITH_GPIO Fri Apr 29 10:33:54 2011 (r221204, copy source) +++ head/tools/build/options/WITHOUT_GPIO Fri May 6 19:14:06 2011 (r221541) @@ -1,2 +1,4 @@ .\" $FreeBSD$ -Set to build gpioctl(8) as part of the base system. +Set to not build +.Xr gpioctl 8 +as part of the base system. From owner-svn-src-head@FreeBSD.ORG Fri May 6 19:39:56 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1233) id 952B5106566B; Fri, 6 May 2011 19:39:56 +0000 (UTC) Date: Fri, 6 May 2011 19:39:56 +0000 From: Alexander Best To: Ruslan Ermilov Message-ID: <20110506193956.GA39560@freebsd.org> References: <201105061914.p46JE7mO062316@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201105061914.p46JE7mO062316@svn.freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221541 - head/tools/build/options X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 19:39:56 -0000 On Fri May 6 11, Ruslan Ermilov wrote: > Author: ru > Date: Fri May 6 19:14:06 2011 > New Revision: 221541 > URL: http://svn.freebsd.org/changeset/base/221541 > > Log: > MK_GPIO changed its default; reflect. could you also have a look at WITHOUT_SSP? the description says that it only affects world, but looking at sys/conf/kern.mk, it also triggers the -fstack-protector flag for the kernel. so it has an effect both on world AND kernel, if i understood things correctly. cheers. alex > > Added: > head/tools/build/options/WITHOUT_GPIO > - copied, changed from r221204, head/tools/build/options/WITH_GPIO > Deleted: > head/tools/build/options/WITH_GPIO > > Copied and modified: head/tools/build/options/WITHOUT_GPIO (from r221204, head/tools/build/options/WITH_GPIO) > ============================================================================== > --- head/tools/build/options/WITH_GPIO Fri Apr 29 10:33:54 2011 (r221204, copy source) > +++ head/tools/build/options/WITHOUT_GPIO Fri May 6 19:14:06 2011 (r221541) > @@ -1,2 +1,4 @@ > .\" $FreeBSD$ > -Set to build gpioctl(8) as part of the base system. > +Set to not build > +.Xr gpioctl 8 > +as part of the base system. -- a13x From owner-svn-src-head@FreeBSD.ORG Fri May 6 19:55:15 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9EE02106566B; Fri, 6 May 2011 19:55:15 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8EA048FC0A; Fri, 6 May 2011 19:55:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46JtF3o063630; Fri, 6 May 2011 19:55:15 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46JtFdx063628; Fri, 6 May 2011 19:55:15 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105061955.p46JtFdx063628@svn.freebsd.org> From: Rick Macklem Date: Fri, 6 May 2011 19:55:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221542 - head/sys/nfsclient X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 19:55:15 -0000 Author: rmacklem Date: Fri May 6 19:55:15 2011 New Revision: 221542 URL: http://svn.freebsd.org/changeset/base/221542 Log: Fix the module dependency in nfs_kdtrace.c for the old NFS client. This should fix a problem reported by Marcus Reid. Modified: head/sys/nfsclient/nfs_kdtrace.c Modified: head/sys/nfsclient/nfs_kdtrace.c ============================================================================== --- head/sys/nfsclient/nfs_kdtrace.c Fri May 6 19:14:06 2011 (r221541) +++ head/sys/nfsclient/nfs_kdtrace.c Fri May 6 19:55:15 2011 (r221542) @@ -539,4 +539,4 @@ DEV_MODULE(dtnfsclient, dtnfsclient_mode MODULE_VERSION(dtnfsclient, 1); MODULE_DEPEND(dtnfsclient, dtrace, 1, 1, 1); MODULE_DEPEND(dtnfsclient, opensolaris, 1, 1, 1); -MODULE_DEPEND(dtnfsclient, nfs, 1, 1, 1); +MODULE_DEPEND(dtnfsclient, oldnfs, 1, 1, 1); From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:02:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E0E65106564A; Fri, 6 May 2011 20:02:19 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CFB768FC16; Fri, 6 May 2011 20:02:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46K2Jvx063885; Fri, 6 May 2011 20:02:19 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46K2Jr6063880; Fri, 6 May 2011 20:02:19 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201105062002.p46K2Jr6063880@svn.freebsd.org> From: Rick Macklem Date: Fri, 6 May 2011 20:02:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221543 - in head/sys: nfs nfsclient X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:02:20 -0000 Author: rmacklem Date: Fri May 6 20:02:19 2011 New Revision: 221543 URL: http://svn.freebsd.org/changeset/base/221543 Log: Move sys/nfsclient/nfs_kdtrace.h to sys/nfs/nfs_kdtrace.h so it can be used by the new NFS client as well as the old one. Added: head/sys/nfs/nfs_kdtrace.h - copied unchanged from r221541, head/sys/nfsclient/nfs_kdtrace.h Deleted: head/sys/nfsclient/nfs_kdtrace.h Modified: head/sys/nfsclient/nfs_bio.c head/sys/nfsclient/nfs_subs.c head/sys/nfsclient/nfs_vnops.c Copied: head/sys/nfs/nfs_kdtrace.h (from r221541, head/sys/nfsclient/nfs_kdtrace.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/nfs/nfs_kdtrace.h Fri May 6 20:02:19 2011 (r221543, copy of r221541, head/sys/nfsclient/nfs_kdtrace.h) @@ -0,0 +1,120 @@ +/*- + * Copyright (c) 2009 Robert N. M. Watson + * All rights reserved. + * + * This software was developed at the University of Cambridge Computer + * Laboratory with support from a grant from Google, Inc. + * + * 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$ + */ + +#ifndef _NFSCLIENT_NFS_KDTRACE_H_ +#define _NFSCLIENT_NFS_KDTRACE_H_ + +#ifdef KDTRACE_HOOKS +#include + +/* + * Definitions for NFS access cache probes. + */ +extern uint32_t nfsclient_accesscache_flush_done_id; +extern uint32_t nfsclient_accesscache_get_hit_id; +extern uint32_t nfsclient_accesscache_get_miss_id; +extern uint32_t nfsclient_accesscache_load_done_id; + +#define KDTRACE_NFS_ACCESSCACHE_FLUSH_DONE(vp) do { \ + if (dtrace_nfsclient_accesscache_flush_done_probe != NULL) \ + (dtrace_nfsclient_accesscache_flush_done_probe)( \ + nfsclient_accesscache_flush_done_id, (vp)); \ +} while (0) + +#define KDTRACE_NFS_ACCESSCACHE_GET_HIT(vp, uid, mode) do { \ + if (dtrace_nfsclient_accesscache_get_hit_probe != NULL) \ + (dtrace_nfsclient_accesscache_get_hit_probe)( \ + nfsclient_accesscache_get_hit_id, (vp), (uid), \ + (mode)); \ +} while (0) + +#define KDTRACE_NFS_ACCESSCACHE_GET_MISS(vp, uid, mode) do { \ + if (dtrace_nfsclient_accesscache_get_miss_probe != NULL) \ + (dtrace_nfsclient_accesscache_get_miss_probe)( \ + nfsclient_accesscache_get_miss_id, (vp), (uid), \ + (mode)); \ +} while (0) + +#define KDTRACE_NFS_ACCESSCACHE_LOAD_DONE(vp, uid, rmode, error) do { \ + if (dtrace_nfsclient_accesscache_load_done_probe != NULL) \ + (dtrace_nfsclient_accesscache_load_done_probe)( \ + nfsclient_accesscache_load_done_id, (vp), (uid), \ + (rmode), (error)); \ +} while (0) + +/* + * Definitions for NFS attribute cache probes. + */ +extern uint32_t nfsclient_attrcache_flush_done_id; +extern uint32_t nfsclient_attrcache_get_hit_id; +extern uint32_t nfsclient_attrcache_get_miss_id; +extern uint32_t nfsclient_attrcache_load_done_id; + +#define KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp) do { \ + if (dtrace_nfsclient_attrcache_flush_done_probe != NULL) \ + (dtrace_nfsclient_attrcache_flush_done_probe)( \ + nfsclient_attrcache_flush_done_id, (vp)); \ +} while (0) + +#define KDTRACE_NFS_ATTRCACHE_GET_HIT(vp, vap) do { \ + if (dtrace_nfsclient_attrcache_get_hit_probe != NULL) \ + (dtrace_nfsclient_attrcache_get_hit_probe)( \ + nfsclient_attrcache_get_hit_id, (vp), (vap)); \ +} while (0) + +#define KDTRACE_NFS_ATTRCACHE_GET_MISS(vp) do { \ + if (dtrace_nfsclient_attrcache_get_miss_probe != NULL) \ + (dtrace_nfsclient_attrcache_get_miss_probe)( \ + nfsclient_attrcache_get_miss_id, (vp)); \ +} while (0) + +#define KDTRACE_NFS_ATTRCACHE_LOAD_DONE(vp, vap, error) do { \ + if (dtrace_nfsclient_attrcache_load_done_probe != NULL) \ + (dtrace_nfsclient_attrcache_load_done_probe)( \ + nfsclient_attrcache_load_done_id, (vp), (vap), \ + (error)); \ +} while (0) + +#else /* !KDTRACE_HOOKS */ + +#define KDTRACE_NFS_ACCESSCACHE_FLUSH_DONE(vp) +#define KDTRACE_NFS_ACCESSCACHE_GET_HIT(vp, uid, mode) +#define KDTRACE_NFS_ACCESSCACHE_GET_MISS(vp, uid, mode) +#define KDTRACE_NFS_ACCESSCACHE_LOAD_DONE(vp, uid, rmode, error) + +#define KDTRACE_NFS_ATTRCACHE_FLUSH_DONE(vp) +#define KDTRACE_NFS_ATTRCACHE_GET_HIT(vp, vap) +#define KDTRACE_NFS_ATTRCACHE_GET_MISS(vp) +#define KDTRACE_NFS_ATTRCACHE_LOAD_DONE(vp, vap, error) + +#endif /* KDTRACE_HOOKS */ + +#endif /* !_NFSCLIENT_NFS_KDTRACE_H_ */ Modified: head/sys/nfsclient/nfs_bio.c ============================================================================== --- head/sys/nfsclient/nfs_bio.c Fri May 6 19:55:15 2011 (r221542) +++ head/sys/nfsclient/nfs_bio.c Fri May 6 20:02:19 2011 (r221543) @@ -59,7 +59,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include static struct buf *nfs_getcacheblk(struct vnode *vp, daddr_t bn, int size, struct thread *td); Modified: head/sys/nfsclient/nfs_subs.c ============================================================================== --- head/sys/nfsclient/nfs_subs.c Fri May 6 19:55:15 2011 (r221542) +++ head/sys/nfsclient/nfs_subs.c Fri May 6 20:02:19 2011 (r221543) @@ -69,7 +69,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include Modified: head/sys/nfsclient/nfs_vnops.c ============================================================================== --- head/sys/nfsclient/nfs_vnops.c Fri May 6 19:55:15 2011 (r221542) +++ head/sys/nfsclient/nfs_vnops.c Fri May 6 20:02:19 2011 (r221543) @@ -74,7 +74,7 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include #include From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:26:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE991106566B; Fri, 6 May 2011 20:26:05 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 4DF688FC0A; Fri, 6 May 2011 20:26:05 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id 897AF1FFC35; Fri, 6 May 2011 20:26:04 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 58EE0845CA; Fri, 6 May 2011 22:26:04 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Rick Macklem References: <1966116316.1117177.1304701324549.JavaMail.root@erie.cs.uoguelph.ca> Date: Fri, 06 May 2011 22:26:04 +0200 In-Reply-To: <1966116316.1117177.1304701324549.JavaMail.root@erie.cs.uoguelph.ca> (Rick Macklem's message of "Fri, 6 May 2011 13:02:04 -0400 (EDT)") Message-ID: <8662pnzicj.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:26:05 -0000 Rick Macklem writes: > My problem is that I don't know how to deal with two modules with > the same name. Why do they have to have the same name? All that matters is the fstype and the sysctls. Just make sure that the auto-load logic loads the new stack and not the old one if neither is loaded already. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:37:08 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 035731065672; Fri, 6 May 2011 20:37:08 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E6BEA8FC13; Fri, 6 May 2011 20:37:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46Kb75e065080; Fri, 6 May 2011 20:37:07 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46Kb7AT065078; Fri, 6 May 2011 20:37:07 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062037.p46Kb7AT065078@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 20:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221548 - head/sys/net X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:37:08 -0000 Author: yongari Date: Fri May 6 20:37:07 2011 New Revision: 221548 URL: http://svn.freebsd.org/changeset/base/221548 Log: Do not increment collision counter if transmit have failed. Transmission error in tun(4) is queueing error(i.e. ENOBUFS) and it has nothing to do with collision. Reported by: Zeus V Panchenko (zeus <> ibs dot dn dot ua) Modified: head/sys/net/if_tun.c Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Fri May 6 20:04:47 2011 (r221547) +++ head/sys/net/if_tun.c Fri May 6 20:37:07 2011 (r221548) @@ -661,10 +661,8 @@ tunoutput( } error = (ifp->if_transmit)(ifp, m0); - if (error) { - ifp->if_collisions++; + if (error) return (ENOBUFS); - } ifp->if_opackets++; return (0); } From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:40:33 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA180106566B; Fri, 6 May 2011 20:40:33 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D97478FC14; Fri, 6 May 2011 20:40:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46KeX2V065220; Fri, 6 May 2011 20:40:33 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46KeX9D065218; Fri, 6 May 2011 20:40:33 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201105062040.p46KeX9D065218@svn.freebsd.org> From: Michael Tuexen Date: Fri, 6 May 2011 20:40:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221549 - head/sys/netinet X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:40:34 -0000 Author: tuexen Date: Fri May 6 20:40:33 2011 New Revision: 221549 URL: http://svn.freebsd.org/changeset/base/221549 Log: Change the name of an internal structure, since the name is used by a structure of the (new) SCTP API. MFC after: 1 week. Modified: head/sys/netinet/sctp_auth.h Modified: head/sys/netinet/sctp_auth.h ============================================================================== --- head/sys/netinet/sctp_auth.h Fri May 6 20:37:07 2011 (r221548) +++ head/sys/netinet/sctp_auth.h Fri May 6 20:40:33 2011 (r221549) @@ -89,7 +89,7 @@ typedef struct sctp_hmaclist { } sctp_hmaclist_t; /* authentication info */ -typedef struct sctp_authinfo { +typedef struct sctp_authinformation { sctp_key_t *random; /* local random key (concatenated) */ uint32_t random_len; /* local random number length for param */ sctp_key_t *peer_random;/* peer's random key (concatenated) */ @@ -98,7 +98,7 @@ typedef struct sctp_authinfo { uint16_t active_keyid; /* active send keyid */ uint16_t assoc_keyid; /* current send keyid (cached) */ uint16_t recv_keyid; /* last recv keyid (cached) */ -} sctp_authinfo_t; +} sctp_authinfo_t; From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:43:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C185106564A; Fri, 6 May 2011 20:43:02 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5B0AD8FC08; Fri, 6 May 2011 20:43:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46Kh2df065322; Fri, 6 May 2011 20:43:02 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46Kh2Vs065320; Fri, 6 May 2011 20:43:02 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201105062043.p46Kh2Vs065320@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 6 May 2011 20:43:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221550 - head/sys/powerpc/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:43:02 -0000 Author: nwhitehorn Date: Fri May 6 20:43:02 2011 New Revision: 221550 URL: http://svn.freebsd.org/changeset/base/221550 Log: SMP has worked perfectly for a very long time on 32-bit PowerPC on both UP and SMP hardware. Enable it in GENERIC. MFC after: 2 weeks Modified: head/sys/powerpc/conf/GENERIC Modified: head/sys/powerpc/conf/GENERIC ============================================================================== --- head/sys/powerpc/conf/GENERIC Fri May 6 20:40:33 2011 (r221549) +++ head/sys/powerpc/conf/GENERIC Fri May 6 20:43:02 2011 (r221550) @@ -77,7 +77,7 @@ options WITNESS_SKIPSPIN #Don't run wit options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones # To make an SMP kernel, the next line is needed -#options SMP # Symmetric MultiProcessor Kernel +options SMP # Symmetric MultiProcessor Kernel # CPU frequency control device cpufreq From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:45:50 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FD7E1065679; Fri, 6 May 2011 20:45:50 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5EE668FC0A; Fri, 6 May 2011 20:45:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46KjoMi065465; Fri, 6 May 2011 20:45:50 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46KjoUV065463; Fri, 6 May 2011 20:45:50 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201105062045.p46KjoUV065463@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 6 May 2011 20:45:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221551 - head/bin/sh X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:45:50 -0000 Author: jilles Date: Fri May 6 20:45:50 2011 New Revision: 221551 URL: http://svn.freebsd.org/changeset/base/221551 Log: sh: Change the CTL* bytes to ones invalid in UTF-8. This ensures that mbrtowc(3) can be used directly once it has been verified that there is no CTL* byte. Dealing with a CTLESC byte within a multibyte character would be complicated. The new values do occur in iso-8859-* encodings. This decreases efficiency slightly but should not affect correctness. Caveat: Updating across this change and rebuilding without cleaning may yield a subtly broken sh binary. By default, make buildworld will clean and avoid problems. Modified: head/bin/sh/parser.h Modified: head/bin/sh/parser.h ============================================================================== --- head/bin/sh/parser.h Fri May 6 20:43:02 2011 (r221550) +++ head/bin/sh/parser.h Fri May 6 20:45:50 2011 (r221551) @@ -34,16 +34,16 @@ */ /* control characters in argument strings */ -#define CTLESC '\201' -#define CTLVAR '\202' -#define CTLENDVAR '\203' -#define CTLBACKQ '\204' +#define CTLESC '\300' +#define CTLVAR '\301' +#define CTLENDVAR '\371' +#define CTLBACKQ '\372' #define CTLQUOTE 01 /* ored with CTLBACKQ code if in quotes */ /* CTLBACKQ | CTLQUOTE == '\205' */ -#define CTLARI '\206' -#define CTLENDARI '\207' -#define CTLQUOTEMARK '\210' -#define CTLQUOTEEND '\211' /* only for ${v+-...} */ +#define CTLARI '\374' +#define CTLENDARI '\375' +#define CTLQUOTEMARK '\376' +#define CTLQUOTEEND '\377' /* only for ${v+-...} */ /* variable substitution byte (follows CTLVAR) */ #define VSTYPE 0x0f /* type of variable substitution */ From owner-svn-src-head@FreeBSD.ORG Fri May 6 20:46:29 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE0851065670; Fri, 6 May 2011 20:46:29 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DCF3F8FC15; Fri, 6 May 2011 20:46:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46KkTD3065525; Fri, 6 May 2011 20:46:29 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46KkTEH065523; Fri, 6 May 2011 20:46:29 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062046.p46KkTEH065523@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 20:46:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221552 - head/sys/net X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 20:46:30 -0000 Author: yongari Date: Fri May 6 20:46:29 2011 New Revision: 221552 URL: http://svn.freebsd.org/changeset/base/221552 Log: Fix white space nits and style Modified: head/sys/net/if_tun.c Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Fri May 6 20:45:50 2011 (r221551) +++ head/sys/net/if_tun.c Fri May 6 20:46:29 2011 (r221552) @@ -228,8 +228,8 @@ tunclone(void *arg, struct ucred *cred, i = clone_create(&tunclones, &tun_cdevsw, &u, dev, 0); if (i) { if (append_unit) { - namelen = snprintf(devname, sizeof(devname), "%s%d", name, - u); + namelen = snprintf(devname, sizeof(devname), "%s%d", + name, u); name = devname; } /* No preexisting struct cdev *, create one */ @@ -577,11 +577,8 @@ tunifioctl(struct ifnet *ifp, u_long cmd * tunoutput - queue packets from higher level ready to put out. */ static int -tunoutput( - struct ifnet *ifp, - struct mbuf *m0, - struct sockaddr *dst, - struct route *ro) +tunoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, + struct route *ro) { struct tun_softc *tp = ifp->if_softc; u_short cached_tun_flags; @@ -671,7 +668,8 @@ tunoutput( * the cdevsw interface is now pretty minimal. */ static int -tunioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td) +tunioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, + struct thread *td) { int error; struct tun_softc *tp = dev->si_drv1; @@ -993,7 +991,7 @@ tunkqfilter(struct cdev *dev, struct kno ifp->if_xname, dev2unit(dev)); kn->kn_fop = &tun_write_filterops; break; - + default: TUNDEBUG(ifp, "%s kqfilter: invalid filter, minor = %#x\n", ifp->if_xname, dev2unit(dev)); From owner-svn-src-head@FreeBSD.ORG Fri May 6 21:06:08 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3889106564A; Fri, 6 May 2011 21:06:08 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from esa-annu.mail.uoguelph.ca (esa-annu.mail.uoguelph.ca [131.104.91.36]) by mx1.freebsd.org (Postfix) with ESMTP id 3868F8FC16; Fri, 6 May 2011 21:06:08 +0000 (UTC) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwEAIVhxE2DaFvO/2dsb2JhbACEU6JCiHGrGpB5gSqDXoEBBI9YhxuHVQ X-IronPort-AV: E=Sophos;i="4.64,328,1301889600"; d="scan'208";a="119901669" Received: from erie.cs.uoguelph.ca (HELO zcs3.mail.uoguelph.ca) ([131.104.91.206]) by esa-annu-pri.mail.uoguelph.ca with ESMTP; 06 May 2011 17:06:07 -0400 Received: from zcs3.mail.uoguelph.ca (localhost.localdomain [127.0.0.1]) by zcs3.mail.uoguelph.ca (Postfix) with ESMTP id 31947793A7; Fri, 6 May 2011 17:06:07 -0400 (EDT) Date: Fri, 6 May 2011 17:06:07 -0400 (EDT) From: Rick Macklem To: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= Message-ID: <1202195776.1136829.1304715967146.JavaMail.root@erie.cs.uoguelph.ca> In-Reply-To: <8662pnzicj.fsf@ds4.des.no> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [172.17.91.203] X-Mailer: Zimbra 6.0.10_GA_2692 (ZimbraWebClient - IE7 (Win)/6.0.10_GA_2692) Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 21:06:09 -0000 > Rick Macklem writes: > > My problem is that I don't know how to deal with two modules with > > the same name. > > Why do they have to have the same name? All that matters is the fstype > and the sysctls. Just make sure that the auto-load logic loads the new > stack and not the old one if neither is loaded already. > Well, the main auto-load logic is the (n)mount(2) syscall and it does a vfs_byname_kld(fstype, td, errp), which calls kern_kldload(td, fstype, &fileid) to load the module. The argument is the "fstype", so that is what is used to find/load the module. The way sys/nfsclient is set up (and I think this is the norm for file systems), the module name is the fstype name, because VFS_SET(nfs_vfsops, oldnfs, VFCF_NETWORK); (There is a DECLARE_MODULE() in this macro and it uses the 2nd arg. to set the module name, same as the fstype name. Just take a look at the VFS_SET() macro in sys/mount.h.) defines the module name as the 2nd argument, which is also the fstype. (You can give it another "name" via DECLARE_MODULE(), although I'm not sure if that it considered correct to do, but it will be the "fstype" that the mount(2) syscall will use to try and load it.) rick From owner-svn-src-head@FreeBSD.ORG Fri May 6 21:25:37 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D58D11065670; Fri, 6 May 2011 21:25:37 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 5175B8FC12; Fri, 6 May 2011 21:25:37 +0000 (UTC) Received: by ywf7 with SMTP id 7so1685340ywf.13 for ; Fri, 06 May 2011 14:25:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=BmwGvuTQN/TW4Zgw6Y8f8BBU/DmpKZPJsFIekdC9M9o=; b=KLVXjW8Ei0A/f4b2fXUHFIEieEsHprn7pPnGsb+oPe9wvjt7Ev+8d5jdCDSqAXOmqT HXJiNPEI9KcBIlgkMukJ4A6ZBK3m0yv/MoViQkTDUQX45IOVC5Q/NPYEXjXXjuRO0jf3 fPF0QL5nhKtIktAjJsLSkrhwmtjud+AluiELk= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=k/7TuRAUmZdz0VDpXvrB4bZjqjkjV7lV8BcX4uyuj6DdH9CoxWM+XGtCFncXpR98GC fSAkzQQKnZY4lmT8Bn85P/ZHKgzh7Xn500xAp+GwPXiK2KZNPgxpVW/VpSd6OLObj23k SVLwJEA0GEvfty22mcooWJONkFXggGdgiON2g= MIME-Version: 1.0 Received: by 10.236.77.228 with SMTP id d64mr439316yhe.305.1304717136716; Fri, 06 May 2011 14:25:36 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.236.111.33 with HTTP; Fri, 6 May 2011 14:25:36 -0700 (PDT) In-Reply-To: <201105062043.p46Kh2Vs065320@svn.freebsd.org> References: <201105062043.p46Kh2Vs065320@svn.freebsd.org> Date: Fri, 6 May 2011 17:25:36 -0400 X-Google-Sender-Auth: kw4U8mO7VcyRAgvf8eoh0-M7UpY Message-ID: From: Attilio Rao To: Nathan Whitehorn Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221550 - head/sys/powerpc/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 21:25:37 -0000 2011/5/6 Nathan Whitehorn : > Author: nwhitehorn > Date: Fri May =C2=A06 20:43:02 2011 > New Revision: 221550 > URL: http://svn.freebsd.org/changeset/base/221550 > > Log: > =C2=A0SMP has worked perfectly for a very long time on 32-bit PowerPC on = both > =C2=A0UP and SMP hardware. Enable it in GENERIC. > While working on largeSMP, I think there is a breakage in atomic.h. More specifically, atomic_store_rel_long() (and related functions) are not going to properly work because powerpc defines them as: atomic_store_rel_long -> atomic_store_rel_32(volatile u_int *p, u_int v) while this should really follow the long arguments. This happens because powerpc doesn't follow the other architectures semantic on defining the "similar" atomic operations. Other arches define an hardcode version of _type version of the function and than make a macro the _32 (or whatever) version. In other words this is what they do: void atomic_store_rel_32() { ... } #define atomic_store_rel_int atomic_store_rel_32 which si clearly dangerous for cases as reported above. Maybe that could be fixed by passing sized types, rather than simply int or long in numbered version, but I'd really prefer to follow the semantic by other architectures and then have: void atomic_store_rel_int() { ... } #define atomic_store_rel_32 atomic_store_rel_int I fixed the ATOMIC_STORE_LOAD case in my code, because I needed it, but the final cleanup is much bigger. I can make a patch tomorrow if you can test it. Attilio --=20 Peace can only be achieved by understanding - A. Einstein From owner-svn-src-head@FreeBSD.ORG Fri May 6 21:26:06 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 14C5B106564A; Fri, 6 May 2011 21:26:06 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 92A4F8FC12; Fri, 6 May 2011 21:26:05 +0000 (UTC) Received: from ds4.des.no (des.no [84.49.246.2]) by smtp.des.no (Postfix) with ESMTP id C96611FFC58; Fri, 6 May 2011 21:26:04 +0000 (UTC) Received: by ds4.des.no (Postfix, from userid 1001) id 9BC04844FE; Fri, 6 May 2011 23:26:04 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Rick Macklem References: <1202195776.1136829.1304715967146.JavaMail.root@erie.cs.uoguelph.ca> Date: Fri, 06 May 2011 23:26:04 +0200 In-Reply-To: <1202195776.1136829.1304715967146.JavaMail.root@erie.cs.uoguelph.ca> (Rick Macklem's message of "Fri, 6 May 2011 17:06:07 -0400 (EDT)") Message-ID: <86tyd7r05v.fsf@ds4.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, Rick Macklem , svn-src-all@freebsd.org, src-committers@freebsd.org, Pawel Jakub Dawidek Subject: Re: svn commit: r221124 - in head: . sbin/mount sbin/mount_nfs sys/amd64/conf sys/fs/nfsclient sys/i386/conf sys/ia64/conf sys/nfsclient sys/pc98/conf sys/powerpc/conf sys/sparc64/conf sys/sun4v/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 21:26:06 -0000 So, how about % cd /usr/src/sys % svn rm nfsclient ? :) DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:01:47 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5539E1065670; Fri, 6 May 2011 22:01:47 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 37FC28FC0A; Fri, 6 May 2011 22:01:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46M1lKW068048; Fri, 6 May 2011 22:01:47 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46M1lq0068046; Fri, 6 May 2011 22:01:47 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062201.p46M1lq0068046@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 22:01:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221555 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:01:47 -0000 Author: yongari Date: Fri May 6 22:01:46 2011 New Revision: 221555 URL: http://svn.freebsd.org/changeset/base/221555 Log: Rewrite RX filter logic and provide controller specific filter handler for 3C90x and 3C90xB/C respectively. This simplifies ioctl handler as well as enhancing readability. While I'm here don't reprogram multicast filter when driver is not running. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 21:53:29 2011 (r221554) +++ head/sys/dev/xl/if_xl.c Fri May 6 22:01:46 2011 (r221555) @@ -263,10 +263,11 @@ static void xl_mii_send(struct xl_softc static int xl_mii_readreg(struct xl_softc *, struct xl_mii_frame *); static int xl_mii_writereg(struct xl_softc *, struct xl_mii_frame *); +static void xl_rxfilter(struct xl_softc *); +static void xl_rxfilter_90x(struct xl_softc *); +static void xl_rxfilter_90xB(struct xl_softc *); static void xl_setcfg(struct xl_softc *); static void xl_setmode(struct xl_softc *, int); -static void xl_setmulti(struct xl_softc *); -static void xl_setmulti_hash(struct xl_softc *); static void xl_reset(struct xl_softc *); static int xl_list_rx_init(struct xl_softc *); static int xl_list_tx_init(struct xl_softc *); @@ -701,101 +702,133 @@ xl_read_eeprom(struct xl_softc *sc, cadd return (err ? 1 : 0); } +static void +xl_rxfilter(struct xl_softc *sc) +{ + + if (sc->xl_type == XL_TYPE_905B) + xl_rxfilter_90xB(sc); + else + xl_rxfilter_90x(sc); +} + /* * NICs older than the 3c905B have only one multicast option, which * is to enable reception of all multicast frames. */ static void -xl_setmulti(struct xl_softc *sc) +xl_rxfilter_90x(struct xl_softc *sc) { - struct ifnet *ifp = sc->xl_ifp; + struct ifnet *ifp; struct ifmultiaddr *ifma; u_int8_t rxfilt; - int mcnt = 0; XL_LOCK_ASSERT(sc); + ifp = sc->xl_ifp; + XL_SEL_WIN(5); rxfilt = CSR_READ_1(sc, XL_W5_RX_FILTER); + rxfilt &= ~(XL_RXFILTER_ALLFRAMES | XL_RXFILTER_ALLMULTI | + XL_RXFILTER_BROADCAST | XL_RXFILTER_INDIVIDUAL); - if (ifp->if_flags & IFF_ALLMULTI) { - rxfilt |= XL_RXFILTER_ALLMULTI; - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); - return; - } - - if_maddr_rlock(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) - mcnt++; - if_maddr_runlock(ifp); + /* Set the individual bit to receive frames for this host only. */ + rxfilt |= XL_RXFILTER_INDIVIDUAL; + /* Set capture broadcast bit to capture broadcast frames. */ + if (ifp->if_flags & IFF_BROADCAST) + rxfilt |= XL_RXFILTER_BROADCAST; - if (mcnt) - rxfilt |= XL_RXFILTER_ALLMULTI; - else - rxfilt &= ~XL_RXFILTER_ALLMULTI; + /* If we want promiscuous mode, set the allframes bit. */ + if (ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI)) { + if (ifp->if_flags & IFF_PROMISC) + rxfilt |= XL_RXFILTER_ALLFRAMES; + if (ifp->if_flags & IFF_ALLMULTI) + rxfilt |= XL_RXFILTER_ALLMULTI; + } else { + if_maddr_rlock(ifp); + TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + rxfilt |= XL_RXFILTER_ALLMULTI; + break; + } + if_maddr_runlock(ifp); + } - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); + CSR_WRITE_2(sc, XL_COMMAND, rxfilt | XL_CMD_RX_SET_FILT); + XL_SEL_WIN(7); } /* * 3c905B adapters have a hash filter that we can program. */ static void -xl_setmulti_hash(struct xl_softc *sc) +xl_rxfilter_90xB(struct xl_softc *sc) { - struct ifnet *ifp = sc->xl_ifp; - int h = 0, i; + struct ifnet *ifp; struct ifmultiaddr *ifma; + int i, mcnt; + u_int16_t h; u_int8_t rxfilt; - int mcnt = 0; XL_LOCK_ASSERT(sc); + ifp = sc->xl_ifp; + XL_SEL_WIN(5); rxfilt = CSR_READ_1(sc, XL_W5_RX_FILTER); + rxfilt &= ~(XL_RXFILTER_ALLFRAMES | XL_RXFILTER_ALLMULTI | + XL_RXFILTER_BROADCAST | XL_RXFILTER_INDIVIDUAL | + XL_RXFILTER_MULTIHASH); - if (ifp->if_flags & IFF_ALLMULTI) { - rxfilt |= XL_RXFILTER_ALLMULTI; - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); - return; - } else - rxfilt &= ~XL_RXFILTER_ALLMULTI; + /* Set the individual bit to receive frames for this host only. */ + rxfilt |= XL_RXFILTER_INDIVIDUAL; + /* Set capture broadcast bit to capture broadcast frames. */ + if (ifp->if_flags & IFF_BROADCAST) + rxfilt |= XL_RXFILTER_BROADCAST; - /* first, zot all the existing hash bits */ - for (i = 0; i < XL_HASHFILT_SIZE; i++) - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_HASH|i); - - /* now program new ones */ - if_maddr_rlock(ifp); - TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { - if (ifma->ifma_addr->sa_family != AF_LINK) - continue; - /* - * Note: the 3c905B currently only supports a 64-bit hash - * table, which means we really only need 6 bits, but the - * manual indicates that future chip revisions will have a - * 256-bit hash table, hence the routine is set up to - * calculate 8 bits of position info in case we need it some - * day. - * Note II, The Sequel: _CURRENT_ versions of the 3c905B have - * a 256 bit hash table. This means we have to use all 8 bits - * regardless. On older cards, the upper 2 bits will be - * ignored. Grrrr.... - */ - h = ether_crc32_be(LLADDR((struct sockaddr_dl *) - ifma->ifma_addr), ETHER_ADDR_LEN) & 0xFF; - CSR_WRITE_2(sc, XL_COMMAND, - h | XL_CMD_RX_SET_HASH | XL_HASH_SET); - mcnt++; + /* If we want promiscuous mode, set the allframes bit. */ + if (ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI)) { + if (ifp->if_flags & IFF_PROMISC) + rxfilt |= XL_RXFILTER_ALLFRAMES; + if (ifp->if_flags & IFF_ALLMULTI) + rxfilt |= XL_RXFILTER_ALLMULTI; + } else { + /* First, zot all the existing hash bits. */ + for (i = 0; i < XL_HASHFILT_SIZE; i++) + CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_HASH | i); + + /* Now program new ones. */ + mcnt = 0; + if_maddr_rlock(ifp); + TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + /* + * Note: the 3c905B currently only supports a 64-bit + * hash table, which means we really only need 6 bits, + * but the manual indicates that future chip revisions + * will have a 256-bit hash table, hence the routine + * is set up to calculate 8 bits of position info in + * case we need it some day. + * Note II, The Sequel: _CURRENT_ versions of the + * 3c905B have a 256 bit hash table. This means we have + * to use all 8 bits regardless. On older cards, the + * upper 2 bits will be ignored. Grrrr.... + */ + h = ether_crc32_be(LLADDR((struct sockaddr_dl *) + ifma->ifma_addr), ETHER_ADDR_LEN) & 0xFF; + CSR_WRITE_2(sc, XL_COMMAND, + h | XL_CMD_RX_SET_HASH | XL_HASH_SET); + mcnt++; + } + if_maddr_runlock(ifp); + if (mcnt > 0) + rxfilt |= XL_RXFILTER_MULTIHASH; } - if_maddr_runlock(ifp); - - if (mcnt) - rxfilt |= XL_RXFILTER_MULTIHASH; - else - rxfilt &= ~XL_RXFILTER_MULTIHASH; CSR_WRITE_2(sc, XL_COMMAND, rxfilt | XL_CMD_RX_SET_FILT); + XL_SEL_WIN(7); } static void @@ -2763,7 +2796,6 @@ xl_init_locked(struct xl_softc *sc) { struct ifnet *ifp = sc->xl_ifp; int error, i; - u_int16_t rxfilt = 0; struct mii_data *mii = NULL; XL_LOCK_ASSERT(sc); @@ -2862,39 +2894,7 @@ xl_init_locked(struct xl_softc *sc) } /* Set RX filter bits. */ - XL_SEL_WIN(5); - rxfilt = CSR_READ_1(sc, XL_W5_RX_FILTER); - - /* Set the individual bit to receive frames for this host only. */ - rxfilt |= XL_RXFILTER_INDIVIDUAL; - - /* If we want promiscuous mode, set the allframes bit. */ - if (ifp->if_flags & IFF_PROMISC) { - rxfilt |= XL_RXFILTER_ALLFRAMES; - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); - } else { - rxfilt &= ~XL_RXFILTER_ALLFRAMES; - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); - } - - /* - * Set capture broadcast bit to capture broadcast frames. - */ - if (ifp->if_flags & IFF_BROADCAST) { - rxfilt |= XL_RXFILTER_BROADCAST; - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); - } else { - rxfilt &= ~XL_RXFILTER_BROADCAST; - CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_FILT|rxfilt); - } - - /* - * Program the multicast filter, if necessary. - */ - if (sc->xl_type == XL_TYPE_905B) - xl_setmulti_hash(sc); - else - xl_setmulti(sc); + xl_rxfilter(sc); /* * Load the address of the RX list. We have to @@ -3123,30 +3123,16 @@ xl_ioctl(struct ifnet *ifp, u_long comma struct ifreq *ifr = (struct ifreq *) data; int error = 0, mask; struct mii_data *mii = NULL; - u_int8_t rxfilt; switch (command) { case SIOCSIFFLAGS: XL_LOCK(sc); - - XL_SEL_WIN(5); - rxfilt = CSR_READ_1(sc, XL_W5_RX_FILTER); if (ifp->if_flags & IFF_UP) { if (ifp->if_drv_flags & IFF_DRV_RUNNING && - ifp->if_flags & IFF_PROMISC && - !(sc->xl_if_flags & IFF_PROMISC)) { - rxfilt |= XL_RXFILTER_ALLFRAMES; - CSR_WRITE_2(sc, XL_COMMAND, - XL_CMD_RX_SET_FILT|rxfilt); - XL_SEL_WIN(7); - } else if (ifp->if_drv_flags & IFF_DRV_RUNNING && - !(ifp->if_flags & IFF_PROMISC) && - sc->xl_if_flags & IFF_PROMISC) { - rxfilt &= ~XL_RXFILTER_ALLFRAMES; - CSR_WRITE_2(sc, XL_COMMAND, - XL_CMD_RX_SET_FILT|rxfilt); - XL_SEL_WIN(7); - } else + (ifp->if_flags ^ sc->xl_if_flags) & + (IFF_PROMISC | IFF_ALLMULTI)) + xl_rxfilter(sc); + else xl_init_locked(sc); } else { if (ifp->if_drv_flags & IFF_DRV_RUNNING) @@ -3154,18 +3140,14 @@ xl_ioctl(struct ifnet *ifp, u_long comma } sc->xl_if_flags = ifp->if_flags; XL_UNLOCK(sc); - error = 0; break; case SIOCADDMULTI: case SIOCDELMULTI: /* XXX Downcall from if_addmulti() possibly with locks held. */ XL_LOCK(sc); - if (sc->xl_type == XL_TYPE_905B) - xl_setmulti_hash(sc); - else - xl_setmulti(sc); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) + xl_rxfilter(sc); XL_UNLOCK(sc); - error = 0; break; case SIOCGIFMEDIA: case SIOCSIFMEDIA: From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:16:43 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D94981065673; Fri, 6 May 2011 22:16:43 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ADAC48FC23; Fri, 6 May 2011 22:16:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46MGhaO068574; Fri, 6 May 2011 22:16:43 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46MGht2068572; Fri, 6 May 2011 22:16:43 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062216.p46MGht2068572@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 22:16:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221557 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:16:44 -0000 Author: yongari Date: Fri May 6 22:16:43 2011 New Revision: 221557 URL: http://svn.freebsd.org/changeset/base/221557 Log: Remove unnecessary htole32/le32toh dance. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 22:07:31 2011 (r221556) +++ head/sys/dev/xl/if_xl.c Fri May 6 22:16:43 2011 (r221557) @@ -2518,8 +2518,7 @@ xl_encap(struct xl_softc *sc, struct xl_ htole32(sc->xl_cdata.xl_tx_segs[i].ds_len); total_len += sc->xl_cdata.xl_tx_segs[i].ds_len; } - c->xl_ptr->xl_frag[nseg - 1].xl_len = - htole32(sc->xl_cdata.xl_tx_segs[nseg - 1].ds_len | XL_LAST_FRAG); + c->xl_ptr->xl_frag[nseg - 1].xl_len |= htole32(XL_LAST_FRAG); c->xl_ptr->xl_status = htole32(total_len); c->xl_ptr->xl_next = 0; @@ -2644,8 +2643,7 @@ xl_start_locked(struct ifnet *ifp) * get an interrupt once for the whole chain rather than * once for each packet. */ - cur_tx->xl_ptr->xl_status = htole32(le32toh(cur_tx->xl_ptr->xl_status) | - XL_TXSTAT_DL_INTR); + cur_tx->xl_ptr->xl_status |= htole32(XL_TXSTAT_DL_INTR); bus_dmamap_sync(sc->xl_ldata.xl_tx_tag, sc->xl_ldata.xl_tx_dmamap, BUS_DMASYNC_PREWRITE); @@ -2661,8 +2659,8 @@ xl_start_locked(struct ifnet *ifp) sc->xl_cdata.xl_tx_tail->xl_ptr->xl_next = htole32(start_tx->xl_phys); status = sc->xl_cdata.xl_tx_tail->xl_ptr->xl_status; - sc->xl_cdata.xl_tx_tail->xl_ptr->xl_status = - htole32(le32toh(status) & ~XL_TXSTAT_DL_INTR); + sc->xl_cdata.xl_tx_tail->xl_ptr->xl_status &= + htole32(~XL_TXSTAT_DL_INTR); sc->xl_cdata.xl_tx_tail = cur_tx; } else { sc->xl_cdata.xl_tx_head = start_tx; @@ -2766,8 +2764,7 @@ xl_start_90xB_locked(struct ifnet *ifp) * get an interrupt once for the whole chain rather than * once for each packet. */ - cur_tx->xl_ptr->xl_status = htole32(le32toh(cur_tx->xl_ptr->xl_status) | - XL_TXSTAT_DL_INTR); + cur_tx->xl_ptr->xl_status |= htole32(XL_TXSTAT_DL_INTR); bus_dmamap_sync(sc->xl_ldata.xl_tx_tag, sc->xl_ldata.xl_tx_dmamap, BUS_DMASYNC_PREWRITE); From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:26:57 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B59B7106566C; Fri, 6 May 2011 22:26:57 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A48F78FC13; Fri, 6 May 2011 22:26:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46MQvKR069084; Fri, 6 May 2011 22:26:57 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46MQvJT069082; Fri, 6 May 2011 22:26:57 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062226.p46MQvJT069082@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 22:26:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221558 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:26:57 -0000 Author: yongari Date: Fri May 6 22:26:57 2011 New Revision: 221558 URL: http://svn.freebsd.org/changeset/base/221558 Log: Set status word once instead of twice. For 3C90xB/3C90xC, frame length of status word is ignored. While here move bus_dmamap_sync() up where DMA map is loaded. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 22:16:43 2011 (r221557) +++ head/sys/dev/xl/if_xl.c Fri May 6 22:26:57 2011 (r221558) @@ -2507,6 +2507,7 @@ xl_encap(struct xl_softc *sc, struct xl_ *m_head = NULL; return (EIO); } + bus_dmamap_sync(sc->xl_mtag, c->xl_map, BUS_DMASYNC_PREWRITE); total_len = 0; for (i = 0; i < nseg; i++) { @@ -2519,8 +2520,6 @@ xl_encap(struct xl_softc *sc, struct xl_ total_len += sc->xl_cdata.xl_tx_segs[i].ds_len; } c->xl_ptr->xl_frag[nseg - 1].xl_len |= htole32(XL_LAST_FRAG); - c->xl_ptr->xl_status = htole32(total_len); - c->xl_ptr->xl_next = 0; if (sc->xl_type == XL_TYPE_905B) { status = XL_TXSTAT_RND_DEFEAT; @@ -2535,11 +2534,12 @@ xl_encap(struct xl_softc *sc, struct xl_ status |= XL_TXSTAT_UDPCKSUM; } #endif - c->xl_ptr->xl_status = htole32(status); - } + } else + status = total_len; + c->xl_ptr->xl_status = htole32(status); + c->xl_ptr->xl_next = 0; c->xl_mbuf = *m_head; - bus_dmamap_sync(sc->xl_mtag, c->xl_map, BUS_DMASYNC_PREWRITE); return (0); } From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:31:27 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F4A9106564A; Fri, 6 May 2011 22:31:27 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7DE688FC08; Fri, 6 May 2011 22:31:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46MVRuB069250; Fri, 6 May 2011 22:31:27 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46MVRjp069246; Fri, 6 May 2011 22:31:27 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201105062231.p46MVRjp069246@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 6 May 2011 22:31:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221559 - head/bin/sh X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:31:27 -0000 Author: jilles Date: Fri May 6 22:31:27 2011 New Revision: 221559 URL: http://svn.freebsd.org/changeset/base/221559 Log: sh: Track if the current locale's charset is UTF-8 or not. Modified: head/bin/sh/main.c head/bin/sh/var.c head/bin/sh/var.h Modified: head/bin/sh/main.c ============================================================================== --- head/bin/sh/main.c Fri May 6 22:26:57 2011 (r221558) +++ head/bin/sh/main.c Fri May 6 22:31:27 2011 (r221559) @@ -76,6 +76,7 @@ __FBSDID("$FreeBSD$"); int rootpid; int rootshell; struct jmploc main_handler; +int localeisutf8; static void read_profile(const char *); static char *find_dot_file(char *); @@ -96,6 +97,7 @@ main(int argc, char *argv[]) char *shinit; (void) setlocale(LC_ALL, ""); + updatecharset(); state = 0; if (setjmp(main_handler.loc)) { switch (exception) { Modified: head/bin/sh/var.c ============================================================================== --- head/bin/sh/var.c Fri May 6 22:26:57 2011 (r221558) +++ head/bin/sh/var.c Fri May 6 22:31:27 2011 (r221559) @@ -47,6 +47,7 @@ __FBSDID("$FreeBSD$"); */ #include +#include #include "shell.h" #include "output.h" @@ -361,6 +362,7 @@ setvareq(char *s, int flags) if ((vp->flags & VEXPORT) && localevar(s)) { change_env(s, 1); (void) setlocale(LC_ALL, ""); + updatecharset(); } INTON; return; @@ -379,6 +381,7 @@ setvareq(char *s, int flags) if ((vp->flags & VEXPORT) && localevar(s)) { change_env(s, 1); (void) setlocale(LC_ALL, ""); + updatecharset(); } INTON; } @@ -480,6 +483,7 @@ bltinsetlocale(void) if (loc != NULL) { setlocale(LC_ALL, loc); INTON; + updatecharset(); return; } locdef = bltinlookup("LANG", 0); @@ -491,6 +495,7 @@ bltinsetlocale(void) setlocale(locale_categories[i], loc); } INTON; + updatecharset(); } /* @@ -505,12 +510,24 @@ bltinunsetlocale(void) for (lp = cmdenviron ; lp ; lp = lp->next) { if (localevar(lp->text)) { setlocale(LC_ALL, ""); + updatecharset(); return; } } INTON; } +/* + * Update the localeisutf8 flag. + */ +void +updatecharset(void) +{ + char *charset; + + charset = nl_langinfo(CODESET); + localeisutf8 = !strcmp(charset, "UTF-8"); +} /* * Generate a list of exported variables. This routine is used to construct @@ -656,6 +673,7 @@ exportcmd(int argc, char **argv) if ((vp->flags & VEXPORT) && localevar(vp->text)) { change_env(vp->text, 1); (void) setlocale(LC_ALL, ""); + updatecharset(); } goto found; } @@ -850,6 +868,7 @@ unsetvar(const char *s) if ((vp->flags & VEXPORT) && localevar(vp->text)) { change_env(s, 0); setlocale(LC_ALL, ""); + updatecharset(); } vp->flags &= ~VEXPORT; vp->flags |= VUNSET; Modified: head/bin/sh/var.h ============================================================================== --- head/bin/sh/var.h Fri May 6 22:26:57 2011 (r221558) +++ head/bin/sh/var.h Fri May 6 22:31:27 2011 (r221559) @@ -81,6 +81,8 @@ extern struct var vhistsize; extern struct var vterm; #endif +extern int localeisutf8; + /* * The following macros access the values of the above variables. * They have to skip over the name. They return the null string @@ -112,6 +114,7 @@ char *lookupvar(const char *); char *bltinlookup(const char *, int); void bltinsetlocale(void); void bltinunsetlocale(void); +void updatecharset(void); char **environment(void); int showvarscmd(int, char **); int exportcmd(int, char **); From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:36:43 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D17A0106566B; Fri, 6 May 2011 22:36:43 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C04408FC08; Fri, 6 May 2011 22:36:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46MahAn069452; Fri, 6 May 2011 22:36:43 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46Mah8l069450; Fri, 6 May 2011 22:36:43 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062236.p46Mah8l069450@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 22:36:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221560 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:36:43 -0000 Author: yongari Date: Fri May 6 22:36:43 2011 New Revision: 221560 URL: http://svn.freebsd.org/changeset/base/221560 Log: Call bus_dmamap_sync() only after TX DPD update. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 22:31:27 2011 (r221559) +++ head/sys/dev/xl/if_xl.c Fri May 6 22:36:43 2011 (r221560) @@ -2644,8 +2644,6 @@ xl_start_locked(struct ifnet *ifp) * once for each packet. */ cur_tx->xl_ptr->xl_status |= htole32(XL_TXSTAT_DL_INTR); - bus_dmamap_sync(sc->xl_ldata.xl_tx_tag, sc->xl_ldata.xl_tx_dmamap, - BUS_DMASYNC_PREWRITE); /* * Queue the packets. If the TX channel is clear, update @@ -2666,6 +2664,8 @@ xl_start_locked(struct ifnet *ifp) sc->xl_cdata.xl_tx_head = start_tx; sc->xl_cdata.xl_tx_tail = cur_tx; } + bus_dmamap_sync(sc->xl_ldata.xl_tx_tag, sc->xl_ldata.xl_tx_dmamap, + BUS_DMASYNC_PREWRITE); if (!CSR_READ_4(sc, XL_DOWNLIST_PTR)) CSR_WRITE_4(sc, XL_DOWNLIST_PTR, start_tx->xl_phys); @@ -2765,12 +2765,12 @@ xl_start_90xB_locked(struct ifnet *ifp) * once for each packet. */ cur_tx->xl_ptr->xl_status |= htole32(XL_TXSTAT_DL_INTR); - bus_dmamap_sync(sc->xl_ldata.xl_tx_tag, sc->xl_ldata.xl_tx_dmamap, - BUS_DMASYNC_PREWRITE); /* Start transmission */ sc->xl_cdata.xl_tx_prod = idx; start_tx->xl_prev->xl_ptr->xl_next = htole32(start_tx->xl_phys); + bus_dmamap_sync(sc->xl_ldata.xl_tx_tag, sc->xl_ldata.xl_tx_dmamap, + BUS_DMASYNC_PREWRITE); /* * Set a timeout in case the chip goes out to lunch. From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:45:13 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E52AE106564A; Fri, 6 May 2011 22:45:13 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D41CB8FC12; Fri, 6 May 2011 22:45:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46MjD3V069751; Fri, 6 May 2011 22:45:13 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46MjD9Z069748; Fri, 6 May 2011 22:45:13 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062245.p46MjD9Z069748@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 22:45:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221561 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:45:14 -0000 Author: yongari Date: Fri May 6 22:45:13 2011 New Revision: 221561 URL: http://svn.freebsd.org/changeset/base/221561 Log: Updating status word should be the last operation of UPD structure renewal. Disable instruction reordering by adding volatile to xl_list_onefrag structure. Modified: head/sys/dev/xl/if_xl.c head/sys/dev/xl/if_xlreg.h Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 22:36:43 2011 (r221560) +++ head/sys/dev/xl/if_xl.c Fri May 6 22:45:13 2011 (r221561) @@ -1904,8 +1904,8 @@ xl_newbuf(struct xl_softc *sc, struct xl sc->xl_tmpmap = map; c->xl_mbuf = m_new; c->xl_ptr->xl_frag.xl_len = htole32(m_new->m_len | XL_LAST_FRAG); - c->xl_ptr->xl_status = 0; c->xl_ptr->xl_frag.xl_addr = htole32(segs->ds_addr); + c->xl_ptr->xl_status = 0; bus_dmamap_sync(sc->xl_mtag, c->xl_map, BUS_DMASYNC_PREREAD); return (0); } Modified: head/sys/dev/xl/if_xlreg.h ============================================================================== --- head/sys/dev/xl/if_xlreg.h Fri May 6 22:36:43 2011 (r221560) +++ head/sys/dev/xl/if_xlreg.h Fri May 6 22:45:13 2011 (r221561) @@ -468,8 +468,8 @@ struct xl_list { struct xl_list_onefrag { u_int32_t xl_next; /* final entry has 0 nextptr */ - u_int32_t xl_status; - struct xl_frag xl_frag; + volatile u_int32_t xl_status; + volatile struct xl_frag xl_frag; }; struct xl_list_data { From owner-svn-src-head@FreeBSD.ORG Fri May 6 22:55:54 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 46193106564A; Fri, 6 May 2011 22:55:54 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 355578FC0C; Fri, 6 May 2011 22:55:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46MtsnN070224; Fri, 6 May 2011 22:55:54 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46MtsCR070222; Fri, 6 May 2011 22:55:54 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062255.p46MtsCR070222@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 22:55:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221563 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 22:55:54 -0000 Author: yongari Date: Fri May 6 22:55:53 2011 New Revision: 221563 URL: http://svn.freebsd.org/changeset/base/221563 Log: Terminate interrupt handler if driver detect it's not running. Also add check for driver running state before trying to send frames. While I'm here, use for loop. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 22:45:33 2011 (r221562) +++ head/sys/dev/xl/if_xl.c Fri May 6 22:55:53 2011 (r221563) @@ -2273,10 +2273,14 @@ xl_intr(void *arg) } #endif - while ((status = CSR_READ_2(sc, XL_STATUS)) & XL_INTRS && - status != 0xFFFF) { + for (;;) { + status = CSR_READ_2(sc, XL_STATUS); + if ((status & XL_INTRS) == 0 || status == 0xFFFF) + break; CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_INTR_ACK|(status & XL_INTRS)); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + break; if (status & XL_STAT_UP_COMPLETE) { int curpkts; @@ -2304,6 +2308,7 @@ xl_intr(void *arg) if (status & XL_STAT_ADFAIL) { ifp->if_drv_flags &= ~IFF_DRV_RUNNING; xl_init_locked(sc); + break; } if (status & XL_STAT_STATSOFLOW) { @@ -2313,7 +2318,8 @@ xl_intr(void *arg) } } - if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) { + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd) && + ifp->if_drv_flags & IFF_DRV_RUNNING) { if (sc->xl_type == XL_TYPE_905B) xl_start_90xB_locked(ifp); else From owner-svn-src-head@FreeBSD.ORG Fri May 6 23:01:29 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 96C3B106566B; Fri, 6 May 2011 23:01:29 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 85B548FC13; Fri, 6 May 2011 23:01:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46N1Tmw070457; Fri, 6 May 2011 23:01:29 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46N1TRI070455; Fri, 6 May 2011 23:01:29 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062301.p46N1TRI070455@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 23:01:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221564 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 23:01:29 -0000 Author: yongari Date: Fri May 6 23:01:29 2011 New Revision: 221564 URL: http://svn.freebsd.org/changeset/base/221564 Log: Change xl_rxeof() a bit to return the number of processed frames in RX descriptor ring. Previously it returned the number of frames that were successfully passed to upper stack which in turn means it ignored frames that were discarded due to errors. The number of processed frames in RX descriptor ring is used to detect whether driver is out of sync with controller's current descriptor pointer. Returning number of processed frames reduces unnecessary (probably wrong) re-synchronization. While here, remove unnecessary local variable initialization. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 22:55:53 2011 (r221563) +++ head/sys/dev/xl/if_xl.c Fri May 6 23:01:29 2011 (r221564) @@ -1944,7 +1944,7 @@ xl_rxeof(struct xl_softc *sc) struct mbuf *m; struct ifnet *ifp = sc->xl_ifp; struct xl_chain_onefrag *cur_rx; - int total_len = 0; + int total_len; int rx_npkts = 0; u_int32_t rxstat; @@ -1963,6 +1963,7 @@ again: cur_rx = sc->xl_cdata.xl_rx_head; sc->xl_cdata.xl_rx_head = cur_rx->xl_next; total_len = rxstat & XL_RXSTAT_LENMASK; + rx_npkts++; /* * Since we have told the chip to allow large frames, @@ -2047,7 +2048,6 @@ again: XL_UNLOCK(sc); (*ifp->if_input)(ifp, m); XL_LOCK(sc); - rx_npkts++; /* * If we are running from the taskqueue, the interface @@ -2283,11 +2283,7 @@ xl_intr(void *arg) break; if (status & XL_STAT_UP_COMPLETE) { - int curpkts; - - curpkts = ifp->if_ipackets; - xl_rxeof(sc); - if (curpkts == ifp->if_ipackets) { + if (xl_rxeof(sc) == 0) { while (xl_rx_resync(sc)) xl_rxeof(sc); } From owner-svn-src-head@FreeBSD.ORG Fri May 6 23:49:11 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 74CDF1065673; Fri, 6 May 2011 23:49:11 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A25C8FC0A; Fri, 6 May 2011 23:49:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p46NnB8Y071920; Fri, 6 May 2011 23:49:11 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p46NnBWj071918; Fri, 6 May 2011 23:49:11 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105062349.p46NnBWj071918@svn.freebsd.org> From: Pyun YongHyeon Date: Fri, 6 May 2011 23:49:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221565 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 06 May 2011 23:49:11 -0000 Author: yongari Date: Fri May 6 23:49:10 2011 New Revision: 221565 URL: http://svn.freebsd.org/changeset/base/221565 Log: Reuse the TX descriptor(DPD) if xl_encap() failed instead of just picking the next available one. This may explain why xl(4) sees TX underrun error with no queued frame. I hope this addresses a long standing xl(4) watchdog timeout issue as well. Obtained from: OpenBSD Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 23:01:29 2011 (r221564) +++ head/sys/dev/xl/if_xl.c Fri May 6 23:49:10 2011 (r221565) @@ -2571,8 +2571,9 @@ static void xl_start_locked(struct ifnet *ifp) { struct xl_softc *sc = ifp->if_softc; - struct mbuf *m_head = NULL; + struct mbuf *m_head; struct xl_chain *prev = NULL, *cur_tx = NULL, *start_tx; + struct xl_chain *prev_tx; u_int32_t status; int error; @@ -2603,11 +2604,13 @@ xl_start_locked(struct ifnet *ifp) break; /* Pick a descriptor off the free list. */ + prev_tx = cur_tx; cur_tx = sc->xl_cdata.xl_tx_free; /* Pack the data into the descriptor. */ error = xl_encap(sc, cur_tx, &m_head); if (error) { + cur_tx = prev_tx; if (m_head == NULL) break; ifp->if_drv_flags |= IFF_DRV_OACTIVE; @@ -2702,8 +2705,9 @@ static void xl_start_90xB_locked(struct ifnet *ifp) { struct xl_softc *sc = ifp->if_softc; - struct mbuf *m_head = NULL; + struct mbuf *m_head; struct xl_chain *prev = NULL, *cur_tx = NULL, *start_tx; + struct xl_chain *prev_tx; int error, idx; XL_LOCK_ASSERT(sc); @@ -2726,11 +2730,13 @@ xl_start_90xB_locked(struct ifnet *ifp) if (m_head == NULL) break; + prev_tx = cur_tx; cur_tx = &sc->xl_cdata.xl_tx_chain[idx]; /* Pack the data into the descriptor. */ error = xl_encap(sc, cur_tx, &m_head); if (error) { + cur_tx = prev_tx; if (m_head == NULL) break; ifp->if_drv_flags |= IFF_DRV_OACTIVE; From owner-svn-src-head@FreeBSD.ORG Sat May 7 00:06:02 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B72491065670; Sat, 7 May 2011 00:06:02 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A68A78FC0A; Sat, 7 May 2011 00:06:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47062CU072457; Sat, 7 May 2011 00:06:02 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47062h8072454; Sat, 7 May 2011 00:06:02 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105070006.p47062h8072454@svn.freebsd.org> From: Pyun YongHyeon Date: Sat, 7 May 2011 00:06:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221566 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 00:06:02 -0000 Author: yongari Date: Sat May 7 00:06:02 2011 New Revision: 221566 URL: http://svn.freebsd.org/changeset/base/221566 Log: Rename xl_stats_update() callout handler to xl_tick() and move MII tick driving logic to xl_tick(). Now xl_tick() handles MII tick as well as periodic updating of statistics. This change removes a hack used in interrupt handler where it wanted to update statistics without driving MII tick. Modified: head/sys/dev/xl/if_xl.c head/sys/dev/xl/if_xlreg.h Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Fri May 6 23:49:10 2011 (r221565) +++ head/sys/dev/xl/if_xl.c Sat May 7 00:06:02 2011 (r221566) @@ -225,8 +225,8 @@ static int xl_attach(device_t); static int xl_detach(device_t); static int xl_newbuf(struct xl_softc *, struct xl_chain_onefrag *); -static void xl_stats_update(void *); -static void xl_stats_update_locked(struct xl_softc *); +static void xl_tick(void *); +static void xl_stats_update(struct xl_softc *); static int xl_encap(struct xl_softc *, struct xl_chain *, struct mbuf **); static int xl_rxeof(struct xl_softc *); static void xl_rxeof_task(void *, int); @@ -1330,7 +1330,7 @@ xl_attach(device_t dev) goto fail; } - callout_init_mtx(&sc->xl_stat_callout, &sc->xl_mtx, 0); + callout_init_mtx(&sc->xl_tick_callout, &sc->xl_mtx, 0); TASK_INIT(&sc->xl_task, 0, xl_rxeof_task, sc); /* @@ -1695,7 +1695,7 @@ xl_detach(device_t dev) xl_stop(sc); XL_UNLOCK(sc); taskqueue_drain(taskqueue_swi, &sc->xl_task); - callout_drain(&sc->xl_stat_callout); + callout_drain(&sc->xl_tick_callout); ether_ifdetach(ifp); } if (sc->xl_miibus) @@ -2307,11 +2307,8 @@ xl_intr(void *arg) break; } - if (status & XL_STAT_STATSOFLOW) { - sc->xl_stats_no_timeout = 1; - xl_stats_update_locked(sc); - sc->xl_stats_no_timeout = 0; - } + if (status & XL_STAT_STATSOFLOW) + xl_stats_update(sc); } if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd) && @@ -2379,49 +2376,46 @@ xl_poll_locked(struct ifnet *ifp, enum p xl_init_locked(sc); } - if (status & XL_STAT_STATSOFLOW) { - sc->xl_stats_no_timeout = 1; + if (status & XL_STAT_STATSOFLOW) xl_stats_update_locked(sc); - sc->xl_stats_no_timeout = 0; - } } } return (rx_npkts); } #endif /* DEVICE_POLLING */ -/* - * XXX: This is an entry point for callout which needs to take the lock. - */ static void -xl_stats_update(void *xsc) +xl_tick(void *xsc) { struct xl_softc *sc = xsc; + struct mii_data *mii; XL_LOCK_ASSERT(sc); + if (sc->xl_miibus != NULL) { + mii = device_get_softc(sc->xl_miibus); + mii_tick(mii); + } + + xl_stats_update(sc); if (xl_watchdog(sc) == EJUSTRETURN) return; - xl_stats_update_locked(sc); + callout_reset(&sc->xl_tick_callout, hz, xl_tick, sc); } static void -xl_stats_update_locked(struct xl_softc *sc) +xl_stats_update(struct xl_softc *sc) { struct ifnet *ifp = sc->xl_ifp; struct xl_stats xl_stats; u_int8_t *p; int i; - struct mii_data *mii = NULL; XL_LOCK_ASSERT(sc); bzero((char *)&xl_stats, sizeof(struct xl_stats)); - if (sc->xl_miibus != NULL) - mii = device_get_softc(sc->xl_miibus); - p = (u_int8_t *)&xl_stats; /* Read all the stats registers. */ @@ -2443,14 +2437,7 @@ xl_stats_update_locked(struct xl_softc * */ XL_SEL_WIN(4); CSR_READ_1(sc, XL_W4_BADSSD); - - if ((mii != NULL) && (!sc->xl_stats_no_timeout)) - mii_tick(mii); - XL_SEL_WIN(7); - - if (!sc->xl_stats_no_timeout) - callout_reset(&sc->xl_stat_callout, hz, xl_stats_update, sc); } /* @@ -2957,9 +2944,7 @@ xl_init_locked(struct xl_softc *sc) /* Clear out the stats counters. */ CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_STATS_DISABLE); - sc->xl_stats_no_timeout = 1; - xl_stats_update_locked(sc); - sc->xl_stats_no_timeout = 0; + xl_stats_update(sc); XL_SEL_WIN(4); CSR_WRITE_2(sc, XL_W4_NET_DIAG, XL_NETDIAG_UPPER_BYTES_ENABLE); CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_STATS_ENABLE); @@ -3000,7 +2985,7 @@ xl_init_locked(struct xl_softc *sc) ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; sc->xl_wdog_timer = 0; - callout_reset(&sc->xl_stat_callout, hz, xl_stats_update, sc); + callout_reset(&sc->xl_tick_callout, hz, xl_tick, sc); } /* @@ -3309,7 +3294,7 @@ xl_stop(struct xl_softc *sc) bus_space_write_4(sc->xl_ftag, sc->xl_fhandle, 4, 0x8000); /* Stop the stats updater. */ - callout_stop(&sc->xl_stat_callout); + callout_stop(&sc->xl_tick_callout); /* * Free data in the RX lists. Modified: head/sys/dev/xl/if_xlreg.h ============================================================================== --- head/sys/dev/xl/if_xlreg.h Fri May 6 23:49:10 2011 (r221565) +++ head/sys/dev/xl/if_xlreg.h Sat May 7 00:06:02 2011 (r221566) @@ -614,13 +614,12 @@ struct xl_softc { u_int32_t xl_xcvr; u_int16_t xl_media; u_int16_t xl_caps; - u_int8_t xl_stats_no_timeout; u_int16_t xl_tx_thresh; int xl_pmcap; int xl_if_flags; struct xl_list_data xl_ldata; struct xl_chain_data xl_cdata; - struct callout xl_stat_callout; + struct callout xl_tick_callout; int xl_wdog_timer; int xl_flags; struct resource *xl_fres; From owner-svn-src-head@FreeBSD.ORG Sat May 7 00:06:58 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1C901065673; Sat, 7 May 2011 00:06:58 +0000 (UTC) (envelope-from marcel@xcllnt.net) Received: from mail.xcllnt.net (mail.xcllnt.net [70.36.220.4]) by mx1.freebsd.org (Postfix) with ESMTP id 7B1128FC0C; Sat, 7 May 2011 00:06:58 +0000 (UTC) Received: from dhcp-192-168-2-13.wifi.xcllnt.net (atm.xcllnt.net [70.36.220.6]) (authenticated bits=0) by mail.xcllnt.net (8.14.4/8.14.4) with ESMTP id p4706qD3039962 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 6 May 2011 17:06:57 -0700 (PDT) (envelope-from marcel@xcllnt.net) Mime-Version: 1.0 (Apple Message framework v1084) Content-Type: text/plain; charset=us-ascii From: Marcel Moolenaar In-Reply-To: <4DC3FC8F.2070200@freebsd.org> Date: Fri, 6 May 2011 17:06:52 -0700 Content-Transfer-Encoding: quoted-printable Message-Id: <97F11E8D-E0D3-4BF9-8188-1B58DAF37054@xcllnt.net> References: <201105051416.p45EGfcd003037@svn.freebsd.org> <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> <4DC36B2B.4010509@freebsd.org> <4DC3FC8F.2070200@freebsd.org> To: Nathan Whitehorn X-Mailer: Apple Mail (2.1084) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 00:06:58 -0000 On May 6, 2011, at 6:50 AM, Nathan Whitehorn wrote: > On 05/06/11 00:21, Marcel Moolenaar wrote: >> On May 5, 2011, at 8:29 PM, Nathan Whitehorn wrote: >>=20 >>> On 05/05/11 16:18, Marcel Moolenaar wrote: >>>> On May 5, 2011, at 7:16 AM, Nathan Whitehorn wrote: >>>>=20 >>>>> @@ -84,15 +63,13 @@ if [ $bootable =3D yes ]; then >>>>> mv $MNT/boot/loader.efi $MNT/efi/boot/bootia64.efi >>>>> umount $MNT >>>>> mdconfig -d -u $md >>>>> - BOOTOPTS=3D"-b $EFIPART -no-emul-boot" >>>>> + BOOTOPTS=3D"-b bootimage=3Di386;$EFIPART -o no-emul-boot" >>>>> else >>>>> BOOTOPTS=3D"" >>>>> fi >>>> Thanks! >>>>=20 >>>> Can you explain what this particular change does or why it's done? >>>>=20 >>> I'm cleaning up the release-building code, and am switching them = from mkisofs to makefs, which provides the same functionality. This = started with some irritation with the cdrtools port and a bug in the HFS = hybrid generation that was breaking PPC release CD generation. Switching = these to depend on makefs in general speeds the release-building process = and removes the number of dependencies involved, since makefs is built = as part of base. >> Actually, I was just interested in the 'bootimage=3Di386' part >> of your change. I totally get why you're doing it :-) >=20 > Ah, OK :) >=20 > That just sets the El Torito system type to 0 (x86), which is what = IA64 uses, as far as I can tell, and doesn't turn on any special magic = like is done for the mac. I suppose while we're monkeying about with = makefs, we could add an 'ia64' alias. Nah, don't worry about it... --=20 Marcel Moolenaar marcel@xcllnt.net From owner-svn-src-head@FreeBSD.ORG Sat May 7 00:18:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29F671065674; Sat, 7 May 2011 00:18:59 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 19D318FC1B; Sat, 7 May 2011 00:18:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p470IwhR072856; Sat, 7 May 2011 00:18:58 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p470IwnZ072854; Sat, 7 May 2011 00:18:58 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105070018.p470IwnZ072854@svn.freebsd.org> From: Pyun YongHyeon Date: Sat, 7 May 2011 00:18:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221567 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 00:18:59 -0000 Author: yongari Date: Sat May 7 00:18:58 2011 New Revision: 221567 URL: http://svn.freebsd.org/changeset/base/221567 Log: Rearm watchdog timer if driver kick controller to recover from TX underrun error. While here, prepend 0x to status code to show TX status is hex number. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Sat May 7 00:06:02 2011 (r221566) +++ head/sys/dev/xl/if_xl.c Sat May 7 00:18:58 2011 (r221567) @@ -2207,7 +2207,7 @@ xl_txeoc(struct xl_softc *sc) txstat & XL_TXSTATUS_JABBER || txstat & XL_TXSTATUS_RECLAIM) { device_printf(sc->xl_dev, - "transmission error: %x\n", txstat); + "transmission error: 0x%02x\n", txstat); CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_TX_RESET); xl_wait(sc); if (sc->xl_type == XL_TYPE_905B) { @@ -2220,11 +2220,14 @@ xl_txeoc(struct xl_softc *sc) CSR_WRITE_4(sc, XL_DOWNLIST_PTR, c->xl_phys); CSR_WRITE_1(sc, XL_DOWN_POLL, 64); + sc->xl_wdog_timer = 5; } } else { - if (sc->xl_cdata.xl_tx_head != NULL) + if (sc->xl_cdata.xl_tx_head != NULL) { CSR_WRITE_4(sc, XL_DOWNLIST_PTR, sc->xl_cdata.xl_tx_head->xl_phys); + sc->xl_wdog_timer = 5; + } } /* * Remember to set this for the From owner-svn-src-head@FreeBSD.ORG Sat May 7 00:25:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F0EF71065689; Sat, 7 May 2011 00:25:12 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E0EF58FC14; Sat, 7 May 2011 00:25:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p470PCKP073070; Sat, 7 May 2011 00:25:12 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p470PC4k073067; Sat, 7 May 2011 00:25:12 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105070025.p470PC4k073067@svn.freebsd.org> From: Pyun YongHyeon Date: Sat, 7 May 2011 00:25:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221568 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 00:25:13 -0000 Author: yongari Date: Sat May 7 00:25:12 2011 New Revision: 221568 URL: http://svn.freebsd.org/changeset/base/221568 Log: XL_DMACTL is 32bit register, use 32bit write macro. While I'm here add more bits for the register. Modified: head/sys/dev/xl/if_xl.c head/sys/dev/xl/if_xlreg.h Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Sat May 7 00:18:58 2011 (r221567) +++ head/sys/dev/xl/if_xl.c Sat May 7 00:25:12 2011 (r221568) @@ -2969,7 +2969,7 @@ xl_init_locked(struct xl_softc *sc) /* Set the RX early threshold */ CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_RX_SET_THRESH|(XL_PACKET_SIZE >>2)); - CSR_WRITE_2(sc, XL_DMACTL, XL_DMACTL_UP_RX_EARLY); + CSR_WRITE_4(sc, XL_DMACTL, XL_DMACTL_UP_RX_EARLY); /* Enable receiver and transmitter. */ CSR_WRITE_2(sc, XL_COMMAND, XL_CMD_TX_ENABLE); Modified: head/sys/dev/xl/if_xlreg.h ============================================================================== --- head/sys/dev/xl/if_xlreg.h Sat May 7 00:18:58 2011 (r221567) +++ head/sys/dev/xl/if_xlreg.h Sat May 7 00:25:12 2011 (r221568) @@ -124,6 +124,11 @@ #define XL_DMACTL_DOWN_INPROG 0x00000080 #define XL_DMACTL_COUNTER_SPEED 0x00000100 #define XL_DMACTL_DOWNDOWN_MODE 0x00000200 +#define XL_DMACTL_UP_ALTSEQ_DIS 0x00010000 /* 3c90xB/3c90xC */ +#define XL_DMACTL_DOWN_ALTSEQ_DIS 0x00020000 /* 3c90xC only */ +#define XL_DMACTL_DEFEAT_MWI 0x00100000 /* 3c90xB/3c90xC */ +#define XL_DMACTL_DEFEAT_MRL 0x00100000 /* 3c90xB/3c90xC */ +#define XL_DMACTL_UP_OVERRUN_DISC_DIS 0x00200000 /* 3c90xB/3c90xC */ #define XL_DMACTL_TARGET_ABORT 0x40000000 #define XL_DMACTL_MASTER_ABORT 0x80000000 From owner-svn-src-head@FreeBSD.ORG Sat May 7 01:05:32 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 054BA106566B; Sat, 7 May 2011 01:05:32 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E7F8C8FC08; Sat, 7 May 2011 01:05:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p4715VGW074290; Sat, 7 May 2011 01:05:31 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p4715V0S074281; Sat, 7 May 2011 01:05:31 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201105070105.p4715V0S074281@svn.freebsd.org> From: "David E. O'Brien" Date: Sat, 7 May 2011 01:05:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221569 - in head: lib/libdwarf lib/libelf sys/sys X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 01:05:32 -0000 Author: obrien Date: Sat May 7 01:05:31 2011 New Revision: 221569 URL: http://svn.freebsd.org/changeset/base/221569 Log: Add the ability to search for all the inlined instances of a given function. Reviewed by: jb Obtained from: Juniper Networks Added: head/lib/libdwarf/dwarf_func.c (contents, props changed) Modified: head/lib/libdwarf/Makefile head/lib/libdwarf/_libdwarf.h head/lib/libdwarf/dwarf_init.c head/lib/libdwarf/libdwarf.h head/lib/libelf/Makefile head/lib/libelf/libelf_data.c head/sys/sys/elf_common.h Modified: head/lib/libdwarf/Makefile ============================================================================== --- head/lib/libdwarf/Makefile Sat May 7 00:25:12 2011 (r221568) +++ head/lib/libdwarf/Makefile Sat May 7 01:05:31 2011 (r221569) @@ -14,6 +14,7 @@ SRCS= \ dwarf_errno.c \ dwarf_finish.c \ dwarf_form.c \ + dwarf_func.c \ dwarf_init.c \ dwarf_loc.c Modified: head/lib/libdwarf/_libdwarf.h ============================================================================== --- head/lib/libdwarf/_libdwarf.h Sat May 7 00:25:12 2011 (r221568) +++ head/lib/libdwarf/_libdwarf.h Sat May 7 01:05:31 2011 (r221569) @@ -163,6 +163,37 @@ struct _Dwarf_Debug { dbg_cu; /* List of compilation units. */ Dwarf_CU dbg_cu_current; /* Ptr to the current compilation unit. */ + + STAILQ_HEAD(, _Dwarf_Func) dbg_func; /* List of functions */ +}; + +struct _Dwarf_Func { + Dwarf_Die func_die; + const char *func_name; + Dwarf_Addr func_low_pc; + Dwarf_Addr func_high_pc; + int func_is_inlined; + /* inlined instance */ + STAILQ_HEAD(, _Dwarf_Inlined_Func) func_inlined_instances; + STAILQ_ENTRY(_Dwarf_Func) func_next; }; +struct _Dwarf_Inlined_Func { + struct _Dwarf_Func *ifunc_origin; + Dwarf_Die ifunc_abstract; + Dwarf_Die ifunc_concrete; + Dwarf_Addr ifunc_low_pc; + Dwarf_Addr ifunc_high_pc; + STAILQ_ENTRY(_Dwarf_Inlined_Func) ifunc_next; +}; + +void dwarf_build_function_table(Dwarf_Debug dbg); + +#ifdef DWARF_DEBUG +#include +#define DWARF_ASSERT(x) assert(x) +#else +#define DWARF_ASSERT(x) +#endif + #endif /* !__LIBDWARF_H_ */ Added: head/lib/libdwarf/dwarf_func.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libdwarf/dwarf_func.c Sat May 7 01:05:31 2011 (r221569) @@ -0,0 +1,227 @@ +/*- + * Copyright (c) 2008-2009, 2011, Juniper Networks, Inc. + * 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 COPYRIGHT HOLDERS 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 REGENTS 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. + * + * JNPR: dwarf_func.c 336441 2009-10-17 09:19:54Z deo + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include <_libdwarf.h> + +static void +dwarf_add_function(Dwarf_Debug dbg, Dwarf_Func func) +{ + + STAILQ_INSERT_TAIL(&dbg->dbg_func, func, func_next); +} + +int +dwarf_function_get_addr_range(Dwarf_Func f, Dwarf_Addr *low_pc, + Dwarf_Addr *high_pc) +{ + + *low_pc = f->func_low_pc; + *high_pc = f->func_high_pc; + return 0; +} + +int +dwarf_inlined_function_get_addr_range(Dwarf_Inlined_Func f, Dwarf_Addr *low_pc, + Dwarf_Addr *high_pc) +{ + + *low_pc = f->ifunc_low_pc; + *high_pc = f->ifunc_high_pc; + return 0; +} + +int +dwarf_function_is_inlined(Dwarf_Func f) +{ + + if (f->func_is_inlined == DW_INL_inlined || + f->func_is_inlined == DW_INL_declared_inlined) + return 1; + else + return 0; +} + +Dwarf_Func +dwarf_find_function_by_name(Dwarf_Debug dbg, const char *name) +{ + /* XXX: replace with a fast version */ + + Dwarf_Func func; + STAILQ_FOREACH(func, &dbg->dbg_func, func_next) { + if (strcmp(name, func->func_name) == 0) + return func; + } + return NULL; +} + +Dwarf_Func +dwarf_find_function_by_offset(Dwarf_Debug dbg, Dwarf_Off off) +{ + + Dwarf_Func func; + Dwarf_Die die; + /* printf("look for %llx\n", off); */ + STAILQ_FOREACH(func, &dbg->dbg_func, func_next) { + die = func->func_die; + if ((off_t)die->die_offset == off) { + return func; + } + } + return NULL; +} + +void +dwarf_build_function_table(Dwarf_Debug dbg) +{ + Dwarf_CU cu; + Dwarf_AttrValue av; + Dwarf_Die die, origin_die; + Dwarf_Func func, origin_func; + Dwarf_Inlined_Func ifunc; + unsigned long long offset; + const char *name; + Dwarf_Error error; + + /* + * find out all the functions + */ + STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) { + STAILQ_FOREACH(die, &cu->cu_die, die_next) { + if (die->die_a->a_tag == DW_TAG_subprogram) { + /* + * Some function has multiple entries, i.e. + * if a function is inlined, it has many + * abstract/concrete instances, the abstract + * instances are with DW_TAG_subprogram. + */ + dwarf_attrval_string(die, DW_AT_name, &name, + &error); + func = dwarf_find_function_by_name(dbg, name); + if (func == NULL) { + func = malloc( + sizeof(struct _Dwarf_Func)); + DWARF_ASSERT(func); + + func->func_die = die; + func->func_name = name; + STAILQ_INIT( + &func->func_inlined_instances); + + dwarf_add_function(dbg, func); + STAILQ_FOREACH(av, &die->die_attrval, + av_next) { + switch (av->av_attrib) { + case DW_AT_low_pc: + func->func_low_pc = + av->u[0].u64; + break; + case DW_AT_high_pc: + func->func_high_pc = + av->u[0].u64; + break; + case DW_AT_inline: + func->func_is_inlined = + av->u[0].u64; + break; + } + } + } + } + } + } + + /* + * Now check the concrete inlined instances. + */ + STAILQ_FOREACH(cu, &dbg->dbg_cu, cu_next) { + STAILQ_FOREACH(die, &cu->cu_die, die_next) { + if (die->die_a->a_tag == DW_TAG_inlined_subroutine) { + ifunc = malloc( + sizeof(struct _Dwarf_Inlined_Func)); + DWARF_ASSERT(ifunc); + STAILQ_FOREACH(av, &die->die_attrval, av_next) { + switch (av->av_attrib) { + case DW_AT_abstract_origin: + offset = av->u[0].u64 + + die->die_cu->cu_offset; + origin_die = dwarf_die_find( + die, offset); + DWARF_ASSERT(origin_die != 0); + + /* + * the abstract origin must + * have been merged with + * another die + */ + dwarf_attrval_string( + origin_die, DW_AT_name, + &name, &error); + origin_func = + dwarf_find_function_by_name + (dbg, name); + DWARF_ASSERT(origin_func != 0); + + STAILQ_INSERT_TAIL( + &origin_func-> + func_inlined_instances, + ifunc, ifunc_next); + + break; + case DW_AT_low_pc: + ifunc->ifunc_low_pc = + av->u[0].u64; + break; + case DW_AT_high_pc: + ifunc->ifunc_high_pc = + av->u[0].u64; + break; + } + } + } + } + } +} + +void +dwarf_function_iterate_inlined_instance(Dwarf_Func func, + Dwarf_Inlined_Callback f, void *data) +{ + Dwarf_Inlined_Func ifunc; + + if (!dwarf_function_is_inlined(func)) + return; + STAILQ_FOREACH(ifunc, &func->func_inlined_instances, ifunc_next) { + f(ifunc, data); + } +} Modified: head/lib/libdwarf/dwarf_init.c ============================================================================== --- head/lib/libdwarf/dwarf_init.c Sat May 7 00:25:12 2011 (r221568) +++ head/lib/libdwarf/dwarf_init.c Sat May 7 01:05:31 2011 (r221569) @@ -578,6 +578,9 @@ dwarf_init_info(Dwarf_Debug dbg, Dwarf_E offset = next_offset; } + /* Build the function table. */ + dwarf_build_function_table(dbg); + return ret; } @@ -686,6 +689,7 @@ dwarf_elf_init(Elf *elf, int mode, Dwarf dbg->dbg_mode = mode; STAILQ_INIT(&dbg->dbg_cu); + STAILQ_INIT(&dbg->dbg_func); *ret_dbg = dbg; Modified: head/lib/libdwarf/libdwarf.h ============================================================================== --- head/lib/libdwarf/libdwarf.h Sat May 7 00:25:12 2011 (r221568) +++ head/lib/libdwarf/libdwarf.h Sat May 7 01:05:31 2011 (r221569) @@ -51,6 +51,7 @@ typedef struct _Dwarf_Debug *Dwarf_Debug typedef struct _Dwarf_Die *Dwarf_Die; typedef struct _Dwarf_Fde *Dwarf_Fde; typedef struct _Dwarf_Func *Dwarf_Func; +typedef struct _Dwarf_Inlined_Func *Dwarf_Inlined_Func; typedef struct _Dwarf_Global *Dwarf_Global; typedef struct _Dwarf_Line *Dwarf_Line; typedef struct _Dwarf_Type *Dwarf_Type; @@ -71,6 +72,9 @@ typedef struct { Dwarf_Loc *ld_s; } Dwarf_Locdesc; +/* receiver function for dwarf_function_iterate_inlined_instance() API */ +typedef void (*Dwarf_Inlined_Callback)(Dwarf_Inlined_Func, void *); + /* * Error numbers which are specific to this implementation. */ @@ -157,6 +161,16 @@ void dwarf_dump_strtab(Dwarf_Debug); void dwarf_dump_symtab(Dwarf_Debug); void dwarf_dump_raw(Dwarf_Debug); void dwarf_dump_tree(Dwarf_Debug); +Dwarf_Func dwarf_find_function_by_offset(Dwarf_Debug dbg, Dwarf_Off off); +Dwarf_Func dwarf_find_function_by_name(Dwarf_Debug dbg, const char *name); +int dwarf_function_get_addr_range(Dwarf_Func f, + Dwarf_Addr *low_pc, Dwarf_Addr *high_pc); +int dwarf_function_is_inlined(Dwarf_Func f); +void dwarf_function_iterate_inlined_instance(Dwarf_Func func, + Dwarf_Inlined_Callback f, void *data); +int dwarf_inlined_function_get_addr_range(Dwarf_Inlined_Func f, + Dwarf_Addr *low_pc, Dwarf_Addr *high_pc); + __END_DECLS #endif /* !_LIBDWARF_H_ */ Modified: head/lib/libelf/Makefile ============================================================================== --- head/lib/libelf/Makefile Sat May 7 00:25:12 2011 (r221568) +++ head/lib/libelf/Makefile Sat May 7 01:05:31 2011 (r221569) @@ -57,7 +57,7 @@ INCS= libelf.h gelf.h GENSRCS= libelf_fsize.c libelf_msize.c libelf_convert.c CLEANFILES= ${GENSRCS} -CFLAGS+= -I. -I${.CURDIR} +CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../sys SHLIB_MAJOR= 1 Modified: head/lib/libelf/libelf_data.c ============================================================================== --- head/lib/libelf/libelf_data.c Sat May 7 00:25:12 2011 (r221568) +++ head/lib/libelf/libelf_data.c Sat May 7 01:05:31 2011 (r221569) @@ -84,6 +84,8 @@ _libelf_xlate_shtype(uint32_t sht) case SHT_SUNW_dof: return (ELF_T_BYTE); #endif + case SHT_MIPS_DWARF: + /* FALLTHROUGH */ case SHT_AMD64_UNWIND: /* == SHT_IA_64_UNWIND */ return (ELF_T_BYTE); default: Modified: head/sys/sys/elf_common.h ============================================================================== --- head/sys/sys/elf_common.h Sat May 7 00:25:12 2011 (r221568) +++ head/sys/sys/elf_common.h Sat May 7 01:05:31 2011 (r221569) @@ -1,4 +1,5 @@ /*- + * Copyright (c) 2000, 2001, 2008, 2011, David E. O'Brien * Copyright (c) 1998 John D. Polstra. * All rights reserved. * @@ -295,6 +296,7 @@ typedef struct { #define SHT_HIOS 0x6fffffff /* Last of OS specific semantics */ #define SHT_LOPROC 0x70000000 /* reserved range for processor */ #define SHT_AMD64_UNWIND 0x70000001 /* unwind information */ +#define SHT_MIPS_DWARF 0x7000001e /* MIPS gcc uses MIPS_DWARF */ #define SHT_HIPROC 0x7fffffff /* specific section header types */ #define SHT_LOUSER 0x80000000 /* reserved range for application */ #define SHT_HIUSER 0xffffffff /* specific indexes */ From owner-svn-src-head@FreeBSD.ORG Sat May 7 02:19:46 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8D582106564A; Sat, 7 May 2011 02:19:46 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7DA778FC12; Sat, 7 May 2011 02:19:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p472JkTa076489; Sat, 7 May 2011 02:19:46 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p472JkSV076487; Sat, 7 May 2011 02:19:46 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105070219.p472JkSV076487@svn.freebsd.org> From: Pyun YongHyeon Date: Sat, 7 May 2011 02:19:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221571 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 02:19:46 -0000 Author: yongari Date: Sat May 7 02:19:46 2011 New Revision: 221571 URL: http://svn.freebsd.org/changeset/base/221571 Log: Remove unneeded use of variable status. This should have been done in r221557. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Sat May 7 02:00:35 2011 (r221570) +++ head/sys/dev/xl/if_xl.c Sat May 7 02:19:46 2011 (r221571) @@ -2564,7 +2564,6 @@ xl_start_locked(struct ifnet *ifp) struct mbuf *m_head; struct xl_chain *prev = NULL, *cur_tx = NULL, *start_tx; struct xl_chain *prev_tx; - u_int32_t status; int error; XL_LOCK_ASSERT(sc); @@ -2651,7 +2650,6 @@ xl_start_locked(struct ifnet *ifp) sc->xl_cdata.xl_tx_tail->xl_next = start_tx; sc->xl_cdata.xl_tx_tail->xl_ptr->xl_next = htole32(start_tx->xl_phys); - status = sc->xl_cdata.xl_tx_tail->xl_ptr->xl_status; sc->xl_cdata.xl_tx_tail->xl_ptr->xl_status &= htole32(~XL_TXSTAT_DL_INTR); sc->xl_cdata.xl_tx_tail = cur_tx; From owner-svn-src-head@FreeBSD.ORG Sat May 7 02:54:52 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A20EB106566B; Sat, 7 May 2011 02:54:52 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 91BE28FC13; Sat, 7 May 2011 02:54:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p472sqgM077764; Sat, 7 May 2011 02:54:52 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p472sqbX077762; Sat, 7 May 2011 02:54:52 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105070254.p472sqbX077762@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 02:54:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221573 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 02:54:52 -0000 Author: adrian Date: Sat May 7 02:54:52 2011 New Revision: 221573 URL: http://svn.freebsd.org/changeset/base/221573 Log: Fix the OWL revision checks. A quick story, which is partially documented in the commit. The silicon revision in Linux ath9k and the Atheros HAL use an AR_SREV_REVISION mask of 0x07. FreeBSD's HAL uses the AR5212 AR_SREV_REVISION mask of 0x0F. Thus the OWL silicon revisions were coming through as 0xA, 0xB, 0xC, rather than 0x0, 0x1 and 0x2. My ath9k-sourced AR_SREV_OWL_ macros were thus using the wrong silicon revision values and wouldn't correctly match. This commit does a few things: * Change the AR_SREV_OWL_ macros to use the AR_SREV_REVISION_OWL_* values, not AR_XSREV_REVISION_OWL macros; * Disable AR_XSREV_REVISION_OWL_* values; * Modify the IS_5416 to properly check the MAC is OWL, rather than potentially matching on non-OWL revisions (which shouldn't happen unless there's a silicon revision of higher than 0x9 in a later chip..) * Add a couple more macros from the Atheros HAL for compatibility. The main difference now is that the Atheros HAL defines AR_SREV_OWL_{20,22}_OR_LATER subtly differently - it fails on all HOWL silicon. The AR_SREV_5416_*_OR_LATER macros match on the relevant OWL version -and- all HOWL versions, along with subsequent versions. A subsequent commit is going to migrate the uses of AR_SREV_OWL_X_OR_LATER to AR_SREV_5416_X_OR_LATER to match what's going on in the Atheros HAL. There's only two uses of AR_SREV_OWL_X_OR_LATER which currently don't apply to FreeBSD but it may do in the future. Yes, it's all confusing! Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Sat May 7 02:37:34 2011 (r221572) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Sat May 7 02:54:52 2011 (r221573) @@ -580,6 +580,17 @@ #define AR_EEPROM_STATUS_DATA_PROT_ACCESS 0x00040000 #define AR_EEPROM_STATUS_DATA_ABSENT_ACCESS 0x00080000 +/* + * AR5212 defines the MAC revision mask as 0xF, but both ath9k and + * the Atheros HAL define it as 0x7. + * + * What this means however is AR5416 silicon revisions have + * changed. The below macros are for what is contained in the + * lower four bits; if the lower three bits are taken into account + * the revisions become 1.0 => 0x0, 2.0 => 0x1, 2.2 => 0x2. + */ + +/* These are the legacy revisions, with a four bit AR_SREV_REVISION mask */ #define AR_SREV_REVISION_OWL_10 0x08 #define AR_SREV_REVISION_OWL_20 0x09 #define AR_SREV_REVISION_OWL_22 0x0a @@ -590,9 +601,13 @@ #define AR_RAD2122_SREV_MAJOR 0xf0 /* Fowl: 2+5G/2x2 */ /* Test macro for owl 1.0 */ -#define IS_5416V1(_ah) ((_ah)->ah_macRev == AR_SREV_REVISION_OWL_10) -#define IS_5416V2(_ah) ((_ah)->ah_macRev >= AR_SREV_REVISION_OWL_20) -#define IS_5416V2_2(_ah) ((_ah)->ah_macRev == AR_SREV_REVISION_OWL_22) +#define IS_5416V1(_ah) (AR_SREV_OWL((ah)) && (_ah)->ah_macRev == AR_SREV_REVISION_OWL_10) +#define IS_5416V2(_ah) (AR_SREV_OWL((ah)) && (_ah)->ah_macRev >= AR_SREV_REVISION_OWL_20) +#define IS_5416V2_2(_ah) (AR_SREV_OWL((ah)) && (_ah)->ah_macRev == AR_SREV_REVISION_OWL_22) + +/* Misc; compatibility with Atheros HAL */ +#define AR_SREV_5416_V20_OR_LATER(_ah) (AR_SREV_HOWL((_ah)) || AR_SREV_OWL_20_OR_LATER(_ah)) +#define AR_SREV_5416_V22_OR_LATER(_ah) (AR_SREV_HOWL((_ah)) || AR_SREV_OWL_22_OR_LATER(_ah)) /* Expanded Mac Silicon Rev (16 bits starting with Sowl) */ #define AR_XSREV_ID 0xFFFFFFFF /* Chip ID */ @@ -609,9 +624,20 @@ #define AR_XSREV_VERSION_OWL_PCI 0x0D #define AR_XSREV_VERSION_OWL_PCIE 0x0C + + +/* + * These are from ath9k/Atheros and assume an AR_SREV version mask + * of 0x07, rather than 0x0F which is being used in the FreeBSD HAL. + * Thus, don't use these values as they're incorrect here; use + * AR_SREV_REVISION_OWL_{10,20,22}. + */ +#if 0 #define AR_XSREV_REVISION_OWL_10 0 /* Owl 1.0 */ #define AR_XSREV_REVISION_OWL_20 1 /* Owl 2.0/2.1 */ #define AR_XSREV_REVISION_OWL_22 2 /* Owl 2.2 */ +#endif + #define AR_XSREV_VERSION_HOWL 0x14 /* Howl (AR9130) */ #define AR_XSREV_VERSION_SOWL 0x40 /* Sowl (AR9160) */ #define AR_XSREV_REVISION_SOWL_10 0 /* Sowl 1.0 */ @@ -632,12 +658,12 @@ #define AR_SREV_OWL_20_OR_LATER(_ah) \ ((AR_SREV_OWL(_ah) && \ - AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_OWL_20) || \ + AH_PRIVATE((_ah))->ah_macRev >= AR_SREV_REVISION_OWL_20) || \ AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_HOWL) #define AR_SREV_OWL_22_OR_LATER(_ah) \ ((AR_SREV_OWL(_ah) && \ - AH_PRIVATE((_ah))->ah_macRev >= AR_XSREV_REVISION_OWL_22) || \ + AH_PRIVATE((_ah))->ah_macRev >= AR_SREV_REVISION_OWL_22) || \ AH_PRIVATE((_ah))->ah_macVersion >= AR_XSREV_VERSION_HOWL) /* Howl (AR9130) */ From owner-svn-src-head@FreeBSD.ORG Sat May 7 02:59:24 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5D92106566C; Sat, 7 May 2011 02:59:24 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D589F8FC23; Sat, 7 May 2011 02:59:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p472xORZ077932; Sat, 7 May 2011 02:59:24 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p472xO30077927; Sat, 7 May 2011 02:59:24 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105070259.p472xO30077927@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 02:59:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221574 - in head/sys/dev/ath/ath_hal: ar5416 ar9002 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 02:59:25 -0000 Author: adrian Date: Sat May 7 02:59:24 2011 New Revision: 221574 URL: http://svn.freebsd.org/changeset/base/221574 Log: Change AR_SREV_OWL_{X}_OR_LATER to AR_SREV_5416_{X}_OR_LATER. For now, these are equivalent macros. AR_SREV_OWL{X}_OR_LATER will later change to exclude Howl (AR9130) in line with what the Atheros HAL does. This should not functionally change anything. Obtained from: Atheros Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c head/sys/dev/ath/ath_hal/ar5416/ar5416desc.h head/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c head/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Sat May 7 02:54:52 2011 (r221573) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c Sat May 7 02:59:24 2011 (r221574) @@ -1465,7 +1465,7 @@ ar5416GetRegChainOffset(struct ath_hal * { int regChainOffset; - if (AR_SREV_OWL_20_OR_LATER(ah) && + if (AR_SREV_5416_V20_OR_LATER(ah) && (AH5416(ah)->ah_rx_chainmask == 0x5 || AH5416(ah)->ah_tx_chainmask == 0x5) && (i != 0)) { /* Regs are swapped from chain 2 to 1 for 5416 2_0 with @@ -1518,7 +1518,7 @@ ar5416SetBoardValues(struct ath_hal *ah, * XXX update */ - if ((i == 0) || AR_SREV_OWL_20_OR_LATER(ah)) + if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) ar5416SetDefGainValues(ah, pModal, eep, txRxAttenLocal, regChainOffset, i); } @@ -2217,7 +2217,7 @@ ar5416SetPowerCalTable(struct ath_hal *a &tMinCalPower, gainBoundaries, pdadcValues, numXpdGain); - if ((i == 0) || AR_SREV_OWL_20_OR_LATER(ah)) { + if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) { ar5416SetGainBoundariesClosedLoop(ah, i, pdGainOverlap_t2, gainBoundaries); } @@ -2329,7 +2329,7 @@ ar5416GetGainBoundariesAndPdadcs(struct pPdGainBoundaries[i] = (uint16_t)AH_MIN(AR5416_MAX_RATE_POWER, pPdGainBoundaries[i]); /* NB: only applies to owl 1.0 */ - if ((i == 0) && !AR_SREV_OWL_20_OR_LATER(ah) ) { + if ((i == 0) && !AR_SREV_5416_V20_OR_LATER(ah) ) { /* * fix the gain delta, but get a delta that can be applied to min to * keep the upper power values accurate, don't think max needs to @@ -2501,27 +2501,20 @@ ar5416OverrideIni(struct ath_hal *ah, co } /* - * The AR5416 initvals have this already set to 0x11; AR9160 has - * the register set to 0x0. Figure out whether AR9130/AR9160 needs - * this before moving forward with it. - */ -#if 0 - /* Disable BB clock gating for AR5416v2, AR9130, AR9160 */ - if (AR_SREV_OWL_20_OR_LATER(ah) || AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) { - /* - * Disable BB clock gating - * Necessary to avoid issues on AR5416 2.0 - */ - OS_REG_WRITE(ah, 0x9800 + (651 << 2), 0x11); - } -#endif - - /* * Disable RIFS search on some chips to avoid baseband * hang issues. */ if (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) (void) ar5416SetRifsDelay(ah, AH_FALSE); + + if (!AR_SREV_5416_V20_OR_LATER(ah) || AR_SREV_MERLIN(ah)) + return; + + /* + * Disable BB clock gating + * Necessary to avoid issues on AR5416 2.0 + */ + OS_REG_WRITE(ah, 0x9800 + (651 << 2), 0x11); } struct ini { Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416desc.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416desc.h Sat May 7 02:54:52 2011 (r221573) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416desc.h Sat May 7 02:59:24 2011 (r221574) @@ -387,11 +387,11 @@ struct ar5416_desc { #define RXSTATUS_OFFSET(ah) 4 #define RXSTATUS_NUMWORDS(ah) 9 #define RXSTATUS_RATE(ah, ads) \ - (AR_SREV_OWL_20_OR_LATER(ah) ? \ + (AR_SREV_5416_V20_OR_LATER(ah) ? \ MS((ads)->ds_rxstatus0, AR_RxRate) : \ ((ads)->ds_rxstatus3 >> 2) & 0xFF) #define RXSTATUS_DUPLICATE(ah, ads) \ - (AR_SREV_OWL_20_OR_LATER(ah) ? \ + (AR_SREV_5416_V20_OR_LATER(ah) ? \ MS((ads)->ds_rxstatus3, AR_Parallel40) : \ ((ads)->ds_rxstatus3 >> 10) & 0x1) #endif /* _ATH_AR5416_DESC_H_ */ Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c Sat May 7 02:54:52 2011 (r221573) +++ head/sys/dev/ath/ath_hal/ar9002/ar9280_olc.c Sat May 7 02:59:24 2011 (r221574) @@ -368,7 +368,7 @@ ar9280SetPowerCalTable(struct ath_hal *a gainBoundaries, numXpdGain, pdGainOverlap_t2, pwr_table_offset, &diff); - if ((i == 0) || AR_SREV_OWL_20_OR_LATER(ah)) { + if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) { /* Set gain boundaries for either open- or closed-loop TPC */ if (AR_SREV_MERLIN_20_OR_LATER(ah) && ath_hal_eepromGetFlag(ah, AR_EEP_OL_PWRCTRL)) Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c Sat May 7 02:54:52 2011 (r221573) +++ head/sys/dev/ath/ath_hal/ar9002/ar9285_reset.c Sat May 7 02:59:24 2011 (r221574) @@ -648,7 +648,7 @@ ar9285SetPowerCalTable(struct ath_hal *a &tMinCalPower, gainBoundaries, pdadcValues, numXpdGain); - if ((i == 0) || AR_SREV_OWL_20_OR_LATER(ah)) { + if ((i == 0) || AR_SREV_5416_V20_OR_LATER(ah)) { /* * Note the pdadc table may not start at 0 dBm power, could be * negative or greater than 0. Need to offset the power @@ -762,7 +762,7 @@ ar9285GetGainBoundariesAndPdadcs(struct pPdGainBoundaries[i] = (uint16_t)AH_MIN(AR5416_MAX_RATE_POWER, pPdGainBoundaries[i]); /* NB: only applies to owl 1.0 */ - if ((i == 0) && !AR_SREV_OWL_20_OR_LATER(ah) ) { + if ((i == 0) && !AR_SREV_5416_V20_OR_LATER(ah) ) { /* * fix the gain delta, but get a delta that can be applied to min to * keep the upper power values accurate, don't think max needs to From owner-svn-src-head@FreeBSD.ORG Sat May 7 04:40:44 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E06291065675; Sat, 7 May 2011 04:40:44 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B89728FC16; Sat, 7 May 2011 04:40:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p474eivt082002; Sat, 7 May 2011 04:40:44 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p474eiYu082000; Sat, 7 May 2011 04:40:44 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201105070440.p474eiYu082000@svn.freebsd.org> From: Pyun YongHyeon Date: Sat, 7 May 2011 04:40:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221579 - head/sys/dev/xl X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 04:40:45 -0000 Author: yongari Date: Sat May 7 04:40:44 2011 New Revision: 221579 URL: http://svn.freebsd.org/changeset/base/221579 Log: Fix build. Modified: head/sys/dev/xl/if_xl.c Modified: head/sys/dev/xl/if_xl.c ============================================================================== --- head/sys/dev/xl/if_xl.c Sat May 7 03:58:27 2011 (r221578) +++ head/sys/dev/xl/if_xl.c Sat May 7 04:40:44 2011 (r221579) @@ -2380,7 +2380,7 @@ xl_poll_locked(struct ifnet *ifp, enum p } if (status & XL_STAT_STATSOFLOW) - xl_stats_update_locked(sc); + xl_stats_update(sc); } } return (rx_npkts); From owner-svn-src-head@FreeBSD.ORG Sat May 7 06:45:35 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8ABA106564A; Sat, 7 May 2011 06:45:35 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7FBC28FC15; Sat, 7 May 2011 06:45:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p476jZw1085643; Sat, 7 May 2011 06:45:35 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p476jZRK085640; Sat, 7 May 2011 06:45:35 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105070645.p476jZRK085640@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 06:45:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221580 - in head/sys/dev/ath/ath_hal: . ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 06:45:35 -0000 Author: adrian Date: Sat May 7 06:45:35 2011 New Revision: 221580 URL: http://svn.freebsd.org/changeset/base/221580 Log: Some BB hang changes: * Add Howl (ar9130) to the list of chips that have DFS/BB/MAC hangs * Don't treat unknown BB hangs as fatal; ath9k/Atheros HAL don't treat it as such. * Add HAL_DEBUG_DFS to the debug fields in ath_hal/ah_debug.h The BB hang check simply loops over an observation register checking for a stuck state engine, but it can happen under high traffic conditions. Ath9k and the Atheros HAL simply log a debug message and continue. Private to FreeBSD: * Add HAL_DEBUG_HANG to the debug fields * Change the hang debugging to HAL_DEBUG_HANG rather than HAL_DEBUG_DFS like in the Atheros HAL. Obtained from: Atheros Modified: head/sys/dev/ath/ath_hal/ah_debug.h head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Modified: head/sys/dev/ath/ath_hal/ah_debug.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah_debug.h Sat May 7 04:40:44 2011 (r221579) +++ head/sys/dev/ath/ath_hal/ah_debug.h Sat May 7 06:45:35 2011 (r221580) @@ -45,6 +45,8 @@ enum { HAL_DEBUG_GPIO = 0x00040000, /* GPIO debugging */ HAL_DEBUG_INTERRUPT = 0x00080000, /* interrupt handling */ HAL_DEBUG_DIVERSITY = 0x00100000, /* diversity debugging */ + HAL_DEBUG_DFS = 0x00200000, /* DFS debugging */ + HAL_DEBUG_HANG = 0x00400000, /* BB/MAC hang debugging */ HAL_DEBUG_ANY = 0xffffffff }; Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Sat May 7 04:40:44 2011 (r221579) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Sat May 7 06:45:35 2011 (r221580) @@ -283,9 +283,9 @@ ar5416GetCapability(struct ath_hal *ah, case HAL_CAP_BB_HANG: switch (capability) { case HAL_BB_HANG_RIFS: - return AR_SREV_SOWL(ah) ? HAL_OK : HAL_ENOTSUPP; + return (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) ? HAL_OK : HAL_ENOTSUPP; case HAL_BB_HANG_DFS: - return AR_SREV_SOWL(ah) ? HAL_OK : HAL_ENOTSUPP; + return (AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) ? HAL_OK : HAL_ENOTSUPP; case HAL_BB_HANG_RX_CLEAR: return AR_SREV_MERLIN(ah) ? HAL_OK : HAL_ENOTSUPP; } @@ -293,7 +293,7 @@ ar5416GetCapability(struct ath_hal *ah, case HAL_CAP_MAC_HANG: return ((ah->ah_macVersion == AR_XSREV_VERSION_OWL_PCI) || (ah->ah_macVersion == AR_XSREV_VERSION_OWL_PCIE) || - AR_SREV_SOWL(ah)) ? + AR_SREV_HOWL(ah) || AR_SREV_SOWL(ah)) ? HAL_OK : HAL_ENOTSUPP; case HAL_CAP_DIVERSITY: /* disable classic fast diversity */ return HAL_ENXIO; @@ -466,7 +466,7 @@ ar5416DetectMacHang(struct ath_hal *ah) if (ar5416CompareDbgHang(ah, &mac_dbg, &hang_sig2)) return HAL_MAC_HANG_SIG2; - HALDEBUG(ah, HAL_DEBUG_ANY, "%s Found an unknown MAC hang signature " + HALDEBUG(ah, HAL_DEBUG_HANG, "%s Found an unknown MAC hang signature " "DMADBG_3=0x%x DMADBG_4=0x%x DMADBG_5=0x%x DMADBG_6=0x%x\n", __func__, mac_dbg.dma_dbg_3, mac_dbg.dma_dbg_4, mac_dbg.dma_dbg_5, mac_dbg.dma_dbg_6); @@ -515,13 +515,13 @@ ar5416DetectBBHang(struct ath_hal *ah) } for (i = 0; i < N(hang_list); i++) if ((hang_sig & hang_list[i].mask) == hang_list[i].val) { - HALDEBUG(ah, HAL_DEBUG_ANY, + HALDEBUG(ah, HAL_DEBUG_HANG, "%s BB hang, signature 0x%x, code 0x%x\n", __func__, hang_sig, hang_list[i].code); return hang_list[i].code; } - HALDEBUG(ah, HAL_DEBUG_ANY, "%s Found an unknown BB hang signature! " + HALDEBUG(ah, HAL_DEBUG_HANG, "%s Found an unknown BB hang signature! " "<0x806c>=0x%x\n", __func__, hang_sig); return HAL_BB_HANG_UNKNOWN; From owner-svn-src-head@FreeBSD.ORG Sat May 7 06:47:09 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8448B106566B; Sat, 7 May 2011 06:47:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 616B58FC0A; Sat, 7 May 2011 06:47:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p476l9Tn085721; Sat, 7 May 2011 06:47:09 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p476l9RD085719; Sat, 7 May 2011 06:47:09 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105070647.p476l9RD085719@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 06:47:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221581 - head/sys/dev/ath/ath_hal X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 06:47:09 -0000 Author: adrian Date: Sat May 7 06:47:09 2011 New Revision: 221581 URL: http://svn.freebsd.org/changeset/base/221581 Log: Add some comments about which HAL capabilities are currently FreeBSD specific. The Atheros HAL and FreeBSD HAL share the same capabilities up until HAL_CAP_11D, where things begin to diverge. I'll look at tidying these up soon. Obtained from: Atheros Modified: head/sys/dev/ath/ath_hal/ah.h Modified: head/sys/dev/ath/ath_hal/ah.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah.h Sat May 7 06:45:35 2011 (r221580) +++ head/sys/dev/ath/ath_hal/ah.h Sat May 7 06:47:09 2011 (r221581) @@ -109,6 +109,8 @@ typedef enum { HAL_CAP_TPC_ACK = 26, /* ack txpower with per-packet tpc */ HAL_CAP_TPC_CTS = 27, /* cts txpower with per-packet tpc */ HAL_CAP_11D = 28, /* 11d beacon support for changing cc */ + + /* The following are currently different IDs to the Atheros HAL */ HAL_CAP_INTMIT = 29, /* interference mitigation */ HAL_CAP_RXORN_FATAL = 30, /* HAL_INT_RXORN treated as fatal */ HAL_CAP_HT = 31, /* hardware can support HT */ @@ -124,6 +126,11 @@ typedef enum { HAL_CAP_HAS_PSPOLL = 41, /* hardware has ps-poll support */ HAL_CAP_RXDESC_SELFLINK = 42, /* support a self-linked tail RX descriptor */ HAL_CAP_GTXTO = 43, /* hardware supports global tx timeout */ + + /* The following are back to normal, shared with the Atheros HAL */ + + /* The following are private to the FreeBSD HAL (224 onward) */ + } HAL_CAPABILITY_TYPE; /* From owner-svn-src-head@FreeBSD.ORG Sat May 7 06:52:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 59294106566C; Sat, 7 May 2011 06:52:05 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 489248FC12; Sat, 7 May 2011 06:52:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p476q58a085890; Sat, 7 May 2011 06:52:05 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p476q50Z085888; Sat, 7 May 2011 06:52:05 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105070652.p476q50Z085888@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 06:52:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221582 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 06:52:05 -0000 Author: adrian Date: Sat May 7 06:52:04 2011 New Revision: 221582 URL: http://svn.freebsd.org/changeset/base/221582 Log: Instead of returning an unknown mac/bb signature, just return 0. Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Sat May 7 06:47:09 2011 (r221581) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Sat May 7 06:52:04 2011 (r221582) @@ -471,7 +471,7 @@ ar5416DetectMacHang(struct ath_hal *ah) __func__, mac_dbg.dma_dbg_3, mac_dbg.dma_dbg_4, mac_dbg.dma_dbg_5, mac_dbg.dma_dbg_6); - return HAL_MAC_HANG_UNKNOWN; + return 0; } /* @@ -524,7 +524,7 @@ ar5416DetectBBHang(struct ath_hal *ah) HALDEBUG(ah, HAL_DEBUG_HANG, "%s Found an unknown BB hang signature! " "<0x806c>=0x%x\n", __func__, hang_sig); - return HAL_BB_HANG_UNKNOWN; + return 0; #undef N } #undef NUM_STATUS_READS From owner-svn-src-head@FreeBSD.ORG Sat May 7 10:06:43 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CFD0106564A; Sat, 7 May 2011 10:06:43 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7D6838FC0A; Sat, 7 May 2011 10:06:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47A6hUr091781; Sat, 7 May 2011 10:06:43 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47A6hak091779; Sat, 7 May 2011 10:06:43 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201105071006.p47A6hak091779@svn.freebsd.org> From: Andriy Gapon Date: Sat, 7 May 2011 10:06:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221585 - head/sys/cam/scsi X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 10:06:43 -0000 Author: avg Date: Sat May 7 10:06:43 2011 New Revision: 221585 URL: http://svn.freebsd.org/changeset/base/221585 Log: scsi_cd: silence READ_TOC errors in CDIOREADTOCHEADER ioctl An optical disk may not have a TOC (e.g. for blank media) and userland software may legitimately try to use CDIOREADTOCHEADER to find out about the TOC. Silence from: scsi@ MFC after: 10 days Modified: head/sys/cam/scsi/scsi_cd.c Modified: head/sys/cam/scsi/scsi_cd.c ============================================================================== --- head/sys/cam/scsi/scsi_cd.c Sat May 7 09:33:37 2011 (r221584) +++ head/sys/cam/scsi/scsi_cd.c Sat May 7 10:06:43 2011 (r221585) @@ -2138,7 +2138,7 @@ cdioctl(struct disk *dp, u_long cmd, voi ("trying to do CDIOREADTOCHEADER\n")); error = cdreadtoc(periph, 0, 0, (u_int8_t *)th, - sizeof (*th), /*sense_flags*/0); + sizeof (*th), /*sense_flags*/SF_NO_PRINT); if (error) { free(th, M_SCSICD); cam_periph_unlock(periph); From owner-svn-src-head@FreeBSD.ORG Sat May 7 10:40:58 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 16871106564A; Sat, 7 May 2011 10:40:58 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 06F398FC18; Sat, 7 May 2011 10:40:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47AevV3093176; Sat, 7 May 2011 10:40:57 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47Aevcm093174; Sat, 7 May 2011 10:40:57 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201105071040.p47Aevcm093174@svn.freebsd.org> From: Andriy Gapon Date: Sat, 7 May 2011 10:40:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221593 - head/sys/boot/common X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 10:40:58 -0000 Author: avg Date: Sat May 7 10:40:57 2011 New Revision: 221593 URL: http://svn.freebsd.org/changeset/base/221593 Log: a whitespace nit MFC after: 4 days Modified: head/sys/boot/common/interp.c Modified: head/sys/boot/common/interp.c ============================================================================== --- head/sys/boot/common/interp.c Sat May 7 10:35:43 2011 (r221592) +++ head/sys/boot/common/interp.c Sat May 7 10:40:57 2011 (r221593) @@ -105,7 +105,7 @@ interact(void) /* * Read our default configuration */ - if(include("/boot/loader.rc")!=CMD_OK) + if(include("/boot/loader.rc") != CMD_OK) include("/boot/boot.conf"); printf("\n"); /* From owner-svn-src-head@FreeBSD.ORG Sat May 7 10:44:09 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 077B3106564A; Sat, 7 May 2011 10:44:09 +0000 (UTC) (envelope-from kaiw@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EA7988FC13; Sat, 7 May 2011 10:44:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47Ai8TS093309; Sat, 7 May 2011 10:44:08 GMT (envelope-from kaiw@svn.freebsd.org) Received: (from kaiw@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47Ai82O093307; Sat, 7 May 2011 10:44:08 GMT (envelope-from kaiw@svn.freebsd.org) Message-Id: <201105071044.p47Ai82O093307@svn.freebsd.org> From: Kai Wang Date: Sat, 7 May 2011 10:44:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221594 - head/share/man/man5 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 10:44:09 -0000 Author: kaiw Date: Sat May 7 10:44:08 2011 New Revision: 221594 URL: http://svn.freebsd.org/changeset/base/221594 Log: * Rewrite ar.5 mannual page to better document ar(1) archive format. * Use more standard BSD license. Obtained from: elftoolchain Modified: head/share/man/man5/ar.5 Modified: head/share/man/man5/ar.5 ============================================================================== --- head/share/man/man5/ar.5 Sat May 7 10:40:57 2011 (r221593) +++ head/share/man/man5/ar.5 Sat May 7 10:44:08 2011 (r221594) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2007 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2010 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -9,226 +9,319 @@ .\" 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 Joseph Koshy ``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 Joseph Koshy 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. +.\" 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$ .\" -.Dd September 7, 2007 -.Dt AR 5 +.Dd November 28, 2010 .Os +.Dt AR 5 .Sh NAME .Nm ar -.Nd format of archives managed by ar(1) and ranlib(1) +.Nd archive file format for +.Xr ar 1 +and +.Xr ranlib 1 .Sh SYNOPSIS .In ar.h .Sh DESCRIPTION -An archive managed by the +.Xr ar 1 +archives are created and managed by the .Xr ar 1 and .Xr ranlib 1 -utilities is a single file that stores the individual members of the -archive along with metadata for each member. -There are two major variants of the +utilities. +These archives are typically used during program development to +hold libraries of program objects. +An +.Xr ar 1 +archive is contained in a single operating system file. +.Pp +This manual page documents two variants of the .Xr ar 1 -archive format, the BSD variant and the SVR4/GNU variant. -Both variants are described by this manual page. +archive format: the BSD archive format, and the SVR4/GNU archive +format. .Pp -The header file +In both variants the archive file starts with an identifying byte +sequence of the seven ASCII characters +.Sq Li "!" +followed by a ASCII linefeed character +.Po +see the constant +.Dq ARMAG +in the header file .In ar.h -defines constants and structures used to describe the layout -of these archives. -.Ss Archive Layout -.Xr ar 1 -archives start with a string of magic bytes -.Qq !\en -(constant -.Dv ARMAG -in header -.In ar.h ) . -The content of the archive follows the magic bytes. -Each member stored in the archive is preceded by a fixed size -archive header that stores file permissions, last modification -time, the owner, and the group of the archived file. -.Pp -Archive headers start at an even byte offset in the archive -file. -If the length of the preceding archive member was odd, then an extra -newline character -.Dq "\en" -is used as padding. -.Pp -The archive header comprises six fixed-size ASCII strings followed -by a two character trailer (see -.Vt "struct ar_hdr" -in header file -.In ar.h Ns ): -.Bd -literal -struct ar_hdr { - char ar_name[16]; /* name */ - char ar_date[12]; /* modification time */ - char ar_uid[6]; /* user id */ - char ar_gid[6]; /* group id */ - char ar_mode[8]; /* octal file permissions */ - char ar_size[10]; /* size in bytes */ - char ar_fmag[2]; /* consistency check */ -}; -.Ed -.Pp -Unused characters in the header are filled with space (ASCII 20H) -characters. -Each field of the header abuts the next without additional padding. -.Pp -The members of the archive header are as follows: -.Bl -tag -width "Va ar_name" -compact -.It Va ar_date -This field holds the decimal representation of the -modification time, in seconds since the epoch, of the archive -member. -.It Va ar_fmag -This trailer field holds the two characters -.Qq `\en -(constant -.Dv ARFMAG -defined in header file -.In ar.h Ns ), -and is used for consistency checks. -.It Va ar_gid -This field holds the decimal representation of the numeric -user id of the creator of the member. -.It Va ar_mode -This field holds octal representation of the file permissions -for the member. -.It Va ar_name -This field holds the name of an archive member. -The usage of this field depends on the format variant: -.Bl -tag -width "SVR4/GNU" -compact -.It BSD -In the BSD variant, names that are shorter than 16 characters and -without embedded spaces are stored directly in this field. -If a name has an embedded space, or if it is longer than 16 -characters, then the string -.Qq "#1/" -followed by the decimal representation of the length of the file name -is placed in this field. -The actual file name is stored immediately after the archive header. -The content of the archive member follows the file name. +.Pc . +.Pp +Archive members follow the initial identifying byte sequence. +Each archive member is prefixed by a fixed size header describing the +file attributes associated with the member. +.Ss "Archive Headers" +An archive header describes the file attributes for the archive member that +follows it. The -.Va ar_size -field of the header (see below) will then hold the sum of the size of -the file name and the size of the member. -.It SVR4/GNU -In the SVR4/GNU variant, names up to 15 characters in length are -stored directly in this field, and are terminated by a -.Qq / -(ASCII 2FH) character. -Names larger than 15 characters in length are stored in a special -archive string table member (see -.Sx "Archive String Table" -below), and the -.Va ar_name -field holds the string -.Qq "/" -followed by the decimal representation of the offset in the archive -string table of the actual name. +.Xr ar 5 +format only supports a limited number of attributes: the file name, +the file creation time stamp, the uid and gid of the creator, the file +mode and the file size. +.Pp +Archive headers are placed at an even byte offset in the archive file. +If the data for an archive member ends at an odd byte offset, then a +padding byte with value 0x0A is used to position the next archive +header on an even byte offset. +.Pp +An archive header comprises the following fixed sized fields: +.Bl -tag -width "Li ar_name" +.It Ar ar_name +(16 bytes) The file name of the archive member. +The format of this field varies between the BSD and SVR4/GNU formats and +is described in more detail in the section +.Sx "Representing File Names" +below. +.It Ar ar_date +(12 bytes) The file modification time for the member in seconds since the +epoch, encoded as a decimal number. +.It Ar ar_uid +(6 bytes) The uid associated with the archive member, encoded as a +decimal number. +.It Ar ar_gid +(6 bytes) The gid associated with the archive member, encoded as a +decimal number. +.It Ar ar_mode +(8 bytes) The file mode for the archive member, encoded as an octal +number. +.It Ar ar_size +(10 bytes) In the SVR4/GNU archive format this field holds the size in +bytes of the archive member, encoded as a decimal number. +In the BSD archive format, for short file names, this field +holds the size in bytes of the archive member, encoded as a decimal +number. +For long file names +.Po +see +.Sx "Representing File Names" +below +.Pc , +the field contains the combined size of the +archive member and its file name, encoded as a decimal number. +.It Ar ar_fmag +(2 bytes) This field holds 2 bytes with values 0x96 and 0x0A +respectively, marking the end of the header. +.El +.Pp +Unused bytes in the fields of an archive header are set to the value +0x20. +.Ss "Representing File Names" +The BSD and SVR4/GNU variants use different schemes for encoding file +names for members. +.Bl -tag -width "SVR4/GNU" +.It "BSD" +File names that are upto 16 bytes long and which do not contain +embedded spaces are stored directly in the +.Ar ar_name +field of the archive header. +File names that are either longer than 16 bytes or which contain +embedded spaces are stored immediately after the archive header +and the +.Ar ar_name +field of the archive header is set to the string +.Dq "#1/" +followed by a decimal representation of the number of bytes needed for +the file name. +In addition, the +.Ar ar_size +field of the archive header is set to the decimal representation of +the combined sizes of the archive member and the file name. +The file contents of the member follows the file name without further +padding. +.Pp +As an example, if the file name for a member was +.Dq "A B" +and its contents was the string +.Dq "C D" , +then the +.Ar ar_name +field of the header would contain +.Dq Li "#1/3" , +the +.Ar ar_size +field of the header would contain +.Dq Li 6 , +and the bytes immediately following the header would be 0x41, 0x20, +0x42, 0x43, 0x20 and 0x44 +.Po +ASCII +.Dq "A BC D" +.Pc . +.It "SVR4/GNU" +File names that are upto 15 characters long are stored directly in the +.Ar ar_name +field of the header, terminated by a +.Dq Li / +character. +.Pp +If the file name is larger than would fit in space for the +.Ar ar_name +field, then the actual file name is kept in the archive +string table +.Po +see +.Sx "Archive String Tables" +below +.Pc , +and the decimal offset of the file name in the string table is stored +in the +.Ar ar_name +field, prefixed by a +.Dq Li / +character. +.Pp +As an example, if the real file name has been stored at offset 768 in +the archive string table, the +.Ar ar_name +field of the header will contain the string +.Dq /768 . .El -.It Va ar_size -In the SVR4/GNU variant, this field holds the decimal representation -of actual size in bytes of the archived file. -In the BSD variant, for member names that use the -.Va ar_name -field directly, this field holds the decimal representation of the -actual size in bytes of the archived member. -For member names that use the extension mechanism described above, the -field will hold the sum of the sizes, in bytes, of the filename and the -archive member. -.It Va ar_uid -This field holds the decimal representation of the numeric -group id of the creator of the member. +.Ss "Special Archive Members" +The following archive members are special. +.Bl -tag -width indent +.It Dq Li / +In the SVR4/GNU variant of the archive format, the archive member with +name +.Dq Li / +denotes an archive symbol table. +If present, this member will be the very first member in the +archive. +.It Dq Li // +In the SVR4/GNU variant of the archive format, the archive member with +name +.Dq Li // +denotes the archive string table. +This special member is used to hold filenames that do not fit in the +file name field of the header +.Po +see +.Sx "Representing File Names" +above +.Pc . +If present, this member immediately follows the archive symbol table +if an archive symbol table is present, or is the first member otherwise. +.It Dq Li "__.SYMDEF" +This special member contains the archive symbol table in the BSD +variant of the archive format. +If present, this member will be the very first member in the +archive. .El -.Ss Archive Symbol Table -An archive may additionally contain an archive symbol table -used by the link editor, -.Xr ld 1 . -This symbol table has the member name -.Qq __.SYMDEF -in the BSD variant of the archive format, and the name -.Qq / -in the SVR4/GNU variant. +.Ss "Archive String Tables" +An archive string table is used in the SVR4/GNU archive format to hold +file names that are too large to fit into the constraints of the +.Ar ar_name +field of the archive header. +An archive string table contains a sequence of file names. +Each file name in the archive string table is terminated by the +byte sequence 0x2F, 0x0A +.Po +the ASCII string +.Dq "/\en" +.Pc . +No padding is used to separate adjacent file names. +.Ss "Archive Symbol Tables" +Archive symbol tables are used to speed up link editing by providing a +mapping between the program symbols defined in the archive +and the corresponding archive members. +Archive symbol tables are managed by the +.Xr ranlib 1 +utility. .Pp -The format of the symbol table depends on the format variant: -.Bl -tag -width "SVR4/GNU" -compact +The format of archive symbol tables is as follows: +.Bl -tag -width "SVR4/GNU" .It BSD -In the BSD variant, the symbol table has 4 parts encoded in -a machine dependent manner: -.Bl -enum -compact -.It -The first part is a binary value containing size in bytes of the -second part encoded as a C -.Dq long . -.It -The second part is a list of -.Vt struct ranlib -structures (see -.In ranlib.h Ns ). -Each ranlib structure describes one symbol and comprises of -two C -.Dq long -values. -The first -.Dq long -is a zero-based offset into the string table in the fourth part -for the symbol's name. -The second -.Dq long -is an offset from the beginning of the archive to the start -of the archive header for the member that defines the symbol. -.It -The third part is a binary value denoting the length of the -string table contained in the fourth part. -.It -The fourth part is a string table containing NUL-terminated -strings. +In the BSD archive format, the archive symbol table comprises +of two parts: a part containing an array of +.Vt "struct ranlib" +descriptors, followed by a part containing a symbol string table. +The sizes and layout of the structures that make up a BSD format +archive symbol table are machine dependent. +.Pp +The part containing +.Vt "struct ranlib" +descriptors begins with a field containing the size in bytes of the +array of +.Vt "struct ranlib" +descriptors encoded as a C +.Vt long +value. +.Pp +The array of +.Vt "struct ranlib" +descriptors follows the size field. +Each +.Vt "struct ranlib" +descriptor describes one symbol. +.Pp +A +.Vt "struct ranlib" +descriptor comprises two fields: +.Bl -tag -width "Ar ran_strx" -compact +.It Ar ran_strx +.Pq C Vt long +This field contains the zero-based offset of the symbol name in the +symbol string table. +.It Ar ran_off +.Pq C Vt long +This field is the file offset to the archive header for the archive +member defining the symbol. .El +.Pp +The part containing the symbol string table begins with a field +containing the size in bytes of the string table, encoded as a C +.Vt long +value. +This string table follows the size field, and contains +NUL-terminated strings for the symbols in the symbol table. .It SVR4/GNU -In the SVR4/GNU variant, the symbol table comprises of three parts -which follow each other without padding: -.Bl -enum -compact -.It -The first part comprises of a count of entries in the symbol table, -stored a 4 byte binary value in MSB first order. -.It -The next part is an array of 4 byte file offsets within the archive -to archive header for members that define the symbol in question. -Each offset in stored in MSB first order. -.It -The third part is a string table, that contains NUL-terminated -strings for the symbols in the symbol table. -.El +In the SVR4/GNU archive format, the archive symbol table starts with a +4-byte binary value containing the number of entries contained in the +archive symbol table. +This count of entries is stored most significant byte first. +.Pp +Next, there are +.Ar count +4-byte numbers, each stored most significant byte first. +Each number is a binary offset to the archive header for the member in +the archive file for the corresponding symbol table entry. +.Pp +After the binary offset values, there are +.Ar count +NUL-terminated strings in sequence, holding the symbol names for +the corresponding symbol table entries. .El -.Ss Archive String Table -In the SVR4/GNU variant of the +.Sh STANDARDS COMPLIANCE +The .Xr ar 1 -archive format, long file names are stored in a separate -archive string table and referenced from the archive header -for each member. -Each file name is terminated by the string -.Qq /\en . -The string table itself has a name of -.Qq // . +archive format is not currently specified by a standard. +.Pp +This manual page documents the +.Xr ar 1 +archive formats used by the +.Bx 4.4 +and +.Ux SVR4 +operating system releases. .Sh SEE ALSO .Xr ar 1 , +.Xr ld 1 , .Xr ranlib 1 , -.Xr archive 3 , .Xr elf 3 , -.Xr gelf 3 , -.Xr elf 5 +.Xr elf_getarsym 3 , +.Xr elf_rand 3 From owner-svn-src-head@FreeBSD.ORG Sat May 7 11:04:37 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 50898106566B; Sat, 7 May 2011 11:04:37 +0000 (UTC) (envelope-from kaiw@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3FB838FC15; Sat, 7 May 2011 11:04:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47B4bpS095809; Sat, 7 May 2011 11:04:37 GMT (envelope-from kaiw@svn.freebsd.org) Received: (from kaiw@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47B4bPH095807; Sat, 7 May 2011 11:04:37 GMT (envelope-from kaiw@svn.freebsd.org) Message-Id: <201105071104.p47B4bPH095807@svn.freebsd.org> From: Kai Wang Date: Sat, 7 May 2011 11:04:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221595 - head/lib/libelf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 11:04:37 -0000 Author: kaiw Date: Sat May 7 11:04:36 2011 New Revision: 221595 URL: http://svn.freebsd.org/changeset/base/221595 Log: For zero-sized sections, set the `d_buf` field of the `Elf_Data` descriptor returned by `elf_rawdata()` to NULL. Obtained from: elftoolchain Modified: head/lib/libelf/elf_data.c Modified: head/lib/libelf/elf_data.c ============================================================================== --- head/lib/libelf/elf_data.c Sat May 7 10:44:08 2011 (r221594) +++ head/lib/libelf/elf_data.c Sat May 7 11:04:36 2011 (r221595) @@ -225,7 +225,8 @@ elf_rawdata(Elf_Scn *s, Elf_Data *d) if ((d = _libelf_allocate_data(s)) == NULL) return (NULL); - d->d_buf = sh_type == SHT_NOBITS ? NULL : e->e_rawfile + sh_offset; + d->d_buf = (sh_type == SHT_NOBITS || sh_size == 0) ? NULL : + e->e_rawfile + sh_offset; d->d_off = 0; d->d_align = sh_align; d->d_size = sh_size; From owner-svn-src-head@FreeBSD.ORG Sat May 7 11:05:17 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F8C9106566B; Sat, 7 May 2011 11:05:17 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 55A418FC17; Sat, 7 May 2011 11:05:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47B5Hk1095877; Sat, 7 May 2011 11:05:17 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47B5Hnk095870; Sat, 7 May 2011 11:05:17 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105071105.p47B5Hnk095870@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 11:05:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221596 - in head/sys/dev/ath/ath_hal: . ar5416 ar9001 ar9002 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 11:05:17 -0000 Author: adrian Date: Sat May 7 11:05:16 2011 New Revision: 221596 URL: http://svn.freebsd.org/changeset/base/221596 Log: Read in the extended regulatory domain flags so future code can use them. These describe FCC/Japan channel and DFS behaviour. The AR9285 and later chips don't set these bits in the eeprom, the correct behaviour is to just assume all five bits are enabled. Modified: head/sys/dev/ath/ath_hal/ah_internal.h head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Modified: head/sys/dev/ath/ath_hal/ah_internal.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah_internal.h Sat May 7 11:04:36 2011 (r221595) +++ head/sys/dev/ath/ath_hal/ah_internal.h Sat May 7 11:05:16 2011 (r221596) @@ -298,6 +298,7 @@ struct ath_hal_private { * State for regulatory domain handling. */ HAL_REG_DOMAIN ah_currentRD; /* EEPROM regulatory domain */ + HAL_REG_DOMAIN ah_currentRDext; /* EEPROM extended regdomain flags */ HAL_CHANNEL_INTERNAL ah_channels[AH_MAXCHAN]; /* private chan state */ u_int ah_nchan; /* valid items in ah_channels */ const struct regDomain *ah_rd2GHz; /* reg state for 2G band */ Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Sat May 7 11:04:36 2011 (r221595) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Sat May 7 11:05:16 2011 (r221596) @@ -371,6 +371,8 @@ ar5416Attach(uint16_t devid, HAL_SOFTC s /* Read Reg Domain */ AH_PRIVATE(ah)->ah_currentRD = ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL); + AH_PRIVATE(ah)->ah_currentRDext = + ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL); /* * ah_miscMode is populated by ar5416FillCapabilityInfo() Modified: head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c Sat May 7 11:04:36 2011 (r221595) +++ head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c Sat May 7 11:05:16 2011 (r221596) @@ -236,6 +236,9 @@ ar9130Attach(uint16_t devid, HAL_SOFTC s /* Read Reg Domain */ AH_PRIVATE(ah)->ah_currentRD = ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL); + AH_PRIVATE(ah)->ah_currentRDext = + ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL); + /* * ah_miscMode is populated by ar5416FillCapabilityInfo() Modified: head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c Sat May 7 11:04:36 2011 (r221595) +++ head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c Sat May 7 11:05:16 2011 (r221596) @@ -241,6 +241,8 @@ ar9160Attach(uint16_t devid, HAL_SOFTC s /* Read Reg Domain */ AH_PRIVATE(ah)->ah_currentRD = ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL); + AH_PRIVATE(ah)->ah_currentRDext = + ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL); /* * ah_miscMode is populated by ar5416FillCapabilityInfo() Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Sat May 7 11:04:36 2011 (r221595) +++ head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Sat May 7 11:05:16 2011 (r221596) @@ -325,6 +325,8 @@ ar9280Attach(uint16_t devid, HAL_SOFTC s /* Read Reg Domain */ AH_PRIVATE(ah)->ah_currentRD = ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL); + AH_PRIVATE(ah)->ah_currentRDext = + ath_hal_eepromGet(ah, AR_EEP_REGDMN_1, AH_NULL); /* * ah_miscMode is populated by ar5416FillCapabilityInfo() Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Sat May 7 11:04:36 2011 (r221595) +++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Sat May 7 11:05:16 2011 (r221596) @@ -284,6 +284,11 @@ ar9285Attach(uint16_t devid, HAL_SOFTC s /* Read Reg Domain */ AH_PRIVATE(ah)->ah_currentRD = ath_hal_eepromGet(ah, AR_EEP_REGDMN_0, AH_NULL); + /* + * For Kite and later chipsets, the following bits are not + * programmed in EEPROM and so are set as enabled always. + */ + AH_PRIVATE(ah)->ah_currentRDext = AR9285_RDEXT_DEFAULT; /* * ah_miscMode is populated by ar5416FillCapabilityInfo() From owner-svn-src-head@FreeBSD.ORG Sat May 7 11:10:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B97A31065672; Sat, 7 May 2011 11:10:58 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AA12F8FC14; Sat, 7 May 2011 11:10:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47BAwuv096096; Sat, 7 May 2011 11:10:58 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47BAwmU096094; Sat, 7 May 2011 11:10:58 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201105071110.p47BAwmU096094@svn.freebsd.org> From: Jaakko Heinonen Date: Sat, 7 May 2011 11:10:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221597 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 11:10:59 -0000 Author: jh Date: Sat May 7 11:10:58 2011 New Revision: 221597 URL: http://svn.freebsd.org/changeset/base/221597 Log: Add WITNESS_WARN() to getenv() to explicitly note that the function may sleep. This helps to expose bugs when the requested environment variable doesn't exist. Modified: head/sys/kern/kern_environment.c Modified: head/sys/kern/kern_environment.c ============================================================================== --- head/sys/kern/kern_environment.c Sat May 7 11:05:16 2011 (r221596) +++ head/sys/kern/kern_environment.c Sat May 7 11:10:58 2011 (r221597) @@ -310,6 +310,7 @@ getenv(const char *name) int len; if (dynamic_kenv) { + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); mtx_lock(&kenv_lock); cp = _getenv_dynamic(name, NULL); if (cp != NULL) { From owner-svn-src-head@FreeBSD.ORG Sat May 7 11:29:49 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0CE2C106566B; Sat, 7 May 2011 11:29:49 +0000 (UTC) (envelope-from kaiw@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F1B6E8FC0A; Sat, 7 May 2011 11:29:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47BTmL4096679; Sat, 7 May 2011 11:29:48 GMT (envelope-from kaiw@svn.freebsd.org) Received: (from kaiw@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47BTmH4096677; Sat, 7 May 2011 11:29:48 GMT (envelope-from kaiw@svn.freebsd.org) Message-Id: <201105071129.p47BTmH4096677@svn.freebsd.org> From: Kai Wang Date: Sat, 7 May 2011 11:29:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221598 - head/lib/libelf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 11:29:49 -0000 Author: kaiw Date: Sat May 7 11:29:48 2011 New Revision: 221598 URL: http://svn.freebsd.org/changeset/base/221598 Log: Document the behavior of `elf_getdata()` and `elf_rawdata()` with zero-sized ELF sections. Obtained from: elftoolchain Modified: head/lib/libelf/elf_getdata.3 Modified: head/lib/libelf/elf_getdata.3 ============================================================================== --- head/lib/libelf/elf_getdata.3 Sat May 7 11:10:58 2011 (r221597) +++ head/lib/libelf/elf_getdata.3 Sat May 7 11:29:48 2011 (r221598) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2006,2008,2010 Joseph Koshy. All rights reserved. +.\" Copyright (c) 2006,2008,2010-2011 Joseph Koshy. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 30, 2010 +.Dd January 26, 2011 .Dt ELF_GETDATA 3 .Os .Sh NAME @@ -142,9 +142,10 @@ always returns .Vt Elf_Data structures of type .Dv ELF_T_BYTE . -.Ss Special handling of SHT_NOBITS sections +.Ss Special handling of zero-sized and SHT_NOBITS sections For sections of type -.Dv SHT_NOBITS , +.Dv SHT_NOBITS, +and for zero-sized sections, the functions .Fn elf_getdata and From owner-svn-src-head@FreeBSD.ORG Sat May 7 11:49:03 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F5541065670; Sat, 7 May 2011 11:49:03 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id E61ED8FC0A; Sat, 7 May 2011 11:49:02 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id p47Bmx1C060995 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 7 May 2011 14:48:59 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id p47BmxlS000480; Sat, 7 May 2011 14:48:59 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id p47Bmu5i000479; Sat, 7 May 2011 14:48:56 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 7 May 2011 14:48:56 +0300 From: Kostik Belousov To: Jaakko Heinonen Message-ID: <20110507114856.GN48734@deviant.kiev.zoral.com.ua> References: <201105071110.p47BAwmU096094@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="afReowZ/oS2gITrV" Content-Disposition: inline In-Reply-To: <201105071110.p47BAwmU096094@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-3.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221597 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 11:49:03 -0000 --afReowZ/oS2gITrV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, May 07, 2011 at 11:10:58AM +0000, Jaakko Heinonen wrote: > Author: jh > Date: Sat May 7 11:10:58 2011 > New Revision: 221597 > URL: http://svn.freebsd.org/changeset/base/221597 >=20 > Log: > Add WITNESS_WARN() to getenv() to explicitly note that the function may > sleep. This helps to expose bugs when the requested environment variable > doesn't exist. >=20 > Modified: > head/sys/kern/kern_environment.c >=20 > Modified: head/sys/kern/kern_environment.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/kern/kern_environment.c Sat May 7 11:05:16 2011 (r221596) > +++ head/sys/kern/kern_environment.c Sat May 7 11:10:58 2011 (r221597) > @@ -310,6 +310,7 @@ getenv(const char *name) > int len; > =20 > if (dynamic_kenv) { > + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); > mtx_lock(&kenv_lock); > cp =3D _getenv_dynamic(name, NULL); > if (cp !=3D NULL) { This might be somewhat excessive. Since malloc() warns or panics anyway, what about moving the WITNESS_WARN into "not found" branch ? --afReowZ/oS2gITrV Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk3FMagACgkQC3+MBN1Mb4hWEgCfWYpcAcycS6aL0BxxYbcqtD9N X+IAoMBpaqjPbDS4DIQVJ9J8ilImprmx =YH2G -----END PGP SIGNATURE----- --afReowZ/oS2gITrV-- From owner-svn-src-head@FreeBSD.ORG Sat May 7 11:50:09 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 738011065674; Sat, 7 May 2011 11:50:09 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id C93208FC0A; Sat, 7 May 2011 11:50:08 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id p47Bo56E061082 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 7 May 2011 14:50:05 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id p47Bo5Nu000494; Sat, 7 May 2011 14:50:05 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id p47Bo5sD000493; Sat, 7 May 2011 14:50:05 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 7 May 2011 14:50:05 +0300 From: Kostik Belousov To: Andriy Gapon Message-ID: <20110507115005.GO48734@deviant.kiev.zoral.com.ua> References: <201105071040.p47Aevcm093174@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3dPKw/kcnFYEODXu" Content-Disposition: inline In-Reply-To: <201105071040.p47Aevcm093174@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-3.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221593 - head/sys/boot/common X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 11:50:09 -0000 --3dPKw/kcnFYEODXu Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, May 07, 2011 at 10:40:57AM +0000, Andriy Gapon wrote: > Author: avg > Date: Sat May 7 10:40:57 2011 > New Revision: 221593 > URL: http://svn.freebsd.org/changeset/base/221593 >=20 > Log: > a whitespace nit > =20 > MFC after: 4 days >=20 > Modified: > head/sys/boot/common/interp.c >=20 > Modified: head/sys/boot/common/interp.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/boot/common/interp.c Sat May 7 10:35:43 2011 (r221592) > +++ head/sys/boot/common/interp.c Sat May 7 10:40:57 2011 (r221593) > @@ -105,7 +105,7 @@ interact(void) > /* > * Read our default configuration > */ > - if(include("/boot/loader.rc")!=3DCMD_OK) > + if(include("/boot/loader.rc") !=3D CMD_OK) Why not add a space between if and '(' ? > include("/boot/boot.conf"); > printf("\n"); > /* --3dPKw/kcnFYEODXu Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk3FMewACgkQC3+MBN1Mb4i0dACgkrvoBEoowYoDaxDSOOmFwnkY ShEAn1nYIN9Y9wFaDT0z91Vb30CveZ5L =4boK -----END PGP SIGNATURE----- --3dPKw/kcnFYEODXu-- From owner-svn-src-head@FreeBSD.ORG Sat May 7 12:20:55 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6E4631065670; Sat, 7 May 2011 12:20:55 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from gw03.mail.saunalahti.fi (gw03.mail.saunalahti.fi [195.197.172.111]) by mx1.freebsd.org (Postfix) with ESMTP id 22B948FC18; Sat, 7 May 2011 12:20:54 +0000 (UTC) Received: from a91-153-123-205.elisa-laajakaista.fi (a91-153-123-205.elisa-laajakaista.fi [91.153.123.205]) by gw03.mail.saunalahti.fi (Postfix) with SMTP id 1B89D216754; Sat, 7 May 2011 15:20:49 +0300 (EEST) Date: Sat, 7 May 2011 15:20:48 +0300 From: Jaakko Heinonen To: Kostik Belousov Message-ID: <20110507122048.GA1846@a91-153-123-205.elisa-laajakaista.fi> References: <201105071110.p47BAwmU096094@svn.freebsd.org> <20110507114856.GN48734@deviant.kiev.zoral.com.ua> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110507114856.GN48734@deviant.kiev.zoral.com.ua> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221597 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 12:20:55 -0000 On 2011-05-07, Kostik Belousov wrote: > > @@ -310,6 +310,7 @@ getenv(const char *name) > > int len; > > > > if (dynamic_kenv) { > > + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); > > mtx_lock(&kenv_lock); > > cp = _getenv_dynamic(name, NULL); > > if (cp != NULL) { > > This might be somewhat excessive. Since malloc() warns or panics anyway, > what about moving the WITNESS_WARN into "not found" branch ? Is this better? %%% Index: sys/kern/kern_environment.c =================================================================== --- sys/kern/kern_environment.c (revision 221597) +++ sys/kern/kern_environment.c (working copy) @@ -310,7 +310,6 @@ getenv(const char *name) int len; if (dynamic_kenv) { - WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); mtx_lock(&kenv_lock); cp = _getenv_dynamic(name, NULL); if (cp != NULL) { @@ -322,6 +321,8 @@ getenv(const char *name) } else { mtx_unlock(&kenv_lock); ret = NULL; + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, + "getenv"); } } else ret = _getenv_static(name); %%% -- Jaakko From owner-svn-src-head@FreeBSD.ORG Sat May 7 12:27:25 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 991CE106566C; Sat, 7 May 2011 12:27:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 899228FC13; Sat, 7 May 2011 12:27:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47CRPiN098441; Sat, 7 May 2011 12:27:25 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47CRPUa098439; Sat, 7 May 2011 12:27:25 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201105071227.p47CRPUa098439@svn.freebsd.org> From: Alexander Motin Date: Sat, 7 May 2011 12:27:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221599 - head/sys/i386/i386 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 12:27:25 -0000 Author: mav Date: Sat May 7 12:27:25 2011 New Revision: 221599 URL: http://svn.freebsd.org/changeset/base/221599 Log: Don't use MWAIT for short sleeps under XEN, as it was before r212541. This fixes panic during boot in PV mode on Xen 3.2. Modified: head/sys/i386/i386/machdep.c Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Sat May 7 11:29:48 2011 (r221598) +++ head/sys/i386/i386/machdep.c Sat May 7 12:27:25 2011 (r221599) @@ -1359,6 +1359,7 @@ cpu_idle(int busy) if (mp_grab_cpu_hlt()) return; #endif +#ifndef XEN /* If we are busy - try to use fast methods. */ if (busy) { if ((cpu_feature2 & CPUID2_MON) && idle_mwait) { @@ -1367,7 +1368,6 @@ cpu_idle(int busy) } } -#ifndef XEN /* If we have time - switch timers into idle mode. */ if (!busy) { critical_enter(); @@ -1395,8 +1395,8 @@ cpu_idle(int busy) cpu_activeclock(); critical_exit(); } -#endif out: +#endif CTR2(KTR_SPARE2, "cpu_idle(%d) at %d done", busy, curcpu); } From owner-svn-src-head@FreeBSD.ORG Sat May 7 12:41:31 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A882106566B; Sat, 7 May 2011 12:41:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id E67058FC08; Sat, 7 May 2011 12:41:30 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id p47CfR49064018 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 7 May 2011 15:41:27 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id p47CfRiR002839; Sat, 7 May 2011 15:41:27 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id p47CfRuY002838; Sat, 7 May 2011 15:41:27 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sat, 7 May 2011 15:41:27 +0300 From: Kostik Belousov To: Jaakko Heinonen Message-ID: <20110507124127.GP48734@deviant.kiev.zoral.com.ua> References: <201105071110.p47BAwmU096094@svn.freebsd.org> <20110507114856.GN48734@deviant.kiev.zoral.com.ua> <20110507122048.GA1846@a91-153-123-205.elisa-laajakaista.fi> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ExLobwx2ErZCZZ6w" Content-Disposition: inline In-Reply-To: <20110507122048.GA1846@a91-153-123-205.elisa-laajakaista.fi> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-3.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r221597 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 12:41:31 -0000 --ExLobwx2ErZCZZ6w Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, May 07, 2011 at 03:20:48PM +0300, Jaakko Heinonen wrote: > On 2011-05-07, Kostik Belousov wrote: > > > @@ -310,6 +310,7 @@ getenv(const char *name) > > > int len; > > > =20 > > > if (dynamic_kenv) { > > > + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); > > > mtx_lock(&kenv_lock); > > > cp =3D _getenv_dynamic(name, NULL); > > > if (cp !=3D NULL) { > >=20 > > This might be somewhat excessive. Since malloc() warns or panics anyway, > > what about moving the WITNESS_WARN into "not found" branch ? >=20 > Is this better? Most likely, at least this is exactly what I meant. >=20 > %%% > Index: sys/kern/kern_environment.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- sys/kern/kern_environment.c (revision 221597) > +++ sys/kern/kern_environment.c (working copy) > @@ -310,7 +310,6 @@ getenv(const char *name) > int len; > =20 > if (dynamic_kenv) { > - WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); > mtx_lock(&kenv_lock); > cp =3D _getenv_dynamic(name, NULL); > if (cp !=3D NULL) { > @@ -322,6 +321,8 @@ getenv(const char *name) > } else { > mtx_unlock(&kenv_lock); > ret =3D NULL; > + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, > + "getenv"); > } > } else > ret =3D _getenv_static(name); > %%% >=20 > --=20 > Jaakko --ExLobwx2ErZCZZ6w Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (FreeBSD) iEYEARECAAYFAk3FPfcACgkQC3+MBN1Mb4itqgCgji+tg0Ghytbr7QggkpqKFmPP HC4AnjMTMUq6lLF7yg8i1QpIeLDzsz19 =2pTf -----END PGP SIGNATURE----- --ExLobwx2ErZCZZ6w-- From owner-svn-src-head@FreeBSD.ORG Sat May 7 13:08:49 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0FB33106564A; Sat, 7 May 2011 13:08:49 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D996D8FC08; Sat, 7 May 2011 13:08:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47D8mPC099698; Sat, 7 May 2011 13:08:48 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47D8miY099695; Sat, 7 May 2011 13:08:48 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105071308.p47D8miY099695@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 13:08:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221600 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 13:08:49 -0000 Author: adrian Date: Sat May 7 13:08:48 2011 New Revision: 221600 URL: http://svn.freebsd.org/changeset/base/221600 Log: Update the ext channel cycpwr threshold 1 register for the extension channel when the channel is HT/40. The new ANI code (primarily for the AR9300/AR9400) in ath9k sets this register but the ANI code for the previous 11n chips didn't set this. Unlike ath9k, only set this for HT/40 channels. Obtained From: ath9k Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c head/sys/dev/ath/ath_hal/ar5416/ar5416phy.h Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c Sat May 7 12:27:25 2011 (r221599) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_ani.c Sat May 7 13:08:48 2011 (r221600) @@ -296,6 +296,12 @@ ar5416AniControl(struct ath_hal *ah, HAL } OS_REG_RMW_FIELD(ah, AR_PHY_TIMING5, AR_PHY_TIMING5_CYCPWR_THR1, params->cycPwrThr1[level]); + + /* Only set the ext channel cycpwr_thr1 field for ht/40 */ + if (IEEE80211_IS_CHAN_HT40(AH_PRIVATE(ah)->ah_curchan)) + OS_REG_RMW_FIELD(ah, AR_PHY_EXT_CCA, + AR_PHY_EXT_TIMING5_CYCPWR_THR1, params->cycPwrThr1[level]); + if (level > aniState->spurImmunityLevel) ahp->ah_stats.ast_ani_spurup++; else if (level < aniState->spurImmunityLevel) Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416phy.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416phy.h Sat May 7 12:27:25 2011 (r221599) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416phy.h Sat May 7 13:08:48 2011 (r221600) @@ -100,6 +100,13 @@ #define AR_PHY_EXT_MINCCA_PWR_S 23 #define AR_PHY_EXT_CCA_THRESH62 0x007F0000 #define AR_PHY_EXT_CCA_THRESH62_S 16 +/* + * This duplicates AR_PHY_EXT_CCA_CYCPWR_THR1; it reads more like + * an ANI register this way. + */ +#define AR_PHY_EXT_TIMING5_CYCPWR_THR1 0x0000FE00 +#define AR_PHY_EXT_TIMING5_CYCPWR_THR1_S 9 + #define AR9280_PHY_EXT_MINCCA_PWR 0x01FF0000 #define AR9280_PHY_EXT_MINCCA_PWR_S 16 From owner-svn-src-head@FreeBSD.ORG Sat May 7 13:57:30 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BC71D106566C; Sat, 7 May 2011 13:57:30 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ACC758FC15; Sat, 7 May 2011 13:57:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47DvUYW001251; Sat, 7 May 2011 13:57:30 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47DvUoY001249; Sat, 7 May 2011 13:57:30 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201105071357.p47DvUoY001249@svn.freebsd.org> From: Andriy Gapon Date: Sat, 7 May 2011 13:57:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221601 - head/sys/boot/common X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 13:57:30 -0000 Author: avg Date: Sat May 7 13:57:30 2011 New Revision: 221601 URL: http://svn.freebsd.org/changeset/base/221601 Log: a whitespace nit Reminder from: kib MFC after: 4 days Modified: head/sys/boot/common/interp.c Modified: head/sys/boot/common/interp.c ============================================================================== --- head/sys/boot/common/interp.c Sat May 7 13:08:48 2011 (r221600) +++ head/sys/boot/common/interp.c Sat May 7 13:57:30 2011 (r221601) @@ -105,7 +105,7 @@ interact(void) /* * Read our default configuration */ - if(include("/boot/loader.rc") != CMD_OK) + if (include("/boot/loader.rc") != CMD_OK) include("/boot/boot.conf"); printf("\n"); /* From owner-svn-src-head@FreeBSD.ORG Sat May 7 14:32:17 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 192D9106564A; Sat, 7 May 2011 14:32:17 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E26628FC1A; Sat, 7 May 2011 14:32:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47EWGpb002300; Sat, 7 May 2011 14:32:16 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47EWGi9002296; Sat, 7 May 2011 14:32:16 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201105071432.p47EWGi9002296@svn.freebsd.org> From: Jilles Tjoelker Date: Sat, 7 May 2011 14:32:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221602 - in head: bin/sh tools/regression/bin/sh/expansion X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 14:32:17 -0000 Author: jilles Date: Sat May 7 14:32:16 2011 New Revision: 221602 URL: http://svn.freebsd.org/changeset/base/221602 Log: sh: Add UTF-8 support to ${#var}. If the current locale uses UTF-8, ${#var} counts codepoints (more precisely, bytes b with (b & 0xc0) != 0x80). Added: head/tools/regression/bin/sh/expansion/length7.0 (contents, props changed) head/tools/regression/bin/sh/expansion/length8.0 (contents, props changed) Modified: head/bin/sh/expand.c Modified: head/bin/sh/expand.c ============================================================================== --- head/bin/sh/expand.c Sat May 7 13:57:30 2011 (r221601) +++ head/bin/sh/expand.c Sat May 7 14:32:16 2011 (r221602) @@ -665,6 +665,7 @@ evalvar(char *p, int flag) int special; int startloc; int varlen; + int varlenb; int easy; int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR); @@ -712,8 +713,15 @@ again: /* jump here after setting a vari if (special) { varvalue(var, varflags & VSQUOTE, subtype, flag); if (subtype == VSLENGTH) { - varlen = expdest - stackblock() - startloc; - STADJUST(-varlen, expdest); + varlenb = expdest - stackblock() - startloc; + varlen = varlenb; + if (localeisutf8) { + val = stackblock() + startloc; + for (;val != expdest; val++) + if ((*val & 0xC0) == 0x80) + varlen--; + } + STADJUST(-varlenb, expdest); } } else { char const *syntax = (varflags & VSQUOTE) ? DQSYNTAX @@ -721,7 +729,9 @@ again: /* jump here after setting a vari if (subtype == VSLENGTH) { for (;*val; val++) - varlen++; + if (!localeisutf8 || + (*val & 0xC0) != 0x80) + varlen++; } else { if (quotes) Added: head/tools/regression/bin/sh/expansion/length7.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/expansion/length7.0 Sat May 7 14:32:16 2011 (r221602) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +unset LC_ALL +LC_CTYPE=en_US.UTF-8 +export LC_CTYPE + +# a umlaut +s=$(printf '\303\244') +# euro sign +s=$s$(printf '\342\202\254') +# some sort of 't' outside BMP +s=$s$(printf '\360\235\225\245') +set -- "$s" +[ ${#s} = 3 ] && [ ${#1} = 3 ] Added: head/tools/regression/bin/sh/expansion/length8.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/expansion/length8.0 Sat May 7 14:32:16 2011 (r221602) @@ -0,0 +1,14 @@ +# $FreeBSD$ + +unset LC_ALL +LC_CTYPE=en_US.ISO8859-1 +export LC_CTYPE + +# a umlaut +s=$(printf '\303\244') +# euro sign +s=$s$(printf '\342\202\254') +# some sort of 't' outside BMP +s=$s$(printf '\360\235\225\245') +set -- "$s" +[ ${#s} = 9 ] && [ ${#1} = 9 ] From owner-svn-src-head@FreeBSD.ORG Sat May 7 15:30:23 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A6976106566C; Sat, 7 May 2011 15:30:23 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 950AF8FC16; Sat, 7 May 2011 15:30:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47FUN8o004435; Sat, 7 May 2011 15:30:23 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47FUNuu004425; Sat, 7 May 2011 15:30:23 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105071530.p47FUNuu004425@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 15:30:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221603 - in head/sys/dev/ath/ath_hal: . ar5416 ar9001 ar9002 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 15:30:23 -0000 Author: adrian Date: Sat May 7 15:30:23 2011 New Revision: 221603 URL: http://svn.freebsd.org/changeset/base/221603 Log: Do a HAL capabilities sync pass based on the Atheros HAL. * Shuffle some of the capability numbers around to match the Atheros HAL capability IDs, just for consistency. * Add some new capabilities to FreeBSD from the Atheros HAL which will be be shortly used when new chipsets are added (HAL SGI-20 support is for Kiwi/AR9287 support); for TX aggregation (MBSSID aggregate support, WDS aggregation support); CST/GTT support for carrier sense/TX timeout. Modified: head/sys/dev/ath/ath_hal/ah.c head/sys/dev/ath/ath_hal/ah.h head/sys/dev/ath/ath_hal/ah_internal.h head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Modified: head/sys/dev/ath/ath_hal/ah.c ============================================================================== --- head/sys/dev/ath/ath_hal/ah.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ah.c Sat May 7 15:30:23 2011 (r221603) @@ -585,19 +585,49 @@ ath_hal_getcapability(struct ath_hal *ah return HAL_ENOTSUPP; case HAL_CAP_11D: return HAL_OK; - case HAL_CAP_RXORN_FATAL: /* HAL_INT_RXORN treated as fatal */ - return AH_PRIVATE(ah)->ah_rxornIsFatal ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_HT: return pCap->halHTSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_GTXTO: + return pCap->halGTTSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_FAST_CC: + return pCap->halFastCCSupport ? HAL_OK : HAL_ENOTSUPP; case HAL_CAP_TX_CHAINMASK: /* mask of TX chains supported */ *result = pCap->halTxChainMask; return HAL_OK; case HAL_CAP_RX_CHAINMASK: /* mask of RX chains supported */ *result = pCap->halRxChainMask; return HAL_OK; + case HAL_CAP_NUM_GPIO_PINS: + *result = pCap->halNumGpioPins; + return HAL_OK; + case HAL_CAP_CST: + return pCap->halCSTSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_RTS_AGGR_LIMIT: + *result = pCap->halRtsAggrLimit; + return HAL_OK; + case HAL_CAP_4ADDR_AGGR: + return pCap->hal4AddrAggrSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_AUTO_SLEEP: + return pCap->halAutoSleepSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_MBSSID_AGGR_SUPPORT: + return pCap->halMbssidAggrSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_SPLIT_4KB_TRANS: /* hardware handles descriptors straddling 4k page boundary */ + return pCap->hal4kbSplitTransSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_REG_FLAG: + *result = AH_PRIVATE(ah)->ah_currentRDext; + return HAL_OK; + case HAL_CAP_BT_COEX: + return pCap->halBtCoexSupport ? HAL_OK : HAL_ENOTSUPP; + case HAL_CAP_HT20_SGI: + return pCap->halHTSGI20Support ? HAL_OK : HAL_ENOTSUPP; case HAL_CAP_RXTSTAMP_PREC: /* rx desc tstamp precision (bits) */ *result = pCap->halTstampPrecision; return HAL_OK; + + /* FreeBSD-specific entries for now */ + case HAL_CAP_RXORN_FATAL: /* HAL_INT_RXORN treated as fatal */ + return AH_PRIVATE(ah)->ah_rxornIsFatal ? HAL_OK : HAL_ENOTSUPP; case HAL_CAP_INTRMASK: /* mask of supported interrupts */ *result = pCap->halIntrMask; return HAL_OK; @@ -614,10 +644,6 @@ ath_hal_getcapability(struct ath_hal *ah default: return HAL_ENOTSUPP; } - case HAL_CAP_SPLIT_4KB_TRANS: /* hardware handles descriptors straddling 4k page boundary */ - return pCap->hal4kbSplitTransSupport ? HAL_OK : HAL_ENOTSUPP; - case HAL_CAP_HAS_PSPOLL: /* hardware has ps-poll support */ - return pCap->halHasPsPollSupport ? HAL_OK : HAL_ENOTSUPP; case HAL_CAP_RXDESC_SELFLINK: /* hardware supports self-linked final RX descriptors correctly */ return pCap->halHasRxSelfLinkedTail ? HAL_OK : HAL_ENOTSUPP; default: Modified: head/sys/dev/ath/ath_hal/ah.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah.h Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ah.h Sat May 7 15:30:23 2011 (r221603) @@ -110,27 +110,40 @@ typedef enum { HAL_CAP_TPC_CTS = 27, /* cts txpower with per-packet tpc */ HAL_CAP_11D = 28, /* 11d beacon support for changing cc */ - /* The following are currently different IDs to the Atheros HAL */ - HAL_CAP_INTMIT = 29, /* interference mitigation */ - HAL_CAP_RXORN_FATAL = 30, /* HAL_INT_RXORN treated as fatal */ - HAL_CAP_HT = 31, /* hardware can support HT */ - HAL_CAP_TX_CHAINMASK = 32, /* mask of TX chains supported */ - HAL_CAP_RX_CHAINMASK = 33, /* mask of RX chains supported */ - HAL_CAP_RXTSTAMP_PREC = 34, /* rx desc tstamp precision (bits) */ - HAL_CAP_BB_HANG = 35, /* can baseband hang */ - HAL_CAP_MAC_HANG = 36, /* can MAC hang */ - HAL_CAP_INTRMASK = 37, /* bitmask of supported interrupts */ - HAL_CAP_BSSIDMATCH = 38, /* hardware has disable bssid match */ - HAL_CAP_STREAMS = 39, /* how many 802.11n spatial streams are available */ - HAL_CAP_SPLIT_4KB_TRANS = 40, /* hardware supports descriptors straddling a 4k page boundary */ - HAL_CAP_HAS_PSPOLL = 41, /* hardware has ps-poll support */ - HAL_CAP_RXDESC_SELFLINK = 42, /* support a self-linked tail RX descriptor */ - HAL_CAP_GTXTO = 43, /* hardware supports global tx timeout */ + HAL_CAP_HT = 30, /* hardware can support HT */ + HAL_CAP_GTXTO = 31, /* hardware supports global tx timeout */ + HAL_CAP_FAST_CC = 32, /* hardware supports fast channel change */ + HAL_CAP_TX_CHAINMASK = 33, /* mask of TX chains supported */ + HAL_CAP_RX_CHAINMASK = 34, /* mask of RX chains supported */ + HAL_CAP_NUM_GPIO_PINS = 36, /* number of GPIO pins */ - /* The following are back to normal, shared with the Atheros HAL */ + HAL_CAP_CST = 38, /* hardware supports carrier sense timeout */ + + HAL_CAP_RTS_AGGR_LIMIT = 42, /* aggregation limit with RTS */ + HAL_CAP_4ADDR_AGGR = 43, /* hardware is capable of 4addr aggregation */ + + HAL_CAP_AUTO_SLEEP = 48, /* hardware can go to network sleep + automatically after waking up to receive TIM */ + HAL_CAP_MBSSID_AGGR_SUPPORT = 49, /* Support for mBSSID Aggregation */ + HAL_CAP_SPLIT_4KB_TRANS = 50, /* hardware supports descriptors straddling a 4k page boundary */ + HAL_CAP_REG_FLAG = 51, /* Regulatory domain flags */ + + HAL_CAP_BT_COEX = 60, /* hardware is capable of bluetooth coexistence */ + + HAL_CAP_HT20_SGI = 96, /* hardware supports HT20 short GI */ + + HAL_CAP_RXTSTAMP_PREC = 100, /* rx desc tstamp precision (bits) */ /* The following are private to the FreeBSD HAL (224 onward) */ + HAL_CAP_INTMIT = 229, /* interference mitigation */ + HAL_CAP_RXORN_FATAL = 230, /* HAL_INT_RXORN treated as fatal */ + HAL_CAP_BB_HANG = 235, /* can baseband hang */ + HAL_CAP_MAC_HANG = 236, /* can MAC hang */ + HAL_CAP_INTRMASK = 237, /* bitmask of supported interrupts */ + HAL_CAP_BSSIDMATCH = 238, /* hardware has disable bssid match */ + HAL_CAP_STREAMS = 239, /* how many 802.11n spatial streams are available */ + HAL_CAP_RXDESC_SELFLINK = 242, /* support a self-linked tail RX descriptor */ } HAL_CAPABILITY_TYPE; /* Modified: head/sys/dev/ath/ath_hal/ah_internal.h ============================================================================== --- head/sys/dev/ath/ath_hal/ah_internal.h Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ah_internal.h Sat May 7 15:30:23 2011 (r221603) @@ -184,6 +184,7 @@ typedef struct { halChanHalfRate : 1, halChanQuarterRate : 1, halHTSupport : 1, + halHTSGI20Support : 1, halRfSilentSupport : 1, halHwPhyCounterSupport : 1, halWowSupport : 1, @@ -197,13 +198,13 @@ typedef struct { halCSTSupport : 1, halRifsRxSupport : 1, halRifsTxSupport : 1, + hal4AddrAggrSupport : 1, halExtChanDfsSupport : 1, halForcePpmSupport : 1, halEnhancedPmSupport : 1, halMbssidAggrSupport : 1, halBssidMatchSupport : 1, hal4kbSplitTransSupport : 1, - halHasPsPollSupport : 1, halHasRxSelfLinkedTail : 1; uint32_t halWirelessModes; uint16_t halTotalQueues; Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Sat May 7 15:30:23 2011 (r221603) @@ -812,6 +812,7 @@ ar5416FillCapabilityInfo(struct ath_hal pCap->halBssIdMaskSupport = AH_TRUE; pCap->halMcastKeySrchSupport = AH_FALSE; pCap->halTsfAddSupport = AH_TRUE; + pCap->hal4AddrAggrSupport = AH_FALSE; /* Broken in Owl */ if (ath_hal_eepromGet(ah, AR_EEP_MAXQCU, &val) == HAL_OK) pCap->halTotalQueues = val; @@ -862,10 +863,12 @@ ar5416FillCapabilityInfo(struct ath_hal pCap->halTxStreams = 2; pCap->halRxStreams = 2; pCap->halRtsAggrLimit = 8*1024; /* Owl 2.0 limit */ - pCap->halMbssidAggrSupport = AH_TRUE; + pCap->halMbssidAggrSupport = AH_FALSE; /* Broken on Owl */ pCap->halForcePpmSupport = AH_TRUE; pCap->halEnhancedPmSupport = AH_TRUE; pCap->halBssidMatchSupport = AH_TRUE; + pCap->halGTTSupport = AH_TRUE; + pCap->halCSTSupport = AH_TRUE; if (ath_hal_eepromGetFlag(ah, AR_EEP_RFKILL) && ath_hal_eepromGet(ah, AR_EEP_RFSILENT, &ahpriv->ah_rfsilent) == HAL_OK) { Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c Sat May 7 15:30:23 2011 (r221603) @@ -278,8 +278,6 @@ ar5416GetCapability(struct ath_hal *ah, uint32_t capability, uint32_t *result) { switch (type) { - case HAL_CAP_GTXTO: - return HAL_OK; /* All AR5416+ supports Global TX Timeout */ case HAL_CAP_BB_HANG: switch (capability) { case HAL_BB_HANG_RIFS: Modified: head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c Sat May 7 15:30:23 2011 (r221603) @@ -290,6 +290,14 @@ ar9130FillCapabilityInfo(struct ath_hal pCap->halRtsAggrLimit = 64*1024; /* 802.11n max */ pCap->halExtChanDfsSupport = AH_TRUE; pCap->halAutoSleepSupport = AH_FALSE; /* XXX? */ + /* + * MBSSID aggregation is broken in Howl v1.1, v1.2, v1.3 + * and works fine in v1.4. + * XXX todo, enable it for v1.4. + */ + pCap->halMbssidAggrSupport = AH_FALSE; + pCap->hal4AddrAggrSupport = AH_TRUE; + return AH_TRUE; } Modified: head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c Sat May 7 15:30:23 2011 (r221603) @@ -294,6 +294,9 @@ ar9160FillCapabilityInfo(struct ath_hal pCap->halRtsAggrLimit = 64*1024; /* 802.11n max */ pCap->halExtChanDfsSupport = AH_TRUE; pCap->halAutoSleepSupport = AH_FALSE; /* XXX? */ + pCap->halMbssidAggrSupport = AH_TRUE; + pCap->hal4AddrAggrSupport = AH_TRUE; + /* AR9160 is a 2x2 stream device */ pCap->halTxStreams = 2; pCap->halRxStreams = 2; Modified: head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c Sat May 7 15:30:23 2011 (r221603) @@ -784,8 +784,11 @@ ar9280FillCapabilityInfo(struct ath_hal pCap->hal4kbSplitTransSupport = AH_FALSE; /* Disable this so Block-ACK works correctly */ pCap->halHasRxSelfLinkedTail = AH_FALSE; + pCap->halMbssidAggrSupport = AH_TRUE; + pCap->hal4AddrAggrSupport = AH_TRUE; + if (AR_SREV_MERLIN_20_OR_LATER(ah)) - pCap->halHasPsPollSupport = AH_TRUE; + pCap->halPSPollBroken = AH_FALSE; pCap->halRxStbcSupport = 1; pCap->halTxStbcSupport = 1; Modified: head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c ============================================================================== --- head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Sat May 7 14:32:16 2011 (r221602) +++ head/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c Sat May 7 15:30:23 2011 (r221603) @@ -395,8 +395,11 @@ ar9285FillCapabilityInfo(struct ath_hal pCap->hal4kbSplitTransSupport = AH_FALSE; /* Disable this so Block-ACK works correctly */ pCap->halHasRxSelfLinkedTail = AH_FALSE; + pCap->halMbssidAggrSupport = AH_TRUE; + pCap->hal4AddrAggrSupport = AH_TRUE; + if (AR_SREV_KITE_12_OR_LATER(ah)) - pCap->halHasPsPollSupport = AH_TRUE; + pCap->halPSPollBroken = AH_FALSE; pCap->halRxStbcSupport = 1; pCap->halTxStbcSupport = 1; From owner-svn-src-head@FreeBSD.ORG Sat May 7 16:28:24 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5E0B1106564A; Sat, 7 May 2011 16:28:24 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BE638FC16; Sat, 7 May 2011 16:28:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47GSOGw006147; Sat, 7 May 2011 16:28:24 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47GSO16006145; Sat, 7 May 2011 16:28:24 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201105071628.p47GSO16006145@svn.freebsd.org> From: Hans Petter Selasky Date: Sat, 7 May 2011 16:28:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221604 - head/usr.sbin/usbdump X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 16:28:24 -0000 Author: hselasky Date: Sat May 7 16:28:23 2011 New Revision: 221604 URL: http://svn.freebsd.org/changeset/base/221604 Log: Minor usbdump update: - Use memcpy() instead of bcopy(). - Replace all asserts() by standard error messages. - Update usage(). MFC after: 7 days Modified: head/usr.sbin/usbdump/usbdump.c Modified: head/usr.sbin/usbdump/usbdump.c ============================================================================== --- head/usr.sbin/usbdump/usbdump.c Sat May 7 15:30:23 2011 (r221603) +++ head/usr.sbin/usbdump/usbdump.c Sat May 7 16:28:23 2011 (r221604) @@ -40,7 +40,6 @@ #include #include #include -#include #include #include #include @@ -49,6 +48,8 @@ #include #include #include +#include +#include struct usbcap { int fd; /* fd for /dev/usbpf */ @@ -408,9 +409,15 @@ write_packets(struct usbcap *p, const ui int ret; ret = write(p->wfd, &len, sizeof(int)); - assert(ret == sizeof(int)); + if (ret != sizeof(int)) { + err(EXIT_FAILURE, "Could not write length " + "field of USB data payload"); + } ret = write(p->wfd, data, datalen); - assert(ret == datalen); + if (ret != datalen) { + err(EXIT_FAILURE, "Could not write " + "complete USB data payload"); + } } static void @@ -423,14 +430,16 @@ read_file(struct usbcap *p) while ((ret = read(p->rfd, &datalen, sizeof(int))) == sizeof(int)) { datalen = le32toh(datalen); data = malloc(datalen); - assert(data != NULL); + if (data == NULL) + errx(EX_SOFTWARE, "Out of memory."); ret = read(p->rfd, data, datalen); - assert(ret == datalen); + if (ret != datalen) { + err(EXIT_FAILURE, "Could not read complete " + "USB data payload"); + } print_packets(data, datalen); free(data); } - if (ret == -1) - fprintf(stderr, "read: %s\n", strerror(errno)); } static void @@ -466,14 +475,27 @@ init_rfile(struct usbcap *p) p->rfd = open(r_arg, O_RDONLY); if (p->rfd < 0) { - fprintf(stderr, "open: %s (%s)\n", r_arg, strerror(errno)); - exit(EXIT_FAILURE); + err(EXIT_FAILURE, "Could not open " + "'%s' for read", r_arg); } ret = read(p->rfd, &uf, sizeof(uf)); - assert(ret == sizeof(uf)); - assert(le32toh(uf.magic) == USBCAP_FILEHDR_MAGIC); - assert(uf.major == 0); - assert(uf.minor == 2); + if (ret != sizeof(uf)) { + err(EXIT_FAILURE, "Could not read USB capture " + "file header"); + } + if (le32toh(uf.magic) != USBCAP_FILEHDR_MAGIC) { + errx(EX_SOFTWARE, "Invalid magic field(0x%08x) " + "in USB capture file header.", + (unsigned int)le32toh(uf.magic)); + } + if (uf.major != 0) { + errx(EX_SOFTWARE, "Invalid major version(%d) " + "field in USB capture file header.", (int)uf.major); + } + if (uf.minor != 2) { + errx(EX_SOFTWARE, "Invalid minor version(%d) " + "field in USB capture file header.", (int)uf.minor); + } } static void @@ -484,15 +506,18 @@ init_wfile(struct usbcap *p) p->wfd = open(w_arg, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR | S_IWUSR); if (p->wfd < 0) { - fprintf(stderr, "open: %s (%s)\n", w_arg, strerror(errno)); - exit(EXIT_FAILURE); + err(EXIT_FAILURE, "Could not open " + "'%s' for write", r_arg); } - bzero(&uf, sizeof(uf)); + memset(&uf, 0, sizeof(uf)); uf.magic = htole32(USBCAP_FILEHDR_MAGIC); uf.major = 0; uf.minor = 2; ret = write(p->wfd, (const void *)&uf, sizeof(uf)); - assert(ret == sizeof(uf)); + if (ret != sizeof(uf)) { + err(EXIT_FAILURE, "Could not write " + "USB capture header"); + } } static void @@ -501,13 +526,13 @@ usage(void) #define FMT " %-14s %s\n" fprintf(stderr, "usage: usbdump [options]\n"); - fprintf(stderr, FMT, "-i ifname", "Listen on USB bus interface"); - fprintf(stderr, FMT, "-r file", "Read the raw packets from file"); - fprintf(stderr, FMT, "-s snaplen", "Snapshot bytes from each packet"); - fprintf(stderr, FMT, "-v", "Increases the verbose level"); - fprintf(stderr, FMT, "-w file", "Write the raw packets to file"); + fprintf(stderr, FMT, "-i ", "Listen on USB bus interface"); + fprintf(stderr, FMT, "-r ", "Read the raw packets from file"); + fprintf(stderr, FMT, "-s ", "Snapshot bytes from each packet"); + fprintf(stderr, FMT, "-v", "Increase the verbose level"); + fprintf(stderr, FMT, "-w ", "Write the raw packets to file"); #undef FMT - exit(1); + exit(EX_USAGE); } int @@ -525,7 +550,7 @@ main(int argc, char *argv[]) int fd, o; const char *optstring; - bzero(&uc, sizeof(struct usbcap)); + memset(&uc, 0, sizeof(struct usbcap)); optstring = "i:r:s:vw:"; while ((o = getopt(argc, argv, optstring)) != -1) { @@ -565,20 +590,15 @@ main(int argc, char *argv[]) } p->fd = fd = open("/dev/bpf", O_RDONLY); - if (p->fd < 0) { - fprintf(stderr, "(no devices found)\n"); - return (EXIT_FAILURE); - } + if (p->fd < 0) + err(EXIT_FAILURE, "Could not open BPF device"); + + if (ioctl(fd, BIOCVERSION, (caddr_t)&bv) < 0) + err(EXIT_FAILURE, "BIOCVERSION ioctl failed"); - if (ioctl(fd, BIOCVERSION, (caddr_t)&bv) < 0) { - fprintf(stderr, "BIOCVERSION: %s\n", strerror(errno)); - return (EXIT_FAILURE); - } if (bv.bv_major != BPF_MAJOR_VERSION || - bv.bv_minor < BPF_MINOR_VERSION) { - fprintf(stderr, "kernel bpf filter out of date"); - return (EXIT_FAILURE); - } + bv.bv_minor < BPF_MINOR_VERSION) + errx(EXIT_FAILURE, "Kernel BPF filter out of date"); /* USB transfers can be greater than 64KByte */ v = 1U << 16; @@ -592,22 +612,16 @@ main(int argc, char *argv[]) if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) >= 0) break; } - if (v == 0) { - fprintf(stderr, "BIOCSBLEN: %s: No buffer size worked", i_arg); - return (EXIT_FAILURE); - } + if (v == 0) + errx(EXIT_FAILURE, "No buffer size worked."); - if (ioctl(fd, BIOCGBLEN, (caddr_t)&v) < 0) { - fprintf(stderr, "BIOCGBLEN: %s", strerror(errno)); - return (EXIT_FAILURE); - } + if (ioctl(fd, BIOCGBLEN, (caddr_t)&v) < 0) + err(EXIT_FAILURE, "BIOCGBLEN ioctl failed"); p->bufsize = v; p->buffer = (uint8_t *)malloc(p->bufsize); - if (p->buffer == NULL) { - fprintf(stderr, "malloc: %s", strerror(errno)); - return (EXIT_FAILURE); - } + if (p->buffer == NULL) + errx(EX_SOFTWARE, "Out of memory."); /* XXX no read filter rules yet so at this moment accept everything */ total_insn.code = (u_short)(BPF_RET | BPF_K); @@ -617,27 +631,21 @@ main(int argc, char *argv[]) total_prog.bf_len = 1; total_prog.bf_insns = &total_insn; - if (ioctl(p->fd, BIOCSETF, (caddr_t)&total_prog) < 0) { - fprintf(stderr, "BIOCSETF: %s", strerror(errno)); - return (EXIT_FAILURE); - } + if (ioctl(p->fd, BIOCSETF, (caddr_t)&total_prog) < 0) + err(EXIT_FAILURE, "BIOCSETF ioctl failed"); /* 1 second read timeout */ tv.tv_sec = 1; tv.tv_usec = 0; - if (ioctl(p->fd, BIOCSRTIMEOUT, (caddr_t)&tv) < 0) { - fprintf(stderr, "BIOCSRTIMEOUT: %s", strerror(errno)); - return (EXIT_FAILURE); - } + if (ioctl(p->fd, BIOCSRTIMEOUT, (caddr_t)&tv) < 0) + err(EXIT_FAILURE, "BIOCSRTIMEOUT ioctl failed"); (void)signal(SIGINT, handle_sigint); do_loop(p); - if (ioctl(fd, BIOCGSTATS, (caddr_t)&us) < 0) { - fprintf(stderr, "BIOCGSTATS: %s", strerror(errno)); - return (EXIT_FAILURE); - } + if (ioctl(fd, BIOCGSTATS, (caddr_t)&us) < 0) + err(EXIT_FAILURE, "BIOCGSTATS ioctl failed"); /* XXX what's difference between pkt_captured and us.us_recv? */ printf("\n"); From owner-svn-src-head@FreeBSD.ORG Sat May 7 16:32:59 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6EEEA106564A; Sat, 7 May 2011 16:32:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5E9618FC14; Sat, 7 May 2011 16:32:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47GWxqk006312; Sat, 7 May 2011 16:32:59 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47GWxxk006310; Sat, 7 May 2011 16:32:59 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201105071632.p47GWxxk006310@svn.freebsd.org> From: Hans Petter Selasky Date: Sat, 7 May 2011 16:32:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221605 - head/sys/dev/usb X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 16:32:59 -0000 Author: hselasky Date: Sat May 7 16:32:59 2011 New Revision: 221605 URL: http://svn.freebsd.org/changeset/base/221605 Log: Add new USB ID. Submitted by: Dmitry Luhtionov MFC after: 7 days Modified: head/sys/dev/usb/usbdevs Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Sat May 7 16:28:23 2011 (r221604) +++ head/sys/dev/usb/usbdevs Sat May 7 16:32:59 2011 (r221605) @@ -1565,6 +1565,7 @@ product FALCOM TWIST 0x0001 USB GSM/GPR /* FEIYA products */ product FEIYA 5IN1 0x1132 5-in-1 Card Reader +product FEIYA AC110 0x6300 AC-110 Card Reader /* Fiberline */ product FIBERLINE WL430U 0x6003 WL-430U From owner-svn-src-head@FreeBSD.ORG Sat May 7 16:37:12 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C57591065672; Sat, 7 May 2011 16:37:12 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe07.c2i.net [212.247.154.194]) by mx1.freebsd.org (Postfix) with ESMTP id DD81D8FC0C; Sat, 7 May 2011 16:37:11 +0000 (UTC) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.1 cv=118a5bn0tGnRZbUa9ClBty6BTuM1bA5mUZqmf2RHYp4= c=1 sm=1 a=SvYTsOw2Z4kA:10 a=c-supqcQF5kA:10 a=WQU8e4WWZSUA:10 a=N659UExz7-8A:10 a=CL8lFSKtTFcA:10 a=i9M/sDlu2rpZ9XS819oYzg==:17 a=wQDgyXbeP_IRP6VvZuUA:9 a=pILNOxqGKmIA:10 a=i9M/sDlu2rpZ9XS819oYzg==:117 Received: from [188.126.198.129] (account mc467741@c2i.net HELO laptop002.hselasky.homeunix.org) by mailfe07.swip.net (CommuniGate Pro SMTP 5.2.19) with ESMTPA id 123488953; Sat, 07 May 2011 18:37:09 +0200 From: Hans Petter Selasky To: "src-committers@freebsd.org" Date: Sat, 7 May 2011 18:36:00 +0200 User-Agent: KMail/1.13.5 (FreeBSD/8.2-STABLE; KDE/4.4.5; amd64; ; ) References: <201105071628.p47GSO16006145@svn.freebsd.org> In-Reply-To: <201105071628.p47GSO16006145@svn.freebsd.org> X-Face: *nPdTl_}RuAI6^PVpA02T?$%Xa^>@hE0uyUIoiha$pC:9TVgl.Oq,NwSZ4V" =?iso-8859-1?q?=7CLR=2E+tj=7Dg5=0A=09=25V?=,x^qOs~mnU3]Gn; cQLv&.N>TrxmSFf+p6(30a/{)KUU!s}w\IhQBj}[g}bj0I3^glmC( =?iso-8859-1?q?=0A=09=3AAuzV9=3A=2EhESm-x4h240C=609=3Dw?= MIME-Version: 1.0 Content-Type: Text/Plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Message-Id: <201105071836.00660.hselasky@c2i.net> Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" Subject: Re: svn commit: r221604 - head/usr.sbin/usbdump X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 16:37:12 -0000 On Saturday 07 May 2011 18:28:24 Hans Petter Selasky wrote: > - Use memcpy() instead of bcopy(). - Use memset() instead of bzero(). --HPS From owner-svn-src-head@FreeBSD.ORG Sat May 7 17:13:29 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3138106564A; Sat, 7 May 2011 17:13:29 +0000 (UTC) (envelope-from mdf356@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 032EC8FC08; Sat, 7 May 2011 17:13:28 +0000 (UTC) Received: by wwc33 with SMTP id 33so4180490wwc.31 for ; Sat, 07 May 2011 10:13:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=oeh11Jlha/SoMaVqhvU6+b7Is6WZc6O1G1d4leKR0mM=; b=ccsUpqxBr+6Zt5Puuu2mXdd9BhycowhQXi48L0xMV+onHEbbf/u/an2PNDfUZUD8D/ H+w2yr2dMzXRaDmk4rkPRnk9MVxvKndyykveJ88mi3fxgABTPUCBqTleVyah3C7uG8yS KukznLnuGiAtduCvvlIaqIjkUQPQtgdhJjTg4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=GDVil3LvWMCLYdHXXWzL8YaUWuNxUPM67EuZcOONoVQNW4xr4HolbwV9Orwlc86Ims OB8ONHLFBztwzU5xIObAaz0Xu0eMYxmYDGpEk+1CxE6DnQTigBJewvllA0ocX0vdY6E6 wG4LToZqPxWvrTthRTHCHqZStfbs1m5s9FY6I= MIME-Version: 1.0 Received: by 10.216.134.67 with SMTP id r45mr3847713wei.44.1304788407821; Sat, 07 May 2011 10:13:27 -0700 (PDT) Sender: mdf356@gmail.com Received: by 10.216.172.196 with HTTP; Sat, 7 May 2011 10:13:27 -0700 (PDT) In-Reply-To: <201105071836.00660.hselasky@c2i.net> References: <201105071628.p47GSO16006145@svn.freebsd.org> <201105071836.00660.hselasky@c2i.net> Date: Sat, 7 May 2011 10:13:27 -0700 X-Google-Sender-Auth: 4J1XIUyIZvOCXdNaKWTrtKuBbvE Message-ID: From: mdf@FreeBSD.org To: Hans Petter Selasky Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Subject: Re: svn commit: r221604 - head/usr.sbin/usbdump X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 17:13:29 -0000 On Sat, May 7, 2011 at 9:36 AM, Hans Petter Selasky wrot= e: > On Saturday 07 May 2011 18:28:24 Hans Petter Selasky wrote: >> =A0 - Use memcpy() instead of bcopy(). > > - Use memset() instead of bzero(). Why? It usually falls through to the same code in libc. Is there some standardization on memfoo versus bfoo here? Thanks, matthew From owner-svn-src-head@FreeBSD.ORG Sat May 7 17:21:26 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D86DA1065673; Sat, 7 May 2011 17:21:26 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3F32A8FC0A; Sat, 7 May 2011 17:21:25 +0000 (UTC) Received: by vxc34 with SMTP id 34so6014853vxc.13 for ; Sat, 07 May 2011 10:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=VZZhXNIdUryt/d5gqZtr1vcdtaM1im7w8lS+z45ozGg=; b=IeLTQDula5ersOBjhyUDbdU9tGnSmtlADvT14/9iA9LF+MByzZjrl5E7Rx2/kwYj2/ rjvXayzqVlQRCaTljxt0Z97h6fKVtvHZGhw+/2NBgikp3HcOUaXLxzu4nKsfl3aRckJN GkbNEezSgYkuLfCGI/DvEdDlnNPadAdJMpZuU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=xGenD6Lh2T2svKwHLxXDy9VdVQ3wg8y17bL6hLM+O5ZMZMXpZLM8Oqvg6pHOUjrt3v j9RE3z//1qi0NtfZhTmYbWaT0BQ21f+e2k7aQnsZ5YL1kgRNQOn4JRCxDkyORmssWsiI wu4wEt9cbR2gDGWHLRuxX9t0vlfMtxH1wOtWI= MIME-Version: 1.0 Received: by 10.220.123.134 with SMTP id p6mr1254812vcr.2.1304788885215; Sat, 07 May 2011 10:21:25 -0700 (PDT) Received: by 10.220.201.136 with HTTP; Sat, 7 May 2011 10:21:25 -0700 (PDT) In-Reply-To: References: <201105071628.p47GSO16006145@svn.freebsd.org> <201105071836.00660.hselasky@c2i.net> Date: Sat, 7 May 2011 10:21:25 -0700 Message-ID: From: Garrett Cooper To: mdf@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Hans Petter Selasky Subject: Re: svn commit: r221604 - head/usr.sbin/usbdump X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 17:21:26 -0000 On Sat, May 7, 2011 at 10:13 AM, wrote: > On Sat, May 7, 2011 at 9:36 AM, Hans Petter Selasky wr= ote: >> On Saturday 07 May 2011 18:28:24 Hans Petter Selasky wrote: >>> =A0 - Use memcpy() instead of bcopy(). >> >> - Use memset() instead of bzero(). > > Why? =A0It usually falls through to the same code in libc. =A0Is there > some standardization on memfoo versus bfoo here? bfoo is marked legacy per POSIX 2001.1; example: http://pubs.opengroup.org/onlinepubs/009695399/functions/bcopy.html . A lot of folks (Linux leading the charge) are actively working to deprecate the APIs. Thanks, -Garrett From owner-svn-src-head@FreeBSD.ORG Sat May 7 17:23:13 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 810A7106566B; Sat, 7 May 2011 17:23:13 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 722AF8FC08; Sat, 7 May 2011 17:23:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47HNDi0008036; Sat, 7 May 2011 17:23:13 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47HNDpR008034; Sat, 7 May 2011 17:23:13 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201105071723.p47HNDpR008034@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 7 May 2011 17:23:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221606 - head/sys/ia64/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 17:23:13 -0000 Author: marcel Date: Sat May 7 17:23:13 2011 New Revision: 221606 URL: http://svn.freebsd.org/changeset/base/221606 Log: In pmap_kextract(), return the physical address for PBVM virtual addresses as well (incl. the PBVM page table). Modified: head/sys/ia64/ia64/pmap.c Modified: head/sys/ia64/ia64/pmap.c ============================================================================== --- head/sys/ia64/ia64/pmap.c Sat May 7 16:32:59 2011 (r221605) +++ head/sys/ia64/ia64/pmap.c Sat May 7 17:23:13 2011 (r221606) @@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -1206,6 +1207,8 @@ vm_paddr_t pmap_kextract(vm_offset_t va) { struct ia64_lpte *pte; + uint64_t *pbvm_pgtbl; + u_int idx; KASSERT(va >= VM_MAXUSER_ADDRESS, ("Must be kernel VA")); @@ -1222,6 +1225,25 @@ pmap_kextract(vm_offset_t va) return (pmap_present(pte) ? pmap_ppn(pte)|(va&PAGE_MASK) : 0); } + /* PBVM page table. */ + if (va >= IA64_PBVM_PGTBL + bootinfo->bi_pbvm_pgtblsz); + return (0); + if (va >= IA64_PBVM_PGTBL) + return (va - IA64_PBVM_PGTBL) + bootinfo->bi_pbvm_pgtbl; + + /* PBVM. */ + if (va >= IA64_PBVM_BASE) { + pbvm_pgtbl = (void *)IA64_PBVM_PGTBL; + idx = (va - IA64_PBVM_BASE) >> IA64_PBVM_PAGE_SHIFT; + if (idx >= (bootinfo->bi_pbvm_pgtblsz >> 3)) + return (0); + if ((pbvm_pgtbl[idx] & PTE_PRESENT) == 0) + return (0); + return ((pbvm_pgtbl[idx] & PTE_PPN_MASK) + + (va & IA64_PBVM_PAGE_MASK)); + } + + printf("XXX: %s: va=%#lx\n", __func__, va); return (0); } From owner-svn-src-head@FreeBSD.ORG Sat May 7 17:56:47 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12B751065702; Sat, 7 May 2011 17:56:47 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe07.c2i.net [212.247.154.194]) by mx1.freebsd.org (Postfix) with ESMTP id 2DFF98FC1D; Sat, 7 May 2011 17:56:45 +0000 (UTC) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.1 cv=118a5bn0tGnRZbUa9ClBty6BTuM1bA5mUZqmf2RHYp4= c=1 sm=1 a=SvYTsOw2Z4kA:10 a=c-supqcQF5kA:10 a=WQU8e4WWZSUA:10 a=8nJEP1OIZ-IA:10 a=CL8lFSKtTFcA:10 a=i9M/sDlu2rpZ9XS819oYzg==:17 a=6I5d2MoRAAAA:8 a=8kQB0OdkAAAA:8 a=apZ76THcO_1Ifn664lYA:9 a=wPNLvfGTeEIA:10 a=SV7veod9ZcQA:10 a=9aOQ2cSd83gA:10 a=i9M/sDlu2rpZ9XS819oYzg==:117 Received: from [188.126.198.129] (account mc467741@c2i.net HELO laptop002.hselasky.homeunix.org) by mailfe07.swip.net (CommuniGate Pro SMTP 5.2.19) with ESMTPA id 123501754; Sat, 07 May 2011 19:56:44 +0200 From: Hans Petter Selasky To: mdf@freebsd.org Date: Sat, 7 May 2011 19:55:35 +0200 User-Agent: KMail/1.13.5 (FreeBSD/8.2-STABLE; KDE/4.4.5; amd64; ; ) References: <201105071628.p47GSO16006145@svn.freebsd.org> <201105071836.00660.hselasky@c2i.net> In-Reply-To: X-Face: *nPdTl_}RuAI6^PVpA02T?$%Xa^>@hE0uyUIoiha$pC:9TVgl.Oq,NwSZ4V" =?iso-8859-1?q?=7CLR=2E+tj=7Dg5=0A=09=25V?=,x^qOs~mnU3]Gn; cQLv&.N>TrxmSFf+p6(30a/{)KUU!s}w\IhQBj}[g}bj0I3^glmC( =?iso-8859-1?q?=0A=09=3AAuzV9=3A=2EhESm-x4h240C=609=3Dw?= MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201105071955.35305.hselasky@c2i.net> Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Subject: Re: svn commit: r221604 - head/usr.sbin/usbdump X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 17:56:47 -0000 On Saturday 07 May 2011 19:13:27 mdf@freebsd.org wrote: > On Sat, May 7, 2011 at 9:36 AM, Hans Petter Selasky wrote: > > On Saturday 07 May 2011 18:28:24 Hans Petter Selasky wrote: > >> - Use memcpy() instead of bcopy(). > > > > - Use memset() instead of bzero(). > > Why? It usually falls through to the same code in libc. Is there > some standardization on memfoo versus bfoo here? Hi, I thought that memset() was a compiler builtin and bzero() optimised for larger amounts of data? --HPS From owner-svn-src-head@FreeBSD.ORG Sat May 7 17:59:07 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 82CB0106566B; Sat, 7 May 2011 17:59:07 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 741328FC12; Sat, 7 May 2011 17:59:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47Hx71u009087; Sat, 7 May 2011 17:59:07 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47Hx7dt009085; Sat, 7 May 2011 17:59:07 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201105071759.p47Hx7dt009085@svn.freebsd.org> From: Jaakko Heinonen Date: Sat, 7 May 2011 17:59:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221607 - head/sys/kern X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 17:59:07 -0000 Author: jh Date: Sat May 7 17:59:07 2011 New Revision: 221607 URL: http://svn.freebsd.org/changeset/base/221607 Log: To avoid duplicated warning, move WITNESS_WARN() added in r221597 to the branch which doesn't call malloc(9). Suggested by: kib Modified: head/sys/kern/kern_environment.c Modified: head/sys/kern/kern_environment.c ============================================================================== --- head/sys/kern/kern_environment.c Sat May 7 17:23:13 2011 (r221606) +++ head/sys/kern/kern_environment.c Sat May 7 17:59:07 2011 (r221607) @@ -310,7 +310,6 @@ getenv(const char *name) int len; if (dynamic_kenv) { - WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "getenv"); mtx_lock(&kenv_lock); cp = _getenv_dynamic(name, NULL); if (cp != NULL) { @@ -322,6 +321,8 @@ getenv(const char *name) } else { mtx_unlock(&kenv_lock); ret = NULL; + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, + "getenv"); } } else ret = _getenv_static(name); From owner-svn-src-head@FreeBSD.ORG Sat May 7 18:42:41 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA3FD106564A; Sat, 7 May 2011 18:42:41 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9ABDD8FC08; Sat, 7 May 2011 18:42:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p47Igfli010721; Sat, 7 May 2011 18:42:41 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p47Igfdw010719; Sat, 7 May 2011 18:42:41 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201105071842.p47Igfdw010719@svn.freebsd.org> From: Adrian Chadd Date: Sat, 7 May 2011 18:42:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r221608 - head/sys/dev/ath/ath_hal/ar5416 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 18:42:41 -0000 Author: adrian Date: Sat May 7 18:42:41 2011 New Revision: 221608 URL: http://svn.freebsd.org/changeset/base/221608 Log: Fix the IS_5416 checks to actually work correctly. I've verified that my AR5416 revision 2.2 (minor revision 0x0A) now matches the correct checks. Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Modified: head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h ============================================================================== --- head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Sat May 7 17:59:07 2011 (r221607) +++ head/sys/dev/ath/ath_hal/ar5416/ar5416reg.h Sat May 7 18:42:41 2011 (r221608) @@ -601,9 +601,9 @@ #define AR_RAD2122_SREV_MAJOR 0xf0 /* Fowl: 2+5G/2x2 */ /* Test macro for owl 1.0 */ -#define IS_5416V1(_ah) (AR_SREV_OWL((ah)) && (_ah)->ah_macRev == AR_SREV_REVISION_OWL_10) -#define IS_5416V2(_ah) (AR_SREV_OWL((ah)) && (_ah)->ah_macRev >= AR_SREV_REVISION_OWL_20) -#define IS_5416V2_2(_ah) (AR_SREV_OWL((ah)) && (_ah)->ah_macRev == AR_SREV_REVISION_OWL_22) +#define IS_5416V1(_ah) (AR_SREV_OWL((_ah)) && AH_PRIVATE((_ah))->ah_macRev == AR_SREV_REVISION_OWL_10) +#define IS_5416V2(_ah) (AR_SREV_OWL((_ah)) && AH_PRIVATE((_ah))->ah_macRev >= AR_SREV_REVISION_OWL_20) +#define IS_5416V2_2(_ah) (AR_SREV_OWL((_ah)) && AH_PRIVATE((_ah))->ah_macRev == AR_SREV_REVISION_OWL_22) /* Misc; compatibility with Atheros HAL */ #define AR_SREV_5416_V20_OR_LATER(_ah) (AR_SREV_HOWL((_ah)) || AR_SREV_OWL_20_OR_LATER(_ah)) From owner-svn-src-head@FreeBSD.ORG Sat May 7 19:22:31 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 1033) id DCEA9106566C; Sat, 7 May 2011 19:22:31 +0000 (UTC) Date: Sat, 7 May 2011 19:22:31 +0000 From: Alexey Dokuchaev To: Nathan Whitehorn Message-ID: <20110507192231.GA39113@FreeBSD.org> References: <201105051416.p45EGfcd003037@svn.freebsd.org> <8FF5539E-F91D-46C6-9019-B40CB8010A85@xcllnt.net> <4DC36B2B.4010509@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <4DC36B2B.4010509@freebsd.org> User-Agent: Mutt/1.4.2.1i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Marcel Moolenaar Subject: Re: svn commit: r221497 - head/release/ia64 X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 19:22:32 -0000 On Thu, May 05, 2011 at 10:29:47PM -0500, Nathan Whitehorn wrote: > I'm cleaning up the release-building code, and am switching them from > mkisofs to makefs, which provides the same functionality. This started > with some irritation with the cdrtools port and a bug in the HFS hybrid > generation that was breaking PPC release CD generation. On a seemingly unrelated note, I've been under impression that for a long time, FreeBSD had some problems with generating "hybrid" installation images, while both some Linux distrosi (?) and Haiku had long history of providing *something* that can be equally burnt on CD and memstick. Are there plans for FreeBSD to do the same? Frankly speaking, right now assortment on ISOs offered by us seems quite suboptimal (e.g., there is not baseinstall+livefs image, which seems the most desirable). ./danfe From owner-svn-src-head@FreeBSD.ORG Sat May 7 22:17:19 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CA48106566C; Sat, 7 May 2011 22:17:19 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-yi0-f54.google.com (mail-yi0-f54.google.com [209.85.218.54]) by mx1.freebsd.org (Postfix) with ESMTP id 9B0288FC0A; Sat, 7 May 2011 22:17:18 +0000 (UTC) Received: by yie12 with SMTP id 12so1893141yie.13 for ; Sat, 07 May 2011 15:17:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=fp+o6nrvUXrh1bzABXJ/b4K5AE/YALM/ebUA10Xehcc=; b=T86O52BFvnuuoPzFmq24c/Scemh3YfhBdqL6Vex1xJVa/qeF5x8S/h6CEuuT6fXFZ0 0DLcDh14HMqO5BZLZAQG/s/276+LCNDuFxEwbMZg81kfRDfdYD7f8yg7WzCJ8ALHcwPI tPYIw95WjGk66k3pa7SSvM12IUXXbVvR2B/tU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=jzWP+FDoR5mkm6dH6Br5nO1dRoiTVR/w5PBFUcDmch6X2ouSJcwGPORHx5fGin6D85 aRx0Yypi0aYfVvdYtxX08acTHmtBvtmzhLK+LfTrbGnyMDqDTX4dklCmowCN1jiTJlxl WnS3fRpR5fof55OSEVhOLKSiaVIlMYd4SIIs8= MIME-Version: 1.0 Received: by 10.236.193.10 with SMTP id j10mr6271731yhn.506.1304806637958; Sat, 07 May 2011 15:17:17 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.236.111.33 with HTTP; Sat, 7 May 2011 15:17:17 -0700 (PDT) In-Reply-To: References: <201105062043.p46Kh2Vs065320@svn.freebsd.org> Date: Sat, 7 May 2011 18:17:17 -0400 X-Google-Sender-Auth: WHz490UONud1Um92halgTeB8Gow Message-ID: From: Attilio Rao To: Nathan Whitehorn Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, andreast@freebsd.org Subject: Re: svn commit: r221550 - head/sys/powerpc/conf X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2011 22:17:19 -0000 2011/5/6 Attilio Rao : > 2011/5/6 Nathan Whitehorn : >> Author: nwhitehorn >> Date: Fri May =C2=A06 20:43:02 2011 >> New Revision: 221550 >> URL: http://svn.freebsd.org/changeset/base/221550 >> >> Log: >> =C2=A0SMP has worked perfectly for a very long time on 32-bit PowerPC on= both >> =C2=A0UP and SMP hardware. Enable it in GENERIC. >> > > While working on largeSMP, I think there is a breakage in atomic.h. > More specifically, atomic_store_rel_long() (and related functions) are > not going to properly work because powerpc defines them as: > > atomic_store_rel_long -> atomic_store_rel_32(volatile u_int *p, u_int v) > > while this should really follow the long arguments. > > This happens because powerpc doesn't follow the other architectures > semantic on defining the "similar" atomic operations. > Other arches define an hardcode version of _type version of the > function and than make a macro the _32 (or whatever) version. > In other words this is what they do: > > void > atomic_store_rel_32() > { > ... > } > > #define atomic_store_rel_int atomic_store_rel_32 > > which si clearly dangerous for cases as reported above. Maybe that > could be fixed by passing sized types, rather than simply int or long > in numbered version, but I'd really prefer to follow the semantic by > other architectures and then have: > > void > atomic_store_rel_int() > { > ... > } > > #define atomic_store_rel_32 atomic_store_rel_int > > I fixed the ATOMIC_STORE_LOAD case in my code, because I needed it, > but the final cleanup is much bigger. > I can make a patch tomorrow if you can test it. > Can you please test and review this patch?: http://www.freebsd.org/~attilio/largeSMP/atomic-powerpc.diff Unfortunately I'm having issues with the toolchains in atm, so I can't really neither test compile it. Let me know, Attilio --=20 Peace can only be achieved by understanding - A. Einstein