From owner-svn-src-projects@FreeBSD.ORG Sun Feb 19 00:21:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29B47106564A; Sun, 19 Feb 2012 00:21:11 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 156958FC08; Sun, 19 Feb 2012 00:21: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 q1J0LAnB054825; Sun, 19 Feb 2012 00:21:10 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1J0LAYK054823; Sun, 19 Feb 2012 00:21:10 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202190021.q1J0LAYK054823@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Sun, 19 Feb 2012 00:21:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231903 - projects/armv6/sys/arm/ti X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Feb 2012 00:21:11 -0000 Author: gonzo Date: Sun Feb 19 00:21:10 2012 New Revision: 231903 URL: http://svn.freebsd.org/changeset/base/231903 Log: Fix name in DRIVER_MODULE macroses to fix newbus probe/attach sequence Modified: projects/armv6/sys/arm/ti/omap_i2c.c Modified: projects/armv6/sys/arm/ti/omap_i2c.c ============================================================================== --- projects/armv6/sys/arm/ti/omap_i2c.c Sat Feb 18 22:26:32 2012 (r231902) +++ projects/armv6/sys/arm/ti/omap_i2c.c Sun Feb 19 00:21:10 2012 (r231903) @@ -1132,8 +1132,8 @@ static driver_t omap_i2c_driver = { sizeof(struct omap_i2c_softc), }; -DRIVER_MODULE(omap_i2c, simplebus, omap_i2c_driver, omap_i2c_devclass, 0, 0); -DRIVER_MODULE(iicbus, omap_i2c, iicbus_driver, iicbus_devclass, 0, 0); +DRIVER_MODULE(omap_iic, simplebus, omap_i2c_driver, omap_i2c_devclass, 0, 0); +DRIVER_MODULE(iicbus, omap_iic, iicbus_driver, iicbus_devclass, 0, 0); MODULE_DEPEND(omap_i2c, omap_prcm, 1, 1, 1); MODULE_DEPEND(omap_i2c, iicbus, 1, 1, 1); From owner-svn-src-projects@FreeBSD.ORG Sun Feb 19 22:44:14 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3B901065672; Sun, 19 Feb 2012 22:44:14 +0000 (UTC) (envelope-from dmarion@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BE0488FC16; Sun, 19 Feb 2012 22:44: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 q1JMiENN018642; Sun, 19 Feb 2012 22:44:14 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1JMiE4J018635; Sun, 19 Feb 2012 22:44:14 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201202192244.q1JMiE4J018635@svn.freebsd.org> From: Damjan Marion Date: Sun, 19 Feb 2012 22:44:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231918 - in projects/armv6/sys: arm/conf arm/ti arm/ti/omap4 arm/ti/usb boot/fdt/dts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 Feb 2012 22:44:14 -0000 Author: dmarion Date: Sun Feb 19 22:44:14 2012 New Revision: 231918 URL: http://svn.freebsd.org/changeset/base/231918 Log: Rename omap_prcm and omap_i2c driver as they will be used on non-OMAP devices. Approved by: cognet (mentor) Added: projects/armv6/sys/arm/ti/ti_i2c.c projects/armv6/sys/arm/ti/ti_i2c.h projects/armv6/sys/arm/ti/ti_prcm.c projects/armv6/sys/arm/ti/ti_prcm.h Deleted: projects/armv6/sys/arm/ti/omap_i2c.c projects/armv6/sys/arm/ti/omap_i2c.h projects/armv6/sys/arm/ti/omap_prcm.c projects/armv6/sys/arm/ti/omap_prcm.h Modified: projects/armv6/sys/arm/conf/PANDABOARD projects/armv6/sys/arm/ti/omap4/files.omap4 projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c projects/armv6/sys/arm/ti/omap_gpio.c projects/armv6/sys/arm/ti/usb/omap_ehci.c projects/armv6/sys/boot/fdt/dts/pandaboard.dts Modified: projects/armv6/sys/arm/conf/PANDABOARD ============================================================================== --- projects/armv6/sys/arm/conf/PANDABOARD Sun Feb 19 22:24:01 2012 (r231917) +++ projects/armv6/sys/arm/conf/PANDABOARD Sun Feb 19 22:44:14 2012 (r231918) @@ -77,7 +77,7 @@ device mmcsd # mmc/sd flash cards # I2C support device iicbus device iic -device omap_i2c +device ti_i2c device loop device ether Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Sun Feb 19 22:24:01 2012 (r231917) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Sun Feb 19 22:44:14 2012 (r231918) @@ -14,14 +14,14 @@ arm/ti/bus_space.c standard arm/ti/common.c standard arm/ti/gic.c standard arm/ti/mp_timer.c standard -arm/ti/omap_prcm.c standard +arm/ti/ti_prcm.c standard arm/ti/ti_scm.c standard arm/ti/ti_cpuid.c standard arm/ti/ti_machdep.c standard arm/ti/omap_gpio.c optional gpio arm/ti/usb/omap_ehci.c optional usb ehci -arm/ti/omap_i2c.c optional omap_i2c +arm/ti/ti_i2c.c optional ti_i2c arm/ti/omap4/omap4_prcm_clks.c standard arm/ti/omap4/omap4_scm_padconf.c standard Modified: projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c ============================================================================== --- projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c Sun Feb 19 22:24:01 2012 (r231917) +++ projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c Sun Feb 19 22:44:14 2012 (r231918) @@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include @@ -188,25 +188,25 @@ struct omap4_prcm_softc { static struct omap4_prcm_softc *omap4_prcm_sc; -static int omap4_clk_generic_activate(struct omap_clock_dev *clkdev); -static int omap4_clk_generic_deactivate(struct omap_clock_dev *clkdev); -static int omap4_clk_generic_accessible(struct omap_clock_dev *clkdev); -static int omap4_clk_generic_set_source(struct omap_clock_dev *clkdev, clk_src_t clksrc); -static int omap4_clk_generic_get_source_freq(struct omap_clock_dev *clkdev, unsigned int *freq); - -static int omap4_clk_gptimer_set_source(struct omap_clock_dev *clkdev, clk_src_t clksrc); -static int omap4_clk_gptimer_get_source_freq(struct omap_clock_dev *clkdev, unsigned int *freq); - -static int omap4_clk_hsmmc_set_source(struct omap_clock_dev *clkdev, clk_src_t clksrc); -static int omap4_clk_hsmmc_get_source_freq(struct omap_clock_dev *clkdev, unsigned int *freq); - -static int omap4_clk_hsusbhost_set_source(struct omap_clock_dev *clkdev, clk_src_t clksrc); -static int omap4_clk_hsusbhost_activate(struct omap_clock_dev *clkdev); -static int omap4_clk_hsusbhost_deactivate(struct omap_clock_dev *clkdev); -static int omap4_clk_hsusbhost_accessible(struct omap_clock_dev *clkdev); +static int omap4_clk_generic_activate(struct ti_clock_dev *clkdev); +static int omap4_clk_generic_deactivate(struct ti_clock_dev *clkdev); +static int omap4_clk_generic_accessible(struct ti_clock_dev *clkdev); +static int omap4_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); +static int omap4_clk_generic_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq); + +static int omap4_clk_gptimer_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); +static int omap4_clk_gptimer_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq); + +static int omap4_clk_hsmmc_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); +static int omap4_clk_hsmmc_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq); + +static int omap4_clk_hsusbhost_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); +static int omap4_clk_hsusbhost_activate(struct ti_clock_dev *clkdev); +static int omap4_clk_hsusbhost_deactivate(struct ti_clock_dev *clkdev); +static int omap4_clk_hsusbhost_accessible(struct ti_clock_dev *clkdev); -static int omap4_clk_get_sysclk_freq(struct omap_clock_dev *clkdev, unsigned int *freq); -static int omap4_clk_get_arm_fclk_freq(struct omap_clock_dev *clkdev, unsigned int *freq); +static int omap4_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); +static int omap4_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); /** * omap_clk_devmap - Array of clock devices available on OMAP4xxx devices @@ -257,7 +257,7 @@ static int omap4_clk_get_arm_fclk_freq(s } -struct omap_clock_dev omap_clk_devmap[] = { +struct ti_clock_dev ti_clk_devmap[] = { /* System clocks */ { .id = SYS_CLK, @@ -491,7 +491,7 @@ omap4_clk_details(clk_ident_t id) * Returns 0 on success or a positive error code on failure. */ static int -omap4_clk_generic_activate(struct omap_clock_dev *clkdev) +omap4_clk_generic_activate(struct ti_clock_dev *clkdev) { struct omap4_prcm_softc *sc = omap4_prcm_sc; struct omap4_clk_details* clk_details; @@ -556,7 +556,7 @@ omap4_clk_generic_activate(struct omap_c * Returns 0 on success or a positive error code on failure. */ static int -omap4_clk_generic_deactivate(struct omap_clock_dev *clkdev) +omap4_clk_generic_deactivate(struct ti_clock_dev *clkdev) { struct omap4_prcm_softc *sc = omap4_prcm_sc; struct omap4_clk_details* clk_details; @@ -602,7 +602,7 @@ omap4_clk_generic_deactivate(struct omap * Returns 0 on success or a positive error code on failure. */ static int -omap4_clk_generic_set_source(struct omap_clock_dev *clkdev, +omap4_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc) { @@ -624,7 +624,7 @@ omap4_clk_generic_set_source(struct omap * Returns 0 on success or a negative error code on failure. */ static int -omap4_clk_generic_accessible(struct omap_clock_dev *clkdev) +omap4_clk_generic_accessible(struct ti_clock_dev *clkdev) { struct omap4_prcm_softc *sc = omap4_prcm_sc; struct omap4_clk_details* clk_details; @@ -668,7 +668,7 @@ omap4_clk_generic_accessible(struct omap * Returns 0 on success or a negative error code on failure. */ static int -omap4_clk_generic_get_source_freq(struct omap_clock_dev *clkdev, +omap4_clk_generic_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq ) { @@ -700,7 +700,7 @@ omap4_clk_generic_get_source_freq(struct * Returns 0 on success or a negative error code on failure. */ static int -omap4_clk_gptimer_set_source(struct omap_clock_dev *clkdev, +omap4_clk_gptimer_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc) { struct omap4_prcm_softc *sc = omap4_prcm_sc; @@ -740,7 +740,7 @@ omap4_clk_gptimer_set_source(struct omap * Returns 0 on success or a negative error code on failure. */ static int -omap4_clk_gptimer_get_source_freq(struct omap_clock_dev *clkdev, +omap4_clk_gptimer_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq ) { @@ -790,7 +790,7 @@ omap4_clk_gptimer_get_source_freq(struct * Returns 0 on success or a negative error code on failure. */ static int -omap4_clk_hsmmc_set_source(struct omap_clock_dev *clkdev, +omap4_clk_hsmmc_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc) { struct omap4_prcm_softc *sc = omap4_prcm_sc; @@ -848,7 +848,7 @@ omap4_clk_hsmmc_set_source(struct omap_c * Returns 0 on success or a negative error code on failure. */ static int -omap4_clk_hsmmc_get_source_freq(struct omap_clock_dev *clkdev, +omap4_clk_hsmmc_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq ) { @@ -908,7 +908,7 @@ omap4_clk_hsmmc_get_source_freq(struct o * nothing, values are saved in global variables */ static int -omap4_clk_get_sysclk_freq(struct omap_clock_dev *clkdev, +omap4_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq) { uint32_t clksel; @@ -965,7 +965,7 @@ omap4_clk_get_sysclk_freq(struct omap_cl * returns 0 on success, a positive error code on failure. */ static int -omap4_clk_get_arm_fclk_freq(struct omap_clock_dev *clkdev, +omap4_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq) { uint32_t clksel; @@ -1048,7 +1048,7 @@ struct dpll_param usb_dpll_param[7] = { #endif }; static int -omap4_clk_hsusbhost_activate(struct omap_clock_dev *clkdev) +omap4_clk_hsusbhost_activate(struct ti_clock_dev *clkdev) { struct omap4_prcm_softc *sc = omap4_prcm_sc; struct resource* clk_mem_res; @@ -1163,7 +1163,7 @@ omap4_clk_hsusbhost_activate(struct omap * Returns 0 on success or a positive error code on failure. */ static int -omap4_clk_hsusbhost_deactivate(struct omap_clock_dev *clkdev) +omap4_clk_hsusbhost_deactivate(struct ti_clock_dev *clkdev) { struct omap4_prcm_softc *sc = omap4_prcm_sc; struct resource* clk_mem_res; @@ -1253,7 +1253,7 @@ omap4_clk_hsusbhost_deactivate(struct om * error code on failure. */ static int -omap4_clk_hsusbhost_accessible(struct omap_clock_dev *clkdev) +omap4_clk_hsusbhost_accessible(struct ti_clock_dev *clkdev) { struct omap4_prcm_softc *sc = omap4_prcm_sc; struct resource* clk_mem_res; @@ -1301,7 +1301,7 @@ omap4_clk_hsusbhost_accessible(struct om * Returns 0 if sucessful otherwise a negative error code on failure. */ static int -omap4_clk_hsusbhost_set_source(struct omap_clock_dev *clkdev, +omap4_clk_hsusbhost_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc) { struct omap4_prcm_softc *sc = omap4_prcm_sc; Modified: projects/armv6/sys/arm/ti/omap_gpio.c ============================================================================== --- projects/armv6/sys/arm/ti/omap_gpio.c Sun Feb 19 22:24:01 2012 (r231917) +++ projects/armv6/sys/arm/ti/omap_gpio.c Sun Feb 19 22:44:14 2012 (r231918) @@ -57,7 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include @@ -750,7 +750,7 @@ omap_gpio_attach(device_t dev) if (sc->sc_mem_res[i] != NULL) { /* Enable the interface and functional clocks for the module */ - omap_prcm_clk_enable(GPIO1_CLK + i); + ti_prcm_clk_enable(GPIO1_CLK + i); /* Read the revision number of the module. TI don't publish the * actual revision numbers, so instead the values have been Added: projects/armv6/sys/arm/ti/ti_i2c.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/ti_i2c.c Sun Feb 19 22:44:14 2012 (r231918) @@ -0,0 +1,1139 @@ +/*- + * Copyright (c) 2011 + * Ben Gray . + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/** + * Driver for the I2C module on the TI SoC. + * + * This driver is heavily based on the TWI driver for the AT91 (at91_twi.c). + * + * CAUTION: The I2Ci registers are limited to 16 bit and 8 bit data accesses, + * 32 bit data access is not allowed and can corrupt register content. + * + * This driver currently doesn't use DMA for the transfer, although I hope to + * incorporate that sometime in the future. The idea being that for transaction + * larger than a certain size the DMA engine is used, for anything less the + * normal interrupt/fifo driven option is used. + * + * + * WARNING: This driver uses mtx_sleep and interrupts to perform transactions, + * which means you can't do a transaction during startup before the interrupts + * have been enabled. Hint - the freebsd function config_intrhook_establish(). + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "iicbus_if.h" + +/** + * I2C device driver context, a pointer to this is stored in the device + * driver structure. + */ +struct ti_i2c_softc +{ + device_t sc_dev; + struct resource* sc_irq_res; + struct resource* sc_mem_res; + device_t sc_iicbus; + + void* sc_irq_h; + + struct mtx sc_mtx; + + volatile uint16_t sc_stat_flags; /* contains the status flags last IRQ */ + + uint16_t sc_i2c_addr; + uint16_t sc_rev; +}; + +#define TI_I2C_REV1 0x003C /* OMAP3 */ +#define TI_I2C_REV2 0x000A /* OMAP4 */ + +/** + * Locking macros used throughout the driver + */ +#define TI_I2C_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define TI_I2C_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define TI_I2C_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ + "ti_i2c", MTX_DEF) +#define TI_I2C_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define TI_I2C_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define TI_I2C_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + +#ifdef DEBUG +#define ti_i2c_dbg(_sc, fmt, args...) \ + device_printf((_sc)->sc_dev, fmt, ##args) +#else +#define ti_i2c_dbg(_sc, fmt, args...) +#endif + +static devclass_t ti_i2c_devclass; + +/* bus entry points */ + +static int ti_i2c_probe(device_t dev); +static int ti_i2c_attach(device_t dev); +static int ti_i2c_detach(device_t dev); +static void ti_i2c_intr(void *); + +/* helper routines */ +static int ti_i2c_activate(device_t dev); +static void ti_i2c_deactivate(device_t dev); + +/** + * ti_i2c_read_2 - reads a 16-bit value from one of the I2C registers + * @sc: I2C device context + * @off: the byte offset within the register bank to read from. + * + * + * LOCKING: + * No locking required + * + * RETURNS: + * 16-bit value read from the register. + */ +static inline uint16_t +ti_i2c_read_2(struct ti_i2c_softc *sc, bus_size_t off) +{ + return bus_read_2(sc->sc_mem_res, off); +} + +/** + * ti_i2c_write_2 - writes a 16-bit value to one of the I2C registers + * @sc: I2C device context + * @off: the byte offset within the register bank to read from. + * @val: the value to write into the register + * + * LOCKING: + * No locking required + * + * RETURNS: + * 16-bit value read from the register. + */ +static inline void +ti_i2c_write_2(struct ti_i2c_softc *sc, bus_size_t off, uint16_t val) +{ + bus_write_2(sc->sc_mem_res, off, val); +} + +/** + * ti_i2c_read_reg - reads a 16-bit value from one of the I2C registers + * take into account revision-dependent register offset + * @sc: I2C device context + * @off: the byte offset within the register bank to read from. + * + * + * LOCKING: + * No locking required + * + * RETURNS: + * 16-bit value read from the register. + */ +static inline uint16_t +ti_i2c_read_reg(struct ti_i2c_softc *sc, bus_size_t off) +{ + /* XXXOMAP3: FIXME add registers mapping here */ + return bus_read_2(sc->sc_mem_res, off); +} + +/** + * ti_i2c_write_reg - writes a 16-bit value to one of the I2C registers + * take into account revision-dependent register offset + * @sc: I2C device context + * @off: the byte offset within the register bank to read from. + * @val: the value to write into the register + * + * LOCKING: + * No locking required + * + * RETURNS: + * 16-bit value read from the register. + */ +static inline void +ti_i2c_write_reg(struct ti_i2c_softc *sc, bus_size_t off, uint16_t val) +{ + /* XXXOMAP3: FIXME add registers mapping here */ + bus_write_2(sc->sc_mem_res, off, val); +} + +/** + * ti_i2c_set_intr_enable - writes the interrupt enable register + * @sc: I2C device context + * @ie: bitmask of the interrupts to enable + * + * This function is needed as writing the I2C_IE register on the OMAP4 devices + * doesn't seem to actually enable the interrupt, rather you have to write + * through the I2C_IRQENABLE_CLR and I2C_IRQENABLE_SET registers. + * + * LOCKING: + * No locking required + * + * RETURNS: + * Nothing. + */ +static inline void +ti_i2c_set_intr_enable(struct ti_i2c_softc *sc, uint16_t ie) +{ + /* XXXOMAP3: FIXME */ + ti_i2c_write_2(sc, I2C_REG_IRQENABLE_CLR, 0xffff); + if (ie) + ti_i2c_write_2(sc, I2C_REG_IRQENABLE_SET, ie); +} + +/** + * ti_i2c_reset - attach function for the driver + * @dev: i2c device handle + * + * + * + * LOCKING: + * Called from timer context + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +static int +ti_i2c_reset(device_t dev, u_char speed, u_char addr, u_char *oldaddr) +{ + struct ti_i2c_softc *sc = device_get_softc(dev); + uint16_t psc_reg, scll_reg, sclh_reg, con_reg; + + TI_I2C_LOCK(sc); + + if (oldaddr) + *oldaddr = sc->sc_i2c_addr; + sc->sc_i2c_addr = addr; + + /* The header file doesn't actual tell you what speeds should be used for + * the 3 possible settings, so I'm going to go with the usual: + * + * IIC_SLOW => 100kbps + * IIC_FAST => 400kbps + * IIC_FASTEST => 3.4Mbps + * + * I2Ci_INTERNAL_CLK = I2Ci_FCLK / (PSC + 1) + * I2Ci_INTERNAL_CLK = 96MHZ / (PSC + 1) + */ + switch (speed) { + case IIC_FASTEST: + psc_reg = 0x0004; + scll_reg = 0x0811; + sclh_reg = 0x0a13; + break; + + case IIC_FAST: + psc_reg = 0x0009; + scll_reg = 0x0005; + sclh_reg = 0x0007; + break; + + case IIC_SLOW: + case IIC_UNKNOWN: + default: + psc_reg = 0x0017; + scll_reg = 0x000D; + sclh_reg = 0x000F; + break; + } + + /* First disable the controller while changing the clocks */ + con_reg = ti_i2c_read_reg(sc, I2C_REG_CON); + ti_i2c_write_reg(sc, I2C_REG_CON, 0x0000); + + /* Program the prescaler */ + ti_i2c_write_reg(sc, I2C_REG_PSC, psc_reg); + + /* Set the bitrate */ + ti_i2c_write_reg(sc, I2C_REG_SCLL, scll_reg); + ti_i2c_write_reg(sc, I2C_REG_SCLH, sclh_reg); + + /* Set the remote slave address */ + ti_i2c_write_reg(sc, I2C_REG_SA, addr); + + /* Enable the I2C module again */ + con_reg = I2C_CON_I2C_EN; + con_reg |= (speed == IIC_FASTEST) ? I2C_CON_OPMODE_HS : I2C_CON_OPMODE_STD; + ti_i2c_write_reg(sc, I2C_REG_CON, con_reg); + + TI_I2C_UNLOCK(sc); + + return 0; +} + +/** + * ti_i2c_intr - interrupt handler for the I2C module + * @dev: i2c device handle + * + * + * + * LOCKING: + * Called from timer context + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +static void +ti_i2c_intr(void *arg) +{ + struct ti_i2c_softc *sc = (struct ti_i2c_softc*) arg; + uint16_t status; + + status = ti_i2c_read_reg(sc, I2C_REG_STAT); + if (status == 0) + return; + + TI_I2C_LOCK(sc); + + /* save the flags */ + sc->sc_stat_flags |= status; + + /* clear the status flags */ + ti_i2c_write_reg(sc, I2C_REG_STAT, status); + + /* wakeup the process the started the transaction */ + wakeup(sc); + + TI_I2C_UNLOCK(sc); + + return; +} + +/** + * ti_i2c_wait - waits for the specific event to occur + * @sc: i2c driver context + * @flags: the event(s) to wait on, this is a bitmask of the I2C_STAT_??? flags + * @statp: if not null will contain the status flags upon return + * @timo: the number of ticks to wait + * + * + * + * LOCKING: + * The driver context must be locked before calling this function. Internally + * the function sleeps, releasing the lock as it does so, however the lock is + * always retaken before this function returns. + * + * RETURNS: + * 0 if the event(s) were tripped within timeout period + * EBUSY if timedout waiting for the events + * ENXIO if a NACK event was received + */ +static int +ti_i2c_wait(struct ti_i2c_softc *sc, uint16_t flags, uint16_t *statp, int timo) +{ + int waittime = timo; + int start_ticks = ticks; + int rc; + + TI_I2C_ASSERT_LOCKED(sc); + + /* check if the condition has already occured, the interrupt routine will + * clear the status flags. + */ + if ((sc->sc_stat_flags & flags) == 0) { + + /* condition(s) haven't occured so sleep on the IRQ */ + while (waittime > 0) { + + rc = mtx_sleep(sc, &sc->sc_mtx, 0, "I2Cwait", waittime); + if (rc == EWOULDBLOCK) { + /* timed-out, simply break out of the loop */ + break; + } else { + /* IRQ has been tripped, but need to sanity check we have the + * right events in the status flag. + */ + if ((sc->sc_stat_flags & flags) != 0) + break; + + /* event hasn't been tripped so wait some more */ + waittime -= (ticks - start_ticks); + start_ticks = ticks; + } + } + } + + /* copy the actual status bits */ + if (statp != NULL) + *statp = sc->sc_stat_flags; + + /* return the status found */ + if ((sc->sc_stat_flags & flags) != 0) + rc = 0; + else + rc = EBUSY; + + /* clear the flags set by the interrupt handler */ + sc->sc_stat_flags = 0; + + return (rc); +} + +/** + * ti_i2c_wait_for_free_bus - waits for the bus to become free + * @sc: i2c driver context + * @timo: the time to wait for the bus to become free + * + * + * + * LOCKING: + * The driver context must be locked before calling this function. Internally + * the function sleeps, releasing the lock as it does so, however the lock is + * always taken before this function returns. + * + * RETURNS: + * 0 if the event(s) were tripped within timeout period + * EBUSY if timedout waiting for the events + * ENXIO if a NACK event was received + */ +static int +ti_i2c_wait_for_free_bus(struct ti_i2c_softc *sc, int timo) +{ + /* check if the bus is free, BB bit = 0 */ + if ((ti_i2c_read_reg(sc, I2C_REG_STAT) & I2C_STAT_BB) == 0) + return 0; + + /* enable bus free interrupts */ + ti_i2c_set_intr_enable(sc, I2C_IE_BF); + + /* wait for the bus free interrupt to be tripped */ + return ti_i2c_wait(sc, I2C_STAT_BF, NULL, timo); +} + +/** + * ti_i2c_read_bytes - attempts to perform a read operation + * @sc: i2c driver context + * @buf: buffer to hold the received bytes + * @len: the number of bytes to read + * + * This function assumes the slave address is already set + * + * LOCKING: + * The context lock should be held before calling this function + * + * RETURNS: + * 0 on function succeeded + * EINVAL if invalid message is passed as an arg + */ +static int +ti_i2c_read_bytes(struct ti_i2c_softc *sc, uint8_t *buf, uint16_t len) +{ + int timo = (hz / 4); + int err = 0; + uint16_t con_reg; + uint16_t events; + uint16_t status; + uint32_t amount = 0; + uint32_t sofar = 0; + uint32_t i; + + /* wait for the bus to become free */ + err = ti_i2c_wait_for_free_bus(sc, timo); + if (err != 0) { + device_printf(sc->sc_dev, "bus never freed\n"); + return (err); + } + + /* set the events to wait for */ + events = I2C_IE_RDR | /* Receive draining interrupt */ + I2C_IE_RRDY | /* Receive Data Ready interrupt */ + I2C_IE_ARDY | /* Register Access Ready interrupt */ + I2C_IE_NACK | /* No Acknowledgment interrupt */ + I2C_IE_AL; + + /* enable interrupts for the events we want */ + ti_i2c_set_intr_enable(sc, events); + + /* write the number of bytes to read */ + ti_i2c_write_reg(sc, I2C_REG_CNT, len); + + /* clear the write bit and initiate the read transaction. Setting the STT + * (start) bit initiates the transfer. + */ + con_reg = ti_i2c_read_reg(sc, I2C_REG_CON); + con_reg &= ~I2C_CON_TRX; + con_reg |= I2C_CON_MST | I2C_CON_STT | I2C_CON_STP; + ti_i2c_write_reg(sc, I2C_REG_CON, con_reg); + + /* reading loop */ + while (1) { + + /* wait for an event */ + err = ti_i2c_wait(sc, events, &status, timo); + if (err != 0) { + break; + } + + /* check for the error conditions */ + if (status & I2C_STAT_NACK) { + /* no ACK from slave */ + ti_i2c_dbg(sc, "NACK\n"); + err = ENXIO; + break; + } + if (status & I2C_STAT_AL) { + /* arbitration lost */ + ti_i2c_dbg(sc, "Arbitration lost\n"); + err = ENXIO; + break; + } + + /* check if we have finished */ + if (status & I2C_STAT_ARDY) { + /* register access ready - transaction complete basically */ + ti_i2c_dbg(sc, "ARDY transaction complete\n"); + err = 0; + break; + } + + /* read some data */ + if (status & I2C_STAT_RDR) { + /* Receive draining interrupt - last data received */ + ti_i2c_dbg(sc, "Receive draining interrupt\n"); + + /* get the number of bytes in the FIFO */ + amount = ti_i2c_read_reg(sc, I2C_REG_BUFSTAT); + amount >>= 8; + amount &= 0x3f; + } + else if (status & I2C_STAT_RRDY) { + /* Receive data ready interrupt - enough data received */ + ti_i2c_dbg(sc, "Receive data ready interrupt\n"); + + /* get the number of bytes in the FIFO */ + amount = ti_i2c_read_reg(sc, I2C_REG_BUF); + amount >>= 8; + amount &= 0x3f; + amount += 1; + } + + /* sanity check we haven't overwritten the array */ + if ((sofar + amount) > len) { + ti_i2c_dbg(sc, "to many bytes to read\n"); + amount = (len - sofar); + } + + /* read the bytes from the fifo */ + for (i = 0; i < amount; i++) { + buf[sofar++] = (uint8_t)(ti_i2c_read_reg(sc, I2C_REG_DATA) & 0xff); + } + + /* attempt to clear the receive ready bits */ + ti_i2c_write_reg(sc, I2C_REG_STAT, I2C_STAT_RDR | I2C_STAT_RRDY); + } + + /* reset the registers regardless if there was an error or not */ + ti_i2c_set_intr_enable(sc, 0x0000); + ti_i2c_write_reg(sc, I2C_REG_CON, I2C_CON_I2C_EN | I2C_CON_MST | I2C_CON_STP); + + return (err); +} + +/** + * ti_i2c_write_bytes - attempts to perform a read operation + * @sc: i2c driver context + * @buf: buffer containing the bytes to write + * @len: the number of bytes to write + * + * This function assumes the slave address is already set + * + * LOCKING: + * The context lock should be held before calling this function + * + * RETURNS: + * 0 on function succeeded + * EINVAL if invalid message is passed as an arg + */ +static int +ti_i2c_write_bytes(struct ti_i2c_softc *sc, const uint8_t *buf, uint16_t len) +{ + int timo = (hz / 4); + int err = 0; + uint16_t con_reg; + uint16_t events; + uint16_t status; + uint32_t amount = 0; + uint32_t sofar = 0; + uint32_t i; + + /* wait for the bus to become free */ + err = ti_i2c_wait_for_free_bus(sc, timo); + if (err != 0) + return (err); + + /* set the events to wait for */ + events = I2C_IE_XDR | /* Transmit draining interrupt */ + I2C_IE_XRDY | /* Transmit Data Ready interrupt */ + I2C_IE_ARDY | /* Register Access Ready interrupt */ + I2C_IE_NACK | /* No Acknowledgment interrupt */ + I2C_IE_AL; + + /* enable interrupts for the events we want*/ + ti_i2c_set_intr_enable(sc, events); + + /* write the number of bytes to write */ + ti_i2c_write_reg(sc, I2C_REG_CNT, len); + + /* set the write bit and initiate the write transaction. Setting the STT + * (start) bit initiates the transfer. + */ + con_reg = ti_i2c_read_reg(sc, I2C_REG_CON); + con_reg |= I2C_CON_TRX | I2C_CON_MST | I2C_CON_STT | I2C_CON_STP; + ti_i2c_write_reg(sc, I2C_REG_CON, con_reg); + + /* writing loop */ + while (1) { + + /* wait for an event */ + err = ti_i2c_wait(sc, events, &status, timo); + if (err != 0) { + break; + } + + /* check for the error conditions */ + if (status & I2C_STAT_NACK) { + /* no ACK from slave */ + ti_i2c_dbg(sc, "NACK\n"); + err = ENXIO; + break; + } + if (status & I2C_STAT_AL) { + /* arbitration lost */ + ti_i2c_dbg(sc, "Arbitration lost\n"); + err = ENXIO; + break; + } + + /* check if we have finished */ + if (status & I2C_STAT_ARDY) { + /* register access ready - transaction complete basically */ + ti_i2c_dbg(sc, "ARDY transaction complete\n"); + err = 0; + break; + } + + /* read some data */ + if (status & I2C_STAT_XDR) { + /* Receive draining interrupt - last data received */ + ti_i2c_dbg(sc, "Transmit draining interrupt\n"); + + /* get the number of bytes in the FIFO */ + amount = ti_i2c_read_reg(sc, I2C_REG_BUFSTAT); + amount &= 0x3f; + } + else if (status & I2C_STAT_XRDY) { + /* Receive data ready interrupt - enough data received */ + ti_i2c_dbg(sc, "Transmit data ready interrupt\n"); + + /* get the number of bytes in the FIFO */ + amount = ti_i2c_read_reg(sc, I2C_REG_BUF); + amount &= 0x3f; + amount += 1; + } + + /* sanity check we haven't overwritten the array */ + if ((sofar + amount) > len) { + ti_i2c_dbg(sc, "to many bytes to write\n"); + amount = (len - sofar); + } + + /* write the bytes from the fifo */ + for (i = 0; i < amount; i++) { + ti_i2c_write_reg(sc, I2C_REG_DATA, buf[sofar++]); + } + + /* attempt to clear the transmit ready bits */ + ti_i2c_write_reg(sc, I2C_REG_STAT, I2C_STAT_XDR | I2C_STAT_XRDY); + } + + /* reset the registers regardless if there was an error or not */ + ti_i2c_set_intr_enable(sc, 0x0000); + ti_i2c_write_reg(sc, I2C_REG_CON, I2C_CON_I2C_EN | I2C_CON_MST | I2C_CON_STP); + + return (err); +} + +/** + * ti_i2c_transfer - called to perform the transfer + * @dev: i2c device handle + * @msgs: the messages to send/receive + * @nmsgs: the number of messages in the msgs array + * + * + * LOCKING: + * Internally locked + * + * RETURNS: + * 0 on function succeeded + * EINVAL if invalid message is passed as an arg + */ +static int +ti_i2c_transfer(device_t dev, struct iic_msg *msgs, uint32_t nmsgs) +{ + struct ti_i2c_softc *sc = device_get_softc(dev); + int err = 0; + uint32_t i; + uint16_t len; + uint8_t *buf; + + TI_I2C_LOCK(sc); + + for (i = 0; i < nmsgs; i++) { + + len = msgs[i].len; + buf = msgs[i].buf; + + /* zero byte transfers aren't allowed */ + if (len == 0 || buf == NULL) { + err = EINVAL; + goto out; + } + + /* set the slave address */ + ti_i2c_write_reg(sc, I2C_REG_SA, msgs[i].slave); + + /* perform the read or write */ + if (msgs[i].flags & IIC_M_RD) { + err = ti_i2c_read_bytes(sc, buf, len); + } else { + err = ti_i2c_write_bytes(sc, buf, len); + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Feb 20 00:30:20 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7FA69106566C; Mon, 20 Feb 2012 00:30:20 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6BC628FC0C; Mon, 20 Feb 2012 00:30: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 q1K0UKnX022586; Mon, 20 Feb 2012 00:30:20 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1K0UKOQ022584; Mon, 20 Feb 2012 00:30:20 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202200030.q1K0UKOQ022584@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 20 Feb 2012 00:30:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231920 - projects/armv6/sys/arm/ti/omap4 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2012 00:30:20 -0000 Author: gonzo Date: Mon Feb 20 00:30:20 2012 New Revision: 231920 URL: http://svn.freebsd.org/changeset/base/231920 Log: - Change sDMA clock register offset - When enabling clocks use DELAY instead of busy loop Modified: projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c Modified: projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c ============================================================================== --- projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c Sun Feb 19 23:35:56 2012 (r231919) +++ projects/armv6/sys/arm/ti/omap4/omap4_prcm_clks.c Mon Feb 20 00:30:20 2012 (r231920) @@ -425,7 +425,7 @@ static struct omap4_clk_details g_omap4_ /* sDMA block */ OMAP4_GENERIC_CLOCK_DETAILS(SDMA_CLK, -1, CM2_INSTANCE_MEM_REGION, - (CORE_CM2_OFFSET + 0x320), CLKCTRL_MODULEMODE_AUTO), + (CORE_CM2_OFFSET + 0x300), CLKCTRL_MODULEMODE_AUTO), /* I2C modules */ OMAP4_GENERIC_CLOCK_DETAILS(I2C1_CLK, -1, CM2_INSTANCE_MEM_REGION, @@ -445,7 +445,7 @@ static struct omap4_clk_details g_omap4_ * alive. * */ -#define MAX_MODULE_ENABLE_WAIT 1000 +#define MAX_MODULE_ENABLE_WAIT 100 /** * ARRAY_SIZE - Macro to return the number of elements in a static const array. @@ -529,6 +529,7 @@ omap4_clk_generic_activate(struct ti_clo clksel = bus_read_4(clk_mem_res, clk_details->clksel_reg); if ((clksel & CLKCTRL_IDLEST_MASK) == CLKCTRL_IDLEST_ENABLED) break; + DELAY(10); } /* Check the enabled state */ From owner-svn-src-projects@FreeBSD.ORG Mon Feb 20 01:20:58 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33D96106564A; Mon, 20 Feb 2012 01:20:58 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1E4FD8FC0C; Mon, 20 Feb 2012 01:20: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 q1K1KwFl024640; Mon, 20 Feb 2012 01:20:58 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1K1KvIZ024635; Mon, 20 Feb 2012 01:20:57 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202200120.q1K1KvIZ024635@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 20 Feb 2012 01:20:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231925 - in projects/armv6/sys/arm: conf ti ti/omap4 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2012 01:20:58 -0000 Author: gonzo Date: Mon Feb 20 01:20:57 2012 New Revision: 231925 URL: http://svn.freebsd.org/changeset/base/231925 Log: Add OMAP sDMA controller driver/API Submitted by: Ben Gray Added: projects/armv6/sys/arm/ti/omap_dma.c projects/armv6/sys/arm/ti/omap_dma.h projects/armv6/sys/arm/ti/omap_dmareg.h Modified: projects/armv6/sys/arm/conf/PANDABOARD projects/armv6/sys/arm/ti/omap4/files.omap4 Modified: projects/armv6/sys/arm/conf/PANDABOARD ============================================================================== --- projects/armv6/sys/arm/conf/PANDABOARD Mon Feb 20 01:18:32 2012 (r231924) +++ projects/armv6/sys/arm/conf/PANDABOARD Mon Feb 20 01:20:57 2012 (r231925) @@ -127,6 +127,10 @@ device miibus # device axe # ASIX Electronics USB Ethernet device smsc # SMSC LAN95xx USB Ethernet + +# OMAP-specific devices +device omap_dma + # Flattened Device Tree options FDT options FDT_DTB_STATIC Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Mon Feb 20 01:18:32 2012 (r231924) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Mon Feb 20 01:20:57 2012 (r231925) @@ -21,7 +21,8 @@ arm/ti/ti_machdep.c standard arm/ti/omap_gpio.c optional gpio arm/ti/usb/omap_ehci.c optional usb ehci -arm/ti/ti_i2c.c optional ti_i2c +arm/ti/omap_dma.c optional omap_dma +arm/ti/ti_i2c.c optional ti_i2c arm/ti/omap4/omap4_prcm_clks.c standard arm/ti/omap4/omap4_scm_padconf.c standard Added: projects/armv6/sys/arm/ti/omap_dma.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/omap_dma.c Mon Feb 20 01:20:57 2012 (r231925) @@ -0,0 +1,1246 @@ +/*- + * Copyright (c) 2011 + * Ben Gray . + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include +#include + +/** + * Kernel functions for using the DMA controller + * + * + * DMA TRANSFERS: + * A DMA transfer block consists of a number of frames (FN). Each frame + * consists of a number of elements, and each element can have a size of 8, 16, + * or 32 bits. + * + * OMAP44xx and newer chips support linked list (aka scatter gather) transfers, + * where a linked list of source/destination pairs can be placed in memory + * for the H/W to process. Earlier chips only allowed you to chain multiple + * channels together. However currently this linked list feature is not + * supported by the driver. + * + */ + +/** + * Data structure per DMA channel. + * + * + */ +struct omap_dma_channel { + + /* + * The configuration registers for the given channel, these are modified + * by the set functions and only written to the actual registers when a + * transaction is started. + */ + uint32_t reg_csdp; + uint32_t reg_ccr; + uint32_t reg_cicr; + + /* Set when one of the configuration registers above change */ + uint32_t need_reg_write; + + /* Callback function used when an interrupt is tripped on the given channel */ + void (*callback)(unsigned int ch, uint32_t ch_status, void *data); + + /* Callback data passed in the callback ... duh */ + void* callback_data; + +}; + +/** + * DMA driver context, allocated and stored globally, this driver is not + * intetned to ever be unloaded (see omap_dma_sc). + * + */ +struct omap_dma_softc { + device_t sc_dev; + struct resource* sc_irq_res; + struct resource* sc_mem_res; + + /* + * I guess in theory we should have a mutex per DMA channel for register + * modifications. But since we know we are never going to be run on a SMP + * system, we can use just the single lock for all channels. + */ + struct mtx sc_mtx; + + /* Stores the H/W revision read from the registers */ + uint32_t sc_hw_rev; + + /* + * Bits in the sc_active_channels data field indicate if the channel has + * been activated. + */ + uint32_t sc_active_channels; + + struct omap_dma_channel sc_channel[NUM_DMA_CHANNELS]; + +}; + +static struct omap_dma_softc *omap_dma_sc = NULL; + +/** + * Macros for driver mutex locking + */ +#define OMAP_DMA_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define OMAP_DMA_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define OMAP_DMA_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ + "omap_dma", MTX_SPIN) +#define OMAP_DMA_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define OMAP_DMA_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define OMAP_DMA_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + +/** + * Function prototypes + * + */ +static void omap_dma_intr(void *); + +/** + * omap_dma_read_4 - reads a 32-bit value from one of the DMA registers + * @sc: DMA device context + * @off: The offset of a register from the DMA register address range + * + * + * RETURNS: + * 32-bit value read from the register. + */ +static inline uint32_t +omap_dma_read_4(struct omap_dma_softc *sc, bus_size_t off) +{ + return bus_read_4(sc->sc_mem_res, off); +} + +/** + * omap_dma_write_4 - writes a 32-bit value to one of the DMA registers + * @sc: DMA device context + * @off: The offset of a register from the DMA register address range + * + * + * RETURNS: + * 32-bit value read from the register. + */ +static inline void +omap_dma_write_4(struct omap_dma_softc *sc, bus_size_t off, uint32_t val) +{ + bus_write_4(sc->sc_mem_res, off, val); +} + +/** + * omap_dma_is_omap3_rev - returns true if H/W is from OMAP3 series + * @sc: DMA device context + * + */ +static inline int +omap_dma_is_omap3_rev(struct omap_dma_softc *sc) +{ + return (sc->sc_hw_rev == DMA4_OMAP3_REV); +} + +/** + * omap_dma_is_omap4_rev - returns true if H/W is from OMAP4 series + * @sc: DMA device context + * + */ +static inline int +omap_dma_is_omap4_rev(struct omap_dma_softc *sc) +{ + return (sc->sc_hw_rev == DMA4_OMAP4_REV); +} + +/** + * omap_dma_intr - interrupt handler for all 4 DMA IRQs + * @arg: ignored + * + * Called when any of the four DMA IRQs are triggered. + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * nothing + */ +static void +omap_dma_intr(void *arg) +{ + struct omap_dma_softc *sc = omap_dma_sc; + uint32_t intr; + uint32_t csr; + unsigned int ch, j; + struct omap_dma_channel* channel; + + OMAP_DMA_LOCK(sc); + + for (j = 0; j < NUM_DMA_IRQS; j++) { + + /* Get the flag interrupts (enabled) */ + intr = omap_dma_read_4(sc, DMA4_IRQSTATUS_L(j)); + intr &= omap_dma_read_4(sc, DMA4_IRQENABLE_L(j)); + if (intr == 0x00000000) + continue; + + /* Loop through checking the status bits */ + for (ch = 0; ch < NUM_DMA_CHANNELS; ch++) { + if (intr & (1 << ch)) { + channel = &sc->sc_channel[ch]; + + /* Read the CSR regsiter and verify we don't have a spurious IRQ */ + csr = omap_dma_read_4(sc, DMA4_CSR(ch)); + if (csr == 0) { + device_printf(sc->sc_dev, "Spurious DMA IRQ for channel " + "%d\n", ch); + continue; + } + + /* Sanity check this channel is active */ + if ((sc->sc_active_channels & (1 << ch)) == 0) { + device_printf(sc->sc_dev, "IRQ %d for a non-activated " + "channel %d\n", j, ch); + continue; + } + + /* Check the status error codes */ + if (csr & DMA4_CSR_DROP) + device_printf(sc->sc_dev, "Synchronization event drop " + "occurred during the transfer on channel %u\n", + ch); + if (csr & DMA4_CSR_SECURE_ERR) + device_printf(sc->sc_dev, "Secure transaction error event " + "on channel %u\n", ch); + if (csr & DMA4_CSR_MISALIGNED_ADRS_ERR) + device_printf(sc->sc_dev, "Misaligned address error event " + "on channel %u\n", ch); + if (csr & DMA4_CSR_TRANS_ERR) { + device_printf(sc->sc_dev, "Transaction error event on " + "channel %u\n", ch); + /* + * Apparently according to linux code, there is an errata + * that says the channel is not disabled upon this error. + * They explicitly disable the channel here .. since I + * haven't seen the errata, I'm going to ignore for now. + */ + } + + /* Clear the status flags for the IRQ */ + omap_dma_write_4(sc, DMA4_CSR(ch), DMA4_CSR_CLEAR_MASK); + omap_dma_write_4(sc, DMA4_IRQSTATUS_L(j), (1 << ch)); + + /* Call the callback for the given channel */ + if (channel->callback) + channel->callback(ch, csr, channel->callback_data); + } + } + } + + OMAP_DMA_UNLOCK(sc); + + return; +} + +/** + * omap_dma_activate_channel - activates a DMA channel + * @ch: upon return contains the channel allocated + * @callback: a callback function to associate with the channel + * @data: optional data supplied when the callback is called + * + * Simply activates a channel be enabling and writing default values to the + * channel's register set. It doesn't start a transaction, just populates the + * internal data structures and sets defaults. + * + * Note this function doesn't enable interrupts, for that you need to call + * omap_dma_enable_channel_irq(). If not using IRQ to detect the end of the + * transfer, you can use omap_dma_status_poll() to detect a change in the + * status. + * + * A channel must be activated before any of the other DMA functions can be + * called on it. + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * 0 on success, otherwise an error code + */ +int +omap_dma_activate_channel(unsigned int *ch, + void (*callback)(unsigned int ch, uint32_t status, void *data), + void *data) +{ + struct omap_dma_softc *sc = omap_dma_sc; + struct omap_dma_channel *channel = NULL; + uint32_t addr; + unsigned int i; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + if (ch == NULL) + return (EINVAL); + + OMAP_DMA_LOCK(sc); + + /* Check to see if all channels are in use */ + if (sc->sc_active_channels == 0xffffffff) { + OMAP_DMA_UNLOCK(sc); + return (ENOMEM); + } + + /* Find the first non-active channel */ + for (i = 0; i < NUM_DMA_CHANNELS; i++) { + if (!(sc->sc_active_channels & (0x1 << i))) { + sc->sc_active_channels |= (0x1 << i); + *ch = i; + break; + } + } + + /* Get the channel struct and populate the fields */ + channel = &sc->sc_channel[*ch]; + + channel->callback = callback; + channel->callback_data = data; + + channel->need_reg_write = 1; + + /* Set the default configuration for the DMA channel */ + channel->reg_csdp = DMA4_CSDP_DATA_TYPE(0x2) + | DMA4_CSDP_SRC_BURST_MODE(0) + | DMA4_CSDP_DST_BURST_MODE(0) + | DMA4_CSDP_SRC_ENDIANISM(0) + | DMA4_CSDP_DST_ENDIANISM(0) + | DMA4_CSDP_WRITE_MODE(0) + | DMA4_CSDP_SRC_PACKED(0) + | DMA4_CSDP_DST_PACKED(0); + + channel->reg_ccr = DMA4_CCR_DST_ADDRESS_MODE(1) + | DMA4_CCR_SRC_ADDRESS_MODE(1) + | DMA4_CCR_READ_PRIORITY(0) + | DMA4_CCR_WRITE_PRIORITY(0) + | DMA4_CCR_SYNC_TRIGGER(0) + | DMA4_CCR_FRAME_SYNC(0) + | DMA4_CCR_BLOCK_SYNC(0); + + channel->reg_cicr = DMA4_CICR_TRANS_ERR_IE + | DMA4_CICR_SECURE_ERR_IE + | DMA4_CICR_SUPERVISOR_ERR_IE + | DMA4_CICR_MISALIGNED_ADRS_ERR_IE; + + /* Clear all the channel registers, this should abort any transaction */ + for (addr = DMA4_CCR(*ch); addr <= DMA4_COLOR(*ch); addr += 4) + omap_dma_write_4(sc, addr, 0x00000000); + + OMAP_DMA_UNLOCK(sc); + + return 0; +} + +/** + * omap_dma_deactivate_channel - deactivates a channel + * @ch: the channel to deactivate + * + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_deactivate_channel(unsigned int ch) +{ + struct omap_dma_softc *sc = omap_dma_sc; + unsigned int j; + unsigned int addr; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + /* First check if the channel is currently active */ + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EBUSY); + } + + /* Mark the channel as inactive */ + sc->sc_active_channels &= ~(1 << ch); + + /* Disable all DMA interrupts for the channel. */ + omap_dma_write_4(sc, DMA4_CICR(ch), 0); + + /* Make sure the DMA transfer is stopped. */ + omap_dma_write_4(sc, DMA4_CCR(ch), 0); + + /* Clear the CSR register and IRQ status register */ + omap_dma_write_4(sc, DMA4_CSR(ch), DMA4_CSR_CLEAR_MASK); + for (j = 0; j < NUM_DMA_IRQS; j++) { + omap_dma_write_4(sc, DMA4_IRQSTATUS_L(j), (1 << ch)); + } + + /* Clear all the channel registers, this should abort any transaction */ + for (addr = DMA4_CCR(ch); addr <= DMA4_COLOR(ch); addr += 4) + omap_dma_write_4(sc, addr, 0x00000000); + + OMAP_DMA_UNLOCK(sc); + + return 0; +} + +/** + * omap_dma_disable_channel_irq - disables IRQ's on the given channel + * @ch: the channel to disable IRQ's on + * + * Disable interupt generation for the given channel. + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_disable_channel_irq(unsigned int ch) +{ + struct omap_dma_softc *sc = omap_dma_sc; + uint32_t irq_enable; + unsigned int j; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + /* Disable all the individual error conditions */ + sc->sc_channel[ch].reg_cicr = 0x0000; + omap_dma_write_4(sc, DMA4_CICR(ch), 0x0000); + + /* Disable the channel interrupt enable */ + for (j = 0; j < NUM_DMA_IRQS; j++) { + irq_enable = omap_dma_read_4(sc, DMA4_IRQENABLE_L(j)); + irq_enable &= ~(1 << ch); + + omap_dma_write_4(sc, DMA4_IRQENABLE_L(j), irq_enable); + } + + /* Indicate the registers need to be rewritten on the next transaction */ + sc->sc_channel[ch].need_reg_write = 1; + + OMAP_DMA_UNLOCK(sc); + + return (0); +} + +/** + * omap_dma_disable_channel_irq - enables IRQ's on the given channel + * @ch: the channel to enable IRQ's on + * @flags: bitmask of interrupt types to enable + * + * Flags can be a bitmask of the following options: + * DMA_IRQ_FLAG_DROP + * DMA_IRQ_FLAG_HALF_FRAME_COMPL + * DMA_IRQ_FLAG_FRAME_COMPL + * DMA_IRQ_FLAG_START_LAST_FRAME + * DMA_IRQ_FLAG_BLOCK_COMPL + * DMA_IRQ_FLAG_ENDOF_PKT + * DMA_IRQ_FLAG_DRAIN + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_enable_channel_irq(unsigned int ch, uint32_t flags) +{ + struct omap_dma_softc *sc = omap_dma_sc; + uint32_t irq_enable; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + /* Always enable the error interrupts if we have interrupts enabled */ + flags |= DMA4_CICR_TRANS_ERR_IE | DMA4_CICR_SECURE_ERR_IE | + DMA4_CICR_SUPERVISOR_ERR_IE | DMA4_CICR_MISALIGNED_ADRS_ERR_IE; + + sc->sc_channel[ch].reg_cicr = flags; + + /* Write the values to the register */ + omap_dma_write_4(sc, DMA4_CICR(ch), flags); + + /* Enable the channel interrupt enable */ + irq_enable = omap_dma_read_4(sc, DMA4_IRQENABLE_L(0)); + irq_enable |= (1 << ch); + + omap_dma_write_4(sc, DMA4_IRQENABLE_L(0), irq_enable); + + /* Indicate the registers need to be rewritten on the next transaction */ + sc->sc_channel[ch].need_reg_write = 1; + + OMAP_DMA_UNLOCK(sc); + + return (0); +} + +/** + * omap_dma_get_channel_status - returns the status of a given channel + * @ch: the channel number to get the status of + * @status: upon return will contain the status bitmask, see below for possible + * values. + * + * DMA_STATUS_DROP + * DMA_STATUS_HALF + * DMA_STATUS_FRAME + * DMA_STATUS_LAST + * DMA_STATUS_BLOCK + * DMA_STATUS_SYNC + * DMA_STATUS_PKT + * DMA_STATUS_TRANS_ERR + * DMA_STATUS_SECURE_ERR + * DMA_STATUS_SUPERVISOR_ERR + * DMA_STATUS_MISALIGNED_ADRS_ERR + * DMA_STATUS_DRAIN_END + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_get_channel_status(unsigned int ch, uint32_t *status) +{ + struct omap_dma_softc *sc = omap_dma_sc; + uint32_t csr; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + OMAP_DMA_UNLOCK(sc); + + csr = omap_dma_read_4(sc, DMA4_CSR(ch)); + + if (status != NULL) + *status = csr; + + return (0); +} + +/** + * omap_dma_start_xfer - starts a DMA transfer + * @ch: the channel number to set the endianess of + * @src_paddr: the source phsyical address + * @dst_paddr: the destination phsyical address + * @frmcnt: the number of frames per block + * @elmcnt: the number of elements in a frame, an element is either an 8, 16 + * or 32-bit value as defined by omap_dma_set_xfer_burst() + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_start_xfer(unsigned int ch, unsigned int src_paddr, + unsigned long dst_paddr, + unsigned int frmcnt, unsigned int elmcnt) +{ + struct omap_dma_softc *sc = omap_dma_sc; + struct omap_dma_channel *channel; + uint32_t ccr; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + channel = &sc->sc_channel[ch]; + + /* a) Write the CSDP register */ + omap_dma_write_4(sc, DMA4_CSDP(ch), + channel->reg_csdp | DMA4_CSDP_WRITE_MODE(1)); + + /* b) Set the number of element per frame CEN[23:0] */ + omap_dma_write_4(sc, DMA4_CEN(ch), elmcnt); + + /* c) Set the number of frame per block CFN[15:0] */ + omap_dma_write_4(sc, DMA4_CFN(ch), frmcnt); + + /* d) Set the Source/dest start address index CSSA[31:0]/CDSA[31:0] */ + omap_dma_write_4(sc, DMA4_CSSA(ch), src_paddr); + omap_dma_write_4(sc, DMA4_CDSA(ch), dst_paddr); + + /* e) Write the CCR register */ + omap_dma_write_4(sc, DMA4_CCR(ch), channel->reg_ccr); + + /* f) - Set the source element index increment CSEI[15:0] */ + omap_dma_write_4(sc, DMA4_CSE(ch), 0x0001); + + /* - Set the source frame index increment CSFI[15:0] */ + omap_dma_write_4(sc, DMA4_CSF(ch), 0x0001); + + /* - Set the destination element index increment CDEI[15:0]*/ + omap_dma_write_4(sc, DMA4_CDE(ch), 0x0001); + + /* - Set the destination frame index increment CDFI[31:0] */ + omap_dma_write_4(sc, DMA4_CDF(ch), 0x0001); + + /* Clear the status register */ + omap_dma_write_4(sc, DMA4_CSR(ch), 0x1FFE); + + /* Write the start-bit and away we go */ + ccr = omap_dma_read_4(sc, DMA4_CCR(ch)); + ccr |= (1 << 7); + omap_dma_write_4(sc, DMA4_CCR(ch), ccr); + + /* Clear the reg write flag */ + channel->need_reg_write = 0; + + OMAP_DMA_UNLOCK(sc); + + return (0); +} + +/** + * omap_dma_start_xfer_packet - starts a packet DMA transfer + * @ch: the channel number to use for the transfer + * @src_paddr: the source physical address + * @dst_paddr: the destination physical address + * @frmcnt: the number of frames to transfer + * @elmcnt: the number of elements in a frame, an element is either an 8, 16 + * or 32-bit value as defined by omap_dma_set_xfer_burst() + * @pktsize: the number of elements in each transfer packet + * + * The @frmcnt and @elmcnt define the overall number of bytes to transfer, + * typically @frmcnt is 1 and @elmcnt contains the total number of elements. + * @pktsize is the size of each individual packet, there might be multiple + * packets per transfer. i.e. for the following with element size of 32-bits + * + * frmcnt = 1, elmcnt = 512, pktsize = 128 + * + * Total transfer bytes = 1 * 512 = 512 elements or 2048 bytes + * Packets transfered = 128 / 512 = 4 + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_start_xfer_packet(unsigned int ch, unsigned int src_paddr, + unsigned long dst_paddr, unsigned int frmcnt, + unsigned int elmcnt, unsigned int pktsize) +{ + struct omap_dma_softc *sc = omap_dma_sc; + struct omap_dma_channel *channel; + uint32_t ccr; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + channel = &sc->sc_channel[ch]; + + /* a) Write the CSDP register */ + if (channel->need_reg_write) + omap_dma_write_4(sc, DMA4_CSDP(ch), + channel->reg_csdp | DMA4_CSDP_WRITE_MODE(1)); + + /* b) Set the number of elements to transfer CEN[23:0] */ + omap_dma_write_4(sc, DMA4_CEN(ch), elmcnt); + + /* c) Set the number of frames to transfer CFN[15:0] */ + omap_dma_write_4(sc, DMA4_CFN(ch), frmcnt); + + /* d) Set the Source/dest start address index CSSA[31:0]/CDSA[31:0] */ + omap_dma_write_4(sc, DMA4_CSSA(ch), src_paddr); + omap_dma_write_4(sc, DMA4_CDSA(ch), dst_paddr); + + /* e) Write the CCR register */ + omap_dma_write_4(sc, DMA4_CCR(ch), + channel->reg_ccr | DMA4_CCR_PACKET_TRANS); + + /* f) - Set the source element index increment CSEI[15:0] */ + omap_dma_write_4(sc, DMA4_CSE(ch), 0x0001); + + /* - Set the packet size, this is dependent on the sync source */ + if (channel->reg_ccr & DMA4_CCR_SEL_SRC_DST_SYNC(1)) + omap_dma_write_4(sc, DMA4_CSF(ch), pktsize); + else + omap_dma_write_4(sc, DMA4_CDE(ch), pktsize); + + /* - Set the destination frame index increment CDFI[31:0] */ + omap_dma_write_4(sc, DMA4_CDF(ch), 0x0001); + + /* Clear the status register */ + omap_dma_write_4(sc, DMA4_CSR(ch), 0x1FFE); + + /* Write the start-bit and away we go */ + ccr = omap_dma_read_4(sc, DMA4_CCR(ch)); + ccr |= (1 << 7); + omap_dma_write_4(sc, DMA4_CCR(ch), ccr); + + /* Clear the reg write flag */ + channel->need_reg_write = 0; + + OMAP_DMA_UNLOCK(sc); + + return (0); +} + +/** + * omap_dma_stop_xfer - stops any currently active transfers + * @ch: the channel number to set the endianess of + * + * This function call is effectively a NOP if no transaction is in progress. + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_stop_xfer(unsigned int ch) +{ + struct omap_dma_softc *sc = omap_dma_sc; + unsigned int j; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + /* Disable all DMA interrupts for the channel. */ + omap_dma_write_4(sc, DMA4_CICR(ch), 0); + + /* Make sure the DMA transfer is stopped. */ + omap_dma_write_4(sc, DMA4_CCR(ch), 0); + + /* Clear the CSR register and IRQ status register */ + omap_dma_write_4(sc, DMA4_CSR(ch), DMA4_CSR_CLEAR_MASK); + for (j = 0; j < NUM_DMA_IRQS; j++) { + omap_dma_write_4(sc, DMA4_IRQSTATUS_L(j), (1 << ch)); + } + + /* Configuration registers need to be re-written on the next xfer */ + sc->sc_channel[ch].need_reg_write = 1; + + OMAP_DMA_UNLOCK(sc); + + return (0); +} + +/** + * omap_dma_set_xfer_endianess - sets the endianess of subsequent transfers + * @ch: the channel number to set the endianess of + * @src: the source endianess (either DMA_ENDIAN_LITTLE or DMA_ENDIAN_BIG) + * @dst: the destination endianess (either DMA_ENDIAN_LITTLE or DMA_ENDIAN_BIG) + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_set_xfer_endianess(unsigned int ch, unsigned int src, unsigned int dst) +{ + struct omap_dma_softc *sc = omap_dma_sc; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + sc->sc_channel[ch].reg_csdp &= ~DMA4_CSDP_SRC_ENDIANISM(1); + sc->sc_channel[ch].reg_csdp |= DMA4_CSDP_SRC_ENDIANISM(src); + + sc->sc_channel[ch].reg_csdp &= ~DMA4_CSDP_DST_ENDIANISM(1); + sc->sc_channel[ch].reg_csdp |= DMA4_CSDP_DST_ENDIANISM(dst); + + sc->sc_channel[ch].need_reg_write = 1; + + OMAP_DMA_UNLOCK(sc); + + return 0; +} + +/** + * omap_dma_set_xfer_burst - sets the source and destination element size + * @ch: the channel number to set the burst settings of + * @src: the source endianess (either DMA_BURST_NONE, DMA_BURST_16, DMA_BURST_32 + * or DMA_BURST_64) + * @dst: the destination endianess (either DMA_BURST_NONE, DMA_BURST_16, + * DMA_BURST_32 or DMA_BURST_64) + * + * This function sets the size of the elements for all subsequent transfers. + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_set_xfer_burst(unsigned int ch, unsigned int src, unsigned int dst) +{ + struct omap_dma_softc *sc = omap_dma_sc; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + sc->sc_channel[ch].reg_csdp &= ~DMA4_CSDP_SRC_BURST_MODE(0x3); + sc->sc_channel[ch].reg_csdp |= DMA4_CSDP_SRC_BURST_MODE(src); + + sc->sc_channel[ch].reg_csdp &= ~DMA4_CSDP_DST_BURST_MODE(0x3); + sc->sc_channel[ch].reg_csdp |= DMA4_CSDP_DST_BURST_MODE(dst); + + sc->sc_channel[ch].need_reg_write = 1; + + OMAP_DMA_UNLOCK(sc); + + return 0; +} + +/** + * omap_dma_set_xfer_data_type - driver attach function + * @ch: the channel number to set the endianess of + * @type: the xfer data type (either DMA_DATA_8BITS_SCALAR, DMA_DATA_16BITS_SCALAR + * or DMA_DATA_32BITS_SCALAR) + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: + * EH_HANDLED or EH_NOT_HANDLED + */ +int +omap_dma_set_xfer_data_type(unsigned int ch, unsigned int type) +{ + struct omap_dma_softc *sc = omap_dma_sc; + + /* Sanity check */ + if (sc == NULL) + return (ENOMEM); + + OMAP_DMA_LOCK(sc); + + if ((sc->sc_active_channels & (1 << ch)) == 0) { + OMAP_DMA_UNLOCK(sc); + return (EINVAL); + } + + sc->sc_channel[ch].reg_csdp &= ~DMA4_CSDP_DATA_TYPE(0x3); + sc->sc_channel[ch].reg_csdp |= DMA4_CSDP_DATA_TYPE(type); + + sc->sc_channel[ch].need_reg_write = 1; + + OMAP_DMA_UNLOCK(sc); + + return 0; +} + +/** + * omap_dma_set_callback - driver attach function + * @dev: dma device handle + * + * + * + * LOCKING: + * DMA registers protected by internal mutex + * + * RETURNS: *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Feb 20 01:21:55 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3448F106566B; Mon, 20 Feb 2012 01:21:55 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1FCEF8FC08; Mon, 20 Feb 2012 01:21: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 q1K1Lsd5024711; Mon, 20 Feb 2012 01:21:54 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1K1LsLC024709; Mon, 20 Feb 2012 01:21:54 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202200121.q1K1LsLC024709@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Mon, 20 Feb 2012 01:21:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231926 - projects/armv6/sys/boot/fdt/dts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2012 01:21:55 -0000 Author: gonzo Date: Mon Feb 20 01:21:54 2012 New Revision: 231926 URL: http://svn.freebsd.org/changeset/base/231926 Log: Add FDT node for OMAP sDMA controller to pandaboard DTS Modified: projects/armv6/sys/boot/fdt/dts/pandaboard.dts Modified: projects/armv6/sys/boot/fdt/dts/pandaboard.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/pandaboard.dts Mon Feb 20 01:20:57 2012 (r231925) +++ projects/armv6/sys/boot/fdt/dts/pandaboard.dts Mon Feb 20 01:21:54 2012 (r231926) @@ -153,6 +153,13 @@ interrupt-parent = <&GIC>; }; + + sdma@x48070000 { + compatible = "ti,sdma"; + reg =< 0x4A056000 0x1000 >; + interrupts = <44 45 46 47>; + interrupt-parent = <&GIC>; + }; }; chosen { From owner-svn-src-projects@FreeBSD.ORG Mon Feb 20 08:56:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23F4A1065674; Mon, 20 Feb 2012 08:56:11 +0000 (UTC) (envelope-from andrew@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1381C8FC14; Mon, 20 Feb 2012 08:56: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 q1K8uAl1040423; Mon, 20 Feb 2012 08:56:10 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1K8uAhJ040421; Mon, 20 Feb 2012 08:56:10 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201202200856.q1K8uAhJ040421@svn.freebsd.org> From: Andrew Turner Date: Mon, 20 Feb 2012 08:56:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231930 - projects/arm_eabi/libexec/rtld-elf/arm X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 20 Feb 2012 08:56:11 -0000 Author: andrew Date: Mon Feb 20 08:56:10 2012 New Revision: 231930 URL: http://svn.freebsd.org/changeset/base/231930 Log: Correctly align the stack before calling into C code. We restore the stack before jumping to the entry point as _start needs the stack in the same state as we were given it and also fixes the stack to be correctly aligned. Modified: projects/arm_eabi/libexec/rtld-elf/arm/rtld_start.S Modified: projects/arm_eabi/libexec/rtld-elf/arm/rtld_start.S ============================================================================== --- projects/arm_eabi/libexec/rtld-elf/arm/rtld_start.S Mon Feb 20 06:35:52 2012 (r231929) +++ projects/arm_eabi/libexec/rtld-elf/arm/rtld_start.S Mon Feb 20 08:56:10 2012 (r231930) @@ -37,6 +37,8 @@ __FBSDID("$FreeBSD$"); .globl .rtld_start .type .rtld_start,%function .rtld_start: + mov r6, sp /* save the stack pointer */ + bic sp, sp, #7 sub sp, sp, #8 /* make room for obj_main & exit proc */ mov r4, r0 /* save ps_strings */ ldr sl, .L2 @@ -52,13 +54,13 @@ __FBSDID("$FreeBSD$"); bl _rtld_relocate_nonplt_self mov r1, sp add r2, sp, #4 - add r0, sp, #8 + mov r0, r6 /* load the sp the kernel gave us */ bl _rtld /* call the shared loader */ mov r3, r0 /* save entry point */ ldr r2, [sp, #0] /* r2 = cleanup */ ldr r1, [sp, #4] /* r1 = obj_main */ - add sp, sp, #8 /* restore stack */ + mov sp, r6 /* restore stack */ mov r0, r4 /* restore ps_strings */ mov pc, r3 /* jump to the entry point */ .L2: From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 00:26:53 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 097AF106564A; Tue, 21 Feb 2012 00:26:53 +0000 (UTC) (envelope-from dmarion@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E2C038FC0C; Tue, 21 Feb 2012 00:26: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 q1L0QqQ1074104; Tue, 21 Feb 2012 00:26:52 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L0Qq65074100; Tue, 21 Feb 2012 00:26:52 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201202210026.q1L0Qq65074100@svn.freebsd.org> From: Damjan Marion Date: Tue, 21 Feb 2012 00:26:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231947 - in projects/armv6/sys: arm/ti boot/fdt/dts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 00:26:53 -0000 Author: dmarion Date: Tue Feb 21 00:26:52 2012 New Revision: 231947 URL: http://svn.freebsd.org/changeset/base/231947 Log: Introduce new FDT attribute for ti_i2c driver to avoid possible issues with selecting right clock. Approved by: cognet (mentor) Modified: projects/armv6/sys/arm/ti/ti_i2c.c projects/armv6/sys/arm/ti/ti_prcm.h projects/armv6/sys/boot/fdt/dts/pandaboard.dts Modified: projects/armv6/sys/arm/ti/ti_i2c.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_i2c.c Mon Feb 20 21:10:14 2012 (r231946) +++ projects/armv6/sys/arm/ti/ti_i2c.c Tue Feb 21 00:26:52 2012 (r231947) @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); struct ti_i2c_softc { device_t sc_dev; + uint32_t device_id; struct resource* sc_irq_res; struct resource* sc_mem_res; device_t sc_iicbus; @@ -812,7 +813,7 @@ ti_i2c_activate(device_t dev) * * 1. Enable the functional and interface clocks (see Section 18.3.1.1.1). */ - clk = I2C1_CLK + device_get_unit(dev); + clk = I2C0_CLK + sc->device_id; err = ti_prcm_clk_enable(clk); if (err) return (err); @@ -982,7 +983,7 @@ ti_i2c_deactivate(device_t dev) } /* Finally disable the functional and interface clocks */ - clk = I2C1_CLK + device_get_unit(dev); + clk = I2C0_CLK + sc->device_id; ti_prcm_clk_disable(clk); return; @@ -1026,11 +1027,21 @@ static int ti_i2c_attach(device_t dev) { struct ti_i2c_softc *sc = device_get_softc(dev); + phandle_t node; + pcell_t did; int err; int rid; sc->sc_dev = dev; + /* Get the i2c device id from FDT */ + node = ofw_bus_get_node(dev); + if ((OF_getprop(node, "i2c-device-id", &did, sizeof(did))) <= 0) { + device_printf(dev, "missing i2c-device-id attribute in FDT\n"); + return (ENXIO); + } + sc->device_id = fdt32_to_cpu(did); + TI_I2C_LOCK_INIT(sc); /* Get the memory resource for the register mapping */ Modified: projects/armv6/sys/arm/ti/ti_prcm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_prcm.h Mon Feb 20 21:10:14 2012 (r231946) +++ projects/armv6/sys/arm/ti/ti_prcm.h Tue Feb 21 00:26:52 2012 (r231947) @@ -48,7 +48,7 @@ typedef enum { * on these clocks as they are enabled by default. */ SYS_CLK = 1, - + /* The MPU (ARM) core clock */ MPU_CLK = 20, @@ -58,13 +58,14 @@ typedef enum { MMC3_CLK, MMC4_CLK, MMC5_CLK, - + /* I2C modules */ - I2C1_CLK = 200, + I2C0_CLK = 200, + I2C1_CLK, I2C2_CLK, I2C3_CLK, I2C4_CLK, - + /* USB module(s) */ USBTLL_CLK = 300, USBHSHOST_CLK, @@ -75,13 +76,13 @@ typedef enum { USBP2_UTMI_CLK, USBP1_HSIC_CLK, USBP2_HSIC_CLK, - + /* UART modules */ UART1_CLK = 400, UART2_CLK, UART3_CLK, UART4_CLK, - + /* General purpose timer modules */ GPTIMER1_CLK = 500, GPTIMER2_CLK, @@ -95,14 +96,14 @@ typedef enum { GPTIMER10_CLK, GPTIMER11_CLK, GPTIMER12_CLK, - + /* McBSP module(s) */ MCBSP1_CLK = 600, MCBSP2_CLK, MCBSP3_CLK, MCBSP4_CLK, MCBSP5_CLK, - + /* General purpose I/O modules */ GPIO1_CLK = 700, GPIO2_CLK, @@ -110,12 +111,12 @@ typedef enum { GPIO4_CLK, GPIO5_CLK, GPIO6_CLK, - + /* sDMA module */ SDMA_CLK = 800, INVALID_CLK_IDENT - + } clk_ident_t; /* @@ -124,7 +125,7 @@ typedef enum { typedef enum { SYSCLK_CLK, /* System clock */ EXT_CLK, - + F32KHZ_CLK, /* 32KHz clock */ F48MHZ_CLK, /* 48MHz clock */ F64MHZ_CLK, /* 64MHz clock */ @@ -135,7 +136,7 @@ typedef enum { struct ti_clock_dev { /* The profile of the timer */ clk_ident_t id; - + /* A bunch of callbacks associated with the clock device */ int (*clk_activate)(struct ti_clock_dev *clkdev); int (*clk_deactivate)(struct ti_clock_dev *clkdev); @@ -144,7 +145,6 @@ struct ti_clock_dev { int (*clk_accessible)(struct ti_clock_dev *clkdev); int (*clk_get_source_freq)(struct ti_clock_dev *clkdev, unsigned int *freq); - }; int ti_prcm_clk_valid(clk_ident_t clk); Modified: projects/armv6/sys/boot/fdt/dts/pandaboard.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/pandaboard.dts Mon Feb 20 21:10:14 2012 (r231946) +++ projects/armv6/sys/boot/fdt/dts/pandaboard.dts Tue Feb 21 00:26:52 2012 (r231947) @@ -151,7 +151,7 @@ reg =< 0x48070000 0x100 >; interrupts = <88>; interrupt-parent = <&GIC>; - + i2c-device-id = <1>; }; sdma@x48070000 { From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 02:30:20 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F404B106564A; Tue, 21 Feb 2012 02:30:19 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C53908FC08; Tue, 21 Feb 2012 02:30: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 q1L2UJnr078329; Tue, 21 Feb 2012 02:30:19 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L2UJ04078327; Tue, 21 Feb 2012 02:30:19 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210230.q1L2UJ04078327@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 02:30:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231955 - projects/armv6/sys/arm/ti X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 02:30:20 -0000 Author: gonzo Date: Tue Feb 21 02:30:19 2012 New Revision: 231955 URL: http://svn.freebsd.org/changeset/base/231955 Log: Add constants for OMAP4400 and OMAP3530 devices Modified: projects/armv6/sys/arm/ti/ti_cpuid.h Modified: projects/armv6/sys/arm/ti/ti_cpuid.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_cpuid.h Tue Feb 21 01:46:41 2012 (r231954) +++ projects/armv6/sys/arm/ti/ti_cpuid.h Tue Feb 21 02:30:19 2012 (r231955) @@ -36,18 +36,20 @@ #define OMAP_REV_MINOR(x) (((x) >> 4) & 0xf) #define OMAP_REV_MINOR_MINOR(x) (((x) >> 0) & 0xf) -#define OMAP3350_REV_ES1_0 OMAP_MAKEREV(0x3530, 1, 0, 0) -#define OMAP3530_REV_ES2_0 OMAP_MAKEREV(0x3530, 2, 0, 0) -#define OMAP3530_REV_ES2_1 OMAP_MAKEREV(0x3530, 2, 1, 0) -#define OMAP3530_REV_ES3_0 OMAP_MAKEREV(0x3530, 3, 0, 0) -#define OMAP3530_REV_ES3_1 OMAP_MAKEREV(0x3530, 3, 1, 0) -#define OMAP3530_REV_ES3_1_2 OMAP_MAKEREV(0x3530, 3, 1, 2) - -#define OMAP4430_REV_ES1_0 OMAP_MAKEREV(0x4430, 1, 0, 0) -#define OMAP4430_REV_ES2_0 OMAP_MAKEREV(0x4430, 2, 0, 0) -#define OMAP4430_REV_ES2_1 OMAP_MAKEREV(0x4430, 2, 1, 0) -#define OMAP4430_REV_ES2_2 OMAP_MAKEREV(0x4430, 2, 2, 0) -#define OMAP4430_REV_ES2_3 OMAP_MAKEREV(0x4430, 2, 3, 0) +#define OMAP3350_DEV 0x3530 +#define OMAP3350_REV_ES1_0 OMAP_MAKEREV(OMAP3350_DEV, 1, 0, 0) +#define OMAP3530_REV_ES2_0 OMAP_MAKEREV(OMAP3350_DEV, 2, 0, 0) +#define OMAP3530_REV_ES2_1 OMAP_MAKEREV(OMAP3350_DEV, 2, 1, 0) +#define OMAP3530_REV_ES3_0 OMAP_MAKEREV(OMAP3350_DEV, 3, 0, 0) +#define OMAP3530_REV_ES3_1 OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 0) +#define OMAP3530_REV_ES3_1_2 OMAP_MAKEREV(OMAP3350_DEV, 3, 1, 2) + +#define OMAP4430_DEV 0x4430 +#define OMAP4430_REV_ES1_0 OMAP_MAKEREV(OMAP4430_DEV, 1, 0, 0) +#define OMAP4430_REV_ES2_0 OMAP_MAKEREV(OMAP4430_DEV, 2, 0, 0) +#define OMAP4430_REV_ES2_1 OMAP_MAKEREV(OMAP4430_DEV, 2, 1, 0) +#define OMAP4430_REV_ES2_2 OMAP_MAKEREV(OMAP4430_DEV, 2, 2, 0) +#define OMAP4430_REV_ES2_3 OMAP_MAKEREV(OMAP4430_DEV, 2, 3, 0) #define AM335X_DEVREV(x) ((x) >> 28) From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 02:32:47 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F06B106566B; Tue, 21 Feb 2012 02:32:47 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EE528FC16; Tue, 21 Feb 2012 02:32: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 q1L2Wk1r078441; Tue, 21 Feb 2012 02:32:46 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L2Wkxc078437; Tue, 21 Feb 2012 02:32:46 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210232.q1L2Wkxc078437@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 02:32:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231956 - in projects/armv6/sys: arm/ti arm/ti/omap4 dev/mmc X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 02:32:47 -0000 Author: gonzo Date: Tue Feb 21 02:32:46 2012 New Revision: 231956 URL: http://svn.freebsd.org/changeset/base/231956 Log: Add MMC driver by Ben R. Gray slightly cleaned-up and FDT-ized by me Submitted by: Ben Gray Added: projects/armv6/sys/arm/ti/omap_mmc.c projects/armv6/sys/arm/ti/omap_mmc.h Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 projects/armv6/sys/dev/mmc/mmc.c Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Tue Feb 21 02:30:19 2012 (r231955) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Tue Feb 21 02:32:46 2012 (r231956) @@ -23,6 +23,7 @@ arm/ti/omap_gpio.c optional gpio arm/ti/usb/omap_ehci.c optional usb ehci arm/ti/omap_dma.c optional omap_dma arm/ti/ti_i2c.c optional ti_i2c +arm/ti/omap_mmc.c optional mmc arm/ti/omap4/omap4_prcm_clks.c standard arm/ti/omap4/omap4_scm_padconf.c standard Added: projects/armv6/sys/arm/ti/omap_mmc.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/omap_mmc.c Tue Feb 21 02:32:46 2012 (r231956) @@ -0,0 +1,1724 @@ +/*- + * Copyright (c) 2011 + * Ben Gray . + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/** + * Driver for the MMC/SD/SDIO module on the TI OMAP series of SoCs. + * + * This driver is heavily based on the SD/MMC driver for the AT91 (at91_mci.c). + * + * It's important to realise that the MMC state machine is already in the kernel + * and this driver only exposes the specific interfaces of the controller. + * + * This driver is still very much a work in progress, I've verified that basic + * sector reading can be performed. But I've yet to test it with a file system + * or even writing. In addition I've only tested the driver with an SD card, + * I've no idea if MMC cards work. + * + */ +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include "gpio_if.h" + +#include "mmcbr_if.h" +#include "mmcbus_if.h" + +#include +#include +#include +#include + +#ifdef TWL_SUPPORTED +#include +#include +#endif + +#ifdef DEBUG +#define omap_mmc_dbg(sc, fmt, args...) \ + device_printf((sc)->sc_dev, fmt, ## args); +#else +#define omap_mmc_dbg(sc, fmt, args...) +#endif + +/** + * Structure that stores the driver context + */ +struct omap_mmc_softc { + device_t sc_dev; + struct resource* sc_irq_res; + struct resource* sc_mem_res; + + void* sc_irq_h; + + bus_dma_tag_t sc_dmatag; + bus_dmamap_t sc_dmamap; + int sc_dmamapped; + + unsigned int sc_dmach_rd; + unsigned int sc_dmach_wr; + + device_t sc_gpio_dev; + int sc_wp_gpio_pin; /* GPIO pin for MMC write protect */ + +#ifdef TWL_SUPPORTED + device_t sc_vreg_dev; + const char* sc_vreg_name; +#endif + + struct mtx sc_mtx; + + struct mmc_host host; + struct mmc_request* req; + struct mmc_command* curcmd; + + int flags; +#define CMD_STARTED 1 +#define STOP_STARTED 2 + + int bus_busy; /* TODO: Needed ? */ + + void* sc_cmd_data_vaddr; + int sc_cmd_data_len; + + /* The offset applied to each of the register base addresses, OMAP4 + * register sets are offset 0x100 from the OMAP3 series. + */ + unsigned long sc_reg_off; + + /* The physical address of the MMCHS_DATA register, used for the DMA xfers */ + unsigned long sc_data_reg_paddr; + + /* The reference clock frequency */ + unsigned int sc_ref_freq; + + enum mmc_power_mode sc_cur_power_mode; +}; + +/** + * Macros for driver mutex locking + */ +#define OMAP_MMC_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define OMAP_MMC_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define OMAP_MMC_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ + "omap_mmc", MTX_DEF) +#define OMAP_MMC_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define OMAP_MMC_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define OMAP_MMC_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + +static void omap_mmc_start(struct omap_mmc_softc *sc); + +/** + * omap_mmc_read_4 - reads a 32-bit value from a register + * omap_mmc_write_4 - writes a 32-bit value to a register + * @sc: pointer to the driver context + * @off: register offset to read from + * @val: the value to write into the register + * + * LOCKING: + * None + * + * RETURNS: + * The 32-bit value read from the register + */ +static inline uint32_t +omap_mmc_read_4(struct omap_mmc_softc *sc, bus_size_t off) +{ + return bus_read_4(sc->sc_mem_res, (sc->sc_reg_off + off)); +} + +static inline void +omap_mmc_write_4(struct omap_mmc_softc *sc, bus_size_t off, uint32_t val) +{ + bus_write_4(sc->sc_mem_res, (sc->sc_reg_off + off), val); +} + +/** + * omap_mmc_reset_controller - + * @arg: caller supplied arg + * @segs: array of segments (although in our case should only be one) + * @nsegs: number of segments (in our case should be 1) + * @error: + * + * + * + */ +static void +omap_mmc_reset_controller(struct omap_mmc_softc *sc, uint32_t bit) +{ + unsigned long attempts; + uint32_t sysctl; + + omap_mmc_dbg(sc, "reseting controller - bit 0x%08x\n", bit); + + sysctl = omap_mmc_read_4(sc, MMCHS_SYSCTL); + omap_mmc_write_4(sc, MMCHS_SYSCTL, sysctl | bit); + + if ((ti_chip() == CHIP_OMAP_4) && (ti_revision() > OMAP4430_REV_ES1_0)) { + /* OMAP4 ES2 and greater has an updated reset logic. + * Monitor a 0->1 transition first + */ + attempts = 10000; + while (!(omap_mmc_read_4(sc, MMCHS_SYSCTL) & bit) && (attempts-- > 0)) + continue; + } + + attempts = 10000; + while ((omap_mmc_read_4(sc, MMCHS_SYSCTL) & bit) && (attempts-- > 0)) + continue; + + if (omap_mmc_read_4(sc, MMCHS_SYSCTL) & bit) + device_printf(sc->sc_dev, "Error - Timeout waiting on controller reset\n"); +} + +/** + * omap_mmc_getaddr - called by the DMA function to simply return the phys addr + * @arg: caller supplied arg + * @segs: array of segments (although in our case should only be one) + * @nsegs: number of segments (in our case should be 1) + * @error: + * + * This function is called by bus_dmamap_load() after it has compiled an array + * of segments, each segment is a phsyical chunk of memory. However in our case + * we should only have one segment, because we don't (yet?) support DMA scatter + * gather. To ensure we only have one segment, the DMA tag was created by + * bus_dma_tag_create() (called from omap_mmc_attach) with nsegments set to 1. + * + */ +static void +omap_mmc_getaddr(void *arg, bus_dma_segment_t *segs, int nsegs, int error) +{ + if (error != 0) + return; + + *(bus_addr_t *)arg = segs[0].ds_addr; +} + +/** + * omap_mmc_dma_intr - interrupt handler for DMA events triggered by the controller + * @ch: the dma channel number + * @status: bit field of the status bytes + * @data: callback data, in this case a pointer to the controller struct + * + * + * LOCKING: + * Called from interrupt context + * + */ +static void +omap_mmc_dma_intr(unsigned int ch, uint32_t status, void *data) +{ + /* Ignore for now ... we don't need this interrupt as we already have the + * interrupt from the MMC controller. + */ +} + +/** + * omap_mmc_intr_xfer_compl - called if a 'transfer complete' IRQ was received + * @sc: pointer to the driver context + * @cmd: the command that was sent previously + * + * This function is simply responsible for syncing up the DMA buffer. + * + * LOCKING: + * Called from interrupt context + * + * RETURNS: + * Return value indicates if the transaction is complete, not done = 0, done != 0 + */ +static int +omap_mmc_intr_xfer_compl(struct omap_mmc_softc *sc, struct mmc_command *cmd) +{ + uint32_t cmd_reg; + + /* Read command register to test whether this command was a read or write. */ + cmd_reg = omap_mmc_read_4(sc, MMCHS_CMD); + + /* Sync-up the DMA buffer so the caller can access the new memory */ + if (cmd_reg & MMCHS_CMD_DDIR) { + bus_dmamap_sync(sc->sc_dmatag, sc->sc_dmamap, BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(sc->sc_dmatag, sc->sc_dmamap); + } + else { + bus_dmamap_sync(sc->sc_dmatag, sc->sc_dmamap, BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(sc->sc_dmatag, sc->sc_dmamap); + } + sc->sc_dmamapped--; + + /* Debugging dump of the data received */ +#if 0 + { + int i; + uint8_t *p = (uint8_t*) sc->sc_cmd_data_vaddr; + for (i=0; isc_cmd_data_len; i++) { + if ((i % 16) == 0) + printf("\n0x%04x : ", i); + printf("%02X ", *p++); + } + printf("\n"); + } +#endif + + /* We are done, transfer complete */ + return 1; +} + +/** + * omap_mmc_intr_cmd_compl - called if a 'command complete' IRQ was received + * @sc: pointer to the driver context + * @cmd: the command that was sent previously + * + * + * LOCKING: + * Called from interrupt context + * + * RETURNS: + * Return value indicates if the transaction is complete, not done = 0, done != 0 + */ +static int +omap_mmc_intr_cmd_compl(struct omap_mmc_softc *sc, struct mmc_command *cmd) +{ + uint32_t cmd_reg; + + /* Copy the response into the request struct ... if a response was + * expected */ + if (cmd != NULL && (cmd->flags & MMC_RSP_PRESENT)) { + if (cmd->flags & MMC_RSP_136) { + cmd->resp[3] = omap_mmc_read_4(sc, MMCHS_RSP10); + cmd->resp[2] = omap_mmc_read_4(sc, MMCHS_RSP32); + cmd->resp[1] = omap_mmc_read_4(sc, MMCHS_RSP54); + cmd->resp[0] = omap_mmc_read_4(sc, MMCHS_RSP76); + } else { + cmd->resp[0] = omap_mmc_read_4(sc, MMCHS_RSP10); + } + } + + /* Check if the command was expecting some data transfer, if not + * we are done. */ + cmd_reg = omap_mmc_read_4(sc, MMCHS_CMD); + return ((cmd_reg & MMCHS_CMD_DP) == 0); +} + +/** + * omap_mmc_intr_error - handles error interrupts + * @sc: pointer to the driver context + * @cmd: the command that was sent previously + * @stat_reg: the value that was in the status register + * + * + * LOCKING: + * Called from interrupt context + * + * RETURNS: + * Return value indicates if the transaction is complete, not done = 0, done != 0 + */ +static int +omap_mmc_intr_error(struct omap_mmc_softc *sc, struct mmc_command *cmd, + uint32_t stat_reg) +{ + omap_mmc_dbg(sc, "error in xfer - stat 0x%08x\n", stat_reg); + + /* Ignore CRC errors on CMD2 and ACMD47, per relevant standards */ + if ((stat_reg & MMCHS_STAT_CCRC) && (cmd->opcode == MMC_SEND_OP_COND || + cmd->opcode == ACMD_SD_SEND_OP_COND)) + cmd->error = MMC_ERR_NONE; + else if (stat_reg & (MMCHS_STAT_CTO | MMCHS_STAT_DTO)) + cmd->error = MMC_ERR_TIMEOUT; + else if (stat_reg & (MMCHS_STAT_CCRC | MMCHS_STAT_DCRC)) + cmd->error = MMC_ERR_BADCRC; + else + cmd->error = MMC_ERR_FAILED; + + /* If a dma transaction we should also stop the dma transfer */ + if (omap_mmc_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DE) { + + /* Abort the DMA transfer (DDIR bit tells direction) */ + if (omap_mmc_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DDIR) + omap_dma_stop_xfer(sc->sc_dmach_rd); + else + omap_dma_stop_xfer(sc->sc_dmach_wr); + + /* If an error occure abort the DMA operation and free the dma map */ + if ((sc->sc_dmamapped > 0) && (cmd->error != MMC_ERR_NONE)) { + bus_dmamap_unload(sc->sc_dmatag, sc->sc_dmamap); + sc->sc_dmamapped--; + } + } + + /* Command error occured? ... if so issue a soft reset for the cmd fsm */ + if (stat_reg & (MMCHS_STAT_CCRC | MMCHS_STAT_CTO)) { + omap_mmc_reset_controller(sc, MMCHS_SYSCTL_SRC); + } + + /* Data error occured? ... if so issue a soft reset for the data line */ + if (stat_reg & (MMCHS_STAT_DEB | MMCHS_STAT_DCRC | MMCHS_STAT_DTO)) { + omap_mmc_reset_controller(sc, MMCHS_SYSCTL_SRD); + } + + /* On any error the command is cancelled ... so we are done */ + return 1; +} + +/** + * omap_mmc_intr - interrupt handler for MMC/SD/SDIO controller + * @arg: pointer to the driver context + * + * Interrupt handler for the MMC/SD/SDIO controller, responsible for handling + * the IRQ and clearing the status flags. + * + * LOCKING: + * Called from interrupt context + * + * RETURNS: + * nothing + */ +static void +omap_mmc_intr(void *arg) +{ + struct omap_mmc_softc *sc = (struct omap_mmc_softc *) arg; + uint32_t stat_reg; + int done = 0; + + OMAP_MMC_LOCK(sc); + + stat_reg = omap_mmc_read_4(sc, MMCHS_STAT) + & (omap_mmc_read_4(sc, MMCHS_IE) | MMCHS_STAT_ERRI); + + if (sc->curcmd == NULL) { + device_printf(sc->sc_dev, "Error: current cmd NULL, already done?\n"); + omap_mmc_write_4(sc, MMCHS_STAT, stat_reg); + OMAP_MMC_UNLOCK(sc); + return; + } + + if (stat_reg & MMCHS_STAT_ERRI) { + /* An error has been tripped in the status register */ + done = omap_mmc_intr_error(sc, sc->curcmd, stat_reg); + + } else { + + /* NOTE: This implementation could be a bit inefficent, I don't think + * it is necessary to handle both the 'command complete' and 'transfer + * complete' for data transfers ... presumably just transfer complete + * is enough. + */ + + /* No error */ + sc->curcmd->error = MMC_ERR_NONE; + + /* Check if the command completed */ + if (stat_reg & MMCHS_STAT_CC) { + done = omap_mmc_intr_cmd_compl(sc, sc->curcmd); + } + + /* Check if the transfer has completed */ + if (stat_reg & MMCHS_STAT_TC) { + done = omap_mmc_intr_xfer_compl(sc, sc->curcmd); + } + + } + + /* Clear all the interrupt status bits by writing the value back */ + omap_mmc_write_4(sc, MMCHS_STAT, stat_reg); + + /* This may mark the command as done if there is no stop request */ + /* TODO: This is a bit ugly, needs fix-up */ + if (done) { + omap_mmc_start(sc); + } + + OMAP_MMC_UNLOCK(sc); +} + +/** + * omap_mmc_start_cmd - starts the given command + * @sc: pointer to the driver context + * @cmd: the command to start + * + * The call tree for this function is + * - omap_mmc_start_cmd + * - omap_mmc_start + * - omap_mmc_request + * + * LOCKING: + * Caller should be holding the OMAP_MMC lock. + * + * RETURNS: + * nothing + */ +static void +omap_mmc_start_cmd(struct omap_mmc_softc *sc, struct mmc_command *cmd) +{ + uint32_t cmd_reg, con_reg, ise_reg; + struct mmc_data *data; + struct mmc_request *req; + void *vaddr; + bus_addr_t paddr; + uint32_t pktsize; + + sc->curcmd = cmd; + data = cmd->data; + req = cmd->mrq; + + /* Ensure the STR and MIT bits are cleared, these are only used for special + * command types. + */ + con_reg = omap_mmc_read_4(sc, MMCHS_CON); + con_reg &= ~(MMCHS_CON_STR | MMCHS_CON_MIT); + + /* Load the command into bits 29:24 of the CMD register */ + cmd_reg = (uint32_t)(cmd->opcode & 0x3F) << 24; + + /* Set the default set of interrupts */ + ise_reg = (MMCHS_STAT_CERR | MMCHS_STAT_CTO | MMCHS_STAT_CC | MMCHS_STAT_CEB); + + /* Enable CRC checking if requested */ + if (cmd->flags & MMC_RSP_CRC) + ise_reg |= MMCHS_STAT_CCRC; + + /* Enable reply index checking if the response supports it */ + if (cmd->flags & MMC_RSP_OPCODE) + ise_reg |= MMCHS_STAT_CIE; + + /* Set the expected response length */ + if (MMC_RSP(cmd->flags) == MMC_RSP_NONE) { + cmd_reg |= MMCHS_CMD_RSP_TYPE_NO; + } else { + if (cmd->flags & MMC_RSP_136) + cmd_reg |= MMCHS_CMD_RSP_TYPE_136; + else if (cmd->flags & MMC_RSP_BUSY) + cmd_reg |= MMCHS_CMD_RSP_TYPE_48_BSY; + else + cmd_reg |= MMCHS_CMD_RSP_TYPE_48; + + /* Enable command index/crc checks if necessary expected */ + if (cmd->flags & MMC_RSP_CRC) + cmd_reg |= MMCHS_CMD_CCCE; + if (cmd->flags & MMC_RSP_OPCODE) + cmd_reg |= MMCHS_CMD_CICE; + } + + /* Set the bits for the special commands CMD12 (MMC_STOP_TRANSMISSION) and + * CMD52 (SD_IO_RW_DIRECT) */ + if (cmd->opcode == MMC_STOP_TRANSMISSION) + cmd_reg |= MMCHS_CMD_CMD_TYPE_IO_ABORT; + + /* Check if there is any data to write */ + if (data == NULL) { + /* Clear the block count */ + omap_mmc_write_4(sc, MMCHS_BLK, 0); + + /* The no data case is fairly simple */ + omap_mmc_write_4(sc, MMCHS_CON, con_reg); + omap_mmc_write_4(sc, MMCHS_IE, ise_reg); + omap_mmc_write_4(sc, MMCHS_ISE, ise_reg); + omap_mmc_write_4(sc, MMCHS_ARG, cmd->arg); + omap_mmc_write_4(sc, MMCHS_CMD, cmd_reg); + return; + } + + /* Indicate that data is present */ + cmd_reg |= MMCHS_CMD_DP | MMCHS_CMD_MSBS | MMCHS_CMD_BCE; + + /* Indicate a read operation */ + if (data->flags & MMC_DATA_READ) + cmd_reg |= MMCHS_CMD_DDIR; + + /* Streaming mode */ + if (data->flags & MMC_DATA_STREAM) { + con_reg |= MMCHS_CON_STR; + } + + /* Multi-block mode */ + if (data->flags & MMC_DATA_MULTI) { + cmd_reg |= MMCHS_CMD_MSBS; + } + + /* Enable extra interrupt sources for the transfer */ + ise_reg |= (MMCHS_STAT_TC | MMCHS_STAT_DTO | MMCHS_STAT_DEB | MMCHS_STAT_CEB); + if (cmd->flags & MMC_RSP_CRC) + ise_reg |= MMCHS_STAT_DCRC; + + /* Enable the DMA transfer bit */ + cmd_reg |= MMCHS_CMD_DE; + + /* Set the block size and block count */ + omap_mmc_write_4(sc, MMCHS_BLK, (1 << 16) | data->len); + + /* Setup the DMA stuff */ + if (data->flags & (MMC_DATA_READ | MMC_DATA_WRITE)) { + + vaddr = data->data; + data->xfer_len = 0; + + /* Map the buffer buf into bus space using the dmamap map. */ + if (bus_dmamap_load(sc->sc_dmatag, sc->sc_dmamap, vaddr, data->len, + omap_mmc_getaddr, &paddr, 0) != 0) { + + if (req->cmd->flags & STOP_STARTED) + req->stop->error = MMC_ERR_NO_MEMORY; + else + req->cmd->error = MMC_ERR_NO_MEMORY; + sc->req = NULL; + sc->curcmd = NULL; + req->done(req); + return; + } + + /* Calculate the packet size, the max packet size is 512 bytes + * (or 128 32-bit elements). + */ + pktsize = min((data->len / 4), (512 / 4)); + + /* Sync the DMA buffer and setup the DMA controller */ + if (data->flags & MMC_DATA_READ) { + bus_dmamap_sync(sc->sc_dmatag, sc->sc_dmamap, BUS_DMASYNC_PREREAD); + omap_dma_start_xfer_packet(sc->sc_dmach_rd, sc->sc_data_reg_paddr, + paddr, 1, (data->len / 4), pktsize); + } else { + bus_dmamap_sync(sc->sc_dmatag, sc->sc_dmamap, BUS_DMASYNC_PREWRITE); + omap_dma_start_xfer_packet(sc->sc_dmach_wr, paddr, + sc->sc_data_reg_paddr, 1, (data->len / 4), pktsize); + } + + /* Increase the mapped count */ + sc->sc_dmamapped++; + + sc->sc_cmd_data_vaddr = vaddr; + sc->sc_cmd_data_len = data->len; + } + + /* Finally kick off the command */ + omap_mmc_write_4(sc, MMCHS_CON, con_reg); + omap_mmc_write_4(sc, MMCHS_IE, ise_reg); + omap_mmc_write_4(sc, MMCHS_ISE, ise_reg); + omap_mmc_write_4(sc, MMCHS_ARG, cmd->arg); + omap_mmc_write_4(sc, MMCHS_CMD, cmd_reg); + + /* and we're done */ +} + +/** + * omap_mmc_start - starts a request stored in the driver context + * @sc: pointer to the driver context + * + * This function is called by omap_mmc_request() in response to a read/write + * request from the MMC core module. + * + * LOCKING: + * Caller should be holding the OMAP_MMC lock. + * + * RETURNS: + * nothing + */ +static void +omap_mmc_start(struct omap_mmc_softc *sc) +{ + struct mmc_request *req; + + /* Sanity check we have a request */ + req = sc->req; + if (req == NULL) + return; + + /* assert locked */ + if (!(sc->flags & CMD_STARTED)) { + sc->flags |= CMD_STARTED; + omap_mmc_start_cmd(sc, req->cmd); + return; + } + + if (!(sc->flags & STOP_STARTED) && req->stop) { + sc->flags |= STOP_STARTED; + omap_mmc_start_cmd(sc, req->stop); + return; + } + + /* We must be done -- bad idea to do this while locked? */ + sc->req = NULL; + sc->curcmd = NULL; + req->done(req); +} + +/** + * omap_mmc_request - entry point for all read/write/cmd requests + * @brdev: mmc bridge device handle + * @reqdev: the device doing the requesting ? + * @req: the action requested + * + * LOCKING: + * None, internally takes the OMAP_MMC lock. + * + * RETURNS: + * 0 on success + * EBUSY if the driver is already performing a request + */ +static int +omap_mmc_request(device_t brdev, device_t reqdev, struct mmc_request *req) +{ + struct omap_mmc_softc *sc = device_get_softc(brdev); + + OMAP_MMC_LOCK(sc); + + /* + * XXX do we want to be able to queue up multiple commands? + * XXX sounds like a good idea, but all protocols are sync, so + * XXX maybe the idea is naive... + */ + if (sc->req != NULL) { + OMAP_MMC_UNLOCK(sc); + return (EBUSY); + } + + /* Store the request and start the command */ + sc->req = req; + sc->flags = 0; + omap_mmc_start(sc); + + OMAP_MMC_UNLOCK(sc); + + return (0); +} + +/** + * omap_mmc_get_ro - returns the status of the read-only setting + * @brdev: mmc bridge device handle + * @reqdev: device doing the request + * + * This function is relies on hint'ed values to determine which GPIO is used + * to determine if the write protect is enabled. On the BeagleBoard the pin + * is GPIO_23. + * + * LOCKING: + * - + * + * RETURNS: + * 0 if not read-only + * 1 if read only + */ +static int +omap_mmc_get_ro(device_t brdev, device_t reqdev) +{ + struct omap_mmc_softc *sc = device_get_softc(brdev); + unsigned int readonly = 0; + + OMAP_MMC_LOCK(sc); + + if ((sc->sc_wp_gpio_pin != -1) && (sc->sc_gpio_dev != NULL)) { + if (GPIO_PIN_GET(sc->sc_gpio_dev, sc->sc_wp_gpio_pin, &readonly) != 0) + readonly = 0; + else + readonly = (readonly == 0) ? 0 : 1; + } + + OMAP_MMC_UNLOCK(sc); + + return (readonly); +} + +/** + * omap_mmc_send_init_stream - sets bus/controller settings + * @brdev: mmc bridge device handle + * @reqdev: device doing the request + * + * Send init stream sequence to card before sending IDLE command + * + * LOCKING: + * + * + * RETURNS: + * 0 if function succeeded + */ +static void +omap_mmc_send_init_stream(struct omap_mmc_softc *sc) +{ + unsigned long timeout; + uint32_t ie, ise, con; + + omap_mmc_dbg(sc, "Performing init sequence\n"); + + /* Prior to issuing any command, the MMCHS controller has to execute a + * special INIT procedure. The MMCHS controller has to generate a clock + * during 1ms. During the INIT procedure, the MMCHS controller generates 80 + * clock periods. In order to keep the 1ms gap, the MMCHS controller should + * be configured to generate a clock whose frequency is smaller or equal to + * 80 KHz. If the MMCHS controller divider bitfield width doesn't allow to + * choose big values, the MMCHS controller driver should perform the INIT + * procedure twice or three times. Twice is generally enough. + * + * The INIt procedure is executed by setting MMCHS1.MMCHS_CON[1] INIT + * bitfield to 1 and by sending a dummy command, writing 0x00000000 in + * MMCHS1.MMCHS_CMD register. + */ + + /* Disable interrupt status events but enable interrupt generation. + * This doesn't seem right to me, but if the interrupt generation is not + * enabled the CC bit doesn't seem to be set in the STAT register. + */ + + /* Enable interrupt generation */ + ie = omap_mmc_read_4(sc, MMCHS_IE); + omap_mmc_write_4(sc, MMCHS_IE, 0x307F0033); + + /* Disable generation of status events (stops interrupt triggering) */ + ise = omap_mmc_read_4(sc, MMCHS_ISE); + omap_mmc_write_4(sc, MMCHS_ISE, 0); + + /* Set the initialise stream bit */ + con = omap_mmc_read_4(sc, MMCHS_CON); + con |= MMCHS_CON_INIT; + omap_mmc_write_4(sc, MMCHS_CON, con); + + /* Write a dummy command 0x00 */ + omap_mmc_write_4(sc, MMCHS_CMD, 0x00000000); + + /* Loop waiting for the command to finish */ + timeout = hz; + do { + pause("MMCINIT", 1); + if (timeout-- == 0) { + device_printf(sc->sc_dev, "Error: first stream init timed out\n"); + break; + } + } while (!(omap_mmc_read_4(sc, MMCHS_STAT) & MMCHS_STAT_CC)); + + /* Clear the command complete status bit */ + omap_mmc_write_4(sc, MMCHS_STAT, MMCHS_STAT_CC); + + /* Write another dummy command 0x00 */ + omap_mmc_write_4(sc, MMCHS_CMD, 0x00000000); + + /* Loop waiting for the second command to finish */ + timeout = hz; + do { + pause("MMCINIT", 1); + if (timeout-- == 0) { + device_printf(sc->sc_dev, "Error: second stream init timed out\n"); + break; + } + } while (!(omap_mmc_read_4(sc, MMCHS_STAT) & MMCHS_STAT_CC)); + + /* Clear the stream init bit */ + con &= ~MMCHS_CON_INIT; + omap_mmc_write_4(sc, MMCHS_CON, con); + + /* Clear the status register, then restore the IE and ISE registers */ + omap_mmc_write_4(sc, MMCHS_STAT, 0xffffffff); + omap_mmc_read_4(sc, MMCHS_STAT); + + omap_mmc_write_4(sc, MMCHS_ISE, ise); + omap_mmc_write_4(sc, MMCHS_IE, ie); +} + +/** + * omap_mmc_update_ios - sets bus/controller settings + * @brdev: mmc bridge device handle + * @reqdev: device doing the request + * + * Called to set the bus and controller settings that need to be applied to + * the actual HW. Currently this function just sets the bus width and the + * clock speed. + * + * LOCKING: + * + * + * RETURNS: + * 0 if function succeeded + */ +static int +omap_mmc_update_ios(device_t brdev, device_t reqdev) +{ + struct omap_mmc_softc *sc; + struct mmc_host *host; + struct mmc_ios *ios; + uint32_t clkdiv; + uint32_t hctl_reg; + uint32_t con_reg; + uint32_t sysctl_reg; + uint16_t mv; + unsigned long timeout; + int do_card_init = 0; + + sc = device_get_softc(brdev); + host = &sc->host; + ios = &host->ios; + + /* Read the initial values of the registers */ + hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL); + con_reg = omap_mmc_read_4(sc, MMCHS_CON); + + /* Set the bus width */ + switch (ios->bus_width) { + case bus_width_1: + hctl_reg &= ~MMCHS_HCTL_DTW; + con_reg &= ~MMCHS_CON_DW8; + break; + case bus_width_4: + hctl_reg |= MMCHS_HCTL_DTW; + con_reg &= ~MMCHS_CON_DW8; + break; + case bus_width_8: + con_reg |= MMCHS_CON_DW8; + break; + } + + /* Finally write all these settings back to the registers */ + omap_mmc_write_4(sc, MMCHS_HCTL, hctl_reg); + omap_mmc_write_4(sc, MMCHS_CON, con_reg); + + /* Check if we need to change the external voltage regulator */ + if (sc->sc_cur_power_mode != ios->power_mode) { + + if (ios->power_mode == power_up) { + + /* Set the power level */ + hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL); + hctl_reg &= ~(MMCHS_HCTL_SDVS_MASK | MMCHS_HCTL_SDBP); + + if ((ios->vdd == -1) || (ios->vdd >= vdd_240)) { + mv = 3000; + hctl_reg |= MMCHS_HCTL_SDVS_V30; + } else { + mv = 1800; + hctl_reg |= MMCHS_HCTL_SDVS_V18; + } + + omap_mmc_write_4(sc, MMCHS_HCTL, hctl_reg); + +#ifdef TWL_SUPPORTED + /* Set the desired voltage on the regulator */ + if (sc->sc_vreg_dev && sc->sc_vreg_name) + twl_vreg_set_voltage(sc->sc_vreg_dev, sc->sc_vreg_name, mv); +#endif + + /* Enable the bus power */ + omap_mmc_write_4(sc, MMCHS_HCTL, (hctl_reg | MMCHS_HCTL_SDBP)); + timeout = hz; + while (!(omap_mmc_read_4(sc, MMCHS_HCTL) & MMCHS_HCTL_SDBP)) { + if (timeout-- == 0) + break; + pause("MMC_PWRON", 1); + } + + } else if (ios->power_mode == power_off) { + /* Disable the bus power */ + hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL); + omap_mmc_write_4(sc, MMCHS_HCTL, (hctl_reg & ~MMCHS_HCTL_SDBP)); + +#ifdef TWL_SUPPORTED + /* Turn the power off on the voltage regulator */ + if (sc->sc_vreg_dev && sc->sc_vreg_name) + twl_vreg_set_voltage(sc->sc_vreg_dev, sc->sc_vreg_name, 0); +#endif + + } else if (ios->power_mode == power_on) { + /* Force a card re-initialisation sequence */ + do_card_init = 1; + } + + /* Save the new power state */ + sc->sc_cur_power_mode = ios->power_mode; + } + + /* need the MMCHS_SYSCTL register */ + sysctl_reg = omap_mmc_read_4(sc, MMCHS_SYSCTL); + + /* Just in case this hasn't been setup before, set the timeout to the default */ + sysctl_reg &= ~MMCHS_SYSCTL_DTO_MASK; + sysctl_reg |= MMCHS_SYSCTL_DTO(0xe); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 02:38:35 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 857951065670; Tue, 21 Feb 2012 02:38:35 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 70C5F8FC1E; Tue, 21 Feb 2012 02:38: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 q1L2cZsX078670; Tue, 21 Feb 2012 02:38:35 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L2cZIg078668; Tue, 21 Feb 2012 02:38:35 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210238.q1L2cZIg078668@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 02:38:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231957 - projects/armv6/sys/boot/fdt/dts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 02:38:35 -0000 Author: gonzo Date: Tue Feb 21 02:38:34 2012 New Revision: 231957 URL: http://svn.freebsd.org/changeset/base/231957 Log: Add MMC entry to FDT Modified: projects/armv6/sys/boot/fdt/dts/pandaboard.dts Modified: projects/armv6/sys/boot/fdt/dts/pandaboard.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/pandaboard.dts Tue Feb 21 02:32:46 2012 (r231956) +++ projects/armv6/sys/boot/fdt/dts/pandaboard.dts Tue Feb 21 02:38:34 2012 (r231957) @@ -160,6 +160,14 @@ interrupts = <44 45 46 47>; interrupt-parent = <&GIC>; }; + + mmc@x4809C000 { + compatible = "ti,omap_mmc"; + reg =<0x4809C000 0x1000 >; + interrupts = <115>; + interrupt-parent = <&GIC>; + }; + }; chosen { From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 03:58:26 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75B97106566B; Tue, 21 Feb 2012 03:58:26 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 60A7C8FC08; Tue, 21 Feb 2012 03:58: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 q1L3wQRQ081475; Tue, 21 Feb 2012 03:58:26 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L3wQ7j081473; Tue, 21 Feb 2012 03:58:26 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210358.q1L3wQ7j081473@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 03:58:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231958 - projects/armv6/sys/arm/ti X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 03:58:26 -0000 Author: gonzo Date: Tue Feb 21 03:58:25 2012 New Revision: 231958 URL: http://svn.freebsd.org/changeset/base/231958 Log: Fix drivername to match it in DRIVER_MODULE macroses, otherwise newbus magic does not work Modified: projects/armv6/sys/arm/ti/ti_i2c.c Modified: projects/armv6/sys/arm/ti/ti_i2c.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_i2c.c Tue Feb 21 02:38:34 2012 (r231957) +++ projects/armv6/sys/arm/ti/ti_i2c.c Tue Feb 21 03:58:25 2012 (r231958) @@ -1138,7 +1138,7 @@ static device_method_t ti_i2c_methods[] }; static driver_t ti_i2c_driver = { - "ti-iic", + "ti_iic", ti_i2c_methods, sizeof(struct ti_i2c_softc), }; From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 04:02:27 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3B839106566B; Tue, 21 Feb 2012 04:02: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 1CB578FC17; Tue, 21 Feb 2012 04:02: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 q1L42QUl081654; Tue, 21 Feb 2012 04:02:26 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L42QQf081650; Tue, 21 Feb 2012 04:02:26 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201202210402.q1L42QQf081650@svn.freebsd.org> From: Rick Macklem Date: Tue, 21 Feb 2012 04:02:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231959 - projects/nfsv4.1-client/sys/fs/nfsclient X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 04:02:27 -0000 Author: rmacklem Date: Tue Feb 21 04:02:26 2012 New Revision: 231959 URL: http://svn.freebsd.org/changeset/base/231959 Log: Fix assorted pNFS bugs. Mostly incorrect arguments to functions and a failure to initialize/destroy a mutex. There was also a case where a pointer needed to be checked non-NULL before using it. The code can now read a file from the DS if the wrong session (the MDS one) is specified. Why the server returns the same session for a second CREAI think tE_SESSION op needs to be resolved. This can be worked around by checking for "same server" and using the connection/session already established if it is the same server. Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvnops.c Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Tue Feb 21 03:58:25 2012 (r231958) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Tue Feb 21 04:02:26 2012 (r231959) @@ -4634,7 +4634,7 @@ printf("layg iom=%d\n", iomode); flp->nfsfl_fh[j] = nfhp; flp->nfsfl_fhcnt++; nfhp->nfh_len = nfhlen; - NFSM_DISSECT(cp, uint8_t *, NFSM_RNDUP(fhlen)); + NFSM_DISSECT(cp, uint8_t *, NFSM_RNDUP(nfhlen)); NFSBCOPY(cp, nfhp->nfh_fh, nfhlen); } if (flp->nfsfl_iomode == iomode) { @@ -4692,7 +4692,7 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm tl += (NFSX_V4DEVICEID / NFSX_UNSIGNED); *tl++ = txdr_unsigned(layouttype); *tl++ = txdr_unsigned(100000); - if (*notifybitsp != 0) { + if (notifybitsp != NULL && *notifybitsp != 0) { *tl = txdr_unsigned(1); /* One word of bits. */ NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED); *tl = txdr_unsigned(*notifybitsp); @@ -4804,7 +4804,9 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm bitcnt = fxdr_unsigned(int, *tl); if (bitcnt > 0) { NFSM_DISSECT(tl, uint32_t *, NFSX_UNSIGNED); - *notifybitsp = fxdr_unsigned(uint32_t, *tl); + if (notifybitsp != NULL) + *notifybitsp = + fxdr_unsigned(uint32_t, *tl); } *ndip = ndi; } else @@ -4979,7 +4981,7 @@ nfsrpc_getlayout(struct nfsmount *nmp, s if (lyp == NULL) { LIST_INIT(&flh); error = nfsrpc_layoutget(nmp, nfhp->nfh_fh, nfhp->nfh_len, - iomode, (uint64_t)0, INT64_MAX, (uint64_t)(4 * NFS_MAXDATA), + iomode, (uint64_t)0, INT64_MAX, (uint64_t)0, stateidp, &retonclose, &flh, cred, p, NULL); if (error == 0) LIST_FOREACH(flp, &flh, nfsfl_list) { @@ -5043,6 +5045,7 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru mtx_init(&dsp->nfsclds_sock.nr_mtx, "nfssock", NULL, MTX_DEF); dsp->nfsclds_sock.nr_prog = NFS_PROG; dsp->nfsclds_sock.nr_vers = NFS_VER4; + mtx_init(&dsp->nfsclds_sess.nfsess_mtx, "nfssession", NULL, MTX_DEF); /* * Use the credentials that were used for the mount, which are @@ -5067,6 +5070,7 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru NFSFREECRED(dsp->nfsclds_sock.nr_cred); NFSFREEMUTEX(&dsp->nfsclds_mtx); NFSFREEMUTEX(&dsp->nfsclds_sock.nr_mtx); + NFSFREEMUTEX(&dsp->nfsclds_sess.nfsess_mtx); free(dsp->nfsclds_sock.nr_nam, M_SONAME); NFSBZERO(dsp, sizeof(*dsp)); } @@ -5173,7 +5177,7 @@ nfscl_doiods(vnode_t vp, struct uio *uio dip = nfscl_getdevinfo(nmp->nm_clp, rflp->nfsfl_dev); if (dip != NULL) { error = nfscl_doflayoutio(vp, uiop, iomode, - &eof, must_commit, &stateid, rwaccess, dip, + must_commit, &eof, &stateid, rwaccess, dip, rflp, off, xfer, newcred, p); nfscl_reldevinfo(dip); } else @@ -5318,7 +5322,7 @@ nfsrpc_readds(vnode_t vp, struct uio *ui nd->nd_mrep = NULL; nfscl_reqstart(nd, NFSPROC_READ, nmp, fhp->nfh_fh, fhp->nfh_len, - NULL, NULL); + NULL, &dsp->nfsclds_sess); nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSEQIDZERO); NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED * 3); txdr_hyper(io_off, tl); @@ -5359,7 +5363,7 @@ nfsrpc_writeds(vnode_t vp, struct uio *u KASSERT(uiop->uio_iovcnt == 1, ("nfs: writerpc iovcnt > 1")); nd->nd_mrep = NULL; nfscl_reqstart(nd, NFSPROC_WRITEDS, nmp, fhp->nfh_fh, fhp->nfh_len, - NULL, NULL); + NULL, &dsp->nfsclds_sess); nfsm_stateidtom(nd, stateidp, NFSSTATEID_PUTSEQIDZERO); NFSM_BUILD(tl, uint32_t *, NFSX_HYPER + 2 * NFSX_UNSIGNED); txdr_hyper(io_off, tl); Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Tue Feb 21 03:58:25 2012 (r231958) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Tue Feb 21 04:02:26 2012 (r231959) @@ -4669,6 +4669,7 @@ nfscl_freedevinfo(struct nfscldevinfo *d NFSFREECRED(dsp->nfsclds_sock.nr_cred); NFSFREEMUTEX(&dsp->nfsclds_mtx); NFSFREEMUTEX(&dsp->nfsclds_sock.nr_mtx); + NFSFREEMUTEX(&dsp->nfsclds_sess.nfsess_mtx); free(dsp->nfsclds_sock.nr_nam, M_SONAME); } } Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvnops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvnops.c Tue Feb 21 03:58:25 2012 (r231958) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvnops.c Tue Feb 21 04:02:26 2012 (r231959) @@ -1341,9 +1341,18 @@ ncl_readrpc(struct vnode *vp, struct uio { int error, ret, attrflag; struct nfsvattr nfsva; + struct nfsmount *nmp; - error = nfsrpc_read(vp, uiop, cred, uiop->uio_td, &nfsva, &attrflag, - NULL); + nmp = VFSTONFS(vnode_mount(vp)); + error = EIO; + attrflag = 0; + if (NFSHASPNFS(nmp)) + error = nfscl_doiods(vp, uiop, NULL, NULL, + NFSV4OPEN_ACCESSREAD, cred, uiop->uio_td); +printf("aft doiods=%d\n", error); + if (error != 0) + error = nfsrpc_read(vp, uiop, cred, uiop->uio_td, &nfsva, + &attrflag, NULL); if (attrflag) { ret = nfscl_loadattrcache(&vp, &nfsva, NULL, NULL, 0, 1); if (ret && !error) From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 04:08:31 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5C5B106564A; Tue, 21 Feb 2012 04:08:31 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B15778FC08; Tue, 21 Feb 2012 04:08: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 q1L48VNf081917; Tue, 21 Feb 2012 04:08:31 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L48VSs081915; Tue, 21 Feb 2012 04:08:31 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210408.q1L48VSs081915@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 04:08:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231960 - projects/armv6/sys/arm/ti X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 04:08:31 -0000 Author: gonzo Date: Tue Feb 21 04:08:31 2012 New Revision: 231960 URL: http://svn.freebsd.org/changeset/base/231960 Log: Remove debug output Modified: projects/armv6/sys/arm/ti/ti_machdep.c Modified: projects/armv6/sys/arm/ti/ti_machdep.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_machdep.c Tue Feb 21 04:02:26 2012 (r231959) +++ projects/armv6/sys/arm/ti/ti_machdep.c Tue Feb 21 04:08:31 2012 (r231960) @@ -576,7 +576,7 @@ initarm(void *mdp, void *unused __unused /* Do basic tuning, hz etc */ init_param2(physmem); kdb_init(); - printf("%s:%d\n", __FILE__, __LINE__); + return ((void *)(kernelstack.pv_va + USPACE_SVC_STACK_TOP - sizeof(struct pcb))); } From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 06:10:36 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 778BD106566C; Tue, 21 Feb 2012 06:10:36 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 61AF48FC12; Tue, 21 Feb 2012 06:10: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 q1L6AaMp085753; Tue, 21 Feb 2012 06:10:36 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L6Aa5C085746; Tue, 21 Feb 2012 06:10:36 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210610.q1L6Aa5C085746@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 06:10:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231962 - in projects/armv6/sys/arm: conf ti/omap4 ti/twl X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 06:10:36 -0000 Author: gonzo Date: Tue Feb 21 06:10:35 2012 New Revision: 231962 URL: http://svn.freebsd.org/changeset/base/231962 Log: Add TWL companion devices support by Ben R. Gray slightly modified by me: - style(9) cleanup - make clear distinction between bus driver and actual companion device - FDT-ize and get rid of references to hints - Hardcode TWL6030 support. Actual run-time chip detection: TBD - Make sysctls R/O. Unless there's something really pressing - do not let userland tinker with voltages. Submitted by: Ben R. Gray Added: projects/armv6/sys/arm/ti/twl/ projects/armv6/sys/arm/ti/twl/twl.c projects/armv6/sys/arm/ti/twl/twl.h projects/armv6/sys/arm/ti/twl/twl_vreg.c projects/armv6/sys/arm/ti/twl/twl_vreg.h Modified: projects/armv6/sys/arm/conf/PANDABOARD projects/armv6/sys/arm/ti/omap4/files.omap4 Modified: projects/armv6/sys/arm/conf/PANDABOARD ============================================================================== --- projects/armv6/sys/arm/conf/PANDABOARD Tue Feb 21 04:12:28 2012 (r231961) +++ projects/armv6/sys/arm/conf/PANDABOARD Tue Feb 21 06:10:35 2012 (r231962) @@ -130,6 +130,8 @@ device smsc # SMSC LAN95xx USB Etherne # OMAP-specific devices device omap_dma +device twl +device twl_vreg # Flattened Device Tree options FDT Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Tue Feb 21 04:12:28 2012 (r231961) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Tue Feb 21 06:10:35 2012 (r231962) @@ -28,4 +28,7 @@ arm/ti/omap_mmc.c optional mmc arm/ti/omap4/omap4_prcm_clks.c standard arm/ti/omap4/omap4_scm_padconf.c standard +arm/ti/twl/twl.c optional twl +arm/ti/twl/twl_vreg.c optional twl twl_vreg + dev/uart/uart_dev_ns8250.c optional uart Added: projects/armv6/sys/arm/ti/twl/twl.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/twl/twl.c Tue Feb 21 06:10:35 2012 (r231962) @@ -0,0 +1,380 @@ +/*- + * Copyright (c) 2011 + * Ben Gray . + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * Texas Instruments TWL4030/TWL5030/TWL60x0/TPS659x0 Power Management and + * Audio CODEC devices. + * + * This driver acts as a bus for mor specific companion devices + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include "iicbus_if.h" + +#include "arm/ti/twl/twl.h" + +/* TWL device IDs */ +#define TWL_DEVICE_UNKNOWN 0xffff +#define TWL_DEVICE_4030 0x4030 +#define TWL_DEVICE_6025 0x6025 +#define TWL_DEVICE_6030 0x6030 + +/* Each TWL device typically has more than one I2C address */ +#define TWL_MAX_SUBADDRS 4 + +/* The maxium number of bytes that can be written in one call */ +#define TWL_MAX_IIC_DATA_SIZE 63 + +/* The TWL devices typically use 4 I2C address for the different internal + * register sets, plus one SmartReflex I2C address. + */ +#define TWL_CHIP_ID0 0x48 +#define TWL_CHIP_ID1 0x49 +#define TWL_CHIP_ID2 0x4A +#define TWL_CHIP_ID3 0x4B + +#define TWL_SMARTREFLEX_CHIP_ID 0x12 + +#define TWL_INVALID_CHIP_ID 0xff + +/** + * Structure that stores the driver context. + * + * This structure is allocated during driver attach. + */ +struct twl_softc { + device_t sc_dev; + struct mtx sc_mtx; + + uint8_t sc_subaddr_map[TWL_MAX_SUBADDRS]; + + struct intr_config_hook sc_scan_hook; + + device_t sc_vreg; +}; + +/** + * Macros for driver mutex locking + */ +#define TWL_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define TWL_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define TWL_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ + "twl", MTX_DEF) +#define TWL_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define TWL_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define TWL_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + +/** + * twl_read - read one or more registers from the TWL device + * @sc: device soft context + * @nsub: the sub-module to read from + * @reg: the register offset within the module to read + * @buf: buffer to store the bytes in + * @cnt: the number of bytes to read + * + * Reads one or registers and stores the result in the suppled buffer. + * + * LOCKING: + * Expects the TWL lock to be held. + * + * RETURNS: + * Zero on success or a negative error code on failure. + */ +int +twl_read(device_t dev, uint8_t nsub, uint8_t reg, uint8_t *buf, uint16_t cnt) +{ + struct twl_softc *sc; + struct iic_msg msg[2]; + uint8_t addr; + int rc; + + sc = device_get_softc(dev); + + TWL_LOCK(sc); + + addr = sc->sc_subaddr_map[nsub]; + if (addr == TWL_INVALID_CHIP_ID) { + TWL_UNLOCK(sc); + return (EIO); + } + + /* Set the address to read from */ + msg[0].slave = addr; + msg[0].flags = IIC_M_WR | IIC_M_NOSTOP; + msg[0].len = 1; + msg[0].buf = ® + /* Read the data back */ + msg[1].slave = addr; + msg[1].flags = IIC_M_RD; + msg[1].len = cnt; + msg[1].buf = buf; + + rc = iicbus_transfer(sc->sc_dev, msg, 2); + + TWL_UNLOCK(sc); + + if (rc != 0) { + device_printf(sc->sc_dev, "iicbus read failed (adr:0x%02x, reg:0x%02x)\n", + addr, reg); + return (EIO); + } + + return (0); +} + +/** + * twl_write - writes one or more registers to the TWL device + * @sc: device soft context + * @nsub: the sub-module to read from + * @reg: the register offset within the module to read + * @buf: data to write + * @cnt: the number of bytes to write + * + * Writes one or more registers. + * + * LOCKING: + * Expects the TWL lock to be held. + * + * RETURNS: + * Zero on success or a negative error code on failure. + */ +int +twl_write(device_t dev, uint8_t nsub, uint8_t reg, uint8_t *buf, uint16_t cnt) +{ + struct twl_softc *sc; + struct iic_msg msg; + uint8_t addr; + uint8_t tmp_buf[TWL_MAX_IIC_DATA_SIZE + 1]; + int rc; + + if (cnt > TWL_MAX_IIC_DATA_SIZE) + return (ENOMEM); + + /* Set the register address as the first byte */ + tmp_buf[0] = reg; + memcpy(&tmp_buf[1], buf, cnt); + + sc = device_get_softc(dev); + + TWL_LOCK(sc); + + addr = sc->sc_subaddr_map[nsub]; + if (addr == TWL_INVALID_CHIP_ID) { + TWL_UNLOCK(sc); + return (EIO); + } + + /* Setup the transfer and execute it */ + msg.slave = addr; + msg.flags = IIC_M_WR; + msg.len = cnt + 1; + msg.buf = tmp_buf; + + rc = iicbus_transfer(sc->sc_dev, &msg, 1); + + TWL_UNLOCK(sc); + + if (rc != 0) { + device_printf(sc->sc_dev, "iicbus write failed (adr:0x%02x, reg:0x%02x)\n", + addr, reg); + return (EIO); + } + + return (0); +} + +/** + * twl_test_present - checks if a device with given address is present + * @sc: device soft context + * @addr: the address of the device to scan for + * + * Sends just the address byte and checks for an ACK. If no ACK then device + * is assumed to not be present, otherwise device is present. + * + * LOCKING: + * It's expected the TWL lock is held while this function is called. + * + * RETURNS: + * EIO if device is not present, otherwise 0 is returned. + */ +static int +twl_test_present(struct twl_softc *sc, uint8_t addr) +{ + struct iic_msg msg; + uint8_t tmp; + + TWL_ASSERT_LOCKED(sc); + + /* Set the address to read from */ + msg.slave = addr; + msg.flags = IIC_M_RD; + msg.len = 1; + msg.buf = &tmp; + + if (iicbus_transfer(sc->sc_dev, &msg, 1) != 0) + return (EIO); + + return (0); +} + +/** + * twl_scan - disables IRQ's on the given channel + * @ch: the channel to disable IRQ's on + * + * Disable interupt generation for the given channel. + * + * RETURNS: + * BUS_PROBE_NOWILDCARD + */ +static void +twl_scan(void *dev) +{ + struct twl_softc *sc; + unsigned i; + uint8_t base = TWL_CHIP_ID0; + + sc = device_get_softc((device_t)dev); + + TWL_LOCK(sc); + + memset(sc->sc_subaddr_map, TWL_INVALID_CHIP_ID, TWL_MAX_SUBADDRS); + + /* Try each of the addresses (0x48, 0x49, 0x4a & 0x4b) to determine which + * sub modules we have. + */ + for (i = 0; i < TWL_MAX_SUBADDRS; i++) { + if (twl_test_present(sc, (base + i)) == 0) { + sc->sc_subaddr_map[i] = (base + i); + device_printf(sc->sc_dev, "Found (sub)device at 0x%02x\n", (base + i)); + } + } + + TWL_UNLOCK(sc); + + /* Finished with the interrupt hook */ + config_intrhook_disestablish(&sc->sc_scan_hook); +} + +static void +twl_identify(driver_t *driver, device_t parent) +{ + + BUS_ADD_CHILD(parent, 0, "twl", 0); +} + +static int +twl_probe(device_t dev) +{ + device_set_desc(dev, "TI TWL4030/TWL5030/TWL60x0/TPS659x0 Companion IC"); + + return (BUS_PROBE_NOWILDCARD); +} + +static int +twl_attach(device_t dev) +{ + struct twl_softc *sc; + + sc = device_get_softc(dev); + sc->sc_dev = dev; + + TWL_LOCK_INIT(sc); + + /* We have to wait until interrupts are enabled. I2C read and write + * only works if the interrupts are available. + */ + sc->sc_scan_hook.ich_func = twl_scan; + sc->sc_scan_hook.ich_arg = dev; + + if (config_intrhook_establish(&sc->sc_scan_hook) != 0) + return (ENOMEM); + + /* FIXME: should be in DTS file */ + if ((sc->sc_vreg = device_add_child(dev, "twl_vreg", -1)) == NULL) + device_printf(dev, "could not allocate twl_vreg instance\n"); + + return (bus_generic_attach(dev)); +} + +static int +twl_detach(device_t dev) +{ + struct twl_softc *sc; + int rv; + + sc = device_get_softc(dev); + + if (sc->sc_vreg && (rv = device_delete_child(dev, sc->sc_vreg)) != 0) + return (rv); + + TWL_LOCK_DESTROY(sc); + + return (0); +} + +static device_method_t twl_methods[] = { + DEVMETHOD(device_identify, twl_identify), + DEVMETHOD(device_probe, twl_probe), + DEVMETHOD(device_attach, twl_attach), + DEVMETHOD(device_detach, twl_detach), + + {0, 0}, +}; + +static driver_t twl_driver = { + "twl", + twl_methods, + sizeof(struct twl_softc), +}; +static devclass_t twl_devclass; + +DRIVER_MODULE(twl, iicbus, twl_driver, twl_devclass, 0, 0); +MODULE_VERSION(twl, 1); Added: projects/armv6/sys/arm/ti/twl/twl.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/twl/twl.h Tue Feb 21 06:10:35 2012 (r231962) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 2011 + * Ben Gray . + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#ifndef _TWL_H_ +#define _TWL_H_ + +int twl_read(device_t dev, uint8_t nsub, uint8_t reg, uint8_t *buf, uint16_t cnt); +int twl_write(device_t dev, uint8_t nsub, uint8_t reg, uint8_t *buf, uint16_t cnt); + +#endif /* _TWL_H_ */ Added: projects/armv6/sys/arm/ti/twl/twl_vreg.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/twl/twl_vreg.c Tue Feb 21 06:10:35 2012 (r231962) @@ -0,0 +1,1057 @@ +/*- + * Copyright (c) 2011 + * Ben Gray . + * 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 AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +/* + * Texas Instruments TWL4030/TWL5030/TWL60x0/TPS659x0 Power Management and + * Audio CODEC devices. + * + * This code is based on the Linux TWL multifunctional device driver, which is + * copyright (C) 2005-2006 Texas Instruments, Inc. + * + * These chips are typically used as support ICs for the OMAP range of embedded + * ARM processes/SOC from Texas Instruments. They are typically used to control + * on board voltages, however some variants have other features like audio + * codecs, USB OTG transceivers, RTC, PWM, etc. + * + * Currently this driver focuses on the voltage regulator side of things, + * however in future it might be wise to split up this driver so that there is + * one base driver used for communication and other child drivers that + * manipulate the various modules on the chip. + * + * Voltage Regulators + * ------------------ + * - Voltage regulators can belong to different power groups, in this driver we + * put the regulators under our control in the "Application power group". + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#include "twl.h" +#include "twl_vreg.h" + +/* The register sets are divided up into groups with the following base address + * and I2C addresses. + */ + +/* + * Power Groups bits for the 4030 and 6030 devices + */ +#define TWL4030_P3_GRP 0x80 /* Peripherals, power group */ +#define TWL4030_P2_GRP 0x40 /* Modem power group */ +#define TWL4030_P1_GRP 0x20 /* Application power group (FreeBSD control) */ + +#define TWL6030_P3_GRP 0x04 /* Modem power group */ +#define TWL6030_P2_GRP 0x02 /* Connectivity power group */ +#define TWL6030_P1_GRP 0x01 /* Application power group (FreeBSD control) */ + +/* + * Register offsets within a LDO regulator register set + */ +#define TWL_VREG_GRP 0x00 /* Regulator GRP register */ +#define TWL_VREG_STATE 0x02 +#define TWL_VREG_VSEL 0x03 /* Voltage select register */ + +#define UNDF 0xFFFF + +static const uint16_t twl6030_voltages[] = { + 0000, 1000, 1100, 1200, 1300, 1400, 1500, 1600, + 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, + 2500, 2600, 2700, 2800, 2900, 3000, 3100, 3200, + 3300, UNDF, UNDF, UNDF, UNDF, UNDF, UNDF, 2750 +}; + +static const uint16_t twl4030_vaux1_voltages[] = { + 1500, 1800, 2500, 2800, 3000, 3000, 3000, 3000 +}; +static const uint16_t twl4030_vaux2_voltages[] = { + 1700, 1700, 1900, 1300, 1500, 1800, 2000, 2500, + 2100, 2800, 2200, 2300, 2400, 2400, 2400, 2400 +}; +static const uint16_t twl4030_vaux3_voltages[] = { + 1500, 1800, 2500, 2800, 3000, 3000, 3000, 3000 +}; +static const uint16_t twl4030_vaux4_voltages[] = { + 700, 1000, 1200, 1300, 1500, 1800, 1850, 2500, + 2600, 2800, 2850, 3000, 3150, 3150, 3150, 3150 +}; +static const uint16_t twl4030_vmmc1_voltages[] = { + 1850, 2850, 3000, 3150 +}; +static const uint16_t twl4030_vmmc2_voltages[] = { + 1000, 1000, 1200, 1300, 1500, 1800, 1850, 2500, + 2600, 2800, 2850, 3000, 3150, 3150, 3150, 3150 +}; +static const uint16_t twl4030_vpll1_voltages[] = { + 1000, 1200, 1300, 1800, 2800, 3000, 3000, 3000 +}; +static const uint16_t twl4030_vpll2_voltages[] = { + 700, 1000, 1200, 1300, 1500, 1800, 1850, 2500, + 2600, 2800, 2850, 3000, 3150, 3150, 3150, 3150 +}; +static const uint16_t twl4030_vsim_voltages[] = { + 1000, 1200, 1300, 1800, 2800, 3000, 3000, 3000 +}; +static const uint16_t twl4030_vdac_voltages[] = { + 1200, 1300, 1800, 1800 +}; +static const uint16_t twl4030_vdd1_voltages[] = { + 800, 1450 +}; +static const uint16_t twl4030_vdd2_voltages[] = { + 800, 1450, 1500 +}; +static const uint16_t twl4030_vio_voltages[] = { + 1800, 1850 +}; +static const uint16_t twl4030_vintana2_voltages[] = { + 2500, 2750 +}; + +/** + * Support voltage regulators for the different IC's + */ +struct twl_regulator { + const char *name; + uint8_t subdev; + uint8_t regbase; + + uint16_t fixedvoltage; + + const uint16_t *voltages; + uint32_t num_voltages; +}; + +#define TWL_REGULATOR_ADJUSTABLE(name, subdev, reg, voltages) \ + { name, subdev, reg, 0, voltages, (sizeof(voltages)/sizeof(voltages[0])) } +#define TWL_REGULATOR_FIXED(name, subdev, reg, voltage) \ + { name, subdev, reg, voltage, NULL, 0 } + +static const struct twl_regulator twl4030_regulators[] = { + TWL_REGULATOR_ADJUSTABLE("vaux1", 0, 0x17, twl4030_vaux1_voltages), + TWL_REGULATOR_ADJUSTABLE("vaux2", 0, 0x1B, twl4030_vaux2_voltages), + TWL_REGULATOR_ADJUSTABLE("vaux3", 0, 0x1F, twl4030_vaux3_voltages), + TWL_REGULATOR_ADJUSTABLE("vaux4", 0, 0x23, twl4030_vaux4_voltages), + TWL_REGULATOR_ADJUSTABLE("vmmc1", 0, 0x27, twl4030_vmmc1_voltages), + TWL_REGULATOR_ADJUSTABLE("vmmc2", 0, 0x2B, twl4030_vmmc2_voltages), + TWL_REGULATOR_ADJUSTABLE("vpll1", 0, 0x2F, twl4030_vpll1_voltages), + TWL_REGULATOR_ADJUSTABLE("vpll2", 0, 0x33, twl4030_vpll2_voltages), + TWL_REGULATOR_ADJUSTABLE("vsim", 0, 0x37, twl4030_vsim_voltages), + TWL_REGULATOR_ADJUSTABLE("vdac", 0, 0x3B, twl4030_vdac_voltages), + TWL_REGULATOR_ADJUSTABLE("vintana2", 0, 0x43, twl4030_vintana2_voltages), + TWL_REGULATOR_FIXED("vintana1", 0, 0x3F, 1500), + TWL_REGULATOR_FIXED("vintdig", 0, 0x47, 1500), + TWL_REGULATOR_FIXED("vusb1v5", 0, 0x71, 1500), + TWL_REGULATOR_FIXED("vusb1v8", 0, 0x74, 1800), + TWL_REGULATOR_FIXED("vusb3v1", 0, 0x77, 3100), + { NULL, 0, 0x00, 0, NULL, 0 } +}; + +static const struct twl_regulator twl6030_regulators[] = { + TWL_REGULATOR_ADJUSTABLE("vaux1", 0, 0x84, twl6030_voltages), + TWL_REGULATOR_ADJUSTABLE("vaux2", 0, 0x89, twl6030_voltages), + TWL_REGULATOR_ADJUSTABLE("vaux3", 0, 0x8C, twl6030_voltages), + TWL_REGULATOR_ADJUSTABLE("vmmc", 0, 0x98, twl6030_voltages), + TWL_REGULATOR_ADJUSTABLE("vpp", 0, 0x9C, twl6030_voltages), + TWL_REGULATOR_ADJUSTABLE("vusim", 0, 0xA4, twl6030_voltages), + TWL_REGULATOR_FIXED("vmem", 0, 0x64, 1800), + TWL_REGULATOR_FIXED("vusb", 0, 0xA0, 3300), + TWL_REGULATOR_FIXED("v1v8", 0, 0x46, 1800), + TWL_REGULATOR_FIXED("v2v1", 0, 0x4C, 2100), + TWL_REGULATOR_FIXED("v1v29", 0, 0x40, 1290), + TWL_REGULATOR_FIXED("vcxio", 0, 0x90, 1800), + TWL_REGULATOR_FIXED("vdac", 0, 0x94, 1800), + TWL_REGULATOR_FIXED("vana", 0, 0x80, 2100), + { NULL, 0, 0x00, 0, NULL, 0 } +}; + +#define TWL_VREG_MAX_NAMELEN 32 + +/** + * Linked list of voltage regulators support by the device. + */ +struct twl_regulator_entry { + LIST_ENTRY(twl_regulator_entry) entries; + + char name[TWL_VREG_MAX_NAMELEN]; + struct sysctl_oid *oid; + + uint8_t sub_dev; + uint8_t reg_off; + + uint16_t fixed_voltage; + + const uint16_t *supp_voltages; + uint32_t num_supp_voltages; +}; + +/** + * Structure that stores the driver context. + * + * This structure is allocated during driver attach. + */ +struct twl_vreg_softc { + device_t sc_dev; + device_t sc_pdev; + + struct mtx sc_mtx; + + struct intr_config_hook sc_init_hook; + + LIST_HEAD(twl_regulator_list, twl_regulator_entry) sc_vreg_list; +}; + +/** + * Macros for driver mutex locking + */ +#define TWL_VREG_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define TWL_VREG_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define TWL_VREG_LOCK_INIT(_sc) \ + mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ + "twl_vreg", MTX_DEF) +#define TWL_VREG_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define TWL_VREG_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define TWL_VREG_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + +static int debug; + +/** + * twl_is_4030 - returns true if the device is TWL4030 + * twl_is_6025 - returns true if the device is TWL6025 + * twl_is_6030 - returns true if the device is TWL6030 + * @sc: device soft context + * + * Returns a non-zero value if the device matches. + * + * LOCKING: + * None. + * + * RETURNS: + * Returns a non-zero value if the device matches, otherwise zero. + */ +static int +twl_is_4030(device_t dev) +{ + + return (0); +} + +static int +twl_is_6025(device_t dev) +{ + + return (0); +} + +static int +twl_is_6030(device_t dev) +{ + + return (1); +} + +/** + * twl_vreg_read_1 - read one or more registers from the TWL device + * @sc: device soft context + * @nsub: the sub-module to read from + * @reg: the register offset within the module to read + * @buf: buffer to store the bytes in + * @cnt: the number of bytes to read + * + * Reads one or registers and stores the result in the suppled buffer. + * + * LOCKING: + * Expects the TWL lock to be held. + * + * RETURNS: + * Zero on success or a negative error code on failure. + */ +static inline int +twl_vreg_read_1(struct twl_vreg_softc *sc, struct twl_regulator_entry *regulator, + uint8_t off, uint8_t *val) +{ + return (twl_read(sc->sc_pdev, regulator->sub_dev, + regulator->reg_off + off, val, 1)); +} + +/** + * twl_write - writes one or more registers to the TWL device + * @sc: device soft context + * @nsub: the sub-module to read from + * @reg: the register offset within the module to read + * @buf: data to write + * @cnt: the number of bytes to write + * + * Writes one or more registers. + * + * LOCKING: + * Expects the TWL lock to be held. + * + * RETURNS: + * Zero on success or a negative error code on failure. + */ +static inline int +twl_vreg_write_1(struct twl_vreg_softc *sc, struct twl_regulator_entry *regulator, + uint8_t off, uint8_t val) +{ + return (twl_write(sc->sc_pdev, regulator->sub_dev, + regulator->reg_off + off, &val, 1)); +} + +/** + * twl_millivolt_to_vsel - gets the vsel bit value to write into the register + * for a desired voltage + * @sc: the device soft context + * @regulator: pointer to the regulator device + * @millivolts: the millivolts to find the bit value for + * @bitval: upond return will contain the value to write + * @diff: upon return will contain the difference between the requested + * voltage value and the actual voltage (in millivolts) + * + * Accepts a voltage value and tries to find the closest match to the actual + * supported voltages. If a match is found within 100mv of the target, the + * function returns the VSEL value. If no voltage match is found the function + * returns UNDEF. + * + * LOCKING: + * It's expected the TWL lock is held while this function is called. + * + * RETURNS: + * A value to load into the VSEL register if matching voltage found, if not + * EINVAL is returned. + */ +static int +twl_vreg_millivolt_to_vsel(struct twl_vreg_softc *sc, + struct twl_regulator_entry *regulator, int millivolts) +{ + int delta, smallest_delta; + unsigned i, closest_idx; + + TWL_VREG_ASSERT_LOCKED(sc); + + /* First check that variable voltage is supported */ + if (regulator->supp_voltages == NULL) + return (EINVAL); + + /* Loop over the support voltages and try and find the closest match */ + closest_idx = 0; + smallest_delta = 0x7fffffff; + for (i = 0; i < regulator->num_supp_voltages; i++) { + + /* Ignore undefined values */ + if (regulator->supp_voltages[i] == UNDF) + continue; + + /* Calculate the difference */ + delta = millivolts - (int)regulator->supp_voltages[i]; + if (abs(delta) < smallest_delta) { + smallest_delta = abs(delta); + closest_idx = i; + } + } + + /* Check we got a voltage that was within 150mv of the actual target, this + * is just a value I picked out of thin air. + */ + if (smallest_delta > 100) + return (EINVAL); + + return (closest_idx); +} + +/** + * twl_regulator_is_enabled - returns the enabled status of the regulator + * @sc: the device soft context + * @regulator: pointer to the regulator device + * + * + * + * LOCKING: + * It's expected the TWL lock is held while this function is called. + * + * RETURNS: + * Zero if disabled, positive non-zero value if enabled, on failure a negative + * error code. + */ +static int +twl_vreg_is_regulator_enabled(struct twl_vreg_softc *sc, + struct twl_regulator_entry *regulator) +{ + int err; + uint8_t grp; + uint8_t state; + + TWL_VREG_ASSERT_LOCKED(sc); + + /* The status reading is different for the different devices */ + if (twl_is_4030(sc->sc_dev)) { + + err = twl_vreg_read_1(sc, regulator, TWL_VREG_GRP, &state); + if (err) + return (err); + + return (state & TWL4030_P1_GRP); + + } else if (twl_is_6030(sc->sc_dev) || twl_is_6025(sc->sc_dev)) { + + /* Check the regulator is in the application group */ + if (twl_is_6030(sc->sc_dev)) { + err = twl_vreg_read_1(sc, regulator, TWL_VREG_GRP, &grp); + if (err) + return (err); + + if (!(grp & TWL6030_P1_GRP)) + return (0); + } + + /* Read the application mode state and verify it's ON */ + err = twl_vreg_read_1(sc, regulator, TWL_VREG_STATE, &state); + if (err) + return (err); + + return ((state & 0x0C) == 0x04); + } + + return (EINVAL); +} + +/** + * twl_disable_regulator - disables the voltage regulator + * @sc: the device soft context + * @regulator: pointer to the regulator device + * + * Disables the regulator which will stop the out drivers. + * + * LOCKING: + * It's expected the TWL lock is held while this function is called. + * + * RETURNS: + * Zero on success, or otherwise a negative error code. + */ +static int +twl_vreg_disable_regulator(struct twl_vreg_softc *sc, + struct twl_regulator_entry *regulator) +{ + int err = 0; + uint8_t grp; + + TWL_VREG_ASSERT_LOCKED(sc); + + if (twl_is_4030(sc->sc_dev)) { + + /* Read the regulator CFG_GRP register */ + err = twl_vreg_read_1(sc, regulator, TWL_VREG_GRP, &grp); + if (err) + return (err); + + /* On the TWL4030 we just need to remove the regulator from all the + * power groups. + */ + grp &= ~(TWL4030_P1_GRP | TWL4030_P2_GRP | TWL4030_P3_GRP); + err = twl_vreg_write_1(sc, regulator, TWL_VREG_GRP, grp); + + } else if (twl_is_6030(sc->sc_dev) || twl_is_6025(sc->sc_dev)) { + + /* On TWL6030 we need to make sure we disable power for all groups */ + if (twl_is_6030(sc->sc_dev)) + grp = TWL6030_P1_GRP | TWL6030_P2_GRP | TWL6030_P3_GRP; + else + grp = 0x00; + + /* Write the resource state to "OFF" */ + err = twl_vreg_write_1(sc, regulator, TWL_VREG_STATE, (grp << 5)); + } + + return (err); +} + +/** + * twl_enable_regulator - enables the voltage regulator + * @sc: the device soft context + * @regulator: pointer to the regulator device + * + * Enables the regulator which will enable the voltage out. + * + * LOCKING: + * It's expected the TWL lock is held while this function is called. + * + * RETURNS: + * Zero on success, or otherwise a negative error code. + */ +static int +twl_vreg_enable_regulator(struct twl_vreg_softc *sc, + struct twl_regulator_entry *regulator) +{ + int err; + uint8_t grp; + + TWL_VREG_ASSERT_LOCKED(sc); + + /* Read the regulator CFG_GRP register */ + err = twl_vreg_read_1(sc, regulator, TWL_VREG_GRP, &grp); + if (err) + return (err); + + /* Enable the regulator by ensuring it's in the application power group + * and is in the "on" state. + */ + if (twl_is_4030(sc->sc_dev)) { + + /* On the TWL4030 we just need to ensure the regulator is in the right + * power domain, don't need to turn on explicitly like TWL6030. + */ + grp |= TWL4030_P1_GRP; + err = twl_vreg_write_1(sc, regulator, TWL_VREG_GRP, grp); + + } else if (twl_is_6030(sc->sc_dev) || twl_is_6025(sc->sc_dev)) { + + if (twl_is_6030(sc->sc_dev) && !(grp & TWL6030_P1_GRP)) { + grp |= TWL6030_P1_GRP; + err = twl_vreg_write_1(sc, regulator, TWL_VREG_GRP, grp); + if (err) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 06:11:30 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06D9B1065672; Tue, 21 Feb 2012 06:11:30 +0000 (UTC) (envelope-from gonzo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CE28E8FC12; Tue, 21 Feb 2012 06:11: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 q1L6BToA085824; Tue, 21 Feb 2012 06:11:29 GMT (envelope-from gonzo@svn.freebsd.org) Received: (from gonzo@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1L6BTPP085822; Tue, 21 Feb 2012 06:11:29 GMT (envelope-from gonzo@svn.freebsd.org) Message-Id: <201202210611.q1L6BTPP085822@svn.freebsd.org> From: Oleksandr Tymoshenko Date: Tue, 21 Feb 2012 06:11:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231963 - projects/armv6/sys/arm/ti X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 06:11:30 -0000 Author: gonzo Date: Tue Feb 21 06:11:29 2012 New Revision: 231963 URL: http://svn.freebsd.org/changeset/base/231963 Log: Partially enable voltage regulator support. Actual regulator name should be obtained from FDT blob Modified: projects/armv6/sys/arm/ti/omap_mmc.c Modified: projects/armv6/sys/arm/ti/omap_mmc.c ============================================================================== --- projects/armv6/sys/arm/ti/omap_mmc.c Tue Feb 21 06:10:35 2012 (r231962) +++ projects/armv6/sys/arm/ti/omap_mmc.c Tue Feb 21 06:11:29 2012 (r231963) @@ -87,10 +87,8 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef TWL_SUPPORTED -#include -#include -#endif +#include +#include #ifdef DEBUG #define omap_mmc_dbg(sc, fmt, args...) \ @@ -119,10 +117,8 @@ struct omap_mmc_softc { device_t sc_gpio_dev; int sc_wp_gpio_pin; /* GPIO pin for MMC write protect */ -#ifdef TWL_SUPPORTED device_t sc_vreg_dev; const char* sc_vreg_name; -#endif struct mtx sc_mtx; @@ -944,11 +940,9 @@ omap_mmc_update_ios(device_t brdev, devi omap_mmc_write_4(sc, MMCHS_HCTL, hctl_reg); -#ifdef TWL_SUPPORTED /* Set the desired voltage on the regulator */ if (sc->sc_vreg_dev && sc->sc_vreg_name) twl_vreg_set_voltage(sc->sc_vreg_dev, sc->sc_vreg_name, mv); -#endif /* Enable the bus power */ omap_mmc_write_4(sc, MMCHS_HCTL, (hctl_reg | MMCHS_HCTL_SDBP)); @@ -964,11 +958,9 @@ omap_mmc_update_ios(device_t brdev, devi hctl_reg = omap_mmc_read_4(sc, MMCHS_HCTL); omap_mmc_write_4(sc, MMCHS_HCTL, (hctl_reg & ~MMCHS_HCTL_SDBP)); -#ifdef TWL_SUPPORTED /* Turn the power off on the voltage regulator */ if (sc->sc_vreg_dev && sc->sc_vreg_name) twl_vreg_set_voltage(sc->sc_vreg_dev, sc->sc_vreg_name, 0); -#endif } else if (ios->power_mode == power_on) { /* Force a card re-initialisation sequence */ @@ -1611,19 +1603,18 @@ omap_mmc_attach(device_t dev) GPIO_PIN_INPUT); } -#ifdef TWL_SUPPORTED /* Get the TWL voltage regulator device, we need this to for setting the * voltage of the bus on certain OMAP platforms. */ - if (resource_string_value("omap_mmc", unit, "vreg", &sc->sc_vreg_name) != 0){ + sc->sc_vreg_name = NULL; + + /* TODO: add voltage regulator knob to FDT */ +#ifdef notyet + sc->sc_vreg_dev = devclass_get_device(devclass_find("twl_vreg"), 0); + if (sc->sc_vreg_dev == NULL) { + device_printf(dev, "Error: failed to get the votlage regulator" + " device\n"); sc->sc_vreg_name = NULL; - } else { - sc->sc_vreg_dev = devclass_get_device(devclass_find("twl_vreg"), 0); - if (sc->sc_vreg_dev == NULL) { - device_printf(dev, "Error: failed to get the votlage regulator" - " device\n"); - sc->sc_vreg_name = NULL; - } } #endif From owner-svn-src-projects@FreeBSD.ORG Tue Feb 21 12:57:52 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE6E5106566C; Tue, 21 Feb 2012 12:57:52 +0000 (UTC) (envelope-from dmarion@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DC02B8FC18; Tue, 21 Feb 2012 12:57: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 q1LCvq7U000366; Tue, 21 Feb 2012 12:57:52 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1LCvqtq000357; Tue, 21 Feb 2012 12:57:52 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201202211257.q1LCvqtq000357@svn.freebsd.org> From: Damjan Marion Date: Tue, 21 Feb 2012 12:57:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231968 - in projects/armv6/sys: arm/conf arm/ti arm/ti/am335x boot/fdt/dts X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Feb 2012 12:57:53 -0000 Author: dmarion Date: Tue Feb 21 12:57:52 2012 New Revision: 231968 URL: http://svn.freebsd.org/changeset/base/231968 Log: Update am335x prcm driver: - uses top-level ti-prcm framework - implements sysclk and fclk detection - enables clock selection/activation for DMTimer - enables clock activation for i2c driver Approved by: cognet (mentor) Modified: projects/armv6/sys/arm/conf/BEAGLEBONE projects/armv6/sys/arm/ti/am335x/am335x_dmtimer.c projects/armv6/sys/arm/ti/am335x/am335x_prcm.c projects/armv6/sys/arm/ti/am335x/files.am335x projects/armv6/sys/arm/ti/ti_prcm.h projects/armv6/sys/arm/ti/ti_scm.c projects/armv6/sys/arm/ti/ti_scm.h projects/armv6/sys/boot/fdt/dts/beaglebone.dts Modified: projects/armv6/sys/arm/conf/BEAGLEBONE ============================================================================== --- projects/armv6/sys/arm/conf/BEAGLEBONE Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/conf/BEAGLEBONE Tue Feb 21 12:57:52 2012 (r231968) @@ -76,9 +76,10 @@ device mmc # mmc/sd bus device mmcsd # mmc/sd flash cards # I2C support -#device iicbus -#device iic -#device omap3_i2c +device iicbus +device iic +device ti_i2c + device loop device ether Modified: projects/armv6/sys/arm/ti/am335x/am335x_dmtimer.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_dmtimer.c Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/ti/am335x/am335x_dmtimer.c Tue Feb 21 12:57:52 2012 (r231968) @@ -50,6 +50,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + #define AM335X_NUM_TIMERS 8 #define DMTIMER_TIDR 0x00 /* Identification Register */ @@ -74,7 +76,7 @@ __FBSDID("$FreeBSD$"); struct am335x_dmtimer_softc { struct resource * tmr_mem_res[AM335X_NUM_TIMERS]; struct resource * tmr_irq_res[AM335X_NUM_TIMERS]; - uint32_t clkfreq; + uint32_t sysclk_freq; struct am335x_dmtimer { bus_space_tag_t bst; bus_space_handle_t bsh; @@ -233,8 +235,6 @@ static int am335x_dmtimer_attach(device_t dev) { struct am335x_dmtimer_softc *sc = device_get_softc(dev); - phandle_t node; - pcell_t clock; void *ihl; int err; int i; @@ -243,12 +243,11 @@ am335x_dmtimer_attach(device_t dev) return (EINVAL); /* Get the base clock frequency */ - node = ofw_bus_get_node(dev); - if ((OF_getprop(node, "clock-frequency", &clock, sizeof(clock))) <= 0) { - device_printf(dev, "missing clock-frequency attribute in FDT\n"); + err = ti_prcm_clk_get_source_freq(SYS_CLK, &sc->sysclk_freq); + if (err) { + device_printf(dev, "Error: could not get sysclk frequency\n"); return (ENXIO); } - sc->clkfreq = fdt32_to_cpu(clock); /* Request the memory resources */ err = bus_alloc_resources(dev, am335x_dmtimer_mem_spec, @@ -271,6 +270,16 @@ am335x_dmtimer_attach(device_t dev) sc->t[i].bsh = rman_get_bushandle(sc->tmr_mem_res[i]); } + /* Configure DMTimer2 and DMTimer3 source and enable them */ + err = ti_prcm_clk_set_source(DMTIMER2_CLK, SYSCLK_CLK); + err |= ti_prcm_clk_enable(DMTIMER2_CLK); + err |= ti_prcm_clk_set_source(DMTIMER3_CLK, SYSCLK_CLK); + err |= ti_prcm_clk_enable(DMTIMER3_CLK); + if (err) { + device_printf(dev, "Error: could not setup timer clock\n"); + return (ENXIO); + } + /* Take DMTimer2 for TC */ am335x_dmtimer_tc_tmr = &sc->t[2]; @@ -289,9 +298,11 @@ am335x_dmtimer_attach(device_t dev) /* Set Timer autoreload(AR) and start timer(ST) */ am335x_dmtimer_tc_write_4(DMTIMER_TCLR, 3); - am335x_dmtimer_tc.tc_frequency = sc->clkfreq; + am335x_dmtimer_tc.tc_frequency = sc->sysclk_freq; tc_init(&am335x_dmtimer_tc); + /* Register DMTimer3 as ET */ + /* Setup and enable the timer */ if (bus_setup_intr(dev, sc->tmr_irq_res[3], INTR_TYPE_CLK, am335x_dmtimer_intr, NULL, &sc->t[3], &ihl) != 0) { @@ -304,7 +315,7 @@ am335x_dmtimer_attach(device_t dev) sc->t[3].et.et_name = "AM335x Eventtimer0"; sc->t[3].et.et_flags = ET_FLAGS_PERIODIC | ET_FLAGS_ONESHOT; sc->t[3].et.et_quality = 1000; - sc->t[3].et.et_frequency = sc->clkfreq; + sc->t[3].et.et_frequency = sc->sysclk_freq; sc->t[3].et.et_min_period.sec = 0; sc->t[3].et.et_min_period.frac = ((0x00000002LLU << 32) / sc->t[3].et.et_frequency) << 32; @@ -326,7 +337,7 @@ static device_method_t am335x_dmtimer_me }; static driver_t am335x_dmtimer_driver = { - "am335x-dmtimer", + "am335x_dmtimer", am335x_dmtimer_methods, sizeof(struct am335x_dmtimer_softc), }; @@ -334,6 +345,7 @@ static driver_t am335x_dmtimer_driver = static devclass_t am335x_dmtimer_devclass; DRIVER_MODULE(am335x_dmtimer, simplebus, am335x_dmtimer_driver, am335x_dmtimer_devclass, 0, 0); +MODULE_DEPEND(am335x_dmtimer, am335x_prcm, 1, 1, 1); void cpu_initclocks(void) Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Tue Feb 21 12:57:52 2012 (r231968) @@ -42,6 +42,9 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include + #include #include #include @@ -51,21 +54,30 @@ __FBSDID("$FreeBSD$"); #include #define CM_PER 0 -#define CM_PER_L4LS_CLKSTCTRL (CM_PER + 0x00) -#define CM_PER_TIMER7_CLKCTRL (CM_PER + 0x7C) -#define CM_PER_TIMER2_CLKCTRL (CM_PER + 0x80) -#define CM_PER_TIMER3_CLKCTRL (CM_PER + 0x84) -#define CM_PER_TIMER4_CLKCTRL (CM_PER + 0x88) -#define CM_PER_TIMER5_CLKCTRL (CM_PER + 0xEC) -#define CM_PER_TIMER6_CLKCTRL (CM_PER + 0xF0) +#define CM_PER_L4LS_CLKSTCTRL (CM_PER + 0x000) +#define CM_PER_CPGMAC0_CLKCTRL (CM_PER + 0x014) +#define CM_PER_I2C2_CLKCTRL (CM_PER + 0x044) +#define CM_PER_I2C1_CLKCTRL (CM_PER + 0x048) +#define CM_PER_TIMER7_CLKCTRL (CM_PER + 0x07C) +#define CM_PER_TIMER2_CLKCTRL (CM_PER + 0x080) +#define CM_PER_TIMER3_CLKCTRL (CM_PER + 0x084) +#define CM_PER_TIMER4_CLKCTRL (CM_PER + 0x088) +#define CM_PER_TIMER5_CLKCTRL (CM_PER + 0x0EC) +#define CM_PER_TIMER6_CLKCTRL (CM_PER + 0x0F0) +#define CM_PER_CPSW_CLKSTCTRL (CM_PER + 0x144) + +#define CM_WKUP 0x400 +#define CM_CLKSEL_DPLL_MPU (CM_WKUP + 0x02C) +#define CM_WKUP_I2C0_CLKCTRL (CM_WKUP + 0x0B8) #define CM_DPLL 0x500 -#define CLKSEL_TIMER7_CLK (CM_DPLL + 0x04) -#define CLKSEL_TIMER2_CLK (CM_DPLL + 0x08) -#define CLKSEL_TIMER3_CLK (CM_DPLL + 0x0C) -#define CLKSEL_TIMER4_CLK (CM_DPLL + 0x10) -#define CLKSEL_TIMER5_CLK (CM_DPLL + 0x18) -#define CLKSEL_TIMER6_CLK (CM_DPLL + 0x1C) +#define CLKSEL_TIMER7_CLK (CM_DPLL + 0x004) +#define CLKSEL_TIMER2_CLK (CM_DPLL + 0x008) +#define CLKSEL_TIMER3_CLK (CM_DPLL + 0x00C) +#define CLKSEL_TIMER4_CLK (CM_DPLL + 0x010) +#define CLKSEL_TIMER5_CLK (CM_DPLL + 0x018) +#define CLKSEL_TIMER6_CLK (CM_DPLL + 0x01C) + struct am335x_prcm_softc { struct resource * res[2]; @@ -80,12 +92,102 @@ static struct resource_spec am335x_prcm_ static struct am335x_prcm_softc *am335x_prcm_sc = NULL; +static int am335x_clk_generic_activate(struct ti_clock_dev *clkdev); +static int am335x_clk_generic_deactivate(struct ti_clock_dev *clkdev); +static int am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); +static int am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); +static int am335x_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); +static int am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev); + +#define AM335X_GENERIC_CLOCK_DEV(i) \ + { .id = (i), \ + .clk_activate = am335x_clk_generic_activate, \ + .clk_deactivate = am335x_clk_generic_deactivate, \ + .clk_set_source = am335x_clk_generic_set_source, \ + .clk_accessible = NULL, \ + .clk_get_source_freq = NULL \ + } + +struct ti_clock_dev ti_clk_devmap[] = { + /* System clocks */ + { .id = SYS_CLK, + .clk_activate = NULL, + .clk_deactivate = NULL, + .clk_set_source = NULL, + .clk_accessible = NULL, + .clk_get_source_freq = am335x_clk_get_sysclk_freq, + }, + /* MPU (ARM) core clocks */ + { .id = MPU_CLK, + .clk_activate = NULL, + .clk_deactivate = NULL, + .clk_set_source = NULL, + .clk_accessible = NULL, + .clk_get_source_freq = am335x_clk_get_arm_fclk_freq, + }, + /* CPSW Ethernet Switch core clocks */ + { .id = CPSW_CLK, + .clk_activate = am335x_clk_cpsw_activate, + .clk_deactivate = NULL, + .clk_set_source = NULL, + .clk_accessible = NULL, + .clk_get_source_freq = NULL, + }, + + /* DMTimer */ + AM335X_GENERIC_CLOCK_DEV(DMTIMER2_CLK), + AM335X_GENERIC_CLOCK_DEV(DMTIMER3_CLK), + AM335X_GENERIC_CLOCK_DEV(DMTIMER4_CLK), + AM335X_GENERIC_CLOCK_DEV(DMTIMER5_CLK), + AM335X_GENERIC_CLOCK_DEV(DMTIMER6_CLK), + AM335X_GENERIC_CLOCK_DEV(DMTIMER7_CLK), + + /* I2C */ + AM335X_GENERIC_CLOCK_DEV(I2C0_CLK), + AM335X_GENERIC_CLOCK_DEV(I2C1_CLK), + AM335X_GENERIC_CLOCK_DEV(I2C2_CLK), + + { INVALID_CLK_IDENT, NULL, NULL, NULL, NULL } +}; + +struct am335x_clk_details { + clk_ident_t id; + uint32_t clkctrl_reg; + uint32_t clksel_reg; +}; + +#define _CLK_DETAIL(i, c, s) \ + { .id = (i), \ + .clkctrl_reg = (c), \ + .clksel_reg = (s), \ + } + +static struct am335x_clk_details g_am335x_clk_details[] = { + + /* DMTimer modules */ + _CLK_DETAIL(DMTIMER2_CLK, CM_PER_TIMER2_CLKCTRL, CLKSEL_TIMER2_CLK), + _CLK_DETAIL(DMTIMER3_CLK, CM_PER_TIMER3_CLKCTRL, CLKSEL_TIMER3_CLK), + _CLK_DETAIL(DMTIMER4_CLK, CM_PER_TIMER4_CLKCTRL, CLKSEL_TIMER4_CLK), + _CLK_DETAIL(DMTIMER5_CLK, CM_PER_TIMER5_CLKCTRL, CLKSEL_TIMER5_CLK), + _CLK_DETAIL(DMTIMER6_CLK, CM_PER_TIMER6_CLKCTRL, CLKSEL_TIMER6_CLK), + _CLK_DETAIL(DMTIMER7_CLK, CM_PER_TIMER7_CLKCTRL, CLKSEL_TIMER7_CLK), + + /* I2C modules */ + _CLK_DETAIL(I2C0_CLK, CM_WKUP_I2C0_CLKCTRL, 0), + _CLK_DETAIL(I2C1_CLK, CM_PER_I2C1_CLKCTRL, 0), + _CLK_DETAIL(I2C2_CLK, CM_PER_I2C2_CLKCTRL, 0), + + { INVALID_CLK_IDENT, 0}, +}; + /* Read/Write macros */ #define prcm_read_4(reg) \ bus_space_read_4(am335x_prcm_sc->bst, am335x_prcm_sc->bsh, reg) #define prcm_write_4(reg, val) \ bus_space_write_4(am335x_prcm_sc->bst, am335x_prcm_sc->bsh, reg, val) +void am335x_prcm_setup_dmtimer(int); + static int am335x_prcm_probe(device_t dev) { @@ -93,7 +195,7 @@ am335x_prcm_probe(device_t dev) sc = (struct am335x_prcm_softc *)device_get_softc(dev); if (ofw_bus_is_compatible(dev, "am335x,prcm")) { - device_set_desc(dev, "AM335x PRCM"); + device_set_desc(dev, "AM335x Power and Clock Management"); return(BUS_PROBE_DEFAULT); } @@ -104,6 +206,7 @@ static int am335x_prcm_attach(device_t dev) { struct am335x_prcm_softc *sc = device_get_softc(dev); + unsigned int sysclk, fclk; if (am335x_prcm_sc) return (ENXIO); @@ -118,21 +221,10 @@ am335x_prcm_attach(device_t dev) am335x_prcm_sc = sc; - /* Select CLK_M_OSC clock for Timer 2 */ - prcm_write_4(CLKSEL_TIMER2_CLK,1); - while ((prcm_read_4(CLKSEL_TIMER2_CLK) & 0x1) != 1); - - /* Enable Timer 2 Module */ - prcm_write_4(CM_PER_TIMER2_CLKCTRL, 2); - while ((prcm_read_4(CM_PER_TIMER2_CLKCTRL) & 0x3) != 2); - - /* Select CLK_M_OSC clock for Timer 3 */ - prcm_write_4(CLKSEL_TIMER3_CLK,1); - while ((prcm_read_4(CLKSEL_TIMER3_CLK) & 0x1) != 1); - - /* Enable Timer 3 Module */ - prcm_write_4(CM_PER_TIMER3_CLKCTRL, 2); - while ((prcm_read_4(CM_PER_TIMER3_CLKCTRL) & 0x3) != 2); + am335x_clk_get_sysclk_freq(NULL, &sysclk); + am335x_clk_get_arm_fclk_freq(NULL, &fclk); + device_printf(dev, "Clocks: System %u.%01u MHz, CPU %u MHz\n", + sysclk/1000000, (sysclk % 1000000)/100000, fclk/1000000); return (0); } @@ -144,7 +236,7 @@ static device_method_t am335x_prcm_metho }; static driver_t am335x_prcm_driver = { - "am335x-prcm", + "am335x_prcm", am335x_prcm_methods, sizeof(struct am335x_prcm_softc), }; @@ -153,4 +245,180 @@ static devclass_t am335x_prcm_devclass; DRIVER_MODULE(am335x_prcm, simplebus, am335x_prcm_driver, am335x_prcm_devclass, 0, 0); +MODULE_DEPEND(am335x_prcm, ti_scm, 1, 1, 1); + +static struct am335x_clk_details* +am335x_clk_details(clk_ident_t id) +{ + struct am335x_clk_details *walker; + + for (walker = g_am335x_clk_details; walker->id != INVALID_CLK_IDENT; walker++) { + if (id == walker->id) + return (walker); + } + + return NULL; +} + +static int +am335x_clk_generic_activate(struct ti_clock_dev *clkdev) +{ + struct am335x_prcm_softc *sc = am335x_prcm_sc; + struct am335x_clk_details* clk_details; + + if (sc == NULL) + return ENXIO; + + clk_details = am335x_clk_details(clkdev->id); + + if (clk_details == NULL) + return (ENXIO); + + /* set *_CLKCTRL register MODULEMODE[1:0] to enable(2) */ + prcm_write_4(clk_details->clkctrl_reg, 2); + while ((prcm_read_4(clk_details->clkctrl_reg) & 0x3) != 2) + DELAY(10); + + return (0); +} + +static int +am335x_clk_generic_deactivate(struct ti_clock_dev *clkdev) +{ + struct am335x_prcm_softc *sc = am335x_prcm_sc; + struct am335x_clk_details* clk_details; + + if (sc == NULL) + return ENXIO; + + clk_details = am335x_clk_details(clkdev->id); + + if (clk_details == NULL) + return (ENXIO); + + /* set *_CLKCTRL register MODULEMODE[1:0] to disable(0) */ + prcm_write_4(clk_details->clkctrl_reg, 0); + while ((prcm_read_4(clk_details->clkctrl_reg) & 0x3) != 0) + DELAY(10); + + return (0); +} + +static int +am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc) +{ + struct am335x_prcm_softc *sc = am335x_prcm_sc; + struct am335x_clk_details* clk_details; + uint32_t reg; + + if (sc == NULL) + return ENXIO; + + clk_details = am335x_clk_details(clkdev->id); + + if (clk_details == NULL) + return (ENXIO); + + switch (clksrc) { + case EXT_CLK: + reg = 0; /* SEL2: TCLKIN clock */ + break; + case SYSCLK_CLK: + reg = 1; /* SEL1: CLK_M_OSC clock */ + break; + case F32KHZ_CLK: + reg = 2; /* SEL3: CLK_32KHZ clock */ + break; + default: + return (ENXIO); + } + + prcm_write_4(clk_details->clksel_reg, reg); + while ((prcm_read_4(clk_details->clksel_reg) & 0x3) != reg) + DELAY(10); + + return (0); +} + +static int +am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq) +{ + uint32_t ctrl_status; + + /* Read the input clock freq from the control module */ + /* control_status reg (0x40) */ + if (ti_scm_reg_read_4(0x40, &ctrl_status)) + return ENXIO; + + switch ((ctrl_status>>22) & 0x3) { + case 0x0: + /* 19.2Mhz */ + *freq = 19200000; + break; + case 0x1: + /* 24Mhz */ + *freq = 24000000; + break; + case 0x2: + /* 25Mhz */ + *freq = 25000000; + break; + case 0x3: + /* 26Mhz */ + *freq = 26000000; + break; + } + + return (0); +} + +static int +am335x_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq) +{ + uint32_t reg; + uint32_t sysclk; +#define DPLL_BYP_CLKSEL(reg) ((reg>>23) & 1) +#define DPLL_DIV(reg) ((reg & 0x7f)+1) +#define DPLL_MULT(reg) ((reg>>8) & 0x7FF) + + reg = prcm_read_4(CM_CLKSEL_DPLL_MPU); + + /*Check if we are running in bypass */ + if (DPLL_BYP_CLKSEL(reg)) + return ENXIO; + + am335x_clk_get_sysclk_freq(NULL, &sysclk); + *freq = DPLL_MULT(reg) * (sysclk / DPLL_DIV(reg)); + return(0); +} + +static int +am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev) +{ + struct am335x_prcm_softc *sc = am335x_prcm_sc; + struct am335x_clk_details* clk_details; + + if (sc == NULL) + return ENXIO; + + clk_details = am335x_clk_details(clkdev->id); + + if (clk_details == NULL) + return (ENXIO); + + + /* set MODULENAME to ENABLE */ + prcm_write_4(CM_PER_CPGMAC0_CLKCTRL, 2); + + /* wait for IDLEST to become Func(0) */ + while(prcm_read_4(CM_PER_CPGMAC0_CLKCTRL) & (3<<16)); + + /*set CLKTRCTRL to SW_WKUP(2) */ + prcm_write_4(CM_PER_CPSW_CLKSTCTRL, 2); + + /* wait for 125 MHz OCP clock to become active */ + while((prcm_read_4(CM_PER_CPSW_CLKSTCTRL) & (1<<4)) == 0); + return(0); +} + Modified: projects/armv6/sys/arm/ti/am335x/files.am335x ============================================================================== --- projects/armv6/sys/arm/ti/am335x/files.am335x Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/ti/am335x/files.am335x Tue Feb 21 12:57:52 2012 (r231968) @@ -3,20 +3,24 @@ kern/kern_clocksource.c standard arm/arm/bus_space_generic.c standard -arm/arm/bus_space_asm_generic.S standard +arm/arm/bus_space_asm_generic.S standard arm/arm/cpufunc_asm_armv5.S standard arm/arm/cpufunc_asm_arm10.S standard arm/arm/cpufunc_asm_arm11.S standard arm/arm/cpufunc_asm_armv7.S standard arm/arm/irq_dispatch.S standard -arm/ti/ti_machdep.c standard -arm/ti/aintc.c standard -arm/ti/ti_scm.c standard +arm/ti/ti_machdep.c standard +arm/ti/aintc.c standard +arm/ti/ti_scm.c standard +arm/ti/common.c standard +arm/ti/bus_space.c standard +arm/ti/ti_prcm.c standard +arm/ti/ti_i2c.c optional ti_i2c arm/ti/am335x/am335x_prcm.c standard -arm/ti/am335x/am335x_dmtimer.c standard +arm/ti/am335x/am335x_dmtimer.c standard arm/ti/am335x/if_cpsw.c standard -arm/ti/am335x/am335x_scm_padconf.c standard +arm/ti/am335x/am335x_scm_padconf.c standard dev/uart/uart_dev_ns8250.c optional uart Modified: projects/armv6/sys/arm/ti/ti_prcm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_prcm.h Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/ti/ti_prcm.h Tue Feb 21 12:57:52 2012 (r231968) @@ -115,6 +115,19 @@ typedef enum { /* sDMA module */ SDMA_CLK = 800, + /* DMTimer modules */ + DMTIMER0_CLK = 900, + DMTIMER1_CLK, + DMTIMER2_CLK, + DMTIMER3_CLK, + DMTIMER4_CLK, + DMTIMER5_CLK, + DMTIMER6_CLK, + DMTIMER7_CLK, + + /* CPSW modules */ + CPSW_CLK = 1000, + INVALID_CLK_IDENT } clk_ident_t; Modified: projects/armv6/sys/arm/ti/ti_scm.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_scm.c Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/ti/ti_scm.c Tue Feb 21 12:57:52 2012 (r231968) @@ -82,6 +82,11 @@ static struct ti_scm_softc *ti_scm_sc; bus_space_read_2((sc)->sc_bst, (sc)->sc_bsh, (reg)) #define ti_scm_write_2(sc, reg, val) \ bus_space_write_2((sc)->sc_bst, (sc)->sc_bsh, (reg), (val)) +#define ti_scm_read_4(sc, reg) \ + bus_space_read_4((sc)->sc_bst, (sc)->sc_bsh, (reg)) +#define ti_scm_write_4(sc, reg, val) \ + bus_space_write_4((sc)->sc_bst, (sc)->sc_bsh, (reg), (val)) + /** * ti_padconf_devmap - Array of pins, should be defined one per SoC @@ -450,6 +455,15 @@ ti_scm_attach(device_t dev) return (0); } +int +ti_scm_reg_read_4(uint32_t reg, uint32_t *val) +{ + if (!ti_scm_sc) + return (ENXIO); + + *val = ti_scm_read_4(ti_scm_sc, reg); + return (0); +} static device_method_t ti_scm_methods[] = { DEVMETHOD(device_probe, ti_scm_probe), @@ -458,7 +472,7 @@ static device_method_t ti_scm_methods[] }; static driver_t ti_scm_driver = { - "ti-scm", + "ti_scm", ti_scm_methods, sizeof(struct ti_scm_softc), }; Modified: projects/armv6/sys/arm/ti/ti_scm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_scm.h Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/arm/ti/ti_scm.h Tue Feb 21 12:57:52 2012 (r231968) @@ -76,5 +76,6 @@ int ti_scm_padconf_set_gpiomode(uint32_t int ti_scm_padconf_get_gpiomode(uint32_t gpio, unsigned int *state); int ti_scm_padconf_set_gpioflags(uint32_t gpio, uint32_t flags); void ti_scm_padconf_get_gpioflags(uint32_t gpio, uint32_t *flags); +int ti_scm_reg_read_4(uint32_t reg, uint32_t *val); #endif /* _TI_SCM_H_ */ Modified: projects/armv6/sys/boot/fdt/dts/beaglebone.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/beaglebone.dts Tue Feb 21 10:16:17 2012 (r231967) +++ projects/armv6/sys/boot/fdt/dts/beaglebone.dts Tue Feb 21 12:57:52 2012 (r231968) @@ -103,7 +103,6 @@ 0x4804A000 0x1000 >; interrupts = < 66 67 68 69 92 93 94 95 >; interrupt-parent = <&AINTC>; - clock-frequency = < 24000000 >; }; uart0: serial@44E09000 { @@ -132,6 +131,30 @@ }; }; }; + + i2c0: i2c@44e0b000 { + compatible = "ti,i2c"; + reg =< 0x44e0b000 0x1000 >; + interrupts = <70>; + interrupt-parent = <&AINTC>; + i2c-device-id = <0>; + }; + + i2c1: i2c@4802a000 { + compatible = "ti,i2c"; + reg =< 0x4802a000 0x1000 >; + interrupts = <71>; + interrupt-parent = <&AINTC>; + i2c-device-id = <1>; + }; + + i2c2: i2c@4819c000 { + compatible = "ti,i2c"; + reg =< 0x4819c000 0x1000 >; + interrupts = <30>; + interrupt-parent = <&AINTC>; + i2c-device-id = <2>; + }; }; chosen { From owner-svn-src-projects@FreeBSD.ORG Wed Feb 22 01:50:14 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EB49106566C; Wed, 22 Feb 2012 01:50:14 +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 1ADF78FC13; Wed, 22 Feb 2012 01:50: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 q1M1oDQX029231; Wed, 22 Feb 2012 01:50:13 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1M1oDvn029229; Wed, 22 Feb 2012 01:50:13 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201202220150.q1M1oDvn029229@svn.freebsd.org> From: Xin LI Date: Wed, 22 Feb 2012 01:50:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231988 - projects/head_mfi/sys/dev/mfi X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2012 01:50:14 -0000 Author: delphij Date: Wed Feb 22 01:50:13 2012 New Revision: 231988 URL: http://svn.freebsd.org/changeset/base/231988 Log: Restore structure layout by reverting the array header to use [0] instead of [1]. Modified: projects/head_mfi/sys/dev/mfi/mfireg.h Modified: projects/head_mfi/sys/dev/mfi/mfireg.h ============================================================================== --- projects/head_mfi/sys/dev/mfi/mfireg.h Wed Feb 22 01:30:25 2012 (r231987) +++ projects/head_mfi/sys/dev/mfi/mfireg.h Wed Feb 22 01:50:13 2012 (r231988) @@ -1294,9 +1294,9 @@ struct mfi_config_data { uint16_t spares_count; uint16_t spares_size; uint8_t reserved[16]; - struct mfi_array array[1]; - struct mfi_ld_config ld[1]; - struct mfi_spare spare[1]; + struct mfi_array array[0]; + struct mfi_ld_config ld[0]; + struct mfi_spare spare[0]; } __packed; struct mfi_bbu_capacity_info { From owner-svn-src-projects@FreeBSD.ORG Wed Feb 22 04:52:39 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7431E106566B; Wed, 22 Feb 2012 04:52: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 5C98A8FC12; Wed, 22 Feb 2012 04:52: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 q1M4qd0M035200; Wed, 22 Feb 2012 04:52:39 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1M4qd6W035189; Wed, 22 Feb 2012 04:52:39 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201202220452.q1M4qd6W035189@svn.freebsd.org> From: Rick Macklem Date: Wed, 22 Feb 2012 04:52:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r231993 - in projects/nfsv4.1-client/sys/fs: nfs nfsclient X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2012 04:52:39 -0000 Author: rmacklem Date: Wed Feb 22 04:52:38 2012 New Revision: 231993 URL: http://svn.freebsd.org/changeset/base/231993 Log: Restructure the nfsclds structure which holds NFSv4.1 sessions so that it becomes a list off of the mount point. This is needed so that it can be easily searched for the "same server" as the DS just connected to. In turn, this is needed, since you cannot create a second session on the same server unless you have the record with the sequence# for the first session. The code currently will simply reuse the session that is already established. The nfscl_sameserver() is currently a stub that needs to be coded. This code has done a trivial file read through the DS provided by a Linux pNFS single server, but still needs a lot of work. Modified: projects/nfsv4.1-client/sys/fs/nfs/nfs_commonkrpc.c projects/nfsv4.1-client/sys/fs/nfs/nfs_commonport.c projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h projects/nfsv4.1-client/sys/fs/nfs/nfsport.h projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h Modified: projects/nfsv4.1-client/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfs_commonkrpc.c Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfs/nfs_commonkrpc.c Wed Feb 22 04:52:38 2012 (r231993) @@ -799,7 +799,7 @@ tryagain: if (nd->nd_procnum != NFSPROC_NULL) { /* If sep == NULL, set it to the default in nmp. */ if (sep == NULL && nmp != NULL) - sep = &nmp->nm_sess; + sep = NFSMNT_MDSSESSION(nmp); /* * and now the actual NFS xdr. */ Modified: projects/nfsv4.1-client/sys/fs/nfs/nfs_commonport.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfs_commonport.c Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfs/nfs_commonport.c Wed Feb 22 04:52:38 2012 (r231993) @@ -107,6 +107,8 @@ MALLOC_DEFINE(M_NEWNFSDROLLBACK, "NFSD r MALLOC_DEFINE(M_NEWNFSLAYOUT, "NFSCL layout", "NFSv4.1 Layout"); MALLOC_DEFINE(M_NEWNFSFLAYOUT, "NFSCL flayout", "NFSv4.1 File Layout"); MALLOC_DEFINE(M_NEWNFSDEVINFO, "NFSCL devinfo", "NFSv4.1 Device Info"); +MALLOC_DEFINE(M_NEWNFSSOCKREQ, "NFSCL sockreq", "NFS Sock Req"); +MALLOC_DEFINE(M_NEWNFSCLDS, "NFSCL session", "NFSv4.1 Session"); /* * Definition of mutex locks. Modified: projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h Wed Feb 22 04:52:38 2012 (r231993) @@ -437,7 +437,8 @@ int nfsrpc_delegreturn(struct nfscldeleg int nfsrpc_getacl(vnode_t, struct ucred *, NFSPROC_T *, NFSACL_T *, void *); int nfsrpc_setacl(vnode_t, struct ucred *, NFSPROC_T *, NFSACL_T *, void *); int nfsrpc_exchangeid(struct nfsmount *, struct nfsclclient *, - struct nfsclsession *, uint32_t, struct ucred *, NFSPROC_T *); + struct nfssockreq *, uint32_t, struct nfsclds **, struct ucred *, + NFSPROC_T *); int nfsrpc_createsession(struct nfsmount *, struct nfsclsession *, struct ucred *, NFSPROC_T *); int nfsrpc_destroysession(struct nfsmount *, struct nfsclclient *, @@ -457,6 +458,7 @@ int nfsrpc_layoutreturn(vnode_t, int, in int nfsrpc_reclaimcomplete(struct nfsmount *, struct ucred *, NFSPROC_T *); int nfscl_doiods(vnode_t, struct uio *, int *, int *, uint32_t, struct ucred *, NFSPROC_T *); +void nfscl_freenfsclds(struct nfsclds *); /* nfs_clstate.c */ int nfscl_open(vnode_t, u_int8_t *, int, u_int32_t, int, Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h Wed Feb 22 04:52:38 2012 (r231993) @@ -71,13 +71,17 @@ struct nfsclsession { /* * This structure holds the information used to access a Data Server (DS). + * It is malloc'd to the correct length. */ struct nfsclds { - struct mtx nfsclds_mtx; - struct nfssockreq nfsclds_sock; + LIST_ENTRY(nfsclds) nfsclds_list; struct nfsclsession nfsclds_sess; - int nfsclds_haswriteverf; + struct mtx nfsclds_mtx; + struct nfssockreq *nfsclds_sockp; + uint16_t nfsclds_haswriteverf; + uint16_t nfsclds_servownlen; uint8_t nfsclds_verf[NFSX_VERF]; + uint8_t nfsclds_serverown[0]; }; struct nfsclclient { @@ -268,14 +272,14 @@ struct nfscldevinfo { uint32_t nfsdi_refcnt; uint16_t nfsdi_stripecnt; uint16_t nfsdi_addrcnt; - struct nfsclds nfsdi_data[1]; + struct nfsclds *nfsdi_data[0]; }; /* These inline functions return values from nfsdi_data[]. */ /* * Return a pointer to the address at "pos". */ -static __inline struct nfsclds * +static __inline struct nfsclds ** nfsfldi_addr(struct nfscldevinfo *ndi, int pos) { Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsport.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfsport.h Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfs/nfsport.h Wed Feb 22 04:52:38 2012 (r231993) @@ -739,6 +739,8 @@ MALLOC_DECLARE(M_NEWNFSDROLLBACK); MALLOC_DECLARE(M_NEWNFSLAYOUT); MALLOC_DECLARE(M_NEWNFSFLAYOUT); MALLOC_DECLARE(M_NEWNFSDEVINFO); +MALLOC_DECLARE(M_NEWNFSSOCKREQ); +MALLOC_DECLARE(M_NEWNFSCLDS); #define M_NFSRVCACHE M_NEWNFSRVCACHE #define M_NFSDCLIENT M_NEWNFSDCLIENT #define M_NFSDSTATE M_NEWNFSDSTATE @@ -761,6 +763,8 @@ MALLOC_DECLARE(M_NEWNFSDEVINFO); #define M_NFSLAYOUT M_NEWNFSLAYOUT #define M_NFSFLAYOUT M_NEWNFSFLAYOUT #define M_NFSDEVINFO M_NEWNFSDEVINFO +#define M_NFSSOCKREQ M_NEWNFSSOCKREQ +#define M_NFSCLDS M_NEWNFSCLDS #define NFSINT_SIGMASK(set) \ (SIGISMEMBER(set, SIGINT) || SIGISMEMBER(set, SIGTERM) || \ Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clcomsubs.c Wed Feb 22 04:52:38 2012 (r231993) @@ -200,7 +200,7 @@ nfscl_reqstart(struct nfsrv_descript *nd NFSM_BUILD(tl, u_int32_t *, NFSX_UNSIGNED); *tl = txdr_unsigned(NFSV4OP_SEQUENCE); if (sep == NULL) - nfsv4_setsequence(nd, &nmp->nm_sess, + nfsv4_setsequence(nd, NFSMNT_MDSSESSION(nmp), nfs_bigreply[procnum]); else nfsv4_setsequence(nd, sep, Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Wed Feb 22 04:52:38 2012 (r231993) @@ -87,8 +87,8 @@ static int nfsrpc_setaclrpc(vnode_t, str struct acl *, nfsv4stateid_t *, void *); static int nfsrpc_getlayout(struct nfsmount *, struct nfsfh *, int, uint32_t *, nfsv4stateid_t *, struct ucred *, NFSPROC_T *); -static int nfsrpc_fillsa(struct nfsmount *, struct nfsclds *, - struct sockaddr_storage *, NFSPROC_T *); +static int nfsrpc_fillsa(struct nfsmount *, struct sockaddr_storage *, + struct nfsclds **, NFSPROC_T *); static void nfscl_initsessionslots(struct nfsclsession *); static int nfscl_findlayoutforio(struct nfscllayout *, uint64_t, uint32_t, struct nfsclflayout **); @@ -101,6 +101,7 @@ static int nfsrpc_readds(vnode_t, struct static int nfsrpc_writeds(vnode_t, struct uio *, int *, int *, nfsv4stateid_t *, struct nfsclds *, uint64_t, int, struct nfsfh *, int, struct ucred *, NFSPROC_T *); +static struct nfsclds *nfscl_getsameserver(struct nfsmount *, struct nfsclds *); /* * nfs null call from vfs. @@ -381,8 +382,8 @@ nfsrpc_openrpc(struct nfsmount *nmp, vno *tl++ = txdr_unsigned(op->nfso_own->nfsow_seqid); *tl++ = txdr_unsigned(mode & NFSV4OPEN_ACCESSBOTH); *tl++ = txdr_unsigned((mode >> NFSLCK_SHIFT) & NFSV4OPEN_DENYBOTH); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; (void) nfsm_strtom(nd, op->nfso_own->nfsow_owner, NFSV4CL_LOCKNAMELEN); NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); *tl++ = txdr_unsigned(NFSV4OPEN_NOCREATE); @@ -806,18 +807,27 @@ nfsrpc_setclient(struct nfsmount *nmp, s nfsquad_t confirm; u_int32_t lease; static u_int32_t rev = 0; + struct nfsclds *dsp; if (nfsboottime.tv_sec == 0) NFSSETBOOTTIME(nfsboottime); clp->nfsc_rev = rev++; if (NFSHASNFSV4N(nmp)) { - error = nfsrpc_exchangeid(nmp, clp, &nmp->nm_sess, - NFSV4EXCH_USEPNFSMDS | NFSV4EXCH_USENONPNFS, cred, p); + error = nfsrpc_exchangeid(nmp, clp, &nmp->nm_sockreq, + NFSV4EXCH_USEPNFSMDS | NFSV4EXCH_USENONPNFS, &dsp, cred, p); if (error) printf("exch=%d\n",error); if (error == 0) { - nfscl_initsessionslots(&nmp->nm_sess); - error = nfsrpc_createsession(nmp, &nmp->nm_sess, cred, - p); + error = nfsrpc_createsession(nmp, &dsp->nfsclds_sess, + cred, p); + if (error == 0) { + KASSERT(LIST_FIRST(&nmp->nm_sess) == NULL, + ("nfscl session non-NULL")); + NFSLOCKMNT(nmp); + LIST_INSERT_HEAD(&nmp->nm_sess, dsp, + nfsclds_list); + NFSUNLOCKMNT(nmp); + } else + nfscl_freenfsclds(dsp); if (error) printf("aft crs=%d\n",error); } if (error == 0 && reclaim == 0) { @@ -888,8 +898,8 @@ if (error) printf("aft reclcom=%d\n",err return (error); if (nd->nd_repstat == 0) { NFSM_DISSECT(tl, u_int32_t *, 4 * NFSX_UNSIGNED); - nmp->nm_sess.nfsess_clientid.lval[0] = *tl++; - nmp->nm_sess.nfsess_clientid.lval[1] = *tl++; + NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0] = *tl++; + NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1] = *tl++; confirm.lval[0] = *tl++; confirm.lval[1] = *tl; mbuf_freem(nd->nd_mrep); @@ -901,8 +911,8 @@ if (error) printf("aft reclcom=%d\n",err nfscl_reqstart(nd, NFSPROC_SETCLIENTIDCFRM, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, u_int32_t *, 4 * NFSX_UNSIGNED); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl++ = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; *tl++ = confirm.lval[0]; *tl = confirm.lval[1]; nd->nd_flag |= ND_USEGSSNAME; @@ -1925,8 +1935,8 @@ nfsrpc_createv4(vnode_t dvp, char *name, *tl++ = txdr_unsigned(NFSV4OPEN_ACCESSWRITE | NFSV4OPEN_ACCESSREAD); *tl++ = txdr_unsigned(NFSV4OPEN_DENYNONE); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; (void) nfsm_strtom(nd, owp->nfsow_owner, NFSV4CL_LOCKNAMELEN); NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); *tl++ = txdr_unsigned(NFSV4OPEN_CREATE); @@ -3718,8 +3728,8 @@ nfsrpc_lockt(struct nfsrv_descript *nd, tl += 2; txdr_hyper(len, tl); tl += 2; - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; nfscl_filllockowner(id, own, flags); np = VTONFS(vp); NFSBCOPY(np->n_fhp->nfh_fh, &own[NFSV4CL_LOCKNAMELEN], @@ -3849,8 +3859,8 @@ nfsrpc_lock(struct nfsrv_descript *nd, s *tl++ = lp->nfsl_open->nfso_stateid.other[1]; *tl++ = lp->nfsl_open->nfso_stateid.other[2]; *tl++ = txdr_unsigned(lp->nfsl_seqid); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; NFSBCOPY(lp->nfsl_owner, own, NFSV4CL_LOCKNAMELEN); NFSBCOPY(nfhp, &own[NFSV4CL_LOCKNAMELEN], fhlen); (void)nfsm_strtom(nd, own, NFSV4CL_LOCKNAMELEN + fhlen); @@ -4095,8 +4105,8 @@ nfsrpc_renew(struct nfsclclient *clp, st if (!NFSHASNFSV4N(nmp)) { /* NFSv4.1 just uses a Sequence Op and not a Renew. */ NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; } nd->nd_flag |= ND_USEGSSNAME; error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, @@ -4129,8 +4139,8 @@ nfsrpc_rellockown(struct nfsmount *nmp, nfscl_reqstart(nd, NFSPROC_RELEASELCKOWN, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, u_int32_t *, 2 * NFSX_UNSIGNED); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; NFSBCOPY(lp->nfsl_owner, own, NFSV4CL_LOCKNAMELEN); NFSBCOPY(fh, &own[NFSV4CL_LOCKNAMELEN], fhlen); (void)nfsm_strtom(nd, own, NFSV4CL_LOCKNAMELEN + fhlen); @@ -4323,22 +4333,24 @@ nfsrpc_setaclrpc(vnode_t vp, struct ucre */ int nfsrpc_exchangeid(struct nfsmount *nmp, struct nfsclclient *clp, - struct nfsclsession *sep, uint32_t exchflags, struct ucred *cred, - NFSPROC_T *p) + struct nfssockreq *nrp, uint32_t exchflags, struct nfsclds **dspp, + struct ucred *cred, NFSPROC_T *p) { uint32_t *tl, v41flags; struct nfsrv_descript nfsd; struct nfsrv_descript *nd = &nfsd; + struct nfsclds *dsp; struct timespec verstime; - int error; + int error, len; + *dspp = NULL; nfscl_reqstart(nd, NFSPROC_EXCHANGEID, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, uint32_t *, 2 * NFSX_UNSIGNED); *tl++ = txdr_unsigned(nfsboottime.tv_sec); /* Client owner */ *tl = txdr_unsigned(clp->nfsc_rev); (void) nfsm_strtom(nd, clp->nfsc_id, clp->nfsc_idlen); - NFSM_BUILD(tl, u_int32_t *, 3 * NFSX_UNSIGNED); + NFSM_BUILD(tl, uint32_t *, 3 * NFSX_UNSIGNED); *tl++ = txdr_unsigned(exchflags); *tl++ = txdr_unsigned(NFSV4EXCH_SP4NONE); @@ -4346,21 +4358,31 @@ nfsrpc_exchangeid(struct nfsmount *nmp, *tl = txdr_unsigned(1); (void) nfsm_strtom(nd, "freebsd.org", strlen("freebsd.org")); (void) nfsm_strtom(nd, version, strlen(version)); - NFSM_BUILD(tl, u_int32_t *, NFSX_V4TIME); + NFSM_BUILD(tl, uint32_t *, NFSX_V4TIME); verstime.tv_sec = 1293840000; /* Jan 1, 2011 */ verstime.tv_nsec = 0; txdr_nfsv4time(&verstime, tl); nd->nd_flag |= ND_USEGSSNAME; - error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, + error = newnfs_request(nd, nmp, NULL, nrp, NULL, p, cred, NFS_PROG, NFS_VER4, NULL, 1, NULL, NULL); printf("exch err=%d reps=%d\n",error,nd->nd_repstat); if (error != 0) return (error); if (nd->nd_repstat == 0) { - NFSM_DISSECT(tl, u_int32_t *, 4 * NFSX_UNSIGNED); - sep->nfsess_clientid.lval[0] = *tl++; - sep->nfsess_clientid.lval[1] = *tl++; - sep->nfsess_sequenceid = fxdr_unsigned(uint32_t, *tl++); + NFSM_DISSECT(tl, uint32_t *, 6 * NFSX_UNSIGNED + NFSX_HYPER); + len = fxdr_unsigned(int, *(tl + 7)); +printf("servlen=%d\n", len); + if (len < 1 || len > NFSV4_OPAQUELIMIT) { + error = NFSERR_BADXDR; + goto nfsmout; + } + dsp = malloc(sizeof(struct nfsclds) + len, M_NFSCLDS, + M_WAITOK | M_ZERO); + dsp->nfsclds_servownlen = len; + dsp->nfsclds_sess.nfsess_clientid.lval[0] = *tl++; + dsp->nfsclds_sess.nfsess_clientid.lval[1] = *tl++; + dsp->nfsclds_sess.nfsess_sequenceid = + fxdr_unsigned(uint32_t, *tl++); v41flags = fxdr_unsigned(uint32_t, *tl); printf("v41fl=0x%x\n", v41flags); if ((v41flags & NFSV4EXCH_USEPNFSMDS) != 0) { @@ -4368,6 +4390,15 @@ printf("v41fl=0x%x\n", v41flags); nmp->nm_state |= NFSSTA_PNFS; NFSUNLOCKMNT(nmp); } + nd->nd_repstat = nfsrv_mtostr(nd, dsp->nfsclds_serverown, len); + if (nd->nd_repstat == 0) { + mtx_init(&dsp->nfsclds_mtx, "nfsds", NULL, MTX_DEF); + mtx_init(&dsp->nfsclds_sess.nfsess_mtx, "nfssession", + NULL, MTX_DEF); + nfscl_initsessionslots(&dsp->nfsclds_sess); + *dspp = dsp; + } else + free(dsp, M_NFSCLDS); } error = nd->nd_repstat; nfsmout: @@ -4483,7 +4514,7 @@ nfsrpc_destroysession(struct nfsmount *n nfscl_reqstart(nd, NFSPROC_DESTROYSESSION, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, uint32_t *, NFSX_V4SESSIONID); - bcopy(nmp->nm_sess.nfsess_sessionid, tl, NFSX_V4SESSIONID); + bcopy(NFSMNT_MDSSESSION(nmp)->nfsess_sessionid, tl, NFSX_V4SESSIONID); nd->nd_flag |= ND_USEGSSNAME; error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, NFS_PROG, NFS_VER4, NULL, 1, NULL, NULL); @@ -4508,8 +4539,8 @@ nfsrpc_destroyclient(struct nfsmount *nm nfscl_reqstart(nd, NFSPROC_DESTROYCLIENT, nmp, NULL, 0, NULL, NULL); NFSM_BUILD(tl, uint32_t *, 2 * NFSX_UNSIGNED); - *tl++ = nmp->nm_sess.nfsess_clientid.lval[0]; - *tl = nmp->nm_sess.nfsess_clientid.lval[1]; + *tl++ = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[0]; + *tl = NFSMNT_MDSSESSION(nmp)->nfsess_clientid.lval[1]; nd->nd_flag |= ND_USEGSSNAME; error = newnfs_request(nd, nmp, NULL, &nmp->nm_sockreq, NULL, p, cred, NFS_PROG, NFS_VER4, NULL, 1, NULL, NULL); @@ -4679,7 +4710,7 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm struct nfsrv_descript nfsd; struct nfsrv_descript *nd = &nfsd; struct sockaddr_storage ss; - struct nfsclds *sa; + struct nfsclds *dsp = NULL, **dspp; struct nfscldevinfo *ndi; int addrcnt, bitcnt, error, i, isudp, j, pos, safilled, stripecnt; uint8_t stripeindex; @@ -4708,6 +4739,7 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm if (layouttype != fxdr_unsigned(int, *tl++)) printf("EEK! devinfo layout type not same!\n"); stripecnt = fxdr_unsigned(int, *++tl); +printf("stripecnt=%d\n", stripecnt); if (stripecnt < 1 || stripecnt > 4096) { printf("NFS devinfo stripecnt %d: out of range\n", stripecnt); @@ -4716,6 +4748,7 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm } NFSM_DISSECT(tl, uint32_t *, (stripecnt + 1) * NFSX_UNSIGNED); addrcnt = fxdr_unsigned(int, *(tl + stripecnt)); +printf("addrcnt=%d\n", addrcnt); if (addrcnt < 1 || addrcnt > 128) { printf("NFS devinfo addrcnt %d: out of range\n", addrcnt); @@ -4727,9 +4760,11 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm * Now we know how many stripe indices and addresses, so * we can allocate the structure the correct size. */ - i = stripecnt / sizeof(struct nfsclds) + 1; - ndi = malloc(sizeof(*ndi) + (addrcnt + i - 1) * - sizeof(struct nfsclds), M_NFSDEVINFO, M_WAITOK | M_ZERO); + i = (stripecnt * sizeof(uint8_t)) / sizeof(struct nfsclds *) + + 1; +printf("i=%d\n", i); + ndi = malloc(sizeof(*ndi) + (addrcnt + i) * + sizeof(struct nfsclds *), M_NFSDEVINFO, M_WAITOK | M_ZERO); NFSBCOPY(deviceid, ndi->nfsdi_deviceid, NFSX_V4DEVICEID); ndi->nfsdi_refcnt = 0; ndi->nfsdi_stripecnt = stripecnt; @@ -4737,6 +4772,7 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm /* Fill in the stripe indices. */ for (i = 0; i < stripecnt; i++) { stripeindex = fxdr_unsigned(uint8_t, *tl++); +printf("stripeind=%d\n", stripeindex); if (stripeindex >= addrcnt) { printf("NFS devinfo stripeindex %d: too big\n", (int)stripeindex); @@ -4756,9 +4792,10 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm error = NFSERR_BADXDR; goto nfsmout; } - sa = nfsfldi_addr(ndi, i); + dspp = nfsfldi_addr(ndi, i); pos = arc4random() % cnt; /* Choose one. */ safilled = 0; +printf("dspp=%p pos=%d\n", dspp, pos); for (j = 0; j < cnt; j++) { error = nfsv4_getipaddr(nd, &ss, &isudp); if (error != 0 && error != EPERM) { @@ -4782,9 +4819,11 @@ nfsrpc_getdeviceinfo(struct nfsmount *nm nmp->nm_nam->sa_family)) || (safilled == 1 && ss.ss_family == nmp->nm_nam->sa_family)) { - error = nfsrpc_fillsa(nmp, sa, - &ss, p); + error = nfsrpc_fillsa(nmp, &ss, + &dsp, p); if (error == 0) { + *dspp = dsp; +printf("safill dsp=%p\n", dsp); if (ss.ss_family == nmp->nm_nam->sa_family) safilled = 2; @@ -5002,16 +5041,19 @@ nfsrpc_getlayout(struct nfsmount *nmp, s } /* - * Fill in nfsclds, doing the TCP connect plus exchangeid and create session. - * The nfsclds structure pointed to by dsp is all zero'd out. + * Do a TCP connection plus exchange id and create session. + * If successful, a "struct nfsclds" is linked into the list for the + * mount point and a pointer to it is returned. */ static int -nfsrpc_fillsa(struct nfsmount *nmp, struct nfsclds *dsp, - struct sockaddr_storage *ssp, NFSPROC_T *p) +nfsrpc_fillsa(struct nfsmount *nmp, struct sockaddr_storage *ssp, + struct nfsclds **dspp, NFSPROC_T *p) { struct sockaddr_in *sad, *ssd; struct sockaddr_in6 *sad6, *ssd6; struct nfsclclient *clp; + struct nfssockreq *nrp; + struct nfsclds *dsp, *tdsp; int error; KASSERT(nmp->nm_sockreq.nr_cred != NULL, @@ -5021,6 +5063,7 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru NFSUNLOCKCLSTATE(); if (clp == NULL) return (EPERM); + nrp = malloc(sizeof(*nrp), M_NFSSOCKREQ, M_WAITOK | M_ZERO); if (ssp->ss_family == AF_INET) { ssd = (struct sockaddr_in *)ssp; sad = malloc(sizeof(*sad), M_SONAME, M_WAITOK | M_ZERO); @@ -5028,7 +5071,7 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru sad->sin_family = AF_INET; sad->sin_port = ssd->sin_port; sad->sin_addr.s_addr = ssd->sin_addr.s_addr; - dsp->nfsclds_sock.nr_nam = (struct sockaddr *)sad; + nrp->nr_nam = (struct sockaddr *)sad; } else if (ssp->ss_family == AF_INET6) { ssd6 = (struct sockaddr_in6 *)ssp; sad6 = malloc(sizeof(*sad6), M_SONAME, M_WAITOK | M_ZERO); @@ -5037,15 +5080,15 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru sad6->sin6_port = ssd6->sin6_port; NFSBCOPY(&ssd6->sin6_addr, &sad6->sin6_addr, sizeof(struct in6_addr)); - dsp->nfsclds_sock.nr_nam = (struct sockaddr *)sad6; - } else + nrp->nr_nam = (struct sockaddr *)sad6; + } else { + free(nrp, M_NFSSOCKREQ); return (EPERM); - mtx_init(&dsp->nfsclds_mtx, "nfsds", NULL, MTX_DEF); - dsp->nfsclds_sock.nr_sotype = SOCK_STREAM; - mtx_init(&dsp->nfsclds_sock.nr_mtx, "nfssock", NULL, MTX_DEF); - dsp->nfsclds_sock.nr_prog = NFS_PROG; - dsp->nfsclds_sock.nr_vers = NFS_VER4; - mtx_init(&dsp->nfsclds_sess.nfsess_mtx, "nfssession", NULL, MTX_DEF); + } + nrp->nr_sotype = SOCK_STREAM; + mtx_init(&nrp->nr_mtx, "nfssock", NULL, MTX_DEF); + nrp->nr_prog = NFS_PROG; + nrp->nr_vers = NFS_VER4; /* * Use the credentials that were used for the mount, which are @@ -5054,26 +5097,48 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru * necessary, since nm_sockreq.nr_cred won't be crfree()'d until * unmount, but I did it anyhow. */ - dsp->nfsclds_sock.nr_cred = crhold(nmp->nm_sockreq.nr_cred); - error = newnfs_connect(nmp, &dsp->nfsclds_sock, NULL, p, 0); + nrp->nr_cred = crhold(nmp->nm_sockreq.nr_cred); + error = newnfs_connect(nmp, nrp, NULL, p, 0); /* Now, do the exchangeid and create session. */ if (error == 0) - error = nfsrpc_exchangeid(nmp, clp, &dsp->nfsclds_sess, - NFSV4EXCH_USEPNFSDS, dsp->nfsclds_sock.nr_cred, p); + error = nfsrpc_exchangeid(nmp, clp, nrp, NFSV4EXCH_USEPNFSDS, + &dsp, nrp->nr_cred, p); if (error == 0) { - nfscl_initsessionslots(&dsp->nfsclds_sess); + dsp->nfsclds_sockp = nrp; + tdsp = nfscl_getsameserver(nmp, dsp); + if (tdsp != NULL) { + /* + * If there is already a session for this server, + * use it. + */ + (void)newnfs_disconnect(nrp); + nfscl_freenfsclds(dsp); + *dspp = tdsp; + return (0); + } error = nfsrpc_createsession(nmp, &dsp->nfsclds_sess, - dsp->nfsclds_sock.nr_cred, p); - } - if (error != 0) { - NFSFREECRED(dsp->nfsclds_sock.nr_cred); - NFSFREEMUTEX(&dsp->nfsclds_mtx); - NFSFREEMUTEX(&dsp->nfsclds_sock.nr_mtx); - NFSFREEMUTEX(&dsp->nfsclds_sess.nfsess_mtx); - free(dsp->nfsclds_sock.nr_nam, M_SONAME); - NFSBZERO(dsp, sizeof(*dsp)); + nrp->nr_cred, p); + } else { + NFSFREECRED(nrp->nr_cred); + NFSFREEMUTEX(&nrp->nr_mtx); + free(nrp->nr_nam, M_SONAME); + free(nrp, M_NFSSOCKREQ); } + if (error == 0) { + /* + * The first element should be the one for the MDS. + */ + NFSLOCKMNT(nmp); + tdsp = LIST_FIRST(&nmp->nm_sess); + if (tdsp == NULL) + LIST_INSERT_HEAD(&nmp->nm_sess, dsp, nfsclds_list); + else + LIST_INSERT_AFTER(tdsp, dsp, nfsclds_list); + NFSUNLOCKMNT(nmp); + *dspp = dsp; + } else if (dsp != NULL) + nfscl_freenfsclds(dsp); return (error); } @@ -5248,7 +5313,7 @@ nfscl_doflayoutio(vnode_t vp, struct uio int commit_thru_mds, error = 0, stripe_index, stripe_pos; struct nfsnode *np; struct nfsfh *fhp; - struct nfsclds *dsp; + struct nfsclds **dspp; np = VTONFS(vp); rel_off = off - flp->nfsfl_patoff; @@ -5260,7 +5325,7 @@ nfscl_doflayoutio(vnode_t vp, struct uio /* Loop around, doing I/O for each stripe unit. */ while (len > 0 && error == 0) { stripe_index = nfsfldi_stripeindex(dp, stripe_pos); - dsp = nfsfldi_addr(dp, stripe_index); + dspp = nfsfldi_addr(dp, stripe_index); if (len > transfer) xfer = transfer; else @@ -5290,11 +5355,11 @@ nfscl_doflayoutio(vnode_t vp, struct uio else commit_thru_mds = 0; if (rwflag == FREAD) - error = nfsrpc_readds(vp, uiop, stateidp, eofp, dsp, + error = nfsrpc_readds(vp, uiop, stateidp, eofp, *dspp, io_off, xfer, fhp, cred, p); else error = nfsrpc_writeds(vp, uiop, iomode, must_commit, - stateidp, dsp, io_off, xfer, fhp, commit_thru_mds, + stateidp, *dspp, io_off, xfer, fhp, commit_thru_mds, cred, p); if (error == 0) { transfer = stripe_unit_size; @@ -5319,6 +5384,7 @@ nfsrpc_readds(vnode_t vp, struct uio *ui struct nfsrv_descript nfsd; struct nfsmount *nmp = VFSTONFS(vnode_mount(vp)); struct nfsrv_descript *nd = &nfsd; + struct nfssockreq *nrp; nd->nd_mrep = NULL; nfscl_reqstart(nd, NFSPROC_READ, nmp, fhp->nfh_fh, fhp->nfh_len, @@ -5327,7 +5393,11 @@ nfsrpc_readds(vnode_t vp, struct uio *ui NFSM_BUILD(tl, uint32_t *, NFSX_UNSIGNED * 3); txdr_hyper(io_off, tl); *(tl + 2) = txdr_unsigned(len); - error = newnfs_request(nd, nmp, NULL, &dsp->nfsclds_sock, vp, p, cred, + nrp = dsp->nfsclds_sockp; + if (nrp == NULL) + /* If NULL, use the MDS socket. */ + nrp = &nmp->nm_sockreq; + error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred, NFS_PROG, NFS_VER4, NULL, 1, NULL, &dsp->nfsclds_sess); if (error != 0) return (error); @@ -5359,6 +5429,7 @@ nfsrpc_writeds(vnode_t vp, struct uio *u int32_t backup; struct nfsrv_descript nfsd; struct nfsrv_descript *nd = &nfsd; + struct nfssockreq *nrp; KASSERT(uiop->uio_iovcnt == 1, ("nfs: writerpc iovcnt > 1")); nd->nd_mrep = NULL; @@ -5371,7 +5442,11 @@ nfsrpc_writeds(vnode_t vp, struct uio *u *tl++ = txdr_unsigned(*iomode); *tl = txdr_unsigned(len); nfsm_uiombuf(nd, uiop, len); - error = newnfs_request(nd, nmp, NULL, &dsp->nfsclds_sock, vp, p, cred, + nrp = dsp->nfsclds_sockp; + if (nrp == NULL) + /* If NULL, use the MDS socket. */ + nrp = &nmp->nm_sockreq; + error = newnfs_request(nd, nmp, NULL, nrp, vp, p, cred, NFS_PROG, NFS_VER4, NULL, 1, NULL, &dsp->nfsclds_sess); if (error != 0) return (error); @@ -5442,3 +5517,40 @@ nfsmout: return (error); } +/* + * Free up the nfsclds structure. + */ +void +nfscl_freenfsclds(struct nfsclds *dsp) +{ + int i; + + if (dsp == NULL) + return; + if (dsp->nfsclds_sockp != NULL) { + NFSFREECRED(dsp->nfsclds_sockp->nr_cred); + NFSFREEMUTEX(&dsp->nfsclds_sockp->nr_mtx); + free(dsp->nfsclds_sockp->nr_nam, M_SONAME); + free(dsp->nfsclds_sockp, M_NFSSOCKREQ); + } + NFSFREEMUTEX(&dsp->nfsclds_mtx); + NFSFREEMUTEX(&dsp->nfsclds_sess.nfsess_mtx); + for (i = 0; i < NFSV4_CBSLOTS; i++) { + if (dsp->nfsclds_sess.nfsess_cbslots[i].nfssl_reply != NULL) + m_freem( + dsp->nfsclds_sess.nfsess_cbslots[i].nfssl_reply); + } + free(dsp, M_NFSCLDS); +} + +static struct nfsclds * +nfscl_getsameserver(struct nfsmount *nmp, struct nfsclds *newdsp) +{ + + /* + * Search the list of nfsclds structures for one with the same + * server. + */ + return (LIST_FIRST(&nmp->nm_sess)); +} + Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clstate.c Wed Feb 22 04:52:38 2012 (r231993) @@ -3216,8 +3216,10 @@ printf("cbrecall\n"); if (error == 0) error = nfsv4_seqsession(seqid, slotid, highslot, - clp->nfsc_nmp->nm_sess.nfsess_cbslots, &rep, - clp->nfsc_nmp->nm_sess.nfsess_backslots); + NFSMNT_MDSSESSION(clp->nfsc_nmp)-> + nfsess_cbslots, &rep, + NFSMNT_MDSSESSION(clp->nfsc_nmp)-> + nfsess_backslots); NFSUNLOCKCLSTATE(); if (error == 0) { gotseq_ok = 1; @@ -3285,7 +3287,8 @@ out: clp = nfscl_getclntsess(sessionid); if (clp != NULL) { nfsv4_seqsess_cacherep(slotid, - clp->nfsc_nmp->nm_sess.nfsess_cbslots, rep); + NFSMNT_MDSSESSION(clp->nfsc_nmp)->nfsess_cbslots, + rep); NFSUNLOCKCLSTATE(); } else { NFSUNLOCKCLSTATE(); @@ -3347,8 +3350,8 @@ nfscl_getmnt(int minorvers, uint8_t *ses if (minorvers == NFSV4_MINORVERSION) { if (clp->nfsc_cbident == cbident) break; - } else if (!NFSBCMP(clp->nfsc_nmp->nm_sess.nfsess_sessionid, - sessionid, NFSX_V4SESSIONID)) + } else if (!NFSBCMP(NFSMNT_MDSSESSION(clp->nfsc_nmp)-> + nfsess_sessionid, sessionid, NFSX_V4SESSIONID)) break; } if (clp == NULL) { @@ -3389,8 +3392,8 @@ nfscl_getclntsess(uint8_t *sessionid) struct nfsclclient *clp; LIST_FOREACH(clp, &nfsclhead, nfsc_list) - if (!NFSBCMP(clp->nfsc_nmp->nm_sess.nfsess_sessionid, sessionid, - NFSX_V4SESSIONID)) + if (!NFSBCMP(NFSMNT_MDSSESSION(clp->nfsc_nmp)->nfsess_sessionid, + sessionid, NFSX_V4SESSIONID)) break; return (clp); } @@ -4659,20 +4662,7 @@ nfscl_freeflayout(struct nfsclflayout *f APPLESTATIC void nfscl_freedevinfo(struct nfscldevinfo *dip) { - int i; - struct nfsclds *dsp; - for (i = 0; i < dip->nfsdi_addrcnt; i++) { - dsp = nfsfldi_addr(dip, i); - if (dsp->nfsclds_sock.nr_nam != NULL) { - /* All are set or none are. */ - NFSFREECRED(dsp->nfsclds_sock.nr_cred); - NFSFREEMUTEX(&dsp->nfsclds_mtx); - NFSFREEMUTEX(&dsp->nfsclds_sock.nr_mtx); - NFSFREEMUTEX(&dsp->nfsclds_sess.nfsess_mtx); - free(dsp->nfsclds_sock.nr_nam, M_SONAME); - } - } free(dip, M_NFSDEVINFO); } Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c Wed Feb 22 04:52:38 2012 (r231993) @@ -1193,9 +1193,10 @@ mountnfs(struct nfs_args *argp, struct m { struct nfsmount *nmp; struct nfsnode *np; - int error, i, trycnt, ret; + int error, trycnt, ret; struct nfsvattr nfsva; struct nfsclclient *clp; + struct nfsclds *dsp, *tdsp; uint32_t lease; static u_int64_t clval = 0; @@ -1254,7 +1255,6 @@ printf("in mnt\n"); } nmp->nm_sockreq.nr_cred = crhold(cred); mtx_init(&nmp->nm_sockreq.nr_mtx, "nfssock", NULL, MTX_DEF); - mtx_init(&nmp->nm_sess.nfsess_mtx, "nfssession", NULL, MTX_DEF); mp->mnt_data = nmp; nmp->nm_getinfo = nfs_getnlminfo; nmp->nm_vinvalbuf = ncl_vinvalbuf; @@ -1445,18 +1445,15 @@ bad: newnfs_disconnect(&nmp->nm_sockreq); crfree(nmp->nm_sockreq.nr_cred); mtx_destroy(&nmp->nm_sockreq.nr_mtx); - mtx_destroy(&nmp->nm_sess.nfsess_mtx); mtx_destroy(&nmp->nm_mtx); if (nmp->nm_clp != NULL) { NFSLOCKCLSTATE(); LIST_REMOVE(nmp->nm_clp, nfsc_list); NFSUNLOCKCLSTATE(); free(nmp->nm_clp, M_NFSCLCLIENT); - for (i = 0; i < NFSV4_CBSLOTS; i++) - if (nmp->nm_sess.nfsess_cbslots[i].nfssl_reply != NULL) - m_freem( - nmp->nm_sess.nfsess_cbslots[i].nfssl_reply); } + LIST_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) + nfscl_freenfsclds(dsp); FREE(nmp, M_NEWNFSMNT); FREE(nam, M_SONAME); return (error); @@ -1470,7 +1467,8 @@ nfs_unmount(struct mount *mp, int mntfla { struct thread *td; struct nfsmount *nmp; - int error, flags = 0, i, trycnt = 0; + int error, flags = 0, trycnt = 0; + struct nfsclds *dsp, *tdsp; td = curthread; @@ -1511,10 +1509,8 @@ nfs_unmount(struct mount *mp, int mntfla mtx_destroy(&nmp->nm_sockreq.nr_mtx); mtx_destroy(&nmp->nm_mtx); - mtx_destroy(&nmp->nm_sess.nfsess_mtx); - for (i = 0; i < NFSV4_CBSLOTS; i++) - if (nmp->nm_sess.nfsess_cbslots[i].nfssl_reply != NULL) - m_freem(nmp->nm_sess.nfsess_cbslots[i].nfssl_reply); + LIST_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) + nfscl_freenfsclds(dsp); FREE(nmp, M_NEWNFSMNT); out: return (error); Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h Wed Feb 22 04:51:17 2012 (r231992) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h Wed Feb 22 04:52:38 2012 (r231993) @@ -70,7 +70,7 @@ struct nfsmount { int nm_negnametimeo; /* timeout for -ve entries (sec) */ /* Newnfs additions */ - struct nfsclsession nm_sess; /* Session for NFSv4.1 mount. */ + LIST_HEAD(, nfsclds) nm_sess; /* Session(s) for NFSv4.1. */ struct nfsclclient *nm_clp; uid_t nm_uid; /* Uid for SetClientID etc. */ u_int64_t nm_clval; /* identifies which clientid */ @@ -109,6 +109,12 @@ struct nfsmount { */ #define VFSTONFS(mp) ((struct nfsmount *)((mp)->mnt_data)) +/* + * Get a pointer to the MDS session, which is always the first element + * in the list. + */ +#define NFSMNT_MDSSESSION(m) (&(LIST_FIRST(&((m)->nm_sess))->nfsclds_sess)) + #ifndef NFS_DEFAULT_NAMETIMEO #define NFS_DEFAULT_NAMETIMEO 60 #endif From owner-svn-src-projects@FreeBSD.ORG Wed Feb 22 22:45:50 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 66C42106566B; Wed, 22 Feb 2012 22:45:50 +0000 (UTC) (envelope-from dmarion@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5631E8FC08; Wed, 22 Feb 2012 22: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 q1MMjoFt072465; Wed, 22 Feb 2012 22:45:50 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1MMjoSh072463; Wed, 22 Feb 2012 22:45:50 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201202222245.q1MMjoSh072463@svn.freebsd.org> From: Damjan Marion Date: Wed, 22 Feb 2012 22:45:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232012 - projects/armv6/sys/arm/ti/am335x X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2012 22:45:50 -0000 Author: dmarion Date: Wed Feb 22 22:45:49 2012 New Revision: 232012 URL: http://svn.freebsd.org/changeset/base/232012 Log: am335x reset function Approved by: cognet (mentor) Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Wed Feb 22 22:40:20 2012 (r232011) +++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Wed Feb 22 22:45:49 2012 (r232012) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -78,6 +79,8 @@ __FBSDID("$FreeBSD$"); #define CLKSEL_TIMER5_CLK (CM_DPLL + 0x018) #define CLKSEL_TIMER6_CLK (CM_DPLL + 0x01C) +#define PRM_DEVICE_OFFSET 0xF00 +#define PRM_RSTCTRL (PRM_DEVICE_OFFSET + 0x00) struct am335x_prcm_softc { struct resource * res[2]; @@ -97,6 +100,7 @@ static int am335x_clk_generic_deactivate static int am335x_clk_generic_set_source(struct ti_clock_dev *clkdev, clk_src_t clksrc); static int am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); static int am335x_clk_get_arm_fclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq); +static void am335x_prcm_reset(void); static int am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev); #define AM335X_GENERIC_CLOCK_DEV(i) \ @@ -220,6 +224,7 @@ am335x_prcm_attach(device_t dev) sc->bsh = rman_get_bushandle(sc->res[0]); am335x_prcm_sc = sc; + ti_cpu_reset = am335x_prcm_reset; am335x_clk_get_sysclk_freq(NULL, &sysclk); am335x_clk_get_arm_fclk_freq(NULL, &fclk); @@ -392,6 +397,12 @@ am335x_clk_get_arm_fclk_freq(struct ti_c return(0); } +static void +am335x_prcm_reset(void) +{ + prcm_write_4(PRM_RSTCTRL, (1<<1)); +} + static int am335x_clk_cpsw_activate(struct ti_clock_dev *clkdev) { From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 03:16:10 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 206FF1065674; Thu, 23 Feb 2012 03:16: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 0E62A8FC1B; Thu, 23 Feb 2012 03:16: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 q1N3G9xG081132; Thu, 23 Feb 2012 03:16:09 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1N3G9v6081126; Thu, 23 Feb 2012 03:16:09 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201202230316.q1N3G9v6081126@svn.freebsd.org> From: Rick Macklem Date: Thu, 23 Feb 2012 03:16:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232017 - in projects/nfsv4.1-client/sys/fs: nfs nfsclient X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 03:16:10 -0000 Author: rmacklem Date: Thu Feb 23 03:16:09 2012 New Revision: 232017 URL: http://svn.freebsd.org/changeset/base/232017 Log: Implement the nfscl_getsameserver() function that searches the list of nfsclds structures for ones that are for the same server as the new one. If it finds a match that supports Data Server (DS), just return that one to use. If it finds a match that doesn't support DS, then return that one, so that the nfsess_sequenceid field can be use to sequence a new session. The list of nfsclds needed to be changed to a tailq so that the list could be maintained in temporal order (although the first one should be the only one that is for a MDS and, therefore, might not support DS). Flags were added to struct nfsclds to indicate MDS and/or DS support. Modified: projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h Modified: projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h Thu Feb 23 01:22:40 2012 (r232016) +++ projects/nfsv4.1-client/sys/fs/nfs/nfs_var.h Thu Feb 23 03:16:09 2012 (r232017) @@ -440,7 +440,7 @@ int nfsrpc_exchangeid(struct nfsmount *, struct nfssockreq *, uint32_t, struct nfsclds **, struct ucred *, NFSPROC_T *); int nfsrpc_createsession(struct nfsmount *, struct nfsclsession *, - struct ucred *, NFSPROC_T *); + uint32_t, struct ucred *, NFSPROC_T *); int nfsrpc_destroysession(struct nfsmount *, struct nfsclclient *, struct ucred *, NFSPROC_T *); int nfsrpc_destroyclient(struct nfsmount *, struct nfsclclient *, Modified: projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h Thu Feb 23 01:22:40 2012 (r232016) +++ projects/nfsv4.1-client/sys/fs/nfs/nfsclstate.h Thu Feb 23 03:16:09 2012 (r232017) @@ -70,20 +70,28 @@ struct nfsclsession { }; /* - * This structure holds the information used to access a Data Server (DS). + * This structure holds the session, clientid and related information + * needed for an NFSv4.1 Meta Data Server (MDS) or Data Server (DS). * It is malloc'd to the correct length. */ struct nfsclds { - LIST_ENTRY(nfsclds) nfsclds_list; + TAILQ_ENTRY(nfsclds) nfsclds_list; struct nfsclsession nfsclds_sess; struct mtx nfsclds_mtx; struct nfssockreq *nfsclds_sockp; - uint16_t nfsclds_haswriteverf; + uint16_t nfsclds_flags; uint16_t nfsclds_servownlen; uint8_t nfsclds_verf[NFSX_VERF]; uint8_t nfsclds_serverown[0]; }; +/* + * Flags for nfsclds_flags. + */ +#define NFSCLDS_HASWRITEVERF 0x0001 +#define NFSCLDS_MDS 0x0002 +#define NFSCLDS_DS 0x0004 + struct nfsclclient { LIST_ENTRY(nfsclclient) nfsc_list; struct nfsclownerhead nfsc_owner; Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Thu Feb 23 01:22:40 2012 (r232016) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clrpcops.c Thu Feb 23 03:16:09 2012 (r232017) @@ -66,6 +66,19 @@ int nfstest_openallsetattr = 0; #define DIRHDSIZ (sizeof (struct dirent) - (MAXNAMLEN + 1)) +/* + * nfscl_getsameserver() can return one of three values: + * NFSDSP_USETHISSESSION - Use this session for the DS. + * NFSDSP_SEQTHISSESSION - Use the nfsclds_sequence field of this dsp for new + * session. + * NFSDSP_NOTFOUND - No matching server was found. + */ +enum nfsclds_state { + NFSDSP_USETHISSESSION = 0, + NFSDSP_SEQTHISSESSION = 1, + NFSDSP_NOTFOUND = 2, +}; + static int nfsrpc_setattrrpc(vnode_t , struct vattr *, nfsv4stateid_t *, struct ucred *, NFSPROC_T *, struct nfsvattr *, int *, void *); static int nfsrpc_readrpc(vnode_t , struct uio *, struct ucred *, @@ -101,7 +114,8 @@ static int nfsrpc_readds(vnode_t, struct static int nfsrpc_writeds(vnode_t, struct uio *, int *, int *, nfsv4stateid_t *, struct nfsclds *, uint64_t, int, struct nfsfh *, int, struct ucred *, NFSPROC_T *); -static struct nfsclds *nfscl_getsameserver(struct nfsmount *, struct nfsclds *); +static enum nfsclds_state nfscl_getsameserver(struct nfsmount *, + struct nfsclds *, struct nfsclds **); /* * nfs null call from vfs. @@ -818,12 +832,12 @@ nfsrpc_setclient(struct nfsmount *nmp, s if (error) printf("exch=%d\n",error); if (error == 0) { error = nfsrpc_createsession(nmp, &dsp->nfsclds_sess, - cred, p); + dsp->nfsclds_sess.nfsess_sequenceid, cred, p); if (error == 0) { - KASSERT(LIST_FIRST(&nmp->nm_sess) == NULL, + KASSERT(TAILQ_FIRST(&nmp->nm_sess) == NULL, ("nfscl session non-NULL")); NFSLOCKMNT(nmp); - LIST_INSERT_HEAD(&nmp->nm_sess, dsp, + TAILQ_INSERT_HEAD(&nmp->nm_sess, dsp, nfsclds_list); NFSUNLOCKMNT(nmp); } else @@ -4389,7 +4403,10 @@ printf("v41fl=0x%x\n", v41flags); NFSLOCKMNT(nmp); nmp->nm_state |= NFSSTA_PNFS; NFSUNLOCKMNT(nmp); + dsp->nfsclds_flags |= NFSCLDS_MDS; } + if ((v41flags & NFSV4EXCH_USEPNFSDS) != 0) + dsp->nfsclds_flags |= NFSCLDS_DS; nd->nd_repstat = nfsrv_mtostr(nd, dsp->nfsclds_serverown, len); if (nd->nd_repstat == 0) { mtx_init(&dsp->nfsclds_mtx, "nfsds", NULL, MTX_DEF); @@ -4411,7 +4428,7 @@ nfsmout: */ int nfsrpc_createsession(struct nfsmount *nmp, struct nfsclsession *sep, - struct ucred *cred, NFSPROC_T *p) + uint32_t sequenceid, struct ucred *cred, NFSPROC_T *p) { uint32_t *tl; struct nfsrv_descript nfsd; @@ -4422,8 +4439,8 @@ nfsrpc_createsession(struct nfsmount *nm NFSM_BUILD(tl, uint32_t *, 4 * NFSX_UNSIGNED); *tl++ = sep->nfsess_clientid.lval[0]; *tl++ = sep->nfsess_clientid.lval[1]; - *tl++ = txdr_unsigned(sep->nfsess_sequenceid); -printf("clseq0=0x%x\n",sep->nfsess_sequenceid); + *tl++ = txdr_unsigned(sequenceid); +printf("clseq0=0x%x\n",sequenceid); if (nfscl_enablecallb != 0 && nfs_numnfscbd > 0) *tl = txdr_unsigned(NFSV4CRSESS_PERSIST | NFSV4CRSESS_CONNBACKCHAN); @@ -5055,6 +5072,8 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru struct nfssockreq *nrp; struct nfsclds *dsp, *tdsp; int error; + enum nfsclds_state retv; + uint32_t sequenceid; KASSERT(nmp->nm_sockreq.nr_cred != NULL, ("nfsrpc_fillsa: NULL nr_cred")); @@ -5106,8 +5125,10 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru &dsp, nrp->nr_cred, p); if (error == 0) { dsp->nfsclds_sockp = nrp; - tdsp = nfscl_getsameserver(nmp, dsp); - if (tdsp != NULL) { + NFSLOCKMNT(nmp); + retv = nfscl_getsameserver(nmp, dsp, &tdsp); + if (retv == NFSDSP_USETHISSESSION) { + NFSUNLOCKMNT(nmp); /* * If there is already a session for this server, * use it. @@ -5117,8 +5138,14 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru *dspp = tdsp; return (0); } + if (retv == NFSDSP_SEQTHISSESSION) { + tdsp->nfsclds_sess.nfsess_sequenceid++; + sequenceid = tdsp->nfsclds_sess.nfsess_sequenceid; + } else + sequenceid = dsp->nfsclds_sess.nfsess_sequenceid; + NFSUNLOCKMNT(nmp); error = nfsrpc_createsession(nmp, &dsp->nfsclds_sess, - nrp->nr_cred, p); + sequenceid, nrp->nr_cred, p); } else { NFSFREECRED(nrp->nr_cred); NFSFREEMUTEX(&nrp->nr_mtx); @@ -5127,14 +5154,13 @@ nfsrpc_fillsa(struct nfsmount *nmp, stru } if (error == 0) { /* - * The first element should be the one for the MDS. + * Put it at the end of the list. That way the list + * is ordered by when the entry was added. This matters + * since the one done first is the one that should be + * used for sequencid'ing any subsequent create sessions. */ NFSLOCKMNT(nmp); - tdsp = LIST_FIRST(&nmp->nm_sess); - if (tdsp == NULL) - LIST_INSERT_HEAD(&nmp->nm_sess, dsp, nfsclds_list); - else - LIST_INSERT_AFTER(tdsp, dsp, nfsclds_list); + TAILQ_INSERT_TAIL(&nmp->nm_sess, dsp, nfsclds_list); NFSUNLOCKMNT(nmp); *dspp = dsp; } else if (dsp != NULL) @@ -5498,9 +5524,9 @@ nfsrpc_writeds(vnode_t vp, struct uio *u NFSUNLOCKMNT(nmp); } else { NFSLOCKDS(dsp); - if (dsp->nfsclds_haswriteverf == 0) { + if ((dsp->nfsclds_flags & NFSCLDS_HASWRITEVERF) == 0) { NFSBCOPY(tl, dsp->nfsclds_verf, NFSX_VERF); - dsp->nfsclds_haswriteverf = 1; + dsp->nfsclds_flags |= NFSCLDS_HASWRITEVERF; } else if (NFSBCMP(tl, dsp->nfsclds_verf, NFSX_VERF)) { *must_commit = 1; NFSBCOPY(tl, dsp->nfsclds_verf, NFSX_VERF); @@ -5543,14 +5569,40 @@ nfscl_freenfsclds(struct nfsclds *dsp) free(dsp, M_NFSCLDS); } -static struct nfsclds * -nfscl_getsameserver(struct nfsmount *nmp, struct nfsclds *newdsp) +static enum nfsclds_state +nfscl_getsameserver(struct nfsmount *nmp, struct nfsclds *newdsp, + struct nfsclds **retdspp) { + struct nfsclds *dsp, *cur_dsp; /* * Search the list of nfsclds structures for one with the same * server. */ - return (LIST_FIRST(&nmp->nm_sess)); + cur_dsp = NULL; + TAILQ_FOREACH(dsp, &nmp->nm_sess, nfsclds_list) { + if (dsp->nfsclds_servownlen == newdsp->nfsclds_servownlen && + !NFSBCMP(dsp->nfsclds_serverown, newdsp->nfsclds_serverown, + dsp->nfsclds_servownlen)) { +printf("fnd same fdsp=%p dsp=%p flg=0x%x\n", TAILQ_FIRST(&nmp->nm_sess), dsp, dsp->nfsclds_flags); + /* Server major id matches. */ + if ((dsp->nfsclds_flags & NFSCLDS_DS) != 0) { + *retdspp = dsp; + return (NFSDSP_USETHISSESSION); + } + + /* + * Note the first match, so it can be used for + * sequence'ing new sessions. + */ + if (cur_dsp == NULL) + cur_dsp = dsp; + } + } + if (cur_dsp != NULL) { + *retdspp = cur_dsp; + return (NFSDSP_SEQTHISSESSION); + } + return (NFSDSP_NOTFOUND); } Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c Thu Feb 23 01:22:40 2012 (r232016) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfs_clvfsops.c Thu Feb 23 03:16:09 2012 (r232017) @@ -1452,7 +1452,7 @@ bad: NFSUNLOCKCLSTATE(); free(nmp->nm_clp, M_NFSCLCLIENT); } - LIST_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) + TAILQ_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) nfscl_freenfsclds(dsp); FREE(nmp, M_NEWNFSMNT); FREE(nam, M_SONAME); @@ -1509,7 +1509,7 @@ nfs_unmount(struct mount *mp, int mntfla mtx_destroy(&nmp->nm_sockreq.nr_mtx); mtx_destroy(&nmp->nm_mtx); - LIST_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) + TAILQ_FOREACH_SAFE(dsp, &nmp->nm_sess, nfsclds_list, tdsp) nfscl_freenfsclds(dsp); FREE(nmp, M_NEWNFSMNT); out: Modified: projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h ============================================================================== --- projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h Thu Feb 23 01:22:40 2012 (r232016) +++ projects/nfsv4.1-client/sys/fs/nfsclient/nfsmount.h Thu Feb 23 03:16:09 2012 (r232017) @@ -70,7 +70,7 @@ struct nfsmount { int nm_negnametimeo; /* timeout for -ve entries (sec) */ /* Newnfs additions */ - LIST_HEAD(, nfsclds) nm_sess; /* Session(s) for NFSv4.1. */ + TAILQ_HEAD(, nfsclds) nm_sess; /* Session(s) for NFSv4.1. */ struct nfsclclient *nm_clp; uid_t nm_uid; /* Uid for SetClientID etc. */ u_int64_t nm_clval; /* identifies which clientid */ @@ -113,7 +113,7 @@ struct nfsmount { * Get a pointer to the MDS session, which is always the first element * in the list. */ -#define NFSMNT_MDSSESSION(m) (&(LIST_FIRST(&((m)->nm_sess))->nfsclds_sess)) +#define NFSMNT_MDSSESSION(m) (&(TAILQ_FIRST(&((m)->nm_sess))->nfsclds_sess)) #ifndef NFS_DEFAULT_NAMETIMEO #define NFS_DEFAULT_NAMETIMEO 60 From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 09:23:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0770B106566C; Thu, 23 Feb 2012 09:23:11 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CD9838FC15; Thu, 23 Feb 2012 09:23: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 q1N9NAJW093494; Thu, 23 Feb 2012 09:23:10 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1N9NABD093493; Thu, 23 Feb 2012 09:23:10 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202230923.q1N9NABD093493@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 23 Feb 2012 09:23:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232042 - projects/pf/head X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 09:23:11 -0000 Author: glebius Date: Thu Feb 23 09:23:10 2012 New Revision: 232042 URL: http://svn.freebsd.org/changeset/base/232042 Log: Branch for pf related work. Added: - copied from r232039, head/ Directory Properties: projects/pf/head/ (props changed) From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 10:18:29 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19731106564A; Thu, 23 Feb 2012 10:18:29 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 040848FC14; Thu, 23 Feb 2012 10:18: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 q1NAIS3k099091; Thu, 23 Feb 2012 10:18:28 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1NAISrV099085; Thu, 23 Feb 2012 10:18:28 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202231018.q1NAISrV099085@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 23 Feb 2012 10:18:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232043 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 10:18:29 -0000 Author: glebius Date: Thu Feb 23 10:18:28 2012 New Revision: 232043 URL: http://svn.freebsd.org/changeset/base/232043 Log: - Cleanup #ifdef. - Remove spl(9) calls. - Remove #defines that mask FreeBSD API: use uma(9) implicitly, use correct malloc(9) flags, etc.. - Minor cleanups. Only compile tested. Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.c projects/pf/head/sys/contrib/pf/net/if_pflog.h projects/pf/head/sys/contrib/pf/net/if_pflow.h projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/contrib/pf/net/if_pfsync.h projects/pf/head/sys/contrib/pf/net/pf.c projects/pf/head/sys/contrib/pf/net/pf_if.c projects/pf/head/sys/contrib/pf/net/pf_ioctl.c projects/pf/head/sys/contrib/pf/net/pf_lb.c projects/pf/head/sys/contrib/pf/net/pf_norm.c projects/pf/head/sys/contrib/pf/net/pf_osfp.c projects/pf/head/sys/contrib/pf/net/pf_ruleset.c projects/pf/head/sys/contrib/pf/net/pf_table.c projects/pf/head/sys/contrib/pf/net/pfvar.h Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pflog.c Thu Feb 23 09:23:10 2012 (r232042) +++ projects/pf/head/sys/contrib/pf/net/if_pflog.c Thu Feb 23 10:18:28 2012 (r232043) @@ -33,7 +33,6 @@ * PURPOSE. */ -#ifdef __FreeBSD__ #include "opt_inet.h" #include "opt_inet6.h" #include "opt_bpf.h" @@ -54,30 +53,20 @@ __FBSDID("$FreeBSD$"); #define NPFLOG 0 #endif -#else /* ! __FreeBSD__ */ -#include "bpfilter.h" -#include "pflog.h" -#endif /* __FreeBSD__ */ #include #include #include #include #include -#ifdef __FreeBSD__ #include #include #include #include #include -#else -#include -#endif #include -#ifdef __FreeBSD__ #include -#endif #include #include #include @@ -99,11 +88,9 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef __FreeBSD__ #ifdef INET #include #endif /* INET */ -#endif /* __FreeBSD__ */ #define PFLOGMTU (32768 + MHLEN + MLEN) @@ -115,28 +102,14 @@ __FBSDID("$FreeBSD$"); void pflogattach(int); int pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr *, -#ifdef __FreeBSD__ struct route *); -#else - struct rtentry *); -#endif int pflogioctl(struct ifnet *, u_long, caddr_t); void pflogstart(struct ifnet *); -#ifdef __FreeBSD__ static int pflog_clone_create(struct if_clone *, int, caddr_t); static void pflog_clone_destroy(struct ifnet *); -#else -int pflog_clone_create(struct if_clone *, int); -int pflog_clone_destroy(struct ifnet *); -#endif LIST_HEAD(, pflog_softc) pflogif_list; -#ifdef __FreeBSD__ IFC_SIMPLE_DECLARE(pflog, 1); -#else -struct if_clone pflog_cloner = - IF_CLONE_INITIALIZER("pflog", pflog_clone_create, pflog_clone_destroy); -#endif struct ifnet *pflogifs[PFLOGIFS_MAX]; /* for fast access */ @@ -150,17 +123,11 @@ pflogattach(int npflog) if_clone_attach(&pflog_cloner); } -#ifdef __FreeBSD__ static int pflog_clone_create(struct if_clone *ifc, int unit, caddr_t param) -#else -int -pflog_clone_create(struct if_clone *ifc, int unit) -#endif { struct ifnet *ifp; struct pflog_softc *pflogif; - int s; if (unit >= PFLOGIFS_MAX) return (EINVAL); @@ -170,88 +137,50 @@ pflog_clone_create(struct if_clone *ifc, return (ENOMEM); pflogif->sc_unit = unit; -#ifdef __FreeBSD__ ifp = pflogif->sc_ifp = if_alloc(IFT_PFLOG); if (ifp == NULL) { free(pflogif, M_DEVBUF); return (ENOSPC); } if_initname(ifp, ifc->ifc_name, unit); -#else - ifp = &pflogif->sc_if; - snprintf(ifp->if_xname, sizeof ifp->if_xname, "pflog%d", unit); -#endif ifp->if_softc = pflogif; ifp->if_mtu = PFLOGMTU; ifp->if_ioctl = pflogioctl; ifp->if_output = pflogoutput; ifp->if_start = pflogstart; -#ifndef __FreeBSD__ - ifp->if_type = IFT_PFLOG; -#endif ifp->if_snd.ifq_maxlen = ifqmaxlen; ifp->if_hdrlen = PFLOG_HDRLEN; if_attach(ifp); -#ifndef __FreeBSD__ - if_alloc_sadl(ifp); -#endif #if NBPFILTER > 0 -#ifdef __FreeBSD__ bpfattach(ifp, DLT_PFLOG, PFLOG_HDRLEN); -#else - bpfattach(&pflogif->sc_if.if_bpf, ifp, DLT_PFLOG, PFLOG_HDRLEN); -#endif #endif - s = splnet(); -#ifdef __FreeBSD__ /* XXX: Why pf(4) lock?! Better add a pflog lock?! */ PF_LOCK(); -#endif LIST_INSERT_HEAD(&pflogif_list, pflogif, sc_list); pflogifs[unit] = ifp; -#ifdef __FreeBSD__ PF_UNLOCK(); -#endif - splx(s); return (0); } -#ifdef __FreeBSD__ static void pflog_clone_destroy(struct ifnet *ifp) -#else -int -pflog_clone_destroy(struct ifnet *ifp) -#endif { struct pflog_softc *pflogif = ifp->if_softc; - int s; - s = splnet(); -#ifdef __FreeBSD__ PF_LOCK(); -#endif pflogifs[pflogif->sc_unit] = NULL; LIST_REMOVE(pflogif, sc_list); -#ifdef __FreeBSD__ PF_UNLOCK(); -#endif - splx(s); #if NBPFILTER > 0 bpfdetach(ifp); #endif if_detach(ifp); -#ifdef __FreeBSD__ if_free(ifp); -#endif free(pflogif, M_DEVBUF); -#ifndef __FreeBSD__ - return (0); -#endif } /* @@ -261,22 +190,12 @@ void pflogstart(struct ifnet *ifp) { struct mbuf *m; -#ifndef __FreeBSD__ - int s; -#endif for (;;) { -#ifdef __FreeBSD__ IF_LOCK(&ifp->if_snd); _IF_DROP(&ifp->if_snd); _IF_DEQUEUE(&ifp->if_snd, m); IF_UNLOCK(&ifp->if_snd); -#else - s = splnet(); - IF_DROP(&ifp->if_snd); - IF_DEQUEUE(&ifp->if_snd, m); - splx(s); -#endif if (m == NULL) return; @@ -287,11 +206,7 @@ pflogstart(struct ifnet *ifp) int pflogoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, -#ifdef __FreeBSD__ struct route *rt) -#else - struct rtentry *rt) -#endif { m_freem(m); return (0); @@ -303,17 +218,10 @@ pflogioctl(struct ifnet *ifp, u_long cmd { switch (cmd) { case SIOCSIFFLAGS: -#ifdef __FreeBSD__ if (ifp->if_flags & IFF_UP) ifp->if_drv_flags |= IFF_DRV_RUNNING; else ifp->if_drv_flags &= ~IFF_DRV_RUNNING; -#else - if (ifp->if_flags & IFF_UP) - ifp->if_flags |= IFF_RUNNING; - else - ifp->if_flags &= ~IFF_RUNNING; -#endif break; default: return (ENOTTY); @@ -355,15 +263,11 @@ pflog_packet(struct pfi_kif *kif, struct sizeof(hdr.ruleset)); } if (rm->log & PF_LOG_SOCKET_LOOKUP && !pd->lookup.done) -#ifdef __FreeBSD__ /* * XXX: This should not happen as we force an early lookup * via debug.pfugidhack */ ; /* empty */ -#else - pd->lookup.done = pf_socket_lookup(dir, pd); -#endif if (pd->lookup.done > 0) { hdr.uid = pd->lookup.uid; hdr.pid = pd->lookup.pid; @@ -387,18 +291,12 @@ pflog_packet(struct pfi_kif *kif, struct ifn->if_opackets++; ifn->if_obytes += m->m_pkthdr.len; -#ifdef __FreeBSD__ BPF_MTAP2(ifn, &hdr, PFLOG_HDRLEN, m); -#else - bpf_mtap_hdr(ifn->if_bpf, (char *)&hdr, PFLOG_HDRLEN, m, - BPF_DIRECTION_OUT); -#endif #endif return (0); } -#ifdef __FreeBSD__ static int pflog_modevent(module_t mod, int type, void *data) { @@ -432,4 +330,3 @@ static moduledata_t pflog_mod = { "pflog DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); MODULE_VERSION(pflog, PFLOG_MODVER); MODULE_DEPEND(pflog, pf, PF_MODVER, PF_MODVER, PF_MODVER); -#endif /* __FreeBSD__ */ Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.h ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pflog.h Thu Feb 23 09:23:10 2012 (r232042) +++ projects/pf/head/sys/contrib/pf/net/if_pflog.h Thu Feb 23 10:18:28 2012 (r232043) @@ -30,11 +30,7 @@ #define PFLOGIFS_MAX 16 struct pflog_softc { -#ifdef __FreeBSD__ struct ifnet *sc_ifp; /* the interface pointer */ -#else - struct ifnet sc_if; /* the interface */ -#endif int sc_unit; LIST_ENTRY(pflog_softc) sc_list; }; @@ -74,28 +70,14 @@ struct old_pfloghdr { #define OLD_PFLOG_HDRLEN sizeof(struct old_pfloghdr) #ifdef _KERNEL -#ifdef __FreeBSD__ struct pf_rule; struct pf_ruleset; struct pfi_kif; struct pf_pdesc; -#if 0 -typedef int pflog_packet_t(struct pfi_kif *, struct mbuf *, sa_family_t, - u_int8_t, u_int8_t, struct pf_rule *, struct pf_rule *, - struct pf_ruleset *, struct pf_pdesc *); -extern pflog_packet_t *pflog_packet_ptr; -#endif #define PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) do { \ if (pflog_packet_ptr != NULL) \ pflog_packet_ptr(i,a,b,c,d,e,f,g,h); \ } while (0) -#else /* ! __FreeBSD__ */ -#if NPFLOG > 0 -#define PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) pflog_packet(i,a,b,c,d,e,f,g,h) -#else -#define PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) ((void)0) -#endif /* NPFLOG > 0 */ -#endif #endif /* _KERNEL */ #endif /* _NET_IF_PFLOG_H_ */ Modified: projects/pf/head/sys/contrib/pf/net/if_pflow.h ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pflow.h Thu Feb 23 09:23:10 2012 (r232042) +++ projects/pf/head/sys/contrib/pf/net/if_pflow.h Thu Feb 23 10:18:28 2012 (r232043) @@ -66,11 +66,7 @@ struct pflow_softc { unsigned int sc_maxcount; u_int64_t sc_gcounter; struct ip_moptions sc_imo; -#ifdef __FreeBSD__ struct callout sc_tmo; -#else - struct timeout sc_tmo; -#endif struct in_addr sc_sender_ip; u_int16_t sc_sender_port; struct in_addr sc_receiver_ip; Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Thu Feb 23 09:23:10 2012 (r232042) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Thu Feb 23 10:18:28 2012 (r232043) @@ -51,7 +51,6 @@ * 1.170 - SIOCSIFMTU checks */ -#ifdef __FreeBSD__ #include "opt_inet.h" #include "opt_inet6.h" #include "opt_pf.h" @@ -60,21 +59,17 @@ __FBSDID("$FreeBSD$"); #define NBPFILTER 1 -#endif /* __FreeBSD__ */ #include #include -#ifdef __FreeBSD__ #include #include #include -#endif #include #include #include #include #include -#ifdef __FreeBSD__ #include #include #include @@ -83,26 +78,15 @@ __FBSDID("$FreeBSD$"); #include #include #include -#else -#include -#include -#endif #include -#ifndef __FreeBSD__ -#include -#endif #include -#ifdef __FreeBSD__ #include -#endif #include #include #include #include -#ifdef __FreeBSD__ #include -#endif #include #include @@ -120,22 +104,11 @@ __FBSDID("$FreeBSD$"); #include #endif /* INET6 */ -#ifdef __FreeBSD__ #include -#else -#include "carp.h" -#if NCARP > 0 -#include -#endif -#endif #include #include -#ifndef __FreeBSD__ -#include "bpfilter.h" -#include "pfsync.h" -#endif #define PFSYNC_MINPKT ( \ sizeof(struct ip) + \ @@ -217,11 +190,7 @@ struct pfsync_deferral { TAILQ_ENTRY(pfsync_deferral) pd_entry; struct pf_state *pd_st; struct mbuf *pd_m; -#ifdef __FreeBSD__ struct callout pd_tmo; -#else - struct timeout pd_tmo; -#endif }; TAILQ_HEAD(pfsync_deferrals, pfsync_deferral); @@ -233,26 +202,16 @@ int pfsync_out_tdb(struct tdb *, struct #endif struct pfsync_softc { -#ifdef __FreeBSD__ struct ifnet *sc_ifp; -#else - struct ifnet sc_if; -#endif struct ifnet *sc_sync_if; -#ifdef __FreeBSD__ uma_zone_t sc_pool; -#else - struct pool sc_pool; -#endif struct ip_moptions sc_imo; struct in_addr sc_sync_peer; u_int8_t sc_maxupdates; -#ifdef __FreeBSD__ int pfsync_sync_ok; -#endif struct ip sc_template; @@ -269,31 +228,18 @@ struct pfsync_softc { u_int32_t sc_ureq_sent; int sc_bulk_tries; -#ifdef __FreeBSD__ struct callout sc_bulkfail_tmo; -#else - struct timeout sc_bulkfail_tmo; -#endif u_int32_t sc_ureq_received; struct pf_state *sc_bulk_next; struct pf_state *sc_bulk_last; -#ifdef __FreeBSD__ struct callout sc_bulk_tmo; -#else - struct timeout sc_bulk_tmo; -#endif TAILQ_HEAD(, tdb) sc_tdb_q; -#ifdef __FreeBSD__ struct callout sc_tmo; -#else - struct timeout sc_tmo; -#endif }; -#ifdef __FreeBSD__ static MALLOC_DEFINE(M_PFSYNC, "pfsync", "pfsync data"); static VNET_DEFINE(struct pfsync_softc *, pfsyncif) = NULL; #define V_pfsyncif VNET(pfsyncif) @@ -319,29 +265,15 @@ SYSCTL_VNET_STRUCT(_net_pfsync, OID_AUTO "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)"); SYSCTL_INT(_net_pfsync, OID_AUTO, carp_demotion_factor, CTLFLAG_RW, &VNET_NAME(pfsync_carp_adj), 0, "pfsync's CARP demotion factor adjustment"); -#else -struct pfsync_softc *pfsyncif = NULL; -struct pfsyncstats pfsyncstats; -#define V_pfsyncstats pfsyncstats -#endif void pfsyncattach(int); -#ifdef __FreeBSD__ int pfsync_clone_create(struct if_clone *, int, caddr_t); void pfsync_clone_destroy(struct ifnet *); -#else -int pfsync_clone_create(struct if_clone *, int); -int pfsync_clone_destroy(struct ifnet *); -#endif int pfsync_alloc_scrub_memory(struct pfsync_state_peer *, struct pf_state_peer *); void pfsync_update_net_tdb(struct pfsync_tdb *); int pfsyncoutput(struct ifnet *, struct mbuf *, struct sockaddr *, -#ifdef __FreeBSD__ struct route *); -#else - struct rtentry *); -#endif int pfsyncioctl(struct ifnet *, u_long, caddr_t); void pfsyncstart(struct ifnet *); @@ -365,27 +297,13 @@ void pfsync_bulk_status(u_int8_t); void pfsync_bulk_update(void *); void pfsync_bulk_fail(void *); -#ifdef __FreeBSD__ -/* XXX: ugly */ -#define betoh64 (unsigned long long)be64toh -#define timeout_del callout_stop -#endif - #define PFSYNC_MAX_BULKTRIES 12 -#ifndef __FreeBSD__ -int pfsync_sync_ok; -#endif -#ifdef __FreeBSD__ VNET_DEFINE(struct ifc_simple_data, pfsync_cloner_data); VNET_DEFINE(struct if_clone, pfsync_cloner); #define V_pfsync_cloner_data VNET(pfsync_cloner_data) #define V_pfsync_cloner VNET(pfsync_cloner) IFC_SIMPLE_DECLARE(pfsync, 1); -#else -struct if_clone pfsync_cloner = - IF_CLONE_INITIALIZER("pfsync", pfsync_clone_create, pfsync_clone_destroy); -#endif void pfsyncattach(int npfsync) @@ -393,11 +311,7 @@ pfsyncattach(int npfsync) if_clone_attach(&pfsync_cloner); } int -#ifdef __FreeBSD__ pfsync_clone_create(struct if_clone *ifc, int unit, caddr_t param) -#else -pfsync_clone_create(struct if_clone *ifc, int unit) -#endif { struct pfsync_softc *sc; struct ifnet *ifp; @@ -406,23 +320,14 @@ pfsync_clone_create(struct if_clone *ifc if (unit != 0) return (EINVAL); -#ifdef __FreeBSD__ sc = malloc(sizeof(struct pfsync_softc), M_PFSYNC, M_WAITOK | M_ZERO); sc->pfsync_sync_ok = 1; -#else - pfsync_sync_ok = 1; - sc = malloc(sizeof(*pfsyncif), M_DEVBUF, M_NOWAIT | M_ZERO); -#endif for (q = 0; q < PFSYNC_S_COUNT; q++) TAILQ_INIT(&sc->sc_qs[q]); -#ifdef __FreeBSD__ sc->sc_pool = uma_zcreate("pfsync", PFSYNC_PLSIZE, NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); -#else - pool_init(&sc->sc_pool, PFSYNC_PLSIZE, 0, 0, 0, "pfsync", NULL); -#endif TAILQ_INIT(&sc->sc_upd_req_list); TAILQ_INIT(&sc->sc_deferrals); sc->sc_deferred = 0; @@ -432,14 +337,7 @@ pfsync_clone_create(struct if_clone *ifc sc->sc_len = PFSYNC_MINPKT; sc->sc_maxupdates = 128; -#ifndef __FreeBSD__ - sc->sc_imo.imo_membership = (struct in_multi **)malloc( - (sizeof(struct in_multi *) * IP_MIN_MEMBERSHIPS), M_IPMOPTS, - M_WAITOK | M_ZERO); - sc->sc_imo.imo_max_memberships = IP_MIN_MEMBERSHIPS; -#endif -#ifdef __FreeBSD__ ifp = sc->sc_ifp = if_alloc(IFT_PFSYNC); if (ifp == NULL) { uma_zdestroy(sc->sc_pool); @@ -447,10 +345,6 @@ pfsync_clone_create(struct if_clone *ifc return (ENOSPC); } if_initname(ifp, ifc->ifc_name, unit); -#else - ifp = &sc->sc_if; - snprintf(ifp->if_xname, sizeof ifp->if_xname, "pfsync%d", unit); -#endif ifp->if_softc = sc; ifp->if_ioctl = pfsyncioctl; ifp->if_output = pfsyncoutput; @@ -459,67 +353,33 @@ pfsync_clone_create(struct if_clone *ifc ifp->if_snd.ifq_maxlen = ifqmaxlen; ifp->if_hdrlen = sizeof(struct pfsync_header); ifp->if_mtu = ETHERMTU; -#ifdef __FreeBSD__ callout_init(&sc->sc_tmo, CALLOUT_MPSAFE); callout_init_mtx(&sc->sc_bulk_tmo, &pf_task_mtx, 0); callout_init(&sc->sc_bulkfail_tmo, CALLOUT_MPSAFE); -#else - timeout_set(&sc->sc_tmo, pfsync_timeout, sc); - timeout_set(&sc->sc_bulk_tmo, pfsync_bulk_update, sc); - timeout_set(&sc->sc_bulkfail_tmo, pfsync_bulk_fail, sc); -#endif if_attach(ifp); -#ifndef __FreeBSD__ - if_alloc_sadl(ifp); - -#if NCARP > 0 - if_addgroup(ifp, "carp"); -#endif -#endif #if NBPFILTER > 0 -#ifdef __FreeBSD__ bpfattach(ifp, DLT_PFSYNC, PFSYNC_HDRLEN); -#else - bpfattach(&sc->sc_if.if_bpf, ifp, DLT_PFSYNC, PFSYNC_HDRLEN); -#endif #endif -#ifdef __FreeBSD__ V_pfsyncif = sc; -#else - pfsyncif = sc; -#endif return (0); } -#ifdef __FreeBSD__ void -#else -int -#endif pfsync_clone_destroy(struct ifnet *ifp) { struct pfsync_softc *sc = ifp->if_softc; -#ifdef __FreeBSD__ PF_LOCK(); -#endif - timeout_del(&sc->sc_bulkfail_tmo); - timeout_del(&sc->sc_bulk_tmo); - timeout_del(&sc->sc_tmo); -#ifdef __FreeBSD__ + callout_stop(&sc->sc_bulkfail_tmo); + callout_stop(&sc->sc_bulk_tmo); + callout_stop(&sc->sc_tmo); PF_UNLOCK(); if (!sc->pfsync_sync_ok && carp_demote_adj_p) (*carp_demote_adj_p)(-V_pfsync_carp_adj, "pfsync destroy"); -#else -#if NCARP > 0 - if (!pfsync_sync_ok) - carp_group_demote_adj(&sc->sc_if, -1); -#endif -#endif #if NBPFILTER > 0 bpfdetach(ifp); #endif @@ -530,50 +390,25 @@ pfsync_clone_destroy(struct ifnet *ifp) while (sc->sc_deferred > 0) pfsync_undefer(TAILQ_FIRST(&sc->sc_deferrals), 0); -#ifdef __FreeBSD__ - UMA_DESTROY(sc->sc_pool); -#else - pool_destroy(&sc->sc_pool); -#endif -#ifdef __FreeBSD__ + uma_zdestroy(sc->sc_pool); if_free(ifp); if (sc->sc_imo.imo_membership) pfsync_multicast_cleanup(sc); free(sc, M_PFSYNC); -#else - free(sc->sc_imo.imo_membership, M_IPMOPTS); - free(sc, M_DEVBUF); -#endif -#ifdef __FreeBSD__ V_pfsyncif = NULL; -#else - pfsyncif = NULL; -#endif -#ifndef __FreeBSD__ - return (0); -#endif } struct mbuf * pfsync_if_dequeue(struct ifnet *ifp) { struct mbuf *m; -#ifndef __FreeBSD__ - int s; -#endif -#ifdef __FreeBSD__ IF_LOCK(&ifp->if_snd); _IF_DROP(&ifp->if_snd); _IF_DEQUEUE(&ifp->if_snd, m); IF_UNLOCK(&ifp->if_snd); -#else - s = splnet(); - IF_DEQUEUE(&ifp->if_snd, m); - splx(s); -#endif return (m); } @@ -587,9 +422,6 @@ pfsyncstart(struct ifnet *ifp) struct mbuf *m; while ((m = pfsync_if_dequeue(ifp)) != NULL) { -#ifndef __FreeBSD__ - IF_DROP(&ifp->if_snd); -#endif m_freem(m); } } @@ -599,11 +431,7 @@ pfsync_alloc_scrub_memory(struct pfsync_ struct pf_state_peer *d) { if (s->scrub.scrub_flag && d->scrub == NULL) { -#ifdef __FreeBSD__ - d->scrub = pool_get(&V_pf_state_scrub_pl, PR_NOWAIT | PR_ZERO); -#else - d->scrub = pool_get(&pf_state_scrub_pl, PR_NOWAIT | PR_ZERO); -#endif + d->scrub = uma_zalloc(V_pf_state_scrub_pl, M_NOWAIT | M_ZERO); if (d->scrub == NULL) return (ENOMEM); } @@ -611,68 +439,6 @@ pfsync_alloc_scrub_memory(struct pfsync_ return (0); } -#ifndef __FreeBSD__ -void -pfsync_state_export(struct pfsync_state *sp, struct pf_state *st) -{ - bzero(sp, sizeof(struct pfsync_state)); - - /* copy from state key */ - sp->key[PF_SK_WIRE].addr[0] = st->key[PF_SK_WIRE]->addr[0]; - sp->key[PF_SK_WIRE].addr[1] = st->key[PF_SK_WIRE]->addr[1]; - sp->key[PF_SK_WIRE].port[0] = st->key[PF_SK_WIRE]->port[0]; - sp->key[PF_SK_WIRE].port[1] = st->key[PF_SK_WIRE]->port[1]; - sp->key[PF_SK_STACK].addr[0] = st->key[PF_SK_STACK]->addr[0]; - sp->key[PF_SK_STACK].addr[1] = st->key[PF_SK_STACK]->addr[1]; - sp->key[PF_SK_STACK].port[0] = st->key[PF_SK_STACK]->port[0]; - sp->key[PF_SK_STACK].port[1] = st->key[PF_SK_STACK]->port[1]; - sp->proto = st->key[PF_SK_WIRE]->proto; - sp->af = st->key[PF_SK_WIRE]->af; - - /* copy from state */ - strlcpy(sp->ifname, st->kif->pfik_name, sizeof(sp->ifname)); - bcopy(&st->rt_addr, &sp->rt_addr, sizeof(sp->rt_addr)); - sp->creation = htonl(time_uptime - st->creation); - sp->expire = pf_state_expires(st); - if (sp->expire <= time_second) - sp->expire = htonl(0); - else - sp->expire = htonl(sp->expire - time_second); - - sp->direction = st->direction; - sp->log = st->log; - sp->timeout = st->timeout; - sp->state_flags = st->state_flags; - if (st->src_node) - sp->sync_flags |= PFSYNC_FLAG_SRCNODE; - if (st->nat_src_node) - sp->sync_flags |= PFSYNC_FLAG_NATSRCNODE; - - bcopy(&st->id, &sp->id, sizeof(sp->id)); - sp->creatorid = st->creatorid; - pf_state_peer_hton(&st->src, &sp->src); - pf_state_peer_hton(&st->dst, &sp->dst); - - if (st->rule.ptr == NULL) - sp->rule = htonl(-1); - else - sp->rule = htonl(st->rule.ptr->nr); - if (st->anchor.ptr == NULL) - sp->anchor = htonl(-1); - else - sp->anchor = htonl(st->anchor.ptr->nr); - if (st->nat_rule.ptr == NULL) - sp->nat_rule = htonl(-1); - else - sp->nat_rule = htonl(st->nat_rule.ptr->nr); - - pf_state_counter_hton(st->packets[0], sp->packets[0]); - pf_state_counter_hton(st->packets[1], sp->packets[1]); - pf_state_counter_hton(st->bytes[0], sp->bytes[0]); - pf_state_counter_hton(st->bytes[1], sp->bytes[1]); - -} -#endif int pfsync_state_import(struct pfsync_state *sp, u_int8_t flags) @@ -684,24 +450,16 @@ pfsync_state_import(struct pfsync_state int pool_flags; int error; -#ifdef __FreeBSD__ PF_LOCK_ASSERT(); if (sp->creatorid == 0 && V_pf_status.debug >= PF_DEBUG_MISC) { -#else - if (sp->creatorid == 0 && pf_status.debug >= PF_DEBUG_MISC) { -#endif printf("pfsync_state_import: invalid creator id:" " %08x\n", ntohl(sp->creatorid)); return (EINVAL); } if ((kif = pfi_kif_get(sp->ifname)) == NULL) { -#ifdef __FreeBSD__ if (V_pf_status.debug >= PF_DEBUG_MISC) -#else - if (pf_status.debug >= PF_DEBUG_MISC) -#endif printf("pfsync_state_import: " "unknown interface: %s\n", sp->ifname); if (flags & PFSYNC_SI_IOCTL) @@ -719,32 +477,18 @@ pfsync_state_import(struct pfsync_state r = pf_main_ruleset.rules[ PF_RULESET_FILTER].active.ptr_array[ntohl(sp->rule)]; else -#ifdef __FreeBSD__ r = &V_pf_default_rule; -#else - r = &pf_default_rule; -#endif if ((r->max_states && r->states_cur >= r->max_states)) goto cleanup; -#ifdef __FreeBSD__ - if (flags & PFSYNC_SI_IOCTL) - pool_flags = PR_WAITOK | PR_ZERO; - else - pool_flags = PR_NOWAIT | PR_ZERO; - - if ((st = pool_get(&V_pf_state_pl, pool_flags)) == NULL) - goto cleanup; -#else if (flags & PFSYNC_SI_IOCTL) - pool_flags = PR_WAITOK | PR_LIMITFAIL | PR_ZERO; + pool_flags = M_WAITOK | M_ZERO; else - pool_flags = PR_LIMITFAIL | PR_ZERO; + pool_flags = M_NOWAIT | M_ZERO; - if ((st = pool_get(&pf_state_pl, pool_flags)) == NULL) + if ((st = uma_zalloc(V_pf_state_pl, pool_flags)) == NULL) goto cleanup; -#endif if ((skw = pf_alloc_state_key(pool_flags)) == NULL) goto cleanup; @@ -837,49 +581,26 @@ cleanup: error = ENOMEM; if (skw == sks) sks = NULL; -#ifdef __FreeBSD__ - if (skw != NULL) - pool_put(&V_pf_state_key_pl, skw); - if (sks != NULL) - pool_put(&V_pf_state_key_pl, sks); -#else if (skw != NULL) - pool_put(&pf_state_key_pl, skw); + uma_zfree(V_pf_state_key_pl, skw); if (sks != NULL) - pool_put(&pf_state_key_pl, sks); -#endif + uma_zfree(V_pf_state_key_pl, sks); cleanup_state: /* pf_state_insert frees the state keys */ if (st) { -#ifdef __FreeBSD__ - if (st->dst.scrub) - pool_put(&V_pf_state_scrub_pl, st->dst.scrub); - if (st->src.scrub) - pool_put(&V_pf_state_scrub_pl, st->src.scrub); - pool_put(&V_pf_state_pl, st); -#else if (st->dst.scrub) - pool_put(&pf_state_scrub_pl, st->dst.scrub); + uma_zfree(V_pf_state_scrub_pl, st->dst.scrub); if (st->src.scrub) - pool_put(&pf_state_scrub_pl, st->src.scrub); - pool_put(&pf_state_pl, st); -#endif + uma_zfree(V_pf_state_scrub_pl, st->src.scrub); + uma_zfree(V_pf_state_pl, st); } return (error); } void -#ifdef __FreeBSD__ pfsync_input(struct mbuf *m, __unused int off) -#else -pfsync_input(struct mbuf *m, ...) -#endif { -#ifdef __FreeBSD__ struct pfsync_softc *sc = V_pfsyncif; -#else - struct pfsync_softc *sc = pfsyncif; -#endif struct pfsync_pkt pkt; struct ip *ip = mtod(m, struct ip *); struct pfsync_header *ph; @@ -891,11 +612,7 @@ pfsync_input(struct mbuf *m, ...) V_pfsyncstats.pfsyncs_ipackets++; /* verify that we have a sync interface configured */ -#ifdef __FreeBSD__ if (!sc || !sc->sc_sync_if || !V_pf_status.running) -#else - if (!sc || !sc->sc_sync_if || !pf_status.running) -#endif goto done; /* verify that the packet came in on the right interface */ @@ -904,13 +621,8 @@ pfsync_input(struct mbuf *m, ...) goto done; } -#ifdef __FreeBSD__ sc->sc_ifp->if_ipackets++; sc->sc_ifp->if_ibytes += m->m_pkthdr.len; -#else - sc->sc_if.if_ipackets++; - sc->sc_if.if_ibytes += m->m_pkthdr.len; -#endif /* verify that the IP TTL is 255. */ if (ip->ip_ttl != PFSYNC_DFLTTL) { V_pfsyncstats.pfsyncs_badttl++; @@ -950,11 +662,7 @@ pfsync_input(struct mbuf *m, ...) pkt.src = ip->ip_src; pkt.flags = 0; -#ifdef __FreeBSD__ if (!bcmp(&ph->pfcksum, &V_pf_status.pf_chksum, PF_MD5_DIGEST_LENGTH)) -#else - if (!bcmp(&ph->pfcksum, &pf_status.pf_chksum, PF_MD5_DIGEST_LENGTH)) -#endif pkt.flags |= PFSYNC_SI_CKSUM; offset += sizeof(*ph); @@ -991,7 +699,6 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st struct pf_state_key *sk, *nextsk; struct pf_state_item *si; u_int32_t creatorid; - int s; mp = m_pulldown(m, offset, len, &offp); if (mp == NULL) { @@ -1000,23 +707,14 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st } clr = (struct pfsync_clr *)(mp->m_data + offp); - s = splsoftnet(); -#ifdef __FreeBSD__ PF_LOCK(); -#endif for (i = 0; i < count; i++) { creatorid = clr[i].creatorid; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 10:19:25 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29306106566C; Thu, 23 Feb 2012 10:19:25 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 145BB8FC12; Thu, 23 Feb 2012 10:19: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 q1NAJOvE099154; Thu, 23 Feb 2012 10:19:24 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1NAJObb099152; Thu, 23 Feb 2012 10:19:24 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202231019.q1NAJObb099152@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 23 Feb 2012 10:19:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232044 - projects/pf/head/sys/sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 10:19:25 -0000 Author: glebius Date: Thu Feb 23 10:19:24 2012 New Revision: 232044 URL: http://svn.freebsd.org/changeset/base/232044 Log: Expose NetBSD/OpenBSD compat defines to kernel code, too. Modified: projects/pf/head/sys/sys/time.h Modified: projects/pf/head/sys/sys/time.h ============================================================================== --- projects/pf/head/sys/sys/time.h Thu Feb 23 10:18:28 2012 (r232043) +++ projects/pf/head/sys/sys/time.h Thu Feb 23 10:19:24 2012 (r232044) @@ -199,8 +199,7 @@ timeval2bintime(const struct timeval *tv #endif /* _KERNEL */ -#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */ - +/* NetBSD/OpenBSD compatible interfaces. */ #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp) \ @@ -225,7 +224,6 @@ timeval2bintime(const struct timeval *tv (vvp)->tv_usec += 1000000; \ } \ } while (0) -#endif /* * Names of the interval timers, and structure From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 19:03:23 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E5921065670; Thu, 23 Feb 2012 19:03:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 201738FC13; Thu, 23 Feb 2012 19:03: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 q1NJ3NE3018849; Thu, 23 Feb 2012 19:03:23 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1NJ3MZC018846; Thu, 23 Feb 2012 19:03:22 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202231903.q1NJ3MZC018846@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 23 Feb 2012 19:03:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232062 - in projects/pf/head/sys: contrib/pf/net sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 19:03:23 -0000 Author: glebius Date: Thu Feb 23 19:03:22 2012 New Revision: 232062 URL: http://svn.freebsd.org/changeset/base/232062 Log: Use correct API for timeval subtraction. Noticed by: bde Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c projects/pf/head/sys/sys/time.h Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf_norm.c Thu Feb 23 18:59:32 2012 (r232061) +++ projects/pf/head/sys/contrib/pf/net/pf_norm.c Thu Feb 23 19:03:22 2012 (r232062) @@ -1670,7 +1670,6 @@ pf_normalize_tcp_stateful(struct mbuf *m * connection limit until we can come up with a better * lowerbound to the TS echo check. */ - struct timeval delta_ts; int ts_fudge; @@ -1686,9 +1685,9 @@ pf_normalize_tcp_stateful(struct mbuf *m /* Calculate max ticks since the last timestamp */ #define TS_MAXFREQ 1100 /* RFC max TS freq of 1Khz + 10% skew */ #define TS_MICROSECS 1000000 /* microseconds per second */ - timersub(&uptime, &src->scrub->pfss_last, &delta_ts); - tsval_from_last = (delta_ts.tv_sec + ts_fudge) * TS_MAXFREQ; - tsval_from_last += delta_ts.tv_usec / (TS_MICROSECS/TS_MAXFREQ); + timevalsub(&uptime, &src->scrub->pfss_last); + tsval_from_last = (uptime.tv_sec + ts_fudge) * TS_MAXFREQ; + tsval_from_last += uptime.tv_usec / (TS_MICROSECS/TS_MAXFREQ); if ((src->state >= TCPS_ESTABLISHED && dst->state >= TCPS_ESTABLISHED) && @@ -1712,8 +1711,8 @@ pf_normalize_tcp_stateful(struct mbuf *m DPFPRINTF((" tsval: %u tsecr: %u +ticks: %u " "idle: %jus %lums\n", tsval, tsecr, tsval_from_last, - (uintmax_t)delta_ts.tv_sec, - delta_ts.tv_usec / 1000)); + (uintmax_t)uptime.tv_sec, + uptime.tv_usec / 1000)); DPFPRINTF((" src->tsval: %u tsecr: %u\n", src->scrub->pfss_tsval, src->scrub->pfss_tsecr)); DPFPRINTF((" dst->tsval: %u tsecr: %u tsval0: %u" Modified: projects/pf/head/sys/sys/time.h ============================================================================== --- projects/pf/head/sys/sys/time.h Thu Feb 23 18:59:32 2012 (r232061) +++ projects/pf/head/sys/sys/time.h Thu Feb 23 19:03:22 2012 (r232062) @@ -199,7 +199,8 @@ timeval2bintime(const struct timeval *tv #endif /* _KERNEL */ -/* NetBSD/OpenBSD compatible interfaces. */ +#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */ + #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp) \ @@ -224,6 +225,7 @@ timeval2bintime(const struct timeval *tv (vvp)->tv_usec += 1000000; \ } \ } while (0) +#endif /* * Names of the interval timers, and structure From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 19:10:33 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A6DA8106564A; Thu, 23 Feb 2012 19:10:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.64.117]) by mx1.freebsd.org (Postfix) with ESMTP id 2D5AD8FC1B; Thu, 23 Feb 2012 19:10:32 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.5/8.14.5) with ESMTP id q1NJAWuG023288; Thu, 23 Feb 2012 23:10:32 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.5/8.14.5/Submit) id q1NJAWZZ023287; Thu, 23 Feb 2012 23:10:32 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 23 Feb 2012 23:10:32 +0400 From: Gleb Smirnoff To: Bruce Evans Message-ID: <20120223191032.GW92625@FreeBSD.org> References: <201202231019.q1NAJObb099152@svn.freebsd.org> <20120224034735.T1834@besplex.bde.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <20120224034735.T1834@besplex.bde.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r232044 - projects/pf/head/sys/sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 19:10:33 -0000 Bruce, On Fri, Feb 24, 2012 at 04:30:53AM +1100, Bruce Evans wrote: B> This is the old Net/2 and 4.4BSD API (extended). One of the bugs in B> it is that it users the generic name `timer' for just one of the types B> of time-related structures, and even that type is time-related, not B> always timer-related. This timeval type should have gone away with POSIX B> timespecs in 1988, so it is the one least deserving of the generic name. B> B> FreeBSD started fixing this in 1998 by renaming the above to timeval*() B> in the kernel. Unfortunately, the old APIs remained as compatibility B> cruft for userland (now under ifdefs). FreeBSD also added timespec*() B> macros in 1998. B> B> timevaladd() and timevalsub() were correctly spelled and correctly B> implemented as functions in FreeBSD-1. FreeBSD extended the old B> mistakes in 1996 by adding timeradd() and timersub() macros for NetBSD B> userland compatibility. These are heavier-weight and otherwise more B> suitable for being functions than the others, so they were only B> functions, and were correctly named too. timespecadd() and B> timespecsub() are simalarly better implemented as functions, but FreeBSD B> added macros for them in 1998, while intentionally not doing this for B> timevaladd() and timevalsub(). But there is a problem with any of B> these API being functions in userland, since the functions have never B> been in libc. Hacking on time.h is easier than adding them in libc. B> Even correct hacking on time.h for them would be easier than changing B> libc. The 1996-2012 hacking is missing visibility ifdefs, and gives B> unsafe macros although their names indicate that they are safe. B> B> POSIX extended the lifetime of timevals by standardizing them 2001. B> 13 years wasn't long enough for them to go away. Now, 24 years hasn't B> been long enough. Thanks for important comments. Is the fix in r232062 okay? -- Totus tuus, Glebius. From owner-svn-src-projects@FreeBSD.ORG Thu Feb 23 20:15:35 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B45281065745 for ; Thu, 23 Feb 2012 20:15:35 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from fallbackmx08.syd.optusnet.com.au (fallbackmx08.syd.optusnet.com.au [211.29.132.10]) by mx1.freebsd.org (Postfix) with ESMTP id 5067B8FC1D for ; Thu, 23 Feb 2012 20:15:34 +0000 (UTC) Received: from mail15.syd.optusnet.com.au (mail15.syd.optusnet.com.au [211.29.132.196]) by fallbackmx08.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id q1NHUxhe016470 for ; Fri, 24 Feb 2012 04:30:59 +1100 Received: from c211-30-171-136.carlnfd1.nsw.optusnet.com.au (c211-30-171-136.carlnfd1.nsw.optusnet.com.au [211.30.171.136]) by mail15.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id q1NHUrTr027705 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 24 Feb 2012 04:30:54 +1100 Date: Fri, 24 Feb 2012 04:30:53 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Gleb Smirnoff In-Reply-To: <201202231019.q1NAJObb099152@svn.freebsd.org> Message-ID: <20120224034735.T1834@besplex.bde.org> References: <201202231019.q1NAJObb099152@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r232044 - projects/pf/head/sys/sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Feb 2012 20:15:35 -0000 On Thu, 23 Feb 2012, Gleb Smirnoff wrote: > Log: > Expose NetBSD/OpenBSD compat defines to kernel code, too. These should be removed instead of used further. In another commit, you made changes make the use of the FreeBSD API clearer. This change makes it possible to not even use the FreeBSD API. > Modified: projects/pf/head/sys/sys/time.h > ============================================================================== > --- projects/pf/head/sys/sys/time.h Thu Feb 23 10:18:28 2012 (r232043) > +++ projects/pf/head/sys/sys/time.h Thu Feb 23 10:19:24 2012 (r232044) > @@ -199,8 +199,7 @@ timeval2bintime(const struct timeval *tv > > #endif /* _KERNEL */ > > -#ifndef _KERNEL /* NetBSD/OpenBSD compatible interfaces */ > - > +/* NetBSD/OpenBSD compatible interfaces. */ > #define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) > #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) > #define timercmp(tvp, uvp, cmp) \ > @@ -225,7 +224,6 @@ timeval2bintime(const struct timeval *tv > (vvp)->tv_usec += 1000000; \ > } \ > } while (0) > -#endif This is the old Net/2 and 4.4BSD API (extended). One of the bugs in it is that it users the generic name `timer' for just one of the types of time-related structures, and even that type is time-related, not always timer-related. This timeval type should have gone away with POSIX timespecs in 1988, so it is the one least deserving of the generic name. FreeBSD started fixing this in 1998 by renaming the above to timeval*() in the kernel. Unfortunately, the old APIs remained as compatibility cruft for userland (now under ifdefs). FreeBSD also added timespec*() macros in 1998. timevaladd() and timevalsub() were correctly spelled and correctly implemented as functions in FreeBSD-1. FreeBSD extended the old mistakes in 1996 by adding timeradd() and timersub() macros for NetBSD userland compatibility. These are heavier-weight and otherwise more suitable for being functions than the others, so they were only functions, and were correctly named too. timespecadd() and timespecsub() are simalarly better implemented as functions, but FreeBSD added macros for them in 1998, while intentionally not doing this for timevaladd() and timevalsub(). But there is a problem with any of these API being functions in userland, since the functions have never been in libc. Hacking on time.h is easier than adding them in libc. Even correct hacking on time.h for them would be easier than changing libc. The 1996-2012 hacking is missing visibility ifdefs, and gives unsafe macros although their names indicate that they are safe. POSIX extended the lifetime of timevals by standardizing them 2001. 13 years wasn't long enough for them to go away. Now, 24 years hasn't been long enough. Bruce From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 16:58:33 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12C79106566B; Fri, 24 Feb 2012 16:58:33 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id B659E8FC0A; Fri, 24 Feb 2012 16:58:32 +0000 (UTC) Received: by iaeo4 with SMTP id o4so4268646iae.13 for ; Fri, 24 Feb 2012 08:58:32 -0800 (PST) Received-SPF: pass (google.com: domain of ermal.luci@gmail.com designates 10.50.85.231 as permitted sender) client-ip=10.50.85.231; Authentication-Results: mr.google.com; spf=pass (google.com: domain of ermal.luci@gmail.com designates 10.50.85.231 as permitted sender) smtp.mail=ermal.luci@gmail.com; dkim=pass header.i=ermal.luci@gmail.com Received: from mr.google.com ([10.50.85.231]) by 10.50.85.231 with SMTP id k7mr4357991igz.25.1330102712165 (num_hops = 1); Fri, 24 Feb 2012 08:58:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; 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; bh=0mAQtaXOStdmq5zJQs0k+n/VMJyowk4webamVcUYRZQ=; b=Oqx3Cc2GLaZDQVPw0IzatDOoT/vN9AvblGL/Ixm5lbg+xCCUD9cCU0lj8gN8EgUX8x 2JUgXTPUTn2mTz0UbuomxtSA67rMEaLBrEi7+y6/Zwc30Nod81s330HFl3Ik4G4niT2S sVMnHDhzPLLFRK2rKDt4Wz4gqX8bxL9bUyZqg= MIME-Version: 1.0 Received: by 10.50.85.231 with SMTP id k7mr3314074igz.25.1330101316880; Fri, 24 Feb 2012 08:35:16 -0800 (PST) Sender: ermal.luci@gmail.com Received: by 10.231.44.209 with HTTP; Fri, 24 Feb 2012 08:35:16 -0800 (PST) In-Reply-To: <201202231018.q1NAISrV099085@svn.freebsd.org> References: <201202231018.q1NAISrV099085@svn.freebsd.org> Date: Fri, 24 Feb 2012 16:35:16 +0000 X-Google-Sender-Auth: xEKqf5FkCxEDvnpxupOA_nZEkoA Message-ID: From: =?ISO-8859-1?Q?Ermal_Lu=E7i?= To: Gleb Smirnoff Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r232043 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 16:58:33 -0000 Any reason behind doing this work? On Thu, Feb 23, 2012 at 10:18 AM, Gleb Smirnoff wrote= : > Author: glebius > Date: Thu Feb 23 10:18:28 2012 > New Revision: 232043 > URL: http://svn.freebsd.org/changeset/base/232043 > > Log: > =A0- Cleanup #ifdef. > =A0- Remove spl(9) calls. > =A0- Remove #defines that mask FreeBSD API: use uma(9) implicitly, > =A0 =A0use correct malloc(9) flags, etc.. > =A0- Minor cleanups. > > =A0Only compile tested. > > Modified: > =A0projects/pf/head/sys/contrib/pf/net/if_pflog.c > =A0projects/pf/head/sys/contrib/pf/net/if_pflog.h > =A0projects/pf/head/sys/contrib/pf/net/if_pflow.h > =A0projects/pf/head/sys/contrib/pf/net/if_pfsync.c > =A0projects/pf/head/sys/contrib/pf/net/if_pfsync.h > =A0projects/pf/head/sys/contrib/pf/net/pf.c > =A0projects/pf/head/sys/contrib/pf/net/pf_if.c > =A0projects/pf/head/sys/contrib/pf/net/pf_ioctl.c > =A0projects/pf/head/sys/contrib/pf/net/pf_lb.c > =A0projects/pf/head/sys/contrib/pf/net/pf_norm.c > =A0projects/pf/head/sys/contrib/pf/net/pf_osfp.c > =A0projects/pf/head/sys/contrib/pf/net/pf_ruleset.c > =A0projects/pf/head/sys/contrib/pf/net/pf_table.c > =A0projects/pf/head/sys/contrib/pf/net/pfvar.h > > Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.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 > --- projects/pf/head/sys/contrib/pf/net/if_pflog.c =A0 =A0 =A0Thu Feb 23 = 09:23:10 2012 =A0 =A0 =A0 =A0(r232042) > +++ projects/pf/head/sys/contrib/pf/net/if_pflog.c =A0 =A0 =A0Thu Feb 23 = 10:18:28 2012 =A0 =A0 =A0 =A0(r232043) > @@ -33,7 +33,6 @@ > =A0* PURPOSE. > =A0*/ > > -#ifdef __FreeBSD__ > =A0#include "opt_inet.h" > =A0#include "opt_inet6.h" > =A0#include "opt_bpf.h" > @@ -54,30 +53,20 @@ __FBSDID("$FreeBSD$"); > =A0#define =A0 =A0 =A0 =A0NPFLOG =A0 =A0 =A0 =A0 =A00 > =A0#endif > > -#else /* ! __FreeBSD__ */ > -#include "bpfilter.h" > -#include "pflog.h" > -#endif /* __FreeBSD__ */ > > =A0#include > =A0#include > =A0#include > =A0#include > =A0#include > -#ifdef __FreeBSD__ > =A0#include > =A0#include > =A0#include > =A0#include > =A0#include > -#else > -#include > -#endif > > =A0#include > -#ifdef __FreeBSD__ > =A0#include > -#endif > =A0#include > =A0#include > =A0#include > @@ -99,11 +88,9 @@ __FBSDID("$FreeBSD$"); > =A0#include > =A0#include > > -#ifdef __FreeBSD__ > =A0#ifdef INET > =A0#include > =A0#endif /* INET */ > -#endif /* __FreeBSD__ */ > > =A0#define PFLOGMTU =A0 =A0 =A0 (32768 + MHLEN + MLEN) > > @@ -115,28 +102,14 @@ __FBSDID("$FreeBSD$"); > > =A0void =A0 pflogattach(int); > =A0int =A0 =A0pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr = *, > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0struct route *); > -#else > - =A0 =A0 =A0 =A0 =A0 struct rtentry *); > -#endif > =A0int =A0 =A0pflogioctl(struct ifnet *, u_long, caddr_t); > =A0void =A0 pflogstart(struct ifnet *); > -#ifdef __FreeBSD__ > =A0static int pflog_clone_create(struct if_clone *, int, caddr_t); > =A0static void pflog_clone_destroy(struct ifnet *); > -#else > -int =A0 =A0pflog_clone_create(struct if_clone *, int); > -int =A0 =A0pflog_clone_destroy(struct ifnet *); > -#endif > > =A0LIST_HEAD(, pflog_softc) =A0 =A0 =A0 pflogif_list; > -#ifdef __FreeBSD__ > =A0IFC_SIMPLE_DECLARE(pflog, 1); > -#else > -struct if_clone =A0 =A0 =A0 =A0pflog_cloner =3D > - =A0 =A0IF_CLONE_INITIALIZER("pflog", pflog_clone_create, pflog_clone_de= stroy); > -#endif > > =A0struct ifnet =A0 *pflogifs[PFLOGIFS_MAX]; =A0 =A0 =A0 =A0/* for fast a= ccess */ > > @@ -150,17 +123,11 @@ pflogattach(int npflog) > =A0 =A0 =A0 =A0if_clone_attach(&pflog_cloner); > =A0} > > -#ifdef __FreeBSD__ > =A0static int > =A0pflog_clone_create(struct if_clone *ifc, int unit, caddr_t param) > -#else > -int > -pflog_clone_create(struct if_clone *ifc, int unit) > -#endif > =A0{ > =A0 =A0 =A0 =A0struct ifnet *ifp; > =A0 =A0 =A0 =A0struct pflog_softc *pflogif; > - =A0 =A0 =A0 int s; > > =A0 =A0 =A0 =A0if (unit >=3D PFLOGIFS_MAX) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (EINVAL); > @@ -170,88 +137,50 @@ pflog_clone_create(struct if_clone *ifc, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (ENOMEM); > > =A0 =A0 =A0 =A0pflogif->sc_unit =3D unit; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0ifp =3D pflogif->sc_ifp =3D if_alloc(IFT_PFLOG); > =A0 =A0 =A0 =A0if (ifp =3D=3D NULL) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0free(pflogif, M_DEVBUF); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (ENOSPC); > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0if_initname(ifp, ifc->ifc_name, unit); > -#else > - =A0 =A0 =A0 ifp =3D &pflogif->sc_if; > - =A0 =A0 =A0 snprintf(ifp->if_xname, sizeof ifp->if_xname, "pflog%d", un= it); > -#endif > =A0 =A0 =A0 =A0ifp->if_softc =3D pflogif; > =A0 =A0 =A0 =A0ifp->if_mtu =3D PFLOGMTU; > =A0 =A0 =A0 =A0ifp->if_ioctl =3D pflogioctl; > =A0 =A0 =A0 =A0ifp->if_output =3D pflogoutput; > =A0 =A0 =A0 =A0ifp->if_start =3D pflogstart; > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 ifp->if_type =3D IFT_PFLOG; > -#endif > =A0 =A0 =A0 =A0ifp->if_snd.ifq_maxlen =3D ifqmaxlen; > =A0 =A0 =A0 =A0ifp->if_hdrlen =3D PFLOG_HDRLEN; > =A0 =A0 =A0 =A0if_attach(ifp); > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 if_alloc_sadl(ifp); > -#endif > > =A0#if NBPFILTER > 0 > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0bpfattach(ifp, DLT_PFLOG, PFLOG_HDRLEN); > -#else > - =A0 =A0 =A0 bpfattach(&pflogif->sc_if.if_bpf, ifp, DLT_PFLOG, PFLOG_HDR= LEN); > -#endif > =A0#endif > > - =A0 =A0 =A0 s =3D splnet(); > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0/* XXX: Why pf(4) lock?! Better add a pflog lock?! */ > =A0 =A0 =A0 =A0PF_LOCK(); > -#endif > =A0 =A0 =A0 =A0LIST_INSERT_HEAD(&pflogif_list, pflogif, sc_list); > =A0 =A0 =A0 =A0pflogifs[unit] =3D ifp; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0PF_UNLOCK(); > -#endif > - =A0 =A0 =A0 splx(s); > > =A0 =A0 =A0 =A0return (0); > =A0} > > -#ifdef __FreeBSD__ > =A0static void > =A0pflog_clone_destroy(struct ifnet *ifp) > -#else > -int > -pflog_clone_destroy(struct ifnet *ifp) > -#endif > =A0{ > =A0 =A0 =A0 =A0struct pflog_softc =A0 =A0 =A0*pflogif =3D ifp->if_softc; > - =A0 =A0 =A0 int =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0s; > > - =A0 =A0 =A0 s =3D splnet(); > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0PF_LOCK(); > -#endif > =A0 =A0 =A0 =A0pflogifs[pflogif->sc_unit] =3D NULL; > =A0 =A0 =A0 =A0LIST_REMOVE(pflogif, sc_list); > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0PF_UNLOCK(); > -#endif > - =A0 =A0 =A0 splx(s); > > =A0#if NBPFILTER > 0 > =A0 =A0 =A0 =A0bpfdetach(ifp); > =A0#endif > =A0 =A0 =A0 =A0if_detach(ifp); > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0if_free(ifp); > -#endif > =A0 =A0 =A0 =A0free(pflogif, M_DEVBUF); > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 return (0); > -#endif > =A0} > > =A0/* > @@ -261,22 +190,12 @@ void > =A0pflogstart(struct ifnet *ifp) > =A0{ > =A0 =A0 =A0 =A0struct mbuf *m; > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 int s; > -#endif > > =A0 =A0 =A0 =A0for (;;) { > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0IF_LOCK(&ifp->if_snd); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0_IF_DROP(&ifp->if_snd); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0_IF_DEQUEUE(&ifp->if_snd, m); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0IF_UNLOCK(&ifp->if_snd); > -#else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 s =3D splnet(); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 IF_DROP(&ifp->if_snd); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 IF_DEQUEUE(&ifp->if_snd, m); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 splx(s); > -#endif > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (m =3D=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return; > @@ -287,11 +206,7 @@ pflogstart(struct ifnet *ifp) > > =A0int > =A0pflogoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst, > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct route *rt) > -#else > - =A0 =A0 =A0 struct rtentry *rt) > -#endif > =A0{ > =A0 =A0 =A0 =A0m_freem(m); > =A0 =A0 =A0 =A0return (0); > @@ -303,17 +218,10 @@ pflogioctl(struct ifnet *ifp, u_long cmd > =A0{ > =A0 =A0 =A0 =A0switch (cmd) { > =A0 =A0 =A0 =A0case SIOCSIFFLAGS: > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (ifp->if_flags & IFF_UP) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ifp->if_drv_flags |=3D IFF= _DRV_RUNNING; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0else > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ifp->if_drv_flags &=3D ~IF= F_DRV_RUNNING; > -#else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (ifp->if_flags & IFF_UP) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ifp->if_flags |=3D IFF_RUNN= ING; > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ifp->if_flags &=3D ~IFF_RUN= NING; > -#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > =A0 =A0 =A0 =A0default: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (ENOTTY); > @@ -355,15 +263,11 @@ pflog_packet(struct pfi_kif *kif, struct > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sizeof(hdr.ruleset= )); > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0if (rm->log & PF_LOG_SOCKET_LOOKUP && !pd->lookup.done) > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0/* > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * XXX: This should not happen as we force= an early lookup > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 * via debug.pfugidhack > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 */ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0; /* empty */ > -#else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pd->lookup.done =3D pf_socket_lookup(dir, p= d); > -#endif > =A0 =A0 =A0 =A0if (pd->lookup.done > 0) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0hdr.uid =3D pd->lookup.uid; > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0hdr.pid =3D pd->lookup.pid; > @@ -387,18 +291,12 @@ pflog_packet(struct pfi_kif *kif, struct > > =A0 =A0 =A0 =A0ifn->if_opackets++; > =A0 =A0 =A0 =A0ifn->if_obytes +=3D m->m_pkthdr.len; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0BPF_MTAP2(ifn, &hdr, PFLOG_HDRLEN, m); > -#else > - =A0 =A0 =A0 bpf_mtap_hdr(ifn->if_bpf, (char *)&hdr, PFLOG_HDRLEN, m, > - =A0 =A0 =A0 =A0 =A0 BPF_DIRECTION_OUT); > -#endif > =A0#endif > > =A0 =A0 =A0 =A0return (0); > =A0} > > -#ifdef __FreeBSD__ > =A0static int > =A0pflog_modevent(module_t mod, int type, void *data) > =A0{ > @@ -432,4 +330,3 @@ static moduledata_t pflog_mod =3D { "pflog > =A0DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); > =A0MODULE_VERSION(pflog, PFLOG_MODVER); > =A0MODULE_DEPEND(pflog, pf, PF_MODVER, PF_MODVER, PF_MODVER); > -#endif /* __FreeBSD__ */ > > Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.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 > --- projects/pf/head/sys/contrib/pf/net/if_pflog.h =A0 =A0 =A0Thu Feb 23 = 09:23:10 2012 =A0 =A0 =A0 =A0(r232042) > +++ projects/pf/head/sys/contrib/pf/net/if_pflog.h =A0 =A0 =A0Thu Feb 23 = 10:18:28 2012 =A0 =A0 =A0 =A0(r232043) > @@ -30,11 +30,7 @@ > =A0#define =A0 =A0 =A0 =A0PFLOGIFS_MAX =A0 =A016 > > =A0struct pflog_softc { > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct ifnet =A0 =A0 =A0 =A0 =A0 =A0*sc_ifp; =A0 =A0 =A0 = =A0/* the interface pointer */ > -#else > - =A0 =A0 =A0 struct ifnet =A0 =A0 =A0 =A0 =A0 =A0sc_if; =A0 =A0 =A0 =A0 = =A0/* the interface */ > -#endif > =A0 =A0 =A0 =A0int =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sc_unit; > =A0 =A0 =A0 =A0LIST_ENTRY(pflog_softc) sc_list; > =A0}; > @@ -74,28 +70,14 @@ struct old_pfloghdr { > =A0#define =A0 =A0 =A0 =A0OLD_PFLOG_HDRLEN =A0 =A0 =A0 =A0sizeof(struct o= ld_pfloghdr) > > =A0#ifdef _KERNEL > -#ifdef __FreeBSD__ > =A0struct pf_rule; > =A0struct pf_ruleset; > =A0struct pfi_kif; > =A0struct pf_pdesc; > > -#if 0 > -typedef int pflog_packet_t(struct pfi_kif *, struct mbuf *, sa_family_t, > - =A0 =A0u_int8_t, u_int8_t, struct pf_rule *, struct pf_rule *, > - =A0 =A0struct pf_ruleset *, struct pf_pdesc *); > -extern pflog_packet_t *pflog_packet_ptr; > -#endif > =A0#define =A0 =A0 =A0 =A0PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) do { =A0 =A0 = =A0 =A0 =A0\ > =A0 =A0 =A0 =A0if (pflog_packet_ptr !=3D NULL) =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 \ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pflog_packet_ptr(i,a,b,c,d,e,f,g,h); =A0 = =A0\ > =A0} while (0) > -#else /* ! __FreeBSD__ */ > -#if NPFLOG > 0 > -#define =A0 =A0 =A0 =A0PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) pflog_packet(i,= a,b,c,d,e,f,g,h) > -#else > -#define =A0 =A0 =A0 =A0PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) ((void)0) > -#endif /* NPFLOG > 0 */ > -#endif > =A0#endif /* _KERNEL */ > =A0#endif /* _NET_IF_PFLOG_H_ */ > > Modified: projects/pf/head/sys/contrib/pf/net/if_pflow.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 > --- projects/pf/head/sys/contrib/pf/net/if_pflow.h =A0 =A0 =A0Thu Feb 23 = 09:23:10 2012 =A0 =A0 =A0 =A0(r232042) > +++ projects/pf/head/sys/contrib/pf/net/if_pflow.h =A0 =A0 =A0Thu Feb 23 = 10:18:28 2012 =A0 =A0 =A0 =A0(r232043) > @@ -66,11 +66,7 @@ struct pflow_softc { > =A0 =A0 =A0 =A0unsigned int =A0 =A0 =A0 =A0 =A0 =A0 sc_maxcount; > =A0 =A0 =A0 =A0u_int64_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_gcounter; > =A0 =A0 =A0 =A0struct ip_moptions =A0 =A0 =A0 sc_imo; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct callout =A0 =A0 =A0 =A0 =A0 sc_tmo; > -#else > - =A0 =A0 =A0 struct timeout =A0 =A0 =A0 =A0 =A0 sc_tmo; > -#endif > =A0 =A0 =A0 =A0struct in_addr =A0 =A0 =A0 =A0 =A0 sc_sender_ip; > =A0 =A0 =A0 =A0u_int16_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_sender_port; > =A0 =A0 =A0 =A0struct in_addr =A0 =A0 =A0 =A0 =A0 sc_receiver_ip; > > Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.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 > --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c =A0 =A0 Thu Feb 23 09= :23:10 2012 =A0 =A0 =A0 =A0(r232042) > +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c =A0 =A0 Thu Feb 23 10= :18:28 2012 =A0 =A0 =A0 =A0(r232043) > @@ -51,7 +51,6 @@ > =A0* 1.170 - SIOCSIFMTU checks > =A0*/ > > -#ifdef __FreeBSD__ > =A0#include "opt_inet.h" > =A0#include "opt_inet6.h" > =A0#include "opt_pf.h" > @@ -60,21 +59,17 @@ > =A0__FBSDID("$FreeBSD$"); > > =A0#define =A0 =A0 =A0 =A0NBPFILTER =A0 =A0 =A0 1 > -#endif /* __FreeBSD__ */ > > =A0#include > =A0#include > -#ifdef __FreeBSD__ > =A0#include > =A0#include > =A0#include > -#endif > =A0#include > =A0#include > =A0#include > =A0#include > =A0#include > -#ifdef __FreeBSD__ > =A0#include > =A0#include > =A0#include > @@ -83,26 +78,15 @@ __FBSDID("$FreeBSD$"); > =A0#include > =A0#include > =A0#include > -#else > -#include > -#include > -#endif > =A0#include > -#ifndef __FreeBSD__ > -#include > -#endif > > =A0#include > -#ifdef __FreeBSD__ > =A0#include > -#endif > =A0#include > =A0#include > =A0#include > =A0#include > -#ifdef __FreeBSD__ > =A0#include > -#endif > > =A0#include > =A0#include > @@ -120,22 +104,11 @@ __FBSDID("$FreeBSD$"); > =A0#include > =A0#endif /* INET6 */ > > -#ifdef __FreeBSD__ > =A0#include > -#else > -#include "carp.h" > -#if NCARP > 0 > -#include > -#endif > -#endif > > =A0#include > =A0#include > > -#ifndef __FreeBSD__ > -#include "bpfilter.h" > -#include "pfsync.h" > -#endif > > =A0#define PFSYNC_MINPKT ( \ > =A0 =A0 =A0 =A0sizeof(struct ip) + \ > @@ -217,11 +190,7 @@ struct pfsync_deferral { > =A0 =A0 =A0 =A0TAILQ_ENTRY(pfsync_deferral) =A0 =A0 =A0 =A0 =A0 =A0 pd_en= try; > =A0 =A0 =A0 =A0struct pf_state =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 *pd_st; > =A0 =A0 =A0 =A0struct mbuf =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0 *pd_m; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct callout =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0= =A0 =A0 pd_tmo; > -#else > - =A0 =A0 =A0 struct timeout =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 pd_tmo; > -#endif > =A0}; > =A0TAILQ_HEAD(pfsync_deferrals, pfsync_deferral); > > @@ -233,26 +202,16 @@ int =A0 =A0 =A0 pfsync_out_tdb(struct tdb *, struct > =A0#endif > > =A0struct pfsync_softc { > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct ifnet =A0 =A0 =A0 =A0 =A0 =A0*sc_ifp; > -#else > - =A0 =A0 =A0 struct ifnet =A0 =A0 =A0 =A0 =A0 =A0 sc_if; > -#endif > =A0 =A0 =A0 =A0struct ifnet =A0 =A0 =A0 =A0 =A0 =A0*sc_sync_if; > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0uma_zone_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 sc_pool; > -#else > - =A0 =A0 =A0 struct pool =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_pool; > -#endif > > =A0 =A0 =A0 =A0struct ip_moptions =A0 =A0 =A0 sc_imo; > > =A0 =A0 =A0 =A0struct in_addr =A0 =A0 =A0 =A0 =A0 sc_sync_peer; > =A0 =A0 =A0 =A0u_int8_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sc_maxupdates; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0int =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pfsync_sync= _ok; > -#endif > > =A0 =A0 =A0 =A0struct ip =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_template; > > @@ -269,31 +228,18 @@ struct pfsync_softc { > > =A0 =A0 =A0 =A0u_int32_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_ureq_sent; > =A0 =A0 =A0 =A0int =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_bulk_tri= es; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct callout =A0 =A0 =A0 =A0 =A0 sc_bulkfail_tmo; > -#else > - =A0 =A0 =A0 struct timeout =A0 =A0 =A0 =A0 =A0 sc_bulkfail_tmo; > -#endif > > =A0 =A0 =A0 =A0u_int32_t =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sc_ureq_received; > =A0 =A0 =A0 =A0struct pf_state =A0 =A0 =A0 =A0 *sc_bulk_next; > =A0 =A0 =A0 =A0struct pf_state =A0 =A0 =A0 =A0 *sc_bulk_last; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct callout =A0 =A0 =A0 =A0 =A0 sc_bulk_tmo; > -#else > - =A0 =A0 =A0 struct timeout =A0 =A0 =A0 =A0 =A0 sc_bulk_tmo; > -#endif > > =A0 =A0 =A0 =A0TAILQ_HEAD(, tdb) =A0 =A0 =A0 =A0sc_tdb_q; > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct callout =A0 =A0 =A0 =A0 =A0 sc_tmo; > -#else > - =A0 =A0 =A0 struct timeout =A0 =A0 =A0 =A0 =A0 sc_tmo; > -#endif > =A0}; > > -#ifdef __FreeBSD__ > =A0static MALLOC_DEFINE(M_PFSYNC, "pfsync", "pfsync data"); > =A0static VNET_DEFINE(struct pfsync_softc *, pfsyncif) =3D NULL; > =A0#define =A0 =A0 =A0 =A0V_pfsyncif =A0 =A0 =A0 =A0 =A0 =A0 =A0VNET(pfsy= ncif) > @@ -319,29 +265,15 @@ SYSCTL_VNET_STRUCT(_net_pfsync, OID_AUTO > =A0 =A0 "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)"); > =A0SYSCTL_INT(_net_pfsync, OID_AUTO, carp_demotion_factor, CTLFLAG_RW, > =A0 =A0 &VNET_NAME(pfsync_carp_adj), 0, "pfsync's CARP demotion factor ad= justment"); > -#else > -struct pfsync_softc =A0 =A0*pfsyncif =3D NULL; > -struct pfsyncstats =A0 =A0 =A0pfsyncstats; > -#define =A0 =A0 =A0 =A0V_pfsyncstats =A0 =A0pfsyncstats > -#endif > > =A0void =A0 pfsyncattach(int); > -#ifdef __FreeBSD__ > =A0int =A0 =A0pfsync_clone_create(struct if_clone *, int, caddr_t); > =A0void =A0 pfsync_clone_destroy(struct ifnet *); > -#else > -int =A0 =A0pfsync_clone_create(struct if_clone *, int); > -int =A0 =A0pfsync_clone_destroy(struct ifnet *); > -#endif > =A0int =A0 =A0pfsync_alloc_scrub_memory(struct pfsync_state_peer *, > =A0 =A0 =A0 =A0 =A0 =A0struct pf_state_peer *); > =A0void =A0 pfsync_update_net_tdb(struct pfsync_tdb *); > =A0int =A0 =A0pfsyncoutput(struct ifnet *, struct mbuf *, struct sockaddr= *, > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0struct route *); > -#else > - =A0 =A0 =A0 =A0 =A0 struct rtentry *); > -#endif > =A0int =A0 =A0pfsyncioctl(struct ifnet *, u_long, caddr_t); > =A0void =A0 pfsyncstart(struct ifnet *); > > @@ -365,27 +297,13 @@ void =A0 =A0 =A0pfsync_bulk_status(u_int8_t); > =A0void =A0 pfsync_bulk_update(void *); > =A0void =A0 pfsync_bulk_fail(void *); > > -#ifdef __FreeBSD__ > -/* XXX: ugly */ > -#define =A0 =A0 =A0 =A0betoh64 =A0 =A0 =A0 =A0 (unsigned long long)be64t= oh > -#define =A0 =A0 =A0 =A0timeout_del =A0 =A0 callout_stop > -#endif > - > =A0#define PFSYNC_MAX_BULKTRIES =A0 12 > -#ifndef __FreeBSD__ > -int =A0 =A0pfsync_sync_ok; > -#endif > > -#ifdef __FreeBSD__ > =A0VNET_DEFINE(struct ifc_simple_data, pfsync_cloner_data); > =A0VNET_DEFINE(struct if_clone, pfsync_cloner); > =A0#define =A0 =A0 =A0 =A0V_pfsync_cloner_data =A0 =A0VNET(pfsync_cloner_= data) > =A0#define =A0 =A0 =A0 =A0V_pfsync_cloner =A0 =A0 =A0 =A0 VNET(pfsync_clo= ner) > =A0IFC_SIMPLE_DECLARE(pfsync, 1); > -#else > -struct if_clone =A0 =A0 =A0 =A0pfsync_cloner =3D > - =A0 =A0IF_CLONE_INITIALIZER("pfsync", pfsync_clone_create, pfsync_clone= _destroy); > -#endif > > =A0void > =A0pfsyncattach(int npfsync) > @@ -393,11 +311,7 @@ pfsyncattach(int npfsync) > =A0 =A0 =A0 =A0if_clone_attach(&pfsync_cloner); > =A0} > =A0int > -#ifdef __FreeBSD__ > =A0pfsync_clone_create(struct if_clone *ifc, int unit, caddr_t param) > -#else > -pfsync_clone_create(struct if_clone *ifc, int unit) > -#endif > =A0{ > =A0 =A0 =A0 =A0struct pfsync_softc *sc; > =A0 =A0 =A0 =A0struct ifnet *ifp; > @@ -406,23 +320,14 @@ pfsync_clone_create(struct if_clone *ifc > =A0 =A0 =A0 =A0if (unit !=3D 0) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (EINVAL); > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0sc =3D malloc(sizeof(struct pfsync_softc), M_PFSYNC, M_WAI= TOK | M_ZERO); > =A0 =A0 =A0 =A0sc->pfsync_sync_ok =3D 1; > -#else > - =A0 =A0 =A0 pfsync_sync_ok =3D 1; > - =A0 =A0 =A0 sc =3D malloc(sizeof(*pfsyncif), M_DEVBUF, M_NOWAIT | M_ZER= O); > -#endif > > =A0 =A0 =A0 =A0for (q =3D 0; q < PFSYNC_S_COUNT; q++) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TAILQ_INIT(&sc->sc_qs[q]); > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0sc->sc_pool =3D uma_zcreate("pfsync", PFSYNC_PLSIZE, NULL,= NULL, NULL, > =A0 =A0 =A0 =A0 =A0 =A0NULL, UMA_ALIGN_PTR, 0); > -#else > - =A0 =A0 =A0 pool_init(&sc->sc_pool, PFSYNC_PLSIZE, 0, 0, 0, "pfsync", N= ULL); > -#endif > =A0 =A0 =A0 =A0TAILQ_INIT(&sc->sc_upd_req_list); > =A0 =A0 =A0 =A0TAILQ_INIT(&sc->sc_deferrals); > =A0 =A0 =A0 =A0sc->sc_deferred =3D 0; > @@ -432,14 +337,7 @@ pfsync_clone_create(struct if_clone *ifc > =A0 =A0 =A0 =A0sc->sc_len =3D PFSYNC_MINPKT; > =A0 =A0 =A0 =A0sc->sc_maxupdates =3D 128; > > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 sc->sc_imo.imo_membership =3D (struct in_multi **)malloc( > - =A0 =A0 =A0 =A0 =A0 (sizeof(struct in_multi *) * IP_MIN_MEMBERSHIPS), M= _IPMOPTS, > - =A0 =A0 =A0 =A0 =A0 M_WAITOK | M_ZERO); > - =A0 =A0 =A0 sc->sc_imo.imo_max_memberships =3D IP_MIN_MEMBERSHIPS; > -#endif > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0ifp =3D sc->sc_ifp =3D if_alloc(IFT_PFSYNC); > =A0 =A0 =A0 =A0if (ifp =3D=3D NULL) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0uma_zdestroy(sc->sc_pool); > @@ -447,10 +345,6 @@ pfsync_clone_create(struct if_clone *ifc > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (ENOSPC); > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0if_initname(ifp, ifc->ifc_name, unit); > -#else > - =A0 =A0 =A0 ifp =3D &sc->sc_if; > - =A0 =A0 =A0 snprintf(ifp->if_xname, sizeof ifp->if_xname, "pfsync%d", u= nit); > -#endif > =A0 =A0 =A0 =A0ifp->if_softc =3D sc; > =A0 =A0 =A0 =A0ifp->if_ioctl =3D pfsyncioctl; > =A0 =A0 =A0 =A0ifp->if_output =3D pfsyncoutput; > @@ -459,67 +353,33 @@ pfsync_clone_create(struct if_clone *ifc > =A0 =A0 =A0 =A0ifp->if_snd.ifq_maxlen =3D ifqmaxlen; > =A0 =A0 =A0 =A0ifp->if_hdrlen =3D sizeof(struct pfsync_header); > =A0 =A0 =A0 =A0ifp->if_mtu =3D ETHERMTU; > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0callout_init(&sc->sc_tmo, CALLOUT_MPSAFE); > =A0 =A0 =A0 =A0callout_init_mtx(&sc->sc_bulk_tmo, &pf_task_mtx, 0); > =A0 =A0 =A0 =A0callout_init(&sc->sc_bulkfail_tmo, CALLOUT_MPSAFE); > -#else > - =A0 =A0 =A0 timeout_set(&sc->sc_tmo, pfsync_timeout, sc); > - =A0 =A0 =A0 timeout_set(&sc->sc_bulk_tmo, pfsync_bulk_update, sc); > - =A0 =A0 =A0 timeout_set(&sc->sc_bulkfail_tmo, pfsync_bulk_fail, sc); > -#endif > > =A0 =A0 =A0 =A0if_attach(ifp); > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 if_alloc_sadl(ifp); > - > -#if NCARP > 0 > - =A0 =A0 =A0 if_addgroup(ifp, "carp"); > -#endif > -#endif > > =A0#if NBPFILTER > 0 > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0bpfattach(ifp, DLT_PFSYNC, PFSYNC_HDRLEN); > -#else > - =A0 =A0 =A0 bpfattach(&sc->sc_if.if_bpf, ifp, DLT_PFSYNC, PFSYNC_HDRLEN= ); > -#endif > =A0#endif > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0V_pfsyncif =3D sc; > -#else > - =A0 =A0 =A0 pfsyncif =3D sc; > -#endif > > =A0 =A0 =A0 =A0return (0); > =A0} > > -#ifdef __FreeBSD__ > =A0void > -#else > -int > -#endif > =A0pfsync_clone_destroy(struct ifnet *ifp) > =A0{ > =A0 =A0 =A0 =A0struct pfsync_softc *sc =3D ifp->if_softc; > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0PF_LOCK(); > -#endif > - =A0 =A0 =A0 timeout_del(&sc->sc_bulkfail_tmo); > - =A0 =A0 =A0 timeout_del(&sc->sc_bulk_tmo); > - =A0 =A0 =A0 timeout_del(&sc->sc_tmo); > -#ifdef __FreeBSD__ > + =A0 =A0 =A0 callout_stop(&sc->sc_bulkfail_tmo); > + =A0 =A0 =A0 callout_stop(&sc->sc_bulk_tmo); > + =A0 =A0 =A0 callout_stop(&sc->sc_tmo); > =A0 =A0 =A0 =A0PF_UNLOCK(); > =A0 =A0 =A0 =A0if (!sc->pfsync_sync_ok && carp_demote_adj_p) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(*carp_demote_adj_p)(-V_pfsync_carp_adj, "= pfsync destroy"); > -#else > -#if NCARP > 0 > - =A0 =A0 =A0 if (!pfsync_sync_ok) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 carp_group_demote_adj(&sc->sc_if, -1); > -#endif > -#endif > =A0#if NBPFILTER > 0 > =A0 =A0 =A0 =A0bpfdetach(ifp); > =A0#endif > @@ -530,50 +390,25 @@ pfsync_clone_destroy(struct ifnet *ifp) > =A0 =A0 =A0 =A0while (sc->sc_deferred > 0) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pfsync_undefer(TAILQ_FIRST(&sc->sc_deferra= ls), 0); > > -#ifdef __FreeBSD__ > - =A0 =A0 =A0 UMA_DESTROY(sc->sc_pool); > -#else > - =A0 =A0 =A0 pool_destroy(&sc->sc_pool); > -#endif > -#ifdef __FreeBSD__ > + =A0 =A0 =A0 uma_zdestroy(sc->sc_pool); > =A0 =A0 =A0 =A0if_free(ifp); > =A0 =A0 =A0 =A0if (sc->sc_imo.imo_membership) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pfsync_multicast_cleanup(sc); > =A0 =A0 =A0 =A0free(sc, M_PFSYNC); > -#else > - =A0 =A0 =A0 free(sc->sc_imo.imo_membership, M_IPMOPTS); > - =A0 =A0 =A0 free(sc, M_DEVBUF); > -#endif > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0V_pfsyncif =3D NULL; > -#else > - =A0 =A0 =A0 pfsyncif =3D NULL; > -#endif > > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 return (0); > -#endif > =A0} > > =A0struct mbuf * > =A0pfsync_if_dequeue(struct ifnet *ifp) > =A0{ > =A0 =A0 =A0 =A0struct mbuf *m; > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 int s; > -#endif > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0IF_LOCK(&ifp->if_snd); > =A0 =A0 =A0 =A0_IF_DROP(&ifp->if_snd); > =A0 =A0 =A0 =A0_IF_DEQUEUE(&ifp->if_snd, m); > =A0 =A0 =A0 =A0IF_UNLOCK(&ifp->if_snd); > -#else > - =A0 =A0 =A0 s =3D splnet(); > - =A0 =A0 =A0 IF_DEQUEUE(&ifp->if_snd, m); > - =A0 =A0 =A0 splx(s); > -#endif > > =A0 =A0 =A0 =A0return (m); > =A0} > @@ -587,9 +422,6 @@ pfsyncstart(struct ifnet *ifp) > =A0 =A0 =A0 =A0struct mbuf *m; > > =A0 =A0 =A0 =A0while ((m =3D pfsync_if_dequeue(ifp)) !=3D NULL) { > -#ifndef __FreeBSD__ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 IF_DROP(&ifp->if_snd); > -#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0m_freem(m); > =A0 =A0 =A0 =A0} > =A0} > @@ -599,11 +431,7 @@ pfsync_alloc_scrub_memory(struct pfsync_ > =A0 =A0 struct pf_state_peer *d) > =A0{ > =A0 =A0 =A0 =A0if (s->scrub.scrub_flag && d->scrub =3D=3D NULL) { > -#ifdef __FreeBSD__ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 d->scrub =3D pool_get(&V_pf_state_scrub_pl,= PR_NOWAIT | PR_ZERO); > -#else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 d->scrub =3D pool_get(&pf_state_scrub_pl, P= R_NOWAIT | PR_ZERO); > -#endif > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 d->scrub =3D uma_zalloc(V_pf_state_scrub_pl= , M_NOWAIT | M_ZERO); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (d->scrub =3D=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (ENOMEM); > =A0 =A0 =A0 =A0} > @@ -611,68 +439,6 @@ pfsync_alloc_scrub_memory(struct pfsync_ > =A0 =A0 =A0 =A0return (0); > =A0} > > -#ifndef __FreeBSD__ > -void > -pfsync_state_export(struct pfsync_state *sp, struct pf_state *st) > -{ > - =A0 =A0 =A0 bzero(sp, sizeof(struct pfsync_state)); > - > - =A0 =A0 =A0 /* copy from state key */ > - =A0 =A0 =A0 sp->key[PF_SK_WIRE].addr[0] =3D st->key[PF_SK_WIRE]->addr[0= ]; > - =A0 =A0 =A0 sp->key[PF_SK_WIRE].addr[1] =3D st->key[PF_SK_WIRE]->addr[1= ]; > - =A0 =A0 =A0 sp->key[PF_SK_WIRE].port[0] =3D st->key[PF_SK_WIRE]->port[0= ]; > - =A0 =A0 =A0 sp->key[PF_SK_WIRE].port[1] =3D st->key[PF_SK_WIRE]->port[1= ]; > - =A0 =A0 =A0 sp->key[PF_SK_STACK].addr[0] =3D st->key[PF_SK_STACK]->addr= [0]; > - =A0 =A0 =A0 sp->key[PF_SK_STACK].addr[1] =3D st->key[PF_SK_STACK]->addr= [1]; > - =A0 =A0 =A0 sp->key[PF_SK_STACK].port[0] =3D st->key[PF_SK_STACK]->port= [0]; > - =A0 =A0 =A0 sp->key[PF_SK_STACK].port[1] =3D st->key[PF_SK_STACK]->port= [1]; > - =A0 =A0 =A0 sp->proto =3D st->key[PF_SK_WIRE]->proto; > - =A0 =A0 =A0 sp->af =3D st->key[PF_SK_WIRE]->af; > - > - =A0 =A0 =A0 /* copy from state */ > - =A0 =A0 =A0 strlcpy(sp->ifname, st->kif->pfik_name, sizeof(sp->ifname))= ; > - =A0 =A0 =A0 bcopy(&st->rt_addr, &sp->rt_addr, sizeof(sp->rt_addr)); > - =A0 =A0 =A0 sp->creation =3D htonl(time_uptime - st->creation); > - =A0 =A0 =A0 sp->expire =3D pf_state_expires(st); > - =A0 =A0 =A0 if (sp->expire <=3D time_second) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->expire =3D htonl(0); > - =A0 =A0 =A0 else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->expire =3D htonl(sp->expire - time_seco= nd); > - > - =A0 =A0 =A0 sp->direction =3D st->direction; > - =A0 =A0 =A0 sp->log =3D st->log; > - =A0 =A0 =A0 sp->timeout =3D st->timeout; > - =A0 =A0 =A0 sp->state_flags =3D st->state_flags; > - =A0 =A0 =A0 if (st->src_node) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->sync_flags |=3D PFSYNC_FLAG_SRCNODE; > - =A0 =A0 =A0 if (st->nat_src_node) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->sync_flags |=3D PFSYNC_FLAG_NATSRCNODE; > - > - =A0 =A0 =A0 bcopy(&st->id, &sp->id, sizeof(sp->id)); > - =A0 =A0 =A0 sp->creatorid =3D st->creatorid; > - =A0 =A0 =A0 pf_state_peer_hton(&st->src, &sp->src); > - =A0 =A0 =A0 pf_state_peer_hton(&st->dst, &sp->dst); > - > - =A0 =A0 =A0 if (st->rule.ptr =3D=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->rule =3D htonl(-1); > - =A0 =A0 =A0 else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->rule =3D htonl(st->rule.ptr->nr); > - =A0 =A0 =A0 if (st->anchor.ptr =3D=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->anchor =3D htonl(-1); > - =A0 =A0 =A0 else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->anchor =3D htonl(st->anchor.ptr->nr); > - =A0 =A0 =A0 if (st->nat_rule.ptr =3D=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->nat_rule =3D htonl(-1); > - =A0 =A0 =A0 else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 sp->nat_rule =3D htonl(st->nat_rule.ptr->nr= ); > - > - =A0 =A0 =A0 pf_state_counter_hton(st->packets[0], sp->packets[0]); > - =A0 =A0 =A0 pf_state_counter_hton(st->packets[1], sp->packets[1]); > - =A0 =A0 =A0 pf_state_counter_hton(st->bytes[0], sp->bytes[0]); > - =A0 =A0 =A0 pf_state_counter_hton(st->bytes[1], sp->bytes[1]); > - > -} > -#endif > > =A0int > =A0pfsync_state_import(struct pfsync_state *sp, u_int8_t flags) > @@ -684,24 +450,16 @@ pfsync_state_import(struct pfsync_state > =A0 =A0 =A0 =A0int pool_flags; > =A0 =A0 =A0 =A0int error; > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0PF_LOCK_ASSERT(); > > =A0 =A0 =A0 =A0if (sp->creatorid =3D=3D 0 && V_pf_status.debug >=3D PF_DE= BUG_MISC) { > -#else > - =A0 =A0 =A0 if (sp->creatorid =3D=3D 0 && pf_status.debug >=3D PF_DEBUG= _MISC) { > -#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0printf("pfsync_state_import: invalid creat= or id:" > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0" %08x\n", ntohl(sp->creatorid)); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return (EINVAL); > =A0 =A0 =A0 =A0} > > =A0 =A0 =A0 =A0if ((kif =3D pfi_kif_get(sp->ifname)) =3D=3D NULL) { > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (V_pf_status.debug >=3D PF_DEBUG_MISC) > -#else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (pf_status.debug >=3D PF_DEBUG_MISC) > -#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0printf("pfsync_state_impor= t: " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"unknown interface= : %s\n", sp->ifname); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (flags & PFSYNC_SI_IOCTL) > @@ -719,32 +477,18 @@ pfsync_state_import(struct pfsync_state > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0r =3D pf_main_ruleset.rules[ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0PF_RULESET_FILTER].active.ptr_arra= y[ntohl(sp->rule)]; > =A0 =A0 =A0 =A0else > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0r =3D &V_pf_default_rule; > -#else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 r =3D &pf_default_rule; > -#endif > > =A0 =A0 =A0 =A0if ((r->max_states && r->states_cur >=3D r->max_states)) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto cleanup; > > -#ifdef __FreeBSD__ > - =A0 =A0 =A0 if (flags & PFSYNC_SI_IOCTL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_flags =3D PR_WAITOK | PR_ZERO; > - =A0 =A0 =A0 else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_flags =3D PR_NOWAIT | PR_ZERO; > - > - =A0 =A0 =A0 if ((st =3D pool_get(&V_pf_state_pl, pool_flags)) =3D=3D NU= LL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 goto cleanup; > -#else > =A0 =A0 =A0 =A0if (flags & PFSYNC_SI_IOCTL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_flags =3D PR_WAITOK | PR_LIMITFAIL | P= R_ZERO; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_flags =3D M_WAITOK | M_ZERO; > =A0 =A0 =A0 =A0else > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_flags =3D PR_LIMITFAIL | PR_ZERO; > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_flags =3D M_NOWAIT | M_ZERO; > > - =A0 =A0 =A0 if ((st =3D pool_get(&pf_state_pl, pool_flags)) =3D=3D NULL= ) > + =A0 =A0 =A0 if ((st =3D uma_zalloc(V_pf_state_pl, pool_flags)) =3D=3D N= ULL) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto cleanup; > -#endif > > =A0 =A0 =A0 =A0if ((skw =3D pf_alloc_state_key(pool_flags)) =3D=3D NULL) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto cleanup; > @@ -837,49 +581,26 @@ cleanup: > =A0 =A0 =A0 =A0error =3D ENOMEM; > =A0 =A0 =A0 =A0if (skw =3D=3D sks) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0sks =3D NULL; > -#ifdef __FreeBSD__ > - =A0 =A0 =A0 if (skw !=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&V_pf_state_key_pl, skw); > - =A0 =A0 =A0 if (sks !=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&V_pf_state_key_pl, sks); > -#else > =A0 =A0 =A0 =A0if (skw !=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&pf_state_key_pl, skw); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 uma_zfree(V_pf_state_key_pl, skw); > =A0 =A0 =A0 =A0if (sks !=3D NULL) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&pf_state_key_pl, sks); > -#endif > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 uma_zfree(V_pf_state_key_pl, sks); > > =A0cleanup_state: /* pf_state_insert frees the state keys */ > =A0 =A0 =A0 =A0if (st) { > -#ifdef __FreeBSD__ > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (st->dst.scrub) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&V_pf_state_scrub_= pl, st->dst.scrub); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (st->src.scrub) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&V_pf_state_scrub_= pl, st->src.scrub); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&V_pf_state_pl, st); > -#else > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (st->dst.scrub) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&pf_state_scrub_pl= , st->dst.scrub); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 uma_zfree(V_pf_state_scrub_= pl, st->dst.scrub); > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (st->src.scrub) > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&pf_state_scrub_pl= , st->src.scrub); > - =A0 =A0 =A0 =A0 =A0 =A0 =A0 pool_put(&pf_state_pl, st); > -#endif > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 uma_zfree(V_pf_state_scrub_= pl, st->src.scrub); > + =A0 =A0 =A0 =A0 =A0 =A0 =A0 uma_zfree(V_pf_state_pl, st); > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0return (error); > =A0} > > =A0void > -#ifdef __FreeBSD__ > =A0pfsync_input(struct mbuf *m, __unused int off) > -#else > -pfsync_input(struct mbuf *m, ...) > -#endif > =A0{ > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0struct pfsync_softc *sc =3D V_pfsyncif; > -#else > - =A0 =A0 =A0 struct pfsync_softc *sc =3D pfsyncif; > -#endif > =A0 =A0 =A0 =A0struct pfsync_pkt pkt; > =A0 =A0 =A0 =A0struct ip *ip =3D mtod(m, struct ip *); > =A0 =A0 =A0 =A0struct pfsync_header *ph; > @@ -891,11 +612,7 @@ pfsync_input(struct mbuf *m, ...) > =A0 =A0 =A0 =A0V_pfsyncstats.pfsyncs_ipackets++; > > =A0 =A0 =A0 =A0/* verify that we have a sync interface configured */ > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0if (!sc || !sc->sc_sync_if || !V_pf_status.running) > -#else > - =A0 =A0 =A0 if (!sc || !sc->sc_sync_if || !pf_status.running) > -#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto done; > > =A0 =A0 =A0 =A0/* verify that the packet came in on the right interface *= / > @@ -904,13 +621,8 @@ pfsync_input(struct mbuf *m, ...) > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto done; > =A0 =A0 =A0 =A0} > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0sc->sc_ifp->if_ipackets++; > =A0 =A0 =A0 =A0sc->sc_ifp->if_ibytes +=3D m->m_pkthdr.len; > -#else > - =A0 =A0 =A0 sc->sc_if.if_ipackets++; > - =A0 =A0 =A0 sc->sc_if.if_ibytes +=3D m->m_pkthdr.len; > -#endif > =A0 =A0 =A0 =A0/* verify that the IP TTL is 255. */ > =A0 =A0 =A0 =A0if (ip->ip_ttl !=3D PFSYNC_DFLTTL) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0V_pfsyncstats.pfsyncs_badttl++; > @@ -950,11 +662,7 @@ pfsync_input(struct mbuf *m, ...) > =A0 =A0 =A0 =A0pkt.src =3D ip->ip_src; > =A0 =A0 =A0 =A0pkt.flags =3D 0; > > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0if (!bcmp(&ph->pfcksum, &V_pf_status.pf_chksum, PF_MD5_DIG= EST_LENGTH)) > -#else > - =A0 =A0 =A0 if (!bcmp(&ph->pfcksum, &pf_status.pf_chksum, PF_MD5_DIGEST= _LENGTH)) > -#endif > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pkt.flags |=3D PFSYNC_SI_CKSUM; > > =A0 =A0 =A0 =A0offset +=3D sizeof(*ph); > @@ -991,7 +699,6 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st > =A0 =A0 =A0 =A0struct pf_state_key *sk, *nextsk; > =A0 =A0 =A0 =A0struct pf_state_item *si; > =A0 =A0 =A0 =A0u_int32_t creatorid; > - =A0 =A0 =A0 int s; > > =A0 =A0 =A0 =A0mp =3D m_pulldown(m, offset, len, &offp); > =A0 =A0 =A0 =A0if (mp =3D=3D NULL) { > @@ -1000,23 +707,14 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st > =A0 =A0 =A0 =A0} > =A0 =A0 =A0 =A0clr =3D (struct pfsync_clr *)(mp->m_data + offp); > > - =A0 =A0 =A0 s =3D splsoftnet(); > -#ifdef __FreeBSD__ > =A0 =A0 =A0 =A0PF_LOCK(); > -#endif > =A0 =A0 =A0 =A0for (i =3D 0; i < count; i++) { > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0creatorid =3D clr[i].creatorid; > > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** --=20 Ermal From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 18:39:59 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CDD5106566B; Fri, 24 Feb 2012 18:39:59 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6FCA38FC0C; Fri, 24 Feb 2012 18:39: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 q1OIdxid078790; Fri, 24 Feb 2012 18:39:59 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OIdxGU078774; Fri, 24 Feb 2012 18:39:59 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241839.q1OIdxGU078774@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 18:39:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232120 - in projects/armv6: . bin/chio bin/csh bin/ed bin/ps bin/sh bin/sh/funcs bin/stty cddl/contrib/opensolaris/cmd/dtrace cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io cdd... X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 18:39:59 -0000 Author: cognet Date: Fri Feb 24 18:39:55 2012 New Revision: 232120 URL: http://svn.freebsd.org/changeset/base/232120 Log: MFC of doom Added: projects/armv6/contrib/compiler-rt/lib/int_endianness.h - copied unchanged from r232114, head/contrib/compiler-rt/lib/int_endianness.h projects/armv6/contrib/compiler-rt/lib/int_math.h - copied unchanged from r232114, head/contrib/compiler-rt/lib/int_math.h projects/armv6/contrib/compiler-rt/lib/int_types.h - copied unchanged from r232114, head/contrib/compiler-rt/lib/int_types.h projects/armv6/contrib/compiler-rt/lib/int_util.c - copied unchanged from r232114, head/contrib/compiler-rt/lib/int_util.c projects/armv6/contrib/compiler-rt/lib/int_util.h - copied unchanged from r232114, head/contrib/compiler-rt/lib/int_util.h projects/armv6/contrib/compiler-rt/lib/mulodi4.c - copied unchanged from r232114, head/contrib/compiler-rt/lib/mulodi4.c projects/armv6/contrib/compiler-rt/lib/mulosi4.c - copied unchanged from r232114, head/contrib/compiler-rt/lib/mulosi4.c projects/armv6/contrib/compiler-rt/lib/muloti4.c - copied unchanged from r232114, head/contrib/compiler-rt/lib/muloti4.c projects/armv6/contrib/compiler-rt/lib/sparc64/ - copied from r232114, head/contrib/compiler-rt/lib/sparc64/ - copied from r232114, head/contrib/libarchive/ projects/armv6/contrib/llvm/tools/bugpoint/ - copied from r232114, head/contrib/llvm/tools/bugpoint/ projects/armv6/contrib/llvm/tools/llc/ - copied from r232114, head/contrib/llvm/tools/llc/ projects/armv6/contrib/llvm/tools/lli/ - copied from r232114, head/contrib/llvm/tools/lli/ projects/armv6/contrib/llvm/tools/llvm-ar/ - copied from r232114, head/contrib/llvm/tools/llvm-ar/ projects/armv6/contrib/llvm/tools/llvm-as/ - copied from r232114, head/contrib/llvm/tools/llvm-as/ projects/armv6/contrib/llvm/tools/llvm-bcanalyzer/ - copied from r232114, head/contrib/llvm/tools/llvm-bcanalyzer/ projects/armv6/contrib/llvm/tools/llvm-diff/ - copied from r232114, head/contrib/llvm/tools/llvm-diff/ projects/armv6/contrib/llvm/tools/llvm-dis/ - copied from r232114, head/contrib/llvm/tools/llvm-dis/ projects/armv6/contrib/llvm/tools/llvm-extract/ - copied from r232114, head/contrib/llvm/tools/llvm-extract/ projects/armv6/contrib/llvm/tools/llvm-ld/ - copied from r232114, head/contrib/llvm/tools/llvm-ld/ projects/armv6/contrib/llvm/tools/llvm-link/ - copied from r232114, head/contrib/llvm/tools/llvm-link/ projects/armv6/contrib/llvm/tools/llvm-mc/ - copied from r232114, head/contrib/llvm/tools/llvm-mc/ projects/armv6/contrib/llvm/tools/llvm-nm/ - copied from r232114, head/contrib/llvm/tools/llvm-nm/ projects/armv6/contrib/llvm/tools/llvm-objdump/ - copied from r232114, head/contrib/llvm/tools/llvm-objdump/ projects/armv6/contrib/llvm/tools/llvm-prof/ - copied from r232114, head/contrib/llvm/tools/llvm-prof/ projects/armv6/contrib/llvm/tools/llvm-ranlib/ - copied from r232114, head/contrib/llvm/tools/llvm-ranlib/ projects/armv6/contrib/llvm/tools/llvm-rtdyld/ - copied from r232114, head/contrib/llvm/tools/llvm-rtdyld/ projects/armv6/contrib/llvm/tools/llvm-stub/ - copied from r232114, head/contrib/llvm/tools/llvm-stub/ projects/armv6/contrib/llvm/tools/macho-dump/ - copied from r232114, head/contrib/llvm/tools/macho-dump/ projects/armv6/contrib/llvm/tools/opt/ - copied from r232114, head/contrib/llvm/tools/opt/ projects/armv6/contrib/openpam/bin/pamtest/ - copied from r232114, head/contrib/openpam/bin/pamtest/ projects/armv6/contrib/openpam/bin/su/su.1 - copied unchanged from r232114, head/contrib/openpam/bin/su/su.1 projects/armv6/contrib/openpam/doc/man/openpam_subst.3 - copied unchanged from r232114, head/contrib/openpam/doc/man/openpam_subst.3 projects/armv6/contrib/openpam/lib/openpam_check_owner_perms.c - copied unchanged from r232114, head/contrib/openpam/lib/openpam_check_owner_perms.c projects/armv6/contrib/openpam/lib/openpam_constants.c - copied unchanged from r232114, head/contrib/openpam/lib/openpam_constants.c projects/armv6/contrib/openpam/lib/openpam_constants.h - copied unchanged from r232114, head/contrib/openpam/lib/openpam_constants.h projects/armv6/contrib/openpam/lib/openpam_debug.h - copied unchanged from r232114, head/contrib/openpam/lib/openpam_debug.h projects/armv6/contrib/openpam/lib/openpam_strlcmp.h - copied unchanged from r232114, head/contrib/openpam/lib/openpam_strlcmp.h projects/armv6/contrib/openpam/lib/openpam_strlcpy.h - copied unchanged from r232114, head/contrib/openpam/lib/openpam_strlcpy.h projects/armv6/contrib/openpam/lib/openpam_subst.c - copied unchanged from r232114, head/contrib/openpam/lib/openpam_subst.c projects/armv6/contrib/tcsh/nls/Makefile.in - copied unchanged from r232114, head/contrib/tcsh/nls/Makefile.in projects/armv6/contrib/tcsh/nls/catgen - copied unchanged from r232114, head/contrib/tcsh/nls/catgen projects/armv6/contrib/tcsh/svn - copied unchanged from r232114, head/contrib/tcsh/svn projects/armv6/etc/rc.d/utx - copied unchanged from r232114, head/etc/rc.d/utx projects/armv6/include/stdalign.h - copied unchanged from r232114, head/include/stdalign.h projects/armv6/include/stdatomic.h - copied unchanged from r232114, head/include/stdatomic.h projects/armv6/include/stdnoreturn.h - copied unchanged from r232114, head/include/stdnoreturn.h projects/armv6/lib/clang/include/MipsGenCodeEmitter.inc - copied unchanged from r232114, head/lib/clang/include/MipsGenCodeEmitter.inc projects/armv6/lib/clang/libllvmarchive/ - copied from r232114, head/lib/clang/libllvmarchive/ projects/armv6/lib/clang/libllvmdebuginfo/ - copied from r232114, head/lib/clang/libllvmdebuginfo/ projects/armv6/lib/clang/libllvmexecutionengine/ - copied from r232114, head/lib/clang/libllvmexecutionengine/ projects/armv6/lib/clang/libllvminterpreter/ - copied from r232114, head/lib/clang/libllvminterpreter/ projects/armv6/lib/clang/libllvmjit/ - copied from r232114, head/lib/clang/libllvmjit/ projects/armv6/lib/clang/libllvmlinker/ - copied from r232114, head/lib/clang/libllvmlinker/ projects/armv6/lib/clang/libllvmmcdisassembler/ - copied from r232114, head/lib/clang/libllvmmcdisassembler/ projects/armv6/lib/clang/libllvmmcjit/ - copied from r232114, head/lib/clang/libllvmmcjit/ projects/armv6/lib/clang/libllvmobject/ - copied from r232114, head/lib/clang/libllvmobject/ projects/armv6/lib/clang/libllvmruntimedyld/ - copied from r232114, head/lib/clang/libllvmruntimedyld/ projects/armv6/lib/libc/amd64/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/amd64/gen/getcontextx.c projects/armv6/lib/libc/arm/gen/__aeabi_read_tp.c - copied unchanged from r232114, head/lib/libc/arm/gen/__aeabi_read_tp.c projects/armv6/lib/libc/arm/gen/flt_rounds.c - copied unchanged from r232114, head/lib/libc/arm/gen/flt_rounds.c projects/armv6/lib/libc/arm/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/arm/gen/getcontextx.c projects/armv6/lib/libc/gen/dl_iterate_phdr.3 - copied unchanged from r232114, head/lib/libc/gen/dl_iterate_phdr.3 projects/armv6/lib/libc/gen/libc_dlopen.c - copied unchanged from r232114, head/lib/libc/gen/libc_dlopen.c projects/armv6/lib/libc/i386/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/i386/gen/getcontextx.c projects/armv6/lib/libc/ia64/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/ia64/gen/getcontextx.c projects/armv6/lib/libc/mips/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/mips/gen/getcontextx.c projects/armv6/lib/libc/mips/string/strchr.S - copied unchanged from r232114, head/lib/libc/mips/string/strchr.S projects/armv6/lib/libc/mips/string/strrchr.S - copied unchanged from r232114, head/lib/libc/mips/string/strrchr.S projects/armv6/lib/libc/powerpc/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/powerpc/gen/getcontextx.c projects/armv6/lib/libc/powerpc64/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/powerpc64/gen/getcontextx.c projects/armv6/lib/libc/softfloat/eqtf2.c - copied unchanged from r232114, head/lib/libc/softfloat/eqtf2.c projects/armv6/lib/libc/softfloat/getf2.c - copied unchanged from r232114, head/lib/libc/softfloat/getf2.c projects/armv6/lib/libc/softfloat/gexf2.c - copied unchanged from r232114, head/lib/libc/softfloat/gexf2.c projects/armv6/lib/libc/softfloat/gttf2.c - copied unchanged from r232114, head/lib/libc/softfloat/gttf2.c projects/armv6/lib/libc/softfloat/gtxf2.c - copied unchanged from r232114, head/lib/libc/softfloat/gtxf2.c projects/armv6/lib/libc/softfloat/letf2.c - copied unchanged from r232114, head/lib/libc/softfloat/letf2.c projects/armv6/lib/libc/softfloat/lttf2.c - copied unchanged from r232114, head/lib/libc/softfloat/lttf2.c projects/armv6/lib/libc/softfloat/negtf2.c - copied unchanged from r232114, head/lib/libc/softfloat/negtf2.c projects/armv6/lib/libc/softfloat/negxf2.c - copied unchanged from r232114, head/lib/libc/softfloat/negxf2.c projects/armv6/lib/libc/softfloat/netf2.c - copied unchanged from r232114, head/lib/libc/softfloat/netf2.c projects/armv6/lib/libc/softfloat/nexf2.c - copied unchanged from r232114, head/lib/libc/softfloat/nexf2.c projects/armv6/lib/libc/sparc64/gen/getcontextx.c - copied unchanged from r232114, head/lib/libc/sparc64/gen/getcontextx.c projects/armv6/lib/libc/stdlib/aligned_alloc.3 - copied unchanged from r232114, head/lib/libc/stdlib/aligned_alloc.3 projects/armv6/lib/libc/stdlib/at_quick_exit.3 - copied unchanged from r232114, head/lib/libc/stdlib/at_quick_exit.3 projects/armv6/lib/libc/stdlib/quick_exit.3 - copied unchanged from r232114, head/lib/libc/stdlib/quick_exit.3 projects/armv6/lib/libc/stdlib/quick_exit.c - copied unchanged from r232114, head/lib/libc/stdlib/quick_exit.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_add_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_add_4.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_add_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_add_8.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_and_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_and_4.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_and_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_and_8.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_op_n.h - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_op_n.h projects/armv6/lib/libcompiler_rt/__sync_fetch_and_or_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_or_4.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_or_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_or_8.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_sub_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_sub_4.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_sub_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_sub_8.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_xor_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_xor_4.c projects/armv6/lib/libcompiler_rt/__sync_fetch_and_xor_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_fetch_and_xor_8.c projects/armv6/lib/libcompiler_rt/__sync_lock_test_and_set_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_lock_test_and_set_4.c projects/armv6/lib/libcompiler_rt/__sync_lock_test_and_set_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_lock_test_and_set_8.c projects/armv6/lib/libcompiler_rt/__sync_val_compare_and_swap_4.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_val_compare_and_swap_4.c projects/armv6/lib/libcompiler_rt/__sync_val_compare_and_swap_8.c - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_val_compare_and_swap_8.c projects/armv6/lib/libcompiler_rt/__sync_val_compare_and_swap_n.h - copied unchanged from r232114, head/lib/libcompiler_rt/__sync_val_compare_and_swap_n.h projects/armv6/lib/libstdthreads/ - copied from r232114, head/lib/libstdthreads/ projects/armv6/lib/msun/src/fenv-softfloat.h - copied unchanged from r232114, head/lib/msun/src/fenv-softfloat.h projects/armv6/sbin/ifconfig/carp.c - copied unchanged from r232114, head/sbin/ifconfig/carp.c projects/armv6/share/man/man3/ATOMIC_VAR_INIT.3 - copied unchanged from r232114, head/share/man/man3/ATOMIC_VAR_INIT.3 projects/armv6/share/man/man3/offsetof.3 - copied unchanged from r232114, head/share/man/man3/offsetof.3 projects/armv6/share/man/man4/apic.4 - copied unchanged from r232114, head/share/man/man4/apic.4 projects/armv6/share/man/man4/eventtimers.4 - copied unchanged from r232114, head/share/man/man4/eventtimers.4 projects/armv6/share/man/man4/ffclock.4 - copied unchanged from r232114, head/share/man/man4/ffclock.4 projects/armv6/share/man/man4/hpt27xx.4 - copied unchanged from r232114, head/share/man/man4/hpt27xx.4 projects/armv6/share/man/man4/isci.4 - copied unchanged from r232114, head/share/man/man4/isci.4 projects/armv6/share/man/man4/oce.4 - copied unchanged from r232114, head/share/man/man4/oce.4 projects/armv6/share/man/man4/timecounters.4 - copied unchanged from r232114, head/share/man/man4/timecounters.4 projects/armv6/share/man/man4/viawd.4 - copied unchanged from r232114, head/share/man/man4/viawd.4 projects/armv6/share/man/man4/xnb.4 - copied unchanged from r232114, head/share/man/man4/xnb.4 projects/armv6/share/man/man9/buf_ring.9 - copied unchanged from r232114, head/share/man/man9/buf_ring.9 projects/armv6/share/man/man9/drbr.9 - copied unchanged from r232114, head/share/man/man9/drbr.9 projects/armv6/share/man/man9/eventtimers.9 - copied unchanged from r232114, head/share/man/man9/eventtimers.9 projects/armv6/share/man/man9/memcchr.9 - copied unchanged from r232114, head/share/man/man9/memcchr.9 projects/armv6/share/man/man9/shm_map.9 - copied unchanged from r232114, head/share/man/man9/shm_map.9 projects/armv6/sys/amd64/amd64/ptrace_machdep.c - copied unchanged from r232114, head/sys/amd64/amd64/ptrace_machdep.c projects/armv6/sys/cam/ctl/ - copied from r232114, head/sys/cam/ctl/ projects/armv6/sys/conf/WITHOUT_SOURCELESS - copied unchanged from r232114, head/sys/conf/WITHOUT_SOURCELESS projects/armv6/sys/conf/WITHOUT_SOURCELESS_HOST - copied unchanged from r232114, head/sys/conf/WITHOUT_SOURCELESS_HOST projects/armv6/sys/conf/WITHOUT_SOURCELESS_UCODE - copied unchanged from r232114, head/sys/conf/WITHOUT_SOURCELESS_UCODE projects/armv6/sys/contrib/dev/acpica/components/ - copied from r232114, head/sys/contrib/dev/acpica/components/ projects/armv6/sys/contrib/xz-embedded/ - copied from r232114, head/sys/contrib/xz-embedded/ projects/armv6/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c - copied unchanged from r232114, head/sys/dev/ath/ath_hal/ar5416/ar5416_radar.c projects/armv6/sys/dev/ath/if_ath_led.c - copied unchanged from r232114, head/sys/dev/ath/if_ath_led.c projects/armv6/sys/dev/ath/if_ath_led.h - copied unchanged from r232114, head/sys/dev/ath/if_ath_led.h projects/armv6/sys/dev/cxgbe/firmware/ - copied from r232114, head/sys/dev/cxgbe/firmware/ projects/armv6/sys/dev/fb/splash_txt.c - copied unchanged from r232114, head/sys/dev/fb/splash_txt.c projects/armv6/sys/dev/hpt27xx/ - copied from r232114, head/sys/dev/hpt27xx/ projects/armv6/sys/dev/isci/ - copied from r232114, head/sys/dev/isci/ projects/armv6/sys/dev/ixgbe/ixgbe_82598.h - copied unchanged from r232114, head/sys/dev/ixgbe/ixgbe_82598.h projects/armv6/sys/dev/ixgbe/ixgbe_82599.h - copied unchanged from r232114, head/sys/dev/ixgbe/ixgbe_82599.h projects/armv6/sys/dev/ixgbe/ixgbe_x540.c - copied unchanged from r232114, head/sys/dev/ixgbe/ixgbe_x540.c projects/armv6/sys/dev/ixgbe/ixgbe_x540.h - copied unchanged from r232114, head/sys/dev/ixgbe/ixgbe_x540.h projects/armv6/sys/dev/mps/mps_config.c - copied unchanged from r232114, head/sys/dev/mps/mps_config.c projects/armv6/sys/dev/mps/mps_mapping.c - copied unchanged from r232114, head/sys/dev/mps/mps_mapping.c projects/armv6/sys/dev/mps/mps_mapping.h - copied unchanged from r232114, head/sys/dev/mps/mps_mapping.h projects/armv6/sys/dev/mps/mps_sas.h - copied unchanged from r232114, head/sys/dev/mps/mps_sas.h projects/armv6/sys/dev/mps/mps_sas_lsi.c - copied unchanged from r232114, head/sys/dev/mps/mps_sas_lsi.c projects/armv6/sys/dev/oce/ - copied from r232114, head/sys/dev/oce/ projects/armv6/sys/dev/sound/pci/allegro_code.h - copied unchanged from r232114, head/sys/dev/sound/pci/allegro_code.h projects/armv6/sys/dev/sound/pci/allegro_reg.h - copied unchanged from r232114, head/sys/dev/sound/pci/allegro_reg.h projects/armv6/sys/dev/sound/pci/cs461x_dsp.h - copied unchanged from r232114, head/sys/dev/sound/pci/cs461x_dsp.h projects/armv6/sys/dev/sound/pci/emuxkireg.h - copied unchanged from r232114, head/sys/dev/sound/pci/emuxkireg.h projects/armv6/sys/dev/sound/pci/hda/hdaa.c - copied unchanged from r232114, head/sys/dev/sound/pci/hda/hdaa.c projects/armv6/sys/dev/sound/pci/hda/hdaa.h - copied unchanged from r232114, head/sys/dev/sound/pci/hda/hdaa.h projects/armv6/sys/dev/sound/pci/hda/hdaa_patches.c - copied unchanged from r232114, head/sys/dev/sound/pci/hda/hdaa_patches.c projects/armv6/sys/dev/sound/pci/hda/hdac_if.m - copied unchanged from r232114, head/sys/dev/sound/pci/hda/hdac_if.m projects/armv6/sys/dev/sound/pci/hda/hdacc.c - copied unchanged from r232114, head/sys/dev/sound/pci/hda/hdacc.c projects/armv6/sys/dev/usb/controller/dwc_otg.c - copied unchanged from r232114, head/sys/dev/usb/controller/dwc_otg.c projects/armv6/sys/dev/usb/controller/dwc_otg.h - copied unchanged from r232114, head/sys/dev/usb/controller/dwc_otg.h projects/armv6/sys/dev/usb/controller/dwc_otg_atmelarm.c - copied unchanged from r232114, head/sys/dev/usb/controller/dwc_otg_atmelarm.c projects/armv6/sys/dev/viawd/ - copied from r232114, head/sys/dev/viawd/ projects/armv6/sys/dev/wtap/ - copied from r232114, head/sys/dev/wtap/ projects/armv6/sys/dev/xen/netback/netback_unit_tests.c - copied unchanged from r232114, head/sys/dev/xen/netback/netback_unit_tests.c projects/armv6/sys/geom/uncompress/ - copied from r232114, head/sys/geom/uncompress/ projects/armv6/sys/i386/conf/XENHVM - copied unchanged from r232114, head/sys/i386/conf/XENHVM projects/armv6/sys/libkern/memcchr.c - copied unchanged from r232114, head/sys/libkern/memcchr.c projects/armv6/sys/libkern/strchr.c - copied unchanged from r232114, head/sys/libkern/strchr.c projects/armv6/sys/libkern/strrchr.c - copied unchanged from r232114, head/sys/libkern/strrchr.c projects/armv6/sys/mips/cavium/octeon_cop2.S - copied unchanged from r232114, head/sys/mips/cavium/octeon_cop2.S projects/armv6/sys/mips/cavium/octeon_cop2.h - copied unchanged from r232114, head/sys/mips/cavium/octeon_cop2.h projects/armv6/sys/mips/cavium/octeon_gpio.c - copied unchanged from r232114, head/sys/mips/cavium/octeon_gpio.c projects/armv6/sys/mips/cavium/octeon_gpiovar.h - copied unchanged from r232114, head/sys/mips/cavium/octeon_gpiovar.h projects/armv6/sys/mips/conf/AR71XX_BASE - copied unchanged from r232114, head/sys/mips/conf/AR71XX_BASE projects/armv6/sys/mips/conf/AR71XX_BASE.hints - copied unchanged from r232114, head/sys/mips/conf/AR71XX_BASE.hints projects/armv6/sys/mips/conf/PB47 - copied unchanged from r232114, head/sys/mips/conf/PB47 projects/armv6/sys/mips/conf/PB47.hints - copied unchanged from r232114, head/sys/mips/conf/PB47.hints projects/armv6/sys/mips/conf/ROUTERSTATION - copied unchanged from r232114, head/sys/mips/conf/ROUTERSTATION projects/armv6/sys/mips/conf/ROUTERSTATION.hints - copied unchanged from r232114, head/sys/mips/conf/ROUTERSTATION.hints projects/armv6/sys/mips/conf/ROUTERSTATION_MFS - copied unchanged from r232114, head/sys/mips/conf/ROUTERSTATION_MFS projects/armv6/sys/mips/conf/RSPRO - copied unchanged from r232114, head/sys/mips/conf/RSPRO projects/armv6/sys/mips/conf/RSPRO.hints - copied unchanged from r232114, head/sys/mips/conf/RSPRO.hints projects/armv6/sys/mips/conf/RSPRO_MFS - copied unchanged from r232114, head/sys/mips/conf/RSPRO_MFS projects/armv6/sys/mips/conf/RSPRO_STANDALONE - copied unchanged from r232114, head/sys/mips/conf/RSPRO_STANDALONE projects/armv6/sys/mips/include/octeon_cop2.h - copied unchanged from r232114, head/sys/mips/include/octeon_cop2.h projects/armv6/sys/mips/mips/octeon_cop2.c - copied unchanged from r232114, head/sys/mips/mips/octeon_cop2.c projects/armv6/sys/mips/mips/octeon_cop2_swtch.S - copied unchanged from r232114, head/sys/mips/mips/octeon_cop2_swtch.S projects/armv6/sys/modules/ar71xx/ - copied from r232114, head/sys/modules/ar71xx/ projects/armv6/sys/modules/carp/ - copied from r232114, head/sys/modules/carp/ projects/armv6/sys/modules/cfi/ - copied from r232114, head/sys/modules/cfi/ projects/armv6/sys/modules/cxgbe/firmware/ - copied from r232114, head/sys/modules/cxgbe/firmware/ projects/armv6/sys/modules/geom/geom_uncompress/ - copied from r232114, head/sys/modules/geom/geom_uncompress/ projects/armv6/sys/modules/gpio/ - copied from r232114, head/sys/modules/gpio/ projects/armv6/sys/modules/hpt27xx/ - copied from r232114, head/sys/modules/hpt27xx/ projects/armv6/sys/modules/isci/ - copied from r232114, head/sys/modules/isci/ projects/armv6/sys/modules/oce/ - copied from r232114, head/sys/modules/oce/ projects/armv6/sys/modules/splash/txt/ - copied from r232114, head/sys/modules/splash/txt/ projects/armv6/sys/modules/usb/avr32dci/ - copied from r232114, head/sys/modules/usb/avr32dci/ projects/armv6/sys/modules/viawd/ - copied from r232114, head/sys/modules/viawd/ projects/armv6/sys/modules/wtap/ - copied from r232114, head/sys/modules/wtap/ projects/armv6/sys/powerpc/ofw/ofw_pci.c - copied unchanged from r232114, head/sys/powerpc/ofw/ofw_pci.c projects/armv6/sys/powerpc/ofw/ofw_pci.h - copied unchanged from r232114, head/sys/powerpc/ofw/ofw_pci.h projects/armv6/sys/sys/_kstack_cache.h - copied unchanged from r232114, head/sys/sys/_kstack_cache.h projects/armv6/tools/bsdbox/ - copied from r232114, head/tools/bsdbox/ projects/armv6/tools/build/options/WITHOUT_CAPSICUM - copied unchanged from r232114, head/tools/build/options/WITHOUT_CAPSICUM projects/armv6/tools/build/options/WITHOUT_SOURCELESS - copied unchanged from r232114, head/tools/build/options/WITHOUT_SOURCELESS projects/armv6/tools/build/options/WITHOUT_SOURCELESS_HOST - copied unchanged from r232114, head/tools/build/options/WITHOUT_SOURCELESS_HOST projects/armv6/tools/build/options/WITHOUT_SOURCELESS_UCODE - copied unchanged from r232114, head/tools/build/options/WITHOUT_SOURCELESS_UCODE projects/armv6/tools/build/options/WITH_CLANG_EXTRAS - copied unchanged from r232114, head/tools/build/options/WITH_CLANG_EXTRAS projects/armv6/tools/build/options/WITH_CTF - copied unchanged from r232114, head/tools/build/options/WITH_CTF projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_aac - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_aac projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_acpi_support - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_acpi_support projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_acpica - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_acpica projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_adb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_adb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_adlink - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_adlink projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_advansys - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_advansys projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ae - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ae projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_age - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_age projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_agp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_agp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_aha - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_aha projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ahb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ahb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ahci - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ahci projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_aic - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_aic projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_aic7xxx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_aic7xxx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_alc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_alc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ale - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ale projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_amdsbwd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_amdsbwd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_amdtemp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_amdtemp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_amr - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_amr projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_an - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_an projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_arcmsr - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_arcmsr projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_asmc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_asmc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_asr - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_asr projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ata - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ata projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ath - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ath projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_atkbdc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_atkbdc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_auxio - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_auxio projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bce - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bce projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bfe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bfe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bktr - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bktr projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_buslogic - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_buslogic projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bwi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bwi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bwn - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bwn projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_bxe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_bxe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cardbus - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cardbus projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cas - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cas projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ce - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ce projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cesa - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cesa projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cfe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cfe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cfi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cfi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ciss - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ciss projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cmx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cmx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_coretemp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_coretemp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cpuctl - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cpuctl projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cpufreq - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cpufreq projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cs - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cs projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ct - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ct projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ctau - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ctau projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cxgb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cxgb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cxgbe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cxgbe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_cy - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_cy projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_dc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_dc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_dcons - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_dcons projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_de - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_de projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_digi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_digi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_dpms - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_dpms projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_dpt - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_dpt projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_drm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_drm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_e1000 - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_e1000 projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ed - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ed projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_eisa - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_eisa projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_en - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_en projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ep - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ep projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_esp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_esp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_et - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_et projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ex - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ex projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_exca - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_exca projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_fatm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_fatm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_fb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_fb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_fdc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_fdc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_fdt - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_fdt projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_fe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_fe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_firewire - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_firewire projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_flash - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_flash projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_fxp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_fxp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_gem - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_gem projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_glxiic - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_glxiic projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_glxsb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_glxsb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_gpio - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_gpio projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hatm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hatm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hifn - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hifn projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hme - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hme projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hpt27xx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hpt27xx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hptiop - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hptiop projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hptmv - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hptmv projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hptrr - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hptrr projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_hwpmc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_hwpmc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ic - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ic projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ichsmb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ichsmb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ichwd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ichwd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ida - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ida projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ie - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ie projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ieee488 - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ieee488 projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_if_ndis - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_if_ndis projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_iicbus - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_iicbus projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_iir - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_iir projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_io - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_io projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ipmi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ipmi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ips - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ips projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ipw - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ipw projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_iscsi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_iscsi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_isp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_isp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ispfw - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ispfw projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_iwi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_iwi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_iwn - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_iwn projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ixgb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ixgb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ixgbe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ixgbe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_jme - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_jme projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_joy - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_joy projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_kbd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_kbd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_kbdmux - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_kbdmux projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ksyms - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ksyms projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_le - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_le projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_led - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_led projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_lge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_lge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_lindev - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_lindev projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_lmc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_lmc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_malo - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_malo projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mc146818 - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mc146818 projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mca - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mca projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mcd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mcd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_md - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_md projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mem - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mem projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mfi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mfi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mii - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mii projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mk48txx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mk48txx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mlx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mlx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mly - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mly projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mmc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mmc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mn - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mn projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mps - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mps projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mpt - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mpt projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mse - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mse projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_msk - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_msk projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mvs - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mvs projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mwl - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mwl projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_mxge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_mxge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_my - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_my projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ncv - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ncv projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_netmap - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_netmap projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nfe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nfe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nmdm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nmdm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nsp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nsp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_null - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_null projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nve - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nve projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nvram - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nvram projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nvram2env - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nvram2env projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_nxge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_nxge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ofw - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ofw projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_patm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_patm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pbio - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pbio projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pccard - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pccard projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pccbb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pccbb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pcf - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pcf projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pcn - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pcn projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pdq - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pdq projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_powermac_nvram - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_powermac_nvram projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ppbus - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ppbus projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ppc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ppc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pst - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pst projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pty - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_pty projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_puc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_puc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_qlxgb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_qlxgb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_quicc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_quicc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ral - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ral projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_random - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_random projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_rc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_rc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_re - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_re projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_rndtest - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_rndtest projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_rp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_rp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_rt - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_rt projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_safe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_safe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sbni - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sbni projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_scc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_scc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_scd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_scd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sdhci - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sdhci projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sec - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sec projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sf - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sf projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sfxge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sfxge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_si - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_si projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_siba - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_siba projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_siis - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_siis projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sio - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sio projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sis - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sis projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sk - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sk projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_smbus - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_smbus projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_smc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_smc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sn - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sn projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_snc - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_snc projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_snp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_snp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_speaker - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_speaker projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_spibus - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_spibus projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ste - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ste projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_stg - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_stg projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_stge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_stge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_streams - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_streams projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sym - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_sym projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_syscons - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_syscons projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_tdfx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_tdfx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ti - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ti projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_tl - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_tl projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_tpm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_tpm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_trm - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_trm projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_tsec - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_tsec projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_twa - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_twa projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_twe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_twe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_tws - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_tws projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_tx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_tx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_txp - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_txp projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_uart - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_uart projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_ubsec - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_ubsec projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_utopia - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_utopia projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_vge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_vge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_viawd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_viawd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_virtio - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_virtio projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_vkbd - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_vkbd projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_vr - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_vr projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_vte - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_vte projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_vx - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_vx projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_vxge - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_vxge projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_watchdog - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_watchdog projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_wb - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_wb projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_wds - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_wds projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_wi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_wi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_wl - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_wl projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_wpi - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_wpi projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_wtap - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_wtap projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_xe - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_xe projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_xen - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_xen projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_xl - copied unchanged from r232114, head/tools/kerneldoc/subsys/Doxyfile-dev_xl projects/armv6/tools/regression/bin/sh/builtins/case13.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case13.0 projects/armv6/tools/regression/bin/sh/builtins/case14.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case14.0 projects/armv6/tools/regression/bin/sh/builtins/case15.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case15.0 projects/armv6/tools/regression/bin/sh/builtins/case16.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case16.0 projects/armv6/tools/regression/bin/sh/builtins/case17.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case17.0 projects/armv6/tools/regression/bin/sh/builtins/case18.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case18.0 projects/armv6/tools/regression/bin/sh/builtins/case19.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/case19.0 projects/armv6/tools/regression/bin/sh/builtins/cd8.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/cd8.0 projects/armv6/tools/regression/bin/sh/builtins/for2.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/for2.0 projects/armv6/tools/regression/bin/sh/builtins/for3.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/for3.0 projects/armv6/tools/regression/bin/sh/builtins/hash4.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/hash4.0 projects/armv6/tools/regression/bin/sh/builtins/trap10.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/trap10.0 projects/armv6/tools/regression/bin/sh/builtins/trap11.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/trap11.0 projects/armv6/tools/regression/bin/sh/builtins/trap9.0 - copied unchanged from r232114, head/tools/regression/bin/sh/builtins/trap9.0 projects/armv6/tools/regression/bin/sh/expansion/cmdsubst12.0 - copied unchanged from r232114, head/tools/regression/bin/sh/expansion/cmdsubst12.0 projects/armv6/tools/regression/bin/sh/expansion/cmdsubst13.0 - copied unchanged from r232114, head/tools/regression/bin/sh/expansion/cmdsubst13.0 projects/armv6/tools/regression/bin/sh/parameters/positional2.0 - copied unchanged from r232114, head/tools/regression/bin/sh/parameters/positional2.0 projects/armv6/tools/regression/lib/libc/gen/test-fmtmsg.c - copied unchanged from r232114, head/tools/regression/lib/libc/gen/test-fmtmsg.c projects/armv6/tools/regression/lib/libc/stdio/test-getdelim.t - copied unchanged from r232114, head/tools/regression/lib/libc/stdio/test-getdelim.t projects/armv6/tools/regression/lib/libc/stdio/test-print-positional.t - copied unchanged from r232114, head/tools/regression/lib/libc/stdio/test-print-positional.t projects/armv6/tools/regression/lib/libc/stdio/test-printbasic.t - copied unchanged from r232114, head/tools/regression/lib/libc/stdio/test-printbasic.t projects/armv6/tools/regression/pipe/pipe-ino.c - copied unchanged from r232114, head/tools/regression/pipe/pipe-ino.c projects/armv6/tools/regression/pipe/pipe-reverse2.c - copied unchanged from r232114, head/tools/regression/pipe/pipe-reverse2.c projects/armv6/tools/regression/sbin/dhclient/ - copied from r232114, head/tools/regression/sbin/dhclient/ projects/armv6/tools/regression/sbin/mdconfig/ - copied from r232114, head/tools/regression/sbin/mdconfig/ projects/armv6/tools/regression/sockets/so_setfib/ - copied from r232114, head/tools/regression/sockets/so_setfib/ projects/armv6/tools/regression/usr.bin/cc/ - copied from r232114, head/tools/regression/usr.bin/cc/ projects/armv6/tools/regression/usr.bin/make/execution/ - copied from r232114, head/tools/regression/usr.bin/make/execution/ projects/armv6/tools/test/hwpmc/ - copied from r232114, head/tools/test/hwpmc/ projects/armv6/tools/test/netfibs/ - copied from r232114, head/tools/test/netfibs/ projects/armv6/tools/test/ptrace/ - copied from r232114, head/tools/test/ptrace/ projects/armv6/tools/tools/fixwhite/ - copied from r232114, head/tools/tools/fixwhite/ projects/armv6/tools/tools/wtap/ - copied from r232114, head/tools/tools/wtap/ projects/armv6/usr.bin/clang/bugpoint/ - copied from r232114, head/usr.bin/clang/bugpoint/ projects/armv6/usr.bin/clang/llc/ - copied from r232114, head/usr.bin/clang/llc/ projects/armv6/usr.bin/clang/lli/ - copied from r232114, head/usr.bin/clang/lli/ projects/armv6/usr.bin/clang/llvm-ar/ - copied from r232114, head/usr.bin/clang/llvm-ar/ projects/armv6/usr.bin/clang/llvm-as/ - copied from r232114, head/usr.bin/clang/llvm-as/ projects/armv6/usr.bin/clang/llvm-bcanalyzer/ - copied from r232114, head/usr.bin/clang/llvm-bcanalyzer/ projects/armv6/usr.bin/clang/llvm-diff/ - copied from r232114, head/usr.bin/clang/llvm-diff/ projects/armv6/usr.bin/clang/llvm-dis/ - copied from r232114, head/usr.bin/clang/llvm-dis/ projects/armv6/usr.bin/clang/llvm-extract/ - copied from r232114, head/usr.bin/clang/llvm-extract/ projects/armv6/usr.bin/clang/llvm-ld/ - copied from r232114, head/usr.bin/clang/llvm-ld/ projects/armv6/usr.bin/clang/llvm-link/ - copied from r232114, head/usr.bin/clang/llvm-link/ projects/armv6/usr.bin/clang/llvm-mc/ - copied from r232114, head/usr.bin/clang/llvm-mc/ projects/armv6/usr.bin/clang/llvm-nm/ - copied from r232114, head/usr.bin/clang/llvm-nm/ projects/armv6/usr.bin/clang/llvm-objdump/ - copied from r232114, head/usr.bin/clang/llvm-objdump/ projects/armv6/usr.bin/clang/llvm-prof/ - copied from r232114, head/usr.bin/clang/llvm-prof/ projects/armv6/usr.bin/clang/llvm-ranlib/ - copied from r232114, head/usr.bin/clang/llvm-ranlib/ projects/armv6/usr.bin/clang/llvm-rtdyld/ - copied from r232114, head/usr.bin/clang/llvm-rtdyld/ projects/armv6/usr.bin/clang/llvm-stub/ - copied from r232114, head/usr.bin/clang/llvm-stub/ projects/armv6/usr.bin/clang/macho-dump/ - copied from r232114, head/usr.bin/clang/macho-dump/ projects/armv6/usr.bin/clang/opt/ - copied from r232114, head/usr.bin/clang/opt/ projects/armv6/usr.bin/ctlstat/ - copied from r232114, head/usr.bin/ctlstat/ projects/armv6/usr.bin/mkulzma/ - copied from r232114, head/usr.bin/mkulzma/ projects/armv6/usr.sbin/cpucontrol/via.c - copied unchanged from r232114, head/usr.sbin/cpucontrol/via.c projects/armv6/usr.sbin/cpucontrol/via.h - copied unchanged from r232114, head/usr.sbin/cpucontrol/via.h projects/armv6/usr.sbin/ctladm/ - copied from r232114, head/usr.sbin/ctladm/ projects/armv6/usr.sbin/utx/ - copied from r232114, head/usr.sbin/utx/ Directory Properties: projects/armv6/contrib/libarchive/ (props changed) Replaced: projects/armv6/lib/libc/string/strchr.c - copied unchanged from r232114, head/lib/libc/string/strchr.c projects/armv6/lib/libc/string/strrchr.c - copied unchanged from r232114, head/lib/libc/string/strrchr.c projects/armv6/usr.bin/m4/parser.y - copied unchanged from r232114, head/usr.bin/m4/parser.y projects/armv6/usr.bin/m4/tokenizer.l - copied unchanged from r232114, head/usr.bin/m4/tokenizer.l Deleted: projects/armv6/bin/csh/host.defs projects/armv6/bin/sh/funcs/kill projects/armv6/contrib/compiler-rt/lib/abi.h projects/armv6/contrib/compiler-rt/lib/apple_versioning.c projects/armv6/contrib/compiler-rt/lib/endianness.h projects/armv6/contrib/tcsh/nls/Makefile projects/armv6/lib/libarchive/COPYING projects/armv6/lib/libarchive/README projects/armv6/lib/libarchive/archive.h projects/armv6/lib/libarchive/archive_check_magic.c projects/armv6/lib/libarchive/archive_crc32.h projects/armv6/lib/libarchive/archive_endian.h projects/armv6/lib/libarchive/archive_entry.3 projects/armv6/lib/libarchive/archive_entry.c projects/armv6/lib/libarchive/archive_entry.h projects/armv6/lib/libarchive/archive_entry_copy_stat.c projects/armv6/lib/libarchive/archive_entry_link_resolver.c projects/armv6/lib/libarchive/archive_entry_private.h projects/armv6/lib/libarchive/archive_entry_stat.c projects/armv6/lib/libarchive/archive_entry_strmode.c projects/armv6/lib/libarchive/archive_entry_xattr.c projects/armv6/lib/libarchive/archive_hash.h projects/armv6/lib/libarchive/archive_platform.h projects/armv6/lib/libarchive/archive_private.h projects/armv6/lib/libarchive/archive_read.3 projects/armv6/lib/libarchive/archive_read.c projects/armv6/lib/libarchive/archive_read_data_into_fd.c projects/armv6/lib/libarchive/archive_read_disk.3 projects/armv6/lib/libarchive/archive_read_disk.c projects/armv6/lib/libarchive/archive_read_disk_entry_from_file.c projects/armv6/lib/libarchive/archive_read_disk_private.h projects/armv6/lib/libarchive/archive_read_disk_set_standard_lookup.c projects/armv6/lib/libarchive/archive_read_extract.c projects/armv6/lib/libarchive/archive_read_open_fd.c projects/armv6/lib/libarchive/archive_read_open_file.c projects/armv6/lib/libarchive/archive_read_open_filename.c projects/armv6/lib/libarchive/archive_read_open_memory.c projects/armv6/lib/libarchive/archive_read_private.h projects/armv6/lib/libarchive/archive_read_support_compression_all.c projects/armv6/lib/libarchive/archive_read_support_compression_bzip2.c projects/armv6/lib/libarchive/archive_read_support_compression_compress.c projects/armv6/lib/libarchive/archive_read_support_compression_gzip.c projects/armv6/lib/libarchive/archive_read_support_compression_none.c projects/armv6/lib/libarchive/archive_read_support_compression_program.c projects/armv6/lib/libarchive/archive_read_support_compression_rpm.c projects/armv6/lib/libarchive/archive_read_support_compression_uu.c projects/armv6/lib/libarchive/archive_read_support_compression_xz.c projects/armv6/lib/libarchive/archive_read_support_format_all.c projects/armv6/lib/libarchive/archive_read_support_format_ar.c projects/armv6/lib/libarchive/archive_read_support_format_cpio.c projects/armv6/lib/libarchive/archive_read_support_format_empty.c projects/armv6/lib/libarchive/archive_read_support_format_iso9660.c projects/armv6/lib/libarchive/archive_read_support_format_mtree.c projects/armv6/lib/libarchive/archive_read_support_format_raw.c projects/armv6/lib/libarchive/archive_read_support_format_tar.c projects/armv6/lib/libarchive/archive_read_support_format_xar.c projects/armv6/lib/libarchive/archive_read_support_format_zip.c projects/armv6/lib/libarchive/archive_string.c projects/armv6/lib/libarchive/archive_string.h projects/armv6/lib/libarchive/archive_string_sprintf.c projects/armv6/lib/libarchive/archive_util.3 projects/armv6/lib/libarchive/archive_util.c projects/armv6/lib/libarchive/archive_virtual.c projects/armv6/lib/libarchive/archive_write.3 projects/armv6/lib/libarchive/archive_write.c projects/armv6/lib/libarchive/archive_write_disk.3 projects/armv6/lib/libarchive/archive_write_disk.c projects/armv6/lib/libarchive/archive_write_disk_private.h projects/armv6/lib/libarchive/archive_write_disk_set_standard_lookup.c projects/armv6/lib/libarchive/archive_write_open_fd.c projects/armv6/lib/libarchive/archive_write_open_file.c projects/armv6/lib/libarchive/archive_write_open_filename.c projects/armv6/lib/libarchive/archive_write_open_memory.c projects/armv6/lib/libarchive/archive_write_private.h projects/armv6/lib/libarchive/archive_write_set_compression_bzip2.c projects/armv6/lib/libarchive/archive_write_set_compression_compress.c projects/armv6/lib/libarchive/archive_write_set_compression_gzip.c projects/armv6/lib/libarchive/archive_write_set_compression_none.c projects/armv6/lib/libarchive/archive_write_set_compression_program.c projects/armv6/lib/libarchive/archive_write_set_compression_xz.c projects/armv6/lib/libarchive/archive_write_set_format.c projects/armv6/lib/libarchive/archive_write_set_format_ar.c projects/armv6/lib/libarchive/archive_write_set_format_by_name.c projects/armv6/lib/libarchive/archive_write_set_format_cpio.c projects/armv6/lib/libarchive/archive_write_set_format_cpio_newc.c projects/armv6/lib/libarchive/archive_write_set_format_mtree.c projects/armv6/lib/libarchive/archive_write_set_format_pax.c projects/armv6/lib/libarchive/archive_write_set_format_shar.c projects/armv6/lib/libarchive/archive_write_set_format_ustar.c projects/armv6/lib/libarchive/archive_write_set_format_zip.c projects/armv6/lib/libarchive/cpio.5 projects/armv6/lib/libarchive/filter_fork.c projects/armv6/lib/libarchive/filter_fork.h projects/armv6/lib/libarchive/libarchive-formats.5 projects/armv6/lib/libarchive/libarchive.3 projects/armv6/lib/libarchive/libarchive_fe/ projects/armv6/lib/libarchive/libarchive_internals.3 projects/armv6/lib/libarchive/tar.5 projects/armv6/lib/libarchive/test/.cvsignore projects/armv6/lib/libarchive/test/README projects/armv6/lib/libarchive/test/main.c projects/armv6/lib/libarchive/test/read_open_memory.c projects/armv6/lib/libarchive/test/test.h projects/armv6/lib/libarchive/test/test_acl_basic.c projects/armv6/lib/libarchive/test/test_acl_freebsd.c projects/armv6/lib/libarchive/test/test_acl_pax.c projects/armv6/lib/libarchive/test/test_archive_api_feature.c projects/armv6/lib/libarchive/test/test_bad_fd.c projects/armv6/lib/libarchive/test/test_compat_bzip2.c projects/armv6/lib/libarchive/test/test_compat_bzip2_1.tbz.uu projects/armv6/lib/libarchive/test/test_compat_bzip2_2.tbz.uu projects/armv6/lib/libarchive/test/test_compat_cpio.c projects/armv6/lib/libarchive/test/test_compat_cpio_1.cpio.uu projects/armv6/lib/libarchive/test/test_compat_gtar.c projects/armv6/lib/libarchive/test/test_compat_gtar_1.tar.uu projects/armv6/lib/libarchive/test/test_compat_gzip.c projects/armv6/lib/libarchive/test/test_compat_gzip_1.tgz.uu projects/armv6/lib/libarchive/test/test_compat_gzip_2.tgz.uu projects/armv6/lib/libarchive/test/test_compat_lzma.c projects/armv6/lib/libarchive/test/test_compat_lzma_1.tlz.uu projects/armv6/lib/libarchive/test/test_compat_lzma_2.tlz.uu projects/armv6/lib/libarchive/test/test_compat_lzma_3.tlz.uu projects/armv6/lib/libarchive/test/test_compat_solaris_tar_acl.c projects/armv6/lib/libarchive/test/test_compat_solaris_tar_acl.tar.uu projects/armv6/lib/libarchive/test/test_compat_tar_hardlink.c projects/armv6/lib/libarchive/test/test_compat_tar_hardlink_1.tar.uu projects/armv6/lib/libarchive/test/test_compat_xz.c projects/armv6/lib/libarchive/test/test_compat_xz_1.txz.uu projects/armv6/lib/libarchive/test/test_compat_zip.c projects/armv6/lib/libarchive/test/test_compat_zip_1.zip.uu projects/armv6/lib/libarchive/test/test_compat_zip_2.zip.uu projects/armv6/lib/libarchive/test/test_empty_write.c projects/armv6/lib/libarchive/test/test_entry.c projects/armv6/lib/libarchive/test/test_entry_strmode.c projects/armv6/lib/libarchive/test/test_extattr_freebsd.c projects/armv6/lib/libarchive/test/test_fuzz.c projects/armv6/lib/libarchive/test/test_fuzz_1.iso.Z.uu projects/armv6/lib/libarchive/test/test_link_resolver.c projects/armv6/lib/libarchive/test/test_open_failure.c projects/armv6/lib/libarchive/test/test_open_fd.c projects/armv6/lib/libarchive/test/test_open_file.c projects/armv6/lib/libarchive/test/test_open_filename.c projects/armv6/lib/libarchive/test/test_pax_filename_encoding.c projects/armv6/lib/libarchive/test/test_pax_filename_encoding.tar.uu projects/armv6/lib/libarchive/test/test_read_compress_program.c projects/armv6/lib/libarchive/test/test_read_data_large.c projects/armv6/lib/libarchive/test/test_read_disk.c projects/armv6/lib/libarchive/test/test_read_disk_entry_from_file.c projects/armv6/lib/libarchive/test/test_read_extract.c projects/armv6/lib/libarchive/test/test_read_file_nonexistent.c projects/armv6/lib/libarchive/test/test_read_format_ar.ar.uu projects/armv6/lib/libarchive/test/test_read_format_ar.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_Z.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_be.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_be.cpio.uu projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_bz2.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_gz.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_lzma.c projects/armv6/lib/libarchive/test/test_read_format_cpio_bin_xz.c projects/armv6/lib/libarchive/test/test_read_format_cpio_odc.c projects/armv6/lib/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.c projects/armv6/lib/libarchive/test/test_read_format_cpio_svr4_bzip2_rpm.rpm.uu projects/armv6/lib/libarchive/test/test_read_format_cpio_svr4_gzip.c projects/armv6/lib/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.c projects/armv6/lib/libarchive/test/test_read_format_cpio_svr4_gzip_rpm.rpm.uu projects/armv6/lib/libarchive/test/test_read_format_cpio_svr4c_Z.c projects/armv6/lib/libarchive/test/test_read_format_empty.c projects/armv6/lib/libarchive/test/test_read_format_gtar_gz.c projects/armv6/lib/libarchive/test/test_read_format_gtar_lzma.c projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse.c projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse_1_13.tar.uu projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse_1_17.tar.uu projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse_1_17_posix00.tar.uu projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse_1_17_posix01.tar.uu projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu projects/armv6/lib/libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu projects/armv6/lib/libarchive/test/test_read_format_iso.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_2.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_gz.c projects/armv6/lib/libarchive/test/test_read_format_iso_joliet.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_joliet_rockridge.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_multi_extent.c projects/armv6/lib/libarchive/test/test_read_format_iso_multi_extent.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_rockridge.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_rockridge_ce.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_rockridge_new.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_rockridge_rr_moved.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_iso_zisofs.iso.Z.uu projects/armv6/lib/libarchive/test/test_read_format_isojoliet_bz2.c projects/armv6/lib/libarchive/test/test_read_format_isojoliet_long.c projects/armv6/lib/libarchive/test/test_read_format_isojoliet_rr.c projects/armv6/lib/libarchive/test/test_read_format_isorr_bz2.c projects/armv6/lib/libarchive/test/test_read_format_isorr_ce.c projects/armv6/lib/libarchive/test/test_read_format_isorr_new_bz2.c projects/armv6/lib/libarchive/test/test_read_format_isorr_rr_moved.c projects/armv6/lib/libarchive/test/test_read_format_isozisofs_bz2.c projects/armv6/lib/libarchive/test/test_read_format_mtree.c projects/armv6/lib/libarchive/test/test_read_format_mtree.mtree.uu projects/armv6/lib/libarchive/test/test_read_format_pax_bz2.c projects/armv6/lib/libarchive/test/test_read_format_raw.c projects/armv6/lib/libarchive/test/test_read_format_raw.data.Z.uu projects/armv6/lib/libarchive/test/test_read_format_raw.data.uu projects/armv6/lib/libarchive/test/test_read_format_tar.c projects/armv6/lib/libarchive/test/test_read_format_tar_empty_filename.c projects/armv6/lib/libarchive/test/test_read_format_tar_empty_filename.tar.uu projects/armv6/lib/libarchive/test/test_read_format_tbz.c projects/armv6/lib/libarchive/test/test_read_format_tgz.c projects/armv6/lib/libarchive/test/test_read_format_tlz.c projects/armv6/lib/libarchive/test/test_read_format_txz.c projects/armv6/lib/libarchive/test/test_read_format_tz.c projects/armv6/lib/libarchive/test/test_read_format_xar.c projects/armv6/lib/libarchive/test/test_read_format_zip.c projects/armv6/lib/libarchive/test/test_read_format_zip.zip.uu projects/armv6/lib/libarchive/test/test_read_large.c projects/armv6/lib/libarchive/test/test_read_pax_truncated.c projects/armv6/lib/libarchive/test/test_read_position.c projects/armv6/lib/libarchive/test/test_read_truncated.c projects/armv6/lib/libarchive/test/test_read_uu.c projects/armv6/lib/libarchive/test/test_tar_filenames.c projects/armv6/lib/libarchive/test/test_tar_large.c projects/armv6/lib/libarchive/test/test_ustar_filenames.c projects/armv6/lib/libarchive/test/test_write_compress.c projects/armv6/lib/libarchive/test/test_write_compress_bzip2.c projects/armv6/lib/libarchive/test/test_write_compress_gzip.c projects/armv6/lib/libarchive/test/test_write_compress_lzma.c projects/armv6/lib/libarchive/test/test_write_compress_program.c projects/armv6/lib/libarchive/test/test_write_compress_xz.c projects/armv6/lib/libarchive/test/test_write_disk.c projects/armv6/lib/libarchive/test/test_write_disk_failures.c projects/armv6/lib/libarchive/test/test_write_disk_hardlink.c projects/armv6/lib/libarchive/test/test_write_disk_perms.c projects/armv6/lib/libarchive/test/test_write_disk_secure.c projects/armv6/lib/libarchive/test/test_write_disk_sparse.c projects/armv6/lib/libarchive/test/test_write_disk_symlink.c projects/armv6/lib/libarchive/test/test_write_disk_times.c projects/armv6/lib/libarchive/test/test_write_format_ar.c projects/armv6/lib/libarchive/test/test_write_format_cpio.c projects/armv6/lib/libarchive/test/test_write_format_cpio_empty.c projects/armv6/lib/libarchive/test/test_write_format_cpio_newc.c projects/armv6/lib/libarchive/test/test_write_format_cpio_odc.c projects/armv6/lib/libarchive/test/test_write_format_mtree.c projects/armv6/lib/libarchive/test/test_write_format_pax.c projects/armv6/lib/libarchive/test/test_write_format_shar_empty.c projects/armv6/lib/libarchive/test/test_write_format_tar.c projects/armv6/lib/libarchive/test/test_write_format_tar_empty.c projects/armv6/lib/libarchive/test/test_write_format_tar_ustar.c projects/armv6/lib/libarchive/test/test_write_format_zip.c projects/armv6/lib/libarchive/test/test_write_format_zip_empty.c projects/armv6/lib/libarchive/test/test_write_format_zip_no_compression.c projects/armv6/lib/libarchive/test/test_write_open_memory.c projects/armv6/lib/libc/i386/string/index.S projects/armv6/lib/libc/i386/string/rindex.S projects/armv6/lib/libc/mips/string/index.S projects/armv6/lib/libc/mips/string/rindex.S projects/armv6/lib/libc/stdlib/posix_memalign.3 projects/armv6/lib/libc/string/index.c projects/armv6/lib/libc/string/rindex.c projects/armv6/sbin/ifconfig/ifcarp.c projects/armv6/share/man/man7/eventtimers.7 projects/armv6/sys/contrib/dev/acpica/debugger/ projects/armv6/sys/contrib/dev/acpica/disassembler/ projects/armv6/sys/contrib/dev/acpica/dispatcher/ projects/armv6/sys/contrib/dev/acpica/events/ projects/armv6/sys/contrib/dev/acpica/executer/ projects/armv6/sys/contrib/dev/acpica/hardware/ projects/armv6/sys/contrib/dev/acpica/namespace/ projects/armv6/sys/contrib/dev/acpica/parser/ projects/armv6/sys/contrib/dev/acpica/resources/ projects/armv6/sys/contrib/dev/acpica/tables/ projects/armv6/sys/contrib/dev/acpica/utilities/ projects/armv6/sys/dev/cxgbe/common/t4fw_interface.h projects/armv6/sys/fs/ext2fs/ext2_readwrite.c projects/armv6/sys/gnu/dev/ projects/armv6/sys/libkern/gets.c projects/armv6/sys/libkern/index.c projects/armv6/sys/libkern/rindex.c projects/armv6/sys/libkern/skpc.c projects/armv6/sys/mips/conf/AR71XX projects/armv6/sys/mips/conf/AR71XX.hints projects/armv6/sys/modules/if_carp/ projects/armv6/usr.bin/cpio/bsdcpio.1 projects/armv6/usr.bin/cpio/cmdline.c projects/armv6/usr.bin/cpio/cpio.c projects/armv6/usr.bin/cpio/cpio.h projects/armv6/usr.bin/cpio/cpio_platform.h projects/armv6/usr.bin/cpio/test/main.c projects/armv6/usr.bin/cpio/test/test.h projects/armv6/usr.bin/cpio/test/test_0.c projects/armv6/usr.bin/cpio/test/test_basic.c projects/armv6/usr.bin/cpio/test/test_cmdline.c projects/armv6/usr.bin/cpio/test/test_format_newc.c projects/armv6/usr.bin/cpio/test/test_gcpio_compat.c projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref.bin.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref.crc.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref.newc.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref.ustar.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref_nosym.bin.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref_nosym.crc.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref_nosym.newc.uu projects/armv6/usr.bin/cpio/test/test_gcpio_compat_ref_nosym.ustar.uu projects/armv6/usr.bin/cpio/test/test_option_B_upper.c projects/armv6/usr.bin/cpio/test/test_option_C_upper.c projects/armv6/usr.bin/cpio/test/test_option_J_upper.c projects/armv6/usr.bin/cpio/test/test_option_L_upper.c projects/armv6/usr.bin/cpio/test/test_option_Z_upper.c projects/armv6/usr.bin/cpio/test/test_option_a.c projects/armv6/usr.bin/cpio/test/test_option_c.c projects/armv6/usr.bin/cpio/test/test_option_d.c projects/armv6/usr.bin/cpio/test/test_option_f.c projects/armv6/usr.bin/cpio/test/test_option_f.cpio.uu projects/armv6/usr.bin/cpio/test/test_option_help.c projects/armv6/usr.bin/cpio/test/test_option_l.c projects/armv6/usr.bin/cpio/test/test_option_lzma.c projects/armv6/usr.bin/cpio/test/test_option_m.c projects/armv6/usr.bin/cpio/test/test_option_m.cpio.uu projects/armv6/usr.bin/cpio/test/test_option_t.c projects/armv6/usr.bin/cpio/test/test_option_t.cpio.uu projects/armv6/usr.bin/cpio/test/test_option_t.stdout.uu projects/armv6/usr.bin/cpio/test/test_option_tv.stdout.uu projects/armv6/usr.bin/cpio/test/test_option_u.c projects/armv6/usr.bin/cpio/test/test_option_version.c projects/armv6/usr.bin/cpio/test/test_option_y.c projects/armv6/usr.bin/cpio/test/test_option_z.c projects/armv6/usr.bin/cpio/test/test_owner_parse.c projects/armv6/usr.bin/cpio/test/test_passthrough_dotdot.c projects/armv6/usr.bin/cpio/test/test_passthrough_reverse.c projects/armv6/usr.bin/cpio/test/test_pathmatch.c projects/armv6/usr.bin/tar/COPYING projects/armv6/usr.bin/tar/bsdtar.1 projects/armv6/usr.bin/tar/bsdtar.c projects/armv6/usr.bin/tar/bsdtar.h projects/armv6/usr.bin/tar/bsdtar_platform.h projects/armv6/usr.bin/tar/cmdline.c projects/armv6/usr.bin/tar/getdate.c projects/armv6/usr.bin/tar/read.c projects/armv6/usr.bin/tar/subst.c projects/armv6/usr.bin/tar/test/main.c projects/armv6/usr.bin/tar/test/test.h projects/armv6/usr.bin/tar/test/test_0.c projects/armv6/usr.bin/tar/test/test_basic.c projects/armv6/usr.bin/tar/test/test_copy.c projects/armv6/usr.bin/tar/test/test_empty_mtree.c projects/armv6/usr.bin/tar/test/test_getdate.c projects/armv6/usr.bin/tar/test/test_help.c projects/armv6/usr.bin/tar/test/test_option_T_upper.c projects/armv6/usr.bin/tar/test/test_option_q.c projects/armv6/usr.bin/tar/test/test_option_r.c projects/armv6/usr.bin/tar/test/test_option_s.c projects/armv6/usr.bin/tar/test/test_patterns.c projects/armv6/usr.bin/tar/test/test_patterns_2.tar.uu projects/armv6/usr.bin/tar/test/test_patterns_3.tar.uu projects/armv6/usr.bin/tar/test/test_patterns_4.tar.uu projects/armv6/usr.bin/tar/test/test_stdio.c projects/armv6/usr.bin/tar/test/test_strip_components.c projects/armv6/usr.bin/tar/test/test_symlink_dir.c projects/armv6/usr.bin/tar/test/test_version.c projects/armv6/usr.bin/tar/tree.c projects/armv6/usr.bin/tar/tree.h projects/armv6/usr.bin/tar/util.c projects/armv6/usr.bin/tar/write.c projects/armv6/usr.bin/wtmpcvt/ projects/armv6/usr.sbin/utxrm/ Modified: projects/armv6/COPYRIGHT projects/armv6/MAINTAINERS (contents, props changed) projects/armv6/Makefile projects/armv6/Makefile.inc1 projects/armv6/ObsoleteFiles.inc projects/armv6/UPDATING projects/armv6/bin/chio/chio.c projects/armv6/bin/csh/Makefile projects/armv6/bin/csh/config.h projects/armv6/bin/csh/config_p.h projects/armv6/bin/ed/io.c projects/armv6/bin/ed/main.c projects/armv6/bin/ps/print.c projects/armv6/bin/ps/ps.c projects/armv6/bin/sh/arith_yacc.c projects/armv6/bin/sh/arith_yylex.c projects/armv6/bin/sh/cd.c projects/armv6/bin/sh/eval.c projects/armv6/bin/sh/eval.h projects/armv6/bin/sh/exec.c projects/armv6/bin/sh/exec.h projects/armv6/bin/sh/expand.c projects/armv6/bin/sh/expand.h projects/armv6/bin/sh/histedit.c projects/armv6/bin/sh/input.c projects/armv6/bin/sh/input.h projects/armv6/bin/sh/jobs.c projects/armv6/bin/sh/jobs.h projects/armv6/bin/sh/main.c projects/armv6/bin/sh/main.h projects/armv6/bin/sh/mksyntax.c projects/armv6/bin/sh/myhistedit.h projects/armv6/bin/sh/mystring.c projects/armv6/bin/sh/mystring.h projects/armv6/bin/sh/trap.c projects/armv6/bin/sh/var.c projects/armv6/bin/sh/var.h projects/armv6/bin/stty/modes.c projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/dtrace.c projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/io/tst.fds.c projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_CREATEFAIL.many.exe (contents, props changed) projects/armv6/cddl/contrib/opensolaris/cmd/zfs/zfs.8 projects/armv6/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.c projects/armv6/cddl/contrib/opensolaris/cmd/zfs/zfs_iter.h projects/armv6/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c projects/armv6/cddl/contrib/opensolaris/cmd/zpool/zpool.8 projects/armv6/cddl/contrib/opensolaris/lib/libdtrace/common/drti.c projects/armv6/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c projects/armv6/cddl/contrib/opensolaris/lib/libdtrace/common/dt_handle.c projects/armv6/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c projects/armv6/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c projects/armv6/cddl/contrib/opensolaris/lib/libdtrace/i386/dt_isadep.c projects/armv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h projects/armv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_dataset.c projects/armv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_impl.h projects/armv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_iter.c projects/armv6/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c projects/armv6/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h projects/armv6/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c projects/armv6/contrib/bsnmp/snmp_mibII/mibII.c projects/armv6/contrib/bsnmp/snmpd/snmpmod.h projects/armv6/contrib/bzip2/bzip2recover.c projects/armv6/contrib/compiler-rt/LICENSE.TXT projects/armv6/contrib/compiler-rt/README.txt projects/armv6/contrib/compiler-rt/lib/absvdi2.c projects/armv6/contrib/compiler-rt/lib/absvsi2.c projects/armv6/contrib/compiler-rt/lib/absvti2.c projects/armv6/contrib/compiler-rt/lib/adddf3.c projects/armv6/contrib/compiler-rt/lib/addsf3.c projects/armv6/contrib/compiler-rt/lib/addvdi3.c projects/armv6/contrib/compiler-rt/lib/addvsi3.c projects/armv6/contrib/compiler-rt/lib/addvti3.c projects/armv6/contrib/compiler-rt/lib/arm/adddf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/addsf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/divdf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/divsf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/eqdf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/eqsf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/extendsfdf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/fixdfsivfp.S projects/armv6/contrib/compiler-rt/lib/arm/fixsfsivfp.S projects/armv6/contrib/compiler-rt/lib/arm/fixunsdfsivfp.S projects/armv6/contrib/compiler-rt/lib/arm/fixunssfsivfp.S projects/armv6/contrib/compiler-rt/lib/arm/floatsidfvfp.S projects/armv6/contrib/compiler-rt/lib/arm/floatsisfvfp.S projects/armv6/contrib/compiler-rt/lib/arm/floatunssidfvfp.S projects/armv6/contrib/compiler-rt/lib/arm/floatunssisfvfp.S projects/armv6/contrib/compiler-rt/lib/arm/gedf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/gesf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/gtdf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/gtsf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/ledf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/lesf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/ltdf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/ltsf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/muldf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/mulsf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/nedf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/negdf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/negsf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/nesf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/subdf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/subsf3vfp.S projects/armv6/contrib/compiler-rt/lib/arm/truncdfsf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/unorddf2vfp.S projects/armv6/contrib/compiler-rt/lib/arm/unordsf2vfp.S projects/armv6/contrib/compiler-rt/lib/ashldi3.c projects/armv6/contrib/compiler-rt/lib/ashrdi3.c projects/armv6/contrib/compiler-rt/lib/assembly.h projects/armv6/contrib/compiler-rt/lib/clear_cache.c projects/armv6/contrib/compiler-rt/lib/clzdi2.c projects/armv6/contrib/compiler-rt/lib/clzsi2.c projects/armv6/contrib/compiler-rt/lib/cmpdi2.c projects/armv6/contrib/compiler-rt/lib/ctzdi2.c projects/armv6/contrib/compiler-rt/lib/ctzsi2.c projects/armv6/contrib/compiler-rt/lib/divdc3.c projects/armv6/contrib/compiler-rt/lib/divdf3.c projects/armv6/contrib/compiler-rt/lib/divdi3.c projects/armv6/contrib/compiler-rt/lib/divmoddi4.c projects/armv6/contrib/compiler-rt/lib/divmodsi4.c projects/armv6/contrib/compiler-rt/lib/divsc3.c projects/armv6/contrib/compiler-rt/lib/divsf3.c projects/armv6/contrib/compiler-rt/lib/divsi3.c projects/armv6/contrib/compiler-rt/lib/divxc3.c projects/armv6/contrib/compiler-rt/lib/enable_execute_stack.c projects/armv6/contrib/compiler-rt/lib/eprintf.c projects/armv6/contrib/compiler-rt/lib/extendsfdf2.c projects/armv6/contrib/compiler-rt/lib/ffsdi2.c projects/armv6/contrib/compiler-rt/lib/fixdfdi.c projects/armv6/contrib/compiler-rt/lib/fixdfsi.c projects/armv6/contrib/compiler-rt/lib/fixsfdi.c projects/armv6/contrib/compiler-rt/lib/fixsfsi.c projects/armv6/contrib/compiler-rt/lib/fixunsdfdi.c projects/armv6/contrib/compiler-rt/lib/fixunsdfsi.c projects/armv6/contrib/compiler-rt/lib/fixunssfdi.c projects/armv6/contrib/compiler-rt/lib/fixunssfsi.c projects/armv6/contrib/compiler-rt/lib/floatdidf.c projects/armv6/contrib/compiler-rt/lib/floatdisf.c projects/armv6/contrib/compiler-rt/lib/floatsidf.c projects/armv6/contrib/compiler-rt/lib/floatsisf.c projects/armv6/contrib/compiler-rt/lib/floattidf.c projects/armv6/contrib/compiler-rt/lib/floattisf.c projects/armv6/contrib/compiler-rt/lib/floattixf.c projects/armv6/contrib/compiler-rt/lib/floatundidf.c projects/armv6/contrib/compiler-rt/lib/floatundisf.c projects/armv6/contrib/compiler-rt/lib/floatunsidf.c projects/armv6/contrib/compiler-rt/lib/floatunsisf.c projects/armv6/contrib/compiler-rt/lib/floatuntidf.c projects/armv6/contrib/compiler-rt/lib/floatuntisf.c projects/armv6/contrib/compiler-rt/lib/floatuntixf.c projects/armv6/contrib/compiler-rt/lib/fp_lib.h projects/armv6/contrib/compiler-rt/lib/gcc_personality_v0.c projects/armv6/contrib/compiler-rt/lib/int_lib.h projects/armv6/contrib/compiler-rt/lib/lshrdi3.c projects/armv6/contrib/compiler-rt/lib/moddi3.c projects/armv6/contrib/compiler-rt/lib/modsi3.c projects/armv6/contrib/compiler-rt/lib/muldc3.c projects/armv6/contrib/compiler-rt/lib/muldf3.c projects/armv6/contrib/compiler-rt/lib/muldi3.c projects/armv6/contrib/compiler-rt/lib/mulsc3.c projects/armv6/contrib/compiler-rt/lib/mulsf3.c projects/armv6/contrib/compiler-rt/lib/mulvdi3.c projects/armv6/contrib/compiler-rt/lib/mulvsi3.c projects/armv6/contrib/compiler-rt/lib/mulvti3.c projects/armv6/contrib/compiler-rt/lib/mulxc3.c projects/armv6/contrib/compiler-rt/lib/negdf2.c projects/armv6/contrib/compiler-rt/lib/negsf2.c projects/armv6/contrib/compiler-rt/lib/negvdi2.c projects/armv6/contrib/compiler-rt/lib/negvsi2.c projects/armv6/contrib/compiler-rt/lib/negvti2.c projects/armv6/contrib/compiler-rt/lib/paritydi2.c projects/armv6/contrib/compiler-rt/lib/paritysi2.c projects/armv6/contrib/compiler-rt/lib/popcountdi2.c projects/armv6/contrib/compiler-rt/lib/popcountsi2.c projects/armv6/contrib/compiler-rt/lib/powidf2.c projects/armv6/contrib/compiler-rt/lib/powisf2.c projects/armv6/contrib/compiler-rt/lib/ppc/DD.h projects/armv6/contrib/compiler-rt/lib/ppc/divtc3.c projects/armv6/contrib/compiler-rt/lib/ppc/fixtfdi.c projects/armv6/contrib/compiler-rt/lib/ppc/fixunstfdi.c projects/armv6/contrib/compiler-rt/lib/ppc/floatditf.c projects/armv6/contrib/compiler-rt/lib/ppc/floatunditf.c projects/armv6/contrib/compiler-rt/lib/ppc/multc3.c projects/armv6/contrib/compiler-rt/lib/subdf3.c projects/armv6/contrib/compiler-rt/lib/subsf3.c projects/armv6/contrib/compiler-rt/lib/subvdi3.c projects/armv6/contrib/compiler-rt/lib/subvsi3.c projects/armv6/contrib/compiler-rt/lib/subvti3.c projects/armv6/contrib/compiler-rt/lib/trampoline_setup.c projects/armv6/contrib/compiler-rt/lib/truncdfsf2.c projects/armv6/contrib/compiler-rt/lib/ucmpdi2.c projects/armv6/contrib/compiler-rt/lib/udivdi3.c projects/armv6/contrib/compiler-rt/lib/udivmoddi4.c projects/armv6/contrib/compiler-rt/lib/udivmodsi4.c projects/armv6/contrib/compiler-rt/lib/udivmodti4.c projects/armv6/contrib/compiler-rt/lib/udivsi3.c projects/armv6/contrib/compiler-rt/lib/umoddi3.c projects/armv6/contrib/compiler-rt/lib/umodsi3.c projects/armv6/contrib/compiler-rt/lib/x86_64/floatdidf.c projects/armv6/contrib/compiler-rt/lib/x86_64/floatdisf.c projects/armv6/contrib/compiler-rt/lib/x86_64/floatdixf.c projects/armv6/contrib/ee/ee.c projects/armv6/contrib/file/softmagic.c projects/armv6/contrib/gcc/ChangeLog.gcc43 projects/armv6/contrib/gcc/builtins.c projects/armv6/contrib/gcc/config/freebsd.h projects/armv6/contrib/gcc/gcc.c projects/armv6/contrib/gcclibs/libcpp/include/cpplib.h projects/armv6/contrib/gcclibs/libcpp/init.c projects/armv6/contrib/gcclibs/libcpp/internal.h projects/armv6/contrib/gcclibs/libcpp/macro.c projects/armv6/contrib/gperf/src/output.cc projects/armv6/contrib/groff/tmac/doc-common projects/armv6/contrib/groff/tmac/doc-syms projects/armv6/contrib/groff/tmac/doc.tmac projects/armv6/contrib/groff/tmac/groff_mdoc.man projects/armv6/contrib/less/command.c projects/armv6/contrib/less/prompt.c projects/armv6/contrib/libstdc++/ChangeLog projects/armv6/contrib/libstdc++/config/os/aix/os_defines.h projects/armv6/contrib/libstdc++/include/bits/allocator.h projects/armv6/contrib/libstdc++/include/bits/basic_string.h projects/armv6/contrib/libstdc++/include/bits/fstream.tcc projects/armv6/contrib/libstdc++/include/bits/locale_facets.tcc projects/armv6/contrib/libstdc++/include/debug/map.h projects/armv6/contrib/libstdc++/include/debug/multimap.h projects/armv6/contrib/libstdc++/include/ext/atomicity.h projects/armv6/contrib/libstdc++/include/ext/codecvt_specializations.h projects/armv6/contrib/libstdc++/include/ext/concurrence.h projects/armv6/contrib/libstdc++/include/ext/vstring.h projects/armv6/contrib/libstdc++/include/tr1/boost_shared_ptr.h projects/armv6/contrib/libstdc++/include/tr1/random projects/armv6/contrib/libstdc++/libsupc++/eh_personality.cc projects/armv6/contrib/libstdc++/libsupc++/typeinfo projects/armv6/contrib/libstdc++/src/valarray-inst.cc projects/armv6/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp projects/armv6/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp projects/armv6/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp projects/armv6/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp projects/armv6/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp projects/armv6/contrib/llvm/lib/Target/ARM/ARMCallingConv.td projects/armv6/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp projects/armv6/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp projects/armv6/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp projects/armv6/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td projects/armv6/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp projects/armv6/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td projects/armv6/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp projects/armv6/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td projects/armv6/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td projects/armv6/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td projects/armv6/contrib/llvm/lib/Target/Mips/MipsJITInfo.cpp projects/armv6/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp projects/armv6/contrib/llvm/lib/Target/X86/X86CodeEmitter.cpp projects/armv6/contrib/llvm/lib/Target/X86/X86InstrCompiler.td projects/armv6/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp projects/armv6/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td projects/armv6/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h projects/armv6/contrib/llvm/tools/clang/include/clang/Frontend/HeaderSearchOptions.h projects/armv6/contrib/llvm/tools/clang/lib/Basic/Version.cpp projects/armv6/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp projects/armv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp projects/armv6/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h projects/armv6/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp projects/armv6/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp projects/armv6/contrib/llvm/tools/clang/lib/Driver/ToolChains.h projects/armv6/contrib/llvm/tools/clang/lib/Driver/Tools.cpp projects/armv6/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp projects/armv6/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp projects/armv6/contrib/netcat/netcat.c projects/armv6/contrib/openpam/CREDITS projects/armv6/contrib/openpam/HISTORY projects/armv6/contrib/openpam/LICENSE projects/armv6/contrib/openpam/Makefile.am projects/armv6/contrib/openpam/Makefile.in projects/armv6/contrib/openpam/README projects/armv6/contrib/openpam/RELNOTES projects/armv6/contrib/openpam/aclocal.m4 projects/armv6/contrib/openpam/bin/Makefile.am projects/armv6/contrib/openpam/bin/Makefile.in projects/armv6/contrib/openpam/bin/su/Makefile.am projects/armv6/contrib/openpam/bin/su/Makefile.in projects/armv6/contrib/openpam/bin/su/su.c projects/armv6/contrib/openpam/config.h.in projects/armv6/contrib/openpam/configure projects/armv6/contrib/openpam/configure.ac projects/armv6/contrib/openpam/depcomp projects/armv6/contrib/openpam/doc/Makefile.in projects/armv6/contrib/openpam/doc/man/Makefile.am projects/armv6/contrib/openpam/doc/man/Makefile.in projects/armv6/contrib/openpam/doc/man/openpam.3 projects/armv6/contrib/openpam/doc/man/openpam_borrow_cred.3 projects/armv6/contrib/openpam/doc/man/openpam_free_data.3 projects/armv6/contrib/openpam/doc/man/openpam_free_envlist.3 projects/armv6/contrib/openpam/doc/man/openpam_get_option.3 projects/armv6/contrib/openpam/doc/man/openpam_log.3 projects/armv6/contrib/openpam/doc/man/openpam_nullconv.3 projects/armv6/contrib/openpam/doc/man/openpam_readline.3 projects/armv6/contrib/openpam/doc/man/openpam_restore_cred.3 projects/armv6/contrib/openpam/doc/man/openpam_set_option.3 projects/armv6/contrib/openpam/doc/man/openpam_ttyconv.3 projects/armv6/contrib/openpam/doc/man/pam.3 projects/armv6/contrib/openpam/doc/man/pam.conf.5 projects/armv6/contrib/openpam/doc/man/pam_acct_mgmt.3 projects/armv6/contrib/openpam/doc/man/pam_authenticate.3 projects/armv6/contrib/openpam/doc/man/pam_chauthtok.3 projects/armv6/contrib/openpam/doc/man/pam_close_session.3 projects/armv6/contrib/openpam/doc/man/pam_conv.3 projects/armv6/contrib/openpam/doc/man/pam_end.3 projects/armv6/contrib/openpam/doc/man/pam_error.3 projects/armv6/contrib/openpam/doc/man/pam_get_authtok.3 projects/armv6/contrib/openpam/doc/man/pam_get_data.3 projects/armv6/contrib/openpam/doc/man/pam_get_item.3 projects/armv6/contrib/openpam/doc/man/pam_get_user.3 projects/armv6/contrib/openpam/doc/man/pam_getenv.3 projects/armv6/contrib/openpam/doc/man/pam_getenvlist.3 projects/armv6/contrib/openpam/doc/man/pam_info.3 projects/armv6/contrib/openpam/doc/man/pam_open_session.3 projects/armv6/contrib/openpam/doc/man/pam_prompt.3 projects/armv6/contrib/openpam/doc/man/pam_putenv.3 projects/armv6/contrib/openpam/doc/man/pam_set_data.3 projects/armv6/contrib/openpam/doc/man/pam_set_item.3 projects/armv6/contrib/openpam/doc/man/pam_setcred.3 projects/armv6/contrib/openpam/doc/man/pam_setenv.3 projects/armv6/contrib/openpam/doc/man/pam_sm_acct_mgmt.3 projects/armv6/contrib/openpam/doc/man/pam_sm_authenticate.3 projects/armv6/contrib/openpam/doc/man/pam_sm_chauthtok.3 projects/armv6/contrib/openpam/doc/man/pam_sm_close_session.3 projects/armv6/contrib/openpam/doc/man/pam_sm_open_session.3 projects/armv6/contrib/openpam/doc/man/pam_sm_setcred.3 projects/armv6/contrib/openpam/doc/man/pam_start.3 projects/armv6/contrib/openpam/doc/man/pam_strerror.3 projects/armv6/contrib/openpam/doc/man/pam_verror.3 projects/armv6/contrib/openpam/doc/man/pam_vinfo.3 projects/armv6/contrib/openpam/doc/man/pam_vprompt.3 projects/armv6/contrib/openpam/include/Makefile.in projects/armv6/contrib/openpam/include/security/Makefile.in projects/armv6/contrib/openpam/include/security/openpam.h projects/armv6/contrib/openpam/include/security/openpam_version.h projects/armv6/contrib/openpam/include/security/pam_appl.h projects/armv6/contrib/openpam/include/security/pam_constants.h projects/armv6/contrib/openpam/include/security/pam_modules.h projects/armv6/contrib/openpam/include/security/pam_types.h projects/armv6/contrib/openpam/install-sh projects/armv6/contrib/openpam/lib/Makefile.am projects/armv6/contrib/openpam/lib/Makefile.in projects/armv6/contrib/openpam/lib/openpam_borrow_cred.c projects/armv6/contrib/openpam/lib/openpam_configure.c projects/armv6/contrib/openpam/lib/openpam_dispatch.c projects/armv6/contrib/openpam/lib/openpam_dynamic.c projects/armv6/contrib/openpam/lib/openpam_findenv.c projects/armv6/contrib/openpam/lib/openpam_free_data.c projects/armv6/contrib/openpam/lib/openpam_free_envlist.c projects/armv6/contrib/openpam/lib/openpam_get_option.c projects/armv6/contrib/openpam/lib/openpam_impl.h projects/armv6/contrib/openpam/lib/openpam_load.c projects/armv6/contrib/openpam/lib/openpam_log.c projects/armv6/contrib/openpam/lib/openpam_nullconv.c projects/armv6/contrib/openpam/lib/openpam_readline.c projects/armv6/contrib/openpam/lib/openpam_restore_cred.c projects/armv6/contrib/openpam/lib/openpam_set_option.c projects/armv6/contrib/openpam/lib/openpam_static.c projects/armv6/contrib/openpam/lib/openpam_ttyconv.c projects/armv6/contrib/openpam/lib/pam_acct_mgmt.c projects/armv6/contrib/openpam/lib/pam_authenticate.c projects/armv6/contrib/openpam/lib/pam_authenticate_secondary.c projects/armv6/contrib/openpam/lib/pam_chauthtok.c projects/armv6/contrib/openpam/lib/pam_close_session.c projects/armv6/contrib/openpam/lib/pam_end.c projects/armv6/contrib/openpam/lib/pam_error.c projects/armv6/contrib/openpam/lib/pam_get_authtok.c projects/armv6/contrib/openpam/lib/pam_get_data.c projects/armv6/contrib/openpam/lib/pam_get_item.c projects/armv6/contrib/openpam/lib/pam_get_mapped_authtok.c projects/armv6/contrib/openpam/lib/pam_get_mapped_username.c projects/armv6/contrib/openpam/lib/pam_get_user.c projects/armv6/contrib/openpam/lib/pam_getenv.c projects/armv6/contrib/openpam/lib/pam_getenvlist.c projects/armv6/contrib/openpam/lib/pam_info.c projects/armv6/contrib/openpam/lib/pam_open_session.c projects/armv6/contrib/openpam/lib/pam_prompt.c projects/armv6/contrib/openpam/lib/pam_putenv.c projects/armv6/contrib/openpam/lib/pam_set_data.c projects/armv6/contrib/openpam/lib/pam_set_item.c projects/armv6/contrib/openpam/lib/pam_set_mapped_authtok.c projects/armv6/contrib/openpam/lib/pam_set_mapped_username.c projects/armv6/contrib/openpam/lib/pam_setcred.c projects/armv6/contrib/openpam/lib/pam_setenv.c projects/armv6/contrib/openpam/lib/pam_sm_acct_mgmt.c projects/armv6/contrib/openpam/lib/pam_sm_authenticate.c projects/armv6/contrib/openpam/lib/pam_sm_authenticate_secondary.c projects/armv6/contrib/openpam/lib/pam_sm_chauthtok.c projects/armv6/contrib/openpam/lib/pam_sm_close_session.c projects/armv6/contrib/openpam/lib/pam_sm_get_mapped_authtok.c projects/armv6/contrib/openpam/lib/pam_sm_get_mapped_username.c projects/armv6/contrib/openpam/lib/pam_sm_open_session.c projects/armv6/contrib/openpam/lib/pam_sm_set_mapped_authtok.c projects/armv6/contrib/openpam/lib/pam_sm_set_mapped_username.c projects/armv6/contrib/openpam/lib/pam_sm_setcred.c projects/armv6/contrib/openpam/lib/pam_start.c projects/armv6/contrib/openpam/lib/pam_strerror.c projects/armv6/contrib/openpam/lib/pam_verror.c projects/armv6/contrib/openpam/lib/pam_vinfo.c projects/armv6/contrib/openpam/lib/pam_vprompt.c projects/armv6/contrib/openpam/ltmain.sh projects/armv6/contrib/openpam/misc/gendoc.pl projects/armv6/contrib/openpam/missing projects/armv6/contrib/openpam/modules/Makefile.in projects/armv6/contrib/openpam/modules/pam_deny/Makefile.in projects/armv6/contrib/openpam/modules/pam_deny/pam_deny.c projects/armv6/contrib/openpam/modules/pam_permit/Makefile.in projects/armv6/contrib/openpam/modules/pam_permit/pam_permit.c projects/armv6/contrib/openpam/modules/pam_unix/Makefile.am projects/armv6/contrib/openpam/modules/pam_unix/Makefile.in projects/armv6/contrib/openpam/modules/pam_unix/pam_unix.c projects/armv6/contrib/pf/man/pfsync.4 projects/armv6/contrib/pf/pfctl/parse.y projects/armv6/contrib/pf/pfctl/pfctl.8 projects/armv6/contrib/pnpinfo/pnpinfo.c projects/armv6/contrib/tcpdump/print-eigrp.c projects/armv6/contrib/tcpdump/print-icmp6.c projects/armv6/contrib/tcpdump/print-ldp.c projects/armv6/contrib/tcpdump/print-lmp.c projects/armv6/contrib/tcpdump/print-lspping.c projects/armv6/contrib/tcpdump/print-rsvp.c projects/armv6/contrib/tcpdump/print-slow.c projects/armv6/contrib/tcsh/Fixes projects/armv6/contrib/tcsh/Imakefile projects/armv6/contrib/tcsh/Makefile.in projects/armv6/contrib/tcsh/Ported projects/armv6/contrib/tcsh/README projects/armv6/contrib/tcsh/WishList projects/armv6/contrib/tcsh/complete.tcsh projects/armv6/contrib/tcsh/config.guess projects/armv6/contrib/tcsh/config.h.in projects/armv6/contrib/tcsh/config.sub projects/armv6/contrib/tcsh/config/bsd4.4 projects/armv6/contrib/tcsh/config_f.h projects/armv6/contrib/tcsh/configure projects/armv6/contrib/tcsh/configure.in projects/armv6/contrib/tcsh/ed.chared.c projects/armv6/contrib/tcsh/ed.inputl.c projects/armv6/contrib/tcsh/ed.refresh.c projects/armv6/contrib/tcsh/ed.screen.c projects/armv6/contrib/tcsh/ed.term.c projects/armv6/contrib/tcsh/gethost.c projects/armv6/contrib/tcsh/glob.c projects/armv6/contrib/tcsh/glob.h projects/armv6/contrib/tcsh/host.defs projects/armv6/contrib/tcsh/install-sh projects/armv6/contrib/tcsh/nls/C/charset projects/armv6/contrib/tcsh/nls/C/set19 projects/armv6/contrib/tcsh/nls/et/charset projects/armv6/contrib/tcsh/nls/et/set1 projects/armv6/contrib/tcsh/nls/et/set10 projects/armv6/contrib/tcsh/nls/et/set11 projects/armv6/contrib/tcsh/nls/et/set13 projects/armv6/contrib/tcsh/nls/et/set14 projects/armv6/contrib/tcsh/nls/et/set15 projects/armv6/contrib/tcsh/nls/et/set16 projects/armv6/contrib/tcsh/nls/et/set17 projects/armv6/contrib/tcsh/nls/et/set18 projects/armv6/contrib/tcsh/nls/et/set19 projects/armv6/contrib/tcsh/nls/et/set2 projects/armv6/contrib/tcsh/nls/et/set20 projects/armv6/contrib/tcsh/nls/et/set21 projects/armv6/contrib/tcsh/nls/et/set22 projects/armv6/contrib/tcsh/nls/et/set23 projects/armv6/contrib/tcsh/nls/et/set24 projects/armv6/contrib/tcsh/nls/et/set25 projects/armv6/contrib/tcsh/nls/et/set26 projects/armv6/contrib/tcsh/nls/et/set27 projects/armv6/contrib/tcsh/nls/et/set3 projects/armv6/contrib/tcsh/nls/et/set30 projects/armv6/contrib/tcsh/nls/et/set4 projects/armv6/contrib/tcsh/nls/et/set5 projects/armv6/contrib/tcsh/nls/et/set6 projects/armv6/contrib/tcsh/nls/et/set7 projects/armv6/contrib/tcsh/nls/et/set8 projects/armv6/contrib/tcsh/nls/et/set9 projects/armv6/contrib/tcsh/nls/finnish/charset projects/armv6/contrib/tcsh/nls/finnish/set1 projects/armv6/contrib/tcsh/nls/finnish/set10 projects/armv6/contrib/tcsh/nls/finnish/set11 projects/armv6/contrib/tcsh/nls/finnish/set12 projects/armv6/contrib/tcsh/nls/finnish/set13 projects/armv6/contrib/tcsh/nls/finnish/set14 projects/armv6/contrib/tcsh/nls/finnish/set16 projects/armv6/contrib/tcsh/nls/finnish/set17 projects/armv6/contrib/tcsh/nls/finnish/set18 projects/armv6/contrib/tcsh/nls/finnish/set19 projects/armv6/contrib/tcsh/nls/finnish/set2 projects/armv6/contrib/tcsh/nls/finnish/set20 projects/armv6/contrib/tcsh/nls/finnish/set22 projects/armv6/contrib/tcsh/nls/finnish/set23 projects/armv6/contrib/tcsh/nls/finnish/set25 projects/armv6/contrib/tcsh/nls/finnish/set26 projects/armv6/contrib/tcsh/nls/finnish/set27 projects/armv6/contrib/tcsh/nls/finnish/set29 projects/armv6/contrib/tcsh/nls/finnish/set3 projects/armv6/contrib/tcsh/nls/finnish/set6 projects/armv6/contrib/tcsh/nls/finnish/set7 projects/armv6/contrib/tcsh/nls/finnish/set9 projects/armv6/contrib/tcsh/nls/french/charset projects/armv6/contrib/tcsh/nls/french/set1 projects/armv6/contrib/tcsh/nls/french/set10 projects/armv6/contrib/tcsh/nls/french/set11 projects/armv6/contrib/tcsh/nls/french/set12 projects/armv6/contrib/tcsh/nls/french/set13 projects/armv6/contrib/tcsh/nls/french/set15 projects/armv6/contrib/tcsh/nls/french/set16 projects/armv6/contrib/tcsh/nls/french/set17 projects/armv6/contrib/tcsh/nls/french/set18 projects/armv6/contrib/tcsh/nls/french/set19 projects/armv6/contrib/tcsh/nls/french/set2 projects/armv6/contrib/tcsh/nls/french/set20 projects/armv6/contrib/tcsh/nls/french/set21 projects/armv6/contrib/tcsh/nls/french/set22 projects/armv6/contrib/tcsh/nls/french/set23 projects/armv6/contrib/tcsh/nls/french/set25 projects/armv6/contrib/tcsh/nls/french/set26 projects/armv6/contrib/tcsh/nls/french/set27 projects/armv6/contrib/tcsh/nls/french/set3 projects/armv6/contrib/tcsh/nls/french/set30 projects/armv6/contrib/tcsh/nls/french/set31 projects/armv6/contrib/tcsh/nls/french/set4 projects/armv6/contrib/tcsh/nls/french/set6 projects/armv6/contrib/tcsh/nls/french/set7 projects/armv6/contrib/tcsh/nls/french/set8 projects/armv6/contrib/tcsh/nls/french/set9 projects/armv6/contrib/tcsh/nls/german/charset projects/armv6/contrib/tcsh/nls/german/set1 projects/armv6/contrib/tcsh/nls/german/set10 projects/armv6/contrib/tcsh/nls/german/set13 projects/armv6/contrib/tcsh/nls/german/set15 projects/armv6/contrib/tcsh/nls/german/set16 projects/armv6/contrib/tcsh/nls/german/set17 projects/armv6/contrib/tcsh/nls/german/set18 projects/armv6/contrib/tcsh/nls/german/set19 projects/armv6/contrib/tcsh/nls/german/set2 projects/armv6/contrib/tcsh/nls/german/set20 projects/armv6/contrib/tcsh/nls/german/set22 projects/armv6/contrib/tcsh/nls/german/set23 projects/armv6/contrib/tcsh/nls/german/set25 projects/armv6/contrib/tcsh/nls/german/set26 projects/armv6/contrib/tcsh/nls/german/set27 projects/armv6/contrib/tcsh/nls/german/set29 projects/armv6/contrib/tcsh/nls/german/set3 projects/armv6/contrib/tcsh/nls/german/set30 projects/armv6/contrib/tcsh/nls/german/set31 projects/armv6/contrib/tcsh/nls/german/set4 projects/armv6/contrib/tcsh/nls/german/set5 projects/armv6/contrib/tcsh/nls/german/set6 projects/armv6/contrib/tcsh/nls/german/set7 projects/armv6/contrib/tcsh/nls/german/set8 projects/armv6/contrib/tcsh/nls/german/set9 projects/armv6/contrib/tcsh/nls/greek/charset projects/armv6/contrib/tcsh/nls/greek/set1 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set10 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set11 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set12 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set13 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set14 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set15 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set16 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set17 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set18 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set19 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set2 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set20 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set21 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set22 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set23 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set25 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set26 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set27 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set29 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set3 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set30 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set31 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set4 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set5 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set6 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set7 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set8 (contents, props changed) projects/armv6/contrib/tcsh/nls/greek/set9 (contents, props changed) projects/armv6/contrib/tcsh/nls/italian/charset projects/armv6/contrib/tcsh/nls/italian/set1 projects/armv6/contrib/tcsh/nls/italian/set11 projects/armv6/contrib/tcsh/nls/italian/set13 projects/armv6/contrib/tcsh/nls/italian/set15 projects/armv6/contrib/tcsh/nls/italian/set17 projects/armv6/contrib/tcsh/nls/italian/set19 projects/armv6/contrib/tcsh/nls/italian/set2 projects/armv6/contrib/tcsh/nls/italian/set20 projects/armv6/contrib/tcsh/nls/italian/set22 projects/armv6/contrib/tcsh/nls/italian/set23 projects/armv6/contrib/tcsh/nls/italian/set26 projects/armv6/contrib/tcsh/nls/italian/set3 projects/armv6/contrib/tcsh/nls/italian/set30 projects/armv6/contrib/tcsh/nls/italian/set4 projects/armv6/contrib/tcsh/nls/italian/set6 projects/armv6/contrib/tcsh/nls/italian/set7 projects/armv6/contrib/tcsh/nls/ja/charset projects/armv6/contrib/tcsh/nls/ja/set1 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set10 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set11 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set12 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set13 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set15 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set16 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set17 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set18 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set2 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set21 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set29 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set3 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set30 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set4 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set5 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set6 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set7 (contents, props changed) projects/armv6/contrib/tcsh/nls/ja/set8 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/charset projects/armv6/contrib/tcsh/nls/russian/set1 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set10 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set11 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set12 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set13 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set14 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set15 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set16 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set17 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set18 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set19 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set2 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set20 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set22 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set23 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set25 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set26 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set27 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set29 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set30 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set31 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set4 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set5 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set6 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set7 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set8 (contents, props changed) projects/armv6/contrib/tcsh/nls/russian/set9 (contents, props changed) projects/armv6/contrib/tcsh/nls/spanish/charset projects/armv6/contrib/tcsh/nls/spanish/set1 projects/armv6/contrib/tcsh/nls/spanish/set10 projects/armv6/contrib/tcsh/nls/spanish/set13 projects/armv6/contrib/tcsh/nls/spanish/set14 projects/armv6/contrib/tcsh/nls/spanish/set15 projects/armv6/contrib/tcsh/nls/spanish/set16 projects/armv6/contrib/tcsh/nls/spanish/set17 projects/armv6/contrib/tcsh/nls/spanish/set18 projects/armv6/contrib/tcsh/nls/spanish/set19 projects/armv6/contrib/tcsh/nls/spanish/set2 projects/armv6/contrib/tcsh/nls/spanish/set20 projects/armv6/contrib/tcsh/nls/spanish/set22 projects/armv6/contrib/tcsh/nls/spanish/set23 projects/armv6/contrib/tcsh/nls/spanish/set25 projects/armv6/contrib/tcsh/nls/spanish/set26 projects/armv6/contrib/tcsh/nls/spanish/set27 projects/armv6/contrib/tcsh/nls/spanish/set3 projects/armv6/contrib/tcsh/nls/spanish/set30 projects/armv6/contrib/tcsh/nls/spanish/set4 projects/armv6/contrib/tcsh/nls/spanish/set5 projects/armv6/contrib/tcsh/nls/spanish/set6 projects/armv6/contrib/tcsh/nls/spanish/set7 projects/armv6/contrib/tcsh/nls/spanish/set8 projects/armv6/contrib/tcsh/nls/spanish/set9 projects/armv6/contrib/tcsh/nls/ukrainian/charset projects/armv6/contrib/tcsh/nls/ukrainian/set1 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set10 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set11 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set12 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set13 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set14 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set15 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set16 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set17 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set18 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set19 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set2 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set20 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set22 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set23 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set25 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set26 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set27 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set29 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set30 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set31 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set5 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set6 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set7 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set8 (contents, props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set9 (contents, props changed) projects/armv6/contrib/tcsh/patchlevel.h projects/armv6/contrib/tcsh/pathnames.h projects/armv6/contrib/tcsh/sh.c projects/armv6/contrib/tcsh/sh.char.c projects/armv6/contrib/tcsh/sh.char.h projects/armv6/contrib/tcsh/sh.decls.h projects/armv6/contrib/tcsh/sh.dir.c projects/armv6/contrib/tcsh/sh.dol.c projects/armv6/contrib/tcsh/sh.err.c projects/armv6/contrib/tcsh/sh.exec.c projects/armv6/contrib/tcsh/sh.exp.c projects/armv6/contrib/tcsh/sh.file.c projects/armv6/contrib/tcsh/sh.func.c projects/armv6/contrib/tcsh/sh.glob.c projects/armv6/contrib/tcsh/sh.h projects/armv6/contrib/tcsh/sh.hist.c projects/armv6/contrib/tcsh/sh.lex.c projects/armv6/contrib/tcsh/sh.misc.c projects/armv6/contrib/tcsh/sh.parse.c projects/armv6/contrib/tcsh/sh.print.c projects/armv6/contrib/tcsh/sh.proc.c projects/armv6/contrib/tcsh/sh.proc.h projects/armv6/contrib/tcsh/sh.sem.c projects/armv6/contrib/tcsh/sh.set.c projects/armv6/contrib/tcsh/sh.time.c projects/armv6/contrib/tcsh/tc.alloc.c projects/armv6/contrib/tcsh/tc.const.c projects/armv6/contrib/tcsh/tc.decls.h projects/armv6/contrib/tcsh/tc.disc.c projects/armv6/contrib/tcsh/tc.func.c projects/armv6/contrib/tcsh/tc.nls.c projects/armv6/contrib/tcsh/tc.nls.h projects/armv6/contrib/tcsh/tc.os.c projects/armv6/contrib/tcsh/tc.os.h projects/armv6/contrib/tcsh/tc.prompt.c projects/armv6/contrib/tcsh/tc.sig.c projects/armv6/contrib/tcsh/tc.sig.h projects/armv6/contrib/tcsh/tc.str.c projects/armv6/contrib/tcsh/tc.wait.h projects/armv6/contrib/tcsh/tc.who.c projects/armv6/contrib/tcsh/tcsh.man projects/armv6/contrib/tcsh/tcsh.man2html projects/armv6/contrib/tcsh/tw.color.c projects/armv6/contrib/tcsh/tw.init.c projects/armv6/contrib/tcsh/tw.parse.c projects/armv6/contrib/tcsh/vms.termcap.c projects/armv6/contrib/telnet/libtelnet/encrypt.c projects/armv6/contrib/telnet/libtelnet/sra.c projects/armv6/contrib/telnet/telnet/utilities.c projects/armv6/contrib/telnet/telnetd/utility.c projects/armv6/contrib/tzcode/zic/zdump.c projects/armv6/crypto/heimdal/appl/telnet/libtelnet/encrypt.c projects/armv6/crypto/openssh/auth2.c projects/armv6/crypto/openssh/channels.c projects/armv6/crypto/openssh/channels.h projects/armv6/crypto/openssh/kex.c projects/armv6/crypto/openssh/loginrec.c (contents, props changed) projects/armv6/crypto/openssh/readconf.c projects/armv6/crypto/openssh/readconf.h projects/armv6/crypto/openssh/servconf.c projects/armv6/crypto/openssh/sftp.1 projects/armv6/crypto/openssh/ssh.c projects/armv6/crypto/openssh/sshd.c projects/armv6/crypto/openssh/sshd_config.5 projects/armv6/crypto/openssh/version.h projects/armv6/etc/Makefile projects/armv6/etc/defaults/periodic.conf projects/armv6/etc/defaults/rc.conf projects/armv6/etc/devd/apple.conf projects/armv6/etc/devd/usb.conf projects/armv6/etc/mac.conf projects/armv6/etc/namedb/named.conf projects/armv6/etc/netstart projects/armv6/etc/network.subr projects/armv6/etc/periodic/daily/404.status-zfs projects/armv6/etc/rc.d/LOGIN projects/armv6/etc/rc.d/Makefile projects/armv6/etc/rc.d/SERVERS projects/armv6/etc/rc.d/accounting projects/armv6/etc/rc.d/addswap projects/armv6/etc/rc.d/amd projects/armv6/etc/rc.d/apm projects/armv6/etc/rc.d/apmd projects/armv6/etc/rc.d/auditd projects/armv6/etc/rc.d/bgfsck projects/armv6/etc/rc.d/bootparams projects/armv6/etc/rc.d/bsnmpd projects/armv6/etc/rc.d/bthidd projects/armv6/etc/rc.d/cleanvar projects/armv6/etc/rc.d/cleartmp projects/armv6/etc/rc.d/cron projects/armv6/etc/rc.d/ddb projects/armv6/etc/rc.d/devd projects/armv6/etc/rc.d/devfs projects/armv6/etc/rc.d/dhclient projects/armv6/etc/rc.d/dmesg projects/armv6/etc/rc.d/ftp-proxy projects/armv6/etc/rc.d/ftpd projects/armv6/etc/rc.d/gptboot projects/armv6/etc/rc.d/hastd projects/armv6/etc/rc.d/hcsecd projects/armv6/etc/rc.d/hostapd projects/armv6/etc/rc.d/hostname projects/armv6/etc/rc.d/inetd projects/armv6/etc/rc.d/ip6addrctl projects/armv6/etc/rc.d/ipfilter projects/armv6/etc/rc.d/ipfs projects/armv6/etc/rc.d/ipmon projects/armv6/etc/rc.d/ipnat projects/armv6/etc/rc.d/ipsec projects/armv6/etc/rc.d/ipxrouted projects/armv6/etc/rc.d/jail projects/armv6/etc/rc.d/keyserv projects/armv6/etc/rc.d/kld projects/armv6/etc/rc.d/lockd projects/armv6/etc/rc.d/lpd projects/armv6/etc/rc.d/mountd projects/armv6/etc/rc.d/moused projects/armv6/etc/rc.d/mroute6d projects/armv6/etc/rc.d/mrouted projects/armv6/etc/rc.d/natd projects/armv6/etc/rc.d/netif projects/armv6/etc/rc.d/netwait projects/armv6/etc/rc.d/newsyslog projects/armv6/etc/rc.d/nfscbd projects/armv6/etc/rc.d/nfsd projects/armv6/etc/rc.d/nfsuserd projects/armv6/etc/rc.d/nscd projects/armv6/etc/rc.d/ntpd projects/armv6/etc/rc.d/ntpdate projects/armv6/etc/rc.d/pf projects/armv6/etc/rc.d/pflog projects/armv6/etc/rc.d/pfsync projects/armv6/etc/rc.d/powerd projects/armv6/etc/rc.d/ppp projects/armv6/etc/rc.d/pppoed projects/armv6/etc/rc.d/quota projects/armv6/etc/rc.d/rarpd projects/armv6/etc/rc.d/rfcomm_pppd_server projects/armv6/etc/rc.d/route6d projects/armv6/etc/rc.d/routed projects/armv6/etc/rc.d/routing projects/armv6/etc/rc.d/rpcbind projects/armv6/etc/rc.d/rtadvd projects/armv6/etc/rc.d/rtsold projects/armv6/etc/rc.d/rwho projects/armv6/etc/rc.d/sdpd projects/armv6/etc/rc.d/sendmail projects/armv6/etc/rc.d/sshd projects/armv6/etc/rc.d/statd projects/armv6/etc/rc.d/syslogd projects/armv6/etc/rc.d/timed projects/armv6/etc/rc.d/ubthidhci projects/armv6/etc/rc.d/var projects/armv6/etc/rc.d/virecover projects/armv6/etc/rc.d/watchdogd projects/armv6/etc/rc.d/ypbind projects/armv6/etc/rc.d/yppasswdd projects/armv6/etc/rc.d/ypserv projects/armv6/etc/rc.d/ypset projects/armv6/etc/rc.d/ypupdated projects/armv6/etc/rc.d/ypxfrd projects/armv6/etc/rc.firewall projects/armv6/etc/rc.initdiskless projects/armv6/etc/rc.resume projects/armv6/etc/rc.subr projects/armv6/etc/rc.suspend projects/armv6/etc/services projects/armv6/games/factor/factor.c projects/armv6/games/fortune/datfiles/fortunes projects/armv6/games/fortune/datfiles/fortunes-o.real projects/armv6/games/fortune/datfiles/murphy projects/armv6/games/fortune/fortune/fortune.c projects/armv6/games/morse/morse.c projects/armv6/games/pom/pom.c projects/armv6/gnu/usr.bin/binutils/libbinutils/Makefile projects/armv6/gnu/usr.bin/cc/cc_tools/auto-host.h projects/armv6/gnu/usr.bin/cvs/lib/config.h.proto projects/armv6/gnu/usr.bin/gdb/kgdb/main.c projects/armv6/gnu/usr.bin/gdb/kgdb/trgt_amd64.c projects/armv6/gnu/usr.bin/groff/tmac/mdoc.local projects/armv6/include/Makefile projects/armv6/include/arpa/nameser_compat.h projects/armv6/include/assert.h projects/armv6/include/complex.h projects/armv6/include/dlfcn.h projects/armv6/include/glob.h projects/armv6/include/gssapi/gssapi.h projects/armv6/include/netdb.h projects/armv6/include/regex.h projects/armv6/include/resolv.h projects/armv6/include/rpc/Makefile projects/armv6/include/rpc/svc.h projects/armv6/include/rpcsvc/Makefile projects/armv6/include/rpcsvc/mount.x projects/armv6/include/rpcsvc/nfs_prot.x projects/armv6/include/rpcsvc/nis.x projects/armv6/include/signal.h projects/armv6/include/stdbool.h projects/armv6/include/stdio.h projects/armv6/include/stdlib.h projects/armv6/include/tgmath.h projects/armv6/include/unistd.h projects/armv6/include/xlocale.h projects/armv6/kerberos5/Makefile.inc projects/armv6/kerberos5/lib/libhdb/Makefile projects/armv6/lib/Makefile projects/armv6/lib/clang/Makefile projects/armv6/lib/clang/clang.build.mk projects/armv6/lib/clang/include/clang/Basic/Version.inc projects/armv6/lib/clang/libllvmanalysis/Makefile projects/armv6/lib/clang/libllvmarminfo/Makefile projects/armv6/lib/clang/libllvmipa/Makefile projects/armv6/lib/clang/libllvmipo/Makefile projects/armv6/lib/clang/libllvmmc/Makefile projects/armv6/lib/clang/libllvmmipscodegen/Makefile projects/armv6/lib/clang/libllvmmipsinfo/Makefile projects/armv6/lib/clang/libllvmpowerpcinfo/Makefile projects/armv6/lib/clang/libllvmscalaropts/Makefile projects/armv6/lib/clang/libllvmsupport/Makefile projects/armv6/lib/clang/libllvmtransformutils/Makefile projects/armv6/lib/clang/libllvmx86disassembler/Makefile projects/armv6/lib/clang/libllvmx86info/Makefile projects/armv6/lib/libarchive/Makefile projects/armv6/lib/libarchive/config_freebsd.h projects/armv6/lib/libarchive/test/Makefile projects/armv6/lib/libc/Makefile projects/armv6/lib/libc/amd64/gen/Makefile.inc projects/armv6/lib/libc/arm/_fpmath.h projects/armv6/lib/libc/arm/gen/Makefile.inc projects/armv6/lib/libc/arm/softfloat/softfloat.h projects/armv6/lib/libc/arm/string/Makefile.inc projects/armv6/lib/libc/db/man/hash.3 projects/armv6/lib/libc/gen/Makefile.inc projects/armv6/lib/libc/gen/Symbol.map projects/armv6/lib/libc/gen/arc4random.3 projects/armv6/lib/libc/gen/aux.c projects/armv6/lib/libc/gen/directory.3 projects/armv6/lib/libc/gen/dlfcn.c projects/armv6/lib/libc/gen/dlopen.3 projects/armv6/lib/libc/gen/exec.c projects/armv6/lib/libc/gen/fmtmsg.c projects/armv6/lib/libc/gen/fts.c projects/armv6/lib/libc/gen/getcontext.3 projects/armv6/lib/libc/gen/getgrouplist.3 projects/armv6/lib/libc/gen/getosreldate.c projects/armv6/lib/libc/gen/getttyent.c projects/armv6/lib/libc/gen/getusershell.c projects/armv6/lib/libc/gen/getutxent.3 projects/armv6/lib/libc/gen/getutxent.c projects/armv6/lib/libc/gen/glob.3 projects/armv6/lib/libc/gen/glob.c projects/armv6/lib/libc/gen/sem.c projects/armv6/lib/libc/gen/sem_new.c projects/armv6/lib/libc/gen/strtofflags.c projects/armv6/lib/libc/gen/sysctl.3 projects/armv6/lib/libc/gen/syslog.c projects/armv6/lib/libc/gen/timezone.c projects/armv6/lib/libc/gen/ucontext.3 projects/armv6/lib/libc/i386/gen/Makefile.inc projects/armv6/lib/libc/i386/string/Makefile.inc projects/armv6/lib/libc/i386/string/strchr.S projects/armv6/lib/libc/i386/string/strrchr.S projects/armv6/lib/libc/ia64/gen/Makefile.inc projects/armv6/lib/libc/iconv/citrus_module.c projects/armv6/lib/libc/include/libc_private.h projects/armv6/lib/libc/locale/btowc.3 projects/armv6/lib/libc/locale/duplocale.3 projects/armv6/lib/libc/locale/freelocale.3 projects/armv6/lib/libc/locale/localeconv.3 projects/armv6/lib/libc/locale/newlocale.3 projects/armv6/lib/libc/locale/querylocale.3 projects/armv6/lib/libc/locale/setlocale.c projects/armv6/lib/libc/locale/uselocale.3 projects/armv6/lib/libc/locale/wctype.c projects/armv6/lib/libc/locale/xlocale.3 projects/armv6/lib/libc/mips/gen/Makefile.inc projects/armv6/lib/libc/mips/softfloat/softfloat.h projects/armv6/lib/libc/mips/string/Makefile.inc projects/armv6/lib/libc/net/eui64.3 projects/armv6/lib/libc/net/getaddrinfo.c projects/armv6/lib/libc/net/gethostbynis.c projects/armv6/lib/libc/net/getifaddrs.c projects/armv6/lib/libc/net/getnetbynis.c projects/armv6/lib/libc/net/nsdispatch.3 projects/armv6/lib/libc/net/nsdispatch.c projects/armv6/lib/libc/net/sctp_sys_calls.c projects/armv6/lib/libc/powerpc/SYS.h projects/armv6/lib/libc/powerpc/gen/Makefile.inc projects/armv6/lib/libc/powerpc/gen/setjmp.S projects/armv6/lib/libc/powerpc64/SYS.h projects/armv6/lib/libc/powerpc64/gen/Makefile.inc projects/armv6/lib/libc/powerpc64/gen/setjmp.S projects/armv6/lib/libc/powerpc64/sys/cerror.S projects/armv6/lib/libc/resolv/res_send.c projects/armv6/lib/libc/rpc/Makefile.inc projects/armv6/lib/libc/rpc/crypt_client.c projects/armv6/lib/libc/rpc/rpc.3 projects/armv6/lib/libc/rpc/rpc_clnt_create.3 projects/armv6/lib/libc/softfloat/Makefile.inc projects/armv6/lib/libc/softfloat/Symbol.map projects/armv6/lib/libc/softfloat/bits32/softfloat-macros projects/armv6/lib/libc/softfloat/bits32/softfloat.c projects/armv6/lib/libc/softfloat/bits64/softfloat-macros projects/armv6/lib/libc/softfloat/bits64/softfloat.c projects/armv6/lib/libc/softfloat/softfloat-for-gcc.h projects/armv6/lib/libc/softfloat/softfloat-source.txt projects/armv6/lib/libc/softfloat/softfloat-specialize projects/armv6/lib/libc/softfloat/softfloat.txt projects/armv6/lib/libc/sparc64/fpu/fpu_emu.h projects/armv6/lib/libc/sparc64/fpu/fpu_mul.c projects/armv6/lib/libc/sparc64/gen/Makefile.inc projects/armv6/lib/libc/stdlib/Makefile.inc projects/armv6/lib/libc/stdlib/Symbol.map projects/armv6/lib/libc/stdlib/atexit.3 projects/armv6/lib/libc/stdlib/exit.3 projects/armv6/lib/libc/stdlib/getopt_long.3 projects/armv6/lib/libc/stdlib/getsubopt.3 projects/armv6/lib/libc/stdlib/malloc.c projects/armv6/lib/libc/string/Makefile.inc projects/armv6/lib/libc/string/strcasecmp.c projects/armv6/lib/libc/string/strcmp.c projects/armv6/lib/libc/string/strcoll.c projects/armv6/lib/libc/string/strerror.3 projects/armv6/lib/libc/string/strncmp.c projects/armv6/lib/libc/sys/Makefile.inc projects/armv6/lib/libc/sys/cap_new.2 projects/armv6/lib/libc/sys/chroot.2 projects/armv6/lib/libc/sys/close.2 projects/armv6/lib/libc/sys/fcntl.2 projects/armv6/lib/libc/sys/getdirentries.2 projects/armv6/lib/libc/sys/jail.2 projects/armv6/lib/libc/sys/kqueue.2 projects/armv6/lib/libc/sys/mmap.2 projects/armv6/lib/libc/sys/nfssvc.2 projects/armv6/lib/libc/sys/ptrace.2 projects/armv6/lib/libc/sys/read.2 projects/armv6/lib/libc/sys/rtprio.2 projects/armv6/lib/libc/sys/setuid.2 projects/armv6/lib/libc/sys/write.2 projects/armv6/lib/libc/yp/Makefile.inc projects/armv6/lib/libc/yp/xdryp.c projects/armv6/lib/libc/yp/yplib.c projects/armv6/lib/libcam/cam.3 projects/armv6/lib/libcam/cam_cdbparse.3 projects/armv6/lib/libcam/camlib.c projects/armv6/lib/libcompiler_rt/Makefile projects/armv6/lib/libdevstat/devstat.3 projects/armv6/lib/libdevstat/devstat.c projects/armv6/lib/libdisk/libdisk.h projects/armv6/lib/libedit/histedit.h projects/armv6/lib/libfetch/common.c projects/armv6/lib/libfetch/common.h projects/armv6/lib/libfetch/http.c projects/armv6/lib/libgssapi/gss_display_status.c projects/armv6/lib/libgssapi/gss_pseudo_random.c projects/armv6/lib/libgssapi/gss_release_oid.c projects/armv6/lib/libipsec/pfkey.c projects/armv6/lib/libipsec/policy_token.l projects/armv6/lib/libkvm/kvm_proc.c projects/armv6/lib/libopie/config.h projects/armv6/lib/libpam/libpam/Makefile projects/armv6/lib/libpam/modules/pam_unix/Makefile projects/armv6/lib/libpmc/libpmc.c projects/armv6/lib/libpmc/pmc.3 projects/armv6/lib/libpmc/pmc.atom.3 projects/armv6/lib/libpmc/pmc.core.3 projects/armv6/lib/libpmc/pmc.core2.3 projects/armv6/lib/libpmc/pmc.corei7.3 projects/armv6/lib/libpmc/pmc.corei7uc.3 projects/armv6/lib/libpmc/pmc.iaf.3 projects/armv6/lib/libpmc/pmc.k7.3 projects/armv6/lib/libpmc/pmc.k8.3 projects/armv6/lib/libpmc/pmc.mips.3 projects/armv6/lib/libpmc/pmc.p4.3 projects/armv6/lib/libpmc/pmc.p5.3 projects/armv6/lib/libpmc/pmc.p6.3 projects/armv6/lib/libpmc/pmc.tsc.3 projects/armv6/lib/libpmc/pmc.ucf.3 projects/armv6/lib/libpmc/pmc.westmere.3 projects/armv6/lib/libpmc/pmc.westmereuc.3 projects/armv6/lib/libpmc/pmc.xscale.3 projects/armv6/lib/libpmc/pmc_allocate.3 projects/armv6/lib/libpmc/pmc_attach.3 projects/armv6/lib/libpmc/pmc_capabilities.3 projects/armv6/lib/libpmc/pmc_configure_logfile.3 projects/armv6/lib/libpmc/pmc_disable.3 projects/armv6/lib/libpmc/pmc_event_names_of_class.3 projects/armv6/lib/libpmc/pmc_get_driver_stats.3 projects/armv6/lib/libpmc/pmc_get_msr.3 projects/armv6/lib/libpmc/pmc_init.3 projects/armv6/lib/libpmc/pmc_name_of_capability.3 projects/armv6/lib/libpmc/pmc_read.3 projects/armv6/lib/libpmc/pmc_set.3 projects/armv6/lib/libpmc/pmc_start.3 projects/armv6/lib/libpmc/pmclog.3 projects/armv6/lib/libprocstat/common_kvm.c projects/armv6/lib/libradius/Makefile projects/armv6/lib/libradius/libradius.3 projects/armv6/lib/libradius/radlib.c projects/armv6/lib/libradius/radlib.h projects/armv6/lib/libradius/radlib_private.h projects/armv6/lib/librpcsvc/Makefile projects/armv6/lib/libsm/Makefile projects/armv6/lib/libstand/Makefile projects/armv6/lib/libstand/bootp.c projects/armv6/lib/libstand/tftp.c projects/armv6/lib/libthr/arch/amd64/include/pthread_md.h projects/armv6/lib/libthr/arch/arm/arm/pthread_md.c projects/armv6/lib/libthr/arch/arm/include/pthread_md.h projects/armv6/lib/libthr/arch/i386/include/pthread_md.h projects/armv6/lib/libthr/arch/mips/include/pthread_md.h projects/armv6/lib/libthr/arch/mips/mips/pthread_md.c projects/armv6/lib/libthr/thread/thr_list.c projects/armv6/lib/libthr/thread/thr_private.h projects/armv6/lib/libthr/thread/thr_sig.c projects/armv6/lib/libthr/thread/thr_umtx.c projects/armv6/lib/libthread_db/Makefile projects/armv6/lib/libufs/block.c projects/armv6/lib/libusb/libusb10.c projects/armv6/lib/libutil/Makefile projects/armv6/lib/libutil/flopen.3 projects/armv6/lib/libutil/gr_util.c projects/armv6/lib/libutil/kld.3 projects/armv6/lib/libutil/libutil.h projects/armv6/lib/libutil/login_class.c projects/armv6/lib/libutil/pidfile.3 projects/armv6/lib/libutil/pidfile.c projects/armv6/lib/libutil/property.3 projects/armv6/lib/libutil/pw_util.c projects/armv6/lib/libutil/quotafile.c projects/armv6/lib/libutil/realhostname.3 projects/armv6/lib/libvgl/bitmap.c projects/armv6/lib/libvgl/keyboard.c projects/armv6/lib/libvgl/main.c projects/armv6/lib/libvgl/mouse.c projects/armv6/lib/libvgl/simple.c projects/armv6/lib/libvgl/text.c projects/armv6/lib/libvgl/vgl.3 projects/armv6/lib/libvgl/vgl.h projects/armv6/lib/libypclnt/Makefile projects/armv6/lib/msun/Makefile projects/armv6/lib/msun/arm/Symbol.map projects/armv6/lib/msun/arm/fenv.c projects/armv6/lib/msun/arm/fenv.h projects/armv6/lib/msun/src/k_expf.c projects/armv6/lib/msun/src/s_fabsl.c projects/armv6/libexec/bootpd/bootpd.c projects/armv6/libexec/bootpd/bootpgw/bootpgw.c projects/armv6/libexec/bootpd/hash.h projects/armv6/libexec/bootpd/tools/bootptest/bootptest.c projects/armv6/libexec/bootpd/tools/bootptest/print-bootp.c projects/armv6/libexec/comsat/comsat.c projects/armv6/libexec/ftpd/ftpcmd.y projects/armv6/libexec/ftpd/ftpd.c projects/armv6/libexec/ftpd/popen.c projects/armv6/libexec/getty/chat.c projects/armv6/libexec/getty/init.c projects/armv6/libexec/lukemftpd/nbsd_pidfile.h projects/armv6/libexec/mail.local/Makefile projects/armv6/libexec/mknetid/parse_group.c projects/armv6/libexec/pppoed/pppoed.c projects/armv6/libexec/rbootd/parseconf.c projects/armv6/libexec/rbootd/rbootd.c projects/armv6/libexec/rbootd/rmpproto.c projects/armv6/libexec/rbootd/utils.c projects/armv6/libexec/revnetgroup/parse_netgroup.c projects/armv6/libexec/rlogind/rlogind.c projects/armv6/libexec/rshd/rshd.8 projects/armv6/libexec/rtld-aout/shlib.c projects/armv6/libexec/rtld-elf/Symbol.map projects/armv6/libexec/rtld-elf/amd64/reloc.c projects/armv6/libexec/rtld-elf/arm/reloc.c projects/armv6/libexec/rtld-elf/arm/rtld_machdep.h projects/armv6/libexec/rtld-elf/i386/reloc.c projects/armv6/libexec/rtld-elf/ia64/reloc.c projects/armv6/libexec/rtld-elf/map_object.c projects/armv6/libexec/rtld-elf/mips/reloc.c projects/armv6/libexec/rtld-elf/mips/rtld_machdep.h projects/armv6/libexec/rtld-elf/powerpc/reloc.c projects/armv6/libexec/rtld-elf/powerpc64/reloc.c projects/armv6/libexec/rtld-elf/rtld.c projects/armv6/libexec/rtld-elf/rtld.h projects/armv6/libexec/rtld-elf/sparc64/reloc.c projects/armv6/libexec/smrsh/Makefile projects/armv6/libexec/tftpd/tftp-io.c projects/armv6/libexec/tftpd/tftp-utils.h projects/armv6/libexec/ypxfr/Makefile projects/armv6/libexec/ypxfr/ypxfr_getmap.c projects/armv6/libexec/ypxfr/ypxfr_main.c projects/armv6/libexec/ypxfr/ypxfr_misc.c projects/armv6/release/Makefile projects/armv6/release/doc/en_US.ISO8859-1/hardware/article.sgml projects/armv6/release/doc/en_US.ISO8859-1/relnotes/article.sgml projects/armv6/release/doc/share/misc/dev.archlist.txt projects/armv6/release/doc/share/misc/man2hwnotes.pl projects/armv6/release/generate-release.sh projects/armv6/release/picobsd/build/Makefile.conf projects/armv6/release/picobsd/build/picobsd projects/armv6/release/picobsd/tinyware/passwd/Makefile projects/armv6/release/picobsd/tinyware/passwd/local_passwd.c projects/armv6/release/picobsd/tinyware/passwd/pw_copy.c projects/armv6/release/picobsd/tinyware/simple_httpd/README projects/armv6/release/rc.local projects/armv6/rescue/rescue/Makefile projects/armv6/sbin/atm/atmconfig/diag.c projects/armv6/sbin/bsdlabel/bsdlabel.8 projects/armv6/sbin/bsdlabel/bsdlabel.c projects/armv6/sbin/camcontrol/Makefile projects/armv6/sbin/camcontrol/camcontrol.c projects/armv6/sbin/camcontrol/fwdownload.c projects/armv6/sbin/camcontrol/modeedit.c projects/armv6/sbin/devd/devd.cc projects/armv6/sbin/devd/devd.conf.5 projects/armv6/sbin/devd/devd.hh projects/armv6/sbin/devfs/rule.c projects/armv6/sbin/dhclient/clparse.c projects/armv6/sbin/dhclient/dhclient-script (contents, props changed) projects/armv6/sbin/dhclient/dhclient-script.8 projects/armv6/sbin/dhclient/dhclient.c projects/armv6/sbin/dhclient/dhcp-options.5 projects/armv6/sbin/dhclient/dhcp.h projects/armv6/sbin/dhclient/options.c projects/armv6/sbin/dhclient/parse.c projects/armv6/sbin/dhclient/tables.c projects/armv6/sbin/dump/main.c projects/armv6/sbin/dumpfs/dumpfs.c projects/armv6/sbin/fsck_ffs/fsck.h projects/armv6/sbin/fsck_ffs/fsck_ffs.8 projects/armv6/sbin/fsck_ffs/fsutil.c projects/armv6/sbin/fsck_ffs/gjournal.c projects/armv6/sbin/fsck_ffs/pass2.c projects/armv6/sbin/fsck_ffs/setup.c projects/armv6/sbin/fsck_ffs/suj.c projects/armv6/sbin/fsdb/Makefile projects/armv6/sbin/fsdb/fsdbutil.c projects/armv6/sbin/fsirand/fsirand.c projects/armv6/sbin/gbde/Makefile projects/armv6/sbin/geom/class/part/geom_part.c projects/armv6/sbin/geom/class/part/gpart.8 projects/armv6/sbin/geom/class/raid/graid.8 projects/armv6/sbin/geom/class/sched/gsched.8 projects/armv6/sbin/growfs/growfs.c projects/armv6/sbin/gvinum/gvinum.c projects/armv6/sbin/hastctl/Makefile projects/armv6/sbin/hastctl/hastctl.8 projects/armv6/sbin/hastctl/hastctl.c projects/armv6/sbin/hastd/Makefile projects/armv6/sbin/hastd/activemap.c projects/armv6/sbin/hastd/control.c projects/armv6/sbin/hastd/ebuf.c projects/armv6/sbin/hastd/event.c projects/armv6/sbin/hastd/hast.conf.5 projects/armv6/sbin/hastd/hast_checksum.c projects/armv6/sbin/hastd/hast_compression.c projects/armv6/sbin/hastd/hast_proto.c projects/armv6/sbin/hastd/hastd.c projects/armv6/sbin/hastd/hooks.c projects/armv6/sbin/hastd/lzf.h projects/armv6/sbin/hastd/metadata.c projects/armv6/sbin/hastd/nv.c projects/armv6/sbin/hastd/parse.y projects/armv6/sbin/hastd/pjdlog.h projects/armv6/sbin/hastd/primary.c projects/armv6/sbin/hastd/proto.c projects/armv6/sbin/hastd/proto_common.c projects/armv6/sbin/hastd/proto_socketpair.c projects/armv6/sbin/hastd/proto_tcp.c projects/armv6/sbin/hastd/proto_uds.c projects/armv6/sbin/hastd/rangelock.c projects/armv6/sbin/hastd/secondary.c projects/armv6/sbin/hastd/subr.c projects/armv6/sbin/hastd/subr.h projects/armv6/sbin/hastd/token.l projects/armv6/sbin/ifconfig/Makefile projects/armv6/sbin/ifconfig/af_inet.c projects/armv6/sbin/ifconfig/af_inet6.c projects/armv6/sbin/ifconfig/ifconfig.8 projects/armv6/sbin/ifconfig/ifconfig.c projects/armv6/sbin/ifconfig/ifconfig.h projects/armv6/sbin/ifconfig/ifieee80211.c projects/armv6/sbin/ifconfig/ifvlan.c projects/armv6/sbin/init/init.8 projects/armv6/sbin/init/init.c projects/armv6/sbin/ipf/Makefile.inc projects/armv6/sbin/ipfw/ipfw.8 projects/armv6/sbin/ipfw/ipfw2.c projects/armv6/sbin/ipfw/main.c projects/armv6/sbin/mdconfig/mdconfig.c projects/armv6/sbin/mdmfs/mdmfs.c projects/armv6/sbin/mount/getmntopts.c projects/armv6/sbin/mount/mntopts.h projects/armv6/sbin/mount/mount.c projects/armv6/sbin/mount/mount_fs.c projects/armv6/sbin/mount_cd9660/mount_cd9660.c projects/armv6/sbin/mount_ext2fs/mount_ext2fs.c projects/armv6/sbin/mount_msdosfs/mount_msdosfs.c projects/armv6/sbin/mount_nfs/mount_nfs.8 projects/armv6/sbin/mount_nfs/mount_nfs.c projects/armv6/sbin/mount_ntfs/mount_ntfs.c projects/armv6/sbin/mount_nullfs/mount_nullfs.c projects/armv6/sbin/mount_reiserfs/mount_reiserfs.c projects/armv6/sbin/mount_std/mount_std.c projects/armv6/sbin/mount_udf/mount_udf.c projects/armv6/sbin/mount_unionfs/mount_unionfs.c projects/armv6/sbin/newfs/mkfs.c projects/armv6/sbin/newfs/newfs.h projects/armv6/sbin/newfs_msdos/newfs_msdos.8 projects/armv6/sbin/newfs_msdos/newfs_msdos.c projects/armv6/sbin/ping6/ping6.c projects/armv6/sbin/rcorder/rcorder.c projects/armv6/sbin/reboot/nextboot.8 projects/armv6/sbin/reboot/nextboot.sh projects/armv6/sbin/reboot/reboot.c projects/armv6/sbin/recoverdisk/recoverdisk.1 projects/armv6/sbin/route/route.c projects/armv6/sbin/routed/main.c projects/armv6/sbin/routed/parms.c projects/armv6/sbin/routed/radix.c projects/armv6/sbin/routed/rtquery/Makefile projects/armv6/sbin/routed/table.c projects/armv6/sbin/shutdown/shutdown.c projects/armv6/sbin/sysctl/sysctl.c projects/armv6/sbin/tunefs/tunefs.c projects/armv6/secure/lib/libcrypt/crypt-blowfish.c projects/armv6/secure/lib/libcrypto/Makefile projects/armv6/share/doc/IPv6/IMPLEMENTATION projects/armv6/share/examples/diskless/README.TEMPLATING projects/armv6/share/examples/etc/make.conf projects/armv6/share/examples/ppp/ppp.linkdown.sample projects/armv6/share/examples/printing/hpvf projects/armv6/share/examples/scsi_target/scsi_cmds.c projects/armv6/share/examples/scsi_target/scsi_target.c projects/armv6/share/man/man3/Makefile projects/armv6/share/man/man3/tgmath.3 projects/armv6/share/man/man4/Makefile projects/armv6/share/man/man4/ada.4 projects/armv6/share/man/man4/agp.4 projects/armv6/share/man/man4/ahci.4 projects/armv6/share/man/man4/altq.4 projects/armv6/share/man/man4/amdtemp.4 projects/armv6/share/man/man4/atrtc.4 projects/armv6/share/man/man4/attimer.4 projects/armv6/share/man/man4/bce.4 projects/armv6/share/man/man4/bge.4 projects/armv6/share/man/man4/carp.4 projects/armv6/share/man/man4/cd.4 projects/armv6/share/man/man4/ciss.4 projects/armv6/share/man/man4/cpufreq.4 projects/armv6/share/man/man4/cxgbe.4 projects/armv6/share/man/man4/da.4 projects/armv6/share/man/man4/ddb.4 projects/armv6/share/man/man4/ed.4 projects/armv6/share/man/man4/et.4 projects/armv6/share/man/man4/faith.4 projects/armv6/share/man/man4/h_ertt.4 projects/armv6/share/man/man4/hpet.4 projects/armv6/share/man/man4/icmp6.4 projects/armv6/share/man/man4/inet.4 projects/armv6/share/man/man4/inet6.4 projects/armv6/share/man/man4/ip6.4 projects/armv6/share/man/man4/lagg.4 projects/armv6/share/man/man4/lmc.4 projects/armv6/share/man/man4/lo.4 projects/armv6/share/man/man4/man4.i386/CPU_ELAN.4 projects/armv6/share/man/man4/mem.4 projects/armv6/share/man/man4/mps.4 projects/armv6/share/man/man4/mtio.4 projects/armv6/share/man/man4/natm.4 projects/armv6/share/man/man4/net80211.4 projects/armv6/share/man/man4/netintro.4 projects/armv6/share/man/man4/ng_async.4 projects/armv6/share/man/man4/ng_bridge.4 projects/armv6/share/man/man4/ng_btsocket.4 projects/armv6/share/man/man4/ng_car.4 projects/armv6/share/man/man4/ng_ccatm.4 projects/armv6/share/man/man4/ng_cisco.4 projects/armv6/share/man/man4/ng_etf.4 projects/armv6/share/man/man4/ng_hci.4 projects/armv6/share/man/man4/ng_ksocket.4 projects/armv6/share/man/man4/ng_l2cap.4 projects/armv6/share/man/man4/ng_l2tp.4 projects/armv6/share/man/man4/ng_mppc.4 projects/armv6/share/man/man4/ng_netflow.4 projects/armv6/share/man/man4/ng_one2many.4 projects/armv6/share/man/man4/ng_ppp.4 projects/armv6/share/man/man4/ng_pppoe.4 projects/armv6/share/man/man4/ng_pptpgre.4 projects/armv6/share/man/man4/pcm.4 projects/armv6/share/man/man4/ppi.4 projects/armv6/share/man/man4/sbp.4 projects/armv6/share/man/man4/sdhci.4 projects/armv6/share/man/man4/sfxge.4 projects/armv6/share/man/man4/snd_hda.4 projects/armv6/share/man/man4/splash.4 projects/armv6/share/man/man4/tap.4 projects/armv6/share/man/man4/targ.4 projects/armv6/share/man/man4/tcp.4 projects/armv6/share/man/man4/txp.4 projects/armv6/share/man/man4/u3g.4 projects/armv6/share/man/man4/umass.4 projects/armv6/share/man/man4/usb_quirk.4 projects/armv6/share/man/man4/virtio.4 projects/armv6/share/man/man4/virtio_balloon.4 projects/armv6/share/man/man4/virtio_blk.4 projects/armv6/share/man/man4/vtnet.4 projects/armv6/share/man/man4/wlan.4 projects/armv6/share/man/man5/Makefile projects/armv6/share/man/man5/ar.5 projects/armv6/share/man/man5/devfs.5 projects/armv6/share/man/man5/fs.5 projects/armv6/share/man/man5/make.conf.5 projects/armv6/share/man/man5/periodic.conf.5 projects/armv6/share/man/man5/portindex.5 projects/armv6/share/man/man5/rc.conf.5 projects/armv6/share/man/man5/src.conf.5 projects/armv6/share/man/man7/Makefile projects/armv6/share/man/man7/hier.7 projects/armv6/share/man/man7/ports.7 projects/armv6/share/man/man7/release.7 projects/armv6/share/man/man7/security.7 projects/armv6/share/man/man8/rc.8 projects/armv6/share/man/man8/rc.subr.8 projects/armv6/share/man/man8/yp.8 projects/armv6/share/man/man9/DEVICE_PROBE.9 projects/armv6/share/man/man9/DEV_MODULE.9 projects/armv6/share/man/man9/MD5.9 projects/armv6/share/man/man9/Makefile projects/armv6/share/man/man9/bios.9 projects/armv6/share/man/man9/bus_space.9 projects/armv6/share/man/man9/crypto.9 projects/armv6/share/man/man9/device_set_flags.9 projects/armv6/share/man/man9/devstat.9 projects/armv6/share/man/man9/devtoname.9 projects/armv6/share/man/man9/domain.9 projects/armv6/share/man/man9/get_cyclecount.9 projects/armv6/share/man/man9/ifnet.9 projects/armv6/share/man/man9/malloc.9 projects/armv6/share/man/man9/mbchain.9 projects/armv6/share/man/man9/mbuf_tags.9 projects/armv6/share/man/man9/mdchain.9 projects/armv6/share/man/man9/namei.9 projects/armv6/share/man/man9/netisr.9 projects/armv6/share/man/man9/physio.9 projects/armv6/share/man/man9/random.9 projects/armv6/share/man/man9/rijndael.9 projects/armv6/share/man/man9/rtalloc.9 projects/armv6/share/man/man9/sbuf.9 projects/armv6/share/man/man9/taskqueue.9 projects/armv6/share/man/man9/uio.9 projects/armv6/share/man/man9/vcount.9 projects/armv6/share/man/man9/vm_page_alloc.9 projects/armv6/share/man/man9/vnode.9 projects/armv6/share/man/man9/zone.9 projects/armv6/share/misc/bsd-family-tree projects/armv6/share/misc/committers-ports.dot projects/armv6/share/misc/committers-src.dot projects/armv6/share/mk/bsd.crunchgen.mk projects/armv6/share/mk/bsd.kmod.mk projects/armv6/share/mk/bsd.lib.mk projects/armv6/share/mk/bsd.own.mk projects/armv6/share/mk/bsd.prog.mk projects/armv6/share/mk/bsd.sys.mk projects/armv6/share/mk/sys.mk projects/armv6/share/termcap/termcap.src projects/armv6/sys/Makefile projects/armv6/sys/amd64/acpica/acpi_switch.S projects/armv6/sys/amd64/acpica/acpi_wakecode.S projects/armv6/sys/amd64/acpica/acpi_wakeup.c projects/armv6/sys/amd64/amd64/apic_vector.S projects/armv6/sys/amd64/amd64/cpu_switch.S projects/armv6/sys/amd64/amd64/fpu.c projects/armv6/sys/amd64/amd64/genassym.c projects/armv6/sys/amd64/amd64/initcpu.c projects/armv6/sys/amd64/amd64/machdep.c projects/armv6/sys/amd64/amd64/minidump_machdep.c projects/armv6/sys/amd64/amd64/mp_machdep.c projects/armv6/sys/amd64/amd64/pmap.c projects/armv6/sys/amd64/amd64/sys_machdep.c projects/armv6/sys/amd64/amd64/trap.c projects/armv6/sys/amd64/amd64/uma_machdep.c projects/armv6/sys/amd64/amd64/vm_machdep.c projects/armv6/sys/amd64/conf/GENERIC projects/armv6/sys/amd64/conf/NOTES projects/armv6/sys/amd64/ia32/ia32_reg.c projects/armv6/sys/amd64/ia32/ia32_signal.c projects/armv6/sys/amd64/include/_types.h projects/armv6/sys/amd64/include/float.h projects/armv6/sys/amd64/include/fpu.h projects/armv6/sys/amd64/include/frame.h projects/armv6/sys/amd64/include/md_var.h projects/armv6/sys/amd64/include/pcb.h projects/armv6/sys/amd64/include/pcpu.h projects/armv6/sys/amd64/include/ptrace.h projects/armv6/sys/amd64/include/signal.h projects/armv6/sys/amd64/include/specialreg.h projects/armv6/sys/amd64/include/sysarch.h projects/armv6/sys/amd64/include/ucontext.h projects/armv6/sys/amd64/linux32/linux.h projects/armv6/sys/amd64/linux32/linux32_dummy.c projects/armv6/sys/amd64/linux32/linux32_proto.h projects/armv6/sys/amd64/linux32/linux32_syscall.h projects/armv6/sys/amd64/linux32/linux32_syscalls.c projects/armv6/sys/amd64/linux32/linux32_sysent.c projects/armv6/sys/amd64/linux32/linux32_systrace_args.c projects/armv6/sys/amd64/linux32/linux32_sysvec.c projects/armv6/sys/amd64/linux32/syscalls.master projects/armv6/sys/arm/arm/irq_dispatch.S projects/armv6/sys/arm/arm/machdep.c projects/armv6/sys/arm/arm/pmap.c projects/armv6/sys/arm/arm/vm_machdep.c projects/armv6/sys/arm/at91/at91_st.c projects/armv6/sys/arm/conf/KB920X projects/armv6/sys/arm/econa/ehci_ebus.c projects/armv6/sys/arm/econa/ohci_ec.c projects/armv6/sys/arm/include/_types.h projects/armv6/sys/arm/include/float.h projects/armv6/sys/arm/include/pmap.h projects/armv6/sys/arm/mv/common.c projects/armv6/sys/arm/mv/mv_machdep.c projects/armv6/sys/arm/sa11x0/sa11x0_ost.c projects/armv6/sys/arm/xscale/ixp425/ixdp425_pci.c projects/armv6/sys/arm/xscale/ixp425/ixp425_pci.c projects/armv6/sys/arm/xscale/ixp425/ixp425var.h projects/armv6/sys/boot/arm/at91/libat91/sd-card.c projects/armv6/sys/boot/common/interp_parse.c projects/armv6/sys/boot/common/loader.8 projects/armv6/sys/boot/ficl/fileaccess.c projects/armv6/sys/boot/ficl/i386/sysdep.h projects/armv6/sys/boot/forth/loader.4th projects/armv6/sys/boot/forth/loader.conf projects/armv6/sys/boot/forth/menu.4th projects/armv6/sys/boot/forth/menu.4th.8 projects/armv6/sys/boot/forth/menu.rc projects/armv6/sys/boot/i386/boot0/boot0.S projects/armv6/sys/boot/i386/libi386/biospci.c projects/armv6/sys/boot/i386/libi386/comconsole.c projects/armv6/sys/boot/i386/libi386/libi386.h projects/armv6/sys/boot/i386/libi386/pxe.c projects/armv6/sys/boot/i386/libi386/time.c projects/armv6/sys/boot/i386/zfsboot/zfsboot.c projects/armv6/sys/boot/ofw/common/main.c projects/armv6/sys/boot/ofw/libofw/ofw_net.c projects/armv6/sys/boot/pc98/boot2/boot1.S projects/armv6/sys/boot/pc98/libpc98/comconsole.c projects/armv6/sys/boot/pc98/loader/Makefile projects/armv6/sys/boot/powerpc/boot1.chrp/Makefile projects/armv6/sys/boot/powerpc/boot1.chrp/boot1.c projects/armv6/sys/boot/powerpc/ps3/ps3mmu.c projects/armv6/sys/boot/userboot/libstand/Makefile projects/armv6/sys/boot/zfs/zfsimpl.c projects/armv6/sys/cam/ata/ata_da.c projects/armv6/sys/cam/ata/ata_xpt.c projects/armv6/sys/cam/cam_ccb.h projects/armv6/sys/cam/cam_periph.c projects/armv6/sys/cam/cam_periph.h projects/armv6/sys/cam/cam_xpt.c projects/armv6/sys/cam/cam_xpt_internal.h projects/armv6/sys/cam/scsi/scsi_all.c projects/armv6/sys/cam/scsi/scsi_all.h projects/armv6/sys/cam/scsi/scsi_cd.c projects/armv6/sys/cam/scsi/scsi_da.c projects/armv6/sys/cam/scsi/scsi_da.h projects/armv6/sys/cam/scsi/scsi_sa.c projects/armv6/sys/cam/scsi/scsi_ses.c projects/armv6/sys/cam/scsi/scsi_sg.c projects/armv6/sys/cam/scsi/scsi_targ_bh.c projects/armv6/sys/cam/scsi/scsi_target.c projects/armv6/sys/cam/scsi/scsi_xpt.c projects/armv6/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c projects/armv6/sys/cddl/compat/opensolaris/sys/kmem.h projects/armv6/sys/cddl/compat/opensolaris/sys/sid.h projects/armv6/sys/cddl/compat/opensolaris/sys/vnode.h projects/armv6/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev_impl.h projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_ioctl.h projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c projects/armv6/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c projects/armv6/sys/compat/freebsd32/freebsd32_misc.c projects/armv6/sys/compat/freebsd32/freebsd32_signal.h projects/armv6/sys/compat/ia32/ia32_signal.h projects/armv6/sys/compat/linprocfs/linprocfs.c projects/armv6/sys/compat/linux/linux_file.c projects/armv6/sys/compat/linux/linux_ioctl.c projects/armv6/sys/compat/linux/linux_ipc.c projects/armv6/sys/compat/linux/linux_misc.c projects/armv6/sys/compat/linux/linux_signal.c projects/armv6/sys/compat/linux/linux_socket.c projects/armv6/sys/compat/linux/linux_stats.c projects/armv6/sys/compat/linux/linux_util.c projects/armv6/sys/compat/linux/linux_util.h projects/armv6/sys/compat/ndis/subr_ndis.c projects/armv6/sys/compat/ndis/subr_ntoskrnl.c projects/armv6/sys/compat/svr4/imgact_svr4.c projects/armv6/sys/conf/NOTES projects/armv6/sys/conf/files projects/armv6/sys/conf/files.amd64 projects/armv6/sys/conf/files.i386 projects/armv6/sys/conf/files.powerpc projects/armv6/sys/conf/kern.mk projects/armv6/sys/conf/kern.post.mk projects/armv6/sys/conf/kern.pre.mk projects/armv6/sys/conf/kmod.mk projects/armv6/sys/conf/ldscript.powerpc64 projects/armv6/sys/conf/newvers.sh projects/armv6/sys/conf/options projects/armv6/sys/conf/options.amd64 projects/armv6/sys/conf/options.i386 projects/armv6/sys/contrib/dev/acpica/acpica_prep.sh projects/armv6/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/armv6/sys/contrib/dev/acpica/common/adfile.c projects/armv6/sys/contrib/dev/acpica/common/adisasm.c projects/armv6/sys/contrib/dev/acpica/common/adwalk.c projects/armv6/sys/contrib/dev/acpica/common/dmextern.c projects/armv6/sys/contrib/dev/acpica/common/dmrestag.c projects/armv6/sys/contrib/dev/acpica/common/dmtable.c projects/armv6/sys/contrib/dev/acpica/common/dmtbdump.c projects/armv6/sys/contrib/dev/acpica/common/dmtbinfo.c projects/armv6/sys/contrib/dev/acpica/common/getopt.c projects/armv6/sys/contrib/dev/acpica/compiler/aslanalyze.c projects/armv6/sys/contrib/dev/acpica/compiler/aslbtypes.c projects/armv6/sys/contrib/dev/acpica/compiler/aslcodegen.c projects/armv6/sys/contrib/dev/acpica/compiler/aslcompile.c projects/armv6/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/armv6/sys/contrib/dev/acpica/compiler/aslcompiler.l projects/armv6/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/armv6/sys/contrib/dev/acpica/compiler/asldefine.h projects/armv6/sys/contrib/dev/acpica/compiler/aslerror.c projects/armv6/sys/contrib/dev/acpica/compiler/aslfiles.c projects/armv6/sys/contrib/dev/acpica/compiler/aslfold.c projects/armv6/sys/contrib/dev/acpica/compiler/aslglobal.h projects/armv6/sys/contrib/dev/acpica/compiler/asllength.c projects/armv6/sys/contrib/dev/acpica/compiler/asllisting.c projects/armv6/sys/contrib/dev/acpica/compiler/aslload.c projects/armv6/sys/contrib/dev/acpica/compiler/asllookup.c projects/armv6/sys/contrib/dev/acpica/compiler/aslmain.c projects/armv6/sys/contrib/dev/acpica/compiler/aslmap.c projects/armv6/sys/contrib/dev/acpica/compiler/aslmessages.h projects/armv6/sys/contrib/dev/acpica/compiler/aslopcodes.c projects/armv6/sys/contrib/dev/acpica/compiler/asloperands.c projects/armv6/sys/contrib/dev/acpica/compiler/aslopt.c projects/armv6/sys/contrib/dev/acpica/compiler/aslpredef.c projects/armv6/sys/contrib/dev/acpica/compiler/aslresource.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype1.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype1i.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype2.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype2d.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype2e.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype2q.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype2s.c projects/armv6/sys/contrib/dev/acpica/compiler/aslrestype2w.c projects/armv6/sys/contrib/dev/acpica/compiler/aslstartup.c projects/armv6/sys/contrib/dev/acpica/compiler/aslstubs.c projects/armv6/sys/contrib/dev/acpica/compiler/asltransform.c projects/armv6/sys/contrib/dev/acpica/compiler/asltree.c projects/armv6/sys/contrib/dev/acpica/compiler/asltypes.h projects/armv6/sys/contrib/dev/acpica/compiler/aslutils.c projects/armv6/sys/contrib/dev/acpica/compiler/asluuid.c projects/armv6/sys/contrib/dev/acpica/compiler/aslwalks.c projects/armv6/sys/contrib/dev/acpica/compiler/dtcompile.c projects/armv6/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/armv6/sys/contrib/dev/acpica/compiler/dtexpress.c projects/armv6/sys/contrib/dev/acpica/compiler/dtfield.c projects/armv6/sys/contrib/dev/acpica/compiler/dtio.c projects/armv6/sys/contrib/dev/acpica/compiler/dtparser.l projects/armv6/sys/contrib/dev/acpica/compiler/dtparser.y projects/armv6/sys/contrib/dev/acpica/compiler/dtsubtable.c projects/armv6/sys/contrib/dev/acpica/compiler/dttable.c projects/armv6/sys/contrib/dev/acpica/compiler/dttemplate.c projects/armv6/sys/contrib/dev/acpica/compiler/dttemplate.h projects/armv6/sys/contrib/dev/acpica/compiler/dtutils.c projects/armv6/sys/contrib/dev/acpica/include/acapps.h projects/armv6/sys/contrib/dev/acpica/include/accommon.h projects/armv6/sys/contrib/dev/acpica/include/acconfig.h projects/armv6/sys/contrib/dev/acpica/include/acdebug.h projects/armv6/sys/contrib/dev/acpica/include/acdisasm.h projects/armv6/sys/contrib/dev/acpica/include/acdispat.h projects/armv6/sys/contrib/dev/acpica/include/acevents.h projects/armv6/sys/contrib/dev/acpica/include/acexcep.h projects/armv6/sys/contrib/dev/acpica/include/acglobal.h projects/armv6/sys/contrib/dev/acpica/include/achware.h projects/armv6/sys/contrib/dev/acpica/include/acinterp.h projects/armv6/sys/contrib/dev/acpica/include/aclocal.h projects/armv6/sys/contrib/dev/acpica/include/acmacros.h projects/armv6/sys/contrib/dev/acpica/include/acnames.h projects/armv6/sys/contrib/dev/acpica/include/acnamesp.h projects/armv6/sys/contrib/dev/acpica/include/acobject.h projects/armv6/sys/contrib/dev/acpica/include/acopcode.h projects/armv6/sys/contrib/dev/acpica/include/acoutput.h projects/armv6/sys/contrib/dev/acpica/include/acparser.h projects/armv6/sys/contrib/dev/acpica/include/acpi.h projects/armv6/sys/contrib/dev/acpica/include/acpiosxf.h projects/armv6/sys/contrib/dev/acpica/include/acpixf.h projects/armv6/sys/contrib/dev/acpica/include/acpredef.h projects/armv6/sys/contrib/dev/acpica/include/acresrc.h projects/armv6/sys/contrib/dev/acpica/include/acrestyp.h projects/armv6/sys/contrib/dev/acpica/include/acstruct.h projects/armv6/sys/contrib/dev/acpica/include/actables.h projects/armv6/sys/contrib/dev/acpica/include/actbl.h projects/armv6/sys/contrib/dev/acpica/include/actbl1.h projects/armv6/sys/contrib/dev/acpica/include/actbl2.h projects/armv6/sys/contrib/dev/acpica/include/actbl3.h projects/armv6/sys/contrib/dev/acpica/include/actypes.h projects/armv6/sys/contrib/dev/acpica/include/acutils.h projects/armv6/sys/contrib/dev/acpica/include/amlcode.h projects/armv6/sys/contrib/dev/acpica/include/amlresrc.h projects/armv6/sys/contrib/dev/acpica/include/platform/acenv.h projects/armv6/sys/contrib/dev/acpica/include/platform/acfreebsd.h projects/armv6/sys/contrib/dev/acpica/include/platform/acgcc.h projects/armv6/sys/contrib/dev/acpica/os_specific/service_layers/osunixxf.c projects/armv6/sys/contrib/dev/npe/LICENSE projects/armv6/sys/contrib/dev/nve/amd64/nvenetlib.README projects/armv6/sys/contrib/dev/nve/i386/nvenetlib.README projects/armv6/sys/contrib/ngatm/netnatm/msg/uni_ie.c projects/armv6/sys/contrib/octeon-sdk/cvmx-helper-board.c projects/armv6/sys/contrib/octeon-sdk/cvmx-pcie.c projects/armv6/sys/contrib/octeon-sdk/cvmx-usb.c projects/armv6/sys/contrib/pf/net/if_pfsync.c projects/armv6/sys/contrib/pf/net/pf.c projects/armv6/sys/contrib/pf/net/pf_ioctl.c projects/armv6/sys/contrib/pf/net/pf_lb.c projects/armv6/sys/contrib/pf/net/pf_norm.c projects/armv6/sys/contrib/pf/net/pf_table.c projects/armv6/sys/contrib/pf/net/pfvar.h projects/armv6/sys/contrib/rdma/ib_addr.h projects/armv6/sys/crypto/aesni/aesni.c projects/armv6/sys/crypto/aesni/aesni.h projects/armv6/sys/crypto/aesni/aesni_wrap.c projects/armv6/sys/crypto/via/padlock.c projects/armv6/sys/crypto/via/padlock.h projects/armv6/sys/crypto/via/padlock_cipher.c projects/armv6/sys/crypto/via/padlock_hash.c projects/armv6/sys/ddb/db_command.c projects/armv6/sys/ddb/db_input.c projects/armv6/sys/ddb/db_ps.c projects/armv6/sys/ddb/db_thread.c projects/armv6/sys/ddb/ddb.h projects/armv6/sys/dev/aac/aac.c projects/armv6/sys/dev/acpica/Osd/OsdMemory.c projects/armv6/sys/dev/acpica/Osd/OsdSynch.c projects/armv6/sys/dev/acpica/Osd/OsdTable.c projects/armv6/sys/dev/acpica/acpi.c projects/armv6/sys/dev/acpica/acpi_ec.c projects/armv6/sys/dev/acpica/acpi_hpet.c projects/armv6/sys/dev/acpica/acpi_pcib_acpi.c projects/armv6/sys/dev/acpica/acpi_timer.c projects/armv6/sys/dev/acpica/acpivar.h projects/armv6/sys/dev/ahci/ahci.c projects/armv6/sys/dev/ahci/ahci.h projects/armv6/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l projects/armv6/sys/dev/aic7xxx/aicasm/aicasm_scan.l projects/armv6/sys/dev/amdtemp/amdtemp.c projects/armv6/sys/dev/an/if_an.c projects/armv6/sys/dev/arcmsr/arcmsr.c projects/armv6/sys/dev/ata/ata-all.c projects/armv6/sys/dev/ata/ata-all.h projects/armv6/sys/dev/ata/ata-card.c projects/armv6/sys/dev/ata/ata-cbus.c projects/armv6/sys/dev/ata/ata-disk.c projects/armv6/sys/dev/ata/ata-disk.h projects/armv6/sys/dev/ata/ata-dma.c projects/armv6/sys/dev/ata/ata-isa.c projects/armv6/sys/dev/ata/ata-lowlevel.c projects/armv6/sys/dev/ata/ata-pci.c projects/armv6/sys/dev/ata/ata-pci.h projects/armv6/sys/dev/ata/ata-queue.c projects/armv6/sys/dev/ata/ata-raid.c projects/armv6/sys/dev/ata/ata-raid.h projects/armv6/sys/dev/ata/ata-sata.c projects/armv6/sys/dev/ata/ata_if.m projects/armv6/sys/dev/ata/atapi-cam.c projects/armv6/sys/dev/ata/atapi-cd.c projects/armv6/sys/dev/ata/atapi-cd.h projects/armv6/sys/dev/ata/atapi-fd.c projects/armv6/sys/dev/ata/atapi-fd.h projects/armv6/sys/dev/ata/atapi-tape.c projects/armv6/sys/dev/ata/atapi-tape.h projects/armv6/sys/dev/ata/chipsets/ata-acard.c projects/armv6/sys/dev/ata/chipsets/ata-acerlabs.c projects/armv6/sys/dev/ata/chipsets/ata-adaptec.c projects/armv6/sys/dev/ata/chipsets/ata-ahci.c projects/armv6/sys/dev/ata/chipsets/ata-amd.c projects/armv6/sys/dev/ata/chipsets/ata-ati.c projects/armv6/sys/dev/ata/chipsets/ata-cenatek.c projects/armv6/sys/dev/ata/chipsets/ata-cypress.c projects/armv6/sys/dev/ata/chipsets/ata-cyrix.c projects/armv6/sys/dev/ata/chipsets/ata-highpoint.c projects/armv6/sys/dev/ata/chipsets/ata-intel.c projects/armv6/sys/dev/ata/chipsets/ata-ite.c projects/armv6/sys/dev/ata/chipsets/ata-jmicron.c projects/armv6/sys/dev/ata/chipsets/ata-marvell.c projects/armv6/sys/dev/ata/chipsets/ata-micron.c projects/armv6/sys/dev/ata/chipsets/ata-national.c projects/armv6/sys/dev/ata/chipsets/ata-netcell.c projects/armv6/sys/dev/ata/chipsets/ata-nvidia.c projects/armv6/sys/dev/ata/chipsets/ata-promise.c projects/armv6/sys/dev/ata/chipsets/ata-serverworks.c projects/armv6/sys/dev/ata/chipsets/ata-siliconimage.c projects/armv6/sys/dev/ata/chipsets/ata-sis.c projects/armv6/sys/dev/ata/chipsets/ata-via.c projects/armv6/sys/dev/ath/ath_dfs/null/dfs_null.c projects/armv6/sys/dev/ath/ath_hal/ah.c projects/armv6/sys/dev/ath/ath_hal/ah.h projects/armv6/sys/dev/ath/ath_hal/ah_desc.h projects/armv6/sys/dev/ath/ath_hal/ah_internal.h projects/armv6/sys/dev/ath/ath_hal/ar5210/ar5210_attach.c projects/armv6/sys/dev/ath/ath_hal/ar5210/ar5210reg.h projects/armv6/sys/dev/ath/ath_hal/ar5211/ar5211_attach.c projects/armv6/sys/dev/ath/ath_hal/ar5211/ar5211reg.h projects/armv6/sys/dev/ath/ath_hal/ar5212/ar5212.h projects/armv6/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c projects/armv6/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c projects/armv6/sys/dev/ath/ath_hal/ar5416/ar2133.c projects/armv6/sys/dev/ath/ath_hal/ar5416/ar5416.h projects/armv6/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c projects/armv6/sys/dev/ath/ath_hal/ar5416/ar5416_gpio.c projects/armv6/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c projects/armv6/sys/dev/ath/ath_hal/ar5416/ar5416reg.h projects/armv6/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c projects/armv6/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.c projects/armv6/sys/dev/ath/ath_hal/ar9001/ar9130_eeprom.h projects/armv6/sys/dev/ath/ath_hal/ar9002/ar9280.c projects/armv6/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c projects/armv6/sys/dev/ath/ath_hal/ar9002/ar9285.c projects/armv6/sys/dev/ath/ath_hal/ar9002/ar9287.c projects/armv6/sys/dev/ath/ath_hal/ar9002/ar9287.h projects/armv6/sys/dev/ath/if_ath.c projects/armv6/sys/dev/ath/if_ath_sysctl.c projects/armv6/sys/dev/ath/if_ath_tx.c projects/armv6/sys/dev/ath/if_athdfs.h projects/armv6/sys/dev/ath/if_athvar.h projects/armv6/sys/dev/bce/if_bce.c projects/armv6/sys/dev/bce/if_bcereg.h projects/armv6/sys/dev/bfe/if_bfe.c projects/armv6/sys/dev/bge/if_bge.c projects/armv6/sys/dev/bge/if_bgereg.h projects/armv6/sys/dev/bm/if_bm.c projects/armv6/sys/dev/bwi/if_bwi.c projects/armv6/sys/dev/bwn/if_bwn.c projects/armv6/sys/dev/bwn/if_bwnvar.h projects/armv6/sys/dev/bxe/bxe_hsi.h projects/armv6/sys/dev/bxe/bxe_reg.h projects/armv6/sys/dev/bxe/if_bxe.c projects/armv6/sys/dev/ce/if_ce.c projects/armv6/sys/dev/cfe/cfe_console.c projects/armv6/sys/dev/ciss/ciss.c projects/armv6/sys/dev/cm/smc90cx6.c projects/armv6/sys/dev/cp/if_cp.c projects/armv6/sys/dev/cpuctl/cpuctl.c projects/armv6/sys/dev/cxgb/common/cxgb_aq100x.c projects/armv6/sys/dev/cxgb/cxgb_adapter.h projects/armv6/sys/dev/cxgb/cxgb_main.c projects/armv6/sys/dev/cxgb/cxgb_sge.c projects/armv6/sys/dev/cxgbe/adapter.h projects/armv6/sys/dev/cxgbe/common/common.h projects/armv6/sys/dev/cxgbe/common/t4_hw.c projects/armv6/sys/dev/cxgbe/common/t4_hw.h projects/armv6/sys/dev/cxgbe/offload.h projects/armv6/sys/dev/cxgbe/osdep.h projects/armv6/sys/dev/cxgbe/t4_ioctl.h projects/armv6/sys/dev/cxgbe/t4_l2t.c projects/armv6/sys/dev/cxgbe/t4_l2t.h projects/armv6/sys/dev/cxgbe/t4_main.c projects/armv6/sys/dev/cxgbe/t4_sge.c projects/armv6/sys/dev/dcons/dcons_os.c projects/armv6/sys/dev/de/if_de.c projects/armv6/sys/dev/drm/i915_drv.h projects/armv6/sys/dev/drm/mga_drv.h projects/armv6/sys/dev/drm/radeon_state.c projects/armv6/sys/dev/e1000/README projects/armv6/sys/dev/e1000/e1000_80003es2lan.c projects/armv6/sys/dev/e1000/e1000_80003es2lan.h projects/armv6/sys/dev/e1000/e1000_82540.c projects/armv6/sys/dev/e1000/e1000_82541.c projects/armv6/sys/dev/e1000/e1000_82543.c projects/armv6/sys/dev/e1000/e1000_82571.c projects/armv6/sys/dev/e1000/e1000_82575.c projects/armv6/sys/dev/e1000/e1000_82575.h projects/armv6/sys/dev/e1000/e1000_api.c projects/armv6/sys/dev/e1000/e1000_api.h projects/armv6/sys/dev/e1000/e1000_defines.h projects/armv6/sys/dev/e1000/e1000_hw.h projects/armv6/sys/dev/e1000/e1000_ich8lan.c projects/armv6/sys/dev/e1000/e1000_ich8lan.h projects/armv6/sys/dev/e1000/e1000_mac.c projects/armv6/sys/dev/e1000/e1000_nvm.c projects/armv6/sys/dev/e1000/e1000_nvm.h projects/armv6/sys/dev/e1000/e1000_osdep.h projects/armv6/sys/dev/e1000/e1000_phy.c projects/armv6/sys/dev/e1000/e1000_phy.h projects/armv6/sys/dev/e1000/e1000_regs.h projects/armv6/sys/dev/e1000/e1000_vf.c projects/armv6/sys/dev/e1000/if_em.c projects/armv6/sys/dev/e1000/if_em.h projects/armv6/sys/dev/e1000/if_igb.c projects/armv6/sys/dev/e1000/if_igb.h projects/armv6/sys/dev/e1000/if_lem.c projects/armv6/sys/dev/e1000/if_lem.h projects/armv6/sys/dev/ed/if_ed.c projects/armv6/sys/dev/ep/if_ep.c projects/armv6/sys/dev/esp/ncr53c9x.c projects/armv6/sys/dev/et/if_et.c projects/armv6/sys/dev/et/if_etreg.h projects/armv6/sys/dev/et/if_etvar.h projects/armv6/sys/dev/ex/if_ex.c projects/armv6/sys/dev/ex/if_exreg.h projects/armv6/sys/dev/fb/boot_font.c projects/armv6/sys/dev/fb/splash_pcx.c projects/armv6/sys/dev/fb/vesa.c projects/armv6/sys/dev/fb/vesa.h projects/armv6/sys/dev/fb/vga.c projects/armv6/sys/dev/fdc/fdc.c projects/armv6/sys/dev/fdt/fdt_common.c projects/armv6/sys/dev/fdt/fdt_pci.c projects/armv6/sys/dev/fdt/fdt_powerpc.c projects/armv6/sys/dev/fdt/fdtbus.c projects/armv6/sys/dev/fdt/simplebus.c projects/armv6/sys/dev/fe/if_fe.c projects/armv6/sys/dev/firewire/if_fwe.c projects/armv6/sys/dev/firewire/sbp_targ.c projects/armv6/sys/dev/flash/mx25l.c projects/armv6/sys/dev/fxp/if_fxp.c projects/armv6/sys/dev/gpio/gpioiic.c projects/armv6/sys/dev/hptmv/readme.txt projects/armv6/sys/dev/hwpmc/hwpmc_amd.c projects/armv6/sys/dev/hwpmc/hwpmc_core.c projects/armv6/sys/dev/hwpmc/hwpmc_powerpc.c projects/armv6/sys/dev/hwpmc/hwpmc_uncore.c projects/armv6/sys/dev/hwpmc/hwpmc_uncore.h projects/armv6/sys/dev/hwpmc/hwpmc_x86.c projects/armv6/sys/dev/hwpmc/pmc_events.h projects/armv6/sys/dev/ichwd/ichwd.c projects/armv6/sys/dev/ichwd/ichwd.h projects/armv6/sys/dev/ie/if_ie.c projects/armv6/sys/dev/ieee488/ibfoo.c projects/armv6/sys/dev/ieee488/pcii.c projects/armv6/sys/dev/ieee488/upd7210.c projects/armv6/sys/dev/ieee488/upd7210.h projects/armv6/sys/dev/if_ndis/if_ndis.c projects/armv6/sys/dev/if_ndis/if_ndis_pccard.c projects/armv6/sys/dev/iicbus/iicbb.c projects/armv6/sys/dev/iicbus/iicbus.c projects/armv6/sys/dev/iicbus/iicbus.h projects/armv6/sys/dev/iicbus/iiconf.c projects/armv6/sys/dev/ipw/if_ipw.c projects/armv6/sys/dev/iscsi/initiator/isc_sm.c projects/armv6/sys/dev/isp/isp_freebsd.c projects/armv6/sys/dev/isp/isp_freebsd.h projects/armv6/sys/dev/iwi/if_iwi.c projects/armv6/sys/dev/iwn/if_iwn.c projects/armv6/sys/dev/ixgb/if_ixgb.c projects/armv6/sys/dev/ixgbe/ixgbe.c projects/armv6/sys/dev/ixgbe/ixgbe.h projects/armv6/sys/dev/ixgbe/ixgbe_82598.c projects/armv6/sys/dev/ixgbe/ixgbe_82599.c projects/armv6/sys/dev/ixgbe/ixgbe_api.c projects/armv6/sys/dev/ixgbe/ixgbe_api.h projects/armv6/sys/dev/ixgbe/ixgbe_common.c projects/armv6/sys/dev/ixgbe/ixgbe_common.h projects/armv6/sys/dev/ixgbe/ixgbe_mbx.c projects/armv6/sys/dev/ixgbe/ixgbe_mbx.h projects/armv6/sys/dev/ixgbe/ixgbe_osdep.h projects/armv6/sys/dev/ixgbe/ixgbe_phy.c projects/armv6/sys/dev/ixgbe/ixgbe_phy.h projects/armv6/sys/dev/ixgbe/ixgbe_type.h projects/armv6/sys/dev/ixgbe/ixgbe_vf.c projects/armv6/sys/dev/ixgbe/ixgbe_vf.h projects/armv6/sys/dev/ixgbe/ixv.c projects/armv6/sys/dev/ixgbe/ixv.h projects/armv6/sys/dev/lge/if_lge.c projects/armv6/sys/dev/malo/if_malo.c projects/armv6/sys/dev/md/md.c projects/armv6/sys/dev/mii/brgphy.c projects/armv6/sys/dev/mii/mii.c projects/armv6/sys/dev/mii/miidevs projects/armv6/sys/dev/mii/nsphyter.c projects/armv6/sys/dev/mii/smcphy.c projects/armv6/sys/dev/mps/mpi/mpi2.h projects/armv6/sys/dev/mps/mpi/mpi2_cnfg.h projects/armv6/sys/dev/mps/mpi/mpi2_hbd.h projects/armv6/sys/dev/mps/mpi/mpi2_history.txt projects/armv6/sys/dev/mps/mpi/mpi2_init.h projects/armv6/sys/dev/mps/mpi/mpi2_ioc.h projects/armv6/sys/dev/mps/mpi/mpi2_ra.h projects/armv6/sys/dev/mps/mpi/mpi2_raid.h projects/armv6/sys/dev/mps/mpi/mpi2_sas.h projects/armv6/sys/dev/mps/mpi/mpi2_targ.h projects/armv6/sys/dev/mps/mpi/mpi2_tool.h projects/armv6/sys/dev/mps/mpi/mpi2_type.h projects/armv6/sys/dev/mps/mps.c projects/armv6/sys/dev/mps/mps_ioctl.h projects/armv6/sys/dev/mps/mps_pci.c projects/armv6/sys/dev/mps/mps_sas.c projects/armv6/sys/dev/mps/mps_table.c projects/armv6/sys/dev/mps/mps_user.c projects/armv6/sys/dev/mps/mpsvar.h projects/armv6/sys/dev/mpt/mpilib/mpi_type.h projects/armv6/sys/dev/mpt/mpt.c projects/armv6/sys/dev/mpt/mpt.h projects/armv6/sys/dev/mpt/mpt_cam.c projects/armv6/sys/dev/mpt/mpt_pci.c projects/armv6/sys/dev/mpt/mpt_reg.h projects/armv6/sys/dev/msk/if_msk.c projects/armv6/sys/dev/mvs/mvs.h projects/armv6/sys/dev/mvs/mvs_soc.c projects/armv6/sys/dev/mwl/if_mwl.c projects/armv6/sys/dev/mxge/if_mxge.c projects/armv6/sys/dev/my/if_my.c projects/armv6/sys/dev/netmap/if_em_netmap.h projects/armv6/sys/dev/netmap/if_igb_netmap.h projects/armv6/sys/dev/netmap/if_lem_netmap.h projects/armv6/sys/dev/netmap/if_re_netmap.h projects/armv6/sys/dev/netmap/ixgbe_netmap.h projects/armv6/sys/dev/netmap/netmap.c projects/armv6/sys/dev/netmap/netmap_kern.h projects/armv6/sys/dev/nfe/if_nfe.c projects/armv6/sys/dev/null/null.c projects/armv6/sys/dev/nve/if_nve.c projects/armv6/sys/dev/nxge/include/xgehal-channel.h projects/armv6/sys/dev/nxge/include/xgehal-config.h projects/armv6/sys/dev/nxge/xgehal/xgehal-fifo-fp.c projects/armv6/sys/dev/ofw/ofw_console.c projects/armv6/sys/dev/ofw/ofw_fdt.c projects/armv6/sys/dev/ofw/openfirm.c projects/armv6/sys/dev/pccard/pccardvar.h projects/armv6/sys/dev/pccbb/pccbb.c projects/armv6/sys/dev/pci/isa_pci.c projects/armv6/sys/dev/pci/pci.c projects/armv6/sys/dev/pci/pcireg.h projects/armv6/sys/dev/pst/pst-iop.c projects/armv6/sys/dev/pst/pst-iop.h projects/armv6/sys/dev/pst/pst-pci.c projects/armv6/sys/dev/pst/pst-raid.c projects/armv6/sys/dev/qlxgb/qla_misc.c projects/armv6/sys/dev/qlxgb/qla_os.c projects/armv6/sys/dev/ral/rt2560.c projects/armv6/sys/dev/ral/rt2661.c projects/armv6/sys/dev/random/harvest.c projects/armv6/sys/dev/random/nehemiah.c projects/armv6/sys/dev/random/probe.c projects/armv6/sys/dev/re/if_re.c projects/armv6/sys/dev/rt/if_rt.c projects/armv6/sys/dev/sdhci/sdhci.c projects/armv6/sys/dev/sdhci/sdhci.h projects/armv6/sys/dev/sf/if_sf.c projects/armv6/sys/dev/sf/if_sfreg.h projects/armv6/sys/dev/sfxge/sfxge_port.c projects/armv6/sys/dev/sio/sio.c projects/armv6/sys/dev/sis/if_sis.c projects/armv6/sys/dev/sk/if_sk.c projects/armv6/sys/dev/sn/if_sn.c projects/armv6/sys/dev/snc/dp83932.c projects/armv6/sys/dev/sound/pci/csa.c projects/armv6/sys/dev/sound/pci/csareg.h projects/armv6/sys/dev/sound/pci/ds1-fw.h projects/armv6/sys/dev/sound/pci/emu10k1.c projects/armv6/sys/dev/sound/pci/emu10kx-midi.c projects/armv6/sys/dev/sound/pci/emu10kx-pcm.c projects/armv6/sys/dev/sound/pci/emu10kx.c projects/armv6/sys/dev/sound/pci/emu10kx.h projects/armv6/sys/dev/sound/pci/hda/hda_reg.h projects/armv6/sys/dev/sound/pci/hda/hdac.c projects/armv6/sys/dev/sound/pci/hda/hdac.h projects/armv6/sys/dev/sound/pci/hda/hdac_private.h projects/armv6/sys/dev/sound/pci/hda/hdac_reg.h projects/armv6/sys/dev/sound/pci/maestro3.c projects/armv6/sys/dev/sound/pcm/buffer.c projects/armv6/sys/dev/sound/pcm/buffer.h projects/armv6/sys/dev/sound/pcm/channel.c projects/armv6/sys/dev/sound/pcm/mixer.c projects/armv6/sys/dev/sound/pcm/sound.c projects/armv6/sys/dev/sound/usb/uaudio.c projects/armv6/sys/dev/sound/usb/uaudio.h projects/armv6/sys/dev/speaker/spkr.c projects/armv6/sys/dev/spibus/spibusvar.h projects/armv6/sys/dev/stge/if_stge.c projects/armv6/sys/dev/syscons/blank/blank_saver.c projects/armv6/sys/dev/syscons/fade/fade_saver.c projects/armv6/sys/dev/syscons/green/green_saver.c projects/armv6/sys/dev/syscons/logo/logo_saver.c projects/armv6/sys/dev/syscons/rain/rain_saver.c projects/armv6/sys/dev/syscons/schistory.c projects/armv6/sys/dev/syscons/snake/snake_saver.c projects/armv6/sys/dev/syscons/star/star_saver.c projects/armv6/sys/dev/syscons/syscons.c projects/armv6/sys/dev/syscons/syscons.h projects/armv6/sys/dev/syscons/warp/warp_saver.c projects/armv6/sys/dev/ti/if_ti.c projects/armv6/sys/dev/tl/if_tl.c projects/armv6/sys/dev/tsec/if_tsec.c projects/armv6/sys/dev/twa/tw_osl.h projects/armv6/sys/dev/tws/tws.c projects/armv6/sys/dev/tws/tws.h projects/armv6/sys/dev/uart/uart_bus_fdt.c projects/armv6/sys/dev/uart/uart_bus_pci.c projects/armv6/sys/dev/uart/uart_cpu_sparc64.c projects/armv6/sys/dev/uart/uart_subr.c projects/armv6/sys/dev/uart/uart_tty.c projects/armv6/sys/dev/usb/controller/at91dci.c projects/armv6/sys/dev/usb/controller/at91dci.h projects/armv6/sys/dev/usb/controller/at91dci_atmelarm.c projects/armv6/sys/dev/usb/controller/atmegadci.c projects/armv6/sys/dev/usb/controller/atmegadci.h projects/armv6/sys/dev/usb/controller/atmegadci_atmelarm.c projects/armv6/sys/dev/usb/controller/avr32dci.c projects/armv6/sys/dev/usb/controller/avr32dci.h projects/armv6/sys/dev/usb/controller/ehci.c projects/armv6/sys/dev/usb/controller/ehci.h projects/armv6/sys/dev/usb/controller/ehci_ixp4xx.c projects/armv6/sys/dev/usb/controller/ehci_mv.c projects/armv6/sys/dev/usb/controller/ehci_pci.c projects/armv6/sys/dev/usb/controller/musb_otg.c projects/armv6/sys/dev/usb/controller/musb_otg.h projects/armv6/sys/dev/usb/controller/musb_otg_atmelarm.c projects/armv6/sys/dev/usb/controller/ohci.c projects/armv6/sys/dev/usb/controller/ohci.h projects/armv6/sys/dev/usb/controller/ohci_atmelarm.c projects/armv6/sys/dev/usb/controller/ohci_pci.c projects/armv6/sys/dev/usb/controller/ohci_s3c24x0.c projects/armv6/sys/dev/usb/controller/uhci.c projects/armv6/sys/dev/usb/controller/uhci.h projects/armv6/sys/dev/usb/controller/uhci_pci.c projects/armv6/sys/dev/usb/controller/usb_controller.c projects/armv6/sys/dev/usb/controller/uss820dci.c projects/armv6/sys/dev/usb/controller/uss820dci.h projects/armv6/sys/dev/usb/controller/uss820dci_atmelarm.c projects/armv6/sys/dev/usb/controller/xhci.c projects/armv6/sys/dev/usb/controller/xhci.h projects/armv6/sys/dev/usb/controller/xhci_pci.c projects/armv6/sys/dev/usb/controller/xhcireg.h projects/armv6/sys/dev/usb/input/ukbd.c projects/armv6/sys/dev/usb/net/if_axe.c projects/armv6/sys/dev/usb/net/usb_ethernet.c projects/armv6/sys/dev/usb/quirk/usb_quirk.c projects/armv6/sys/dev/usb/serial/u3g.c projects/armv6/sys/dev/usb/serial/ucycom.c projects/armv6/sys/dev/usb/serial/uftdi.c projects/armv6/sys/dev/usb/serial/usb_serial.c projects/armv6/sys/dev/usb/serial/usb_serial.h projects/armv6/sys/dev/usb/template/usb_template.c projects/armv6/sys/dev/usb/template/usb_template_kbd.c projects/armv6/sys/dev/usb/template/usb_template_modem.c projects/armv6/sys/dev/usb/template/usb_template_mouse.c projects/armv6/sys/dev/usb/usb.h projects/armv6/sys/dev/usb/usb_bus.h projects/armv6/sys/dev/usb/usb_controller.h projects/armv6/sys/dev/usb/usb_dev.c projects/armv6/sys/dev/usb/usb_hub.c projects/armv6/sys/dev/usb/usb_if.m projects/armv6/sys/dev/usb/usb_msctest.c projects/armv6/sys/dev/usb/usb_request.c projects/armv6/sys/dev/usb/usb_request.h projects/armv6/sys/dev/usb/usb_transfer.c projects/armv6/sys/dev/usb/usbdevs projects/armv6/sys/dev/usb/wlan/if_rum.c projects/armv6/sys/dev/usb/wlan/if_run.c projects/armv6/sys/dev/usb/wlan/if_uath.c projects/armv6/sys/dev/usb/wlan/if_upgt.c projects/armv6/sys/dev/usb/wlan/if_ural.c projects/armv6/sys/dev/usb/wlan/if_urtw.c projects/armv6/sys/dev/usb/wlan/if_zyd.c projects/armv6/sys/dev/vge/if_vge.c projects/armv6/sys/dev/virtio/balloon/virtio_balloon.c projects/armv6/sys/dev/virtio/balloon/virtio_balloon.h projects/armv6/sys/dev/virtio/block/virtio_blk.c projects/armv6/sys/dev/virtio/block/virtio_blk.h projects/armv6/sys/dev/virtio/network/if_vtnet.c projects/armv6/sys/dev/virtio/network/if_vtnetvar.h projects/armv6/sys/dev/virtio/network/virtio_net.h projects/armv6/sys/dev/virtio/pci/virtio_pci.h projects/armv6/sys/dev/virtio/virtio.h projects/armv6/sys/dev/virtio/virtio_ring.h projects/armv6/sys/dev/vx/if_vx.c projects/armv6/sys/dev/vxge/include/vxgehal-ll.h projects/armv6/sys/dev/vxge/vxge-osdep.h projects/armv6/sys/dev/vxge/vxge.c projects/armv6/sys/dev/wb/if_wb.c projects/armv6/sys/dev/wi/if_wi.c projects/armv6/sys/dev/wpi/if_wpi.c projects/armv6/sys/dev/xen/blkback/blkback.c projects/armv6/sys/dev/xen/blkfront/blkfront.c projects/armv6/sys/dev/xen/blkfront/block.h projects/armv6/sys/dev/xen/console/console.c projects/armv6/sys/dev/xen/netback/netback.c projects/armv6/sys/dev/xen/netfront/netfront.c projects/armv6/sys/dev/xen/xenpci/evtchn.c projects/armv6/sys/fs/cd9660/cd9660_vfsops.c projects/armv6/sys/fs/cd9660/cd9660_vnops.c projects/armv6/sys/fs/devfs/devfs.h projects/armv6/sys/fs/devfs/devfs_devs.c projects/armv6/sys/fs/devfs/devfs_rule.c projects/armv6/sys/fs/devfs/devfs_vfsops.c projects/armv6/sys/fs/devfs/devfs_vnops.c projects/armv6/sys/fs/ext2fs/ext2_alloc.c projects/armv6/sys/fs/ext2fs/ext2_balloc.c projects/armv6/sys/fs/ext2fs/ext2_bmap.c projects/armv6/sys/fs/ext2fs/ext2_dinode.h projects/armv6/sys/fs/ext2fs/ext2_extern.h projects/armv6/sys/fs/ext2fs/ext2_inode.c projects/armv6/sys/fs/ext2fs/ext2_lookup.c projects/armv6/sys/fs/ext2fs/ext2_subr.c projects/armv6/sys/fs/ext2fs/ext2_vfsops.c projects/armv6/sys/fs/ext2fs/ext2_vnops.c projects/armv6/sys/fs/ext2fs/ext2fs.h projects/armv6/sys/fs/ext2fs/fs.h projects/armv6/sys/fs/ext2fs/inode.h projects/armv6/sys/fs/fdescfs/fdesc_vfsops.c projects/armv6/sys/fs/fifofs/fifo.h projects/armv6/sys/fs/fifofs/fifo_vnops.c projects/armv6/sys/fs/hpfs/hpfs_vfsops.c projects/armv6/sys/fs/msdosfs/msdosfs_conv.c projects/armv6/sys/fs/msdosfs/msdosfs_denode.c projects/armv6/sys/fs/msdosfs/msdosfs_lookup.c projects/armv6/sys/fs/msdosfs/msdosfs_vfsops.c projects/armv6/sys/fs/msdosfs/msdosfs_vnops.c projects/armv6/sys/fs/nfs/nfs_commonkrpc.c projects/armv6/sys/fs/nfs/nfs_commonport.c projects/armv6/sys/fs/nfs/nfs_commonsubs.c projects/armv6/sys/fs/nfs/nfsclstate.h projects/armv6/sys/fs/nfs/nfsport.h projects/armv6/sys/fs/nfsclient/nfs_clbio.c projects/armv6/sys/fs/nfsclient/nfs_clkrpc.c projects/armv6/sys/fs/nfsclient/nfs_clnode.c projects/armv6/sys/fs/nfsclient/nfs_clport.c projects/armv6/sys/fs/nfsclient/nfs_clrpcops.c projects/armv6/sys/fs/nfsclient/nfs_clstate.c projects/armv6/sys/fs/nfsclient/nfs_clvfsops.c projects/armv6/sys/fs/nfsclient/nfs_clvnops.c projects/armv6/sys/fs/nfsclient/nfsmount.h projects/armv6/sys/fs/nfsclient/nfsnode.h projects/armv6/sys/fs/nfsserver/nfs_nfsdcache.c projects/armv6/sys/fs/nfsserver/nfs_nfsdport.c projects/armv6/sys/fs/nfsserver/nfs_nfsdstate.c projects/armv6/sys/fs/nfsserver/nfs_nfsdsubs.c projects/armv6/sys/fs/ntfs/ntfs.h projects/armv6/sys/fs/ntfs/ntfs_compr.c projects/armv6/sys/fs/ntfs/ntfs_subr.c projects/armv6/sys/fs/ntfs/ntfs_subr.h projects/armv6/sys/fs/ntfs/ntfs_vfsops.c projects/armv6/sys/fs/ntfs/ntfs_vnops.c projects/armv6/sys/fs/nullfs/null_subr.c projects/armv6/sys/fs/nullfs/null_vfsops.c projects/armv6/sys/fs/nullfs/null_vnops.c projects/armv6/sys/fs/nwfs/nwfs_io.c projects/armv6/sys/fs/nwfs/nwfs_vfsops.c projects/armv6/sys/fs/nwfs/nwfs_vnops.c projects/armv6/sys/fs/portalfs/portal_vfsops.c projects/armv6/sys/fs/procfs/procfs.c projects/armv6/sys/fs/procfs/procfs_ioctl.c projects/armv6/sys/fs/procfs/procfs_status.c projects/armv6/sys/fs/pseudofs/pseudofs.c projects/armv6/sys/fs/pseudofs/pseudofs.h projects/armv6/sys/fs/pseudofs/pseudofs_fileno.c projects/armv6/sys/fs/pseudofs/pseudofs_internal.h projects/armv6/sys/fs/pseudofs/pseudofs_vncache.c projects/armv6/sys/fs/pseudofs/pseudofs_vnops.c projects/armv6/sys/fs/smbfs/smbfs_io.c projects/armv6/sys/fs/smbfs/smbfs_vfsops.c projects/armv6/sys/fs/smbfs/smbfs_vnops.c projects/armv6/sys/fs/tmpfs/tmpfs.h projects/armv6/sys/fs/tmpfs/tmpfs_subr.c projects/armv6/sys/fs/tmpfs/tmpfs_vfsops.c projects/armv6/sys/fs/tmpfs/tmpfs_vnops.c projects/armv6/sys/fs/udf/udf_vnops.c projects/armv6/sys/gdb/gdb_cons.c projects/armv6/sys/geom/eli/g_eli.c projects/armv6/sys/geom/geom_bsd.c projects/armv6/sys/geom/geom_mbr.c projects/armv6/sys/geom/geom_pc98.c projects/armv6/sys/geom/geom_vfs.c projects/armv6/sys/geom/journal/g_journal.c projects/armv6/sys/geom/mountver/g_mountver.c projects/armv6/sys/geom/part/g_part.c projects/armv6/sys/geom/part/g_part_apm.c projects/armv6/sys/geom/part/g_part_ebr.c projects/armv6/sys/geom/part/g_part_mbr.c projects/armv6/sys/geom/raid/md_intel.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_fs.h projects/armv6/sys/gnu/fs/reiserfs/reiserfs_fs_i.h projects/armv6/sys/gnu/fs/reiserfs/reiserfs_fs_sb.h projects/armv6/sys/gnu/fs/reiserfs/reiserfs_hashes.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_inode.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_item_ops.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_mount.h projects/armv6/sys/gnu/fs/reiserfs/reiserfs_namei.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_prints.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_stree.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/armv6/sys/gnu/fs/reiserfs/reiserfs_vnops.c projects/armv6/sys/gnu/fs/xfs/xfs_vfsops.c projects/armv6/sys/i386/conf/GENERIC projects/armv6/sys/i386/conf/NOTES projects/armv6/sys/i386/conf/PAE projects/armv6/sys/i386/conf/XEN projects/armv6/sys/i386/i386/initcpu.c projects/armv6/sys/i386/i386/locore.s projects/armv6/sys/i386/i386/machdep.c projects/armv6/sys/i386/i386/mp_machdep.c projects/armv6/sys/i386/i386/pmap.c projects/armv6/sys/i386/i386/sys_machdep.c projects/armv6/sys/i386/ibcs2/coff.h projects/armv6/sys/i386/ibcs2/ibcs2_isc.c projects/armv6/sys/i386/ibcs2/ibcs2_socksys.c projects/armv6/sys/i386/ibcs2/ibcs2_stat.c projects/armv6/sys/i386/ibcs2/ibcs2_sysi86.c projects/armv6/sys/i386/ibcs2/ibcs2_xenix.c projects/armv6/sys/i386/ibcs2/imgact_coff.c projects/armv6/sys/i386/include/_types.h projects/armv6/sys/i386/include/asm.h projects/armv6/sys/i386/include/float.h projects/armv6/sys/i386/include/npx.h projects/armv6/sys/i386/include/pcaudioio.h projects/armv6/sys/i386/include/ptrace.h projects/armv6/sys/i386/include/signal.h projects/armv6/sys/i386/include/specialreg.h projects/armv6/sys/i386/include/sysarch.h projects/armv6/sys/i386/include/ucontext.h projects/armv6/sys/i386/include/vmparam.h projects/armv6/sys/i386/include/xen/xenpmap.h projects/armv6/sys/i386/include/xen/xenvar.h projects/armv6/sys/i386/isa/npx.c projects/armv6/sys/i386/linux/imgact_linux.c projects/armv6/sys/i386/linux/linux.h projects/armv6/sys/i386/linux/linux_dummy.c projects/armv6/sys/i386/linux/linux_proto.h projects/armv6/sys/i386/linux/linux_syscall.h projects/armv6/sys/i386/linux/linux_syscalls.c projects/armv6/sys/i386/linux/linux_sysent.c projects/armv6/sys/i386/linux/linux_systrace_args.c projects/armv6/sys/i386/linux/linux_sysvec.c projects/armv6/sys/i386/linux/syscalls.master projects/armv6/sys/i386/xen/mp_machdep.c projects/armv6/sys/i386/xen/pmap.c projects/armv6/sys/ia64/conf/GENERIC projects/armv6/sys/ia64/ia64/ssc.c projects/armv6/sys/ia64/ia64/uma_machdep.c projects/armv6/sys/ia64/ia64/vm_machdep.c projects/armv6/sys/ia64/include/_types.h projects/armv6/sys/ia64/include/float.h projects/armv6/sys/kern/imgact_elf.c projects/armv6/sys/kern/imgact_gzip.c projects/armv6/sys/kern/init_main.c projects/armv6/sys/kern/kern_conf.c projects/armv6/sys/kern/kern_cons.c projects/armv6/sys/kern/kern_cpuset.c projects/armv6/sys/kern/kern_ctf.c projects/armv6/sys/kern/kern_exec.c projects/armv6/sys/kern/kern_exit.c projects/armv6/sys/kern/kern_ffclock.c projects/armv6/sys/kern/kern_fork.c projects/armv6/sys/kern/kern_gzio.c projects/armv6/sys/kern/kern_intr.c projects/armv6/sys/kern/kern_jail.c projects/armv6/sys/kern/kern_kthread.c projects/armv6/sys/kern/kern_ktr.c projects/armv6/sys/kern/kern_ktrace.c projects/armv6/sys/kern/kern_linker.c projects/armv6/sys/kern/kern_lock.c projects/armv6/sys/kern/kern_malloc.c projects/armv6/sys/kern/kern_mutex.c projects/armv6/sys/kern/kern_ntptime.c projects/armv6/sys/kern/kern_proc.c projects/armv6/sys/kern/kern_prot.c projects/armv6/sys/kern/kern_racct.c projects/armv6/sys/kern/kern_resource.c projects/armv6/sys/kern/kern_rmlock.c projects/armv6/sys/kern/kern_rwlock.c projects/armv6/sys/kern/kern_shutdown.c projects/armv6/sys/kern/kern_switch.c projects/armv6/sys/kern/kern_sx.c projects/armv6/sys/kern/kern_synch.c projects/armv6/sys/kern/kern_tc.c projects/armv6/sys/kern/kern_thr.c projects/armv6/sys/kern/kern_thread.c projects/armv6/sys/kern/kern_umtx.c projects/armv6/sys/kern/kern_uuid.c projects/armv6/sys/kern/link_elf.c projects/armv6/sys/kern/link_elf_obj.c projects/armv6/sys/kern/sched_4bsd.c projects/armv6/sys/kern/sched_ule.c projects/armv6/sys/kern/subr_blist.c projects/armv6/sys/kern/subr_bus.c projects/armv6/sys/kern/subr_hash.c projects/armv6/sys/kern/subr_hints.c projects/armv6/sys/kern/subr_kdb.c projects/armv6/sys/kern/subr_lock.c projects/armv6/sys/kern/subr_log.c projects/armv6/sys/kern/subr_mchain.c projects/armv6/sys/kern/subr_msgbuf.c projects/armv6/sys/kern/subr_scanf.c projects/armv6/sys/kern/subr_syscall.c projects/armv6/sys/kern/subr_uio.c projects/armv6/sys/kern/subr_witness.c projects/armv6/sys/kern/sys_generic.c projects/armv6/sys/kern/sys_pipe.c projects/armv6/sys/kern/sys_process.c projects/armv6/sys/kern/sysv_shm.c projects/armv6/sys/kern/tty.c projects/armv6/sys/kern/tty_info.c projects/armv6/sys/kern/tty_inq.c projects/armv6/sys/kern/tty_ttydisc.c projects/armv6/sys/kern/uipc_domain.c projects/armv6/sys/kern/uipc_mbuf.c projects/armv6/sys/kern/uipc_mqueue.c projects/armv6/sys/kern/uipc_shm.c projects/armv6/sys/kern/uipc_sockbuf.c projects/armv6/sys/kern/uipc_socket.c projects/armv6/sys/kern/uipc_syscalls.c projects/armv6/sys/kern/uipc_usrreq.c projects/armv6/sys/kern/vfs_aio.c projects/armv6/sys/kern/vfs_bio.c projects/armv6/sys/kern/vfs_cache.c projects/armv6/sys/kern/vfs_cluster.c projects/armv6/sys/kern/vfs_extattr.c projects/armv6/sys/kern/vfs_lookup.c projects/armv6/sys/kern/vfs_mount.c projects/armv6/sys/kern/vfs_mountroot.c projects/armv6/sys/kern/vfs_subr.c projects/armv6/sys/kern/vfs_syscalls.c projects/armv6/sys/kern/vfs_vnops.c projects/armv6/sys/kern/vnode_if.src projects/armv6/sys/libkern/fnmatch.c projects/armv6/sys/mips/adm5120/console.c projects/armv6/sys/mips/atheros/ar71xx_chip.c projects/armv6/sys/mips/atheros/ar71xx_ehci.c projects/armv6/sys/mips/atheros/ar71xx_gpio.c projects/armv6/sys/mips/atheros/ar71xx_machdep.c projects/armv6/sys/mips/atheros/ar71xx_ohci.c projects/armv6/sys/mips/atheros/ar71xx_pci.c projects/armv6/sys/mips/atheros/ar724x_chip.c projects/armv6/sys/mips/atheros/ar724x_pci.c projects/armv6/sys/mips/atheros/ar91xx_chip.c projects/armv6/sys/mips/cavium/cryptocteon/cavium_crypto.c projects/armv6/sys/mips/cavium/files.octeon1 projects/armv6/sys/mips/cavium/if_octm.c projects/armv6/sys/mips/cavium/octe/ethernet-common.c projects/armv6/sys/mips/cavium/octe/ethernet-common.h projects/armv6/sys/mips/cavium/octe/ethernet-rgmii.c projects/armv6/sys/mips/cavium/octe/ethernet-sgmii.c projects/armv6/sys/mips/cavium/octe/ethernet-spi.c projects/armv6/sys/mips/cavium/octe/ethernet-xaui.c projects/armv6/sys/mips/cavium/octe/ethernet.c projects/armv6/sys/mips/cavium/octeon_ds1337.c projects/armv6/sys/mips/cavium/octeon_machdep.c projects/armv6/sys/mips/cavium/usb/octusb.c projects/armv6/sys/mips/cavium/usb/octusb.h projects/armv6/sys/mips/cavium/usb/octusb_octeon.c projects/armv6/sys/mips/conf/AR91XX_BASE projects/armv6/sys/mips/conf/AR91XX_BASE.hints projects/armv6/sys/mips/conf/TP-WN1043ND.hints projects/armv6/sys/mips/conf/XLPN32 projects/armv6/sys/mips/include/_stdint.h projects/armv6/sys/mips/include/_types.h projects/armv6/sys/mips/include/cpuregs.h projects/armv6/sys/mips/include/db_machdep.h projects/armv6/sys/mips/include/elf.h projects/armv6/sys/mips/include/float.h projects/armv6/sys/mips/include/frame.h projects/armv6/sys/mips/include/intr_machdep.h projects/armv6/sys/mips/include/mips_opcode.h projects/armv6/sys/mips/include/proc.h projects/armv6/sys/mips/mips/db_disasm.c projects/armv6/sys/mips/mips/db_trace.c projects/armv6/sys/mips/mips/elf_machdep.c projects/armv6/sys/mips/mips/exception.S projects/armv6/sys/mips/mips/gdb_machdep.c projects/armv6/sys/mips/mips/genassym.c projects/armv6/sys/mips/mips/locore.S projects/armv6/sys/mips/mips/pm_machdep.c projects/armv6/sys/mips/mips/support.S projects/armv6/sys/mips/mips/swtch.S projects/armv6/sys/mips/mips/trap.c projects/armv6/sys/mips/mips/vm_machdep.c projects/armv6/sys/mips/nlm/hal/cpucontrol.h projects/armv6/sys/mips/nlm/xlp_machdep.c projects/armv6/sys/mips/rmi/xls_ehci.c projects/armv6/sys/mips/rt305x/rt305x_dotg.c projects/armv6/sys/modules/Makefile projects/armv6/sys/modules/acpi/acpi/Makefile projects/armv6/sys/modules/aic7xxx/ahc/ahc_pci/Makefile projects/armv6/sys/modules/aic7xxx/ahd/Makefile projects/armv6/sys/modules/asr/Makefile projects/armv6/sys/modules/ath/Makefile projects/armv6/sys/modules/ce/Makefile projects/armv6/sys/modules/cxgbe/Makefile projects/armv6/sys/modules/drm/Makefile projects/armv6/sys/modules/drm/r128/Makefile projects/armv6/sys/modules/drm/radeon/Makefile projects/armv6/sys/modules/drm/via/Makefile projects/armv6/sys/modules/ipdivert/Makefile projects/armv6/sys/modules/ipfilter/Makefile projects/armv6/sys/modules/ixgbe/Makefile projects/armv6/sys/modules/kgssapi/Makefile projects/armv6/sys/modules/kgssapi_krb5/Makefile projects/armv6/sys/modules/mii/Makefile projects/armv6/sys/modules/mps/Makefile projects/armv6/sys/modules/nve/Makefile projects/armv6/sys/modules/nxge/Makefile projects/armv6/sys/modules/pfsync/Makefile projects/armv6/sys/modules/random/Makefile projects/armv6/sys/modules/sound/driver/Makefile projects/armv6/sys/modules/sound/driver/emu10k1/Makefile projects/armv6/sys/modules/sound/driver/emu10kx/Makefile projects/armv6/sys/modules/sound/driver/hda/Makefile projects/armv6/sys/modules/splash/Makefile projects/armv6/sys/modules/usb/Makefile projects/armv6/sys/modules/wi/Makefile projects/armv6/sys/modules/wlan/Makefile projects/armv6/sys/modules/xfs/Makefile projects/armv6/sys/net/bpf.c projects/armv6/sys/net/bpf_buffer.c projects/armv6/sys/net/bpf_buffer.h projects/armv6/sys/net/bpf_zerocopy.c projects/armv6/sys/net/bpf_zerocopy.h projects/armv6/sys/net/bridgestp.c projects/armv6/sys/net/bridgestp.h projects/armv6/sys/net/flowtable.c projects/armv6/sys/net/ieee8023ad_lacp.c projects/armv6/sys/net/if.c projects/armv6/sys/net/if.h projects/armv6/sys/net/if_bridge.c projects/armv6/sys/net/if_ethersubr.c projects/armv6/sys/net/if_faith.c projects/armv6/sys/net/if_lagg.c projects/armv6/sys/net/if_lagg.h projects/armv6/sys/net/if_llatbl.c projects/armv6/sys/net/if_llatbl.h projects/armv6/sys/net/if_media.h projects/armv6/sys/net/if_types.h projects/armv6/sys/net/if_var.h projects/armv6/sys/net/if_vlan.c projects/armv6/sys/net/if_vlan_var.h projects/armv6/sys/net/netmap.h projects/armv6/sys/net/netmap_user.h projects/armv6/sys/net/route.c projects/armv6/sys/net/route.h projects/armv6/sys/net/rtsock.c projects/armv6/sys/net/zlib.h projects/armv6/sys/net80211/ieee80211.c projects/armv6/sys/net80211/ieee80211.h projects/armv6/sys/net80211/ieee80211_acl.c projects/armv6/sys/net80211/ieee80211_dfs.c projects/armv6/sys/net80211/ieee80211_dfs.h projects/armv6/sys/net80211/ieee80211_hostap.c projects/armv6/sys/net80211/ieee80211_ht.c projects/armv6/sys/net80211/ieee80211_hwmp.c projects/armv6/sys/net80211/ieee80211_ioctl.c projects/armv6/sys/net80211/ieee80211_mesh.c projects/armv6/sys/net80211/ieee80211_mesh.h projects/armv6/sys/net80211/ieee80211_node.h projects/armv6/sys/net80211/ieee80211_output.c projects/armv6/sys/net80211/ieee80211_proto.c projects/armv6/sys/net80211/ieee80211_proto.h projects/armv6/sys/net80211/ieee80211_radiotap.c projects/armv6/sys/net80211/ieee80211_radiotap.h projects/armv6/sys/net80211/ieee80211_tdma.c projects/armv6/sys/net80211/ieee80211_var.h projects/armv6/sys/netatalk/aarp.c projects/armv6/sys/netatalk/at_control.c projects/armv6/sys/netgraph/netgraph.h projects/armv6/sys/netgraph/ng_base.c projects/armv6/sys/netgraph/ng_cisco.c projects/armv6/sys/netgraph/ng_cisco.h projects/armv6/sys/netgraph/ng_device.c projects/armv6/sys/netgraph/ng_ipfw.c projects/armv6/sys/netgraph/ng_ksocket.c projects/armv6/sys/netgraph/ng_socket.c projects/armv6/sys/netgraph/ng_socketvar.h projects/armv6/sys/netgraph/ng_tag.c projects/armv6/sys/netinet/if_ether.c projects/armv6/sys/netinet/if_ether.h projects/armv6/sys/netinet/igmp.c projects/armv6/sys/netinet/in.c projects/armv6/sys/netinet/in_mcast.c projects/armv6/sys/netinet/in_pcb.c projects/armv6/sys/netinet/in_proto.c projects/armv6/sys/netinet/in_var.h projects/armv6/sys/netinet/ip_carp.c projects/armv6/sys/netinet/ip_carp.h projects/armv6/sys/netinet/ip_divert.c projects/armv6/sys/netinet/ip_gre.c projects/armv6/sys/netinet/ip_icmp.c projects/armv6/sys/netinet/ip_input.c projects/armv6/sys/netinet/ip_ipsec.c projects/armv6/sys/netinet/ip_var.h projects/armv6/sys/netinet/ipfw/dn_sched_qfq.c projects/armv6/sys/netinet/ipfw/ip_fw2.c projects/armv6/sys/netinet/ipfw/ip_fw_nat.c projects/armv6/sys/netinet/ipfw/ip_fw_sockopt.c projects/armv6/sys/netinet/raw_ip.c projects/armv6/sys/netinet/sctp.h projects/armv6/sys/netinet/sctp_asconf.c projects/armv6/sys/netinet/sctp_asconf.h projects/armv6/sys/netinet/sctp_auth.c projects/armv6/sys/netinet/sctp_auth.h projects/armv6/sys/netinet/sctp_bsd_addr.c projects/armv6/sys/netinet/sctp_bsd_addr.h projects/armv6/sys/netinet/sctp_cc_functions.c projects/armv6/sys/netinet/sctp_constants.h projects/armv6/sys/netinet/sctp_crc32.h projects/armv6/sys/netinet/sctp_dtrace_declare.h projects/armv6/sys/netinet/sctp_dtrace_define.h projects/armv6/sys/netinet/sctp_header.h projects/armv6/sys/netinet/sctp_indata.c projects/armv6/sys/netinet/sctp_indata.h projects/armv6/sys/netinet/sctp_input.c projects/armv6/sys/netinet/sctp_input.h projects/armv6/sys/netinet/sctp_os.h projects/armv6/sys/netinet/sctp_os_bsd.h projects/armv6/sys/netinet/sctp_output.c projects/armv6/sys/netinet/sctp_output.h projects/armv6/sys/netinet/sctp_pcb.c projects/armv6/sys/netinet/sctp_pcb.h projects/armv6/sys/netinet/sctp_peeloff.c projects/armv6/sys/netinet/sctp_peeloff.h projects/armv6/sys/netinet/sctp_ss_functions.c projects/armv6/sys/netinet/sctp_structs.h projects/armv6/sys/netinet/sctp_sysctl.c projects/armv6/sys/netinet/sctp_sysctl.h projects/armv6/sys/netinet/sctp_timer.c projects/armv6/sys/netinet/sctp_timer.h projects/armv6/sys/netinet/sctp_uio.h projects/armv6/sys/netinet/sctp_usrreq.c projects/armv6/sys/netinet/sctp_var.h projects/armv6/sys/netinet/sctputil.c projects/armv6/sys/netinet/sctputil.h projects/armv6/sys/netinet/tcp.h projects/armv6/sys/netinet/tcp_input.c projects/armv6/sys/netinet/tcp_output.c projects/armv6/sys/netinet/tcp_seq.h projects/armv6/sys/netinet/tcp_subr.c projects/armv6/sys/netinet/tcp_syncache.c projects/armv6/sys/netinet/tcp_timer.c projects/armv6/sys/netinet/tcp_timer.h projects/armv6/sys/netinet/tcp_timewait.c projects/armv6/sys/netinet/tcp_usrreq.c projects/armv6/sys/netinet/tcp_var.h projects/armv6/sys/netinet6/icmp6.c projects/armv6/sys/netinet6/in6.c projects/armv6/sys/netinet6/in6.h projects/armv6/sys/netinet6/in6_gif.c projects/armv6/sys/netinet6/in6_ifattach.c projects/armv6/sys/netinet6/in6_mcast.c projects/armv6/sys/netinet6/in6_proto.c projects/armv6/sys/netinet6/in6_rmx.c projects/armv6/sys/netinet6/in6_src.c projects/armv6/sys/netinet6/in6_var.h projects/armv6/sys/netinet6/ip6_forward.c projects/armv6/sys/netinet6/ip6_input.c projects/armv6/sys/netinet6/ip6_ipsec.c projects/armv6/sys/netinet6/ip6_mroute.c projects/armv6/sys/netinet6/ip6_output.c projects/armv6/sys/netinet6/ip6_var.h projects/armv6/sys/netinet6/mld6.c projects/armv6/sys/netinet6/nd6.c projects/armv6/sys/netinet6/nd6.h projects/armv6/sys/netinet6/nd6_nbr.c projects/armv6/sys/netinet6/nd6_rtr.c projects/armv6/sys/netinet6/raw_ip6.c projects/armv6/sys/netinet6/scope6_var.h projects/armv6/sys/netinet6/sctp6_usrreq.c projects/armv6/sys/netinet6/sctp6_var.h projects/armv6/sys/netipsec/ipsec_output.c projects/armv6/sys/netipsec/xform_ipip.c projects/armv6/sys/netipx/ipx.c projects/armv6/sys/nfs/bootp_subr.c projects/armv6/sys/nfsclient/nfs_bio.c projects/armv6/sys/nfsclient/nfs_krpc.c projects/armv6/sys/nfsclient/nfs_subs.c projects/armv6/sys/nfsclient/nfs_vfsops.c projects/armv6/sys/nfsclient/nfs_vnops.c projects/armv6/sys/nfsclient/nfsm_subs.h projects/armv6/sys/nfsclient/nfsmount.h projects/armv6/sys/nfsclient/nfsnode.h projects/armv6/sys/nfsserver/nfs_serv.c projects/armv6/sys/nlm/nlm_prot_impl.c projects/armv6/sys/ofed/drivers/infiniband/core/local_sa.c projects/armv6/sys/ofed/drivers/infiniband/core/notice.c projects/armv6/sys/ofed/include/asm/types.h projects/armv6/sys/ofed/include/linux/types.h projects/armv6/sys/pc98/cbus/scterm-sck.c projects/armv6/sys/pc98/cbus/scvtb.c projects/armv6/sys/pc98/cbus/sio.c projects/armv6/sys/pc98/conf/GENERIC projects/armv6/sys/pc98/pc98/machdep.c projects/armv6/sys/powerpc/aim/locore32.S projects/armv6/sys/powerpc/aim/locore64.S projects/armv6/sys/powerpc/aim/machdep.c projects/armv6/sys/powerpc/aim/mmu_oea.c projects/armv6/sys/powerpc/aim/mmu_oea64.c projects/armv6/sys/powerpc/aim/slb.c projects/armv6/sys/powerpc/aim/swtch64.S projects/armv6/sys/powerpc/aim/trap.c projects/armv6/sys/powerpc/aim/trap_subr64.S projects/armv6/sys/powerpc/aim/uma_machdep.c projects/armv6/sys/powerpc/booke/machdep.c projects/armv6/sys/powerpc/booke/platform_bare.c projects/armv6/sys/powerpc/conf/DEFAULTS projects/armv6/sys/powerpc/conf/GENERIC projects/armv6/sys/powerpc/conf/GENERIC64 projects/armv6/sys/powerpc/include/_stdint.h projects/armv6/sys/powerpc/include/_types.h projects/armv6/sys/powerpc/include/asm.h projects/armv6/sys/powerpc/include/float.h projects/armv6/sys/powerpc/include/pcpu.h projects/armv6/sys/powerpc/include/pmap.h projects/armv6/sys/powerpc/include/pmc_mdep.h projects/armv6/sys/powerpc/include/profile.h projects/armv6/sys/powerpc/include/spr.h projects/armv6/sys/powerpc/include/vmparam.h projects/armv6/sys/powerpc/mambo/mambo_console.c projects/armv6/sys/powerpc/ofw/ofw_machdep.c projects/armv6/sys/powerpc/ofw/ofw_pcib_pci.c projects/armv6/sys/powerpc/ofw/ofw_syscons.c projects/armv6/sys/powerpc/ofw/ofwcall64.S projects/armv6/sys/powerpc/powermac/cpcht.c projects/armv6/sys/powerpc/powermac/grackle.c projects/armv6/sys/powerpc/powermac/gracklevar.h projects/armv6/sys/powerpc/powermac/macio.c projects/armv6/sys/powerpc/powermac/platform_powermac.c projects/armv6/sys/powerpc/powermac/pmu.c projects/armv6/sys/powerpc/powermac/pmuvar.h projects/armv6/sys/powerpc/powermac/smusat.c projects/armv6/sys/powerpc/powermac/uninorthpci.c projects/armv6/sys/powerpc/powermac/uninorthvar.h projects/armv6/sys/powerpc/powermac/windtunnel.c projects/armv6/sys/powerpc/powerpc/atomic.S projects/armv6/sys/powerpc/powerpc/busdma_machdep.c projects/armv6/sys/powerpc/powerpc/genassym.c projects/armv6/sys/powerpc/powerpc/setjmp.S projects/armv6/sys/powerpc/ps3/ehci_ps3.c projects/armv6/sys/powerpc/ps3/ohci_ps3.c projects/armv6/sys/powerpc/ps3/platform_ps3.c projects/armv6/sys/powerpc/ps3/ps3-hv-asm.awk projects/armv6/sys/powerpc/ps3/ps3-hvcall.S projects/armv6/sys/powerpc/ps3/ps3-hvcall.h projects/armv6/sys/powerpc/ps3/ps3-hvcall.master projects/armv6/sys/powerpc/ps3/ps3_syscons.c projects/armv6/sys/powerpc/ps3/ps3pic.c projects/armv6/sys/security/mac/mac_framework.c projects/armv6/sys/security/mac_biba/mac_biba.c projects/armv6/sys/security/mac_lomac/mac_lomac.c projects/armv6/sys/security/mac_mls/mac_mls.c projects/armv6/sys/sparc64/conf/GENERIC projects/armv6/sys/sparc64/include/_types.h projects/armv6/sys/sparc64/include/atomic.h projects/armv6/sys/sparc64/include/clock.h projects/armv6/sys/sparc64/include/cpu.h projects/armv6/sys/sparc64/include/float.h projects/armv6/sys/sparc64/include/ofw_machdep.h projects/armv6/sys/sparc64/include/vmparam.h projects/armv6/sys/sparc64/pci/schizo.c projects/armv6/sys/sparc64/pci/schizovar.h projects/armv6/sys/sparc64/sparc64/cache.c projects/armv6/sys/sparc64/sparc64/clock.c projects/armv6/sys/sparc64/sparc64/machdep.c projects/armv6/sys/sparc64/sparc64/ofw_machdep.c projects/armv6/sys/sparc64/sparc64/pmap.c projects/armv6/sys/sparc64/sparc64/support.S projects/armv6/sys/sparc64/sparc64/vm_machdep.c projects/armv6/sys/sys/_null.h projects/armv6/sys/sys/ata.h projects/armv6/sys/sys/cdefs.h projects/armv6/sys/sys/cdrio.h projects/armv6/sys/sys/conf.h projects/armv6/sys/sys/cons.h projects/armv6/sys/sys/consio.h projects/armv6/sys/sys/copyright.h projects/armv6/sys/sys/diskmbr.h projects/armv6/sys/sys/dvdio.h projects/armv6/sys/sys/elf_common.h projects/armv6/sys/sys/imgact_elf.h projects/armv6/sys/sys/jail.h projects/armv6/sys/sys/libkern.h projects/armv6/sys/sys/malloc.h projects/armv6/sys/sys/mbuf.h projects/armv6/sys/sys/mdioctl.h projects/armv6/sys/sys/mman.h projects/armv6/sys/sys/mount.h projects/armv6/sys/sys/msgbuf.h projects/armv6/sys/sys/mutex.h projects/armv6/sys/sys/namei.h projects/armv6/sys/sys/param.h projects/armv6/sys/sys/pipe.h projects/armv6/sys/sys/pmc.h projects/armv6/sys/sys/proc.h projects/armv6/sys/sys/ptrace.h projects/armv6/sys/sys/resourcevar.h projects/armv6/sys/sys/signal.h projects/armv6/sys/sys/socket.h projects/armv6/sys/sys/sockio.h projects/armv6/sys/sys/stdint.h projects/armv6/sys/sys/systm.h projects/armv6/sys/sys/taskqueue.h projects/armv6/sys/sys/timeffc.h projects/armv6/sys/sys/ttycom.h projects/armv6/sys/sys/ttydefaults.h projects/armv6/sys/sys/types.h projects/armv6/sys/sys/ucontext.h projects/armv6/sys/sys/umtx.h projects/armv6/sys/sys/vnode.h projects/armv6/sys/tools/vnode_if.awk projects/armv6/sys/ufs/ffs/ffs_alloc.c projects/armv6/sys/ufs/ffs/ffs_snapshot.c projects/armv6/sys/ufs/ffs/ffs_softdep.c projects/armv6/sys/ufs/ffs/ffs_vfsops.c projects/armv6/sys/ufs/ffs/ffs_vnops.c projects/armv6/sys/ufs/ufs/inode.h projects/armv6/sys/ufs/ufs/ufs_acl.c projects/armv6/sys/ufs/ufs/ufs_dirhash.c projects/armv6/sys/ufs/ufs/ufs_lookup.c projects/armv6/sys/ufs/ufs/ufs_quota.c projects/armv6/sys/ufs/ufs/ufs_vnops.c projects/armv6/sys/vm/swap_pager.c projects/armv6/sys/vm/uma.h projects/armv6/sys/vm/uma_core.c projects/armv6/sys/vm/vm_contig.c projects/armv6/sys/vm/vm_glue.c projects/armv6/sys/vm/vm_kern.c projects/armv6/sys/vm/vm_map.c projects/armv6/sys/vm/vm_map.h projects/armv6/sys/vm/vm_meter.c projects/armv6/sys/vm/vm_mmap.c projects/armv6/sys/vm/vm_object.c projects/armv6/sys/vm/vm_object.h projects/armv6/sys/vm/vm_page.c projects/armv6/sys/vm/vm_page.h projects/armv6/sys/vm/vm_pageout.c projects/armv6/sys/vm/vm_reserv.c projects/armv6/sys/vm/vm_reserv.h projects/armv6/sys/vm/vnode_pager.c projects/armv6/sys/vm/vnode_pager.h projects/armv6/sys/x86/acpica/acpi_apm.c projects/armv6/sys/x86/acpica/srat.c projects/armv6/sys/xen/evtchn/evtchn_dev.c projects/armv6/sys/xen/interface/io/blkif.h projects/armv6/sys/xen/interface/io/netif.h projects/armv6/sys/xen/xenbus/xenbusvar.h projects/armv6/sys/xen/xenstore/xenstore.c projects/armv6/tools/KSE/ksetest/kse_threads_test.c projects/armv6/tools/build/mk/OptionalObsoleteFiles.inc projects/armv6/tools/build/options/WITHOUT_UTMPX projects/armv6/tools/debugscripts/gdbinit.i386 projects/armv6/tools/debugscripts/kld_deb.py projects/armv6/tools/kerneldoc/subsys/common-Doxyfile projects/armv6/tools/regression/README projects/armv6/tools/regression/bin/sh/builtins/cd1.0 projects/armv6/tools/regression/bin/sh/builtins/getopts1.0 projects/armv6/tools/regression/fifo/fifo_io/fifo_io.c projects/armv6/tools/regression/file/dup/dup.c projects/armv6/tools/regression/kthread/kld/kthrdlk.c projects/armv6/tools/regression/lib/libc/gen/Makefile projects/armv6/tools/regression/lib/libc/nss/README projects/armv6/tools/regression/lib/libc/stdio/test-printfloat.c projects/armv6/tools/regression/lib/msun/test-next.c projects/armv6/tools/regression/msdosfs/msdosfstest-3.sh projects/armv6/tools/regression/msdosfs/msdosfstest-4.sh projects/armv6/tools/regression/msdosfs/msdosfstest-5.sh projects/armv6/tools/regression/msdosfs/msdosfstest-6.sh projects/armv6/tools/regression/nfsmmap/Makefile projects/armv6/tools/regression/nfsmmap/README projects/armv6/tools/regression/pipe/pipe-fstatbug.c projects/armv6/tools/regression/pipe/pipe-reverse.c projects/armv6/tools/regression/pipe/pipe-wraparound.c projects/armv6/tools/regression/pjdfstest/tests/chown/00.t projects/armv6/tools/regression/priv/priv_cred.c projects/armv6/tools/regression/pthread/mutex_isowned_np/mutex_isowned_np.c projects/armv6/tools/regression/sbin/Makefile projects/armv6/tools/regression/security/open_to_operation/open_to_operation.c projects/armv6/tools/regression/sockets/unix_passfd/unix_passfd.c projects/armv6/tools/regression/usr.bin/env/regress-sb.rb projects/armv6/tools/regression/usr.bin/make/README projects/armv6/tools/regression/usr.bin/make/variables/modifier_M/Makefile projects/armv6/tools/regression/usr.bin/make/variables/modifier_M/expected.stdout.1 projects/armv6/tools/regression/usr.bin/sed/math.sed projects/armv6/tools/regression/usr.sbin/newsyslog/regress.sh projects/armv6/tools/test/README projects/armv6/tools/test/posixshm/shm_test.c projects/armv6/tools/test/testfloat/systemBugs.txt (contents, props changed) projects/armv6/tools/test/testfloat/testfloat-source.txt (contents, props changed) projects/armv6/tools/test/testfloat/testfloat.txt (contents, props changed) projects/armv6/tools/tools/ansify/ansify.pl projects/armv6/tools/tools/ath/Makefile projects/armv6/tools/tools/ath/athradar/athradar.c projects/armv6/tools/tools/ath/athstats/statfoo.c projects/armv6/tools/tools/ath/athstats/statfoo.h projects/armv6/tools/tools/bus_autoconf/bus_autoconf.c projects/armv6/tools/tools/cd2dvd/cd2dvd.sh projects/armv6/tools/tools/cxgbetool/cxgbetool.c projects/armv6/tools/tools/genericize/genericize.pl projects/armv6/tools/tools/hcomp/hcomp.pl projects/armv6/tools/tools/mtxstat/mtxstat.pl projects/armv6/tools/tools/nanobsd/pcengines/Files/root/.cshrc projects/armv6/tools/tools/net80211/wesside/wesside/wesside.c projects/armv6/tools/tools/net80211/wlaninject/README projects/armv6/tools/tools/netmap/bridge.c projects/armv6/tools/tools/netmap/pkt-gen.c projects/armv6/tools/tools/netrate/netreceive/netreceive.c projects/armv6/tools/tools/netrate/tcpp/tcpp_client.c projects/armv6/tools/tools/prstats/prstats.pl projects/armv6/tools/tools/sysbuild/README projects/armv6/tools/tools/tinybsd/README projects/armv6/tools/tools/whereintheworld/whereintheworld.pl projects/armv6/usr.bin/Makefile projects/armv6/usr.bin/ar/ar.1 projects/armv6/usr.bin/bc/bc.1 projects/armv6/usr.bin/brandelf/brandelf.c projects/armv6/usr.bin/bsdiff/bsdiff/bsdiff.c projects/armv6/usr.bin/calendar/Makefile projects/armv6/usr.bin/calendar/calendars/calendar.birthday projects/armv6/usr.bin/calendar/calendars/calendar.freebsd projects/armv6/usr.bin/calendar/calendars/calendar.history projects/armv6/usr.bin/calendar/calendars/calendar.music projects/armv6/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.all projects/armv6/usr.bin/calendar/calendars/hr_HR.ISO8859-2/calendar.praznici projects/armv6/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.all projects/armv6/usr.bin/chkey/chkey.c projects/armv6/usr.bin/chpass/util.c projects/armv6/usr.bin/cksum/cksum.c projects/armv6/usr.bin/clang/Makefile projects/armv6/usr.bin/compress/compress.c projects/armv6/usr.bin/cpio/Makefile projects/armv6/usr.bin/cpio/test/Makefile projects/armv6/usr.bin/csup/Makefile projects/armv6/usr.bin/csup/auth.c projects/armv6/usr.bin/csup/fixups.c projects/armv6/usr.bin/csup/misc.c projects/armv6/usr.bin/csup/misc.h projects/armv6/usr.bin/csup/mux.c projects/armv6/usr.bin/csup/proto.c projects/armv6/usr.bin/csup/rcsfile.c projects/armv6/usr.bin/du/du.1 projects/armv6/usr.bin/du/du.c projects/armv6/usr.bin/elfdump/elfdump.c projects/armv6/usr.bin/enigma/enigma.c projects/armv6/usr.bin/fetch/fetch.c projects/armv6/usr.bin/find/main.c projects/armv6/usr.bin/finger/finger.c projects/armv6/usr.bin/fstat/fstat.c projects/armv6/usr.bin/gencat/gencat.c projects/armv6/usr.bin/gprof/aout.c projects/armv6/usr.bin/gprof/arcs.c projects/armv6/usr.bin/grep/grep.c projects/armv6/usr.bin/grep/grep.h projects/armv6/usr.bin/grep/util.c projects/armv6/usr.bin/hexdump/conv.c projects/armv6/usr.bin/hexdump/display.c projects/armv6/usr.bin/hexdump/hexdump.c projects/armv6/usr.bin/hexdump/hexsyntax.c projects/armv6/usr.bin/hexdump/od.1 projects/armv6/usr.bin/hexdump/parse.c projects/armv6/usr.bin/indent/indent.c projects/armv6/usr.bin/indent/io.c projects/armv6/usr.bin/ipcs/ipc.c projects/armv6/usr.bin/ipcs/ipc.h projects/armv6/usr.bin/kdump/kdump.c projects/armv6/usr.bin/kdump/mksubr projects/armv6/usr.bin/last/last.1 projects/armv6/usr.bin/last/last.c projects/armv6/usr.bin/lex/NEWS projects/armv6/usr.bin/lex/flexdef.h projects/armv6/usr.bin/lex/main.c projects/armv6/usr.bin/lex/tblcmp.c projects/armv6/usr.bin/limits/limits.1 projects/armv6/usr.bin/limits/limits.c projects/armv6/usr.bin/locate/locate/fastfind.c projects/armv6/usr.bin/locate/locate/locate.c projects/armv6/usr.bin/locate/locate/util.c projects/armv6/usr.bin/lock/lock.c projects/armv6/usr.bin/login/login_fbtab.c projects/armv6/usr.bin/logins/logins.1 projects/armv6/usr.bin/logins/logins.c projects/armv6/usr.bin/m4/Makefile projects/armv6/usr.bin/m4/eval.c projects/armv6/usr.bin/m4/lib/ohash_interval.3 projects/armv6/usr.bin/mail/cmd1.c projects/armv6/usr.bin/mail/edit.c projects/armv6/usr.bin/mail/extern.h projects/armv6/usr.bin/mail/head.c projects/armv6/usr.bin/mail/lex.c projects/armv6/usr.bin/mail/main.c projects/armv6/usr.bin/mail/util.c projects/armv6/usr.bin/make/GNode.h projects/armv6/usr.bin/make/Makefile projects/armv6/usr.bin/make/arch.c projects/armv6/usr.bin/make/buf.c projects/armv6/usr.bin/make/for.c projects/armv6/usr.bin/make/job.c projects/armv6/usr.bin/make/main.c projects/armv6/usr.bin/make/str.c projects/armv6/usr.bin/make/var.c projects/armv6/usr.bin/man/man.sh projects/armv6/usr.bin/mkesdb/Makefile.inc projects/armv6/usr.bin/mt/mt.c projects/armv6/usr.bin/ncal/ncal.c projects/armv6/usr.bin/ncplist/Makefile projects/armv6/usr.bin/ncplist/ncplist.c projects/armv6/usr.bin/ncplogin/ncplogin.c projects/armv6/usr.bin/netstat/Makefile projects/armv6/usr.bin/netstat/if.c projects/armv6/usr.bin/netstat/inet.c projects/armv6/usr.bin/netstat/inet6.c projects/armv6/usr.bin/netstat/ipx.c projects/armv6/usr.bin/netstat/netgraph.c projects/armv6/usr.bin/netstat/route.c projects/armv6/usr.bin/netstat/sctp.c projects/armv6/usr.bin/newgrp/newgrp.c projects/armv6/usr.bin/pr/pr.c projects/armv6/usr.bin/printf/printf.c projects/armv6/usr.bin/procstat/procstat_auxv.c projects/armv6/usr.bin/procstat/procstat_rlimit.c projects/armv6/usr.bin/rctl/rctl.8 projects/armv6/usr.bin/rlogin/rlogin.c projects/armv6/usr.bin/rpcgen/rpc_main.c projects/armv6/usr.bin/rpcgen/rpc_svcout.c projects/armv6/usr.bin/rpcgen/rpcgen.1 projects/armv6/usr.bin/rpcinfo/rpcinfo.c projects/armv6/usr.bin/sockstat/sockstat.1 projects/armv6/usr.bin/sockstat/sockstat.c projects/armv6/usr.bin/split/split.c projects/armv6/usr.bin/systat/devs.c projects/armv6/usr.bin/systat/icmp.c projects/armv6/usr.bin/systat/icmp6.c projects/armv6/usr.bin/systat/ifstat.c projects/armv6/usr.bin/systat/iostat.c projects/armv6/usr.bin/systat/ip.c projects/armv6/usr.bin/systat/netcmds.c projects/armv6/usr.bin/systat/netstat.c projects/armv6/usr.bin/systat/pigs.c projects/armv6/usr.bin/systat/tcp.c projects/armv6/usr.bin/talk/ctl_transact.c projects/armv6/usr.bin/talk/get_names.c projects/armv6/usr.bin/talk/invite.c projects/armv6/usr.bin/tar/Makefile projects/armv6/usr.bin/tar/test/Makefile projects/armv6/usr.bin/tftp/main.c projects/armv6/usr.bin/tip/tip/tip.c projects/armv6/usr.bin/tip/tip/tip.h projects/armv6/usr.bin/tip/tip/tipout.c projects/armv6/usr.bin/top/machine.c projects/armv6/usr.bin/touch/touch.1 projects/armv6/usr.bin/touch/touch.c projects/armv6/usr.bin/tr/str.c projects/armv6/usr.bin/truss/amd64-linux32.c projects/armv6/usr.bin/truss/i386-linux.c projects/armv6/usr.bin/truss/main.c projects/armv6/usr.bin/truss/setup.c projects/armv6/usr.bin/truss/syscalls.c projects/armv6/usr.bin/tset/map.c projects/armv6/usr.bin/tset/term.c projects/armv6/usr.bin/tset/wrterm.c projects/armv6/usr.bin/unzip/unzip.1 projects/armv6/usr.bin/unzip/unzip.c projects/armv6/usr.bin/vacation/Makefile projects/armv6/usr.bin/vgrind/extern.h projects/armv6/usr.bin/vgrind/vfontedpr.c projects/armv6/usr.bin/vmstat/vmstat.c projects/armv6/usr.bin/whereis/pathnames.h projects/armv6/usr.bin/whereis/whereis.c projects/armv6/usr.bin/who/who.1 projects/armv6/usr.bin/who/who.c projects/armv6/usr.bin/write/write.1 projects/armv6/usr.bin/write/write.c projects/armv6/usr.bin/xargs/xargs.c projects/armv6/usr.bin/xlint/lint1/decl.c projects/armv6/usr.bin/xlint/lint1/emit1.c projects/armv6/usr.bin/xlint/lint1/func.c projects/armv6/usr.bin/xlint/lint1/mem1.c projects/armv6/usr.bin/xlint/lint2/chk.c projects/armv6/usr.bin/xlint/lint2/read.c projects/armv6/usr.bin/xlint/xlint/xlint.c projects/armv6/usr.bin/yacc/NEW_FEATURES projects/armv6/usr.bin/yacc/reader.c projects/armv6/usr.sbin/IPXrouted/sap_input.c projects/armv6/usr.sbin/IPXrouted/sap_tables.c projects/armv6/usr.sbin/IPXrouted/tables.c projects/armv6/usr.sbin/Makefile projects/armv6/usr.sbin/acpi/Makefile.inc projects/armv6/usr.sbin/acpi/acpiconf/acpiconf.8 projects/armv6/usr.sbin/acpi/acpidb/Makefile projects/armv6/usr.sbin/acpi/iasl/Makefile projects/armv6/usr.sbin/adduser/adduser.sh projects/armv6/usr.sbin/amd/Makefile.inc projects/armv6/usr.sbin/bluetooth/btpand/event.h projects/armv6/usr.sbin/bluetooth/hccontrol/host_controller_baseband.c projects/armv6/usr.sbin/bluetooth/sdpd/server.c projects/armv6/usr.sbin/boot0cfg/Makefile projects/armv6/usr.sbin/boot0cfg/boot0cfg.8 projects/armv6/usr.sbin/boot0cfg/boot0cfg.c projects/armv6/usr.sbin/bootparamd/bootparamd/Makefile projects/armv6/usr.sbin/bootparamd/bootparamd/README projects/armv6/usr.sbin/bootparamd/bootparamd/bootparamd.c projects/armv6/usr.sbin/bootparamd/callbootd/Makefile projects/armv6/usr.sbin/bootparamd/callbootd/callbootd.c projects/armv6/usr.sbin/bsdinstall/partedit/partedit.c projects/armv6/usr.sbin/bsdinstall/partedit/partedit_powerpc.c projects/armv6/usr.sbin/bsdinstall/scripts/auto projects/armv6/usr.sbin/bsdinstall/scripts/netconfig_ipv4 projects/armv6/usr.sbin/bsdinstall/scripts/services projects/armv6/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_device_tbl.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_snmp.h projects/armv6/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_storage_tbl.c projects/armv6/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 projects/armv6/usr.sbin/bsnmpd/modules/snmp_wlan/BEGEMOT-WIRELESS-MIB.txt projects/armv6/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h projects/armv6/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_tree.def projects/armv6/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.1 projects/armv6/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c projects/armv6/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c projects/armv6/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c projects/armv6/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.h projects/armv6/usr.sbin/burncd/burncd.8 projects/armv6/usr.sbin/burncd/burncd.c projects/armv6/usr.sbin/chkgrp/chkgrp.8 projects/armv6/usr.sbin/chkgrp/chkgrp.c projects/armv6/usr.sbin/config/main.c projects/armv6/usr.sbin/config/mkmakefile.c projects/armv6/usr.sbin/cpucontrol/Makefile projects/armv6/usr.sbin/cpucontrol/cpucontrol.c projects/armv6/usr.sbin/cron/cron/do_command.c projects/armv6/usr.sbin/cron/crontab/crontab.5 projects/armv6/usr.sbin/cron/doc/CHANGES projects/armv6/usr.sbin/cron/doc/MAIL projects/armv6/usr.sbin/cron/lib/entry.c projects/armv6/usr.sbin/ctm/ctm_dequeue/ctm_dequeue.c projects/armv6/usr.sbin/daemon/daemon.8 projects/armv6/usr.sbin/daemon/daemon.c projects/armv6/usr.sbin/edquota/edquota.c projects/armv6/usr.sbin/faithd/prefix.c projects/armv6/usr.sbin/fwcontrol/fwcontrol.c projects/armv6/usr.sbin/fwcontrol/fwmpegts.c projects/armv6/usr.sbin/gssd/Makefile projects/armv6/usr.sbin/i2c/i2c.c projects/armv6/usr.sbin/ifmcstat/ifmcstat.c projects/armv6/usr.sbin/inetd/builtins.c projects/armv6/usr.sbin/inetd/inetd.c projects/armv6/usr.sbin/iostat/iostat.c projects/armv6/usr.sbin/ipfwpcap/ipfwpcap.c projects/armv6/usr.sbin/jail/jail.8 projects/armv6/usr.sbin/jail/jail.c projects/armv6/usr.sbin/kbdcontrol/kbdcontrol.c projects/armv6/usr.sbin/kbdcontrol/lex.h projects/armv6/usr.sbin/kbdcontrol/lex.l projects/armv6/usr.sbin/kbdmap/kbdmap.c projects/armv6/usr.sbin/keyserv/Makefile projects/armv6/usr.sbin/keyserv/crypt_server.c projects/armv6/usr.sbin/keyserv/keyserv.c projects/armv6/usr.sbin/kgmon/kgmon.c projects/armv6/usr.sbin/kldxref/kldxref.8 projects/armv6/usr.sbin/lpr/common_source/rmjob.c projects/armv6/usr.sbin/lpr/filters/lpf.c projects/armv6/usr.sbin/lpr/lpc/cmds.c projects/armv6/usr.sbin/lpr/lpc/lpc.c projects/armv6/usr.sbin/lpr/lpd/printjob.c projects/armv6/usr.sbin/lpr/pac/pac.c projects/armv6/usr.sbin/makefs/cd9660.c projects/armv6/usr.sbin/makefs/cd9660.h projects/armv6/usr.sbin/makefs/cd9660/cd9660_eltorito.c projects/armv6/usr.sbin/makefs/cd9660/cd9660_write.c projects/armv6/usr.sbin/makefs/cd9660/iso9660_rrip.c projects/armv6/usr.sbin/makefs/ffs.c projects/armv6/usr.sbin/makefs/ffs/ffs_extern.h projects/armv6/usr.sbin/makefs/ffs/ffs_subr.c projects/armv6/usr.sbin/makefs/makefs.8 projects/armv6/usr.sbin/makefs/makefs.c projects/armv6/usr.sbin/makefs/makefs.h projects/armv6/usr.sbin/makefs/walk.c projects/armv6/usr.sbin/mfiutil/mfi_evt.c projects/armv6/usr.sbin/mixer/mixer.c projects/armv6/usr.sbin/mlxcontrol/interface.c projects/armv6/usr.sbin/mount_portalfs/cred.c projects/armv6/usr.sbin/mount_portalfs/mount_portalfs.c projects/armv6/usr.sbin/mount_portalfs/pt_pipe.c projects/armv6/usr.sbin/mount_portalfs/pt_tcplisten.c projects/armv6/usr.sbin/mountd/mountd.c projects/armv6/usr.sbin/moused/moused.c projects/armv6/usr.sbin/mptable/mptable.c projects/armv6/usr.sbin/mptutil/mpt_cam.c projects/armv6/usr.sbin/mptutil/mpt_config.c projects/armv6/usr.sbin/mtree/spec.c projects/armv6/usr.sbin/ndiscvt/Makefile projects/armv6/usr.sbin/ndiscvt/inf-token.l projects/armv6/usr.sbin/newsyslog/newsyslog.c projects/armv6/usr.sbin/nscd/protocol.h projects/armv6/usr.sbin/ntp/doc/ntp.conf.5 projects/armv6/usr.sbin/pc-sysinstall/backend-partmanager/delete-part.sh projects/armv6/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/armv6/usr.sbin/pc-sysinstall/backend/functions-parse.sh projects/armv6/usr.sbin/pciconf/pciconf.c projects/armv6/usr.sbin/periodic/periodic.sh projects/armv6/usr.sbin/pkg_install/README projects/armv6/usr.sbin/pkg_install/add/add.h projects/armv6/usr.sbin/pkg_install/add/extract.c projects/armv6/usr.sbin/pkg_install/add/futil.c projects/armv6/usr.sbin/pkg_install/add/main.c projects/armv6/usr.sbin/pkg_install/add/perform.c projects/armv6/usr.sbin/pkg_install/add/pkg_add.1 projects/armv6/usr.sbin/pkg_install/create/create.h projects/armv6/usr.sbin/pkg_install/create/main.c projects/armv6/usr.sbin/pkg_install/create/perform.c projects/armv6/usr.sbin/pkg_install/create/pkg_create.1 projects/armv6/usr.sbin/pkg_install/create/pl.c projects/armv6/usr.sbin/pkg_install/delete/delete.h projects/armv6/usr.sbin/pkg_install/delete/main.c projects/armv6/usr.sbin/pkg_install/delete/perform.c projects/armv6/usr.sbin/pkg_install/delete/pkg_delete.1 projects/armv6/usr.sbin/pkg_install/info/info.h projects/armv6/usr.sbin/pkg_install/info/main.c projects/armv6/usr.sbin/pkg_install/info/perform.c projects/armv6/usr.sbin/pkg_install/info/show.c projects/armv6/usr.sbin/pkg_install/lib/deps.c projects/armv6/usr.sbin/pkg_install/lib/exec.c projects/armv6/usr.sbin/pkg_install/lib/file.c projects/armv6/usr.sbin/pkg_install/lib/global.c projects/armv6/usr.sbin/pkg_install/lib/lib.h projects/armv6/usr.sbin/pkg_install/lib/match.c projects/armv6/usr.sbin/pkg_install/lib/msg.c projects/armv6/usr.sbin/pkg_install/lib/pen.c projects/armv6/usr.sbin/pkg_install/lib/plist.c projects/armv6/usr.sbin/pkg_install/lib/str.c projects/armv6/usr.sbin/pkg_install/lib/url.c projects/armv6/usr.sbin/pkg_install/updating/main.c projects/armv6/usr.sbin/pkg_install/updating/pathnames.h projects/armv6/usr.sbin/pkg_install/updating/pkg_updating.1 projects/armv6/usr.sbin/pkg_install/version/main.c projects/armv6/usr.sbin/pkg_install/version/perform.c projects/armv6/usr.sbin/pkg_install/version/version.h projects/armv6/usr.sbin/pmccontrol/pmccontrol.c projects/armv6/usr.sbin/pmcstat/pmcpl_calltree.c projects/armv6/usr.sbin/pmcstat/pmcpl_gprof.c projects/armv6/usr.sbin/pmcstat/pmcstat.c projects/armv6/usr.sbin/pmcstat/pmcstat_log.c projects/armv6/usr.sbin/powerd/powerd.c projects/armv6/usr.sbin/ppp/auth.c projects/armv6/usr.sbin/ppp/cbcp.c projects/armv6/usr.sbin/ppp/chat.h projects/armv6/usr.sbin/ppp/command.c projects/armv6/usr.sbin/ppp/iface.c projects/armv6/usr.sbin/ppp/lqr.c projects/armv6/usr.sbin/ppp/mp.c projects/armv6/usr.sbin/ppp/physical.c projects/armv6/usr.sbin/ppp/ppp.8.m4 projects/armv6/usr.sbin/ppp/vjcomp.c projects/armv6/usr.sbin/pw/cpdir.c projects/armv6/usr.sbin/pw/pw.8 projects/armv6/usr.sbin/pw/pw_user.c projects/armv6/usr.sbin/quotaon/quotaon.c projects/armv6/usr.sbin/rarpd/rarpd.c projects/armv6/usr.sbin/route6d/route6d.c projects/armv6/usr.sbin/rpc.lockd/Makefile projects/armv6/usr.sbin/rpc.lockd/kern.c projects/armv6/usr.sbin/rpc.lockd/lockd_lock.c projects/armv6/usr.sbin/rpc.statd/Makefile projects/armv6/usr.sbin/rpc.yppasswdd/Makefile projects/armv6/usr.sbin/rpc.yppasswdd/yppasswdd_server.c projects/armv6/usr.sbin/rpc.ypupdated/Makefile projects/armv6/usr.sbin/rpc.ypupdated/yp_dbupdate.c projects/armv6/usr.sbin/rpc.ypxfrd/Makefile projects/armv6/usr.sbin/rpcbind/check_bound.c projects/armv6/usr.sbin/rpcbind/rpcbind.c projects/armv6/usr.sbin/rtadvd/config.c projects/armv6/usr.sbin/rtadvd/rtadvd.c projects/armv6/usr.sbin/rtprio/rtprio.c projects/armv6/usr.sbin/rtsold/rtsold.8 projects/armv6/usr.sbin/rtsold/rtsold.c projects/armv6/usr.sbin/rwhod/rwhod.c projects/armv6/usr.sbin/sa/db.c projects/armv6/usr.sbin/sade/devices.c projects/armv6/usr.sbin/sade/install.c projects/armv6/usr.sbin/sade/label.c projects/armv6/usr.sbin/sade/misc.c projects/armv6/usr.sbin/sade/variable.c projects/armv6/usr.sbin/sendmail/Makefile projects/armv6/usr.sbin/tcpdump/tcpdump/tcpdump.1 projects/armv6/usr.sbin/timed/timed/CHANGES projects/armv6/usr.sbin/timed/timed/correct.c projects/armv6/usr.sbin/timed/timed/globals.h projects/armv6/usr.sbin/timed/timed/networkdelta.c projects/armv6/usr.sbin/timed/timed/readmsg.c projects/armv6/usr.sbin/timed/timedc/cmds.c projects/armv6/usr.sbin/timed/timedc/timedc.c projects/armv6/usr.sbin/tzsetup/tzsetup.c projects/armv6/usr.sbin/uhsoctl/uhsoctl.c projects/armv6/usr.sbin/usbdump/usbdump.8 projects/armv6/usr.sbin/usbdump/usbdump.c projects/armv6/usr.sbin/vidcontrol/decode.c projects/armv6/usr.sbin/vidcontrol/vidcontrol.c projects/armv6/usr.sbin/vipw/vipw.8 projects/armv6/usr.sbin/wake/wake.c projects/armv6/usr.sbin/wpa/hostapd/driver_freebsd.c projects/armv6/usr.sbin/wpa/hostapd/hostapd.8 projects/armv6/usr.sbin/wpa/wpa_supplicant/Makefile projects/armv6/usr.sbin/yp_mkdb/yp_mkdb.c projects/armv6/usr.sbin/yppush/Makefile projects/armv6/usr.sbin/ypserv/Makefile projects/armv6/usr.sbin/ypserv/yp_access.c projects/armv6/usr.sbin/ypserv/yp_main.c Directory Properties: projects/armv6/ (props changed) projects/armv6/cddl/contrib/opensolaris/ (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PDESC_ZERO.badlib.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_FUNC.badfunc.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_LIB.libdash.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.alldash.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.badname.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_NAME.globdash.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/err.D_PROC_OFF.toobig.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.coverage.exe (props changed) projects/armv6/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/pid/tst.emptystack.exe (props changed) projects/armv6/contrib/bind9/ (props changed) projects/armv6/contrib/binutils/ (props changed) projects/armv6/contrib/bzip2/ (props changed) projects/armv6/contrib/com_err/ (props changed) projects/armv6/contrib/compiler-rt/ (props changed) projects/armv6/contrib/dialog/ (props changed) projects/armv6/contrib/ee/ (props changed) projects/armv6/contrib/expat/ (props changed) projects/armv6/contrib/file/ (props changed) projects/armv6/contrib/gcc/ (props changed) projects/armv6/contrib/gdb/ (props changed) projects/armv6/contrib/gdtoa/ (props changed) projects/armv6/contrib/gnu-sort/ (props changed) projects/armv6/contrib/groff/ (props changed) projects/armv6/contrib/less/ (props changed) projects/armv6/contrib/libarchive/cpio/ (props changed) projects/armv6/contrib/libarchive/libarchive/ (props changed) projects/armv6/contrib/libarchive/libarchive_fe/ (props changed) projects/armv6/contrib/libarchive/tar/ (props changed) projects/armv6/contrib/libcxxrt/ (props changed) projects/armv6/contrib/libpcap/ (props changed) projects/armv6/contrib/libstdc++/ (props changed) projects/armv6/contrib/llvm/ (props changed) projects/armv6/contrib/llvm/tools/clang/ (props changed) projects/armv6/contrib/ncurses/ (props changed) projects/armv6/contrib/netcat/ (props changed) projects/armv6/contrib/ntp/ (props changed) projects/armv6/contrib/one-true-awk/ (props changed) projects/armv6/contrib/openbsm/ (props changed) projects/armv6/contrib/openpam/ (props changed) projects/armv6/contrib/openresolv/ (props changed) projects/armv6/contrib/pf/ (props changed) projects/armv6/contrib/sendmail/ (props changed) projects/armv6/contrib/tcpdump/ (props changed) projects/armv6/contrib/tcsh/ (props changed) projects/armv6/contrib/tcsh/nls/greek/set24 (props changed) projects/armv6/contrib/tcsh/nls/ja/set24 (props changed) projects/armv6/contrib/tcsh/nls/russian/set21 (props changed) projects/armv6/contrib/tcsh/nls/russian/set24 (props changed) projects/armv6/contrib/tcsh/nls/russian/set3 (props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set21 (props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set24 (props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set3 (props changed) projects/armv6/contrib/tcsh/nls/ukrainian/set4 (props changed) projects/armv6/contrib/tnftp/ (props changed) projects/armv6/contrib/top/ (props changed) projects/armv6/contrib/top/install-sh (props changed) projects/armv6/contrib/tzcode/stdtime/ (props changed) projects/armv6/contrib/tzcode/zic/ (props changed) projects/armv6/contrib/tzdata/ (props changed) projects/armv6/contrib/wpa/ (props changed) projects/armv6/contrib/xz/ (props changed) projects/armv6/crypto/heimdal/ (props changed) projects/armv6/crypto/openssh/ (props changed) projects/armv6/crypto/openssl/ (props changed) projects/armv6/gnu/lib/ (props changed) projects/armv6/gnu/usr.bin/binutils/ (props changed) projects/armv6/gnu/usr.bin/cc/cc_tools/ (props changed) projects/armv6/gnu/usr.bin/gdb/ (props changed) projects/armv6/lib/libc/ (props changed) projects/armv6/lib/libc/stdtime/ (props changed) projects/armv6/lib/libutil/ (props changed) projects/armv6/lib/libz/ (props changed) projects/armv6/sbin/ (props changed) projects/armv6/sbin/ipfw/ (props changed) projects/armv6/share/man/man4/ (props changed) projects/armv6/share/mk/bsd.arch.inc.mk (props changed) projects/armv6/share/zoneinfo/ (props changed) projects/armv6/sys/ (props changed) projects/armv6/sys/amd64/include/xen/ (props changed) projects/armv6/sys/boot/ (props changed) projects/armv6/sys/boot/i386/efi/ (props changed) projects/armv6/sys/boot/ia64/efi/ (props changed) projects/armv6/sys/boot/ia64/ski/ (props changed) projects/armv6/sys/boot/powerpc/boot1.chrp/ (props changed) projects/armv6/sys/boot/powerpc/ofw/ (props changed) projects/armv6/sys/cddl/contrib/opensolaris/ (props changed) projects/armv6/sys/conf/ (props changed) projects/armv6/sys/contrib/dev/acpica/ (props changed) projects/armv6/sys/contrib/dev/acpica/common/ (props changed) projects/armv6/sys/contrib/dev/acpica/compiler/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/disassembler/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/dispatcher/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/events/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/executer/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/parser/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/resources/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/tables/ (props changed) projects/armv6/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/armv6/sys/contrib/dev/acpica/include/ (props changed) projects/armv6/sys/contrib/dev/acpica/os_specific/ (props changed) projects/armv6/sys/contrib/octeon-sdk/ (props changed) projects/armv6/sys/contrib/pf/ (props changed) projects/armv6/sys/contrib/x86emu/ (props changed) projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_pci (props changed) projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_sound (props changed) projects/armv6/tools/kerneldoc/subsys/Doxyfile-dev_usb (props changed) projects/armv6/tools/test/testfloat/testfloat-history.txt (props changed) projects/armv6/usr.bin/calendar/ (props changed) projects/armv6/usr.bin/csup/ (props changed) projects/armv6/usr.bin/procstat/ (props changed) projects/armv6/usr.sbin/ndiscvt/ (props changed) projects/armv6/usr.sbin/rtadvctl/ (props changed) projects/armv6/usr.sbin/rtadvd/ (props changed) projects/armv6/usr.sbin/rtsold/ (props changed) projects/armv6/usr.sbin/zic/ (props changed) Modified: projects/armv6/COPYRIGHT ============================================================================== --- projects/armv6/COPYRIGHT Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/COPYRIGHT Fri Feb 24 18:39:55 2012 (r232120) @@ -4,7 +4,7 @@ The compilation of software known as FreeBSD is distributed under the following terms: -Copyright (c) 1992-2011 The FreeBSD Project. All rights reserved. +Copyright (c) 1992-2012 The FreeBSD Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions Modified: projects/armv6/MAINTAINERS ============================================================================== --- projects/armv6/MAINTAINERS Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/MAINTAINERS Fri Feb 24 18:39:55 2012 (r232120) @@ -124,6 +124,7 @@ usr.sbin/zic edwin Heads-up appreciat lib/libc/stdtime edwin Heads-up appreciated, since parts of this code is maintained by a third party source. sbin/routed bms Pre-commit review; notify vendor at rhyolite.com +isci(4) jimharris Pre-commit review requested. Following are the entries from the Makefiles, and a few other sources. Please remove stale entries from both their origin, and this file. Modified: projects/armv6/Makefile ============================================================================== --- projects/armv6/Makefile Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/Makefile Fri Feb 24 18:39:55 2012 (r232120) @@ -24,7 +24,7 @@ # check-old-dirs - List obsolete directories. # check-old-files - List obsolete files. # check-old-libs - List obsolete libraries. -# delete-old - Delete obsolete directories/files/libraries. +# delete-old - Delete obsolete directories/files. # delete-old-dirs - Delete obsolete directories. # delete-old-files - Delete obsolete files. # delete-old-libs - Delete obsolete libraries. Modified: projects/armv6/Makefile.inc1 ============================================================================== --- projects/armv6/Makefile.inc1 Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/Makefile.inc1 Fri Feb 24 18:39:55 2012 (r232120) @@ -15,8 +15,11 @@ # -DNO_WWWUPDATE do not update www in ${MAKE} update # -DNO_CTF do not run the DTrace CTF conversion tools on built objects # LOCAL_DIRS="list of dirs" to add additional dirs to the SUBDIR list +# LOCAL_TOOL_DIRS="list of dirs" to add additional dirs to the build-tools +# list # TARGET="machine" to crossbuild world for a different machine type # TARGET_ARCH= may be required when a TARGET supports multiple endians +# BUILDENV_SHELL= shell to launch for the buildenv target (def:/bin/sh) # # The intended user-driven targets are: @@ -59,8 +62,6 @@ SUBDIR+=games .endif .if ${MK_CDDL} != "no" SUBDIR+=cddl -.else -NO_CTF=1 .endif SUBDIR+=gnu include .if ${MK_KERBEROS} != "no" @@ -106,6 +107,10 @@ CLEANDIR= clean cleandepend CLEANDIR= cleandir .endif +LOCAL_TOOL_DIRS?= + +BUILDENV_SHELL?=/bin/sh + CVS?= cvs CVSFLAGS?= -A -P -d -I! SVN?= svn @@ -239,7 +244,7 @@ BMAKE= MAKEOBJDIRPREFIX=${WORLDTMP} \ BOOTSTRAPPING=${OSRELDATE} \ SSP_CFLAGS= \ -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \ - -DNO_PIC -DWITHOUT_PROFILE -DNO_SHARED \ + -DNO_PIC -DNO_PROFILE -DNO_SHARED \ -DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF # build-tools stage @@ -278,7 +283,6 @@ LIB32CPUFLAGS= -march=i686 -mmmx -msse - .else LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} .endif -LIB32CPUFLAGS+= -mfancy-math-387 LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \ MACHINE_CPU="i686 mmx sse sse2" \ LD="${LD} -m elf_i386_fbsd -Y P,${LIB32TMP}/usr/lib32" \ @@ -438,7 +442,7 @@ _libraries: @echo "--------------------------------------------------------------" ${_+_}cd ${.CURDIR}; \ ${WMAKE} -DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \ - -DWITHOUT_MAN -DWITHOUT_PROFILE libraries + -DWITHOUT_MAN -DNO_PROFILE libraries _depend: @echo @echo "--------------------------------------------------------------" @@ -557,7 +561,7 @@ buildenvvars: buildenv: @echo Entering world for ${TARGET_ARCH}:${TARGET} - @cd ${.CURDIR} && env ${WMAKEENV} sh || true + @cd ${.CURDIR} && env ${WMAKEENV} ${BUILDENV_SHELL} || true TOOLCHAIN_TGTS= ${WMAKE_TGTS:N_depend:Neverything:Nbuild32} toolchain: ${TOOLCHAIN_TGTS} @@ -831,6 +835,7 @@ buildkernel: @echo ">>> stage 2.3: build tools" @echo "--------------------------------------------------------------" cd ${KRNLOBJDIR}/${_kernel}; \ + PATH=${BPATH}:${PATH} \ MAKESRCPATH=${KERNSRCDIR}/dev/aic7xxx/aicasm \ ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF \ -f ${KERNSRCDIR}/dev/aic7xxx/aicasm/Makefile @@ -838,6 +843,7 @@ buildkernel: .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists(${KERNSRCDIR}/modules) .for target in obj depend all cd ${KERNSRCDIR}/modules/aic7xxx/aicasm; \ + PATH=${BPATH}:${PATH} \ MAKEOBJDIRPREFIX=${KRNLOBJDIR}/${_kernel}/modules \ ${MAKE} SSP_CFLAGS= -DNO_CPU_CFLAGS -DNO_CTF ${target} .endfor @@ -886,10 +892,21 @@ distributekernel distributekernel.debug: ${CROSSENV} PATH=${TMPPATH} ${MAKE} KERNEL=${INSTKERNNAME} \ DESTDIR=${DESTDIR}/${DISTDIR}/kernel \ ${.TARGET:S/distributekernel/install/} +.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} + cd ${KRNLOBJDIR}/${_kernel}; \ + ${CROSSENV} PATH=${TMPPATH} ${MAKE} \ + KERNEL=${INSTKERNNAME}.${_kernel} \ + DESTDIR=${DESTDIR}/${DISTDIR}/kernel.${_kernel} \ + ${.TARGET:S/distributekernel/install/} +.endfor packagekernel: - ${_+_}cd ${DESTDIR}/${DISTDIR}/kernel; \ + cd ${DESTDIR}/${DISTDIR}/kernel; \ tar cvJf ${DESTDIR}/${DISTDIR}/kernel.txz . +.for _kernel in ${BUILDKERNELS:S/${INSTALLKERNEL}//} + cd ${DESTDIR}/${DISTDIR}/kernel.${_kernel}; \ + tar cvJf ${DESTDIR}/${DISTDIR}/kernel.${_kernel}.txz . +.endfor # # doxygen @@ -1104,6 +1121,7 @@ build-tools: bin/csh \ bin/sh \ ${_rescue} \ + ${LOCAL_TOOL_DIRS} \ lib/ncurses/ncurses \ lib/ncurses/ncursesw \ ${_share} \ @@ -1321,8 +1339,8 @@ ${_lib}__PL: .PHONY cd ${.CURDIR}/${_lib}; \ ${MAKE} DIRPRFX=${_lib}/ obj; \ ${MAKE} DIRPRFX=${_lib}/ depend; \ - ${MAKE} -DWITHOUT_PROFILE -DNO_PIC DIRPRFX=${_lib}/ all; \ - ${MAKE} -DWITHOUT_PROFILE -DNO_PIC DIRPRFX=${_lib}/ install + ${MAKE} -DNO_PROFILE -DNO_PIC DIRPRFX=${_lib}/ all; \ + ${MAKE} -DNO_PROFILE -DNO_PIC DIRPRFX=${_lib}/ install .endif .endfor @@ -1555,7 +1573,7 @@ XDEV_CPUTYPE?=${TARGET_CPUTYPE} .endif NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \ - -DWITHOUT_MAN -DWITHOUT_NLS -DWITHOUT_PROFILE \ + -DWITHOUT_MAN -DWITHOUT_NLS -DNO_PROFILE \ -DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS \ TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \ CPUTYPE=${XDEV_CPUTYPE} Modified: projects/armv6/ObsoleteFiles.inc ============================================================================== --- projects/armv6/ObsoleteFiles.inc Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/ObsoleteFiles.inc Fri Feb 24 18:39:55 2012 (r232120) @@ -38,6 +38,11 @@ # xargs -n1 | sort | uniq -d; # done +# 20120113: removal of wtmpcvt(1) +OLD_FILES+=usr/bin/wtmpcvt +OLD_FILES+=usr/share/man/man1/wtmpcvt.1.gz +# 20111214: eventtimers(7) moved to eventtimers(4) +OLD_FILES+=usr/share/man/man7/eventtimers.7.gz # 20111125: amd(4) removed OLD_FILES+=usr/share/man/man4/amd.4.gz # 20111125: libodialog removed @@ -702,6 +707,8 @@ OLD_LIBS+=usr/lib32/pam_unix.so.4 .endif # 20090718: the gdm pam.d file is no longer required. OLD_FILES+=etc/pam.d/gdm +# 20090714: net_add_domain(9) renamed to domain_add(9) +OLD_FILES+=usr/share/man/man9/net_add_domain.9.gz # 20090713: vimage container structs removed. OLD_FILES+=usr/include/netinet/vinet.h OLD_FILES+=usr/include/netinet6/vinet6.h Modified: projects/armv6/UPDATING ============================================================================== --- projects/armv6/UPDATING Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/UPDATING Fri Feb 24 18:39:55 2012 (r232120) @@ -22,6 +22,44 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20120211: + The getifaddrs upgrade path broken with 20111215 has been restored. + If you have upgraded in between 20111215 and 20120209 you need to + recompile libc again with your kernel. You still need to recompile + world to be able to configure CARP but this restriction already + comes from 20111215. + +20120114: + The set_rcvar() function has been removed from /etc/rc.subr. All + base and ports rc.d scripts have been updated, so if you have a + port installed with a script in /usr/local/etc/rc.d you can either + hand-edit the rcvar= line, or reinstall the port. + + An easy way to handle the mass-update of /etc/rc.d: + rm /etc/rc.d/* && mergemaster -i + +20120109: + panic(9) now stops other CPUs in the SMP systems, disables interrupts + on the current CPU and prevents other threads from running. + This behavior can be reverted using the kern.stop_scheduler_on_panic + tunable/sysctl. + The new behavior can be incompatible with kern.sync_on_panic. + +20111215: + The carp(4) facility has been changed significantly. Configuration + of the CARP protocol via ifconfig(8) has changed, as well as format + of CARP events submitted to devd(8) has changed. See manual pages + for more information. The arpbalance feature of carp(4) is currently + not supported anymore. + + Size of struct in_aliasreq, struct in6_aliasreq has changed. User + utilities using SIOCAIFADDR, SIOCAIFADDR_IN6, e.g. ifconfig(8), + need to be recompiled. + +20111122: + The acpi_wmi(4) status device /dev/wmistat has been renamed to + /dev/wmistat0. + 20111108: The option VFS_ALLOW_NONMPSAFE option has been added in order to explicitely support non-MPSAFE filesystems. Modified: projects/armv6/bin/chio/chio.c ============================================================================== --- projects/armv6/bin/chio/chio.c Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/chio/chio.c Fri Feb 24 18:39:55 2012 (r232120) @@ -87,7 +87,7 @@ static int do_voltag(const char *, int, #endif /* Valid changer element types. */ -const struct element_type elements[] = { +static const struct element_type elements[] = { { "drive", CHET_DT }, { "picker", CHET_MT }, { "portal", CHET_IE }, @@ -97,7 +97,7 @@ const struct element_type elements[] = { }; /* Valid commands. */ -const struct changer_command commands[] = { +static const struct changer_command commands[] = { { "exchange", do_exchange }, { "getpicker", do_getpicker }, { "ielem", do_ielem }, @@ -112,7 +112,7 @@ const struct changer_command commands[] }; /* Valid special words. */ -const struct special_word specials[] = { +static const struct special_word specials[] = { { "inv", SW_INVERT }, { "inv1", SW_INVERT1 }, { "inv2", SW_INVERT2 }, Modified: projects/armv6/bin/csh/Makefile ============================================================================== --- projects/armv6/bin/csh/Makefile Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/csh/Makefile Fri Feb 24 18:39:55 2012 (r232120) @@ -18,7 +18,7 @@ DFLAGS= -D_PATH_TCSHELL='"/rescue/${PROG DFLAGS= -D_PATH_TCSHELL='"/bin/${PROG}"' .endif CFLAGS+= -I. -I${.CURDIR} -I${TCSHDIR} ${DFLAGS} -WARNS?= 0 +WARNS?= 1 SRCS= sh.c sh.dir.c sh.dol.c sh.err.c sh.exec.c sh.char.c \ sh.exp.c sh.file.c sh.func.c sh.glob.c sh.hist.c sh.init.c \ sh.lex.c sh.misc.c sh.parse.c sh.print.c sh.proc.c sh.sem.c \ @@ -116,10 +116,10 @@ gethost: gethost.c sh.err.h tc.const.h s ${CC} -o gethost ${LDFLAGS} ${CFLAGS:C/-DHAVE_ICONV//} \ ${TCSHDIR}/gethost.c -tc.defs.c: gethost ${.CURDIR}/host.defs +tc.defs.c: gethost ${TCSHDIR}/host.defs @rm -f ${.TARGET} @echo "/* Do not edit this file, make creates it */" > ${.TARGET} - ./gethost ${.CURDIR}/host.defs >> ${.TARGET} + ./gethost ${TCSHDIR}/host.defs >> ${.TARGET} ed.defns.h: ed.defns.c @rm -f ${.TARGET} Modified: projects/armv6/bin/csh/config.h ============================================================================== --- projects/armv6/bin/csh/config.h Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/csh/config.h Fri Feb 24 18:39:55 2012 (r232120) @@ -1,5 +1,5 @@ /* $FreeBSD$ */ -/* config.h. Generated by configure. */ +/* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ /* Define to the type of elements in the array set by `getgroups'. Usually @@ -12,9 +12,6 @@ /* Define to 1 if you have the header file. */ /* #undef HAVE_AUTH_H */ -/* Define to 1 if you have the `catgets' function. */ -#define HAVE_CATGETS 1 - /* Define to 1 if you have the header file. */ /* #undef HAVE_CRYPT_H */ @@ -41,6 +38,9 @@ /* Define to 1 if you have the `dup2' function. */ #define HAVE_DUP2 1 +/* Define to 1 if you have the header file. */ +/* #undef HAVE_FEATURES_H */ + /* Define to 1 if you have the `getauthid' function. */ /* #undef HAVE_GETAUTHID */ @@ -54,9 +54,12 @@ #define HAVE_GETPWENT 1 /* Define to 1 if you have the `getutent' function. */ -#define HAVE_GETUTENT 1 +/* #undef HAVE_GETUTENT */ -/* Define if you have the iconv() function. */ +/* Define to 1 if you have the `getutxent' function. */ +#define HAVE_GETUTXENT 1 + +/* Define if you have the iconv() function and it works. */ /* #undef HAVE_ICONV */ /* Define to 1 if you have the header file. */ @@ -65,6 +68,9 @@ /* Define to 1 if the system has the type `long long'. */ #define HAVE_LONG_LONG 1 +/* Define to 1 if you have the `mallinfo' function. */ +/* #undef HAVE_MALLINFO */ + /* Define to 1 if mbrtowc and mbstate_t are properly declared. */ #define HAVE_MBRTOWC 1 @@ -77,6 +83,9 @@ /* Define to 1 if you have the `memset' function. */ #define HAVE_MEMSET 1 +/* Define to 1 if you have the `mkstemp' function. */ +#define HAVE_MKSTEMP 1 + /* Define to 1 if you have the header file, and it defines `DIR'. */ /* #undef HAVE_NDIR_H */ @@ -86,6 +95,9 @@ /* Define to 1 if you have the `nl_langinfo' function. */ #define HAVE_NL_LANGINFO 1 +/* Define to 1 if you have the header file. */ +#define HAVE_PATHS_H 1 + /* Define to 1 if you have the `sbrk' function. */ #define HAVE_SBRK 1 @@ -120,22 +132,34 @@ /* Define to 1 if you have the `strstr' function. */ #define HAVE_STRSTR 1 -/* Define to 1 if `d_ino' is member of `struct dirent'. */ +/* Define to 1 if `d_ino' is a member of `struct dirent'. */ #define HAVE_STRUCT_DIRENT_D_INO 1 -/* Define to 1 if `ss_family' is member of `struct sockaddr_storage'. */ +/* Define to 1 if `ss_family' is a member of `struct sockaddr_storage'. */ #define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1 -/* Define to 1 if `ut_host' is member of `struct utmp'. */ +/* Define to 1 if `ut_host' is a member of `struct utmpx'. */ +#define HAVE_STRUCT_UTMPX_UT_HOST 1 + +/* Define to 1 if `ut_tv' is a member of `struct utmpx'. */ +#define HAVE_STRUCT_UTMPX_UT_TV 1 + +/* Define to 1 if `ut_user' is a member of `struct utmpx'. */ +#define HAVE_STRUCT_UTMPX_UT_USER 1 + +/* Define to 1 if `ut_xtime' is a member of `struct utmpx'. */ +/* #undef HAVE_STRUCT_UTMPX_UT_XTIME */ + +/* Define to 1 if `ut_host' is a member of `struct utmp'. */ #define HAVE_STRUCT_UTMP_UT_HOST 1 -/* Define to 1 if `ut_tv' is member of `struct utmp'. */ +/* Define to 1 if `ut_tv' is a member of `struct utmp'. */ #define HAVE_STRUCT_UTMP_UT_TV 1 -/* Define to 1 if `ut_user' is member of `struct utmp'. */ +/* Define to 1 if `ut_user' is a member of `struct utmp'. */ #define HAVE_STRUCT_UTMP_UT_USER 1 -/* Define to 1 if `ut_xtime' is member of `struct utmp'. */ +/* Define to 1 if `ut_xtime' is a member of `struct utmp'. */ /* #undef HAVE_STRUCT_UTMP_UT_XTIME */ /* Define to 1 if you have the `sysconf' function. */ @@ -179,25 +203,31 @@ /* Support NLS. */ #define NLS 1 +/* Support NLS catalogs. */ +#define NLS_CATALOGS 1 + /* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" +#define PACKAGE_BUGREPORT "http://bugs.gw.com/" /* Define to the full name of this package. */ -#define PACKAGE_NAME "" +#define PACKAGE_NAME "tcsh" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "" +#define PACKAGE_STRING "tcsh 6.18.01" /* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "" +#define PACKAGE_TARNAME "tcsh" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "" +#define PACKAGE_VERSION "6.18.01" /* Define to 1 if the `setpgrp' function takes no argument. */ /* #undef SETPGRP_VOID */ -/* The size of a `wchar_t', as computed by sizeof. */ +/* The size of `wchar_t', as computed by sizeof. */ #define SIZEOF_WCHAR_T 4 /* Define to 1 if the `S_IS*' macros in do not work properly. */ @@ -206,6 +236,11 @@ /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 +/* Define for Solaris 2.5.1 so the uint32_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +/* #undef _UINT32_T */ + /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ @@ -215,7 +250,7 @@ /* Define to `int' if does not define. */ /* #undef mode_t */ -/* Define to `unsigned' if does not define. */ +/* Define to `unsigned int' if does not define. */ /* #undef size_t */ /* Define to `int' if neither nor define. */ @@ -227,6 +262,10 @@ /* Define to `int' if doesn't define. */ /* #undef uid_t */ +/* Define to the type of an unsigned integer type of width exactly 32 bits if + such a type exists and the standard includes do not define it. */ +/* #undef uint32_t */ + /* Define to empty if the keyword `volatile' does not work. Warning: valid code using `volatile' can become incorrect without. Disable with care. */ /* #undef volatile */ @@ -234,9 +273,5 @@ #include "config_p.h" #include "config_f.h" -#ifndef NO_NLS_CATALOGS -#define NLS_CATALOGS -#endif - /* Work around a vendor issue where config_f.h is #undef'ing this setting */ #define SYSMALLOC Modified: projects/armv6/bin/csh/config_p.h ============================================================================== --- projects/armv6/bin/csh/config_p.h Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/csh/config_p.h Fri Feb 24 18:39:55 2012 (r232120) @@ -106,9 +106,6 @@ #elif defined(__APPLE__) # define SYSMALLOC - -#else -# define NLS_CATALOGS #endif #endif /* _h_config */ Modified: projects/armv6/bin/ed/io.c ============================================================================== --- projects/armv6/bin/ed/io.c Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/ed/io.c Fri Feb 24 18:39:55 2012 (r232120) @@ -53,7 +53,8 @@ read_file(char *fn, long n) errmsg = "cannot close input file"; return ERR; } - fprintf(stdout, !scripted ? "%lu\n" : "", size); + if (!scripted) + fprintf(stdout, "%lu\n", size); return current_addr - n; } @@ -161,7 +162,8 @@ write_file(char *fn, const char *mode, l errmsg = "cannot close output file"; return ERR; } - fprintf(stdout, !scripted ? "%lu\n" : "", size); + if (!scripted) + fprintf(stdout, "%lu\n", size); return n ? m - n + 1 : 0; } Modified: projects/armv6/bin/ed/main.c ============================================================================== --- projects/armv6/bin/ed/main.c Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/ed/main.c Fri Feb 24 18:39:55 2012 (r232120) @@ -192,9 +192,10 @@ top: fputs("?\n", stderr); errmsg = "warning: file modified"; if (!isatty(0)) { - fprintf(stderr, garrulous ? - "script, line %d: %s\n" : - "", lineno, errmsg); + if (garrulous) + fprintf(stderr, + "script, line %d: %s\n", + lineno, errmsg); quit(2); } clearerr(stdin); @@ -225,27 +226,26 @@ top: fputs("?\n", stderr); /* give warning */ errmsg = "warning: file modified"; if (!isatty(0)) { - fprintf(stderr, garrulous ? - "script, line %d: %s\n" : - "", lineno, errmsg); + if (garrulous) + fprintf(stderr, "script, line %d: %s\n", + lineno, errmsg); quit(2); } break; case FATAL: - if (!isatty(0)) - fprintf(stderr, garrulous ? - "script, line %d: %s\n" : "", - lineno, errmsg); - else - fprintf(stderr, garrulous ? "%s\n" : "", - errmsg); + if (!isatty(0)) { + if (garrulous) + fprintf(stderr, "script, line %d: %s\n", + lineno, errmsg); + } else if (garrulous) + fprintf(stderr, "%s\n", errmsg); quit(3); default: fputs("?\n", stderr); if (!isatty(0)) { - fprintf(stderr, garrulous ? - "script, line %d: %s\n" : "", - lineno, errmsg); + if (garrulous) + fprintf(stderr, "script, line %d: %s\n", + lineno, errmsg); quit(2); } break; Modified: projects/armv6/bin/ps/print.c ============================================================================== --- projects/armv6/bin/ps/print.c Fri Feb 24 17:53:24 2012 (r232119) +++ projects/armv6/bin/ps/print.c Fri Feb 24 18:39:55 2012 (r232120) @@ -99,10 +99,8 @@ printheader(void) char * arguments(KINFO *k, VARENT *ve) { - VAR *v; char *vis_args; - v = ve->var; if ((vis_args = malloc(strlen(k->ki_args) * 4 + 1)) == NULL) errx(1, "malloc failed"); strvis(vis_args, k->ki_args, VIS_TAB | VIS_NL | VIS_NOSLASH); @@ -116,10 +114,8 @@ arguments(KINFO *k, VARENT *ve) char * command(KINFO *k, VARENT *ve) { - VAR *v; char *vis_args, *vis_env, *str; - v = ve->var; if (cflag) { /* If it is the last field, then don't pad */ if (STAILQ_NEXT(ve, next_ve) == NULL) { @@ -172,10 +168,8 @@ command(KINFO *k, VARENT *ve) char * ucomm(KINFO *k, VARENT *ve) { - VAR *v; char *str; - v = ve->var; if (STAILQ_NEXT(ve, next_ve) == NULL) { /* last field, don't pad */ asprintf(&str, "%s%s%s%s", k->ki_d.prefix ? k->ki_d.prefix : "", @@ -192,12 +186,10 @@ ucomm(KINFO *k, VARENT *ve) } char * -tdnam(KINFO *k, VARENT *ve) +tdnam(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; if (showthreads && k->ki_p->ki_numthreads > 1) str = strdup(k->ki_p->ki_tdname); else @@ -207,28 +199,24 @@ tdnam(KINFO *k, VARENT *ve) } char * -logname(KINFO *k, VARENT *ve) +logname(KINFO *k, VARENT *ve __unused) { - VAR *v; - v = ve->var; if (*k->ki_p->ki_login == '\0') return (NULL); return (strdup(k->ki_p->ki_login)); } char * -state(KINFO *k, VARENT *ve) +state(KINFO *k, VARENT *ve __unused) { int flag, tdflags; char *cp, *buf; - VAR *v; buf = malloc(16); if (buf == NULL) errx(1, "malloc failed"); - v = ve->var; flag = k->ki_p->ki_flag; tdflags = k->ki_p->ki_tdflags; /* XXXKSE */ cp = buf; @@ -294,72 +282,58 @@ state(KINFO *k, VARENT *ve) #define scalepri(x) ((x) - PZERO) char * -pri(KINFO *k, VARENT *ve) +pri(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; asprintf(&str, "%d", scalepri(k->ki_p->ki_pri.pri_level)); return (str); } char * -upr(KINFO *k, VARENT *ve) +upr(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; asprintf(&str, "%d", scalepri(k->ki_p->ki_pri.pri_user)); return (str); } #undef scalepri char * -uname(KINFO *k, VARENT *ve) +uname(KINFO *k, VARENT *ve __unused) { - VAR *v; - v = ve->var; return (strdup(user_from_uid(k->ki_p->ki_uid, 0))); } char * -egroupname(KINFO *k, VARENT *ve) +egroupname(KINFO *k, VARENT *ve __unused) { - VAR *v; - v = ve->var; return (strdup(group_from_gid(k->ki_p->ki_groups[0], 0))); } char * -rgroupname(KINFO *k, VARENT *ve) +rgroupname(KINFO *k, VARENT *ve __unused) { - VAR *v; - v = ve->var; return (strdup(group_from_gid(k->ki_p->ki_rgid, 0))); } char * -runame(KINFO *k, VARENT *ve) +runame(KINFO *k, VARENT *ve __unused) { - VAR *v; - v = ve->var; return (strdup(user_from_uid(k->ki_p->ki_ruid, 0))); } char * -tdev(KINFO *k, VARENT *ve) +tdev(KINFO *k, VARENT *ve __unused) { - VAR *v; dev_t dev; char *str; - v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV) str = strdup("-"); @@ -370,13 +344,11 @@ tdev(KINFO *k, VARENT *ve) } char * -tname(KINFO *k, VARENT *ve) +tname(KINFO *k, VARENT *ve __unused) { - VAR *v; dev_t dev; char *ttname, *str; - v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) str = strdup("- "); @@ -394,13 +366,11 @@ tname(KINFO *k, VARENT *ve) } char * -longtname(KINFO *k, VARENT *ve) +longtname(KINFO *k, VARENT *ve __unused) { - VAR *v; dev_t dev; const char *ttname; - v = ve->var; dev = k->ki_p->ki_tdev; if (dev == NODEV || (ttname = devname(dev, S_IFCHR)) == NULL) ttname = "-"; @@ -409,9 +379,8 @@ longtname(KINFO *k, VARENT *ve) } char * -started(KINFO *k, VARENT *ve) +started(KINFO *k, VARENT *ve __unused) { - VAR *v; time_t then; struct tm *tp; static int use_ampm = -1; @@ -422,7 +391,6 @@ started(KINFO *k, VARENT *ve) if (buf == NULL) errx(1, "malloc failed"); - v = ve->var; if (!k->ki_valid) return (NULL); if (use_ampm < 0) @@ -441,9 +409,8 @@ started(KINFO *k, VARENT *ve) } char * -lstarted(KINFO *k, VARENT *ve) +lstarted(KINFO *k, VARENT *ve __unused) { - VAR *v; time_t then; char *buf; size_t buflen = 100; @@ -452,7 +419,6 @@ lstarted(KINFO *k, VARENT *ve) if (buf == NULL) errx(1, "malloc failed"); - v = ve->var; if (!k->ki_valid) return (NULL); then = k->ki_p->ki_start.tv_sec; @@ -461,12 +427,10 @@ lstarted(KINFO *k, VARENT *ve) } char * -lockname(KINFO *k, VARENT *ve) +lockname(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; if (k->ki_p->ki_kiflag & KI_LOCKBLOCK) { if (k->ki_p->ki_lockname[0] != 0) str = strdup(k->ki_p->ki_lockname); @@ -479,12 +443,10 @@ lockname(KINFO *k, VARENT *ve) } char * -wchan(KINFO *k, VARENT *ve) +wchan(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; if (k->ki_p->ki_wchan) { if (k->ki_p->ki_wmesg[0] != 0) str = strdup(k->ki_p->ki_wmesg); @@ -497,12 +459,10 @@ wchan(KINFO *k, VARENT *ve) } char * -nwchan(KINFO *k, VARENT *ve) +nwchan(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; if (k->ki_p->ki_wchan) asprintf(&str, "%0lx", (long)k->ki_p->ki_wchan); else @@ -512,12 +472,10 @@ nwchan(KINFO *k, VARENT *ve) } char * -mwchan(KINFO *k, VARENT *ve) +mwchan(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; if (k->ki_p->ki_wchan) { if (k->ki_p->ki_wmesg[0] != 0) str = strdup(k->ki_p->ki_wmesg); @@ -535,27 +493,23 @@ mwchan(KINFO *k, VARENT *ve) } char * -vsize(KINFO *k, VARENT *ve) +vsize(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; asprintf(&str, "%lu", (u_long)(k->ki_p->ki_size / 1024)); return (str); } static char * -printtime(KINFO *k, VARENT *ve, long secs, long psecs) +printtime(KINFO *k, VARENT *ve __unused, long secs, long psecs) /* psecs is "parts" of a second. first micro, then centi */ { - VAR *v; static char decimal_point; char *str; if (decimal_point == '\0') decimal_point = localeconv()->decimal_point[0]; - v = ve->var; if (!k->ki_valid) { secs = 0; psecs = 0; @@ -618,14 +572,12 @@ usertime(KINFO *k, VARENT *ve) } char * -elapsed(KINFO *k, VARENT *ve) +elapsed(KINFO *k, VARENT *ve __unused) { - VAR *v; time_t val; int days, hours, mins, secs; char *str; - v = ve->var; if (!k->ki_valid) return (NULL); val = now - k->ki_p->ki_start.tv_sec; @@ -646,13 +598,11 @@ elapsed(KINFO *k, VARENT *ve) } char * -elapseds(KINFO *k, VARENT *ve) +elapseds(KINFO *k, VARENT *ve __unused) { - VAR *v; time_t val; char *str; - v = ve->var; if (!k->ki_valid) return (NULL); val = now - k->ki_p->ki_start.tv_sec; @@ -682,12 +632,10 @@ getpcpu(const KINFO *k) } char * -pcpu(KINFO *k, VARENT *ve) +pcpu(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; asprintf(&str, "%.1f", getpcpu(k)); return (str); } @@ -712,47 +660,39 @@ getpmem(KINFO *k) } char * -pmem(KINFO *k, VARENT *ve) +pmem(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; asprintf(&str, "%.1f", getpmem(k)); return (str); } char * -pagein(KINFO *k, VARENT *ve) +pagein(KINFO *k, VARENT *ve __unused) { - VAR *v; char *str; - v = ve->var; asprintf(&str, "%ld", k->ki_valid ? k->ki_p->ki_rusage.ru_majflt : 0); return (str); } /* ARGSUSED */ char * -maxrss(KINFO *k __unused, VARENT *ve) +maxrss(KINFO *k __unused, VARENT *ve __unused) { - VAR *v; - v = ve->var; /* XXX not yet */ return (NULL); } char * -priorityr(KINFO *k, VARENT *ve) +priorityr(KINFO *k, VARENT *ve __unused) { - VAR *v; struct priority *lpri; char *str; unsigned class, level; - v = ve->var; lpri = &k->ki_p->ki_pri; class = lpri->pri_class; level = lpri->pri_level; @@ -852,25 +792,21 @@ rvar(KINFO *k, VARENT *ve) } char * -emulname(KINFO *k, VARENT *ve) +emulname(KINFO *k, VARENT *ve __unused) { - VAR *v; - v = ve->var; if (k->ki_p->ki_emul == NULL) return (NULL); return (strdup(k->ki_p->ki_emul)); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 18:40:29 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F6BD106564A; Fri, 24 Feb 2012 18:40:29 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail12.syd.optusnet.com.au (mail12.syd.optusnet.com.au [211.29.132.193]) by mx1.freebsd.org (Postfix) with ESMTP id 3920C8FC0A; Fri, 24 Feb 2012 18:40:28 +0000 (UTC) Received: from c211-30-171-136.carlnfd1.nsw.optusnet.com.au (c211-30-171-136.carlnfd1.nsw.optusnet.com.au [211.30.171.136]) by mail12.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id q1OIeQnS000990 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 25 Feb 2012 05:40:27 +1100 Date: Sat, 25 Feb 2012 05:40:26 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Gleb Smirnoff In-Reply-To: <20120223191032.GW92625@FreeBSD.org> Message-ID: <20120225052404.M2440@besplex.bde.org> References: <201202231019.q1NAJObb099152@svn.freebsd.org> <20120224034735.T1834@besplex.bde.org> <20120223191032.GW92625@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org, Bruce Evans Subject: Re: svn commit: r232044 - projects/pf/head/sys/sys X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 18:40:29 -0000 On Thu, 23 Feb 2012, Gleb Smirnoff wrote: > On Fri, Feb 24, 2012 at 04:30:53AM +1100, Bruce Evans wrote: > B> [... should use FreeBSD kernel API for timevalsub(),..] > Thanks for important comments. Is the fix in r232062 okay? It is short enough (not many places to change), but seems to unimprove the variable names. % Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c % ============================================================================== % --- projects/pf/head/sys/contrib/pf/net/pf_norm.c Thu Feb 23 18:59:32 2012 (r232061) % +++ projects/pf/head/sys/contrib/pf/net/pf_norm.c Thu Feb 23 19:03:22 2012 (r232062) % @@ -1670,7 +1670,6 @@ pf_normalize_tcp_stateful(struct mbuf *m % * connection limit until we can come up with a better % * lowerbound to the TS echo check. % */ % - struct timeval delta_ts; % int ts_fudge; % % % @@ -1686,9 +1685,9 @@ pf_normalize_tcp_stateful(struct mbuf *m % /* Calculate max ticks since the last timestamp */ % #define TS_MAXFREQ 1100 /* RFC max TS freq of 1Khz + 10% skew */ % #define TS_MICROSECS 1000000 /* microseconds per second */ % - timersub(&uptime, &src->scrub->pfss_last, &delta_ts); % - tsval_from_last = (delta_ts.tv_sec + ts_fudge) * TS_MAXFREQ; % - tsval_from_last += delta_ts.tv_usec / (TS_MICROSECS/TS_MAXFREQ); % + timevalsub(&uptime, &src->scrub->pfss_last); % + tsval_from_last = (uptime.tv_sec + ts_fudge) * TS_MAXFREQ; % + tsval_from_last += uptime.tv_usec / (TS_MICROSECS/TS_MAXFREQ); % % if ((src->state >= TCPS_ESTABLISHED && % dst->state >= TCPS_ESTABLISHED) && The FreeBSD kernel API is unfortunately not compatible -- its takes 2 parameters instead of 3, with the target timeval being an input-output parameter. This change seems to abuse the `uptime' variable for a delta-time that is far from being an uptime. To write it clearly, I think using the 2-parameter API requires an extra statement: delta_ts = uptime; /* although it is not yet a delta */ timevalsub(&delta_ts, &src->scrub->pfss_last); % @@ -1712,8 +1711,8 @@ pf_normalize_tcp_stateful(struct mbuf *m % DPFPRINTF((" tsval: %u tsecr: %u +ticks: %u " % "idle: %jus %lums\n", % tsval, tsecr, tsval_from_last, % - (uintmax_t)delta_ts.tv_sec, % - delta_ts.tv_usec / 1000)); % + (uintmax_t)uptime.tv_sec, % + uptime.tv_usec / 1000)); At least keeping the old variable avoids the need to change this. The 3-parameter form is sometimes more convenient, but not really needed. CPU architectures often only support only 2-parameter operations because the bloat for the 3-parameter form is larger. I don't like large APIs, so I will consider only supporting the 2-parameter form a feature :-). In software, the compiler can optimize away the extra assignment much more easily than CPU hardware can do it. Actually, this optimization is probably now routine for hardware too. Bruce From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 18:56:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 00D5F1065675; Fri, 24 Feb 2012 18:56:22 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF7A78FC16; Fri, 24 Feb 2012 18:56: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 q1OIuLVg079578; Fri, 24 Feb 2012 18:56:21 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OIuLex079575; Fri, 24 Feb 2012 18:56:21 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241856.q1OIuLex079575@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 18:56:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232121 - projects/armv6/sys/arm/ti/omap4/pandaboard X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 18:56:22 -0000 Author: cognet Date: Fri Feb 24 18:56:21 2012 New Revision: 232121 URL: http://svn.freebsd.org/changeset/base/232121 Log: Revive those bits, they are needed if uboot isn't there to do the job for us. Modified: projects/armv6/sys/arm/ti/omap4/pandaboard/files.pandaboard projects/armv6/sys/arm/ti/omap4/pandaboard/pandaboard.c Modified: projects/armv6/sys/arm/ti/omap4/pandaboard/files.pandaboard ============================================================================== --- projects/armv6/sys/arm/ti/omap4/pandaboard/files.pandaboard Fri Feb 24 18:39:55 2012 (r232120) +++ projects/armv6/sys/arm/ti/omap4/pandaboard/files.pandaboard Fri Feb 24 18:56:21 2012 (r232121) @@ -1,3 +1,3 @@ # $FreeBSD$ -# arm/ti/omap4/pandaboard/pandaboard.c standard +arm/ti/omap4/pandaboard/pandaboard.c standard Modified: projects/armv6/sys/arm/ti/omap4/pandaboard/pandaboard.c ============================================================================== --- projects/armv6/sys/arm/ti/omap4/pandaboard/pandaboard.c Fri Feb 24 18:39:55 2012 (r232120) +++ projects/armv6/sys/arm/ti/omap4/pandaboard/pandaboard.c Fri Feb 24 18:56:21 2012 (r232121) @@ -41,30 +41,30 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include -#include #include #include /* Registers in the SCRM that control the AUX clocks */ -#define SCRM_ALTCLKSRC (OMAP44XX_SCRM_VBASE + 0x110) -#define SCRM_AUXCLK0 (OMAP44XX_SCRM_VBASE + 0x0310) -#define SCRM_AUXCLK1 (OMAP44XX_SCRM_VBASE + 0x0314) -#define SCRM_AUXCLK2 (OMAP44XX_SCRM_VBASE + 0x0318) -#define SCRM_AUXCLK3 (OMAP44XX_SCRM_VBASE + 0x031C) +#define SCRM_ALTCLKSRC (0x110) +#define SCRM_AUXCLK0 (0x0310) +#define SCRM_AUXCLK1 (0x0314) +#define SCRM_AUXCLK2 (0x0318) +#define SCRM_AUXCLK3 (0x031C) /* Some of the GPIO register set */ -#define GPIO1_OE (OMAP44XX_GPIO1_VBASE + 0x0134) -#define GPIO1_CLEARDATAOUT (OMAP44XX_GPIO1_VBASE + 0x0190) -#define GPIO1_SETDATAOUT (OMAP44XX_GPIO1_VBASE + 0x0194) -#define GPIO2_OE (OMAP44XX_GPIO2_VBASE + 0x0134) -#define GPIO2_CLEARDATAOUT (OMAP44XX_GPIO2_VBASE + 0x0190) -#define GPIO2_SETDATAOUT (OMAP44XX_GPIO2_VBASE + 0x0194) +#define GPIO1_OE (0x0134) +#define GPIO1_CLEARDATAOUT (0x0190) +#define GPIO1_SETDATAOUT (0x0194) +#define GPIO2_OE (0x0134) +#define GPIO2_CLEARDATAOUT (0x0190) +#define GPIO2_SETDATAOUT (0x0194) /* Some of the PADCONF register set */ -#define CONTROL_WKUP_PAD0_FREF_CLK3_OUT (OMAP44XX_SCM_PADCONF_VBASE + 0x058) -#define CONTROL_CORE_PAD1_KPD_COL2 (OMAP44XX_SCM_PADCONF_VBASE + 0x186) -#define CONTROL_CORE_PAD0_GPMC_WAIT1 (OMAP44XX_SCM_PADCONF_VBASE + 0x08C) +#define CONTROL_WKUP_PAD0_FREF_CLK3_OUT (0x058) +#define CONTROL_CORE_PAD1_KPD_COL2 (0x186) +#define CONTROL_CORE_PAD0_GPMC_WAIT1 (0x08C) #define REG_WRITE32(r, x) *((volatile uint32_t*)(r)) = (uint32_t)(x) #define REG_READ32(r) *((volatile uint32_t*)(r)) @@ -117,44 +117,60 @@ __FBSDID("$FreeBSD$"); static void usb_hub_init(void) { + bus_space_handle_t scrm_addr, gpio1_addr, gpio2_addr, scm_addr; + if (bus_space_map(fdtbus_bs_tag, OMAP44XX_SCRM_HWBASE, + OMAP44XX_SCRM_SIZE, 0, &scrm_addr) != 0) + panic("Couldn't map SCRM registers"); + if (bus_space_map(fdtbus_bs_tag, OMAP44XX_GPIO1_HWBASE, + OMAP44XX_GPIO1_SIZE, 0, &gpio1_addr) != 0) + panic("Couldn't map GPIO1 registers"); + if (bus_space_map(fdtbus_bs_tag, OMAP44XX_GPIO2_HWBASE, + OMAP44XX_GPIO2_SIZE, 0, &gpio2_addr) != 0) + panic("Couldn't map GPIO2 registers"); + if (bus_space_map(fdtbus_bs_tag, OMAP44XX_SCM_PADCONF_HWBASE, + OMAP44XX_SCM_PADCONF_SIZE, 0, &scm_addr) != 0) + panic("Couldn't map SCM Padconf registers"); + + /* Need to set FREF_CLK3_OUT to 19.2 MHz and pump it out on pin GPIO_WK31. * We know the SYS_CLK is 38.4Mhz and therefore to get the needed 19.2Mhz, * just use a 2x divider and ensure the SYS_CLK is used as the source. */ - //int pouet = REG_READ32(SCRM_AUXCLK3); - REG_WRITE32(SCRM_AUXCLK3, (1 << 16) | /* Divider of 2 */ + REG_WRITE32(scrm_addr + SCRM_AUXCLK3, (1 << 16) | /* Divider of 2 */ (0 << 1) | /* Use the SYS_CLK as the source */ (1 << 8)); /* Enable the clock */ -#if 0 - REG_WRITE32(SCRM_ALTCLKSRC, (1 << 1) | ( 3 << 2)); -#endif /* Enable the clock out to the pin (GPIO_WK31). * muxmode=fref_clk3_out, pullup/down=disabled, input buffer=disabled, * wakeup=disabled. */ - REG_WRITE16(CONTROL_WKUP_PAD0_FREF_CLK3_OUT, 0x0000); + REG_WRITE16(scm_addr + CONTROL_WKUP_PAD0_FREF_CLK3_OUT, 0x0000); /* Disable the power to the USB hub, drive GPIO1 low */ - REG_WRITE32(GPIO1_OE, REG_READ32(GPIO1_OE) & ~(1UL << 1)); - REG_WRITE32(GPIO1_CLEARDATAOUT, (1UL << 1)); - REG_WRITE16(CONTROL_CORE_PAD1_KPD_COL2, 0x0003); + REG_WRITE32(gpio1_addr + GPIO1_OE, REG_READ32(gpio1_addr + + GPIO1_OE) & ~(1UL << 1)); + REG_WRITE32(gpio1_addr + GPIO1_CLEARDATAOUT, (1UL << 1)); + REG_WRITE16(scm_addr + CONTROL_CORE_PAD1_KPD_COL2, 0x0003); /* Reset the USB PHY and Hub using GPIO_62 */ - REG_WRITE32(GPIO2_OE, REG_READ32(GPIO2_OE) & ~(1UL << 30)); - REG_WRITE32(GPIO2_CLEARDATAOUT, (1UL << 30)); - REG_WRITE16(CONTROL_CORE_PAD0_GPMC_WAIT1, 0x0003); + REG_WRITE32(gpio2_addr + GPIO2_OE, + REG_READ32(gpio2_addr + GPIO2_OE) & ~(1UL << 30)); + REG_WRITE32(gpio2_addr + GPIO2_CLEARDATAOUT, (1UL << 30)); + REG_WRITE16(scm_addr + CONTROL_CORE_PAD0_GPMC_WAIT1, 0x0003); DELAY(10); - REG_WRITE32(GPIO2_SETDATAOUT, (1UL << 30)); + REG_WRITE32(gpio2_addr + GPIO2_SETDATAOUT, (1UL << 30)); /* Enable power to the hub (GPIO_1) */ - REG_WRITE32(GPIO1_SETDATAOUT, (1UL << 1)); - + REG_WRITE32(gpio1_addr + GPIO1_SETDATAOUT, (1UL << 1)); + bus_space_unmap(fdtbus_bs_tag, scrm_addr, OMAP44XX_SCRM_SIZE); + bus_space_unmap(fdtbus_bs_tag, gpio1_addr, OMAP44XX_GPIO1_SIZE); + bus_space_unmap(fdtbus_bs_tag, gpio2_addr, OMAP44XX_GPIO2_SIZE); + bus_space_unmap(fdtbus_bs_tag, scm_addr, OMAP44XX_SCM_PADCONF_SIZE); } /** From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 18:57:21 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 537EB106564A; Fri, 24 Feb 2012 18:57:21 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3C05A8FC08; Fri, 24 Feb 2012 18:57: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 q1OIvLxC079647; Fri, 24 Feb 2012 18:57:21 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OIvL5W079642; Fri, 24 Feb 2012 18:57:21 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241857.q1OIvL5W079642@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 18:57:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232122 - in projects/armv6/sys/arm: arm include ti ti/omap4 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 18:57:21 -0000 Author: cognet Date: Fri Feb 24 18:57:20 2012 New Revision: 232122 URL: http://svn.freebsd.org/changeset/base/232122 Log: Bring in PL310 support, with the corresponding OMAP bits. Added: projects/armv6/sys/arm/arm/pl310.c (contents, props changed) projects/armv6/sys/arm/include/pl310.h (contents, props changed) projects/armv6/sys/arm/ti/omap4/omap4_l2cache.c (contents, props changed) projects/armv6/sys/arm/ti/ti_smc.S (contents, props changed) projects/armv6/sys/arm/ti/ti_smc.h (contents, props changed) Added: projects/armv6/sys/arm/arm/pl310.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/arm/pl310.c Fri Feb 24 18:57:20 2012 (r232122) @@ -0,0 +1,285 @@ +/*- + * Copyright (c) 2012 Olivier Houchard + * Copyright (c) 2011 + * Ben Gray . + * 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. The name of the company nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY BEN GRAY ``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 BEN GRAY 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +/** + * PL310 - L2 Cache Controller register offsets. + * + */ +#define PL310_CACHE_ID 0x000 +#define PL310_CACHE_TYPE 0x004 +#define PL310_CTRL 0x100 +#define PL310_AUX_CTRL 0x104 +#define PL310_EVENT_COUNTER_CTRL 0x200 +#define PL310_EVENT_COUNTER1_CONF 0x204 +#define PL310_EVENT_COUNTER0_CONF 0x208 +#define PL310_EVENT_COUNTER1_VAL 0x20C +#define PL310_EVENT_COUNTER0_VAL 0x210 +#define PL310_INTR_MASK 0x214 +#define PL310_MASKED_INTR_STAT 0x218 +#define PL310_RAW_INTR_STAT 0x21C +#define PL310_INTR_CLEAR 0x220 +#define PL310_CACHE_SYNC 0x730 +#define PL310_INV_LINE_PA 0x770 +#define PL310_INV_WAY 0x77C +#define PL310_CLEAN_LINE_PA 0x7B0 +#define PL310_CLEAN_LINE_IDX 0x7B8 +#define PL310_CLEAN_WAY 0x7BC +#define PL310_CLEAN_INV_LINE_PA 0x7F0 +#define PL310_CLEAN_INV_LINE_IDX 0x7F8 +#define PL310_CLEAN_INV_WAY 0x7FC +#define PL310_LOCKDOWN_D_WAY(x) (0x900 + ((x) * 8)) +#define PL310_LOCKDOWN_I_WAY(x) (0x904 + ((x) * 8)) +#define PL310_LOCKDOWN_LINE_ENABLE 0x950 +#define PL310_UNLOCK_ALL_LINES_WAY 0x954 +#define PL310_ADDR_FILTER_START 0xC00 +#define PL310_ADDR_FILTER_END 0xC04 +#define PL310_DEBUG_CTRL 0xF40 + + +#define PL310_AUX_CTRL_MASK 0xc0000fff +#define PL310_AUX_CTRL_ASSOCIATIVITY_SHIFT 16 +#define PL310_AUX_CTRL_WAY_SIZE_SHIFT 17 +#define PL310_AUX_CTRL_WAY_SIZE_MASK (0x7 << 17) +#define PL310_AUX_CTRL_SHARE_OVERRIDE_SHIFT 22 +#define PL310_AUX_CTRL_NS_LOCKDOWN_SHIFT 26 +#define PL310_AUX_CTRL_NS_INT_CTRL_SHIFT 27 +#define PL310_AUX_CTRL_DATA_PREFETCH_SHIFT 28 +#define PL310_AUX_CTRL_INSTR_PREFETCH_SHIFT 29 +#define PL310_AUX_CTRL_EARLY_BRESP_SHIFT 30 + + +void omap4_l2cache_wbinv_range(vm_paddr_t physaddr, vm_size_t size); +void omap4_l2cache_inv_range(vm_paddr_t physaddr, vm_size_t size); +void omap4_l2cache_wb_range(vm_paddr_t physaddr, vm_size_t size); +void omap4_l2cache_wbinv_all(void); +void omap4_l2cache_inv_all(void); +void omap4_l2cache_wb_all(void); + +static uint32_t g_l2cache_way_mask; + +static const uint32_t g_l2cache_line_size = 32; +static const uint32_t g_l2cache_align_mask = (32 - 1); + +static uint32_t g_l2cache_size; + +static struct pl310_softc *pl310_softc; + +/** + * pl310_read4 - read a 32-bit value from the PL310 registers + * pl310_write4 - write a 32-bit value from the PL310 registers + * @off: byte offset within the register set to read from + * @val: the value to write into the register + * + * + * LOCKING: + * None + * + * RETURNS: + * nothing in case of write function, if read function returns the value read. + */ +static __inline uint32_t +pl310_read4(bus_size_t off) +{ + return bus_read_4(pl310_softc->sc_mem_res, off); +} +static __inline void +pl310_write4(bus_size_t off, uint32_t val) +{ + bus_write_4(pl310_softc->sc_mem_res, off, val); +} + +static __inline void +pl310_wait_background_op(uint32_t off, uint32_t mask) +{ + while (pl310_read4(off) & mask); +} + + +/** + * pl310_cache_sync - performs a cache sync operation + * + * According to the TRM: + * + * "Before writing to any other register you must perform an explicit + * Cache Sync operation. This is particularly important when the cache is + * enabled and changes to how the cache allocates new lines are to be made." + * + * + */ +static __inline void +pl310_cache_sync(void) +{ + pl310_write4(PL310_CACHE_SYNC, 0); +} + + +static void +pl310_wbinv_all(void) +{ + pl310_write4(PL310_CLEAN_INV_WAY, g_l2cache_way_mask); + pl310_wait_background_op(PL310_CLEAN_INV_WAY, g_l2cache_way_mask); +} + +static void +pl310_wbinv_range(vm_paddr_t start, vm_size_t size) +{ + + if (size & g_l2cache_align_mask) { + size &= ~g_l2cache_align_mask; + size += g_l2cache_line_size; + } + while (size > 0) { + pl310_write4(PL310_CLEAN_INV_LINE_PA, start); + start += g_l2cache_line_size; + size -= g_l2cache_line_size; + } +} + +static void +pl310_wb_range(vm_paddr_t start, vm_size_t size) +{ + + if (size & g_l2cache_align_mask) { + size &= ~g_l2cache_align_mask; + size += g_l2cache_line_size; + } + while (size > 0) { + pl310_write4(PL310_CLEAN_LINE_PA, start); + start += g_l2cache_line_size; + size -= g_l2cache_line_size; + } + +} + +static void +pl310_inv_range(vm_paddr_t start, vm_size_t size) +{ + + if (size & g_l2cache_align_mask) { + size &= ~g_l2cache_align_mask; + size += g_l2cache_line_size; + } + while (size > 0) { + pl310_write4(PL310_INV_LINE_PA, start); + start += g_l2cache_line_size; + size -= g_l2cache_line_size; + } + +} + +static int +pl310_probe(device_t dev) +{ + + if (!ofw_bus_is_compatible(dev, "arm,pl310")) + return (ENXIO); + device_set_desc(dev, "PL310 L2 cache controller"); + return (0); +} + +static int +pl310_attach(device_t dev) +{ + struct pl310_softc *sc = device_get_softc(dev); + int rid = 0; + uint32_t aux_value; + uint32_t way_size; + uint32_t ways_assoc; + uint32_t ctrl_value; + + sc->sc_mem_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->sc_mem_res == NULL) + panic("%s: Cannot map registers", device_get_name(dev)); + pl310_softc = sc; + + platform_init_pl310(sc); + aux_value = pl310_read4(PL310_AUX_CTRL); + way_size = (aux_value & PL310_AUX_CTRL_WAY_SIZE_MASK) >> + PL310_AUX_CTRL_WAY_SIZE_SHIFT; + way_size = 1 << (way_size + 13); + if (aux_value & (1 << PL310_AUX_CTRL_ASSOCIATIVITY_SHIFT)) + ways_assoc = 16; + else + ways_assoc = 8; + g_l2cache_way_mask = (1 << ways_assoc) - 1; + g_l2cache_size = way_size * ways_assoc; + /* Print the information */ + printf(" L2 Cache: %uKB/%dB %d ways\n", (g_l2cache_size / 1024), + g_l2cache_line_size, ways_assoc); + ctrl_value = pl310_read4(PL310_CTRL); + if (!(ctrl_value & 0x1)) { + /* Enable the L2 cache if disabled */ + pl310_write4(PL310_CTRL, ctrl_value & 0x1); + } + pl310_wbinv_all(); + + /* Set the l2 functions in the set of cpufuncs */ + cpufuncs.cf_l2cache_wbinv_all = pl310_wbinv_all; + cpufuncs.cf_l2cache_wbinv_range = pl310_wbinv_range; + cpufuncs.cf_l2cache_inv_range = pl310_inv_range; + cpufuncs.cf_l2cache_wb_range = pl310_wb_range; + return (0); +} + +static device_method_t pl310_methods[] = { + DEVMETHOD(device_probe, pl310_probe), + DEVMETHOD(device_attach, pl310_attach), + {0, 0}, +}; + +static driver_t pl310_driver = { + "l2cache", + pl310_methods, + sizeof(struct pl310_softc), +}; +static devclass_t pl310_devclass; + +DRIVER_MODULE(pl310, simplebus, pl310_driver, pl310_devclass, 0, 0); + Added: projects/armv6/sys/arm/include/pl310.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/include/pl310.h Fri Feb 24 18:57:20 2012 (r232122) @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2012 Olivier Houchard. 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 ``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 PL310_H_ +#define PL310_H_ +struct pl310_softc { + struct resource *sc_mem_res; +}; + +void platform_init_pl310(struct pl310_softc *sc); + +#endif /* PL310_H_ */ Added: projects/armv6/sys/arm/ti/omap4/omap4_l2cache.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/omap4/omap4_l2cache.c Fri Feb 24 18:57:20 2012 (r232122) @@ -0,0 +1,39 @@ +/*- + * Copyright (c) 2012 Olivier Houchard. 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 ``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. + */ + +#include +__FBSDID("$FreeBSD"); +#include +#include +#include +#include +#include +#include + +void +platform_init_pl310(struct pl310_softc *softc) +{ + ti_smc0(1, 0, L2CACHE_ENABLE_L2); +} + Added: projects/armv6/sys/arm/ti/ti_smc.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/ti_smc.S Fri Feb 24 18:57:20 2012 (r232122) @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 2012 Olivier Houchard. 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 ``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. + */ + +#include +#include +__FBSDID("$FreeBSD$"); + +/* Issue a smc #0 call */ +/* r0 and r1 contains the eventual arguments, r2 contains the function ID */ +ENTRY(ti_smc0) + stmfd sp!, {r4-r12, lr} + mov r12, r2 /* the rom expects the function ID in r12 */ + dsb + smc #0 + ldmfd sp!, {r4-r12, pc} + Added: projects/armv6/sys/arm/ti/ti_smc.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/ti_smc.h Fri Feb 24 18:57:20 2012 (r232122) @@ -0,0 +1,33 @@ +/*- + * Copyright (c) 2012 Olivier Houchard. 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 ``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 TI_SMC_H_ +#define TI_SMC_H_ +uint32_t ti_smc0(uint32_t r0, uint32_t r1, uint32_t function_id); +#endif /* TI_SMC_H_ */ From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 18:58:02 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17B821065676; Fri, 24 Feb 2012 18:58:02 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 030B08FC13; Fri, 24 Feb 2012 18:58: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 q1OIw1fO079700; Fri, 24 Feb 2012 18:58:01 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OIw188079698; Fri, 24 Feb 2012 18:58:01 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241858.q1OIw188079698@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 18:58:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232123 - projects/armv6/sys/arm/ti/usb X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 18:58:02 -0000 Author: cognet Date: Fri Feb 24 18:58:01 2012 New Revision: 232123 URL: http://svn.freebsd.org/changeset/base/232123 Log: No need to call ehci_[resume|suspend|shutdown] explicitely anymore, I kept the corresponding omap_* functions instead of just using bus_generic_* so that a brave soul can implement them properly. Modified: projects/armv6/sys/arm/ti/usb/omap_ehci.c Modified: projects/armv6/sys/arm/ti/usb/omap_ehci.c ============================================================================== --- projects/armv6/sys/arm/ti/usb/omap_ehci.c Fri Feb 24 18:57:20 2012 (r232122) +++ projects/armv6/sys/arm/ti/usb/omap_ehci.c Fri Feb 24 18:58:01 2012 (r232123) @@ -667,10 +667,10 @@ omap_ehci_suspend(device_t dev) ehci_softc_t *sc = device_get_softc(dev); int err; + sc = sc; err = bus_generic_suspend(dev); if (err) return (err); - ehci_suspend(sc); return (0); } @@ -691,8 +691,7 @@ static int omap_ehci_resume(device_t dev) { ehci_softc_t *sc = device_get_softc(dev); - - ehci_resume(sc); + sc = sc; bus_generic_resume(dev); @@ -718,10 +717,10 @@ omap_ehci_shutdown(device_t dev) ehci_softc_t *sc = device_get_softc(dev); int err; + sc = sc; err = bus_generic_shutdown(dev); if (err) return (err); - ehci_shutdown(sc); return (0); } From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 19:05:33 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 859061065670; Fri, 24 Feb 2012 19:05:33 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 716368FC13; Fri, 24 Feb 2012 19:05: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 q1OJ5Xms079963; Fri, 24 Feb 2012 19:05:33 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OJ5XxI079961; Fri, 24 Feb 2012 19:05:33 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241905.q1OJ5XxI079961@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 19:05:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232124 - projects/armv6/sys/arm/conf X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 19:05:33 -0000 Author: cognet Date: Fri Feb 24 19:05:33 2012 New Revision: 232124 URL: http://svn.freebsd.org/changeset/base/232124 Log: Add the pl310 Modified: projects/armv6/sys/arm/conf/PANDABOARD Modified: projects/armv6/sys/arm/conf/PANDABOARD ============================================================================== --- projects/armv6/sys/arm/conf/PANDABOARD Fri Feb 24 18:58:01 2012 (r232123) +++ projects/armv6/sys/arm/conf/PANDABOARD Fri Feb 24 19:05:33 2012 (r232124) @@ -91,6 +91,7 @@ device gpio device pty +device pl310 # PL310 L2 cache controller # Debugging for use in -current #options VERBOSE_SYSINIT #Enable verbose sysinit messages options KDB From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 19:07:07 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1645106564A; Fri, 24 Feb 2012 19:07:07 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ACE7E8FC0A; Fri, 24 Feb 2012 19:07: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 q1OJ77XL080043; Fri, 24 Feb 2012 19:07:07 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OJ77vd080041; Fri, 24 Feb 2012 19:07:07 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241907.q1OJ77vd080041@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 19:07:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232125 - projects/armv6/sys/arm/ti/omap4 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 19:07:07 -0000 Author: cognet Date: Fri Feb 24 19:07:07 2012 New Revision: 232125 URL: http://svn.freebsd.org/changeset/base/232125 Log: Add the new files for omap4 Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Fri Feb 24 19:05:33 2012 (r232124) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Fri Feb 24 19:07:07 2012 (r232125) @@ -18,6 +18,7 @@ arm/ti/ti_prcm.c standard arm/ti/ti_scm.c standard arm/ti/ti_cpuid.c standard arm/ti/ti_machdep.c standard +arm/ti/ti_smc.S standard arm/ti/omap_gpio.c optional gpio arm/ti/usb/omap_ehci.c optional usb ehci @@ -25,6 +26,7 @@ arm/ti/omap_dma.c optional omap_dma arm/ti/ti_i2c.c optional ti_i2c arm/ti/omap_mmc.c optional mmc +arm/ti/omap4/omap4_l2cache.c optional pl310 arm/ti/omap4/omap4_prcm_clks.c standard arm/ti/omap4/omap4_scm_padconf.c standard From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 19:29:51 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5971E1065675; Fri, 24 Feb 2012 19:29:51 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2BD958FC1A; Fri, 24 Feb 2012 19:29: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 q1OJTpKs080708; Fri, 24 Feb 2012 19:29:51 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OJTpLs080707; Fri, 24 Feb 2012 19:29:51 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202241929.q1OJTpLs080707@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 19:29:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232126 - projects/armv6/sys/arm/ti/omap4 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 19:29:51 -0000 Author: cognet Date: Fri Feb 24 19:29:50 2012 New Revision: 232126 URL: http://svn.freebsd.org/changeset/base/232126 Log: Yet another file I forgot to include Added: projects/armv6/sys/arm/ti/omap4/omap4_smc.h (contents, props changed) Added: projects/armv6/sys/arm/ti/omap4/omap4_smc.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/omap4/omap4_smc.h Fri Feb 24 19:29:50 2012 (r232126) @@ -0,0 +1,52 @@ +/*- + * Copyright (c) 2012 Olivier Houchard. 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 ``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 OMAP4_SMC_H_ +#define OMAP4_SMC_H_ +/* Define the various function IDs used by the OMAP4 */ +#define L2CACHE_WRITE_DEBUG_REG 0x100 +#define L2CACHE_CLEAN_INV_RANG 0x101 +#define L2CACHE_ENABLE_L2 0x102 +#define READ_AUX_CORE_REGS 0x103 +#define MODIFY_AUX_CORE_0 0x104 +#define WRITE_AUX_CORE_1 0x105 +#define READ_WKG_CTRL_REG 0x106 +#define CLEAR_WKG_CTRL_REG 0x107 +#define SET_POWER_STATUS_REG 0x108 +#define WRITE_AUXCTRL_REG 0x109 +#define LOCKDOWN_TLB 0x10a +#define SELECT_TLB_ENTRY_FOR_WRITE 0x10b +#define READ_TLB_VA_ENTRY 0x10c +#define WRITE_TLB_VA_ENTRY 0x10d +#define READ_TLB_PA_ENTRY 0x10e +#define WRITE_TLB_PA_ENTRY 0x10f +#define READ_TLB_ATTR_ENTRY 0x110 +#define WRITE_TLB_ATTR_ENTRY 0x111 +#define WRITE_LATENCY_CTRL_REG 0x112 +#define WRITE_PREFETCH_CTRL_REG 0x113 +#endif /* OMAP4_SMC_H_ */ From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 20:19:29 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C8DDB1065670; Fri, 24 Feb 2012 20:19:29 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B492E8FC14; Fri, 24 Feb 2012 20:19: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 q1OKJTlS082341; Fri, 24 Feb 2012 20:19:29 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OKJTR8082339; Fri, 24 Feb 2012 20:19:29 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201202242019.q1OKJTR8082339@svn.freebsd.org> From: Olivier Houchard Date: Fri, 24 Feb 2012 20:19:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232129 - projects/armv6/sys/arm/arm X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 20:19:29 -0000 Author: cognet Date: Fri Feb 24 20:19:29 2012 New Revision: 232129 URL: http://svn.freebsd.org/changeset/base/232129 Log: Rd and Rm should be different in mul Modified: projects/armv6/sys/arm/arm/locore.S Modified: projects/armv6/sys/arm/arm/locore.S ============================================================================== --- projects/armv6/sys/arm/arm/locore.S Fri Feb 24 20:12:53 2012 (r232128) +++ projects/armv6/sys/arm/arm/locore.S Fri Feb 24 20:19:29 2012 (r232129) @@ -303,9 +303,9 @@ ASENTRY_NP(mptramp) /* Read boot address for CPU */ mov r1, #0x100 - mul r0, r0, r1 + mul r2, r0, r1 ldr r1, Lpmureg - add r0, r0, r1 + add r0, r2, r1 ldr r1, [r0], #0x00 mov pc, r1 From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 20:40:45 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE1061065674; Fri, 24 Feb 2012 20:40:45 +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 B10908FC18; Fri, 24 Feb 2012 20:40: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 q1OKejEA083022; Fri, 24 Feb 2012 20:40:45 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OKejUZ083018; Fri, 24 Feb 2012 20:40:45 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201202242040.q1OKejUZ083018@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Fri, 24 Feb 2012 20:40:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232130 - projects/multi-fibv6/9/sys/netinet6 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 20:40:45 -0000 Author: bz Date: Fri Feb 24 20:40:45 2012 New Revision: 232130 URL: http://svn.freebsd.org/changeset/base/232130 Log: MFC r232127: In selectroute() add a missing fibnum argument to an in6_rtalloc() call in an #if 0 section. In in6_selecthlim() optimize a case where in6p cannot be NULL due to an earlier check. More consistently use u_int instead of int for fibnum function arguments. Sponsored by: Cisco Systems, Inc. Modified: projects/multi-fibv6/9/sys/netinet6/in6_src.c projects/multi-fibv6/9/sys/netinet6/ip6_output.c projects/multi-fibv6/9/sys/netinet6/ip6_var.h Modified: projects/multi-fibv6/9/sys/netinet6/in6_src.c ============================================================================== --- projects/multi-fibv6/9/sys/netinet6/in6_src.c Fri Feb 24 20:19:29 2012 (r232129) +++ projects/multi-fibv6/9/sys/netinet6/in6_src.c Fri Feb 24 20:40:45 2012 (r232130) @@ -129,10 +129,10 @@ VNET_DEFINE(int, ip6_prefer_tempaddr) = static int selectroute __P((struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *, struct ifnet **, - struct rtentry **, int, int)); + struct rtentry **, int, u_int)); static int in6_selectif __P((struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *ro, struct ifnet **, - struct ifnet *, int)); + struct ifnet *, u_int)); static struct in6_addrpolicy *lookup_addrsel_policy(struct sockaddr_in6 *); @@ -518,7 +518,7 @@ in6_selectsrc(struct sockaddr_in6 *dstso static int selectroute(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, struct ip6_moptions *mopts, struct route_in6 *ro, - struct ifnet **retifp, struct rtentry **retrt, int norouteok, int fibnum) + struct ifnet **retifp, struct rtentry **retrt, int norouteok, u_int fibnum) { int error = 0; struct ifnet *ifp = NULL; @@ -630,7 +630,7 @@ selectroute(struct sockaddr_in6 *dstsock *satosin6(&ron->ro_dst) = *sin6_next; } if (ron->ro_rt == NULL) { - in6_rtalloc(ron); /* multi path case? */ + in6_rtalloc(ron, fibnum); /* multi path case? */ if (ron->ro_rt == NULL || !(ron->ro_rt->rt_flags & RTF_LLINFO)) { if (ron->ro_rt) { @@ -761,7 +761,7 @@ selectroute(struct sockaddr_in6 *dstsock static int in6_selectif(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, struct ip6_moptions *mopts, struct route_in6 *ro, struct ifnet **retifp, - struct ifnet *oifp, int fibnum) + struct ifnet *oifp, u_int fibnum) { int error; struct route_in6 sro; @@ -836,7 +836,7 @@ in6_selectroute(struct sockaddr_in6 *dst int in6_selectroute_fib(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, struct ip6_moptions *mopts, struct route_in6 *ro, - struct ifnet **retifp, struct rtentry **retrt, int fibnum) + struct ifnet **retifp, struct rtentry **retrt, u_int fibnum) { return (selectroute(dstsock, opts, mopts, ro, retifp, @@ -867,8 +867,7 @@ in6_selecthlim(struct inpcb *in6p, struc ro6.ro_dst.sin6_family = AF_INET6; ro6.ro_dst.sin6_len = sizeof(struct sockaddr_in6); ro6.ro_dst.sin6_addr = in6p->in6p_faddr; - in6_rtalloc(&ro6, in6p ? in6p->inp_inc.inc_fibnum : - RT_DEFAULT_FIB); + in6_rtalloc(&ro6, in6p->inp_inc.inc_fibnum); if (ro6.ro_rt) { lifp = ro6.ro_rt->rt_ifp; RTFREE(ro6.ro_rt); Modified: projects/multi-fibv6/9/sys/netinet6/ip6_output.c ============================================================================== --- projects/multi-fibv6/9/sys/netinet6/ip6_output.c Fri Feb 24 20:19:29 2012 (r232129) +++ projects/multi-fibv6/9/sys/netinet6/ip6_output.c Fri Feb 24 20:40:45 2012 (r232130) @@ -142,7 +142,7 @@ static int ip6_insertfraghdr __P((struct static int ip6_insert_jumboopt(struct ip6_exthdrs *, u_int32_t); static int ip6_splithdr(struct mbuf *, struct ip6_exthdrs *); static int ip6_getpmtu __P((struct route_in6 *, struct route_in6 *, - struct ifnet *, struct in6_addr *, u_long *, int *, int)); + struct ifnet *, struct in6_addr *, u_long *, int *, u_int)); static int copypktopts(struct ip6_pktopts *, struct ip6_pktopts *, int); @@ -1324,7 +1324,7 @@ ip6_insertfraghdr(struct mbuf *m0, struc static int ip6_getpmtu(struct route_in6 *ro_pmtu, struct route_in6 *ro, struct ifnet *ifp, struct in6_addr *dst, u_long *mtup, - int *alwaysfragp, int fibnum) + int *alwaysfragp, u_int fibnum) { u_int32_t mtu = 0; int alwaysfrag = 0; Modified: projects/multi-fibv6/9/sys/netinet6/ip6_var.h ============================================================================== --- projects/multi-fibv6/9/sys/netinet6/ip6_var.h Fri Feb 24 20:19:29 2012 (r232129) +++ projects/multi-fibv6/9/sys/netinet6/ip6_var.h Fri Feb 24 20:40:45 2012 (r232130) @@ -447,7 +447,7 @@ int in6_selectroute __P((struct sockaddr struct rtentry **)); int in6_selectroute_fib(struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *, struct ifnet **, - struct rtentry **, int); + struct rtentry **, u_int); u_int32_t ip6_randomid __P((void)); u_int32_t ip6_randomflowlabel __P((void)); #endif /* _KERNEL */ From owner-svn-src-projects@FreeBSD.ORG Fri Feb 24 20:42:48 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 65A2C106566B; Fri, 24 Feb 2012 20:42:48 +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 468FD8FC13; Fri, 24 Feb 2012 20:42: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 q1OKgmVc083125; Fri, 24 Feb 2012 20:42:48 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1OKgmC7083121; Fri, 24 Feb 2012 20:42:48 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201202242042.q1OKgmC7083121@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Fri, 24 Feb 2012 20:42:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232131 - projects/multi-fibv6/8/sys/netinet6 X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Feb 2012 20:42:48 -0000 Author: bz Date: Fri Feb 24 20:42:47 2012 New Revision: 232131 URL: http://svn.freebsd.org/changeset/base/232131 Log: MFC r232127: In selectroute() add a missing fibnum argument to an in6_rtalloc() call in an #if 0 section. In in6_selecthlim() optimize a case where in6p cannot be NULL due to an earlier check. More consistently use u_int instead of int for fibnum function arguments. Sponsored by: Cisco Systems, Inc. Modified: projects/multi-fibv6/8/sys/netinet6/in6_src.c projects/multi-fibv6/8/sys/netinet6/ip6_output.c projects/multi-fibv6/8/sys/netinet6/ip6_var.h Modified: projects/multi-fibv6/8/sys/netinet6/in6_src.c ============================================================================== --- projects/multi-fibv6/8/sys/netinet6/in6_src.c Fri Feb 24 20:40:45 2012 (r232130) +++ projects/multi-fibv6/8/sys/netinet6/in6_src.c Fri Feb 24 20:42:47 2012 (r232131) @@ -129,10 +129,10 @@ VNET_DEFINE(int, ip6_prefer_tempaddr) = static int selectroute __P((struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *, struct ifnet **, - struct rtentry **, int, int)); + struct rtentry **, int, u_int)); static int in6_selectif __P((struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *ro, struct ifnet **, - struct ifnet *, int)); + struct ifnet *, u_int)); static struct in6_addrpolicy *lookup_addrsel_policy(struct sockaddr_in6 *); @@ -518,7 +518,7 @@ in6_selectsrc(struct sockaddr_in6 *dstso static int selectroute(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, struct ip6_moptions *mopts, struct route_in6 *ro, - struct ifnet **retifp, struct rtentry **retrt, int norouteok, int fibnum) + struct ifnet **retifp, struct rtentry **retrt, int norouteok, u_int fibnum) { int error = 0; struct ifnet *ifp = NULL; @@ -630,7 +630,7 @@ selectroute(struct sockaddr_in6 *dstsock *satosin6(&ron->ro_dst) = *sin6_next; } if (ron->ro_rt == NULL) { - in6_rtalloc(ron); /* multi path case? */ + in6_rtalloc(ron, fibnum); /* multi path case? */ if (ron->ro_rt == NULL || !(ron->ro_rt->rt_flags & RTF_LLINFO)) { if (ron->ro_rt) { @@ -761,7 +761,7 @@ selectroute(struct sockaddr_in6 *dstsock static int in6_selectif(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, struct ip6_moptions *mopts, struct route_in6 *ro, struct ifnet **retifp, - struct ifnet *oifp, int fibnum) + struct ifnet *oifp, u_int fibnum) { int error; struct route_in6 sro; @@ -836,7 +836,7 @@ in6_selectroute(struct sockaddr_in6 *dst int in6_selectroute_fib(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, struct ip6_moptions *mopts, struct route_in6 *ro, - struct ifnet **retifp, struct rtentry **retrt, int fibnum) + struct ifnet **retifp, struct rtentry **retrt, u_int fibnum) { return (selectroute(dstsock, opts, mopts, ro, retifp, @@ -867,8 +867,7 @@ in6_selecthlim(struct inpcb *in6p, struc ro6.ro_dst.sin6_family = AF_INET6; ro6.ro_dst.sin6_len = sizeof(struct sockaddr_in6); ro6.ro_dst.sin6_addr = in6p->in6p_faddr; - in6_rtalloc(&ro6, in6p ? in6p->inp_inc.inc_fibnum : - RT_DEFAULT_FIB); + in6_rtalloc(&ro6, in6p->inp_inc.inc_fibnum); if (ro6.ro_rt) { lifp = ro6.ro_rt->rt_ifp; RTFREE(ro6.ro_rt); Modified: projects/multi-fibv6/8/sys/netinet6/ip6_output.c ============================================================================== --- projects/multi-fibv6/8/sys/netinet6/ip6_output.c Fri Feb 24 20:40:45 2012 (r232130) +++ projects/multi-fibv6/8/sys/netinet6/ip6_output.c Fri Feb 24 20:42:47 2012 (r232131) @@ -135,7 +135,7 @@ static int ip6_insertfraghdr __P((struct static int ip6_insert_jumboopt(struct ip6_exthdrs *, u_int32_t); static int ip6_splithdr(struct mbuf *, struct ip6_exthdrs *); static int ip6_getpmtu __P((struct route_in6 *, struct route_in6 *, - struct ifnet *, struct in6_addr *, u_long *, int *, int)); + struct ifnet *, struct in6_addr *, u_long *, int *, u_int)); static int copypktopts(struct ip6_pktopts *, struct ip6_pktopts *, int); @@ -1267,7 +1267,7 @@ ip6_insertfraghdr(struct mbuf *m0, struc static int ip6_getpmtu(struct route_in6 *ro_pmtu, struct route_in6 *ro, struct ifnet *ifp, struct in6_addr *dst, u_long *mtup, - int *alwaysfragp, int fibnum) + int *alwaysfragp, u_int fibnum) { u_int32_t mtu = 0; int alwaysfrag = 0; Modified: projects/multi-fibv6/8/sys/netinet6/ip6_var.h ============================================================================== --- projects/multi-fibv6/8/sys/netinet6/ip6_var.h Fri Feb 24 20:40:45 2012 (r232130) +++ projects/multi-fibv6/8/sys/netinet6/ip6_var.h Fri Feb 24 20:42:47 2012 (r232131) @@ -439,7 +439,7 @@ int in6_selectroute __P((struct sockaddr struct rtentry **)); int in6_selectroute_fib(struct sockaddr_in6 *, struct ip6_pktopts *, struct ip6_moptions *, struct route_in6 *, struct ifnet **, - struct rtentry **, int); + struct rtentry **, u_int); u_int32_t ip6_randomid __P((void)); u_int32_t ip6_randomflowlabel __P((void)); #endif /* _KERNEL */ From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 09:09:38 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A05B9106564A; Sat, 25 Feb 2012 09:09:38 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.64.117]) by mx1.freebsd.org (Postfix) with ESMTP id 2A5388FC12; Sat, 25 Feb 2012 09:09:37 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.5/8.14.5) with ESMTP id q1P99aTL037022; Sat, 25 Feb 2012 13:09:36 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.5/8.14.5/Submit) id q1P99aJg037021; Sat, 25 Feb 2012 13:09:36 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Sat, 25 Feb 2012 13:09:36 +0400 From: Gleb Smirnoff To: Ermal Lu?i Message-ID: <20120225090936.GI23483@FreeBSD.org> References: <201202231018.q1NAISrV099085@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r232043 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 09:09:38 -0000 On Fri, Feb 24, 2012 at 04:35:16PM +0000, Ermal Lu?i wrote: E> Any reason behind doing this work? I'm about to start improving pf regarding its SMP friendlyness. The changes are going to be so disruptive, that pretending that we are a shared code between OpenBSD and FreeBSD won't be possible. -- Totus tuus, Glebius. From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 09:14:17 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CA691106564A; Sat, 25 Feb 2012 09:14:17 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B9A938FC08; Sat, 25 Feb 2012 09:14: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 q1P9EH7G009291; Sat, 25 Feb 2012 09:14:17 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1P9EHew009289; Sat, 25 Feb 2012 09:14:17 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202250914.q1P9EHew009289@svn.freebsd.org> From: Gleb Smirnoff Date: Sat, 25 Feb 2012 09:14:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232148 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 09:14:17 -0000 Author: glebius Date: Sat Feb 25 09:14:17 2012 New Revision: 232148 URL: http://svn.freebsd.org/changeset/base/232148 Log: Re-do r232062 not abusing variable name. Submitted by: bde Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf_norm.c Sat Feb 25 08:01:29 2012 (r232147) +++ projects/pf/head/sys/contrib/pf/net/pf_norm.c Sat Feb 25 09:14:17 2012 (r232148) @@ -1670,6 +1670,7 @@ pf_normalize_tcp_stateful(struct mbuf *m * connection limit until we can come up with a better * lowerbound to the TS echo check. */ + struct timeval delta_ts; int ts_fudge; @@ -1685,9 +1686,10 @@ pf_normalize_tcp_stateful(struct mbuf *m /* Calculate max ticks since the last timestamp */ #define TS_MAXFREQ 1100 /* RFC max TS freq of 1Khz + 10% skew */ #define TS_MICROSECS 1000000 /* microseconds per second */ - timevalsub(&uptime, &src->scrub->pfss_last); - tsval_from_last = (uptime.tv_sec + ts_fudge) * TS_MAXFREQ; - tsval_from_last += uptime.tv_usec / (TS_MICROSECS/TS_MAXFREQ); + delta_ts = uptime; + timevalsub(&delta_ts, &src->scrub->pfss_last); + tsval_from_last = (delta_ts.tv_sec + ts_fudge) * TS_MAXFREQ; + tsval_from_last += delta_ts.tv_usec / (TS_MICROSECS/TS_MAXFREQ); if ((src->state >= TCPS_ESTABLISHED && dst->state >= TCPS_ESTABLISHED) && @@ -1711,8 +1713,8 @@ pf_normalize_tcp_stateful(struct mbuf *m DPFPRINTF((" tsval: %u tsecr: %u +ticks: %u " "idle: %jus %lums\n", tsval, tsecr, tsval_from_last, - (uintmax_t)uptime.tv_sec, - uptime.tv_usec / 1000)); + (uintmax_t)delta_ts.tv_sec, + delta_ts.tv_usec / 1000)); DPFPRINTF((" src->tsval: %u tsecr: %u\n", src->scrub->pfss_tsval, src->scrub->pfss_tsecr)); DPFPRINTF((" dst->tsval: %u tsecr: %u tsval0: %u" From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 09:16:52 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 904BA106566C; Sat, 25 Feb 2012 09:16:52 +0000 (UTC) (envelope-from ermal.luci@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3FB478FC0A; Sat, 25 Feb 2012 09:16:51 +0000 (UTC) Received: by iaeo4 with SMTP id o4so5272727iae.13 for ; Sat, 25 Feb 2012 01:16:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; 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; bh=A9Tidt7hsSnjxO3c6NdsXdCWdXAILdlo/FZs8ZIyphw=; b=vwzGBackSobJwAKDhO9c2GwtL+1T4twyqcpqdlDHqkQvuHOFpLZt3vqV5eX7d0paqE OSt7TUUT3DnwVabjs0ObCBVjMh9y7VgkBi0s3au8lsRIwRumhrzMD5S7S7njmHccsgx1 w3+CIZ4fYM/gN4JZCQrOozZ8u7AYndPx4u54c= MIME-Version: 1.0 Received: by 10.43.49.201 with SMTP id vb9mr5067492icb.35.1330161411502; Sat, 25 Feb 2012 01:16:51 -0800 (PST) Sender: ermal.luci@gmail.com Received: by 10.231.44.209 with HTTP; Sat, 25 Feb 2012 01:16:51 -0800 (PST) In-Reply-To: <20120225090936.GI23483@FreeBSD.org> References: <201202231018.q1NAISrV099085@svn.freebsd.org> <20120225090936.GI23483@FreeBSD.org> Date: Sat, 25 Feb 2012 09:16:51 +0000 X-Google-Sender-Auth: oSxJIHlp0e8SL-1YOGY_FDL28pU Message-ID: From: =?ISO-8859-1?Q?Ermal_Lu=E7i?= To: Gleb Smirnoff Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r232043 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 09:16:52 -0000 2012/2/25 Gleb Smirnoff : > On Fri, Feb 24, 2012 at 04:35:16PM +0000, Ermal Lu?i wrote: > E> Any reason behind doing this work? > > I'm about to start improving pf regarding its SMP friendlyness. The > changes are going to be so disruptive, that pretending that we are > a shared code between OpenBSD and FreeBSD won't be possible. > Can you please share your ideas in this regard? Its better to discuss first and after code, no?! Also, it is better to go to the latest version of pf(4) for this!? I am interested in this topic and am interested on the approach you will take as well! Furthermore, its not something you would like to do on your own, depending on the fluency you have with pf(4)! > -- > Totus tuus, Glebius. -- Ermal From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 09:27:53 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B881106564A; Sat, 25 Feb 2012 09:27:53 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7B08D8FC0A; Sat, 25 Feb 2012 09:27: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 q1P9RrVq009726; Sat, 25 Feb 2012 09:27:53 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1P9RrFV009724; Sat, 25 Feb 2012 09:27:53 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202250927.q1P9RrFV009724@svn.freebsd.org> From: Gleb Smirnoff Date: Sat, 25 Feb 2012 09:27:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232149 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 09:27:53 -0000 Author: glebius Date: Sat Feb 25 09:27:52 2012 New Revision: 232149 URL: http://svn.freebsd.org/changeset/base/232149 Log: Cleanup unneeded defines and includes. Modified: projects/pf/head/sys/contrib/pf/net/pf_lb.c Modified: projects/pf/head/sys/contrib/pf/net/pf_lb.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf_lb.c Sat Feb 25 09:14:17 2012 (r232148) +++ projects/pf/head/sys/contrib/pf/net/pf_lb.c Sat Feb 25 09:27:52 2012 (r232149) @@ -41,34 +41,20 @@ #include __FBSDID("$FreeBSD$"); -#include "opt_bpf.h" #include "opt_pf.h" -#ifdef DEV_BPF -#define NBPFILTER DEV_BPF -#else -#define NBPFILTER 0 -#endif - #ifdef DEV_PFLOG #define NPFLOG DEV_PFLOG #else #define NPFLOG 0 #endif -#ifdef DEV_PFSYNC -#define NPFSYNC DEV_PFSYNC -#else -#define NPFSYNC 0 -#endif - #ifdef DEV_PFLOW #define NPFLOW DEV_PFLOW #else #define NPFLOW 0 #endif - #include #include #include @@ -87,7 +73,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include @@ -111,10 +96,6 @@ __FBSDID("$FreeBSD$"); #include #include -#if NPFSYNC > 0 -#include -#endif /* NPFSYNC > 0 */ - #ifdef INET6 #include #include From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 09:28:39 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9D5BA106566C; Sat, 25 Feb 2012 09:28:39 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 823D48FC16; Sat, 25 Feb 2012 09:28: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 q1P9SdD0009785; Sat, 25 Feb 2012 09:28:39 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1P9SdOi009782; Sat, 25 Feb 2012 09:28:39 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201202250928.q1P9SdOi009782@svn.freebsd.org> From: Gleb Smirnoff Date: Sat, 25 Feb 2012 09:28:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232150 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 09:28:39 -0000 Author: glebius Date: Sat Feb 25 09:28:38 2012 New Revision: 232150 URL: http://svn.freebsd.org/changeset/base/232150 Log: In FreeBSD pfsync(4) is loadable, thus cleanup unnecessary ifdefs. Modified: projects/pf/head/sys/contrib/pf/net/pf.c projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Modified: projects/pf/head/sys/contrib/pf/net/pf.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf.c Sat Feb 25 09:27:52 2012 (r232149) +++ projects/pf/head/sys/contrib/pf/net/pf.c Sat Feb 25 09:28:38 2012 (r232150) @@ -44,8 +44,6 @@ __FBSDID("$FreeBSD$"); #include "opt_bpf.h" #include "opt_pf.h" -#define NPFSYNC 1 - #ifdef DEV_PFLOW #define NPFLOW DEV_PFLOW #else @@ -871,10 +869,9 @@ pf_state_insert(struct pfi_kif *kif, str V_pf_status.fcounters[FCNT_STATE_INSERT]++; V_pf_status.states++; pfi_kif_ref(kif, PFI_KIF_REF_STATE); -#if NPFSYNC > 0 if (pfsync_insert_state_ptr != NULL) pfsync_insert_state_ptr(s); -#endif + return (0); } @@ -1172,10 +1169,8 @@ pf_unlink_state(struct pf_state *cur) if (export_pflow_ptr != NULL) export_pflow_ptr(cur); #endif -#if NPFSYNC > 0 if (pfsync_delete_state_ptr != NULL) pfsync_delete_state_ptr(cur); -#endif cur->timeout = PFTM_UNLINKED; pf_src_tree_remove_state(cur); pf_detach_state(cur); @@ -1187,11 +1182,10 @@ void pf_free_state(struct pf_state *cur) { -#if NPFSYNC > 0 if (pfsync_state_in_use_ptr != NULL && pfsync_state_in_use_ptr(cur)) return; -#endif + KASSERT(cur->timeout == PFTM_UNLINKED, ("pf_free_state: cur->timeout != PFTM_UNLINKED")); if (--cur->rule.ptr->states_cur <= 0 && @@ -3023,7 +3017,6 @@ pf_test_rule(struct pf_rule **rm, struct if (rewrite) m_copyback(m, off, hdrlen, pd->hdr.any); -#if NPFSYNC > 0 if (*sm != NULL && !ISSET((*sm)->state_flags, PFSTATE_NOSYNC) && direction == PF_OUT && pfsync_up_ptr != NULL && pfsync_up_ptr()) { /* @@ -3036,7 +3029,6 @@ pf_test_rule(struct pf_rule **rm, struct pfsync_defer_ptr(*sm, m)) return (PF_DEFER); } -#endif return (PF_PASS); @@ -5465,10 +5457,8 @@ pf_test(int dir, struct ifnet *ifp, stru action = pf_test_state_tcp(&s, dir, kif, m, off, h, &pd, &reason); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5496,10 +5486,8 @@ pf_test(int dir, struct ifnet *ifp, stru } action = pf_test_state_udp(&s, dir, kif, m, off, h, &pd); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5521,10 +5509,8 @@ pf_test(int dir, struct ifnet *ifp, stru action = pf_test_state_icmp(&s, dir, kif, m, off, h, &pd, &reason); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5546,10 +5532,8 @@ pf_test(int dir, struct ifnet *ifp, stru default: action = pf_test_state_other(&s, dir, kif, m, &pd); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5889,10 +5873,8 @@ pf_test6(int dir, struct ifnet *ifp, str action = pf_test_state_tcp(&s, dir, kif, m, off, h, &pd, &reason); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5920,10 +5902,8 @@ pf_test6(int dir, struct ifnet *ifp, str } action = pf_test_state_udp(&s, dir, kif, m, off, h, &pd); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5952,10 +5932,8 @@ pf_test6(int dir, struct ifnet *ifp, str action = pf_test_state_icmp(&s, dir, kif, m, off, h, &pd, &reason); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; @@ -5968,10 +5946,8 @@ pf_test6(int dir, struct ifnet *ifp, str default: action = pf_test_state_other(&s, dir, kif, m, &pd); if (action == PF_PASS) { -#if NPFSYNC > 0 if (pfsync_update_state_ptr != NULL) pfsync_update_state_ptr(s); -#endif /* NPFSYNC */ r = s->rule.ptr; a = s->anchor.ptr; log = s->log; Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Sat Feb 25 09:27:52 2012 (r232149) +++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Sat Feb 25 09:28:38 2012 (r232150) @@ -43,8 +43,6 @@ __FBSDID("$FreeBSD$"); #include "opt_bpf.h" #include "opt_pf.h" -#define NPFSYNC 1 - #ifdef DEV_PFLOG #define NPFLOG DEV_PFLOG #else @@ -1735,19 +1733,15 @@ pfioctl(struct cdev *dev, u_long cmd, ca if (!psk->psk_ifname[0] || !strcmp(psk->psk_ifname, s->kif->pfik_name)) { -#if NPFSYNC > 0 /* don't send out individual delete messages */ SET(s->state_flags, PFSTATE_NOSYNC); -#endif pf_unlink_state(s); killed++; } } psk->psk_killed = killed; -#if NPFSYNC > 0 if (pfsync_clear_states_ptr != NULL) pfsync_clear_states_ptr(V_pf_status.hostid, psk->psk_ifname); -#endif break; } @@ -3196,10 +3190,8 @@ pf_clear_states(void) RB_FOREACH(state, pf_state_tree_id, &V_tree_id) { state->timeout = PFTM_PURGE; -#if NPFSYNC /* don't send out individual delete messages */ state->sync_state = PFSTATE_NOSYNC; -#endif pf_unlink_state(state); } From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 12:23:01 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 962F01065674; Sat, 25 Feb 2012 12:23:01 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theravensnest.org [109.169.23.128]) by mx1.freebsd.org (Postfix) with ESMTP id 314688FC12; Sat, 25 Feb 2012 12:23:00 +0000 (UTC) Received: from [192.168.0.2] (cpc1-cwma8-2-0-cust257.7-3.cable.virginmedia.com [82.20.153.2]) (authenticated bits=0) by theravensnest.org (8.14.4/8.14.4) with ESMTP id q1PBqJkb026873 (version=TLSv1/SSLv3 cipher=DHE-DSS-AES128-SHA bits=128 verify=NO); Sat, 25 Feb 2012 11:52:19 GMT (envelope-from theraven@FreeBSD.org) Mime-Version: 1.0 (Apple Message framework v1257) Content-Type: text/plain; charset=koi8-r From: David Chisnall In-Reply-To: <20120225090936.GI23483@FreeBSD.org> Date: Sat, 25 Feb 2012 11:52:14 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: <8665D8BA-6D91-46C6-8DFA-3B0C1F8B5D9E@FreeBSD.org> References: <201202231018.q1NAISrV099085@svn.freebsd.org> <20120225090936.GI23483@FreeBSD.org> To: Gleb Smirnoff X-Mailer: Apple Mail (2.1257) Cc: Ermal Lu?i , svn-src-projects@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r232043 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 12:23:01 -0000 On 25 Feb 2012, at 09:09, Gleb Smirnoff wrote: > I'm about to start improving pf regarding its SMP friendlyness. The > changes are going to be so disruptive, that pretending that we are > a shared code between OpenBSD and FreeBSD won't be possible. At FOSDEM, there was some brief discussion about unifying the various = firewall implementations we have, by providing a common bytecode format = that all sets of firewall rules can be compiled to and (eventually) = providing an LLVM-based JIT for this bytecode. =20 If we're about to irreparably fork pf, perhaps now would be the correct = time to have the discussion about exactly what is required. David= From owner-svn-src-projects@FreeBSD.ORG Sat Feb 25 12:54:43 2012 Return-Path: Delivered-To: svn-src-projects@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 696321065674; Sat, 25 Feb 2012 12:54:43 +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 EEF1F8FC0C; Sat, 25 Feb 2012 12:54:42 +0000 (UTC) Received: by mx0.hoeg.nl (Postfix, from userid 1000) id 32BF62A28CCF; Sat, 25 Feb 2012 13:54:42 +0100 (CET) Date: Sat, 25 Feb 2012 13:54:42 +0100 From: Ed Schouten To: David Chisnall Message-ID: <20120225125442.GM32748@hoeg.nl> References: <201202231018.q1NAISrV099085@svn.freebsd.org> <20120225090936.GI23483@FreeBSD.org> <8665D8BA-6D91-46C6-8DFA-3B0C1F8B5D9E@FreeBSD.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="uwB7x3tnyrZQfZJI" Content-Disposition: inline In-Reply-To: <8665D8BA-6D91-46C6-8DFA-3B0C1F8B5D9E@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Ermal Lu?i , svn-src-projects@FreeBSD.org, Gleb Smirnoff , src-committers@FreeBSD.org Subject: Re: svn commit: r232043 - projects/pf/head/sys/contrib/pf/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Feb 2012 12:54:43 -0000 --uwB7x3tnyrZQfZJI Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * David Chisnall , 20120225 12:52: > If we're about to irreparably fork pf, perhaps now would be the > correct time to have the discussion about exactly what is required. +1 --=20 Ed Schouten WWW: http://80386.nl/ --uwB7x3tnyrZQfZJI Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iQIcBAEBAgAGBQJPSNoSAAoJEG5e2P40kaK7W0UP/Asw+NDwvDWQKNaX+A+vk2Bd GoKO6fEQmDPu4HpzGj6v7LO2Z+YGFippXfbr2s1+V0jrEI5ZTNhHF6hvBQssxzTn FIatHqLxfDfi80DipivR1nTc6l9rFyJqckTRlTcpWMQcyrHT1b6dV6oX4MF2GQV2 JPseZDACCfBj2kDQ7t/o6xGBoVnRomKW1GBYVBUSi1gqhoocsCb5BuV+alkpY2hA o0IzbZ0aiQaWb5prqNOaMMBAu4ifDtkw5OB5u79A+xokKuQNidDF8oWWQ9YnfPGN pOzsIRz+2WDr4BU3aH6PKqGXAeB+Aln0G4zeo8lKXZBJ877toKsT9rRxN5AIYkAs gn1MZimFo2nJbFE/scA2cQExMYcPe2wf6n7NCvxN3Aci5b2lSxSzWujlhMsWlgsN 8L2O+dnUsAdHzW+R/qyHfgVjCBwMe8qsjHxKCzD/vOap8pIEJxxBO5Z2ubCke6OP 7KCqZLM0Y7rJnYH/toLCNoJJ3PKOsikU1FGN5dkGI2wXEiJn5p9KLWw9/wbGUPNA enhZtMv2Yv+/8++l2WoaPXSgJjROx5OO1ruq+QrKYU0MrzEmXViz3SnN/jaNOvi/ 2QXJ0lYPU1eAIp9hdIq22PfedwwBEJwQTbfyq7UOpmospDjmCIVhF2TQWCq30A0n lVBFmkrlWGObBBEH7P36 =50qK -----END PGP SIGNATURE----- --uwB7x3tnyrZQfZJI--