From owner-svn-src-projects@FreeBSD.ORG Sun Apr 1 01:14:05 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 9FCD6106566B; Sun, 1 Apr 2012 01:14:05 +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 71F2B8FC0C; Sun, 1 Apr 2012 01:14:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q311E55q026458; Sun, 1 Apr 2012 01:14:05 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q311E5gt026457; Sun, 1 Apr 2012 01:14:05 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201204010114.q311E5gt026457@svn.freebsd.org> From: Andrew Turner Date: Sun, 1 Apr 2012 01:14:05 +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: r233752 - projects/arm_eabi/contrib/compiler-rt/lib 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, 01 Apr 2012 01:14:05 -0000 Author: andrew Date: Sun Apr 1 01:14:05 2012 New Revision: 233752 URL: http://svn.freebsd.org/changeset/base/233752 Log: Remove a file that should have been deleted in the last IFC Deleted: projects/arm_eabi/contrib/compiler-rt/lib/abi.h From owner-svn-src-projects@FreeBSD.ORG Sun Apr 1 06:31: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 5A06B106566B; Sun, 1 Apr 2012 06:31:58 +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 3BAA38FC0A; Sun, 1 Apr 2012 06:31:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q316Vwhk036630; Sun, 1 Apr 2012 06:31:58 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q316Vv6l036618; Sun, 1 Apr 2012 06:31:57 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201204010631.q316Vv6l036618@svn.freebsd.org> From: Andrew Turner Date: Sun, 1 Apr 2012 06:31: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: r233753 - in projects/arm_eabi: contrib/compiler-rt/lib lib/libc lib/libc/arm lib/libc/arm/aeabi lib/libc/arm/gen lib/libcompiler_rt 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, 01 Apr 2012 06:31:58 -0000 Author: andrew Date: Sun Apr 1 06:31:57 2012 New Revision: 233753 URL: http://svn.freebsd.org/changeset/base/233753 Log: Revert to the libc softfloat. Other parts of libc depend on it. Added: projects/arm_eabi/lib/libc/arm/aeabi/aeabi_double.c projects/arm_eabi/lib/libc/arm/aeabi/aeabi_float.c Modified: projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c projects/arm_eabi/lib/libc/Makefile projects/arm_eabi/lib/libc/arm/Symbol.map projects/arm_eabi/lib/libc/arm/Symbol_oabi.map projects/arm_eabi/lib/libc/arm/aeabi/Makefile.inc projects/arm_eabi/lib/libc/arm/aeabi/Symbol.map projects/arm_eabi/lib/libc/arm/gen/flt_rounds.c projects/arm_eabi/lib/libcompiler_rt/Makefile Modified: projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c ============================================================================== --- projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/contrib/compiler-rt/lib/comparedf2.c Sun Apr 1 06:31:57 2012 (r233753) @@ -130,31 +130,3 @@ enum GE_RESULT __gtdf2(fp_t a, fp_t b) { return __gedf2(a, b); } -#ifdef __ARM_EABI__ -// The following are required for the ARM EABI. - -int __aeabi_dcmpeq(fp_t a, fp_t b) { - return __ledf2(a, b) == 0; -} - -int __aeabi_dcmplt(fp_t a, fp_t b) { - return __ledf2(a, b) < 0; -} - -int __aeabi_dcmple(fp_t a, fp_t b) { - return __ledf2(a, b) <= 0; -} - -int __aeabi_dcmpge(fp_t a, fp_t b) { - return __gedf2(a, b) >= 0; -} - -int __aeabi_dcmpgt(fp_t a, fp_t b) { - return __gedf2(a, b) > 0; -} - -int __aeabi_dcmpun(fp_t a, fp_t b) { - return __unorddf2(a, b); -} -#endif - Modified: projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c ============================================================================== --- projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/contrib/compiler-rt/lib/comparesf2.c Sun Apr 1 06:31:57 2012 (r233753) @@ -129,32 +129,3 @@ enum LE_RESULT __nesf2(fp_t a, fp_t b) { enum GE_RESULT __gtsf2(fp_t a, fp_t b) { return __gesf2(a, b); } - -#ifdef __ARM_EABI__ -// The following are required for the ARM EABI. - -int __aeabi_fcmpeq(fp_t a, fp_t b) { - return __lesf2(a, b) == 0; -} - -int __aeabi_fcmplt(fp_t a, fp_t b) { - return __lesf2(a, b) < 0; -} - -int __aeabi_fcmple(fp_t a, fp_t b) { - return __lesf2(a, b) <= 0; -} - -int __aeabi_fcmpge(fp_t a, fp_t b) { - return __gesf2(a, b) >= 0; -} - -int __aeabi_fcmpgt(fp_t a, fp_t b) { - return __gesf2(a, b) > 0; -} - -int __aeabi_fcmpun(fp_t a, fp_t b) { - return __unordsf2(a, b); -} -#endif - Modified: projects/arm_eabi/lib/libc/Makefile ============================================================================== --- projects/arm_eabi/lib/libc/Makefile Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libc/Makefile Sun Apr 1 06:31:57 2012 (r233753) @@ -85,7 +85,7 @@ NOASM= .include "${.CURDIR}/rpc/Makefile.inc" .include "${.CURDIR}/uuid/Makefile.inc" .include "${.CURDIR}/xdr/Makefile.inc" -.if ${LIBC_ARCH} == "mips" +.if ${LIBC_ARCH} == "arm" || ${LIBC_ARCH} == "mips" .include "${.CURDIR}/softfloat/Makefile.inc" .endif .if ${MK_NIS} != "no" Modified: projects/arm_eabi/lib/libc/arm/Symbol.map ============================================================================== --- projects/arm_eabi/lib/libc/arm/Symbol.map Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libc/arm/Symbol.map Sun Apr 1 06:31:57 2012 (r233753) @@ -54,4 +54,22 @@ FBSDprivate_1.0 { curbrk; minbrk; _sbrk; + + /* softfloat */ + __addsf3; + __adddf3; + __subsf3; + __subdf3; + __mulsf3; + __muldf3; + __divsf3; + __divdf3; + __floatsisf; + __floatsidf; + __fixsfsi; + __fixdfsi; + __fixunssfsi; + __fixunsdfsi; + __extendsfdf2; + __truncdfsf2; }; Modified: projects/arm_eabi/lib/libc/arm/Symbol_oabi.map ============================================================================== --- projects/arm_eabi/lib/libc/arm/Symbol_oabi.map Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libc/arm/Symbol_oabi.map Sun Apr 1 06:31:57 2012 (r233753) @@ -13,22 +13,4 @@ FBSDprivate_1.0 { __modsi3; __udivsi3; __divsi3; - - /* softfloat */ - __addsf3; - __adddf3; - __subsf3; - __subdf3; - __mulsf3; - __muldf3; - __divsf3; - __divdf3; - __floatsisf; - __floatsidf; - __fixsfsi; - __fixdfsi; - __fixunssfsi; - __fixunsdfsi; - __extendsfdf2; - __truncdfsf2; }; Modified: projects/arm_eabi/lib/libc/arm/aeabi/Makefile.inc ============================================================================== --- projects/arm_eabi/lib/libc/arm/aeabi/Makefile.inc Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libc/arm/aeabi/Makefile.inc Sun Apr 1 06:31:57 2012 (r233753) @@ -3,6 +3,8 @@ .PATH: ${.CURDIR}/arm/aeabi SRCS+= aeabi_atexit.c \ + aeabi_double.c \ + aeabi_float.c \ aeabi_unwind_cpp.c SYM_MAPS+=${.CURDIR}/arm/aeabi/Symbol.map Modified: projects/arm_eabi/lib/libc/arm/aeabi/Symbol.map ============================================================================== --- projects/arm_eabi/lib/libc/arm/aeabi/Symbol.map Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libc/arm/aeabi/Symbol.map Sun Apr 1 06:31:57 2012 (r233753) @@ -3,10 +3,45 @@ */ /* - * This only needs to contain symbols that are not listed in + * This only needs to contain AEABI symbols that are not listed in * symbol maps from other parts of libc (i.e., not found in * stdlib/Symbol.map, string/Symbol.map, sys/Symbol.map, ...). */ FBSDprivate_1.0 { __aeabi_atexit; + + __aeabi_dcmpeq; + __aeabi_dcmplt; + __aeabi_dcmple; + __aeabi_dcmpge; + __aeabi_dcmpgt; + __aeabi_dcmpun; + + __aeabi_d2iz; + __aeabi_d2f; + + __aeabi_dadd; + __aeabi_ddiv; + __aeabi_dmul; + __aeabi_dsub; + + + __aeabi_fcmpeq; + __aeabi_fcmplt; + __aeabi_fcmple; + __aeabi_fcmpge; + __aeabi_fcmpgt; + __aeabi_fcmpun; + + __aeabi_f2iz; + __aeabi_f2d; + + __aeabi_fadd; + __aeabi_fdiv; + __aeabi_fmul; + __aeabi_fsub; + + + __aeabi_i2d; + __aeabi_i2f; }; Added: projects/arm_eabi/lib/libc/arm/aeabi/aeabi_double.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/arm_eabi/lib/libc/arm/aeabi/aeabi_double.c Sun Apr 1 06:31:57 2012 (r233753) @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2012 Andrew Turner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "softfloat-for-gcc.h" +#include "milieu.h" +#include "softfloat.h" + +float64 __adddf3(float64 a, float64 b); +float64 __divdf3(float64 a, float64 b); +float64 __muldf3(float64 a, float64 b); +float64 __subdf3(float64 a, float64 b); + +float32 __truncdfsf2(float64 a); + +int32 __fixdfsi(float64); +float64 __floatsidf(int32 a); +flag __gedf2(float64, float64); +flag __ledf2(float64, float64); +flag __unorddf2(float64, float64); + +int __aeabi_dcmpeq(double a, double b) +{ + return __ledf2(a, b) == 0; +} + +int __aeabi_dcmplt(double a, double b) +{ + return __ledf2(a, b) < 0; +} + +int __aeabi_dcmple(double a, double b) +{ + return __ledf2(a, b) <= 0; +} + +int __aeabi_dcmpge(double a, double b) +{ + return __gedf2(a, b) >= 0; +} + +int __aeabi_dcmpgt(double a, double b) +{ + return __gedf2(a, b) > 0; +} + +int __aeabi_dcmpun(double a, double b) +{ + return __unorddf2(a, b); +} + +int __aeabi_d2iz(double a) +{ + return __fixdfsi(a); +} + +float __aeabi_d2f(double a) +{ + return __truncdfsf2(a); +} + +double __aeabi_i2d(int a) +{ + return __floatsidf(a); +} + +double __aeabi_dadd(double a, double b) +{ + return __adddf3(a, b); +} + +double __aeabi_ddiv(double a, double b) +{ + return __divdf3(a, b); +} + +double __aeabi_dmul(double a, double b) +{ + return __muldf3(a, b); +} + +double __aeabi_dsub(double a, double b) +{ + return __subdf3(a, b); +} + Added: projects/arm_eabi/lib/libc/arm/aeabi/aeabi_float.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/arm_eabi/lib/libc/arm/aeabi/aeabi_float.c Sun Apr 1 06:31:57 2012 (r233753) @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2012 Andrew Turner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "softfloat-for-gcc.h" +#include "milieu.h" +#include "softfloat.h" + +float32 __addsf3(float32 a, float32 b); +float32 __divsf3(float32 a, float32 b); +float32 __mulsf3(float32 a, float32 b); +float32 __subsf3(float32 a, float32 b); + +float64 __extendsfdf2(float32 a); + +int32 __fixsfsi(float32); +float32 __floatsisf(int32 a); +flag __gesf2(float32, float32); +flag __lesf2(float32, float32); +flag __unordsf2(float32, float32); + +int __aeabi_fcmpeq(float a, float b) +{ + return __lesf2(a, b) == 0; +} + +int __aeabi_fcmplt(float a, float b) +{ + return __lesf2(a, b) < 0; +} + +int __aeabi_fcmple(float a, float b) +{ + return __lesf2(a, b) <= 0; +} + +int __aeabi_fcmpge(float a, float b) +{ + return __gesf2(a, b) >= 0; +} + +int __aeabi_fcmpgt(float a, float b) +{ + return __gesf2(a, b) > 0; +} + +int __aeabi_fcmpun(float a, float b) +{ + return __unordsf2(a, b); +} + +int __aeabi_f2iz(float a) +{ + return __fixsfsi(a); +} + +double __aeabi_f2d(float a) +{ + return __extendsfdf2(a); +} + +float __aeabi_i2f(int a) +{ + return __floatsisf(a); +} + +float __aeabi_fadd(float a, float b) +{ + return __addsf3(a, b); +} + +float __aeabi_fdiv(float a, float b) +{ + return __divsf3(a, b); +} + +float __aeabi_fmul(float a, float b) +{ + return __mulsf3(a, b); +} + +float __aeabi_fsub(float a, float b) +{ + return __subsf3(a, b); +} + Modified: projects/arm_eabi/lib/libc/arm/gen/flt_rounds.c ============================================================================== --- projects/arm_eabi/lib/libc/arm/gen/flt_rounds.c Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libc/arm/gen/flt_rounds.c Sun Apr 1 06:31:57 2012 (r233753) @@ -30,22 +30,15 @@ __FBSDID("$FreeBSD$"); #include #include -#ifndef __ARM_EABI__ #include "softfloat-for-gcc.h" #include "milieu.h" #include "softfloat.h" -#endif int __flt_rounds(void) { -#ifdef __ARM_EABI__ - /* - * We use compiler-rt which uses round to nearest. - */ - return (1); -#elif !defined(ARM_HARD_FLOAT) +#ifndef ARM_HARD_FLOAT /* * Translate our rounding modes to the unnamed * manifest constants required by C99 et. al. Modified: projects/arm_eabi/lib/libcompiler_rt/Makefile ============================================================================== --- projects/arm_eabi/lib/libcompiler_rt/Makefile Sun Apr 1 01:14:05 2012 (r233752) +++ projects/arm_eabi/lib/libcompiler_rt/Makefile Sun Apr 1 06:31:57 2012 (r233753) @@ -127,23 +127,26 @@ SRCF= absvdi2 \ umodti3 # These are already shipped by libc.a on arm and mips -.if ${MACHINE_CPUARCH} != "mips" +.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "mips" SRCF+= adddf3 \ addsf3 \ divdf3 \ divsf3 \ - divsi3 \ extendsfdf2 \ fixdfsi \ fixsfsi \ floatsidf \ floatsisf \ - modsi3 \ muldf3 \ mulsf3 \ subdf3 \ subsf3 \ - truncdfsf2 \ + truncdfsf2 +.endif + +.if ${MACHINE_CPUARCH} != "mips" +SRCF+= divsi3 \ + modsi3 \ udivsi3 \ umodsi3 .endif From owner-svn-src-projects@FreeBSD.ORG Sun Apr 1 08:14: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 49867106566C; Sun, 1 Apr 2012 08:14:52 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 307118FC08; Sun, 1 Apr 2012 08:14: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 q318EqPZ039946; Sun, 1 Apr 2012 08:14:52 GMT (envelope-from andreast@svn.freebsd.org) Received: (from andreast@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q318Ep62039912; Sun, 1 Apr 2012 08:14:51 GMT (envelope-from andreast@svn.freebsd.org) Message-Id: <201204010814.q318Ep62039912@svn.freebsd.org> From: Andreas Tobler Date: Sun, 1 Apr 2012 08:14: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: r233754 - in projects/pseries: amd64/acpica amd64/amd64 amd64/include arm/include boot/common boot/forth boot/powerpc/ps3 cam/scsi cddl/dev/sdt conf contrib/dev/acpica/components/namesp... 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, 01 Apr 2012 08:14:52 -0000 Author: andreast Date: Sun Apr 1 08:14:50 2012 New Revision: 233754 URL: http://svn.freebsd.org/changeset/base/233754 Log: IFC @ r233751 Added: projects/pseries/dev/hwpmc/hwpmc_soft.c - copied unchanged from r233751, head/sys/dev/hwpmc/hwpmc_soft.c projects/pseries/dev/hwpmc/hwpmc_soft.h - copied unchanged from r233751, head/sys/dev/hwpmc/hwpmc_soft.h projects/pseries/dev/mfi/mfi_syspd.c - copied unchanged from r233751, head/sys/dev/mfi/mfi_syspd.c projects/pseries/dev/mfi/mfi_tbolt.c - copied unchanged from r233751, head/sys/dev/mfi/mfi_tbolt.c projects/pseries/mips/nlm/dev/cfi_pci_xlp.c - copied unchanged from r233751, head/sys/mips/nlm/dev/cfi_pci_xlp.c projects/pseries/mips/nlm/dev/uart_pci_xlp.c - copied unchanged from r233751, head/sys/mips/nlm/dev/uart_pci_xlp.c projects/pseries/x86/include/legacyvar.h - copied unchanged from r233751, head/sys/x86/include/legacyvar.h projects/pseries/x86/x86/legacy.c - copied unchanged from r233751, head/sys/x86/x86/legacy.c Deleted: projects/pseries/amd64/amd64/legacy.c projects/pseries/amd64/include/legacyvar.h projects/pseries/i386/i386/legacy.c projects/pseries/i386/include/legacyvar.h projects/pseries/mips/nlm/intern_dev.c projects/pseries/mips/nlm/uart_pci_xlp.c projects/pseries/pc98/include/legacyvar.h Modified: projects/pseries/amd64/acpica/acpi_wakeup.c projects/pseries/amd64/amd64/initcpu.c projects/pseries/amd64/amd64/mp_machdep.c projects/pseries/amd64/amd64/trap.c projects/pseries/amd64/include/pmc_mdep.h projects/pseries/amd64/include/vm.h projects/pseries/arm/include/pmc_mdep.h projects/pseries/boot/common/loader.8 projects/pseries/boot/forth/loader.conf.5 projects/pseries/boot/powerpc/ps3/start.S projects/pseries/cam/scsi/scsi_da.c projects/pseries/cddl/dev/sdt/sdt.c projects/pseries/conf/files projects/pseries/conf/files.amd64 projects/pseries/conf/files.arm projects/pseries/conf/files.i386 projects/pseries/conf/files.ia64 projects/pseries/conf/files.mips projects/pseries/conf/files.pc98 projects/pseries/conf/files.powerpc projects/pseries/conf/files.sparc64 projects/pseries/conf/kern.post.mk projects/pseries/conf/kern.pre.mk projects/pseries/conf/kmod.mk projects/pseries/conf/options projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c projects/pseries/contrib/dev/acpica/components/parser/psargs.c projects/pseries/dev/acpica/acpi.c projects/pseries/dev/acpica/acpi_pcib_acpi.c projects/pseries/dev/ale/if_ale.c projects/pseries/dev/ale/if_alevar.h projects/pseries/dev/ath/if_ath.c projects/pseries/dev/ath/if_ath_tx.c projects/pseries/dev/ath/if_athvar.h projects/pseries/dev/atkbdc/atkbdc_isa.c projects/pseries/dev/atkbdc/psm.c projects/pseries/dev/cfi/cfi_core.c projects/pseries/dev/cfi/cfi_dev.c projects/pseries/dev/cfi/cfi_disk.c projects/pseries/dev/cfi/cfi_var.h projects/pseries/dev/e1000/if_em.c projects/pseries/dev/e1000/if_igb.c projects/pseries/dev/fxp/if_fxp.c projects/pseries/dev/fxp/if_fxpreg.h projects/pseries/dev/fxp/if_fxpvar.h projects/pseries/dev/hwpmc/hwpmc_amd.c projects/pseries/dev/hwpmc/hwpmc_core.c projects/pseries/dev/hwpmc/hwpmc_intel.c projects/pseries/dev/hwpmc/hwpmc_logging.c projects/pseries/dev/hwpmc/hwpmc_mips.c projects/pseries/dev/hwpmc/hwpmc_mod.c projects/pseries/dev/hwpmc/hwpmc_piv.c projects/pseries/dev/hwpmc/hwpmc_powerpc.c projects/pseries/dev/hwpmc/hwpmc_ppro.c projects/pseries/dev/hwpmc/hwpmc_tsc.c projects/pseries/dev/hwpmc/hwpmc_x86.c projects/pseries/dev/hwpmc/hwpmc_xscale.c projects/pseries/dev/hwpmc/pmc_events.h projects/pseries/dev/isci/isci.h projects/pseries/dev/isci/isci_controller.c projects/pseries/dev/isci/isci_domain.c projects/pseries/dev/isci/isci_task_request.c projects/pseries/dev/isci/scil/sati_read_capacity.c projects/pseries/dev/iwn/if_iwn.c projects/pseries/dev/mfi/mfi.c projects/pseries/dev/mfi/mfi_cam.c projects/pseries/dev/mfi/mfi_debug.c projects/pseries/dev/mfi/mfi_disk.c projects/pseries/dev/mfi/mfi_ioctl.h projects/pseries/dev/mfi/mfi_linux.c projects/pseries/dev/mfi/mfi_pci.c projects/pseries/dev/mfi/mfireg.h projects/pseries/dev/mfi/mfivar.h projects/pseries/dev/pci/pci.c projects/pseries/dev/sound/pci/hda/hdaa.c projects/pseries/dev/sound/pci/hda/hdac.c projects/pseries/dev/syscons/syscons.c projects/pseries/geom/geom_vfs.c projects/pseries/geom/part/g_part_ldm.c projects/pseries/gnu/fs/reiserfs/reiserfs_vfsops.c projects/pseries/i386/i386/trap.c projects/pseries/i386/include/pmc_mdep.h projects/pseries/i386/include/vm.h projects/pseries/i386/xbox/xboxfb.c projects/pseries/kern/kern_clock.c projects/pseries/kern/kern_lock.c projects/pseries/kern/kern_mutex.c projects/pseries/kern/kern_pmc.c projects/pseries/kern/kern_rwlock.c projects/pseries/kern/kern_sdt.c projects/pseries/kern/kern_sx.c projects/pseries/kern/kern_umtx.c projects/pseries/kern/subr_trap.c projects/pseries/mips/atheros/std.ar71xx projects/pseries/mips/cavium/cvmx_config.h projects/pseries/mips/cavium/std.octeon1 projects/pseries/mips/conf/AR71XX_BASE projects/pseries/mips/conf/AR91XX_BASE projects/pseries/mips/conf/SWARM projects/pseries/mips/conf/SWARM64 projects/pseries/mips/conf/SWARM64_SMP projects/pseries/mips/conf/SWARM_SMP projects/pseries/mips/conf/XLP projects/pseries/mips/conf/XLP64 projects/pseries/mips/conf/XLPN32 projects/pseries/mips/conf/XLR projects/pseries/mips/conf/XLR64 projects/pseries/mips/conf/XLRN32 projects/pseries/mips/conf/std.XLP projects/pseries/mips/include/param.h projects/pseries/mips/include/pmc_mdep.h projects/pseries/mips/include/vm.h projects/pseries/mips/mips/trap.c projects/pseries/mips/nlm/board.h projects/pseries/mips/nlm/dev/net/nae.c projects/pseries/mips/nlm/dev/net/ucore/ucore.h projects/pseries/mips/nlm/dev/net/ucore/ucore_app.c projects/pseries/mips/nlm/files.xlp projects/pseries/mips/nlm/hal/nlm_hal.c projects/pseries/mips/nlm/hal/pcibus.h projects/pseries/mips/nlm/hal/pic.h projects/pseries/mips/nlm/intr_machdep.c projects/pseries/mips/nlm/uart_cpu_xlp.c projects/pseries/mips/nlm/xlp.h projects/pseries/mips/nlm/xlp_machdep.c projects/pseries/mips/nlm/xlp_pci.c projects/pseries/modules/hwpmc/Makefile projects/pseries/modules/mfi/Makefile projects/pseries/netinet/ipfw/ip_fw_sockopt.c projects/pseries/netinet/sctp.h projects/pseries/netinet/sctp_constants.h projects/pseries/netinet/sctp_header.h projects/pseries/netinet/sctp_input.c projects/pseries/netinet/sctp_output.c projects/pseries/netinet/sctp_output.h projects/pseries/netinet/sctp_pcb.h projects/pseries/netinet/sctp_peeloff.c projects/pseries/netinet/sctp_structs.h projects/pseries/netinet/sctp_uio.h projects/pseries/netinet/sctp_usrreq.c projects/pseries/netinet/sctputil.c projects/pseries/netinet/sctputil.h projects/pseries/netinet/tcp_subr.c projects/pseries/netinet/udp_usrreq.c projects/pseries/netinet/udp_var.h projects/pseries/ofed/include/linux/io.h projects/pseries/ofed/include/linux/page.h projects/pseries/powerpc/aim/mmu_oea64.c projects/pseries/powerpc/aim/moea64_native.c projects/pseries/powerpc/include/pmc_mdep.h projects/pseries/powerpc/include/trap.h projects/pseries/powerpc/include/trap_aim.h projects/pseries/powerpc/include/trap_booke.h projects/pseries/powerpc/include/vm.h projects/pseries/sparc64/pci/fire.c projects/pseries/sparc64/pci/firereg.h projects/pseries/sparc64/sparc64/trap.c projects/pseries/sys/conf.h projects/pseries/sys/pmc.h projects/pseries/sys/pmckern.h projects/pseries/sys/pmclog.h projects/pseries/sys/sdt.h projects/pseries/ufs/ffs/ffs_inode.c projects/pseries/ufs/ffs/ffs_vfsops.c projects/pseries/ufs/ufs/ufs_quota.c projects/pseries/vm/vnode_pager.c projects/pseries/x86/acpica/madt.c projects/pseries/x86/include/endian.h projects/pseries/x86/include/segments.h projects/pseries/x86/isa/isa_dma.c projects/pseries/x86/pci/pci_bus.c projects/pseries/x86/x86/mca.c projects/pseries/x86/x86/mptable_pci.c Directory Properties: projects/pseries/ (props changed) projects/pseries/boot/ (props changed) projects/pseries/conf/ (props changed) projects/pseries/contrib/dev/acpica/ (props changed) projects/pseries/contrib/dev/acpica/components/namespace/ (props changed) projects/pseries/contrib/dev/acpica/components/parser/ (props changed) projects/pseries/contrib/dev/acpica/include/ (props changed) Modified: projects/pseries/amd64/acpica/acpi_wakeup.c ============================================================================== --- projects/pseries/amd64/acpica/acpi_wakeup.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/acpica/acpi_wakeup.c Sun Apr 1 08:14:50 2012 (r233754) @@ -284,6 +284,7 @@ acpi_sleep_machdep(struct acpi_softc *sc } else { pmap_init_pat(); load_cr3(susppcbs[0]->pcb_cr3); + initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); #ifdef SMP Modified: projects/pseries/amd64/amd64/initcpu.c ============================================================================== --- projects/pseries/amd64/amd64/initcpu.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/amd64/initcpu.c Sun Apr 1 08:14:50 2012 (r233754) @@ -79,6 +79,27 @@ SYSCTL_UINT(_hw, OID_AUTO, via_feature_r SYSCTL_UINT(_hw, OID_AUTO, via_feature_xcrypt, CTLFLAG_RD, &via_feature_xcrypt, 0, "VIA xcrypt feature available in CPU"); +static void +init_amd(void) +{ + + /* + * Work around Erratum 721 for Family 10h and 12h processors. + * These processors may incorrectly update the stack pointer + * after a long series of push and/or near-call instructions, + * or a long series of pop and/or near-return instructions. + * + * http://support.amd.com/us/Processor_TechDocs/41322_10h_Rev_Gd.pdf + * http://support.amd.com/us/Processor_TechDocs/44739_12h_Rev_Gd.pdf + */ + switch (CPUID_TO_FAMILY(cpu_id)) { + case 0x10: + case 0x12: + wrmsr(0xc0011029, rdmsr(0xc0011029) | 1); + break; + } +} + /* * Initialize special VIA features */ @@ -135,8 +156,14 @@ initializecpu(void) wrmsr(MSR_EFER, msr); pg_nx = PG_NX; } - if (cpu_vendor_id == CPU_VENDOR_CENTAUR) + switch (cpu_vendor_id) { + case CPU_VENDOR_AMD: + init_amd(); + break; + case CPU_VENDOR_CENTAUR: init_via(); + break; + } } void Modified: projects/pseries/amd64/amd64/mp_machdep.c ============================================================================== --- projects/pseries/amd64/amd64/mp_machdep.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/amd64/mp_machdep.c Sun Apr 1 08:14:50 2012 (r233754) @@ -1425,6 +1425,7 @@ cpususpend_handler(void) } else { pmap_init_pat(); load_cr3(susppcbs[cpu]->pcb_cr3); + initializecpu(); PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); } Modified: projects/pseries/amd64/amd64/trap.c ============================================================================== --- projects/pseries/amd64/amd64/trap.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/amd64/trap.c Sun Apr 1 08:14:50 2012 (r233754) @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); #include #ifdef HWPMC_HOOKS #include +PMC_SOFT_DEFINE( , , page_fault, all); +PMC_SOFT_DEFINE( , , page_fault, read); +PMC_SOFT_DEFINE( , , page_fault, write); #endif #include @@ -743,8 +746,20 @@ trap_pfault(frame, usermode) */ rv = vm_fault(map, va, ftype, VM_FAULT_NORMAL); } - if (rv == KERN_SUCCESS) + if (rv == KERN_SUCCESS) { +#ifdef HWPMC_HOOKS + if (ftype == VM_PROT_READ || ftype == VM_PROT_WRITE) { + PMC_SOFT_CALL_TF( , , page_fault, all, frame); + if (ftype == VM_PROT_READ) + PMC_SOFT_CALL_TF( , , page_fault, read, + frame); + else + PMC_SOFT_CALL_TF( , , page_fault, write, + frame); + } +#endif return (0); + } nogo: if (!usermode) { if (td->td_intr_nesting_level == 0 && Modified: projects/pseries/amd64/include/pmc_mdep.h ============================================================================== --- projects/pseries/amd64/include/pmc_mdep.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/include/pmc_mdep.h Sun Apr 1 08:14:50 2012 (r233754) @@ -50,13 +50,13 @@ struct pmc_mdep; * measurement architecture have PMCs of the following classes: TSC, * IAF, IAP, UCF and UCP. */ -#define PMC_MDEP_CLASS_INDEX_TSC 0 -#define PMC_MDEP_CLASS_INDEX_K8 1 -#define PMC_MDEP_CLASS_INDEX_P4 1 -#define PMC_MDEP_CLASS_INDEX_IAP 1 -#define PMC_MDEP_CLASS_INDEX_IAF 2 -#define PMC_MDEP_CLASS_INDEX_UCP 3 -#define PMC_MDEP_CLASS_INDEX_UCF 4 +#define PMC_MDEP_CLASS_INDEX_TSC 1 +#define PMC_MDEP_CLASS_INDEX_K8 2 +#define PMC_MDEP_CLASS_INDEX_P4 2 +#define PMC_MDEP_CLASS_INDEX_IAP 2 +#define PMC_MDEP_CLASS_INDEX_IAF 3 +#define PMC_MDEP_CLASS_INDEX_UCP 4 +#define PMC_MDEP_CLASS_INDEX_UCF 5 /* * On the amd64 platform we support the following PMCs. @@ -119,6 +119,15 @@ union pmc_md_pmc { #define PMC_IN_USERSPACE(va) ((va) <= VM_MAXUSER_ADDRESS) +/* Build a fake kernel trapframe from current instruction pointer. */ +#define PMC_FAKE_TRAPFRAME(TF) \ + do { \ + (TF)->tf_cs = 0; (TF)->tf_rflags = 0; \ + __asm __volatile("movq %%rbp,%0" : "=r" ((TF)->tf_rbp)); \ + __asm __volatile("movq %%rsp,%0" : "=r" ((TF)->tf_rsp)); \ + __asm __volatile("call 1f \n\t1: pop %0" : "=r"((TF)->tf_rip)); \ + } while (0) + /* * Prototypes */ Modified: projects/pseries/amd64/include/vm.h ============================================================================== --- projects/pseries/amd64/include/vm.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/amd64/include/vm.h Sun Apr 1 08:14:50 2012 (r233754) @@ -38,7 +38,7 @@ #define VM_MEMATTR_WRITE_THROUGH ((vm_memattr_t)PAT_WRITE_THROUGH) #define VM_MEMATTR_WRITE_PROTECTED ((vm_memattr_t)PAT_WRITE_PROTECTED) #define VM_MEMATTR_WRITE_BACK ((vm_memattr_t)PAT_WRITE_BACK) -#define VM_MEMATTR_UNCACHED ((vm_memattr_t)PAT_UNCACHED) +#define VM_MEMATTR_WEAK_UNCACHEABLE ((vm_memattr_t)PAT_UNCACHED) #define VM_MEMATTR_DEFAULT VM_MEMATTR_WRITE_BACK Modified: projects/pseries/arm/include/pmc_mdep.h ============================================================================== --- projects/pseries/arm/include/pmc_mdep.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/arm/include/pmc_mdep.h Sun Apr 1 08:14:50 2012 (r233754) @@ -29,7 +29,7 @@ #ifndef _MACHINE_PMC_MDEP_H_ #define _MACHINE_PMC_MDEP_H_ -#define PMC_MDEP_CLASS_INDEX_XSCALE 0 +#define PMC_MDEP_CLASS_INDEX_XSCALE 1 /* * On the ARM platform we support the following PMCs. * Modified: projects/pseries/boot/common/loader.8 ============================================================================== --- projects/pseries/boot/common/loader.8 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/boot/common/loader.8 Sun Apr 1 08:14:50 2012 (r233754) @@ -223,7 +223,7 @@ Loads a .Xr geli 8 encryption keyfile for the given provider name. The key index can be specified via -.Ar keyno +.Ar keyno or will default to zero. .Pp .It Ic ls Xo Modified: projects/pseries/boot/forth/loader.conf.5 ============================================================================== --- projects/pseries/boot/forth/loader.conf.5 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/boot/forth/loader.conf.5 Sun Apr 1 08:14:50 2012 (r233754) @@ -266,7 +266,7 @@ The stops reading .Nm when it encounters a syntax error, so any options which are vital for -booting a particular system (i.e.\& +booting a particular system (i.e.\& .Dq Va hw.ata.ata_dma Ns "=0" ) should precede any experimental additions to .Nm . Modified: projects/pseries/boot/powerpc/ps3/start.S ============================================================================== --- projects/pseries/boot/powerpc/ps3/start.S Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/boot/powerpc/ps3/start.S Sun Apr 1 08:14:50 2012 (r233754) @@ -25,6 +25,8 @@ * $FreeBSD$ */ +#define LOCORE + #include /* Modified: projects/pseries/cam/scsi/scsi_da.c ============================================================================== --- projects/pseries/cam/scsi/scsi_da.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/cam/scsi/scsi_da.c Sun Apr 1 08:14:50 2012 (r233754) @@ -1631,9 +1631,7 @@ daregister(struct cam_periph *periph, vo softc->minimum_cmd_size = 16; /* Predict whether device may support READ CAPACITY(16). */ - if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3 || - (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC && - (cgd->inq_data.spc3_flags & SPC3_SID_PROTECT))) { + if (SID_ANSI_REV(&cgd->inq_data) >= SCSI_REV_SPC3) { softc->flags |= DA_FLAG_CAN_RC16; softc->state = DA_STATE_PROBE2; } Modified: projects/pseries/cddl/dev/sdt/sdt.c ============================================================================== --- projects/pseries/cddl/dev/sdt/sdt.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/cddl/dev/sdt/sdt.c Sun Apr 1 08:14:50 2012 (r233754) @@ -52,6 +52,8 @@ static void sdt_destroy(void *, dtrace_i static void sdt_enable(void *, dtrace_id_t, void *); static void sdt_disable(void *, dtrace_id_t, void *); static void sdt_load(void *); +static int sdt_provider_unreg_callback(struct sdt_provider *prov, + void *arg); static struct cdevsw sdt_cdevsw = { .d_version = D_VERSION, @@ -190,7 +192,8 @@ sdt_load(void *dummy) sdt_probe_func = dtrace_probe; - (void) sdt_provider_listall(sdt_provider_reg_callback, NULL); + sdt_register_callbacks(sdt_provider_reg_callback, NULL, + sdt_provider_unreg_callback, NULL, sdt_probe_callback, NULL); } static int @@ -206,7 +209,7 @@ sdt_unload() sdt_probe_func = sdt_probe_stub; - (void) sdt_provider_listall(sdt_provider_unreg_callback, NULL); + sdt_deregister_callbacks(); destroy_dev(sdt_cdev); Modified: projects/pseries/conf/files ============================================================================== --- projects/pseries/conf/files Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files Sun Apr 1 08:14:50 2012 (r233754) @@ -139,6 +139,131 @@ cam/scsi/scsi_sg.c optional sg cam/scsi/scsi_targ_bh.c optional targbh cam/scsi/scsi_target.c optional targ cam/scsi/smp_all.c optional scbus +# shared between zfs and dtrace +cddl/compat/opensolaris/kern/opensolaris.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_cmn_err.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_kmem.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_misc.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_sunddi.c optional zfs compile-with "${ZFS_C}" +# zfs specific +cddl/compat/opensolaris/kern/opensolaris_acl.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_kobj.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_kstat.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_lookup.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_policy.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_string.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_sysevent.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_taskq.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_uio.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_vfs.c optional zfs compile-with "${ZFS_C}" +cddl/compat/opensolaris/kern/opensolaris_zone.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/acl/acl_common.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/avl/avl.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/nvpair/nvpair.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/nvpair/nvpair_alloc_fixed.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/unicode/u8_textprep.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_comutil.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_deleg.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_fletcher.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_ioctl_compat.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_namecheck.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zfs_prop.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zpool_prop.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/zfs/zprop_common.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/gfs.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/vnode.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/bplist.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/bpobj.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/ddt.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/ddt_zap.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_diff.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_object.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c optional zfs compile-with "${ZFS_C}" \ + warning "kernel contains CDDL licensed ZFS filesystem" +cddl/contrib/opensolaris/uts/common/fs/zfs/dnode_sync.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deadlist.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_deleg.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dir.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_prop.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scan.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_synctask.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/gzip.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/lzjb.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/refcount.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/rrwlock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/sha256.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_config.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_errlog.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_history.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/uberblock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/unique.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_mirror.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_missing.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_queue.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_raidz.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_root.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zap.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zap_leaf.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zap_micro.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_byteswap.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_debug.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fuid.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_log.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_onexit.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_rlock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio_checksum.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zio_inject.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zle.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zrlock.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/callb.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/fm.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/list.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/os/nvpair_alloc_system.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/adler32.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/deflate.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/inffast.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/inflate.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/inftrees.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/opensolaris_crc32.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/trees.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/zmod.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/zmod_subr.c optional zfs compile-with "${ZFS_C}" +cddl/contrib/opensolaris/uts/common/zmod/zutil.c optional zfs compile-with "${ZFS_C}" contrib/altq/altq/altq_cbq.c optional altq \ compile-with "${NORMAL_C} -I$S/contrib/pf" contrib/altq/altq/altq_cdnr.c optional altq @@ -415,7 +540,7 @@ crypto/rijndael/rijndael-api.c optional crypto/sha1.c optional carp | crypto | ipsec | \ netgraph_mppc_encryption | sctp crypto/sha2/sha2.c optional crypto | geom_bde | ipsec | random | \ - sctp + sctp | zfs ddb/db_access.c optional ddb ddb/db_break.c optional ddb ddb/db_capture.c optional ddb @@ -1135,6 +1260,7 @@ dev/hme/if_hme_sbus.c optional hme sbus dev/hptiop/hptiop.c optional hptiop scbus dev/hwpmc/hwpmc_logging.c optional hwpmc dev/hwpmc/hwpmc_mod.c optional hwpmc +dev/hwpmc/hwpmc_soft.c optional hwpmc dev/ichsmb/ichsmb.c optional ichsmb dev/ichsmb/ichsmb_pci.c optional ichsmb pci dev/ida/ida.c optional ida @@ -1432,6 +1558,8 @@ dev/mfi/mfi.c optional mfi dev/mfi/mfi_debug.c optional mfi dev/mfi/mfi_pci.c optional mfi pci dev/mfi/mfi_disk.c optional mfi +dev/mfi/mfi_syspd.c optional mfi +dev/mfi/mfi_tbolt.c optional mfi dev/mfi/mfi_linux.c optional mfi compat_linux dev/mfi/mfi_cam.c optional mfip scbus dev/mii/acphy.c optional miibus | acphy Modified: projects/pseries/conf/files.amd64 ============================================================================== --- projects/pseries/conf/files.amd64 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.amd64 Sun Apr 1 08:14:50 2012 (r233754) @@ -113,7 +113,6 @@ amd64/amd64/identcpu.c standard amd64/amd64/in_cksum.c optional inet | inet6 amd64/amd64/initcpu.c standard amd64/amd64/io.c optional io -amd64/amd64/legacy.c standard amd64/amd64/locore.S standard no-obj amd64/amd64/machdep.c standard amd64/amd64/mem.c optional mem @@ -133,6 +132,7 @@ amd64/amd64/uio_machdep.c standard amd64/amd64/uma_machdep.c standard amd64/amd64/vm_machdep.c standard amd64/pci/pci_cfgreg.c optional pci +cddl/contrib/opensolaris/common/atomic/amd64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" crypto/aesni/aesencdec_amd64.S optional aesni crypto/aesni/aeskeys_amd64.S optional aesni crypto/aesni/aesni.c optional aesni @@ -476,6 +476,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c standard +x86/x86/legacy.c standard x86/x86/local_apic.c standard x86/x86/mca.c standard x86/x86/mptable.c optional mptable Modified: projects/pseries/conf/files.arm ============================================================================== --- projects/pseries/conf/files.arm Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.arm Sun Apr 1 08:14:50 2012 (r233754) @@ -47,6 +47,7 @@ arm/arm/vm_machdep.c standard arm/fpe-arm/armfpe_glue.S optional armfpe arm/fpe-arm/armfpe_init.c optional armfpe arm/fpe-arm/armfpe.S optional armfpe +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs compile-with "${ZFS_C}" dev/hwpmc/hwpmc_arm.c optional hwpmc dev/ofw/openfirm.c optional fdt dev/ofw/openfirmio.c optional fdt Modified: projects/pseries/conf/files.i386 ============================================================================== --- projects/pseries/conf/files.i386 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.i386 Sun Apr 1 08:14:50 2012 (r233754) @@ -71,6 +71,7 @@ hptrr_lib.o optional hptrr \ compile-with "uudecode < $S/dev/hptrr/i386-elf.hptrr_lib.o.uu" \ no-implicit-rule # +cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" compat/linprocfs/linprocfs.c optional linprocfs compat/linsysfs/linsysfs.c optional linsysfs compat/linux/linux_emul.c optional compat_linux @@ -407,7 +408,6 @@ i386/i386/in_cksum.c optional inet | in i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem -i386/i386/legacy.c optional native i386/i386/locore.s optional native no-obj i386/xen/locore.s optional xen no-obj i386/i386/longrun.c optional cpu_enable_longrun @@ -528,6 +528,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c optional apic +x86/x86/legacy.c optional native x86/x86/local_apic.c optional apic x86/x86/mca.c standard x86/x86/mptable.c optional apic native Modified: projects/pseries/conf/files.ia64 ============================================================================== --- projects/pseries/conf/files.ia64 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.ia64 Sun Apr 1 08:14:50 2012 (r233754) @@ -28,6 +28,7 @@ ukbdmap.h optional ukbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +cddl/contrib/opensolaris/common/atomic/ia64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32 compat/freebsd32/freebsd32_misc.c optional compat_freebsd32 compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32 Modified: projects/pseries/conf/files.mips ============================================================================== --- projects/pseries/conf/files.mips Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.mips Sun Apr 1 08:14:50 2012 (r233754) @@ -85,6 +85,7 @@ libkern/ucmpdi2.c standard #libkern/mips/strcmp.S standard #libkern/mips/strncmp.S standard +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs compile-with "${ZFS_C}" compat/freebsd32/freebsd32_ioctl.c optional compat_freebsd32 compat/freebsd32/freebsd32_misc.c optional compat_freebsd32 compat/freebsd32/freebsd32_syscalls.c optional compat_freebsd32 Modified: projects/pseries/conf/files.pc98 ============================================================================== --- projects/pseries/conf/files.pc98 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.pc98 Sun Apr 1 08:14:50 2012 (r233754) @@ -38,6 +38,7 @@ ukbdmap.h optional ukbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +cddl/contrib/opensolaris/common/atomic/i386/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" compat/linprocfs/linprocfs.c optional linprocfs compat/linsysfs/linsysfs.c optional linsysfs compat/linux/linux_emul.c optional compat_linux @@ -146,7 +147,6 @@ i386/i386/in_cksum.c optional inet | in i386/i386/initcpu.c standard i386/i386/io.c optional io i386/i386/k6_mem.c optional mem -i386/i386/legacy.c standard i386/i386/locore.s standard no-obj i386/i386/mem.c optional mem i386/i386/minidump_machdep.c standard @@ -204,7 +204,6 @@ i386/svr4/svr4_locore.s optional compat dependency "svr4_assym.h" \ warning "COMPAT_SVR4 is broken and should be avoided" i386/svr4/svr4_machdep.c optional compat_svr4 -# kern/kern_clocksource.c standard kern/imgact_aout.c optional compat_aout kern/imgact_gzip.c optional gzip @@ -252,6 +251,7 @@ x86/x86/busdma_machdep.c standard x86/x86/dump_machdep.c standard x86/x86/intr_machdep.c standard x86/x86/io_apic.c optional apic +x86/x86/legacy.c standard x86/x86/local_apic.c optional apic x86/x86/mca.c standard x86/x86/mptable.c optional apic Modified: projects/pseries/conf/files.powerpc ============================================================================== --- projects/pseries/conf/files.powerpc Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.powerpc Sun Apr 1 08:14:50 2012 (r233754) @@ -14,6 +14,9 @@ font.h optional sc \ no-obj no-implicit-rule before-depend \ clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8" # +# There is only an asm version on ppc64. +cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc compile-with "${ZFS_C}" +cddl/contrib/opensolaris/common/atomic/powerpc64/opensolaris_atomic.S optional zfs powerpc64 compile-with "${ZFS_S}" crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb dev/bm/if_bm.c optional bm powermac Modified: projects/pseries/conf/files.sparc64 ============================================================================== --- projects/pseries/conf/files.sparc64 Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/files.sparc64 Sun Apr 1 08:14:50 2012 (r233754) @@ -22,6 +22,7 @@ ukbdmap.h optional ukbd_dflt_keymap \ no-obj no-implicit-rule before-depend \ clean "ukbdmap.h" # +cddl/contrib/opensolaris/common/atomic/sparc64/opensolaris_atomic.S optional zfs compile-with "${ZFS_S}" crypto/blowfish/bf_enc.c optional crypto | ipsec crypto/des/des_enc.c optional crypto | ipsec | netsmb dev/atkbdc/atkbd.c optional atkbd atkbdc Modified: projects/pseries/conf/kern.post.mk ============================================================================== --- projects/pseries/conf/kern.post.mk Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/kern.post.mk Sun Apr 1 08:14:50 2012 (r233754) @@ -152,6 +152,12 @@ genassym.o: $S/$M/$M/genassym.c ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h +# We have "special" -I include paths for opensolaris/zfs files in 'depend'. +CFILES_NOZFS= ${CFILES:N*/opensolaris/*} +SFILES_NOZFS= ${SFILES:N*/opensolaris/*} +CFILES_ZFS= ${CFILES:M*/opensolaris/*} +SFILES_ZFS= ${SFILES:M*/opensolaris/*} + kernel-depend: .depend # The argument list can be very long, so use make -V and xargs to # pass it to mkdep. @@ -160,10 +166,14 @@ SRCS= assym.s vnode_if.h ${BEFORE_DEPEND ${MFILES:T:S/.m$/.h/} .depend: .PRECIOUS ${SRCS} rm -f .newdep - ${MAKE} -V CFILES -V SYSTEM_CFILES -V GEN_CFILES | \ + ${MAKE} -V CFILES_NOZFS -V SYSTEM_CFILES -V GEN_CFILES | \ MKDEP_CPP="${CC} -E" CC="${CC}" xargs mkdep -a -f .newdep ${CFLAGS} - ${MAKE} -V SFILES | \ + ${MAKE} -V CFILES_ZFS | \ + MKDEP_CPP="${CC} -E" CC="${CC}" xargs mkdep -a -f .newdep ${ZFS_CFLAGS} + ${MAKE} -V SFILES_NOZFS | \ MKDEP_CPP="${CC} -E" xargs mkdep -a -f .newdep ${ASM_CFLAGS} + ${MAKE} -V SFILES_ZFS | \ + MKDEP_CPP="${CC} -E" xargs mkdep -a -f .newdep ${ZFS_ASM_CFLAGS} rm -f .depend mv .newdep .depend Modified: projects/pseries/conf/kern.pre.mk ============================================================================== --- projects/pseries/conf/kern.pre.mk Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/kern.pre.mk Sun Apr 1 08:14:50 2012 (r233754) @@ -6,7 +6,7 @@ .include # backwards compat option for older systems. -MACHINE_CPUARCH?=${MACHINE_ARCH:C/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +MACHINE_CPUARCH?=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/:C/powerpc64/powerpc/} # Can be overridden by makeoptions or /etc/make.conf KERNEL_KO?= kernel @@ -131,6 +131,12 @@ NORMAL_C_NOWERROR= ${CC} -c ${CFLAGS} ${ NORMAL_M= ${AWK} -f $S/tools/makeobjops.awk ${.IMPSRC} -c ; \ ${CC} -c ${CFLAGS} ${WERROR} ${PROF} ${.PREFIX}.c +# Special flags for managing the compat compiles for ZFS +ZFS_CFLAGS= -DFREEBSD_NAMECACHE -DBUILDING_ZFS -nostdinc -I$S/cddl/compat/opensolaris -I$S/cddl/contrib/opensolaris/uts/common/fs/zfs -I$S/cddl/contrib/opensolaris/uts/common/zmod -I$S/cddl/contrib/opensolaris/uts/common -I$S -I$S/cddl/contrib/opensolaris/common/zfs -I$S/cddl/contrib/opensolaris/common ${CFLAGS} -Wno-unknown-pragmas -Wno-missing-prototypes -Wno-undef -Wno-strict-prototypes -Wno-cast-qual -Wno-parentheses -Wno-redundant-decls -Wno-missing-braces -Wno-uninitialized -Wno-unused -Wno-inline -Wno-switch -Wno-pointer-arith -Wno-unknown-pragmas +ZFS_ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${ZFS_CFLAGS} +ZFS_C= ${CC} -c ${ZFS_CFLAGS} ${WERROR} ${PROF} ${.IMPSRC} +ZFS_S= ${CC} -c ${ZFS_ASM_CFLAGS} ${WERROR} ${.IMPSRC} + .if ${MK_CTF} != "no" NORMAL_CTFCONVERT= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} .elif ${MAKE_VERSION} >= 5201111300 Modified: projects/pseries/conf/kmod.mk ============================================================================== --- projects/pseries/conf/kmod.mk Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/kmod.mk Sun Apr 1 08:14:50 2012 (r233754) @@ -61,7 +61,7 @@ # # backwards compat option for older systems. -MACHINE_CPUARCH?=${MACHINE_ARCH:C/mipse[lb]/mips/:C/armeb/arm/:C/powerpc64/powerpc/} +MACHINE_CPUARCH?=${MACHINE_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/:C/powerpc64/powerpc/} AWK?= awk KMODLOAD?= /sbin/kldload Modified: projects/pseries/conf/options ============================================================================== --- projects/pseries/conf/options Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/conf/options Sun Apr 1 08:14:50 2012 (r233754) @@ -837,6 +837,8 @@ XBOX opt_xbox.h # XFS XFS +ZFS opt_dontuse.h + # Interrupt filtering INTR_FILTER Modified: projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c ============================================================================== --- projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/contrib/dev/acpica/components/namespace/nsrepair.c Sun Apr 1 08:14:50 2012 (r233754) @@ -209,6 +209,9 @@ ObjectRepaired: */ if (!(Data->Flags & ACPI_OBJECT_WRAPPED)) { + NewObject->Common.ReferenceCount = + ReturnObject->Common.ReferenceCount; + if (ReturnObject->Common.ReferenceCount > 1) { ReturnObject->Common.ReferenceCount--; Modified: projects/pseries/contrib/dev/acpica/components/parser/psargs.c ============================================================================== --- projects/pseries/contrib/dev/acpica/components/parser/psargs.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/contrib/dev/acpica/components/parser/psargs.c Sun Apr 1 08:14:50 2012 (r233754) @@ -672,6 +672,7 @@ AcpiPsGetNextField ( Arg = AcpiPsAllocOp (AML_INT_BYTELIST_OP); if (!Arg) { + AcpiPsFreeOp (Field); return_PTR (NULL); } @@ -717,6 +718,7 @@ AcpiPsGetNextField ( Arg = AcpiPsAllocOp (AML_INT_NAMEPATH_OP); if (!Arg) { + AcpiPsFreeOp (Field); return_PTR (NULL); } Modified: projects/pseries/dev/acpica/acpi.c ============================================================================== --- projects/pseries/dev/acpica/acpi.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/acpica/acpi.c Sun Apr 1 08:14:50 2012 (r233754) @@ -1968,6 +1968,7 @@ static void acpi_shutdown_final(void *arg, int howto) { struct acpi_softc *sc = (struct acpi_softc *)arg; + register_t intr; ACPI_STATUS status; /* @@ -1983,13 +1984,15 @@ acpi_shutdown_final(void *arg, int howto return; } device_printf(sc->acpi_dev, "Powering system off\n"); - ACPI_DISABLE_IRQS(); + intr = intr_disable(); status = AcpiEnterSleepState(ACPI_STATE_S5, acpi_sleep_flags); - if (ACPI_FAILURE(status)) + if (ACPI_FAILURE(status)) { + intr_restore(intr); device_printf(sc->acpi_dev, "power-off failed - %s\n", AcpiFormatException(status)); - else { + } else { DELAY(1000000); + intr_restore(intr); device_printf(sc->acpi_dev, "power-off failed - timeout\n"); } } else if ((howto & RB_HALT) == 0 && sc->acpi_handle_reboot) { @@ -2641,7 +2644,8 @@ enum acpi_sleep_state { static ACPI_STATUS acpi_EnterSleepState(struct acpi_softc *sc, int state) { - ACPI_STATUS status; + register_t intr; + ACPI_STATUS status; enum acpi_sleep_state slp_state; ACPI_FUNCTION_TRACE_U32((char *)(uintptr_t)__func__, state); @@ -2730,8 +2734,9 @@ acpi_EnterSleepState(struct acpi_softc * if (state == ACPI_STATE_S4) AcpiEnable(); } else { - ACPI_DISABLE_IRQS(); + intr = intr_disable(); status = AcpiEnterSleepState(state, acpi_sleep_flags); + intr_restore(intr); if (ACPI_FAILURE(status)) { device_printf(sc->acpi_dev, "AcpiEnterSleepState failed - %s\n", AcpiFormatException(status)); Modified: projects/pseries/dev/acpica/acpi_pcib_acpi.c ============================================================================== --- projects/pseries/dev/acpica/acpi_pcib_acpi.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/acpica/acpi_pcib_acpi.c Sun Apr 1 08:14:50 2012 (r233754) @@ -59,8 +59,9 @@ struct acpi_hpcib_softc { ACPI_HANDLE ap_handle; int ap_flags; - int ap_segment; /* analagous to Alpha 'hose' */ + int ap_segment; /* PCI domain */ int ap_bus; /* bios-assigned bus number */ + int ap_addr; /* device/func of PCI-Host bridge */ ACPI_BUFFER ap_prt; /* interrupt routing table */ #ifdef NEW_PCIB @@ -276,7 +277,7 @@ acpi_pcib_acpi_attach(device_t dev) struct acpi_hpcib_softc *sc; ACPI_STATUS status; static int bus0_seen = 0; - u_int addr, slot, func, busok; + u_int slot, func, busok; uint8_t busno; ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__); @@ -286,7 +287,7 @@ acpi_pcib_acpi_attach(device_t dev) sc->ap_handle = acpi_get_handle(dev); /* - * Get our segment number by evaluating _SEG + * Get our segment number by evaluating _SEG. * It's OK for this to not exist. */ status = acpi_GetInteger(sc->ap_handle, "_SEG", &sc->ap_segment); @@ -300,6 +301,18 @@ acpi_pcib_acpi_attach(device_t dev) sc->ap_segment = 0; } + /* + * Get the address (device and function) of the associated + * PCI-Host bridge device from _ADR. Assume we don't have one if + * it doesn't exist. + */ + status = acpi_GetInteger(sc->ap_handle, "_ADR", &sc->ap_addr); + if (ACPI_FAILURE(status)) { + device_printf(dev, "could not evaluate _ADR - %s\n", + AcpiFormatException(status)); + sc->ap_addr = -1; + } + #ifdef NEW_PCIB /* * Determine which address ranges this bridge decodes and setup @@ -354,18 +367,10 @@ acpi_pcib_acpi_attach(device_t dev) busok = 1; if (sc->ap_segment == 0 && sc->ap_bus == 0 && bus0_seen) { busok = 0; - status = acpi_GetInteger(sc->ap_handle, "_ADR", &addr); - if (ACPI_FAILURE(status)) { - if (status != AE_NOT_FOUND) { - device_printf(dev, "could not evaluate _ADR - %s\n", - AcpiFormatException(status)); - return_VALUE (ENXIO); - } else - device_printf(dev, "couldn't find _ADR\n"); - } else { + if (sc->ap_addr != -1) { /* XXX: We assume bus 0. */ - slot = ACPI_ADR_PCI_SLOT(addr); - func = ACPI_ADR_PCI_FUNC(addr); + slot = ACPI_ADR_PCI_SLOT(sc->ap_addr); + func = ACPI_ADR_PCI_FUNC(sc->ap_addr); if (bootverbose) device_printf(dev, "reading config registers from 0:%d:%d\n", slot, func); @@ -488,10 +493,24 @@ static int acpi_pcib_map_msi(device_t pcib, device_t dev, int irq, uint64_t *addr, uint32_t *data) { - device_t bus; + struct acpi_hpcib_softc *sc; + device_t bus, hostb; + int error; bus = device_get_parent(pcib); - return (PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data)); + error = PCIB_MAP_MSI(device_get_parent(bus), dev, irq, addr, data); + if (error) + return (error); + + sc = device_get_softc(dev); + if (sc->ap_addr == -1) + return (0); + /* XXX: Assumes all bridges are on bus 0. */ + hostb = pci_find_dbsf(sc->ap_segment, 0, ACPI_ADR_PCI_SLOT(sc->ap_addr), + ACPI_ADR_PCI_FUNC(sc->ap_addr)); + if (hostb != NULL) + pci_ht_map_msi(hostb, *addr); + return (0); } struct resource * Modified: projects/pseries/dev/ale/if_ale.c ============================================================================== --- projects/pseries/dev/ale/if_ale.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/ale/if_ale.c Sun Apr 1 08:14:50 2012 (r233754) @@ -115,7 +115,6 @@ static void ale_init_tx_ring(struct ale_ static void ale_int_task(void *, int); static int ale_intr(void *); static int ale_ioctl(struct ifnet *, u_long, caddr_t); -static void ale_link_task(void *, int); static void ale_mac_config(struct ale_softc *); static int ale_miibus_readreg(device_t, int, int); static void ale_miibus_statchg(device_t); @@ -253,10 +252,45 @@ static void ale_miibus_statchg(device_t dev) { struct ale_softc *sc; + struct mii_data *mii; + struct ifnet *ifp; + uint32_t reg; sc = device_get_softc(dev); + mii = device_get_softc(sc->ale_miibus); + ifp = sc->ale_ifp; + if (mii == NULL || ifp == NULL || + (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return; + + sc->ale_flags &= ~ALE_FLAG_LINK; + if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == + (IFM_ACTIVE | IFM_AVALID)) { + switch (IFM_SUBTYPE(mii->mii_media_active)) { + case IFM_10_T: + case IFM_100_TX: + sc->ale_flags |= ALE_FLAG_LINK; + break; + case IFM_1000_T: + if ((sc->ale_flags & ALE_FLAG_FASTETHER) == 0) + sc->ale_flags |= ALE_FLAG_LINK; + break; + default: + break; + } + } - taskqueue_enqueue(taskqueue_swi, &sc->ale_link_task); + /* Stop Rx/Tx MACs. */ + ale_stop_mac(sc); + + /* Program MACs with resolved speed/duplex/flow-control. */ + if ((sc->ale_flags & ALE_FLAG_LINK) != 0) { + ale_mac_config(sc); + /* Reenable Tx/Rx MACs. */ + reg = CSR_READ_4(sc, ALE_MAC_CFG); + reg |= MAC_CFG_TX_ENB | MAC_CFG_RX_ENB; + CSR_WRITE_4(sc, ALE_MAC_CFG, reg); + } } static void @@ -267,6 +301,10 @@ ale_mediastatus(struct ifnet *ifp, struc sc = ifp->if_softc; ALE_LOCK(sc); + if ((ifp->if_flags & IFF_UP) == 0) { + ALE_UNLOCK(sc); + return; + } mii = device_get_softc(sc->ale_miibus); mii_pollstat(mii); @@ -425,7 +463,6 @@ ale_attach(device_t dev) MTX_DEF); callout_init_mtx(&sc->ale_tick_ch, &sc->ale_mtx, 0); TASK_INIT(&sc->ale_int_task, 0, ale_int_task, sc); - TASK_INIT(&sc->ale_link_task, 0, ale_link_task, sc); /* Map the device. */ pci_enable_busmaster(dev); @@ -679,7 +716,6 @@ ale_detach(device_t dev) ALE_UNLOCK(sc); callout_drain(&sc->ale_tick_ch); taskqueue_drain(sc->ale_tq, &sc->ale_int_task); - taskqueue_drain(taskqueue_swi, &sc->ale_link_task); } if (sc->ale_tq != NULL) { @@ -2076,57 +2112,6 @@ ale_mac_config(struct ale_softc *sc) } static void -ale_link_task(void *arg, int pending) -{ - struct ale_softc *sc; - struct mii_data *mii; - struct ifnet *ifp; - uint32_t reg; - - sc = (struct ale_softc *)arg; - - ALE_LOCK(sc); - mii = device_get_softc(sc->ale_miibus); - ifp = sc->ale_ifp; - if (mii == NULL || ifp == NULL || - (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { - ALE_UNLOCK(sc); - return; - } - - sc->ale_flags &= ~ALE_FLAG_LINK; - if ((mii->mii_media_status & (IFM_ACTIVE | IFM_AVALID)) == - (IFM_ACTIVE | IFM_AVALID)) { - switch (IFM_SUBTYPE(mii->mii_media_active)) { - case IFM_10_T: - case IFM_100_TX: - sc->ale_flags |= ALE_FLAG_LINK; - break; - case IFM_1000_T: - if ((sc->ale_flags & ALE_FLAG_FASTETHER) == 0) - sc->ale_flags |= ALE_FLAG_LINK; - break; - default: - break; - } - } - - /* Stop Rx/Tx MACs. */ - ale_stop_mac(sc); - - /* Program MACs with resolved speed/duplex/flow-control. */ - if ((sc->ale_flags & ALE_FLAG_LINK) != 0) { - ale_mac_config(sc); - /* Reenable Tx/Rx MACs. */ - reg = CSR_READ_4(sc, ALE_MAC_CFG); - reg |= MAC_CFG_TX_ENB | MAC_CFG_RX_ENB; - CSR_WRITE_4(sc, ALE_MAC_CFG, reg); - } - - ALE_UNLOCK(sc); -} - -static void ale_stats_clear(struct ale_softc *sc) { struct smb sb; @@ -2876,14 +2861,14 @@ ale_init_locked(struct ale_softc *sc) CSR_WRITE_4(sc, ALE_INTR_STATUS, 0xFFFFFFFF); CSR_WRITE_4(sc, ALE_INTR_STATUS, 0); + ifp->if_drv_flags |= IFF_DRV_RUNNING; + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + sc->ale_flags &= ~ALE_FLAG_LINK; /* Switch to the current media. */ mii_mediachg(mii); callout_reset(&sc->ale_tick_ch, hz, ale_tick, sc); - - ifp->if_drv_flags |= IFF_DRV_RUNNING; - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; } static void Modified: projects/pseries/dev/ale/if_alevar.h ============================================================================== --- projects/pseries/dev/ale/if_alevar.h Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/ale/if_alevar.h Sun Apr 1 08:14:50 2012 (r233754) @@ -221,7 +221,6 @@ struct ale_softc { int ale_pagesize; struct task ale_int_task; - struct task ale_link_task; struct taskqueue *ale_tq; struct mtx ale_mtx; }; Modified: projects/pseries/dev/ath/if_ath.c ============================================================================== --- projects/pseries/dev/ath/if_ath.c Sun Apr 1 06:31:57 2012 (r233753) +++ projects/pseries/dev/ath/if_ath.c Sun Apr 1 08:14:50 2012 (r233754) @@ -191,6 +191,7 @@ static void ath_tx_cleanup(struct ath_so static void ath_tx_proc_q0(void *, int); static void ath_tx_proc_q0123(void *, int); static void ath_tx_proc(void *, int); +static void ath_txq_sched_tasklet(void *, int); static int ath_chan_set(struct ath_softc *, struct ieee80211_channel *); static void ath_draintxq(struct ath_softc *, ATH_RESET_TYPE reset_type); static void ath_stoprecv(struct ath_softc *, int); @@ -398,6 +399,7 @@ ath_attach(u_int16_t devid, struct ath_s TASK_INIT(&sc->sc_bmisstask, 0, ath_bmiss_proc, sc); TASK_INIT(&sc->sc_bstucktask,0, ath_bstuck_proc, sc); TASK_INIT(&sc->sc_resettask,0, ath_reset_proc, sc); + TASK_INIT(&sc->sc_txqtask,0, ath_txq_sched_tasklet, sc); /* * Allocate hardware transmit queues: one queue for @@ -5132,6 +5134,41 @@ ath_tx_proc(void *arg, int npending) #undef TXQACTIVE /* + * Deferred processing of TXQ rescheduling. + */ +static void +ath_txq_sched_tasklet(void *arg, int npending) +{ + struct ath_softc *sc = arg; + int i; + + /* XXX is skipping ok? */ + ATH_PCU_LOCK(sc); +#if 0 + if (sc->sc_inreset_cnt > 0) { + device_printf(sc->sc_dev, + "%s: sc_inreset_cnt > 0; skipping\n", __func__); + ATH_PCU_UNLOCK(sc); + return; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sun Apr 1 08:58:21 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B5E1D106564A; Sun, 1 Apr 2012 08:58:21 +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 A184C8FC16; Sun, 1 Apr 2012 08:58: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 q318wL1U041504; Sun, 1 Apr 2012 08:58:21 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q318wLAB041502; Sun, 1 Apr 2012 08:58:21 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201204010858.q318wLAB041502@svn.freebsd.org> From: Andrew Turner Date: Sun, 1 Apr 2012 08:58: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: r233756 - projects/arm_eabi/gnu/lib/libstdc++ 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, 01 Apr 2012 08:58:21 -0000 Author: andrew Date: Sun Apr 1 08:58:21 2012 New Revision: 233756 URL: http://svn.freebsd.org/changeset/base/233756 Log: Use the correct C++ exception and unwind support for AEABI. Modified: projects/arm_eabi/gnu/lib/libstdc++/Makefile Modified: projects/arm_eabi/gnu/lib/libstdc++/Makefile ============================================================================== --- projects/arm_eabi/gnu/lib/libstdc++/Makefile Sun Apr 1 08:40:52 2012 (r233755) +++ projects/arm_eabi/gnu/lib/libstdc++/Makefile Sun Apr 1 08:58:21 2012 (r233756) @@ -15,7 +15,7 @@ SHLIB_MAJOR= 6 CFLAGS+= -DIN_GLIBCPP_V3 -DHAVE_CONFIG_H .if ${MACHINE_CPUARCH} == "arm" -CFLAGS+= -D_GLIBCXX_SJLJ_EXCEPTIONS=1 +#CFLAGS+= -D_GLIBCXX_SJLJ_EXCEPTIONS=1 .endif CFLAGS+= -I${.CURDIR} -I${SUPDIR} -I${GCCDIR} -I${SRCDIR}/include CFLAGS+= -I${GCCLIB}/include -I${SRCDIR}/include -I. @@ -594,7 +594,13 @@ gthr-default.h: ${GCCDIR}/gthr-posix.h CLEANFILES+= ${THRHDRS} +.if ${MACHINE_CPUARCH} == "arm" +unwind.h: ${GCCDIR}/config/arm/unwind-arm.h +.else unwind.h: ${GCCDIR}/unwind-generic.h +.endif + +unwind.h: ln -sf ${.ALLSRC} ${.TARGET} SRCS+= unwind.h From owner-svn-src-projects@FreeBSD.ORG Sun Apr 1 09:38:23 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 128B4106564A; Sun, 1 Apr 2012 09:38:23 +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 EE3848FC1B; Sun, 1 Apr 2012 09:38:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q319cMSP043020; Sun, 1 Apr 2012 09:38:22 GMT (envelope-from andrew@svn.freebsd.org) Received: (from andrew@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q319cMio043017; Sun, 1 Apr 2012 09:38:22 GMT (envelope-from andrew@svn.freebsd.org) Message-Id: <201204010938.q319cMio043017@svn.freebsd.org> From: Andrew Turner Date: Sun, 1 Apr 2012 09:38: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: r233758 - in projects/arm_eabi: share/doc/usd/04.csh sys/amd64/conf sys/arm/conf sys/i386/conf sys/mips/conf sys/pc98/conf sys/powerpc/conf sys/sparc64/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: Sun, 01 Apr 2012 09:38:23 -0000 Author: andrew Date: Sun Apr 1 09:38:22 2012 New Revision: 233758 URL: http://svn.freebsd.org/changeset/base/233758 Log: Add files missed in the last IFC Added: projects/arm_eabi/share/doc/usd/04.csh/csh.a projects/arm_eabi/sys/amd64/conf/LINT projects/arm_eabi/sys/amd64/conf/LINT-VIMAGE projects/arm_eabi/sys/arm/conf/DOCKSTAR projects/arm_eabi/sys/arm/conf/QILA9G20 projects/arm_eabi/sys/arm/conf/QILA9G20.hints projects/arm_eabi/sys/arm/conf/SAM9G20EK projects/arm_eabi/sys/arm/conf/SAM9G20EK.hints projects/arm_eabi/sys/i386/conf/LINT projects/arm_eabi/sys/i386/conf/LINT-VIMAGE projects/arm_eabi/sys/i386/conf/XENHVM projects/arm_eabi/sys/mips/conf/AR71XX_BASE projects/arm_eabi/sys/mips/conf/AR71XX_BASE.hints projects/arm_eabi/sys/mips/conf/PB47 projects/arm_eabi/sys/mips/conf/PB47.hints projects/arm_eabi/sys/mips/conf/ROUTERSTATION projects/arm_eabi/sys/mips/conf/ROUTERSTATION.hints projects/arm_eabi/sys/mips/conf/ROUTERSTATION_MFS projects/arm_eabi/sys/mips/conf/RSPRO projects/arm_eabi/sys/mips/conf/RSPRO.hints projects/arm_eabi/sys/mips/conf/RSPRO_MFS projects/arm_eabi/sys/mips/conf/RSPRO_STANDALONE projects/arm_eabi/sys/mips/conf/SWARM64 projects/arm_eabi/sys/mips/conf/SWARM64_SMP projects/arm_eabi/sys/mips/conf/std.SWARM projects/arm_eabi/sys/pc98/conf/LINT projects/arm_eabi/sys/powerpc/conf/LINT projects/arm_eabi/sys/sparc64/conf/LINT Added: projects/arm_eabi/share/doc/usd/04.csh/csh.a ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/arm_eabi/share/doc/usd/04.csh/csh.a Sun Apr 1 09:38:22 2012 (r233758) @@ -0,0 +1,93 @@ +.\"- +.\" Copyright (c) 1980, 1993 +.\" The Regents of the University of California. 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. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)csh.a 8.1 (Berkeley) 6/8/93 +.\" $FreeBSD: head/share/doc/usd/04.csh/csh.a 216178 2010-12-04 10:11:20Z uqs $ +.\" +.SH +Appendix \- Special characters +.LP +The following table lists the special characters of +.I csh +and the \s-2UNIX\s0 system, giving for each the section(s) in which it +is discussed. +A number of these characters also have special meaning in expressions. +See the +.I csh +manual section +for a complete list. +.ta .75i 1.5i 2.25i +.LP +Syntactic metacharacters +.DS +; 2.4 separates commands to be executed sequentially +| 1.5 separates commands in a pipeline +( ) 2.2,3.6 brackets expressions and variable values +& 2.5 follows commands to be executed without waiting for completion +.DE +.LP +Filename metacharacters +.DS +/ 1.6 separates components of a file's pathname +\&. 1.6 separates root parts of a file name from extensions +? 1.6 expansion character matching any single character +* 1.6 expansion character matching any sequence of characters +[ ] 1.6 expansion sequence matching any single character from a set +~ 1.6 used at the beginning of a filename to indicate home directories +{ } 4.2 used to specify groups of arguments with common parts +.DE +.LP +Quotation metacharacters +.DS +\e 1.7 prevents meta-meaning of following single character +\' 1.7 prevents meta-meaning of a group of characters +" 4.3 like \', but allows variable and command expansion +.DE +.LP +Input/output metacharacters +.DS +< 1.5 indicates redirected input +> 1.3 indicates redirected output +.DE +.LP +Expansion/substitution metacharacters +.DS +$ 3.4 indicates variable substitution +! 2.3 indicates history substitution +: 3.6 precedes substitution modifiers +^ 2.3 used in special forms of history substitution +\` 4.3 indicates command substitution +.DE +.LP +Other metacharacters +.DS +# 1.3,3.6 begins scratch file names; indicates shell comments +\- 1.2 prefixes option (flag) arguments to commands +% 2.6 prefixes job name specifications +.DE +.bp Added: projects/arm_eabi/sys/amd64/conf/LINT ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/arm_eabi/sys/amd64/conf/LINT Sun Apr 1 09:38:22 2012 (r233758) @@ -0,0 +1,914 @@ +ident LINT +maxusers 10 +makeoptions CONF_CFLAGS=-fno-builtin +makeoptions DESTDIR=/tmp +options MAXDSIZ=(1024UL*1024*1024) +options MAXSSIZ=(128UL*1024*1024) +options DFLDSIZ=(1024UL*1024*1024) +options BLKDEV_IOSIZE=8192 +options DFLTPHYS=(64*1024) +options MAXPHYS=(128*1024) +options INCLUDE_CONFIG_FILE +options GEOM_AES +options GEOM_BDE +options GEOM_BSD +options GEOM_CACHE +options GEOM_CONCAT +options GEOM_ELI +options GEOM_FOX +options GEOM_GATE +options GEOM_JOURNAL +options GEOM_LABEL +options GEOM_LINUX_LVM +options GEOM_MBR +options GEOM_MIRROR +options GEOM_MULTIPATH +options GEOM_NOP +options GEOM_PART_APM +options GEOM_PART_BSD +options GEOM_PART_EBR +options GEOM_PART_EBR_COMPAT +options GEOM_PART_GPT +options GEOM_PART_MBR +options GEOM_PART_PC98 +options GEOM_PART_VTOC8 +options GEOM_PC98 +options GEOM_RAID3 +options GEOM_SHSEC +options GEOM_STRIPE +options GEOM_SUNLABEL +options GEOM_UZIP +options GEOM_VIRSTOR +options GEOM_VOL +options GEOM_ZERO +options ROOTDEVNAME=\"ufs:da0s2e\" +options SCHED_4BSD +options SCHED_STATS +options SMP +options NO_ADAPTIVE_MUTEXES +options NO_ADAPTIVE_RWLOCKS +options NO_ADAPTIVE_SX +options MUTEX_NOINLINE +options RWLOCK_NOINLINE +options SX_NOINLINE +options PREEMPTION +options FULL_PREEMPTION +options MUTEX_DEBUG +options WITNESS +options WITNESS_KDB +options WITNESS_SKIPSPIN +options LOCK_PROFILING +options MPROF_BUFFERS="1536" +options MPROF_HASH_SIZE="1543" +options SLEEPQUEUE_PROFILING +options TURNSTILE_PROFILING +options COMPAT_43 +options COMPAT_43TTY +options COMPAT_FREEBSD4 +options COMPAT_FREEBSD5 +options COMPAT_FREEBSD6 +options COMPAT_FREEBSD7 +options SYSVSHM +options SYSVSEM +options SYSVMSG +options KDB +options KDB_TRACE +options KDB_UNATTENDED +options DDB +options DDB_NUMSYM +options GDB +options SYSCTL_DEBUG +options NO_SYSCTL_DESCR +options MALLOC_DEBUG_MAXZONES=8 +options DEBUG_MEMGUARD +options DEBUG_REDZONE +options KTRACE +options KTRACE_REQUEST_POOL=101 +options KTR +options KTR_ENTRIES=1024 +options KTR_COMPILE=(KTR_INTR|KTR_PROC) +options KTR_MASK=KTR_INTR +options KTR_CPUMASK=0x3 +options KTR_VERBOSE +options ALQ +options KTR_ALQ +options INVARIANTS +options INVARIANT_SUPPORT +options DIAGNOSTIC +options REGRESSION +options COMPILING_LINT +options STACK +device hwpmc +options HWPMC_HOOKS +options INET +options INET6 +options ROUTETABLES=2 +options IPSEC +options IPSEC_NAT_T +options IPX +options NCP +options NETATALK +options NETATALKDEBUG +options NETSMB +options LIBMCHAIN +options LIBALIAS +options FLOWTABLE +options SCTP +options SCTP_DEBUG +options SCTP_WITH_NO_CSUM +options SCTP_LOCK_LOGGING +options SCTP_MBUF_LOGGING +options SCTP_MBCNT_LOGGING +options SCTP_PACKET_LOGGING +options SCTP_LTRACE_CHUNKS +options SCTP_LTRACE_ERRORS +options ALTQ +options ALTQ_CBQ +options ALTQ_RED +options ALTQ_RIO +options ALTQ_HFSC +options ALTQ_CDNR +options ALTQ_PRIQ +options ALTQ_NOPCC +options ALTQ_DEBUG +options NETGRAPH +options NETGRAPH_DEBUG +options NETGRAPH_ASYNC +options NETGRAPH_ATMLLC +options NETGRAPH_ATM_ATMPIF +options NETGRAPH_BLUETOOTH +options NETGRAPH_BLUETOOTH_BT3C +options NETGRAPH_BLUETOOTH_HCI +options NETGRAPH_BLUETOOTH_L2CAP +options NETGRAPH_BLUETOOTH_SOCKET +options NETGRAPH_BLUETOOTH_UBT +options NETGRAPH_BLUETOOTH_UBTBCMFW +options NETGRAPH_BPF +options NETGRAPH_BRIDGE +options NETGRAPH_CAR +options NETGRAPH_CISCO +options NETGRAPH_DEFLATE +options NETGRAPH_DEVICE +options NETGRAPH_ECHO +options NETGRAPH_EIFACE +options NETGRAPH_ETHER +options NETGRAPH_FEC +options NETGRAPH_FRAME_RELAY +options NETGRAPH_GIF +options NETGRAPH_GIF_DEMUX +options NETGRAPH_HOLE +options NETGRAPH_IFACE +options NETGRAPH_IP_INPUT +options NETGRAPH_IPFW +options NETGRAPH_KSOCKET +options NETGRAPH_L2TP +options NETGRAPH_LMI +options NETGRAPH_MPPC_ENCRYPTION +options NETGRAPH_NETFLOW +options NETGRAPH_NAT +options NETGRAPH_ONE2MANY +options NETGRAPH_PATCH +options NETGRAPH_PIPE +options NETGRAPH_PPP +options NETGRAPH_PPPOE +options NETGRAPH_PPTPGRE +options NETGRAPH_PRED1 +options NETGRAPH_RFC1490 +options NETGRAPH_SOCKET +options NETGRAPH_SPLIT +options NETGRAPH_SPPP +options NETGRAPH_TAG +options NETGRAPH_TCPMSS +options NETGRAPH_TEE +options NETGRAPH_UI +options NETGRAPH_VJC +options NETGRAPH_VLAN +options NGATM_ATM +options NGATM_ATMBASE +options NGATM_SSCOP +options NGATM_SSCFU +options NGATM_UNI +options NGATM_CCATM +device mn +device loop +device ether +device vlan +device wlan +options IEEE80211_DEBUG +options IEEE80211_AMPDU_AGE +options IEEE80211_SUPPORT_MESH +options IEEE80211_SUPPORT_TDMA +device wlan_wep +device wlan_ccmp +device wlan_tkip +device wlan_xauth +device wlan_acl +device wlan_amrr +device token +device fddi +device arcnet +device sppp +device bpf +device disc +device epair +device edsc +device tap +device tun +device gif +device gre +options XBONEHACK +device faith +device stf +device ef +options ETHER_II +options ETHER_8023 +options ETHER_8022 +options ETHER_SNAP +device pf +device pflog +device pfsync +device if_bridge +device carp +device enc +device lagg +options MROUTING +options IPFIREWALL +options IPFIREWALL_VERBOSE +options IPFIREWALL_VERBOSE_LIMIT=100 +options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPFIREWALL_FORWARD +options IPFIREWALL_NAT +options IPDIVERT +options IPFILTER +options IPFILTER_LOG +options IPFILTER_LOOKUP +options IPFILTER_DEFAULT_BLOCK +options IPSTEALTH +options TCPDEBUG +options MBUF_STRESS_TEST +options MBUF_PROFILING +options ACCEPT_FILTER_DATA +options ACCEPT_FILTER_DNS +options ACCEPT_FILTER_HTTP +options TCP_SIGNATURE +options DUMMYNET +options ZERO_COPY_SOCKETS +options FFS +options NFSCLIENT +options CD9660 +options FDESCFS +options HPFS +options MSDOSFS +options NFSSERVER +options NFSLOCKD +options NFSCL +options NFSD +options KGSSAPI +options NTFS +options NULLFS +options PORTALFS +options PROCFS +options PSEUDOFS +options PSEUDOFS_TRACE +options SMBFS +options UDF +options UNIONFS +options NFS_ROOT +options SOFTUPDATES +options UFS_EXTATTR +options UFS_EXTATTR_AUTOSTART +options UFS_ACL +options UFS_DIRHASH +options UFS_GJOURNAL +options MD_ROOT_SIZE=10 +options MD_ROOT +options QUOTA +options SUIDDIR +options NFS_MINATTRTIMO=3 +options NFS_MAXATTRTIMO=60 +options NFS_MINDIRATTRTIMO=30 +options NFS_MAXDIRATTRTIMO=60 +options NFS_GATHERDELAY=10 +options NFS_WDELAYHASHSIZ=16 +options NFS_DEBUG +options CODA +device vcoda +options EXT2FS +options REISERFS +options XFS +options VFS_AIO +device random +device mem +device ksyms +options CD9660_ICONV +options MSDOSFS_ICONV +options NTFS_ICONV +options UDF_ICONV +options _KPOSIX_PRIORITY_SCHEDULING +options P1003_1B_SEMAPHORES +options P1003_1B_MQUEUE +options AUDIT +options MAC +options MAC_BIBA +options MAC_BSDEXTENDED +options MAC_IFOFF +options MAC_LOMAC +options MAC_MLS +options MAC_NONE +options MAC_PARTITION +options MAC_PORTACL +options MAC_SEEOTHERUIDS +options MAC_STUB +options MAC_TEST +options HZ=100 +options PPS_SYNC +device scbus +device ch +device da +device sa +device cd +device ses +device pt +device targ +device targbh +device pass +device sg +options CAMDEBUG +options CAM_DEBUG_BUS=-1 +options CAM_DEBUG_TARGET=-1 +options CAM_DEBUG_LUN=-1 +options CAM_DEBUG_FLAGS=(CAM_DEBUG_INFO|CAM_DEBUG_TRACE|CAM_DEBUG_CDB) +options CAM_MAX_HIGHPOWER=4 +options SCSI_NO_SENSE_STRINGS +options SCSI_NO_OP_STRINGS +options SCSI_DELAY=5000 +options CHANGER_MIN_BUSY_SECONDS=2 +options CHANGER_MAX_BUSY_SECONDS=10 +options SA_IO_TIMEOUT=4 +options SA_SPACE_TIMEOUT=60 +options SA_REWIND_TIMEOUT=(2*60) +options SA_ERASE_TIMEOUT=(4*60) +options SA_1FM_AT_EOD +options SCSI_PT_DEFAULT_TIMEOUT=60 +options SES_ENABLE_PASSTHROUGH +device pty +device nmdm +device md +device snp +device ccd +device firmware +options LIBICONV +options MSGBUF_SIZE=40960 +options KBD_DISABLE_KEYMAP_LOAD +options KBD_INSTALL_CDEV +options FB_DEBUG +device splash +device blank_saver +device daemon_saver +device dragon_saver +device fade_saver +device fire_saver +device green_saver +device logo_saver +device rain_saver +device snake_saver +device star_saver +device warp_saver +device sc +options MAXCONS=16 +options SC_ALT_MOUSE_IMAGE +options SC_DFLT_FONT +makeoptions SC_DFLT_FONT=cp850 +options SC_DISABLE_KDBKEY +options SC_DISABLE_REBOOT +options SC_HISTORY_SIZE=200 +options SC_MOUSE_CHAR=0x3 +options SC_PIXEL_MODE +options SC_NORM_ATTR=(FG_GREEN|BG_BLACK) +options SC_NORM_REV_ATTR=(FG_YELLOW|BG_GREEN) +options SC_KERNEL_CONS_ATTR=(FG_RED|BG_BLACK) +options SC_KERNEL_CONS_REV_ATTR=(FG_BLACK|BG_RED) +options SC_CUT_SPACES2TABS +options SC_CUT_SEPCHARS=\"x09\" +options SC_TWOBUTTON_MOUSE +options SC_NO_CUTPASTE +options SC_NO_FONT_LOADING +options SC_NO_HISTORY +options SC_NO_MODE_CHANGE +options SC_NO_SYSMOUSE +options SC_NO_SUSPEND_VTYSWITCH +options TEKEN_CONS25 +options TEKEN_UTF8 +device bt +device adv +device adw +device aha +device aic +device ahb +device ahc +device ahd +device amd +device esp +device iscsi_initiator +device isp +device ispfw +device mpt +device ncr +device sym +device trm +device wds +options AHC_ALLOW_MEMIO +options AHC_DUMP_EEPROM +options AHC_TMODE_ENABLE +options AHC_DEBUG +options AHC_DEBUG_OPTS +options AHC_REG_PRETTY_PRINT +options AHD_DEBUG +options AHD_DEBUG_OPTS=0xFFFFFFFF +options AHD_REG_PRETTY_PRINT +options AHD_TMODE_ENABLE +options ADW_ALLOW_MEMIO +options ISCSI_INITIATOR_DEBUG=9 +options ISP_TARGET_MODE=1 +options ISP_DEFAULT_ROLES=2 +device dpt +options DPT_TIMEOUT_FACTOR=4 +options DPT_LOST_IRQ +options DPT_RESET_HBA +device ciss +device iir +device mly +device ida +device mlx +device amr +device amrp +device mfi +device mfip +options MFI_DEBUG +device twe +device ahci +device mvs +device siis +device ata +device atadisk +device ataraid +device atapicd +device atapifd +device atapist +device atapicam +options ATA_STATIC_ID +device fdc +options FDC_DEBUG +device uart +options UART_PPS_ON_CTS +options BREAK_TO_DEBUGGER +options ALT_BREAK_TO_DEBUGGER +device scc +device puc +device miibus +device mii +device acphy +device amphy +device atphy +device axphy +device bmtphy +device brgphy +device ciphy +device e1000phy +device exphy +device gentbi +device icsphy +device inphy +device ip1000phy +device jmphy +device lxtphy +device mlphy +device nsgphy +device nsphy +device nsphyter +device pnaphy +device qsphy +device rdcphy +device rgephy +device rlphy +device rlswitch +device ruephy +device smcphy +device tdkphy +device tlphy +device truephy +device xmphy +device cm +device ep +device ex +device fe +device fea +device sn +device an +device wi +device xe +device ae +device age +device alc +device ale +device bce +device bfe +device bge +device cas +device cxgb +device cxgb_t3fw +device dc +device et +device fxp +device gem +device hme +device jme +device lge +device msk +device my +device nge +device re +device rl +device pcn +device sf +device sge +device sis +device sk +device ste +device stge +device tl +device tx +device vr +device vte +device wb +device xl +device de +device em +device igb +device ixgb +device ixgbe +device le +device mxge +device nxge +device ti +device txp +device vx +device fpa +device lmc +device ath +device ath_hal +options AH_SUPPORT_AR5416 +options AH_RXCFG_SDMAMW_4BYTES +device ath_rate_sample +device bwi +device bwn +device ral +options TI_JUMBO_HDRSPLIT +options BCE_JUMBO_HDRSPLIT +options MCLSHIFT=12 +options MSIZE=512 +device atm +device en +device fatm +device hatm +device patm +device utopia +options NATM +options LIBMBPOOL +device sound +device snd_ad1816 +device snd_als4000 +device snd_atiixp +device snd_cmi +device snd_cs4281 +device snd_csa +device snd_ds1 +device snd_emu10k1 +device snd_emu10kx +device snd_envy24 +device snd_envy24ht +device snd_es137x +device snd_ess +device snd_fm801 +device snd_gusc +device snd_hda +device snd_ich +device snd_maestro +device snd_maestro3 +device snd_mss +device snd_neomagic +device snd_sb16 +device snd_sb8 +device snd_sbc +device snd_solo +device snd_spicds +device snd_t4dwave +device snd_via8233 +device snd_via82c686 +device snd_vibes +device snd_uaudio +options SND_DEBUG +options SND_DIAGNOSTIC +options SND_FEEDER_MULTIFORMAT +options SND_FEEDER_FULL_MULTIFORMAT +options SND_FEEDER_RATE_HP +options SND_PCM_64 +options SND_OLDSTEREO +device pcii +device tnt4882 +device mcd +device scd +device joy +device cmx +device bktr +device cbb +device pccard +device cardbus +device mmc +device mmcsd +device sdhci +device smbus +device intpm +device alpm +device ichsmb +device viapm +device amdpm +device amdsmb +device nfpm +device nfsmb +device smb +device iicbus +device iicbb +device ic +device iic +device iicsmb +device ds133x +device ds1672 +options PPC_PROBE_CHIPSET +options DEBUG_1284 +options PERIPH_1284 +options DONTPROBE_1284 +options VP0_DEBUG +options LPT_DEBUG +options PPC_DEBUG +options PLIP_DEBUG +options PCFCLOCK_VERBOSE +options PCFCLOCK_MAX_RETRIES=5 +device ppc +device ppbus +device vpo +device lpt +device plip +device ppi +device pps +device lpbb +device pcfclock +options BOOTP +options BOOTP_NFSROOT +options BOOTP_NFSV3 +options BOOTP_COMPAT +options BOOTP_WIRED_TO=fxp0 +options BOOTP_BLOCKSIZE=8192 +options SW_WATCHDOG +options DEADLKRES +options NSFBUFS=1024 +options DEBUG_LOCKS +device uhci +device ohci +device ehci +device xhci +device usb +device udbp +device ufm +device uhid +device ukbd +device ulpt +device umass +device usfs +device umct +device umodem +device ums +device uep +device urio +device ucom +device u3g +device uark +device ubsa +device uftdi +device uipaq +device uplcom +device uslcom +device uvisor +device uvscom +device aue +device axe +device cdce +device cue +device kue +device rue +device udav +device uhso +device rum +device run +device uath +device ural +device zyd +options USB_DEBUG +options U3G_DEBUG +options UKBD_DFLT_KEYMAP +makeoptions UKBD_DFLT_KEYMAP=it.iso +options UPLCOM_INTR_INTERVAL=100 +options UVSCOM_DEFAULT_OPKTSIZE=8 +options UVSCOM_INTR_INTERVAL=100 +device firewire +device sbp +device sbp_targ +device fwe +device fwip +device dcons +device dcons_crom +options DCONS_BUF_SIZE=16384 +options DCONS_POLL_HZ=100 +options DCONS_FORCE_CONSOLE=0 +options DCONS_FORCE_GDB=1 +device crypto +device cryptodev +device rndtest +device hifn +options HIFN_DEBUG +options HIFN_RNDTEST +device ubsec +options UBSEC_DEBUG +options UBSEC_RNDTEST +options INIT_PATH=/sbin/init:/stand/sysinstall +options BUS_DEBUG +options DEBUG_VFS_LOCKS +options SOCKBUF_DEBUG +options VERBOSE_SYSINIT +options SEMMAP=31 +options SEMMNI=11 +options SEMMNS=61 +options SEMMNU=31 +options SEMMSL=61 +options SEMOPM=101 +options SEMUME=11 +options SHMALL=1025 +options SHMMAX=(SHMMAXPGS*PAGE_SIZE+1) +options SHMMAXPGS=1025 +options SHMMIN=2 +options SHMMNI=33 +options SHMSEG=9 +options COMPRESS_USER_CORES +device gzio +options PANIC_REBOOT_WAIT_TIME=16 +options DIRECTIO +options NSWBUF_MIN=120 +options CAM_DEBUG_DELAY +options CLUSTERDEBUG +options DEBUG +options LOCKF_DEBUG +options MSGMNB=2049 +options MSGMNI=41 +options MSGSEG=2049 +options MSGSSZ=16 +options MSGTQL=41 +options NBUF=512 +options SCSI_NCR_DEBUG +options SCSI_NCR_MAX_SYNC=10000 +options SCSI_NCR_MAX_WIDE=1 +options SCSI_NCR_MYADDR=7 +options SC_DEBUG_LEVEL=5 +options SC_RENDER_DEBUG +options SHOW_BUSYBUFS +options VFS_BIO_DEBUG +options KSTACK_MAX_PAGES=32 +options AAC_DEBUG +options BROOKTREE_ALLOC_PAGES=(217*4+1) +options MAXFILES=999 +profile 2 +options KDTRACE_HOOKS +options IPI_PREEMPTION +device atpic +device mptable +options MP_WATCHDOG +options COUNT_XINVLTLB_HITS +options COUNT_IPIS +cpu HAMMER +options DEVICE_POLLING +options BPF_JITTER +device nvram +device speaker +device gzip +device isa +options AUTO_EOI_1 +options MAXMEM=(128*1024) +device pci +device agp +options AGP_DEBUG +options VESA +options VESA_DEBUG +device dpms +options X86BIOS +device psm +options PSM_HOOKRESUME +options PSM_RESETAFTERSUSPEND +device atkbdc +device atkbd +options ATKBD_DFLT_KEYMAP +makeoptions ATKBD_DFLT_KEYMAP=jp.106 +device vga +options VGA_ALT_SEQACCESS +options VGA_SLOW_IOACCESS +options VGA_WIDTH90 +options VGA_DEBUG +device s3pci +device tdfx +device acpi +options ACPI_DEBUG +device cpufreq +device drm +device i915drm +device mach64drm +device mgadrm +device r128drm +device radeondrm +device savagedrm +device sisdrm +device tdfxdrm +device viadrm +options DRM_DEBUG +device ed +options ED_3C503 +options ED_HPP +options ED_SIC +device ipw +device iwi +device iwn +device mwl +device nfe +device nve +device wpi +device iwifw +device iwibssfw +device iwiibssfw +device iwimonitorfw +device ipwfw +device ipwbssfw +device ipwibssfw +device ipwmonitorfw +device iwnfw +device iwn4965fw +device iwn1000fw +device iwn5000fw +device iwn5150fw +device iwn6000fw +device iwn6050fw +device mwlfw +device wpifw +device arcmsr +options TWA_DEBUG +options TWA_FLASH_FIRMWARE +device twa +device ncv +device nsp +device stg +device aac +device aacp +device hptmv +device hptrr +device hptiop +device ips +device safe +options SAFE_DEBUG +options SAFE_RNDTEST +device ipmi +device pbio +device smbios +device vpd +device asmc +device tpm +device ichwd +device amdsbwd +device coretemp +device amdtemp +device cpuctl +options ENABLE_ALART +options PMAP_SHPGPERPROC=201 +options COMPAT_FREEBSD32 +options COMPAT_LINUX32 +options LINPROCFS +options LINSYSFS +options KSTACK_PAGES=3 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Apr 2 16:13:55 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 747921065670; Mon, 2 Apr 2012 16:13:55 +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 5D1658FC1B; Mon, 2 Apr 2012 16:13: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 q32GDtH9005253; Mon, 2 Apr 2012 16:13:55 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q32GDtGw005249; Mon, 2 Apr 2012 16:13:55 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204021613.q32GDtGw005249@svn.freebsd.org> From: Gleb Smirnoff Date: Mon, 2 Apr 2012 16:13:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233782 - 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: Mon, 02 Apr 2012 16:13:55 -0000 Author: glebius Date: Mon Apr 2 16:13:54 2012 New Revision: 233782 URL: http://svn.freebsd.org/changeset/base/233782 Log: Major step in making pf more SMP friendly. Lots of changes, that depend on each other, thus this commit couldn't be effectively split. - The RB-tree for states dropped, a hash introduced instead. Locking is per hash slot. Hash function is cheap here, it is (id % hashsize), thus slot mutex is also used to lock all states inside the slot. - The RB-tree for state keys dropped, a hash introduced instead. Locking is per hash slot. Lock order is "key hash lock", then "id hash lock". - The global list of states dropped. Traversing ID hash slots used instead. - Introduce state referencing. ID hash, pfsync, keys, each give state a reference. - pf_find_state(), pf_find_state_byid() return locked on success. - pf_unlink_state() actually frees the state, if we got the last reference. - pf_purge_expired_states() processes fraction of ID hash each second. Black magic with sx(9) lock removed. - pfsync_state_in_use() axed, generic referencing used. - The key-to-key pointer sk->reverse is temporarily disabled. Enabling it introduces LORs difficult to deal with. Also disabling it removes the m_addr_changed() hack from the TCP/IP stack. Re-introducing of this optimization should be reconsidered later. - Start on better locking in pfioctl(): acquire PF_LOCK() separately for each command, so that we can unlock them one by one, as well as work on using M_WAITOK and don't interlock for copyout(). For now the only polished command is DIOCGETSTATES. - Move some pf(4) initialization from pf_ioctl.c to pf.c, making them static. I believe only the ioctl stuff should belong to pf_ioctl.c. And probably lots of smaller changes not directly related to the above idea. I'm sorry. This code hasn't been properly tested. I just feed my test box via pfsync(4) with some live data, while the port on switch is in monitor mode, and monitors live pfsync vlan. The test box isn't forwarding anything, except its own traffic. The entire pf is still running under "pf Giant lock", since there are a lot of other things that should be locked before we can remove it. Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/contrib/pf/net/pf.c projects/pf/head/sys/contrib/pf/net/pf_ioctl.c projects/pf/head/sys/contrib/pf/net/pf_mtag.h projects/pf/head/sys/contrib/pf/net/pfvar.h Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Mon Apr 2 15:07:22 2012 (r233781) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Mon Apr 2 16:13:54 2012 (r233782) @@ -230,8 +230,8 @@ struct pfsync_softc { struct callout sc_bulkfail_tmo; u_int32_t sc_ureq_received; - struct pf_state *sc_bulk_next; - struct pf_state *sc_bulk_last; + int sc_bulk_hash_id; + struct pf_state_cmp sc_bulk_state; struct callout sc_bulk_tmo; TAILQ_HEAD(, tdb) sc_tdb_q; @@ -256,8 +256,6 @@ static int pfsync_init(void); static void pfsync_uninit(void); static void pfsync_sendout1(int); -#define schednetisr(NETISR_PFSYNC) swi_sched(V_pfsync_swi_cookie, 0) - SYSCTL_NODE(_net, OID_AUTO, pfsync, CTLFLAG_RW, 0, "PFSYNC"); SYSCTL_VNET_STRUCT(_net_pfsync, OID_AUTO, stats, CTLFLAG_RW, &VNET_NAME(pfsyncstats), pfsyncstats, @@ -558,14 +556,15 @@ pfsync_state_import(struct pfsync_state goto cleanup_state; } - if (!ISSET(flags, PFSYNC_SI_IOCTL)) { - CLR(st->state_flags, PFSTATE_NOSYNC); - if (ISSET(st->state_flags, PFSTATE_ACK)) { + if (!(flags & PFSYNC_SI_IOCTL)) { + st->state_flags &= ~PFSTATE_NOSYNC; + if (st->state_flags & PFSTATE_ACK) { pfsync_q_ins(st, PFSYNC_S_IACK); - schednetisr(NETISR_PFSYNC); + swi_sched(V_pfsync_swi_cookie, 0); } } - CLR(st->state_flags, PFSTATE_ACK); + st->state_flags &= ~PFSTATE_ACK; + PF_STATE_UNLOCK(st); return (0); @@ -578,7 +577,7 @@ cleanup: if (sks != NULL) uma_zfree(V_pf_state_key_z, sks); -cleanup_state: /* pf_state_insert frees the state keys */ +cleanup_state: /* pf_state_insert() frees the state keys. */ if (st) { if (st->dst.scrub) uma_zfree(V_pf_state_scrub_z, st->dst.scrub); @@ -679,8 +678,6 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st struct mbuf *mp; int len = sizeof(*clr) * count; int i, offp; - - struct pf_state *st, *nexts; u_int32_t creatorid; mp = m_pulldown(m, offset, len, &offp); @@ -698,18 +695,20 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st pfi_kif_get(clr[i].ifname) == NULL) continue; - PF_KEYS_LOCK(); - PF_IDS_LOCK(); - for (st = RB_MIN(pf_state_tree_id, &V_tree_id); - st; st = nexts) { - nexts = RB_NEXT(pf_state_tree_id, &V_tree_id, st); - if (st->creatorid == creatorid) { - SET(st->state_flags, PFSTATE_NOSYNC); - pf_unlink_state(st, 1); + for (int i = 0; i <= V_pf_hashmask; i++) { + struct pf_idhash *ih = &V_pf_idhash[i]; + struct pf_state *s; +relock: + PF_HASHROW_LOCK(ih); + LIST_FOREACH(s, &ih->states, entry) { + if (s->creatorid == creatorid) { + s->state_flags |= PFSTATE_NOSYNC; + pf_unlink_state(s, PF_ENTER_LOCKED); + goto relock; + } } + PF_HASHROW_UNLOCK(ih); } - PF_IDS_UNLOCK(); - PF_KEYS_UNLOCK(); } PF_UNLOCK(); @@ -788,8 +787,9 @@ pfsync_in_iack(struct pfsync_pkt *pkt, s if (st == NULL) continue; - if (ISSET(st->state_flags, PFSTATE_ACK)) + if (st->state_flags & PFSTATE_ACK) pfsync_deferred(st, 0); + PF_STATE_UNLOCK(st); } PF_UNLOCK(); /* @@ -881,7 +881,7 @@ pfsync_in_upd(struct pfsync_pkt *pkt, st continue; } - if (ISSET(st->state_flags, PFSTATE_ACK)) + if (st->state_flags & PFSTATE_ACK) pfsync_deferred(st, 1); sk = st->key[PF_SK_WIRE]; /* XXX right one? */ @@ -910,7 +910,8 @@ pfsync_in_upd(struct pfsync_pkt *pkt, st V_pfsyncstats.pfsyncs_stale++; pfsync_update_state(st); - schednetisr(NETISR_PFSYNC); + PF_STATE_UNLOCK(st); + swi_sched(V_pfsync_swi_cookie, 0); continue; } pfsync_alloc_scrub_memory(&sp->dst, &st->dst); @@ -919,6 +920,7 @@ pfsync_in_upd(struct pfsync_pkt *pkt, st st->expire = ntohl(sp->expire) + time_second; st->timeout = sp->timeout; st->pfsync_time = time_uptime; + PF_STATE_UNLOCK(st); } PF_UNLOCK(); @@ -973,7 +975,7 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, continue; } - if (ISSET(st->state_flags, PFSTATE_ACK)) + if (st->state_flags & PFSTATE_ACK) pfsync_deferred(st, 1); sk = st->key[PF_SK_WIRE]; /* XXX right one? */ @@ -1001,7 +1003,8 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, V_pfsyncstats.pfsyncs_stale++; pfsync_update_state(st); - schednetisr(NETISR_PFSYNC); + PF_STATE_UNLOCK(st); + swi_sched(V_pfsync_swi_cookie, 0); continue; } pfsync_alloc_scrub_memory(&up->dst, &st->dst); @@ -1010,6 +1013,7 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, st->expire = ntohl(up->expire) + time_second; st->timeout = up->timeout; st->pfsync_time = time_uptime; + PF_STATE_UNLOCK(st); } PF_UNLOCK(); @@ -1049,10 +1053,13 @@ pfsync_in_ureq(struct pfsync_pkt *pkt, s V_pfsyncstats.pfsyncs_badstate++; continue; } - if (ISSET(st->state_flags, PFSTATE_NOSYNC)) + if (st->state_flags & PFSTATE_NOSYNC) { + PF_STATE_UNLOCK(st); continue; + } pfsync_update_state_req(st); + PF_STATE_UNLOCK(st); } } PF_UNLOCK(); @@ -1089,8 +1096,8 @@ pfsync_in_del(struct pfsync_pkt *pkt, st V_pfsyncstats.pfsyncs_badstate++; continue; } - SET(st->state_flags, PFSTATE_NOSYNC); - pf_unlink_state(st, 0); + st->state_flags |= PFSTATE_NOSYNC; + pf_unlink_state(st, PF_ENTER_LOCKED); } PF_UNLOCK(); @@ -1127,10 +1134,8 @@ pfsync_in_del_c(struct pfsync_pkt *pkt, continue; } - SET(st->state_flags, PFSTATE_NOSYNC); - PF_KEYS_LOCK(); - pf_unlink_state(st, 0); - PF_KEYS_UNLOCK(); + st->state_flags |= PFSTATE_NOSYNC; + pf_unlink_state(st, PF_ENTER_LOCKED); } PF_UNLOCK(); @@ -1499,6 +1504,7 @@ pfsync_drop(struct pfsync_softc *sc) __func__)); #endif st->sync_state = PFSYNC_S_NONE; + pf_release_state(st); } TAILQ_INIT(&sc->sc_qs[q]); } @@ -1539,7 +1545,7 @@ pfsync_sendout1(int schedswi) struct ip *ip; struct pfsync_header *ph; struct pfsync_subheader *subh; - struct pf_state *st; + struct pf_state *st, *next; struct pfsync_upd_req_item *ur; #ifdef notyet struct tdb *t; @@ -1596,15 +1602,13 @@ pfsync_sendout1(int schedswi) offset += sizeof(*subh); count = 0; - TAILQ_FOREACH(st, &sc->sc_qs[q], sync_list) { -#ifdef PFSYNC_DEBUG + TAILQ_FOREACH_SAFE(st, &sc->sc_qs[q], sync_list, next) { KASSERT(st->sync_state == q, ("%s: st->sync_state == q", __func__)); -#endif - offset += pfsync_qs[q].write(st, m, offset); st->sync_state = PFSYNC_S_NONE; + pf_release_state(st); count++; } TAILQ_INIT(&sc->sc_qs[q]); @@ -1720,10 +1724,8 @@ pfsync_insert_state(struct pf_state *st) if (sc == NULL || ISSET(st->state_flags, PFSTATE_NOSYNC)) return; -#ifdef PFSYNC_DEBUG KASSERT(st->sync_state == PFSYNC_S_NONE, ("%s: st->sync_state == PFSYNC_S_NONE", __func__)); -#endif if (sc->sc_len == PFSYNC_MINPKT) callout_reset(&sc->sc_tmo, 1 * hz, pfsync_timeout, @@ -1731,8 +1733,8 @@ pfsync_insert_state(struct pf_state *st) pfsync_q_ins(st, PFSYNC_S_INS); - if (ISSET(st->state_flags, PFSTATE_ACK)) - schednetisr(NETISR_PFSYNC); + if (st->state_flags & PFSTATE_ACK) + swi_sched(V_pfsync_swi_cookie, 0); else st->sync_updates = 0; } @@ -1760,6 +1762,7 @@ pfsync_defer(struct pf_state *st, struct pd->pd_st = st; pd->pd_m = m; + pf_ref_state(st); TAILQ_INSERT_TAIL(&sc->sc_deferrals, pd, pd_entry); callout_init(&pd->pd_tmo, CALLOUT_MPSAFE); @@ -1780,6 +1783,7 @@ pfsync_undefer(struct pfsync_deferral *p sc->sc_deferred--; CLR(pd->pd_st->state_flags, PFSTATE_ACK); + pf_release_state(pd->pd_st); callout_stop(&pd->pd_tmo); /* bah */ if (drop) m_freem(pd->pd_m); @@ -1876,7 +1880,7 @@ pfsync_update_state(struct pf_state *st) if (sync || (time_uptime - st->pfsync_time) < 2) { pfsync_upds++; - schednetisr(NETISR_PFSYNC); + swi_sched(V_pfsync_swi_cookie, 0); } } @@ -1916,7 +1920,7 @@ pfsync_request_update(u_int32_t creatori TAILQ_INSERT_TAIL(&sc->sc_upd_req_list, item, ur_entry); sc->sc_len += nlen; - schednetisr(NETISR_PFSYNC); + swi_sched(V_pfsync_swi_cookie, 0); } static void @@ -1940,7 +1944,7 @@ pfsync_update_state_req(struct pf_state pfsync_q_del(st); case PFSYNC_S_NONE: pfsync_q_ins(st, PFSYNC_S_UPD); - schednetisr(NETISR_PFSYNC); + swi_sched(V_pfsync_swi_cookie, 0); return; case PFSYNC_S_INS: @@ -2050,6 +2054,7 @@ pfsync_q_ins(struct pf_state *st, int q) sc->sc_len += nlen; TAILQ_INSERT_TAIL(&sc->sc_qs[q], st, sync_list); st->sync_state = q; + pf_ref_state(st); } static void @@ -2064,6 +2069,7 @@ pfsync_q_del(struct pf_state *st) sc->sc_len -= pfsync_qs[q].len; TAILQ_REMOVE(&sc->sc_qs[q], st, sync_list); st->sync_state = PFSYNC_S_NONE; + pf_release_state(st); if (TAILQ_EMPTY(&sc->sc_qs[q])) sc->sc_len -= sizeof(struct pfsync_subheader); @@ -2099,7 +2105,7 @@ pfsync_update_tdb(struct tdb *t, int out t->tdb_updates = 0; } else { if (++t->tdb_updates >= sc->sc_maxupdates) - schednetisr(NETISR_PFSYNC); + swi_sched(V_pfsync_swi_cookie, 0); } if (output) @@ -2168,61 +2174,74 @@ pfsync_bulk_start(void) printf("pfsync: received bulk update request\n"); PF_LOCK_ASSERT(); - if (TAILQ_EMPTY(&V_state_list)) - pfsync_bulk_status(PFSYNC_BUS_END); - else { - sc->sc_ureq_received = time_uptime; - if (sc->sc_bulk_next == NULL) - sc->sc_bulk_next = TAILQ_FIRST(&V_state_list); - sc->sc_bulk_last = sc->sc_bulk_next; - pfsync_bulk_status(PFSYNC_BUS_START); - callout_reset(&sc->sc_bulk_tmo, 1, pfsync_bulk_update, sc); - } + sc->sc_ureq_received = time_uptime; + sc->sc_bulk_hash_id = 0; + bzero(&sc->sc_bulk_state, sizeof(struct pf_state_cmp)); + pfsync_bulk_status(PFSYNC_BUS_START); + callout_reset(&sc->sc_bulk_tmo, 1, pfsync_bulk_update, sc); } static void pfsync_bulk_update(void *arg) { struct pfsync_softc *sc = arg; - struct pf_state *st = sc->sc_bulk_next; - int i = 0; + struct pf_state *s; + int i, sent = 0; PF_LOCK_ASSERT(); - CURVNET_SET(sc->sc_ifp->if_vnet); - for (;;) { - if (st->sync_state == PFSYNC_S_NONE && - st->timeout < PFTM_MAX && - st->pfsync_time <= sc->sc_ureq_received) { - pfsync_update_state_req(st); - i++; - } - PF_LIST_RLOCK(); - st = TAILQ_NEXT(st, entry_list); - if (st == NULL) - st = TAILQ_FIRST(&V_state_list); - PF_LIST_RUNLOCK(); + /* + * Start with last state from previous invocation. + * It may had gone, in this case start from the + * hash slot. + */ + s = pf_find_state_byid(&sc->sc_bulk_state); - if (st == sc->sc_bulk_last) { - /* we're done */ - sc->sc_bulk_next = NULL; - sc->sc_bulk_last = NULL; - pfsync_bulk_status(PFSYNC_BUS_END); - break; + if (s != NULL) + i = PF_IDHASH(s); + else + i = sc->sc_bulk_hash_id; + + for (; i <= V_pf_hashmask; i++) { + struct pf_idhash *ih = &V_pf_idhash[i]; + + if (s != NULL) + PF_HASHROW_ASSERT(ih); + else { + PF_HASHROW_LOCK(ih); + s = LIST_FIRST(&ih->states); } - if (i > 1 && (sc->sc_ifp->if_mtu - sc->sc_len) < - sizeof(struct pfsync_state)) { - /* we've filled a packet */ - sc->sc_bulk_next = st; - callout_reset(&sc->sc_bulk_tmo, 1, - pfsync_bulk_update, sc); - break; + for (; s; s = LIST_NEXT(s, entry)) { + + if (sent > 1 && (sc->sc_ifp->if_mtu - sc->sc_len) < + sizeof(struct pfsync_state)) { + /* We've filled a packet. */ + sc->sc_bulk_hash_id = i; + bcopy(s, &sc->sc_bulk_state, + sizeof(struct pf_state_cmp)); + PF_HASHROW_UNLOCK(ih); + callout_reset(&sc->sc_bulk_tmo, 1, + pfsync_bulk_update, sc); + goto full; + } + + if (s->sync_state == PFSYNC_S_NONE && + s->timeout < PFTM_MAX && + s->pfsync_time <= sc->sc_ureq_received) { + pfsync_update_state_req(s); + sent++; + } } + PF_HASHROW_UNLOCK(ih); } + /* We're done. */ + pfsync_bulk_status(PFSYNC_BUS_END); + +full: CURVNET_RESTORE(); } @@ -2307,22 +2326,6 @@ pfsync_up(void) return (1); } -static int -pfsync_state_in_use(struct pf_state *st) -{ - struct pfsync_softc *sc = V_pfsyncif; - - if (sc == NULL) - return (0); - - if (st->sync_state != PFSYNC_S_NONE || - st == sc->sc_bulk_next || - st == sc->sc_bulk_last) - return (1); - - return (0); -} - static u_int pfsync_ints; static u_int pfsync_tmos; @@ -2486,7 +2489,6 @@ pfsync_init() pfsync_update_state_ptr = pfsync_update_state; pfsync_delete_state_ptr = pfsync_delete_state; pfsync_clear_states_ptr = pfsync_clear_states; - pfsync_state_in_use_ptr = pfsync_state_in_use; pfsync_defer_ptr = pfsync_defer; PF_UNLOCK(); @@ -2520,7 +2522,6 @@ pfsync_uninit() pfsync_update_state_ptr = NULL; pfsync_delete_state_ptr = NULL; pfsync_clear_states_ptr = NULL; - pfsync_state_in_use_ptr = NULL; pfsync_defer_ptr = NULL; PF_UNLOCK(); Modified: projects/pf/head/sys/contrib/pf/net/pf.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf.c Mon Apr 2 15:07:22 2012 (r233781) +++ projects/pf/head/sys/contrib/pf/net/pf.c Mon Apr 2 16:13:54 2012 (r233782) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#define betoh64 be64toh #include #include #include @@ -124,8 +123,6 @@ extern int ip_optcopy(struct ip *, struc */ /* state tables */ -VNET_DEFINE(struct pf_state_tree, pf_statetbl); - VNET_DEFINE(struct pf_altqqueue, pf_altqs[2]); VNET_DEFINE(struct pf_palist, pf_pabuf); VNET_DEFINE(struct pf_altqqueue *, pf_altqs_active); @@ -191,8 +188,9 @@ static void pf_send_icmp(struct mbuf * sa_family_t, struct pf_rule *); static void pf_detach_state(struct pf_state *); static int pf_state_key_attach(struct pf_state_key *, - struct pf_state *, int); + struct pf_state_key *, struct pf_state *); static void pf_state_key_detach(struct pf_state *, int); +static int pf_state_key_ini(void *, int, int); static u_int32_t pf_tcp_iss(struct pf_pdesc *); static int pf_test_rule(struct pf_rule **, struct pf_state **, int, struct pfi_kif *, struct mbuf *, int, @@ -250,16 +248,17 @@ static void pf_print_state_parts(struc struct pf_state_key *, struct pf_state_key *); static int pf_addr_wrap_neq(struct pf_addr_wrap *, struct pf_addr_wrap *); +#if 0 static int pf_compare_state_keys(struct pf_state_key *, struct pf_state_key *, struct pfi_kif *, u_int); +#endif static struct pf_state *pf_find_state(struct pfi_kif *, - struct pf_state_key_cmp *, u_int, struct mbuf *, - struct pf_mtag *); + struct pf_state_key_cmp *, u_int); static int pf_src_connlimit(struct pf_state **); static int pf_insert_src_node(struct pf_src_node **, struct pf_rule *, struct pf_addr *, sa_family_t); static int pf_check_congestion(struct ifqueue *); -static int pf_purge_expired_states(u_int32_t , int); +static void pf_purge_expired_states(int); int in4_cksum(struct mbuf *m, u_int8_t nxt, int off, int len); @@ -267,26 +266,22 @@ VNET_DECLARE(int, pf_end_threads); VNET_DEFINE(struct pf_pool_limit, pf_pool_limits[PF_LIMIT_MAX]); -#define PPACKET_LOOPED() \ - (pd->pf_mtag->flags & PF_PACKET_LOOPED) +#define PACKET_LOOPED(pd) ((pd)->pf_mtag->flags & PF_PACKET_LOOPED) -#define PACKET_LOOPED() \ - (pd.pf_mtag->flags & PF_PACKET_LOOPED) - -#define STATE_LOOKUP(i, k, d, s, m, pt) \ +#define STATE_LOOKUP(i, k, d, s, pd) \ do { \ - s = pf_find_state(i, k, d, m, pt); \ - if (s == NULL || (s)->timeout == PFTM_PURGE) \ + (s) = pf_find_state((i), (k), (d)); \ + if ((s) == NULL || (s)->timeout == PFTM_PURGE) \ return (PF_DROP); \ - if (PPACKET_LOOPED()) \ + if (PACKET_LOOPED(pd)) \ return (PF_PASS); \ - if (d == PF_OUT && \ + if ((d) == PF_OUT && \ (((s)->rule.ptr->rt == PF_ROUTETO && \ (s)->rule.ptr->direction == PF_OUT) || \ ((s)->rule.ptr->rt == PF_REPLYTO && \ (s)->rule.ptr->direction == PF_IN)) && \ (s)->rt_kif != NULL && \ - (s)->rt_kif != i) \ + (s)->rt_kif != (i)) \ return (PF_PASS); \ } while (0) @@ -317,20 +312,16 @@ VNET_DEFINE(struct pf_pool_limit, pf_poo } while (0) static __inline int pf_src_compare(struct pf_src_node *, struct pf_src_node *); -static __inline int pf_state_compare_key(struct pf_state_key *, - struct pf_state_key *); -static __inline int pf_state_compare_id(struct pf_state *, - struct pf_state *); VNET_DEFINE(struct pf_src_tree, tree_src_tracking); -VNET_DEFINE(struct pf_state_tree_id, tree_id); -VNET_DEFINE(struct pf_state_queue, state_list); +MALLOC_DEFINE(M_PFHASH, "pf hashes", "pf(4) hash header structures"); +/* XXXGL: make static? */ +VNET_DEFINE(struct pf_keyhash *, pf_keyhash); +VNET_DEFINE(struct pf_idhash *, pf_idhash); +VNET_DEFINE(u_long, pf_hashmask); RB_GENERATE(pf_src_tree, pf_src_node, entry, pf_src_compare); -RB_GENERATE(pf_state_tree, pf_state_key, entry, pf_state_compare_key); -RB_GENERATE(pf_state_tree_id, pf_state, - entry_id, pf_state_compare_id); static __inline int pf_src_compare(struct pf_src_node *a, struct pf_src_node *b) @@ -484,37 +475,42 @@ pf_src_connlimit(struct pf_state **state /* kill existing states if that's required. */ if ((*state)->rule.ptr->flush) { - struct pf_state_key *sk; - struct pf_state *st; V_pf_status.lcounters[LCNT_OVERLOAD_FLUSH]++; - PF_IDS_LOCK(); /* XXXGL: this cycle should go into a separate taskq */ - RB_FOREACH(st, pf_state_tree_id, &V_tree_id) { - sk = st->key[PF_SK_WIRE]; - /* - * Kill states from this source. (Only those - * from the same rule if PF_FLUSH_GLOBAL is not - * set) - */ - if (sk->af == - (*state)->key[PF_SK_WIRE]->af && - (((*state)->direction == PF_OUT && - PF_AEQ(&(*state)->src_node->addr, - &sk->addr[0], sk->af)) || - ((*state)->direction == PF_IN && - PF_AEQ(&(*state)->src_node->addr, - &sk->addr[1], sk->af))) && - ((*state)->rule.ptr->flush & - PF_FLUSH_GLOBAL || - (*state)->rule.ptr == st->rule.ptr)) { - st->timeout = PFTM_PURGE; - st->src.state = st->dst.state = - TCPS_CLOSED; - killed++; + for (int i = 0; i <= V_pf_hashmask; i++) { + struct pf_idhash *ih = &V_pf_idhash[i]; + struct pf_state_key *sk; + struct pf_state *s; + + PF_HASHROW_LOCK(ih); + LIST_FOREACH(s, &ih->states, entry) { + sk = s->key[PF_SK_WIRE]; + /* + * Kill states from this source. + * (Only those from the same rule if + * PF_FLUSH_GLOBAL is not set) + */ + if (sk->af == + (*state)->key[PF_SK_WIRE]->af && + (((*state)->direction == PF_OUT && + PF_AEQ(&(*state)->src_node->addr, + &sk->addr[0], sk->af)) || + ((*state)->direction == PF_IN && + PF_AEQ(&(*state)->src_node->addr, + &sk->addr[1], sk->af))) && + ((*state)->rule.ptr->flush & + PF_FLUSH_GLOBAL || + (*state)->rule.ptr == s->rule.ptr)) + { + s->timeout = PFTM_PURGE; + s->src.state = s->dst.state = + TCPS_CLOSED; + killed++; + } } + PF_HASHROW_UNLOCK(ih); } - PF_IDS_UNLOCK(); if (V_pf_status.debug >= PF_DEBUG_MISC) printf(", %u states killed", killed); } @@ -591,103 +587,184 @@ pf_insert_src_node(struct pf_src_node ** return (0); } -/* state table stuff */ - -static __inline int -pf_state_compare_key(struct pf_state_key *a, struct pf_state_key *b) +/* + * Hash function shamelessly taken from ng_netflow(4), trusting + * mav@ and melifaro@ data on its decent distribution. + */ +static __inline u_int +pf_hashkey(struct pf_state_key *sk) { - int diff; + u_int h; - if ((diff = a->proto - b->proto) != 0) - return (diff); - if ((diff = a->af - b->af) != 0) - return (diff); - switch (a->af) { -#ifdef INET +#define FULL_HASH(a1, a2, p1, p2) \ + (((a1) ^ ((a1) >> 16) ^ \ + htons((a2) ^ ((a2) >> 16))) ^ \ + (p1) ^ htons(p2)) + +#define ADDR_HASH(a1, a2) \ + ((a1) ^ ((a1) >> 16) ^ \ + htons((a2) ^ ((a2) >> 16))) + + switch (sk->af) { case AF_INET: - if (a->addr[0].addr32[0] > b->addr[0].addr32[0]) - return (1); - if (a->addr[0].addr32[0] < b->addr[0].addr32[0]) - return (-1); - if (a->addr[1].addr32[0] > b->addr[1].addr32[0]) - return (1); - if (a->addr[1].addr32[0] < b->addr[1].addr32[0]) - return (-1); + switch (sk->proto) { + case IPPROTO_TCP: + case IPPROTO_UDP: + h = FULL_HASH(sk->addr[0].v4.s_addr, + sk->addr[1].v4.s_addr, sk->port[0], sk->port[1]); + break; + default: + h = ADDR_HASH(sk->addr[0].v4.s_addr, + sk->addr[1].v4.s_addr); + break; + } break; -#endif /* INET */ -#ifdef INET6 case AF_INET6: - if (a->addr[0].addr32[3] > b->addr[0].addr32[3]) - return (1); - if (a->addr[0].addr32[3] < b->addr[0].addr32[3]) - return (-1); - if (a->addr[1].addr32[3] > b->addr[1].addr32[3]) - return (1); - if (a->addr[1].addr32[3] < b->addr[1].addr32[3]) - return (-1); - if (a->addr[0].addr32[2] > b->addr[0].addr32[2]) - return (1); - if (a->addr[0].addr32[2] < b->addr[0].addr32[2]) - return (-1); - if (a->addr[1].addr32[2] > b->addr[1].addr32[2]) - return (1); - if (a->addr[1].addr32[2] < b->addr[1].addr32[2]) - return (-1); - if (a->addr[0].addr32[1] > b->addr[0].addr32[1]) - return (1); - if (a->addr[0].addr32[1] < b->addr[0].addr32[1]) - return (-1); - if (a->addr[1].addr32[1] > b->addr[1].addr32[1]) - return (1); - if (a->addr[1].addr32[1] < b->addr[1].addr32[1]) - return (-1); - if (a->addr[0].addr32[0] > b->addr[0].addr32[0]) - return (1); - if (a->addr[0].addr32[0] < b->addr[0].addr32[0]) - return (-1); - if (a->addr[1].addr32[0] > b->addr[1].addr32[0]) - return (1); - if (a->addr[1].addr32[0] < b->addr[1].addr32[0]) - return (-1); + switch (sk->proto) { + case IPPROTO_TCP: + case IPPROTO_UDP: + h = FULL_HASH(sk->addr[0].v6.__u6_addr.__u6_addr32[3], + sk->addr[1].v6.__u6_addr.__u6_addr32[3], + sk->port[0], sk->port[1]); + break; + default: + h = ADDR_HASH(sk->addr[0].v6.__u6_addr.__u6_addr32[3], + sk->addr[1].v6.__u6_addr.__u6_addr32[3]); + break; + } break; -#endif /* INET6 */ + default: + panic("%s: unknown address family %u", __func__, sk->af); } - if ((diff = a->port[0] - b->port[0]) != 0) - return (diff); - if ((diff = a->port[1] - b->port[1]) != 0) - return (diff); - - return (0); + return (h & V_pf_hashmask); } -static __inline int -pf_state_compare_id(struct pf_state *a, struct pf_state *b) +/* Data storage structures initialization. */ +void +pf_initialize() { - if (a->id > b->id) - return (1); - if (a->id < b->id) - return (-1); - if (a->creatorid > b->creatorid) - return (1); - if (a->creatorid < b->creatorid) - return (-1); + struct pf_keyhash *kh; + struct pf_idhash *ih; + u_int i; + + /* States and state keys storage. */ + V_pf_state_z = uma_zcreate("pf states", sizeof(struct pf_state), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); + V_pf_pool_limits[PF_LIMIT_STATES].pp = V_pf_state_z; + uma_zone_set_max(V_pf_state_z, PFSTATE_HIWAT); + + V_pf_state_key_z = uma_zcreate("pf state keys", + sizeof(struct pf_state_key), NULL, NULL, pf_state_key_ini, NULL, + UMA_ALIGN_PTR, 0); + V_pf_keyhash = malloc(PF_HASHSIZ * sizeof(struct pf_keyhash), M_PFHASH, + M_WAITOK|M_ZERO); + V_pf_idhash = malloc(PF_HASHSIZ * sizeof(struct pf_idhash), M_PFHASH, + M_WAITOK|M_ZERO); + V_pf_hashmask = PF_HASHSIZ - 1; + for (i = 0, kh = V_pf_keyhash, ih = V_pf_idhash; i <= V_pf_hashmask; + i++, kh++, ih++) { + mtx_init(&kh->lock, "pf_keyhash", NULL, MTX_DEF); + mtx_init(&ih->lock, "pf_idhash", NULL, MTX_DEF); + } + + /* Source nodes. */ + V_pf_src_tree_z = uma_zcreate("pf src nodes", + sizeof(struct pf_src_node), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, + 0); + V_pf_pool_limits[PF_LIMIT_SRC_NODES].pp = V_pf_src_tree_z; + RB_INIT(&V_tree_src_tracking); + + /* ALTQ */ + V_pf_altq_z = uma_zcreate("pf altq", sizeof(struct pf_altq), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); + TAILQ_INIT(&V_pf_altqs[0]); + TAILQ_INIT(&V_pf_altqs[1]); + TAILQ_INIT(&V_pf_pabuf); + V_pf_altqs_active = &V_pf_altqs[0]; + V_pf_altqs_inactive = &V_pf_altqs[1]; + + /* XXXGL: sort this out */ + V_pf_rule_z = uma_zcreate("pf rules", sizeof(struct pf_rule), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); + V_pf_pooladdr_z = uma_zcreate("pf pool addresses", + sizeof(struct pf_pooladdr), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, + 0); + V_pfr_ktable_z = uma_zcreate("pf tables", + sizeof(struct pfr_ktable), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, + 0); + V_pf_pool_limits[PF_LIMIT_TABLES].pp = V_pfr_ktable_z; + V_pfr_kentry_z = uma_zcreate("pf table entries", + sizeof(struct pfr_kentry), NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, + 0); + V_pf_pool_limits[PF_LIMIT_TABLE_ENTRIES].pp = V_pfr_kentry_z; + V_pfi_addr_z = uma_zcreate("pf pfi_dynaddr", sizeof(struct pfi_dynaddr), + NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0); +} - return (0); +void +pf_cleanup() +{ + struct pf_keyhash *kh; + struct pf_idhash *ih; + u_int i; + + for (i = 0, kh = V_pf_keyhash, ih = V_pf_idhash; i <= V_pf_hashmask; + i++, kh++, ih++) { + KASSERT(LIST_EMPTY(&kh->keys), ("%s: key hash not empty", + __func__)); + KASSERT(LIST_EMPTY(&ih->states), ("%s: id hash not empty", + __func__)); + mtx_destroy(&kh->lock); + mtx_destroy(&ih->lock); + } + free(V_pf_keyhash, M_PFHASH); + free(V_pf_idhash, M_PFHASH); + + uma_zdestroy(V_pf_src_tree_z); + uma_zdestroy(V_pf_rule_z); + uma_zdestroy(V_pf_state_z); + uma_zdestroy(V_pf_state_key_z); + uma_zdestroy(V_pf_altq_z); + uma_zdestroy(V_pf_pooladdr_z); + uma_zdestroy(V_pfr_ktable_z); + uma_zdestroy(V_pfr_kentry_z); + uma_zdestroy(V_pfi_addr_z); } static int -pf_state_key_attach(struct pf_state_key *sk, struct pf_state *s, int idx) +pf_state_key_attach(struct pf_state_key *skw, struct pf_state_key *sks, + struct pf_state *s) { - struct pf_state_key *cur; + struct pf_keyhash *kh; + struct pf_state_key *sk, *cur; struct pf_state *si, *olds = NULL; + int idx; + + KASSERT(s->refs == 0, ("%s: state not pristine", __func__)); + KASSERT(s->key[PF_SK_WIRE] == NULL, ("%s: state has key", __func__)); + KASSERT(s->key[PF_SK_STACK] == NULL, ("%s: state has key", __func__)); + + /* + * First run: start with wire key. + */ + sk = skw; + idx = PF_SK_WIRE; + +keyattach: + kh = &V_pf_keyhash[pf_hashkey(sk)]; - PF_KEYS_ASSERT(); - KASSERT(s->key[idx] == NULL, ("%s: a key already attached", __func__)); + PF_HASHROW_LOCK(kh); + LIST_FOREACH(cur, &kh->keys, entry) + if (bcmp(cur, sk, sizeof(struct pf_state_key_cmp)) == 0) + break; + + if (cur != NULL) { + /* Key exists. Check for same kif, if none, add to key. */ + TAILQ_FOREACH(si, &cur->states[idx], key_list[idx]) { + struct pf_idhash *ih = &V_pf_idhash[PF_IDHASH(si)]; - if ((cur = RB_INSERT(pf_state_tree, &V_pf_statetbl, sk)) != NULL) { - /* key exists. check for same kif, if none, add to key */ - TAILQ_FOREACH(si, &cur->states[idx], key_list[idx]) + PF_HASHROW_LOCK(ih); if (si->kif == s->kif && si->direction == s->direction) { if (sk->proto == IPPROTO_TCP && @@ -696,6 +773,7 @@ pf_state_key_attach(struct pf_state_key si->src.state = si->dst.state = TCPS_CLOSED; /* Unlink later or cur can go away. */ + pf_ref_state(si); olds = si; } else { if (V_pf_status.debug >= PF_DEBUG_MISC) { @@ -717,29 +795,63 @@ pf_state_key_attach(struct pf_state_key sk : NULL); printf("\n"); } + PF_HASHROW_UNLOCK(ih); + PF_HASHROW_UNLOCK(kh); uma_zfree(V_pf_state_key_z, sk); + if (idx == PF_SK_STACK) + pf_detach_state(s); return (-1); /* collision! */ } } - /* - * Collided key may be the same we are trying to attach, - * this happens for non-NAT states, they are attached - * twice: via PF_SK_WIRE and PF_SK_STACK tailqs. - */ - if (cur != sk) - uma_zfree(V_pf_state_key_z, sk); + PF_HASHROW_UNLOCK(ih); + } + uma_zfree(V_pf_state_key_z, sk); s->key[idx] = cur; - } else + } else { + LIST_INSERT_HEAD(&kh->keys, sk, entry); s->key[idx] = sk; + } - /* list is sorted, if-bound states before floating */ +stateattach: + /* List is sorted, if-bound states before floating. */ if (s->kif == V_pfi_all) TAILQ_INSERT_TAIL(&s->key[idx]->states[idx], s, key_list[idx]); else TAILQ_INSERT_HEAD(&s->key[idx]->states[idx], s, key_list[idx]); - if (olds) + /* + * Attach done. See how should we (or should not?) + * attach a second key. + */ + if (sks == skw) { + s->key[PF_SK_STACK] = s->key[PF_SK_WIRE]; + idx = PF_SK_STACK; + sks = NULL; + goto stateattach; + } else if (sks != NULL) { + PF_HASHROW_UNLOCK(kh); + if (olds) { + pf_unlink_state(olds, 0); + pf_release_state(olds); + olds = NULL; + } + /* + * Continue attaching with stack key. + */ + sk = sks; + idx = PF_SK_STACK; + sks = NULL; + goto keyattach; + } else + PF_HASHROW_UNLOCK(kh); + + if (olds) { pf_unlink_state(olds, 0); + pf_release_state(olds); + } + + KASSERT(s->key[PF_SK_WIRE] != NULL && s->key[PF_SK_STACK] != NULL, + ("%s failure", __func__)); return (0); } @@ -747,34 +859,67 @@ pf_state_key_attach(struct pf_state_key static void *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Mon Apr 2 22:25: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 5CAE7106566B; Mon, 2 Apr 2012 22:25:27 +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 481278FC1F; Mon, 2 Apr 2012 22:25: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 q32MPRj8019432; Mon, 2 Apr 2012 22:25:27 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q32MPRdW019429; Mon, 2 Apr 2012 22:25:27 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204022225.q32MPRdW019429@svn.freebsd.org> From: Damjan Marion Date: Mon, 2 Apr 2012 22:25:27 +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: r233819 - 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: Mon, 02 Apr 2012 22:25:27 -0000 Author: dmarion Date: Mon Apr 2 22:25:26 2012 New Revision: 233819 URL: http://svn.freebsd.org/changeset/base/233819 Log: Add ti_scm_reg_write_4, so other drivers can write control registers. Modified: projects/armv6/sys/arm/ti/ti_scm.c projects/armv6/sys/arm/ti/ti_scm.h Modified: projects/armv6/sys/arm/ti/ti_scm.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_scm.c Mon Apr 2 21:59:40 2012 (r233818) +++ projects/armv6/sys/arm/ti/ti_scm.c Mon Apr 2 22:25:26 2012 (r233819) @@ -465,6 +465,17 @@ ti_scm_reg_read_4(uint32_t reg, uint32_t return (0); } +int +ti_scm_reg_write_4(uint32_t reg, uint32_t val) +{ + if (!ti_scm_sc) + return (ENXIO); + + ti_scm_write_4(ti_scm_sc, reg, val); + return (0); +} + + static device_method_t ti_scm_methods[] = { DEVMETHOD(device_probe, ti_scm_probe), DEVMETHOD(device_attach, ti_scm_attach), Modified: projects/armv6/sys/arm/ti/ti_scm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_scm.h Mon Apr 2 21:59:40 2012 (r233818) +++ projects/armv6/sys/arm/ti/ti_scm.h Mon Apr 2 22:25:26 2012 (r233819) @@ -77,5 +77,6 @@ int ti_scm_padconf_get_gpiomode(uint32_t 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); +int ti_scm_reg_write_4(uint32_t reg, uint32_t val); #endif /* _TI_SCM_H_ */ From owner-svn-src-projects@FreeBSD.ORG Mon Apr 2 22:26: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 5C580106564A; Mon, 2 Apr 2012 22:26:43 +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 47FE28FC0A; Mon, 2 Apr 2012 22:26:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q32MQhGV019506; Mon, 2 Apr 2012 22:26:43 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q32MQhm9019503; Mon, 2 Apr 2012 22:26:43 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204022226.q32MQhm9019503@svn.freebsd.org> From: Damjan Marion Date: Mon, 2 Apr 2012 22:26:43 +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: r233820 - projects/armv6/sys/dev/mii 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, 02 Apr 2012 22:26:43 -0000 Author: dmarion Date: Mon Apr 2 22:26:42 2012 New Revision: 233820 URL: http://svn.freebsd.org/changeset/base/233820 Log: Add SMC LAN8710A PHY. Modified: projects/armv6/sys/dev/mii/miidevs projects/armv6/sys/dev/mii/smcphy.c Modified: projects/armv6/sys/dev/mii/miidevs ============================================================================== --- projects/armv6/sys/dev/mii/miidevs Mon Apr 2 22:25:26 2012 (r233819) +++ projects/armv6/sys/dev/mii/miidevs Mon Apr 2 22:26:42 2012 (r233820) @@ -67,6 +67,7 @@ oui PMCSIERRA 0x00e004 PMC-Sierra oui QUALSEMI 0x006051 Quality Semiconductor oui RDC 0x00d02d RDC Semiconductor oui REALTEK 0x00e04c RealTek Semicondctor +oui SMC 0x00800f SMC oui SEEQ 0x00a07d Seeq Technology oui SIS 0x00e006 Silicon Integrated Systems oui TI 0x080028 Texas Instruments @@ -320,3 +321,6 @@ model xxTSC 78Q2121 0x0015 78Q2121 100B /* XaQti Corp. PHYs */ model xxXAQTI XMACII 0x0000 XaQti Corp. XMAC II gigabit interface + +/* SMC */ +model SMC LAN8710A 0x000F SMC LAN8710A 10/100 interface Modified: projects/armv6/sys/dev/mii/smcphy.c ============================================================================== --- projects/armv6/sys/dev/mii/smcphy.c Mon Apr 2 22:25:26 2012 (r233819) +++ projects/armv6/sys/dev/mii/smcphy.c Mon Apr 2 22:26:42 2012 (r233820) @@ -79,6 +79,7 @@ DRIVER_MODULE(smcphy, miibus, smcphy_dri static const struct mii_phydesc smcphys[] = { MII_PHY_DESC(SEEQ, 80220), MII_PHY_DESC(SEEQ, 84220), + MII_PHY_DESC(SMC, LAN8710A), MII_PHY_END }; From owner-svn-src-projects@FreeBSD.ORG Mon Apr 2 22:54:31 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CCDBF106566B; Mon, 2 Apr 2012 22:54:31 +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 B5CCB8FC0A; Mon, 2 Apr 2012 22:54: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 q32MsVmU020402; Mon, 2 Apr 2012 22:54:31 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q32MsV90020397; Mon, 2 Apr 2012 22:54:31 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204022254.q32MsV90020397@svn.freebsd.org> From: Damjan Marion Date: Mon, 2 Apr 2012 22:54: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: r233821 - in projects/armv6/sys: arm/conf arm/ti/am335x arm/ti/cpsw 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, 02 Apr 2012 22:54:31 -0000 Author: dmarion Date: Mon Apr 2 22:54:31 2012 New Revision: 233821 URL: http://svn.freebsd.org/changeset/base/233821 Log: Driver for CPSW Ethernet device found in AM335x and some other TI SoCs Driver is still under development, but at this point basic stuff works well and beagle bone can be booted over NFS. Added: projects/armv6/sys/arm/ti/cpsw/ projects/armv6/sys/arm/ti/cpsw/if_cpsw.c projects/armv6/sys/arm/ti/cpsw/if_cpswreg.h projects/armv6/sys/arm/ti/cpsw/if_cpswvar.h Modified: projects/armv6/sys/arm/conf/BEAGLEBONE projects/armv6/sys/arm/ti/am335x/files.am335x projects/armv6/sys/boot/fdt/dts/beaglebone.dts Modified: projects/armv6/sys/arm/conf/BEAGLEBONE ============================================================================== --- projects/armv6/sys/arm/conf/BEAGLEBONE Mon Apr 2 22:26:42 2012 (r233820) +++ projects/armv6/sys/arm/conf/BEAGLEBONE Mon Apr 2 22:54:31 2012 (r233821) @@ -125,6 +125,7 @@ device da # Direct Access (disks) # USB Ethernet support, requires miibus device miibus +device cpsw device axe # ASIX Electronics USB Ethernet # Flattened Device Tree Modified: projects/armv6/sys/arm/ti/am335x/files.am335x ============================================================================== --- projects/armv6/sys/arm/ti/am335x/files.am335x Mon Apr 2 22:26:42 2012 (r233820) +++ projects/armv6/sys/arm/ti/am335x/files.am335x Mon Apr 2 22:54:31 2012 (r233821) @@ -4,3 +4,5 @@ arm/ti/aintc.c standard arm/ti/am335x/am335x_prcm.c standard arm/ti/am335x/am335x_dmtimer.c standard arm/ti/am335x/am335x_scm_padconf.c standard + +arm/ti/cpsw/if_cpsw.c optional cpsw Added: projects/armv6/sys/arm/ti/cpsw/if_cpsw.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/armv6/sys/arm/ti/cpsw/if_cpsw.c Mon Apr 2 22:54:31 2012 (r233821) @@ -0,0 +1,1247 @@ +/*- + * Copyright (c) 2012 Damjan Marion + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * TI 3 Port Switch Ethernet (CPSW) Driver + * Found in TI8148, AM335x SoCs + */ + +#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 +#include + +#include + +#include "miibus_if.h" + +static struct cpsw_softc *cpsw_sc = NULL; + +static int cpsw_probe(device_t dev); +static int cpsw_attach(device_t dev); +static int cpsw_detach(device_t dev); +static int cpsw_shutdown(device_t dev); +static int cpsw_suspend(device_t dev); +static int cpsw_resume(device_t dev); + +static int cpsw_miibus_readreg(device_t dev, int phy, int reg); +static int cpsw_miibus_writereg(device_t dev, int phy, int reg, int value); + +static int cpsw_ifmedia_upd(struct ifnet *ifp); +static void cpsw_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr); + +static void cpsw_init(void *arg); +static void cpsw_init_locked(void *arg); +static void cpsw_start(struct ifnet *ifp); +static void cpsw_start_locked(struct ifnet *ifp); +static void cpsw_stop(struct cpsw_softc *sc); +static int cpsw_ioctl(struct ifnet *ifp, u_long command, caddr_t data); +static int cpsw_allocate_dma(struct cpsw_softc *sc); +static int cpsw_free_dma(struct cpsw_softc *sc); +static int cpsw_new_rxbuf(struct cpsw_softc *sc, uint32_t i, uint32_t next); +static void cpsw_watchdog(struct cpsw_softc *sc); + +static void cpsw_intr_rx_thresh(void *arg); +static void cpsw_intr_rx(void *arg); +static void cpsw_intr_rx_locked(void *arg); +static void cpsw_intr_tx(void *arg); +static void cpsw_intr_tx_locked(void *arg); +static void cpsw_intr_misc(void *arg); + +static void cpsw_ale_read_entry(struct cpsw_softc *sc, uint16_t idx, uint32_t *ale_entry); +static void cpsw_ale_write_entry(struct cpsw_softc *sc, uint16_t idx, uint32_t *ale_entry); +static int cpsw_ale_uc_entry_set(struct cpsw_softc *sc, uint8_t port, uint8_t *mac); +static int cpsw_ale_mc_entry_set(struct cpsw_softc *sc, uint8_t portmap, uint8_t *mac); +#ifdef CPSW_DEBUG +static void cpsw_ale_dump_table(struct cpsw_softc *sc); +#endif + +static device_method_t cpsw_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, cpsw_probe), + DEVMETHOD(device_attach, cpsw_attach), + DEVMETHOD(device_detach, cpsw_detach), + DEVMETHOD(device_shutdown, cpsw_shutdown), + DEVMETHOD(device_suspend, cpsw_suspend), + DEVMETHOD(device_resume, cpsw_resume), + /* MII interface */ + DEVMETHOD(miibus_readreg, cpsw_miibus_readreg), + DEVMETHOD(miibus_writereg, cpsw_miibus_writereg), + { 0, 0 } +}; + +static driver_t cpsw_driver = { + "cpsw", + cpsw_methods, + sizeof(struct cpsw_softc), +}; + +static devclass_t cpsw_devclass; + + +DRIVER_MODULE(cpsw, simplebus, cpsw_driver, cpsw_devclass, 0, 0); +DRIVER_MODULE(miibus, cpsw, miibus_driver, miibus_devclass, 0, 0); +MODULE_DEPEND(cpsw, ether, 1, 1, 1); +MODULE_DEPEND(cpsw, miibus, 1, 1, 1); + +static struct resource_spec res_spec[] = { + { SYS_RES_MEMORY, 0, RF_ACTIVE }, + { SYS_RES_IRQ, 0, RF_ACTIVE | RF_SHAREABLE }, + { SYS_RES_IRQ, 1, RF_ACTIVE | RF_SHAREABLE }, + { SYS_RES_IRQ, 2, RF_ACTIVE | RF_SHAREABLE }, + { SYS_RES_IRQ, 3, RF_ACTIVE | RF_SHAREABLE }, + { -1, 0 } +}; + +static struct { + driver_intr_t *handler; + char * description; +} cpsw_intrs[CPSW_INTR_COUNT + 1] = { + { cpsw_intr_rx_thresh,"CPSW RX threshold interrupt" }, + { cpsw_intr_rx, "CPSW RX interrupt" }, + { cpsw_intr_tx, "CPSW TX interrupt" }, + { cpsw_intr_misc,"CPSW misc interrupt" }, +}; + +/* Locking macros */ +#define CPSW_TX_LOCK(sc) do { \ + mtx_assert(&(sc)->rx_lock, MA_NOTOWNED); \ + mtx_lock(&(sc)->tx_lock); \ +} while (0) + +#define CPSW_TX_UNLOCK(sc) mtx_unlock(&(sc)->tx_lock) +#define CPSW_TX_LOCK_ASSERT(sc) mtx_assert(&(sc)->tx_lock, MA_OWNED) + +#define CPSW_RX_LOCK(sc) do { \ + mtx_assert(&(sc)->tx_lock, MA_NOTOWNED); \ + mtx_lock(&(sc)->rx_lock); \ +} while (0) + +#define CPSW_RX_UNLOCK(sc) mtx_unlock(&(sc)->rx_lock) +#define CPSW_RX_LOCK_ASSERT(sc) mtx_assert(&(sc)->rx_lock, MA_OWNED) + +#define CPSW_GLOBAL_LOCK(sc) do { \ + if ((mtx_owned(&(sc)->tx_lock) ? 1 : 0) != \ + (mtx_owned(&(sc)->rx_lock) ? 1 : 0)) { \ + panic("cpsw deadlock possibility detection!"); \ + } \ + mtx_lock(&(sc)->tx_lock); \ + mtx_lock(&(sc)->rx_lock); \ +} while (0) + +#define CPSW_GLOBAL_UNLOCK(sc) do { \ + CPSW_RX_UNLOCK(sc); \ + CPSW_TX_UNLOCK(sc); \ +} while (0) + +#define CPSW_GLOBAL_LOCK_ASSERT(sc) do { \ + CPSW_TX_LOCK_ASSERT(sc); \ + CPSW_RX_LOCK_ASSERT(sc); \ +} while (0) + + +static int +cpsw_probe(device_t dev) +{ + + if (!ofw_bus_is_compatible(dev, "ti,cpsw")) + return (ENXIO); + + device_set_desc(dev, "3-port Switch Ethernet Subsystem"); + return (BUS_PROBE_DEFAULT); +} + +static int +cpsw_attach(device_t dev) +{ + struct cpsw_softc *sc; + struct mii_softc *miisc; + struct ifnet *ifp; + uint8_t mac_addr[ETHER_ADDR_LEN]; + int i, error, phy; + uint32_t reg; + + sc = device_get_softc(dev); + sc->dev = dev; + memcpy(sc->mac_addr, mac_addr, ETHER_ADDR_LEN); + sc->node = ofw_bus_get_node(dev); + + if (device_get_unit(dev) == 0) + cpsw_sc = sc; + + /* Get phy address from fdt */ + if (fdt_get_phyaddr(sc->node, &phy) != 0) { + device_printf(dev, "failed to get PHY address from FDT\n"); + return (ENXIO); + } + /* Initialize mutexes */ + mtx_init(&sc->tx_lock, device_get_nameunit(dev), + "cpsw TX lock", MTX_DEF); + mtx_init(&sc->rx_lock, device_get_nameunit(dev), + "cpsw RX lock", MTX_DEF); + + /* Allocate IO and IRQ resources */ + error = bus_alloc_resources(dev, res_spec, sc->res); + if (error) { + device_printf(dev, "could not allocate resources\n"); + cpsw_detach(dev); + return (ENXIO); + } + + reg = cpsw_read_4(CPSW_SS_IDVER); + device_printf(dev, "Version %d.%d (%d)\n", (reg >> 8 & 0x7), + reg & 0xFF, (reg >> 11) & 0x1F); + + /* Allocate DMA, buffers, buffer descriptors */ + error = cpsw_allocate_dma(sc); + if (error) { + cpsw_detach(dev); + return (ENXIO); + } + + //cpsw_add_sysctls(sc); TODO + + /* Allocate network interface */ + ifp = sc->ifp = if_alloc(IFT_ETHER); + if (ifp == NULL) { + device_printf(dev, "if_alloc() failed\n"); + cpsw_detach(dev); + return (ENOMEM); + } + + if_initname(ifp, device_get_name(dev), device_get_unit(dev)); + ifp->if_softc = sc; + ifp->if_flags = IFF_SIMPLEX | IFF_MULTICAST | IFF_BROADCAST; + ifp->if_capabilities = IFCAP_VLAN_MTU | IFCAP_HWCSUM; //FIXME VLAN? + ifp->if_capenable = ifp->if_capabilities; + + ifp->if_init = cpsw_init; + ifp->if_start = cpsw_start; + ifp->if_ioctl = cpsw_ioctl; + + ifp->if_snd.ifq_drv_maxlen = CPSW_MAX_TX_BUFFERS - 1; + IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen); + IFQ_SET_READY(&ifp->if_snd); + + /* Get low part of MAC address from control module (mac_id0_lo) */ + ti_scm_reg_read_4(0x630, ®); + mac_addr[0] = (reg >> 8) & 0xFF; + mac_addr[1] = reg & 0xFF; + + /* Get high part of MAC address from control module (mac_id0_hi) */ + ti_scm_reg_read_4(0x634, ®); + mac_addr[2] = (reg >> 24) & 0xFF; + mac_addr[3] = (reg >> 16) & 0xFF; + mac_addr[4] = (reg >> 8) & 0xFF; + mac_addr[5] = reg & 0xFF; + + ether_ifattach(ifp, sc->mac_addr); + callout_init(&sc->wd_callout, 0); + + /* Initialze MDIO - ENABLE, PREAMBLE=0, FAULTENB, CLKDIV=0xFF */ + /* TODO Calculate MDCLK=CLK/(CLKDIV+1) */ + cpsw_write_4(MDIOCONTROL, (1<<30) | (1<<18) | 0xFF); + + /* Attach PHY(s) */ + error = mii_attach(dev, &sc->miibus, ifp, cpsw_ifmedia_upd, + cpsw_ifmedia_sts, BMSR_DEFCAPMASK, phy, MII_OFFSET_ANY, 0); + if (error) { + device_printf(dev, "attaching PHYs failed\n"); + cpsw_detach(dev); + return (error); + } + sc->mii = device_get_softc(sc->miibus); + + /* Tell the MAC where to find the PHY so autoneg works */ + miisc = LIST_FIRST(&sc->mii->mii_phys); + + /* Select PHY and enable interrupts */ + cpsw_write_4(MDIOUSERPHYSEL0, (1 << 6) | (miisc->mii_phy & 0x1F)); + + /* Attach interrupt handlers */ + for (i = 1; i <= CPSW_INTR_COUNT; ++i) { + error = bus_setup_intr(dev, sc->res[i], + INTR_TYPE_NET | INTR_MPSAFE, + NULL, *cpsw_intrs[i - 1].handler, + sc, &sc->ih_cookie[i - 1]); + if (error) { + device_printf(dev, "could not setup %s\n", + cpsw_intrs[i].description); + cpsw_detach(dev); + return (error); + } + } + + return (0); +} + +static int +cpsw_detach(device_t dev) +{ + struct cpsw_softc *sc; + int error,i; + + sc = device_get_softc(dev); + + /* Stop controller and free TX queue */ + if (sc->ifp) + cpsw_shutdown(dev); + + /* Wait for stopping ticks */ + callout_drain(&sc->wd_callout); + + /* Stop and release all interrupts */ + for (i = 0; i < CPSW_INTR_COUNT; ++i) { + if (!sc->ih_cookie[i]) + continue; + + error = bus_teardown_intr(dev, sc->res[1 + i], sc->ih_cookie[i]); + if (error) + device_printf(dev, "could not release %s\n", + cpsw_intrs[i + 1].description); + } + + /* Detach network interface */ + if (sc->ifp) { + ether_ifdetach(sc->ifp); + if_free(sc->ifp); + } + + /* Free DMA resources */ + cpsw_free_dma(sc); + + /* Free IO memory handler */ + bus_release_resources(dev, res_spec, sc->res); + + /* Destroy mutexes */ + mtx_destroy(&sc->rx_lock); + mtx_destroy(&sc->tx_lock); + + return (0); +} + +static int +cpsw_suspend(device_t dev) +{ + + device_printf(dev, "%s\n", __FUNCTION__); + return (0); +} + +static int +cpsw_resume(device_t dev) +{ + + device_printf(dev, "%s\n", __FUNCTION__); + return (0); +} + +static int +cpsw_shutdown(device_t dev) +{ + struct cpsw_softc *sc = device_get_softc(dev); + + CPSW_GLOBAL_LOCK(sc); + + cpsw_stop(sc); + + CPSW_GLOBAL_UNLOCK(sc); + + return (0); +} + +static int +cpsw_miibus_readreg(device_t dev, int phy, int reg) +{ + struct cpsw_softc *sc; + uint32_t r; + uint32_t retries = CPSW_MIIBUS_RETRIES; + + sc = device_get_softc(dev); + + /* Wait until interface is ready by watching GO bit */ + while(--retries && (cpsw_read_4(MDIOUSERACCESS0) & (1 << 31)) ) + DELAY(CPSW_MIIBUS_DELAY); + if (!retries) + device_printf(dev, "Timeout while waiting for MDIO.\n"); + + /* Set GO, phy and reg */ + cpsw_write_4(MDIOUSERACCESS0, (1 << 31) | + ((reg & 0x1F) << 21) | ((phy & 0x1F) << 16)); + + while(--retries && (cpsw_read_4(MDIOUSERACCESS0) & (1 << 31)) ) + DELAY(CPSW_MIIBUS_DELAY); + if (!retries) + device_printf(dev, "Timeout while waiting for MDIO.\n"); + + r = cpsw_read_4(MDIOUSERACCESS0); + /* Check for ACK */ + if(r & (1<<29)) { + return (r & 0xFFFF); + } + device_printf(dev, "Failed to read from PHY.\n"); + return 0; +} + +static int +cpsw_miibus_writereg(device_t dev, int phy, int reg, int value) +{ + struct cpsw_softc *sc; + uint32_t retries = CPSW_MIIBUS_RETRIES; + + sc = device_get_softc(dev); + + /* Wait until interface is ready by watching GO bit */ + while(--retries && (cpsw_read_4(MDIOUSERACCESS0) & (1 << 31)) ) + DELAY(CPSW_MIIBUS_DELAY); + if (!retries) + device_printf(dev, "Timeout while waiting for MDIO.\n"); + + /* Set GO, WRITE, phy, reg and value */ + cpsw_write_4(MDIOUSERACCESS0, (value & 0xFFFF) | (3 << 30) | + ((reg & 0x1F) << 21) | ((phy & 0x1F) << 16)); + + while(--retries && (cpsw_read_4(MDIOUSERACCESS0) & (1 << 31)) ) + DELAY(CPSW_MIIBUS_DELAY); + if (!retries) + device_printf(dev, "Timeout while waiting for MDIO.\n"); + + /* Check for ACK */ + if(cpsw_read_4(MDIOUSERACCESS0) & (1<<29)) { + return 0; + } + device_printf(dev, "Failed to write to PHY.\n"); + + return 0; +} + +static int +cpsw_allocate_dma(struct cpsw_softc *sc) +{ + int err; + int i; + + /* Allocate a busdma tag and DMA safe memory for tx mbufs. */ + err = bus_dma_tag_create( + bus_get_dma_tag(sc->dev), /* parent */ + 1, 0, /* alignment, boundary */ + BUS_SPACE_MAXADDR_32BIT, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filtfunc, filtfuncarg */ + MCLBYTES, 1, /* maxsize, nsegments */ + MCLBYTES, 0, /* maxsegsz, flags */ + NULL, NULL, /* lockfunc, lockfuncarg */ + &sc->mbuf_dtag); /* dmatag */ + + if (err) + return (ENOMEM); + for (i = 0; i < CPSW_MAX_TX_BUFFERS; i++) { + if ( bus_dmamap_create(sc->mbuf_dtag, 0, &sc->tx_dmamap[i])) { + if_printf(sc->ifp, "failed to create dmamap for rx mbuf\n"); + return (ENOMEM); + } + } + + for (i = 0; i < CPSW_MAX_RX_BUFFERS; i++) { + if ( bus_dmamap_create(sc->mbuf_dtag, 0, &sc->rx_dmamap[i])) { + if_printf(sc->ifp, "failed to create dmamap for rx mbuf\n"); + return (ENOMEM); + } + } + + return (0); +} + +static int +cpsw_free_dma(struct cpsw_softc *sc) +{ + // TODO + return 0; +} + +static int +cpsw_new_rxbuf(struct cpsw_softc *sc, uint32_t i, uint32_t next) +{ + bus_dma_segment_t seg[1]; + struct cpsw_cpdma_bd bd; + int error; + int nsegs; + + if (sc->rx_mbuf[i]) { + bus_dmamap_sync(sc->mbuf_dtag, sc->rx_dmamap[i], BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(sc->mbuf_dtag, sc->rx_dmamap[i]); + } + + sc->rx_mbuf[i] = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); + if (sc->rx_mbuf[i] == NULL) + return (ENOBUFS); + + sc->rx_mbuf[i]->m_len = sc->rx_mbuf[i]->m_pkthdr.len = sc->rx_mbuf[i]->m_ext.ext_size; + + error = bus_dmamap_load_mbuf_sg(sc->mbuf_dtag, sc->rx_dmamap[i], + sc->rx_mbuf[i], seg, &nsegs, BUS_DMA_NOWAIT); + + KASSERT(nsegs == 1, ("Too many segments returned!")); + if (nsegs != 1 || error) + panic("%s: nsegs(%d), error(%d)",__func__, nsegs, error); + + bus_dmamap_sync(sc->mbuf_dtag, sc->rx_dmamap[i], BUS_DMASYNC_PREREAD); + + /* Create and submit new rx descriptor*/ + bd.next = next; + bd.bufptr = seg->ds_addr; + bd.buflen = MCLBYTES-1; + bd.bufoff = 2; /* make IP hdr aligned with 4 */ + bd.pktlen = 0; + bd.flags = CPDMA_BD_OWNER; + cpsw_cpdma_write_rxbd(i, &bd); + + return (0); +} + + +static int +cpsw_encap(struct cpsw_softc *sc, struct mbuf *m0) +{ + bus_dma_segment_t seg[1]; + struct cpsw_cpdma_bd bd; + int error; + int nsegs; + int idx; + + if (sc->txbd_queue_size == CPSW_MAX_TX_BUFFERS) + return (ENOBUFS); + + idx = sc->txbd_head + sc->txbd_queue_size; + + if (idx >= (CPSW_MAX_TX_BUFFERS) ) + idx -= CPSW_MAX_TX_BUFFERS; + + /* Create mapping in DMA memory */ + error = bus_dmamap_load_mbuf_sg(sc->mbuf_dtag, sc->tx_dmamap[idx], m0, seg, &nsegs, + BUS_DMA_NOWAIT); + sc->tc[idx]++; + if (error != 0 || nsegs != 1 ) { + bus_dmamap_unload(sc->mbuf_dtag, sc->tx_dmamap[idx]); + return ((error != 0) ? error : -1); + } + bus_dmamap_sync(sc->mbuf_dtag, sc->tx_dmamap[idx], BUS_DMASYNC_PREWRITE); + + /* Fill descriptor data */ + bd.next = 0; + bd.bufptr = seg->ds_addr; + bd.bufoff = 0; + bd.buflen = (seg->ds_len < 64 ? 64 : seg->ds_len); + bd.pktlen = (seg->ds_len < 64 ? 64 : seg->ds_len); + /* Set OWNERSHIP, SOP, EOP */ + bd.flags = (7<<13); + + /* Write descriptor */ + cpsw_cpdma_write_txbd(idx, &bd); + + /* Previous descriptor should point to us */ + cpsw_cpdma_write_txbd_next(((idx-1<0)?(CPSW_MAX_TX_BUFFERS-1):(idx-1)), + cpsw_cpdma_txbd_paddr(idx)); + + sc->txbd_queue_size++; + + return (0); +} + +static void +cpsw_start(struct ifnet *ifp) +{ + struct cpsw_softc *sc = ifp->if_softc; + + CPSW_TX_LOCK(sc); + cpsw_start_locked(ifp); + CPSW_TX_UNLOCK(sc); +} + +static void +cpsw_start_locked(struct ifnet *ifp) +{ + struct cpsw_softc *sc = ifp->if_softc; + struct mbuf *m0, *mtmp; + uint32_t queued = 0; + + CPSW_TX_LOCK_ASSERT(sc); + + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return; + + for (;;) { + /* Get packet from the queue */ + IF_DEQUEUE(&ifp->if_snd, m0); + if (m0 == NULL) + break; + + mtmp = m_defrag(m0, M_DONTWAIT); + if (mtmp) + m0 = mtmp; + + if (cpsw_encap(sc, m0)) { + IF_PREPEND(&ifp->if_snd, m0); + ifp->if_drv_flags |= IFF_DRV_OACTIVE; + break; + } + queued++; + BPF_MTAP(ifp, m0); + } + + if (!queued) + return; + + if (sc->eoq) { + cpsw_write_4(CPSW_CPDMA_TX_HDP(0), cpsw_cpdma_txbd_paddr(sc->txbd_head)); + sc->eoq = 0; + } + sc->wd_timer = 5; +} + +static void +cpsw_stop(struct cpsw_softc *sc) +{ + struct ifnet *ifp; + + ifp = sc->ifp; + + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) + return; + + /* Stop tick engine */ + callout_stop(&sc->wd_callout); + + /* Disable interface */ + ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); + sc->wd_timer = 0; + + /* Disable interrupts TODO */ + +} + +static int +cpsw_ioctl(struct ifnet *ifp, u_long command, caddr_t data) +{ + struct cpsw_softc *sc = ifp->if_softc; + struct ifreq *ifr = (struct ifreq *)data; + int error; + uint32_t flags; + + error = 0; + + // FIXME + switch (command) { + case SIOCSIFFLAGS: + CPSW_GLOBAL_LOCK(sc); + if (ifp->if_flags & IFF_UP) { + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + flags = ifp->if_flags ^ sc->cpsw_if_flags; + if (flags & IFF_PROMISC) + printf("%s: SIOCSIFFLAGS " + "IFF_PROMISC unimplemented\n", + __func__); + + if (flags & IFF_ALLMULTI) + printf("%s: SIOCSIFFLAGS " + "IFF_ALLMULTI unimplemented\n", + __func__); + } else { + printf("%s: SIOCSIFFLAGS cpsw_init_locked\n", __func__); + //cpsw_init_locked(sc); + } + } + else if (ifp->if_drv_flags & IFF_DRV_RUNNING) + cpsw_stop(sc); + + sc->cpsw_if_flags = ifp->if_flags; + CPSW_GLOBAL_UNLOCK(sc); + break; + printf("%s: SIOCSIFFLAGS\n",__func__); + break; + case SIOCADDMULTI: + printf("%s: SIOCADDMULTI\n",__func__); + break; + case SIOCDELMULTI: + printf("%s: SIOCDELMULTI\n",__func__); + break; + case SIOCSIFCAP: + printf("%s: SIOCSIFCAP\n",__func__); + break; + case SIOCGIFMEDIA: /* fall through */ + printf("%s: SIOCGIFMEDIA\n",__func__); + case SIOCSIFMEDIA: + printf("%s: SIOCSIFMEDIA\n",__func__); + error = ifmedia_ioctl(ifp, ifr, &sc->mii->mii_media, command); + break; + default: + error = ether_ioctl(ifp, command, data); + } + return (error); +} + +static void +cpsw_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr) +{ + struct cpsw_softc *sc = ifp->if_softc; + struct mii_data *mii; + + CPSW_TX_LOCK(sc); + + mii = sc->mii; + mii_pollstat(mii); + + ifmr->ifm_active = mii->mii_media_active; + ifmr->ifm_status = mii->mii_media_status; + + CPSW_TX_UNLOCK(sc); +} + + +static int +cpsw_ifmedia_upd(struct ifnet *ifp) +{ + struct cpsw_softc *sc = ifp->if_softc; + + if (ifp->if_flags & IFF_UP) { + CPSW_GLOBAL_LOCK(sc); + + sc->cpsw_media_status = sc->mii->mii_media.ifm_media; + mii_mediachg(sc->mii); + cpsw_init_locked(sc); + + CPSW_GLOBAL_UNLOCK(sc); + } + + return (0); +} + +static void +cpsw_intr_rx_thresh(void *arg) +{ +} + +static void +cpsw_intr_rx(void *arg) +{ + struct cpsw_softc *sc = arg; + CPSW_RX_LOCK(sc); + cpsw_intr_rx_locked(arg); + CPSW_RX_UNLOCK(sc); +} + +static void +cpsw_intr_rx_locked(void *arg) +{ + struct cpsw_softc *sc = arg; + struct cpsw_cpdma_bd bd; + struct ifnet *ifp; + int i; + + ifp = sc->ifp; + + i = sc->rxbd_head; + cpsw_cpdma_read_rxbd(i, &bd); + + while (bd.flags & CPDMA_BD_SOP) { + cpsw_write_4(CPSW_CPDMA_RX_CP(0), cpsw_cpdma_rxbd_paddr(i)); + + bus_dmamap_sync(sc->mbuf_dtag, sc->rx_dmamap[i], BUS_DMASYNC_POSTREAD); + + /* Fill mbuf */ + sc->rx_mbuf[i]->m_hdr.mh_data +=2; + sc->rx_mbuf[i]->m_len = bd.pktlen-2; + sc->rx_mbuf[i]->m_pkthdr.len = bd.pktlen-2; + sc->rx_mbuf[i]->m_flags |= M_PKTHDR; + sc->rx_mbuf[i]->m_pkthdr.rcvif = ifp; + + if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) { + /* check for valid CRC by looking into pkt_err[5:4] */ + if ( (bd.flags & CPDMA_BD_PKT_ERR_MASK) == 0 ) { + sc->rx_mbuf[i]->m_pkthdr.csum_flags |= CSUM_IP_CHECKED; + sc->rx_mbuf[i]->m_pkthdr.csum_flags |= CSUM_IP_VALID; + sc->rx_mbuf[i]->m_pkthdr.csum_data = 0xffff; + } + } + + /* Handover packet */ + CPSW_RX_UNLOCK(sc); + (*ifp->if_input)(ifp, sc->rx_mbuf[i]); + CPSW_RX_LOCK(sc); + + /* Allocate new buffer for current descriptor */ + cpsw_new_rxbuf(sc, i, 0); + + /* we are not at tail so old tail BD should point to new one */ + cpsw_cpdma_write_rxbd_next(sc->rxbd_tail, + cpsw_cpdma_rxbd_paddr(i)); + + /* Check if EOQ is reached */ + if (cpsw_cpdma_read_rxbd_flags(sc->rxbd_tail) & CPDMA_BD_EOQ) { + cpsw_write_4(CPSW_CPDMA_RX_HDP(0), cpsw_cpdma_rxbd_paddr(i)); + } + sc->rxbd_tail = i; + + /* read next descriptor */ + if (++i == CPSW_MAX_RX_BUFFERS) + i = 0; + cpsw_cpdma_read_rxbd(i, &bd); + sc->rxbd_head = i; + } + + cpsw_write_4(CPSW_CPDMA_CPDMA_EOI_VECTOR, 1); +} + +static void +cpsw_intr_tx(void *arg) +{ + struct cpsw_softc *sc = arg; + CPSW_TX_LOCK(sc); + cpsw_intr_tx_locked(arg); + CPSW_TX_UNLOCK(sc); +} + +static void +cpsw_intr_tx_locked(void *arg) +{ + struct cpsw_softc *sc = arg; + uint32_t flags; + + if(sc->txbd_head == -1) + return; + + if(sc->txbd_queue_size<1) { + /* in some casses interrupt happens even when there is no + data in transmit queue */ + return; + } + + /* Disable watchdog */ + sc->wd_timer = 0; + + flags = cpsw_cpdma_read_txbd_flags(sc->txbd_head); + + /* After BD is transmitted CPDMA will set OWNER to 0 */ + if (flags & CPDMA_BD_OWNER) + return; + + if(flags & CPDMA_BD_EOQ) + sc->eoq=1; + + /* release dmamap and mbuf */ + bus_dmamap_sync(sc->mbuf_dtag, sc->tx_dmamap[sc->txbd_head], + BUS_DMASYNC_POSTWRITE); + bus_dmamap_unload(sc->mbuf_dtag, sc->tx_dmamap[sc->txbd_head]); + m_freem(sc->tx_mbuf[sc->txbd_head]); + + cpsw_write_4(CPSW_CPDMA_TX_CP(0), cpsw_cpdma_txbd_paddr(sc->txbd_head)); + + if (++sc->txbd_head == CPSW_MAX_TX_BUFFERS) + sc->txbd_head = 0; + + --sc->txbd_queue_size; + + cpsw_write_4(CPSW_CPDMA_CPDMA_EOI_VECTOR, 2); + cpsw_write_4(CPSW_CPDMA_CPDMA_EOI_VECTOR, 1); +} + +static void +cpsw_intr_misc(void *arg) +{ + struct cpsw_softc *sc = arg; + uint32_t stat = cpsw_read_4(CPSW_WR_C_MISC_STAT(0)); + printf("%s: stat=%x\n",__func__,stat); + /* EOI_RX_PULSE */ + cpsw_write_4(CPSW_CPDMA_CPDMA_EOI_VECTOR, 3); +} + +static void +cpsw_tick(void *msc) +{ + struct cpsw_softc *sc = msc; + + /* Check for TX timeout */ + cpsw_watchdog(sc); + + mii_tick(sc->mii); + + /* Check for media type change */ + if(sc->cpsw_media_status != sc->mii->mii_media.ifm_media) { + printf("%s: media type changed (ifm_media=%x)\n",__func__, + sc->mii->mii_media.ifm_media); + cpsw_ifmedia_upd(sc->ifp); + } + + /* Schedule another timeout one second from now */ + callout_reset(&sc->wd_callout, hz, cpsw_tick, sc); +} + +static void +cpsw_watchdog(struct cpsw_softc *sc) +{ + struct ifnet *ifp; + + ifp = sc->ifp; + + CPSW_GLOBAL_LOCK(sc); + + if (sc->wd_timer == 0 || --sc->wd_timer) { + CPSW_GLOBAL_UNLOCK(sc); + return; + } + + ifp->if_oerrors++; + if_printf(ifp, "watchdog timeout\n"); + + cpsw_stop(sc); + cpsw_init_locked(sc); + + CPSW_GLOBAL_UNLOCK(sc); +} + +static void +cpsw_init(void *arg) +{ + struct cpsw_softc *sc = arg; + CPSW_GLOBAL_LOCK(sc); + cpsw_init_locked(arg); + CPSW_GLOBAL_UNLOCK(sc); +} + +int once = 1; + +static void +cpsw_init_locked(void *arg) +{ + struct cpsw_softc *sc = arg; + uint8_t broadcast_address[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 02:16:22 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 745641065743; Tue, 3 Apr 2012 02:16:22 +0000 (UTC) (envelope-from jceel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5E8338FC15; Tue, 3 Apr 2012 02:16:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q332GM7L026451; Tue, 3 Apr 2012 02:16:22 GMT (envelope-from jceel@svn.freebsd.org) Received: (from jceel@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q332GMp1026449; Tue, 3 Apr 2012 02:16:22 GMT (envelope-from jceel@svn.freebsd.org) Message-Id: <201204030216.q332GMp1026449@svn.freebsd.org> From: Jakub Wojciech Klama Date: Tue, 3 Apr 2012 02:16: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: r233822 - projects/armv6/sys/dev/fdt 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, 03 Apr 2012 02:16:22 -0000 Author: jceel Date: Tue Apr 3 02:16:21 2012 New Revision: 233822 URL: http://svn.freebsd.org/changeset/base/233822 Log: Remove useless and wrong piece of code in fdt_get_range() which overwrites passed phandle_t node. Modify debug printf in fdt_reg_to_rl() to be consistent (that is, print start and end *virtual* addresses). Modified: projects/armv6/sys/dev/fdt/fdt_common.c Modified: projects/armv6/sys/dev/fdt/fdt_common.c ============================================================================== --- projects/armv6/sys/dev/fdt/fdt_common.c Mon Apr 2 22:54:31 2012 (r233821) +++ projects/armv6/sys/dev/fdt/fdt_common.c Tue Apr 3 02:16:21 2012 (r233822) @@ -70,22 +70,6 @@ fdt_get_range(phandle_t node, int range_ pcell_t addr_cells, size_cells, par_addr_cells; int len, tuple_size, tuples; - /* - * Try to access the SOC node directly i.e. through /aliases/. - */ - if ((node = OF_finddevice("soc")) != -1) - if (fdt_is_compatible_strict(node, "simple-bus")) - goto moveon; - /* - * Find the node the long way. - */ - if ((node = OF_finddevice("/")) == -1) - return (ENXIO); - - if ((node = fdt_find_compatible(node, "simple-bus", 1)) == 0) - return (ENXIO); - -moveon: if ((fdt_addrsize_cells(node, &addr_cells, &size_cells)) != 0) return (ENXIO); /* @@ -474,7 +458,7 @@ fdt_reg_to_rl(phandle_t node, struct res panic("Couldn't map the device memory"); end = vaddr + count - 1; - debugf("reg addr start = %lx, end = %lx, count = %lx\n", start, + debugf("reg addr start = %lx, end = %lx, count = %lx\n", vaddr, end, count); resource_list_add(rl, SYS_RES_MEMORY, i, vaddr, end, From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 05:42: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 EFCDA1065672; Tue, 3 Apr 2012 05:42:51 +0000 (UTC) (envelope-from cherry@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D8A2C8FC08; Tue, 3 Apr 2012 05:42: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 q335gp3t033598; Tue, 3 Apr 2012 05:42:51 GMT (envelope-from cherry@svn.freebsd.org) Received: (from cherry@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q335gpVH033582; Tue, 3 Apr 2012 05:42:51 GMT (envelope-from cherry@svn.freebsd.org) Message-Id: <201204030542.q335gpVH033582@svn.freebsd.org> From: "Cherry G. Mathew" Date: Tue, 3 Apr 2012 05:42: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: r233823 - in projects/amd64_xen_pv/sys: amd64/amd64 amd64/conf amd64/include amd64/include/xen amd64/xen conf dev/xen/control x86/include x86/x86 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, 03 Apr 2012 05:42:52 -0000 Author: cherry Date: Tue Apr 3 05:42:51 2012 New Revision: 233823 URL: http://svn.freebsd.org/changeset/base/233823 Log: This is a first cut at publishing heavily WIP work to port FreeBSD 64bit to run as a XEN paravirtualised kernel. It is very early days and therefore only has a guarantee of compilability on the branch. The following have been deferred for later review: - style nits. - comments What would be really helpful for review would be: - design errors - bugs - file organisation, API use etc. The primary focus of the branch at this point is functionality. We use a config(5) option: options NATIVE to indicate "baremetal" support. The intent of this option is to exclude files from the PV kernel that only the "baremetal" kernel needs. This is similar to how the i386 port implements this. An alternative method is needed before merge to -current Reviewed by: attilio, gibbs Approved by: gibbs Added: projects/amd64_xen_pv/sys/amd64/conf/XEN projects/amd64_xen_pv/sys/amd64/include/xen/xen_clock_util.h (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/ projects/amd64_xen_pv/sys/amd64/xen/clock.c (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/exception.S projects/amd64_xen_pv/sys/amd64/xen/locore.S projects/amd64_xen_pv/sys/amd64/xen/machdep.c (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/mm.c (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/mp_machdep.c (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/mpboot.c (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/pmap.c (contents, props changed) projects/amd64_xen_pv/sys/amd64/xen/xen_clock_util.c (contents, props changed) Modified: projects/amd64_xen_pv/sys/amd64/amd64/genassym.c projects/amd64_xen_pv/sys/amd64/amd64/support.S projects/amd64_xen_pv/sys/amd64/conf/DEFAULTS projects/amd64_xen_pv/sys/amd64/include/asmacros.h projects/amd64_xen_pv/sys/amd64/include/cpufunc.h projects/amd64_xen_pv/sys/amd64/include/pcpu.h projects/amd64_xen_pv/sys/amd64/include/pmap.h projects/amd64_xen_pv/sys/amd64/include/smp.h projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h projects/amd64_xen_pv/sys/amd64/include/xen/xenpmap.h projects/amd64_xen_pv/sys/amd64/include/xen/xenvar.h projects/amd64_xen_pv/sys/conf/files.amd64 projects/amd64_xen_pv/sys/conf/options.amd64 projects/amd64_xen_pv/sys/dev/xen/control/control.c projects/amd64_xen_pv/sys/x86/include/segments.h projects/amd64_xen_pv/sys/x86/x86/nexus.c Modified: projects/amd64_xen_pv/sys/amd64/amd64/genassym.c ============================================================================== --- projects/amd64_xen_pv/sys/amd64/amd64/genassym.c Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/amd64/genassym.c Tue Apr 3 05:42:51 2012 (r233823) @@ -243,3 +243,11 @@ ASSYM(SEL_RPL_MASK, SEL_RPL_MASK); #ifdef HWPMC_HOOKS ASSYM(PMC_FN_USER_CALLCHAIN, PMC_FN_USER_CALLCHAIN); #endif + +#ifdef XEN +#include +ASSYM(HYPERVISOR_VIRT_START, __HYPERVISOR_VIRT_START); +ASSYM(EVTCHN_UPCALL_MASK, offsetof(struct vcpu_info, evtchn_upcall_mask)); +#include +ASSYM(__HYPERVISOR_iret, __HYPERVISOR_iret); +#endif Modified: projects/amd64_xen_pv/sys/amd64/amd64/support.S ============================================================================== --- projects/amd64_xen_pv/sys/amd64/amd64/support.S Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/amd64/support.S Tue Apr 3 05:42:51 2012 (r233823) @@ -632,9 +632,11 @@ END(copystr) */ /* void lgdt(struct region_descriptor *rdp); */ ENTRY(lgdt) +#ifndef XEN /* reload the descriptor table */ lgdt (%rdi) - +#endif /* !XEN */ + /* flush the prefetch q */ jmp 1f nop Modified: projects/amd64_xen_pv/sys/amd64/conf/DEFAULTS ============================================================================== --- projects/amd64_xen_pv/sys/amd64/conf/DEFAULTS Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/conf/DEFAULTS Tue Apr 3 05:42:51 2012 (r233823) @@ -21,4 +21,7 @@ options GEOM_PART_EBR options GEOM_PART_EBR_COMPAT options GEOM_PART_MBR +# enable support for native hardware +options NATIVE + options NEW_PCIB Added: projects/amd64_xen_pv/sys/amd64/conf/XEN ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/amd64_xen_pv/sys/amd64/conf/XEN Tue Apr 3 05:42:51 2012 (r233823) @@ -0,0 +1,174 @@ +# +# XEN -- Kernel configuration for amd64 XEN DomU +# +# $FreeBSD: releng/9.0/sys/i386/conf/XEN 224699 2011-08-07 20:16:46Z rmacklem $ + +cpu HAMMER +ident XEN + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +makeoptions WITHOUT_MODULES="aha ahb amd cxgb dpt drm hptmv ida malo mps mwl nve sound sym trm xfs" + +options SCHED_ULE # ULE scheduler +options PREEMPTION # Enable kernel thread preemption +#options SCHED_4BSD + +options INET # InterNETworking +options INET6 # IPv6 communications protocols +options SCTP # Stream Control Transmission Protocol +options FFS # Berkeley Fast Filesystem +options SOFTUPDATES # Enable FFS soft updates support +options UFS_ACL # Support for access control lists +options UFS_DIRHASH # Improve performance on big directories +options UFS_GJOURNAL # Enable gjournal-based UFS journaling +options NFSCL # New Network Filesystem Client +options NFSD # New Network Filesystem Server +options NFSLOCKD # Network Lock Manager +options NFS_ROOT # NFS usable as /, requires NFSCL +options MSDOSFS # MSDOS Filesystem +options CD9660 # ISO 9660 Filesystem +options PROCFS # Process filesystem (requires PSEUDOFS) +options PSEUDOFS # Pseudo-filesystem framework +options GEOM_PART_GPT # GUID Partition Tables. +options GEOM_LABEL # Provides labelization +options COMPAT_FREEBSD4 # Compatible with FreeBSD4 +options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD6 # Compatible with FreeBSD6 +options COMPAT_FREEBSD7 # Compatible with FreeBSD7 +options KTRACE # ktrace(1) support +options STACK # stack(9) support +options SYSVSHM # SYSV-style shared memory +options SYSVMSG # SYSV-style message queues +options SYSVSEM # SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options KBD_INSTALL_CDEV # install a CDEV entry in /dev +options AUDIT # Security event auditing + +# Debugging for use in -current +options KDB # Enable kernel debugger support. +options DDB # Support DDB. +options GDB # Support remote GDB. +options DEADLKRES # Enable the deadlock resolver +options INVARIANTS # Enable calls of extra sanity checking +options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS +options WITNESS # Enable checks to detect deadlocks and cycles +options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed + +nooption NATIVE +option XEN +nodevice atpic +nodevice isa +options MCLSHIFT=12 + +# To make an SMP kernel, the next line is needed +options SMP # Symmetric MultiProcessor Kernel + +#device atkbdc # AT keyboard controller +#device atkbd # AT keyboard +device psm # PS/2 mouse +device pci + +#device kbdmux # keyboard multiplexer + +# Pseudo devices. +device loop # Network loopback +device random # Entropy device +device ether # Ethernet support +device tun # Packet tunnel. +device pty # Pseudo-ttys (telnet etc) +device md # Memory "disks" +device gif # IPv6 and IPv4 tunneling +device faith # IPv6-to-IPv4 relaying (translation) + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + +# +# XEN -- Kernel configuration for amd64 XEN DomU +# +# $FreeBSD: releng/9.0/sys/i386/conf/XEN 224699 2011-08-07 20:16:46Z rmacklem $ + +cpu HAMMER +ident XEN + +makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols +makeoptions WITHOUT_MODULES="aha ahb amd cxgb dpt drm hptmv ida malo mps mwl nve sound sym trm xfs" + +options SCHED_ULE # ULE scheduler +options PREEMPTION # Enable kernel thread preemption +#options SCHED_4BSD + +options INET # InterNETworking +options INET6 # IPv6 communications protocols +options SCTP # Stream Control Transmission Protocol +options FFS # Berkeley Fast Filesystem +options SOFTUPDATES # Enable FFS soft updates support +options UFS_ACL # Support for access control lists +options UFS_DIRHASH # Improve performance on big directories +options UFS_GJOURNAL # Enable gjournal-based UFS journaling +options NFSCL # New Network Filesystem Client +options NFSD # New Network Filesystem Server +options NFSLOCKD # Network Lock Manager +options NFS_ROOT # NFS usable as /, requires NFSCL +options MSDOSFS # MSDOS Filesystem +options CD9660 # ISO 9660 Filesystem +options PROCFS # Process filesystem (requires PSEUDOFS) +options PSEUDOFS # Pseudo-filesystem framework +options GEOM_PART_GPT # GUID Partition Tables. +options GEOM_LABEL # Provides labelization +options COMPAT_FREEBSD4 # Compatible with FreeBSD4 +options COMPAT_FREEBSD5 # Compatible with FreeBSD5 +options COMPAT_FREEBSD6 # Compatible with FreeBSD6 +options COMPAT_FREEBSD7 # Compatible with FreeBSD7 +options KTRACE # ktrace(1) support +options STACK # stack(9) support +options SYSVSHM # SYSV-style shared memory +options SYSVMSG # SYSV-style message queues +options SYSVSEM # SYSV-style semaphores +options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions +options KBD_INSTALL_CDEV # install a CDEV entry in /dev +options AUDIT # Security event auditing + +# Debugging for use in -current +options KDB # Enable kernel debugger support. +options DDB # Support DDB. +options GDB # Support remote GDB. +options DEADLKRES # Enable the deadlock resolver +options INVARIANTS # Enable calls of extra sanity checking +options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS +options WITNESS # Enable checks to detect deadlocks and cycles +options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed + +nooption NATIVE +option XEN +nodevice atpic +nodevice isa +options MCLSHIFT=12 + +# To make an SMP kernel, the next line is needed +options SMP # Symmetric MultiProcessor Kernel + +#device atkbdc # AT keyboard controller +#device atkbd # AT keyboard +device psm # PS/2 mouse +device pci + +#device kbdmux # keyboard multiplexer + +# Pseudo devices. +device loop # Network loopback +device random # Entropy device +device ether # Ethernet support +device tun # Packet tunnel. +device pty # Pseudo-ttys (telnet etc) +device md # Memory "disks" +device gif # IPv6 and IPv4 tunneling +device faith # IPv6-to-IPv4 relaying (translation) + +# The `bpf' device enables the Berkeley Packet Filter. +# Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. +device bpf # Berkeley packet filter + Modified: projects/amd64_xen_pv/sys/amd64/include/asmacros.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/asmacros.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/asmacros.h Tue Apr 3 05:42:51 2012 (r233823) @@ -201,4 +201,30 @@ #endif /* LOCORE */ +#ifdef __STDC__ +#define ELFNOTE(name, type, desctype, descdata...) \ +.pushsection .note.name ; \ + .align 4 ; \ + .long 2f - 1f /* namesz */ ; \ + .long 4f - 3f /* descsz */ ; \ + .long type ; \ +1:.asciz #name ; \ +2:.align 4 ; \ +3:desctype descdata ; \ +4:.align 4 ; \ +.popsection +#else /* !__STDC__, i.e. -traditional */ +#define ELFNOTE(name, type, desctype, descdata) \ +.pushsection .note.name ; \ + .align 4 ; \ + .long 2f - 1f /* namesz */ ; \ + .long 4f - 3f /* descsz */ ; \ + .long type ; \ +1:.asciz "name" ; \ +2:.align 4 ; \ +3:desctype descdata ; \ +4:.align 4 ; \ +.popsection +#endif /* __STDC__ */ + #endif /* !_MACHINE_ASMACROS_H_ */ Modified: projects/amd64_xen_pv/sys/amd64/include/cpufunc.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/cpufunc.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/cpufunc.h Tue Apr 3 05:42:51 2012 (r233823) @@ -43,6 +43,13 @@ #error this file needs sys/cdefs.h as a prerequisite #endif +#ifdef XEN +extern void xen_load_cr3(u_int data); +extern void xen_tlb_flush(void); +extern void xen_invlpg(vm_offset_t addr); +extern u_long read_rflags(void); +#endif /* XEN */ + struct region_descriptor; #define readb(va) (*(volatile uint8_t *) (va)) @@ -287,7 +294,11 @@ ia32_pause(void) } static __inline u_long +#ifdef XEN +_read_rflags(void) +#else read_rflags(void) +#endif { u_long rf; Modified: projects/amd64_xen_pv/sys/amd64/include/pcpu.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/pcpu.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/pcpu.h Tue Apr 3 05:42:51 2012 (r233823) @@ -42,12 +42,33 @@ #endif #endif -#ifdef XENHVM +#if defined(XEN) + +/* These are peridically updated in shared_info, and then copied here. */ +struct shadow_time_info { + uint64_t tsc_timestamp; /* TSC at last update of time vals. */ + uint64_t system_timestamp; /* Time, in nanosecs, since boot. */ + uint32_t tsc_to_nsec_mul; + uint32_t tsc_to_usec_mul; + int tsc_shift; + uint32_t version; +}; + +#define PCPU_XEN_FIELDS \ + ; \ + uint64_t pc_processed_system_time; \ + struct shadow_time_info pc_shadow_time; \ + int pc_resched_irq; \ + int pc_callfunc_irq; \ + int pc_virq_to_irq[NR_VIRQS]; \ + int pc_ipi_to_irq[NR_IPIS] + +#elif defined(XENHVM) #define PCPU_XEN_FIELDS \ ; \ unsigned int pc_last_processed_l1i; \ unsigned int pc_last_processed_l2i -#else +#else /* !XEN && !XENHVM */ #define PCPU_XEN_FIELDS #endif Modified: projects/amd64_xen_pv/sys/amd64/include/pmap.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/pmap.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/pmap.h Tue Apr 3 05:42:51 2012 (r233823) @@ -229,6 +229,43 @@ pte_store(pt_entry_t *ptep, pt_entry_t p #define pde_store(pdep, pde) pte_store((pdep), (pde)) +#if defined(XEN) +#include +#include +#include +#include + +#include /* XXX: for KASSERT() remove, when done */ + +#define MACH_TO_VM_PAGE(ma) PHYS_TO_VM_PAGE(xpmap_mtop((ma))) +#define VM_PAGE_TO_MACH(m) xpmap_ptom(VM_PAGE_TO_PHYS((m))) + +#define VTOM(va) xpmap_ptom(VTOP(va)) + +static __inline vm_paddr_t +pmap_kextract_ma(vm_offset_t va) +{ + vm_paddr_t ma = 0; + KASSERT(0, ("XXX: Please implement")); + return ma; +} + +static __inline vm_paddr_t +pmap_kextract(vm_offset_t va) +{ + return xpmap_mtop(pmap_kextract_ma(va)); +} + +#define vtomach(va) pmap_kextract_ma(((vm_offset_t) (va))) + +vm_paddr_t pmap_extract_ma(struct pmap *pmap, vm_offset_t va); + +void pmap_kenter_ma(vm_offset_t va, vm_paddr_t pa); +void pmap_map_readonly(struct pmap *pmap, vm_offset_t va, int len); +void pmap_map_readwrite(struct pmap *pmap, vm_offset_t va, int len); + +#endif /* XEN */ + extern pt_entry_t pg_nx; #endif /* _KERNEL */ @@ -317,7 +354,9 @@ void pmap_demote_DMAP(vm_paddr_t base, v void pmap_init_pat(void); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void *pmap_kenter_temporary(vm_paddr_t pa, int i); +#ifndef XEN vm_paddr_t pmap_kextract(vm_offset_t); +#endif /* XEN */ void pmap_kremove(vm_offset_t); void *pmap_mapbios(vm_paddr_t, vm_size_t); void *pmap_mapdev(vm_paddr_t, vm_size_t); Modified: projects/amd64_xen_pv/sys/amd64/include/smp.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/smp.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/smp.h Tue Apr 3 05:42:51 2012 (r233823) @@ -74,6 +74,13 @@ void smp_masked_invlpg_range(cpuset_t ma void smp_invltlb(void); void smp_masked_invltlb(cpuset_t mask); +#ifdef XEN +#define RESCHEDULE_VECTOR 0 +#define CALL_FUNCTION_VECTOR 1 +#define NR_IPIS 2 + +#endif + #endif /* !LOCORE */ #endif /* SMP */ Modified: projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/xen/xen-os.h Tue Apr 3 05:42:51 2012 (r233823) @@ -6,6 +6,7 @@ #ifndef _XEN_OS_H_ #define _XEN_OS_H_ +#include #ifdef PAE #define CONFIG_X86_PAE @@ -24,10 +25,35 @@ /* Force a proper event-channel callback from Xen. */ void force_evtchn_callback(void); +#define likely(x) __builtin_expect((x),1) +#define unlikely(x) __builtin_expect((x),0) + +#ifndef vtophys +#include +#include +#include +#endif + extern int gdtset; +#ifdef SMP +#include /* XXX for pcpu.h */ +#include /* XXX for PCPU_GET */ +static inline int +smp_processor_id(void) +{ + return PCPU_GET(cpuid); +} + +#else +#define smp_processor_id() 0 +#endif /* SMP */ extern shared_info_t *HYPERVISOR_shared_info; +#ifndef PANIC_IF +#define PANIC_IF(exp) if (unlikely(exp)) {printk("panic - %s: %s:%d\n",#exp, __FILE__, __LINE__); panic("%s: %s:%d", #exp, __FILE__, __LINE__);} +#endif + /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ static inline void rep_nop(void) { @@ -35,6 +61,8 @@ static inline void rep_nop(void) } #define cpu_relax() rep_nop() +#define per_cpu(var, cpu) (pcpu_find((cpu))->pc_ ## var) + /* crude memory allocator for memory allocation early in * boot */ @@ -44,6 +72,7 @@ void bootmem_free(void *ptr, unsigned in /* Everything below this point is not included by assembler (.S) files. */ #ifndef __ASSEMBLY__ +#include void printk(const char *fmt, ...); Added: projects/amd64_xen_pv/sys/amd64/include/xen/xen_clock_util.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/amd64_xen_pv/sys/amd64/include/xen/xen_clock_util.h Tue Apr 3 05:42:51 2012 (r233823) @@ -0,0 +1,36 @@ +/* + * + * Copyright (c) 2009 Adrian Chadd + * 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 __XEN_CLOCK_UTIL_H__ +#define __XEN_CLOCK_UTIL_H__ + +extern void xen_fetch_wallclock(struct timespec *ts); +extern void xen_fetch_uptime(struct timespec *ts); + +#endif /* __XEN_CLOCK_UTIL_H__ */ Modified: projects/amd64_xen_pv/sys/amd64/include/xen/xenpmap.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/xen/xenpmap.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/xen/xenpmap.h Tue Apr 3 05:42:51 2012 (r233823) @@ -34,17 +34,21 @@ #ifndef _XEN_XENPMAP_H_ #define _XEN_XENPMAP_H_ -#include - void _xen_queue_pt_update(vm_paddr_t, vm_paddr_t, char *, int); void xen_pt_switch(vm_paddr_t); void xen_set_ldt(vm_paddr_t, unsigned long); +void xen_pgdir_pin(vm_paddr_t); +void xen_pgdir_unpin(vm_paddr_t); void xen_pgdpt_pin(vm_paddr_t); +void xen_pgdpt_unpin(vm_paddr_t); void xen_pgd_pin(vm_paddr_t); void xen_pgd_unpin(vm_paddr_t); void xen_pt_pin(vm_paddr_t); void xen_pt_unpin(vm_paddr_t); void xen_flush_queue(void); +void pmap_ref(pt_entry_t *pte, vm_paddr_t ma); +void pmap_suspend(void); +void pmap_resume(void); void xen_check_queue(void); #if 0 void pmap_ref(pt_entry_t *pte, vm_paddr_t ma); @@ -56,6 +60,10 @@ void pmap_ref(pt_entry_t *pte, vm_paddr_ #define xen_queue_pt_update(a, b) _xen_queue_pt_update((a), (b), NULL, 0) #endif + +#include +#include + #ifdef PMAP_DEBUG #define PMAP_REF pmap_ref #define PMAP_DEC_REF_PAGE pmap_dec_ref_page @@ -221,7 +229,10 @@ set_phys_to_machine(unsigned long pfn, u xen_phys_machine[pfn] = mfn; } - - +static __inline int +phys_to_machine_mapping_valid(unsigned long pfn) +{ + return xen_phys_machine[pfn] != INVALID_P2M_ENTRY; +} #endif /* _XEN_XENPMAP_H_ */ Modified: projects/amd64_xen_pv/sys/amd64/include/xen/xenvar.h ============================================================================== --- projects/amd64_xen_pv/sys/amd64/include/xen/xenvar.h Tue Apr 3 02:16:21 2012 (r233822) +++ projects/amd64_xen_pv/sys/amd64/include/xen/xenvar.h Tue Apr 3 05:42:51 2012 (r233823) @@ -37,6 +37,8 @@ extern int xendebug_flags; #endif #include +#define NR_CPUS MAX_VIRT_CPUS + #if 0 #define TRACE_ENTER XENPRINTF("(file=%s, line=%d) entered %s\n", __FILE__, __LINE__, __FUNCTION__) #define TRACE_EXIT XENPRINTF("(file=%s, line=%d) exiting %s\n", __FILE__, __LINE__, __FUNCTION__) @@ -64,7 +66,6 @@ machtophys(vm_paddr_t ma) return (ma); } -#define vtomach(va) pmap_kextract((vm_offset_t) (va)) #define PFNTOMFN(pa) (pa) #define MFNTOPFN(ma) (ma) @@ -75,7 +76,8 @@ machtophys(vm_paddr_t ma) #else extern xen_pfn_t *xen_phys_machine; - +extern xen_pfn_t *xen_pfn_to_mfn_frame_list[16]; /* XXX: why 16 ? review this. */ +extern xen_pfn_t *xen_pfn_to_mfn_frame_list_list; extern xen_pfn_t *xen_machine_phys; /* Xen starts physical pages after the 4MB ISA hole - Added: projects/amd64_xen_pv/sys/amd64/xen/clock.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/amd64_xen_pv/sys/amd64/xen/clock.c Tue Apr 3 05:42:51 2012 (r233823) @@ -0,0 +1,918 @@ +/*- + * Copyright (c) 1990 The Regents of the University of California. + * All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * William Jolitz and Don Ahn. + * + * 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. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: @(#)clock.c 7.2 (Berkeley) 5/12/91 + */ + +#include +__FBSDID("$FreeBSD$"); + +/* #define DELAYDEBUG */ +/* + * Routines to handle clock hardware. + */ + +#include "opt_ddb.h" +#include "opt_clock.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#if defined(SMP) +#include +#endif +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * 32-bit time_t's can't reach leap years before 1904 or after 2036, so we + * can use a simple formula for leap years. + */ +#define LEAPYEAR(y) (!((y) % 4)) +#define DAYSPERYEAR (28+30*4+31*7) + +#ifndef TIMER_FREQ +#define TIMER_FREQ 1193182 +#endif + +#ifdef CYC2NS_SCALE_FACTOR +#undef CYC2NS_SCALE_FACTOR +#endif +#define CYC2NS_SCALE_FACTOR 10 + +/* Values for timerX_state: */ +#define RELEASED 0 +#define RELEASE_PENDING 1 +#define ACQUIRED 2 +#define ACQUIRE_PENDING 3 + +struct mtx clock_lock; +#define RTC_LOCK_INIT \ + mtx_init(&clock_lock, "clk", NULL, MTX_SPIN | MTX_NOPROFILE) +#define RTC_LOCK mtx_lock_spin(&clock_lock) +#define RTC_UNLOCK mtx_unlock_spin(&clock_lock) + +int adjkerntz; /* local offset from GMT in seconds */ +int clkintr_pending; +int pscnt = 1; +int psdiv = 1; +int wall_cmos_clock; +u_int timer_freq = TIMER_FREQ; +static int independent_wallclock; +static int xen_disable_rtc_set; +static u_long cyc2ns_scale; +static struct timespec shadow_tv; +static uint32_t shadow_tv_version; /* XXX: lazy locking */ +static uint64_t processed_system_time; /* stime (ns) at last processing. */ + +static const u_char daysinmonth[] = {31,28,31,30,31,30,31,31,30,31,30,31}; + +SYSCTL_INT(_machdep, OID_AUTO, independent_wallclock, + CTLFLAG_RW, &independent_wallclock, 0, ""); +SYSCTL_INT(_machdep, OID_AUTO, xen_disable_rtc_set, + CTLFLAG_RW, &xen_disable_rtc_set, 1, ""); + +#ifndef __amd64__ +#define do_div(n,base) ({ \ + unsigned long __upper, __low, __high, __mod, __base; \ + __base = (base); \ + __asm("":"=a" (__low), "=d" (__high):"A" (n)); \ + __upper = __high; \ + if (__high) { \ + __upper = __high % (__base); \ + __high = __high / (__base); \ + } \ + __asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (__base), "0" (__low), "1" (__upper)); \ + __asm("":"=A" (n):"a" (__low),"d" (__high)); \ + __mod; \ +}) + + +#define NS_PER_TICK (1000000000ULL/hz) + +#define rdtscll(val) \ + __asm__ __volatile__("rdtsc" : "=A" (val)) + +#else /* !__amd64__ */ +#define do_div(n,base) do {} while(0); /* XXX: TODO */ +#define NS_PER_TICK (1000000000ULL/hz) +#endif /* !__amd64__ */ + +/* convert from cycles(64bits) => nanoseconds (64bits) + * basic equation: + * ns = cycles / (freq / ns_per_sec) + * ns = cycles * (ns_per_sec / freq) + * ns = cycles * (10^9 / (cpu_mhz * 10^6)) + * ns = cycles * (10^3 / cpu_mhz) + * + * Then we use scaling math (suggested by george@mvista.com) to get: + * ns = cycles * (10^3 * SC / cpu_mhz) / SC + * ns = cycles * cyc2ns_scale / SC + * + * And since SC is a constant power of two, we can convert the div + * into a shift. + * -johnstul@us.ibm.com "math is hard, lets go shopping!" + */ +static inline void set_cyc2ns_scale(unsigned long cpu_mhz) +{ + cyc2ns_scale = (1000 << CYC2NS_SCALE_FACTOR)/cpu_mhz; +} + +static inline unsigned long long cycles_2_ns(unsigned long long cyc) +{ + return (cyc * cyc2ns_scale) >> CYC2NS_SCALE_FACTOR; +} + +/* + * Scale a 64-bit delta by scaling and multiplying by a 32-bit fraction, + * yielding a 64-bit result. + */ +static inline uint64_t +scale_delta(uint64_t delta, uint32_t mul_frac, int shift) +{ + uint64_t product; + uint32_t tmp1, tmp2; + + if ( shift < 0 ) + delta >>= -shift; + else + delta <<= shift; + + __asm__ ( + "mul %5 ; " + "mov %4,%%eax ; " + "mov %%edx,%4 ; " + "mul %5 ; " + "xor %5,%5 ; " + "add %4,%%eax ; " + "adc %5,%%edx ; " + : "=A" (product), "=r" (tmp1), "=r" (tmp2) + : "a" ((uint32_t)delta), "1" ((uint32_t)(delta >> 32)), "2" (mul_frac) ); + + return product; +} + +static uint64_t +get_nsec_offset(struct shadow_time_info *shadow) +{ + uint64_t now, delta; + rdtscll(now); + delta = now - shadow->tsc_timestamp; + return scale_delta(delta, shadow->tsc_to_nsec_mul, shadow->tsc_shift); +} + +static void update_wallclock(void) +{ + shared_info_t *s = HYPERVISOR_shared_info; + + do { + shadow_tv_version = s->wc_version; + rmb(); + shadow_tv.tv_sec = s->wc_sec; + shadow_tv.tv_nsec = s->wc_nsec; + rmb(); + } + while ((s->wc_version & 1) | (shadow_tv_version ^ s->wc_version)); + +} + +static void +add_uptime_to_wallclock(void) +{ + struct timespec ut; + + xen_fetch_uptime(&ut); + timespecadd(&shadow_tv, &ut); +} + +/* + * Reads a consistent set of time-base values from Xen, into a shadow data + * area. Must be called with the xtime_lock held for writing. + */ +static void __get_time_values_from_xen(void) +{ + shared_info_t *s = HYPERVISOR_shared_info; + struct vcpu_time_info *src; + struct shadow_time_info *dst; + uint32_t pre_version, post_version; + + src = &s->vcpu_info[smp_processor_id()].time; + dst = &per_cpu(shadow_time, smp_processor_id()); + + spinlock_enter(); + do { + pre_version = dst->version = src->version; + rmb(); + dst->tsc_timestamp = src->tsc_timestamp; + dst->system_timestamp = src->system_time; + dst->tsc_to_nsec_mul = src->tsc_to_system_mul; + dst->tsc_shift = src->tsc_shift; + rmb(); + post_version = src->version; + } + while ((pre_version & 1) | (pre_version ^ post_version)); + + dst->tsc_to_usec_mul = dst->tsc_to_nsec_mul / 1000; + spinlock_exit(); +} + + +static inline int time_values_up_to_date(int cpu) +{ + struct vcpu_time_info *src; + struct shadow_time_info *dst; + + src = &HYPERVISOR_shared_info->vcpu_info[cpu].time; + dst = &per_cpu(shadow_time, cpu); + + rmb(); + return (dst->version == src->version); +} + +static unsigned xen_get_timecount(struct timecounter *tc); + +static struct timecounter xen_timecounter = { + xen_get_timecount, /* get_timecount */ + 0, /* no poll_pps */ + ~0u, /* counter_mask */ + 0, /* frequency */ + "ixen", /* name */ + 0 /* quality */ +}; + +static struct eventtimer xen_et; + +struct xen_et_state { + int mode; +#define MODE_STOP 0 +#define MODE_PERIODIC 1 +#define MODE_ONESHOT 2 + int64_t period; + int64_t next; +}; + +static DPCPU_DEFINE(struct xen_et_state, et_state); + +static int +clkintr(void *arg) +{ + int64_t now; + int cpu = smp_processor_id(); + struct shadow_time_info *shadow = &per_cpu(shadow_time, cpu); + struct xen_et_state *state = DPCPU_PTR(et_state); + + do { + __get_time_values_from_xen(); + now = shadow->system_timestamp + get_nsec_offset(shadow); + } while (!time_values_up_to_date(cpu)); + + /* Process elapsed ticks since last call. */ + processed_system_time = now; + if (state->mode == MODE_PERIODIC) { + while (now >= state->next) { + state->next += state->period; + if (xen_et.et_active) + xen_et.et_event_cb(&xen_et, xen_et.et_arg); + } + HYPERVISOR_set_timer_op(state->next + 50000); + } else if (state->mode == MODE_ONESHOT) { + if (xen_et.et_active) + xen_et.et_event_cb(&xen_et, xen_et.et_arg); + } + /* + * Take synchronised time from Xen once a minute if we're not + * synchronised ourselves, and we haven't chosen to keep an independent + * time base. + */ + + if (shadow_tv_version != HYPERVISOR_shared_info->wc_version && + !independent_wallclock) { + printf("[XEN] hypervisor wallclock nudged; nudging TOD.\n"); + update_wallclock(); + add_uptime_to_wallclock(); + tc_setclock(&shadow_tv); + } + + /* XXX TODO */ + return (FILTER_HANDLED); +} +static uint32_t +getit(void) +{ + struct shadow_time_info *shadow; + uint64_t time; + uint32_t local_time_version; + + shadow = &per_cpu(shadow_time, smp_processor_id()); + + do { + local_time_version = shadow->version; + barrier(); + time = shadow->system_timestamp + get_nsec_offset(shadow); + if (!time_values_up_to_date(smp_processor_id())) + __get_time_values_from_xen(/*cpu */); + barrier(); + } while (local_time_version != shadow->version); + + return (time); +} + + +/* + * XXX: timer needs more SMP work. + */ +void +i8254_init(void) +{ + + RTC_LOCK_INIT; +} + +/* + * Wait "n" microseconds. + * Relies on timer 1 counting down from (timer_freq / hz) + * Note: timer had better have been programmed before this is first used! + */ +void +DELAY(int n) +{ + int delta, ticks_left; + uint32_t tick, prev_tick; +#ifdef DELAYDEBUG + int getit_calls = 1; + int n1; + static int state = 0; + + if (state == 0) { + state = 1; + for (n1 = 1; n1 <= 10000000; n1 *= 10) + DELAY(n1); + state = 2; + } + if (state == 1) + printf("DELAY(%d)...", n); +#endif + /* + * Read the counter first, so that the rest of the setup overhead is + * counted. Guess the initial overhead is 20 usec (on most systems it + * takes about 1.5 usec for each of the i/o's in getit(). The loop + * takes about 6 usec on a 486/33 and 13 usec on a 386/20. The + * multiplications and divisions to scale the count take a while). + * + * However, if ddb is active then use a fake counter since reading + * the i8254 counter involves acquiring a lock. ddb must not go *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 08:24: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 E472A106566B; Tue, 3 Apr 2012 08:24:35 +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 C6B898FC17; Tue, 3 Apr 2012 08:24: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 q338OZX1039396; Tue, 3 Apr 2012 08:24:35 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q338OZsL039381; Tue, 3 Apr 2012 08:24:35 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204030824.q338OZsL039381@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 08:24: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: r233826 - in projects/pf/head: . bin/expr bin/kenv bin/ps bin/pwait bin/setfacl bin/sh bin/stty cddl/contrib/opensolaris/lib/libdtrace/mips cddl/contrib/opensolaris/tools/ctf/cvt cddl/l... 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, 03 Apr 2012 08:24:36 -0000 Author: glebius Date: Tue Apr 3 08:24:32 2012 New Revision: 233826 URL: http://svn.freebsd.org/changeset/base/233826 Log: Merge head r232686 through r233825 into projects/pf/head. Added: projects/pf/head/cddl/contrib/opensolaris/lib/libdtrace/mips/ - copied from r233825, head/cddl/contrib/opensolaris/lib/libdtrace/mips/ projects/pf/head/contrib/libc++/include/__undef_min_max - copied unchanged from r233825, head/contrib/libc++/include/__undef_min_max projects/pf/head/crypto/heimdal/admin/destroy.c - copied unchanged from r233825, head/crypto/heimdal/admin/destroy.c projects/pf/head/crypto/heimdal/appl/login/login-protos.h - copied unchanged from r233825, head/crypto/heimdal/appl/login/login-protos.h projects/pf/head/crypto/heimdal/base/ - copied from r233825, head/crypto/heimdal/base/ projects/pf/head/crypto/heimdal/doc/copyright.texi - copied unchanged from r233825, head/crypto/heimdal/doc/copyright.texi projects/pf/head/crypto/heimdal/doc/doxyout/ - copied from r233825, head/crypto/heimdal/doc/doxyout/ projects/pf/head/crypto/heimdal/doc/gssapi.din - copied unchanged from r233825, head/crypto/heimdal/doc/gssapi.din projects/pf/head/crypto/heimdal/doc/header.html - copied unchanged from r233825, head/crypto/heimdal/doc/header.html projects/pf/head/crypto/heimdal/doc/wind.din - copied unchanged from r233825, head/crypto/heimdal/doc/wind.din projects/pf/head/crypto/heimdal/include/crypto-headers.h - copied unchanged from r233825, head/crypto/heimdal/include/crypto-headers.h projects/pf/head/crypto/heimdal/include/heim_threads.h - copied unchanged from r233825, head/crypto/heimdal/include/heim_threads.h projects/pf/head/crypto/heimdal/include/krb5-types.cross - copied unchanged from r233825, head/crypto/heimdal/include/krb5-types.cross projects/pf/head/crypto/heimdal/kadmin/rpc.c - copied unchanged from r233825, head/crypto/heimdal/kadmin/rpc.c projects/pf/head/crypto/heimdal/kcm/kcm-protos.h - copied unchanged from r233825, head/crypto/heimdal/kcm/kcm-protos.h projects/pf/head/crypto/heimdal/kcm/sessions.c - copied unchanged from r233825, head/crypto/heimdal/kcm/sessions.c projects/pf/head/crypto/heimdal/kdc/announce.c - copied unchanged from r233825, head/crypto/heimdal/kdc/announce.c projects/pf/head/crypto/heimdal/kdc/digest-service.c - copied unchanged from r233825, head/crypto/heimdal/kdc/digest-service.c projects/pf/head/crypto/heimdal/kuser/kcc-commands.in - copied unchanged from r233825, head/crypto/heimdal/kuser/kcc-commands.in projects/pf/head/crypto/heimdal/kuser/kcc.c - copied unchanged from r233825, head/crypto/heimdal/kuser/kcc.c projects/pf/head/crypto/heimdal/kuser/kdigest.8 - copied unchanged from r233825, head/crypto/heimdal/kuser/kdigest.8 projects/pf/head/crypto/heimdal/kuser/kimpersonate.8 - copied unchanged from r233825, head/crypto/heimdal/kuser/kimpersonate.8 projects/pf/head/crypto/heimdal/kuser/kswitch.1 - copied unchanged from r233825, head/crypto/heimdal/kuser/kswitch.1 projects/pf/head/crypto/heimdal/kuser/kswitch.c - copied unchanged from r233825, head/crypto/heimdal/kuser/kswitch.c projects/pf/head/crypto/heimdal/lib/asn1/asn1-template.h - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/asn1-template.h projects/pf/head/crypto/heimdal/lib/asn1/asn1parse.c - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/asn1parse.c projects/pf/head/crypto/heimdal/lib/asn1/asn1parse.h - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/asn1parse.h projects/pf/head/crypto/heimdal/lib/asn1/asn1parse.y - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/asn1parse.y projects/pf/head/crypto/heimdal/lib/asn1/cms.asn1 - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/cms.asn1 projects/pf/head/crypto/heimdal/lib/asn1/cms.opt - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/cms.opt projects/pf/head/crypto/heimdal/lib/asn1/der-private.h - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/der-private.h projects/pf/head/crypto/heimdal/lib/asn1/gen_template.c - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/gen_template.c projects/pf/head/crypto/heimdal/lib/asn1/krb5.asn1 - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/krb5.asn1 projects/pf/head/crypto/heimdal/lib/asn1/krb5.opt - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/krb5.opt projects/pf/head/crypto/heimdal/lib/asn1/template.c - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/template.c projects/pf/head/crypto/heimdal/lib/asn1/version-script.map - copied unchanged from r233825, head/crypto/heimdal/lib/asn1/version-script.map projects/pf/head/crypto/heimdal/lib/gssapi/gssapi/gssapi_ntlm.h - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/gssapi/gssapi_ntlm.h projects/pf/head/crypto/heimdal/lib/gssapi/gssapi/gssapi_oid.h - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/gssapi/gssapi_oid.h projects/pf/head/crypto/heimdal/lib/gssapi/gsstool.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/gsstool.c projects/pf/head/crypto/heimdal/lib/gssapi/krb5/aeap.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/krb5/aeap.c projects/pf/head/crypto/heimdal/lib/gssapi/krb5/authorize_localname.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/krb5/authorize_localname.c projects/pf/head/crypto/heimdal/lib/gssapi/krb5/creds.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/krb5/creds.c projects/pf/head/crypto/heimdal/lib/gssapi/krb5/pname_to_uid.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/krb5/pname_to_uid.c projects/pf/head/crypto/heimdal/lib/gssapi/krb5/store_cred.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/krb5/store_cred.c projects/pf/head/crypto/heimdal/lib/gssapi/mech/ - copied from r233825, head/crypto/heimdal/lib/gssapi/mech/ projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/creds.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/ntlm/creds.c projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/inquire_sec_context_by_oid.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/ntlm/inquire_sec_context_by_oid.c projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/iter_cred.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/ntlm/iter_cred.c projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/kdc.c - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/ntlm/kdc.c projects/pf/head/crypto/heimdal/lib/gssapi/spnego/spnego.opt - copied unchanged from r233825, head/crypto/heimdal/lib/gssapi/spnego/spnego.opt projects/pf/head/crypto/heimdal/lib/hdb/hdb-keytab.c - copied unchanged from r233825, head/crypto/heimdal/lib/hdb/hdb-keytab.c projects/pf/head/crypto/heimdal/lib/hdb/hdb-mitdb.c - copied unchanged from r233825, head/crypto/heimdal/lib/hdb/hdb-mitdb.c projects/pf/head/crypto/heimdal/lib/hdb/hdb-sqlite.c - copied unchanged from r233825, head/crypto/heimdal/lib/hdb/hdb-sqlite.c projects/pf/head/crypto/heimdal/lib/hdb/version-script.map - copied unchanged from r233825, head/crypto/heimdal/lib/hdb/version-script.map projects/pf/head/crypto/heimdal/lib/heimdal/ - copied from r233825, head/crypto/heimdal/lib/heimdal/ projects/pf/head/crypto/heimdal/lib/hx509/char_map.h - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/char_map.h projects/pf/head/crypto/heimdal/lib/hx509/ocsp.opt - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/ocsp.opt projects/pf/head/crypto/heimdal/lib/hx509/pkcs10.opt - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/pkcs10.opt projects/pf/head/crypto/heimdal/lib/hx509/quote.py - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/quote.py projects/pf/head/crypto/heimdal/lib/hx509/sel-gram.y - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/sel-gram.y projects/pf/head/crypto/heimdal/lib/hx509/sel-lex.l - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/sel-lex.l projects/pf/head/crypto/heimdal/lib/hx509/sel.c - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/sel.c projects/pf/head/crypto/heimdal/lib/hx509/sel.h - copied unchanged from r233825, head/crypto/heimdal/lib/hx509/sel.h projects/pf/head/crypto/heimdal/lib/ipc/ - copied from r233825, head/crypto/heimdal/lib/ipc/ projects/pf/head/crypto/heimdal/lib/krb5/ccache_plugin.h - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/ccache_plugin.h projects/pf/head/crypto/heimdal/lib/krb5/crypto-aes.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-aes.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-algs.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-algs.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-arcfour.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-arcfour.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-des-common.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-des-common.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-des.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-des.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-des3.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-des3.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-evp.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-evp.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-null.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-null.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-pk.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-pk.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-rand.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-rand.c projects/pf/head/crypto/heimdal/lib/krb5/crypto-stubs.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto-stubs.c projects/pf/head/crypto/heimdal/lib/krb5/crypto.h - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/crypto.h projects/pf/head/crypto/heimdal/lib/krb5/deprecated.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/deprecated.c projects/pf/head/crypto/heimdal/lib/krb5/expand_path.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/expand_path.c projects/pf/head/crypto/heimdal/lib/krb5/pcache.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/pcache.c projects/pf/head/crypto/heimdal/lib/krb5/salt-aes.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/salt-aes.c projects/pf/head/crypto/heimdal/lib/krb5/salt-arcfour.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/salt-arcfour.c projects/pf/head/crypto/heimdal/lib/krb5/salt-des.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/salt-des.c projects/pf/head/crypto/heimdal/lib/krb5/salt-des3.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/salt-des3.c projects/pf/head/crypto/heimdal/lib/krb5/salt.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/salt.c projects/pf/head/crypto/heimdal/lib/krb5/scache.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/scache.c projects/pf/head/crypto/heimdal/lib/krb5/send_to_kdc_plugin.h - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/send_to_kdc_plugin.h projects/pf/head/crypto/heimdal/lib/krb5/store-int.c - copied unchanged from r233825, head/crypto/heimdal/lib/krb5/store-int.c projects/pf/head/crypto/heimdal/lib/ntlm/ntlm_err.et - copied unchanged from r233825, head/crypto/heimdal/lib/ntlm/ntlm_err.et projects/pf/head/crypto/heimdal/lib/roken/cloexec.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/cloexec.c projects/pf/head/crypto/heimdal/lib/roken/ct.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/ct.c projects/pf/head/crypto/heimdal/lib/roken/doxygen.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/doxygen.c projects/pf/head/crypto/heimdal/lib/roken/qsort.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/qsort.c projects/pf/head/crypto/heimdal/lib/roken/rand.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/rand.c projects/pf/head/crypto/heimdal/lib/roken/rkpty.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/rkpty.c projects/pf/head/crypto/heimdal/lib/roken/search.hin - copied unchanged from r233825, head/crypto/heimdal/lib/roken/search.hin projects/pf/head/crypto/heimdal/lib/roken/strerror_r.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/strerror_r.c projects/pf/head/crypto/heimdal/lib/roken/tsearch.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/tsearch.c projects/pf/head/crypto/heimdal/lib/roken/version-script.map - copied unchanged from r233825, head/crypto/heimdal/lib/roken/version-script.map projects/pf/head/crypto/heimdal/lib/roken/xfree.c - copied unchanged from r233825, head/crypto/heimdal/lib/roken/xfree.c projects/pf/head/crypto/heimdal/lib/sqlite/ - copied from r233825, head/crypto/heimdal/lib/sqlite/ projects/pf/head/crypto/heimdal/lib/wind/ - copied from r233825, head/crypto/heimdal/lib/wind/ projects/pf/head/gnu/lib/libsupc++/Version.map - copied unchanged from r233825, head/gnu/lib/libsupc++/Version.map projects/pf/head/kerberos5/lib/libgssapi_krb5/gss_oid.c - copied unchanged from r233825, head/kerberos5/lib/libgssapi_krb5/gss_oid.c projects/pf/head/kerberos5/lib/libgssapi_spnego/freebsd_compat.c - copied unchanged from r233825, head/kerberos5/lib/libgssapi_spnego/freebsd_compat.c projects/pf/head/kerberos5/lib/libheimbase/ - copied from r233825, head/kerberos5/lib/libheimbase/ projects/pf/head/kerberos5/lib/libheimipcc/ - copied from r233825, head/kerberos5/lib/libheimipcc/ projects/pf/head/kerberos5/lib/libheimipcs/ - copied from r233825, head/kerberos5/lib/libheimipcs/ projects/pf/head/kerberos5/lib/libheimsqlite/ - copied from r233825, head/kerberos5/lib/libheimsqlite/ projects/pf/head/kerberos5/lib/libkdc/ - copied from r233825, head/kerberos5/lib/libkdc/ projects/pf/head/kerberos5/lib/libwind/ - copied from r233825, head/kerberos5/lib/libwind/ projects/pf/head/kerberos5/libexec/digest-service/ - copied from r233825, head/kerberos5/libexec/digest-service/ projects/pf/head/kerberos5/libexec/kdigest/ - copied from r233825, head/kerberos5/libexec/kdigest/ projects/pf/head/kerberos5/libexec/kfd/ - copied from r233825, head/kerberos5/libexec/kfd/ projects/pf/head/kerberos5/libexec/kimpersonate/ - copied from r233825, head/kerberos5/libexec/kimpersonate/ projects/pf/head/kerberos5/usr.bin/hxtool/ - copied from r233825, head/kerberos5/usr.bin/hxtool/ projects/pf/head/kerberos5/usr.bin/kcc/ - copied from r233825, head/kerberos5/usr.bin/kcc/ projects/pf/head/kerberos5/usr.bin/kf/ - copied from r233825, head/kerberos5/usr.bin/kf/ projects/pf/head/kerberos5/usr.bin/kgetcred/ - copied from r233825, head/kerberos5/usr.bin/kgetcred/ projects/pf/head/kerberos5/usr.bin/string2key/ - copied from r233825, head/kerberos5/usr.bin/string2key/ projects/pf/head/kerberos5/usr.sbin/iprop-log/ - copied from r233825, head/kerberos5/usr.sbin/iprop-log/ projects/pf/head/lib/csu/common/ignore_init.c - copied unchanged from r233825, head/lib/csu/common/ignore_init.c projects/pf/head/lib/csu/common/notes.h - copied unchanged from r233825, head/lib/csu/common/notes.h projects/pf/head/lib/libc/locale/ctype_l.3 - copied unchanged from r233825, head/lib/libc/locale/ctype_l.3 projects/pf/head/lib/libcxxrt/Version.map - copied unchanged from r233825, head/lib/libcxxrt/Version.map projects/pf/head/lib/libpmc/pmc.mips24k.3 - copied unchanged from r233825, head/lib/libpmc/pmc.mips24k.3 projects/pf/head/lib/libpmc/pmc.octeon.3 - copied unchanged from r233825, head/lib/libpmc/pmc.octeon.3 projects/pf/head/lib/libpmc/pmc.soft.3 - copied unchanged from r233825, head/lib/libpmc/pmc.soft.3 projects/pf/head/share/examples/csh/ - copied from r233825, head/share/examples/csh/ projects/pf/head/sys/amd64/include/npx.h - copied unchanged from r233825, head/sys/amd64/include/npx.h projects/pf/head/sys/cddl/contrib/opensolaris/uts/mips/ - copied from r233825, head/sys/cddl/contrib/opensolaris/uts/mips/ projects/pf/head/sys/cddl/dev/dtrace/mips/ - copied from r233825, head/sys/cddl/dev/dtrace/mips/ projects/pf/head/sys/contrib/dev/acpica/compiler/preprocess.h - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/preprocess.h projects/pf/head/sys/contrib/dev/acpica/compiler/prexpress.c - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/prexpress.c projects/pf/head/sys/contrib/dev/acpica/compiler/prmacros.c - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/prmacros.c projects/pf/head/sys/contrib/dev/acpica/compiler/prparser.l - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/prparser.l projects/pf/head/sys/contrib/dev/acpica/compiler/prparser.y - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/prparser.y projects/pf/head/sys/contrib/dev/acpica/compiler/prscan.c - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/prscan.c projects/pf/head/sys/contrib/dev/acpica/compiler/prutils.c - copied unchanged from r233825, head/sys/contrib/dev/acpica/compiler/prutils.c projects/pf/head/sys/contrib/dev/ral/microcode.h - copied unchanged from r233825, head/sys/contrib/dev/ral/microcode.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ciu2-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-ciu2-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-endor-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-endor-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-eoi-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-eoi-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-cfg.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-helper-cfg.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-cfg.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-helper-cfg.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-ilk.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-helper-ilk.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-ilk.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-helper-ilk.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-hfa.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-hfa.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-hfa.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-hfa.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ilk-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-ilk-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ilk.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-ilk.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-ilk.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-ilk.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-iob1-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-iob1-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ipd.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-ipd.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-malloc/ - copied from r233825, head/sys/contrib/octeon-sdk/cvmx-malloc/ projects/pf/head/sys/contrib/octeon-sdk/cvmx-profiler.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-profiler.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-profiler.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-profiler.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-qlm-tables.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-qlm-tables.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-qlm.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-qlm.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-qlm.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-qlm.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-resources.config - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-resources.config projects/pf/head/sys/contrib/octeon-sdk/cvmx-shared-linux-n32.ld - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-shared-linux-n32.ld projects/pf/head/sys/contrib/octeon-sdk/cvmx-shared-linux-o32.ld - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-shared-linux-o32.ld projects/pf/head/sys/contrib/octeon-sdk/cvmx-shared-linux.ld - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-shared-linux.ld projects/pf/head/sys/contrib/octeon-sdk/cvmx-sso-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-sso-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-trax-defs.h - copied unchanged from r233825, head/sys/contrib/octeon-sdk/cvmx-trax-defs.h projects/pf/head/sys/contrib/octeon-sdk/octeon-feature.c - copied unchanged from r233825, head/sys/contrib/octeon-sdk/octeon-feature.c projects/pf/head/sys/dev/hwpmc/hwpmc_octeon.c - copied unchanged from r233825, head/sys/dev/hwpmc/hwpmc_octeon.c projects/pf/head/sys/dev/hwpmc/hwpmc_soft.c - copied unchanged from r233825, head/sys/dev/hwpmc/hwpmc_soft.c projects/pf/head/sys/dev/hwpmc/hwpmc_soft.h - copied unchanged from r233825, head/sys/dev/hwpmc/hwpmc_soft.h projects/pf/head/sys/dev/iicbus/ds1374.c - copied unchanged from r233825, head/sys/dev/iicbus/ds1374.c projects/pf/head/sys/dev/iicbus/iicoc.c - copied unchanged from r233825, head/sys/dev/iicbus/iicoc.c projects/pf/head/sys/dev/iicbus/iicoc.h - copied unchanged from r233825, head/sys/dev/iicbus/iicoc.h projects/pf/head/sys/dev/mfi/mfi_syspd.c - copied unchanged from r233825, head/sys/dev/mfi/mfi_syspd.c projects/pf/head/sys/dev/mfi/mfi_tbolt.c - copied unchanged from r233825, head/sys/dev/mfi/mfi_tbolt.c projects/pf/head/sys/dev/mpt/mpilib/mpi_log_fc.h - copied unchanged from r233825, head/sys/dev/mpt/mpilib/mpi_log_fc.h projects/pf/head/sys/dev/mpt/mpilib/mpi_log_sas.h - copied unchanged from r233825, head/sys/dev/mpt/mpilib/mpi_log_sas.h projects/pf/head/sys/geom/part/g_part_ldm.c - copied unchanged from r233825, head/sys/geom/part/g_part_ldm.c projects/pf/head/sys/mips/cavium/octeon_irq.h - copied unchanged from r233825, head/sys/mips/cavium/octeon_irq.h projects/pf/head/sys/mips/cavium/octeon_pmc.c - copied unchanged from r233825, head/sys/mips/cavium/octeon_pmc.c projects/pf/head/sys/mips/conf/XLP.hints - copied unchanged from r233825, head/sys/mips/conf/XLP.hints projects/pf/head/sys/mips/mips/libkern_machdep.c - copied unchanged from r233825, head/sys/mips/mips/libkern_machdep.c projects/pf/head/sys/mips/nlm/board_cpld.c - copied unchanged from r233825, head/sys/mips/nlm/board_cpld.c projects/pf/head/sys/mips/nlm/board_eeprom.c - copied unchanged from r233825, head/sys/mips/nlm/board_eeprom.c projects/pf/head/sys/mips/nlm/dev/ - copied from r233825, head/sys/mips/nlm/dev/ projects/pf/head/sys/mips/nlm/hal/gbu.h - copied unchanged from r233825, head/sys/mips/nlm/hal/gbu.h projects/pf/head/sys/mips/nlm/hal/interlaken.h - copied unchanged from r233825, head/sys/mips/nlm/hal/interlaken.h projects/pf/head/sys/mips/nlm/hal/mdio.h - copied unchanged from r233825, head/sys/mips/nlm/hal/mdio.h projects/pf/head/sys/mips/nlm/hal/nae.h - copied unchanged from r233825, head/sys/mips/nlm/hal/nae.h projects/pf/head/sys/mips/nlm/hal/nlmsaelib.h - copied unchanged from r233825, head/sys/mips/nlm/hal/nlmsaelib.h projects/pf/head/sys/mips/nlm/hal/poe.h - copied unchanged from r233825, head/sys/mips/nlm/hal/poe.h projects/pf/head/sys/mips/nlm/hal/sgmii.h - copied unchanged from r233825, head/sys/mips/nlm/hal/sgmii.h projects/pf/head/sys/mips/nlm/hal/ucore_loader.h - copied unchanged from r233825, head/sys/mips/nlm/hal/ucore_loader.h projects/pf/head/sys/mips/nlm/hal/xaui.h - copied unchanged from r233825, head/sys/mips/nlm/hal/xaui.h projects/pf/head/sys/modules/acl_nfs4/ - copied from r233825, head/sys/modules/acl_nfs4/ projects/pf/head/sys/modules/acl_posix1e/ - copied from r233825, head/sys/modules/acl_posix1e/ projects/pf/head/sys/modules/geom/geom_part/geom_part_ldm/ - copied from r233825, head/sys/modules/geom/geom_part/geom_part_ldm/ projects/pf/head/sys/modules/ralfw/rt2860/ - copied from r233825, head/sys/modules/ralfw/rt2860/ projects/pf/head/sys/x86/include/fpu.h - copied unchanged from r233825, head/sys/x86/include/fpu.h projects/pf/head/sys/x86/include/legacyvar.h - copied unchanged from r233825, head/sys/x86/include/legacyvar.h projects/pf/head/sys/x86/include/psl.h - copied unchanged from r233825, head/sys/x86/include/psl.h projects/pf/head/sys/x86/include/reg.h - copied unchanged from r233825, head/sys/x86/include/reg.h projects/pf/head/sys/x86/include/segments.h - copied unchanged from r233825, head/sys/x86/include/segments.h projects/pf/head/sys/x86/include/specialreg.h - copied unchanged from r233825, head/sys/x86/include/specialreg.h projects/pf/head/sys/x86/include/sysarch.h - copied unchanged from r233825, head/sys/x86/include/sysarch.h projects/pf/head/sys/x86/x86/intr_machdep.c - copied unchanged from r233825, head/sys/x86/x86/intr_machdep.c projects/pf/head/sys/x86/x86/legacy.c - copied unchanged from r233825, head/sys/x86/x86/legacy.c projects/pf/head/tools/regression/bin/sh/expansion/arith12.0 - copied unchanged from r233825, head/tools/regression/bin/sh/expansion/arith12.0 Replaced: projects/pf/head/contrib/com_err/ChangeLog - copied unchanged from r233825, head/contrib/com_err/ChangeLog Deleted: projects/pf/head/Makefile.mips projects/pf/head/contrib/com_err/Makefile.am projects/pf/head/contrib/com_err/Makefile.in projects/pf/head/contrib/com_err/getarg.c projects/pf/head/contrib/com_err/getarg.h projects/pf/head/contrib/com_err/lex.c projects/pf/head/contrib/com_err/parse.c projects/pf/head/contrib/com_err/parse.h projects/pf/head/contrib/libcxxrt/typeinfo projects/pf/head/crypto/heimdal/appl/ftp/ftp/krb4.c projects/pf/head/crypto/heimdal/appl/ftp/ftpd/krb4.c projects/pf/head/crypto/heimdal/appl/login/login_protos.h projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/kerberos.c projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/krb4encpwd.c projects/pf/head/crypto/heimdal/cf/ projects/pf/head/crypto/heimdal/configure.in projects/pf/head/crypto/heimdal/include/make_crypto.c projects/pf/head/crypto/heimdal/kcm/cursor.c projects/pf/head/crypto/heimdal/kcm/kcm_protos.h projects/pf/head/crypto/heimdal/kdc/524.c projects/pf/head/crypto/heimdal/kdc/kadb.h projects/pf/head/crypto/heimdal/kdc/kaserver.c projects/pf/head/crypto/heimdal/kdc/kerberos4.c projects/pf/head/crypto/heimdal/kdc/v4_dump.c projects/pf/head/crypto/heimdal/kuser/kimpersonate.1 projects/pf/head/crypto/heimdal/lib/45/ projects/pf/head/crypto/heimdal/lib/asn1/CMS.asn1 projects/pf/head/crypto/heimdal/lib/asn1/k5.asn1 projects/pf/head/crypto/heimdal/lib/asn1/parse.c projects/pf/head/crypto/heimdal/lib/asn1/parse.h projects/pf/head/crypto/heimdal/lib/asn1/parse.y projects/pf/head/crypto/heimdal/lib/auth/ projects/pf/head/crypto/heimdal/lib/gssapi/gss.c projects/pf/head/crypto/heimdal/lib/gssapi/krb5/v1.c projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/digest.c projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/inquire_cred.c projects/pf/head/crypto/heimdal/lib/hx509/data/ projects/pf/head/crypto/heimdal/lib/kafs/README.dlfcn projects/pf/head/crypto/heimdal/lib/kafs/afskrb.c projects/pf/head/crypto/heimdal/lib/kafs/dlfcn.c projects/pf/head/crypto/heimdal/lib/kafs/dlfcn.h projects/pf/head/crypto/heimdal/lib/krb5/config_file_netinfo.c projects/pf/head/crypto/heimdal/lib/krb5/get_in_tkt_pw.c projects/pf/head/crypto/heimdal/lib/krb5/get_in_tkt_with_keytab.c projects/pf/head/crypto/heimdal/lib/krb5/get_in_tkt_with_skey.c projects/pf/head/crypto/heimdal/lib/krb5/heim_threads.h projects/pf/head/crypto/heimdal/lib/krb5/keytab_krb4.c projects/pf/head/crypto/heimdal/lib/krb5/krb5.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_address.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_ccache.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_compare_creds.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_config.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_context.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_crypto_init.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_data.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_expand_hostname.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_keyblock.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_keytab.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_kuserok.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_storage.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_ticket.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_unparse_name.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_warn.3 projects/pf/head/crypto/heimdal/lib/krb5/name-45-test.c projects/pf/head/crypto/heimdal/lib/krb5/v4_glue.c projects/pf/head/crypto/heimdal/lib/roken/snprintf-test.h projects/pf/head/crypto/heimdal/lib/roken/vis.h projects/pf/head/crypto/heimdal/lib/sl/lex.c projects/pf/head/crypto/heimdal/lib/sl/lex.l projects/pf/head/crypto/heimdal/lib/sl/make_cmds.c projects/pf/head/crypto/heimdal/lib/sl/make_cmds.h projects/pf/head/crypto/heimdal/lib/sl/parse.c projects/pf/head/crypto/heimdal/lib/sl/parse.h projects/pf/head/crypto/heimdal/lib/sl/parse.y projects/pf/head/crypto/heimdal/lib/sl/ss.c projects/pf/head/crypto/heimdal/lib/sl/ss.h projects/pf/head/crypto/heimdal/lib/vers/make-print-version.c projects/pf/head/crypto/heimdal/packages/ projects/pf/head/crypto/heimdal/tests/ projects/pf/head/crypto/heimdal/tools/heimdal-build.sh projects/pf/head/kerberos5/lib/libgssapi_spnego/prefix.c projects/pf/head/kerberos5/tools/make-print-version/ projects/pf/head/kerberos5/usr.bin/klist/ projects/pf/head/lib/libpmc/pmc.mips.3 projects/pf/head/sys/amd64/amd64/intr_machdep.c projects/pf/head/sys/amd64/amd64/legacy.c projects/pf/head/sys/amd64/include/legacyvar.h projects/pf/head/sys/compat/ia32/ia32_reg.h projects/pf/head/sys/contrib/dev/ral/rt2661_ucode.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-csr-db-support.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-csr-db.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-csr-db.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-custom.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-custom.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn30xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn31xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn38xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn38xxp2.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn50xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn52xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn52xxp1.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn56xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn56xxp1.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn58xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn58xxp1.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn63xx.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error-init-cn63xxp1.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-error.h projects/pf/head/sys/dev/hwpmc/hwpmc_mips24k.h projects/pf/head/sys/dev/mpt/mpilib/mpi_inb.h projects/pf/head/sys/fs/fifofs/fifo.h projects/pf/head/sys/i386/i386/intr_machdep.c projects/pf/head/sys/i386/i386/legacy.c projects/pf/head/sys/i386/include/legacyvar.h projects/pf/head/sys/mips/include/bswap.h projects/pf/head/sys/mips/include/clockvar.h projects/pf/head/sys/mips/include/cputypes.h projects/pf/head/sys/mips/include/iodev.h projects/pf/head/sys/mips/include/mp_watchdog.h projects/pf/head/sys/mips/include/pci_cfgreg.h projects/pf/head/sys/mips/include/ppireg.h projects/pf/head/sys/mips/include/timerreg.h projects/pf/head/sys/mips/mips/mainbus.c projects/pf/head/sys/mips/nlm/intern_dev.c projects/pf/head/sys/mips/nlm/uart_pci_xlp.c projects/pf/head/sys/pc98/include/legacyvar.h Modified: projects/pf/head/Makefile projects/pf/head/Makefile.inc1 projects/pf/head/ObsoleteFiles.inc projects/pf/head/UPDATING projects/pf/head/bin/expr/expr.y projects/pf/head/bin/kenv/kenv.1 projects/pf/head/bin/ps/ps.1 projects/pf/head/bin/pwait/pwait.1 projects/pf/head/bin/setfacl/setfacl.1 projects/pf/head/bin/sh/jobs.c projects/pf/head/bin/sh/sh.1 projects/pf/head/bin/stty/stty.1 projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/ctftools.h projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/output.c projects/pf/head/cddl/lib/Makefile projects/pf/head/cddl/lib/libdtrace/Makefile projects/pf/head/cddl/usr.sbin/Makefile projects/pf/head/contrib/bsnmp/snmpd/main.c projects/pf/head/contrib/com_err/com_err.3 projects/pf/head/contrib/com_err/com_err.c (contents, props changed) projects/pf/head/contrib/com_err/com_err.h (contents, props changed) projects/pf/head/contrib/com_err/com_right.h (contents, props changed) projects/pf/head/contrib/com_err/compile_et.c (contents, props changed) projects/pf/head/contrib/com_err/compile_et.h (contents, props changed) projects/pf/head/contrib/com_err/error.c (contents, props changed) projects/pf/head/contrib/com_err/lex.h (contents, props changed) projects/pf/head/contrib/com_err/lex.l projects/pf/head/contrib/com_err/parse.y projects/pf/head/contrib/com_err/roken_rename.h (contents, props changed) projects/pf/head/contrib/com_err/version-script.map projects/pf/head/contrib/gcc/config/mips/freebsd.h projects/pf/head/contrib/gdb/gdb/mips-tdep.c projects/pf/head/contrib/gdb/gdb/mipsfbsd-tdep.c projects/pf/head/contrib/gdb/gdb/target.c projects/pf/head/contrib/libc++/include/__bit_reference projects/pf/head/contrib/libc++/include/__config projects/pf/head/contrib/libc++/include/__debug projects/pf/head/contrib/libc++/include/__functional_03 projects/pf/head/contrib/libc++/include/__functional_base projects/pf/head/contrib/libc++/include/__functional_base_03 projects/pf/head/contrib/libc++/include/__hash_table projects/pf/head/contrib/libc++/include/__locale projects/pf/head/contrib/libc++/include/__mutex_base projects/pf/head/contrib/libc++/include/__split_buffer projects/pf/head/contrib/libc++/include/__sso_allocator projects/pf/head/contrib/libc++/include/__std_stream projects/pf/head/contrib/libc++/include/__tree projects/pf/head/contrib/libc++/include/__tuple projects/pf/head/contrib/libc++/include/algorithm projects/pf/head/contrib/libc++/include/atomic projects/pf/head/contrib/libc++/include/bitset projects/pf/head/contrib/libc++/include/chrono projects/pf/head/contrib/libc++/include/cmath projects/pf/head/contrib/libc++/include/complex projects/pf/head/contrib/libc++/include/cstddef projects/pf/head/contrib/libc++/include/cstdlib projects/pf/head/contrib/libc++/include/cstring projects/pf/head/contrib/libc++/include/deque projects/pf/head/contrib/libc++/include/exception projects/pf/head/contrib/libc++/include/ext/hash_map projects/pf/head/contrib/libc++/include/forward_list projects/pf/head/contrib/libc++/include/fstream projects/pf/head/contrib/libc++/include/functional projects/pf/head/contrib/libc++/include/future projects/pf/head/contrib/libc++/include/initializer_list projects/pf/head/contrib/libc++/include/iomanip projects/pf/head/contrib/libc++/include/ios projects/pf/head/contrib/libc++/include/istream projects/pf/head/contrib/libc++/include/iterator projects/pf/head/contrib/libc++/include/limits projects/pf/head/contrib/libc++/include/list projects/pf/head/contrib/libc++/include/locale projects/pf/head/contrib/libc++/include/map projects/pf/head/contrib/libc++/include/memory projects/pf/head/contrib/libc++/include/mutex projects/pf/head/contrib/libc++/include/ostream projects/pf/head/contrib/libc++/include/random projects/pf/head/contrib/libc++/include/ratio projects/pf/head/contrib/libc++/include/regex projects/pf/head/contrib/libc++/include/sstream projects/pf/head/contrib/libc++/include/streambuf projects/pf/head/contrib/libc++/include/string projects/pf/head/contrib/libc++/include/system_error projects/pf/head/contrib/libc++/include/thread projects/pf/head/contrib/libc++/include/tuple projects/pf/head/contrib/libc++/include/type_traits projects/pf/head/contrib/libc++/include/unordered_map projects/pf/head/contrib/libc++/include/utility projects/pf/head/contrib/libc++/include/valarray projects/pf/head/contrib/libc++/include/vector projects/pf/head/contrib/libc++/src/chrono.cpp projects/pf/head/contrib/libc++/src/condition_variable.cpp projects/pf/head/contrib/libc++/src/debug.cpp projects/pf/head/contrib/libc++/src/exception.cpp projects/pf/head/contrib/libc++/src/future.cpp projects/pf/head/contrib/libc++/src/hash.cpp projects/pf/head/contrib/libc++/src/locale.cpp projects/pf/head/contrib/libc++/src/memory.cpp projects/pf/head/contrib/libc++/src/mutex.cpp projects/pf/head/contrib/libc++/src/new.cpp projects/pf/head/contrib/libc++/src/random.cpp projects/pf/head/contrib/libc++/src/regex.cpp projects/pf/head/contrib/libc++/src/stdexcept.cpp projects/pf/head/contrib/libc++/src/string.cpp projects/pf/head/contrib/libc++/src/strstream.cpp projects/pf/head/contrib/libc++/src/thread.cpp projects/pf/head/contrib/libc++/src/typeinfo.cpp projects/pf/head/contrib/libcxxrt/auxhelper.cc projects/pf/head/contrib/libcxxrt/cxxabi.h projects/pf/head/contrib/libcxxrt/dwarf_eh.h projects/pf/head/contrib/libcxxrt/dynamic_cast.cc projects/pf/head/contrib/libcxxrt/exception.cc projects/pf/head/contrib/libcxxrt/guard.cc projects/pf/head/contrib/libcxxrt/memory.cc projects/pf/head/contrib/libcxxrt/stdexcept.cc projects/pf/head/contrib/libcxxrt/stdexcept.h projects/pf/head/contrib/libcxxrt/terminate.cc projects/pf/head/contrib/libcxxrt/typeinfo.cc projects/pf/head/contrib/libcxxrt/typeinfo.h projects/pf/head/contrib/libcxxrt/unwind-arm.h projects/pf/head/contrib/libcxxrt/unwind.h projects/pf/head/contrib/libstdc++/include/bits/stl_tree.h projects/pf/head/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/pf/head/contrib/ntp/ntpd/ntp_loopfilter.c projects/pf/head/contrib/tnftp/src/main.c projects/pf/head/contrib/tnftp/src/util.c projects/pf/head/contrib/tzdata/antarctica projects/pf/head/contrib/tzdata/asia projects/pf/head/contrib/tzdata/australasia projects/pf/head/contrib/tzdata/europe projects/pf/head/contrib/tzdata/leapseconds projects/pf/head/contrib/tzdata/northamerica projects/pf/head/contrib/tzdata/southamerica projects/pf/head/contrib/tzdata/zone.tab projects/pf/head/crypto/heimdal/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/ChangeLog.2002 (contents, props changed) projects/pf/head/crypto/heimdal/ChangeLog.2003 (contents, props changed) projects/pf/head/crypto/heimdal/ChangeLog.2004 (contents, props changed) projects/pf/head/crypto/heimdal/ChangeLog.2005 (contents, props changed) projects/pf/head/crypto/heimdal/ChangeLog.2006 (contents, props changed) projects/pf/head/crypto/heimdal/LICENSE (contents, props changed) projects/pf/head/crypto/heimdal/Makefile.am projects/pf/head/crypto/heimdal/Makefile.am.common projects/pf/head/crypto/heimdal/Makefile.in projects/pf/head/crypto/heimdal/NEWS (contents, props changed) projects/pf/head/crypto/heimdal/README (contents, props changed) projects/pf/head/crypto/heimdal/acinclude.m4 projects/pf/head/crypto/heimdal/aclocal.m4 projects/pf/head/crypto/heimdal/admin/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/admin/Makefile.am projects/pf/head/crypto/heimdal/admin/Makefile.in projects/pf/head/crypto/heimdal/admin/add.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/change.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/copy.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/get.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/ktutil-commands.in projects/pf/head/crypto/heimdal/admin/ktutil.8 projects/pf/head/crypto/heimdal/admin/ktutil.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/ktutil_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/admin/list.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/purge.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/remove.c (contents, props changed) projects/pf/head/crypto/heimdal/admin/rename.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/Makefile.am projects/pf/head/crypto/heimdal/appl/Makefile.in projects/pf/head/crypto/heimdal/appl/afsutil/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/afsutil/Makefile.am projects/pf/head/crypto/heimdal/appl/afsutil/Makefile.in projects/pf/head/crypto/heimdal/appl/afsutil/afslog.1 projects/pf/head/crypto/heimdal/appl/afsutil/afslog.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/afsutil/pagsh.1 projects/pf/head/crypto/heimdal/appl/afsutil/pagsh.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/Makefile.am projects/pf/head/crypto/heimdal/appl/ftp/Makefile.in projects/pf/head/crypto/heimdal/appl/ftp/common/Makefile.am projects/pf/head/crypto/heimdal/appl/ftp/common/Makefile.in projects/pf/head/crypto/heimdal/appl/ftp/common/buffer.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/common/common.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/common/sockbuf.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/Makefile.am projects/pf/head/crypto/heimdal/appl/ftp/ftp/Makefile.in projects/pf/head/crypto/heimdal/appl/ftp/ftp/cmds.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/cmdtab.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/domacro.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/extern.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/ftp.1 projects/pf/head/crypto/heimdal/appl/ftp/ftp/ftp.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/ftp_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/globals.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/gssapi.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/kauth.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/main.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/ruserpass.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/security.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/security.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/Makefile.am projects/pf/head/crypto/heimdal/appl/ftp/ftpd/Makefile.in projects/pf/head/crypto/heimdal/appl/ftp/ftpd/extern.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ftpcmd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ftpcmd.y (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ftpd.8 projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ftpd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ftpd_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ftpusers.5 projects/pf/head/crypto/heimdal/appl/ftp/ftpd/gss_userok.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/gssapi.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/kauth.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/klist.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/logwtmp.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/ls.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/popen.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/security.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/gssmask/Makefile.am projects/pf/head/crypto/heimdal/appl/gssmask/Makefile.in projects/pf/head/crypto/heimdal/appl/gssmask/common.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/gssmask/common.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/gssmask/gssmaestro.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/gssmask/gssmask.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/gssmask/protocol.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/kf/Makefile.am projects/pf/head/crypto/heimdal/appl/kf/Makefile.in projects/pf/head/crypto/heimdal/appl/kf/kf.1 projects/pf/head/crypto/heimdal/appl/kf/kf.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/kf/kf_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/kf/kfd.8 projects/pf/head/crypto/heimdal/appl/kf/kfd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/Makefile.am projects/pf/head/crypto/heimdal/appl/login/Makefile.in projects/pf/head/crypto/heimdal/appl/login/conf.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/env.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/limits_conf.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/login.1 projects/pf/head/crypto/heimdal/appl/login/login.access.5 projects/pf/head/crypto/heimdal/appl/login/login.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/login_access.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/login_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/loginpaths.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/osfc2.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/read_string.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/shadow.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/stty_default.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/tty.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/utmp_login.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/login/utmpx_login.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/push/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/push/Makefile.am projects/pf/head/crypto/heimdal/appl/push/Makefile.in projects/pf/head/crypto/heimdal/appl/push/pfrom.1 projects/pf/head/crypto/heimdal/appl/push/pfrom.in projects/pf/head/crypto/heimdal/appl/push/push.8 projects/pf/head/crypto/heimdal/appl/push/push.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/push/push_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/rcp/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/rcp/Makefile.am projects/pf/head/crypto/heimdal/appl/rcp/Makefile.in projects/pf/head/crypto/heimdal/appl/rcp/extern.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/rcp/rcp.1 projects/pf/head/crypto/heimdal/appl/rcp/rcp.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/rcp/rcp_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/rcp/util.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/Makefile.am projects/pf/head/crypto/heimdal/appl/rsh/Makefile.in projects/pf/head/crypto/heimdal/appl/rsh/common.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/limits_conf.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/login_access.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/rsh.1 projects/pf/head/crypto/heimdal/appl/rsh/rsh.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/rsh_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/rsh/rshd.8 projects/pf/head/crypto/heimdal/appl/rsh/rshd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/su/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/su/Makefile.am projects/pf/head/crypto/heimdal/appl/su/Makefile.in projects/pf/head/crypto/heimdal/appl/su/su.1 projects/pf/head/crypto/heimdal/appl/su/su.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/su/supaths.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/Makefile.am projects/pf/head/crypto/heimdal/appl/telnet/Makefile.in projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/Makefile.am projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/Makefile.in projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/auth-proto.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/auth.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/auth.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/enc-proto.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/enc_des.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/encrypt.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/encrypt.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/genget.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/misc-proto.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/misc.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/rsaencpwd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/spx.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/Makefile.am projects/pf/head/crypto/heimdal/appl/telnet/telnet/Makefile.in projects/pf/head/crypto/heimdal/appl/telnet/telnet/authenc.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/commands.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/externs.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/main.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/network.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/ring.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/ring.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/sys_bsd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/telnet.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/telnet_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/terminal.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/utilities.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/Makefile.am projects/pf/head/crypto/heimdal/appl/telnet/telnetd/Makefile.in projects/pf/head/crypto/heimdal/appl/telnet/telnetd/authenc.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/defs.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/ext.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/global.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/slc.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/state.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/sys_term.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/telnetd.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/telnetd.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/termstat.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnetd/utility.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/Makefile.am projects/pf/head/crypto/heimdal/appl/test/Makefile.in projects/pf/head/crypto/heimdal/appl/test/common.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/gss_common.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/gss_common.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/gssapi_client.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/gssapi_server.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/http_client.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/nt_gss_client.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/nt_gss_common.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/nt_gss_common.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/nt_gss_server.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/tcp_client.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/tcp_server.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/test_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/uu_client.c (contents, props changed) projects/pf/head/crypto/heimdal/appl/test/uu_server.c (contents, props changed) projects/pf/head/crypto/heimdal/autogen.sh projects/pf/head/crypto/heimdal/compile projects/pf/head/crypto/heimdal/config.guess projects/pf/head/crypto/heimdal/config.sub projects/pf/head/crypto/heimdal/configure projects/pf/head/crypto/heimdal/doc/Makefile.am projects/pf/head/crypto/heimdal/doc/Makefile.in projects/pf/head/crypto/heimdal/doc/ack.texi projects/pf/head/crypto/heimdal/doc/apps.texi projects/pf/head/crypto/heimdal/doc/doxytmpl.dxy projects/pf/head/crypto/heimdal/doc/hcrypto.din projects/pf/head/crypto/heimdal/doc/heimdal.texi projects/pf/head/crypto/heimdal/doc/hx509.din projects/pf/head/crypto/heimdal/doc/hx509.texi projects/pf/head/crypto/heimdal/doc/install.texi projects/pf/head/crypto/heimdal/doc/intro.texi projects/pf/head/crypto/heimdal/doc/kerberos4.texi projects/pf/head/crypto/heimdal/doc/krb5.din projects/pf/head/crypto/heimdal/doc/migration.texi projects/pf/head/crypto/heimdal/doc/misc.texi projects/pf/head/crypto/heimdal/doc/ntlm.din projects/pf/head/crypto/heimdal/doc/programming.texi projects/pf/head/crypto/heimdal/doc/setup.texi projects/pf/head/crypto/heimdal/doc/vars.texi projects/pf/head/crypto/heimdal/doc/whatis.texi projects/pf/head/crypto/heimdal/doc/win2k.texi projects/pf/head/crypto/heimdal/etc/Makefile.am projects/pf/head/crypto/heimdal/etc/Makefile.in projects/pf/head/crypto/heimdal/etc/services.append projects/pf/head/crypto/heimdal/include/Makefile.am projects/pf/head/crypto/heimdal/include/Makefile.in projects/pf/head/crypto/heimdal/include/bits.c (contents, props changed) projects/pf/head/crypto/heimdal/include/config.h.in projects/pf/head/crypto/heimdal/include/gssapi/Makefile.am projects/pf/head/crypto/heimdal/include/gssapi/Makefile.in projects/pf/head/crypto/heimdal/include/hcrypto/Makefile.am projects/pf/head/crypto/heimdal/include/hcrypto/Makefile.in projects/pf/head/crypto/heimdal/include/kadm5/Makefile.am projects/pf/head/crypto/heimdal/include/kadm5/Makefile.in projects/pf/head/crypto/heimdal/install-sh projects/pf/head/crypto/heimdal/kadmin/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/Makefile.am projects/pf/head/crypto/heimdal/kadmin/Makefile.in projects/pf/head/crypto/heimdal/kadmin/add-random-users.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/add_enctype.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/ank.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/check.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/cpw.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/del.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/del_enctype.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/dump.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/ext.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/get.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/init.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/kadm_conn.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/kadmin-commands.in projects/pf/head/crypto/heimdal/kadmin/kadmin.8 projects/pf/head/crypto/heimdal/kadmin/kadmin.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/kadmin_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/kadmind.8 projects/pf/head/crypto/heimdal/kadmin/kadmind.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/load.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/mod.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/pw_quality.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/random_password.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/rename.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/server.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/stash.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/test_util.c (contents, props changed) projects/pf/head/crypto/heimdal/kadmin/util.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/Makefile.am projects/pf/head/crypto/heimdal/kcm/Makefile.in projects/pf/head/crypto/heimdal/kcm/acl.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/acquire.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/cache.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/client.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/config.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/connect.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/events.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/glue.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/headers.h (contents, props changed) projects/pf/head/crypto/heimdal/kcm/kcm.8 projects/pf/head/crypto/heimdal/kcm/kcm_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/kcm/log.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/main.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/protocol.c (contents, props changed) projects/pf/head/crypto/heimdal/kcm/renew.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/Makefile.am projects/pf/head/crypto/heimdal/kdc/Makefile.in projects/pf/head/crypto/heimdal/kdc/config.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/connect.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/default_config.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/digest.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/headers.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/hprop.8 projects/pf/head/crypto/heimdal/kdc/hprop.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/hprop.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/hpropd.8 projects/pf/head/crypto/heimdal/kdc/hpropd.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kdc-private.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kdc-protos.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kdc-replay.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kdc.8 projects/pf/head/crypto/heimdal/kdc/kdc.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kdc_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kerberos5.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/krb5tgs.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kstash.8 projects/pf/head/crypto/heimdal/kdc/kstash.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/kx509.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/log.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/main.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/misc.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/mit_dump.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/pkinit.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/process.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/rx.h (contents, props changed) projects/pf/head/crypto/heimdal/kdc/set_dbinfo.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/string2key.8 projects/pf/head/crypto/heimdal/kdc/string2key.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/version-script.map projects/pf/head/crypto/heimdal/kdc/windc.c (contents, props changed) projects/pf/head/crypto/heimdal/kdc/windc_plugin.h (contents, props changed) projects/pf/head/crypto/heimdal/kpasswd/Makefile.am projects/pf/head/crypto/heimdal/kpasswd/Makefile.in projects/pf/head/crypto/heimdal/kpasswd/kpasswd-generator.c (contents, props changed) projects/pf/head/crypto/heimdal/kpasswd/kpasswd.1 projects/pf/head/crypto/heimdal/kpasswd/kpasswd.c (contents, props changed) projects/pf/head/crypto/heimdal/kpasswd/kpasswd_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/kpasswd/kpasswdd.8 projects/pf/head/crypto/heimdal/kpasswd/kpasswdd.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/Makefile.am projects/pf/head/crypto/heimdal/kuser/Makefile.in projects/pf/head/crypto/heimdal/kuser/copy_cred_cache.1 projects/pf/head/crypto/heimdal/kuser/copy_cred_cache.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/generate-requests.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kdecode_ticket.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kdestroy.1 projects/pf/head/crypto/heimdal/kuser/kdestroy.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kdigest-commands.in projects/pf/head/crypto/heimdal/kuser/kdigest.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kgetcred.1 projects/pf/head/crypto/heimdal/kuser/kgetcred.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kimpersonate.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kinit.1 projects/pf/head/crypto/heimdal/kuser/kinit.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/klist.1 projects/pf/head/crypto/heimdal/kuser/klist.c (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kuser_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/kuser/kverify.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/Makefile.am projects/pf/head/crypto/heimdal/lib/Makefile.in projects/pf/head/crypto/heimdal/lib/asn1/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/Makefile.am projects/pf/head/crypto/heimdal/lib/asn1/Makefile.in projects/pf/head/crypto/heimdal/lib/asn1/asn1-common.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/asn1_err.et projects/pf/head/crypto/heimdal/lib/asn1/asn1_gen.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/asn1_print.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/asn1_queue.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/canthandle.asn1 projects/pf/head/crypto/heimdal/lib/asn1/check-common.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/check-common.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/check-der.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/check-gen.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/check-timegm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der-protos.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_cmp.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_copy.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_format.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_free.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_get.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_length.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/der_put.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/digest.asn1 projects/pf/head/crypto/heimdal/lib/asn1/extra.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_copy.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_decode.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_encode.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_free.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_glue.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_length.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/gen_seq.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/hash.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/hash.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/heim_asn1.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/kx509.asn1 projects/pf/head/crypto/heimdal/lib/asn1/lex.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/lex.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/lex.l projects/pf/head/crypto/heimdal/lib/asn1/main.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/pkcs12.asn1 projects/pf/head/crypto/heimdal/lib/asn1/pkcs8.asn1 projects/pf/head/crypto/heimdal/lib/asn1/pkcs9.asn1 projects/pf/head/crypto/heimdal/lib/asn1/pkinit.asn1 projects/pf/head/crypto/heimdal/lib/asn1/rfc2459.asn1 projects/pf/head/crypto/heimdal/lib/asn1/setchgpw2.asn1 projects/pf/head/crypto/heimdal/lib/asn1/symbol.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/symbol.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/asn1/test.asn1 projects/pf/head/crypto/heimdal/lib/asn1/test.gen projects/pf/head/crypto/heimdal/lib/asn1/timegm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/Makefile.am projects/pf/head/crypto/heimdal/lib/com_err/Makefile.in projects/pf/head/crypto/heimdal/lib/com_err/com_err.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/com_err.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/com_right.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/compile_et.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/compile_et.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/error.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/lex.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/lex.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/lex.l projects/pf/head/crypto/heimdal/lib/com_err/parse.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/parse.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/parse.y projects/pf/head/crypto/heimdal/lib/com_err/roken_rename.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/com_err/version-script.map projects/pf/head/crypto/heimdal/lib/gssapi/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/Makefile.am projects/pf/head/crypto/heimdal/lib/gssapi/Makefile.in projects/pf/head/crypto/heimdal/lib/gssapi/gss-commands.in projects/pf/head/crypto/heimdal/lib/gssapi/gss_acquire_cred.3 projects/pf/head/crypto/heimdal/lib/gssapi/gssapi.3 projects/pf/head/crypto/heimdal/lib/gssapi/gssapi.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/gssapi/gssapi.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/gssapi/gssapi_krb5.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/gssapi/gssapi_spnego.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/gssapi_mech.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/8003.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/accept_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/acquire_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/add_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/address_to_krb5addr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/arcfour.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/canonicalize_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/ccache_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/cfx.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/cfx.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/compare_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/compat.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/context_time.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/copy_ccache.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/decapsulate.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/delete_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/display_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/display_status.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/duplicate_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/encapsulate.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/export_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/export_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/external.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/get_mic.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/gkrb5_err.et projects/pf/head/crypto/heimdal/lib/gssapi/krb5/gsskrb5-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/gsskrb5_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/import_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/import_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/indicate_mechs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/init.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/init_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_cred_by_mech.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_cred_by_oid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_mechs_for_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_names_for_mech.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/inquire_sec_context_by_oid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/prf.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/process_context_token.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/release_buffer.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/release_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/release_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/sequence.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/set_cred_option.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/set_sec_context_option.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/test_cfx.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/ticket_flags.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/unwrap.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/verify_mic.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/krb5/wrap.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/accept_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/acquire_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/add_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/canonicalize_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/compare_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/context_time.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/crypto.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/delete_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/display_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/display_status.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/duplicate_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/export_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/export_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/external.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/import_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/import_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/indicate_mechs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/init_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/inquire_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/inquire_cred_by_mech.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/inquire_mechs_for_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/inquire_names_for_mech.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/ntlm-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/ntlm.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/process_context_token.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/release_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/ntlm/release_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/accept_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/compat.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/context_stubs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/cred_stubs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/external.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/init_sec_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/spnego-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/spnego/spnego.asn1 projects/pf/head/crypto/heimdal/lib/gssapi/spnego/spnego_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_acquire_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_common.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_common.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_kcred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_names.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_ntlm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/test_oid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/gssapi/version-script.map projects/pf/head/crypto/heimdal/lib/hdb/Makefile.am projects/pf/head/crypto/heimdal/lib/hdb/Makefile.in projects/pf/head/crypto/heimdal/lib/hdb/common.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/db.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/db3.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/dbinfo.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/ext.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/hdb-ldap.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/hdb-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/hdb-protos.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/hdb.asn1 projects/pf/head/crypto/heimdal/lib/hdb/hdb.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/hdb.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/hdb.schema projects/pf/head/crypto/heimdal/lib/hdb/hdb_err.et projects/pf/head/crypto/heimdal/lib/hdb/hdb_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/keys.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/keytab.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/mkey.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/ndbm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/print.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hdb/test_dbinfo.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/Makefile.am projects/pf/head/crypto/heimdal/lib/hx509/Makefile.in projects/pf/head/crypto/heimdal/lib/hx509/ca.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/cert.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/cms.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/collector.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/crmf.asn1 projects/pf/head/crypto/heimdal/lib/hx509/crypto.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/doxygen.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/env.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/error.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/file.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/hx509-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/hx509-protos.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/hx509.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/hx509_err.et projects/pf/head/crypto/heimdal/lib/hx509/hx_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/hxtool-commands.in projects/pf/head/crypto/heimdal/lib/hx509/hxtool.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/keyset.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_dir.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_file.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_keychain.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_mem.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_null.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_p11.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ks_p12.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/lock.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/ocsp.asn1 projects/pf/head/crypto/heimdal/lib/hx509/peer.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/pkcs10.asn1 projects/pf/head/crypto/heimdal/lib/hx509/print.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/req.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/revoke.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/softp11.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/test_ca.in projects/pf/head/crypto/heimdal/lib/hx509/test_cert.in projects/pf/head/crypto/heimdal/lib/hx509/test_chain.in projects/pf/head/crypto/heimdal/lib/hx509/test_cms.in projects/pf/head/crypto/heimdal/lib/hx509/test_crypto.in projects/pf/head/crypto/heimdal/lib/hx509/test_java_pkcs11.in projects/pf/head/crypto/heimdal/lib/hx509/test_name.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/test_nist.in projects/pf/head/crypto/heimdal/lib/hx509/test_nist2.in projects/pf/head/crypto/heimdal/lib/hx509/test_nist_cert.in projects/pf/head/crypto/heimdal/lib/hx509/test_nist_pkcs12.in projects/pf/head/crypto/heimdal/lib/hx509/test_pkcs11.in projects/pf/head/crypto/heimdal/lib/hx509/test_query.in projects/pf/head/crypto/heimdal/lib/hx509/test_req.in projects/pf/head/crypto/heimdal/lib/hx509/test_soft_pkcs11.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/hx509/test_windows.in projects/pf/head/crypto/heimdal/lib/hx509/tst-crypto-available2 projects/pf/head/crypto/heimdal/lib/hx509/tst-crypto-select1 projects/pf/head/crypto/heimdal/lib/hx509/tst-crypto-select2 projects/pf/head/crypto/heimdal/lib/hx509/version-script.map projects/pf/head/crypto/heimdal/lib/kadm5/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/Makefile.am projects/pf/head/crypto/heimdal/lib/kadm5/Makefile.in projects/pf/head/crypto/heimdal/lib/kadm5/acl.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/ad.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/admin.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/bump_pw_expire.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/check-cracklib.pl projects/pf/head/crypto/heimdal/lib/kadm5/chpass_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/chpass_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/client_glue.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/common_glue.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/context_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/create_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/create_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/default_keys.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/delete_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/delete_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/destroy_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/destroy_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/ent_setup.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/error.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/flush.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/flush_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/flush_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/free.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/get_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/get_princs_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/get_princs_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/get_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/init_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/init_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/iprop-commands.in projects/pf/head/crypto/heimdal/lib/kadm5/iprop-log.8 projects/pf/head/crypto/heimdal/lib/kadm5/iprop-log.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/iprop.8 projects/pf/head/crypto/heimdal/lib/kadm5/iprop.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/ipropd_common.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/ipropd_master.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/ipropd_slave.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/kadm5-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/kadm5-pwcheck.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/kadm5_err.et projects/pf/head/crypto/heimdal/lib/kadm5/kadm5_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/kadm5_pwcheck.3 projects/pf/head/crypto/heimdal/lib/kadm5/keys.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/log.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/marshall.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/modify_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/modify_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/password_quality.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/privs_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/privs_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/randkey_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/randkey_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/rename_c.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/rename_s.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/sample_passwd_check.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/send_recv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/server_glue.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/set_keys.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/set_modifier.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kadm5/test_pw_quality.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/Makefile.am projects/pf/head/crypto/heimdal/lib/kafs/Makefile.in projects/pf/head/crypto/heimdal/lib/kafs/afskrb5.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/afslib.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/afssys.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/afssysdefs.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/common.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/kafs.3 projects/pf/head/crypto/heimdal/lib/kafs/kafs.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/kafs_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/kafs/roken_rename.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/Makefile.am projects/pf/head/crypto/heimdal/lib/krb5/Makefile.in projects/pf/head/crypto/heimdal/lib/krb5/acache.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/acl.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/add_et_list.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/addr_families.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/aes-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/aname_to_localname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/appdefault.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/asn1_glue.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/auth_context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/build_ap_req.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/build_auth.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/cache.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/changepw.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/codec.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/config_file.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/constants.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/context.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/convert_creds.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/copy_host_realm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/crc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/creds.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/crypto.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/data.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/derived-key-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/digest.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/doxygen.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/eai_to_heim_errno.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/error_string.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/expand_hostname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/fcache.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/free.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/free_host_realm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/generate_seq_number.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/generate_subkey.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_addrs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_default_principal.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_default_realm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_for_creds.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_host_realm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_in_tkt.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/get_port.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/heim_err.et projects/pf/head/crypto/heimdal/lib/krb5/init_creds.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/init_creds_pw.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/k524_err.et projects/pf/head/crypto/heimdal/lib/krb5/kcm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/kcm.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/kerberos.8 projects/pf/head/crypto/heimdal/lib/krb5/keyblock.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/keytab.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/keytab_any.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/keytab_file.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/keytab_keyfile.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/keytab_memory.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5-private.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5-protos.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5-v4compat.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5.conf.5 projects/pf/head/crypto/heimdal/lib/krb5/krb5.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5.moduli projects/pf/head/crypto/heimdal/lib/krb5/krb524_convert_creds_kdc.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_425_conv_principal.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_acl_match_file.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_aname_to_localname.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_appdefault.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_auth_context.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_c_make_checksum.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_ccapi.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5_check_transited.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_create_checksum.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_creds.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_digest.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_eai_to_heim_errno.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_encrypt.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_err.et projects/pf/head/crypto/heimdal/lib/krb5/krb5_find_padata.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_generate_random_block.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_all_client_addrs.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_credentials.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_creds.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_forwarded_creds.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_in_cred.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_init_creds.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_get_krbhst.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_getportbyname.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_init_context.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_is_thread_safe.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_krbhst_init.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krb5_mk_req.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_mk_safe.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_openlog.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_parse_name.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_principal.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_rcache.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_rd_error.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_rd_safe.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_set_default_realm.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_set_password.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_string_to_key.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_timeofday.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_verify_init_creds.3 projects/pf/head/crypto/heimdal/lib/krb5/krb5_verify_user.3 projects/pf/head/crypto/heimdal/lib/krb5/krbhst-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/krbhst.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/kuserok.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/locate_plugin.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/log.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mcache.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/misc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mit_glue.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mk_error.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mk_priv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mk_rep.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mk_req.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mk_req_ext.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/mk_safe.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/n-fold-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/n-fold.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/net_read.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/net_write.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/pac.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/padata.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/parse-name-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/pkinit.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/plugin.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/principal.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/prog_setup.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/prompter_posix.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/rd_cred.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/rd_error.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/rd_priv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/rd_rep.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/rd_req.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/rd_safe.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/read_message.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/recvauth.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/replay.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/send_to_kdc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/sendauth.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/set_default_realm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/sock_principal.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/store-int.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/store-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/store.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/store_emem.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/store_fd.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/store_mem.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/string-to-key-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_acl.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_addr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_alname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_cc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_config.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_crypto.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_crypto_wrapping.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_forward.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_get_addrs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_hostname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_keytab.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_kuserok.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_mem.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_pac.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_pkinit_dh2key.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_plugin.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_prf.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_princ.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_renew.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_store.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/test_time.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/ticket.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/time.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/transited.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/verify_init.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/verify_krb5_conf.8 projects/pf/head/crypto/heimdal/lib/krb5/verify_krb5_conf.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/verify_user.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/version-script.map projects/pf/head/crypto/heimdal/lib/krb5/version.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/warn.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/krb5/write_message.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/ntlm/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/ntlm/Makefile.am projects/pf/head/crypto/heimdal/lib/ntlm/Makefile.in projects/pf/head/crypto/heimdal/lib/ntlm/heimntlm-protos.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/ntlm/heimntlm.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/ntlm/ntlm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/ntlm/test_ntlm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/ntlm/version-script.map projects/pf/head/crypto/heimdal/lib/roken/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/Makefile.am projects/pf/head/crypto/heimdal/lib/roken/Makefile.in projects/pf/head/crypto/heimdal/lib/roken/base64-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/base64.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/base64.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/bswap.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/chown.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/closefrom.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/concat.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/copyhostent.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/daemon.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/dumpdata.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/ecalloc.3 projects/pf/head/crypto/heimdal/lib/roken/ecalloc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/emalloc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/environment.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/eread.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/erealloc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/err.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/err.hin projects/pf/head/crypto/heimdal/lib/roken/errx.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/esetenv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/estrdup.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/ewrite.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/fchown.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/flock.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/fnmatch.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/fnmatch.hin projects/pf/head/crypto/heimdal/lib/roken/freeaddrinfo.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/freehostent.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/gai_strerror.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/get_default_username.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/get_window_size.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getaddrinfo-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getaddrinfo.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getaddrinfo_hostspec.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getarg.3 projects/pf/head/crypto/heimdal/lib/roken/getarg.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getarg.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getcap.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getcwd.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getdtablesize.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getegid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/geteuid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getgid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/gethostname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getifaddrs.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getipnodebyaddr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getipnodebyname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getnameinfo.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getnameinfo_verified.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getopt.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getprogname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/gettimeofday.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getuid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/getusershell.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/glob.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/glob.hin projects/pf/head/crypto/heimdal/lib/roken/h_errno.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/hex-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/hex.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/hex.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/hostent_find_fqdn.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/hstrerror.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/ifaddrs.hin projects/pf/head/crypto/heimdal/lib/roken/inet_aton.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/inet_ntop.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/inet_pton.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/initgroups.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/innetgr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/iruserok.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/issuid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/k_getpwnam.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/k_getpwuid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/localtime_r.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/lstat.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/memmove.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/mini_inetd.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/mkstemp.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/ndbm_wrap.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/ndbm_wrap.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/net_read.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/net_write.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_bytes-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_bytes.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_bytes.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_reply-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_time-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_time.3 projects/pf/head/crypto/heimdal/lib/roken/parse_time.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_time.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_units.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/parse_units.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/putenv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/rcmd.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/readv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/realloc.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/recvmsg.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/resolve-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/resolve.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/resolve.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/roken-common.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/roken.awk projects/pf/head/crypto/heimdal/lib/roken/roken.h.in projects/pf/head/crypto/heimdal/lib/roken/roken_gethostby.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/rtbl.3 projects/pf/head/crypto/heimdal/lib/roken/rtbl.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/rtbl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/sendmsg.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/setegid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/setenv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/seteuid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/setprogname.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/signal.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/simple_exec.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/snprintf-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/snprintf.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/socket.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/socket_wrapper.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/socket_wrapper.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strcasecmp.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strcollect.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strdup.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strerror.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strftime.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strlcat.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strlcpy.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strlwr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strncasecmp.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strndup.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strnlen.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strpftime-test.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strpftime-test.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strpool.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strptime.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strsep.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strsep_copy.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strtok_r.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/strupr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/swab.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/test-mem.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/test-mem.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/test-readenv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/timegm.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/timeval.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/tm2time.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/unsetenv.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/unvis.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/verify.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/verr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/verrx.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/vis.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/vis.hin projects/pf/head/crypto/heimdal/lib/roken/vsyslog.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/vwarn.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/vwarnx.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/warn.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/warnerr.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/warnx.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/write_pid.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/writev.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/roken/xdbm.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/Makefile.am projects/pf/head/crypto/heimdal/lib/sl/Makefile.in projects/pf/head/crypto/heimdal/lib/sl/roken_rename.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/sl.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/sl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/sl_locl.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/slc-gram.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/slc-gram.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/slc-gram.y projects/pf/head/crypto/heimdal/lib/sl/slc-lex.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/slc-lex.l projects/pf/head/crypto/heimdal/lib/sl/slc.h (contents, props changed) projects/pf/head/crypto/heimdal/lib/sl/test_sl.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/vers/ChangeLog (contents, props changed) projects/pf/head/crypto/heimdal/lib/vers/Makefile.am projects/pf/head/crypto/heimdal/lib/vers/Makefile.in projects/pf/head/crypto/heimdal/lib/vers/print_version.c (contents, props changed) projects/pf/head/crypto/heimdal/lib/vers/vers.h (contents, props changed) projects/pf/head/crypto/heimdal/ltmain.sh projects/pf/head/crypto/heimdal/missing projects/pf/head/crypto/heimdal/tools/Makefile.am projects/pf/head/crypto/heimdal/tools/Makefile.in projects/pf/head/crypto/heimdal/tools/heimdal-gssapi.pc.in projects/pf/head/crypto/heimdal/tools/kdc-log-analyze.pl projects/pf/head/crypto/heimdal/tools/krb5-config.1 projects/pf/head/crypto/heimdal/tools/krb5-config.in projects/pf/head/etc/defaults/devfs.rules projects/pf/head/etc/devd/usb.conf projects/pf/head/etc/mtree/BSD.include.dist projects/pf/head/etc/mtree/BSD.usr.dist projects/pf/head/etc/newsyslog.conf projects/pf/head/etc/rc projects/pf/head/etc/rc.shutdown projects/pf/head/etc/root/dot.cshrc projects/pf/head/etc/services projects/pf/head/games/pom/pom.6 projects/pf/head/gnu/lib/libgcc/Makefile projects/pf/head/gnu/lib/libstdc++/Makefile projects/pf/head/gnu/lib/libsupc++/Makefile projects/pf/head/gnu/usr.bin/binutils/Makefile.inc0 projects/pf/head/gnu/usr.bin/binutils/as/Makefile projects/pf/head/gnu/usr.bin/binutils/as/mips-freebsd/itbl-cpu.h projects/pf/head/gnu/usr.bin/cc/Makefile.tgt projects/pf/head/gnu/usr.bin/gdb/Makefile.inc projects/pf/head/gnu/usr.bin/gdb/arch/mips/Makefile projects/pf/head/gnu/usr.bin/gdb/libgdb/Makefile projects/pf/head/include/Makefile projects/pf/head/include/ctype.h projects/pf/head/include/inttypes.h projects/pf/head/include/langinfo.h projects/pf/head/include/monetary.h projects/pf/head/include/stdio.h projects/pf/head/include/stdlib.h projects/pf/head/include/string.h projects/pf/head/include/time.h projects/pf/head/include/wchar.h projects/pf/head/include/xlocale/_ctype.h projects/pf/head/kerberos5/Makefile.inc projects/pf/head/kerberos5/include/config.h projects/pf/head/kerberos5/include/crypto-headers.h projects/pf/head/kerberos5/include/krb5-types.h projects/pf/head/kerberos5/include/version.h projects/pf/head/kerberos5/lib/Makefile projects/pf/head/kerberos5/lib/Makefile.inc projects/pf/head/kerberos5/lib/libasn1/Makefile projects/pf/head/kerberos5/lib/libgssapi_krb5/Makefile projects/pf/head/kerberos5/lib/libgssapi_krb5/gss_krb5.c projects/pf/head/kerberos5/lib/libgssapi_ntlm/Makefile projects/pf/head/kerberos5/lib/libgssapi_ntlm/prefix.c projects/pf/head/kerberos5/lib/libgssapi_spnego/Makefile projects/pf/head/kerberos5/lib/libhdb/Makefile projects/pf/head/kerberos5/lib/libheimntlm/Makefile projects/pf/head/kerberos5/lib/libhx509/Makefile projects/pf/head/kerberos5/lib/libkadm5clnt/Makefile projects/pf/head/kerberos5/lib/libkadm5srv/Makefile projects/pf/head/kerberos5/lib/libkafs5/Makefile projects/pf/head/kerberos5/lib/libkrb5/Makefile projects/pf/head/kerberos5/lib/libroken/Makefile projects/pf/head/kerberos5/lib/libvers/Makefile projects/pf/head/kerberos5/libexec/Makefile projects/pf/head/kerberos5/libexec/hprop/Makefile projects/pf/head/kerberos5/libexec/ipropd-master/Makefile projects/pf/head/kerberos5/libexec/kadmind/Makefile projects/pf/head/kerberos5/libexec/kcm/Makefile projects/pf/head/kerberos5/libexec/kdc/Makefile projects/pf/head/kerberos5/tools/Makefile projects/pf/head/kerberos5/tools/Makefile.inc projects/pf/head/kerberos5/tools/asn1_compile/Makefile projects/pf/head/kerberos5/tools/make-roken/Makefile projects/pf/head/kerberos5/tools/slc/Makefile projects/pf/head/kerberos5/usr.bin/Makefile projects/pf/head/kerberos5/usr.bin/kadmin/Makefile projects/pf/head/kerberos5/usr.bin/kdestroy/Makefile projects/pf/head/kerberos5/usr.bin/kinit/Makefile projects/pf/head/kerberos5/usr.bin/krb5-config/Makefile projects/pf/head/kerberos5/usr.sbin/Makefile projects/pf/head/kerberos5/usr.sbin/kstash/Makefile projects/pf/head/kerberos5/usr.sbin/ktutil/Makefile projects/pf/head/lib/Makefile projects/pf/head/lib/csu/Makefile.inc projects/pf/head/lib/csu/amd64/Makefile projects/pf/head/lib/csu/amd64/crt1.c projects/pf/head/lib/csu/arm/Makefile projects/pf/head/lib/csu/arm/crt1.c projects/pf/head/lib/csu/common/crtbrand.c projects/pf/head/lib/csu/i386-elf/Makefile projects/pf/head/lib/csu/i386-elf/crt1_c.c projects/pf/head/lib/csu/mips/Makefile projects/pf/head/lib/csu/mips/crt1.c projects/pf/head/lib/csu/powerpc/Makefile projects/pf/head/lib/csu/powerpc/crt1.c projects/pf/head/lib/csu/powerpc64/Makefile projects/pf/head/lib/csu/powerpc64/crt1.c projects/pf/head/lib/csu/sparc64/crt1.c projects/pf/head/lib/libarchive/Makefile projects/pf/head/lib/libbluetooth/bluetooth.3 projects/pf/head/lib/libc++/Makefile projects/pf/head/lib/libc/arm/gen/_set_tp.c projects/pf/head/lib/libc/compat-43/killpg.2 projects/pf/head/lib/libc/gen/fstab.c projects/pf/head/lib/libc/gen/fts.3 projects/pf/head/lib/libc/gen/getpagesizes.3 projects/pf/head/lib/libc/gen/getutxent.c projects/pf/head/lib/libc/gen/psignal.3 projects/pf/head/lib/libc/gen/sysconf.3 projects/pf/head/lib/libc/gen/utxdb.c projects/pf/head/lib/libc/i386/sys/i386_get_ioperm.2 projects/pf/head/lib/libc/i386/sys/i386_set_watch.3 projects/pf/head/lib/libc/i386/sys/i386_vm86.2 projects/pf/head/lib/libc/iconv/iconv.3 projects/pf/head/lib/libc/iconv/iconvctl.3 projects/pf/head/lib/libc/iconv/iconvlist.3 projects/pf/head/lib/libc/locale/Makefile.inc projects/pf/head/lib/libc/locale/Symbol.map projects/pf/head/lib/libc/locale/btowc.3 projects/pf/head/lib/libc/locale/ctype.3 projects/pf/head/lib/libc/locale/digittoint.3 projects/pf/head/lib/libc/locale/duplocale.3 projects/pf/head/lib/libc/locale/isalnum.3 projects/pf/head/lib/libc/locale/isalpha.3 projects/pf/head/lib/libc/locale/isblank.3 projects/pf/head/lib/libc/locale/iscntrl.3 projects/pf/head/lib/libc/locale/isdigit.3 projects/pf/head/lib/libc/locale/isgraph.3 projects/pf/head/lib/libc/locale/islower.3 projects/pf/head/lib/libc/locale/isprint.3 projects/pf/head/lib/libc/locale/ispunct.3 projects/pf/head/lib/libc/locale/isspace.3 projects/pf/head/lib/libc/locale/isupper.3 projects/pf/head/lib/libc/locale/isxdigit.3 projects/pf/head/lib/libc/locale/newlocale.3 projects/pf/head/lib/libc/locale/xlocale.3 projects/pf/head/lib/libc/locale/xlocale_private.h projects/pf/head/lib/libc/net/getaddrinfo.c projects/pf/head/lib/libc/net/getipnodebyname.3 projects/pf/head/lib/libc/net/getnameinfo.3 projects/pf/head/lib/libc/net/inet_net.3 projects/pf/head/lib/libc/net/name6.c projects/pf/head/lib/libc/net/nsdispatch.3 projects/pf/head/lib/libc/net/sctp_bindx.3 projects/pf/head/lib/libc/net/sctp_connectx.3 projects/pf/head/lib/libc/net/sctp_freepaddrs.3 projects/pf/head/lib/libc/net/sctp_getaddrlen.3 projects/pf/head/lib/libc/net/sctp_getassocid.3 projects/pf/head/lib/libc/net/sctp_getpaddrs.3 projects/pf/head/lib/libc/net/sctp_opt_info.3 projects/pf/head/lib/libc/net/sctp_recvmsg.3 projects/pf/head/lib/libc/net/sctp_send.3 projects/pf/head/lib/libc/net/sctp_sendmsg.3 projects/pf/head/lib/libc/net/sourcefilter.3 projects/pf/head/lib/libc/posix1e/acl_add_flag_np.3 projects/pf/head/lib/libc/posix1e/acl_add_perm.3 projects/pf/head/lib/libc/posix1e/acl_create_entry.3 projects/pf/head/lib/libc/posix1e/acl_set_entry_type_np.3 projects/pf/head/lib/libc/posix1e/acl_set_tag_type.3 projects/pf/head/lib/libc/posix1e/acl_to_text.3 projects/pf/head/lib/libc/rpc/rpc_soc.3 projects/pf/head/lib/libc/stdio/getline.3 projects/pf/head/lib/libc/stdlib/at_quick_exit.3 projects/pf/head/lib/libc/stdlib/getenv.3 projects/pf/head/lib/libc/string/memchr.3 projects/pf/head/lib/libc/string/strerror.c projects/pf/head/lib/libc/sys/cap_new.2 projects/pf/head/lib/libc/sys/cpuset.2 projects/pf/head/lib/libc/sys/cpuset_getaffinity.2 projects/pf/head/lib/libc/sys/jail.2 projects/pf/head/lib/libc/sys/kill.2 projects/pf/head/lib/libc/sys/kldstat.2 projects/pf/head/lib/libc/sys/kqueue.2 projects/pf/head/lib/libc/sys/kse.2 projects/pf/head/lib/libc/sys/ktrace.2 projects/pf/head/lib/libc/sys/mmap.2 projects/pf/head/lib/libc/sys/msync.2 projects/pf/head/lib/libc/sys/pathconf.2 projects/pf/head/lib/libc/sys/posix_fadvise.2 projects/pf/head/lib/libc/sys/posix_fallocate.2 projects/pf/head/lib/libc/sys/ptrace.2 projects/pf/head/lib/libc/sys/quotactl.2 projects/pf/head/lib/libc/sys/sctp_generic_sendmsg.2 projects/pf/head/lib/libc/sys/sctp_peeloff.2 projects/pf/head/lib/libc/sys/select.2 projects/pf/head/lib/libc/sys/sendfile.2 projects/pf/head/lib/libc/sys/setfib.2 projects/pf/head/lib/libc/sys/shm_open.2 projects/pf/head/lib/libc/sys/sigqueue.2 projects/pf/head/lib/libcom_err/Makefile projects/pf/head/lib/libcrypt/crypt.3 projects/pf/head/lib/libcxxrt/Makefile projects/pf/head/lib/libelf/elf.3 projects/pf/head/lib/libelf/elf_getdata.3 projects/pf/head/lib/libelf/elf_getphdrnum.3 projects/pf/head/lib/libelf/elf_getphnum.3 projects/pf/head/lib/libelf/elf_getshdrnum.3 projects/pf/head/lib/libelf/elf_getshdrstrndx.3 projects/pf/head/lib/libelf/elf_getshnum.3 projects/pf/head/lib/libelf/elf_getshstrndx.3 projects/pf/head/lib/libelf/libelf_data.c projects/pf/head/lib/libfetch/fetch.3 projects/pf/head/lib/libgeom/geom_xml2tree.c projects/pf/head/lib/libgeom/libgeom.h projects/pf/head/lib/libgpib/gpib.3 projects/pf/head/lib/libgssapi/Symbol.map projects/pf/head/lib/libgssapi/gss_accept_sec_context.3 projects/pf/head/lib/libgssapi/gss_display_status.c projects/pf/head/lib/libgssapi/gss_release_buffer.3 projects/pf/head/lib/libgssapi/gss_release_oid_set.3 projects/pf/head/lib/libgssapi/mech.5 projects/pf/head/lib/libgssapi/mech_switch.h projects/pf/head/lib/libpam/modules/pam_exec/pam_exec.8 projects/pf/head/lib/libpam/modules/pam_exec/pam_exec.c projects/pf/head/lib/libpam/modules/pam_krb5/pam_krb5.c projects/pf/head/lib/libpam/modules/pam_ksu/pam_ksu.c projects/pf/head/lib/libpam/modules/pam_nologin/pam_nologin.8 projects/pf/head/lib/libpmc/Makefile projects/pf/head/lib/libpmc/libpmc.c projects/pf/head/lib/libpmc/pmc.3 projects/pf/head/lib/libpmc/pmc.atom.3 projects/pf/head/lib/libpmc/pmc.core.3 projects/pf/head/lib/libpmc/pmc.core2.3 projects/pf/head/lib/libpmc/pmc.corei7.3 projects/pf/head/lib/libpmc/pmc.corei7uc.3 projects/pf/head/lib/libpmc/pmc.h projects/pf/head/lib/libpmc/pmc.iaf.3 projects/pf/head/lib/libpmc/pmc.k7.3 projects/pf/head/lib/libpmc/pmc.k8.3 projects/pf/head/lib/libpmc/pmc.p4.3 projects/pf/head/lib/libpmc/pmc.p5.3 projects/pf/head/lib/libpmc/pmc.p6.3 projects/pf/head/lib/libpmc/pmc.sandybridge.3 projects/pf/head/lib/libpmc/pmc.sandybridgeuc.3 projects/pf/head/lib/libpmc/pmc.tsc.3 projects/pf/head/lib/libpmc/pmc.ucf.3 projects/pf/head/lib/libpmc/pmc.westmere.3 projects/pf/head/lib/libpmc/pmc.westmereuc.3 projects/pf/head/lib/libpmc/pmc.xscale.3 projects/pf/head/lib/libpmc/pmc_capabilities.3 projects/pf/head/lib/libpmc/pmclog.c projects/pf/head/lib/libpmc/pmclog.h projects/pf/head/lib/libproc/proc_bkpt.c projects/pf/head/lib/libproc/proc_regs.c projects/pf/head/lib/libprocstat/Symbol.map projects/pf/head/lib/libprocstat/Versions.def projects/pf/head/lib/libprocstat/libprocstat.3 projects/pf/head/lib/libprocstat/libprocstat.c projects/pf/head/lib/libprocstat/libprocstat.h projects/pf/head/lib/librpcsec_gss/rpc_gss_seccreate.3 projects/pf/head/lib/librt/sigev_thread.c projects/pf/head/lib/librt/sigev_thread.h projects/pf/head/lib/libtacplus/libtacplus.3 projects/pf/head/lib/libtelnet/Makefile projects/pf/head/lib/libthr/thread/thr_barrier.c projects/pf/head/lib/libthr/thread/thr_private.h projects/pf/head/lib/libthr/thread/thr_sig.c projects/pf/head/lib/libthr/thread/thr_umtx.c projects/pf/head/lib/libulog/utempter_add_record.3 projects/pf/head/lib/libusb/libusb.3 projects/pf/head/lib/libusb/libusb20.3 projects/pf/head/lib/libutil/kinfo_getallproc.3 projects/pf/head/lib/libutil/kinfo_getproc.3 projects/pf/head/lib/libutil/login.conf.5 projects/pf/head/lib/libutil/login_cap.3 projects/pf/head/lib/libutil/quotafile.3 projects/pf/head/lib/msun/man/ieee.3 projects/pf/head/libexec/bootpd/bootpd.8 projects/pf/head/libexec/getty/gettytab.5 projects/pf/head/libexec/rtld-elf/Makefile projects/pf/head/libexec/rtld-elf/amd64/reloc.c projects/pf/head/libexec/rtld-elf/amd64/rtld_machdep.h projects/pf/head/libexec/rtld-elf/arm/reloc.c projects/pf/head/libexec/rtld-elf/arm/rtld_machdep.h projects/pf/head/libexec/rtld-elf/i386/reloc.c projects/pf/head/libexec/rtld-elf/i386/rtld_machdep.h projects/pf/head/libexec/rtld-elf/ia64/reloc.c projects/pf/head/libexec/rtld-elf/ia64/rtld_machdep.h projects/pf/head/libexec/rtld-elf/libmap.c projects/pf/head/libexec/rtld-elf/malloc.c projects/pf/head/libexec/rtld-elf/map_object.c projects/pf/head/libexec/rtld-elf/mips/reloc.c projects/pf/head/libexec/rtld-elf/mips/rtld_machdep.h projects/pf/head/libexec/rtld-elf/mips/rtld_start.S projects/pf/head/libexec/rtld-elf/powerpc/reloc.c projects/pf/head/libexec/rtld-elf/powerpc/rtld_machdep.h projects/pf/head/libexec/rtld-elf/powerpc64/reloc.c projects/pf/head/libexec/rtld-elf/powerpc64/rtld_machdep.h projects/pf/head/libexec/rtld-elf/rtld.c projects/pf/head/libexec/rtld-elf/rtld.h projects/pf/head/libexec/rtld-elf/rtld_printf.c projects/pf/head/libexec/rtld-elf/sparc64/reloc.c projects/pf/head/libexec/rtld-elf/sparc64/rtld_machdep.h projects/pf/head/libexec/rtld-elf/xmalloc.c projects/pf/head/libexec/tftpd/tftpd.8 projects/pf/head/release/Makefile projects/pf/head/sbin/adjkerntz/adjkerntz.8 projects/pf/head/sbin/camcontrol/camcontrol.8 projects/pf/head/sbin/devfs/devfs.8 projects/pf/head/sbin/fsdb/Makefile projects/pf/head/sbin/fsdb/fsdbutil.c projects/pf/head/sbin/geom/class/eli/geli.8 projects/pf/head/sbin/geom/class/multipath/gmultipath.8 projects/pf/head/sbin/geom/class/part/gpart.8 projects/pf/head/sbin/geom/class/sched/gsched.8 projects/pf/head/sbin/growfs/growfs.c projects/pf/head/sbin/gvinum/gvinum.8 projects/pf/head/sbin/hastd/hastd.c projects/pf/head/sbin/hastd/nv.c projects/pf/head/sbin/ifconfig/ifconfig.8 projects/pf/head/sbin/ifconfig/ifieee80211.c projects/pf/head/sbin/init/init.8 projects/pf/head/sbin/init/init.c projects/pf/head/sbin/init/pathnames.h projects/pf/head/sbin/ipfw/ipfw.8 projects/pf/head/sbin/ipfw/ipfw2.c projects/pf/head/sbin/kldload/kldload.8 projects/pf/head/sbin/kldload/kldload.c projects/pf/head/sbin/mdconfig/mdconfig.c projects/pf/head/sbin/mdmfs/mdmfs.8 projects/pf/head/sbin/mount_unionfs/mount_unionfs.8 projects/pf/head/sbin/ping6/ping6.8 projects/pf/head/sbin/quotacheck/quotacheck.8 projects/pf/head/sbin/rcorder/rcorder.8 projects/pf/head/sbin/route/route.8 projects/pf/head/sbin/setkey/setkey.8 projects/pf/head/sbin/sysctl/sysctl.8 projects/pf/head/secure/usr.bin/ssh/Makefile projects/pf/head/secure/usr.sbin/sshd/Makefile projects/pf/head/share/examples/Makefile projects/pf/head/share/examples/cvsup/cvs-supfile projects/pf/head/share/examples/cvsup/doc-supfile projects/pf/head/share/examples/cvsup/gnats-supfile projects/pf/head/share/examples/cvsup/ports-supfile projects/pf/head/share/examples/cvsup/stable-supfile projects/pf/head/share/examples/cvsup/standard-supfile projects/pf/head/share/examples/cvsup/www-supfile projects/pf/head/share/man/man3/pthread_attr_affinity_np.3 projects/pf/head/share/man/man3/pthread_cond_destroy.3 projects/pf/head/share/man/man3/pthread_cond_timedwait.3 projects/pf/head/share/man/man3/pthread_cond_wait.3 projects/pf/head/share/man/man4/acpi.4 projects/pf/head/share/man/man4/acpi_hp.4 projects/pf/head/share/man/man4/acpi_wmi.4 projects/pf/head/share/man/man4/ada.4 projects/pf/head/share/man/man4/adv.4 projects/pf/head/share/man/man4/ahc.4 projects/pf/head/share/man/man4/aibs.4 projects/pf/head/share/man/man4/amdsmb.4 projects/pf/head/share/man/man4/ath.4 projects/pf/head/share/man/man4/atkbd.4 projects/pf/head/share/man/man4/atp.4 projects/pf/head/share/man/man4/bce.4 projects/pf/head/share/man/man4/bridge.4 projects/pf/head/share/man/man4/carp.4 projects/pf/head/share/man/man4/cas.4 projects/pf/head/share/man/man4/cc_vegas.4 projects/pf/head/share/man/man4/cd.4 projects/pf/head/share/man/man4/coda.4 projects/pf/head/share/man/man4/cy.4 projects/pf/head/share/man/man4/dpms.4 projects/pf/head/share/man/man4/ed.4 projects/pf/head/share/man/man4/em.4 projects/pf/head/share/man/man4/epair.4 projects/pf/head/share/man/man4/eventtimers.4 projects/pf/head/share/man/man4/fdc.4 projects/pf/head/share/man/man4/fwohci.4 projects/pf/head/share/man/man4/gem.4 projects/pf/head/share/man/man4/geom_fox.4 projects/pf/head/share/man/man4/geom_uzip.4 projects/pf/head/share/man/man4/gre.4 projects/pf/head/share/man/man4/hptiop.4 projects/pf/head/share/man/man4/igb.4 projects/pf/head/share/man/man4/ip.4 projects/pf/head/share/man/man4/ipmi.4 projects/pf/head/share/man/man4/ipw.4 projects/pf/head/share/man/man4/isci.4 projects/pf/head/share/man/man4/iscsi_initiator.4 projects/pf/head/share/man/man4/isp.4 projects/pf/head/share/man/man4/iwi.4 projects/pf/head/share/man/man4/iwn.4 projects/pf/head/share/man/man4/iwnfw.4 projects/pf/head/share/man/man4/ixgbe.4 projects/pf/head/share/man/man4/ksyms.4 projects/pf/head/share/man/man4/ktr.4 projects/pf/head/share/man/man4/lmc.4 projects/pf/head/share/man/man4/man4.i386/glxsb.4 projects/pf/head/share/man/man4/man4.powerpc/abtn.4 projects/pf/head/share/man/man4/man4.powerpc/akbd.4 projects/pf/head/share/man/man4/man4.powerpc/bm.4 projects/pf/head/share/man/man4/man4.powerpc/cuda.4 projects/pf/head/share/man/man4/man4.powerpc/smu.4 projects/pf/head/share/man/man4/man4.powerpc/snd_ai2s.4 projects/pf/head/share/man/man4/man4.powerpc/snd_davbus.4 projects/pf/head/share/man/man4/md.4 projects/pf/head/share/man/man4/mld.4 projects/pf/head/share/man/man4/mmc.4 projects/pf/head/share/man/man4/mos.4 projects/pf/head/share/man/man4/mps.4 projects/pf/head/share/man/man4/mwl.4 projects/pf/head/share/man/man4/net80211.4 projects/pf/head/share/man/man4/netmap.4 projects/pf/head/share/man/man4/ng_car.4 projects/pf/head/share/man/man4/ng_deflate.4 projects/pf/head/share/man/man4/ng_nat.4 projects/pf/head/share/man/man4/ng_netflow.4 projects/pf/head/share/man/man4/ng_patch.4 projects/pf/head/share/man/man4/ng_ppp.4 projects/pf/head/share/man/man4/ng_pred1.4 projects/pf/head/share/man/man4/ng_tty.4 projects/pf/head/share/man/man4/nvram2env.4 projects/pf/head/share/man/man4/nxge.4 projects/pf/head/share/man/man4/oce.4 projects/pf/head/share/man/man4/pcm.4 projects/pf/head/share/man/man4/ppbus.4 projects/pf/head/share/man/man4/psm.4 projects/pf/head/share/man/man4/pts.4 projects/pf/head/share/man/man4/ral.4 projects/pf/head/share/man/man4/run.4 projects/pf/head/share/man/man4/runfw.4 projects/pf/head/share/man/man4/sfxge.4 projects/pf/head/share/man/man4/siftr.4 projects/pf/head/share/man/man4/smp.4 projects/pf/head/share/man/man4/snd_emu10kx.4 projects/pf/head/share/man/man4/snd_hda.4 projects/pf/head/share/man/man4/snd_ich.4 projects/pf/head/share/man/man4/syscons.4 projects/pf/head/share/man/man4/tcp.4 projects/pf/head/share/man/man4/tpm.4 projects/pf/head/share/man/man4/u3g.4 projects/pf/head/share/man/man4/uark.4 projects/pf/head/share/man/man4/uath.4 projects/pf/head/share/man/man4/ufoma.4 projects/pf/head/share/man/man4/uipaq.4 projects/pf/head/share/man/man4/ulpt.4 projects/pf/head/share/man/man4/umcs.4 projects/pf/head/share/man/man4/upgt.4 projects/pf/head/share/man/man4/vge.4 projects/pf/head/share/man/man4/virtio.4 projects/pf/head/share/man/man4/vxge.4 projects/pf/head/share/man/man4/wbwd.4 projects/pf/head/share/man/man4/wi.4 projects/pf/head/share/man/man4/wlan_acl.4 projects/pf/head/share/man/man4/wlan_amrr.4 projects/pf/head/share/man/man4/wpi.4 projects/pf/head/share/man/man4/xen.4 projects/pf/head/share/man/man4/xnb.4 projects/pf/head/share/man/man5/ar.5 projects/pf/head/share/man/man5/fdescfs.5 projects/pf/head/share/man/man5/fs.5 projects/pf/head/share/man/man5/fstab.5 projects/pf/head/share/man/man5/nsmb.conf.5 projects/pf/head/share/man/man5/quota.user.5 projects/pf/head/share/man/man5/services.5 projects/pf/head/share/man/man5/src.conf.5 projects/pf/head/share/man/man5/style.Makefile.5 projects/pf/head/share/man/man7/mailaddr.7 projects/pf/head/share/man/man7/operator.7 projects/pf/head/share/man/man7/release.7 projects/pf/head/share/man/man8/picobsd.8 projects/pf/head/share/man/man9/BUS_DESCRIBE_INTR.9 projects/pf/head/share/man/man9/BUS_SETUP_INTR.9 projects/pf/head/share/man/man9/DB_COMMAND.9 projects/pf/head/share/man/man9/DEVICE_PROBE.9 projects/pf/head/share/man/man9/Makefile projects/pf/head/share/man/man9/SYSINIT.9 projects/pf/head/share/man/man9/buf_ring.9 projects/pf/head/share/man/man9/condvar.9 projects/pf/head/share/man/man9/crypto.9 projects/pf/head/share/man/man9/devclass_get_maxunit.9 projects/pf/head/share/man/man9/device_get_children.9 projects/pf/head/share/man/man9/drbr.9 projects/pf/head/share/man/man9/eventtimers.9 projects/pf/head/share/man/man9/fail.9 projects/pf/head/share/man/man9/firmware.9 projects/pf/head/share/man/man9/ieee80211.9 projects/pf/head/share/man/man9/ieee80211_amrr.9 projects/pf/head/share/man/man9/ieee80211_bmiss.9 projects/pf/head/share/man/man9/ieee80211_crypto.9 projects/pf/head/share/man/man9/ieee80211_input.9 projects/pf/head/share/man/man9/ieee80211_node.9 projects/pf/head/share/man/man9/ieee80211_output.9 projects/pf/head/share/man/man9/ieee80211_proto.9 projects/pf/head/share/man/man9/ieee80211_radiotap.9 projects/pf/head/share/man/man9/ieee80211_regdomain.9 projects/pf/head/share/man/man9/ieee80211_scan.9 projects/pf/head/share/man/man9/ieee80211_vap.9 projects/pf/head/share/man/man9/ifnet.9 projects/pf/head/share/man/man9/kproc.9 projects/pf/head/share/man/man9/kqueue.9 projects/pf/head/share/man/man9/kthread.9 projects/pf/head/share/man/man9/lock.9 projects/pf/head/share/man/man9/locking.9 projects/pf/head/share/man/man9/make_dev.9 projects/pf/head/share/man/man9/malloc.9 projects/pf/head/share/man/man9/mi_switch.9 projects/pf/head/share/man/man9/osd.9 projects/pf/head/share/man/man9/rmlock.9 projects/pf/head/share/man/man9/shm_map.9 projects/pf/head/share/man/man9/sleep.9 projects/pf/head/share/man/man9/spl.9 projects/pf/head/share/man/man9/sysctl_ctx_init.9 projects/pf/head/share/man/man9/taskqueue.9 projects/pf/head/share/man/man9/timeout.9 projects/pf/head/share/man/man9/usbdi.9 projects/pf/head/share/man/man9/vm_map_find.9 projects/pf/head/share/man/man9/watchdog.9 projects/pf/head/share/mk/bsd.endian.mk projects/pf/head/share/mk/bsd.libnames.mk projects/pf/head/share/mk/bsd.sys.mk projects/pf/head/share/mk/sys.mk projects/pf/head/share/termcap/termcap.5 projects/pf/head/sys/Makefile projects/pf/head/sys/amd64/acpica/acpi_wakeup.c projects/pf/head/sys/amd64/amd64/initcpu.c projects/pf/head/sys/amd64/amd64/mp_machdep.c projects/pf/head/sys/amd64/amd64/pmap.c projects/pf/head/sys/amd64/amd64/trap.c projects/pf/head/sys/amd64/conf/GENERIC projects/pf/head/sys/amd64/conf/NOTES projects/pf/head/sys/amd64/ia32/ia32_reg.c projects/pf/head/sys/amd64/include/fpu.h projects/pf/head/sys/amd64/include/pmc_mdep.h projects/pf/head/sys/amd64/include/proc.h projects/pf/head/sys/amd64/include/psl.h projects/pf/head/sys/amd64/include/reg.h projects/pf/head/sys/amd64/include/segments.h projects/pf/head/sys/amd64/include/specialreg.h projects/pf/head/sys/amd64/include/sysarch.h projects/pf/head/sys/amd64/include/vm.h projects/pf/head/sys/amd64/linux32/linux32_dummy.c projects/pf/head/sys/amd64/linux32/linux32_proto.h projects/pf/head/sys/amd64/linux32/linux32_syscall.h projects/pf/head/sys/amd64/linux32/linux32_syscalls.c projects/pf/head/sys/amd64/linux32/linux32_sysent.c projects/pf/head/sys/amd64/linux32/linux32_systrace_args.c projects/pf/head/sys/amd64/linux32/syscalls.master projects/pf/head/sys/arm/conf/AVILA projects/pf/head/sys/arm/conf/BWCT projects/pf/head/sys/arm/conf/CAMBRIA projects/pf/head/sys/arm/conf/CNS11XXNAS projects/pf/head/sys/arm/conf/CRB projects/pf/head/sys/arm/conf/DB-78XXX projects/pf/head/sys/arm/conf/DB-88F5XXX projects/pf/head/sys/arm/conf/DB-88F6XXX projects/pf/head/sys/arm/conf/DOCKSTAR projects/pf/head/sys/arm/conf/EP80219 projects/pf/head/sys/arm/conf/GUMSTIX projects/pf/head/sys/arm/conf/HL200 projects/pf/head/sys/arm/conf/HL201 projects/pf/head/sys/arm/conf/IQ31244 projects/pf/head/sys/arm/conf/KB920X projects/pf/head/sys/arm/conf/LN2410SBC projects/pf/head/sys/arm/conf/NSLU projects/pf/head/sys/arm/conf/QILA9G20 projects/pf/head/sys/arm/conf/SAM9G20EK projects/pf/head/sys/arm/conf/SHEEVAPLUG projects/pf/head/sys/arm/conf/TS7800 projects/pf/head/sys/arm/include/pmc_mdep.h projects/pf/head/sys/arm/mv/common.c projects/pf/head/sys/boot/common/crc32.c projects/pf/head/sys/boot/common/loader.8 projects/pf/head/sys/boot/common/ufsread.c projects/pf/head/sys/boot/fdt/fdt_loader_cmd.c projects/pf/head/sys/boot/forth/loader.conf.5 projects/pf/head/sys/boot/i386/boot2/boot2.c projects/pf/head/sys/boot/pc98/boot2/boot2.c projects/pf/head/sys/boot/powerpc/ps3/start.S projects/pf/head/sys/boot/uboot/common/metadata.c projects/pf/head/sys/boot/uboot/lib/Makefile projects/pf/head/sys/boot/uboot/lib/glue.c projects/pf/head/sys/cam/scsi/scsi_da.c projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/pf/head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/pf/head/sys/cddl/dev/dtrace/dtrace_ioctl.c projects/pf/head/sys/cddl/dev/lockstat/lockstat.c projects/pf/head/sys/cddl/dev/profile/profile.c projects/pf/head/sys/cddl/dev/sdt/sdt.c projects/pf/head/sys/compat/ia32/ia32_sysvec.c projects/pf/head/sys/conf/Makefile.mips projects/pf/head/sys/conf/NOTES projects/pf/head/sys/conf/files projects/pf/head/sys/conf/files.amd64 projects/pf/head/sys/conf/files.arm projects/pf/head/sys/conf/files.i386 projects/pf/head/sys/conf/files.ia64 projects/pf/head/sys/conf/files.mips projects/pf/head/sys/conf/files.pc98 projects/pf/head/sys/conf/files.powerpc projects/pf/head/sys/conf/files.sparc64 projects/pf/head/sys/conf/kern.mk projects/pf/head/sys/conf/kern.post.mk projects/pf/head/sys/conf/kern.pre.mk projects/pf/head/sys/conf/kmod.mk projects/pf/head/sys/conf/options projects/pf/head/sys/conf/options.amd64 projects/pf/head/sys/conf/options.i386 projects/pf/head/sys/conf/options.mips projects/pf/head/sys/contrib/dev/acpica/acpica_prep.sh projects/pf/head/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/pf/head/sys/contrib/dev/acpica/common/adisasm.c projects/pf/head/sys/contrib/dev/acpica/common/getopt.c projects/pf/head/sys/contrib/dev/acpica/compiler/aslcodegen.c projects/pf/head/sys/contrib/dev/acpica/compiler/aslcompile.c projects/pf/head/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/pf/head/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/pf/head/sys/contrib/dev/acpica/compiler/aslerror.c projects/pf/head/sys/contrib/dev/acpica/compiler/aslfiles.c projects/pf/head/sys/contrib/dev/acpica/compiler/aslglobal.h projects/pf/head/sys/contrib/dev/acpica/compiler/aslmain.c projects/pf/head/sys/contrib/dev/acpica/compiler/aslmessages.h projects/pf/head/sys/contrib/dev/acpica/compiler/aslstartup.c projects/pf/head/sys/contrib/dev/acpica/compiler/asltypes.h projects/pf/head/sys/contrib/dev/acpica/compiler/aslutils.c projects/pf/head/sys/contrib/dev/acpica/compiler/dtcompile.c projects/pf/head/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/pf/head/sys/contrib/dev/acpica/compiler/dtexpress.c projects/pf/head/sys/contrib/dev/acpica/compiler/dtio.c projects/pf/head/sys/contrib/dev/acpica/compiler/dtparser.y projects/pf/head/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/pf/head/sys/contrib/dev/acpica/components/hardware/hwesleep.c projects/pf/head/sys/contrib/dev/acpica/components/hardware/hwsleep.c projects/pf/head/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/pf/head/sys/contrib/dev/acpica/components/namespace/nsdump.c projects/pf/head/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c projects/pf/head/sys/contrib/dev/acpica/components/namespace/nspredef.c projects/pf/head/sys/contrib/dev/acpica/components/namespace/nsrepair.c projects/pf/head/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/pf/head/sys/contrib/dev/acpica/components/parser/psargs.c projects/pf/head/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/pf/head/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/pf/head/sys/contrib/dev/acpica/components/tables/tbutils.c projects/pf/head/sys/contrib/dev/acpica/include/achware.h projects/pf/head/sys/contrib/dev/acpica/include/aclocal.h projects/pf/head/sys/contrib/dev/acpica/include/acnames.h projects/pf/head/sys/contrib/dev/acpica/include/acnamesp.h projects/pf/head/sys/contrib/dev/acpica/include/acoutput.h projects/pf/head/sys/contrib/dev/acpica/include/acpixf.h projects/pf/head/sys/contrib/dev/acpica/include/actypes.h projects/pf/head/sys/contrib/dev/ral/Makefile projects/pf/head/sys/contrib/dev/ral/rt2860.fw.uu projects/pf/head/sys/contrib/dev/run/rt2870.fw.uu projects/pf/head/sys/contrib/octeon-sdk/cvmip.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-abi.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-access-native.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-access.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-address.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-agl-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-app-hotplug.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-app-hotplug.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-app-init-linux.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-app-init.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-app-init.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-asm.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-asx0-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-asxx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-atomic.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-bootloader.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-bootmem.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-bootmem.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ciu-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-clock.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-clock.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-cmd-queue.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-cmd-queue.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-cn3010-evb-hs5.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-cn3010-evb-hs5.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-compactflash.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-compactflash.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-core.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-core.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-coremask.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-coremask.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-crypto.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-crypto.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-csr-enums.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-csr-typedefs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-csr.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-dbg-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-debug-handler.S projects/pf/head/sys/contrib/octeon-sdk/cvmx-debug-remote.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-debug-uart.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-debug.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-debug.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-dfa-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-dfa.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-dfa.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-dfm-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-dma-engine.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-dma-engine.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-dpi-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ebt3000.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-ebt3000.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-fau.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-flash.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-flash.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-fpa-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-fpa.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-fpa.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-gmx.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-gmxx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-gpio-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-gpio.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-board.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-board.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-check-defines.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-errata.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-errata.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-fpa.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-fpa.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-jtag.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-jtag.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-loop.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-loop.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-npi.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-npi.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-rgmii.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-sgmii.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-sgmii.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-spi.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-spi.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-srio.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-srio.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-util.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-util.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-xaui.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper-xaui.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-helper.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-higig.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-interrupt-handler.S projects/pf/head/sys/contrib/octeon-sdk/cvmx-interrupt.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-interrupt.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-iob-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ipd-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ipd.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ixf18201.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-ixf18201.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-key-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-key.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-l2c-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-l2c.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-l2c.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-l2d-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-l2t-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-led-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-llm.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-llm.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-lmcx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-log-arc.S projects/pf/head/sys/contrib/octeon-sdk/cvmx-log.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-log.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-malloc.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-mdio.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-mgmt-port.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-mgmt-port.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-mio-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-mixx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-mpi-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-nand.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-nand.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-ndf-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-npei-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-npi-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-npi.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-packet.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pci-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pci.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcie.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcie.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcieepx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pciercx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcm-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcmx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcsx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pcsxx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pemx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pescx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pexp-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pip-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pip.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pko-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pko.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-pko.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-platform.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pow-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-pow.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-pow.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-power-throttle.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-power-throttle.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-rad-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-raid.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-raid.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-rng.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-rnm-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-rtc.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-rwlock.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-scratch.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-shmem.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-shmem.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-sim-magic.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-sli-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-smi-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-smix-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-spi.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-spi.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-spi4000.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-spinlock.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-spx0-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-spxx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-srio.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-srio.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-sriomaintx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-sriox-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-srxx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-stxx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-swap.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-sysinfo.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-sysinfo.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-thunder.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-thunder.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-tim-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-tim.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-tim.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-tlb.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-tlb.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-tra-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-tra.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-tra.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-twsi.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-twsi.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-uahcx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-uart.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-uart.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-uctlx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-usb.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-usb.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-usbcx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-usbd.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-usbd.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-usbnx-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-utils.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-version.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-warn.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-warn.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-wqe.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-zip-defs.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-zip.c projects/pf/head/sys/contrib/octeon-sdk/cvmx-zip.h projects/pf/head/sys/contrib/octeon-sdk/cvmx-zone.c projects/pf/head/sys/contrib/octeon-sdk/cvmx.h projects/pf/head/sys/contrib/octeon-sdk/octeon-boot-info.h projects/pf/head/sys/contrib/octeon-sdk/octeon-feature.h projects/pf/head/sys/contrib/octeon-sdk/octeon-model.c projects/pf/head/sys/contrib/octeon-sdk/octeon-model.h projects/pf/head/sys/contrib/octeon-sdk/octeon-pci-console.c projects/pf/head/sys/contrib/octeon-sdk/octeon-pci-console.h projects/pf/head/sys/dev/acpica/acpi.c projects/pf/head/sys/dev/acpica/acpi_hpet.c projects/pf/head/sys/dev/acpica/acpi_pcib_acpi.c projects/pf/head/sys/dev/acpica/acpivar.h projects/pf/head/sys/dev/advansys/adv_eisa.c projects/pf/head/sys/dev/advansys/adv_isa.c projects/pf/head/sys/dev/advansys/adv_pci.c projects/pf/head/sys/dev/advansys/adw_pci.c projects/pf/head/sys/dev/ahb/ahb.c projects/pf/head/sys/dev/aic7xxx/ahc_eisa.c projects/pf/head/sys/dev/aic7xxx/ahc_isa.c projects/pf/head/sys/dev/aic7xxx/ahc_pci.c projects/pf/head/sys/dev/aic7xxx/ahd_pci.c projects/pf/head/sys/dev/aic7xxx/aicasm/aicasm_symbol.c projects/pf/head/sys/dev/ale/if_ale.c projects/pf/head/sys/dev/ale/if_alevar.h projects/pf/head/sys/dev/amr/amr_pci.c projects/pf/head/sys/dev/an/if_an_pci.c projects/pf/head/sys/dev/arcmsr/arcmsr.c projects/pf/head/sys/dev/asr/asr.c projects/pf/head/sys/dev/ata/ata-all.c projects/pf/head/sys/dev/ata/ata-all.h projects/pf/head/sys/dev/ata/ata-card.c projects/pf/head/sys/dev/ata/ata-cbus.c projects/pf/head/sys/dev/ata/ata-disk.c projects/pf/head/sys/dev/ata/ata-pci.c projects/pf/head/sys/dev/ata/ata-pci.h projects/pf/head/sys/dev/ata/ata-queue.c projects/pf/head/sys/dev/ata/ata-raid.c projects/pf/head/sys/dev/ata/atapi-cam.c projects/pf/head/sys/dev/ata/atapi-cd.c projects/pf/head/sys/dev/ata/atapi-fd.c projects/pf/head/sys/dev/ata/atapi-tape.c projects/pf/head/sys/dev/ata/chipsets/ata-acard.c projects/pf/head/sys/dev/ata/chipsets/ata-acerlabs.c projects/pf/head/sys/dev/ata/chipsets/ata-adaptec.c projects/pf/head/sys/dev/ata/chipsets/ata-ahci.c projects/pf/head/sys/dev/ata/chipsets/ata-amd.c projects/pf/head/sys/dev/ata/chipsets/ata-ati.c projects/pf/head/sys/dev/ata/chipsets/ata-cyrix.c projects/pf/head/sys/dev/ata/chipsets/ata-highpoint.c projects/pf/head/sys/dev/ata/chipsets/ata-intel.c projects/pf/head/sys/dev/ata/chipsets/ata-ite.c projects/pf/head/sys/dev/ata/chipsets/ata-jmicron.c projects/pf/head/sys/dev/ata/chipsets/ata-marvell.c projects/pf/head/sys/dev/ata/chipsets/ata-national.c projects/pf/head/sys/dev/ata/chipsets/ata-nvidia.c projects/pf/head/sys/dev/ata/chipsets/ata-promise.c projects/pf/head/sys/dev/ata/chipsets/ata-serverworks.c projects/pf/head/sys/dev/ata/chipsets/ata-siliconimage.c projects/pf/head/sys/dev/ata/chipsets/ata-sis.c projects/pf/head/sys/dev/ata/chipsets/ata-via.c projects/pf/head/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/pf/head/sys/dev/ath/if_ath.c projects/pf/head/sys/dev/ath/if_ath_debug.c projects/pf/head/sys/dev/ath/if_ath_sysctl.c projects/pf/head/sys/dev/ath/if_ath_tx.c projects/pf/head/sys/dev/ath/if_ath_tx.h projects/pf/head/sys/dev/ath/if_ath_tx_ht.c projects/pf/head/sys/dev/ath/if_athioctl.h projects/pf/head/sys/dev/ath/if_athvar.h projects/pf/head/sys/dev/atkbdc/atkbdc_isa.c projects/pf/head/sys/dev/atkbdc/psm.c projects/pf/head/sys/dev/bge/if_bge.c projects/pf/head/sys/dev/bge/if_bgereg.h projects/pf/head/sys/dev/buslogic/bt_pci.c projects/pf/head/sys/dev/bxe/if_bxe.c projects/pf/head/sys/dev/cesa/cesa.c projects/pf/head/sys/dev/cfi/cfi_core.c projects/pf/head/sys/dev/cfi/cfi_dev.c projects/pf/head/sys/dev/cfi/cfi_disk.c projects/pf/head/sys/dev/cfi/cfi_var.h projects/pf/head/sys/dev/ciss/ciss.c projects/pf/head/sys/dev/cxgb/cxgb_sge.c projects/pf/head/sys/dev/de/if_de.c projects/pf/head/sys/dev/dpt/dpt_pci.c projects/pf/head/sys/dev/e1000/e1000_osdep.h projects/pf/head/sys/dev/e1000/if_em.c projects/pf/head/sys/dev/e1000/if_igb.c projects/pf/head/sys/dev/en/midway.c projects/pf/head/sys/dev/fb/vesa.c projects/pf/head/sys/dev/fxp/if_fxp.c projects/pf/head/sys/dev/fxp/if_fxpreg.h projects/pf/head/sys/dev/fxp/if_fxpvar.h projects/pf/head/sys/dev/glxsb/glxsb.c projects/pf/head/sys/dev/gpio/gpioc.c projects/pf/head/sys/dev/hatm/if_hatm.c projects/pf/head/sys/dev/hifn/hifn7751.c projects/pf/head/sys/dev/hptiop/hptiop.c projects/pf/head/sys/dev/hptmv/entry.c projects/pf/head/sys/dev/hwpmc/hwpmc_amd.c projects/pf/head/sys/dev/hwpmc/hwpmc_core.c projects/pf/head/sys/dev/hwpmc/hwpmc_intel.c projects/pf/head/sys/dev/hwpmc/hwpmc_logging.c projects/pf/head/sys/dev/hwpmc/hwpmc_mips.c projects/pf/head/sys/dev/hwpmc/hwpmc_mips24k.c projects/pf/head/sys/dev/hwpmc/hwpmc_mod.c projects/pf/head/sys/dev/hwpmc/hwpmc_piv.c projects/pf/head/sys/dev/hwpmc/hwpmc_powerpc.c projects/pf/head/sys/dev/hwpmc/hwpmc_ppro.c projects/pf/head/sys/dev/hwpmc/hwpmc_tsc.c projects/pf/head/sys/dev/hwpmc/hwpmc_x86.c projects/pf/head/sys/dev/hwpmc/hwpmc_xscale.c projects/pf/head/sys/dev/hwpmc/pmc_events.h projects/pf/head/sys/dev/ida/ida_pci.c projects/pf/head/sys/dev/if_ndis/if_ndis_pci.c projects/pf/head/sys/dev/iir/iir_pci.c projects/pf/head/sys/dev/ips/ips_pci.c projects/pf/head/sys/dev/ipw/if_ipw.c projects/pf/head/sys/dev/ipw/if_ipwvar.h projects/pf/head/sys/dev/isci/isci.h projects/pf/head/sys/dev/isci/isci_controller.c projects/pf/head/sys/dev/isci/isci_domain.c projects/pf/head/sys/dev/isci/isci_remote_device.c projects/pf/head/sys/dev/isci/isci_task_request.c projects/pf/head/sys/dev/isci/scil/sati_read_capacity.c projects/pf/head/sys/dev/iwi/if_iwi.c projects/pf/head/sys/dev/iwn/if_iwn.c projects/pf/head/sys/dev/ixgb/if_ixgb.c projects/pf/head/sys/dev/ixgbe/ixgbe.c projects/pf/head/sys/dev/ixgbe/ixv.c projects/pf/head/sys/dev/lmc/if_lmc.c projects/pf/head/sys/dev/mfi/mfi.c projects/pf/head/sys/dev/mfi/mfi_cam.c projects/pf/head/sys/dev/mfi/mfi_debug.c projects/pf/head/sys/dev/mfi/mfi_disk.c projects/pf/head/sys/dev/mfi/mfi_ioctl.h projects/pf/head/sys/dev/mfi/mfi_linux.c projects/pf/head/sys/dev/mfi/mfi_pci.c projects/pf/head/sys/dev/mfi/mfireg.h projects/pf/head/sys/dev/mfi/mfivar.h projects/pf/head/sys/dev/mge/if_mge.c projects/pf/head/sys/dev/mlx/mlx_pci.c projects/pf/head/sys/dev/mly/mly.c projects/pf/head/sys/dev/mpt/mpilib/mpi.h projects/pf/head/sys/dev/mpt/mpilib/mpi_cnfg.h projects/pf/head/sys/dev/mpt/mpilib/mpi_fc.h projects/pf/head/sys/dev/mpt/mpilib/mpi_init.h projects/pf/head/sys/dev/mpt/mpilib/mpi_ioc.h projects/pf/head/sys/dev/mpt/mpilib/mpi_lan.h projects/pf/head/sys/dev/mpt/mpilib/mpi_raid.h projects/pf/head/sys/dev/mpt/mpilib/mpi_sas.h projects/pf/head/sys/dev/mpt/mpilib/mpi_targ.h projects/pf/head/sys/dev/mpt/mpilib/mpi_tool.h projects/pf/head/sys/dev/mpt/mpilib/mpi_type.h projects/pf/head/sys/dev/mpt/mpt.h projects/pf/head/sys/dev/mpt/mpt_pci.c projects/pf/head/sys/dev/mxge/if_mxge.c projects/pf/head/sys/dev/nve/if_nve.c projects/pf/head/sys/dev/ofw/ofw_bus_if.m projects/pf/head/sys/dev/ofw/ofw_bus_subr.c projects/pf/head/sys/dev/ofw/ofw_iicbus.c projects/pf/head/sys/dev/patm/if_patm_attach.c projects/pf/head/sys/dev/pcf/pcf_ebus.c projects/pf/head/sys/dev/pci/pci.c projects/pf/head/sys/dev/pci/pcireg.h projects/pf/head/sys/dev/pci/pcivar.h projects/pf/head/sys/dev/safe/safe.c projects/pf/head/sys/dev/sound/pci/emu10kx.c projects/pf/head/sys/dev/sound/pci/hda/hdaa.c projects/pf/head/sys/dev/sound/pci/hda/hdac.c projects/pf/head/sys/dev/sound/usb/uaudio.c projects/pf/head/sys/dev/sound/usb/uaudioreg.h projects/pf/head/sys/dev/syscons/syscons.c projects/pf/head/sys/dev/trm/trm.c projects/pf/head/sys/dev/twe/twe_freebsd.c projects/pf/head/sys/dev/tws/tws.c projects/pf/head/sys/dev/uart/uart_bus_pci.c projects/pf/head/sys/dev/ubsec/ubsec.c projects/pf/head/sys/dev/usb/controller/at91dci.c projects/pf/head/sys/dev/usb/controller/atmegadci.c projects/pf/head/sys/dev/usb/controller/avr32dci.c projects/pf/head/sys/dev/usb/controller/dwc_otg.c projects/pf/head/sys/dev/usb/controller/ehci.c projects/pf/head/sys/dev/usb/controller/musb_otg.c projects/pf/head/sys/dev/usb/controller/ohci.c projects/pf/head/sys/dev/usb/controller/uhci.c projects/pf/head/sys/dev/usb/controller/uss820dci.c projects/pf/head/sys/dev/usb/controller/xhci.c projects/pf/head/sys/dev/usb/input/atp.c projects/pf/head/sys/dev/usb/input/uep.c projects/pf/head/sys/dev/usb/input/uhid.c projects/pf/head/sys/dev/usb/input/ukbd.c projects/pf/head/sys/dev/usb/input/ums.c projects/pf/head/sys/dev/usb/misc/ufm.c projects/pf/head/sys/dev/usb/net/if_aue.c projects/pf/head/sys/dev/usb/net/if_axe.c projects/pf/head/sys/dev/usb/net/if_cdce.c projects/pf/head/sys/dev/usb/net/if_cue.c projects/pf/head/sys/dev/usb/net/if_ipheth.c projects/pf/head/sys/dev/usb/net/if_kue.c projects/pf/head/sys/dev/usb/net/if_rue.c projects/pf/head/sys/dev/usb/net/if_udav.c projects/pf/head/sys/dev/usb/net/if_usie.c projects/pf/head/sys/dev/usb/net/ruephy.c projects/pf/head/sys/dev/usb/net/uhso.c projects/pf/head/sys/dev/usb/serial/ubsa.c projects/pf/head/sys/dev/usb/serial/uchcom.c projects/pf/head/sys/dev/usb/serial/ucycom.c projects/pf/head/sys/dev/usb/serial/ufoma.c projects/pf/head/sys/dev/usb/serial/ulpt.c projects/pf/head/sys/dev/usb/serial/umodem.c projects/pf/head/sys/dev/usb/serial/uplcom.c projects/pf/head/sys/dev/usb/serial/usb_serial.c projects/pf/head/sys/dev/usb/serial/usb_serial.h projects/pf/head/sys/dev/usb/storage/umass.c projects/pf/head/sys/dev/usb/storage/urio.c projects/pf/head/sys/dev/usb/storage/ustorage_fs.c projects/pf/head/sys/dev/usb/template/usb_template.c projects/pf/head/sys/dev/usb/usb.h projects/pf/head/sys/dev/usb/usb_busdma.c projects/pf/head/sys/dev/usb/usb_compat_linux.c projects/pf/head/sys/dev/usb/usb_dev.c projects/pf/head/sys/dev/usb/usb_device.c projects/pf/head/sys/dev/usb/usb_handle_request.c projects/pf/head/sys/dev/usb/usb_hid.c projects/pf/head/sys/dev/usb/usb_hub.c projects/pf/head/sys/dev/usb/usb_msctest.c projects/pf/head/sys/dev/usb/usb_request.c projects/pf/head/sys/dev/usb/usb_request.h projects/pf/head/sys/dev/usb/usb_transfer.c projects/pf/head/sys/dev/usb/usbdi.h projects/pf/head/sys/dev/usb/usbhid.h projects/pf/head/sys/dev/usb/wlan/if_rum.c projects/pf/head/sys/dev/usb/wlan/if_run.c projects/pf/head/sys/dev/usb/wlan/if_uath.c projects/pf/head/sys/dev/usb/wlan/if_upgt.c projects/pf/head/sys/dev/usb/wlan/if_ural.c projects/pf/head/sys/dev/usb/wlan/if_urtw.c projects/pf/head/sys/dev/usb/wlan/if_zyd.c projects/pf/head/sys/dev/wds/wd7000.c projects/pf/head/sys/dev/wpi/if_wpi.c projects/pf/head/sys/dev/wtap/if_wtap.c projects/pf/head/sys/dev/xen/blkfront/blkfront.c projects/pf/head/sys/fs/cd9660/cd9660_vnops.c projects/pf/head/sys/fs/ext2fs/ext2_alloc.c projects/pf/head/sys/fs/ext2fs/ext2_dinode.h projects/pf/head/sys/fs/ext2fs/ext2_inode_cnv.c projects/pf/head/sys/fs/ext2fs/ext2_vfsops.c projects/pf/head/sys/fs/ext2fs/ext2_vnops.c projects/pf/head/sys/fs/ext2fs/ext2fs.h projects/pf/head/sys/fs/ext2fs/inode.h projects/pf/head/sys/fs/fdescfs/fdesc_vfsops.c projects/pf/head/sys/fs/fifofs/fifo_vnops.c projects/pf/head/sys/fs/nfs/nfsport.h projects/pf/head/sys/fs/nfsclient/nfs_clbio.c projects/pf/head/sys/fs/nfsclient/nfs_clvnops.c projects/pf/head/sys/fs/nullfs/null_vfsops.c projects/pf/head/sys/fs/portalfs/portal_vfsops.c projects/pf/head/sys/fs/tmpfs/tmpfs_subr.c projects/pf/head/sys/fs/tmpfs/tmpfs_vnops.c projects/pf/head/sys/fs/udf/udf_vnops.c projects/pf/head/sys/fs/unionfs/union_subr.c projects/pf/head/sys/fs/unionfs/union_vfsops.c projects/pf/head/sys/geom/geom_vfs.c projects/pf/head/sys/geom/part/g_part.c projects/pf/head/sys/geom/part/g_part.h projects/pf/head/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/pf/head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c projects/pf/head/sys/i386/acpica/acpi_wakeup.c projects/pf/head/sys/i386/conf/GENERIC projects/pf/head/sys/i386/conf/NOTES projects/pf/head/sys/i386/conf/XBOX projects/pf/head/sys/i386/conf/XEN projects/pf/head/sys/i386/i386/exception.s projects/pf/head/sys/i386/i386/machdep.c projects/pf/head/sys/i386/i386/pmap.c projects/pf/head/sys/i386/i386/trap.c projects/pf/head/sys/i386/include/intr_machdep.h projects/pf/head/sys/i386/include/npx.h projects/pf/head/sys/i386/include/pmc_mdep.h projects/pf/head/sys/i386/include/proc.h projects/pf/head/sys/i386/include/psl.h projects/pf/head/sys/i386/include/reg.h projects/pf/head/sys/i386/include/segments.h projects/pf/head/sys/i386/include/specialreg.h projects/pf/head/sys/i386/include/sysarch.h projects/pf/head/sys/i386/include/vm.h projects/pf/head/sys/i386/linux/linux_dummy.c projects/pf/head/sys/i386/linux/linux_proto.h projects/pf/head/sys/i386/linux/linux_syscall.h projects/pf/head/sys/i386/linux/linux_syscalls.c projects/pf/head/sys/i386/linux/linux_sysent.c projects/pf/head/sys/i386/linux/linux_systrace_args.c projects/pf/head/sys/i386/linux/syscalls.master projects/pf/head/sys/i386/xbox/xboxfb.c projects/pf/head/sys/ia64/conf/GENERIC projects/pf/head/sys/ia64/conf/SKI projects/pf/head/sys/ia64/ia32/ia32_reg.c projects/pf/head/sys/ia64/ia32/ia32_signal.c projects/pf/head/sys/ia64/ia32/ia32_trap.c projects/pf/head/sys/ia64/include/reg.h projects/pf/head/sys/kern/imgact_elf.c projects/pf/head/sys/kern/kern_clock.c projects/pf/head/sys/kern/kern_clocksource.c projects/pf/head/sys/kern/kern_cpu.c projects/pf/head/sys/kern/kern_descrip.c projects/pf/head/sys/kern/kern_event.c projects/pf/head/sys/kern/kern_exec.c projects/pf/head/sys/kern/kern_exit.c projects/pf/head/sys/kern/kern_intr.c projects/pf/head/sys/kern/kern_kthread.c projects/pf/head/sys/kern/kern_linker.c projects/pf/head/sys/kern/kern_lock.c projects/pf/head/sys/kern/kern_mutex.c projects/pf/head/sys/kern/kern_pmc.c projects/pf/head/sys/kern/kern_proc.c projects/pf/head/sys/kern/kern_racct.c projects/pf/head/sys/kern/kern_rwlock.c projects/pf/head/sys/kern/kern_sdt.c projects/pf/head/sys/kern/kern_sx.c projects/pf/head/sys/kern/kern_sysctl.c projects/pf/head/sys/kern/kern_thr.c projects/pf/head/sys/kern/kern_umtx.c projects/pf/head/sys/kern/sched_4bsd.c projects/pf/head/sys/kern/sched_ule.c projects/pf/head/sys/kern/subr_acl_nfs4.c projects/pf/head/sys/kern/subr_acl_posix1e.c projects/pf/head/sys/kern/subr_msgbuf.c projects/pf/head/sys/kern/subr_trap.c projects/pf/head/sys/kern/subr_uio.c projects/pf/head/sys/kern/sys_capability.c projects/pf/head/sys/kern/sys_pipe.c projects/pf/head/sys/kern/uipc_shm.c projects/pf/head/sys/kern/uipc_syscalls.c projects/pf/head/sys/kern/vfs_mount.c projects/pf/head/sys/kern/vfs_subr.c projects/pf/head/sys/kern/vfs_syscalls.c projects/pf/head/sys/kern/vfs_vnops.c projects/pf/head/sys/libkern/crc32.c projects/pf/head/sys/mips/adm5120/adm5120_machdep.c projects/pf/head/sys/mips/adm5120/std.adm5120 projects/pf/head/sys/mips/alchemy/alchemy_machdep.c projects/pf/head/sys/mips/alchemy/std.alchemy projects/pf/head/sys/mips/atheros/apb.c projects/pf/head/sys/mips/atheros/ar71xx_chip.c projects/pf/head/sys/mips/atheros/ar71xx_cpudef.h projects/pf/head/sys/mips/atheros/ar71xx_machdep.c projects/pf/head/sys/mips/atheros/ar71xxreg.h projects/pf/head/sys/mips/atheros/ar724x_chip.c projects/pf/head/sys/mips/atheros/ar91xx_chip.c projects/pf/head/sys/mips/atheros/files.ar71xx projects/pf/head/sys/mips/atheros/if_arge.c projects/pf/head/sys/mips/atheros/std.ar71xx projects/pf/head/sys/mips/cavium/ciu.c projects/pf/head/sys/mips/cavium/cvmx_config.h projects/pf/head/sys/mips/cavium/files.octeon1 projects/pf/head/sys/mips/cavium/if_octm.c projects/pf/head/sys/mips/cavium/obio.c projects/pf/head/sys/mips/cavium/octe/ethernet-rgmii.c projects/pf/head/sys/mips/cavium/octe/ethernet-rx.c projects/pf/head/sys/mips/cavium/octe/ethernet-spi.c projects/pf/head/sys/mips/cavium/octe/ethernet.c projects/pf/head/sys/mips/cavium/octe/wrapper-cvmx-includes.h projects/pf/head/sys/mips/cavium/octeon_ebt3000_cf.c projects/pf/head/sys/mips/cavium/octeon_gpio.c projects/pf/head/sys/mips/cavium/octeon_machdep.c projects/pf/head/sys/mips/cavium/octeon_mp.c projects/pf/head/sys/mips/cavium/octeon_wdog.c projects/pf/head/sys/mips/cavium/octopci.c projects/pf/head/sys/mips/cavium/std.octeon1 projects/pf/head/sys/mips/cavium/uart_dev_oct16550.c projects/pf/head/sys/mips/cavium/usb/octusb_octeon.c projects/pf/head/sys/mips/conf/AR71XX_BASE projects/pf/head/sys/mips/conf/AR91XX_BASE projects/pf/head/sys/mips/conf/MALTA projects/pf/head/sys/mips/conf/MALTA64 projects/pf/head/sys/mips/conf/OCTEON1 projects/pf/head/sys/mips/conf/PB92 projects/pf/head/sys/mips/conf/RT305X projects/pf/head/sys/mips/conf/SWARM projects/pf/head/sys/mips/conf/SWARM64 projects/pf/head/sys/mips/conf/SWARM64_SMP projects/pf/head/sys/mips/conf/SWARM_SMP projects/pf/head/sys/mips/conf/XLP projects/pf/head/sys/mips/conf/XLP64 projects/pf/head/sys/mips/conf/XLPN32 projects/pf/head/sys/mips/conf/XLR projects/pf/head/sys/mips/conf/XLR64 projects/pf/head/sys/mips/conf/XLRN32 projects/pf/head/sys/mips/conf/std.XLP projects/pf/head/sys/mips/idt/idt_machdep.c projects/pf/head/sys/mips/idt/std.idt projects/pf/head/sys/mips/include/_bus.h projects/pf/head/sys/mips/include/bus.h projects/pf/head/sys/mips/include/cache.h projects/pf/head/sys/mips/include/cpufunc.h projects/pf/head/sys/mips/include/frame.h projects/pf/head/sys/mips/include/hwfunc.h projects/pf/head/sys/mips/include/md_var.h projects/pf/head/sys/mips/include/param.h projects/pf/head/sys/mips/include/pmap.h projects/pf/head/sys/mips/include/pmc_mdep.h projects/pf/head/sys/mips/include/proc.h projects/pf/head/sys/mips/include/trap.h projects/pf/head/sys/mips/include/vm.h projects/pf/head/sys/mips/malta/malta_machdep.c projects/pf/head/sys/mips/malta/std.malta projects/pf/head/sys/mips/mips/bus_space_generic.c projects/pf/head/sys/mips/mips/cache.c projects/pf/head/sys/mips/mips/cache_mipsNN.c projects/pf/head/sys/mips/mips/cpu.c projects/pf/head/sys/mips/mips/exception.S projects/pf/head/sys/mips/mips/freebsd32_machdep.c projects/pf/head/sys/mips/mips/intr_machdep.c projects/pf/head/sys/mips/mips/machdep.c projects/pf/head/sys/mips/mips/nexus.c projects/pf/head/sys/mips/mips/pm_machdep.c projects/pf/head/sys/mips/mips/pmap.c projects/pf/head/sys/mips/mips/support.S projects/pf/head/sys/mips/mips/swtch.S projects/pf/head/sys/mips/mips/sys_machdep.c projects/pf/head/sys/mips/mips/tick.c projects/pf/head/sys/mips/mips/trap.c projects/pf/head/sys/mips/mips/vm_machdep.c projects/pf/head/sys/mips/nlm/board.c projects/pf/head/sys/mips/nlm/board.h projects/pf/head/sys/mips/nlm/cms.c projects/pf/head/sys/mips/nlm/files.xlp projects/pf/head/sys/mips/nlm/hal/iomap.h projects/pf/head/sys/mips/nlm/hal/nlm_hal.c projects/pf/head/sys/mips/nlm/hal/pcibus.h projects/pf/head/sys/mips/nlm/hal/pic.h projects/pf/head/sys/mips/nlm/hal/sys.h projects/pf/head/sys/mips/nlm/intr_machdep.c projects/pf/head/sys/mips/nlm/mpreset.S projects/pf/head/sys/mips/nlm/msgring.h projects/pf/head/sys/mips/nlm/tick.c projects/pf/head/sys/mips/nlm/uart_cpu_xlp.c projects/pf/head/sys/mips/nlm/xlp.h projects/pf/head/sys/mips/nlm/xlp_machdep.c projects/pf/head/sys/mips/nlm/xlp_pci.c projects/pf/head/sys/mips/rmi/tick.c projects/pf/head/sys/mips/rmi/xlr_machdep.c projects/pf/head/sys/mips/rt305x/rt305x_machdep.c projects/pf/head/sys/mips/rt305x/std.rt305x projects/pf/head/sys/mips/sentry5/s5_machdep.c projects/pf/head/sys/mips/sentry5/std.sentry5 projects/pf/head/sys/mips/sibyte/sb_machdep.c projects/pf/head/sys/modules/Makefile projects/pf/head/sys/modules/cyclic/Makefile projects/pf/head/sys/modules/dtrace/Makefile projects/pf/head/sys/modules/geom/geom_part/Makefile projects/pf/head/sys/modules/hwpmc/Makefile projects/pf/head/sys/modules/mfi/Makefile projects/pf/head/sys/modules/mps/Makefile projects/pf/head/sys/modules/netgraph/netflow/Makefile projects/pf/head/sys/modules/ralfw/Makefile projects/pf/head/sys/net/if_var.h projects/pf/head/sys/net/netmap_user.h projects/pf/head/sys/net/route.c projects/pf/head/sys/net/route.h projects/pf/head/sys/net80211/ieee80211.c projects/pf/head/sys/net80211/ieee80211_alq.c projects/pf/head/sys/net80211/ieee80211_freebsd.c projects/pf/head/sys/net80211/ieee80211_ht.c projects/pf/head/sys/net80211/ieee80211_ht.h projects/pf/head/sys/net80211/ieee80211_node.c projects/pf/head/sys/net80211/ieee80211_node.h projects/pf/head/sys/net80211/ieee80211_proto.c projects/pf/head/sys/net80211/ieee80211_radiotap.c projects/pf/head/sys/net80211/ieee80211_sta.c projects/pf/head/sys/net80211/ieee80211_var.h projects/pf/head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c projects/pf/head/sys/netgraph/netflow/netflow.c projects/pf/head/sys/netgraph/netflow/ng_netflow.c projects/pf/head/sys/netgraph/netflow/ng_netflow.h projects/pf/head/sys/netgraph/ng_vlan.c projects/pf/head/sys/netgraph/ng_vlan.h projects/pf/head/sys/netinet/in_pcb.h projects/pf/head/sys/netinet/ip_fw.h projects/pf/head/sys/netinet/ipfw/ip_fw2.c projects/pf/head/sys/netinet/ipfw/ip_fw_private.h projects/pf/head/sys/netinet/ipfw/ip_fw_sockopt.c projects/pf/head/sys/netinet/ipfw/ip_fw_table.c projects/pf/head/sys/netinet/sctp.h projects/pf/head/sys/netinet/sctp_bsd_addr.c projects/pf/head/sys/netinet/sctp_constants.h projects/pf/head/sys/netinet/sctp_header.h projects/pf/head/sys/netinet/sctp_input.c projects/pf/head/sys/netinet/sctp_output.c projects/pf/head/sys/netinet/sctp_output.h projects/pf/head/sys/netinet/sctp_pcb.h projects/pf/head/sys/netinet/sctp_peeloff.c projects/pf/head/sys/netinet/sctp_structs.h projects/pf/head/sys/netinet/sctp_uio.h projects/pf/head/sys/netinet/sctp_usrreq.c projects/pf/head/sys/netinet/sctputil.c projects/pf/head/sys/netinet/sctputil.h projects/pf/head/sys/netinet/tcp_subr.c projects/pf/head/sys/netinet/udp_usrreq.c projects/pf/head/sys/netinet/udp_var.h projects/pf/head/sys/netinet6/in6_pcb.c projects/pf/head/sys/netinet6/sctp6_usrreq.c projects/pf/head/sys/nfsclient/nfs_vnops.c projects/pf/head/sys/ofed/drivers/infiniband/core/addr.c projects/pf/head/sys/ofed/drivers/infiniband/core/cma.c projects/pf/head/sys/ofed/drivers/infiniband/core/fmr_pool.c projects/pf/head/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/pf/head/sys/ofed/include/linux/io.h projects/pf/head/sys/ofed/include/linux/page.h projects/pf/head/sys/pc98/conf/GENERIC projects/pf/head/sys/pc98/include/psl.h projects/pf/head/sys/pc98/include/reg.h projects/pf/head/sys/pc98/include/specialreg.h projects/pf/head/sys/pc98/include/sysarch.h projects/pf/head/sys/pc98/pc98/machdep.c projects/pf/head/sys/powerpc/aim/mmu_oea.c projects/pf/head/sys/powerpc/aim/mmu_oea64.c projects/pf/head/sys/powerpc/aim/moea64_native.c projects/pf/head/sys/powerpc/conf/GENERIC projects/pf/head/sys/powerpc/conf/GENERIC64 projects/pf/head/sys/powerpc/conf/MPC85XX projects/pf/head/sys/powerpc/include/endian.h projects/pf/head/sys/powerpc/include/pmc_mdep.h projects/pf/head/sys/powerpc/include/trap.h projects/pf/head/sys/powerpc/include/trap_aim.h projects/pf/head/sys/powerpc/include/trap_booke.h projects/pf/head/sys/powerpc/include/vm.h projects/pf/head/sys/powerpc/ofw/ofw_pcib_pci.c projects/pf/head/sys/powerpc/ofw/ofw_pcibus.c projects/pf/head/sys/powerpc/powermac/uninorth.c projects/pf/head/sys/sparc64/conf/GENERIC projects/pf/head/sys/sparc64/include/endian.h projects/pf/head/sys/sparc64/pci/fire.c projects/pf/head/sys/sparc64/pci/firereg.h projects/pf/head/sys/sparc64/pci/ofw_pcibus.c projects/pf/head/sys/sparc64/sparc64/trap.c projects/pf/head/sys/sys/conf.h projects/pf/head/sys/sys/cpuset.h projects/pf/head/sys/sys/elf_common.h projects/pf/head/sys/sys/event.h projects/pf/head/sys/sys/libkern.h projects/pf/head/sys/sys/mman.h projects/pf/head/sys/sys/mount.h projects/pf/head/sys/sys/msgbuf.h projects/pf/head/sys/sys/param.h projects/pf/head/sys/sys/pmc.h projects/pf/head/sys/sys/pmckern.h projects/pf/head/sys/sys/pmclog.h projects/pf/head/sys/sys/proc.h projects/pf/head/sys/sys/sched.h projects/pf/head/sys/sys/sdt.h projects/pf/head/sys/sys/signal.h projects/pf/head/sys/sys/sysctl.h projects/pf/head/sys/sys/systm.h projects/pf/head/sys/sys/unistd.h projects/pf/head/sys/sys/vnode.h projects/pf/head/sys/ufs/ffs/ffs_balloc.c projects/pf/head/sys/ufs/ffs/ffs_extern.h projects/pf/head/sys/ufs/ffs/ffs_inode.c projects/pf/head/sys/ufs/ffs/ffs_rawread.c projects/pf/head/sys/ufs/ffs/ffs_snapshot.c projects/pf/head/sys/ufs/ffs/ffs_softdep.c projects/pf/head/sys/ufs/ffs/ffs_vfsops.c projects/pf/head/sys/ufs/ffs/ffs_vnops.c projects/pf/head/sys/ufs/ufs/ufs_extattr.c projects/pf/head/sys/ufs/ufs/ufs_quota.c projects/pf/head/sys/ufs/ufs/ufs_vnops.c projects/pf/head/sys/vm/vm_contig.c projects/pf/head/sys/vm/vm_fault.c projects/pf/head/sys/vm/vm_map.c projects/pf/head/sys/vm/vm_mmap.c projects/pf/head/sys/vm/vm_object.c projects/pf/head/sys/vm/vm_object.h projects/pf/head/sys/vm/vm_pageout.c projects/pf/head/sys/vm/vm_pageout.h projects/pf/head/sys/vm/vnode_pager.c projects/pf/head/sys/x86/acpica/madt.c projects/pf/head/sys/x86/include/endian.h projects/pf/head/sys/x86/include/mca.h projects/pf/head/sys/x86/isa/atpic.c projects/pf/head/sys/x86/isa/icu.h projects/pf/head/sys/x86/isa/isa_dma.c projects/pf/head/sys/x86/pci/pci_bus.c projects/pf/head/sys/x86/x86/busdma_machdep.c projects/pf/head/sys/x86/x86/mca.c projects/pf/head/sys/x86/x86/mptable_pci.c projects/pf/head/tools/build/mk/OptionalObsoleteFiles.inc projects/pf/head/tools/make_libdeps.sh projects/pf/head/tools/tools/ath/ath_ee_v14_print/ath_ee_v14_print.c projects/pf/head/tools/tools/ath/athrd/athrd.1 projects/pf/head/tools/tools/bus_autoconf/bus_usb.c projects/pf/head/tools/tools/ether_reflect/ether_reflect.1 projects/pf/head/tools/tools/vimage/vimage.8 projects/pf/head/tools/tools/wtap/vis_map/Makefile projects/pf/head/tools/tools/wtap/wtap/Makefile projects/pf/head/usr.bin/Makefile projects/pf/head/usr.bin/bc/bc.library projects/pf/head/usr.bin/bc/bc.y projects/pf/head/usr.bin/bsdiff/bsdiff/bsdiff.1 projects/pf/head/usr.bin/calendar/calendar.1 projects/pf/head/usr.bin/comm/comm.1 projects/pf/head/usr.bin/compile_et/Makefile projects/pf/head/usr.bin/csup/cpasswd.1 projects/pf/head/usr.bin/csup/csup.1 projects/pf/head/usr.bin/dc/bcode.c projects/pf/head/usr.bin/find/find.1 projects/pf/head/usr.bin/fstat/fstat.c projects/pf/head/usr.bin/fstat/fuser.1 projects/pf/head/usr.bin/hexdump/hexdump.1 projects/pf/head/usr.bin/indent/indent.1 projects/pf/head/usr.bin/ipcrm/ipcrm.1 projects/pf/head/usr.bin/jot/jot.1 projects/pf/head/usr.bin/killall/killall.1 projects/pf/head/usr.bin/locale/locale.1 projects/pf/head/usr.bin/lockf/lockf.1 projects/pf/head/usr.bin/man/man.conf.5 projects/pf/head/usr.bin/ministat/ministat.1 projects/pf/head/usr.bin/mkulzma/mkulzma.8 projects/pf/head/usr.bin/netstat/Makefile projects/pf/head/usr.bin/printf/printf.1 projects/pf/head/usr.bin/procstat/procstat.1 projects/pf/head/usr.bin/procstat/procstat_bin.c projects/pf/head/usr.bin/procstat/procstat_files.c projects/pf/head/usr.bin/rctl/rctl.8 projects/pf/head/usr.bin/sed/sed.1 projects/pf/head/usr.bin/setchannel/setchannel.1 projects/pf/head/usr.bin/tftp/tftp.1 projects/pf/head/usr.bin/top/top.local.1 projects/pf/head/usr.bin/touch/touch.1 projects/pf/head/usr.bin/tr/tr.1 projects/pf/head/usr.bin/unifdef/unifdef.1 projects/pf/head/usr.bin/units/units.1 projects/pf/head/usr.bin/unzip/unzip.1 projects/pf/head/usr.bin/vgrind/vgrindefs.5 projects/pf/head/usr.bin/vmstat/vmstat.c projects/pf/head/usr.bin/wall/wall.1 projects/pf/head/usr.bin/wall/wall.c projects/pf/head/usr.bin/xargs/xargs.1 projects/pf/head/usr.bin/xargs/xargs.c projects/pf/head/usr.bin/xlint/Makefile.inc projects/pf/head/usr.sbin/Makefile.arm projects/pf/head/usr.sbin/Makefile.mips projects/pf/head/usr.sbin/ac/ac.8 projects/pf/head/usr.sbin/acpi/iasl/Makefile projects/pf/head/usr.sbin/adduser/adduser.conf.5 projects/pf/head/usr.sbin/apmd/apmd.8 projects/pf/head/usr.sbin/arp/arp.4 projects/pf/head/usr.sbin/arp/arp.c projects/pf/head/usr.sbin/bluetooth/ath3kfw/ath3kfw.8 projects/pf/head/usr.sbin/boot0cfg/boot0cfg.8 projects/pf/head/usr.sbin/bootparamd/bootparamd/bootparamd.8 projects/pf/head/usr.sbin/bsdinstall/bsdinstall.8 projects/pf/head/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 projects/pf/head/usr.sbin/bsnmpd/modules/snmp_wlan/snmp_wlan.3 projects/pf/head/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.1 projects/pf/head/usr.sbin/cdcontrol/cdcontrol.1 projects/pf/head/usr.sbin/config/config.8 projects/pf/head/usr.sbin/crunch/crunchide/Makefile projects/pf/head/usr.sbin/ctladm/ctladm.8 projects/pf/head/usr.sbin/dconschat/dconschat.c projects/pf/head/usr.sbin/diskinfo/diskinfo.c projects/pf/head/usr.sbin/edquota/edquota.8 projects/pf/head/usr.sbin/faithd/faithd.8 projects/pf/head/usr.sbin/fdwrite/fdwrite.1 projects/pf/head/usr.sbin/freebsd-update/freebsd-update.8 projects/pf/head/usr.sbin/fwcontrol/fwcontrol.8 projects/pf/head/usr.sbin/gpioctl/gpioctl.8 projects/pf/head/usr.sbin/i2c/i2c.8 projects/pf/head/usr.sbin/ifmcstat/ifmcstat.8 projects/pf/head/usr.sbin/lpr/lpr/printcap.5 projects/pf/head/usr.sbin/makefs/cd9660/cd9660_eltorito.c projects/pf/head/usr.sbin/mfiutil/mfi_config.c projects/pf/head/usr.sbin/mfiutil/mfi_drive.c projects/pf/head/usr.sbin/mfiutil/mfiutil.8 projects/pf/head/usr.sbin/mountd/exports.5 projects/pf/head/usr.sbin/moused/moused.c projects/pf/head/usr.sbin/mptutil/mptutil.8 projects/pf/head/usr.sbin/mtest/mtest.8 projects/pf/head/usr.sbin/mtree/mtree.5 projects/pf/head/usr.sbin/newsyslog/newsyslog.c projects/pf/head/usr.sbin/newsyslog/newsyslog.conf.5 projects/pf/head/usr.sbin/nfsd/nfsv4.4 projects/pf/head/usr.sbin/ntp/doc/ntp-keygen.8 projects/pf/head/usr.sbin/ntp/doc/ntpdate.8 projects/pf/head/usr.sbin/pc-sysinstall/backend-partmanager/create-part.sh projects/pf/head/usr.sbin/pc-sysinstall/backend-query/disk-list.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-networking.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-newfs.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/functions-unmount.sh projects/pf/head/usr.sbin/pc-sysinstall/backend/startautoinstall.sh projects/pf/head/usr.sbin/pciconf/pciconf.8 projects/pf/head/usr.sbin/pkg_install/updating/pkg_updating.1 projects/pf/head/usr.sbin/pmcstat/pmcpl_calltree.c projects/pf/head/usr.sbin/pmcstat/pmcstat.8 projects/pf/head/usr.sbin/pmcstat/pmcstat_log.c projects/pf/head/usr.sbin/rtadvd/rtadvd.8 projects/pf/head/usr.sbin/rtadvd/rtadvd.conf.5 projects/pf/head/usr.sbin/setfib/setfib.1 projects/pf/head/usr.sbin/syslogd/syslogd.8 projects/pf/head/usr.sbin/tcpdump/tcpdump/tcpdump.1 projects/pf/head/usr.sbin/timed/timed/timed.8 projects/pf/head/usr.sbin/usbdump/usbdump.c projects/pf/head/usr.sbin/utx/utx.8 projects/pf/head/usr.sbin/watch/watch.c projects/pf/head/usr.sbin/wlandebug/wlandebug.8 projects/pf/head/usr.sbin/wlconfig/wlconfig.8 projects/pf/head/usr.sbin/ypserv/ypserv.8 Directory Properties: projects/pf/head/ (props changed) projects/pf/head/MAINTAINERS (props changed) projects/pf/head/cddl/contrib/opensolaris/ (props changed) projects/pf/head/contrib/bind9/ (props changed) projects/pf/head/contrib/binutils/ (props changed) projects/pf/head/contrib/bzip2/ (props changed) projects/pf/head/contrib/com_err/ (props changed) projects/pf/head/contrib/compiler-rt/ (props changed) projects/pf/head/contrib/dialog/ (props changed) projects/pf/head/contrib/ee/ (props changed) projects/pf/head/contrib/expat/ (props changed) projects/pf/head/contrib/file/ (props changed) projects/pf/head/contrib/gcc/ (props changed) projects/pf/head/contrib/gdb/ (props changed) projects/pf/head/contrib/gdtoa/ (props changed) projects/pf/head/contrib/gnu-sort/ (props changed) projects/pf/head/contrib/groff/ (props changed) projects/pf/head/contrib/less/ (props changed) projects/pf/head/contrib/libarchive/ (props changed) projects/pf/head/contrib/libarchive/cpio/ (props changed) projects/pf/head/contrib/libarchive/libarchive/ (props changed) projects/pf/head/contrib/libarchive/libarchive_fe/ (props changed) projects/pf/head/contrib/libarchive/tar/ (props changed) projects/pf/head/contrib/libc++/ (props changed) projects/pf/head/contrib/libcxxrt/ (props changed) projects/pf/head/contrib/libpcap/ (props changed) projects/pf/head/contrib/libstdc++/ (props changed) projects/pf/head/contrib/llvm/ (props changed) projects/pf/head/contrib/llvm/tools/clang/ (props changed) projects/pf/head/contrib/ncurses/ (props changed) projects/pf/head/contrib/netcat/ (props changed) projects/pf/head/contrib/ntp/ (props changed) projects/pf/head/contrib/one-true-awk/ (props changed) projects/pf/head/contrib/openbsm/ (props changed) projects/pf/head/contrib/openpam/ (props changed) projects/pf/head/contrib/openresolv/ (props changed) projects/pf/head/contrib/pf/ (props changed) projects/pf/head/contrib/sendmail/ (props changed) projects/pf/head/contrib/tcpdump/ (props changed) projects/pf/head/contrib/tcsh/ (props changed) projects/pf/head/contrib/tnftp/ (props changed) projects/pf/head/contrib/top/ (props changed) projects/pf/head/contrib/top/install-sh (props changed) projects/pf/head/contrib/tzcode/stdtime/ (props changed) projects/pf/head/contrib/tzcode/zic/ (props changed) projects/pf/head/contrib/tzdata/ (props changed) projects/pf/head/contrib/wpa/ (props changed) projects/pf/head/contrib/xz/ (props changed) projects/pf/head/crypto/heimdal/ (props changed) projects/pf/head/crypto/heimdal/ChangeLog.1998 (props changed) projects/pf/head/crypto/heimdal/ChangeLog.1999 (props changed) projects/pf/head/crypto/heimdal/ChangeLog.2000 (props changed) projects/pf/head/crypto/heimdal/ChangeLog.2001 (props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/ftp_var.h (props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftp/pathnames.h (props changed) projects/pf/head/crypto/heimdal/appl/ftp/ftpd/pathnames.h (props changed) projects/pf/head/crypto/heimdal/appl/telnet/README.ORIG (props changed) projects/pf/head/crypto/heimdal/appl/telnet/arpa/telnet.h (props changed) projects/pf/head/crypto/heimdal/appl/telnet/libtelnet/misc.h (props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet.state (props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/defines.h (props changed) projects/pf/head/crypto/heimdal/appl/telnet/telnet/types.h (props changed) projects/pf/head/crypto/heimdal/lib/hx509/ref/pkcs11.h (props changed) projects/pf/head/crypto/heimdal/lib/kadm5/kadm5-protos.h (props changed) projects/pf/head/crypto/openssh/ (props changed) projects/pf/head/crypto/openssl/ (props changed) projects/pf/head/gnu/lib/ (props changed) projects/pf/head/gnu/usr.bin/binutils/ (props changed) projects/pf/head/gnu/usr.bin/cc/cc_tools/ (props changed) projects/pf/head/gnu/usr.bin/gdb/ (props changed) projects/pf/head/lib/libc/ (props changed) projects/pf/head/lib/libc/stdtime/ (props changed) projects/pf/head/lib/libutil/ (props changed) projects/pf/head/lib/libz/ (props changed) projects/pf/head/sbin/ (props changed) projects/pf/head/sbin/ipfw/ (props changed) projects/pf/head/share/man/man4/ (props changed) projects/pf/head/share/mk/bsd.arch.inc.mk (props changed) projects/pf/head/share/zoneinfo/ (props changed) projects/pf/head/sys/ (props changed) projects/pf/head/sys/amd64/include/xen/ (props changed) projects/pf/head/sys/boot/ (props changed) projects/pf/head/sys/boot/i386/efi/ (props changed) projects/pf/head/sys/boot/ia64/efi/ (props changed) projects/pf/head/sys/boot/ia64/ski/ (props changed) projects/pf/head/sys/boot/powerpc/boot1.chrp/ (props changed) projects/pf/head/sys/boot/powerpc/ofw/ (props changed) projects/pf/head/sys/cddl/contrib/opensolaris/ (props changed) projects/pf/head/sys/conf/ (props changed) projects/pf/head/sys/contrib/dev/acpica/ (props changed) projects/pf/head/sys/contrib/dev/acpica/common/ (props changed) projects/pf/head/sys/contrib/dev/acpica/compiler/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/disassembler/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/dispatcher/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/events/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/executer/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/parser/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/resources/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/tables/ (props changed) projects/pf/head/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/pf/head/sys/contrib/dev/acpica/include/ (props changed) projects/pf/head/sys/contrib/dev/acpica/os_specific/ (props changed) projects/pf/head/sys/contrib/octeon-sdk/ (props changed) projects/pf/head/sys/contrib/pf/ (props changed) projects/pf/head/sys/contrib/x86emu/ (props changed) projects/pf/head/sys/i386/conf/XENHVM (props changed) projects/pf/head/usr.bin/calendar/ (props changed) projects/pf/head/usr.bin/csup/ (props changed) projects/pf/head/usr.bin/procstat/ (props changed) projects/pf/head/usr.sbin/ndiscvt/ (props changed) projects/pf/head/usr.sbin/rtadvctl/ (props changed) projects/pf/head/usr.sbin/rtadvd/ (props changed) projects/pf/head/usr.sbin/rtsold/ (props changed) projects/pf/head/usr.sbin/zic/ (props changed) Modified: projects/pf/head/Makefile ============================================================================== --- projects/pf/head/Makefile Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/Makefile Tue Apr 3 08:24:32 2012 (r233826) @@ -18,6 +18,7 @@ # reinstallkernel.debug # kernel - buildkernel + installkernel. # kernel-toolchain - Builds the subset of world necessary to build a kernel +# kernel-toolchains - Build kernel-toolchain for all universe targets. # doxygen - Build API documentation of the kernel, needs doxygen. # update - Convenient way to update your source tree(s). # check-old - List obsolete directories/files/libraries. @@ -131,20 +132,19 @@ _MAKE= PATH=${PATH} ${BINMAKE} -f Makefi # Guess machine architecture from machine type, and vice versa. .if !defined(TARGET_ARCH) && defined(TARGET) -_TARGET_ARCH= ${TARGET:S/pc98/i386/:S/mips/mipsel/} +_TARGET_ARCH= ${TARGET:S/pc98/i386/} .elif !defined(TARGET) && defined(TARGET_ARCH) && \ ${TARGET_ARCH} != ${MACHINE_ARCH} -_TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/} +_TARGET= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/} .endif -# Legacy names, for a transition period mips:mips -> mipsel:mips +# Legacy names, for another transition period mips:mips(n32|64)?eb -> mips:mips\1 .if defined(TARGET) && defined(TARGET_ARCH) && \ - ${TARGET_ARCH} == "mips" && ${TARGET} == "mips" -.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb" -.if defined(TARGET_BIG_ENDIAN) -_TARGET_ARCH=mipseb -.else -_TARGET_ARCH=mipsel + ${TARGET} == "mips" && ${TARGET_ARCH:Mmips*eb} +_TARGET_ARCH= ${TARGET_ARCH:C/eb$//} +.warning "TARGET_ARCH of ${TARGET_ARCH} is deprecated in favor of ${_TARGET_ARCH}" .endif +.if defined(TARGET) && ${TARGET} == "mips" && defined(TARGET_BIG_ENDIAN) +.warning "TARGET_BIG_ENDIAN is no longer necessary for MIPS. Big-endian is not the default." .endif # arm with TARGET_BIG_ENDIAN -> armeb .if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && defined(TARGET_BIG_ENDIAN) @@ -317,6 +317,9 @@ tinderbox: toolchains: @cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=toolchain universe +kernel-toolchains: + @cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=kernel-toolchain universe + # # universe # @@ -327,7 +330,7 @@ toolchains: .if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets) TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 TARGET_ARCHES_arm?= arm armeb -TARGET_ARCHES_mips?= mipsel mipseb mips64el mips64eb mipsn32eb +TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 TARGET_ARCHES_powerpc?= powerpc powerpc64 TARGET_ARCHES_pc98?= i386 .for target in ${TARGETS} Modified: projects/pf/head/Makefile.inc1 ============================================================================== --- projects/pf/head/Makefile.inc1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/Makefile.inc1 Tue Apr 3 08:24:32 2012 (r233826) @@ -136,7 +136,7 @@ VERSION!= uname -srp VERSION+= ${OSRELDATE} .endif -KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64 +KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64 .if ${TARGET} == ${TARGET_ARCH} _t= ${TARGET} .else @@ -468,13 +468,6 @@ build32: -p ${LIB32TMP}/usr/include >/dev/null mkdir -p ${WORLDTMP} ln -sf ${.CURDIR}/sys ${WORLDTMP} -.if ${MK_KERBEROS} != "no" -.for _t in obj depend all - cd ${.CURDIR}/kerberos5/tools; \ - MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \ - DIRPRFX=kerberos5/tools/ ${_t} -.endfor -.endif .for _t in obj includes cd ${.CURDIR}/include; ${LIB32WMAKE} DIRPRFX=include/ ${_t} cd ${.CURDIR}/lib; ${LIB32WMAKE} DIRPRFX=lib/ ${_t} @@ -1054,9 +1047,11 @@ _clang_tblgen= \ usr.bin/clang/clang-tblgen .endif +# dtrace tools are required for older bootstrap env and cross-build .if ${MK_CDDL} != "no" && \ - ${BOOTSTRAPPING} < 800038 && \ - !(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999) + ((${BOOTSTRAPPING} < 800038 && \ + !(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999)) \ + || (${MACHINE} != ${TARGET} || ${MACHINE_ARCH} != ${TARGET_ARCH})) _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif @@ -1065,12 +1060,22 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ _dtc= gnu/usr.bin/dtc .endif +.if ${MK_KERBEROS} != "no" +_kerberos5_bootstrap_tools= \ + kerberos5/tools/make-roken \ + kerberos5/lib/libroken \ + kerberos5/lib/libvers \ + kerberos5/tools/asn1_compile \ + kerberos5/tools/slc +.endif + # Please document (add comment) why something is in 'bootstrap-tools'. # Try to bound the building of the bootstrap-tool to just the # FreeBSD versions that need the tool built at this stage of the build. bootstrap-tools: .for _tool in \ ${_clang_tblgen} \ + ${_kerberos5_bootstrap_tools} \ ${_dtrace_tools} \ ${_strfile} \ ${_gperf} \ @@ -1112,10 +1117,6 @@ _share= share/syscons/scrnmaps _gcc_tools= gnu/usr.bin/cc/cc_tools .endif -.if ${MK_KERBEROS} != "no" -_kerberos5_tools= kerberos5/tools -.endif - .if ${MK_RESCUE} != "no" _rescue= rescue/rescue .endif @@ -1140,8 +1141,7 @@ build-tools: ${MAKE} DIRPRFX=${_tool}/ build-tools .endfor .for _tool in \ - ${_gcc_tools} \ - ${_kerberos5_tools} + ${_gcc_tools} ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \ cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \ @@ -1243,12 +1243,20 @@ _startup_libs+= lib/libcxxrt .endif gnu/lib/libgcc__L: lib/libc__L +.if ${MK_LIBCPLUSPLUS} != "no" +lib/libcxxrt__L: gnu/lib/libgcc__L +.endif -_prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libhdb} \ +_prebuild_libs= ${_kerberos5_lib_libasn1} \ + ${_kerberos5_lib_libhdb} \ + ${_kerberos5_lib_libheimbase} \ ${_kerberos5_lib_libheimntlm} \ + ${_kerberos5_lib_libheimsqlite} \ + ${_kerberos5_lib_libheimipcc} \ ${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \ ${_kerberos5_lib_libroken} \ - lib/libbz2 lib/libcom_err lib/libcrypt \ + ${_kerberos5_lib_libwind} \ + lib/libbz2 ${_libcom_err} lib/libcrypt \ lib/libexpat \ ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/liblzma lib/libmd \ @@ -1298,14 +1306,21 @@ _secure_lib= secure/lib .if ${MK_KERBEROS} != "no" kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ - kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L -kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L + kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \ + kerberos5/lib/libwind__L kerberos5/lib/libheimsqlite__L +kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L \ + kerberos5/lib/libroken__L lib/libcom_err__L kerberos5/lib/libhx509__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ - secure/lib/libcrypto__L kerberos5/lib/libroken__L + secure/lib/libcrypto__L kerberos5/lib/libroken__L kerberos5/lib/libwind__L kerberos5/lib/libkrb5__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ lib/libcrypt__L secure/lib/libcrypto__L kerberos5/lib/libhx509__L \ - kerberos5/lib/libroken__L + kerberos5/lib/libroken__L kerberos5/lib/libwind__L \ + kerberos5/lib/libheimbase__L kerberos5/lib/libheimipcc__L kerberos5/lib/libroken__L: lib/libcrypt__L +kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L +kerberos5/lib/libheimbase__L: lib/libthr__L +kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L kerberos5/lib/libheimbase__L lib/libthr__L +kerberos5/lib/libheimsqlite__L: lib/libthr__L .endif .if ${MK_GSSAPI} != "no" @@ -1320,10 +1335,15 @@ _lib_libipx= lib/libipx _kerberos5_lib= kerberos5/lib _kerberos5_lib_libasn1= kerberos5/lib/libasn1 _kerberos5_lib_libhdb= kerberos5/lib/libhdb +_kerberos5_lib_libheimbase= kerberos5/lib/libheimbase _kerberos5_lib_libkrb5= kerberos5/lib/libkrb5 _kerberos5_lib_libhx509= kerberos5/lib/libhx509 _kerberos5_lib_libroken= kerberos5/lib/libroken _kerberos5_lib_libheimntlm= kerberos5/lib/libheimntlm +_kerberos5_lib_libheimsqlite= kerberos5/lib/libheimsqlite +_kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc +_kerberos5_lib_libwind= kerberos5/lib/libwind +_libcom_err= lib/libcom_err .endif .if ${MK_NIS} != "no" Modified: projects/pf/head/ObsoleteFiles.inc ============================================================================== --- projects/pf/head/ObsoleteFiles.inc Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/ObsoleteFiles.inc Tue Apr 3 08:24:32 2012 (r233826) @@ -38,6 +38,50 @@ # xargs -n1 | sort | uniq -d; # done +# 20120322: Update heimdal to 1.5.1. +OLD_FILES+=usr/include/krb5-v4compat.h \ + usr/include/krb_err.h \ + usr/include/hdb-private.h \ + usr/share/man/man3/krb5_addresses.3.gz \ + usr/share/man/man3/krb5_cc_cursor.3.gz \ + usr/share/man/man3/krb5_cc_ops.3.gz \ + usr/share/man/man3/krb5_config.3.gz \ + usr/share/man/man3/krb5_config_get_int_default.3.gz \ + usr/share/man/man3/krb5_context.3.gz \ + usr/share/man/man3/krb5_data.3.gz \ + usr/share/man/man3/krb5_err.3.gz \ + usr/share/man/man3/krb5_errx.3.gz \ + usr/share/man/man3/krb5_keyblock.3.gz \ + usr/share/man/man3/krb5_keytab_entry.3.gz \ + usr/share/man/man3/krb5_kt_cursor.3.gz \ + usr/share/man/man3/krb5_kt_ops.3.gz \ + usr/share/man/man3/krb5_set_warn_dest.3.gz \ + usr/share/man/man3/krb5_verr.3.gz \ + usr/share/man/man3/krb5_verrx.3.gz \ + usr/share/man/man3/krb5_vwarnx.3.gz \ + usr/share/man/man3/krb5_warn.3.gz \ + usr/share/man/man3/krb5_warnx.3.gz +OLD_LIBS+=usr/lib/libasn1.so.10 \ + usr/lib/libhdb.so.10 \ + usr/lib/libheimntlm.so.10 \ + usr/lib/libhx509.so.10 \ + usr/lib/libkadm5clnt.so.10 \ + usr/lib/libkadm5srv.so.10 \ + usr/lib/libkafs5.so.10 \ + usr/lib/libkrb5.so.10 \ + usr/lib/libroken.so.10 \ + usr/lib32/libasn1.so.10 \ + usr/lib32/libhdb.so.10 \ + usr/lib32/libheimntlm.so.10 \ + usr/lib32/libhx509.so.10 \ + usr/lib32/libkadm5clnt.so.10 \ + usr/lib32/libkadm5srv.so.10 \ + usr/lib32/libkafs5.so.10 \ + usr/lib32/libkrb5.so.10 \ + usr/lib32/libroken.so.10 +# 20120309: Remove fifofs header files. +OLD_FILES+=usr/include/fs/fifofs/fifo.h +OLD_DIRS+=usr/include/fs/fifofs # 20120225: libarchive 3.0.3 OLD_FILES+=usr/share/man/man3/archive_read_data_into_buffer.3.gz \ usr/share/man/man3/archive_read_support_compression_all.3.gz \ @@ -56,9 +100,7 @@ OLD_FILES+=usr/share/man/man3/archive_re usr/share/man/man3/archive_write_set_compression_none.3.gz \ usr/share/man/man3/archive_write_set_compression_program.3.gz OLD_LIBS+=usr/lib/libarchive.so.5 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/libarchive.so.5 -.endif # 20120113: removal of wtmpcvt(1) OLD_FILES+=usr/bin/wtmpcvt OLD_FILES+=usr/share/man/man1/wtmpcvt.1.gz @@ -71,12 +113,10 @@ OLD_FILES+=usr/lib/libodialog.a OLD_FILES+=usr/lib/libodialog.so OLD_LIBS+=usr/lib/libodialog.so.7 OLD_FILES+=usr/lib/libodialog_p.a -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libodialog.a OLD_FILES+=usr/lib32/libodialog.so OLD_LIBS+=usr/lib32/libodialog.so.7 OLD_FILES+=usr/lib32/libodialog_p.a -.endif # 20110930: sysinstall removed OLD_FILES+=usr/sbin/sysinstall OLD_FILES+=usr/share/man/man8/sysinstall.8.gz @@ -84,12 +124,10 @@ OLD_FILES+=usr/lib/libftpio.a OLD_FILES+=usr/lib/libftpio.so OLD_LIBS+=usr/lib/libftpio.so.8 OLD_FILES+=usr/lib/libftpio_p.a -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libftpio.a OLD_FILES+=usr/lib32/libftpio.so OLD_LIBS+=usr/lib32/libftpio.so.8 OLD_FILES+=usr/lib32/libftpio_p.a -.endif OLD_FILES+=usr/include/ftpio.h OLD_FILES+=usr/share/man/man3/ftpio.3.gz # 20110915: rename congestion control manpages @@ -108,7 +146,6 @@ OLD_LIBS+=usr/lib/libdwarf.so.2 OLD_LIBS+=usr/lib/libopie.so.6 OLD_LIBS+=usr/lib/librtld_db.so.1 OLD_LIBS+=usr/lib/libtacplus.so.4 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/libcam.so.5 OLD_LIBS+=usr/lib32/libpcap.so.7 OLD_LIBS+=usr/lib32/libufs.so.5 @@ -117,7 +154,6 @@ OLD_LIBS+=usr/lib32/libdwarf.so.2 OLD_LIBS+=usr/lib32/libopie.so.6 OLD_LIBS+=usr/lib32/librtld_db.so.1 OLD_LIBS+=usr/lib32/libtacplus.so.4 -.endif # 20110817: no more acd.4, ad.4, afd.4 and ast.4 OLD_FILES+=usr/share/man/man4/acd.4.gz OLD_FILES+=usr/share/man/man4/ad.4.gz @@ -157,17 +193,13 @@ OLD_FILES+=usr/lib/libpkg.a OLD_FILES+=usr/lib/libpkg.so OLD_LIBS+=usr/lib/libpkg.so.0 OLD_FILES+=usr/lib/libpkg_p.a -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libpkg.a OLD_FILES+=usr/lib32/libpkg.so OLD_LIBS+=usr/lib32/libpkg.so.0 OLD_FILES+=usr/lib32/libpkg_p.a -.endif # 20110517: libsbuf version bump OLD_LIBS+=lib/libsbuf.so.5 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/libsbuf.so.5 -.endif # 20110502: new clang import which bumps version from 2.9 to 3.0 OLD_FILES+=usr/include/clang/2.9/emmintrin.h OLD_FILES+=usr/include/clang/2.9/mm_malloc.h @@ -196,12 +228,10 @@ OLD_FILES+=usr/lib/libobjc_p.a OLD_FILES+=usr/libexec/cc1obj OLD_LIBS+=usr/lib/libobjc.so.4 OLD_DIRS+=usr/include/objc -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libobjc.a OLD_FILES+=usr/lib32/libobjc.so OLD_FILES+=usr/lib32/libobjc_p.a OLD_LIBS+=usr/lib32/libobjc.so.4 -.endif # 20110331: firmware.img created at build time OLD_FILES+=usr/share/examples/kld/firmware/fwimage/firmware.img # 20110224: sticky.8 -> sticky.7 @@ -323,9 +353,7 @@ OLD_FILES+=usr/include/machine/intr.h .endif # 20100514: library version bump for versioned symbols for liblzma OLD_LIBS+=usr/lib/liblzma.so.0 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/liblzma.so.0 -.endif # 20100511: move GCC-specific headers to /usr/include/gcc .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/emmintrin.h @@ -366,9 +394,7 @@ OLD_FILES+=usr/share/info/cpio.info.gz OLD_FILES+=usr/share/man/man1/gcpio.1.gz # 20100322: libz update OLD_LIBS+=lib/libz.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libz.so.5 -.endif # 20100314: removal of regexp.h OLD_FILES+=usr/include/regexp.h OLD_FILES+=usr/share/man/man3/regexp.3.gz @@ -417,9 +443,7 @@ OLD_FILES+=usr/share/man/man5/lastlog.5. OLD_FILES+=usr/share/man/man5/utmp.5.gz OLD_FILES+=usr/share/man/man5/wtmp.5.gz OLD_LIBS+=lib/libutil.so.8 -.if ${TARGET_ARCH} == "amd64" OLB_LIBS+=usr/lib32/libutil.so.8 -.endif # 20100105: new userland semaphore implementation OLD_FILES+=usr/include/sys/semaphore.h # 20100103: ntptrace(8) removed @@ -627,7 +651,6 @@ OLD_LIBS+=usr/lib/snmp_hostres.so.5 OLD_LIBS+=usr/lib/snmp_mibII.so.5 OLD_LIBS+=usr/lib/snmp_netgraph.so.5 OLD_LIBS+=usr/lib/snmp_pf.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libalias.so.6 OLD_LIBS+=usr/lib32/libarchive.so.4 OLD_LIBS+=usr/lib32/libauditd.so.4 @@ -728,7 +751,6 @@ OLD_LIBS+=usr/lib32/pam_self.so.4 OLD_LIBS+=usr/lib32/pam_ssh.so.4 OLD_LIBS+=usr/lib32/pam_tacplus.so.4 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) @@ -915,9 +937,7 @@ OLD_FILES+=usr/share/man/man8/sliplogin. OLD_FILES+=usr/share/man/man8/slstat.8.gz # 20090321: libpcap upgraded to 1.0.0 OLD_LIBS+=lib/libpcap.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libpcap.so.5 -.endif # 20090319: uscanner(4) has been removed OLD_FILES+=usr/share/man/man4/uscanner.4.gz # 20090313: k8temp(4) renamed to amdtemp(4) @@ -929,17 +949,13 @@ OLD_FILES+=usr/lib/libusb20.so OLD_FILES+=usr/lib/libusb20_p.a OLD_FILES+=usr/include/libusb20_compat01.h OLD_FILES+=usr/include/libusb20_compat10.h -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libusb20.so.1 OLD_FILES+=usr/lib32/libusb20.a OLD_FILES+=usr/lib32/libusb20.so OLD_FILES+=usr/lib32/libusb20_p.a -.endif # 20090226: libmp(3) functions renamed OLD_LIBS+=usr/lib/libmp.so.6 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libmp.so.6 -.endif # 20090223: changeover of USB stacks OLD_FILES+=usr/include/dev/usb2/include/ufm2_ioctl.h OLD_FILES+=usr/include/dev/usb2/include/urio2_ioctl.h @@ -1242,9 +1258,7 @@ OLD_LIBS+=usr/lib/libkadm5srv.so.9 OLD_LIBS+=usr/lib/libkafs5.so.9 OLD_LIBS+=usr/lib/libkrb5.so.9 OLD_LIBS+=usr/lib/libroken.so.9 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libgssapi.so.9 -.endif # 20080420: Symbol card support dropped OLD_FILES+=usr/include/dev/wi/spectrum24t_cf.h # 20080420: awi removal @@ -1271,10 +1285,8 @@ OLD_FILES+=usr/share/man/man2/kse_releas OLD_FILES+=usr/share/man/man2/kse_switchin.2.gz OLD_FILES+=usr/share/man/man2/kse_thr_interrupt.2.gz OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 -.endif # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal @@ -1294,11 +1306,9 @@ OLD_FILES+=usr/include/sys/xrpuio.h OLD_FILES+=usr/lib/libkse.a OLD_FILES+=usr/lib/libkse_p.a OLD_FILES+=usr/lib/libkse_pic.a -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libkse.a OLD_FILES+=usr/lib32/libkse_p.a OLD_FILES+=usr/lib32/libkse_pic.a -.endif # 20071129: Removed a Solaris compatibility header OLD_FILES+=usr/include/sys/_elf_solaris.h # 20071125: Renamed to pmc_get_msr() @@ -1398,12 +1408,10 @@ OLD_DIRS+=usr/include/netatm/ipatm OLD_DIRS+=usr/include/netatm/uni OLD_DIRS+=usr/include/netatm OLD_DIRS+=usr/share/examples/atm -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libatm.a OLD_FILES+=usr/lib32/libatm.so OLD_LIBS+=usr/lib32/libatm.so.5 OLD_FILES+=usr/lib32/libatm_p.a -.endif # 20070705: I4B headers repo-copied to include/i4b/ .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/i4b_cause.h @@ -1488,7 +1496,6 @@ OLD_LIBS+=usr/lib/snmp_hostres.so.4 OLD_LIBS+=usr/lib/snmp_mibII.so.4 OLD_LIBS+=usr/lib/snmp_netgraph.so.4 OLD_LIBS+=usr/lib/snmp_pf.so.4 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libalias.so.5 OLD_LIBS+=usr/lib32/libbsnmp.so.3 OLD_LIBS+=usr/lib32/libdialog.so.5 @@ -1523,7 +1530,6 @@ OLD_LIBS+=usr/lib32/pam_self.so.3 OLD_LIBS+=usr/lib32/pam_ssh.so.3 OLD_LIBS+=usr/lib32/pam_tacplus.so.3 OLD_LIBS+=usr/lib32/pam_unix.so.3 -.endif # 20070613: IPX over IP tunnel removal OLD_FILES+=usr/include/netipx/ipx_ip.h # 20070605: sched_core removal @@ -1593,7 +1599,6 @@ OLD_LIBS+=usr/lib/libwrap.so.4 OLD_LIBS+=usr/lib/libypclnt.so.2 OLD_LIBS+=usr/lib/snmp_bridge.so.3 OLD_LIBS+=usr/lib/snmp_hostres.so.3 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libatm.so.4 OLD_LIBS+=usr/lib32/libbegemot.so.2 OLD_LIBS+=usr/lib32/libbluetooth.so.2 @@ -1652,7 +1657,6 @@ OLD_LIBS+=usr/lib32/libvgl.so.4 OLD_LIBS+=usr/lib32/libwrap.so.4 OLD_LIBS+=usr/lib32/libypclnt.so.2 OLD_LIBS+=usr/lib32/libz.so.3 -.endif # 20070519: GCC 4.2 OLD_FILES+=usr/bin/f77 OLD_FILES+=usr/bin/protoize @@ -1899,9 +1903,7 @@ OLD_FILES+=usr/bin/uuidgen OLD_FILES+=usr/share/info/bzip2.info.gz # 20070303: libarchive 2.0 OLD_LIBS+=usr/lib/libarchive.so.3 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libarchive.so.3 -.endif # 20070301: remove addr2ascii and ascii2addr OLD_FILES+=usr/share/man/man3/addr2ascii.3.gz OLD_FILES+=usr/share/man/man3/ascii2addr.3.gz @@ -1918,14 +1920,12 @@ OLD_FILES+=usr/lib/libmytinfo_p.a OLD_FILES+=usr/lib/libmytinfow.a OLD_FILES+=usr/lib/libmytinfow.so OLD_FILES+=usr/lib/libmytinfow_p.a -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libmytinfo.a OLD_FILES+=usr/lib32/libmytinfo.so OLD_FILES+=usr/lib32/libmytinfo_p.a OLD_FILES+=usr/lib32/libmytinfow.a OLD_FILES+=usr/lib32/libmytinfow.so OLD_FILES+=usr/lib32/libmytinfow_p.a -.endif # 20070128: remove vnconfig OLD_FILES+=usr/sbin/vnconfig # 20070127: remove bpf_compat.h @@ -4608,9 +4608,7 @@ OLD_FILES+=usr/share/man/man1/x509.1.gz OLD_FILES+=usr/share/man/man3/SSL_COMP_add_compression_method.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_get_ex_new_index.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_dup.3.gz -OLD_FILES+=usr/share/man/man3/archive_entry_hardlink_w.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_set_tartype.3.gz -OLD_FILES+=usr/share/man/man3/archive_entry_symlink_w.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_tartype.3.gz OLD_FILES+=usr/share/man/man3/archive_read_data_into_file.3.gz OLD_FILES+=usr/share/man/man3/archive_read_open_tar.3.gz @@ -5269,40 +5267,32 @@ OLD_LIBS+=usr/lib/libkadm5srv.so.8 OLD_LIBS+=usr/lib/libkafs5.so.8 OLD_LIBS+=usr/lib/libkrb5.so.8 OLD_LIBS+=usr/lib/libobjc.so.2 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libgssapi.so.8 OLD_LIBS+=usr/lib32/libobjc.so.2 -.endif # 20070519: GCC 4.2 OLD_LIBS+=usr/lib/libg2c.a OLD_LIBS+=usr/lib/libg2c.so OLD_LIBS+=usr/lib/libg2c.so.2 OLD_LIBS+=usr/lib/libg2c_p.a OLD_LIBS+=usr/lib/libgcc_pic.a -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libg2c.a OLD_LIBS+=usr/lib32/libg2c.so OLD_LIBS+=usr/lib32/libg2c.so.2 OLD_LIBS+=usr/lib32/libg2c_p.a OLD_LIBS+=usr/lib32/libgcc_pic.a -.endif # 20060729: OpenSSL 0.9.7e -> 0.9.8b upgrade OLD_LIBS+=lib/libcrypto.so.4 OLD_LIBS+=usr/lib/libssl.so.4 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libcrypto.so.4 OLD_LIBS+=usr/lib32/libssl.so.4 -.endif # 20060521: gethostbyaddr(3) ABI change OLD_LIBS+=usr/lib/libroken.so.8 OLD_LIBS+=lib/libatm.so.3 OLD_LIBS+=lib/libc.so.6 OLD_LIBS+=lib/libutil.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libatm.so.3 OLD_LIBS+=usr/lib32/libc.so.6 OLD_LIBS+=usr/lib32/libutil.so.5 -.endif # 20060413: shared library moved to /usr/lib OLD_LIBS+=lib/libgpib.so.1 # 20060413: libpcap.so.4 moved to /lib/ @@ -5316,12 +5306,10 @@ OLD_LIBS+=usr/lib/libc_r.a OLD_LIBS+=usr/lib/libc_r.so OLD_LIBS+=usr/lib/libc_r.so.7 OLD_LIBS+=usr/lib/libc_r_p.a -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libc_r.a OLD_LIBS+=usr/lib32/libc_r.so OLD_LIBS+=usr/lib32/libc_r.so.7 OLD_LIBS+=usr/lib32/libc_r_p.a -.endif # 20050722: bump for 6.0-RELEASE OLD_LIBS+=lib/libalias.so.4 OLD_LIBS+=lib/libatm.so.2 @@ -5533,10 +5521,8 @@ OLD_LIBS+=usr/lib/libc_r.so.3 OLD_LIBS+=usr/lib/libarchive.so.2 OLD_LIBS+=usr/lib/libbsnmp.so.1 OLD_LIBS+=usr/lib/libc_r.so.6 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libarchive.so.2 OLD_LIBS+=usr/lib32/libc_r.so.6 -.endif OLD_LIBS+=usr/lib/libcipher.so.2 OLD_LIBS+=usr/lib/libgssapi.so.6 OLD_LIBS+=usr/lib/libkse.so.1 Modified: projects/pf/head/UPDATING ============================================================================== --- projects/pf/head/UPDATING Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/UPDATING Tue Apr 3 08:24:32 2012 (r233826) @@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20120328: + Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb + is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is + now spelled mips. This is to aid compatibility with third-party + software that expects this naming scheme in uname(3). Little-endian + settings are unchanged. + 20120306: Disable by default the option VFS_ALLOW_NONMPSAFE for all supported platforms. Modified: projects/pf/head/bin/expr/expr.y ============================================================================== --- projects/pf/head/bin/expr/expr.y Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/expr/expr.y Tue Apr 3 08:24:32 2012 (r233826) @@ -540,7 +540,7 @@ op_colon(struct val *a, struct val *b) v = make_str(a->u.s + rm[1].rm_so); } else - v = make_integer((intmax_t)(rm[0].rm_eo - rm[0].rm_so)); + v = make_integer((intmax_t)(rm[0].rm_eo)); else if (rp.re_nsub == 0) v = make_integer((intmax_t)0); Modified: projects/pf/head/bin/kenv/kenv.1 ============================================================================== --- projects/pf/head/bin/kenv/kenv.1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/kenv/kenv.1 Tue Apr 3 08:24:32 2012 (r233826) @@ -84,7 +84,6 @@ everything after a '#' character, are ig character except '=' is acceptable as part of a name. Quotes are optional and necessary only if the value contains whitespace. -.Pp .Sh SEE ALSO .Xr kenv 2 , .Xr config 5 , Modified: projects/pf/head/bin/ps/ps.1 ============================================================================== --- projects/pf/head/bin/ps/ps.1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/ps/ps.1 Tue Apr 3 08:24:32 2012 (r233826) @@ -29,7 +29,7 @@ .\" @(#)ps.1 8.3 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd November 22, 2011 +.Dd March 8, 2012 .Dt PS 1 .Os .Sh NAME @@ -292,36 +292,37 @@ The flags associated with the process as the include file .In sys/proc.h : .Bl -column P_SINGLE_BOUNDARY 0x40000000 -.It Dv "P_ADVLOCK" Ta No "0x00001 Process may hold a POSIX advisory lock" -.It Dv "P_CONTROLT" Ta No "0x00002 Has a controlling terminal" -.It Dv "P_KTHREAD" Ta No "0x00004 Kernel thread" -.It Dv "P_FOLLOWFORK" Ta No "0x00008 Attach debugger to new children" -.It Dv "P_PPWAIT" Ta No "0x00010 Parent is waiting for child to exec/exit" -.It Dv "P_PROFIL" Ta No "0x00020 Has started profiling" -.It Dv "P_STOPPROF" Ta No "0x00040 Has thread in requesting to stop prof" -.It Dv "P_HADTHREADS" Ta No "0x00080 Has had threads (no cleanup shortcuts)" -.It Dv "P_SUGID" Ta No "0x00100 Had set id privileges since last exec" -.It Dv "P_SYSTEM" Ta No "0x00200 System proc: no sigs, stats or swapping" -.It Dv "P_SINGLE_EXIT" Ta No "0x00400 Threads suspending should exit, not wait" -.It Dv "P_TRACED" Ta No "0x00800 Debugged process being traced" -.It Dv "P_WAITED" Ta No "0x01000 Someone is waiting for us" -.It Dv "P_WEXIT" Ta No "0x02000 Working on exiting" -.It Dv "P_EXEC" Ta No "0x04000 Process called exec" -.It Dv "P_WKILLED" Ta No "0x08000 Killed, shall go to kernel/user boundary ASAP" -.It Dv "P_CONTINUED" Ta No "0x10000 Proc has continued from a stopped state" -.It Dv "P_STOPPED_SIG" Ta No "0x20000 Stopped due to SIGSTOP/SIGTSTP" -.It Dv "P_STOPPED_TRACE" Ta No "0x40000 Stopped because of tracing" -.It Dv "P_STOPPED_SINGLE" Ta No "0x80000 Only one thread can continue" -.It Dv "P_PROTECTED" Ta No "0x100000 Do not kill on memory overcommit" -.It Dv "P_SIGEVENT" Ta No "0x200000 Process pending signals changed" -.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000 Threads should suspend at user boundary" -.It Dv "P_HWPMC" Ta No "0x800000 Process is using HWPMCs" -.It Dv "P_JAILED" Ta No "0x1000000 Process is in jail" -.It Dv "P_INEXEC" Ta No "0x4000000 Process is in execve()" -.It Dv "P_STATCHILD" Ta No "0x8000000 Child process stopped or exited" -.It Dv "P_INMEM" Ta No "0x10000000 Loaded into memory" -.It Dv "P_SWAPPINGOUT" Ta No "0x20000000 Process is being swapped out" -.It Dv "P_SWAPPINGIN" Ta No "0x40000000 Process is being swapped in" +.It Dv "P_ADVLOCK" Ta No "0x00001" Ta "Process may hold a POSIX advisory lock" +.It Dv "P_CONTROLT" Ta No "0x00002" Ta "Has a controlling terminal" +.It Dv "P_KTHREAD" Ta No "0x00004" Ta "Kernel thread" +.It Dv "P_FOLLOWFORK" Ta No "0x00008" Ta "Attach debugger to new children" +.It Dv "P_PPWAIT" Ta No "0x00010" Ta "Parent is waiting for child to exec/exit" +.It Dv "P_PROFIL" Ta No "0x00020" Ta "Has started profiling" +.It Dv "P_STOPPROF" Ta No "0x00040" Ta "Has thread in requesting to stop prof" +.It Dv "P_HADTHREADS" Ta No "0x00080" Ta "Has had threads (no cleanup shortcuts)" +.It Dv "P_SUGID" Ta No "0x00100" Ta "Had set id privileges since last exec" +.It Dv "P_SYSTEM" Ta No "0x00200" Ta "System proc: no sigs, stats or swapping" +.It Dv "P_SINGLE_EXIT" Ta No "0x00400" Ta "Threads suspending should exit, not wait" +.It Dv "P_TRACED" Ta No "0x00800" Ta "Debugged process being traced" +.It Dv "P_WAITED" Ta No "0x01000" Ta "Someone is waiting for us" +.It Dv "P_WEXIT" Ta No "0x02000" Ta "Working on exiting" +.It Dv "P_EXEC" Ta No "0x04000" Ta "Process called exec" +.It Dv "P_WKILLED" Ta No "0x08000" Ta "Killed, shall go to kernel/user boundary ASAP" +.It Dv "P_CONTINUED" Ta No "0x10000" Ta "Proc has continued from a stopped state" +.It Dv "P_STOPPED_SIG" Ta No "0x20000" Ta "Stopped due to SIGSTOP/SIGTSTP" +.It Dv "P_STOPPED_TRACE" Ta No "0x40000" Ta "Stopped because of tracing" +.It Dv "P_STOPPED_SINGLE" Ta No "0x80000" Ta "Only one thread can continue" +.It Dv "P_PROTECTED" Ta No "0x100000" Ta "Do not kill on memory overcommit" +.It Dv "P_SIGEVENT" Ta No "0x200000" Ta "Process pending signals changed" +.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000" Ta "Threads should suspend at user boundary" +.It Dv "P_HWPMC" Ta No "0x800000" Ta "Process is using HWPMCs" +.It Dv "P_JAILED" Ta No "0x1000000" Ta "Process is in jail" +.It Dv "P_ORPHAN" Ta No "0x2000000" Ta "Orphaned by original parent, reparented to debugger" +.It Dv "P_INEXEC" Ta No "0x4000000" Ta "Process is in execve()" +.It Dv "P_STATCHILD" Ta No "0x8000000" Ta "Child process stopped or exited" +.It Dv "P_INMEM" Ta No "0x10000000" Ta "Loaded into memory" +.It Dv "P_SWAPPINGOUT" Ta No "0x20000000" Ta "Process is being swapped out" +.It Dv "P_SWAPPINGIN" Ta No "0x40000000" Ta "Process is being swapped in" .El .It Cm label The MAC label of the process. Modified: projects/pf/head/bin/pwait/pwait.1 ============================================================================== --- projects/pf/head/bin/pwait/pwait.1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/pwait/pwait.1 Tue Apr 3 08:24:32 2012 (r233826) @@ -46,7 +46,7 @@ .Sh DESCRIPTION The .Nm -utility will wait until each of the given processes has terminated. +utility will wait until each of the given processes has terminated. .Pp The following option is available: .Bl -tag -width indent @@ -54,7 +54,6 @@ The following option is available: Print the exit status when each process terminates. .El .Sh DIAGNOSTICS -.Pp The .Nm utility returns 0 on success, and >0 if an error occurs. Modified: projects/pf/head/bin/setfacl/setfacl.1 ============================================================================== --- projects/pf/head/bin/setfacl/setfacl.1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/setfacl/setfacl.1 Tue Apr 3 08:24:32 2012 (r233826) @@ -295,7 +295,7 @@ The ACL qualifier field describes the us the ACL entry. It may consist of one of the following: uid or user name, or gid or group name. In entries whose tag type is -one of +one of .Dq Li owner@ , .Dq Li group@ , or Modified: projects/pf/head/bin/sh/jobs.c ============================================================================== --- projects/pf/head/bin/sh/jobs.c Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/sh/jobs.c Tue Apr 3 08:24:32 2012 (r233826) @@ -893,8 +893,8 @@ vforkexecshell(struct job *jp, char **ar struct jmploc jmploc; struct jmploc *savehandler; - TRACE(("vforkexecshell(%%%td, %p, %d) called\n", jp - jobtab, (void *)n, - mode)); + TRACE(("vforkexecshell(%%%td, %s, %p) called\n", jp - jobtab, argv[0], + (void *)pip)); INTOFF; flushall(); savehandler = handler; Modified: projects/pf/head/bin/sh/sh.1 ============================================================================== --- projects/pf/head/bin/sh/sh.1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/sh/sh.1 Tue Apr 3 08:24:32 2012 (r233826) @@ -1027,7 +1027,6 @@ or .Pp The first form executes the commands in a subshell environment. A subshell environment has its own copy of: -.Pp .Bl -enum .It The current working directory as set by @@ -1632,7 +1631,7 @@ All values are of type .It Constants Decimal, octal (starting with .Li 0 ) -and hexadecimal (starting with +and hexadecimal (starting with .Li 0x ) integer constants. .It Variables Modified: projects/pf/head/bin/stty/stty.1 ============================================================================== --- projects/pf/head/bin/stty/stty.1 Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/bin/stty/stty.1 Tue Apr 3 08:24:32 2012 (r233826) @@ -90,7 +90,6 @@ to restore the current terminal state as The following arguments are available to set the terminal characteristics: .Ss Control Modes: -.Pp Control mode flags affect hardware characteristics associated with the terminal. This corresponds to the c_cflag in the termios structure. @@ -256,7 +255,6 @@ Do not (do) output CRs at column zero. On the terminal NL performs (does not perform) the CR function. .El .Ss Local Modes: -.Pp Local mode flags (lflags) affect various and sundry characteristics of terminal processing. Historically the term "local" pertained to new job control features @@ -513,7 +511,6 @@ The size of the terminal is printed as t first rows, then columns. .El .Ss Compatibility Modes: -.Pp These modes remain for compatibility with the previous version of the .Nm Modified: projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c ============================================================================== --- projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c Tue Apr 3 07:48:58 2012 (r233825) +++ projects/pf/head/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c Tue Apr 3 08:24:32 2012 (r233826) @@ -62,6 +62,18 @@ struct ctf_buf { int ntholes; /* number of type holes */ }; +/* + * Macros to reverse byte order + */ +#define BSWAP_8(x) ((x) & 0xff) +#define BSWAP_16(x) ((BSWAP_8(x) << 8) | BSWAP_8((x) >> 8)) +#define BSWAP_32(x) ((BSWAP_16(x) << 16) | BSWAP_16((x) >> 16)) + +#define SWAP_16(x) (x) = BSWAP_16(x) +#define SWAP_32(x) (x) = BSWAP_32(x) + +static int target_requires_swap; + /*PRINTFLIKE1*/ static void parseterminate(const char *fmt, ...) @@ -140,6 +152,11 @@ write_label(void *arg1, void *arg2) ctl.ctl_label = strtab_insert(&b->ctb_strtab, le->le_name); ctl.ctl_typeidx = le->le_idx; + if (target_requires_swap) { + SWAP_32(ctl.ctl_label); + SWAP_32(ctl.ctl_typeidx); + } + ctf_buf_write(b, &ctl, sizeof (ctl)); return (1); @@ -152,6 +169,10 @@ write_objects(iidesc_t *idp, ctf_buf_t * ctf_buf_write(b, &id, sizeof (id)); + if (target_requires_swap) { + SWAP_16(id); + } + debug(3, "Wrote object %s (%d)\n", (idp ? idp->ii_name : "(null)"), id); } @@ -180,10 +201,21 @@ write_functions(iidesc_t *idp, ctf_buf_t fdata[0] = CTF_TYPE_INFO(CTF_K_FUNCTION, 1, nargs); fdata[1] = idp->ii_dtype->t_id; + + if (target_requires_swap) { + SWAP_16(fdata[0]); + SWAP_16(fdata[1]); + } + ctf_buf_write(b, fdata, sizeof (fdata)); for (i = 0; i < idp->ii_nargs; i++) { id = idp->ii_args[i]->t_id; + + if (target_requires_swap) { + SWAP_16(id); + } + ctf_buf_write(b, &id, sizeof (id)); } @@ -208,11 +240,25 @@ write_sized_type_rec(ctf_buf_t *b, ctf_t ctt->ctt_size = CTF_LSIZE_SENT; ctt->ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size); ctt->ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size); + if (target_requires_swap) { + SWAP_32(ctt->ctt_name); + SWAP_16(ctt->ctt_info); + SWAP_16(ctt->ctt_size); + SWAP_32(ctt->ctt_lsizehi); + SWAP_32(ctt->ctt_lsizelo); + } ctf_buf_write(b, ctt, sizeof (*ctt)); } else { ctf_stype_t *cts = (ctf_stype_t *)ctt; cts->ctt_size = (ushort_t)size; + + if (target_requires_swap) { + SWAP_32(cts->ctt_name); + SWAP_16(cts->ctt_info); + SWAP_16(cts->ctt_size); + } + ctf_buf_write(b, cts, sizeof (*cts)); } } @@ -222,6 +268,12 @@ write_unsized_type_rec(ctf_buf_t *b, ctf { ctf_stype_t *cts = (ctf_stype_t *)ctt; + if (target_requires_swap) { + SWAP_32(cts->ctt_name); + SWAP_16(cts->ctt_info); + SWAP_16(cts->ctt_size); + } + ctf_buf_write(b, cts, sizeof (*cts)); } @@ -296,6 +348,9 @@ write_type(void *arg1, void *arg2) encoding = ip->intr_fformat; data = CTF_INT_DATA(encoding, ip->intr_offset, ip->intr_nbits); + if (target_requires_swap) { + SWAP_32(data); + } ctf_buf_write(b, &data, sizeof (data)); break; @@ -312,6 +367,11 @@ write_type(void *arg1, void *arg2) cta.cta_contents = tp->t_ardef->ad_contents->t_id; cta.cta_index = tp->t_ardef->ad_idxtype->t_id; cta.cta_nelems = tp->t_ardef->ad_nelems; + if (target_requires_swap) { + SWAP_16(cta.cta_contents); + SWAP_16(cta.cta_index); + SWAP_32(cta.cta_nelems); + } ctf_buf_write(b, &cta, sizeof (cta)); break; @@ -341,6 +401,11 @@ write_type(void *arg1, void *arg2) offset); ctm.ctm_type = mp->ml_type->t_id; ctm.ctm_offset = mp->ml_offset; + if (target_requires_swap) { + SWAP_32(ctm.ctm_name); + SWAP_16(ctm.ctm_type); + SWAP_16(ctm.ctm_offset); + } ctf_buf_write(b, &ctm, sizeof (ctm)); } } else { @@ -355,6 +420,14 @@ write_type(void *arg1, void *arg2) CTF_OFFSET_TO_LMEMHI(mp->ml_offset); ctlm.ctlm_offsetlo = CTF_OFFSET_TO_LMEMLO(mp->ml_offset); + + if (target_requires_swap) { + SWAP_32(ctlm.ctlm_name); + SWAP_16(ctlm.ctlm_type); + SWAP_32(ctlm.ctlm_offsethi); + SWAP_32(ctlm.ctlm_offsetlo); + } + ctf_buf_write(b, &ctlm, sizeof (ctlm)); } } @@ -377,6 +450,12 @@ write_type(void *arg1, void *arg2) offset = strtab_insert(&b->ctb_strtab, ep->el_name); cte.cte_name = CTF_TYPE_NAME(CTF_STRTAB_0, offset); cte.cte_value = ep->el_number; + + if (target_requires_swap) { + SWAP_32(cte.cte_name); + SWAP_32(cte.cte_value); + } + ctf_buf_write(b, &cte, sizeof (cte)); i--; } @@ -420,6 +499,11 @@ write_type(void *arg1, void *arg2) for (i = 0; i < (int) tp->t_fndef->fn_nargs; i++) { id = tp->t_fndef->fn_args[i]->t_id; + + if (target_requires_swap) { + SWAP_16(id); + } + ctf_buf_write(b, &id, sizeof (id)); } @@ -613,6 +697,9 @@ ctf_gen(iiburst_t *iiburst, size_t *ress int i; + target_requires_swap = do_compress & CTF_SWAP_BYTES; + do_compress &= ~CTF_SWAP_BYTES; + /* * Prepare the header, and create the CTF output buffers. The data * object section and function section are both lists of 2-byte @@ -649,6 +736,18 @@ ctf_gen(iiburst_t *iiburst, size_t *ress h.cth_stroff = ctf_buf_cur(buf); h.cth_strlen = strtab_size(&buf->ctb_strtab); + if (target_requires_swap) { + SWAP_16(h.cth_preamble.ctp_magic); + SWAP_32(h.cth_parlabel); + SWAP_32(h.cth_parname); + SWAP_32(h.cth_lbloff); + SWAP_32(h.cth_objtoff); + SWAP_32(h.cth_funcoff); + SWAP_32(h.cth_typeoff); + SWAP_32(h.cth_stroff); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 08:35: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 69240106564A; Tue, 3 Apr 2012 08:35:48 +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 543418FC0A; Tue, 3 Apr 2012 08:35: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 q338Zm4V039900; Tue, 3 Apr 2012 08:35:48 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q338ZmYF039898; Tue, 3 Apr 2012 08:35:48 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204030835.q338ZmYF039898@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 08:35: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: r233829 - 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: Tue, 03 Apr 2012 08:35:48 -0000 Author: glebius Date: Tue Apr 3 08:35:47 2012 New Revision: 233829 URL: http://svn.freebsd.org/changeset/base/233829 Log: Get rid of pfsync_sendout1(). Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 08:29:39 2012 (r233828) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 08:35:47 2012 (r233829) @@ -254,7 +254,6 @@ static int pfsync_multicast_setup(struct static void pfsync_multicast_cleanup(struct pfsync_softc *); static int pfsync_init(void); static void pfsync_uninit(void); -static void pfsync_sendout1(int); SYSCTL_NODE(_net, OID_AUTO, pfsync, CTLFLAG_RW, 0, "PFSYNC"); SYSCTL_VNET_STRUCT(_net_pfsync, OID_AUTO, stats, CTLFLAG_RW, @@ -282,7 +281,7 @@ static void pfsync_request_update(u_int3 static void pfsync_update_state_req(struct pf_state *); static void pfsync_drop(struct pfsync_softc *); -static void pfsync_sendout(void); +static void pfsync_sendout(int); static void pfsync_send_plus(void *, size_t); static void pfsync_timeout(void *); @@ -1321,7 +1320,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm return (EINVAL); if (ifr->ifr_mtu < ifp->if_mtu) { PF_LOCK(); - pfsync_sendout(); + pfsync_sendout(1); PF_UNLOCK(); } ifp->if_mtu = ifr->ifr_mtu; @@ -1373,7 +1372,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm (sc->sc_sync_if != NULL && sifp->if_mtu < sc->sc_sync_if->if_mtu) || sifp->if_mtu < MCLBYTES - sizeof(struct ip)) - pfsync_sendout(); + pfsync_sendout(1); sc->sc_sync_if = sifp; if (imo->imo_membership) { @@ -1529,13 +1528,7 @@ pfsync_drop(struct pfsync_softc *sc) } static void -pfsync_sendout() -{ - pfsync_sendout1(1); -} - -static void -pfsync_sendout1(int schedswi) +pfsync_sendout(int schedswi) { struct pfsync_softc *sc = V_pfsyncif; #if NBPFILTER > 0 @@ -1911,7 +1904,7 @@ pfsync_request_update(u_int32_t creatori nlen += sizeof(struct pfsync_subheader); if (sc->sc_len + nlen > sc->sc_ifp->if_mtu) { - pfsync_sendout(); + pfsync_sendout(1); nlen = sizeof(struct pfsync_subheader) + sizeof(struct pfsync_upd_req); @@ -2046,7 +2039,7 @@ pfsync_q_ins(struct pf_state *st, int q) nlen += sizeof(struct pfsync_subheader); if (sc->sc_len + nlen > sc->sc_ifp->if_mtu) { - pfsync_sendout(); + pfsync_sendout(1); nlen = sizeof(struct pfsync_subheader) + pfsync_qs[q].len; } @@ -2092,7 +2085,7 @@ pfsync_update_tdb(struct tdb *t, int out if (sc->sc_len + nlen > sc->sc_if.if_mtu) { PF_LOCK(); - pfsync_sendout(); + pfsync_sendout(1); PF_UNLOCK(); nlen = sizeof(struct pfsync_subheader) + @@ -2305,14 +2298,13 @@ pfsync_send_plus(void *plus, size_t plus PF_LOCK_ASSERT(); - if (sc->sc_len + pluslen > sc->sc_ifp->if_mtu) { - pfsync_sendout(); - } + if (sc->sc_len + pluslen > sc->sc_ifp->if_mtu) + pfsync_sendout(1); sc->sc_plus = plus; sc->sc_len += (sc->sc_pluslen = pluslen); - pfsync_sendout(); + pfsync_sendout(1); } static int @@ -2341,7 +2333,7 @@ pfsync_timeout(void *arg) pfsync_tmos++; PF_LOCK(); - pfsync_sendout(); + pfsync_sendout(1); PF_UNLOCK(); CURVNET_RESTORE(); @@ -2359,7 +2351,7 @@ pfsyncintr(void *arg) PF_LOCK(); if (sc->sc_len > PFSYNC_MINPKT) - pfsync_sendout1(0); + pfsync_sendout(0); _IF_DEQUEUE_ALL(&sc->sc_ifp->if_snd, m); PF_UNLOCK(); From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 08:40:35 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 851BE1065670; Tue, 3 Apr 2012 08:40:35 +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 66C8D8FC1D; Tue, 3 Apr 2012 08:40: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 q338eZx4040083; Tue, 3 Apr 2012 08:40:35 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q338eZjA040081; Tue, 3 Apr 2012 08:40:35 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204030840.q338eZjA040081@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 08:40: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: r233830 - 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: Tue, 03 Apr 2012 08:40:35 -0000 Author: glebius Date: Tue Apr 3 08:40:34 2012 New Revision: 233830 URL: http://svn.freebsd.org/changeset/base/233830 Log: Don't carry #ifdef notyet code. If anyone needs it, it can be resurrected from repo, or even better merged from newer OpenBSD. Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 08:35:47 2012 (r233829) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 08:40:34 2012 (r233830) @@ -196,10 +196,6 @@ TAILQ_HEAD(pfsync_deferrals, pfsync_defe #define PFSYNC_PLSIZE MAX(sizeof(struct pfsync_upd_req_item), \ sizeof(struct pfsync_deferral)) -#ifdef notyet -static int pfsync_out_tdb(struct tdb *, struct mbuf *, int); -#endif - struct pfsync_softc { struct ifnet *sc_ifp; struct ifnet *sc_sync_if; @@ -234,8 +230,6 @@ struct pfsync_softc { struct pf_state_cmp sc_bulk_state; struct callout sc_bulk_tmo; - TAILQ_HEAD(, tdb) sc_tdb_q; - struct callout sc_tmo; }; @@ -324,8 +318,6 @@ pfsync_clone_create(struct if_clone *ifc TAILQ_INIT(&sc->sc_deferrals); sc->sc_deferred = 0; - TAILQ_INIT(&sc->sc_tdb_q); - sc->sc_len = PFSYNC_MINPKT; sc->sc_maxupdates = 128; @@ -1487,9 +1479,6 @@ pfsync_drop(struct pfsync_softc *sc) { struct pf_state *st; struct pfsync_upd_req_item *ur; -#ifdef notyet - struct tdb *t; -#endif int q; for (q = 0; q < PFSYNC_S_COUNT; q++) { @@ -1497,11 +1486,9 @@ pfsync_drop(struct pfsync_softc *sc) continue; TAILQ_FOREACH(st, &sc->sc_qs[q], sync_list) { -#ifdef PFSYNC_DEBUG KASSERT(st->sync_state == q, ("%s: st->sync_state == q", __func__)); -#endif st->sync_state = PFSYNC_S_NONE; pf_release_state(st); } @@ -1514,16 +1501,6 @@ pfsync_drop(struct pfsync_softc *sc) } sc->sc_plus = NULL; - -#ifdef notyet - if (!TAILQ_EMPTY(&sc->sc_tdb_q)) { - TAILQ_FOREACH(t, &sc->sc_tdb_q, tdb_sync_entry) - CLR(t->tdb_flags, TDBF_PFSYNC); - - TAILQ_INIT(&sc->sc_tdb_q); - } -#endif - sc->sc_len = PFSYNC_MINPKT; } @@ -1540,9 +1517,6 @@ pfsync_sendout(int schedswi) struct pfsync_subheader *subh; struct pf_state *st, *next; struct pfsync_upd_req_item *ur; -#ifdef notyet - struct tdb *t; -#endif int offset; int q, count = 0; @@ -1641,26 +1615,6 @@ pfsync_sendout(int schedswi) sc->sc_plus = NULL; } -#ifdef notyet - if (!TAILQ_EMPTY(&sc->sc_tdb_q)) { - subh = (struct pfsync_subheader *)(m->m_data + offset); - offset += sizeof(*subh); - - count = 0; - TAILQ_FOREACH(t, &sc->sc_tdb_q, tdb_sync_entry) { - offset += pfsync_out_tdb(t, m, offset); - CLR(t->tdb_flags, TDBF_PFSYNC); - - count++; - } - TAILQ_INIT(&sc->sc_tdb_q); - - bzero(subh, sizeof(*subh)); - subh->action = PFSYNC_ACT_TDB; - subh->count = htons(count); - } -#endif - subh = (struct pfsync_subheader *)(m->m_data + offset); offset += sizeof(*subh); @@ -2068,96 +2022,6 @@ pfsync_q_del(struct pf_state *st) sc->sc_len -= sizeof(struct pfsync_subheader); } -#ifdef notyet -static void -pfsync_update_tdb(struct tdb *t, int output) -{ - struct pfsync_softc *sc = V_pfsyncif; - size_t nlen = sizeof(struct pfsync_tdb); - int s; - - if (sc == NULL) - return; - - if (!ISSET(t->tdb_flags, TDBF_PFSYNC)) { - if (TAILQ_EMPTY(&sc->sc_tdb_q)) - nlen += sizeof(struct pfsync_subheader); - - if (sc->sc_len + nlen > sc->sc_if.if_mtu) { - PF_LOCK(); - pfsync_sendout(1); - PF_UNLOCK(); - - nlen = sizeof(struct pfsync_subheader) + - sizeof(struct pfsync_tdb); - } - - sc->sc_len += nlen; - TAILQ_INSERT_TAIL(&sc->sc_tdb_q, t, tdb_sync_entry); - SET(t->tdb_flags, TDBF_PFSYNC); - t->tdb_updates = 0; - } else { - if (++t->tdb_updates >= sc->sc_maxupdates) - swi_sched(V_pfsync_swi_cookie, 0); - } - - if (output) - SET(t->tdb_flags, TDBF_PFSYNC_RPL); - else - CLR(t->tdb_flags, TDBF_PFSYNC_RPL); -} - -static void -pfsync_delete_tdb(struct tdb *t) -{ - struct pfsync_softc *sc = V_pfsyncif; - - if (sc == NULL || !ISSET(t->tdb_flags, TDBF_PFSYNC)) - return; - - sc->sc_len -= sizeof(struct pfsync_tdb); - TAILQ_REMOVE(&sc->sc_tdb_q, t, tdb_sync_entry); - CLR(t->tdb_flags, TDBF_PFSYNC); - - if (TAILQ_EMPTY(&sc->sc_tdb_q)) - sc->sc_len -= sizeof(struct pfsync_subheader); -} - -static int -pfsync_out_tdb(struct tdb *t, struct mbuf *m, int offset) -{ - struct pfsync_tdb *ut = (struct pfsync_tdb *)(m->m_data + offset); - - bzero(ut, sizeof(*ut)); - ut->spi = t->tdb_spi; - bcopy(&t->tdb_dst, &ut->dst, sizeof(ut->dst)); - /* - * When a failover happens, the master's rpl is probably above - * what we see here (we may be up to a second late), so - * increase it a bit for outbound tdbs to manage most such - * situations. - * - * For now, just add an offset that is likely to be larger - * than the number of packets we can see in one second. The RFC - * just says the next packet must have a higher seq value. - * - * XXX What is a good algorithm for this? We could use - * a rate-determined increase, but to know it, we would have - * to extend struct tdb. - * XXX pt->rpl can wrap over MAXINT, but if so the real tdb - * will soon be replaced anyway. For now, just don't handle - * this edge case. - */ -#define RPL_INCR 16384 - ut->rpl = htonl(t->tdb_rpl + (ISSET(t->tdb_flags, TDBF_PFSYNC_RPL) ? - RPL_INCR : 0)); - ut->cur_bytes = htobe64(t->tdb_cur_bytes); - ut->sproto = t->tdb_sproto; - - return (sizeof(*ut)); -} -#endif - static void pfsync_bulk_start(void) { From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 09:13: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 71E99106567C; Tue, 3 Apr 2012 09:13:36 +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 5202E8FC12; Tue, 3 Apr 2012 09:13: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 q339DauW041435; Tue, 3 Apr 2012 09:13:36 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q339Dafg041431; Tue, 3 Apr 2012 09:13:36 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204030913.q339Dafg041431@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 09:13: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: r233834 - 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: Tue, 03 Apr 2012 09:13:36 -0000 Author: glebius Date: Tue Apr 3 09:13:35 2012 New Revision: 233834 URL: http://svn.freebsd.org/changeset/base/233834 Log: Anytime I encounter these macros, I look for them in the pfvar.h. What's the reason to mask basic language syntax? Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/contrib/pf/net/pf.c projects/pf/head/sys/contrib/pf/net/pfvar.h Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 09:02:19 2012 (r233833) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 09:13:35 2012 (r233834) @@ -538,8 +538,8 @@ pfsync_state_import(struct pfsync_state r->states_cur++; r->states_tot++; - if (!ISSET(flags, PFSYNC_SI_IOCTL)) - SET(st->state_flags, PFSTATE_NOSYNC); + if (!(flags & PFSYNC_SI_IOCTL)) + st->state_flags |= PFSTATE_NOSYNC; if ((error = pf_state_insert(kif, skw, sks, st)) != 0) { /* XXX when we have nat_rule/anchors, use STATE_DEC_COUNTERS */ @@ -1469,7 +1469,7 @@ pfsync_out_del(struct pf_state *st, stru dp->id = st->id; dp->creatorid = st->creatorid; - SET(st->state_flags, PFSTATE_NOSYNC); + st->state_flags |= PFSTATE_NOSYNC; return (sizeof(*dp)); } @@ -1662,13 +1662,13 @@ pfsync_insert_state(struct pf_state *st) PF_LOCK_ASSERT(); - if (ISSET(st->rule.ptr->rule_flag, PFRULE_NOSYNC) || + if ((st->rule.ptr->rule_flag & PFRULE_NOSYNC) || st->key[PF_SK_WIRE]->proto == IPPROTO_PFSYNC) { - SET(st->state_flags, PFSTATE_NOSYNC); + st->state_flags |= PFSTATE_NOSYNC; return; } - if (sc == NULL || ISSET(st->state_flags, PFSTATE_NOSYNC)) + if (sc == NULL || (st->state_flags & PFSTATE_NOSYNC)) return; KASSERT(st->sync_state == PFSYNC_S_NONE, @@ -1705,7 +1705,7 @@ pfsync_defer(struct pf_state *st, struct sc->sc_deferred++; m->m_flags |= M_SKIP_FIREWALL; - SET(st->state_flags, PFSTATE_ACK); + st->state_flags |= PFSTATE_ACK; pd->pd_st = st; pd->pd_m = m; @@ -1729,7 +1729,7 @@ pfsync_undefer(struct pfsync_deferral *p TAILQ_REMOVE(&sc->sc_deferrals, pd, pd_entry); sc->sc_deferred--; - CLR(pd->pd_st->state_flags, PFSTATE_ACK); + pd->pd_st->state_flags &= ~PFSTATE_ACK; pf_release_state(pd->pd_st); callout_stop(&pd->pd_tmo); /* bah */ if (drop) @@ -1788,9 +1788,9 @@ pfsync_update_state(struct pf_state *st) if (sc == NULL) return; - if (ISSET(st->state_flags, PFSTATE_ACK)) + if (st->state_flags & PFSTATE_ACK) pfsync_deferred(st, 0); - if (ISSET(st->state_flags, PFSTATE_NOSYNC)) { + if (st->state_flags & PFSTATE_NOSYNC) { if (st->sync_state != PFSYNC_S_NONE) pfsync_q_del(st); return; @@ -1879,7 +1879,7 @@ pfsync_update_state_req(struct pf_state KASSERT(sc != NULL, ("%s: nonexistent instance", __func__)); - if (ISSET(st->state_flags, PFSTATE_NOSYNC)) { + if (st->state_flags & PFSTATE_NOSYNC) { if (st->sync_state != PFSYNC_S_NONE) pfsync_q_del(st); return; @@ -1916,9 +1916,9 @@ pfsync_delete_state(struct pf_state *st) if (sc == NULL) return; - if (ISSET(st->state_flags, PFSTATE_ACK)) + if (st->state_flags & PFSTATE_ACK) pfsync_deferred(st, 1); - if (ISSET(st->state_flags, PFSTATE_NOSYNC)) { + if (st->state_flags & PFSTATE_NOSYNC) { if (st->sync_state != PFSYNC_S_NONE) pfsync_q_del(st); return; @@ -2176,7 +2176,7 @@ pfsync_up(void) { struct pfsync_softc *sc = V_pfsyncif; - if (sc == NULL || !ISSET(sc->sc_ifp->if_flags, IFF_DRV_RUNNING)) + if (sc == NULL || !(sc->sc_ifp->if_flags & IFF_DRV_RUNNING)) return (0); return (1); Modified: projects/pf/head/sys/contrib/pf/net/pf.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf.c Tue Apr 3 09:02:19 2012 (r233833) +++ projects/pf/head/sys/contrib/pf/net/pf.c Tue Apr 3 09:13:35 2012 (r233834) @@ -3184,7 +3184,7 @@ pf_test_rule(struct pf_rule **rm, struct if (rewrite) m_copyback(m, off, hdrlen, pd->hdr.any); - if (*sm != NULL && !ISSET((*sm)->state_flags, PFSTATE_NOSYNC) && + if (*sm != NULL && !((*sm)->state_flags & PFSTATE_NOSYNC) && direction == PF_OUT && pfsync_up_ptr != NULL && pfsync_up_ptr()) { /* * We want the state created, but we dont Modified: projects/pf/head/sys/contrib/pf/net/pfvar.h ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pfvar.h Tue Apr 3 09:02:19 2012 (r233833) +++ projects/pf/head/sys/contrib/pf/net/pfvar.h Tue Apr 3 09:13:35 2012 (r233834) @@ -937,11 +937,6 @@ VNET_DECLARE(int, debug_pfugidhack); #define V_debug_pfugidhack VNET(debug_pfugidhack) #define V_pf_end_threads VNET(pf_end_threads) - -/* Macros to set/clear/test flags. */ -#define SET(t, f) ((t) |= (f)) -#define CLR(t, f) ((t) &= ~(f)) -#define ISSET(t, f) ((t) & (f)) #endif /* _KERNEL */ #define PFSYNC_FLAG_SRCNODE 0x04 From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 09:16:42 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 5FAC9106566B; Tue, 3 Apr 2012 09:16:42 +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 4B9CE8FC12; Tue, 3 Apr 2012 09:16:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q339Gg3s041587; Tue, 3 Apr 2012 09:16:42 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q339Gg1D041584; Tue, 3 Apr 2012 09:16:42 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204030916.q339Gg1D041584@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 09:16:42 +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: r233835 - 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: Tue, 03 Apr 2012 09:16:42 -0000 Author: glebius Date: Tue Apr 3 09:16:41 2012 New Revision: 233835 URL: http://svn.freebsd.org/changeset/base/233835 Log: FreeBSD always has bpf(9) API regardless whether kernel was or not compiled with 'device bpf'. Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.c projects/pf/head/sys/contrib/pf/net/if_pfsync.c Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pflog.c Tue Apr 3 09:13:35 2012 (r233834) +++ projects/pf/head/sys/contrib/pf/net/if_pflog.c Tue Apr 3 09:16:41 2012 (r233835) @@ -41,12 +41,6 @@ #include __FBSDID("$FreeBSD$"); -#ifdef DEV_BPF -#define NBPFILTER DEV_BPF -#else -#define NBPFILTER 0 -#endif - #ifdef DEV_PFLOG #define NPFLOG DEV_PFLOG #else @@ -152,9 +146,7 @@ pflog_clone_create(struct if_clone *ifc, ifp->if_hdrlen = PFLOG_HDRLEN; if_attach(ifp); -#if NBPFILTER > 0 bpfattach(ifp, DLT_PFLOG, PFLOG_HDRLEN); -#endif /* XXX: Why pf(4) lock?! Better add a pflog lock?! */ PF_LOCK(); @@ -175,9 +167,7 @@ pflog_clone_destroy(struct ifnet *ifp) LIST_REMOVE(pflogif, sc_list); PF_UNLOCK(); -#if NBPFILTER > 0 bpfdetach(ifp); -#endif if_detach(ifp); if_free(ifp); free(pflogif, M_DEVBUF); @@ -235,7 +225,6 @@ pflog_packet(struct pfi_kif *kif, struct u_int8_t reason, struct pf_rule *rm, struct pf_rule *am, struct pf_ruleset *ruleset, struct pf_pdesc *pd) { -#if NBPFILTER > 0 struct ifnet *ifn; struct pfloghdr hdr; @@ -292,7 +281,6 @@ pflog_packet(struct pfi_kif *kif, struct ifn->if_opackets++; ifn->if_obytes += m->m_pkthdr.len; BPF_MTAP2(ifn, &hdr, PFLOG_HDRLEN, m); -#endif return (0); } Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 09:13:35 2012 (r233834) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 09:16:41 2012 (r233835) @@ -59,8 +59,6 @@ #include __FBSDID("$FreeBSD$"); -#define NBPFILTER 1 - #include #include #include @@ -343,9 +341,7 @@ pfsync_clone_create(struct if_clone *ifc if_attach(ifp); -#if NBPFILTER > 0 bpfattach(ifp, DLT_PFSYNC, PFSYNC_HDRLEN); -#endif V_pfsyncif = sc; @@ -364,9 +360,7 @@ pfsync_clone_destroy(struct ifnet *ifp) PF_UNLOCK(); if (!sc->pfsync_sync_ok && carp_demote_adj_p) (*carp_demote_adj_p)(-V_pfsync_carp_adj, "pfsync destroy"); -#if NBPFILTER > 0 bpfdetach(ifp); -#endif if_detach(ifp); pfsync_drop(sc); @@ -1508,9 +1502,7 @@ static void pfsync_sendout(int schedswi) { struct pfsync_softc *sc = V_pfsyncif; -#if NBPFILTER > 0 struct ifnet *ifp = sc->sc_ifp; -#endif struct mbuf *m; struct ip *ip; struct pfsync_header *ph; @@ -1525,11 +1517,7 @@ pfsync_sendout(int schedswi) if (sc == NULL || sc->sc_len == PFSYNC_MINPKT) return; -#if NBPFILTER > 0 if (ifp->if_bpf == NULL && sc->sc_sync_if == NULL) { -#else - if (sc->sc_sync_if == NULL) { -#endif pfsync_drop(sc); return; } @@ -1625,7 +1613,6 @@ pfsync_sendout(int schedswi) /* XXX write checksum in EOF here */ /* we're done, let's put it on the wire */ -#if NBPFILTER > 0 if (ifp->if_bpf) { m->m_data += sizeof(*ip); m->m_len = m->m_pkthdr.len = sc->sc_len - sizeof(*ip); @@ -1639,7 +1626,6 @@ pfsync_sendout(int schedswi) m_freem(m); return; } -#endif sc->sc_ifp->if_opackets++; sc->sc_ifp->if_obytes += m->m_pkthdr.len; From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 14:29:25 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4FF241065670; Tue, 3 Apr 2012 14:29: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 214108FC17; Tue, 3 Apr 2012 14:29: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 q33ETOmT053771; Tue, 3 Apr 2012 14:29:24 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q33ETOpt053768; Tue, 3 Apr 2012 14:29:24 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204031429.q33ETOpt053768@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 14:29: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: r233836 - 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: Tue, 03 Apr 2012 14:29:25 -0000 Author: glebius Date: Tue Apr 3 14:29:24 2012 New Revision: 233836 URL: http://svn.freebsd.org/changeset/base/233836 Log: Store counters for all sent and received pfsync actions in pfsyncstats. Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/contrib/pf/net/if_pfsync.h Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 09:16:41 2012 (r233835) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 14:29:24 2012 (r233836) @@ -584,6 +584,7 @@ pfsync_input(struct mbuf *m, __unused in int offset; int rv; + uint16_t count; V_pfsyncstats.pfsyncs_ipackets++; @@ -644,8 +645,9 @@ pfsync_input(struct mbuf *m, __unused in goto done; } - rv = (*pfsync_acts[subh.action])(&pkt, m, offset, - ntohs(subh.count)); + count = ntohs(subh.count); + V_pfsyncstats.pfsyncs_iacts[subh.action] += count; + rv = (*pfsync_acts[subh.action])(&pkt, m, offset, count); if (rv == -1) return; @@ -1571,6 +1573,7 @@ pfsync_sendout(int schedswi) bzero(subh, sizeof(*subh)); subh->action = pfsync_qs[q].action; subh->count = htons(count); + V_pfsyncstats.pfsyncs_oacts[pfsync_qs[q].action] += count; } if (!TAILQ_EMPTY(&sc->sc_upd_req_list)) { @@ -1593,6 +1596,7 @@ pfsync_sendout(int schedswi) bzero(subh, sizeof(*subh)); subh->action = PFSYNC_ACT_UPD_REQ; subh->count = htons(count); + V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_UPD_REQ] += count; } /* has someone built a custom region for us to add? */ @@ -1609,6 +1613,7 @@ pfsync_sendout(int schedswi) bzero(subh, sizeof(*subh)); subh->action = PFSYNC_ACT_EOF; subh->count = htons(1); + V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_EOF]++; /* XXX write checksum in EOF here */ @@ -1955,6 +1960,7 @@ pfsync_clear_states(u_int32_t creatorid, r.subh.action = PFSYNC_ACT_CLR; r.subh.count = htons(1); + V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_CLR]++; strlcpy(r.clr.ifname, ifname, sizeof(r.clr.ifname)); r.clr.creatorid = creatorid; @@ -2104,6 +2110,7 @@ pfsync_bulk_status(u_int8_t status) r.subh.action = PFSYNC_ACT_BUS; r.subh.count = htons(1); + V_pfsyncstats.pfsyncs_oacts[PFSYNC_ACT_BUS]++; r.bus.creatorid = V_pf_status.hostid; r.bus.endtime = htonl(time_uptime - sc->sc_ureq_received); Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.h ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.h Tue Apr 3 09:16:41 2012 (r233835) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.h Tue Apr 3 14:29:24 2012 (r233836) @@ -256,6 +256,9 @@ struct pfsyncstats { u_int64_t pfsyncs_opackets6; /* total output packets, IPv6 */ u_int64_t pfsyncs_onomem; /* no memory for an mbuf */ u_int64_t pfsyncs_oerrors; /* ip output error */ + + u_int64_t pfsyncs_iacts[PFSYNC_ACT_MAX]; + u_int64_t pfsyncs_oacts[PFSYNC_ACT_MAX]; }; /* From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 17:10:19 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 BB0EA106566B; Tue, 3 Apr 2012 17:10:19 +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 8D1938FC18; Tue, 3 Apr 2012 17:10: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 q33HAJRb060128; Tue, 3 Apr 2012 17:10:19 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q33HAJes060125; Tue, 3 Apr 2012 17:10:19 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204031710.q33HAJes060125@svn.freebsd.org> From: Damjan Marion Date: Tue, 3 Apr 2012 17:10: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: r233844 - in 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: Tue, 03 Apr 2012 17:10:19 -0000 Author: dmarion Date: Tue Apr 3 17:10:19 2012 New Revision: 233844 URL: http://svn.freebsd.org/changeset/base/233844 Log: Add PRCM support for EDMA on AM335x Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c projects/armv6/sys/arm/ti/ti_prcm.h Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Tue Apr 3 17:08:34 2012 (r233843) +++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Tue Apr 3 17:10:19 2012 (r233844) @@ -60,16 +60,20 @@ __FBSDID("$FreeBSD$"); #define CM_PER_L3_CLKSTCTRL (CM_PER + 0x00C) #define CM_PER_CPGMAC0_CLKCTRL (CM_PER + 0x014) #define CM_PER_USB0_CLKCTRL (CM_PER + 0x01C) +#define CM_PER_TPTC0_CLKCTRL (CM_PER + 0x024) #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_TPCC_CLKCTRL (CM_PER + 0x0BC) #define CM_PER_L3_INSTR_CLKCTRL (CM_PER + 0x0DC) #define CM_PER_L3_CLKCTRL (CM_PER + 0x0E0) #define CM_PER_TIMER5_CLKCTRL (CM_PER + 0x0EC) #define CM_PER_TIMER6_CLKCTRL (CM_PER + 0x0F0) +#define CM_PER_TPTC1_CLKCTRL (CM_PER + 0x0FC) +#define CM_PER_TPTC2_CLKCTRL (CM_PER + 0x100) #define CM_PER_OCPWP_L3_CLKSTCTRL (CM_PER + 0x12C) #define CM_PER_OCPWP_CLKCTRL (CM_PER + 0x130) #define CM_PER_CPSW_CLKSTCTRL (CM_PER + 0x144) @@ -172,6 +176,12 @@ struct ti_clock_dev ti_clk_devmap[] = { AM335X_GENERIC_CLOCK_DEV(I2C1_CLK), AM335X_GENERIC_CLOCK_DEV(I2C2_CLK), + /* EDMA */ + AM335X_GENERIC_CLOCK_DEV(EDMA_TPCC_CLK), + AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC0_CLK), + AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC1_CLK), + AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC2_CLK), + { INVALID_CLK_IDENT, NULL, NULL, NULL, NULL } }; @@ -202,6 +212,12 @@ static struct am335x_clk_details g_am335 _CLK_DETAIL(I2C1_CLK, CM_PER_I2C1_CLKCTRL, 0), _CLK_DETAIL(I2C2_CLK, CM_PER_I2C2_CLKCTRL, 0), + /* EDMA modules */ + _CLK_DETAIL(EDMA_TPCC_CLK, CM_PER_TPCC_CLKCTRL, 0), + _CLK_DETAIL(EDMA_TPTC0_CLK, CM_PER_TPTC0_CLKCTRL, 0), + _CLK_DETAIL(EDMA_TPTC1_CLK, CM_PER_TPTC1_CLKCTRL, 0), + _CLK_DETAIL(EDMA_TPTC2_CLK, CM_PER_TPTC2_CLKCTRL, 0), + { INVALID_CLK_IDENT, 0}, }; Modified: projects/armv6/sys/arm/ti/ti_prcm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_prcm.h Tue Apr 3 17:08:34 2012 (r233843) +++ projects/armv6/sys/arm/ti/ti_prcm.h Tue Apr 3 17:10:19 2012 (r233844) @@ -131,6 +131,12 @@ typedef enum { /* Mentor USB modules */ MUSB0_CLK = 1100, + /* EDMA module */ + EDMA_TPCC_CLK = 1200, + EDMA_TPTC0_CLK, + EDMA_TPTC1_CLK, + EDMA_TPTC2_CLK, + INVALID_CLK_IDENT } clk_ident_t; From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 18:24:57 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DA055106566B; Tue, 3 Apr 2012 18:24:57 +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 C3B4B8FC0C; Tue, 3 Apr 2012 18:24:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q33IOvXs062850; Tue, 3 Apr 2012 18:24:57 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q33IOvt6062843; Tue, 3 Apr 2012 18:24:57 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204031824.q33IOvt6062843@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 3 Apr 2012 18:24: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: r233849 - in projects/pf/head: sbin/ifconfig sys/contrib/pf/net sys/dev/mpt sys/net80211 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, 03 Apr 2012 18:24:57 -0000 Author: glebius Date: Tue Apr 3 18:24:57 2012 New Revision: 233849 URL: http://svn.freebsd.org/changeset/base/233849 Log: Merge head r233826 through r233848 to projects/pf/head. Modified: projects/pf/head/sbin/ifconfig/ifconfig.8 projects/pf/head/sbin/ifconfig/ifpfsync.c projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/contrib/pf/net/if_pfsync.h projects/pf/head/sys/dev/mpt/mpt_pci.c projects/pf/head/sys/net80211/ieee80211_regdomain.c Directory Properties: projects/pf/head/ (props changed) projects/pf/head/sbin/ (props changed) projects/pf/head/sys/ (props changed) projects/pf/head/sys/contrib/pf/ (props changed) Modified: projects/pf/head/sbin/ifconfig/ifconfig.8 ============================================================================== --- projects/pf/head/sbin/ifconfig/ifconfig.8 Tue Apr 3 18:11:30 2012 (r233848) +++ projects/pf/head/sbin/ifconfig/ifconfig.8 Tue Apr 3 18:24:57 2012 (r233849) @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd March 7, 2012 +.Dd April 3, 2012 .Dt IFCONFIG 8 .Os .Sh NAME @@ -2380,10 +2380,28 @@ The following parameters are specific to .Xr pfsync 4 interfaces: .Bl -tag -width indent +.It Cm syncdev Ar iface +Use the specified interface +to send and receive pfsync state synchronisation messages. +.It Fl syncdev +Stop sending pfsync state synchronisation messages over the network. +.It Cm syncpeer Ar peer_address +Make the pfsync link point-to-point rather than using +multicast to broadcast the state synchronisation messages. +The peer_address is the IP address of the other host taking part in +the pfsync cluster. +.It Fl syncpeer +Broadcast the packets using multicast. .It Cm maxupd Ar n Set the maximum number of updates for a single state which can be collapsed into one. This is an 8-bit number; the default value is 128. +.It Cm defer +Defer transmission of the first packet in a state until a peer has +acknowledged that the associated state has been inserted. +.It Fl defer +Do not defer the first packet in a state. +This is the default. .El .Pp The following parameters are specific to Modified: projects/pf/head/sbin/ifconfig/ifpfsync.c ============================================================================== --- projects/pf/head/sbin/ifconfig/ifpfsync.c Tue Apr 3 18:11:30 2012 (r233848) +++ projects/pf/head/sbin/ifconfig/ifpfsync.c Tue Apr 3 18:24:57 2012 (r233849) @@ -52,6 +52,7 @@ void setpfsync_syncpeer(const char *, in void unsetpfsync_syncpeer(const char *, int, int, const struct afswtch *); void setpfsync_syncpeer(const char *, int, int, const struct afswtch *); void setpfsync_maxupd(const char *, int, int, const struct afswtch *); +void setpfsync_defer(const char *, int, int, const struct afswtch *); void pfsync_status(int); void @@ -162,6 +163,23 @@ setpfsync_maxupd(const char *val, int d, err(1, "SIOCSETPFSYNC"); } +/* ARGSUSED */ +void +setpfsync_defer(const char *val, int d, int s, const struct afswtch *rafp) +{ + struct pfsyncreq preq; + + memset((char *)&preq, 0, sizeof(struct pfsyncreq)); + ifr.ifr_data = (caddr_t)&preq; + + if (ioctl(s, SIOCGETPFSYNC, (caddr_t)&ifr) == -1) + err(1, "SIOCGETPFSYNC"); + + preq.pfsyncr_defer = d; + if (ioctl(s, SIOCSETPFSYNC, (caddr_t)&ifr) == -1) + err(1, "SIOCSETPFSYNC"); +} + void pfsync_status(int s) { @@ -183,8 +201,10 @@ pfsync_status(int s) printf("syncpeer: %s ", inet_ntoa(preq.pfsyncr_syncpeer)); if (preq.pfsyncr_syncdev[0] != '\0' || - preq.pfsyncr_syncpeer.s_addr != INADDR_PFSYNC_GROUP) - printf("maxupd: %d\n", preq.pfsyncr_maxupdates); + preq.pfsyncr_syncpeer.s_addr != INADDR_PFSYNC_GROUP) { + printf("maxupd: %d ", preq.pfsyncr_maxupdates); + printf("defer: %s\n", preq.pfsyncr_defer ? "on" : "off"); + } } static struct cmd pfsync_cmds[] = { @@ -194,7 +214,9 @@ static struct cmd pfsync_cmds[] = { DEF_CMD("-syncif", 1, unsetpfsync_syncdev), DEF_CMD_ARG("syncpeer", setpfsync_syncpeer), DEF_CMD("-syncpeer", 1, unsetpfsync_syncpeer), - DEF_CMD_ARG("maxupd", setpfsync_maxupd) + DEF_CMD_ARG("maxupd", setpfsync_maxupd), + DEF_CMD("defer", 1, setpfsync_defer), + DEF_CMD("-defer", 0, setpfsync_defer), }; static struct afswtch af_pfsync = { .af_name = "af_pfsync", Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 18:11:30 2012 (r233848) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Tue Apr 3 18:24:57 2012 (r233849) @@ -50,6 +50,7 @@ * 1.128 - cleanups * 1.146 - bzero() mbuf before sparsely filling it with data * 1.170 - SIOCSIFMTU checks + * 1.126, 1.142 - deferred packets processing */ #include "opt_inet.h" @@ -213,6 +214,7 @@ struct pfsync_softc { struct pfsync_upd_reqs sc_upd_req_list; + int sc_defer; struct pfsync_deferrals sc_deferrals; u_int sc_deferred; @@ -1321,6 +1323,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm } pfsyncr.pfsyncr_syncpeer = sc->sc_sync_peer; pfsyncr.pfsyncr_maxupdates = sc->sc_maxupdates; + pfsyncr.pfsyncr_defer = sc->sc_defer; return (copyout(&pfsyncr, ifr->ifr_data, sizeof(pfsyncr))); case SIOCSETPFSYNC: @@ -1342,6 +1345,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cm return (EINVAL); } sc->sc_maxupdates = pfsyncr.pfsyncr_maxupdates; + sc->sc_defer = pfsyncr.pfsyncr_defer; if (pfsyncr.pfsyncr_syncdev[0] == 0) { sc->sc_sync_if = NULL; @@ -1671,10 +1675,7 @@ pfsync_insert_state(struct pf_state *st) pfsync_q_ins(st, PFSYNC_S_INS); - if (st->state_flags & PFSTATE_ACK) - swi_sched(V_pfsync_swi_cookie, 0); - else - st->sync_updates = 0; + st->sync_updates = 0; } static int defer = 10; @@ -1687,6 +1688,9 @@ pfsync_defer(struct pf_state *st, struct PF_LOCK_ASSERT(); + if (!sc->sc_defer || m->m_flags & (M_BCAST|M_MCAST)) + return (0); + if (sc->sc_deferred >= 128) pfsync_undefer(TAILQ_FIRST(&sc->sc_deferrals), 0); @@ -1707,6 +1711,8 @@ pfsync_defer(struct pf_state *st, struct callout_reset(&pd->pd_tmo, defer, pfsync_defer_tmo, pd); + swi_sched(V_pfsync_swi_cookie, 0); + return (1); } Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.h ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.h Tue Apr 3 18:11:30 2012 (r233848) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.h Tue Apr 3 18:24:57 2012 (r233849) @@ -268,7 +268,7 @@ struct pfsyncreq { char pfsyncr_syncdev[IFNAMSIZ]; struct in_addr pfsyncr_syncpeer; int pfsyncr_maxupdates; - int pfsyncr_authlevel; + int pfsyncr_defer; }; #define SIOCSETPFSYNC _IOW('i', 247, struct ifreq) Modified: projects/pf/head/sys/dev/mpt/mpt_pci.c ============================================================================== --- projects/pf/head/sys/dev/mpt/mpt_pci.c Tue Apr 3 18:11:30 2012 (r233848) +++ projects/pf/head/sys/dev/mpt/mpt_pci.c Tue Apr 3 18:24:57 2012 (r233849) @@ -141,6 +141,10 @@ __FBSDID("$FreeBSD$"); #define MPI_MANUFACTPAGE_DEVID_SAS1068A_FB 0x0055 #endif +#ifndef MPI_MANUFACTPAGE_DEVID_SAS1068E_FB +#define MPI_MANUFACTPAGE_DEVID_SAS1068E_FB 0x0059 +#endif + #ifndef MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB #define MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB 0x007C #endif @@ -236,6 +240,7 @@ mpt_pci_probe(device_t dev) case MPI_MANUFACTPAGE_DEVID_SAS1068: case MPI_MANUFACTPAGE_DEVID_SAS1068A_FB: case MPI_MANUFACTPAGE_DEVID_SAS1068E: + case MPI_MANUFACTPAGE_DEVID_SAS1068E_FB: case MPI_MANUFACTPAGE_DEVID_SAS1078: case MPI_MANUFACTPAGE_DEVID_SAS1078DE_FB: desc = "LSILogic SAS/SATA Adapter"; @@ -419,6 +424,7 @@ mpt_pci_attach(device_t dev) case MPI_MANUFACTPAGE_DEVID_SAS1068: case MPI_MANUFACTPAGE_DEVID_SAS1068A_FB: case MPI_MANUFACTPAGE_DEVID_SAS1068E: + case MPI_MANUFACTPAGE_DEVID_SAS1068E_FB: mpt->is_sas = 1; break; default: Modified: projects/pf/head/sys/net80211/ieee80211_regdomain.c ============================================================================== --- projects/pf/head/sys/net80211/ieee80211_regdomain.c Tue Apr 3 18:11:30 2012 (r233848) +++ projects/pf/head/sys/net80211/ieee80211_regdomain.c Tue Apr 3 18:24:57 2012 (r233849) @@ -105,7 +105,12 @@ addchan(struct ieee80211com *ic, int iee c->ic_freq = ieee80211_ieee2mhz(ieee, flags); c->ic_ieee = ieee; c->ic_flags = flags; - c->ic_extieee = 0; + if (flags & IEEE80211_CHAN_HT40U) + c->ic_extieee = ieee + 4; + else if (flags & IEEE80211_CHAN_HT40D) + c->ic_extieee = ieee - 4; + else + c->ic_extieee = 0; } /* @@ -123,7 +128,8 @@ ieee80211_init_channels(struct ieee80211 /* XXX just do something for now */ ic->ic_nchans = 0; if (isset(bands, IEEE80211_MODE_11B) || - isset(bands, IEEE80211_MODE_11G)) { + isset(bands, IEEE80211_MODE_11G) || + isset(bands, IEEE80211_MODE_11NG)) { int maxchan = 11; if (rd != NULL && rd->ecm) maxchan = 14; @@ -132,15 +138,67 @@ ieee80211_init_channels(struct ieee80211 addchan(ic, i, IEEE80211_CHAN_B); if (isset(bands, IEEE80211_MODE_11G)) addchan(ic, i, IEEE80211_CHAN_G); + if (isset(bands, IEEE80211_MODE_11NG)) { + addchan(ic, i, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT20); + } + if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if (i <= 7) { + addchan(ic, i, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_G | IEEE80211_CHAN_HT40D); + } } } - if (isset(bands, IEEE80211_MODE_11A)) { - for (i = 36; i <= 64; i += 4) + if (isset(bands, IEEE80211_MODE_11A) || + isset(bands, IEEE80211_MODE_11NA)) { + for (i = 36; i <= 64; i += 4) { addchan(ic, i, IEEE80211_CHAN_A); - for (i = 100; i <= 140; i += 4) + if (isset(bands, IEEE80211_MODE_11NA)) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + } + if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if ((i % 8) == 4) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); + } + } + for (i = 100; i <= 140; i += 4) { addchan(ic, i, IEEE80211_CHAN_A); - for (i = 149; i <= 161; i += 4) + if (isset(bands, IEEE80211_MODE_11NA)) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + } + if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if ((i % 8) == 4 && i != 140) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); + } + } + for (i = 149; i <= 161; i += 4) { addchan(ic, i, IEEE80211_CHAN_A); + if (isset(bands, IEEE80211_MODE_11NA)) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT20); + } + if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40) == 0) + continue; + if ((i % 8) == 5) { + addchan(ic, i, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40U); + addchan(ic, i + 4, + IEEE80211_CHAN_A | IEEE80211_CHAN_HT40D); + } + } } if (rd != NULL) ic->ic_regdomain = *rd; From owner-svn-src-projects@FreeBSD.ORG Tue Apr 3 22:21:16 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B0FA01065675; Tue, 3 Apr 2012 22:21:16 +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 5FB5E8FC1E; Tue, 3 Apr 2012 22:21:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q33MLGJ3071893; Tue, 3 Apr 2012 22:21:16 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q33MLG1B071887; Tue, 3 Apr 2012 22:21:16 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204032221.q33MLG1B071887@svn.freebsd.org> From: Damjan Marion Date: Tue, 3 Apr 2012 22:21:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233857 - in projects/armv6/sys/arm/ti: . am335x 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: Tue, 03 Apr 2012 22:21:16 -0000 Author: dmarion Date: Tue Apr 3 22:21:15 2012 New Revision: 233857 URL: http://svn.freebsd.org/changeset/base/233857 Log: Reorganize TI GPIO driver - rename omap->ti - add support for GPIO on AM335x - start counting GPIO banks from 0 - add GPIO PRCM support for AM335x - update pandaboard and beaglebone FDT Added: projects/armv6/sys/arm/ti/ti_gpio.c - copied, changed from r233843, projects/armv6/sys/arm/ti/omap_gpio.c Deleted: projects/armv6/sys/arm/ti/omap_gpio.c Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c projects/armv6/sys/arm/ti/files.ti projects/armv6/sys/arm/ti/omap4/files.omap4 projects/armv6/sys/arm/ti/ti_prcm.h Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Tue Apr 3 21:10:30 2012 (r233856) +++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Tue Apr 3 22:21:15 2012 (r233857) @@ -67,6 +67,9 @@ __FBSDID("$FreeBSD$"); #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_GPIO1_CLKCTRL (CM_PER + 0x0AC) +#define CM_PER_GPIO2_CLKCTRL (CM_PER + 0x0B0) +#define CM_PER_GPIO3_CLKCTRL (CM_PER + 0x0B4) #define CM_PER_TPCC_CLKCTRL (CM_PER + 0x0BC) #define CM_PER_L3_INSTR_CLKCTRL (CM_PER + 0x0DC) #define CM_PER_L3_CLKCTRL (CM_PER + 0x0E0) @@ -81,6 +84,7 @@ __FBSDID("$FreeBSD$"); #define CM_WKUP 0x400 #define CM_WKUP_CLKSTCTRL (CM_WKUP + 0x000) #define CM_WKUP_CONTROL_CLKCTRL (CM_WKUP + 0x004) +#define CM_WKUP_GPIO0_CLKCTRL (CM_WKUP + 0x008) #define CM_WKUP_CM_L3_AON_CLKSTCTRL (CM_WKUP + 0x01C) #define CM_WKUP_CM_CLKSEL_DPLL_MPU (CM_WKUP + 0x02C) #define CM_WKUP_CM_CLKDCOLDO_DPLL_PER (CM_WKUP + 0x07C) @@ -171,6 +175,12 @@ struct ti_clock_dev ti_clk_devmap[] = { AM335X_GENERIC_CLOCK_DEV(DMTIMER6_CLK), AM335X_GENERIC_CLOCK_DEV(DMTIMER7_CLK), + /* GPIO */ + AM335X_GENERIC_CLOCK_DEV(GPIO0_CLK), + AM335X_GENERIC_CLOCK_DEV(GPIO1_CLK), + AM335X_GENERIC_CLOCK_DEV(GPIO2_CLK), + AM335X_GENERIC_CLOCK_DEV(GPIO3_CLK), + /* I2C */ AM335X_GENERIC_CLOCK_DEV(I2C0_CLK), AM335X_GENERIC_CLOCK_DEV(I2C1_CLK), @@ -207,6 +217,12 @@ static struct am335x_clk_details g_am335 _CLK_DETAIL(DMTIMER6_CLK, CM_PER_TIMER6_CLKCTRL, CLKSEL_TIMER6_CLK), _CLK_DETAIL(DMTIMER7_CLK, CM_PER_TIMER7_CLKCTRL, CLKSEL_TIMER7_CLK), + /* GPIO modules */ + _CLK_DETAIL(GPIO0_CLK, CM_WKUP_GPIO0_CLKCTRL, 0), + _CLK_DETAIL(GPIO1_CLK, CM_PER_GPIO1_CLKCTRL, 0), + _CLK_DETAIL(GPIO2_CLK, CM_PER_GPIO2_CLKCTRL, 0), + _CLK_DETAIL(GPIO3_CLK, CM_PER_GPIO3_CLKCTRL, 0), + /* I2C modules */ _CLK_DETAIL(I2C0_CLK, CM_WKUP_I2C0_CLKCTRL, 0), _CLK_DETAIL(I2C1_CLK, CM_PER_I2C1_CLKCTRL, 0), Modified: projects/armv6/sys/arm/ti/files.ti ============================================================================== --- projects/armv6/sys/arm/ti/files.ti Tue Apr 3 21:10:30 2012 (r233856) +++ projects/armv6/sys/arm/ti/files.ti Tue Apr 3 22:21:15 2012 (r233857) @@ -17,6 +17,7 @@ arm/ti/ti_machdep.c standard arm/ti/ti_prcm.c standard arm/ti/ti_scm.c standard +arm/ti/ti_gpio.c optional gpio arm/ti/ti_i2c.c optional ti_i2c dev/ofw/ofw_iicbus.c optional iicbus Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Tue Apr 3 21:10:30 2012 (r233856) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Tue Apr 3 22:21:15 2012 (r233857) @@ -4,7 +4,6 @@ arm/ti/gic.c standard arm/ti/mp_timer.c standard arm/ti/ti_smc.S standard -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_mmchs.c optional mmc Copied and modified: projects/armv6/sys/arm/ti/ti_gpio.c (from r233843, projects/armv6/sys/arm/ti/omap_gpio.c) ============================================================================== --- projects/armv6/sys/arm/ti/omap_gpio.c Tue Apr 3 17:08:34 2012 (r233843, copy source) +++ projects/armv6/sys/arm/ti/ti_gpio.c Tue Apr 3 22:21:15 2012 (r233857) @@ -66,104 +66,120 @@ __FBSDID("$FreeBSD$"); #include "gpio_if.h" -#define OMAP_GPIO_REVISION 0x0000 -#define OMAP_GPIO_SYSCONFIG 0x0010 - -/* Register offsets of the GPIO banks on OMAP3 devices */ -#define OMAP3_GPIO_SYSSTATUS 0x0014 -#define OMAP3_GPIO_IRQSTATUS1 0x0018 -#define OMAP3_GPIO_IRQENABLE1 0x001C -#define OMAP3_GPIO_WAKEUPENABLE 0x0020 -#define OMAP3_GPIO_IRQSTATUS2 0x0028 -#define OMAP3_GPIO_IRQENABLE2 0x002C -#define OMAP3_GPIO_CTRL 0x0030 -#define OMAP3_GPIO_OE 0x0034 -#define OMAP3_GPIO_DATAIN 0x0038 -#define OMAP3_GPIO_DATAOUT 0x003C -#define OMAP3_GPIO_LEVELDETECT0 0x0040 -#define OMAP3_GPIO_LEVELDETECT1 0x0044 -#define OMAP3_GPIO_RISINGDETECT 0x0048 -#define OMAP3_GPIO_FALLINGDETECT 0x004C -#define OMAP3_GPIO_DEBOUNCENABLE 0x0050 -#define OMAP3_GPIO_DEBOUNCINGTIME 0x0054 -#define OMAP3_GPIO_CLEARIRQENABLE1 0x0060 -#define OMAP3_GPIO_SETIRQENABLE1 0x0064 -#define OMAP3_GPIO_CLEARIRQENABLE2 0x0070 -#define OMAP3_GPIO_SETIRQENABLE2 0x0074 -#define OMAP3_GPIO_CLEARWKUENA 0x0080 -#define OMAP3_GPIO_SETWKUENA 0x0084 -#define OMAP3_GPIO_CLEARDATAOUT 0x0090 -#define OMAP3_GPIO_SETDATAOUT 0x0094 - -/* Register offsets of the GPIO banks on OMAP4 devices */ -#define OMAP4_GPIO_IRQSTATUS_RAW_0 0x0024 -#define OMAP4_GPIO_IRQSTATUS_RAW_1 0x0028 -#define OMAP4_GPIO_IRQSTATUS_0 0x002C -#define OMAP4_GPIO_IRQSTATUS_1 0x0030 -#define OMAP4_GPIO_IRQSTATUS_SET_0 0x0034 -#define OMAP4_GPIO_IRQSTATUS_SET_1 0x0038 -#define OMAP4_GPIO_IRQSTATUS_CLR_0 0x003C -#define OMAP4_GPIO_IRQSTATUS_CLR_1 0x0040 -#define OMAP4_GPIO_IRQWAKEN_0 0x0044 -#define OMAP4_GPIO_IRQWAKEN_1 0x0048 -#define OMAP4_GPIO_SYSSTATUS 0x0114 -#define OMAP4_GPIO_IRQSTATUS1 0x0118 -#define OMAP4_GPIO_IRQENABLE1 0x011C -#define OMAP4_GPIO_WAKEUPENABLE 0x0120 -#define OMAP4_GPIO_IRQSTATUS2 0x0128 -#define OMAP4_GPIO_IRQENABLE2 0x012C -#define OMAP4_GPIO_CTRL 0x0130 -#define OMAP4_GPIO_OE 0x0134 -#define OMAP4_GPIO_DATAIN 0x0138 -#define OMAP4_GPIO_DATAOUT 0x013C -#define OMAP4_GPIO_LEVELDETECT0 0x0140 -#define OMAP4_GPIO_LEVELDETECT1 0x0144 -#define OMAP4_GPIO_RISINGDETECT 0x0148 -#define OMAP4_GPIO_FALLINGDETECT 0x014C -#define OMAP4_GPIO_DEBOUNCENABLE 0x0150 -#define OMAP4_GPIO_DEBOUNCINGTIME 0x0154 -#define OMAP4_GPIO_CLEARIRQENABLE1 0x0160 -#define OMAP4_GPIO_SETIRQENABLE1 0x0164 -#define OMAP4_GPIO_CLEARIRQENABLE2 0x0170 -#define OMAP4_GPIO_SETIRQENABLE2 0x0174 -#define OMAP4_GPIO_CLEARWKUPENA 0x0180 -#define OMAP4_GPIO_SETWKUENA 0x0184 -#define OMAP4_GPIO_CLEARDATAOUT 0x0190 -#define OMAP4_GPIO_SETDATAOUT 0x0194 - -#define MAX_GPIO_BANKS 6 -#define PINS_PER_BANK 32 - -/** - * The following H/W revision values were found be experimentation, TI don't - * publish the revision numbers. The TRM says "TI internal Data". - */ -#define OMAP3_GPIO_REV 0x00000025 -#define OMAP4_GPIO_REV 0x50600801 + /* Register definitions */ +#define TI_GPIO_REVISION 0x0000 +#define TI_GPIO_SYSCONFIG 0x0010 +#if defined(SOC_OMAP3) +#define TI_GPIO_REVISION 0x0000 +#define TI_GPIO_SYSCONFIG 0x0010 +#define TI_GPIO_SYSSTATUS 0x0014 +#define TI_GPIO_IRQSTATUS1 0x0018 +#define TI_GPIO_IRQENABLE1 0x001C +#define TI_GPIO_WAKEUPENABLE 0x0020 +#define TI_GPIO_IRQSTATUS2 0x0028 +#define TI_GPIO_IRQENABLE2 0x002C +#define TI_GPIO_CTRL 0x0030 +#define TI_GPIO_OE 0x0034 +#define TI_GPIO_DATAIN 0x0038 +#define TI_GPIO_DATAOUT 0x003C +#define TI_GPIO_LEVELDETECT0 0x0040 +#define TI_GPIO_LEVELDETECT1 0x0044 +#define TI_GPIO_RISINGDETECT 0x0048 +#define TI_GPIO_FALLINGDETECT 0x004C +#define TI_GPIO_DEBOUNCENABLE 0x0050 +#define TI_GPIO_DEBOUNCINGTIME 0x0054 +#define TI_GPIO_CLEARIRQENABLE1 0x0060 +#define TI_GPIO_SETIRQENABLE1 0x0064 +#define TI_GPIO_CLEARIRQENABLE2 0x0070 +#define TI_GPIO_SETIRQENABLE2 0x0074 +#define TI_GPIO_CLEARWKUENA 0x0080 +#define TI_GPIO_SETWKUENA 0x0084 +#define TI_GPIO_CLEARDATAOUT 0x0090 +#define TI_GPIO_SETDATAOUT 0x0094 +#elif defined(SOC_OMAP4) || defined(SOC_TI_AM335X) +#define TI_GPIO_IRQSTATUS_RAW_0 0x0024 +#define TI_GPIO_IRQSTATUS_RAW_1 0x0028 +#define TI_GPIO_IRQSTATUS_0 0x002C +#define TI_GPIO_IRQSTATUS_1 0x0030 +#define TI_GPIO_IRQSTATUS_SET_0 0x0034 +#define TI_GPIO_IRQSTATUS_SET_1 0x0038 +#define TI_GPIO_IRQSTATUS_CLR_0 0x003C +#define TI_GPIO_IRQSTATUS_CLR_1 0x0040 +#define TI_GPIO_IRQWAKEN_0 0x0044 +#define TI_GPIO_IRQWAKEN_1 0x0048 +#define TI_GPIO_SYSSTATUS 0x0114 +#define TI_GPIO_IRQSTATUS1 0x0118 +#define TI_GPIO_IRQENABLE1 0x011C +#define TI_GPIO_WAKEUPENABLE 0x0120 +#define TI_GPIO_IRQSTATUS2 0x0128 +#define TI_GPIO_IRQENABLE2 0x012C +#define TI_GPIO_CTRL 0x0130 +#define TI_GPIO_OE 0x0134 +#define TI_GPIO_DATAIN 0x0138 +#define TI_GPIO_DATAOUT 0x013C +#define TI_GPIO_LEVELDETECT0 0x0140 +#define TI_GPIO_LEVELDETECT1 0x0144 +#define TI_GPIO_RISINGDETECT 0x0148 +#define TI_GPIO_FALLINGDETECT 0x014C +#define TI_GPIO_DEBOUNCENABLE 0x0150 +#define TI_GPIO_DEBOUNCINGTIME 0x0154 +#define TI_GPIO_CLEARIRQENABLE1 0x0160 +#define TI_GPIO_SETIRQENABLE1 0x0164 +#define TI_GPIO_CLEARIRQENABLE2 0x0170 +#define TI_GPIO_SETIRQENABLE2 0x0174 +#define TI_GPIO_CLEARWKUPENA 0x0180 +#define TI_GPIO_SETWKUENA 0x0184 +#define TI_GPIO_CLEARDATAOUT 0x0190 +#define TI_GPIO_SETDATAOUT 0x0194 +#else +#error "Unknown SoC" +#endif + + /*Other SoC Specific definitions*/ +#if defined(SOC_OMAP3) +#define MAX_GPIO_BANKS 6 +#define FIRST_GPIO_BANK 1 +#define PINS_PER_BANK 32 +#define TI_GPIO_REV 0x00000025 +#elif defined(SOC_OMAP4) +#define MAX_GPIO_BANKS 6 +#define FIRST_GPIO_BANK 1 +#define PINS_PER_BANK 32 +#define TI_GPIO_REV 0x50600801 +#elif defined(SOC_TI_AM335X) +#define MAX_GPIO_BANKS 4 +#define FIRST_GPIO_BANK 0 +#define PINS_PER_BANK 32 +#define TI_GPIO_REV 0x50600801 +#endif /** - * omap_gpio_mem_spec - Resource specification used when allocating resources - * omap_gpio_irq_spec - Resource specification used when allocating resources + * ti_gpio_mem_spec - Resource specification used when allocating resources + * ti_gpio_irq_spec - Resource specification used when allocating resources * * This driver module can have up to six independent memory regions, each * region typically controls 32 GPIO pins. */ -static struct resource_spec omap_gpio_mem_spec[] = { +static struct resource_spec ti_gpio_mem_spec[] = { { SYS_RES_MEMORY, 0, RF_ACTIVE }, { SYS_RES_MEMORY, 1, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_MEMORY, 2, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_MEMORY, 3, RF_ACTIVE | RF_OPTIONAL }, +#if !defined(SOC_TI_AM335X) { SYS_RES_MEMORY, 4, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_MEMORY, 5, RF_ACTIVE | RF_OPTIONAL }, +#endif { -1, 0, 0 } }; -static struct resource_spec omap_gpio_irq_spec[] = { +static struct resource_spec ti_gpio_irq_spec[] = { { SYS_RES_IRQ, 0, RF_ACTIVE }, { SYS_RES_IRQ, 1, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_IRQ, 2, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_IRQ, 3, RF_ACTIVE | RF_OPTIONAL }, +#if !defined(SOC_TI_AM335X) { SYS_RES_IRQ, 4, RF_ACTIVE | RF_OPTIONAL }, { SYS_RES_IRQ, 5, RF_ACTIVE | RF_OPTIONAL }, +#endif { -1, 0, 0 } }; @@ -172,38 +188,38 @@ static struct resource_spec omap_gpio_ir * * This structure is allocated during driver attach. */ -struct omap_gpio_softc { +struct ti_gpio_softc { device_t sc_dev; - + /* The memory resource(s) for the PRCM register set, when the device is * created the caller can assign up to 4 memory regions. */ struct resource* sc_mem_res[MAX_GPIO_BANKS]; struct resource* sc_irq_res[MAX_GPIO_BANKS]; - + /* The handle for the register IRQ handlers */ void* sc_irq_hdl[MAX_GPIO_BANKS]; - + /* The following describes the H/W revision of each of the GPIO banks */ uint32_t sc_revision[MAX_GPIO_BANKS]; - + struct mtx sc_mtx; }; /** * Macros for driver mutex locking */ -#define OMAP_GPIO_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) -#define OMAP_GPIO_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) -#define OMAP_GPIO_LOCK_INIT(_sc) \ +#define TI_GPIO_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define TI_GPIO_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define TI_GPIO_LOCK_INIT(_sc) \ mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ - "omap_gpio", MTX_DEF) -#define OMAP_GPIO_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); -#define OMAP_GPIO_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); -#define OMAP_GPIO_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); + "ti_gpio", MTX_DEF) +#define TI_GPIO_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define TI_GPIO_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define TI_GPIO_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); /** - * omap_gpio_read_4 - reads a 16-bit value from one of the PADCONFS registers + * ti_gpio_read_4 - reads a 16-bit value from one of the PADCONFS registers * @sc: GPIO device context * @bank: The bank to read from * @off: The offset of a register from the GPIO register address range @@ -213,13 +229,13 @@ struct omap_gpio_softc { * 32-bit value read from the register. */ static inline uint32_t -omap_gpio_read_4(struct omap_gpio_softc *sc, unsigned int bank, bus_size_t off) +ti_gpio_read_4(struct ti_gpio_softc *sc, unsigned int bank, bus_size_t off) { return (bus_read_4(sc->sc_mem_res[bank], off)); } /** - * omap_gpio_write_4 - writes a 32-bit value to one of the PADCONFS registers + * ti_gpio_write_4 - writes a 32-bit value to one of the PADCONFS registers * @sc: GPIO device context * @bank: The bank to write to * @off: The offset of a register from the GPIO register address range @@ -229,35 +245,14 @@ omap_gpio_read_4(struct omap_gpio_softc * nothing */ static inline void -omap_gpio_write_4(struct omap_gpio_softc *sc, unsigned int bank, bus_size_t off, +ti_gpio_write_4(struct ti_gpio_softc *sc, unsigned int bank, bus_size_t off, uint32_t val) { bus_write_4(sc->sc_mem_res[bank], off, val); } /** - * omap_gpio_is_omap4 - returns 1 if the GPIO module is from an OMAP4xxx chip - * omap_gpio_is_omap3 - returns 1 if the GPIO module is from an OMAP3xxx chip - * @sc: GPIO device context - * @bank: The bank to test the type of - * - * RETURNS: - * nothing - */ -static inline int -omap_gpio_is_omap4(struct omap_gpio_softc *sc, unsigned int bank) -{ - return (sc->sc_revision[bank] == OMAP4_GPIO_REV); -} - -static inline int -omap_gpio_is_omap3(struct omap_gpio_softc *sc, unsigned int bank) -{ - return (sc->sc_revision[bank] == OMAP3_GPIO_REV); -} - -/** - * omap_gpio_pin_max - Returns the maximum number of GPIO pins + * ti_gpio_pin_max - Returns the maximum number of GPIO pins * @dev: gpio device handle * @maxpin: pointer to a value that upon return will contain the maximum number * of pins in the device. @@ -270,13 +265,13 @@ omap_gpio_is_omap3(struct omap_gpio_soft * Returns 0 on success otherwise an error code */ static int -omap_gpio_pin_max(device_t dev, int *maxpin) +ti_gpio_pin_max(device_t dev, int *maxpin) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); unsigned int i; unsigned int banks = 0; - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Calculate how many valid banks we have and then multiply that by 32 to * give use the total number of pins. @@ -287,14 +282,14 @@ omap_gpio_pin_max(device_t dev, int *max } *maxpin = (banks * PINS_PER_BANK); - - OMAP_GPIO_UNLOCK(sc); - + + TI_GPIO_UNLOCK(sc); + return (0); } /** - * omap_gpio_pin_getcaps - Gets the capabilties of a given pin + * ti_gpio_pin_getcaps - Gets the capabilties of a given pin * @dev: gpio device handle * @pin: the number of the pin * @caps: pointer to a value that upon return will contain the capabilities @@ -312,31 +307,29 @@ omap_gpio_pin_max(device_t dev, int *max * Returns 0 on success otherwise an error code */ static int -omap_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps) +ti_gpio_pin_getcaps(device_t dev, uint32_t pin, uint32_t *caps) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } - *caps = (GPIO_PIN_INPUT | - GPIO_PIN_OUTPUT | - GPIO_PIN_PULLUP | - GPIO_PIN_PULLDOWN); + *caps = (GPIO_PIN_INPUT | GPIO_PIN_OUTPUT |GPIO_PIN_PULLUP | + GPIO_PIN_PULLDOWN); - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (0); } /** - * omap_gpio_pin_getflags - Gets the current flags of a given pin + * ti_gpio_pin_getflags - Gets the current flags of a given pin * @dev: gpio device handle * @pin: the number of the pin * @flags: upon return will contain the current flags of the pin @@ -352,29 +345,29 @@ omap_gpio_pin_getcaps(device_t dev, uint * Returns 0 on success otherwise an error code */ static int -omap_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags) +ti_gpio_pin_getflags(device_t dev, uint32_t pin, uint32_t *flags) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } /* Get the current pin state */ ti_scm_padconf_get_gpioflags(pin, flags); - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (0); } /** - * omap_gpio_pin_getname - Gets the name of a given pin + * ti_gpio_pin_getname - Gets the name of a given pin * @dev: gpio device handle * @pin: the number of the pin * @name: buffer to put the name in @@ -389,16 +382,16 @@ omap_gpio_pin_getflags(device_t dev, uin * Returns 0 on success otherwise an error code */ static int -omap_gpio_pin_getname(device_t dev, uint32_t pin, char *name) +ti_gpio_pin_getname(device_t dev, uint32_t pin, char *name) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } @@ -406,13 +399,13 @@ omap_gpio_pin_getname(device_t dev, uint snprintf(name, GPIOMAXNAME, "gpio_%u", pin); name[GPIOMAXNAME - 1] = '\0'; - OMAP_GPIO_UNLOCK(sc); - + TI_GPIO_UNLOCK(sc); + return (0); } /** - * omap_gpio_pin_setflags - Sets the flags for a given pin + * ti_gpio_pin_setflags - Sets the flags for a given pin * @dev: gpio device handle * @pin: the number of the pin * @flags: the flags to set @@ -431,12 +424,11 @@ omap_gpio_pin_getname(device_t dev, uint * Returns 0 on success otherwise an error code */ static int -omap_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) +ti_gpio_pin_setflags(device_t dev, uint32_t pin, uint32_t flags) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); uint32_t mask = (1UL << (pin % PINS_PER_BANK)); - uint32_t reg_off; uint32_t reg_val; /* Sanity check the flags supplied are valid, i.e. not input and output */ @@ -450,46 +442,36 @@ omap_gpio_pin_setflags(device_t dev, uin return (EINVAL); - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } /* Set the GPIO mode and state */ if (ti_scm_padconf_set_gpioflags(pin, flags) != 0) { - OMAP_GPIO_UNLOCK(sc); - return (EINVAL); - } - - /* Get the offset of the register to use */ - if (omap_gpio_is_omap3(sc, bank)) - reg_off = OMAP3_GPIO_OE; - else if (omap_gpio_is_omap4(sc, bank)) - reg_off = OMAP4_GPIO_OE; - else { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } /* If configuring as an output set the "output enable" bit */ - reg_val = omap_gpio_read_4(sc, bank, reg_off); + reg_val = ti_gpio_read_4(sc, bank, TI_GPIO_OE); if (flags & GPIO_PIN_INPUT) reg_val |= mask; else reg_val &= ~mask; - omap_gpio_write_4(sc, bank, reg_off, reg_val); + ti_gpio_write_4(sc, bank, TI_GPIO_OE, reg_val); - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (0); } /** - * omap_gpio_pin_set - Sets the current level on a GPIO pin + * ti_gpio_pin_set - Sets the current level on a GPIO pin * @dev: gpio device handle * @pin: the number of the pin * @value: non-zero value will drive the pin high, otherwise the pin is @@ -503,42 +485,30 @@ omap_gpio_pin_setflags(device_t dev, uin * Returns 0 on success otherwise a error code */ static int -omap_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value) +ti_gpio_pin_set(device_t dev, uint32_t pin, unsigned int value) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); uint32_t mask = (1UL << (pin % PINS_PER_BANK)); - uint32_t reg_off; - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); - return (EINVAL); - } - - /* Set the pin value */ - if (omap_gpio_is_omap3(sc, bank)) - reg_off = (value == GPIO_PIN_LOW) ? OMAP3_GPIO_CLEARDATAOUT : - OMAP3_GPIO_SETDATAOUT; - else if (omap_gpio_is_omap4(sc, bank)) - reg_off = (value == GPIO_PIN_LOW) ? OMAP4_GPIO_CLEARDATAOUT : - OMAP4_GPIO_SETDATAOUT; - else { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } - omap_gpio_write_4(sc, bank, reg_off, mask); + ti_gpio_write_4(sc, bank, (value == GPIO_PIN_LOW) ? TI_GPIO_CLEARDATAOUT + : TI_GPIO_SETDATAOUT, mask); - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (0); } /** - * omap_gpio_pin_get - Gets the current level on a GPIO pin + * ti_gpio_pin_get - Gets the current level on a GPIO pin * @dev: gpio device handle * @pin: the number of the pin * @value: pointer to a value that upond return will contain the pin value @@ -553,47 +523,39 @@ omap_gpio_pin_set(device_t dev, uint32_t * Returns 0 on success otherwise a error code */ static int -omap_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *value) +ti_gpio_pin_get(device_t dev, uint32_t pin, unsigned int *value) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); uint32_t mask = (1UL << (pin % PINS_PER_BANK)); uint32_t val = 0; - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } - + /* Sanity check the pin is not configured as an output */ - if (omap_gpio_is_omap3(sc, bank)) - val = omap_gpio_read_4(sc, bank, OMAP3_GPIO_OE); - else if (omap_gpio_is_omap4(sc, bank)) - val = omap_gpio_read_4(sc, bank, OMAP4_GPIO_OE); + val = ti_gpio_read_4(sc, bank, TI_GPIO_OE); if ((val & mask) == mask) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } - - /* Read the value on the pin */ - if (omap_gpio_is_omap3(sc, bank)) - val = omap_gpio_read_4(sc, bank, OMAP3_GPIO_DATAIN); - else if (omap_gpio_is_omap4(sc, bank)) - val = omap_gpio_read_4(sc, bank, OMAP4_GPIO_DATAIN); - *value = (val & mask) ? 1 : 0; + /* Read the value on the pin */ + *value = (ti_gpio_read_4(sc, bank, TI_GPIO_DATAIN) & mask) ? 1 : 0; - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (0); } /** - * omap_gpio_pin_toggle - Toggles a given GPIO pin + * ti_gpio_pin_toggle - Toggles a given GPIO pin * @dev: gpio device handle * @pin: the number of the pin * @@ -605,44 +567,35 @@ omap_gpio_pin_get(device_t dev, uint32_t * Returns 0 on success otherwise a error code */ static int -omap_gpio_pin_toggle(device_t dev, uint32_t pin) +ti_gpio_pin_toggle(device_t dev, uint32_t pin) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); uint32_t bank = (pin / PINS_PER_BANK); uint32_t mask = (1UL << (pin % PINS_PER_BANK)); uint32_t val; - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* Sanity check the pin number is valid */ if ((bank > MAX_GPIO_BANKS) || (sc->sc_mem_res[bank] == NULL)) { - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (EINVAL); } /* Toggle the pin */ - if (omap_gpio_is_omap3(sc, bank)) { - val = omap_gpio_read_4(sc, bank, OMAP3_GPIO_DATAOUT); - if (val & mask) - omap_gpio_write_4(sc, bank, OMAP3_GPIO_CLEARDATAOUT, mask); - else - omap_gpio_write_4(sc, bank, OMAP3_GPIO_SETDATAOUT, mask); - } - else if (omap_gpio_is_omap4(sc, bank)) { - val = omap_gpio_read_4(sc, bank, OMAP4_GPIO_DATAOUT); - if (val & mask) - omap_gpio_write_4(sc, bank, OMAP4_GPIO_CLEARDATAOUT, mask); - else - omap_gpio_write_4(sc, bank, OMAP4_GPIO_SETDATAOUT, mask); - } + val = ti_gpio_read_4(sc, bank, TI_GPIO_DATAOUT); + if (val & mask) + ti_gpio_write_4(sc, bank, TI_GPIO_CLEARDATAOUT, mask); + else + ti_gpio_write_4(sc, bank, TI_GPIO_SETDATAOUT, mask); - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); return (0); } /** - * omap_gpio_intr - ISR for all GPIO modules + * ti_gpio_intr - ISR for all GPIO modules * @arg: the soft context pointer * * Unsused @@ -652,17 +605,17 @@ omap_gpio_pin_toggle(device_t dev, uint3 * */ static void -omap_gpio_intr(void *arg) +ti_gpio_intr(void *arg) { - struct omap_gpio_softc *sc = arg; + struct ti_gpio_softc *sc = arg; - OMAP_GPIO_LOCK(sc); + TI_GPIO_LOCK(sc); /* TODO: something useful */ - OMAP_GPIO_UNLOCK(sc); + TI_GPIO_UNLOCK(sc); } /** - * omap_gpio_probe - probe function for the driver + * ti_gpio_probe - probe function for the driver * @dev: gpio device handle * * Simply sets the name of the driver @@ -674,17 +627,17 @@ omap_gpio_intr(void *arg) * Always returns 0 */ static int -omap_gpio_probe(device_t dev) +ti_gpio_probe(device_t dev) { - if (!ofw_bus_is_compatible(dev, "ti,omap_gpio")) + if (!ofw_bus_is_compatible(dev, "ti,gpio")) return (ENXIO); - device_set_desc(dev, "TI OMAP General Purpose I/O (GPIO)"); + device_set_desc(dev, "TI General Purpose I/O (GPIO)"); return (0); } /** - * omap_gpio_attach - attach function for the driver + * ti_gpio_attach - attach function for the driver * @dev: gpio device handle * * Allocates and sets up the driver context for all GPIO banks. This function @@ -697,29 +650,29 @@ omap_gpio_probe(device_t dev) * Always returns 0 */ static int -omap_gpio_attach(device_t dev) +ti_gpio_attach(device_t dev) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); unsigned int i; int err = 0; sc->sc_dev = dev; - OMAP_GPIO_LOCK_INIT(sc); + TI_GPIO_LOCK_INIT(sc); /* There are up to 6 different GPIO register sets located in different * memory areas on the chip. The memory range should have been set for - * the driver when it was added as a child (for example in omap4.c). + * the driver when it was added as a child. */ - err = bus_alloc_resources(dev, omap_gpio_mem_spec, sc->sc_mem_res); + err = bus_alloc_resources(dev, ti_gpio_mem_spec, sc->sc_mem_res); if (err) { device_printf(dev, "Error: could not allocate mem resources\n"); return (ENXIO); } /* Request the IRQ resources */ - err = bus_alloc_resources(dev, omap_gpio_irq_spec, sc->sc_irq_res); + err = bus_alloc_resources(dev, ti_gpio_irq_spec, sc->sc_irq_res); if (err) { device_printf(dev, "Error: could not allocate irq resources\n"); return (ENXIO); @@ -729,10 +682,10 @@ omap_gpio_attach(device_t dev) for (i = 0; i < MAX_GPIO_BANKS; i++) { if (sc->sc_irq_res[i] == NULL) break; - + /* Register an interrupt handler for each of the IRQ resources */ if ((bus_setup_intr(dev, sc->sc_irq_res[i], INTR_TYPE_MISC | INTR_MPSAFE, - NULL, omap_gpio_intr, sc, &(sc->sc_irq_hdl[i])))) { + NULL, ti_gpio_intr, sc, &(sc->sc_irq_hdl[i])))) { device_printf(dev, "WARNING: unable to register interrupt handler\n"); return (ENXIO); } @@ -748,33 +701,27 @@ omap_gpio_attach(device_t dev) */ for (i = 0; i < MAX_GPIO_BANKS; i++) { if (sc->sc_mem_res[i] != NULL) { - + /* Enable the interface and functional clocks for the module */ - ti_prcm_clk_enable(GPIO1_CLK + i); - + ti_prcm_clk_enable(GPIO0_CLK + FIRST_GPIO_BANK + i); + /* Read the revision number of the module. TI don't publish the * actual revision numbers, so instead the values have been - * determined by experimentation on OMAP4430 and OMAP3530 chips. + * determined by experimentation. */ - sc->sc_revision[i] = omap_gpio_read_4(sc, i, OMAP_GPIO_REVISION); - + sc->sc_revision[i] = ti_gpio_read_4(sc, i, TI_GPIO_REVISION); + /* Check the revision */ - if (!omap_gpio_is_omap4(sc, i) && !omap_gpio_is_omap3(sc, i)) { + if (sc->sc_revision[i] != TI_GPIO_REV) { device_printf(dev, "Warning: could not determine the revision" "of %u GPIO module (revision:0x%08x)\n", i, sc->sc_revision[i]); continue; } - + /* Disable interrupts for all pins */ - if (omap_gpio_is_omap3(sc, i)) { - omap_gpio_write_4(sc, i, OMAP3_GPIO_CLEARIRQENABLE1, 0xffffffff); - omap_gpio_write_4(sc, i, OMAP3_GPIO_CLEARIRQENABLE2, 0xffffffff); - } - else if (omap_gpio_is_omap4(sc, i)) { - omap_gpio_write_4(sc, i, OMAP4_GPIO_CLEARIRQENABLE1, 0xffffffff); - omap_gpio_write_4(sc, i, OMAP4_GPIO_CLEARIRQENABLE2, 0xffffffff); - } + ti_gpio_write_4(sc, i, TI_GPIO_CLEARIRQENABLE1, 0xffffffff); + ti_gpio_write_4(sc, i, TI_GPIO_CLEARIRQENABLE2, 0xffffffff); } } @@ -785,7 +732,7 @@ omap_gpio_attach(device_t dev) } /** - * omap_gpio_detach - detach function for the driver + * ti_gpio_detach - detach function for the driver * @dev: scm device handle * * Allocates and sets up the driver context, this simply entails creating a @@ -798,9 +745,9 @@ omap_gpio_attach(device_t dev) * Always returns 0 */ static int -omap_gpio_detach(device_t dev) +ti_gpio_detach(device_t dev) { - struct omap_gpio_softc *sc = device_get_softc(dev); + struct ti_gpio_softc *sc = device_get_softc(dev); unsigned int i; KASSERT(mtx_initialized(&sc->sc_mtx), ("gpio mutex not initialized")); @@ -808,13 +755,8 @@ omap_gpio_detach(device_t dev) /* Disable all interrupts */ for (i = 0; i < MAX_GPIO_BANKS; i++) { if (sc->sc_mem_res[i] != NULL) { - if (omap_gpio_is_omap3(sc, i)) { - omap_gpio_write_4(sc, i, OMAP3_GPIO_CLEARIRQENABLE1, 0xffffffff); - omap_gpio_write_4(sc, i, OMAP3_GPIO_CLEARIRQENABLE2, 0xffffffff); - } else if (omap_gpio_is_omap4(sc, i)) { - omap_gpio_write_4(sc, i, OMAP4_GPIO_CLEARIRQENABLE1, 0xffffffff); - omap_gpio_write_4(sc, i, OMAP4_GPIO_CLEARIRQENABLE2, 0xffffffff); - } + ti_gpio_write_4(sc, i, TI_GPIO_CLEARIRQENABLE1, 0xffffffff); + ti_gpio_write_4(sc, i, TI_GPIO_CLEARIRQENABLE2, 0xffffffff); } } @@ -828,33 +770,33 @@ omap_gpio_detach(device_t dev) bus_release_resource(dev, SYS_RES_IRQ, i, sc->sc_irq_res[i]); } - OMAP_GPIO_LOCK_DESTROY(sc); + TI_GPIO_LOCK_DESTROY(sc); return(0); } -static device_method_t omap_gpio_methods[] = { - DEVMETHOD(device_probe, omap_gpio_probe), - DEVMETHOD(device_attach, omap_gpio_attach), - DEVMETHOD(device_detach, omap_gpio_detach), +static device_method_t ti_gpio_methods[] = { + DEVMETHOD(device_probe, ti_gpio_probe), + DEVMETHOD(device_attach, ti_gpio_attach), + DEVMETHOD(device_detach, ti_gpio_detach), /* GPIO protocol */ - DEVMETHOD(gpio_pin_max, omap_gpio_pin_max), - DEVMETHOD(gpio_pin_getname, omap_gpio_pin_getname), - DEVMETHOD(gpio_pin_getflags, omap_gpio_pin_getflags), - DEVMETHOD(gpio_pin_getcaps, omap_gpio_pin_getcaps), - DEVMETHOD(gpio_pin_setflags, omap_gpio_pin_setflags), - DEVMETHOD(gpio_pin_get, omap_gpio_pin_get), - DEVMETHOD(gpio_pin_set, omap_gpio_pin_set), - DEVMETHOD(gpio_pin_toggle, omap_gpio_pin_toggle), + DEVMETHOD(gpio_pin_max, ti_gpio_pin_max), + DEVMETHOD(gpio_pin_getname, ti_gpio_pin_getname), + DEVMETHOD(gpio_pin_getflags, ti_gpio_pin_getflags), + DEVMETHOD(gpio_pin_getcaps, ti_gpio_pin_getcaps), + DEVMETHOD(gpio_pin_setflags, ti_gpio_pin_setflags), + DEVMETHOD(gpio_pin_get, ti_gpio_pin_get), + DEVMETHOD(gpio_pin_set, ti_gpio_pin_set), + DEVMETHOD(gpio_pin_toggle, ti_gpio_pin_toggle), {0, 0}, }; -static driver_t omap_gpio_driver = { +static driver_t ti_gpio_driver = { "gpio", - omap_gpio_methods, - sizeof(struct omap_gpio_softc), + ti_gpio_methods, + sizeof(struct ti_gpio_softc), }; -static devclass_t omap_gpio_devclass; +static devclass_t ti_gpio_devclass; -DRIVER_MODULE(omap_gpio, simplebus, omap_gpio_driver, omap_gpio_devclass, 0, 0); +DRIVER_MODULE(ti_gpio, simplebus, ti_gpio_driver, ti_gpio_devclass, 0, 0); Modified: projects/armv6/sys/arm/ti/ti_prcm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_prcm.h Tue Apr 3 21:10:30 2012 (r233856) +++ projects/armv6/sys/arm/ti/ti_prcm.h Tue Apr 3 22:21:15 2012 (r233857) @@ -105,7 +105,8 @@ typedef enum { MCBSP5_CLK, /* General purpose I/O modules */ - GPIO1_CLK = 700, + GPIO0_CLK = 700, + GPIO1_CLK, GPIO2_CLK, GPIO3_CLK, GPIO4_CLK, From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 03:55:32 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0DBC5106566B; Wed, 4 Apr 2012 03:55:32 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E492D8FC08; Wed, 4 Apr 2012 03:55: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 q343tV3x083867; Wed, 4 Apr 2012 03:55:31 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q343tVqg083851; Wed, 4 Apr 2012 03:55:31 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204040355.q343tVqg083851@svn.freebsd.org> From: Grzegorz Bernacki Date: Wed, 4 Apr 2012 03:55: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: r233858 - in projects/nand: . bin/expr bin/kenv bin/ps bin/pwait bin/setfacl bin/sh bin/stty cddl/contrib/opensolaris/lib/libdtrace/mips cddl/contrib/opensolaris/tools/ctf/cvt cddl/lib ... 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, 04 Apr 2012 03:55:32 -0000 Author: gber Date: Wed Apr 4 03:55:28 2012 New Revision: 233858 URL: http://svn.freebsd.org/changeset/base/233858 Log: IFC @233857 Added: projects/nand/cddl/contrib/opensolaris/lib/libdtrace/mips/ - copied from r233857, head/cddl/contrib/opensolaris/lib/libdtrace/mips/ projects/nand/contrib/libc++/include/__undef_min_max - copied unchanged from r233857, head/contrib/libc++/include/__undef_min_max projects/nand/crypto/heimdal/admin/destroy.c - copied unchanged from r233857, head/crypto/heimdal/admin/destroy.c projects/nand/crypto/heimdal/appl/login/login-protos.h - copied unchanged from r233857, head/crypto/heimdal/appl/login/login-protos.h projects/nand/crypto/heimdal/base/ - copied from r233857, head/crypto/heimdal/base/ projects/nand/crypto/heimdal/doc/copyright.texi - copied unchanged from r233857, head/crypto/heimdal/doc/copyright.texi projects/nand/crypto/heimdal/doc/doxyout/ - copied from r233857, head/crypto/heimdal/doc/doxyout/ projects/nand/crypto/heimdal/doc/gssapi.din - copied unchanged from r233857, head/crypto/heimdal/doc/gssapi.din projects/nand/crypto/heimdal/doc/header.html - copied unchanged from r233857, head/crypto/heimdal/doc/header.html projects/nand/crypto/heimdal/doc/wind.din - copied unchanged from r233857, head/crypto/heimdal/doc/wind.din projects/nand/crypto/heimdal/include/crypto-headers.h - copied unchanged from r233857, head/crypto/heimdal/include/crypto-headers.h projects/nand/crypto/heimdal/include/heim_threads.h - copied unchanged from r233857, head/crypto/heimdal/include/heim_threads.h projects/nand/crypto/heimdal/include/krb5-types.cross - copied unchanged from r233857, head/crypto/heimdal/include/krb5-types.cross projects/nand/crypto/heimdal/kadmin/rpc.c - copied unchanged from r233857, head/crypto/heimdal/kadmin/rpc.c projects/nand/crypto/heimdal/kcm/kcm-protos.h - copied unchanged from r233857, head/crypto/heimdal/kcm/kcm-protos.h projects/nand/crypto/heimdal/kcm/sessions.c - copied unchanged from r233857, head/crypto/heimdal/kcm/sessions.c projects/nand/crypto/heimdal/kdc/announce.c - copied unchanged from r233857, head/crypto/heimdal/kdc/announce.c projects/nand/crypto/heimdal/kdc/digest-service.c - copied unchanged from r233857, head/crypto/heimdal/kdc/digest-service.c projects/nand/crypto/heimdal/kuser/kcc-commands.in - copied unchanged from r233857, head/crypto/heimdal/kuser/kcc-commands.in projects/nand/crypto/heimdal/kuser/kcc.c - copied unchanged from r233857, head/crypto/heimdal/kuser/kcc.c projects/nand/crypto/heimdal/kuser/kdigest.8 - copied unchanged from r233857, head/crypto/heimdal/kuser/kdigest.8 projects/nand/crypto/heimdal/kuser/kimpersonate.8 - copied unchanged from r233857, head/crypto/heimdal/kuser/kimpersonate.8 projects/nand/crypto/heimdal/kuser/kswitch.1 - copied unchanged from r233857, head/crypto/heimdal/kuser/kswitch.1 projects/nand/crypto/heimdal/kuser/kswitch.c - copied unchanged from r233857, head/crypto/heimdal/kuser/kswitch.c projects/nand/crypto/heimdal/lib/asn1/asn1-template.h - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/asn1-template.h projects/nand/crypto/heimdal/lib/asn1/asn1parse.c - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/asn1parse.c projects/nand/crypto/heimdal/lib/asn1/asn1parse.h - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/asn1parse.h projects/nand/crypto/heimdal/lib/asn1/asn1parse.y - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/asn1parse.y projects/nand/crypto/heimdal/lib/asn1/cms.asn1 - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/cms.asn1 projects/nand/crypto/heimdal/lib/asn1/cms.opt - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/cms.opt projects/nand/crypto/heimdal/lib/asn1/der-private.h - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/der-private.h projects/nand/crypto/heimdal/lib/asn1/gen_template.c - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/gen_template.c projects/nand/crypto/heimdal/lib/asn1/krb5.asn1 - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/krb5.asn1 projects/nand/crypto/heimdal/lib/asn1/krb5.opt - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/krb5.opt projects/nand/crypto/heimdal/lib/asn1/template.c - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/template.c projects/nand/crypto/heimdal/lib/asn1/version-script.map - copied unchanged from r233857, head/crypto/heimdal/lib/asn1/version-script.map projects/nand/crypto/heimdal/lib/gssapi/gssapi/gssapi_ntlm.h - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/gssapi/gssapi_ntlm.h projects/nand/crypto/heimdal/lib/gssapi/gssapi/gssapi_oid.h - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/gssapi/gssapi_oid.h projects/nand/crypto/heimdal/lib/gssapi/gsstool.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/gsstool.c projects/nand/crypto/heimdal/lib/gssapi/krb5/aeap.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/krb5/aeap.c projects/nand/crypto/heimdal/lib/gssapi/krb5/authorize_localname.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/krb5/authorize_localname.c projects/nand/crypto/heimdal/lib/gssapi/krb5/creds.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/krb5/creds.c projects/nand/crypto/heimdal/lib/gssapi/krb5/pname_to_uid.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/krb5/pname_to_uid.c projects/nand/crypto/heimdal/lib/gssapi/krb5/store_cred.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/krb5/store_cred.c projects/nand/crypto/heimdal/lib/gssapi/mech/ - copied from r233857, head/crypto/heimdal/lib/gssapi/mech/ projects/nand/crypto/heimdal/lib/gssapi/ntlm/creds.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/ntlm/creds.c projects/nand/crypto/heimdal/lib/gssapi/ntlm/inquire_sec_context_by_oid.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/ntlm/inquire_sec_context_by_oid.c projects/nand/crypto/heimdal/lib/gssapi/ntlm/iter_cred.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/ntlm/iter_cred.c projects/nand/crypto/heimdal/lib/gssapi/ntlm/kdc.c - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/ntlm/kdc.c projects/nand/crypto/heimdal/lib/gssapi/spnego/spnego.opt - copied unchanged from r233857, head/crypto/heimdal/lib/gssapi/spnego/spnego.opt projects/nand/crypto/heimdal/lib/hdb/hdb-keytab.c - copied unchanged from r233857, head/crypto/heimdal/lib/hdb/hdb-keytab.c projects/nand/crypto/heimdal/lib/hdb/hdb-mitdb.c - copied unchanged from r233857, head/crypto/heimdal/lib/hdb/hdb-mitdb.c projects/nand/crypto/heimdal/lib/hdb/hdb-sqlite.c - copied unchanged from r233857, head/crypto/heimdal/lib/hdb/hdb-sqlite.c projects/nand/crypto/heimdal/lib/hdb/version-script.map - copied unchanged from r233857, head/crypto/heimdal/lib/hdb/version-script.map projects/nand/crypto/heimdal/lib/heimdal/ - copied from r233857, head/crypto/heimdal/lib/heimdal/ projects/nand/crypto/heimdal/lib/hx509/char_map.h - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/char_map.h projects/nand/crypto/heimdal/lib/hx509/ocsp.opt - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/ocsp.opt projects/nand/crypto/heimdal/lib/hx509/pkcs10.opt - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/pkcs10.opt projects/nand/crypto/heimdal/lib/hx509/quote.py - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/quote.py projects/nand/crypto/heimdal/lib/hx509/sel-gram.y - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/sel-gram.y projects/nand/crypto/heimdal/lib/hx509/sel-lex.l - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/sel-lex.l projects/nand/crypto/heimdal/lib/hx509/sel.c - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/sel.c projects/nand/crypto/heimdal/lib/hx509/sel.h - copied unchanged from r233857, head/crypto/heimdal/lib/hx509/sel.h projects/nand/crypto/heimdal/lib/ipc/ - copied from r233857, head/crypto/heimdal/lib/ipc/ projects/nand/crypto/heimdal/lib/krb5/ccache_plugin.h - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/ccache_plugin.h projects/nand/crypto/heimdal/lib/krb5/crypto-aes.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-aes.c projects/nand/crypto/heimdal/lib/krb5/crypto-algs.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-algs.c projects/nand/crypto/heimdal/lib/krb5/crypto-arcfour.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-arcfour.c projects/nand/crypto/heimdal/lib/krb5/crypto-des-common.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-des-common.c projects/nand/crypto/heimdal/lib/krb5/crypto-des.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-des.c projects/nand/crypto/heimdal/lib/krb5/crypto-des3.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-des3.c projects/nand/crypto/heimdal/lib/krb5/crypto-evp.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-evp.c projects/nand/crypto/heimdal/lib/krb5/crypto-null.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-null.c projects/nand/crypto/heimdal/lib/krb5/crypto-pk.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-pk.c projects/nand/crypto/heimdal/lib/krb5/crypto-rand.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-rand.c projects/nand/crypto/heimdal/lib/krb5/crypto-stubs.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto-stubs.c projects/nand/crypto/heimdal/lib/krb5/crypto.h - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/crypto.h projects/nand/crypto/heimdal/lib/krb5/deprecated.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/deprecated.c projects/nand/crypto/heimdal/lib/krb5/expand_path.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/expand_path.c projects/nand/crypto/heimdal/lib/krb5/pcache.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/pcache.c projects/nand/crypto/heimdal/lib/krb5/salt-aes.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/salt-aes.c projects/nand/crypto/heimdal/lib/krb5/salt-arcfour.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/salt-arcfour.c projects/nand/crypto/heimdal/lib/krb5/salt-des.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/salt-des.c projects/nand/crypto/heimdal/lib/krb5/salt-des3.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/salt-des3.c projects/nand/crypto/heimdal/lib/krb5/salt.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/salt.c projects/nand/crypto/heimdal/lib/krb5/scache.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/scache.c projects/nand/crypto/heimdal/lib/krb5/send_to_kdc_plugin.h - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/send_to_kdc_plugin.h projects/nand/crypto/heimdal/lib/krb5/store-int.c - copied unchanged from r233857, head/crypto/heimdal/lib/krb5/store-int.c projects/nand/crypto/heimdal/lib/ntlm/ntlm_err.et - copied unchanged from r233857, head/crypto/heimdal/lib/ntlm/ntlm_err.et projects/nand/crypto/heimdal/lib/roken/cloexec.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/cloexec.c projects/nand/crypto/heimdal/lib/roken/ct.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/ct.c projects/nand/crypto/heimdal/lib/roken/doxygen.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/doxygen.c projects/nand/crypto/heimdal/lib/roken/qsort.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/qsort.c projects/nand/crypto/heimdal/lib/roken/rand.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/rand.c projects/nand/crypto/heimdal/lib/roken/rkpty.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/rkpty.c projects/nand/crypto/heimdal/lib/roken/search.hin - copied unchanged from r233857, head/crypto/heimdal/lib/roken/search.hin projects/nand/crypto/heimdal/lib/roken/strerror_r.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/strerror_r.c projects/nand/crypto/heimdal/lib/roken/tsearch.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/tsearch.c projects/nand/crypto/heimdal/lib/roken/version-script.map - copied unchanged from r233857, head/crypto/heimdal/lib/roken/version-script.map projects/nand/crypto/heimdal/lib/roken/xfree.c - copied unchanged from r233857, head/crypto/heimdal/lib/roken/xfree.c projects/nand/crypto/heimdal/lib/sqlite/ - copied from r233857, head/crypto/heimdal/lib/sqlite/ projects/nand/crypto/heimdal/lib/wind/ - copied from r233857, head/crypto/heimdal/lib/wind/ projects/nand/gnu/lib/libsupc++/Version.map - copied unchanged from r233857, head/gnu/lib/libsupc++/Version.map projects/nand/kerberos5/lib/libgssapi_krb5/gss_oid.c - copied unchanged from r233857, head/kerberos5/lib/libgssapi_krb5/gss_oid.c projects/nand/kerberos5/lib/libgssapi_spnego/freebsd_compat.c - copied unchanged from r233857, head/kerberos5/lib/libgssapi_spnego/freebsd_compat.c projects/nand/kerberos5/lib/libheimbase/ - copied from r233857, head/kerberos5/lib/libheimbase/ projects/nand/kerberos5/lib/libheimipcc/ - copied from r233857, head/kerberos5/lib/libheimipcc/ projects/nand/kerberos5/lib/libheimipcs/ - copied from r233857, head/kerberos5/lib/libheimipcs/ projects/nand/kerberos5/lib/libheimsqlite/ - copied from r233857, head/kerberos5/lib/libheimsqlite/ projects/nand/kerberos5/lib/libkdc/ - copied from r233857, head/kerberos5/lib/libkdc/ projects/nand/kerberos5/lib/libwind/ - copied from r233857, head/kerberos5/lib/libwind/ projects/nand/kerberos5/libexec/digest-service/ - copied from r233857, head/kerberos5/libexec/digest-service/ projects/nand/kerberos5/libexec/kdigest/ - copied from r233857, head/kerberos5/libexec/kdigest/ projects/nand/kerberos5/libexec/kfd/ - copied from r233857, head/kerberos5/libexec/kfd/ projects/nand/kerberos5/libexec/kimpersonate/ - copied from r233857, head/kerberos5/libexec/kimpersonate/ projects/nand/kerberos5/usr.bin/hxtool/ - copied from r233857, head/kerberos5/usr.bin/hxtool/ projects/nand/kerberos5/usr.bin/kcc/ - copied from r233857, head/kerberos5/usr.bin/kcc/ projects/nand/kerberos5/usr.bin/kf/ - copied from r233857, head/kerberos5/usr.bin/kf/ projects/nand/kerberos5/usr.bin/kgetcred/ - copied from r233857, head/kerberos5/usr.bin/kgetcred/ projects/nand/kerberos5/usr.bin/string2key/ - copied from r233857, head/kerberos5/usr.bin/string2key/ projects/nand/kerberos5/usr.sbin/iprop-log/ - copied from r233857, head/kerberos5/usr.sbin/iprop-log/ projects/nand/lib/csu/common/ignore_init.c - copied unchanged from r233857, head/lib/csu/common/ignore_init.c projects/nand/lib/csu/common/notes.h - copied unchanged from r233857, head/lib/csu/common/notes.h projects/nand/lib/libc/locale/ctype_l.3 - copied unchanged from r233857, head/lib/libc/locale/ctype_l.3 projects/nand/lib/libcxxrt/Version.map - copied unchanged from r233857, head/lib/libcxxrt/Version.map projects/nand/lib/libpmc/pmc.mips24k.3 - copied unchanged from r233857, head/lib/libpmc/pmc.mips24k.3 projects/nand/lib/libpmc/pmc.octeon.3 - copied unchanged from r233857, head/lib/libpmc/pmc.octeon.3 projects/nand/lib/libpmc/pmc.soft.3 - copied unchanged from r233857, head/lib/libpmc/pmc.soft.3 projects/nand/share/examples/csh/ - copied from r233857, head/share/examples/csh/ projects/nand/sys/amd64/include/npx.h - copied unchanged from r233857, head/sys/amd64/include/npx.h projects/nand/sys/cddl/contrib/opensolaris/uts/mips/ - copied from r233857, head/sys/cddl/contrib/opensolaris/uts/mips/ projects/nand/sys/cddl/dev/dtrace/mips/ - copied from r233857, head/sys/cddl/dev/dtrace/mips/ projects/nand/sys/contrib/dev/acpica/compiler/preprocess.h - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/preprocess.h projects/nand/sys/contrib/dev/acpica/compiler/prexpress.c - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/prexpress.c projects/nand/sys/contrib/dev/acpica/compiler/prmacros.c - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/prmacros.c projects/nand/sys/contrib/dev/acpica/compiler/prparser.l - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/prparser.l projects/nand/sys/contrib/dev/acpica/compiler/prparser.y - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/prparser.y projects/nand/sys/contrib/dev/acpica/compiler/prscan.c - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/prscan.c projects/nand/sys/contrib/dev/acpica/compiler/prutils.c - copied unchanged from r233857, head/sys/contrib/dev/acpica/compiler/prutils.c projects/nand/sys/contrib/dev/ral/microcode.h - copied unchanged from r233857, head/sys/contrib/dev/ral/microcode.h projects/nand/sys/contrib/octeon-sdk/cvmx-ciu2-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-ciu2-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-endor-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-endor-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-eoi-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-eoi-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-cfg.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-helper-cfg.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-cfg.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-helper-cfg.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-ilk.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-helper-ilk.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-ilk.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-helper-ilk.h projects/nand/sys/contrib/octeon-sdk/cvmx-hfa.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-hfa.c projects/nand/sys/contrib/octeon-sdk/cvmx-hfa.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-hfa.h projects/nand/sys/contrib/octeon-sdk/cvmx-ilk-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-ilk-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-ilk.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-ilk.c projects/nand/sys/contrib/octeon-sdk/cvmx-ilk.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-ilk.h projects/nand/sys/contrib/octeon-sdk/cvmx-iob1-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-iob1-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-ipd.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-ipd.c projects/nand/sys/contrib/octeon-sdk/cvmx-malloc/ - copied from r233857, head/sys/contrib/octeon-sdk/cvmx-malloc/ projects/nand/sys/contrib/octeon-sdk/cvmx-profiler.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-profiler.c projects/nand/sys/contrib/octeon-sdk/cvmx-profiler.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-profiler.h projects/nand/sys/contrib/octeon-sdk/cvmx-qlm-tables.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-qlm-tables.c projects/nand/sys/contrib/octeon-sdk/cvmx-qlm.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-qlm.c projects/nand/sys/contrib/octeon-sdk/cvmx-qlm.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-qlm.h projects/nand/sys/contrib/octeon-sdk/cvmx-resources.config - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-resources.config projects/nand/sys/contrib/octeon-sdk/cvmx-shared-linux-n32.ld - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-shared-linux-n32.ld projects/nand/sys/contrib/octeon-sdk/cvmx-shared-linux-o32.ld - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-shared-linux-o32.ld projects/nand/sys/contrib/octeon-sdk/cvmx-shared-linux.ld - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-shared-linux.ld projects/nand/sys/contrib/octeon-sdk/cvmx-sso-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-sso-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-trax-defs.h - copied unchanged from r233857, head/sys/contrib/octeon-sdk/cvmx-trax-defs.h projects/nand/sys/contrib/octeon-sdk/octeon-feature.c - copied unchanged from r233857, head/sys/contrib/octeon-sdk/octeon-feature.c projects/nand/sys/dev/hwpmc/hwpmc_octeon.c - copied unchanged from r233857, head/sys/dev/hwpmc/hwpmc_octeon.c projects/nand/sys/dev/hwpmc/hwpmc_soft.c - copied unchanged from r233857, head/sys/dev/hwpmc/hwpmc_soft.c projects/nand/sys/dev/hwpmc/hwpmc_soft.h - copied unchanged from r233857, head/sys/dev/hwpmc/hwpmc_soft.h projects/nand/sys/dev/iicbus/ds1374.c - copied unchanged from r233857, head/sys/dev/iicbus/ds1374.c projects/nand/sys/dev/iicbus/iicoc.c - copied unchanged from r233857, head/sys/dev/iicbus/iicoc.c projects/nand/sys/dev/iicbus/iicoc.h - copied unchanged from r233857, head/sys/dev/iicbus/iicoc.h projects/nand/sys/dev/mfi/mfi_syspd.c - copied unchanged from r233857, head/sys/dev/mfi/mfi_syspd.c projects/nand/sys/dev/mfi/mfi_tbolt.c - copied unchanged from r233857, head/sys/dev/mfi/mfi_tbolt.c projects/nand/sys/dev/mpt/mpilib/mpi_log_fc.h - copied unchanged from r233857, head/sys/dev/mpt/mpilib/mpi_log_fc.h projects/nand/sys/dev/mpt/mpilib/mpi_log_sas.h - copied unchanged from r233857, head/sys/dev/mpt/mpilib/mpi_log_sas.h projects/nand/sys/geom/part/g_part_ldm.c - copied unchanged from r233857, head/sys/geom/part/g_part_ldm.c projects/nand/sys/mips/cavium/octeon_irq.h - copied unchanged from r233857, head/sys/mips/cavium/octeon_irq.h projects/nand/sys/mips/cavium/octeon_pmc.c - copied unchanged from r233857, head/sys/mips/cavium/octeon_pmc.c projects/nand/sys/mips/conf/XLP.hints - copied unchanged from r233857, head/sys/mips/conf/XLP.hints projects/nand/sys/mips/mips/libkern_machdep.c - copied unchanged from r233857, head/sys/mips/mips/libkern_machdep.c projects/nand/sys/mips/nlm/board_cpld.c - copied unchanged from r233857, head/sys/mips/nlm/board_cpld.c projects/nand/sys/mips/nlm/board_eeprom.c - copied unchanged from r233857, head/sys/mips/nlm/board_eeprom.c projects/nand/sys/mips/nlm/dev/ - copied from r233857, head/sys/mips/nlm/dev/ projects/nand/sys/mips/nlm/hal/gbu.h - copied unchanged from r233857, head/sys/mips/nlm/hal/gbu.h projects/nand/sys/mips/nlm/hal/interlaken.h - copied unchanged from r233857, head/sys/mips/nlm/hal/interlaken.h projects/nand/sys/mips/nlm/hal/mdio.h - copied unchanged from r233857, head/sys/mips/nlm/hal/mdio.h projects/nand/sys/mips/nlm/hal/nae.h - copied unchanged from r233857, head/sys/mips/nlm/hal/nae.h projects/nand/sys/mips/nlm/hal/nlmsaelib.h - copied unchanged from r233857, head/sys/mips/nlm/hal/nlmsaelib.h projects/nand/sys/mips/nlm/hal/poe.h - copied unchanged from r233857, head/sys/mips/nlm/hal/poe.h projects/nand/sys/mips/nlm/hal/sgmii.h - copied unchanged from r233857, head/sys/mips/nlm/hal/sgmii.h projects/nand/sys/mips/nlm/hal/ucore_loader.h - copied unchanged from r233857, head/sys/mips/nlm/hal/ucore_loader.h projects/nand/sys/mips/nlm/hal/xaui.h - copied unchanged from r233857, head/sys/mips/nlm/hal/xaui.h projects/nand/sys/modules/acl_nfs4/ - copied from r233857, head/sys/modules/acl_nfs4/ projects/nand/sys/modules/acl_posix1e/ - copied from r233857, head/sys/modules/acl_posix1e/ projects/nand/sys/modules/geom/geom_part/geom_part_ldm/ - copied from r233857, head/sys/modules/geom/geom_part/geom_part_ldm/ projects/nand/sys/modules/ralfw/rt2860/ - copied from r233857, head/sys/modules/ralfw/rt2860/ projects/nand/sys/x86/include/fpu.h - copied unchanged from r233857, head/sys/x86/include/fpu.h projects/nand/sys/x86/include/legacyvar.h - copied unchanged from r233857, head/sys/x86/include/legacyvar.h projects/nand/sys/x86/include/psl.h - copied unchanged from r233857, head/sys/x86/include/psl.h projects/nand/sys/x86/include/reg.h - copied unchanged from r233857, head/sys/x86/include/reg.h projects/nand/sys/x86/include/segments.h - copied unchanged from r233857, head/sys/x86/include/segments.h projects/nand/sys/x86/include/specialreg.h - copied unchanged from r233857, head/sys/x86/include/specialreg.h projects/nand/sys/x86/include/sysarch.h - copied unchanged from r233857, head/sys/x86/include/sysarch.h projects/nand/sys/x86/x86/legacy.c - copied unchanged from r233857, head/sys/x86/x86/legacy.c projects/nand/tools/regression/bin/sh/expansion/arith12.0 - copied unchanged from r233857, head/tools/regression/bin/sh/expansion/arith12.0 Replaced: projects/nand/contrib/com_err/ChangeLog - copied unchanged from r233857, head/contrib/com_err/ChangeLog Deleted: projects/nand/Makefile.mips projects/nand/contrib/com_err/Makefile.am projects/nand/contrib/com_err/Makefile.in projects/nand/contrib/com_err/getarg.c projects/nand/contrib/com_err/getarg.h projects/nand/contrib/com_err/lex.c projects/nand/contrib/com_err/parse.c projects/nand/contrib/com_err/parse.h projects/nand/contrib/libcxxrt/typeinfo projects/nand/crypto/heimdal/appl/ftp/ftp/krb4.c projects/nand/crypto/heimdal/appl/ftp/ftpd/krb4.c projects/nand/crypto/heimdal/appl/login/login_protos.h projects/nand/crypto/heimdal/appl/telnet/libtelnet/kerberos.c projects/nand/crypto/heimdal/appl/telnet/libtelnet/krb4encpwd.c projects/nand/crypto/heimdal/cf/ projects/nand/crypto/heimdal/configure.in projects/nand/crypto/heimdal/include/make_crypto.c projects/nand/crypto/heimdal/kcm/cursor.c projects/nand/crypto/heimdal/kcm/kcm_protos.h projects/nand/crypto/heimdal/kdc/524.c projects/nand/crypto/heimdal/kdc/kadb.h projects/nand/crypto/heimdal/kdc/kaserver.c projects/nand/crypto/heimdal/kdc/kerberos4.c projects/nand/crypto/heimdal/kdc/v4_dump.c projects/nand/crypto/heimdal/kuser/kimpersonate.1 projects/nand/crypto/heimdal/lib/45/ projects/nand/crypto/heimdal/lib/asn1/CMS.asn1 projects/nand/crypto/heimdal/lib/asn1/k5.asn1 projects/nand/crypto/heimdal/lib/asn1/parse.c projects/nand/crypto/heimdal/lib/asn1/parse.h projects/nand/crypto/heimdal/lib/asn1/parse.y projects/nand/crypto/heimdal/lib/auth/ projects/nand/crypto/heimdal/lib/gssapi/gss.c projects/nand/crypto/heimdal/lib/gssapi/krb5/v1.c projects/nand/crypto/heimdal/lib/gssapi/ntlm/digest.c projects/nand/crypto/heimdal/lib/gssapi/ntlm/inquire_cred.c projects/nand/crypto/heimdal/lib/hx509/data/ projects/nand/crypto/heimdal/lib/kafs/README.dlfcn projects/nand/crypto/heimdal/lib/kafs/afskrb.c projects/nand/crypto/heimdal/lib/kafs/dlfcn.c projects/nand/crypto/heimdal/lib/kafs/dlfcn.h projects/nand/crypto/heimdal/lib/krb5/config_file_netinfo.c projects/nand/crypto/heimdal/lib/krb5/get_in_tkt_pw.c projects/nand/crypto/heimdal/lib/krb5/get_in_tkt_with_keytab.c projects/nand/crypto/heimdal/lib/krb5/get_in_tkt_with_skey.c projects/nand/crypto/heimdal/lib/krb5/heim_threads.h projects/nand/crypto/heimdal/lib/krb5/keytab_krb4.c projects/nand/crypto/heimdal/lib/krb5/krb5.3 projects/nand/crypto/heimdal/lib/krb5/krb5_address.3 projects/nand/crypto/heimdal/lib/krb5/krb5_ccache.3 projects/nand/crypto/heimdal/lib/krb5/krb5_compare_creds.3 projects/nand/crypto/heimdal/lib/krb5/krb5_config.3 projects/nand/crypto/heimdal/lib/krb5/krb5_context.3 projects/nand/crypto/heimdal/lib/krb5/krb5_crypto_init.3 projects/nand/crypto/heimdal/lib/krb5/krb5_data.3 projects/nand/crypto/heimdal/lib/krb5/krb5_expand_hostname.3 projects/nand/crypto/heimdal/lib/krb5/krb5_keyblock.3 projects/nand/crypto/heimdal/lib/krb5/krb5_keytab.3 projects/nand/crypto/heimdal/lib/krb5/krb5_kuserok.3 projects/nand/crypto/heimdal/lib/krb5/krb5_storage.3 projects/nand/crypto/heimdal/lib/krb5/krb5_ticket.3 projects/nand/crypto/heimdal/lib/krb5/krb5_unparse_name.3 projects/nand/crypto/heimdal/lib/krb5/krb5_warn.3 projects/nand/crypto/heimdal/lib/krb5/name-45-test.c projects/nand/crypto/heimdal/lib/krb5/v4_glue.c projects/nand/crypto/heimdal/lib/roken/snprintf-test.h projects/nand/crypto/heimdal/lib/roken/vis.h projects/nand/crypto/heimdal/lib/sl/lex.c projects/nand/crypto/heimdal/lib/sl/lex.l projects/nand/crypto/heimdal/lib/sl/make_cmds.c projects/nand/crypto/heimdal/lib/sl/make_cmds.h projects/nand/crypto/heimdal/lib/sl/parse.c projects/nand/crypto/heimdal/lib/sl/parse.h projects/nand/crypto/heimdal/lib/sl/parse.y projects/nand/crypto/heimdal/lib/sl/ss.c projects/nand/crypto/heimdal/lib/sl/ss.h projects/nand/crypto/heimdal/lib/vers/make-print-version.c projects/nand/crypto/heimdal/packages/ projects/nand/crypto/heimdal/tests/ projects/nand/crypto/heimdal/tools/heimdal-build.sh projects/nand/kerberos5/lib/libgssapi_spnego/prefix.c projects/nand/kerberos5/tools/make-print-version/ projects/nand/kerberos5/usr.bin/klist/ projects/nand/lib/libpmc/pmc.mips.3 projects/nand/sys/amd64/amd64/legacy.c projects/nand/sys/amd64/include/legacyvar.h projects/nand/sys/compat/ia32/ia32_reg.h projects/nand/sys/contrib/dev/ral/rt2661_ucode.h projects/nand/sys/contrib/octeon-sdk/cvmx-csr-db-support.c projects/nand/sys/contrib/octeon-sdk/cvmx-csr-db.c projects/nand/sys/contrib/octeon-sdk/cvmx-csr-db.h projects/nand/sys/contrib/octeon-sdk/cvmx-error-custom.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-custom.h projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn30xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn31xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn38xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn38xxp2.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn50xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn52xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn52xxp1.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn56xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn56xxp1.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn58xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn58xxp1.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn63xx.c projects/nand/sys/contrib/octeon-sdk/cvmx-error-init-cn63xxp1.c projects/nand/sys/contrib/octeon-sdk/cvmx-error.c projects/nand/sys/contrib/octeon-sdk/cvmx-error.h projects/nand/sys/dev/hwpmc/hwpmc_mips24k.h projects/nand/sys/dev/mpt/mpilib/mpi_inb.h projects/nand/sys/fs/fifofs/fifo.h projects/nand/sys/i386/i386/legacy.c projects/nand/sys/i386/include/legacyvar.h projects/nand/sys/mips/include/bswap.h projects/nand/sys/mips/include/clockvar.h projects/nand/sys/mips/include/cputypes.h projects/nand/sys/mips/include/iodev.h projects/nand/sys/mips/include/mp_watchdog.h projects/nand/sys/mips/include/pci_cfgreg.h projects/nand/sys/mips/include/ppireg.h projects/nand/sys/mips/include/timerreg.h projects/nand/sys/mips/mips/mainbus.c projects/nand/sys/mips/nlm/intern_dev.c projects/nand/sys/mips/nlm/uart_pci_xlp.c projects/nand/sys/pc98/include/legacyvar.h Modified: projects/nand/Makefile projects/nand/Makefile.inc1 projects/nand/ObsoleteFiles.inc projects/nand/UPDATING projects/nand/bin/expr/expr.y projects/nand/bin/kenv/kenv.1 projects/nand/bin/ps/ps.1 projects/nand/bin/pwait/pwait.1 projects/nand/bin/setfacl/setfacl.1 projects/nand/bin/sh/jobs.c projects/nand/bin/sh/sh.1 projects/nand/bin/stty/stty.1 projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctftools.h projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/output.c projects/nand/cddl/lib/Makefile projects/nand/cddl/lib/libdtrace/Makefile projects/nand/cddl/usr.sbin/Makefile projects/nand/contrib/bsnmp/snmpd/main.c projects/nand/contrib/com_err/com_err.3 projects/nand/contrib/com_err/com_err.c (contents, props changed) projects/nand/contrib/com_err/com_err.h (contents, props changed) projects/nand/contrib/com_err/com_right.h (contents, props changed) projects/nand/contrib/com_err/compile_et.c (contents, props changed) projects/nand/contrib/com_err/compile_et.h (contents, props changed) projects/nand/contrib/com_err/error.c (contents, props changed) projects/nand/contrib/com_err/lex.h (contents, props changed) projects/nand/contrib/com_err/lex.l projects/nand/contrib/com_err/parse.y projects/nand/contrib/com_err/roken_rename.h (contents, props changed) projects/nand/contrib/com_err/version-script.map projects/nand/contrib/gcc/config/mips/freebsd.h projects/nand/contrib/gdb/gdb/mips-tdep.c projects/nand/contrib/gdb/gdb/mipsfbsd-tdep.c projects/nand/contrib/gdb/gdb/target.c projects/nand/contrib/libc++/include/__bit_reference projects/nand/contrib/libc++/include/__config projects/nand/contrib/libc++/include/__debug projects/nand/contrib/libc++/include/__functional_03 projects/nand/contrib/libc++/include/__functional_base projects/nand/contrib/libc++/include/__functional_base_03 projects/nand/contrib/libc++/include/__hash_table projects/nand/contrib/libc++/include/__locale projects/nand/contrib/libc++/include/__mutex_base projects/nand/contrib/libc++/include/__split_buffer projects/nand/contrib/libc++/include/__sso_allocator projects/nand/contrib/libc++/include/__std_stream projects/nand/contrib/libc++/include/__tree projects/nand/contrib/libc++/include/__tuple projects/nand/contrib/libc++/include/algorithm projects/nand/contrib/libc++/include/atomic projects/nand/contrib/libc++/include/bitset projects/nand/contrib/libc++/include/chrono projects/nand/contrib/libc++/include/cmath projects/nand/contrib/libc++/include/complex projects/nand/contrib/libc++/include/cstddef projects/nand/contrib/libc++/include/cstdlib projects/nand/contrib/libc++/include/cstring projects/nand/contrib/libc++/include/deque projects/nand/contrib/libc++/include/exception projects/nand/contrib/libc++/include/ext/hash_map projects/nand/contrib/libc++/include/forward_list projects/nand/contrib/libc++/include/fstream projects/nand/contrib/libc++/include/functional projects/nand/contrib/libc++/include/future projects/nand/contrib/libc++/include/initializer_list projects/nand/contrib/libc++/include/iomanip projects/nand/contrib/libc++/include/ios projects/nand/contrib/libc++/include/istream projects/nand/contrib/libc++/include/iterator projects/nand/contrib/libc++/include/limits projects/nand/contrib/libc++/include/list projects/nand/contrib/libc++/include/locale projects/nand/contrib/libc++/include/map projects/nand/contrib/libc++/include/memory projects/nand/contrib/libc++/include/mutex projects/nand/contrib/libc++/include/ostream projects/nand/contrib/libc++/include/random projects/nand/contrib/libc++/include/ratio projects/nand/contrib/libc++/include/regex projects/nand/contrib/libc++/include/sstream projects/nand/contrib/libc++/include/streambuf projects/nand/contrib/libc++/include/string projects/nand/contrib/libc++/include/system_error projects/nand/contrib/libc++/include/thread projects/nand/contrib/libc++/include/tuple projects/nand/contrib/libc++/include/type_traits projects/nand/contrib/libc++/include/unordered_map projects/nand/contrib/libc++/include/utility projects/nand/contrib/libc++/include/valarray projects/nand/contrib/libc++/include/vector projects/nand/contrib/libc++/src/chrono.cpp projects/nand/contrib/libc++/src/condition_variable.cpp projects/nand/contrib/libc++/src/debug.cpp projects/nand/contrib/libc++/src/exception.cpp projects/nand/contrib/libc++/src/future.cpp projects/nand/contrib/libc++/src/hash.cpp projects/nand/contrib/libc++/src/locale.cpp projects/nand/contrib/libc++/src/memory.cpp projects/nand/contrib/libc++/src/mutex.cpp projects/nand/contrib/libc++/src/new.cpp projects/nand/contrib/libc++/src/random.cpp projects/nand/contrib/libc++/src/regex.cpp projects/nand/contrib/libc++/src/stdexcept.cpp projects/nand/contrib/libc++/src/string.cpp projects/nand/contrib/libc++/src/strstream.cpp projects/nand/contrib/libc++/src/thread.cpp projects/nand/contrib/libc++/src/typeinfo.cpp projects/nand/contrib/libcxxrt/auxhelper.cc projects/nand/contrib/libcxxrt/cxxabi.h projects/nand/contrib/libcxxrt/dwarf_eh.h projects/nand/contrib/libcxxrt/dynamic_cast.cc projects/nand/contrib/libcxxrt/exception.cc projects/nand/contrib/libcxxrt/guard.cc projects/nand/contrib/libcxxrt/memory.cc projects/nand/contrib/libcxxrt/stdexcept.cc projects/nand/contrib/libcxxrt/stdexcept.h projects/nand/contrib/libcxxrt/terminate.cc projects/nand/contrib/libcxxrt/typeinfo.cc projects/nand/contrib/libcxxrt/typeinfo.h projects/nand/contrib/libcxxrt/unwind-arm.h projects/nand/contrib/libcxxrt/unwind.h projects/nand/contrib/libstdc++/include/bits/stl_tree.h projects/nand/contrib/llvm/tools/clang/lib/Basic/Targets.cpp projects/nand/contrib/ntp/ntpd/ntp_loopfilter.c projects/nand/contrib/tnftp/src/main.c projects/nand/contrib/tnftp/src/util.c projects/nand/contrib/tzdata/antarctica projects/nand/contrib/tzdata/asia projects/nand/contrib/tzdata/australasia projects/nand/contrib/tzdata/europe projects/nand/contrib/tzdata/leapseconds projects/nand/contrib/tzdata/northamerica projects/nand/contrib/tzdata/southamerica projects/nand/contrib/tzdata/zone.tab projects/nand/crypto/heimdal/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/ChangeLog.2002 (contents, props changed) projects/nand/crypto/heimdal/ChangeLog.2003 (contents, props changed) projects/nand/crypto/heimdal/ChangeLog.2004 (contents, props changed) projects/nand/crypto/heimdal/ChangeLog.2005 (contents, props changed) projects/nand/crypto/heimdal/ChangeLog.2006 (contents, props changed) projects/nand/crypto/heimdal/LICENSE (contents, props changed) projects/nand/crypto/heimdal/Makefile.am projects/nand/crypto/heimdal/Makefile.am.common projects/nand/crypto/heimdal/Makefile.in projects/nand/crypto/heimdal/NEWS (contents, props changed) projects/nand/crypto/heimdal/README (contents, props changed) projects/nand/crypto/heimdal/acinclude.m4 projects/nand/crypto/heimdal/aclocal.m4 projects/nand/crypto/heimdal/admin/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/admin/Makefile.am projects/nand/crypto/heimdal/admin/Makefile.in projects/nand/crypto/heimdal/admin/add.c (contents, props changed) projects/nand/crypto/heimdal/admin/change.c (contents, props changed) projects/nand/crypto/heimdal/admin/copy.c (contents, props changed) projects/nand/crypto/heimdal/admin/get.c (contents, props changed) projects/nand/crypto/heimdal/admin/ktutil-commands.in projects/nand/crypto/heimdal/admin/ktutil.8 projects/nand/crypto/heimdal/admin/ktutil.c (contents, props changed) projects/nand/crypto/heimdal/admin/ktutil_locl.h (contents, props changed) projects/nand/crypto/heimdal/admin/list.c (contents, props changed) projects/nand/crypto/heimdal/admin/purge.c (contents, props changed) projects/nand/crypto/heimdal/admin/remove.c (contents, props changed) projects/nand/crypto/heimdal/admin/rename.c (contents, props changed) projects/nand/crypto/heimdal/appl/Makefile.am projects/nand/crypto/heimdal/appl/Makefile.in projects/nand/crypto/heimdal/appl/afsutil/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/afsutil/Makefile.am projects/nand/crypto/heimdal/appl/afsutil/Makefile.in projects/nand/crypto/heimdal/appl/afsutil/afslog.1 projects/nand/crypto/heimdal/appl/afsutil/afslog.c (contents, props changed) projects/nand/crypto/heimdal/appl/afsutil/pagsh.1 projects/nand/crypto/heimdal/appl/afsutil/pagsh.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/Makefile.am projects/nand/crypto/heimdal/appl/ftp/Makefile.in projects/nand/crypto/heimdal/appl/ftp/common/Makefile.am projects/nand/crypto/heimdal/appl/ftp/common/Makefile.in projects/nand/crypto/heimdal/appl/ftp/common/buffer.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/common/common.h (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/common/sockbuf.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/Makefile.am projects/nand/crypto/heimdal/appl/ftp/ftp/Makefile.in projects/nand/crypto/heimdal/appl/ftp/ftp/cmds.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/cmdtab.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/domacro.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/extern.h (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/ftp.1 projects/nand/crypto/heimdal/appl/ftp/ftp/ftp.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/ftp_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/globals.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/gssapi.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/kauth.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/main.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/ruserpass.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/security.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/security.h (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/Makefile.am projects/nand/crypto/heimdal/appl/ftp/ftpd/Makefile.in projects/nand/crypto/heimdal/appl/ftp/ftpd/extern.h (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/ftpcmd.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/ftpcmd.y (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/ftpd.8 projects/nand/crypto/heimdal/appl/ftp/ftpd/ftpd.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/ftpd_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/ftpusers.5 projects/nand/crypto/heimdal/appl/ftp/ftpd/gss_userok.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/gssapi.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/kauth.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/klist.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/logwtmp.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/ls.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/popen.c (contents, props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/security.c (contents, props changed) projects/nand/crypto/heimdal/appl/gssmask/Makefile.am projects/nand/crypto/heimdal/appl/gssmask/Makefile.in projects/nand/crypto/heimdal/appl/gssmask/common.c (contents, props changed) projects/nand/crypto/heimdal/appl/gssmask/common.h (contents, props changed) projects/nand/crypto/heimdal/appl/gssmask/gssmaestro.c (contents, props changed) projects/nand/crypto/heimdal/appl/gssmask/gssmask.c (contents, props changed) projects/nand/crypto/heimdal/appl/gssmask/protocol.h (contents, props changed) projects/nand/crypto/heimdal/appl/kf/Makefile.am projects/nand/crypto/heimdal/appl/kf/Makefile.in projects/nand/crypto/heimdal/appl/kf/kf.1 projects/nand/crypto/heimdal/appl/kf/kf.c (contents, props changed) projects/nand/crypto/heimdal/appl/kf/kf_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/kf/kfd.8 projects/nand/crypto/heimdal/appl/kf/kfd.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/login/Makefile.am projects/nand/crypto/heimdal/appl/login/Makefile.in projects/nand/crypto/heimdal/appl/login/conf.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/env.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/limits_conf.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/login.1 projects/nand/crypto/heimdal/appl/login/login.access.5 projects/nand/crypto/heimdal/appl/login/login.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/login_access.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/login_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/login/loginpaths.h (contents, props changed) projects/nand/crypto/heimdal/appl/login/osfc2.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/read_string.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/shadow.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/stty_default.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/tty.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/utmp_login.c (contents, props changed) projects/nand/crypto/heimdal/appl/login/utmpx_login.c (contents, props changed) projects/nand/crypto/heimdal/appl/push/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/push/Makefile.am projects/nand/crypto/heimdal/appl/push/Makefile.in projects/nand/crypto/heimdal/appl/push/pfrom.1 projects/nand/crypto/heimdal/appl/push/pfrom.in projects/nand/crypto/heimdal/appl/push/push.8 projects/nand/crypto/heimdal/appl/push/push.c (contents, props changed) projects/nand/crypto/heimdal/appl/push/push_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/rcp/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/rcp/Makefile.am projects/nand/crypto/heimdal/appl/rcp/Makefile.in projects/nand/crypto/heimdal/appl/rcp/extern.h (contents, props changed) projects/nand/crypto/heimdal/appl/rcp/rcp.1 projects/nand/crypto/heimdal/appl/rcp/rcp.c (contents, props changed) projects/nand/crypto/heimdal/appl/rcp/rcp_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/rcp/util.c (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/Makefile.am projects/nand/crypto/heimdal/appl/rsh/Makefile.in projects/nand/crypto/heimdal/appl/rsh/common.c (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/limits_conf.c (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/login_access.c (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/rsh.1 projects/nand/crypto/heimdal/appl/rsh/rsh.c (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/rsh_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/rsh/rshd.8 projects/nand/crypto/heimdal/appl/rsh/rshd.c (contents, props changed) projects/nand/crypto/heimdal/appl/su/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/su/Makefile.am projects/nand/crypto/heimdal/appl/su/Makefile.in projects/nand/crypto/heimdal/appl/su/su.1 projects/nand/crypto/heimdal/appl/su/su.c (contents, props changed) projects/nand/crypto/heimdal/appl/su/supaths.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/Makefile.am projects/nand/crypto/heimdal/appl/telnet/Makefile.in projects/nand/crypto/heimdal/appl/telnet/libtelnet/Makefile.am projects/nand/crypto/heimdal/appl/telnet/libtelnet/Makefile.in projects/nand/crypto/heimdal/appl/telnet/libtelnet/auth-proto.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/auth.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/auth.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/enc-proto.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/enc_des.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/encrypt.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/encrypt.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/genget.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/kerberos5.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/misc-proto.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/misc.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/rsaencpwd.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/spx.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/Makefile.am projects/nand/crypto/heimdal/appl/telnet/telnet/Makefile.in projects/nand/crypto/heimdal/appl/telnet/telnet/authenc.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/commands.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/externs.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/main.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/network.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/ring.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/ring.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/sys_bsd.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/telnet.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/telnet_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/terminal.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/utilities.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/Makefile.am projects/nand/crypto/heimdal/appl/telnet/telnetd/Makefile.in projects/nand/crypto/heimdal/appl/telnet/telnetd/authenc.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/defs.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/ext.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/global.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/slc.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/state.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/sys_term.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/telnetd.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/telnetd.h (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/termstat.c (contents, props changed) projects/nand/crypto/heimdal/appl/telnet/telnetd/utility.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/Makefile.am projects/nand/crypto/heimdal/appl/test/Makefile.in projects/nand/crypto/heimdal/appl/test/common.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/gss_common.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/gss_common.h (contents, props changed) projects/nand/crypto/heimdal/appl/test/gssapi_client.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/gssapi_server.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/http_client.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/nt_gss_client.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/nt_gss_common.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/nt_gss_common.h (contents, props changed) projects/nand/crypto/heimdal/appl/test/nt_gss_server.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/tcp_client.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/tcp_server.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/test_locl.h (contents, props changed) projects/nand/crypto/heimdal/appl/test/uu_client.c (contents, props changed) projects/nand/crypto/heimdal/appl/test/uu_server.c (contents, props changed) projects/nand/crypto/heimdal/autogen.sh projects/nand/crypto/heimdal/compile projects/nand/crypto/heimdal/config.guess projects/nand/crypto/heimdal/config.sub projects/nand/crypto/heimdal/configure projects/nand/crypto/heimdal/doc/Makefile.am projects/nand/crypto/heimdal/doc/Makefile.in projects/nand/crypto/heimdal/doc/ack.texi projects/nand/crypto/heimdal/doc/apps.texi projects/nand/crypto/heimdal/doc/doxytmpl.dxy projects/nand/crypto/heimdal/doc/hcrypto.din projects/nand/crypto/heimdal/doc/heimdal.texi projects/nand/crypto/heimdal/doc/hx509.din projects/nand/crypto/heimdal/doc/hx509.texi projects/nand/crypto/heimdal/doc/install.texi projects/nand/crypto/heimdal/doc/intro.texi projects/nand/crypto/heimdal/doc/kerberos4.texi projects/nand/crypto/heimdal/doc/krb5.din projects/nand/crypto/heimdal/doc/migration.texi projects/nand/crypto/heimdal/doc/misc.texi projects/nand/crypto/heimdal/doc/ntlm.din projects/nand/crypto/heimdal/doc/programming.texi projects/nand/crypto/heimdal/doc/setup.texi projects/nand/crypto/heimdal/doc/vars.texi projects/nand/crypto/heimdal/doc/whatis.texi projects/nand/crypto/heimdal/doc/win2k.texi projects/nand/crypto/heimdal/etc/Makefile.am projects/nand/crypto/heimdal/etc/Makefile.in projects/nand/crypto/heimdal/etc/services.append projects/nand/crypto/heimdal/include/Makefile.am projects/nand/crypto/heimdal/include/Makefile.in projects/nand/crypto/heimdal/include/bits.c (contents, props changed) projects/nand/crypto/heimdal/include/config.h.in projects/nand/crypto/heimdal/include/gssapi/Makefile.am projects/nand/crypto/heimdal/include/gssapi/Makefile.in projects/nand/crypto/heimdal/include/hcrypto/Makefile.am projects/nand/crypto/heimdal/include/hcrypto/Makefile.in projects/nand/crypto/heimdal/include/kadm5/Makefile.am projects/nand/crypto/heimdal/include/kadm5/Makefile.in projects/nand/crypto/heimdal/install-sh projects/nand/crypto/heimdal/kadmin/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/kadmin/Makefile.am projects/nand/crypto/heimdal/kadmin/Makefile.in projects/nand/crypto/heimdal/kadmin/add-random-users.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/add_enctype.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/ank.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/check.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/cpw.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/del.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/del_enctype.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/dump.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/ext.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/get.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/init.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/kadm_conn.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/kadmin-commands.in projects/nand/crypto/heimdal/kadmin/kadmin.8 projects/nand/crypto/heimdal/kadmin/kadmin.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/kadmin_locl.h (contents, props changed) projects/nand/crypto/heimdal/kadmin/kadmind.8 projects/nand/crypto/heimdal/kadmin/kadmind.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/load.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/mod.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/pw_quality.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/random_password.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/rename.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/server.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/stash.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/test_util.c (contents, props changed) projects/nand/crypto/heimdal/kadmin/util.c (contents, props changed) projects/nand/crypto/heimdal/kcm/Makefile.am projects/nand/crypto/heimdal/kcm/Makefile.in projects/nand/crypto/heimdal/kcm/acl.c (contents, props changed) projects/nand/crypto/heimdal/kcm/acquire.c (contents, props changed) projects/nand/crypto/heimdal/kcm/cache.c (contents, props changed) projects/nand/crypto/heimdal/kcm/client.c (contents, props changed) projects/nand/crypto/heimdal/kcm/config.c (contents, props changed) projects/nand/crypto/heimdal/kcm/connect.c (contents, props changed) projects/nand/crypto/heimdal/kcm/events.c (contents, props changed) projects/nand/crypto/heimdal/kcm/glue.c (contents, props changed) projects/nand/crypto/heimdal/kcm/headers.h (contents, props changed) projects/nand/crypto/heimdal/kcm/kcm.8 projects/nand/crypto/heimdal/kcm/kcm_locl.h (contents, props changed) projects/nand/crypto/heimdal/kcm/log.c (contents, props changed) projects/nand/crypto/heimdal/kcm/main.c (contents, props changed) projects/nand/crypto/heimdal/kcm/protocol.c (contents, props changed) projects/nand/crypto/heimdal/kcm/renew.c (contents, props changed) projects/nand/crypto/heimdal/kdc/Makefile.am projects/nand/crypto/heimdal/kdc/Makefile.in projects/nand/crypto/heimdal/kdc/config.c (contents, props changed) projects/nand/crypto/heimdal/kdc/connect.c (contents, props changed) projects/nand/crypto/heimdal/kdc/default_config.c (contents, props changed) projects/nand/crypto/heimdal/kdc/digest.c (contents, props changed) projects/nand/crypto/heimdal/kdc/headers.h (contents, props changed) projects/nand/crypto/heimdal/kdc/hprop.8 projects/nand/crypto/heimdal/kdc/hprop.c (contents, props changed) projects/nand/crypto/heimdal/kdc/hprop.h (contents, props changed) projects/nand/crypto/heimdal/kdc/hpropd.8 projects/nand/crypto/heimdal/kdc/hpropd.c (contents, props changed) projects/nand/crypto/heimdal/kdc/kdc-private.h (contents, props changed) projects/nand/crypto/heimdal/kdc/kdc-protos.h (contents, props changed) projects/nand/crypto/heimdal/kdc/kdc-replay.c (contents, props changed) projects/nand/crypto/heimdal/kdc/kdc.8 projects/nand/crypto/heimdal/kdc/kdc.h (contents, props changed) projects/nand/crypto/heimdal/kdc/kdc_locl.h (contents, props changed) projects/nand/crypto/heimdal/kdc/kerberos5.c (contents, props changed) projects/nand/crypto/heimdal/kdc/krb5tgs.c (contents, props changed) projects/nand/crypto/heimdal/kdc/kstash.8 projects/nand/crypto/heimdal/kdc/kstash.c (contents, props changed) projects/nand/crypto/heimdal/kdc/kx509.c (contents, props changed) projects/nand/crypto/heimdal/kdc/log.c (contents, props changed) projects/nand/crypto/heimdal/kdc/main.c (contents, props changed) projects/nand/crypto/heimdal/kdc/misc.c (contents, props changed) projects/nand/crypto/heimdal/kdc/mit_dump.c (contents, props changed) projects/nand/crypto/heimdal/kdc/pkinit.c (contents, props changed) projects/nand/crypto/heimdal/kdc/process.c (contents, props changed) projects/nand/crypto/heimdal/kdc/rx.h (contents, props changed) projects/nand/crypto/heimdal/kdc/set_dbinfo.c (contents, props changed) projects/nand/crypto/heimdal/kdc/string2key.8 projects/nand/crypto/heimdal/kdc/string2key.c (contents, props changed) projects/nand/crypto/heimdal/kdc/version-script.map projects/nand/crypto/heimdal/kdc/windc.c (contents, props changed) projects/nand/crypto/heimdal/kdc/windc_plugin.h (contents, props changed) projects/nand/crypto/heimdal/kpasswd/Makefile.am projects/nand/crypto/heimdal/kpasswd/Makefile.in projects/nand/crypto/heimdal/kpasswd/kpasswd-generator.c (contents, props changed) projects/nand/crypto/heimdal/kpasswd/kpasswd.1 projects/nand/crypto/heimdal/kpasswd/kpasswd.c (contents, props changed) projects/nand/crypto/heimdal/kpasswd/kpasswd_locl.h (contents, props changed) projects/nand/crypto/heimdal/kpasswd/kpasswdd.8 projects/nand/crypto/heimdal/kpasswd/kpasswdd.c (contents, props changed) projects/nand/crypto/heimdal/kuser/Makefile.am projects/nand/crypto/heimdal/kuser/Makefile.in projects/nand/crypto/heimdal/kuser/copy_cred_cache.1 projects/nand/crypto/heimdal/kuser/copy_cred_cache.c (contents, props changed) projects/nand/crypto/heimdal/kuser/generate-requests.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kdecode_ticket.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kdestroy.1 projects/nand/crypto/heimdal/kuser/kdestroy.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kdigest-commands.in projects/nand/crypto/heimdal/kuser/kdigest.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kgetcred.1 projects/nand/crypto/heimdal/kuser/kgetcred.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kimpersonate.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kinit.1 projects/nand/crypto/heimdal/kuser/kinit.c (contents, props changed) projects/nand/crypto/heimdal/kuser/klist.1 projects/nand/crypto/heimdal/kuser/klist.c (contents, props changed) projects/nand/crypto/heimdal/kuser/kuser_locl.h (contents, props changed) projects/nand/crypto/heimdal/kuser/kverify.c (contents, props changed) projects/nand/crypto/heimdal/lib/Makefile.am projects/nand/crypto/heimdal/lib/Makefile.in projects/nand/crypto/heimdal/lib/asn1/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/Makefile.am projects/nand/crypto/heimdal/lib/asn1/Makefile.in projects/nand/crypto/heimdal/lib/asn1/asn1-common.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/asn1_err.et projects/nand/crypto/heimdal/lib/asn1/asn1_gen.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/asn1_print.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/asn1_queue.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/canthandle.asn1 projects/nand/crypto/heimdal/lib/asn1/check-common.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/check-common.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/check-der.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/check-gen.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/check-timegm.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der-protos.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_cmp.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_copy.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_format.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_free.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_get.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_length.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/der_put.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/digest.asn1 projects/nand/crypto/heimdal/lib/asn1/extra.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_copy.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_decode.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_encode.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_free.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_glue.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_length.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/gen_seq.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/hash.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/hash.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/heim_asn1.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/kx509.asn1 projects/nand/crypto/heimdal/lib/asn1/lex.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/lex.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/lex.l projects/nand/crypto/heimdal/lib/asn1/main.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/pkcs12.asn1 projects/nand/crypto/heimdal/lib/asn1/pkcs8.asn1 projects/nand/crypto/heimdal/lib/asn1/pkcs9.asn1 projects/nand/crypto/heimdal/lib/asn1/pkinit.asn1 projects/nand/crypto/heimdal/lib/asn1/rfc2459.asn1 projects/nand/crypto/heimdal/lib/asn1/setchgpw2.asn1 projects/nand/crypto/heimdal/lib/asn1/symbol.c (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/symbol.h (contents, props changed) projects/nand/crypto/heimdal/lib/asn1/test.asn1 projects/nand/crypto/heimdal/lib/asn1/test.gen projects/nand/crypto/heimdal/lib/asn1/timegm.c (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/Makefile.am projects/nand/crypto/heimdal/lib/com_err/Makefile.in projects/nand/crypto/heimdal/lib/com_err/com_err.c (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/com_err.h (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/com_right.h (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/compile_et.c (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/compile_et.h (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/error.c (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/lex.c (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/lex.h (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/lex.l projects/nand/crypto/heimdal/lib/com_err/parse.c (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/parse.h (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/parse.y projects/nand/crypto/heimdal/lib/com_err/roken_rename.h (contents, props changed) projects/nand/crypto/heimdal/lib/com_err/version-script.map projects/nand/crypto/heimdal/lib/gssapi/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/Makefile.am projects/nand/crypto/heimdal/lib/gssapi/Makefile.in projects/nand/crypto/heimdal/lib/gssapi/gss-commands.in projects/nand/crypto/heimdal/lib/gssapi/gss_acquire_cred.3 projects/nand/crypto/heimdal/lib/gssapi/gssapi.3 projects/nand/crypto/heimdal/lib/gssapi/gssapi.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/gssapi/gssapi.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/gssapi/gssapi_krb5.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/gssapi/gssapi_spnego.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/gssapi_mech.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/8003.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/accept_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/acquire_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/add_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/address_to_krb5addr.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/arcfour.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/canonicalize_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/ccache_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/cfx.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/cfx.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/compare_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/compat.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/context_time.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/copy_ccache.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/decapsulate.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/delete_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/display_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/display_status.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/duplicate_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/encapsulate.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/export_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/export_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/external.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/get_mic.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/gkrb5_err.et projects/nand/crypto/heimdal/lib/gssapi/krb5/gsskrb5-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/gsskrb5_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/import_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/import_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/indicate_mechs.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/init.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/init_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_cred_by_mech.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_cred_by_oid.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_mechs_for_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_names_for_mech.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/inquire_sec_context_by_oid.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/prf.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/process_context_token.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/release_buffer.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/release_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/release_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/sequence.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/set_cred_option.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/set_sec_context_option.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/test_cfx.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/ticket_flags.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/unwrap.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/verify_mic.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/krb5/wrap.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/accept_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/acquire_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/add_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/canonicalize_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/compare_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/context_time.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/crypto.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/delete_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/display_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/display_status.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/duplicate_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/export_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/export_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/external.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/import_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/import_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/indicate_mechs.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/init_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/inquire_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/inquire_cred_by_mech.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/inquire_mechs_for_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/inquire_names_for_mech.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/ntlm-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/ntlm.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/process_context_token.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/release_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/ntlm/release_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/accept_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/compat.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/context_stubs.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/cred_stubs.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/external.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/init_sec_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/spnego-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/spnego/spnego.asn1 projects/nand/crypto/heimdal/lib/gssapi/spnego/spnego_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_acquire_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_common.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_common.h (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_kcred.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_names.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_ntlm.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/test_oid.c (contents, props changed) projects/nand/crypto/heimdal/lib/gssapi/version-script.map projects/nand/crypto/heimdal/lib/hdb/Makefile.am projects/nand/crypto/heimdal/lib/hdb/Makefile.in projects/nand/crypto/heimdal/lib/hdb/common.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/db.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/db3.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/dbinfo.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/ext.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/hdb-ldap.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/hdb-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/hdb-protos.h (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/hdb.asn1 projects/nand/crypto/heimdal/lib/hdb/hdb.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/hdb.h (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/hdb.schema projects/nand/crypto/heimdal/lib/hdb/hdb_err.et projects/nand/crypto/heimdal/lib/hdb/hdb_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/keys.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/keytab.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/mkey.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/ndbm.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/print.c (contents, props changed) projects/nand/crypto/heimdal/lib/hdb/test_dbinfo.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/Makefile.am projects/nand/crypto/heimdal/lib/hx509/Makefile.in projects/nand/crypto/heimdal/lib/hx509/ca.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/cert.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/cms.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/collector.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/crmf.asn1 projects/nand/crypto/heimdal/lib/hx509/crypto.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/doxygen.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/env.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/error.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/file.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/hx509-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/hx509-protos.h (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/hx509.h (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/hx509_err.et projects/nand/crypto/heimdal/lib/hx509/hx_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/hxtool-commands.in projects/nand/crypto/heimdal/lib/hx509/hxtool.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/keyset.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_dir.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_file.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_keychain.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_mem.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_null.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_p11.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ks_p12.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/lock.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/name.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/ocsp.asn1 projects/nand/crypto/heimdal/lib/hx509/peer.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/pkcs10.asn1 projects/nand/crypto/heimdal/lib/hx509/print.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/req.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/revoke.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/softp11.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/test_ca.in projects/nand/crypto/heimdal/lib/hx509/test_cert.in projects/nand/crypto/heimdal/lib/hx509/test_chain.in projects/nand/crypto/heimdal/lib/hx509/test_cms.in projects/nand/crypto/heimdal/lib/hx509/test_crypto.in projects/nand/crypto/heimdal/lib/hx509/test_java_pkcs11.in projects/nand/crypto/heimdal/lib/hx509/test_name.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/test_nist.in projects/nand/crypto/heimdal/lib/hx509/test_nist2.in projects/nand/crypto/heimdal/lib/hx509/test_nist_cert.in projects/nand/crypto/heimdal/lib/hx509/test_nist_pkcs12.in projects/nand/crypto/heimdal/lib/hx509/test_pkcs11.in projects/nand/crypto/heimdal/lib/hx509/test_query.in projects/nand/crypto/heimdal/lib/hx509/test_req.in projects/nand/crypto/heimdal/lib/hx509/test_soft_pkcs11.c (contents, props changed) projects/nand/crypto/heimdal/lib/hx509/test_windows.in projects/nand/crypto/heimdal/lib/hx509/tst-crypto-available2 projects/nand/crypto/heimdal/lib/hx509/tst-crypto-select1 projects/nand/crypto/heimdal/lib/hx509/tst-crypto-select2 projects/nand/crypto/heimdal/lib/hx509/version-script.map projects/nand/crypto/heimdal/lib/kadm5/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/Makefile.am projects/nand/crypto/heimdal/lib/kadm5/Makefile.in projects/nand/crypto/heimdal/lib/kadm5/acl.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/ad.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/admin.h (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/bump_pw_expire.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/check-cracklib.pl projects/nand/crypto/heimdal/lib/kadm5/chpass_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/chpass_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/client_glue.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/common_glue.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/context_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/create_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/create_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/default_keys.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/delete_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/delete_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/destroy_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/destroy_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/ent_setup.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/error.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/flush.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/flush_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/flush_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/free.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/get_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/get_princs_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/get_princs_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/get_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/init_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/init_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/iprop-commands.in projects/nand/crypto/heimdal/lib/kadm5/iprop-log.8 projects/nand/crypto/heimdal/lib/kadm5/iprop-log.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/iprop.8 projects/nand/crypto/heimdal/lib/kadm5/iprop.h (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/ipropd_common.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/ipropd_master.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/ipropd_slave.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/kadm5-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/kadm5-pwcheck.h (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/kadm5_err.et projects/nand/crypto/heimdal/lib/kadm5/kadm5_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/kadm5_pwcheck.3 projects/nand/crypto/heimdal/lib/kadm5/keys.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/log.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/marshall.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/modify_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/modify_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/password_quality.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/private.h (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/privs_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/privs_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/randkey_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/randkey_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/rename_c.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/rename_s.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/sample_passwd_check.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/send_recv.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/server_glue.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/set_keys.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/set_modifier.c (contents, props changed) projects/nand/crypto/heimdal/lib/kadm5/test_pw_quality.c (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/Makefile.am projects/nand/crypto/heimdal/lib/kafs/Makefile.in projects/nand/crypto/heimdal/lib/kafs/afskrb5.c (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/afslib.c (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/afssys.c (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/afssysdefs.h (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/common.c (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/kafs.3 projects/nand/crypto/heimdal/lib/kafs/kafs.h (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/kafs_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/kafs/roken_rename.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/Makefile.am projects/nand/crypto/heimdal/lib/krb5/Makefile.in projects/nand/crypto/heimdal/lib/krb5/acache.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/acl.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/add_et_list.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/addr_families.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/aes-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/aname_to_localname.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/appdefault.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/asn1_glue.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/auth_context.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/build_ap_req.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/build_auth.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/cache.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/changepw.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/codec.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/config_file.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/constants.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/context.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/convert_creds.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/copy_host_realm.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/crc.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/creds.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/crypto.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/data.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/derived-key-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/digest.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/doxygen.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/eai_to_heim_errno.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/error_string.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/expand_hostname.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/fcache.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/free.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/free_host_realm.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/generate_seq_number.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/generate_subkey.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_addrs.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_default_principal.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_default_realm.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_for_creds.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_host_realm.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_in_tkt.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/get_port.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/heim_err.et projects/nand/crypto/heimdal/lib/krb5/init_creds.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/init_creds_pw.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/k524_err.et projects/nand/crypto/heimdal/lib/krb5/kcm.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/kcm.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/kerberos.8 projects/nand/crypto/heimdal/lib/krb5/keyblock.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/keytab.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/keytab_any.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/keytab_file.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/keytab_keyfile.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/keytab_memory.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5-private.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5-protos.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5-v4compat.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5.conf.5 projects/nand/crypto/heimdal/lib/krb5/krb5.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5.moduli projects/nand/crypto/heimdal/lib/krb5/krb524_convert_creds_kdc.3 projects/nand/crypto/heimdal/lib/krb5/krb5_425_conv_principal.3 projects/nand/crypto/heimdal/lib/krb5/krb5_acl_match_file.3 projects/nand/crypto/heimdal/lib/krb5/krb5_aname_to_localname.3 projects/nand/crypto/heimdal/lib/krb5/krb5_appdefault.3 projects/nand/crypto/heimdal/lib/krb5/krb5_auth_context.3 projects/nand/crypto/heimdal/lib/krb5/krb5_c_make_checksum.3 projects/nand/crypto/heimdal/lib/krb5/krb5_ccapi.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5_check_transited.3 projects/nand/crypto/heimdal/lib/krb5/krb5_create_checksum.3 projects/nand/crypto/heimdal/lib/krb5/krb5_creds.3 projects/nand/crypto/heimdal/lib/krb5/krb5_digest.3 projects/nand/crypto/heimdal/lib/krb5/krb5_eai_to_heim_errno.3 projects/nand/crypto/heimdal/lib/krb5/krb5_encrypt.3 projects/nand/crypto/heimdal/lib/krb5/krb5_err.et projects/nand/crypto/heimdal/lib/krb5/krb5_find_padata.3 projects/nand/crypto/heimdal/lib/krb5/krb5_generate_random_block.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_all_client_addrs.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_credentials.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_creds.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_forwarded_creds.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_in_cred.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_init_creds.3 projects/nand/crypto/heimdal/lib/krb5/krb5_get_krbhst.3 projects/nand/crypto/heimdal/lib/krb5/krb5_getportbyname.3 projects/nand/crypto/heimdal/lib/krb5/krb5_init_context.3 projects/nand/crypto/heimdal/lib/krb5/krb5_is_thread_safe.3 projects/nand/crypto/heimdal/lib/krb5/krb5_krbhst_init.3 projects/nand/crypto/heimdal/lib/krb5/krb5_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krb5_mk_req.3 projects/nand/crypto/heimdal/lib/krb5/krb5_mk_safe.3 projects/nand/crypto/heimdal/lib/krb5/krb5_openlog.3 projects/nand/crypto/heimdal/lib/krb5/krb5_parse_name.3 projects/nand/crypto/heimdal/lib/krb5/krb5_principal.3 projects/nand/crypto/heimdal/lib/krb5/krb5_rcache.3 projects/nand/crypto/heimdal/lib/krb5/krb5_rd_error.3 projects/nand/crypto/heimdal/lib/krb5/krb5_rd_safe.3 projects/nand/crypto/heimdal/lib/krb5/krb5_set_default_realm.3 projects/nand/crypto/heimdal/lib/krb5/krb5_set_password.3 projects/nand/crypto/heimdal/lib/krb5/krb5_string_to_key.3 projects/nand/crypto/heimdal/lib/krb5/krb5_timeofday.3 projects/nand/crypto/heimdal/lib/krb5/krb5_verify_init_creds.3 projects/nand/crypto/heimdal/lib/krb5/krb5_verify_user.3 projects/nand/crypto/heimdal/lib/krb5/krbhst-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/krbhst.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/kuserok.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/locate_plugin.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/log.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mcache.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/misc.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mit_glue.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mk_error.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mk_priv.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mk_rep.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mk_req.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mk_req_ext.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/mk_safe.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/n-fold-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/n-fold.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/net_read.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/net_write.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/pac.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/padata.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/parse-name-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/pkinit.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/plugin.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/principal.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/prog_setup.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/prompter_posix.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/rd_cred.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/rd_error.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/rd_priv.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/rd_rep.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/rd_req.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/rd_safe.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/read_message.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/recvauth.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/replay.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/send_to_kdc.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/sendauth.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/set_default_realm.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/sock_principal.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/store-int.h (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/store-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/store.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/store_emem.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/store_fd.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/store_mem.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/string-to-key-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_acl.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_addr.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_alname.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_cc.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_config.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_crypto.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_crypto_wrapping.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_forward.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_get_addrs.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_hostname.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_keytab.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_kuserok.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_mem.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_pac.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_pkinit_dh2key.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_plugin.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_prf.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_princ.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_renew.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_store.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/test_time.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/ticket.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/time.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/transited.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/verify_init.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/verify_krb5_conf.8 projects/nand/crypto/heimdal/lib/krb5/verify_krb5_conf.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/verify_user.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/version-script.map projects/nand/crypto/heimdal/lib/krb5/version.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/warn.c (contents, props changed) projects/nand/crypto/heimdal/lib/krb5/write_message.c (contents, props changed) projects/nand/crypto/heimdal/lib/ntlm/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/ntlm/Makefile.am projects/nand/crypto/heimdal/lib/ntlm/Makefile.in projects/nand/crypto/heimdal/lib/ntlm/heimntlm-protos.h (contents, props changed) projects/nand/crypto/heimdal/lib/ntlm/heimntlm.h (contents, props changed) projects/nand/crypto/heimdal/lib/ntlm/ntlm.c (contents, props changed) projects/nand/crypto/heimdal/lib/ntlm/test_ntlm.c (contents, props changed) projects/nand/crypto/heimdal/lib/ntlm/version-script.map projects/nand/crypto/heimdal/lib/roken/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/roken/Makefile.am projects/nand/crypto/heimdal/lib/roken/Makefile.in projects/nand/crypto/heimdal/lib/roken/base64-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/base64.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/base64.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/bswap.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/chown.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/closefrom.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/concat.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/copyhostent.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/daemon.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/dumpdata.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/ecalloc.3 projects/nand/crypto/heimdal/lib/roken/ecalloc.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/emalloc.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/environment.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/eread.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/erealloc.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/err.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/err.hin projects/nand/crypto/heimdal/lib/roken/errx.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/esetenv.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/estrdup.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/ewrite.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/fchown.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/flock.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/fnmatch.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/fnmatch.hin projects/nand/crypto/heimdal/lib/roken/freeaddrinfo.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/freehostent.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/gai_strerror.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/get_default_username.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/get_window_size.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getaddrinfo-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getaddrinfo.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getaddrinfo_hostspec.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getarg.3 projects/nand/crypto/heimdal/lib/roken/getarg.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getarg.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getcap.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getcwd.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getdtablesize.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getegid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/geteuid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getgid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/gethostname.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getifaddrs.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getipnodebyaddr.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getipnodebyname.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getnameinfo.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getnameinfo_verified.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getopt.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getprogname.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/gettimeofday.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getuid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/getusershell.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/glob.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/glob.hin projects/nand/crypto/heimdal/lib/roken/h_errno.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/hex-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/hex.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/hex.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/hostent_find_fqdn.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/hstrerror.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/ifaddrs.hin projects/nand/crypto/heimdal/lib/roken/inet_aton.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/inet_ntop.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/inet_pton.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/initgroups.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/innetgr.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/iruserok.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/issuid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/k_getpwnam.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/k_getpwuid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/localtime_r.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/lstat.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/memmove.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/mini_inetd.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/mkstemp.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/ndbm_wrap.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/ndbm_wrap.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/net_read.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/net_write.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_bytes-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_bytes.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_bytes.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_reply-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_time-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_time.3 projects/nand/crypto/heimdal/lib/roken/parse_time.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_time.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_units.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/parse_units.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/putenv.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/rcmd.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/readv.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/realloc.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/recvmsg.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/resolve-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/resolve.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/resolve.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/roken-common.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/roken.awk projects/nand/crypto/heimdal/lib/roken/roken.h.in projects/nand/crypto/heimdal/lib/roken/roken_gethostby.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/rtbl.3 projects/nand/crypto/heimdal/lib/roken/rtbl.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/rtbl.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/sendmsg.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/setegid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/setenv.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/seteuid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/setprogname.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/signal.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/simple_exec.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/snprintf-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/snprintf.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/socket.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/socket_wrapper.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/socket_wrapper.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strcasecmp.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strcollect.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strdup.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strerror.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strftime.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strlcat.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strlcpy.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strlwr.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strncasecmp.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strndup.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strnlen.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strpftime-test.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strpftime-test.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strpool.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strptime.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strsep.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strsep_copy.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strtok_r.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/strupr.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/swab.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/test-mem.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/test-mem.h (contents, props changed) projects/nand/crypto/heimdal/lib/roken/test-readenv.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/timegm.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/timeval.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/tm2time.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/unsetenv.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/unvis.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/verify.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/verr.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/verrx.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/vis.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/vis.hin projects/nand/crypto/heimdal/lib/roken/vsyslog.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/vwarn.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/vwarnx.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/warn.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/warnerr.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/warnx.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/write_pid.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/writev.c (contents, props changed) projects/nand/crypto/heimdal/lib/roken/xdbm.h (contents, props changed) projects/nand/crypto/heimdal/lib/sl/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/sl/Makefile.am projects/nand/crypto/heimdal/lib/sl/Makefile.in projects/nand/crypto/heimdal/lib/sl/roken_rename.h (contents, props changed) projects/nand/crypto/heimdal/lib/sl/sl.c (contents, props changed) projects/nand/crypto/heimdal/lib/sl/sl.h (contents, props changed) projects/nand/crypto/heimdal/lib/sl/sl_locl.h (contents, props changed) projects/nand/crypto/heimdal/lib/sl/slc-gram.c (contents, props changed) projects/nand/crypto/heimdal/lib/sl/slc-gram.h (contents, props changed) projects/nand/crypto/heimdal/lib/sl/slc-gram.y projects/nand/crypto/heimdal/lib/sl/slc-lex.c (contents, props changed) projects/nand/crypto/heimdal/lib/sl/slc-lex.l projects/nand/crypto/heimdal/lib/sl/slc.h (contents, props changed) projects/nand/crypto/heimdal/lib/sl/test_sl.c (contents, props changed) projects/nand/crypto/heimdal/lib/vers/ChangeLog (contents, props changed) projects/nand/crypto/heimdal/lib/vers/Makefile.am projects/nand/crypto/heimdal/lib/vers/Makefile.in projects/nand/crypto/heimdal/lib/vers/print_version.c (contents, props changed) projects/nand/crypto/heimdal/lib/vers/vers.h (contents, props changed) projects/nand/crypto/heimdal/ltmain.sh projects/nand/crypto/heimdal/missing projects/nand/crypto/heimdal/tools/Makefile.am projects/nand/crypto/heimdal/tools/Makefile.in projects/nand/crypto/heimdal/tools/heimdal-gssapi.pc.in projects/nand/crypto/heimdal/tools/kdc-log-analyze.pl projects/nand/crypto/heimdal/tools/krb5-config.1 projects/nand/crypto/heimdal/tools/krb5-config.in projects/nand/etc/defaults/devfs.rules projects/nand/etc/devd/usb.conf projects/nand/etc/mtree/BSD.include.dist projects/nand/etc/mtree/BSD.usr.dist projects/nand/etc/newsyslog.conf projects/nand/etc/rc projects/nand/etc/rc.shutdown projects/nand/etc/root/dot.cshrc projects/nand/etc/services projects/nand/games/pom/pom.6 projects/nand/gnu/lib/libgcc/Makefile projects/nand/gnu/lib/libstdc++/Makefile projects/nand/gnu/lib/libsupc++/Makefile projects/nand/gnu/usr.bin/binutils/Makefile.inc0 projects/nand/gnu/usr.bin/binutils/as/Makefile projects/nand/gnu/usr.bin/binutils/as/mips-freebsd/itbl-cpu.h projects/nand/gnu/usr.bin/cc/Makefile.tgt projects/nand/gnu/usr.bin/gdb/Makefile.inc projects/nand/gnu/usr.bin/gdb/arch/mips/Makefile projects/nand/gnu/usr.bin/gdb/libgdb/Makefile projects/nand/include/ctype.h projects/nand/include/inttypes.h projects/nand/include/langinfo.h projects/nand/include/monetary.h projects/nand/include/stdio.h projects/nand/include/stdlib.h projects/nand/include/string.h projects/nand/include/time.h projects/nand/include/wchar.h projects/nand/include/xlocale/_ctype.h projects/nand/kerberos5/Makefile.inc projects/nand/kerberos5/include/config.h projects/nand/kerberos5/include/crypto-headers.h projects/nand/kerberos5/include/krb5-types.h projects/nand/kerberos5/include/version.h projects/nand/kerberos5/lib/Makefile projects/nand/kerberos5/lib/Makefile.inc projects/nand/kerberos5/lib/libasn1/Makefile projects/nand/kerberos5/lib/libgssapi_krb5/Makefile projects/nand/kerberos5/lib/libgssapi_krb5/gss_krb5.c projects/nand/kerberos5/lib/libgssapi_ntlm/Makefile projects/nand/kerberos5/lib/libgssapi_ntlm/prefix.c projects/nand/kerberos5/lib/libgssapi_spnego/Makefile projects/nand/kerberos5/lib/libhdb/Makefile projects/nand/kerberos5/lib/libheimntlm/Makefile projects/nand/kerberos5/lib/libhx509/Makefile projects/nand/kerberos5/lib/libkadm5clnt/Makefile projects/nand/kerberos5/lib/libkadm5srv/Makefile projects/nand/kerberos5/lib/libkafs5/Makefile projects/nand/kerberos5/lib/libkrb5/Makefile projects/nand/kerberos5/lib/libroken/Makefile projects/nand/kerberos5/lib/libvers/Makefile projects/nand/kerberos5/libexec/Makefile projects/nand/kerberos5/libexec/hprop/Makefile projects/nand/kerberos5/libexec/ipropd-master/Makefile projects/nand/kerberos5/libexec/kadmind/Makefile projects/nand/kerberos5/libexec/kcm/Makefile projects/nand/kerberos5/libexec/kdc/Makefile projects/nand/kerberos5/tools/Makefile projects/nand/kerberos5/tools/Makefile.inc projects/nand/kerberos5/tools/asn1_compile/Makefile projects/nand/kerberos5/tools/make-roken/Makefile projects/nand/kerberos5/tools/slc/Makefile projects/nand/kerberos5/usr.bin/Makefile projects/nand/kerberos5/usr.bin/kadmin/Makefile projects/nand/kerberos5/usr.bin/kdestroy/Makefile projects/nand/kerberos5/usr.bin/kinit/Makefile projects/nand/kerberos5/usr.bin/krb5-config/Makefile projects/nand/kerberos5/usr.sbin/Makefile projects/nand/kerberos5/usr.sbin/kstash/Makefile projects/nand/kerberos5/usr.sbin/ktutil/Makefile projects/nand/lib/Makefile projects/nand/lib/csu/Makefile.inc projects/nand/lib/csu/amd64/Makefile projects/nand/lib/csu/amd64/crt1.c projects/nand/lib/csu/arm/Makefile projects/nand/lib/csu/arm/crt1.c projects/nand/lib/csu/common/crtbrand.c projects/nand/lib/csu/i386-elf/Makefile projects/nand/lib/csu/i386-elf/crt1_c.c projects/nand/lib/csu/mips/Makefile projects/nand/lib/csu/mips/crt1.c projects/nand/lib/csu/powerpc/Makefile projects/nand/lib/csu/powerpc/crt1.c projects/nand/lib/csu/powerpc64/Makefile projects/nand/lib/csu/powerpc64/crt1.c projects/nand/lib/csu/sparc64/crt1.c projects/nand/lib/libarchive/Makefile projects/nand/lib/libbluetooth/bluetooth.3 projects/nand/lib/libc++/Makefile projects/nand/lib/libc/arm/gen/_set_tp.c projects/nand/lib/libc/compat-43/killpg.2 projects/nand/lib/libc/gen/fstab.c projects/nand/lib/libc/gen/fts.3 projects/nand/lib/libc/gen/getpagesizes.3 projects/nand/lib/libc/gen/getutxent.c projects/nand/lib/libc/gen/psignal.3 projects/nand/lib/libc/gen/sysconf.3 projects/nand/lib/libc/gen/utxdb.c projects/nand/lib/libc/i386/sys/i386_get_ioperm.2 projects/nand/lib/libc/i386/sys/i386_set_watch.3 projects/nand/lib/libc/i386/sys/i386_vm86.2 projects/nand/lib/libc/iconv/iconv.3 projects/nand/lib/libc/iconv/iconvctl.3 projects/nand/lib/libc/iconv/iconvlist.3 projects/nand/lib/libc/locale/Makefile.inc projects/nand/lib/libc/locale/Symbol.map projects/nand/lib/libc/locale/btowc.3 projects/nand/lib/libc/locale/ctype.3 projects/nand/lib/libc/locale/digittoint.3 projects/nand/lib/libc/locale/duplocale.3 projects/nand/lib/libc/locale/isalnum.3 projects/nand/lib/libc/locale/isalpha.3 projects/nand/lib/libc/locale/isblank.3 projects/nand/lib/libc/locale/iscntrl.3 projects/nand/lib/libc/locale/isdigit.3 projects/nand/lib/libc/locale/isgraph.3 projects/nand/lib/libc/locale/islower.3 projects/nand/lib/libc/locale/isprint.3 projects/nand/lib/libc/locale/ispunct.3 projects/nand/lib/libc/locale/isspace.3 projects/nand/lib/libc/locale/isupper.3 projects/nand/lib/libc/locale/isxdigit.3 projects/nand/lib/libc/locale/newlocale.3 projects/nand/lib/libc/locale/xlocale.3 projects/nand/lib/libc/locale/xlocale_private.h projects/nand/lib/libc/net/getaddrinfo.c projects/nand/lib/libc/net/getipnodebyname.3 projects/nand/lib/libc/net/getnameinfo.3 projects/nand/lib/libc/net/inet_net.3 projects/nand/lib/libc/net/name6.c projects/nand/lib/libc/net/nsdispatch.3 projects/nand/lib/libc/net/sctp_bindx.3 projects/nand/lib/libc/net/sctp_connectx.3 projects/nand/lib/libc/net/sctp_freepaddrs.3 projects/nand/lib/libc/net/sctp_getaddrlen.3 projects/nand/lib/libc/net/sctp_getassocid.3 projects/nand/lib/libc/net/sctp_getpaddrs.3 projects/nand/lib/libc/net/sctp_opt_info.3 projects/nand/lib/libc/net/sctp_recvmsg.3 projects/nand/lib/libc/net/sctp_send.3 projects/nand/lib/libc/net/sctp_sendmsg.3 projects/nand/lib/libc/net/sourcefilter.3 projects/nand/lib/libc/posix1e/acl_add_flag_np.3 projects/nand/lib/libc/posix1e/acl_add_perm.3 projects/nand/lib/libc/posix1e/acl_create_entry.3 projects/nand/lib/libc/posix1e/acl_set_entry_type_np.3 projects/nand/lib/libc/posix1e/acl_set_tag_type.3 projects/nand/lib/libc/posix1e/acl_to_text.3 projects/nand/lib/libc/rpc/rpc_soc.3 projects/nand/lib/libc/stdio/getline.3 projects/nand/lib/libc/stdlib/at_quick_exit.3 projects/nand/lib/libc/stdlib/getenv.3 projects/nand/lib/libc/string/memchr.3 projects/nand/lib/libc/string/strerror.c projects/nand/lib/libc/sys/cap_new.2 projects/nand/lib/libc/sys/cpuset.2 projects/nand/lib/libc/sys/cpuset_getaffinity.2 projects/nand/lib/libc/sys/jail.2 projects/nand/lib/libc/sys/kill.2 projects/nand/lib/libc/sys/kldstat.2 projects/nand/lib/libc/sys/kqueue.2 projects/nand/lib/libc/sys/kse.2 projects/nand/lib/libc/sys/ktrace.2 projects/nand/lib/libc/sys/mmap.2 projects/nand/lib/libc/sys/msync.2 projects/nand/lib/libc/sys/pathconf.2 projects/nand/lib/libc/sys/posix_fadvise.2 projects/nand/lib/libc/sys/posix_fallocate.2 projects/nand/lib/libc/sys/ptrace.2 projects/nand/lib/libc/sys/quotactl.2 projects/nand/lib/libc/sys/sctp_generic_sendmsg.2 projects/nand/lib/libc/sys/sctp_peeloff.2 projects/nand/lib/libc/sys/select.2 projects/nand/lib/libc/sys/sendfile.2 projects/nand/lib/libc/sys/setfib.2 projects/nand/lib/libc/sys/shm_open.2 projects/nand/lib/libc/sys/sigqueue.2 projects/nand/lib/libcom_err/Makefile projects/nand/lib/libcrypt/crypt.3 projects/nand/lib/libcxxrt/Makefile projects/nand/lib/libelf/elf.3 projects/nand/lib/libelf/elf_getdata.3 projects/nand/lib/libelf/elf_getphdrnum.3 projects/nand/lib/libelf/elf_getphnum.3 projects/nand/lib/libelf/elf_getshdrnum.3 projects/nand/lib/libelf/elf_getshdrstrndx.3 projects/nand/lib/libelf/elf_getshnum.3 projects/nand/lib/libelf/elf_getshstrndx.3 projects/nand/lib/libelf/libelf_data.c projects/nand/lib/libfetch/fetch.3 projects/nand/lib/libgeom/geom_xml2tree.c projects/nand/lib/libgeom/libgeom.h projects/nand/lib/libgpib/gpib.3 projects/nand/lib/libgssapi/Symbol.map projects/nand/lib/libgssapi/gss_accept_sec_context.3 projects/nand/lib/libgssapi/gss_display_status.c projects/nand/lib/libgssapi/gss_release_buffer.3 projects/nand/lib/libgssapi/gss_release_oid_set.3 projects/nand/lib/libgssapi/mech.5 projects/nand/lib/libgssapi/mech_switch.h projects/nand/lib/libpam/modules/pam_exec/pam_exec.8 projects/nand/lib/libpam/modules/pam_exec/pam_exec.c projects/nand/lib/libpam/modules/pam_krb5/pam_krb5.c projects/nand/lib/libpam/modules/pam_ksu/pam_ksu.c projects/nand/lib/libpam/modules/pam_nologin/pam_nologin.8 projects/nand/lib/libpmc/Makefile projects/nand/lib/libpmc/libpmc.c projects/nand/lib/libpmc/pmc.3 projects/nand/lib/libpmc/pmc.atom.3 projects/nand/lib/libpmc/pmc.core.3 projects/nand/lib/libpmc/pmc.core2.3 projects/nand/lib/libpmc/pmc.corei7.3 projects/nand/lib/libpmc/pmc.corei7uc.3 projects/nand/lib/libpmc/pmc.h projects/nand/lib/libpmc/pmc.iaf.3 projects/nand/lib/libpmc/pmc.k7.3 projects/nand/lib/libpmc/pmc.k8.3 projects/nand/lib/libpmc/pmc.p4.3 projects/nand/lib/libpmc/pmc.p5.3 projects/nand/lib/libpmc/pmc.p6.3 projects/nand/lib/libpmc/pmc.sandybridge.3 projects/nand/lib/libpmc/pmc.sandybridgeuc.3 projects/nand/lib/libpmc/pmc.tsc.3 projects/nand/lib/libpmc/pmc.ucf.3 projects/nand/lib/libpmc/pmc.westmere.3 projects/nand/lib/libpmc/pmc.westmereuc.3 projects/nand/lib/libpmc/pmc.xscale.3 projects/nand/lib/libpmc/pmc_capabilities.3 projects/nand/lib/libpmc/pmclog.c projects/nand/lib/libpmc/pmclog.h projects/nand/lib/libproc/proc_bkpt.c projects/nand/lib/libproc/proc_regs.c projects/nand/lib/libprocstat/Symbol.map projects/nand/lib/libprocstat/Versions.def projects/nand/lib/libprocstat/libprocstat.3 projects/nand/lib/libprocstat/libprocstat.c projects/nand/lib/libprocstat/libprocstat.h projects/nand/lib/librpcsec_gss/rpc_gss_seccreate.3 projects/nand/lib/librt/sigev_thread.c projects/nand/lib/librt/sigev_thread.h projects/nand/lib/libtacplus/libtacplus.3 projects/nand/lib/libtelnet/Makefile projects/nand/lib/libthr/thread/thr_barrier.c projects/nand/lib/libthr/thread/thr_private.h projects/nand/lib/libthr/thread/thr_sig.c projects/nand/lib/libthr/thread/thr_umtx.c projects/nand/lib/libulog/utempter_add_record.3 projects/nand/lib/libusb/libusb.3 projects/nand/lib/libusb/libusb20.3 projects/nand/lib/libutil/kinfo_getallproc.3 projects/nand/lib/libutil/kinfo_getproc.3 projects/nand/lib/libutil/login.conf.5 projects/nand/lib/libutil/login_cap.3 projects/nand/lib/libutil/quotafile.3 projects/nand/lib/msun/man/ieee.3 projects/nand/libexec/bootpd/bootpd.8 projects/nand/libexec/getty/gettytab.5 projects/nand/libexec/rtld-elf/Makefile projects/nand/libexec/rtld-elf/amd64/reloc.c projects/nand/libexec/rtld-elf/amd64/rtld_machdep.h projects/nand/libexec/rtld-elf/arm/reloc.c projects/nand/libexec/rtld-elf/arm/rtld_machdep.h projects/nand/libexec/rtld-elf/i386/reloc.c projects/nand/libexec/rtld-elf/i386/rtld_machdep.h projects/nand/libexec/rtld-elf/ia64/reloc.c projects/nand/libexec/rtld-elf/ia64/rtld_machdep.h projects/nand/libexec/rtld-elf/libmap.c projects/nand/libexec/rtld-elf/malloc.c projects/nand/libexec/rtld-elf/map_object.c projects/nand/libexec/rtld-elf/mips/reloc.c projects/nand/libexec/rtld-elf/mips/rtld_machdep.h projects/nand/libexec/rtld-elf/mips/rtld_start.S projects/nand/libexec/rtld-elf/powerpc/reloc.c projects/nand/libexec/rtld-elf/powerpc/rtld_machdep.h projects/nand/libexec/rtld-elf/powerpc64/reloc.c projects/nand/libexec/rtld-elf/powerpc64/rtld_machdep.h projects/nand/libexec/rtld-elf/rtld.c projects/nand/libexec/rtld-elf/rtld.h projects/nand/libexec/rtld-elf/sparc64/reloc.c projects/nand/libexec/rtld-elf/sparc64/rtld_machdep.h projects/nand/libexec/rtld-elf/xmalloc.c projects/nand/libexec/tftpd/tftpd.8 projects/nand/sbin/camcontrol/camcontrol.8 projects/nand/sbin/devfs/devfs.8 projects/nand/sbin/geom/class/eli/geli.8 projects/nand/sbin/geom/class/multipath/gmultipath.8 projects/nand/sbin/geom/class/part/gpart.8 projects/nand/sbin/geom/class/sched/gsched.8 projects/nand/sbin/growfs/growfs.c projects/nand/sbin/gvinum/gvinum.8 projects/nand/sbin/hastd/hastd.c projects/nand/sbin/hastd/nv.c projects/nand/sbin/ifconfig/ifconfig.8 projects/nand/sbin/ifconfig/ifieee80211.c projects/nand/sbin/ifconfig/ifpfsync.c projects/nand/sbin/init/init.8 projects/nand/sbin/init/init.c projects/nand/sbin/init/pathnames.h projects/nand/sbin/ipfw/ipfw.8 projects/nand/sbin/ipfw/ipfw2.c projects/nand/sbin/kldload/kldload.8 projects/nand/sbin/kldload/kldload.c projects/nand/sbin/mdconfig/mdconfig.c projects/nand/sbin/mdmfs/mdmfs.8 projects/nand/sbin/mount_unionfs/mount_unionfs.8 projects/nand/sbin/ping6/ping6.8 projects/nand/sbin/quotacheck/quotacheck.8 projects/nand/sbin/rcorder/rcorder.8 projects/nand/sbin/route/route.8 projects/nand/sbin/setkey/setkey.8 projects/nand/sbin/sysctl/sysctl.8 projects/nand/secure/usr.bin/ssh/Makefile projects/nand/secure/usr.sbin/sshd/Makefile projects/nand/share/examples/Makefile projects/nand/share/examples/cvsup/cvs-supfile projects/nand/share/examples/cvsup/doc-supfile projects/nand/share/examples/cvsup/gnats-supfile projects/nand/share/examples/cvsup/ports-supfile projects/nand/share/examples/cvsup/stable-supfile projects/nand/share/examples/cvsup/standard-supfile projects/nand/share/examples/cvsup/www-supfile projects/nand/share/man/man3/pthread_attr_affinity_np.3 projects/nand/share/man/man3/pthread_cond_destroy.3 projects/nand/share/man/man3/pthread_cond_timedwait.3 projects/nand/share/man/man3/pthread_cond_wait.3 projects/nand/share/man/man4/acpi.4 projects/nand/share/man/man4/acpi_hp.4 projects/nand/share/man/man4/acpi_wmi.4 projects/nand/share/man/man4/ada.4 projects/nand/share/man/man4/adv.4 projects/nand/share/man/man4/ahc.4 projects/nand/share/man/man4/aibs.4 projects/nand/share/man/man4/amdsmb.4 projects/nand/share/man/man4/ath.4 projects/nand/share/man/man4/atkbd.4 projects/nand/share/man/man4/atp.4 projects/nand/share/man/man4/bce.4 projects/nand/share/man/man4/bridge.4 projects/nand/share/man/man4/carp.4 projects/nand/share/man/man4/cas.4 projects/nand/share/man/man4/cc_vegas.4 projects/nand/share/man/man4/cd.4 projects/nand/share/man/man4/coda.4 projects/nand/share/man/man4/cy.4 projects/nand/share/man/man4/dpms.4 projects/nand/share/man/man4/ed.4 projects/nand/share/man/man4/em.4 projects/nand/share/man/man4/epair.4 projects/nand/share/man/man4/eventtimers.4 projects/nand/share/man/man4/fdc.4 projects/nand/share/man/man4/fwohci.4 projects/nand/share/man/man4/gem.4 projects/nand/share/man/man4/geom_fox.4 projects/nand/share/man/man4/geom_uzip.4 projects/nand/share/man/man4/gre.4 projects/nand/share/man/man4/hptiop.4 projects/nand/share/man/man4/igb.4 projects/nand/share/man/man4/ip.4 projects/nand/share/man/man4/ipmi.4 projects/nand/share/man/man4/ipw.4 projects/nand/share/man/man4/isci.4 projects/nand/share/man/man4/iscsi_initiator.4 projects/nand/share/man/man4/isp.4 projects/nand/share/man/man4/iwi.4 projects/nand/share/man/man4/iwn.4 projects/nand/share/man/man4/iwnfw.4 projects/nand/share/man/man4/ixgbe.4 projects/nand/share/man/man4/ksyms.4 projects/nand/share/man/man4/ktr.4 projects/nand/share/man/man4/lmc.4 projects/nand/share/man/man4/man4.i386/glxsb.4 projects/nand/share/man/man4/man4.powerpc/abtn.4 projects/nand/share/man/man4/man4.powerpc/akbd.4 projects/nand/share/man/man4/man4.powerpc/bm.4 projects/nand/share/man/man4/man4.powerpc/cuda.4 projects/nand/share/man/man4/man4.powerpc/smu.4 projects/nand/share/man/man4/man4.powerpc/snd_ai2s.4 projects/nand/share/man/man4/man4.powerpc/snd_davbus.4 projects/nand/share/man/man4/md.4 projects/nand/share/man/man4/mld.4 projects/nand/share/man/man4/mmc.4 projects/nand/share/man/man4/mos.4 projects/nand/share/man/man4/mps.4 projects/nand/share/man/man4/mwl.4 projects/nand/share/man/man4/net80211.4 projects/nand/share/man/man4/netmap.4 projects/nand/share/man/man4/ng_car.4 projects/nand/share/man/man4/ng_deflate.4 projects/nand/share/man/man4/ng_nat.4 projects/nand/share/man/man4/ng_netflow.4 projects/nand/share/man/man4/ng_patch.4 projects/nand/share/man/man4/ng_ppp.4 projects/nand/share/man/man4/ng_pred1.4 projects/nand/share/man/man4/ng_tty.4 projects/nand/share/man/man4/nvram2env.4 projects/nand/share/man/man4/nxge.4 projects/nand/share/man/man4/oce.4 projects/nand/share/man/man4/pcm.4 projects/nand/share/man/man4/ppbus.4 projects/nand/share/man/man4/psm.4 projects/nand/share/man/man4/pts.4 projects/nand/share/man/man4/ral.4 projects/nand/share/man/man4/run.4 projects/nand/share/man/man4/runfw.4 projects/nand/share/man/man4/sfxge.4 projects/nand/share/man/man4/siftr.4 projects/nand/share/man/man4/smp.4 projects/nand/share/man/man4/snd_emu10kx.4 projects/nand/share/man/man4/snd_hda.4 projects/nand/share/man/man4/snd_ich.4 projects/nand/share/man/man4/syscons.4 projects/nand/share/man/man4/tcp.4 projects/nand/share/man/man4/tpm.4 projects/nand/share/man/man4/u3g.4 projects/nand/share/man/man4/uark.4 projects/nand/share/man/man4/uath.4 projects/nand/share/man/man4/ufoma.4 projects/nand/share/man/man4/uipaq.4 projects/nand/share/man/man4/ulpt.4 projects/nand/share/man/man4/umcs.4 projects/nand/share/man/man4/upgt.4 projects/nand/share/man/man4/vge.4 projects/nand/share/man/man4/virtio.4 projects/nand/share/man/man4/vxge.4 projects/nand/share/man/man4/wbwd.4 projects/nand/share/man/man4/wi.4 projects/nand/share/man/man4/wlan_acl.4 projects/nand/share/man/man4/wlan_amrr.4 projects/nand/share/man/man4/wpi.4 projects/nand/share/man/man4/xen.4 projects/nand/share/man/man4/xnb.4 projects/nand/share/man/man5/ar.5 projects/nand/share/man/man5/fdescfs.5 projects/nand/share/man/man5/fs.5 projects/nand/share/man/man5/fstab.5 projects/nand/share/man/man5/nsmb.conf.5 projects/nand/share/man/man5/quota.user.5 projects/nand/share/man/man5/services.5 projects/nand/share/man/man5/src.conf.5 projects/nand/share/man/man5/style.Makefile.5 projects/nand/share/man/man7/mailaddr.7 projects/nand/share/man/man7/operator.7 projects/nand/share/man/man7/release.7 projects/nand/share/man/man8/picobsd.8 projects/nand/share/man/man9/BUS_DESCRIBE_INTR.9 projects/nand/share/man/man9/BUS_SETUP_INTR.9 projects/nand/share/man/man9/DB_COMMAND.9 projects/nand/share/man/man9/DEVICE_PROBE.9 projects/nand/share/man/man9/Makefile projects/nand/share/man/man9/SYSINIT.9 projects/nand/share/man/man9/buf_ring.9 projects/nand/share/man/man9/condvar.9 projects/nand/share/man/man9/crypto.9 projects/nand/share/man/man9/devclass_get_maxunit.9 projects/nand/share/man/man9/device_get_children.9 projects/nand/share/man/man9/drbr.9 projects/nand/share/man/man9/eventtimers.9 projects/nand/share/man/man9/fail.9 projects/nand/share/man/man9/firmware.9 projects/nand/share/man/man9/ieee80211.9 projects/nand/share/man/man9/ieee80211_amrr.9 projects/nand/share/man/man9/ieee80211_bmiss.9 projects/nand/share/man/man9/ieee80211_crypto.9 projects/nand/share/man/man9/ieee80211_input.9 projects/nand/share/man/man9/ieee80211_node.9 projects/nand/share/man/man9/ieee80211_output.9 projects/nand/share/man/man9/ieee80211_proto.9 projects/nand/share/man/man9/ieee80211_radiotap.9 projects/nand/share/man/man9/ieee80211_regdomain.9 projects/nand/share/man/man9/ieee80211_scan.9 projects/nand/share/man/man9/ieee80211_vap.9 projects/nand/share/man/man9/ifnet.9 projects/nand/share/man/man9/kproc.9 projects/nand/share/man/man9/kqueue.9 projects/nand/share/man/man9/kthread.9 projects/nand/share/man/man9/lock.9 projects/nand/share/man/man9/locking.9 projects/nand/share/man/man9/make_dev.9 projects/nand/share/man/man9/malloc.9 projects/nand/share/man/man9/mi_switch.9 projects/nand/share/man/man9/osd.9 projects/nand/share/man/man9/rmlock.9 projects/nand/share/man/man9/shm_map.9 projects/nand/share/man/man9/sleep.9 projects/nand/share/man/man9/spl.9 projects/nand/share/man/man9/sysctl_ctx_init.9 projects/nand/share/man/man9/taskqueue.9 projects/nand/share/man/man9/timeout.9 projects/nand/share/man/man9/usbdi.9 projects/nand/share/man/man9/vm_map_find.9 projects/nand/share/man/man9/watchdog.9 projects/nand/share/mk/bsd.endian.mk projects/nand/share/mk/bsd.libnames.mk projects/nand/share/mk/bsd.sys.mk projects/nand/share/mk/sys.mk projects/nand/share/termcap/termcap.5 projects/nand/sys/Makefile projects/nand/sys/amd64/acpica/acpi_wakeup.c projects/nand/sys/amd64/amd64/initcpu.c projects/nand/sys/amd64/amd64/mp_machdep.c projects/nand/sys/amd64/amd64/pmap.c projects/nand/sys/amd64/amd64/trap.c projects/nand/sys/amd64/conf/GENERIC projects/nand/sys/amd64/conf/NOTES projects/nand/sys/amd64/ia32/ia32_reg.c projects/nand/sys/amd64/include/fpu.h projects/nand/sys/amd64/include/pmc_mdep.h projects/nand/sys/amd64/include/proc.h projects/nand/sys/amd64/include/psl.h projects/nand/sys/amd64/include/reg.h projects/nand/sys/amd64/include/segments.h projects/nand/sys/amd64/include/specialreg.h projects/nand/sys/amd64/include/sysarch.h projects/nand/sys/amd64/include/vm.h projects/nand/sys/amd64/linux32/linux32_dummy.c projects/nand/sys/amd64/linux32/linux32_proto.h projects/nand/sys/amd64/linux32/linux32_syscall.h projects/nand/sys/amd64/linux32/linux32_syscalls.c projects/nand/sys/amd64/linux32/linux32_sysent.c projects/nand/sys/amd64/linux32/linux32_systrace_args.c projects/nand/sys/amd64/linux32/syscalls.master projects/nand/sys/arm/conf/AVILA projects/nand/sys/arm/conf/BWCT projects/nand/sys/arm/conf/CAMBRIA projects/nand/sys/arm/conf/CNS11XXNAS projects/nand/sys/arm/conf/CRB projects/nand/sys/arm/conf/DB-78XXX projects/nand/sys/arm/conf/DB-88F5XXX projects/nand/sys/arm/conf/DB-88F6XXX projects/nand/sys/arm/conf/DOCKSTAR projects/nand/sys/arm/conf/EP80219 projects/nand/sys/arm/conf/GUMSTIX projects/nand/sys/arm/conf/HL200 projects/nand/sys/arm/conf/HL201 projects/nand/sys/arm/conf/IQ31244 projects/nand/sys/arm/conf/KB920X projects/nand/sys/arm/conf/LN2410SBC projects/nand/sys/arm/conf/NSLU projects/nand/sys/arm/conf/QILA9G20 projects/nand/sys/arm/conf/SAM9G20EK projects/nand/sys/arm/conf/SHEEVAPLUG projects/nand/sys/arm/conf/TS7800 projects/nand/sys/arm/include/pmc_mdep.h projects/nand/sys/arm/mv/common.c projects/nand/sys/boot/common/crc32.c projects/nand/sys/boot/common/loader.8 projects/nand/sys/boot/common/ufsread.c projects/nand/sys/boot/fdt/fdt_loader_cmd.c projects/nand/sys/boot/forth/loader.conf.5 projects/nand/sys/boot/pc98/boot2/boot2.c projects/nand/sys/boot/powerpc/ps3/start.S projects/nand/sys/boot/uboot/common/metadata.c projects/nand/sys/boot/uboot/lib/Makefile projects/nand/sys/boot/uboot/lib/glue.c projects/nand/sys/cam/scsi/scsi_da.c projects/nand/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c projects/nand/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c projects/nand/sys/cddl/dev/dtrace/dtrace_ioctl.c projects/nand/sys/cddl/dev/lockstat/lockstat.c projects/nand/sys/cddl/dev/profile/profile.c projects/nand/sys/cddl/dev/sdt/sdt.c projects/nand/sys/compat/ia32/ia32_sysvec.c projects/nand/sys/conf/Makefile.mips projects/nand/sys/conf/NOTES projects/nand/sys/conf/files projects/nand/sys/conf/files.amd64 projects/nand/sys/conf/files.arm projects/nand/sys/conf/files.i386 projects/nand/sys/conf/files.ia64 projects/nand/sys/conf/files.mips projects/nand/sys/conf/files.pc98 projects/nand/sys/conf/files.powerpc projects/nand/sys/conf/files.sparc64 projects/nand/sys/conf/kern.mk projects/nand/sys/conf/kern.post.mk projects/nand/sys/conf/kern.pre.mk projects/nand/sys/conf/kmod.mk projects/nand/sys/conf/options projects/nand/sys/conf/options.amd64 projects/nand/sys/conf/options.i386 projects/nand/sys/conf/options.mips projects/nand/sys/contrib/dev/acpica/acpica_prep.sh projects/nand/sys/contrib/dev/acpica/changes.txt (contents, props changed) projects/nand/sys/contrib/dev/acpica/common/adisasm.c projects/nand/sys/contrib/dev/acpica/common/getopt.c projects/nand/sys/contrib/dev/acpica/compiler/aslcodegen.c projects/nand/sys/contrib/dev/acpica/compiler/aslcompile.c projects/nand/sys/contrib/dev/acpica/compiler/aslcompiler.h projects/nand/sys/contrib/dev/acpica/compiler/aslcompiler.y projects/nand/sys/contrib/dev/acpica/compiler/aslerror.c projects/nand/sys/contrib/dev/acpica/compiler/aslfiles.c projects/nand/sys/contrib/dev/acpica/compiler/aslglobal.h projects/nand/sys/contrib/dev/acpica/compiler/aslmain.c projects/nand/sys/contrib/dev/acpica/compiler/aslmessages.h projects/nand/sys/contrib/dev/acpica/compiler/aslstartup.c projects/nand/sys/contrib/dev/acpica/compiler/asltypes.h projects/nand/sys/contrib/dev/acpica/compiler/aslutils.c projects/nand/sys/contrib/dev/acpica/compiler/dtcompile.c projects/nand/sys/contrib/dev/acpica/compiler/dtcompiler.h projects/nand/sys/contrib/dev/acpica/compiler/dtexpress.c projects/nand/sys/contrib/dev/acpica/compiler/dtio.c projects/nand/sys/contrib/dev/acpica/compiler/dtparser.y projects/nand/sys/contrib/dev/acpica/components/debugger/dbcmds.c projects/nand/sys/contrib/dev/acpica/components/hardware/hwesleep.c projects/nand/sys/contrib/dev/acpica/components/hardware/hwsleep.c projects/nand/sys/contrib/dev/acpica/components/hardware/hwxfsleep.c projects/nand/sys/contrib/dev/acpica/components/namespace/nsdump.c projects/nand/sys/contrib/dev/acpica/components/namespace/nsdumpdv.c projects/nand/sys/contrib/dev/acpica/components/namespace/nspredef.c projects/nand/sys/contrib/dev/acpica/components/namespace/nsrepair.c projects/nand/sys/contrib/dev/acpica/components/namespace/nsutils.c projects/nand/sys/contrib/dev/acpica/components/parser/psargs.c projects/nand/sys/contrib/dev/acpica/components/tables/tbfadt.c projects/nand/sys/contrib/dev/acpica/components/tables/tbinstal.c projects/nand/sys/contrib/dev/acpica/components/tables/tbutils.c projects/nand/sys/contrib/dev/acpica/include/achware.h projects/nand/sys/contrib/dev/acpica/include/aclocal.h projects/nand/sys/contrib/dev/acpica/include/acnames.h projects/nand/sys/contrib/dev/acpica/include/acnamesp.h projects/nand/sys/contrib/dev/acpica/include/acoutput.h projects/nand/sys/contrib/dev/acpica/include/acpixf.h projects/nand/sys/contrib/dev/acpica/include/actypes.h projects/nand/sys/contrib/dev/ral/Makefile projects/nand/sys/contrib/dev/ral/rt2860.fw.uu projects/nand/sys/contrib/dev/run/rt2870.fw.uu projects/nand/sys/contrib/octeon-sdk/cvmip.h projects/nand/sys/contrib/octeon-sdk/cvmx-abi.h projects/nand/sys/contrib/octeon-sdk/cvmx-access-native.h projects/nand/sys/contrib/octeon-sdk/cvmx-access.h projects/nand/sys/contrib/octeon-sdk/cvmx-address.h projects/nand/sys/contrib/octeon-sdk/cvmx-agl-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-app-hotplug.c projects/nand/sys/contrib/octeon-sdk/cvmx-app-hotplug.h projects/nand/sys/contrib/octeon-sdk/cvmx-app-init-linux.c projects/nand/sys/contrib/octeon-sdk/cvmx-app-init.c projects/nand/sys/contrib/octeon-sdk/cvmx-app-init.h projects/nand/sys/contrib/octeon-sdk/cvmx-asm.h projects/nand/sys/contrib/octeon-sdk/cvmx-asx0-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-asxx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-atomic.h projects/nand/sys/contrib/octeon-sdk/cvmx-bootloader.h projects/nand/sys/contrib/octeon-sdk/cvmx-bootmem.c projects/nand/sys/contrib/octeon-sdk/cvmx-bootmem.h projects/nand/sys/contrib/octeon-sdk/cvmx-ciu-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-clock.c projects/nand/sys/contrib/octeon-sdk/cvmx-clock.h projects/nand/sys/contrib/octeon-sdk/cvmx-cmd-queue.c projects/nand/sys/contrib/octeon-sdk/cvmx-cmd-queue.h projects/nand/sys/contrib/octeon-sdk/cvmx-cn3010-evb-hs5.c projects/nand/sys/contrib/octeon-sdk/cvmx-cn3010-evb-hs5.h projects/nand/sys/contrib/octeon-sdk/cvmx-compactflash.c projects/nand/sys/contrib/octeon-sdk/cvmx-compactflash.h projects/nand/sys/contrib/octeon-sdk/cvmx-core.c projects/nand/sys/contrib/octeon-sdk/cvmx-core.h projects/nand/sys/contrib/octeon-sdk/cvmx-coremask.c projects/nand/sys/contrib/octeon-sdk/cvmx-coremask.h projects/nand/sys/contrib/octeon-sdk/cvmx-crypto.c projects/nand/sys/contrib/octeon-sdk/cvmx-crypto.h projects/nand/sys/contrib/octeon-sdk/cvmx-csr-enums.h projects/nand/sys/contrib/octeon-sdk/cvmx-csr-typedefs.h projects/nand/sys/contrib/octeon-sdk/cvmx-csr.h projects/nand/sys/contrib/octeon-sdk/cvmx-dbg-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-debug-handler.S projects/nand/sys/contrib/octeon-sdk/cvmx-debug-remote.c projects/nand/sys/contrib/octeon-sdk/cvmx-debug-uart.c projects/nand/sys/contrib/octeon-sdk/cvmx-debug.c projects/nand/sys/contrib/octeon-sdk/cvmx-debug.h projects/nand/sys/contrib/octeon-sdk/cvmx-dfa-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-dfa.c projects/nand/sys/contrib/octeon-sdk/cvmx-dfa.h projects/nand/sys/contrib/octeon-sdk/cvmx-dfm-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-dma-engine.c projects/nand/sys/contrib/octeon-sdk/cvmx-dma-engine.h projects/nand/sys/contrib/octeon-sdk/cvmx-dpi-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-ebt3000.c projects/nand/sys/contrib/octeon-sdk/cvmx-ebt3000.h projects/nand/sys/contrib/octeon-sdk/cvmx-fau.h projects/nand/sys/contrib/octeon-sdk/cvmx-flash.c projects/nand/sys/contrib/octeon-sdk/cvmx-flash.h projects/nand/sys/contrib/octeon-sdk/cvmx-fpa-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-fpa.c projects/nand/sys/contrib/octeon-sdk/cvmx-fpa.h projects/nand/sys/contrib/octeon-sdk/cvmx-gmx.h projects/nand/sys/contrib/octeon-sdk/cvmx-gmxx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-gpio-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-gpio.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-board.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-board.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-check-defines.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-errata.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-errata.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-fpa.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-fpa.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-jtag.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-jtag.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-loop.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-loop.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-npi.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-npi.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-rgmii.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-rgmii.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-sgmii.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-sgmii.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-spi.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-spi.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-srio.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-srio.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-util.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-util.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper-xaui.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper-xaui.h projects/nand/sys/contrib/octeon-sdk/cvmx-helper.c projects/nand/sys/contrib/octeon-sdk/cvmx-helper.h projects/nand/sys/contrib/octeon-sdk/cvmx-higig.h projects/nand/sys/contrib/octeon-sdk/cvmx-interrupt-handler.S projects/nand/sys/contrib/octeon-sdk/cvmx-interrupt.c projects/nand/sys/contrib/octeon-sdk/cvmx-interrupt.h projects/nand/sys/contrib/octeon-sdk/cvmx-iob-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-ipd-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-ipd.h projects/nand/sys/contrib/octeon-sdk/cvmx-ixf18201.c projects/nand/sys/contrib/octeon-sdk/cvmx-ixf18201.h projects/nand/sys/contrib/octeon-sdk/cvmx-key-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-key.h projects/nand/sys/contrib/octeon-sdk/cvmx-l2c-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-l2c.c projects/nand/sys/contrib/octeon-sdk/cvmx-l2c.h projects/nand/sys/contrib/octeon-sdk/cvmx-l2d-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-l2t-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-led-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-llm.c projects/nand/sys/contrib/octeon-sdk/cvmx-llm.h projects/nand/sys/contrib/octeon-sdk/cvmx-lmcx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-log-arc.S projects/nand/sys/contrib/octeon-sdk/cvmx-log.c projects/nand/sys/contrib/octeon-sdk/cvmx-log.h projects/nand/sys/contrib/octeon-sdk/cvmx-malloc.h projects/nand/sys/contrib/octeon-sdk/cvmx-mdio.h projects/nand/sys/contrib/octeon-sdk/cvmx-mgmt-port.c projects/nand/sys/contrib/octeon-sdk/cvmx-mgmt-port.h projects/nand/sys/contrib/octeon-sdk/cvmx-mio-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-mixx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-mpi-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-nand.c projects/nand/sys/contrib/octeon-sdk/cvmx-nand.h projects/nand/sys/contrib/octeon-sdk/cvmx-ndf-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-npei-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-npi-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-npi.h projects/nand/sys/contrib/octeon-sdk/cvmx-packet.h projects/nand/sys/contrib/octeon-sdk/cvmx-pci-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pci.h projects/nand/sys/contrib/octeon-sdk/cvmx-pcie.c projects/nand/sys/contrib/octeon-sdk/cvmx-pcie.h projects/nand/sys/contrib/octeon-sdk/cvmx-pcieepx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pciercx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pcm-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pcmx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pcsx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pcsxx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pemx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pescx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pexp-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pip-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pip.h projects/nand/sys/contrib/octeon-sdk/cvmx-pko-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pko.c projects/nand/sys/contrib/octeon-sdk/cvmx-pko.h projects/nand/sys/contrib/octeon-sdk/cvmx-platform.h projects/nand/sys/contrib/octeon-sdk/cvmx-pow-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-pow.c projects/nand/sys/contrib/octeon-sdk/cvmx-pow.h projects/nand/sys/contrib/octeon-sdk/cvmx-power-throttle.c projects/nand/sys/contrib/octeon-sdk/cvmx-power-throttle.h projects/nand/sys/contrib/octeon-sdk/cvmx-rad-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-raid.c projects/nand/sys/contrib/octeon-sdk/cvmx-raid.h projects/nand/sys/contrib/octeon-sdk/cvmx-rng.h projects/nand/sys/contrib/octeon-sdk/cvmx-rnm-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-rtc.h projects/nand/sys/contrib/octeon-sdk/cvmx-rwlock.h projects/nand/sys/contrib/octeon-sdk/cvmx-scratch.h projects/nand/sys/contrib/octeon-sdk/cvmx-shmem.c projects/nand/sys/contrib/octeon-sdk/cvmx-shmem.h projects/nand/sys/contrib/octeon-sdk/cvmx-sim-magic.h projects/nand/sys/contrib/octeon-sdk/cvmx-sli-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-smi-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-smix-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-spi.c projects/nand/sys/contrib/octeon-sdk/cvmx-spi.h projects/nand/sys/contrib/octeon-sdk/cvmx-spi4000.c projects/nand/sys/contrib/octeon-sdk/cvmx-spinlock.h projects/nand/sys/contrib/octeon-sdk/cvmx-spx0-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-spxx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-srio.c projects/nand/sys/contrib/octeon-sdk/cvmx-srio.h projects/nand/sys/contrib/octeon-sdk/cvmx-sriomaintx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-sriox-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-srxx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-stxx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-swap.h projects/nand/sys/contrib/octeon-sdk/cvmx-sysinfo.c projects/nand/sys/contrib/octeon-sdk/cvmx-sysinfo.h projects/nand/sys/contrib/octeon-sdk/cvmx-thunder.c projects/nand/sys/contrib/octeon-sdk/cvmx-thunder.h projects/nand/sys/contrib/octeon-sdk/cvmx-tim-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-tim.c projects/nand/sys/contrib/octeon-sdk/cvmx-tim.h projects/nand/sys/contrib/octeon-sdk/cvmx-tlb.c projects/nand/sys/contrib/octeon-sdk/cvmx-tlb.h projects/nand/sys/contrib/octeon-sdk/cvmx-tra-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-tra.c projects/nand/sys/contrib/octeon-sdk/cvmx-tra.h projects/nand/sys/contrib/octeon-sdk/cvmx-twsi.c projects/nand/sys/contrib/octeon-sdk/cvmx-twsi.h projects/nand/sys/contrib/octeon-sdk/cvmx-uahcx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-uart.c projects/nand/sys/contrib/octeon-sdk/cvmx-uart.h projects/nand/sys/contrib/octeon-sdk/cvmx-uctlx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-usb.c projects/nand/sys/contrib/octeon-sdk/cvmx-usb.h projects/nand/sys/contrib/octeon-sdk/cvmx-usbcx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-usbd.c projects/nand/sys/contrib/octeon-sdk/cvmx-usbd.h projects/nand/sys/contrib/octeon-sdk/cvmx-usbnx-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-utils.h projects/nand/sys/contrib/octeon-sdk/cvmx-version.h projects/nand/sys/contrib/octeon-sdk/cvmx-warn.c projects/nand/sys/contrib/octeon-sdk/cvmx-warn.h projects/nand/sys/contrib/octeon-sdk/cvmx-wqe.h projects/nand/sys/contrib/octeon-sdk/cvmx-zip-defs.h projects/nand/sys/contrib/octeon-sdk/cvmx-zip.c projects/nand/sys/contrib/octeon-sdk/cvmx-zip.h projects/nand/sys/contrib/octeon-sdk/cvmx-zone.c projects/nand/sys/contrib/octeon-sdk/cvmx.h projects/nand/sys/contrib/octeon-sdk/octeon-boot-info.h projects/nand/sys/contrib/octeon-sdk/octeon-feature.h projects/nand/sys/contrib/octeon-sdk/octeon-model.c projects/nand/sys/contrib/octeon-sdk/octeon-model.h projects/nand/sys/contrib/octeon-sdk/octeon-pci-console.c projects/nand/sys/contrib/octeon-sdk/octeon-pci-console.h projects/nand/sys/contrib/pf/net/if_pfsync.c projects/nand/sys/contrib/pf/net/if_pfsync.h projects/nand/sys/dev/acpica/acpi.c projects/nand/sys/dev/acpica/acpi_hpet.c projects/nand/sys/dev/acpica/acpi_pcib_acpi.c projects/nand/sys/dev/acpica/acpivar.h projects/nand/sys/dev/advansys/adv_eisa.c projects/nand/sys/dev/advansys/adv_isa.c projects/nand/sys/dev/advansys/adv_pci.c projects/nand/sys/dev/advansys/adw_pci.c projects/nand/sys/dev/ahb/ahb.c projects/nand/sys/dev/aic7xxx/ahc_eisa.c projects/nand/sys/dev/aic7xxx/ahc_isa.c projects/nand/sys/dev/aic7xxx/ahc_pci.c projects/nand/sys/dev/aic7xxx/ahd_pci.c projects/nand/sys/dev/aic7xxx/aicasm/aicasm_symbol.c projects/nand/sys/dev/ale/if_ale.c projects/nand/sys/dev/ale/if_alevar.h projects/nand/sys/dev/amr/amr_pci.c projects/nand/sys/dev/an/if_an_pci.c projects/nand/sys/dev/arcmsr/arcmsr.c projects/nand/sys/dev/asr/asr.c projects/nand/sys/dev/ata/ata-all.c projects/nand/sys/dev/ata/ata-all.h projects/nand/sys/dev/ata/ata-card.c projects/nand/sys/dev/ata/ata-cbus.c projects/nand/sys/dev/ata/ata-disk.c projects/nand/sys/dev/ata/ata-pci.c projects/nand/sys/dev/ata/ata-pci.h projects/nand/sys/dev/ata/ata-queue.c projects/nand/sys/dev/ata/ata-raid.c projects/nand/sys/dev/ata/atapi-cam.c projects/nand/sys/dev/ata/atapi-cd.c projects/nand/sys/dev/ata/atapi-fd.c projects/nand/sys/dev/ata/atapi-tape.c projects/nand/sys/dev/ata/chipsets/ata-acard.c projects/nand/sys/dev/ata/chipsets/ata-acerlabs.c projects/nand/sys/dev/ata/chipsets/ata-adaptec.c projects/nand/sys/dev/ata/chipsets/ata-ahci.c projects/nand/sys/dev/ata/chipsets/ata-amd.c projects/nand/sys/dev/ata/chipsets/ata-ati.c projects/nand/sys/dev/ata/chipsets/ata-cyrix.c projects/nand/sys/dev/ata/chipsets/ata-highpoint.c projects/nand/sys/dev/ata/chipsets/ata-intel.c projects/nand/sys/dev/ata/chipsets/ata-ite.c projects/nand/sys/dev/ata/chipsets/ata-jmicron.c projects/nand/sys/dev/ata/chipsets/ata-marvell.c projects/nand/sys/dev/ata/chipsets/ata-national.c projects/nand/sys/dev/ata/chipsets/ata-nvidia.c projects/nand/sys/dev/ata/chipsets/ata-promise.c projects/nand/sys/dev/ata/chipsets/ata-serverworks.c projects/nand/sys/dev/ata/chipsets/ata-siliconimage.c projects/nand/sys/dev/ata/chipsets/ata-sis.c projects/nand/sys/dev/ata/chipsets/ata-via.c projects/nand/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c projects/nand/sys/dev/ath/if_ath.c projects/nand/sys/dev/ath/if_ath_debug.c projects/nand/sys/dev/ath/if_ath_sysctl.c projects/nand/sys/dev/ath/if_ath_tx.c projects/nand/sys/dev/ath/if_ath_tx.h projects/nand/sys/dev/ath/if_ath_tx_ht.c projects/nand/sys/dev/ath/if_athioctl.h projects/nand/sys/dev/ath/if_athvar.h projects/nand/sys/dev/atkbdc/atkbdc_isa.c projects/nand/sys/dev/atkbdc/psm.c projects/nand/sys/dev/bge/if_bge.c projects/nand/sys/dev/bge/if_bgereg.h projects/nand/sys/dev/buslogic/bt_pci.c projects/nand/sys/dev/bxe/if_bxe.c projects/nand/sys/dev/cesa/cesa.c projects/nand/sys/dev/cfi/cfi_core.c projects/nand/sys/dev/cfi/cfi_dev.c projects/nand/sys/dev/cfi/cfi_disk.c projects/nand/sys/dev/cfi/cfi_var.h projects/nand/sys/dev/ciss/ciss.c projects/nand/sys/dev/cxgb/cxgb_sge.c projects/nand/sys/dev/de/if_de.c projects/nand/sys/dev/dpt/dpt_pci.c projects/nand/sys/dev/e1000/e1000_osdep.h projects/nand/sys/dev/e1000/if_em.c projects/nand/sys/dev/e1000/if_igb.c projects/nand/sys/dev/en/midway.c projects/nand/sys/dev/fb/vesa.c projects/nand/sys/dev/fxp/if_fxp.c projects/nand/sys/dev/fxp/if_fxpreg.h projects/nand/sys/dev/fxp/if_fxpvar.h projects/nand/sys/dev/glxsb/glxsb.c projects/nand/sys/dev/gpio/gpioc.c projects/nand/sys/dev/hatm/if_hatm.c projects/nand/sys/dev/hifn/hifn7751.c projects/nand/sys/dev/hptiop/hptiop.c projects/nand/sys/dev/hptmv/entry.c projects/nand/sys/dev/hwpmc/hwpmc_amd.c projects/nand/sys/dev/hwpmc/hwpmc_core.c projects/nand/sys/dev/hwpmc/hwpmc_intel.c projects/nand/sys/dev/hwpmc/hwpmc_logging.c projects/nand/sys/dev/hwpmc/hwpmc_mips.c projects/nand/sys/dev/hwpmc/hwpmc_mips24k.c projects/nand/sys/dev/hwpmc/hwpmc_mod.c projects/nand/sys/dev/hwpmc/hwpmc_piv.c projects/nand/sys/dev/hwpmc/hwpmc_powerpc.c projects/nand/sys/dev/hwpmc/hwpmc_ppro.c projects/nand/sys/dev/hwpmc/hwpmc_tsc.c projects/nand/sys/dev/hwpmc/hwpmc_x86.c projects/nand/sys/dev/hwpmc/hwpmc_xscale.c projects/nand/sys/dev/hwpmc/pmc_events.h projects/nand/sys/dev/ida/ida_pci.c projects/nand/sys/dev/if_ndis/if_ndis_pci.c projects/nand/sys/dev/iir/iir_pci.c projects/nand/sys/dev/ips/ips_pci.c projects/nand/sys/dev/ipw/if_ipw.c projects/nand/sys/dev/ipw/if_ipwvar.h projects/nand/sys/dev/isci/isci.h projects/nand/sys/dev/isci/isci_controller.c projects/nand/sys/dev/isci/isci_domain.c projects/nand/sys/dev/isci/isci_remote_device.c projects/nand/sys/dev/isci/isci_task_request.c projects/nand/sys/dev/isci/scil/sati_read_capacity.c projects/nand/sys/dev/iwi/if_iwi.c projects/nand/sys/dev/iwn/if_iwn.c projects/nand/sys/dev/ixgb/if_ixgb.c projects/nand/sys/dev/ixgbe/ixgbe.c projects/nand/sys/dev/ixgbe/ixv.c projects/nand/sys/dev/lmc/if_lmc.c projects/nand/sys/dev/mfi/mfi.c projects/nand/sys/dev/mfi/mfi_cam.c projects/nand/sys/dev/mfi/mfi_debug.c projects/nand/sys/dev/mfi/mfi_disk.c projects/nand/sys/dev/mfi/mfi_ioctl.h projects/nand/sys/dev/mfi/mfi_linux.c projects/nand/sys/dev/mfi/mfi_pci.c projects/nand/sys/dev/mfi/mfireg.h projects/nand/sys/dev/mfi/mfivar.h projects/nand/sys/dev/mge/if_mge.c projects/nand/sys/dev/mlx/mlx_pci.c projects/nand/sys/dev/mly/mly.c projects/nand/sys/dev/mpt/mpilib/mpi.h projects/nand/sys/dev/mpt/mpilib/mpi_cnfg.h projects/nand/sys/dev/mpt/mpilib/mpi_fc.h projects/nand/sys/dev/mpt/mpilib/mpi_init.h projects/nand/sys/dev/mpt/mpilib/mpi_ioc.h projects/nand/sys/dev/mpt/mpilib/mpi_lan.h projects/nand/sys/dev/mpt/mpilib/mpi_raid.h projects/nand/sys/dev/mpt/mpilib/mpi_sas.h projects/nand/sys/dev/mpt/mpilib/mpi_targ.h projects/nand/sys/dev/mpt/mpilib/mpi_tool.h projects/nand/sys/dev/mpt/mpilib/mpi_type.h projects/nand/sys/dev/mpt/mpt.h projects/nand/sys/dev/mpt/mpt_pci.c projects/nand/sys/dev/mxge/if_mxge.c projects/nand/sys/dev/nve/if_nve.c projects/nand/sys/dev/ofw/ofw_bus_if.m projects/nand/sys/dev/ofw/ofw_bus_subr.c projects/nand/sys/dev/ofw/ofw_iicbus.c projects/nand/sys/dev/patm/if_patm_attach.c projects/nand/sys/dev/pcf/pcf_ebus.c projects/nand/sys/dev/pci/pci.c projects/nand/sys/dev/safe/safe.c projects/nand/sys/dev/sound/pci/emu10kx.c projects/nand/sys/dev/sound/pci/hda/hdaa.c projects/nand/sys/dev/sound/pci/hda/hdac.c projects/nand/sys/dev/sound/usb/uaudio.c projects/nand/sys/dev/sound/usb/uaudioreg.h projects/nand/sys/dev/syscons/syscons.c projects/nand/sys/dev/trm/trm.c projects/nand/sys/dev/twe/twe_freebsd.c projects/nand/sys/dev/tws/tws.c projects/nand/sys/dev/uart/uart_bus_pci.c projects/nand/sys/dev/ubsec/ubsec.c projects/nand/sys/dev/usb/controller/at91dci.c projects/nand/sys/dev/usb/controller/atmegadci.c projects/nand/sys/dev/usb/controller/avr32dci.c projects/nand/sys/dev/usb/controller/dwc_otg.c projects/nand/sys/dev/usb/controller/ehci.c projects/nand/sys/dev/usb/controller/musb_otg.c projects/nand/sys/dev/usb/controller/ohci.c projects/nand/sys/dev/usb/controller/uhci.c projects/nand/sys/dev/usb/controller/uss820dci.c projects/nand/sys/dev/usb/controller/xhci.c projects/nand/sys/dev/usb/input/atp.c projects/nand/sys/dev/usb/input/uep.c projects/nand/sys/dev/usb/input/uhid.c projects/nand/sys/dev/usb/input/ukbd.c projects/nand/sys/dev/usb/input/ums.c projects/nand/sys/dev/usb/misc/ufm.c projects/nand/sys/dev/usb/net/if_aue.c projects/nand/sys/dev/usb/net/if_axe.c projects/nand/sys/dev/usb/net/if_cdce.c projects/nand/sys/dev/usb/net/if_cue.c projects/nand/sys/dev/usb/net/if_ipheth.c projects/nand/sys/dev/usb/net/if_kue.c projects/nand/sys/dev/usb/net/if_rue.c projects/nand/sys/dev/usb/net/if_udav.c projects/nand/sys/dev/usb/net/if_usie.c projects/nand/sys/dev/usb/net/ruephy.c projects/nand/sys/dev/usb/net/uhso.c projects/nand/sys/dev/usb/serial/ubsa.c projects/nand/sys/dev/usb/serial/uchcom.c projects/nand/sys/dev/usb/serial/ucycom.c projects/nand/sys/dev/usb/serial/ufoma.c projects/nand/sys/dev/usb/serial/ulpt.c projects/nand/sys/dev/usb/serial/umodem.c projects/nand/sys/dev/usb/serial/uplcom.c projects/nand/sys/dev/usb/serial/usb_serial.c projects/nand/sys/dev/usb/serial/usb_serial.h projects/nand/sys/dev/usb/storage/umass.c projects/nand/sys/dev/usb/storage/urio.c projects/nand/sys/dev/usb/storage/ustorage_fs.c projects/nand/sys/dev/usb/template/usb_template.c projects/nand/sys/dev/usb/usb.h projects/nand/sys/dev/usb/usb_busdma.c projects/nand/sys/dev/usb/usb_compat_linux.c projects/nand/sys/dev/usb/usb_dev.c projects/nand/sys/dev/usb/usb_device.c projects/nand/sys/dev/usb/usb_handle_request.c projects/nand/sys/dev/usb/usb_hid.c projects/nand/sys/dev/usb/usb_hub.c projects/nand/sys/dev/usb/usb_msctest.c projects/nand/sys/dev/usb/usb_request.c projects/nand/sys/dev/usb/usb_request.h projects/nand/sys/dev/usb/usb_transfer.c projects/nand/sys/dev/usb/usbdi.h projects/nand/sys/dev/usb/usbhid.h projects/nand/sys/dev/usb/wlan/if_rum.c projects/nand/sys/dev/usb/wlan/if_run.c projects/nand/sys/dev/usb/wlan/if_uath.c projects/nand/sys/dev/usb/wlan/if_upgt.c projects/nand/sys/dev/usb/wlan/if_ural.c projects/nand/sys/dev/usb/wlan/if_urtw.c projects/nand/sys/dev/usb/wlan/if_zyd.c projects/nand/sys/dev/wds/wd7000.c projects/nand/sys/dev/wpi/if_wpi.c projects/nand/sys/dev/wtap/if_wtap.c projects/nand/sys/dev/xen/blkfront/blkfront.c projects/nand/sys/fs/cd9660/cd9660_vnops.c projects/nand/sys/fs/ext2fs/ext2_vnops.c projects/nand/sys/fs/fdescfs/fdesc_vfsops.c projects/nand/sys/fs/fifofs/fifo_vnops.c projects/nand/sys/fs/nfs/nfsport.h projects/nand/sys/fs/nfsclient/nfs_clbio.c projects/nand/sys/fs/nfsclient/nfs_clvnops.c projects/nand/sys/fs/nullfs/null_vfsops.c projects/nand/sys/fs/portalfs/portal_vfsops.c projects/nand/sys/fs/tmpfs/tmpfs_subr.c projects/nand/sys/fs/tmpfs/tmpfs_vnops.c projects/nand/sys/fs/udf/udf_vnops.c projects/nand/sys/fs/unionfs/union_vfsops.c projects/nand/sys/geom/geom_vfs.c projects/nand/sys/geom/part/g_part.c projects/nand/sys/geom/part/g_part.h projects/nand/sys/gnu/fs/reiserfs/reiserfs_vfsops.c projects/nand/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c projects/nand/sys/i386/acpica/acpi_wakeup.c projects/nand/sys/i386/conf/GENERIC projects/nand/sys/i386/conf/NOTES projects/nand/sys/i386/conf/XBOX projects/nand/sys/i386/conf/XEN projects/nand/sys/i386/i386/machdep.c projects/nand/sys/i386/i386/pmap.c projects/nand/sys/i386/i386/trap.c projects/nand/sys/i386/include/npx.h projects/nand/sys/i386/include/pmc_mdep.h projects/nand/sys/i386/include/proc.h projects/nand/sys/i386/include/psl.h projects/nand/sys/i386/include/reg.h projects/nand/sys/i386/include/segments.h projects/nand/sys/i386/include/specialreg.h projects/nand/sys/i386/include/sysarch.h projects/nand/sys/i386/include/vm.h projects/nand/sys/i386/linux/linux_dummy.c projects/nand/sys/i386/linux/linux_proto.h projects/nand/sys/i386/linux/linux_syscall.h projects/nand/sys/i386/linux/linux_syscalls.c projects/nand/sys/i386/linux/linux_sysent.c projects/nand/sys/i386/linux/linux_systrace_args.c projects/nand/sys/i386/linux/syscalls.master projects/nand/sys/i386/xbox/xboxfb.c projects/nand/sys/ia64/conf/GENERIC projects/nand/sys/ia64/conf/SKI projects/nand/sys/ia64/ia32/ia32_reg.c projects/nand/sys/ia64/ia32/ia32_signal.c projects/nand/sys/ia64/ia32/ia32_trap.c projects/nand/sys/ia64/include/reg.h projects/nand/sys/kern/imgact_elf.c projects/nand/sys/kern/kern_clock.c projects/nand/sys/kern/kern_clocksource.c projects/nand/sys/kern/kern_cpu.c projects/nand/sys/kern/kern_descrip.c projects/nand/sys/kern/kern_event.c projects/nand/sys/kern/kern_exit.c projects/nand/sys/kern/kern_linker.c projects/nand/sys/kern/kern_lock.c projects/nand/sys/kern/kern_mutex.c projects/nand/sys/kern/kern_pmc.c projects/nand/sys/kern/kern_proc.c projects/nand/sys/kern/kern_racct.c projects/nand/sys/kern/kern_rwlock.c projects/nand/sys/kern/kern_sdt.c projects/nand/sys/kern/kern_sx.c projects/nand/sys/kern/kern_sysctl.c projects/nand/sys/kern/kern_umtx.c projects/nand/sys/kern/sched_ule.c projects/nand/sys/kern/subr_acl_nfs4.c projects/nand/sys/kern/subr_acl_posix1e.c projects/nand/sys/kern/subr_msgbuf.c projects/nand/sys/kern/subr_trap.c projects/nand/sys/kern/subr_uio.c projects/nand/sys/kern/sys_capability.c projects/nand/sys/kern/sys_pipe.c projects/nand/sys/kern/uipc_shm.c projects/nand/sys/kern/uipc_socket.c projects/nand/sys/kern/uipc_syscalls.c projects/nand/sys/libkern/crc32.c projects/nand/sys/mips/adm5120/adm5120_machdep.c projects/nand/sys/mips/adm5120/std.adm5120 projects/nand/sys/mips/alchemy/alchemy_machdep.c projects/nand/sys/mips/alchemy/std.alchemy projects/nand/sys/mips/atheros/apb.c projects/nand/sys/mips/atheros/ar71xx_chip.c projects/nand/sys/mips/atheros/ar71xx_cpudef.h projects/nand/sys/mips/atheros/ar71xx_machdep.c projects/nand/sys/mips/atheros/ar71xxreg.h projects/nand/sys/mips/atheros/ar724x_chip.c projects/nand/sys/mips/atheros/ar91xx_chip.c projects/nand/sys/mips/atheros/files.ar71xx projects/nand/sys/mips/atheros/if_arge.c projects/nand/sys/mips/atheros/std.ar71xx projects/nand/sys/mips/cavium/ciu.c projects/nand/sys/mips/cavium/cvmx_config.h projects/nand/sys/mips/cavium/files.octeon1 projects/nand/sys/mips/cavium/if_octm.c projects/nand/sys/mips/cavium/obio.c projects/nand/sys/mips/cavium/octe/ethernet-rgmii.c projects/nand/sys/mips/cavium/octe/ethernet-rx.c projects/nand/sys/mips/cavium/octe/ethernet-spi.c projects/nand/sys/mips/cavium/octe/ethernet.c projects/nand/sys/mips/cavium/octe/wrapper-cvmx-includes.h projects/nand/sys/mips/cavium/octeon_ebt3000_cf.c projects/nand/sys/mips/cavium/octeon_gpio.c projects/nand/sys/mips/cavium/octeon_machdep.c projects/nand/sys/mips/cavium/octeon_mp.c projects/nand/sys/mips/cavium/octeon_wdog.c projects/nand/sys/mips/cavium/octopci.c projects/nand/sys/mips/cavium/std.octeon1 projects/nand/sys/mips/cavium/uart_dev_oct16550.c projects/nand/sys/mips/cavium/usb/octusb_octeon.c projects/nand/sys/mips/conf/AR71XX_BASE projects/nand/sys/mips/conf/AR91XX_BASE projects/nand/sys/mips/conf/MALTA projects/nand/sys/mips/conf/MALTA64 projects/nand/sys/mips/conf/OCTEON1 projects/nand/sys/mips/conf/PB92 projects/nand/sys/mips/conf/RT305X projects/nand/sys/mips/conf/SWARM projects/nand/sys/mips/conf/SWARM64 projects/nand/sys/mips/conf/SWARM64_SMP projects/nand/sys/mips/conf/SWARM_SMP projects/nand/sys/mips/conf/XLP projects/nand/sys/mips/conf/XLP64 projects/nand/sys/mips/conf/XLPN32 projects/nand/sys/mips/conf/XLR projects/nand/sys/mips/conf/XLR64 projects/nand/sys/mips/conf/XLRN32 projects/nand/sys/mips/conf/std.XLP projects/nand/sys/mips/idt/idt_machdep.c projects/nand/sys/mips/idt/std.idt projects/nand/sys/mips/include/_bus.h projects/nand/sys/mips/include/bus.h projects/nand/sys/mips/include/cache.h projects/nand/sys/mips/include/cpufunc.h projects/nand/sys/mips/include/frame.h projects/nand/sys/mips/include/hwfunc.h projects/nand/sys/mips/include/md_var.h projects/nand/sys/mips/include/param.h projects/nand/sys/mips/include/pmap.h projects/nand/sys/mips/include/pmc_mdep.h projects/nand/sys/mips/include/proc.h projects/nand/sys/mips/include/trap.h projects/nand/sys/mips/include/vm.h projects/nand/sys/mips/malta/malta_machdep.c projects/nand/sys/mips/malta/std.malta projects/nand/sys/mips/mips/bus_space_generic.c projects/nand/sys/mips/mips/cache.c projects/nand/sys/mips/mips/cache_mipsNN.c projects/nand/sys/mips/mips/cpu.c projects/nand/sys/mips/mips/exception.S projects/nand/sys/mips/mips/freebsd32_machdep.c projects/nand/sys/mips/mips/intr_machdep.c projects/nand/sys/mips/mips/machdep.c projects/nand/sys/mips/mips/nexus.c projects/nand/sys/mips/mips/pm_machdep.c projects/nand/sys/mips/mips/pmap.c projects/nand/sys/mips/mips/support.S projects/nand/sys/mips/mips/swtch.S projects/nand/sys/mips/mips/sys_machdep.c projects/nand/sys/mips/mips/tick.c projects/nand/sys/mips/mips/trap.c projects/nand/sys/mips/mips/vm_machdep.c projects/nand/sys/mips/nlm/board.c projects/nand/sys/mips/nlm/board.h projects/nand/sys/mips/nlm/cms.c projects/nand/sys/mips/nlm/files.xlp projects/nand/sys/mips/nlm/hal/iomap.h projects/nand/sys/mips/nlm/hal/nlm_hal.c projects/nand/sys/mips/nlm/hal/pcibus.h projects/nand/sys/mips/nlm/hal/pic.h projects/nand/sys/mips/nlm/hal/sys.h projects/nand/sys/mips/nlm/intr_machdep.c projects/nand/sys/mips/nlm/mpreset.S projects/nand/sys/mips/nlm/msgring.h projects/nand/sys/mips/nlm/tick.c projects/nand/sys/mips/nlm/uart_cpu_xlp.c projects/nand/sys/mips/nlm/xlp.h projects/nand/sys/mips/nlm/xlp_machdep.c projects/nand/sys/mips/nlm/xlp_pci.c projects/nand/sys/mips/rmi/tick.c projects/nand/sys/mips/rmi/xlr_machdep.c projects/nand/sys/mips/rt305x/rt305x_machdep.c projects/nand/sys/mips/rt305x/std.rt305x projects/nand/sys/mips/sentry5/s5_machdep.c projects/nand/sys/mips/sentry5/std.sentry5 projects/nand/sys/mips/sibyte/sb_machdep.c projects/nand/sys/modules/Makefile projects/nand/sys/modules/cyclic/Makefile projects/nand/sys/modules/dtrace/Makefile projects/nand/sys/modules/geom/geom_part/Makefile projects/nand/sys/modules/hwpmc/Makefile projects/nand/sys/modules/mfi/Makefile projects/nand/sys/modules/mps/Makefile projects/nand/sys/modules/netgraph/netflow/Makefile projects/nand/sys/modules/ralfw/Makefile projects/nand/sys/net/if_var.h projects/nand/sys/net/netmap_user.h projects/nand/sys/net/route.c projects/nand/sys/net/route.h projects/nand/sys/net80211/ieee80211.c projects/nand/sys/net80211/ieee80211_alq.c projects/nand/sys/net80211/ieee80211_freebsd.c projects/nand/sys/net80211/ieee80211_ht.c projects/nand/sys/net80211/ieee80211_ht.h projects/nand/sys/net80211/ieee80211_node.c projects/nand/sys/net80211/ieee80211_node.h projects/nand/sys/net80211/ieee80211_proto.c projects/nand/sys/net80211/ieee80211_regdomain.c projects/nand/sys/net80211/ieee80211_sta.c projects/nand/sys/net80211/ieee80211_var.h projects/nand/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c projects/nand/sys/netgraph/netflow/netflow.c projects/nand/sys/netgraph/netflow/ng_netflow.c projects/nand/sys/netgraph/netflow/ng_netflow.h projects/nand/sys/netgraph/ng_vlan.c projects/nand/sys/netgraph/ng_vlan.h projects/nand/sys/netinet/in_pcb.h projects/nand/sys/netinet/ip_fw.h projects/nand/sys/netinet/ipfw/ip_fw2.c projects/nand/sys/netinet/ipfw/ip_fw_private.h projects/nand/sys/netinet/ipfw/ip_fw_sockopt.c projects/nand/sys/netinet/ipfw/ip_fw_table.c projects/nand/sys/netinet/sctp.h projects/nand/sys/netinet/sctp_bsd_addr.c projects/nand/sys/netinet/sctp_constants.h projects/nand/sys/netinet/sctp_header.h projects/nand/sys/netinet/sctp_input.c projects/nand/sys/netinet/sctp_output.c projects/nand/sys/netinet/sctp_output.h projects/nand/sys/netinet/sctp_pcb.h projects/nand/sys/netinet/sctp_peeloff.c projects/nand/sys/netinet/sctp_structs.h projects/nand/sys/netinet/sctp_uio.h projects/nand/sys/netinet/sctp_usrreq.c projects/nand/sys/netinet/sctputil.c projects/nand/sys/netinet/sctputil.h projects/nand/sys/netinet/tcp_subr.c projects/nand/sys/netinet/udp_usrreq.c projects/nand/sys/netinet/udp_var.h projects/nand/sys/netinet6/in6_pcb.c projects/nand/sys/netinet6/sctp6_usrreq.c projects/nand/sys/nfsclient/nfs_vnops.c projects/nand/sys/ofed/drivers/infiniband/core/addr.c projects/nand/sys/ofed/drivers/infiniband/core/cma.c projects/nand/sys/ofed/drivers/infiniband/core/fmr_pool.c projects/nand/sys/ofed/drivers/infiniband/ulp/sdp/sdp_main.c projects/nand/sys/ofed/include/linux/io.h projects/nand/sys/ofed/include/linux/page.h projects/nand/sys/pc98/conf/GENERIC projects/nand/sys/pc98/include/psl.h projects/nand/sys/pc98/include/reg.h projects/nand/sys/pc98/include/specialreg.h projects/nand/sys/pc98/include/sysarch.h projects/nand/sys/pc98/pc98/machdep.c projects/nand/sys/powerpc/aim/mmu_oea.c projects/nand/sys/powerpc/aim/mmu_oea64.c projects/nand/sys/powerpc/aim/moea64_native.c projects/nand/sys/powerpc/conf/GENERIC projects/nand/sys/powerpc/conf/GENERIC64 projects/nand/sys/powerpc/conf/MPC85XX projects/nand/sys/powerpc/include/pmc_mdep.h projects/nand/sys/powerpc/include/trap.h projects/nand/sys/powerpc/include/trap_aim.h projects/nand/sys/powerpc/include/trap_booke.h projects/nand/sys/powerpc/include/vm.h projects/nand/sys/powerpc/ofw/ofw_pcib_pci.c projects/nand/sys/powerpc/ofw/ofw_pcibus.c projects/nand/sys/powerpc/powermac/uninorth.c projects/nand/sys/sparc64/conf/GENERIC projects/nand/sys/sparc64/pci/fire.c projects/nand/sys/sparc64/pci/firereg.h projects/nand/sys/sparc64/pci/ofw_pcibus.c projects/nand/sys/sparc64/sparc64/trap.c projects/nand/sys/sys/conf.h projects/nand/sys/sys/cpuset.h projects/nand/sys/sys/elf_common.h projects/nand/sys/sys/event.h projects/nand/sys/sys/libkern.h projects/nand/sys/sys/mman.h projects/nand/sys/sys/msgbuf.h projects/nand/sys/sys/param.h projects/nand/sys/sys/pmc.h projects/nand/sys/sys/pmckern.h projects/nand/sys/sys/pmclog.h projects/nand/sys/sys/proc.h projects/nand/sys/sys/sdt.h projects/nand/sys/sys/signal.h projects/nand/sys/sys/sysctl.h projects/nand/sys/sys/systm.h projects/nand/sys/sys/unistd.h projects/nand/sys/sys/vnode.h projects/nand/sys/ufs/ffs/ffs_balloc.c projects/nand/sys/ufs/ffs/ffs_extern.h projects/nand/sys/ufs/ffs/ffs_inode.c projects/nand/sys/ufs/ffs/ffs_rawread.c projects/nand/sys/ufs/ffs/ffs_snapshot.c projects/nand/sys/ufs/ffs/ffs_softdep.c projects/nand/sys/ufs/ffs/ffs_vfsops.c projects/nand/sys/ufs/ffs/ffs_vnops.c projects/nand/sys/ufs/ufs/ufs_quota.c projects/nand/sys/ufs/ufs/ufs_vnops.c projects/nand/sys/vm/vm_contig.c projects/nand/sys/vm/vm_fault.c projects/nand/sys/vm/vm_map.c projects/nand/sys/vm/vm_mmap.c projects/nand/sys/vm/vm_object.c projects/nand/sys/vm/vm_object.h projects/nand/sys/vm/vm_pageout.c projects/nand/sys/vm/vm_pageout.h projects/nand/sys/vm/vnode_pager.c projects/nand/sys/x86/acpica/madt.c projects/nand/sys/x86/include/endian.h projects/nand/sys/x86/include/mca.h projects/nand/sys/x86/isa/atpic.c projects/nand/sys/x86/isa/icu.h projects/nand/sys/x86/isa/isa_dma.c projects/nand/sys/x86/pci/pci_bus.c projects/nand/sys/x86/x86/busdma_machdep.c projects/nand/sys/x86/x86/intr_machdep.c projects/nand/sys/x86/x86/mca.c projects/nand/sys/x86/x86/mptable_pci.c projects/nand/tools/build/mk/OptionalObsoleteFiles.inc projects/nand/tools/make_libdeps.sh projects/nand/tools/tools/ath/ath_ee_v14_print/ath_ee_v14_print.c projects/nand/tools/tools/ath/athrd/athrd.1 projects/nand/tools/tools/bus_autoconf/bus_usb.c projects/nand/tools/tools/ether_reflect/ether_reflect.1 projects/nand/tools/tools/vimage/vimage.8 projects/nand/tools/tools/wtap/vis_map/Makefile projects/nand/tools/tools/wtap/wtap/Makefile projects/nand/usr.bin/Makefile projects/nand/usr.bin/bc/bc.library projects/nand/usr.bin/bc/bc.y projects/nand/usr.bin/bsdiff/bsdiff/bsdiff.1 projects/nand/usr.bin/calendar/calendar.1 projects/nand/usr.bin/comm/comm.1 projects/nand/usr.bin/compile_et/Makefile projects/nand/usr.bin/csup/cpasswd.1 projects/nand/usr.bin/csup/csup.1 projects/nand/usr.bin/dc/bcode.c projects/nand/usr.bin/find/find.1 projects/nand/usr.bin/fstat/fstat.c projects/nand/usr.bin/fstat/fuser.1 projects/nand/usr.bin/hexdump/hexdump.1 projects/nand/usr.bin/indent/indent.1 projects/nand/usr.bin/ipcrm/ipcrm.1 projects/nand/usr.bin/jot/jot.1 projects/nand/usr.bin/killall/killall.1 projects/nand/usr.bin/locale/locale.1 projects/nand/usr.bin/lockf/lockf.1 projects/nand/usr.bin/man/man.conf.5 projects/nand/usr.bin/ministat/ministat.1 projects/nand/usr.bin/mkulzma/mkulzma.8 projects/nand/usr.bin/printf/printf.1 projects/nand/usr.bin/procstat/procstat.1 projects/nand/usr.bin/procstat/procstat_bin.c projects/nand/usr.bin/procstat/procstat_files.c projects/nand/usr.bin/rctl/rctl.8 projects/nand/usr.bin/sed/sed.1 projects/nand/usr.bin/setchannel/setchannel.1 projects/nand/usr.bin/tftp/tftp.1 projects/nand/usr.bin/top/top.local.1 projects/nand/usr.bin/touch/touch.1 projects/nand/usr.bin/tr/tr.1 projects/nand/usr.bin/unifdef/unifdef.1 projects/nand/usr.bin/units/units.1 projects/nand/usr.bin/unzip/unzip.1 projects/nand/usr.bin/vgrind/vgrindefs.5 projects/nand/usr.bin/vmstat/vmstat.c projects/nand/usr.bin/wall/wall.1 projects/nand/usr.bin/wall/wall.c projects/nand/usr.bin/xargs/xargs.1 projects/nand/usr.bin/xargs/xargs.c projects/nand/usr.bin/xlint/Makefile.inc projects/nand/usr.sbin/Makefile.arm projects/nand/usr.sbin/Makefile.mips projects/nand/usr.sbin/ac/ac.8 projects/nand/usr.sbin/acpi/iasl/Makefile projects/nand/usr.sbin/adduser/adduser.conf.5 projects/nand/usr.sbin/apmd/apmd.8 projects/nand/usr.sbin/arp/arp.4 projects/nand/usr.sbin/arp/arp.c projects/nand/usr.sbin/bluetooth/ath3kfw/ath3kfw.8 projects/nand/usr.sbin/boot0cfg/boot0cfg.8 projects/nand/usr.sbin/bootparamd/bootparamd/bootparamd.8 projects/nand/usr.sbin/bsdinstall/bsdinstall.8 projects/nand/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 projects/nand/usr.sbin/bsnmpd/modules/snmp_wlan/snmp_wlan.3 projects/nand/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.1 projects/nand/usr.sbin/cdcontrol/cdcontrol.1 projects/nand/usr.sbin/config/config.8 projects/nand/usr.sbin/crunch/crunchide/Makefile projects/nand/usr.sbin/ctladm/ctladm.8 projects/nand/usr.sbin/dconschat/dconschat.c projects/nand/usr.sbin/edquota/edquota.8 projects/nand/usr.sbin/faithd/faithd.8 projects/nand/usr.sbin/fdwrite/fdwrite.1 projects/nand/usr.sbin/freebsd-update/freebsd-update.8 projects/nand/usr.sbin/fwcontrol/fwcontrol.8 projects/nand/usr.sbin/gpioctl/gpioctl.8 projects/nand/usr.sbin/i2c/i2c.8 projects/nand/usr.sbin/ifmcstat/ifmcstat.8 projects/nand/usr.sbin/lpr/lpr/printcap.5 projects/nand/usr.sbin/makefs/cd9660/cd9660_eltorito.c projects/nand/usr.sbin/mfiutil/mfi_config.c projects/nand/usr.sbin/mfiutil/mfi_drive.c projects/nand/usr.sbin/mfiutil/mfiutil.8 projects/nand/usr.sbin/mountd/exports.5 projects/nand/usr.sbin/moused/moused.c projects/nand/usr.sbin/mptutil/mptutil.8 projects/nand/usr.sbin/mtest/mtest.8 projects/nand/usr.sbin/mtree/mtree.5 projects/nand/usr.sbin/newsyslog/newsyslog.c projects/nand/usr.sbin/newsyslog/newsyslog.conf.5 projects/nand/usr.sbin/nfsd/nfsv4.4 projects/nand/usr.sbin/ntp/doc/ntp-keygen.8 projects/nand/usr.sbin/ntp/doc/ntpdate.8 projects/nand/usr.sbin/pc-sysinstall/backend-partmanager/create-part.sh projects/nand/usr.sbin/pc-sysinstall/backend-query/disk-list.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-cleanup.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-disk.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-networking.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-newfs.sh projects/nand/usr.sbin/pc-sysinstall/backend/functions-unmount.sh projects/nand/usr.sbin/pc-sysinstall/backend/startautoinstall.sh projects/nand/usr.sbin/pciconf/pciconf.8 projects/nand/usr.sbin/pkg_install/updating/pkg_updating.1 projects/nand/usr.sbin/pmcstat/pmcpl_calltree.c projects/nand/usr.sbin/pmcstat/pmcstat.8 projects/nand/usr.sbin/pmcstat/pmcstat_log.c projects/nand/usr.sbin/rtadvd/rtadvd.8 projects/nand/usr.sbin/rtadvd/rtadvd.conf.5 projects/nand/usr.sbin/setfib/setfib.1 projects/nand/usr.sbin/syslogd/syslogd.8 projects/nand/usr.sbin/tcpdump/tcpdump/tcpdump.1 projects/nand/usr.sbin/timed/timed/timed.8 projects/nand/usr.sbin/usbdump/usbdump.c projects/nand/usr.sbin/utx/utx.8 projects/nand/usr.sbin/watch/watch.c projects/nand/usr.sbin/wlandebug/wlandebug.8 projects/nand/usr.sbin/wlconfig/wlconfig.8 projects/nand/usr.sbin/ypserv/ypserv.8 Directory Properties: projects/nand/ (props changed) projects/nand/MAINTAINERS (props changed) projects/nand/cddl/contrib/opensolaris/ (props changed) projects/nand/contrib/bind9/ (props changed) projects/nand/contrib/binutils/ (props changed) projects/nand/contrib/bzip2/ (props changed) projects/nand/contrib/com_err/ (props changed) projects/nand/contrib/compiler-rt/ (props changed) projects/nand/contrib/dialog/ (props changed) projects/nand/contrib/ee/ (props changed) projects/nand/contrib/expat/ (props changed) projects/nand/contrib/file/ (props changed) projects/nand/contrib/gcc/ (props changed) projects/nand/contrib/gdb/ (props changed) projects/nand/contrib/gdtoa/ (props changed) projects/nand/contrib/gnu-sort/ (props changed) projects/nand/contrib/groff/ (props changed) projects/nand/contrib/less/ (props changed) projects/nand/contrib/libarchive/ (props changed) projects/nand/contrib/libarchive/cpio/ (props changed) projects/nand/contrib/libarchive/libarchive/ (props changed) projects/nand/contrib/libarchive/libarchive_fe/ (props changed) projects/nand/contrib/libarchive/tar/ (props changed) projects/nand/contrib/libc++/ (props changed) projects/nand/contrib/libcxxrt/ (props changed) projects/nand/contrib/libpcap/ (props changed) projects/nand/contrib/libstdc++/ (props changed) projects/nand/contrib/llvm/ (props changed) projects/nand/contrib/llvm/tools/clang/ (props changed) projects/nand/contrib/ncurses/ (props changed) projects/nand/contrib/netcat/ (props changed) projects/nand/contrib/ntp/ (props changed) projects/nand/contrib/one-true-awk/ (props changed) projects/nand/contrib/openbsm/ (props changed) projects/nand/contrib/openpam/ (props changed) projects/nand/contrib/openresolv/ (props changed) projects/nand/contrib/pf/ (props changed) projects/nand/contrib/sendmail/ (props changed) projects/nand/contrib/tcpdump/ (props changed) projects/nand/contrib/tcsh/ (props changed) projects/nand/contrib/tnftp/ (props changed) projects/nand/contrib/top/ (props changed) projects/nand/contrib/top/install-sh (props changed) projects/nand/contrib/tzcode/stdtime/ (props changed) projects/nand/contrib/tzcode/zic/ (props changed) projects/nand/contrib/tzdata/ (props changed) projects/nand/contrib/wpa/ (props changed) projects/nand/contrib/xz/ (props changed) projects/nand/crypto/heimdal/ (props changed) projects/nand/crypto/heimdal/ChangeLog.1998 (props changed) projects/nand/crypto/heimdal/ChangeLog.1999 (props changed) projects/nand/crypto/heimdal/ChangeLog.2000 (props changed) projects/nand/crypto/heimdal/ChangeLog.2001 (props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/ftp_var.h (props changed) projects/nand/crypto/heimdal/appl/ftp/ftp/pathnames.h (props changed) projects/nand/crypto/heimdal/appl/ftp/ftpd/pathnames.h (props changed) projects/nand/crypto/heimdal/appl/telnet/README.ORIG (props changed) projects/nand/crypto/heimdal/appl/telnet/arpa/telnet.h (props changed) projects/nand/crypto/heimdal/appl/telnet/libtelnet/misc.h (props changed) projects/nand/crypto/heimdal/appl/telnet/telnet.state (props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/defines.h (props changed) projects/nand/crypto/heimdal/appl/telnet/telnet/types.h (props changed) projects/nand/crypto/heimdal/lib/hx509/ref/pkcs11.h (props changed) projects/nand/crypto/heimdal/lib/kadm5/kadm5-protos.h (props changed) projects/nand/crypto/openssh/ (props changed) projects/nand/crypto/openssl/ (props changed) projects/nand/gnu/lib/ (props changed) projects/nand/gnu/usr.bin/binutils/ (props changed) projects/nand/gnu/usr.bin/cc/cc_tools/ (props changed) projects/nand/gnu/usr.bin/gdb/ (props changed) projects/nand/lib/libc/ (props changed) projects/nand/lib/libc/stdtime/ (props changed) projects/nand/lib/libutil/ (props changed) projects/nand/lib/libz/ (props changed) projects/nand/sbin/ (props changed) projects/nand/sbin/ipfw/ (props changed) projects/nand/share/man/man4/ (props changed) projects/nand/share/mk/bsd.arch.inc.mk (props changed) projects/nand/share/zoneinfo/ (props changed) projects/nand/sys/ (props changed) projects/nand/sys/amd64/include/xen/ (props changed) projects/nand/sys/boot/ (props changed) projects/nand/sys/boot/i386/efi/ (props changed) projects/nand/sys/boot/ia64/efi/ (props changed) projects/nand/sys/boot/ia64/ski/ (props changed) projects/nand/sys/boot/powerpc/boot1.chrp/ (props changed) projects/nand/sys/boot/powerpc/ofw/ (props changed) projects/nand/sys/cddl/contrib/opensolaris/ (props changed) projects/nand/sys/conf/ (props changed) projects/nand/sys/contrib/dev/acpica/ (props changed) projects/nand/sys/contrib/dev/acpica/common/ (props changed) projects/nand/sys/contrib/dev/acpica/compiler/ (props changed) projects/nand/sys/contrib/dev/acpica/components/debugger/ (props changed) projects/nand/sys/contrib/dev/acpica/components/disassembler/ (props changed) projects/nand/sys/contrib/dev/acpica/components/dispatcher/ (props changed) projects/nand/sys/contrib/dev/acpica/components/events/ (props changed) projects/nand/sys/contrib/dev/acpica/components/executer/ (props changed) projects/nand/sys/contrib/dev/acpica/components/hardware/ (props changed) projects/nand/sys/contrib/dev/acpica/components/namespace/ (props changed) projects/nand/sys/contrib/dev/acpica/components/parser/ (props changed) projects/nand/sys/contrib/dev/acpica/components/resources/ (props changed) projects/nand/sys/contrib/dev/acpica/components/tables/ (props changed) projects/nand/sys/contrib/dev/acpica/components/utilities/ (props changed) projects/nand/sys/contrib/dev/acpica/include/ (props changed) projects/nand/sys/contrib/dev/acpica/os_specific/ (props changed) projects/nand/sys/contrib/octeon-sdk/ (props changed) projects/nand/sys/contrib/pf/ (props changed) projects/nand/sys/contrib/x86emu/ (props changed) projects/nand/sys/i386/conf/XENHVM (props changed) projects/nand/usr.bin/calendar/ (props changed) projects/nand/usr.bin/csup/ (props changed) projects/nand/usr.bin/procstat/ (props changed) projects/nand/usr.sbin/ndiscvt/ (props changed) projects/nand/usr.sbin/rtadvctl/ (props changed) projects/nand/usr.sbin/rtadvd/ (props changed) projects/nand/usr.sbin/rtsold/ (props changed) projects/nand/usr.sbin/zic/ (props changed) Modified: projects/nand/Makefile ============================================================================== --- projects/nand/Makefile Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/Makefile Wed Apr 4 03:55:28 2012 (r233858) @@ -18,6 +18,7 @@ # reinstallkernel.debug # kernel - buildkernel + installkernel. # kernel-toolchain - Builds the subset of world necessary to build a kernel +# kernel-toolchains - Build kernel-toolchain for all universe targets. # doxygen - Build API documentation of the kernel, needs doxygen. # update - Convenient way to update your source tree(s). # check-old - List obsolete directories/files/libraries. @@ -131,20 +132,19 @@ _MAKE= PATH=${PATH} ${BINMAKE} -f Makefi # Guess machine architecture from machine type, and vice versa. .if !defined(TARGET_ARCH) && defined(TARGET) -_TARGET_ARCH= ${TARGET:S/pc98/i386/:S/mips/mipsel/} +_TARGET_ARCH= ${TARGET:S/pc98/i386/} .elif !defined(TARGET) && defined(TARGET_ARCH) && \ ${TARGET_ARCH} != ${MACHINE_ARCH} -_TARGET= ${TARGET_ARCH:C/mips.*e[lb]/mips/:C/armeb/arm/} +_TARGET= ${TARGET_ARCH:C/mips(n32|64)?(el)?/mips/:C/armeb/arm/} .endif -# Legacy names, for a transition period mips:mips -> mipsel:mips +# Legacy names, for another transition period mips:mips(n32|64)?eb -> mips:mips\1 .if defined(TARGET) && defined(TARGET_ARCH) && \ - ${TARGET_ARCH} == "mips" && ${TARGET} == "mips" -.warning "TARGET_ARCH of mips is deprecated in favor of mipsel or mipseb" -.if defined(TARGET_BIG_ENDIAN) -_TARGET_ARCH=mipseb -.else -_TARGET_ARCH=mipsel + ${TARGET} == "mips" && ${TARGET_ARCH:Mmips*eb} +_TARGET_ARCH= ${TARGET_ARCH:C/eb$//} +.warning "TARGET_ARCH of ${TARGET_ARCH} is deprecated in favor of ${_TARGET_ARCH}" .endif +.if defined(TARGET) && ${TARGET} == "mips" && defined(TARGET_BIG_ENDIAN) +.warning "TARGET_BIG_ENDIAN is no longer necessary for MIPS. Big-endian is not the default." .endif # arm with TARGET_BIG_ENDIAN -> armeb .if defined(TARGET_ARCH) && ${TARGET_ARCH} == "arm" && defined(TARGET_BIG_ENDIAN) @@ -317,6 +317,9 @@ tinderbox: toolchains: @cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=toolchain universe +kernel-toolchains: + @cd ${.CURDIR} && ${MAKE} UNIVERSE_TARGET=kernel-toolchain universe + # # universe # @@ -327,7 +330,7 @@ toolchains: .if make(universe) || make(universe_kernels) || make(tinderbox) || make(targets) TARGETS?=amd64 arm i386 ia64 mips pc98 powerpc sparc64 TARGET_ARCHES_arm?= arm armeb -TARGET_ARCHES_mips?= mipsel mipseb mips64el mips64eb mipsn32eb +TARGET_ARCHES_mips?= mipsel mips mips64el mips64 mipsn32 TARGET_ARCHES_powerpc?= powerpc powerpc64 TARGET_ARCHES_pc98?= i386 .for target in ${TARGETS} Modified: projects/nand/Makefile.inc1 ============================================================================== --- projects/nand/Makefile.inc1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/Makefile.inc1 Wed Apr 4 03:55:28 2012 (r233858) @@ -136,7 +136,7 @@ VERSION!= uname -srp VERSION+= ${OSRELDATE} .endif -KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mipsel/mips mipseb/mips mips64el/mips mips64eb/mips mipsn32el/mips mipsn32eb/mips powerpc powerpc64/powerpc sparc64 +KNOWN_ARCHES?= amd64 arm armeb/arm i386 i386/pc98 ia64 mips mipsel/mips mips64el/mips mips64/mips mipsn32el/mips mipsn32/mips powerpc powerpc64/powerpc sparc64 .if ${TARGET} == ${TARGET_ARCH} _t= ${TARGET} .else @@ -468,13 +468,6 @@ build32: -p ${LIB32TMP}/usr/include >/dev/null mkdir -p ${WORLDTMP} ln -sf ${.CURDIR}/sys ${WORLDTMP} -.if ${MK_KERBEROS} != "no" -.for _t in obj depend all - cd ${.CURDIR}/kerberos5/tools; \ - MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \ - DIRPRFX=kerberos5/tools/ ${_t} -.endfor -.endif .for _t in obj includes cd ${.CURDIR}/include; ${LIB32WMAKE} DIRPRFX=include/ ${_t} cd ${.CURDIR}/lib; ${LIB32WMAKE} DIRPRFX=lib/ ${_t} @@ -1054,9 +1047,11 @@ _clang_tblgen= \ usr.bin/clang/clang-tblgen .endif +# dtrace tools are required for older bootstrap env and cross-build .if ${MK_CDDL} != "no" && \ - ${BOOTSTRAPPING} < 800038 && \ - !(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999) + ((${BOOTSTRAPPING} < 800038 && \ + !(${BOOTSTRAPPING} >= 700112 && ${BOOTSTRAPPING} < 799999)) \ + || (${MACHINE} != ${TARGET} || ${MACHINE_ARCH} != ${TARGET_ARCH})) _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif @@ -1065,12 +1060,22 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ _dtc= gnu/usr.bin/dtc .endif +.if ${MK_KERBEROS} != "no" +_kerberos5_bootstrap_tools= \ + kerberos5/tools/make-roken \ + kerberos5/lib/libroken \ + kerberos5/lib/libvers \ + kerberos5/tools/asn1_compile \ + kerberos5/tools/slc +.endif + # Please document (add comment) why something is in 'bootstrap-tools'. # Try to bound the building of the bootstrap-tool to just the # FreeBSD versions that need the tool built at this stage of the build. bootstrap-tools: .for _tool in \ ${_clang_tblgen} \ + ${_kerberos5_bootstrap_tools} \ ${_dtrace_tools} \ ${_strfile} \ ${_gperf} \ @@ -1112,10 +1117,6 @@ _share= share/syscons/scrnmaps _gcc_tools= gnu/usr.bin/cc/cc_tools .endif -.if ${MK_KERBEROS} != "no" -_kerberos5_tools= kerberos5/tools -.endif - .if ${MK_RESCUE} != "no" _rescue= rescue/rescue .endif @@ -1140,8 +1141,7 @@ build-tools: ${MAKE} DIRPRFX=${_tool}/ build-tools .endfor .for _tool in \ - ${_gcc_tools} \ - ${_kerberos5_tools} + ${_gcc_tools} ${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \ cd ${.CURDIR}/${_tool}; \ ${MAKE} DIRPRFX=${_tool}/ obj; \ @@ -1243,12 +1243,20 @@ _startup_libs+= lib/libcxxrt .endif gnu/lib/libgcc__L: lib/libc__L +.if ${MK_LIBCPLUSPLUS} != "no" +lib/libcxxrt__L: gnu/lib/libgcc__L +.endif -_prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libhdb} \ +_prebuild_libs= ${_kerberos5_lib_libasn1} \ + ${_kerberos5_lib_libhdb} \ + ${_kerberos5_lib_libheimbase} \ ${_kerberos5_lib_libheimntlm} \ + ${_kerberos5_lib_libheimsqlite} \ + ${_kerberos5_lib_libheimipcc} \ ${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \ ${_kerberos5_lib_libroken} \ - lib/libbz2 lib/libcom_err lib/libcrypt \ + ${_kerberos5_lib_libwind} \ + lib/libbz2 ${_libcom_err} lib/libcrypt \ lib/libexpat \ ${_lib_libgssapi} ${_lib_libipx} \ lib/libkiconv lib/libkvm lib/liblzma lib/libmd \ @@ -1298,14 +1306,21 @@ _secure_lib= secure/lib .if ${MK_KERBEROS} != "no" kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ - kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L -kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L + kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \ + kerberos5/lib/libwind__L kerberos5/lib/libheimsqlite__L +kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L \ + kerberos5/lib/libroken__L lib/libcom_err__L kerberos5/lib/libhx509__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ - secure/lib/libcrypto__L kerberos5/lib/libroken__L + secure/lib/libcrypto__L kerberos5/lib/libroken__L kerberos5/lib/libwind__L kerberos5/lib/libkrb5__L: kerberos5/lib/libasn1__L lib/libcom_err__L \ lib/libcrypt__L secure/lib/libcrypto__L kerberos5/lib/libhx509__L \ - kerberos5/lib/libroken__L + kerberos5/lib/libroken__L kerberos5/lib/libwind__L \ + kerberos5/lib/libheimbase__L kerberos5/lib/libheimipcc__L kerberos5/lib/libroken__L: lib/libcrypt__L +kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L +kerberos5/lib/libheimbase__L: lib/libthr__L +kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L kerberos5/lib/libheimbase__L lib/libthr__L +kerberos5/lib/libheimsqlite__L: lib/libthr__L .endif .if ${MK_GSSAPI} != "no" @@ -1320,10 +1335,15 @@ _lib_libipx= lib/libipx _kerberos5_lib= kerberos5/lib _kerberos5_lib_libasn1= kerberos5/lib/libasn1 _kerberos5_lib_libhdb= kerberos5/lib/libhdb +_kerberos5_lib_libheimbase= kerberos5/lib/libheimbase _kerberos5_lib_libkrb5= kerberos5/lib/libkrb5 _kerberos5_lib_libhx509= kerberos5/lib/libhx509 _kerberos5_lib_libroken= kerberos5/lib/libroken _kerberos5_lib_libheimntlm= kerberos5/lib/libheimntlm +_kerberos5_lib_libheimsqlite= kerberos5/lib/libheimsqlite +_kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc +_kerberos5_lib_libwind= kerberos5/lib/libwind +_libcom_err= lib/libcom_err .endif .if ${MK_NIS} != "no" Modified: projects/nand/ObsoleteFiles.inc ============================================================================== --- projects/nand/ObsoleteFiles.inc Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/ObsoleteFiles.inc Wed Apr 4 03:55:28 2012 (r233858) @@ -38,6 +38,50 @@ # xargs -n1 | sort | uniq -d; # done +# 20120322: Update heimdal to 1.5.1. +OLD_FILES+=usr/include/krb5-v4compat.h \ + usr/include/krb_err.h \ + usr/include/hdb-private.h \ + usr/share/man/man3/krb5_addresses.3.gz \ + usr/share/man/man3/krb5_cc_cursor.3.gz \ + usr/share/man/man3/krb5_cc_ops.3.gz \ + usr/share/man/man3/krb5_config.3.gz \ + usr/share/man/man3/krb5_config_get_int_default.3.gz \ + usr/share/man/man3/krb5_context.3.gz \ + usr/share/man/man3/krb5_data.3.gz \ + usr/share/man/man3/krb5_err.3.gz \ + usr/share/man/man3/krb5_errx.3.gz \ + usr/share/man/man3/krb5_keyblock.3.gz \ + usr/share/man/man3/krb5_keytab_entry.3.gz \ + usr/share/man/man3/krb5_kt_cursor.3.gz \ + usr/share/man/man3/krb5_kt_ops.3.gz \ + usr/share/man/man3/krb5_set_warn_dest.3.gz \ + usr/share/man/man3/krb5_verr.3.gz \ + usr/share/man/man3/krb5_verrx.3.gz \ + usr/share/man/man3/krb5_vwarnx.3.gz \ + usr/share/man/man3/krb5_warn.3.gz \ + usr/share/man/man3/krb5_warnx.3.gz +OLD_LIBS+=usr/lib/libasn1.so.10 \ + usr/lib/libhdb.so.10 \ + usr/lib/libheimntlm.so.10 \ + usr/lib/libhx509.so.10 \ + usr/lib/libkadm5clnt.so.10 \ + usr/lib/libkadm5srv.so.10 \ + usr/lib/libkafs5.so.10 \ + usr/lib/libkrb5.so.10 \ + usr/lib/libroken.so.10 \ + usr/lib32/libasn1.so.10 \ + usr/lib32/libhdb.so.10 \ + usr/lib32/libheimntlm.so.10 \ + usr/lib32/libhx509.so.10 \ + usr/lib32/libkadm5clnt.so.10 \ + usr/lib32/libkadm5srv.so.10 \ + usr/lib32/libkafs5.so.10 \ + usr/lib32/libkrb5.so.10 \ + usr/lib32/libroken.so.10 +# 20120309: Remove fifofs header files. +OLD_FILES+=usr/include/fs/fifofs/fifo.h +OLD_DIRS+=usr/include/fs/fifofs # 20120225: libarchive 3.0.3 OLD_FILES+=usr/share/man/man3/archive_read_data_into_buffer.3.gz \ usr/share/man/man3/archive_read_support_compression_all.3.gz \ @@ -56,9 +100,7 @@ OLD_FILES+=usr/share/man/man3/archive_re usr/share/man/man3/archive_write_set_compression_none.3.gz \ usr/share/man/man3/archive_write_set_compression_program.3.gz OLD_LIBS+=usr/lib/libarchive.so.5 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/libarchive.so.5 -.endif # 20120113: removal of wtmpcvt(1) OLD_FILES+=usr/bin/wtmpcvt OLD_FILES+=usr/share/man/man1/wtmpcvt.1.gz @@ -71,12 +113,10 @@ OLD_FILES+=usr/lib/libodialog.a OLD_FILES+=usr/lib/libodialog.so OLD_LIBS+=usr/lib/libodialog.so.7 OLD_FILES+=usr/lib/libodialog_p.a -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libodialog.a OLD_FILES+=usr/lib32/libodialog.so OLD_LIBS+=usr/lib32/libodialog.so.7 OLD_FILES+=usr/lib32/libodialog_p.a -.endif # 20110930: sysinstall removed OLD_FILES+=usr/sbin/sysinstall OLD_FILES+=usr/share/man/man8/sysinstall.8.gz @@ -84,12 +124,10 @@ OLD_FILES+=usr/lib/libftpio.a OLD_FILES+=usr/lib/libftpio.so OLD_LIBS+=usr/lib/libftpio.so.8 OLD_FILES+=usr/lib/libftpio_p.a -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libftpio.a OLD_FILES+=usr/lib32/libftpio.so OLD_LIBS+=usr/lib32/libftpio.so.8 OLD_FILES+=usr/lib32/libftpio_p.a -.endif OLD_FILES+=usr/include/ftpio.h OLD_FILES+=usr/share/man/man3/ftpio.3.gz # 20110915: rename congestion control manpages @@ -108,7 +146,6 @@ OLD_LIBS+=usr/lib/libdwarf.so.2 OLD_LIBS+=usr/lib/libopie.so.6 OLD_LIBS+=usr/lib/librtld_db.so.1 OLD_LIBS+=usr/lib/libtacplus.so.4 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/libcam.so.5 OLD_LIBS+=usr/lib32/libpcap.so.7 OLD_LIBS+=usr/lib32/libufs.so.5 @@ -117,7 +154,6 @@ OLD_LIBS+=usr/lib32/libdwarf.so.2 OLD_LIBS+=usr/lib32/libopie.so.6 OLD_LIBS+=usr/lib32/librtld_db.so.1 OLD_LIBS+=usr/lib32/libtacplus.so.4 -.endif # 20110817: no more acd.4, ad.4, afd.4 and ast.4 OLD_FILES+=usr/share/man/man4/acd.4.gz OLD_FILES+=usr/share/man/man4/ad.4.gz @@ -157,17 +193,13 @@ OLD_FILES+=usr/lib/libpkg.a OLD_FILES+=usr/lib/libpkg.so OLD_LIBS+=usr/lib/libpkg.so.0 OLD_FILES+=usr/lib/libpkg_p.a -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libpkg.a OLD_FILES+=usr/lib32/libpkg.so OLD_LIBS+=usr/lib32/libpkg.so.0 OLD_FILES+=usr/lib32/libpkg_p.a -.endif # 20110517: libsbuf version bump OLD_LIBS+=lib/libsbuf.so.5 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/libsbuf.so.5 -.endif # 20110502: new clang import which bumps version from 2.9 to 3.0 OLD_FILES+=usr/include/clang/2.9/emmintrin.h OLD_FILES+=usr/include/clang/2.9/mm_malloc.h @@ -196,12 +228,10 @@ OLD_FILES+=usr/lib/libobjc_p.a OLD_FILES+=usr/libexec/cc1obj OLD_LIBS+=usr/lib/libobjc.so.4 OLD_DIRS+=usr/include/objc -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libobjc.a OLD_FILES+=usr/lib32/libobjc.so OLD_FILES+=usr/lib32/libobjc_p.a OLD_LIBS+=usr/lib32/libobjc.so.4 -.endif # 20110331: firmware.img created at build time OLD_FILES+=usr/share/examples/kld/firmware/fwimage/firmware.img # 20110224: sticky.8 -> sticky.7 @@ -323,9 +353,7 @@ OLD_FILES+=usr/include/machine/intr.h .endif # 20100514: library version bump for versioned symbols for liblzma OLD_LIBS+=usr/lib/liblzma.so.0 -.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_LIBS+=usr/lib32/liblzma.so.0 -.endif # 20100511: move GCC-specific headers to /usr/include/gcc .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/emmintrin.h @@ -366,9 +394,7 @@ OLD_FILES+=usr/share/info/cpio.info.gz OLD_FILES+=usr/share/man/man1/gcpio.1.gz # 20100322: libz update OLD_LIBS+=lib/libz.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libz.so.5 -.endif # 20100314: removal of regexp.h OLD_FILES+=usr/include/regexp.h OLD_FILES+=usr/share/man/man3/regexp.3.gz @@ -417,9 +443,7 @@ OLD_FILES+=usr/share/man/man5/lastlog.5. OLD_FILES+=usr/share/man/man5/utmp.5.gz OLD_FILES+=usr/share/man/man5/wtmp.5.gz OLD_LIBS+=lib/libutil.so.8 -.if ${TARGET_ARCH} == "amd64" OLB_LIBS+=usr/lib32/libutil.so.8 -.endif # 20100105: new userland semaphore implementation OLD_FILES+=usr/include/sys/semaphore.h # 20100103: ntptrace(8) removed @@ -627,7 +651,6 @@ OLD_LIBS+=usr/lib/snmp_hostres.so.5 OLD_LIBS+=usr/lib/snmp_mibII.so.5 OLD_LIBS+=usr/lib/snmp_netgraph.so.5 OLD_LIBS+=usr/lib/snmp_pf.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libalias.so.6 OLD_LIBS+=usr/lib32/libarchive.so.4 OLD_LIBS+=usr/lib32/libauditd.so.4 @@ -728,7 +751,6 @@ OLD_LIBS+=usr/lib32/pam_self.so.4 OLD_LIBS+=usr/lib32/pam_ssh.so.4 OLD_LIBS+=usr/lib32/pam_tacplus.so.4 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) @@ -915,9 +937,7 @@ OLD_FILES+=usr/share/man/man8/sliplogin. OLD_FILES+=usr/share/man/man8/slstat.8.gz # 20090321: libpcap upgraded to 1.0.0 OLD_LIBS+=lib/libpcap.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libpcap.so.5 -.endif # 20090319: uscanner(4) has been removed OLD_FILES+=usr/share/man/man4/uscanner.4.gz # 20090313: k8temp(4) renamed to amdtemp(4) @@ -929,17 +949,13 @@ OLD_FILES+=usr/lib/libusb20.so OLD_FILES+=usr/lib/libusb20_p.a OLD_FILES+=usr/include/libusb20_compat01.h OLD_FILES+=usr/include/libusb20_compat10.h -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libusb20.so.1 OLD_FILES+=usr/lib32/libusb20.a OLD_FILES+=usr/lib32/libusb20.so OLD_FILES+=usr/lib32/libusb20_p.a -.endif # 20090226: libmp(3) functions renamed OLD_LIBS+=usr/lib/libmp.so.6 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libmp.so.6 -.endif # 20090223: changeover of USB stacks OLD_FILES+=usr/include/dev/usb2/include/ufm2_ioctl.h OLD_FILES+=usr/include/dev/usb2/include/urio2_ioctl.h @@ -1242,9 +1258,7 @@ OLD_LIBS+=usr/lib/libkadm5srv.so.9 OLD_LIBS+=usr/lib/libkafs5.so.9 OLD_LIBS+=usr/lib/libkrb5.so.9 OLD_LIBS+=usr/lib/libroken.so.9 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libgssapi.so.9 -.endif # 20080420: Symbol card support dropped OLD_FILES+=usr/include/dev/wi/spectrum24t_cf.h # 20080420: awi removal @@ -1271,10 +1285,8 @@ OLD_FILES+=usr/share/man/man2/kse_releas OLD_FILES+=usr/share/man/man2/kse_switchin.2.gz OLD_FILES+=usr/share/man/man2/kse_thr_interrupt.2.gz OLD_FILES+=usr/share/man/man2/kse_wakeup.2.gz -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libkse.so OLD_LIBS+=usr/lib32/libkse.so.3 -.endif # 20080220: geom_lvm rename to geom_linux_lvm OLD_FILES+=usr/share/man/man4/geom_lvm.4.gz # 20080126: oldcard.4 removal @@ -1294,11 +1306,9 @@ OLD_FILES+=usr/include/sys/xrpuio.h OLD_FILES+=usr/lib/libkse.a OLD_FILES+=usr/lib/libkse_p.a OLD_FILES+=usr/lib/libkse_pic.a -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libkse.a OLD_FILES+=usr/lib32/libkse_p.a OLD_FILES+=usr/lib32/libkse_pic.a -.endif # 20071129: Removed a Solaris compatibility header OLD_FILES+=usr/include/sys/_elf_solaris.h # 20071125: Renamed to pmc_get_msr() @@ -1398,12 +1408,10 @@ OLD_DIRS+=usr/include/netatm/ipatm OLD_DIRS+=usr/include/netatm/uni OLD_DIRS+=usr/include/netatm OLD_DIRS+=usr/share/examples/atm -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libatm.a OLD_FILES+=usr/lib32/libatm.so OLD_LIBS+=usr/lib32/libatm.so.5 OLD_FILES+=usr/lib32/libatm_p.a -.endif # 20070705: I4B headers repo-copied to include/i4b/ .if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/include/machine/i4b_cause.h @@ -1488,7 +1496,6 @@ OLD_LIBS+=usr/lib/snmp_hostres.so.4 OLD_LIBS+=usr/lib/snmp_mibII.so.4 OLD_LIBS+=usr/lib/snmp_netgraph.so.4 OLD_LIBS+=usr/lib/snmp_pf.so.4 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libalias.so.5 OLD_LIBS+=usr/lib32/libbsnmp.so.3 OLD_LIBS+=usr/lib32/libdialog.so.5 @@ -1523,7 +1530,6 @@ OLD_LIBS+=usr/lib32/pam_self.so.3 OLD_LIBS+=usr/lib32/pam_ssh.so.3 OLD_LIBS+=usr/lib32/pam_tacplus.so.3 OLD_LIBS+=usr/lib32/pam_unix.so.3 -.endif # 20070613: IPX over IP tunnel removal OLD_FILES+=usr/include/netipx/ipx_ip.h # 20070605: sched_core removal @@ -1593,7 +1599,6 @@ OLD_LIBS+=usr/lib/libwrap.so.4 OLD_LIBS+=usr/lib/libypclnt.so.2 OLD_LIBS+=usr/lib/snmp_bridge.so.3 OLD_LIBS+=usr/lib/snmp_hostres.so.3 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libatm.so.4 OLD_LIBS+=usr/lib32/libbegemot.so.2 OLD_LIBS+=usr/lib32/libbluetooth.so.2 @@ -1652,7 +1657,6 @@ OLD_LIBS+=usr/lib32/libvgl.so.4 OLD_LIBS+=usr/lib32/libwrap.so.4 OLD_LIBS+=usr/lib32/libypclnt.so.2 OLD_LIBS+=usr/lib32/libz.so.3 -.endif # 20070519: GCC 4.2 OLD_FILES+=usr/bin/f77 OLD_FILES+=usr/bin/protoize @@ -1899,9 +1903,7 @@ OLD_FILES+=usr/bin/uuidgen OLD_FILES+=usr/share/info/bzip2.info.gz # 20070303: libarchive 2.0 OLD_LIBS+=usr/lib/libarchive.so.3 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libarchive.so.3 -.endif # 20070301: remove addr2ascii and ascii2addr OLD_FILES+=usr/share/man/man3/addr2ascii.3.gz OLD_FILES+=usr/share/man/man3/ascii2addr.3.gz @@ -1918,14 +1920,12 @@ OLD_FILES+=usr/lib/libmytinfo_p.a OLD_FILES+=usr/lib/libmytinfow.a OLD_FILES+=usr/lib/libmytinfow.so OLD_FILES+=usr/lib/libmytinfow_p.a -.if ${TARGET_ARCH} == "amd64" OLD_FILES+=usr/lib32/libmytinfo.a OLD_FILES+=usr/lib32/libmytinfo.so OLD_FILES+=usr/lib32/libmytinfo_p.a OLD_FILES+=usr/lib32/libmytinfow.a OLD_FILES+=usr/lib32/libmytinfow.so OLD_FILES+=usr/lib32/libmytinfow_p.a -.endif # 20070128: remove vnconfig OLD_FILES+=usr/sbin/vnconfig # 20070127: remove bpf_compat.h @@ -4608,9 +4608,7 @@ OLD_FILES+=usr/share/man/man1/x509.1.gz OLD_FILES+=usr/share/man/man3/SSL_COMP_add_compression_method.3.gz OLD_FILES+=usr/share/man/man3/SSL_CTX_get_ex_new_index.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_dup.3.gz -OLD_FILES+=usr/share/man/man3/archive_entry_hardlink_w.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_set_tartype.3.gz -OLD_FILES+=usr/share/man/man3/archive_entry_symlink_w.3.gz OLD_FILES+=usr/share/man/man3/archive_entry_tartype.3.gz OLD_FILES+=usr/share/man/man3/archive_read_data_into_file.3.gz OLD_FILES+=usr/share/man/man3/archive_read_open_tar.3.gz @@ -5269,40 +5267,32 @@ OLD_LIBS+=usr/lib/libkadm5srv.so.8 OLD_LIBS+=usr/lib/libkafs5.so.8 OLD_LIBS+=usr/lib/libkrb5.so.8 OLD_LIBS+=usr/lib/libobjc.so.2 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libgssapi.so.8 OLD_LIBS+=usr/lib32/libobjc.so.2 -.endif # 20070519: GCC 4.2 OLD_LIBS+=usr/lib/libg2c.a OLD_LIBS+=usr/lib/libg2c.so OLD_LIBS+=usr/lib/libg2c.so.2 OLD_LIBS+=usr/lib/libg2c_p.a OLD_LIBS+=usr/lib/libgcc_pic.a -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libg2c.a OLD_LIBS+=usr/lib32/libg2c.so OLD_LIBS+=usr/lib32/libg2c.so.2 OLD_LIBS+=usr/lib32/libg2c_p.a OLD_LIBS+=usr/lib32/libgcc_pic.a -.endif # 20060729: OpenSSL 0.9.7e -> 0.9.8b upgrade OLD_LIBS+=lib/libcrypto.so.4 OLD_LIBS+=usr/lib/libssl.so.4 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libcrypto.so.4 OLD_LIBS+=usr/lib32/libssl.so.4 -.endif # 20060521: gethostbyaddr(3) ABI change OLD_LIBS+=usr/lib/libroken.so.8 OLD_LIBS+=lib/libatm.so.3 OLD_LIBS+=lib/libc.so.6 OLD_LIBS+=lib/libutil.so.5 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libatm.so.3 OLD_LIBS+=usr/lib32/libc.so.6 OLD_LIBS+=usr/lib32/libutil.so.5 -.endif # 20060413: shared library moved to /usr/lib OLD_LIBS+=lib/libgpib.so.1 # 20060413: libpcap.so.4 moved to /lib/ @@ -5316,12 +5306,10 @@ OLD_LIBS+=usr/lib/libc_r.a OLD_LIBS+=usr/lib/libc_r.so OLD_LIBS+=usr/lib/libc_r.so.7 OLD_LIBS+=usr/lib/libc_r_p.a -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libc_r.a OLD_LIBS+=usr/lib32/libc_r.so OLD_LIBS+=usr/lib32/libc_r.so.7 OLD_LIBS+=usr/lib32/libc_r_p.a -.endif # 20050722: bump for 6.0-RELEASE OLD_LIBS+=lib/libalias.so.4 OLD_LIBS+=lib/libatm.so.2 @@ -5533,10 +5521,8 @@ OLD_LIBS+=usr/lib/libc_r.so.3 OLD_LIBS+=usr/lib/libarchive.so.2 OLD_LIBS+=usr/lib/libbsnmp.so.1 OLD_LIBS+=usr/lib/libc_r.so.6 -.if ${TARGET_ARCH} == "amd64" OLD_LIBS+=usr/lib32/libarchive.so.2 OLD_LIBS+=usr/lib32/libc_r.so.6 -.endif OLD_LIBS+=usr/lib/libcipher.so.2 OLD_LIBS+=usr/lib/libgssapi.so.6 OLD_LIBS+=usr/lib/libkse.so.1 Modified: projects/nand/UPDATING ============================================================================== --- projects/nand/UPDATING Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/UPDATING Wed Apr 4 03:55:28 2012 (r233858) @@ -22,6 +22,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20120328: + Big-endian MIPS TARGET_ARCH values no longer end in "eb". mips64eb + is now spelled mips64. mipsn32eb is now spelled mipsn32. mipseb is + now spelled mips. This is to aid compatibility with third-party + software that expects this naming scheme in uname(3). Little-endian + settings are unchanged. + 20120306: Disable by default the option VFS_ALLOW_NONMPSAFE for all supported platforms. Modified: projects/nand/bin/expr/expr.y ============================================================================== --- projects/nand/bin/expr/expr.y Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/expr/expr.y Wed Apr 4 03:55:28 2012 (r233858) @@ -540,7 +540,7 @@ op_colon(struct val *a, struct val *b) v = make_str(a->u.s + rm[1].rm_so); } else - v = make_integer((intmax_t)(rm[0].rm_eo - rm[0].rm_so)); + v = make_integer((intmax_t)(rm[0].rm_eo)); else if (rp.re_nsub == 0) v = make_integer((intmax_t)0); Modified: projects/nand/bin/kenv/kenv.1 ============================================================================== --- projects/nand/bin/kenv/kenv.1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/kenv/kenv.1 Wed Apr 4 03:55:28 2012 (r233858) @@ -84,7 +84,6 @@ everything after a '#' character, are ig character except '=' is acceptable as part of a name. Quotes are optional and necessary only if the value contains whitespace. -.Pp .Sh SEE ALSO .Xr kenv 2 , .Xr config 5 , Modified: projects/nand/bin/ps/ps.1 ============================================================================== --- projects/nand/bin/ps/ps.1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/ps/ps.1 Wed Apr 4 03:55:28 2012 (r233858) @@ -292,37 +292,37 @@ The flags associated with the process as the include file .In sys/proc.h : .Bl -column P_SINGLE_BOUNDARY 0x40000000 -.It Dv "P_ADVLOCK" Ta No "0x00001 Process may hold a POSIX advisory lock" -.It Dv "P_CONTROLT" Ta No "0x00002 Has a controlling terminal" -.It Dv "P_KTHREAD" Ta No "0x00004 Kernel thread" -.It Dv "P_FOLLOWFORK" Ta No "0x00008 Attach debugger to new children" -.It Dv "P_PPWAIT" Ta No "0x00010 Parent is waiting for child to exec/exit" -.It Dv "P_PROFIL" Ta No "0x00020 Has started profiling" -.It Dv "P_STOPPROF" Ta No "0x00040 Has thread in requesting to stop prof" -.It Dv "P_HADTHREADS" Ta No "0x00080 Has had threads (no cleanup shortcuts)" -.It Dv "P_SUGID" Ta No "0x00100 Had set id privileges since last exec" -.It Dv "P_SYSTEM" Ta No "0x00200 System proc: no sigs, stats or swapping" -.It Dv "P_SINGLE_EXIT" Ta No "0x00400 Threads suspending should exit, not wait" -.It Dv "P_TRACED" Ta No "0x00800 Debugged process being traced" -.It Dv "P_WAITED" Ta No "0x01000 Someone is waiting for us" -.It Dv "P_WEXIT" Ta No "0x02000 Working on exiting" -.It Dv "P_EXEC" Ta No "0x04000 Process called exec" -.It Dv "P_WKILLED" Ta No "0x08000 Killed, shall go to kernel/user boundary ASAP" -.It Dv "P_CONTINUED" Ta No "0x10000 Proc has continued from a stopped state" -.It Dv "P_STOPPED_SIG" Ta No "0x20000 Stopped due to SIGSTOP/SIGTSTP" -.It Dv "P_STOPPED_TRACE" Ta No "0x40000 Stopped because of tracing" -.It Dv "P_STOPPED_SINGLE" Ta No "0x80000 Only one thread can continue" -.It Dv "P_PROTECTED" Ta No "0x100000 Do not kill on memory overcommit" -.It Dv "P_SIGEVENT" Ta No "0x200000 Process pending signals changed" -.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000 Threads should suspend at user boundary" -.It Dv "P_HWPMC" Ta No "0x800000 Process is using HWPMCs" -.It Dv "P_JAILED" Ta No "0x1000000 Process is in jail" -.It Dv "P_ORPHAN" Ta No "0x2000000 Orphaned by original parent, reparented to debugger" -.It Dv "P_INEXEC" Ta No "0x4000000 Process is in execve()" -.It Dv "P_STATCHILD" Ta No "0x8000000 Child process stopped or exited" -.It Dv "P_INMEM" Ta No "0x10000000 Loaded into memory" -.It Dv "P_SWAPPINGOUT" Ta No "0x20000000 Process is being swapped out" -.It Dv "P_SWAPPINGIN" Ta No "0x40000000 Process is being swapped in" +.It Dv "P_ADVLOCK" Ta No "0x00001" Ta "Process may hold a POSIX advisory lock" +.It Dv "P_CONTROLT" Ta No "0x00002" Ta "Has a controlling terminal" +.It Dv "P_KTHREAD" Ta No "0x00004" Ta "Kernel thread" +.It Dv "P_FOLLOWFORK" Ta No "0x00008" Ta "Attach debugger to new children" +.It Dv "P_PPWAIT" Ta No "0x00010" Ta "Parent is waiting for child to exec/exit" +.It Dv "P_PROFIL" Ta No "0x00020" Ta "Has started profiling" +.It Dv "P_STOPPROF" Ta No "0x00040" Ta "Has thread in requesting to stop prof" +.It Dv "P_HADTHREADS" Ta No "0x00080" Ta "Has had threads (no cleanup shortcuts)" +.It Dv "P_SUGID" Ta No "0x00100" Ta "Had set id privileges since last exec" +.It Dv "P_SYSTEM" Ta No "0x00200" Ta "System proc: no sigs, stats or swapping" +.It Dv "P_SINGLE_EXIT" Ta No "0x00400" Ta "Threads suspending should exit, not wait" +.It Dv "P_TRACED" Ta No "0x00800" Ta "Debugged process being traced" +.It Dv "P_WAITED" Ta No "0x01000" Ta "Someone is waiting for us" +.It Dv "P_WEXIT" Ta No "0x02000" Ta "Working on exiting" +.It Dv "P_EXEC" Ta No "0x04000" Ta "Process called exec" +.It Dv "P_WKILLED" Ta No "0x08000" Ta "Killed, shall go to kernel/user boundary ASAP" +.It Dv "P_CONTINUED" Ta No "0x10000" Ta "Proc has continued from a stopped state" +.It Dv "P_STOPPED_SIG" Ta No "0x20000" Ta "Stopped due to SIGSTOP/SIGTSTP" +.It Dv "P_STOPPED_TRACE" Ta No "0x40000" Ta "Stopped because of tracing" +.It Dv "P_STOPPED_SINGLE" Ta No "0x80000" Ta "Only one thread can continue" +.It Dv "P_PROTECTED" Ta No "0x100000" Ta "Do not kill on memory overcommit" +.It Dv "P_SIGEVENT" Ta No "0x200000" Ta "Process pending signals changed" +.It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000" Ta "Threads should suspend at user boundary" +.It Dv "P_HWPMC" Ta No "0x800000" Ta "Process is using HWPMCs" +.It Dv "P_JAILED" Ta No "0x1000000" Ta "Process is in jail" +.It Dv "P_ORPHAN" Ta No "0x2000000" Ta "Orphaned by original parent, reparented to debugger" +.It Dv "P_INEXEC" Ta No "0x4000000" Ta "Process is in execve()" +.It Dv "P_STATCHILD" Ta No "0x8000000" Ta "Child process stopped or exited" +.It Dv "P_INMEM" Ta No "0x10000000" Ta "Loaded into memory" +.It Dv "P_SWAPPINGOUT" Ta No "0x20000000" Ta "Process is being swapped out" +.It Dv "P_SWAPPINGIN" Ta No "0x40000000" Ta "Process is being swapped in" .El .It Cm label The MAC label of the process. Modified: projects/nand/bin/pwait/pwait.1 ============================================================================== --- projects/nand/bin/pwait/pwait.1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/pwait/pwait.1 Wed Apr 4 03:55:28 2012 (r233858) @@ -46,7 +46,7 @@ .Sh DESCRIPTION The .Nm -utility will wait until each of the given processes has terminated. +utility will wait until each of the given processes has terminated. .Pp The following option is available: .Bl -tag -width indent @@ -54,7 +54,6 @@ The following option is available: Print the exit status when each process terminates. .El .Sh DIAGNOSTICS -.Pp The .Nm utility returns 0 on success, and >0 if an error occurs. Modified: projects/nand/bin/setfacl/setfacl.1 ============================================================================== --- projects/nand/bin/setfacl/setfacl.1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/setfacl/setfacl.1 Wed Apr 4 03:55:28 2012 (r233858) @@ -295,7 +295,7 @@ The ACL qualifier field describes the us the ACL entry. It may consist of one of the following: uid or user name, or gid or group name. In entries whose tag type is -one of +one of .Dq Li owner@ , .Dq Li group@ , or Modified: projects/nand/bin/sh/jobs.c ============================================================================== --- projects/nand/bin/sh/jobs.c Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/sh/jobs.c Wed Apr 4 03:55:28 2012 (r233858) @@ -893,8 +893,8 @@ vforkexecshell(struct job *jp, char **ar struct jmploc jmploc; struct jmploc *savehandler; - TRACE(("vforkexecshell(%%%td, %p, %d) called\n", jp - jobtab, (void *)n, - mode)); + TRACE(("vforkexecshell(%%%td, %s, %p) called\n", jp - jobtab, argv[0], + (void *)pip)); INTOFF; flushall(); savehandler = handler; Modified: projects/nand/bin/sh/sh.1 ============================================================================== --- projects/nand/bin/sh/sh.1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/sh/sh.1 Wed Apr 4 03:55:28 2012 (r233858) @@ -1027,7 +1027,6 @@ or .Pp The first form executes the commands in a subshell environment. A subshell environment has its own copy of: -.Pp .Bl -enum .It The current working directory as set by @@ -1632,7 +1631,7 @@ All values are of type .It Constants Decimal, octal (starting with .Li 0 ) -and hexadecimal (starting with +and hexadecimal (starting with .Li 0x ) integer constants. .It Variables Modified: projects/nand/bin/stty/stty.1 ============================================================================== --- projects/nand/bin/stty/stty.1 Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/bin/stty/stty.1 Wed Apr 4 03:55:28 2012 (r233858) @@ -90,7 +90,6 @@ to restore the current terminal state as The following arguments are available to set the terminal characteristics: .Ss Control Modes: -.Pp Control mode flags affect hardware characteristics associated with the terminal. This corresponds to the c_cflag in the termios structure. @@ -256,7 +255,6 @@ Do not (do) output CRs at column zero. On the terminal NL performs (does not perform) the CR function. .El .Ss Local Modes: -.Pp Local mode flags (lflags) affect various and sundry characteristics of terminal processing. Historically the term "local" pertained to new job control features @@ -513,7 +511,6 @@ The size of the terminal is printed as t first rows, then columns. .El .Ss Compatibility Modes: -.Pp These modes remain for compatibility with the previous version of the .Nm Modified: projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c ============================================================================== --- projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctf.c Wed Apr 4 03:55:28 2012 (r233858) @@ -62,6 +62,18 @@ struct ctf_buf { int ntholes; /* number of type holes */ }; +/* + * Macros to reverse byte order + */ +#define BSWAP_8(x) ((x) & 0xff) +#define BSWAP_16(x) ((BSWAP_8(x) << 8) | BSWAP_8((x) >> 8)) +#define BSWAP_32(x) ((BSWAP_16(x) << 16) | BSWAP_16((x) >> 16)) + +#define SWAP_16(x) (x) = BSWAP_16(x) +#define SWAP_32(x) (x) = BSWAP_32(x) + +static int target_requires_swap; + /*PRINTFLIKE1*/ static void parseterminate(const char *fmt, ...) @@ -140,6 +152,11 @@ write_label(void *arg1, void *arg2) ctl.ctl_label = strtab_insert(&b->ctb_strtab, le->le_name); ctl.ctl_typeidx = le->le_idx; + if (target_requires_swap) { + SWAP_32(ctl.ctl_label); + SWAP_32(ctl.ctl_typeidx); + } + ctf_buf_write(b, &ctl, sizeof (ctl)); return (1); @@ -152,6 +169,10 @@ write_objects(iidesc_t *idp, ctf_buf_t * ctf_buf_write(b, &id, sizeof (id)); + if (target_requires_swap) { + SWAP_16(id); + } + debug(3, "Wrote object %s (%d)\n", (idp ? idp->ii_name : "(null)"), id); } @@ -180,10 +201,21 @@ write_functions(iidesc_t *idp, ctf_buf_t fdata[0] = CTF_TYPE_INFO(CTF_K_FUNCTION, 1, nargs); fdata[1] = idp->ii_dtype->t_id; + + if (target_requires_swap) { + SWAP_16(fdata[0]); + SWAP_16(fdata[1]); + } + ctf_buf_write(b, fdata, sizeof (fdata)); for (i = 0; i < idp->ii_nargs; i++) { id = idp->ii_args[i]->t_id; + + if (target_requires_swap) { + SWAP_16(id); + } + ctf_buf_write(b, &id, sizeof (id)); } @@ -208,11 +240,25 @@ write_sized_type_rec(ctf_buf_t *b, ctf_t ctt->ctt_size = CTF_LSIZE_SENT; ctt->ctt_lsizehi = CTF_SIZE_TO_LSIZE_HI(size); ctt->ctt_lsizelo = CTF_SIZE_TO_LSIZE_LO(size); + if (target_requires_swap) { + SWAP_32(ctt->ctt_name); + SWAP_16(ctt->ctt_info); + SWAP_16(ctt->ctt_size); + SWAP_32(ctt->ctt_lsizehi); + SWAP_32(ctt->ctt_lsizelo); + } ctf_buf_write(b, ctt, sizeof (*ctt)); } else { ctf_stype_t *cts = (ctf_stype_t *)ctt; cts->ctt_size = (ushort_t)size; + + if (target_requires_swap) { + SWAP_32(cts->ctt_name); + SWAP_16(cts->ctt_info); + SWAP_16(cts->ctt_size); + } + ctf_buf_write(b, cts, sizeof (*cts)); } } @@ -222,6 +268,12 @@ write_unsized_type_rec(ctf_buf_t *b, ctf { ctf_stype_t *cts = (ctf_stype_t *)ctt; + if (target_requires_swap) { + SWAP_32(cts->ctt_name); + SWAP_16(cts->ctt_info); + SWAP_16(cts->ctt_size); + } + ctf_buf_write(b, cts, sizeof (*cts)); } @@ -296,6 +348,9 @@ write_type(void *arg1, void *arg2) encoding = ip->intr_fformat; data = CTF_INT_DATA(encoding, ip->intr_offset, ip->intr_nbits); + if (target_requires_swap) { + SWAP_32(data); + } ctf_buf_write(b, &data, sizeof (data)); break; @@ -312,6 +367,11 @@ write_type(void *arg1, void *arg2) cta.cta_contents = tp->t_ardef->ad_contents->t_id; cta.cta_index = tp->t_ardef->ad_idxtype->t_id; cta.cta_nelems = tp->t_ardef->ad_nelems; + if (target_requires_swap) { + SWAP_16(cta.cta_contents); + SWAP_16(cta.cta_index); + SWAP_32(cta.cta_nelems); + } ctf_buf_write(b, &cta, sizeof (cta)); break; @@ -341,6 +401,11 @@ write_type(void *arg1, void *arg2) offset); ctm.ctm_type = mp->ml_type->t_id; ctm.ctm_offset = mp->ml_offset; + if (target_requires_swap) { + SWAP_32(ctm.ctm_name); + SWAP_16(ctm.ctm_type); + SWAP_16(ctm.ctm_offset); + } ctf_buf_write(b, &ctm, sizeof (ctm)); } } else { @@ -355,6 +420,14 @@ write_type(void *arg1, void *arg2) CTF_OFFSET_TO_LMEMHI(mp->ml_offset); ctlm.ctlm_offsetlo = CTF_OFFSET_TO_LMEMLO(mp->ml_offset); + + if (target_requires_swap) { + SWAP_32(ctlm.ctlm_name); + SWAP_16(ctlm.ctlm_type); + SWAP_32(ctlm.ctlm_offsethi); + SWAP_32(ctlm.ctlm_offsetlo); + } + ctf_buf_write(b, &ctlm, sizeof (ctlm)); } } @@ -377,6 +450,12 @@ write_type(void *arg1, void *arg2) offset = strtab_insert(&b->ctb_strtab, ep->el_name); cte.cte_name = CTF_TYPE_NAME(CTF_STRTAB_0, offset); cte.cte_value = ep->el_number; + + if (target_requires_swap) { + SWAP_32(cte.cte_name); + SWAP_32(cte.cte_value); + } + ctf_buf_write(b, &cte, sizeof (cte)); i--; } @@ -420,6 +499,11 @@ write_type(void *arg1, void *arg2) for (i = 0; i < (int) tp->t_fndef->fn_nargs; i++) { id = tp->t_fndef->fn_args[i]->t_id; + + if (target_requires_swap) { + SWAP_16(id); + } + ctf_buf_write(b, &id, sizeof (id)); } @@ -613,6 +697,9 @@ ctf_gen(iiburst_t *iiburst, size_t *ress int i; + target_requires_swap = do_compress & CTF_SWAP_BYTES; + do_compress &= ~CTF_SWAP_BYTES; + /* * Prepare the header, and create the CTF output buffers. The data * object section and function section are both lists of 2-byte @@ -649,6 +736,18 @@ ctf_gen(iiburst_t *iiburst, size_t *ress h.cth_stroff = ctf_buf_cur(buf); h.cth_strlen = strtab_size(&buf->ctb_strtab); + if (target_requires_swap) { + SWAP_16(h.cth_preamble.ctp_magic); + SWAP_32(h.cth_parlabel); + SWAP_32(h.cth_parname); + SWAP_32(h.cth_lbloff); + SWAP_32(h.cth_objtoff); + SWAP_32(h.cth_funcoff); + SWAP_32(h.cth_typeoff); + SWAP_32(h.cth_stroff); + SWAP_32(h.cth_strlen); + } + /* * We only do compression for ctfmerge, as ctfconvert is only * supposed to be used on intermediary build objects. This is Modified: projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c ============================================================================== --- projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c Tue Apr 3 22:21:15 2012 (r233857) +++ projects/nand/cddl/contrib/opensolaris/tools/ctf/cvt/ctfmerge.c Wed Apr 4 03:55:28 2012 (r233858) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 08:37:13 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 4EE221065672; Wed, 4 Apr 2012 08:37:13 +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 203208FC08; Wed, 4 Apr 2012 08:37:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q348bCMd093439; Wed, 4 Apr 2012 08:37:12 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q348bCvp093435; Wed, 4 Apr 2012 08:37:12 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204040837.q348bCvp093435@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 4 Apr 2012 08:37:12 +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: r233864 - in projects/pf/head: contrib/pf/pfctl sys/kern usr.bin/netstat 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, 04 Apr 2012 08:37:13 -0000 Author: glebius Date: Wed Apr 4 08:37:12 2012 New Revision: 233864 URL: http://svn.freebsd.org/changeset/base/233864 Log: Merge head r233849 through r233863. Modified: projects/pf/head/contrib/pf/pfctl/pf_print_state.c projects/pf/head/sys/kern/uipc_socket.c projects/pf/head/usr.bin/netstat/if.c Directory Properties: projects/pf/head/ (props changed) projects/pf/head/sys/ (props changed) Modified: projects/pf/head/contrib/pf/pfctl/pf_print_state.c ============================================================================== --- projects/pf/head/contrib/pf/pfctl/pf_print_state.c Wed Apr 4 08:30:32 2012 (r233863) +++ projects/pf/head/contrib/pf/pfctl/pf_print_state.c Wed Apr 4 08:37:12 2012 (r233864) @@ -306,6 +306,9 @@ print_state(struct pfsync_state *s, int u_int32_t creation = ntohl(s->creation); u_int32_t expire = ntohl(s->expire); + printf(" id %lu", be64toh((uint64_t)s->id)); + printf(", age %u", creation); + printf(", expires %u\n", expire); sec = creation % 60; creation /= 60; min = creation % 60; Modified: projects/pf/head/sys/kern/uipc_socket.c ============================================================================== --- projects/pf/head/sys/kern/uipc_socket.c Wed Apr 4 08:30:32 2012 (r233863) +++ projects/pf/head/sys/kern/uipc_socket.c Wed Apr 4 08:37:12 2012 (r233864) @@ -2504,20 +2504,19 @@ sosetopt(struct socket *so, struct socko case SO_SETFIB: error = sooptcopyin(sopt, &optval, sizeof optval, sizeof optval); + if (error) + goto bad; + if (optval < 0 || optval >= rt_numfibs) { error = EINVAL; goto bad; } if (((so->so_proto->pr_domain->dom_family == PF_INET) || (so->so_proto->pr_domain->dom_family == PF_INET6) || - (so->so_proto->pr_domain->dom_family == PF_ROUTE))) { + (so->so_proto->pr_domain->dom_family == PF_ROUTE))) so->so_fibnum = optval; - /* Note: ignore error */ - if (so->so_proto->pr_ctloutput) - (*so->so_proto->pr_ctloutput)(so, sopt); - } else { + else so->so_fibnum = 0; - } break; case SO_USER_COOKIE: Modified: projects/pf/head/usr.bin/netstat/if.c ============================================================================== --- projects/pf/head/usr.bin/netstat/if.c Wed Apr 4 08:30:32 2012 (r233863) +++ projects/pf/head/usr.bin/netstat/if.c Wed Apr 4 08:37:12 2012 (r233864) @@ -93,10 +93,10 @@ pfsync_stats(u_long off, const char *nam if (live) { if (zflag) memset(&zerostat, 0, len); - if (sysctlbyname("net.inet.pfsync.stats", &pfsyncstat, &len, + if (sysctlbyname("net.pfsync.stats", &pfsyncstat, &len, zflag ? &zerostat : NULL, zflag ? len : 0) < 0) { if (errno != ENOENT) - warn("sysctl: net.inet.pfsync.stats"); + warn("sysctl: net.pfsync.stats"); return; } } else From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 08:39:55 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 83718106566C; Wed, 4 Apr 2012 08:39:55 +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 6F0738FC1B; Wed, 4 Apr 2012 08:39: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 q348dtUi093624; Wed, 4 Apr 2012 08:39:55 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q348dtOM093622; Wed, 4 Apr 2012 08:39:55 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204040839.q348dtOM093622@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 4 Apr 2012 08:39:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233865 - projects/pf/head/contrib/pf/pfctl 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, 04 Apr 2012 08:39:55 -0000 Author: glebius Date: Wed Apr 4 08:39:55 2012 New Revision: 233865 URL: http://svn.freebsd.org/changeset/base/233865 Log: Argh, debugging code leaked into repo, fix that. Modified: projects/pf/head/contrib/pf/pfctl/pf_print_state.c Modified: projects/pf/head/contrib/pf/pfctl/pf_print_state.c ============================================================================== --- projects/pf/head/contrib/pf/pfctl/pf_print_state.c Wed Apr 4 08:37:12 2012 (r233864) +++ projects/pf/head/contrib/pf/pfctl/pf_print_state.c Wed Apr 4 08:39:55 2012 (r233865) @@ -306,9 +306,6 @@ print_state(struct pfsync_state *s, int u_int32_t creation = ntohl(s->creation); u_int32_t expire = ntohl(s->expire); - printf(" id %lu", be64toh((uint64_t)s->id)); - printf(", age %u", creation); - printf(", expires %u\n", expire); sec = creation % 60; creation /= 60; min = creation % 60; From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 08:47:37 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 2EA0D106566B; Wed, 4 Apr 2012 08:47:37 +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 1A5538FC14; Wed, 4 Apr 2012 08:47:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q348lapJ093938; Wed, 4 Apr 2012 08:47:36 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q348laZk093936; Wed, 4 Apr 2012 08:47:36 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204040847.q348laZk093936@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 4 Apr 2012 08:47: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: r233866 - projects/pf/head/usr.bin/netstat 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, 04 Apr 2012 08:47:37 -0000 Author: glebius Date: Wed Apr 4 08:47:36 2012 New Revision: 233866 URL: http://svn.freebsd.org/changeset/base/233866 Log: In pfsync stats print last couple of lines in a plural form optionally. > Description of fields to fill in above: 76 columns --| > PR: If a GNATS PR is affected by the change. > Submitted by: If someone else sent in the change. > Reviewed by: If someone else reviewed your modification. > Approved by: If you needed approval for this commit. > Obtained from: If the change is from a third party. > MFC after: N [day[s]|week[s]|month[s]]. Request a reminder email. > Security: Vulnerability reference (one per line) or description. > Empty fields above will be automatically removed. M netstat/if.c Modified: projects/pf/head/usr.bin/netstat/if.c Modified: projects/pf/head/usr.bin/netstat/if.c ============================================================================== --- projects/pf/head/usr.bin/netstat/if.c Wed Apr 4 08:39:55 2012 (r233865) +++ projects/pf/head/usr.bin/netstat/if.c Wed Apr 4 08:47:36 2012 (r233866) @@ -106,8 +106,6 @@ pfsync_stats(u_long off, const char *nam #define p(f, m) if (pfsyncstat.f || sflag <= 1) \ printf(m, (uintmax_t)pfsyncstat.f, plural(pfsyncstat.f)) -#define p2(f, m) if (pfsyncstat.f || sflag <= 1) \ - printf(m, (uintmax_t)pfsyncstat.f) p(pfsyncs_ipackets, "\t%ju packet%s received (IPv4)\n"); p(pfsyncs_ipackets6, "\t%ju packet%s received (IPv6)\n"); @@ -123,8 +121,8 @@ pfsync_stats(u_long off, const char *nam p(pfsyncs_badstate, "\t\t%ju failed state lookup/insert%s\n"); p(pfsyncs_opackets, "\t%ju packet%s sent (IPv4)\n"); p(pfsyncs_opackets6, "\t%ju packet%s sent (IPv6)\n"); - p2(pfsyncs_onomem, "\t\t%ju send failed due to mbuf memory error\n"); - p2(pfsyncs_oerrors, "\t\t%ju send error\n"); + p(pfsyncs_onomem, "\t\t%ju failure%s due to mbuf memory error\n"); + p(pfsyncs_oerrors, "\t\t%ju send error%s\n"); #undef p #undef p2 } From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 09:20:23 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 874E51065672; Wed, 4 Apr 2012 09:20: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 599A18FC16; Wed, 4 Apr 2012 09:20: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 q349KNfY095154; Wed, 4 Apr 2012 09:20:23 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q349KNlp095152; Wed, 4 Apr 2012 09:20:23 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204040920.q349KNlp095152@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 4 Apr 2012 09:20:23 +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: r233868 - projects/pf/head/usr.bin/netstat 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, 04 Apr 2012 09:20:23 -0000 Author: glebius Date: Wed Apr 4 09:20:22 2012 New Revision: 233868 URL: http://svn.freebsd.org/changeset/base/233868 Log: Print pfsync action statistics. Modified: projects/pf/head/usr.bin/netstat/if.c Modified: projects/pf/head/usr.bin/netstat/if.c ============================================================================== --- projects/pf/head/usr.bin/netstat/if.c Wed Apr 4 09:14:16 2012 (r233867) +++ projects/pf/head/usr.bin/netstat/if.c Wed Apr 4 09:20:22 2012 (r233868) @@ -81,6 +81,32 @@ static void catchalarm(int); static char addr_buf[NI_MAXHOST]; /* for getnameinfo() */ #endif +static const char* pfsyncacts[] = { + /* PFSYNC_ACT_CLR */ "clear all request", + /* PFSYNC_ACT_INS */ "state insert", + /* PFSYNC_ACT_INS_ACK */ "state inserted ack", + /* PFSYNC_ACT_UPD */ "state update", + /* PFSYNC_ACT_UPD_C */ "compressed state update", + /* PFSYNC_ACT_UPD_REQ */ "uncompressed state request", + /* PFSYNC_ACT_DEL */ "state delete", + /* PFSYNC_ACT_DEL_C */ "compressed state delete", + /* PFSYNC_ACT_INS_F */ "fragment insert", + /* PFSYNC_ACT_DEL_F */ "fragment delete", + /* PFSYNC_ACT_BUS */ "bulk update mark", + /* PFSYNC_ACT_TDB */ "TDB replay counter update", + /* PFSYNC_ACT_EOF */ "end of frame mark", +}; + +static void +pfsync_acts_stats(const char *fmt, uint64_t *a) +{ + int i; + + for (i = 0; i < PFSYNC_ACT_MAX; i++, a++) + if (*a || sflag <= 1) + printf(fmt, *a, pfsyncacts[i], plural(*a)); +} + /* * Dump pfsync statistics structure. */ @@ -109,6 +135,8 @@ pfsync_stats(u_long off, const char *nam p(pfsyncs_ipackets, "\t%ju packet%s received (IPv4)\n"); p(pfsyncs_ipackets6, "\t%ju packet%s received (IPv6)\n"); + pfsync_acts_stats("\t %ju %s%s received\n", + &pfsyncstat.pfsyncs_iacts[0]); p(pfsyncs_badif, "\t\t%ju packet%s discarded for bad interface\n"); p(pfsyncs_badttl, "\t\t%ju packet%s discarded for bad ttl\n"); p(pfsyncs_hdrops, "\t\t%ju packet%s shorter than header\n"); @@ -121,10 +149,11 @@ pfsync_stats(u_long off, const char *nam p(pfsyncs_badstate, "\t\t%ju failed state lookup/insert%s\n"); p(pfsyncs_opackets, "\t%ju packet%s sent (IPv4)\n"); p(pfsyncs_opackets6, "\t%ju packet%s sent (IPv6)\n"); + pfsync_acts_stats("\t %ju %s%s sent\n", + &pfsyncstat.pfsyncs_oacts[0]); p(pfsyncs_onomem, "\t\t%ju failure%s due to mbuf memory error\n"); p(pfsyncs_oerrors, "\t\t%ju send error%s\n"); #undef p -#undef p2 } /* From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 10:55: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 0BD351065673; Wed, 4 Apr 2012 10:55:20 +0000 (UTC) (envelope-from mjg@semihalf.com) Received: from smtp.semihalf.com (smtp.semihalf.com [213.17.239.109]) by mx1.freebsd.org (Postfix) with ESMTP id AF2858FC0C; Wed, 4 Apr 2012 10:55:19 +0000 (UTC) Received: from localhost (unknown [213.17.239.109]) by smtp.semihalf.com (Postfix) with ESMTP id 193ABC4B60; Wed, 4 Apr 2012 12:55:05 +0200 (CEST) X-Virus-Scanned: by amavisd-new at semihalf.com Received: from smtp.semihalf.com ([213.17.239.109]) by localhost (smtp.semihalf.com [213.17.239.109]) (amavisd-new, port 10024) with ESMTP id UaLKVzKP7uh2; Wed, 4 Apr 2012 12:55:04 +0200 (CEST) Received: from pcbsd-2342.semihalf.com (cardhu.semihalf.com [213.17.239.108]) by smtp.semihalf.com (Postfix) with ESMTPSA id 7124EC4B2C; Wed, 4 Apr 2012 12:55:04 +0200 (CEST) Date: Wed, 4 Apr 2012 12:55:11 +0200 From: Mateusz Guzik To: Alexander Leidinger Message-ID: <20120404105510.GC58053@pcbsd-2342.semihalf.com> References: <201203170252.q2H2qHF9046647@svn.freebsd.org> <20120317133945.000046ec@unknown> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20120317133945.000046ec@unknown> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-projects@freebsd.org, Grzegorz Bernacki , src-committers@freebsd.org Subject: Re: svn commit: r233069 - in projects/nand/sbin: . mount mount_nandfs nandfs newfs_nandfs 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, 04 Apr 2012 10:55:20 -0000 On Sat, Mar 17, 2012 at 01:39:45PM +0100, Alexander Leidinger wrote: > On Sat, 17 Mar 2012 02:52:17 +0000 (UTC) Grzegorz Bernacki > wrote: > > > Log: > > Add tools required by NANDFS to mount/umount, create/remove/list > > snapshots. > > > Added: > > projects/nand/sbin/mount_nandfs/ > > projects/nand/sbin/mount_nandfs/Makefile > > projects/nand/sbin/mount_nandfs/mount_nandfs.8 > > projects/nand/sbin/mount_nandfs/mount_nandfs.c > > It's not possible to use nmount(2) for this, we really need a new mount > command for this? > Sorry for very late reply; mount_nandfs will be removed soon. Previously we had to start userland daemon on mount and now that daemon is part of the kernel. -- Mateusz Guzik From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 14:31:49 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 46AB0106566B; Wed, 4 Apr 2012 14:31:49 +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 306D48FC0A; Wed, 4 Apr 2012 14:31:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q34EVnTG008033; Wed, 4 Apr 2012 14:31:49 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34EVmVE008028; Wed, 4 Apr 2012 14:31:48 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204041431.q34EVmVE008028@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 4 Apr 2012 14:31: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: r233873 - 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: Wed, 04 Apr 2012 14:31:49 -0000 Author: glebius Date: Wed Apr 4 14:31:48 2012 New Revision: 233873 URL: http://svn.freebsd.org/changeset/base/233873 Log: - ID lookup structure should match only on state id and on creator id, ignoring direction and padding. This fixes state lookup mismatches after r233782. - Make pf_find_state_byid() take couple of id arguments. This almost retires struct pf_state_key usage and simplifies code. - Change struct pfsync_state to use uint64_t for id. This is wire-compatible with old struct, and simplifies code. OpenBSD also did this. Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/contrib/pf/net/pf.c projects/pf/head/sys/contrib/pf/net/pf_ioctl.c projects/pf/head/sys/contrib/pf/net/pfvar.h Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Wed Apr 4 13:49:22 2012 (r233872) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Wed Apr 4 14:31:48 2012 (r233873) @@ -227,7 +227,8 @@ struct pfsync_softc { u_int32_t sc_ureq_received; int sc_bulk_hash_id; - struct pf_state_cmp sc_bulk_state; + uint64_t sc_bulk_stateid; + uint32_t sc_bulk_creatorid; struct callout sc_bulk_tmo; struct callout sc_tmo; @@ -517,7 +518,7 @@ pfsync_state_import(struct pfsync_state st->timeout = sp->timeout; st->state_flags = sp->state_flags; - bcopy(sp->id, &st->id, sizeof(st->id)); + st->id = sp->id; st->creatorid = sp->creatorid; pf_state_peer_ntoh(&sp->src, &st->src); pf_state_peer_ntoh(&sp->dst, &st->dst); @@ -751,7 +752,6 @@ static int pfsync_in_iack(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count) { struct pfsync_ins_ack *ia, *iaa; - struct pf_state_cmp id_key; struct pf_state *st; struct mbuf *mp; @@ -769,10 +769,7 @@ pfsync_in_iack(struct pfsync_pkt *pkt, s for (i = 0; i < count; i++) { ia = &iaa[i]; - bcopy(&ia->id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = ia->creatorid; - - st = pf_find_state_byid(&id_key); + st = pf_find_state_byid(ia->id, ia->creatorid); if (st == NULL) continue; @@ -827,7 +824,6 @@ static int pfsync_in_upd(struct pfsync_pkt *pkt, struct mbuf *m, int offset, int count) { struct pfsync_state *sa, *sp; - struct pf_state_cmp id_key; struct pf_state_key *sk; struct pf_state *st; int sfail; @@ -859,10 +855,7 @@ pfsync_in_upd(struct pfsync_pkt *pkt, st continue; } - bcopy(sp->id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = sp->creatorid; - - st = pf_find_state_byid(&id_key); + st = pf_find_state_byid(sp->id, sp->creatorid); if (st == NULL) { /* insert the update */ if (pfsync_state_import(sp, 0)) @@ -921,7 +914,6 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, { struct pfsync_upd_c *ua, *up; struct pf_state_key *sk; - struct pf_state_cmp id_key; struct pf_state *st; int len = count * sizeof(*up); @@ -954,13 +946,10 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, continue; } - bcopy(&up->id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = up->creatorid; - - st = pf_find_state_byid(&id_key); + st = pf_find_state_byid(up->id, up->creatorid); if (st == NULL) { /* We don't have this state. Ask for it. */ - pfsync_request_update(id_key.creatorid, id_key.id); + pfsync_request_update(up->creatorid, up->id); continue; } @@ -1017,7 +1006,6 @@ pfsync_in_ureq(struct pfsync_pkt *pkt, s int len = count * sizeof(*ur); int i, offp; - struct pf_state_cmp id_key; struct pf_state *st; mp = m_pulldown(m, offset, len, &offp); @@ -1031,13 +1019,10 @@ pfsync_in_ureq(struct pfsync_pkt *pkt, s for (i = 0; i < count; i++) { ur = &ura[i]; - bcopy(&ur->id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = ur->creatorid; - - if (id_key.id == 0 && id_key.creatorid == 0) + if (ur->id == 0 && ur->creatorid == 0) pfsync_bulk_start(); else { - st = pf_find_state_byid(&id_key); + st = pf_find_state_byid(ur->id, ur->creatorid); if (st == NULL) { V_pfsyncstats.pfsyncs_badstate++; continue; @@ -1061,7 +1046,6 @@ pfsync_in_del(struct pfsync_pkt *pkt, st { struct mbuf *mp; struct pfsync_state *sa, *sp; - struct pf_state_cmp id_key; struct pf_state *st; int len = count * sizeof(*sp); int offp, i; @@ -1077,10 +1061,7 @@ pfsync_in_del(struct pfsync_pkt *pkt, st for (i = 0; i < count; i++) { sp = &sa[i]; - bcopy(sp->id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = sp->creatorid; - - st = pf_find_state_byid(&id_key); + st = pf_find_state_byid(sp->id, sp->creatorid); if (st == NULL) { V_pfsyncstats.pfsyncs_badstate++; continue; @@ -1098,7 +1079,6 @@ pfsync_in_del_c(struct pfsync_pkt *pkt, { struct mbuf *mp; struct pfsync_del_c *sa, *sp; - struct pf_state_cmp id_key; struct pf_state *st; int len = count * sizeof(*sp); int offp, i; @@ -1114,10 +1094,7 @@ pfsync_in_del_c(struct pfsync_pkt *pkt, for (i = 0; i < count; i++) { sp = &sa[i]; - bcopy(&sp->id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = sp->creatorid; - - st = pf_find_state_byid(&id_key); + st = pf_find_state_byid(sp->id, sp->creatorid); if (st == NULL) { V_pfsyncstats.pfsyncs_badstate++; continue; @@ -2032,7 +2009,7 @@ pfsync_bulk_start(void) sc->sc_ureq_received = time_uptime; sc->sc_bulk_hash_id = 0; - bzero(&sc->sc_bulk_state, sizeof(struct pf_state_cmp)); + sc->sc_bulk_stateid = 0; pfsync_bulk_status(PFSYNC_BUS_START); callout_reset(&sc->sc_bulk_tmo, 1, pfsync_bulk_update, sc); } @@ -2052,7 +2029,7 @@ pfsync_bulk_update(void *arg) * It may had gone, in this case start from the * hash slot. */ - s = pf_find_state_byid(&sc->sc_bulk_state); + s = pf_find_state_byid(sc->sc_bulk_stateid, sc->sc_bulk_creatorid); if (s != NULL) i = PF_IDHASH(s); @@ -2075,8 +2052,8 @@ pfsync_bulk_update(void *arg) sizeof(struct pfsync_state)) { /* We've filled a packet. */ sc->sc_bulk_hash_id = i; - bcopy(s, &sc->sc_bulk_state, - sizeof(struct pf_state_cmp)); + sc->sc_bulk_stateid = s->id; + sc->sc_bulk_creatorid = s->creatorid; PF_HASHROW_UNLOCK(ih); callout_reset(&sc->sc_bulk_tmo, 1, pfsync_bulk_update, sc); Modified: projects/pf/head/sys/contrib/pf/net/pf.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf.c Wed Apr 4 13:49:22 2012 (r233872) +++ projects/pf/head/sys/contrib/pf/net/pf.c Wed Apr 4 14:31:48 2012 (r233873) @@ -981,7 +981,7 @@ pf_state_insert(struct pfi_kif *kif, str ih = &V_pf_idhash[PF_IDHASH(s)]; PF_HASHROW_LOCK(ih); LIST_FOREACH(cur, &ih->states, entry) - if (bcmp(cur, s, sizeof(struct pf_state_cmp)) == 0) + if (cur->id == s->id && cur->creatorid == s->creatorid) break; if (cur != NULL) { @@ -1014,16 +1014,18 @@ pf_state_insert(struct pfi_kif *kif, str * Find state by ID: returns with locked row on success. */ struct pf_state * -pf_find_state_byid(struct pf_state_cmp *key) +pf_find_state_byid(uint64_t id, uint32_t creatorid) { - struct pf_idhash *ih = &V_pf_idhash[PF_IDHASH(key)]; + struct pf_idhash *ih; struct pf_state *s; V_pf_status.fcounters[FCNT_STATE_SEARCH]++; + ih = &V_pf_idhash[(be64toh(id) % (V_pf_hashmask + 1))]; + PF_HASHROW_LOCK(ih); LIST_FOREACH(s, &ih->states, entry) - if (bcmp(s, key, sizeof(struct pf_state_cmp)) == 0) + if (s->id == id && s->creatorid == creatorid) break; if (s == NULL) Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Wed Apr 4 13:49:22 2012 (r233872) +++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Wed Apr 4 14:31:48 2012 (r233873) @@ -1709,7 +1709,8 @@ relock_DIOCCLRSTATES: if (psk->psk_pfcmp.id) { if (psk->psk_pfcmp.creatorid == 0) psk->psk_pfcmp.creatorid = V_pf_status.hostid; - if ((s = pf_find_state_byid(&psk->psk_pfcmp))) { + if ((s = pf_find_state_byid(psk->psk_pfcmp.id, + psk->psk_pfcmp.creatorid))) { pf_unlink_state(s, PF_ENTER_LOCKED); psk->psk_killed = 1; } @@ -1793,13 +1794,9 @@ relock_DIOCKILLSTATES: case DIOCGETSTATE: { struct pfioc_state *ps = (struct pfioc_state *)addr; struct pf_state *s; - struct pf_state_cmp id_key; - - bcopy(ps->state.id, &id_key.id, sizeof(id_key.id)); - id_key.creatorid = ps->state.creatorid; PF_LOCK(); - s = pf_find_state_byid(&id_key); + s = pf_find_state_byid(ps->state.id, ps->state.creatorid); if (s == NULL) { PF_UNLOCK(); error = ENOENT; Modified: projects/pf/head/sys/contrib/pf/net/pfvar.h ============================================================================== --- projects/pf/head/sys/contrib/pf/net/pfvar.h Wed Apr 4 13:49:22 2012 (r233872) +++ projects/pf/head/sys/contrib/pf/net/pfvar.h Wed Apr 4 14:31:48 2012 (r233873) @@ -872,7 +872,7 @@ struct pfsync_state_key { }; struct pfsync_state { - u_int32_t id[2]; + u_int64_t id; char ifname[IFNAMSIZ]; struct pfsync_state_key key[2]; struct pfsync_state_peer src; @@ -1809,7 +1809,7 @@ pf_release_state(struct pf_state *s) pf_free_state(s); } -extern struct pf_state *pf_find_state_byid(struct pf_state_cmp *); +extern struct pf_state *pf_find_state_byid(uint64_t, uint32_t); extern struct pf_state *pf_find_state_all(struct pf_state_key_cmp *, u_int, int *); extern void pf_print_state(struct pf_state *); From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 14:51:05 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4CEA51065670; Wed, 4 Apr 2012 14:51:05 +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 363818FC16; Wed, 4 Apr 2012 14:51:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q34Ep5EI008807; Wed, 4 Apr 2012 14:51:05 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34Ep4u6008802; Wed, 4 Apr 2012 14:51:04 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201204041451.q34Ep4u6008802@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 4 Apr 2012 14:51:04 +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: r233876 - in projects/pf/head/sys: amd64/conf contrib/pf/net i386/conf ofed/drivers/infiniband/ulp/ipoib 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, 04 Apr 2012 14:51:05 -0000 Author: glebius Date: Wed Apr 4 14:51:04 2012 New Revision: 233876 URL: http://svn.freebsd.org/changeset/base/233876 Log: Merge head r233864 through r233874. Modified: projects/pf/head/sys/amd64/conf/NOTES projects/pf/head/sys/contrib/pf/net/if_pfsync.c projects/pf/head/sys/i386/conf/NOTES projects/pf/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Directory Properties: projects/pf/head/ (props changed) projects/pf/head/sys/ (props changed) projects/pf/head/sys/contrib/pf/ (props changed) Modified: projects/pf/head/sys/amd64/conf/NOTES ============================================================================== --- projects/pf/head/sys/amd64/conf/NOTES Wed Apr 4 14:50:21 2012 (r233875) +++ projects/pf/head/sys/amd64/conf/NOTES Wed Apr 4 14:51:04 2012 (r233876) @@ -298,18 +298,18 @@ options DRM_DEBUG # Include debug print # wpi: Intel 3945ABG Wireless LAN controller # Requires the wpi firmware module -device ed +device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards options ED_3C503 options ED_HPP options ED_SIC -device ipw -device iwi -device iwn -device mwl -device nfe -device nve +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. +device mwl # Marvell 88W8363 802.11n wireless NICs. +device nfe # nVidia nForce MCP on-board Ethernet +device nve # nVidia nForce MCP on-board Ethernet Networking device sfxge -device wpi +device wpi # Intel 3945ABG wireless NICs. # IEEE 802.11 adapter firmware modules Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c ============================================================================== --- projects/pf/head/sys/contrib/pf/net/if_pfsync.c Wed Apr 4 14:50:21 2012 (r233875) +++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c Wed Apr 4 14:51:04 2012 (r233876) @@ -51,6 +51,7 @@ * 1.146 - bzero() mbuf before sparsely filling it with data * 1.170 - SIOCSIFMTU checks * 1.126, 1.142 - deferred packets processing + * 1.173 - correct expire time processing */ #include "opt_inet.h" @@ -508,11 +509,16 @@ pfsync_state_import(struct pfsync_state st->creation = time_uptime - ntohl(sp->creation); st->expire = time_second; if (sp->expire) { - /* XXX No adaptive scaling. */ - st->expire -= r->timeout[sp->timeout] - ntohl(sp->expire); + uint32_t timeout; + + timeout = r->timeout[sp->timeout]; + if (!timeout) + timeout = pf_default_rule.timeout[sp->timeout]; + + /* sp->expire may have been adaptively scaled by export. */ + st->expire -= timeout - ntohl(sp->expire); } - st->expire = ntohl(sp->expire) + time_second; st->direction = sp->direction; st->log = sp->log; st->timeout = sp->timeout; @@ -899,7 +905,7 @@ pfsync_in_upd(struct pfsync_pkt *pkt, st pfsync_alloc_scrub_memory(&sp->dst, &st->dst); pf_state_peer_ntoh(&sp->src, &st->src); pf_state_peer_ntoh(&sp->dst, &st->dst); - st->expire = ntohl(sp->expire) + time_second; + st->expire = time_second; st->timeout = sp->timeout; st->pfsync_time = time_uptime; PF_STATE_UNLOCK(st); @@ -988,7 +994,7 @@ pfsync_in_upd_c(struct pfsync_pkt *pkt, pfsync_alloc_scrub_memory(&up->dst, &st->dst); pf_state_peer_ntoh(&up->src, &st->src); pf_state_peer_ntoh(&up->dst, &st->dst); - st->expire = ntohl(up->expire) + time_second; + st->expire = time_second; st->timeout = up->timeout; st->pfsync_time = time_uptime; PF_STATE_UNLOCK(st); @@ -1427,12 +1433,6 @@ pfsync_out_upd_c(struct pf_state *st, st pf_state_peer_hton(&st->src, &up->src); pf_state_peer_hton(&st->dst, &up->dst); up->creatorid = st->creatorid; - - up->expire = pf_state_expires(st); - if (up->expire <= time_second) - up->expire = htonl(0); - else - up->expire = htonl(up->expire - time_second); up->timeout = st->timeout; return (sizeof(*up)); Modified: projects/pf/head/sys/i386/conf/NOTES ============================================================================== --- projects/pf/head/sys/i386/conf/NOTES Wed Apr 4 14:50:21 2012 (r233875) +++ projects/pf/head/sys/i386/conf/NOTES Wed Apr 4 14:51:04 2012 (r233876) @@ -574,7 +574,7 @@ hint.mse.0.irq="5" device ce device cp -device cs +device cs # Crystal Semiconductor CS89x0 NIC hint.cs.0.at="isa" hint.cs.0.port="0x300" device ctau @@ -583,7 +583,7 @@ hint.ctau.0.port="0x240" hint.ctau.0.irq="15" hint.ctau.0.drq="7" #options NETGRAPH_CRONYX # Enable NETGRAPH support for Cronyx adapter(s) -device ed +device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards options ED_3C503 options ED_HPP options ED_SIC @@ -591,21 +591,22 @@ hint.ed.0.at="isa" hint.ed.0.port="0x280" hint.ed.0.irq="5" hint.ed.0.maddr="0xd8000" -device ie # Hints only required for Starlan +device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. +# Hints only required for Starlan hint.ie.2.at="isa" hint.ie.2.port="0x300" hint.ie.2.irq="5" hint.ie.2.maddr="0xd0000" -device ipw -device iwi -device iwn +device ipw # Intel 2100 wireless NICs. +device iwi # Intel 2200BG/2225BG/2915ABG wireless NICs. +device iwn # Intel 4965/1000/5000/6000 wireless NICs. # Hint for the i386-only ISA front-end of le(4). hint.le.0.at="isa" hint.le.0.port="0x280" hint.le.0.irq="10" hint.le.0.drq="0" -device mwl -device nfe # nVidia nForce MCP on-board Ethernet Networking +device mwl # Marvell 88W8363 802.11n wireless NICs. +device nfe # nVidia nForce MCP on-board Ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device sbni hint.sbni.0.at="isa" @@ -617,7 +618,7 @@ hint.wl.0.at="isa" hint.wl.0.port="0x300" options WLCACHE # enables the signal-strength cache options WLDEBUG # enables verbose debugging output -device wpi +device wpi # Intel 3945ABG wireless NICs. # IEEE 802.11 adapter firmware modules Modified: projects/pf/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c ============================================================================== --- projects/pf/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Wed Apr 4 14:50:21 2012 (r233875) +++ projects/pf/head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Wed Apr 4 14:51:04 2012 (r233876) @@ -876,7 +876,7 @@ ipoib_intf_alloc(const char *name) dev->if_output = ipoib_output; dev->if_input = ipoib_input; dev->if_resolvemulti = ipoib_resolvemulti; - dev->if_baudrate = IF_Gbps(10LL); + dev->if_baudrate = IF_Gbps(10UL); dev->if_broadcastaddr = priv->broadcastaddr; dev->if_snd.ifq_maxlen = ipoib_sendq_size * 2; sdl = (struct sockaddr_dl *)dev->if_addr->ifa_addr; From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 19:36:57 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 7F63C1065670; Wed, 4 Apr 2012 19:36:57 +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 507D38FC08; Wed, 4 Apr 2012 19:36:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q34Jav6l021823; Wed, 4 Apr 2012 19:36:57 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34JavJG021819; Wed, 4 Apr 2012 19:36:57 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201204041936.q34JavJG021819@svn.freebsd.org> From: Olivier Houchard Date: Wed, 4 Apr 2012 19:36: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: r233880 - in projects/armv6: lib/libc/arm/gen lib/libthr/arch/arm/include share/mk 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, 04 Apr 2012 19:36:57 -0000 Author: cognet Date: Wed Apr 4 19:36:56 2012 New Revision: 233880 URL: http://svn.freebsd.org/changeset/base/233880 Log: Bring support for the new arm TLS model. Submitted by: Mark Tinguely Modified: projects/armv6/lib/libc/arm/gen/__aeabi_read_tp.c projects/armv6/lib/libthr/arch/arm/include/pthread_md.h projects/armv6/share/mk/bsd.cpu.mk Modified: projects/armv6/lib/libc/arm/gen/__aeabi_read_tp.c ============================================================================== --- projects/armv6/lib/libc/arm/gen/__aeabi_read_tp.c Wed Apr 4 17:27:13 2012 (r233879) +++ projects/armv6/lib/libc/arm/gen/__aeabi_read_tp.c Wed Apr 4 19:36:56 2012 (r233880) @@ -36,7 +36,13 @@ __FBSDID("$FreeBSD$"); void * __aeabi_read_tp() { +#ifdef ARM_TP_ADDRESS void **_tp = (void **)ARM_TP_ADDRESS; - return (*_tp); +#else + void *_tp;; + __asm __volatile("mrc p15, 0, %0, c13, c0, 3" \ + : "=r" (_tp)); + return (_tp); +#endif } Modified: projects/armv6/lib/libthr/arch/arm/include/pthread_md.h ============================================================================== --- projects/armv6/lib/libthr/arch/arm/include/pthread_md.h Wed Apr 4 17:27:13 2012 (r233879) +++ projects/armv6/lib/libthr/arch/arm/include/pthread_md.h Wed Apr 4 19:36:56 2012 (r233880) @@ -57,7 +57,11 @@ void _tcb_dtor(struct tcb *); static __inline void _tcb_set(struct tcb *tcb) { +#ifdef ARM_TP_ADDRESS + *((struct tcb **)ARM_TP_ADDRESS) = tcb; /* avoids a system call */ +#else sysarch(ARM_SET_TP, tcb); +#endif } /* @@ -66,10 +70,15 @@ _tcb_set(struct tcb *tcb) static __inline struct tcb * _tcb_get(void) { +#ifdef ARM_TP_ADDRESS + return (*((struct tcb **)ARM_TP_ADDRESS)); +#else struct tcb *tcb; - tcb = (void*)sysarch(ARM_GET_TP, NULL); + __asm __volatile("mrc p15, 0, %0, c13, c0, 3" \ + : "=r" (tcb)); return (tcb); +#endif } extern struct pthread *_thr_initial; Modified: projects/armv6/share/mk/bsd.cpu.mk ============================================================================== --- projects/armv6/share/mk/bsd.cpu.mk Wed Apr 4 17:27:13 2012 (r233879) +++ projects/armv6/share/mk/bsd.cpu.mk Wed Apr 4 19:36:56 2012 (r233880) @@ -97,11 +97,13 @@ _CPUCFLAGS = -march=${CPUTYPE} . if ${CPUTYPE} == "xscale" #XXX: gcc doesn't seem to like -mcpu=xscale, and dies while rebuilding itself #_CPUCFLAGS = -mcpu=xscale -_CPUCFLAGS = -march=armv5te -D__XSCALE__ +_CPUCFLAGS = -march=armv5te -D__XSCALE__ -DARM_WANT_TP_ADDRESS . elif ${CPUTYPE} == "armv6" _CPUCFLAGS = -march=${CPUTYPE} -DARM_ARCH_6=1 +. elif ${CPUTYPE} == "cortexa" +_CPUCFLAGS = -march=armv6 -DARM_ARCH_6=1 -mfpu=vfp . else -_CPUCFLAGS = -mcpu=${CPUTYPE} +_CPUCFLAGS = -mcpu=${CPUTYPE} -DARM_WANT_TP_ADDRESS . endif . elif ${MACHINE_ARCH} == "powerpc" . if ${CPUTYPE} == "e500" From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 19:38: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 D6A3B10657AC; Wed, 4 Apr 2012 19:38:36 +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 C16D48FC15; Wed, 4 Apr 2012 19:38: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 q34Jcat4021914; Wed, 4 Apr 2012 19:38:36 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34Jca1Q021912; Wed, 4 Apr 2012 19:38:36 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201204041938.q34Jca1Q021912@svn.freebsd.org> From: Olivier Houchard Date: Wed, 4 Apr 2012 19:38: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: r233881 - projects/armv6/sys/arm/include 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, 04 Apr 2012 19:38:36 -0000 Author: cognet Date: Wed Apr 4 19:38:36 2012 New Revision: 233881 URL: http://svn.freebsd.org/changeset/base/233881 Log: Rewrite the atomic stuff, so that we don't use ugly casts in macros which would prevent the compiler from reporting type mismatches. Suggested by: bde Modified: projects/armv6/sys/arm/include/atomic.h Modified: projects/armv6/sys/arm/include/atomic.h ============================================================================== --- projects/armv6/sys/arm/include/atomic.h Wed Apr 4 19:36:56 2012 (r233880) +++ projects/armv6/sys/arm/include/atomic.h Wed Apr 4 19:38:36 2012 (r233881) @@ -39,8 +39,6 @@ #ifndef _MACHINE_ATOMIC_H_ #define _MACHINE_ATOMIC_H_ -#ifndef _LOCORE - #include #ifndef _KERNEL @@ -74,6 +72,21 @@ __do_dmb(void) #endif } +#define ATOMIC_ACQ_REL_LONG(NAME) \ +static __inline void \ +atomic_##NAME##_acq_long(__volatile u_long *p, u_long v) \ +{ \ + atomic_##NAME##_long(p, v); \ + __do_dmb(); \ +} \ + \ +static __inline void \ +atomic_##NAME##_rel_long(__volatile u_long *p, u_long v) \ +{ \ + __do_dmb(); \ + atomic_##NAME##_long(p, v); \ +} + #define ATOMIC_ACQ_REL(NAME, WIDTH) \ static __inline void \ atomic_##NAME##_acq_##WIDTH(__volatile uint##WIDTH##_t *p, uint##WIDTH##_t v)\ @@ -105,6 +118,21 @@ atomic_set_32(volatile uint32_t *address } static __inline void +atomic_set_long(volatile u_long *address, u_long setmask) +{ + u_long tmp = 0, tmp2 = 0; + + __asm __volatile("1: ldrex %0, [%2]\n" + "orr %0, %0, %3\n" + "strex %1, %0, [%2]\n" + "cmp %1, #0\n" + "bne 1b\n" + : "=&r" (tmp), "+r" (tmp2) + , "+r" (address), "+r" (setmask) : : "memory"); + +} + +static __inline void atomic_clear_32(volatile uint32_t *address, uint32_t setmask) { uint32_t tmp = 0, tmp2 = 0; @@ -118,6 +146,20 @@ atomic_clear_32(volatile uint32_t *addre ,"+r" (address), "+r" (setmask) : : "memory"); } +static __inline void +atomic_clear_long(volatile u_long *address, u_long setmask) +{ + u_long tmp = 0, tmp2 = 0; + + __asm __volatile("1: ldrex %0, [%2]\n" + "bic %0, %0, %3\n" + "strex %1, %0, [%2]\n" + "cmp %1, #0\n" + "bne 1b\n" + : "=&r" (tmp), "+r" (tmp2) + ,"+r" (address), "+r" (setmask) : : "memory"); +} + static __inline u_int32_t atomic_cmpset_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) { @@ -137,10 +179,38 @@ atomic_cmpset_32(volatile u_int32_t *p, return (ret); } +static __inline u_long +atomic_cmpset_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval) +{ + u_long ret; + + __asm __volatile("1: ldrex %0, [%1]\n" + "cmp %0, %2\n" + "movne %0, #0\n" + "bne 2f\n" + "strex %0, %3, [%1]\n" + "cmp %0, #0\n" + "bne 1b\n" + "moveq %0, #1\n" + "2:" + : "=&r" (ret) + ,"+r" (p), "+r" (cmpval), "+r" (newval) : : "memory"); + return (ret); +} + static __inline u_int32_t atomic_cmpset_acq_32(volatile u_int32_t *p, volatile u_int32_t cmpval, volatile u_int32_t newval) { - int ret = atomic_cmpset_32(p, cmpval, newval); + u_int32_t ret = atomic_cmpset_32(p, cmpval, newval); + + __do_dmb(); + return (ret); +} + +static __inline u_long +atomic_cmpset_acq_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval) +{ + u_long ret = atomic_cmpset_long(p, cmpval, newval); __do_dmb(); return (ret); @@ -154,6 +224,15 @@ atomic_cmpset_rel_32(volatile u_int32_t return (atomic_cmpset_32(p, cmpval, newval)); } +static __inline u_long +atomic_cmpset_rel_long(volatile u_long *p, volatile u_long cmpval, volatile u_long newval) +{ + + __do_dmb(); + return (atomic_cmpset_long(p, cmpval, newval)); +} + + static __inline void atomic_add_32(volatile u_int32_t *p, u_int32_t val) { @@ -169,6 +248,20 @@ atomic_add_32(volatile u_int32_t *p, u_i } static __inline void +atomic_add_long(volatile u_long *p, u_long val) +{ + u_long tmp = 0, tmp2 = 0; + + __asm __volatile("1: ldrex %0, [%2]\n" + "add %0, %0, %3\n" + "strex %1, %0, [%2]\n" + "cmp %1, #0\n" + "bne 1b\n" + : "=&r" (tmp), "+r" (tmp2) + ,"+r" (p), "+r" (val) : : "memory"); +} + +static __inline void atomic_subtract_32(volatile u_int32_t *p, u_int32_t val) { uint32_t tmp = 0, tmp2 = 0; @@ -182,13 +275,31 @@ atomic_subtract_32(volatile u_int32_t *p ,"+r" (p), "+r" (val) : : "memory"); } +static __inline void +atomic_subtract_long(volatile u_long *p, u_long val) +{ + u_long tmp = 0, tmp2 = 0; + + __asm __volatile("1: ldrex %0, [%2]\n" + "sub %0, %0, %3\n" + "strex %1, %0, [%2]\n" + "cmp %1, #0\n" + "bne 1b\n" + : "=&r" (tmp), "+r" (tmp2) + ,"+r" (p), "+r" (val) : : "memory"); +} ATOMIC_ACQ_REL(clear, 32) ATOMIC_ACQ_REL(add, 32) ATOMIC_ACQ_REL(subtract, 32) ATOMIC_ACQ_REL(set, 32) +ATOMIC_ACQ_REL_LONG(clear) +ATOMIC_ACQ_REL_LONG(add) +ATOMIC_ACQ_REL_LONG(subtract) +ATOMIC_ACQ_REL_LONG(set) #undef ATOMIC_ACQ_REL +#undef ATOMIC_ACQ_REL_LONG static __inline uint32_t atomic_fetchadd_32(volatile uint32_t *p, uint32_t val) @@ -238,6 +349,53 @@ atomic_store_rel_32(volatile uint32_t *p *p = v; } +static __inline u_long +atomic_fetchadd_long(volatile u_long *p, u_long val) +{ + u_long tmp = 0, tmp2 = 0, ret = 0; + + __asm __volatile("1: ldrex %0, [%3]\n" + "add %1, %0, %4\n" + "strex %2, %1, [%3]\n" + "cmp %2, #0\n" + "bne 1b\n" + : "+r" (ret), "=&r" (tmp), "+r" (tmp2) + ,"+r" (p), "+r" (val) : : "memory"); + return (ret); +} + +static __inline u_long +atomic_readandclear_long(volatile u_long *p) +{ + u_long ret, tmp = 0, tmp2 = 0; + + __asm __volatile("1: ldrex %0, [%3]\n" + "mov %1, #0\n" + "strex %2, %1, [%3]\n" + "cmp %2, #0\n" + "bne 1b\n" + : "=r" (ret), "=&r" (tmp), "+r" (tmp2) + ,"+r" (p) : : "memory"); + return (ret); +} + +static __inline u_long +atomic_load_acq_long(volatile u_long *p) +{ + u_long v; + + v = *p; + __do_dmb(); + return (v); +} + +static __inline void +atomic_store_rel_long(volatile u_long *p, u_long v) +{ + + __do_dmb(); + *p = v; +} #else /* < armv6 */ #define __with_interrupts_disabled(expr) \ @@ -489,10 +647,61 @@ atomic_readandclear_32(volatile u_int32_ #define atomic_subtract_rel_32 atomic_subtract_32 #define atomic_subtract_acq_32 atomic_subtract_32 #define atomic_store_rel_32 atomic_store_32 +#define atomic_store_rel_long atomic_store_long #define atomic_load_acq_32 atomic_load_32 +#define atomic_load_acq_long atomic_load_long #undef __with_interrupts_disabled -#endif /* _LOCORE */ +static __inline void +atomic_add_long(volatile u_long *p, u_long v) +{ + + atomic_add_32((volatile uint32_t *)p, v); +} + +static __inline void +atomic_clear_long(volatile u_long *p, u_long v) +{ + + atomic_clear_32((volatile uint32_t *)p, v); +} + +static __inline int +atomic_cmpset_long(volatile u_long *dst, u_long old, u_long newe) +{ + + return (atomic_cmpset_32((volatile uint32_t *)dst, old, newe)); +} + +static __inline u_long +atomic_fetchadd_long(volatile u_long *p, u_long v) +{ + + return (atomic_fetchadd_32((volatile uint32_t *)p, v)); +} + +static __inline void +atomic_readandclear_long(volatile u_long *p) +{ + + atomic_readandclear_32((volatile uint32_t *)p); +} + +static __inline void +atomic_set_long(volatile u_long *p, u_long v) +{ + + atomic_set_32((volatile uint32_t *)p, v); +} + +static __inline void +atomic_subtract_long(volatile u_long *p, u_long v) +{ + + atomic_subtract_32((volatile uint32_t *)p, v); +} + + #endif /* Arch >= v6 */ @@ -509,57 +718,24 @@ atomic_store_32(volatile uint32_t *dst, *dst = src; } -#define atomic_set_long(p, v) \ - atomic_set_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_set_acq_long(p, v) \ - atomic_set_acq_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_set_rel_long(p, v) \ - atomic_set_rel_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_clear_long(p, v) \ - atomic_clear_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_clear_acq_long(p, v) \ - atomic_clear_acq_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_clear_rel_long(p, v) \ - atomic_clear_rel_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_add_long(p, v) \ - atomic_add_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_add_acq_long(p, v) \ - atomic_add_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_add_rel_long(p, v) \ - atomic_add_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_subtract_long(p, v) \ - atomic_subtract_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_subtract_acq_long(p, v) \ - atomic_subtract_acq_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_subtract_rel_long(p, v) \ - atomic_subtract_rel_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_cmpset_long(p, cmpval, newval) \ - atomic_cmpset_32((volatile u_int *)(p), (u_int)(cmpval), \ - (u_int)(newval)) -#define atomic_cmpset_acq_long(p, cmpval, newval) \ - atomic_cmpset_acq_32((volatile u_int *)(p), (u_int)(cmpval), \ - (u_int)(newval)) -#define atomic_cmpset_rel_long(p, cmpval, newval) \ - atomic_cmpset_rel_32((volatile u_int *)(p), (u_int)(cmpval), \ - (u_int)(newval)) -#define atomic_load_acq_long(p) \ - (u_long)atomic_load_acq_32((volatile u_int *)(p)) -#define atomic_store_rel_long(p, v) \ - atomic_store_rel_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_fetchadd_long(p, v) \ - atomic_fetchadd_32((volatile u_int *)(p), (u_int)(v)) -#define atomic_readandclear_long(p) \ - atomic_readandclear_32((volatile u_int *)(p)) +static __inline int +atomic_load_long(volatile u_long *v) +{ + + return (*v); +} +static __inline void +atomic_store_long(volatile u_long *dst, u_long src) +{ + *dst = src; +} #define atomic_clear_ptr atomic_clear_32 #define atomic_set_ptr atomic_set_32 -#define atomic_cmpset_ptr(dst, old, new) \ - atomic_cmpset_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) -#define atomic_cmpset_rel_ptr(dst, old, new) \ - atomic_cmpset_rel_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) -#define atomic_cmpset_acq_ptr(dst, old, new) \ - atomic_cmpset_acq_32((volatile u_int *)(dst), (u_int)(old), (u_int)(new)) +#define atomic_cmpset_ptr atomic_cmpset_32 +#define atomic_cmpset_rel_ptr atomic_cmpset_rel_32 +#define atomic_cmpset_acq_ptr atomic_cmpset_acq_32 #define atomic_store_ptr atomic_store_32 #define atomic_store_rel_ptr atomic_store_ptr From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 19:40:16 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8EFDD1065670; Wed, 4 Apr 2012 19:40:16 +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 78B2B8FC19; Wed, 4 Apr 2012 19:40:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q34JeGTa022018; Wed, 4 Apr 2012 19:40:16 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34JeGFA022004; Wed, 4 Apr 2012 19:40:16 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201204041940.q34JeGFA022004@svn.freebsd.org> From: Olivier Houchard Date: Wed, 4 Apr 2012 19:40:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233882 - in projects/armv6/sys: arm/arm arm/at91 arm/econa arm/include arm/mv arm/s3c2xx0 arm/sa11x0 arm/xscale 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: Wed, 04 Apr 2012 19:40:16 -0000 Author: cognet Date: Wed Apr 4 19:40:15 2012 New Revision: 233882 URL: http://svn.freebsd.org/changeset/base/233882 Log: Introduce a new option, ARM_WANT_TP_ADDRESS, and use that to check if we need the whole ARM_TP_ADDRESS mess, instead of testing #ifdef SMP Modified: projects/armv6/sys/arm/arm/machdep.c projects/armv6/sys/arm/arm/sys_machdep.c projects/armv6/sys/arm/arm/vm_machdep.c projects/armv6/sys/arm/at91/std.at91 projects/armv6/sys/arm/econa/std.econa projects/armv6/sys/arm/include/asmacros.h projects/armv6/sys/arm/include/pmap.h projects/armv6/sys/arm/include/sysarch.h projects/armv6/sys/arm/mv/std.mv projects/armv6/sys/arm/s3c2xx0/std.s3c2410 projects/armv6/sys/arm/sa11x0/std.sa11x0 projects/armv6/sys/arm/xscale/std.xscale projects/armv6/sys/conf/options.arm Modified: projects/armv6/sys/arm/arm/machdep.c ============================================================================== --- projects/armv6/sys/arm/arm/machdep.c Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/arm/machdep.c Wed Apr 4 19:40:15 2012 (r233882) @@ -265,7 +265,7 @@ static void cpu_startup(void *dummy) { struct pcb *pcb = thread0.td_pcb; -#ifndef SMP +#ifdef ARM_TP_ADDRESS #ifndef ARM_CACHE_LOCK_ENABLE vm_page_t m; #endif @@ -311,7 +311,7 @@ cpu_startup(void *dummy) vector_page_setprot(VM_PROT_READ); pmap_set_pcb_pagedir(pmap_kernel(), pcb); pmap_postinit(); -#ifndef SMP +#ifdef ARM_TP_ADDRESS #ifdef ARM_CACHE_LOCK_ENABLE pmap_kenter_user(ARM_TP_ADDRESS, ARM_TP_ADDRESS); arm_lock_cache_line(ARM_TP_ADDRESS); @@ -739,4 +739,5 @@ pcpu0_init(void) #endif pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); + PCPU_SET(cpu, 0); } Modified: projects/armv6/sys/arm/arm/sys_machdep.c ============================================================================== --- projects/armv6/sys/arm/arm/sys_machdep.c Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/arm/sys_machdep.c Wed Apr 4 19:40:15 2012 (r233882) @@ -91,7 +91,7 @@ arm32_set_tp(struct thread *td, void *ar if (td != curthread) td->td_md.md_tp = (register_t)args; else -#ifdef _ARM_ARCH_6 +#ifndef ARM_TP_ADDRESS set_tls(args); #else *(register_t *)ARM_TP_ADDRESS = (register_t)args; @@ -106,7 +106,7 @@ arm32_get_tp(struct thread *td, void *ar if (td != curthread) td->td_retval[0] = td->td_md.md_tp; else -#ifdef _ARM_ARCH_6 +#ifndef ARM_TP_ADDRESS td->td_retval[0] = (register_t)get_tls(); #else td->td_retval[0] = *(register_t *)ARM_TP_ADDRESS; Modified: projects/armv6/sys/arm/arm/vm_machdep.c ============================================================================== --- projects/armv6/sys/arm/arm/vm_machdep.c Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/arm/vm_machdep.c Wed Apr 4 19:40:15 2012 (r233882) @@ -146,7 +146,7 @@ cpu_fork(register struct thread *td1, re /* Setup to release spin count in fork_exit(). */ td2->td_md.md_spinlock_count = 1; td2->td_md.md_saved_cspr = 0; -#if !defined(SMP) +#ifdef ARM_TP_ADDRESS td2->td_md.md_tp = *(register_t *)ARM_TP_ADDRESS; #else td2->td_md.md_tp = (register_t) get_tls(); @@ -373,11 +373,10 @@ int cpu_set_user_tls(struct thread *td, void *tls_base) { - if (td != curthread) - td->td_md.md_tp = (register_t)tls_base; - else { + td->td_md.md_tp = (register_t)tls_base; + if (td == curthread) { critical_enter(); -#if !defined(SMP) +#ifdef ARM_TP_ADDRESS *(register_t *)ARM_TP_ADDRESS = (register_t)tls_base; #else set_tls((void *)tls_base); Modified: projects/armv6/sys/arm/at91/std.at91 ============================================================================== --- projects/armv6/sys/arm/at91/std.at91 Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/at91/std.at91 Wed Apr 4 19:40:15 2012 (r233882) @@ -5,3 +5,4 @@ cpu CPU_ARM9 makeoptions CONF_CFLAGS=-mcpu=arm9 options PHYSADDR=0x20000000 options NO_EVENTTIMERS +options ARM_WANT_TP_ADDRESS Modified: projects/armv6/sys/arm/econa/std.econa ============================================================================== --- projects/armv6/sys/arm/econa/std.econa Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/econa/std.econa Wed Apr 4 19:40:15 2012 (r233882) @@ -14,3 +14,4 @@ options LOADERRAMADDR=0x00000000 options STARTUP_PAGETABLE_ADDR=0x00100000 options NO_EVENTTIMERS +options ARM_WANT_TP_ADDRESS Modified: projects/armv6/sys/arm/include/asmacros.h ============================================================================== --- projects/armv6/sys/arm/include/asmacros.h Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/include/asmacros.h Wed Apr 4 19:40:15 2012 (r233882) @@ -59,7 +59,7 @@ * NOTE: r13 and r14 are stored separately as a work around for the * SA110 rev 2 STM^ bug */ -#ifndef SMP +#ifdef ARM_TP_ADDRESS #define PUSHFRAME \ str lr, [sp, #-4]!; /* Push the return address */ \ sub sp, sp, #(4*17); /* Adjust the stack pointer */ \ @@ -91,6 +91,7 @@ * Since the current mode is used, the SVC lr field is ignored. */ +#ifdef ARM_TP_ADDRESS #define PULLFRAME \ ldr r0, [sp], #0x0004; /* Get the SPSR from stack */ \ msr spsr_all, r0; \ @@ -98,6 +99,16 @@ mov r0, r0; /* NOP for previous instruction */ \ add sp, sp, #(4*17); /* Adjust the stack pointer */ \ ldr lr, [sp], #0x0004; /* Pull the return address */ +#else +#define PULLFRAME \ + ldr r0, [sp], #0x0004; /* Get the SPSR from stack */ \ + msr spsr_all, r0; \ + clrex; \ + ldmia sp, {r0-r14}^; /* Restore registers (usr mode) */ \ + mov r0, r0; /* NOP for previous instruction */ \ + add sp, sp, #(4*17); /* Adjust the stack pointer */ \ + ldr lr, [sp], #0x0004; /* Pull the return address */ +#endif /* * PUSHFRAMEINSVC - macro to push a trap frame on the stack in SVC32 mode @@ -109,7 +120,7 @@ * NOTE: r13 and r14 are stored separately as a work around for the * SA110 rev 2 STM^ bug */ -#ifndef SMP +#ifdef ARM_TP_ADDRESS #define PUSHFRAMEINSVC \ stmdb sp, {r0-r3}; /* Save 4 registers */ \ mov r0, lr; /* Save xxx32 r14 */ \ @@ -176,13 +187,24 @@ * exit. */ +#ifndef ARM_TP_ADDRESS +#define PULLFRAMEFROMSVCANDEXIT \ + ldr r0, [sp], #0x0004; /* Get the SPSR from stack */ \ + msr spsr_all, r0; /* restore SPSR */ \ + ldmia sp, {r0-r14}^; /* Restore registers (usr mode) */ \ + mov r0, r0; /* NOP for previous instruction */ \ + add sp, sp, #(4*15); /* Adjust the stack pointer */ \ + ldmia sp, {sp, lr, pc}^ /* Restore lr and exit */ +#else #define PULLFRAMEFROMSVCANDEXIT \ ldr r0, [sp], #0x0004; /* Get the SPSR from stack */ \ msr spsr_all, r0; /* restore SPSR */ \ + clrex; \ ldmia sp, {r0-r14}^; /* Restore registers (usr mode) */ \ mov r0, r0; /* NOP for previous instruction */ \ add sp, sp, #(4*15); /* Adjust the stack pointer */ \ ldmia sp, {sp, lr, pc}^ /* Restore lr and exit */ +#endif #define DATA(name) \ .data ; \ Modified: projects/armv6/sys/arm/include/pmap.h ============================================================================== --- projects/armv6/sys/arm/include/pmap.h Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/include/pmap.h Wed Apr 4 19:40:15 2012 (r233882) @@ -61,7 +61,7 @@ #else #define PTE_NOCACHE 1 #endif -#define PTE_CACHE 4 +#define PTE_CACHE 6 #define PTE_DEVICE 2 #define PTE_PAGETABLE 4 #else Modified: projects/armv6/sys/arm/include/sysarch.h ============================================================================== --- projects/armv6/sys/arm/include/sysarch.h Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/include/sysarch.h Wed Apr 4 19:40:15 2012 (r233882) @@ -50,7 +50,8 @@ * if ARM_RAS_END moves in relation to ARM_RAS_START (look for occurrances * of ldr/str rm,[rn, #4]). */ -#if !defined(SMP) + +#ifdef ARM_WANT_TP_ADDRESS #define ARM_TP_ADDRESS (ARM_VECTORS_HIGH + 0x1000) #define ARM_RAS_START (ARM_TP_ADDRESS + 4) #define ARM_RAS_END (ARM_TP_ADDRESS + 8) Modified: projects/armv6/sys/arm/mv/std.mv ============================================================================== --- projects/armv6/sys/arm/mv/std.mv Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/mv/std.mv Wed Apr 4 19:40:15 2012 (r233882) @@ -3,3 +3,4 @@ files "../mv/files.mv" cpu CPU_ARM9E makeoptions CONF_CFLAGS="-march=armv5te" +options ARM_WANT_TP_ADDRESS Modified: projects/armv6/sys/arm/s3c2xx0/std.s3c2410 ============================================================================== --- projects/armv6/sys/arm/s3c2xx0/std.s3c2410 Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/s3c2xx0/std.s3c2410 Wed Apr 4 19:40:15 2012 (r233882) @@ -5,3 +5,4 @@ cpu CPU_ARM9 makeoptions CONF_CFLAGS=-mcpu=arm920t options NO_EVENTTIMERS +options ARM_WANT_TP_ADDRESS Modified: projects/armv6/sys/arm/sa11x0/std.sa11x0 ============================================================================== --- projects/armv6/sys/arm/sa11x0/std.sa11x0 Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/sa11x0/std.sa11x0 Wed Apr 4 19:40:15 2012 (r233882) @@ -6,3 +6,4 @@ cpu CPU_SA1110 makeoptions KERNPHYSADDR=0xc0000000 makeoptions KERNVIRTADDR=0xc0000000 options NO_EVENTTIMERS +options ARM_WANT_TP_ADDRESS Modified: projects/armv6/sys/arm/xscale/std.xscale ============================================================================== --- projects/armv6/sys/arm/xscale/std.xscale Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/arm/xscale/std.xscale Wed Apr 4 19:40:15 2012 (r233882) @@ -1,3 +1,4 @@ # $FreeBSD$ options ARM_CACHE_LOCK_ENABLE options NO_EVENTTIMERS +options ARM_WANT_TP_ADDRESS Modified: projects/armv6/sys/conf/options.arm ============================================================================== --- projects/armv6/sys/conf/options.arm Wed Apr 4 19:38:36 2012 (r233881) +++ projects/armv6/sys/conf/options.arm Wed Apr 4 19:40:15 2012 (r233882) @@ -6,6 +6,7 @@ ARM_KERN_DIRECTMAP opt_vm.h ARM_L2_PIPT opt_global.h ARM_USE_SMALL_ALLOC opt_global.h ARM_VFP_SUPPORT opt_global.h +ARM_WANT_TP_ADDRESS opt_global.h AT91C_MASTER_CLOCK opt_global.h AT91C_MAIN_CLOCK opt_at91.h COUNTS_PER_SEC opt_timer.h From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 19:47:16 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6B80A1065672; Wed, 4 Apr 2012 19:47:16 +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 5748C8FC0A; Wed, 4 Apr 2012 19:47:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q34JlGRc022299; Wed, 4 Apr 2012 19:47:16 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34JlG6l022297; Wed, 4 Apr 2012 19:47:16 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201204041947.q34JlG6l022297@svn.freebsd.org> From: Olivier Houchard Date: Wed, 4 Apr 2012 19:47:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233883 - projects/armv6/sys/arm/include 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, 04 Apr 2012 19:47:16 -0000 Author: cognet Date: Wed Apr 4 19:47:15 2012 New Revision: 233883 URL: http://svn.freebsd.org/changeset/base/233883 Log: Revert that, we're not ready for that yet Modified: projects/armv6/sys/arm/include/pmap.h Modified: projects/armv6/sys/arm/include/pmap.h ============================================================================== --- projects/armv6/sys/arm/include/pmap.h Wed Apr 4 19:40:15 2012 (r233882) +++ projects/armv6/sys/arm/include/pmap.h Wed Apr 4 19:47:15 2012 (r233883) @@ -61,7 +61,7 @@ #else #define PTE_NOCACHE 1 #endif -#define PTE_CACHE 6 +#define PTE_CACHE 4 #define PTE_DEVICE 2 #define PTE_PAGETABLE 4 #else From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 19:58: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 4066A106564A; Wed, 4 Apr 2012 19:58: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 2C4578FC14; Wed, 4 Apr 2012 19:58: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 q34JwpNp022698; Wed, 4 Apr 2012 19:58:51 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34JwooL022696; Wed, 4 Apr 2012 19:58:50 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201204041958.q34JwooL022696@svn.freebsd.org> From: Olivier Houchard Date: Wed, 4 Apr 2012 19:58: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: r233884 - 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: Wed, 04 Apr 2012 19:58:51 -0000 Author: cognet Date: Wed Apr 4 19:58:50 2012 New Revision: 233884 URL: http://svn.freebsd.org/changeset/base/233884 Log: Add PL310. Rename omap_gpio to gpio 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 Wed Apr 4 19:47:15 2012 (r233883) +++ projects/armv6/sys/boot/fdt/dts/pandaboard.dts Wed Apr 4 19:58:50 2012 (r233884) @@ -62,6 +62,10 @@ < 0x48240100 0x0100 >; /* CPU Interface Registers */ }; + pl310@48242000 { + compatible = "arm,pl310"; + reg = < 0x48242000 0x1000 >; + }; mp_tmr@48240200 { compatible = "arm,mpcore-timers"; clock-frequency = < 504000000 >; @@ -111,7 +115,7 @@ GPIO: gpio { #gpio-cells = <3>; - compatible = "ti,omap_gpio"; + compatible = "ti,gpio"; gpio-controller; reg =< 0x4a310000 0x1000 0x48055000 0x1000 From owner-svn-src-projects@FreeBSD.ORG Wed Apr 4 22:40:39 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 148BA106564A; Wed, 4 Apr 2012 22:40:39 +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 0033E8FC0C; Wed, 4 Apr 2012 22:40: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 q34MecSt028417; Wed, 4 Apr 2012 22:40:38 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q34MecSe028415; Wed, 4 Apr 2012 22:40:38 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204042240.q34MecSe028415@svn.freebsd.org> From: Damjan Marion Date: Wed, 4 Apr 2012 22:40:38 +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: r233899 - 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: Wed, 04 Apr 2012 22:40:39 -0000 Author: dmarion Date: Wed Apr 4 22:40:38 2012 New Revision: 233899 URL: http://svn.freebsd.org/changeset/base/233899 Log: Missing GPIO section from my previous commit Modified: projects/armv6/sys/boot/fdt/dts/beaglebone.dts Modified: projects/armv6/sys/boot/fdt/dts/beaglebone.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/beaglebone.dts Wed Apr 4 22:24:11 2012 (r233898) +++ projects/armv6/sys/boot/fdt/dts/beaglebone.dts Wed Apr 4 22:40:38 2012 (r233899) @@ -108,6 +108,19 @@ interrupt-parent = <&AINTC>; }; + GPIO: gpio { + #gpio-cells = <3>; + compatible = "ti,gpio"; + gpio-controller; + reg =< 0x44E07000 0x1000 + 0x4804C000 0x1000 + 0x481AC000 0x1000 + 0x481AE000 0x1000 >; + interrupts = < 17 19 21 23 >; + interrupt-parent = <&AINTC>; + }; + + uart0: serial@44E09000 { compatible = "ns16550"; reg = <0x44E09000 0x1000>; From owner-svn-src-projects@FreeBSD.ORG Thu Apr 5 19:42: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 CB17C106566C; Thu, 5 Apr 2012 19:42: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 786B58FC1A; Thu, 5 Apr 2012 19:42: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 q35JgLBh074415; Thu, 5 Apr 2012 19:42:21 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q35JgL7v074413; Thu, 5 Apr 2012 19:42:21 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201204051942.q35JgL7v074413@svn.freebsd.org> From: Olivier Houchard Date: Thu, 5 Apr 2012 19:42: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: r233929 - 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: Thu, 05 Apr 2012 19:42:21 -0000 Author: cognet Date: Thu Apr 5 19:42:20 2012 New Revision: 233929 URL: http://svn.freebsd.org/changeset/base/233929 Log: Don't set pc_cpu if ARM_VFP_SUPPORT isn't set Modified: projects/armv6/sys/arm/arm/machdep.c Modified: projects/armv6/sys/arm/arm/machdep.c ============================================================================== --- projects/armv6/sys/arm/arm/machdep.c Thu Apr 5 19:32:39 2012 (r233928) +++ projects/armv6/sys/arm/arm/machdep.c Thu Apr 5 19:42:20 2012 (r233929) @@ -739,5 +739,7 @@ pcpu0_init(void) #endif pcpu_init(pcpup, 0, sizeof(struct pcpu)); PCPU_SET(curthread, &thread0); +#ifdef ARM_VFP_SUPPORT PCPU_SET(cpu, 0); +#endif } From owner-svn-src-projects@FreeBSD.ORG Thu Apr 5 22:06:11 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 54B411065670; Thu, 5 Apr 2012 22:06:11 +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 3E6568FC0A; Thu, 5 Apr 2012 22:06: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 q35M6Bq7078956; Thu, 5 Apr 2012 22:06:11 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q35M6BxM078950; Thu, 5 Apr 2012 22:06:11 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204052206.q35M6BxM078950@svn.freebsd.org> From: Damjan Marion Date: Thu, 5 Apr 2012 22:06:11 +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: r233930 - 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: Thu, 05 Apr 2012 22:06:11 -0000 Author: dmarion Date: Thu Apr 5 22:06:10 2012 New Revision: 233930 URL: http://svn.freebsd.org/changeset/base/233930 Log: Rename DMA driver to SDMA so we can introduce new EDMA driver for TI SoCs. Added: projects/armv6/sys/arm/ti/ti_sdma.c - copied, changed from r233929, projects/armv6/sys/arm/ti/omap_dma.c projects/armv6/sys/arm/ti/ti_sdma.h - copied, changed from r233929, projects/armv6/sys/arm/ti/omap_dma.h projects/armv6/sys/arm/ti/ti_sdmareg.h - copied, changed from r233929, projects/armv6/sys/arm/ti/omap_dmareg.h Deleted: 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 projects/armv6/sys/arm/ti/ti_mmchs.c Modified: projects/armv6/sys/arm/conf/PANDABOARD ============================================================================== --- projects/armv6/sys/arm/conf/PANDABOARD Thu Apr 5 19:42:20 2012 (r233929) +++ projects/armv6/sys/arm/conf/PANDABOARD Thu Apr 5 22:06:10 2012 (r233930) @@ -130,7 +130,7 @@ device smsc # SMSC LAN95xx USB Etherne # OMAP-specific devices -device omap_dma +device ti_sdma device twl device twl_vreg Modified: projects/armv6/sys/arm/ti/omap4/files.omap4 ============================================================================== --- projects/armv6/sys/arm/ti/omap4/files.omap4 Thu Apr 5 19:42:20 2012 (r233929) +++ projects/armv6/sys/arm/ti/omap4/files.omap4 Thu Apr 5 22:06:10 2012 (r233930) @@ -5,7 +5,7 @@ arm/ti/mp_timer.c standard arm/ti/ti_smc.S standard arm/ti/usb/omap_ehci.c optional usb ehci -arm/ti/omap_dma.c optional omap_dma +arm/ti/ti_sdma.c optional ti_sdma arm/ti/ti_mmchs.c optional mmc arm/ti/omap4/omap4_l2cache.c optional pl310 Modified: projects/armv6/sys/arm/ti/ti_mmchs.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_mmchs.c Thu Apr 5 19:42:20 2012 (r233929) +++ projects/armv6/sys/arm/ti/ti_mmchs.c Thu Apr 5 22:06:10 2012 (r233930) @@ -82,7 +82,7 @@ __FBSDID("$FreeBSD$"); #include "mmcbr_if.h" #include "mmcbus_if.h" -#include +#include #include #include #include @@ -152,14 +152,14 @@ struct ti_mmchs_softc { /** * 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) \ +#define TI_MMCHS_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx) +#define TI_MMCHS_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx) +#define TI_MMCHS_LOCK_INIT(_sc) \ mtx_init(&_sc->sc_mtx, device_get_nameunit(_sc->sc_dev), \ "ti_mmchs", 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); +#define TI_MMCHS_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define TI_MMCHS_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define TI_MMCHS_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); static void ti_mmchs_start(struct ti_mmchs_softc *sc); @@ -389,9 +389,9 @@ ti_mmchs_intr_error(struct ti_mmchs_soft /* Abort the DMA transfer (DDIR bit tells direction) */ if (ti_mmchs_read_4(sc, MMCHS_CMD) & MMCHS_CMD_DDIR) - omap_dma_stop_xfer(sc->sc_dmach_rd); + ti_sdma_stop_xfer(sc->sc_dmach_rd); else - omap_dma_stop_xfer(sc->sc_dmach_wr); + ti_sdma_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)) { @@ -434,7 +434,7 @@ ti_mmchs_intr(void *arg) uint32_t stat_reg; int done = 0; - OMAP_MMC_LOCK(sc); + TI_MMCHS_LOCK(sc); stat_reg = ti_mmchs_read_4(sc, MMCHS_STAT) & (ti_mmchs_read_4(sc, MMCHS_IE) | MMCHS_STAT_ERRI); @@ -442,7 +442,7 @@ ti_mmchs_intr(void *arg) if (sc->curcmd == NULL) { device_printf(sc->sc_dev, "Error: current cmd NULL, already done?\n"); ti_mmchs_write_4(sc, MMCHS_STAT, stat_reg); - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); return; } @@ -482,7 +482,7 @@ ti_mmchs_intr(void *arg) ti_mmchs_start(sc); } - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); } /** @@ -628,11 +628,11 @@ ti_mmchs_start_cmd(struct ti_mmchs_softc /* 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, + ti_sdma_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, + ti_sdma_start_xfer_packet(sc->sc_dmach_wr, paddr, sc->sc_data_reg_paddr, 1, (data->len / 4), pktsize); } @@ -713,7 +713,7 @@ ti_mmchs_request(device_t brdev, device_ { struct ti_mmchs_softc *sc = device_get_softc(brdev); - OMAP_MMC_LOCK(sc); + TI_MMCHS_LOCK(sc); /* * XXX do we want to be able to queue up multiple commands? @@ -721,7 +721,7 @@ ti_mmchs_request(device_t brdev, device_ * XXX maybe the idea is naive... */ if (sc->req != NULL) { - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); return (EBUSY); } @@ -730,7 +730,7 @@ ti_mmchs_request(device_t brdev, device_ sc->flags = 0; ti_mmchs_start(sc); - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); return (0); } @@ -757,7 +757,7 @@ ti_mmchs_get_ro(device_t brdev, device_t struct ti_mmchs_softc *sc = device_get_softc(brdev); unsigned int readonly = 0; - OMAP_MMC_LOCK(sc); + TI_MMCHS_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) @@ -766,7 +766,7 @@ ti_mmchs_get_ro(device_t brdev, device_t readonly = (readonly == 0) ? 0 : 1; } - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); return (readonly); } @@ -1048,7 +1048,7 @@ ti_mmchs_acquire_host(device_t brdev, de struct ti_mmchs_softc *sc = device_get_softc(brdev); int err = 0; - OMAP_MMC_LOCK(sc); + TI_MMCHS_LOCK(sc); while (sc->bus_busy) { msleep(sc, &sc->sc_mtx, PZERO, "mmc", hz / 5); @@ -1056,7 +1056,7 @@ ti_mmchs_acquire_host(device_t brdev, de sc->bus_busy++; - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); return (err); } @@ -1080,12 +1080,12 @@ ti_mmchs_release_host(device_t brdev, de { struct ti_mmchs_softc *sc = device_get_softc(brdev); - OMAP_MMC_LOCK(sc); + TI_MMCHS_LOCK(sc); sc->bus_busy--; wakeup(sc); - OMAP_MMC_UNLOCK(sc); + TI_MMCHS_UNLOCK(sc); return (0); } @@ -1392,32 +1392,32 @@ ti_mmchs_init_dma_channels(struct ti_mmc } /* Activate a RX channel from the OMAP DMA driver */ - err = omap_dma_activate_channel(&sc->sc_dmach_rd, ti_mmchs_dma_intr, sc); + err = ti_sdma_activate_channel(&sc->sc_dmach_rd, ti_mmchs_dma_intr, sc); if (err != 0) return(err); /* Setup the RX channel for MMC data transfers */ - omap_dma_set_xfer_burst(sc->sc_dmach_rd, OMAP_SDMA_BURST_NONE, - OMAP_SDMA_BURST_64); - omap_dma_set_xfer_data_type(sc->sc_dmach_rd, OMAP_SDMA_DATA_32BITS_SCALAR); - omap_dma_sync_params(sc->sc_dmach_rd, dma_rx_trig, - OMAP_SDMA_SYNC_PACKET | OMAP_SDMA_SYNC_TRIG_ON_SRC); - omap_dma_set_addr_mode(sc->sc_dmach_rd, OMAP_SDMA_ADDR_CONSTANT, - OMAP_SDMA_ADDR_POST_INCREMENT); + ti_sdma_set_xfer_burst(sc->sc_dmach_rd, TI_SDMA_BURST_NONE, + TI_SDMA_BURST_64); + ti_sdma_set_xfer_data_type(sc->sc_dmach_rd, TI_SDMA_DATA_32BITS_SCALAR); + ti_sdma_sync_params(sc->sc_dmach_rd, dma_rx_trig, + TI_SDMA_SYNC_PACKET | TI_SDMA_SYNC_TRIG_ON_SRC); + ti_sdma_set_addr_mode(sc->sc_dmach_rd, TI_SDMA_ADDR_CONSTANT, + TI_SDMA_ADDR_POST_INCREMENT); /* Activate and configure the TX DMA channel */ - err = omap_dma_activate_channel(&sc->sc_dmach_wr, ti_mmchs_dma_intr, sc); + err = ti_sdma_activate_channel(&sc->sc_dmach_wr, ti_mmchs_dma_intr, sc); if (err != 0) return(err); /* Setup the TX channel for MMC data transfers */ - omap_dma_set_xfer_burst(sc->sc_dmach_wr, OMAP_SDMA_BURST_64, - OMAP_SDMA_BURST_NONE); - omap_dma_set_xfer_data_type(sc->sc_dmach_wr, OMAP_SDMA_DATA_32BITS_SCALAR); - omap_dma_sync_params(sc->sc_dmach_wr, dma_tx_trig, - OMAP_SDMA_SYNC_PACKET | OMAP_SDMA_SYNC_TRIG_ON_DST); - omap_dma_set_addr_mode(sc->sc_dmach_wr, OMAP_SDMA_ADDR_POST_INCREMENT, - OMAP_SDMA_ADDR_CONSTANT); + ti_sdma_set_xfer_burst(sc->sc_dmach_wr, TI_SDMA_BURST_64, + TI_SDMA_BURST_NONE); + ti_sdma_set_xfer_data_type(sc->sc_dmach_wr, TI_SDMA_DATA_32BITS_SCALAR); + ti_sdma_sync_params(sc->sc_dmach_wr, dma_tx_trig, + TI_SDMA_SYNC_PACKET | TI_SDMA_SYNC_TRIG_ON_DST); + ti_sdma_set_addr_mode(sc->sc_dmach_wr, TI_SDMA_ADDR_POST_INCREMENT, + TI_SDMA_ADDR_CONSTANT); return(0); } @@ -1449,8 +1449,8 @@ ti_mmchs_deactivate(device_t dev) bus_generic_detach(sc->sc_dev); /* Deactivate the DMA channels */ - omap_dma_deactivate_channel(sc->sc_dmach_rd); - omap_dma_deactivate_channel(sc->sc_dmach_wr); + ti_sdma_deactivate_channel(sc->sc_dmach_rd); + ti_sdma_deactivate_channel(sc->sc_dmach_wr); /* Unmap the MMC controller registers */ if (sc->sc_mem_res != 0) { @@ -1584,7 +1584,7 @@ ti_mmchs_attach(device_t dev) sc->sc_dev = dev; /* Initiate the mtex lock */ - OMAP_MMC_LOCK_INIT(sc); + TI_MMCHS_LOCK_INIT(sc); /* Indicate the DMA channels haven't yet been allocated */ sc->sc_dmach_rd = (unsigned int)-1; @@ -1645,13 +1645,13 @@ ti_mmchs_attach(device_t dev) out: if (err) { - OMAP_MMC_LOCK_DESTROY(sc); + TI_MMCHS_LOCK_DESTROY(sc); ti_mmchs_deactivate(dev); if (sc->sc_dmach_rd != (unsigned int)-1) - omap_dma_deactivate_channel(sc->sc_dmach_rd); + ti_sdma_deactivate_channel(sc->sc_dmach_rd); if (sc->sc_dmach_wr != (unsigned int)-1) - omap_dma_deactivate_channel(sc->sc_dmach_wr); + ti_sdma_deactivate_channel(sc->sc_dmach_wr); } return (err); @@ -1674,8 +1674,8 @@ ti_mmchs_detach(device_t dev) ti_mmchs_hw_fini(dev); ti_mmchs_deactivate(dev); - omap_dma_deactivate_channel(sc->sc_dmach_wr); - omap_dma_deactivate_channel(sc->sc_dmach_rd); + ti_sdma_deactivate_channel(sc->sc_dmach_wr); + ti_sdma_deactivate_channel(sc->sc_dmach_rd); return (0); } @@ -1709,7 +1709,7 @@ static devclass_t ti_mmchs_devclass; DRIVER_MODULE(ti_mmchs, simplebus, ti_mmchs_driver, ti_mmchs_devclass, 0, 0); MODULE_DEPEND(ti_mmchs, ti_prcm, 1, 1, 1); -MODULE_DEPEND(ti_mmchs, omap_dma, 1, 1, 1); +MODULE_DEPEND(ti_mmchs, ti_sdma, 1, 1, 1); MODULE_DEPEND(ti_mmchs, ti_gpio, 1, 1, 1); /* FIXME: MODULE_DEPEND(ti_mmchs, twl_vreg, 1, 1, 1); */ Copied and modified: projects/armv6/sys/arm/ti/ti_sdma.c (from r233929, projects/armv6/sys/arm/ti/omap_dma.c) ============================================================================== --- projects/armv6/sys/arm/ti/omap_dma.c Thu Apr 5 19:42:20 2012 (r233929, copy source) +++ projects/armv6/sys/arm/ti/ti_sdma.c Thu Apr 5 22:06:10 2012 (r233930) @@ -51,8 +51,8 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include +#include +#include /** * Kernel functions for using the DMA controller @@ -76,7 +76,7 @@ __FBSDID("$FreeBSD$"); * * */ -struct omap_dma_channel { +struct ti_sdma_channel { /* * The configuration registers for the given channel, these are modified @@ -100,10 +100,10 @@ struct omap_dma_channel { /** * DMA driver context, allocated and stored globally, this driver is not - * intetned to ever be unloaded (see omap_dma_sc). + * intetned to ever be unloaded (see ti_sdma_sc). * */ -struct omap_dma_softc { +struct ti_sdma_softc { device_t sc_dev; struct resource* sc_irq_res; struct resource* sc_mem_res; @@ -124,32 +124,32 @@ struct omap_dma_softc { */ uint32_t sc_active_channels; - struct omap_dma_channel sc_channel[NUM_DMA_CHANNELS]; + struct ti_sdma_channel sc_channel[NUM_DMA_CHANNELS]; }; -static struct omap_dma_softc *omap_dma_sc = NULL; +static struct ti_sdma_softc *ti_sdma_sc = NULL; /** * Macros for driver mutex locking */ -#define OMAP_DMA_LOCK(_sc) mtx_lock_spin(&(_sc)->sc_mtx) -#define OMAP_DMA_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->sc_mtx) -#define OMAP_DMA_LOCK_INIT(_sc) \ +#define TI_SDMA_LOCK(_sc) mtx_lock_spin(&(_sc)->sc_mtx) +#define TI_SDMA_UNLOCK(_sc) mtx_unlock_spin(&(_sc)->sc_mtx) +#define TI_SDMA_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); + "ti_sdma", MTX_SPIN) +#define TI_SDMA_LOCK_DESTROY(_sc) mtx_destroy(&_sc->sc_mtx); +#define TI_SDMA_ASSERT_LOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_OWNED); +#define TI_SDMA_ASSERT_UNLOCKED(_sc) mtx_assert(&_sc->sc_mtx, MA_NOTOWNED); /** * Function prototypes * */ -static void omap_dma_intr(void *); +static void ti_sdma_intr(void *); /** - * omap_dma_read_4 - reads a 32-bit value from one of the DMA registers + * ti_sdma_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 * @@ -158,13 +158,13 @@ static void omap_dma_intr(void *); * 32-bit value read from the register. */ static inline uint32_t -omap_dma_read_4(struct omap_dma_softc *sc, bus_size_t off) +ti_sdma_read_4(struct ti_sdma_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 + * ti_sdma_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 * @@ -173,35 +173,35 @@ omap_dma_read_4(struct omap_dma_softc *s * 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) +ti_sdma_write_4(struct ti_sdma_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 + * ti_sdma_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) +ti_sdma_is_omap3_rev(struct ti_sdma_softc *sc) { return (sc->sc_hw_rev == DMA4_OMAP3_REV); } /** - * omap_dma_is_omap4_rev - returns true if H/W is from OMAP4 series + * ti_sdma_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) +ti_sdma_is_omap4_rev(struct ti_sdma_softc *sc) { return (sc->sc_hw_rev == DMA4_OMAP4_REV); } /** - * omap_dma_intr - interrupt handler for all 4 DMA IRQs + * ti_sdma_intr - interrupt handler for all 4 DMA IRQs * @arg: ignored * * Called when any of the four DMA IRQs are triggered. @@ -213,21 +213,21 @@ omap_dma_is_omap4_rev(struct omap_dma_so * nothing */ static void -omap_dma_intr(void *arg) +ti_sdma_intr(void *arg) { - struct omap_dma_softc *sc = omap_dma_sc; + struct ti_sdma_softc *sc = ti_sdma_sc; uint32_t intr; uint32_t csr; unsigned int ch, j; - struct omap_dma_channel* channel; + struct ti_sdma_channel* channel; - OMAP_DMA_LOCK(sc); + TI_SDMA_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)); + intr = ti_sdma_read_4(sc, DMA4_IRQSTATUS_L(j)); + intr &= ti_sdma_read_4(sc, DMA4_IRQENABLE_L(j)); if (intr == 0x00000000) continue; @@ -237,7 +237,7 @@ omap_dma_intr(void *arg) 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)); + csr = ti_sdma_read_4(sc, DMA4_CSR(ch)); if (csr == 0) { device_printf(sc->sc_dev, "Spurious DMA IRQ for channel " "%d\n", ch); @@ -274,8 +274,8 @@ omap_dma_intr(void *arg) } /* 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)); + ti_sdma_write_4(sc, DMA4_CSR(ch), DMA4_CSR_CLEAR_MASK); + ti_sdma_write_4(sc, DMA4_IRQSTATUS_L(j), (1 << ch)); /* Call the callback for the given channel */ if (channel->callback) @@ -284,13 +284,13 @@ omap_dma_intr(void *arg) } } - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return; } /** - * omap_dma_activate_channel - activates a DMA channel + * ti_sdma_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 @@ -300,8 +300,8 @@ omap_dma_intr(void *arg) * 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 + * ti_sdma_enable_channel_irq(). If not using IRQ to detect the end of the + * transfer, you can use ti_sdma_status_poll() to detect a change in the * status. * * A channel must be activated before any of the other DMA functions can be @@ -314,12 +314,12 @@ omap_dma_intr(void *arg) * 0 on success, otherwise an error code */ int -omap_dma_activate_channel(unsigned int *ch, +ti_sdma_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; + struct ti_sdma_softc *sc = ti_sdma_sc; + struct ti_sdma_channel *channel = NULL; uint32_t addr; unsigned int i; @@ -330,11 +330,11 @@ omap_dma_activate_channel(unsigned int * if (ch == NULL) return (EINVAL); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); /* Check to see if all channels are in use */ if (sc->sc_active_channels == 0xffffffff) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (ENOMEM); } @@ -380,15 +380,15 @@ omap_dma_activate_channel(unsigned int * /* 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); + ti_sdma_write_4(sc, addr, 0x00000000); - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return 0; } /** - * omap_dma_deactivate_channel - deactivates a channel + * ti_sdma_deactivate_channel - deactivates a channel * @ch: the channel to deactivate * * @@ -400,9 +400,9 @@ omap_dma_activate_channel(unsigned int * * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_deactivate_channel(unsigned int ch) +ti_sdma_deactivate_channel(unsigned int ch) { - struct omap_dma_softc *sc = omap_dma_sc; + struct ti_sdma_softc *sc = ti_sdma_sc; unsigned int j; unsigned int addr; @@ -410,11 +410,11 @@ omap_dma_deactivate_channel(unsigned int if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); /* First check if the channel is currently active */ if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (EBUSY); } @@ -422,28 +422,28 @@ omap_dma_deactivate_channel(unsigned int sc->sc_active_channels &= ~(1 << ch); /* Disable all DMA interrupts for the channel. */ - omap_dma_write_4(sc, DMA4_CICR(ch), 0); + ti_sdma_write_4(sc, DMA4_CICR(ch), 0); /* Make sure the DMA transfer is stopped. */ - omap_dma_write_4(sc, DMA4_CCR(ch), 0); + ti_sdma_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); + ti_sdma_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)); + ti_sdma_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); + ti_sdma_write_4(sc, addr, 0x00000000); - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return 0; } /** - * omap_dma_disable_channel_irq - disables IRQ's on the given channel + * ti_sdma_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. @@ -455,9 +455,9 @@ omap_dma_deactivate_channel(unsigned int * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_disable_channel_irq(unsigned int ch) +ti_sdma_disable_channel_irq(unsigned int ch) { - struct omap_dma_softc *sc = omap_dma_sc; + struct ti_sdma_softc *sc = ti_sdma_sc; uint32_t irq_enable; unsigned int j; @@ -465,35 +465,35 @@ omap_dma_disable_channel_irq(unsigned in if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_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); + ti_sdma_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 = ti_sdma_read_4(sc, DMA4_IRQENABLE_L(j)); irq_enable &= ~(1 << ch); - omap_dma_write_4(sc, DMA4_IRQENABLE_L(j), irq_enable); + ti_sdma_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); + TI_SDMA_UNLOCK(sc); return (0); } /** - * omap_dma_disable_channel_irq - enables IRQ's on the given channel + * ti_sdma_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 * @@ -514,19 +514,19 @@ omap_dma_disable_channel_irq(unsigned in * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_enable_channel_irq(unsigned int ch, uint32_t flags) +ti_sdma_enable_channel_irq(unsigned int ch, uint32_t flags) { - struct omap_dma_softc *sc = omap_dma_sc; + struct ti_sdma_softc *sc = ti_sdma_sc; uint32_t irq_enable; /* Sanity check */ if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (EINVAL); } @@ -537,24 +537,24 @@ omap_dma_enable_channel_irq(unsigned int sc->sc_channel[ch].reg_cicr = flags; /* Write the values to the register */ - omap_dma_write_4(sc, DMA4_CICR(ch), flags); + ti_sdma_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 = ti_sdma_read_4(sc, DMA4_IRQENABLE_L(0)); irq_enable |= (1 << ch); - omap_dma_write_4(sc, DMA4_IRQENABLE_L(0), irq_enable); + ti_sdma_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); + TI_SDMA_UNLOCK(sc); return (0); } /** - * omap_dma_get_channel_status - returns the status of a given channel + * ti_sdma_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. @@ -580,25 +580,25 @@ omap_dma_enable_channel_irq(unsigned int * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_get_channel_status(unsigned int ch, uint32_t *status) +ti_sdma_get_channel_status(unsigned int ch, uint32_t *status) { - struct omap_dma_softc *sc = omap_dma_sc; + struct ti_sdma_softc *sc = ti_sdma_sc; uint32_t csr; /* Sanity check */ if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (EINVAL); } - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); - csr = omap_dma_read_4(sc, DMA4_CSR(ch)); + csr = ti_sdma_read_4(sc, DMA4_CSR(ch)); if (status != NULL) *status = csr; @@ -607,13 +607,13 @@ omap_dma_get_channel_status(unsigned int } /** - * omap_dma_start_xfer - starts a DMA transfer + * ti_sdma_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() + * or 32-bit value as defined by ti_sdma_set_xfer_burst() * * * LOCKING: @@ -623,80 +623,80 @@ omap_dma_get_channel_status(unsigned int * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_start_xfer(unsigned int ch, unsigned int src_paddr, +ti_sdma_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; + struct ti_sdma_softc *sc = ti_sdma_sc; + struct ti_sdma_channel *channel; uint32_t ccr; /* Sanity check */ if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (EINVAL); } channel = &sc->sc_channel[ch]; /* a) Write the CSDP register */ - omap_dma_write_4(sc, DMA4_CSDP(ch), + ti_sdma_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); + ti_sdma_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); + ti_sdma_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); + ti_sdma_write_4(sc, DMA4_CSSA(ch), src_paddr); + ti_sdma_write_4(sc, DMA4_CDSA(ch), dst_paddr); /* e) Write the CCR register */ - omap_dma_write_4(sc, DMA4_CCR(ch), channel->reg_ccr); + ti_sdma_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); + ti_sdma_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); + ti_sdma_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); + ti_sdma_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); + ti_sdma_write_4(sc, DMA4_CDF(ch), 0x0001); /* Clear the status register */ - omap_dma_write_4(sc, DMA4_CSR(ch), 0x1FFE); + ti_sdma_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 = ti_sdma_read_4(sc, DMA4_CCR(ch)); ccr |= (1 << 7); - omap_dma_write_4(sc, DMA4_CCR(ch), ccr); + ti_sdma_write_4(sc, DMA4_CCR(ch), ccr); /* Clear the reg write flag */ channel->need_reg_write = 0; - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (0); } /** - * omap_dma_start_xfer_packet - starts a packet DMA transfer + * ti_sdma_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() + * or 32-bit value as defined by ti_sdma_set_xfer_burst() * @pktsize: the number of elements in each transfer packet * * The @frmcnt and @elmcnt define the overall number of bytes to transfer, @@ -717,22 +717,22 @@ omap_dma_start_xfer(unsigned int ch, uns * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_start_xfer_packet(unsigned int ch, unsigned int src_paddr, +ti_sdma_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; + struct ti_sdma_softc *sc = ti_sdma_sc; + struct ti_sdma_channel *channel; uint32_t ccr; /* Sanity check */ if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (EINVAL); } @@ -740,53 +740,53 @@ omap_dma_start_xfer_packet(unsigned int /* a) Write the CSDP register */ if (channel->need_reg_write) - omap_dma_write_4(sc, DMA4_CSDP(ch), + ti_sdma_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); + ti_sdma_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); + ti_sdma_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); + ti_sdma_write_4(sc, DMA4_CSSA(ch), src_paddr); + ti_sdma_write_4(sc, DMA4_CDSA(ch), dst_paddr); /* e) Write the CCR register */ - omap_dma_write_4(sc, DMA4_CCR(ch), + ti_sdma_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); + ti_sdma_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); + ti_sdma_write_4(sc, DMA4_CSF(ch), pktsize); else - omap_dma_write_4(sc, DMA4_CDE(ch), pktsize); + ti_sdma_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); + ti_sdma_write_4(sc, DMA4_CDF(ch), 0x0001); /* Clear the status register */ - omap_dma_write_4(sc, DMA4_CSR(ch), 0x1FFE); + ti_sdma_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 = ti_sdma_read_4(sc, DMA4_CCR(ch)); ccr |= (1 << 7); - omap_dma_write_4(sc, DMA4_CCR(ch), ccr); + ti_sdma_write_4(sc, DMA4_CCR(ch), ccr); /* Clear the reg write flag */ channel->need_reg_write = 0; - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (0); } /** - * omap_dma_stop_xfer - stops any currently active transfers + * ti_sdma_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. @@ -798,44 +798,44 @@ omap_dma_start_xfer_packet(unsigned int * EH_HANDLED or EH_NOT_HANDLED */ int -omap_dma_stop_xfer(unsigned int ch) +ti_sdma_stop_xfer(unsigned int ch) { - struct omap_dma_softc *sc = omap_dma_sc; + struct ti_sdma_softc *sc = ti_sdma_sc; unsigned int j; /* Sanity check */ if (sc == NULL) return (ENOMEM); - OMAP_DMA_LOCK(sc); + TI_SDMA_LOCK(sc); if ((sc->sc_active_channels & (1 << ch)) == 0) { - OMAP_DMA_UNLOCK(sc); + TI_SDMA_UNLOCK(sc); return (EINVAL); } /* Disable all DMA interrupts for the channel. */ - omap_dma_write_4(sc, DMA4_CICR(ch), 0); + ti_sdma_write_4(sc, DMA4_CICR(ch), 0); /* Make sure the DMA transfer is stopped. */ - omap_dma_write_4(sc, DMA4_CCR(ch), 0); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Fri Apr 6 21:40:28 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5B7DD106564A; Fri, 6 Apr 2012 21:40:28 +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 4677B8FC0A; Fri, 6 Apr 2012 21:40:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q36LeSDM027261; Fri, 6 Apr 2012 21:40:28 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q36LeS5c027257; Fri, 6 Apr 2012 21:40:28 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204062140.q36LeS5c027257@svn.freebsd.org> From: Damjan Marion Date: Fri, 6 Apr 2012 21:40: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: r233962 - 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: Fri, 06 Apr 2012 21:40:28 -0000 Author: dmarion Date: Fri Apr 6 21:40:27 2012 New Revision: 233962 URL: http://svn.freebsd.org/changeset/base/233962 Log: On some devices MMC controller numbering starts from 0. Also it is unreliable to enable clocks based on device_get_unit(). Modified: projects/armv6/sys/arm/ti/ti_mmchs.c projects/armv6/sys/arm/ti/ti_prcm.h projects/armv6/sys/boot/fdt/dts/pandaboard.dts Modified: projects/armv6/sys/arm/ti/ti_mmchs.c ============================================================================== --- projects/armv6/sys/arm/ti/ti_mmchs.c Fri Apr 6 21:19:28 2012 (r233961) +++ projects/armv6/sys/arm/ti/ti_mmchs.c Fri Apr 6 21:40:27 2012 (r233962) @@ -102,6 +102,7 @@ __FBSDID("$FreeBSD$"); */ struct ti_mmchs_softc { device_t sc_dev; + uint32_t device_id; struct resource* sc_irq_res; struct resource* sc_mem_res; @@ -1240,7 +1241,7 @@ ti_mmchs_hw_init(device_t dev) uint32_t con; /* 1: Enable the controller and interface/functional clocks */ - clk = MMC1_CLK + device_get_unit(dev); + clk = MMC0_CLK + sc->device_id; if (ti_prcm_clk_enable(clk) != 0) { device_printf(dev, "Error: failed to enable MMC clock\n"); @@ -1322,17 +1323,7 @@ ti_mmchs_hw_fini(device_t dev) ti_mmchs_write_4(sc, MMCHS_IE, 0x00000000); /* Disable the functional and interface clocks */ - switch (device_get_unit(dev)) { - case 0: - ti_prcm_clk_disable(MMC1_CLK); - break; - case 1: - ti_prcm_clk_disable(MMC2_CLK); - break; - case 2: - ti_prcm_clk_disable(MMC3_CLK); - break; - } + ti_prcm_clk_disable(MMC0_CLK + sc->device_id); } /** @@ -1351,39 +1342,35 @@ static int ti_mmchs_init_dma_channels(struct ti_mmchs_softc *sc) { int err; - int unit; uint32_t rev; int dma_rx_trig = -1; int dma_tx_trig = -1; - /* Get the device unit number, needed for getting the DMA trigger number */ - unit = device_get_unit(sc->sc_dev); - /* Get the current chip revision */ rev = ti_revision(); - if ((OMAP_REV_DEVICE(rev) != OMAP4430_DEV) && (unit > 2)) + if ((OMAP_REV_DEVICE(rev) != OMAP4430_DEV) && (sc->device_id > 3)) return(-EINVAL); /* Get the DMA MMC triggers */ - switch (unit) { - case 0: + switch (sc->device_id) { + case 1: dma_tx_trig = 60; dma_rx_trig = 61; break; - case 1: + case 2: dma_tx_trig = 46; dma_rx_trig = 47; break; - case 2: + case 3: dma_tx_trig = 76; dma_rx_trig = 77; break; /* The following are OMAP4 only */ - case 3: + case 4: dma_tx_trig = 56; dma_rx_trig = 57; break; - case 4: + case 5: dma_tx_trig = 58; dma_rx_trig = 59; break; @@ -1577,12 +1564,22 @@ ti_mmchs_attach(device_t dev) { struct ti_mmchs_softc *sc = device_get_softc(dev); int unit = device_get_unit(dev); + phandle_t node; + pcell_t did; int err; device_t child; /* Save the device and bus tag */ sc->sc_dev = dev; + /* Get the mmchs device id from FDT */ + node = ofw_bus_get_node(dev); + if ((OF_getprop(node, "mmchs-device-id", &did, sizeof(did))) <= 0) { + device_printf(dev, "missing mmchs-device-id attribute in FDT\n"); + return (ENXIO); + } + sc->device_id = fdt32_to_cpu(did); + /* Initiate the mtex lock */ TI_MMCHS_LOCK_INIT(sc); @@ -1591,6 +1588,7 @@ ti_mmchs_attach(device_t dev) sc->sc_dmach_wr = (unsigned int)-1; /* Get the hint'ed write detect pin */ + /* TODO: take this from FDT */ if (resource_int_value("ti_mmchs", unit, "wp_gpio", &sc->sc_wp_gpio_pin) != 0){ sc->sc_wp_gpio_pin = -1; } else { Modified: projects/armv6/sys/arm/ti/ti_prcm.h ============================================================================== --- projects/armv6/sys/arm/ti/ti_prcm.h Fri Apr 6 21:19:28 2012 (r233961) +++ projects/armv6/sys/arm/ti/ti_prcm.h Fri Apr 6 21:40:27 2012 (r233962) @@ -53,7 +53,8 @@ typedef enum { MPU_CLK = 20, /* MMC modules */ - MMC1_CLK = 100, + MMC0_CLK = 100, + MMC1_CLK, MMC2_CLK, MMC3_CLK, MMC4_CLK, Modified: projects/armv6/sys/boot/fdt/dts/pandaboard.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/pandaboard.dts Fri Apr 6 21:19:28 2012 (r233961) +++ projects/armv6/sys/boot/fdt/dts/pandaboard.dts Fri Apr 6 21:40:27 2012 (r233962) @@ -170,6 +170,7 @@ reg =<0x4809C000 0x1000 >; interrupts = <115>; interrupt-parent = <&GIC>; + mmchs-device-id = <1>; }; }; From owner-svn-src-projects@FreeBSD.ORG Fri Apr 6 22:51:03 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 35312106566B; Fri, 6 Apr 2012 22:51:03 +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 D7F138FC14; Fri, 6 Apr 2012 22:51:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q36Mp2Jx029872; Fri, 6 Apr 2012 22:51:02 GMT (envelope-from dmarion@svn.freebsd.org) Received: (from dmarion@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q36Mp2oi029868; Fri, 6 Apr 2012 22:51:02 GMT (envelope-from dmarion@svn.freebsd.org) Message-Id: <201204062251.q36Mp2oi029868@svn.freebsd.org> From: Damjan Marion Date: Fri, 6 Apr 2012 22:51:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233965 - in projects/armv6/sys: 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: Fri, 06 Apr 2012 22:51:03 -0000 Author: dmarion Date: Fri Apr 6 22:51:02 2012 New Revision: 233965 URL: http://svn.freebsd.org/changeset/base/233965 Log: pinmux and clocks for MMC controllers on AM335x Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c projects/armv6/sys/boot/fdt/dts/beaglebone.dts Modified: projects/armv6/sys/arm/ti/am335x/am335x_prcm.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Fri Apr 6 22:33:13 2012 (r233964) +++ projects/armv6/sys/arm/ti/am335x/am335x_prcm.c Fri Apr 6 22:51:02 2012 (r233965) @@ -61,6 +61,7 @@ __FBSDID("$FreeBSD$"); #define CM_PER_CPGMAC0_CLKCTRL (CM_PER + 0x014) #define CM_PER_USB0_CLKCTRL (CM_PER + 0x01C) #define CM_PER_TPTC0_CLKCTRL (CM_PER + 0x024) +#define CM_PER_MMC0_CLKCTRL (CM_PER + 0x03C) #define CM_PER_I2C2_CLKCTRL (CM_PER + 0x044) #define CM_PER_I2C1_CLKCTRL (CM_PER + 0x048) #define CM_PER_TIMER7_CLKCTRL (CM_PER + 0x07C) @@ -75,6 +76,8 @@ __FBSDID("$FreeBSD$"); #define CM_PER_L3_CLKCTRL (CM_PER + 0x0E0) #define CM_PER_TIMER5_CLKCTRL (CM_PER + 0x0EC) #define CM_PER_TIMER6_CLKCTRL (CM_PER + 0x0F0) +#define CM_PER_MMC1_CLKCTRL (CM_PER + 0x0F4) +#define CM_PER_MMC2_CLKCTRL (CM_PER + 0x0F8) #define CM_PER_TPTC1_CLKCTRL (CM_PER + 0x0FC) #define CM_PER_TPTC2_CLKCTRL (CM_PER + 0x100) #define CM_PER_OCPWP_L3_CLKSTCTRL (CM_PER + 0x12C) @@ -117,6 +120,7 @@ static struct am335x_prcm_softc *am335x_ 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_hsmmc_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq); 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); @@ -132,6 +136,15 @@ static int am335x_clk_musb0_activate(str .clk_get_source_freq = NULL \ } +#define AM335X_MMCHS_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 = am335x_clk_hsmmc_get_source_freq \ + } + struct ti_clock_dev ti_clk_devmap[] = { /* System clocks */ { .id = SYS_CLK, @@ -192,6 +205,11 @@ struct ti_clock_dev ti_clk_devmap[] = { AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC1_CLK), AM335X_GENERIC_CLOCK_DEV(EDMA_TPTC2_CLK), + /* MMCHS */ + AM335X_MMCHS_CLOCK_DEV(MMC0_CLK), + AM335X_MMCHS_CLOCK_DEV(MMC1_CLK), + AM335X_MMCHS_CLOCK_DEV(MMC2_CLK), + { INVALID_CLK_IDENT, NULL, NULL, NULL, NULL } }; @@ -234,6 +252,11 @@ static struct am335x_clk_details g_am335 _CLK_DETAIL(EDMA_TPTC1_CLK, CM_PER_TPTC1_CLKCTRL, 0), _CLK_DETAIL(EDMA_TPTC2_CLK, CM_PER_TPTC2_CLKCTRL, 0), + /* MMCHS modules*/ + _CLK_DETAIL(MMC0_CLK, CM_PER_MMC0_CLKCTRL, 0), + _CLK_DETAIL(MMC1_CLK, CM_PER_MMC1_CLKCTRL, 0), + _CLK_DETAIL(MMC2_CLK, CM_PER_MMC1_CLKCTRL, 0), + { INVALID_CLK_IDENT, 0}, }; @@ -248,9 +271,6 @@ void am335x_prcm_setup_dmtimer(int); static int am335x_prcm_probe(device_t dev) { - struct am335x_prcm_softc *sc; - sc = (struct am335x_prcm_softc *)device_get_softc(dev); - if (ofw_bus_is_compatible(dev, "am335x,prcm")) { device_set_desc(dev, "AM335x Power and Clock Management"); return(BUS_PROBE_DEFAULT); @@ -399,6 +419,13 @@ am335x_clk_generic_set_source(struct ti_ } static int +am335x_clk_hsmmc_get_source_freq(struct ti_clock_dev *clkdev, unsigned int *freq) +{ + *freq = 96000000; + return (0); +} + +static int am335x_clk_get_sysclk_freq(struct ti_clock_dev *clkdev, unsigned int *freq) { uint32_t ctrl_status; Modified: projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c ============================================================================== --- projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c Fri Apr 6 22:33:13 2012 (r233964) +++ projects/armv6/sys/arm/ti/am335x/am335x_scm_padconf.c Fri Apr 6 22:51:02 2012 (r233965) @@ -140,13 +140,13 @@ const struct ti_scm_padconf ti_padconf_d _PIN(0x8e4, "lcd_hsync", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), _PIN(0x8e8, "lcd_pclk", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), _PIN(0x8ec, "lcd_ac_bias_en", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - _PIN(0x8f0, "mmc0_dat3", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - _PIN(0x8f4, "mmc0_dat2", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - _PIN(0x8f8, "mmc0_dat1", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - _PIN(0x8fc, "mmc0_dat0", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - _PIN(0x900, "mmc0_clk", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - _PIN(0x904, "mmc0_cmd", 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), #endif + _PIN(0x8f0, "MMC0_DAT3", 90, 7, "mmc0_dat3", "gpmc_a20", "uart4_ctsn", "timer5", "uart1_dcdn", "pr1_pru0_pru_r30_8", "pr1_pru0_pru_r31_8", "gpio2_26"), + _PIN(0x8f4, "MMC0_DAT2", 91, 7, "mmc0_dat2", "gpmc_a21", "uart4_rtsn", "timer6", "uart1_dsrn", "pr1_pru0_pru_r30_9", "pr1_pru0_pru_r31_9", "gpio2_27"), + _PIN(0x8f8, "MMC0_DAT1", 92, 7, "mmc0_dat1", "gpmc_a22", "uart5_ctsn", "uart3_rxd", "uart1_dtrn", "pr1_pru0_pru_r30_10", "pr1_pru0_pru_r31_10", "gpio2_28"), + _PIN(0x8fc, "MMC0_DAT0", 93, 7, "mmc0_dat0", "gpmc_a23", "uart5_rtsn", "uart3_txd", "uart1_rin", "pr1_pru0_pru_r30_11", "pr1_pru0_pru_r31_11", "gpio2_29"), + _PIN(0x900, "MMC0_CLK", 94, 7, "mmc0_clk", "gpmc_a24", "uart3_ctsn", "uart2_rxd", "dcan1_tx", "pr1_pru0_pru_r30_12", "pr1_pru0_pru_r31_12", "gpio2_30"), + _PIN(0x904, "MMC0_CMD", 95, 7, "mmc0_cmd", "gpmc_a25", "uart3_rtsn", "uart2_txd", "dcan1_rx", "pr1_pru0_pru_r30_13", "pr1_pru0_pru_r31_13", "gpio2_31"), _PIN(0x908, "MII1_COL", 96, 7, "gmii1_col", "rmii2_refclk", "spi1_sclk", "uart5_rxd", "mcasp1_axr2", "mmc2_dat3", "mcasp0_axr2", "gpio3_0"), _PIN(0x90c, "MII1_CRS", 97, 7, "gmii1_crs", "rmii1_crs_dv", "spi1_d0", "I2C1_SDA", "mcasp1_aclkx", "uart5_ctsn", "uart2_rxd", "gpio3_1"), _PIN(0x910, "MII1_RX_ER", 98, 7, "gmii1_rxerr", "rmii1_rxerr", "spi1_d1", "I2C1_SCL", "mcasp1_fsx", "uart5_rtsn", "uart2_txd", "gpio3_2"), Modified: projects/armv6/sys/boot/fdt/dts/beaglebone.dts ============================================================================== --- projects/armv6/sys/boot/fdt/dts/beaglebone.dts Fri Apr 6 22:33:13 2012 (r233964) +++ projects/armv6/sys/boot/fdt/dts/beaglebone.dts Fri Apr 6 22:51:02 2012 (r233965) @@ -82,7 +82,14 @@ "MII1_RXD1", "gmii1_rxd1", "input", "MII1_RXD0", "gmii1_rxd0", "input", "MDIO", "mdio_data", "input_pullup_inact", - "MDC", "mdio_clk", "output_pullup"; + "MDC", "mdio_clk", "output_pullup", + /* MMCSD0 */ + "MMC0_CMD", "mmc0_cmd", "input_pullup_inact", + "MMC0_CLK", "mmc0_clk", "input_pullup_inact", + "MMC0_DAT0", "mmc0_dat0", "input_pullup_inact", + "MMC0_DAT1", "mmc0_dat1", "input_pullup_inact", + "MMC0_DAT2", "mmc0_dat2", "input_pullup_inact", + "MMC0_DAT3", "mmc0_dat3", "input_pullup_inact"; }; prcm@44E00000 { @@ -118,6 +125,7 @@ 0x481AE000 0x1000 >; interrupts = < 17 19 21 23 >; interrupt-parent = <&AINTC>; + mmchs-device-id = <0>; }; From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 03:10: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 5F850106566C; Sat, 7 Apr 2012 03:10:27 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A17A8FC0A; Sat, 7 Apr 2012 03:10: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 q373ARUY038841; Sat, 7 Apr 2012 03:10:27 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q373ARgt038839; Sat, 7 Apr 2012 03:10:27 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070310.q373ARgt038839@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 03:10:27 +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: r233968 - projects/nand/lib/libstand 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, 07 Apr 2012 03:10:27 -0000 Author: gber Date: Sat Apr 7 03:10:26 2012 New Revision: 233968 URL: http://svn.freebsd.org/changeset/base/233968 Log: libstand: Cleanup Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/lib/libstand/nandfs.c Modified: projects/nand/lib/libstand/nandfs.c ============================================================================== --- projects/nand/lib/libstand/nandfs.c Sat Apr 7 02:51:53 2012 (r233967) +++ projects/nand/lib/libstand/nandfs.c Sat Apr 7 03:10:26 2012 (r233968) @@ -53,14 +53,14 @@ struct nandfs_mdt { }; struct bmap_buf { - LIST_ENTRY(bmap_buf) list; - nandfs_daddr_t blknr; - uint64_t *map; + LIST_ENTRY(bmap_buf) list; + nandfs_daddr_t blknr; + uint64_t *map; }; struct nandfs_node { - struct nandfs_inode *inode; - LIST_HEAD(, bmap_buf) bmap_bufs; + struct nandfs_inode *inode; + LIST_HEAD(, bmap_buf) bmap_bufs; }; struct nandfs { int nf_blocksize; @@ -87,33 +87,29 @@ struct nandfs { int nf_nindir[NIADDR]; }; -static int nandfs_open(const char *path, struct open_file *f); -static int nandfs_close(struct open_file *f); -static int nandfs_read(struct open_file *f, void *buf, size_t size, - size_t *resid); -static off_t nandfs_seek(struct open_file *f, off_t offset, int where); -static int nandfs_stat(struct open_file *f, struct stat *sb); -static int nandfs_readdir(struct open_file *f, struct dirent *d); - -static int nandfs_buf_read(struct nandfs *fs, char **buf_p, size_t *size_p); -static struct nandfs_node *nandfs_lookup_inode(struct nandfs *fs, nandfs_daddr_t ino); -static struct nandfs_node *nandfs_lookup_path(struct nandfs *fs, - const char *path); -static int nandfs_read_inode(struct nandfs *fs, struct nandfs_node *node, - nandfs_lbn_t blknr, u_int nblks, void *buf, int raw); -static int nandfs_read_blk(struct nandfs *fs, nandfs_daddr_t blknr, void *buf, - int phys); -static int nandfs_bmap_lookup(struct nandfs *fs, struct nandfs_node *ino, - nandfs_lbn_t lblknr, nandfs_daddr_t *vblknr, int phys); -static int nandfs_get_checkpoint(struct nandfs *fs, uint64_t cpno, - struct nandfs_checkpoint *cp); -static nandfs_daddr_t nandfs_vtop(struct nandfs *fs, nandfs_daddr_t vblocknr); -static void nandfs_calc_mdt_consts(int blocksize, struct nandfs_mdt *mdt, - int entry_size); -static void nandfs_mdt_trans(struct nandfs_mdt *mdt, uint64_t index, - nandfs_daddr_t *blocknr, uint32_t *entry_in_block); -static int ioread(struct open_file *f, off_t pos, void *buf, u_int length); -static int nandfs_probe_sectorsize(struct open_file *f); +static int nandfs_open(const char *, struct open_file *); +static int nandfs_close(struct open_file *); +static int nandfs_read(struct open_file *, void *, size_t, size_t *); +static off_t nandfs_seek(struct open_file *, off_t, int); +static int nandfs_stat(struct open_file *, struct stat *); +static int nandfs_readdir(struct open_file *, struct dirent *); + +static int nandfs_buf_read(struct nandfs *, char **, size_t *); +static struct nandfs_node *nandfs_lookup_inode(struct nandfs *, nandfs_daddr_t); +static struct nandfs_node *nandfs_lookup_path(struct nandfs *, const char *); +static int nandfs_read_inode(struct nandfs *, struct nandfs_node *, + nandfs_lbn_t, u_int, void *, int); +static int nandfs_read_blk(struct nandfs *, nandfs_daddr_t, void *, int); +static int nandfs_bmap_lookup(struct nandfs *, struct nandfs_node *, + nandfs_lbn_t, nandfs_daddr_t *, int); +static int nandfs_get_checkpoint(struct nandfs *, uint64_t, + struct nandfs_checkpoint *); +static nandfs_daddr_t nandfs_vtop(struct nandfs *, nandfs_daddr_t); +static void nandfs_calc_mdt_consts(int, struct nandfs_mdt *, int); +static void nandfs_mdt_trans(struct nandfs_mdt *, uint64_t, + nandfs_daddr_t *, uint32_t *); +static int ioread(struct open_file *, off_t, void *, u_int); +static int nandfs_probe_sectorsize(struct open_file *); struct fs_ops nandfs_fsops = { "nandfs", @@ -126,7 +122,7 @@ struct fs_ops nandfs_fsops = { nandfs_readdir }; -#define NINDIR(fs) ((fs)->nf_blocksize / sizeof(nandfs_daddr_t)) +#define NINDIR(fs) ((fs)->nf_blocksize / sizeof(nandfs_daddr_t)) /* from NetBSD's src/sys/net/if_ethersubr.c */ static uint32_t @@ -157,18 +153,18 @@ nandfs_check_fsdata_crc(struct nandfs_fs if (fsdata->f_magic != NANDFS_FSDATA_MAGIC) return (0); - /* preserve crc */ + /* Preserve crc */ fsdata_crc = fsdata->f_sum; - /* calculate */ + /* Calculate */ fsdata->f_sum = (0); comp_crc = crc32_le(fsdata->f_crc_seed, (uint8_t *) fsdata, fsdata->f_bytes); - /* restore */ + /* Restore */ fsdata->f_sum = fsdata_crc; - /* check CRC */ + /* Check CRC */ return (fsdata_crc == comp_crc); } @@ -178,22 +174,22 @@ nandfs_check_superblock_crc(struct nandf { uint32_t super_crc, comp_crc; - /* check super block magic */ + /* Check super block magic */ if (super->s_magic != NANDFS_SUPER_MAGIC) return (0); - /* preserve crc */ + /* Preserve CRC */ super_crc = super->s_sum; - /* calculate */ + /* Calculate */ super->s_sum = (0); comp_crc = crc32_le(fsdata->f_crc_seed, (uint8_t *) super, fsdata->f_sbbytes); - /* restore */ + /* Restore */ super->s_sum = super_crc; - /* check CRC */ + /* Check CRC */ return (super_crc == comp_crc); } @@ -294,7 +290,7 @@ nandfs_read_structures(struct nandfs *fs static int nandfs_mount(struct nandfs *fs, struct open_file *f) { - int err = 0; + int err = 0, level; uint64_t last_pseg; fs->nf_fsdata = malloc(sizeof(struct nandfs_fsdata)); @@ -317,15 +313,12 @@ nandfs_mount(struct nandfs *fs, struct o /* * Calculate indirect block levels. */ - { - nandfs_daddr_t mult; - int level; - - mult = 1; - for (level = 0; level < NIADDR; level++) { - mult *= NINDIR(fs); - fs->nf_nindir[level] = mult; - } + nandfs_daddr_t mult; + + mult = 1; + for (level = 0; level < NIADDR; level++) { + mult *= NINDIR(fs); + fs->nf_nindir[level] = mult; } nandfs_calc_mdt_consts(fs->nf_blocksize, &fs->nf_datfile_mdt, @@ -380,7 +373,7 @@ nandfs_open(const char *path, struct ope { struct nandfs *fs; struct nandfs_node *node; - int err, bsize; + int err, bsize, level; NANDFS_DEBUG("nandfs_open('%s', %p)\n", path, f); @@ -399,15 +392,12 @@ nandfs_open(const char *path, struct ope /* * Calculate indirect block levels. */ - { - nandfs_daddr_t mult; - int level; - - mult = 1; - for (level = 0; level < NIADDR; level++) { - mult *= NINDIR(fs); - fs->nf_nindir[level] = mult; - } + nandfs_daddr_t mult; + + mult = 1; + for (level = 0; level < NIADDR; level++) { + mult *= NINDIR(fs); + fs->nf_nindir[level] = mult; } NANDFS_DEBUG("fs %p nf_sectorsize=%x\n", fs, fs->nf_sectorsize); @@ -442,7 +432,6 @@ nandfs_free_node(struct nandfs_node *nod free(bmap); } free(node); - } static int @@ -719,9 +708,8 @@ nandfs_lookup_path(struct nandfs *fs, co goto out; } - NANDFS_DEBUG("%s: %.*s has mode %o\n", - __func__, dirent->name_len, dirent->name, - node->inode->i_mode); + NANDFS_DEBUG("%s: %.*s has mode %o\n", __func__, + dirent->name_len, dirent->name, node->inode->i_mode); if ((node->inode->i_mode & IFMT) == IFLNK) { NANDFS_DEBUG("%s: %.*s is symlink\n", @@ -771,7 +759,7 @@ nandfs_lookup_path(struct nandfs *fs, co } } - out: +out: free(namebuf); free(orig); return (node); @@ -1001,20 +989,20 @@ nandfs_mdt_trans(struct nandfs_mdt *mdt, uint64_t group, group_offset, blocknr_in_group; uint64_t desc_block, desc_offset; - /* calculate our offset in the file */ + /* Calculate our offset in the file */ group = index / mdt->entries_per_group; group_offset = index % mdt->entries_per_group; desc_block = group / mdt->groups_per_desc_block; desc_offset = group % mdt->groups_per_desc_block; blocknr_in_group = group_offset / mdt->entries_per_block; - /* to descgroup offset */ + /* To descgroup offset */ blknr = 1 + desc_block * mdt->blocks_per_desc_block; - /* to group offset */ + /* To group offset */ blknr += desc_offset * mdt->blocks_per_group; - /* to actual file block */ + /* To actual file block */ blknr += 1 + blocknr_in_group; *blocknr = blknr; From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 03:20:15 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 2AA4F1065673; Sat, 7 Apr 2012 03:20:15 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B84608FC1A; Sat, 7 Apr 2012 03:20: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 q373KEXl039401; Sat, 7 Apr 2012 03:20:14 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q373KEGK039393; Sat, 7 Apr 2012 03:20:14 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070320.q373KEGK039393@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 03:20: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: r233969 - in projects/nand/sbin: . fdisk mount mount_nandfs 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, 07 Apr 2012 03:20:15 -0000 Author: gber Date: Sat Apr 7 03:20:14 2012 New Revision: 233969 URL: http://svn.freebsd.org/changeset/base/233969 Log: sbin: revert all unnecessary changes. No changes to mount are required now. Also fdisk change is not needed anymore. Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/sbin/Makefile projects/nand/sbin/fdisk/fdisk.c projects/nand/sbin/mount/mntopts.h projects/nand/sbin/mount/mount.c projects/nand/sbin/mount_nandfs/Makefile projects/nand/sbin/mount_nandfs/mount_nandfs.8 projects/nand/sbin/mount_nandfs/mount_nandfs.c Modified: projects/nand/sbin/Makefile ============================================================================== --- projects/nand/sbin/Makefile Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/Makefile Sat Apr 7 03:20:14 2012 (r233969) @@ -92,7 +92,6 @@ SUBDIR+= natd .endif .if ${MK_NAND} != "no" -SUBDIR+= mount_nandfs SUBDIR+= nandfs SUBDIR+= newfs_nandfs .endif Modified: projects/nand/sbin/fdisk/fdisk.c ============================================================================== --- projects/nand/sbin/fdisk/fdisk.c Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/fdisk/fdisk.c Sat Apr 7 03:20:14 2012 (r233969) @@ -27,11 +27,11 @@ #include __FBSDID("$FreeBSD$"); -#include #include #include #include #include +#include #include #include #include Modified: projects/nand/sbin/mount/mntopts.h ============================================================================== --- projects/nand/sbin/mount/mntopts.h Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/mount/mntopts.h Sat Apr 7 03:20:14 2012 (r233969) @@ -62,10 +62,6 @@ struct mntopt { #define MOPT_RO { "ro", 0, MNT_RDONLY, 0 } #define MOPT_RW { "rw", 1, MNT_RDONLY, 0 } - -/* Cleaner daemon flags */ -#define MOPT_NOCLEANER { "nocleaner", 0, 0, 0 } - /* This is parsed by mount(8), but is ignored by specific mount_*(8)s. */ #define MOPT_AUTO { "auto", 0, 0, 0 } Modified: projects/nand/sbin/mount/mount.c ============================================================================== --- projects/nand/sbin/mount/mount.c Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/mount/mount.c Sat Apr 7 03:20:14 2012 (r233969) @@ -142,7 +142,7 @@ use_mountprog(const char *vfstype) */ unsigned int i; const char *fs[] = { - "cd9660", "mfs", "msdosfs", "nandfs", "nfs", "ntfs", + "cd9660", "mfs", "msdosfs", "nfs", "ntfs", "nwfs", "nullfs", "oldnfs", "portalfs", "smbfs", "udf", "unionfs", NULL }; Modified: projects/nand/sbin/mount_nandfs/Makefile ============================================================================== --- projects/nand/sbin/mount_nandfs/Makefile Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/mount_nandfs/Makefile Sat Apr 7 03:20:14 2012 (r233969) @@ -1,15 +0,0 @@ -PROG = mount_nandfs -SRCS = mount_nandfs.c getmntopts.c -MAN = mount_nandfs.8 - -LDADD = -lutil -DPADD = ${LIBUTIL} - -# mount_nandfs needs mntopts.h and getmntopts.c from src/sbin/mount/ -MOUNT ?= ${.CURDIR}/../mount -CFLAGS += -I${MOUNT} -WARNS ?= 6 - -.PATH: ${MOUNT} - -.include Modified: projects/nand/sbin/mount_nandfs/mount_nandfs.8 ============================================================================== --- projects/nand/sbin/mount_nandfs/mount_nandfs.8 Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/mount_nandfs/mount_nandfs.8 Sat Apr 7 03:20:14 2012 (r233969) @@ -1,93 +0,0 @@ -.\" -.\" Copyright (c) 1993,1994 Christopher G. Demetriou -.\" Copyright (c) 1999 Semen Ustimenko -.\" Copyright (c) 2005 Jean-Sébastien Pédron -.\" Copyright (c) 2010 Semihalf -.\" 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. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgment: -.\" This product includes software developed by Christopher G. Demetriou. -.\" 3. The name of the author may not be used to endorse or promote products -.\" derived from this software without specific prior written permission -.\" -.\" 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$ -.\" -.Dd February 28, 2012 -.Dt MOUNT_NANDFS 8 -.Os -.Sh NAME -.Nm mount_nandfs -.Nd "mount a NandFS file system" -.Sh SYNOPSIS -.Nm -.Op Fl n -.Op Fl f Ar cleanerd_config -.Op Fl c Ar snapshot -.Op Fl o Ar options -.Ar special -.Ar node -.Sh DESCRIPTION -The -.Nm -utility attaches the NandFS file system residing on the device -.Ar special -to the global file system namespace at the location -indicated by -.Ar node . -.Pp -This command is normally executed by -.Xr mount 8 -at boot time, but can be used by any user to mount a -NandFS file system on any directory that they own (provided, -of course, that they have appropriate access to the device that -contains the file system). -.Pp -The options are as follow: -.Bl -tag -width indent -.It Fl n -Don't run -.Xr cleanerd 8 . -.It Fl f Ar cleanerd_config -Run -.Xr cleanerd 8 -with config -.Ar cleanerd_config . -.It Fl c Ar snapshot -Mount specified snapshot. -.It Fl o Ar options -Options are specified by a comma separated string of options. -See the mount(8) man page for possible options and their meanings. -.El -.Sh EXAMPLES -To mount a NandFS volume located in -.Pa /dev/md0 : -.Pp -.Dl "mount_nandfs /dev/md0 /mnt" -.Sh SEE ALSO -.Xr mount 2 , -.Xr unmount 2 , -.Xr fstab 5 , -.Xr mount 8 -.Sh AUTHORS -.An Grzegorz Bernacki -.An Jakub Klama Modified: projects/nand/sbin/mount_nandfs/mount_nandfs.c ============================================================================== --- projects/nand/sbin/mount_nandfs/mount_nandfs.c Sat Apr 7 03:10:26 2012 (r233968) +++ projects/nand/sbin/mount_nandfs/mount_nandfs.c Sat Apr 7 03:20:14 2012 (r233969) @@ -1,353 +0,0 @@ -/*- - * Copyright (c) 2005 Jean-Sébastien Pédron - * Copyright (c) 2010 Semihalf - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * From FreeBSD: src/sbin/mount_reiserfs/mount_reiserfs.c,v 1.4.10.1 2009/08/03 08:13:06 kensmith Exp - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "mntopts.h" - -#define CLEANERD_PATH "/usr/sbin/cleanerd" -#define CLEANERD_CONFIG "/etc/nandfs_cleanerd.conf" - -struct mntopt mopts[] = { - MOPT_STDOPTS, - MOPT_UPDATE, - MOPT_END -}; - -void usage(void); - -static int -nandfs_lookup_pid_mib(const char *dev, int *mibp, size_t *miblen) -{ - char *mibname; - char readpath[MAXPATHLEN+1]; - size_t readlen; - int i; - - *miblen = 5; - - for (i = 0; i < NANDFS_MAX_MOUNTS; i++) { - asprintf(&mibname, "vfs.nandfs.mount.%d.dev", i); - readlen = MAXPATHLEN; - - if (sysctlbyname(mibname, readpath, &readlen, NULL, 0)) { - free(mibname); - - if (errno == ENOENT) - continue; - - return (-1); - } - - free(mibname); - - if (strncmp(dev, readpath, readlen) != 0) - continue; - - asprintf(&mibname, "vfs.nandfs.mount.%d.cleanerd_pid", i); - - if (sysctlnametomib(mibname, mibp, miblen)) { - free(mibname); - return (-1); - } - - free(mibname); - return (0); - } - - errno = ENOENT; - return (-1); -} - - -int -main(int argc, char *argv[]) -{ - struct iovec *iov; - struct sembuf sbuf; - struct statfs sfs; - int ch, mntflags, iovlen, nocleanerd = 0; - int update_start_cleanerd = 0; - size_t miblen, pidlen; - int mib[5]; - int64_t cpno = 0; - uint64_t oldmntflags; - char *dev, *dir, mntpath[MAXPATHLEN]; - char *cleanerd_config = NULL; -#if 0 - char *cleanerd_args[6]; -#endif - char fstype[] = "nandfs"; - time_t start; - pid_t cleanerd_pid; - key_t semkey; - int semid; - char *p, *val; - - iov = NULL; - iovlen = 0; - mntflags = 0; - while ((ch = getopt(argc, argv, "o:c:f:n")) != -1) { - switch(ch) { - case 'c': - cpno = strtoll(optarg, NULL, 10); - if (cpno == 0 && errno == EINVAL) - usage(); - break; - case 'f': - cleanerd_config = strdup(optarg); - break; - case 'n': - nocleanerd = 1; - break; - case 'o': - getmntopts(optarg, mopts, &mntflags, 0); - p = strchr(optarg, '='); - val = NULL; - if (p != NULL) { - *p = '\0'; - val = p + 1; - } - build_iovec(&iov, &iovlen, optarg, val, (size_t)-1); - break; - case '?': - default: - usage(); - } - } - - argc -= optind; - argv += optind; - - if (argc != 2) - usage(); - - dev = argv[0]; - dir = argv[1]; - - /* - * Resolve the mountpoint with realpath(3) and remove unnecessary - * slashes from the devicename if there are any. - */ - (void)checkpath(dir, mntpath); - (void)rmslashes(dev, dev); - - /* Prepare the options vector for nmount(). build_iovec() is declared - * in mntopts.h. */ - build_iovec(&iov, &iovlen, "fstype", fstype, (size_t)-1); - build_iovec(&iov, &iovlen, "fspath", mntpath, (size_t)-1); - build_iovec(&iov, &iovlen, "from", dev, (size_t)-1); - build_iovec(&iov, &iovlen, "cpno", &cpno, sizeof(int64_t)); - - if (mntflags & MNT_UPDATE) { - if (statfs(dir, &sfs) < 0) { - fprintf(stderr, "Cannot statfs(): %s\n", - strerror(errno)); - return (EXIT_FAILURE); - } - - oldmntflags = sfs.f_flags; - - /* Read cleanerd PID */ - if (nandfs_lookup_pid_mib(dev, mib, &miblen)) { - fprintf(stderr, "Cannot lookup cleanerd PID: %s\n", strerror(errno)); - } - - pidlen = sizeof(pid_t); - if (sysctl(mib, miblen, &cleanerd_pid, &pidlen, NULL, 0) < 0) { - fprintf(stderr, "Cannot lookup cleanerd PID: %s\n", - strerror(errno)); - } - - /* RW -> RO update, so kill cleanerd */ - if (((oldmntflags & MNT_RDONLY) == 0) && (mntflags & MNT_RDONLY) && - (cleanerd_pid != -1)) { - semkey = ftok(dev, 'c'); - semid = semget(semkey, 1, 0666 | IPC_CREAT); - - if (semid < 0) { - fprintf(stderr, "Cannot obtain cleanerd semaphore: %s\n", - strerror(errno)); - } else { - sbuf.sem_num = 0; - sbuf.sem_op = 1; - sbuf.sem_flg = 0; - - if (semop(semid, &sbuf, 1) < 0) { - fprintf(stderr, "Cannot access semaphore: %s\n", - strerror(errno)); - } - } - - /* Kill cleanerd */ - if (kill(cleanerd_pid, SIGTERM) < 0) { - fprintf(stderr, "Cannot kill cleanerd (pid %d): %s\n", - cleanerd_pid, strerror(errno)); - } else { - /* Make sure that cleanerd is killed. */ - start = time(NULL); - do { - sbuf.sem_num = 0; - sbuf.sem_op = 0; - sbuf.sem_flg = IPC_NOWAIT; - - if (semop(semid, &sbuf, 1) < 0) { - if (errno == EAGAIN) - continue; - - fprintf(stderr, "Cannot access semaphore: %s\n", - strerror(errno)); - } - - break; - } while (time(NULL) < (start + 5)); - } - - /* Destroy semaphore */ - if (semctl(semid, 0, IPC_RMID, NULL) < 0) { - if (errno != EINVAL) - fprintf(stderr, "Cannot remove semaphore: %s\n", - strerror(errno)); - } - } - - /* RO -> RW update, start cleanerd */ - if ((oldmntflags & MNT_RDONLY) && ((mntflags & MNT_RDONLY) == 0)) { - update_start_cleanerd = 1; - } - } - - - if (nmount(iov, iovlen, mntflags) < 0) - err(EX_OSERR, "%s", dev); - - return (0); -#if 0 - - if (nocleanerd || (mntflags & MNT_RDONLY)) - exit(0); - - if ((mntflags & MNT_UPDATE) && (update_start_cleanerd == 0)) { - exit(0); - } - - /* Create cleaner semaphore */ - semkey = ftok(dev, 'c'); - semid = semget(semkey, 1, 0666 | IPC_CREAT); - - if (semid < 0) { - fprintf(stderr, "Cannot obtain semaphore: %s\n", - strerror(errno)); - } else { - sbuf.sem_num = 0; - sbuf.sem_op = 1; - sbuf.sem_flg = 0; - - if (semop(semid, &sbuf, 1) < 0) { - fprintf(stderr, "Cannot access semaphore: %s\n", - strerror(errno)); - } - } - - /* Start cleaner daemon */ - cleanerd_pid = fork(); - switch (cleanerd_pid) { - case 0: - if (cleanerd_config == NULL) - cleanerd_config = strdup(CLEANERD_CONFIG); - - cleanerd_args[0] = strdup("cleanerd"); - cleanerd_args[1] = strdup("-c"); - cleanerd_args[2] = cleanerd_config; - cleanerd_args[3] = dir; - cleanerd_args[4] = NULL; - execv(CLEANERD_PATH, cleanerd_args); - break; - case -1: - fprintf(stderr, "Cannot spawn cleaner daemon: %s\n", - strerror(errno)); - exit(EXIT_FAILURE); - default: - start = time(NULL); - do { - sbuf.sem_num = 0; - sbuf.sem_op = 0; - sbuf.sem_flg = IPC_NOWAIT; - - if (semop(semid, &sbuf, 1) < 0) { - if (errno == EAGAIN) - continue; - - fprintf(stderr, "Cannot access semaphore: %s\n", - strerror(errno)); - - } - - break; - } while (time(NULL) < (start + 5)); - - /* Destroy semaphore */ - if (semctl(semid, 0, IPC_RMID, NULL) < 0) { - fprintf(stderr, "Cannot remove semaphore: %s\n", - strerror(errno)); - } - } - - exit(0); -#endif -} - -void -usage(void) -{ - fprintf(stderr, - "usage: mount_nandfs [-c cpno] [-f cleanerd_config] [-n] [-o options]" - " special node\n"); - exit(EX_USAGE); -} From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 03:28: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 2A6F3106564A; Sat, 7 Apr 2012 03:28:47 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 163288FC0A; Sat, 7 Apr 2012 03:28:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q373SkQY039778; Sat, 7 Apr 2012 03:28:46 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q373SkEW039775; Sat, 7 Apr 2012 03:28:46 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070328.q373SkEW039775@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 03:28: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: r233971 - in projects/nand/share/man: man4 man5 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, 07 Apr 2012 03:28:47 -0000 Author: gber Date: Sat Apr 7 03:28:46 2012 New Revision: 233971 URL: http://svn.freebsd.org/changeset/base/233971 Log: nadfs: remove cleanerd from man pages Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/share/man/man4/nand.4 projects/nand/share/man/man5/nandfs.5 Modified: projects/nand/share/man/man4/nand.4 ============================================================================== --- projects/nand/share/man/man4/nand.4 Sat Apr 7 03:22:11 2012 (r233970) +++ projects/nand/share/man/man4/nand.4 Sat Apr 7 03:28:46 2012 (r233971) @@ -116,7 +116,6 @@ probing the NAND controller. .Xr gnand 4 , .Xr nandsim 4 , .Xr nandfs 5 , -.Xr cleanerd 8 , .Xr makefs 8 , .Xr mount_nandfs 8 , .Xr nandfs 8 , Modified: projects/nand/share/man/man5/nandfs.5 ============================================================================== --- projects/nand/share/man/man5/nandfs.5 Sat Apr 7 03:22:11 2012 (r233970) +++ projects/nand/share/man/man5/nandfs.5 Sat Apr 7 03:28:46 2012 (r233971) @@ -103,8 +103,6 @@ partition at the specified mount point d .Sh SEE ALSO .Xr gnand 4 , .Xr nand 4 , -.Xr nandfs_cleanerd.conf 5 , -.Xr cleanerd 8 , .Xr mount_nandfs 8 , .Xr nandfs 8 , .Xr nandsim 8 , From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 03:50: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 6F0FB1065670; Sat, 7 Apr 2012 03:50:25 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 583A58FC0C; Sat, 7 Apr 2012 03:50: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 q373oPs0040564; Sat, 7 Apr 2012 03:50:25 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q373oPb8040554; Sat, 7 Apr 2012 03:50:25 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070350.q373oPb8040554@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 03:50:25 +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: r233972 - in projects/nand/sys: conf geom 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: Sat, 07 Apr 2012 03:50:25 -0000 Author: gber Date: Sat Apr 7 03:50:24 2012 New Revision: 233972 URL: http://svn.freebsd.org/changeset/base/233972 Log: geom: revert changes in generic sys/geom/* and sys/sys/* - remove BIO_READOOB and BIO_WRITEOOB - access nand metadata via ioctl Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Deleted: projects/nand/sys/geom/geom_nand.c projects/nand/sys/geom/geom_nand.h Modified: projects/nand/sys/conf/files projects/nand/sys/geom/geom.h projects/nand/sys/geom/geom_dev.c projects/nand/sys/geom/geom_disk.c projects/nand/sys/geom/geom_disk.h projects/nand/sys/geom/geom_io.c projects/nand/sys/geom/geom_slice.c projects/nand/sys/sys/bio.h projects/nand/sys/sys/disk.h Modified: projects/nand/sys/conf/files ============================================================================== --- projects/nand/sys/conf/files Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/conf/files Sat Apr 7 03:50:24 2012 (r233972) @@ -2384,7 +2384,6 @@ geom/geom_kern.c standard geom/geom_map.c optional geom_map geom/geom_mbr.c optional geom_mbr geom/geom_mbr_enc.c optional geom_mbr -geom/geom_nand.c optional nand geom/geom_pc98.c optional geom_pc98 geom/geom_pc98_enc.c optional geom_pc98 geom/geom_redboot.c optional geom_redboot Modified: projects/nand/sys/geom/geom.h ============================================================================== --- projects/nand/sys/geom/geom.h Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/geom/geom.h Sat Apr 7 03:50:24 2012 (r233972) @@ -309,8 +309,6 @@ struct bio *g_alloc_bio(void); void * g_read_data(struct g_consumer *cp, off_t offset, off_t length, int *error); int g_write_data(struct g_consumer *cp, off_t offset, void *ptr, off_t length); int g_delete_data(struct g_consumer *cp, off_t offset, off_t length); -void *g_read_oob(struct g_consumer *cp, off_t offset, off_t length, int *error); -int g_write_oob(struct g_consumer *cp, off_t offset, void *ptr, off_t length); void g_print_bio(struct bio *bp); /* geom_kern.c / geom_kernsim.c */ Modified: projects/nand/sys/geom/geom_dev.c ============================================================================== --- projects/nand/sys/geom/geom_dev.c Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/geom/geom_dev.c Sat Apr 7 03:50:24 2012 (r233972) @@ -311,10 +311,8 @@ g_dev_ioctl(struct cdev *dev, u_long cmd struct g_consumer *cp; struct g_provider *pp; struct g_kerneldump kd; - struct nand_oob_request *nand_req; off_t offset, length, chunk; int i, error; - void *buf; u_int u; gp = dev->si_drv1; @@ -347,16 +345,6 @@ g_dev_ioctl(struct cdev *dev, u_long cmd if (error == 0 && *(u_int *)data == 0) error = ENOENT; break; - case DIOCNOOBSIZE: - error = g_io_getattr("NAND::oobsize", cp, &i, data); - if (error == 0 && *(u_int *)data == 0) - error = ENOENT; - break; - case DIOCNBLKSIZE: - error = g_io_getattr("NAND::blocksize", cp, &i, data); - if (error == 0 && *(u_int *)data == 0) - error = ENOENT; - break; case DIOCGFRONTSTUFF: error = g_io_getattr("GEOM::frontstuff", cp, &i, data); break; @@ -408,28 +396,6 @@ g_dev_ioctl(struct cdev *dev, u_long cmd break; } break; - case DIOCNREADOOB: - nand_req = (struct nand_oob_request *)data; - - buf = g_read_oob(cp, nand_req->offset, nand_req->length, - &error); - if (error) - break; - - error = copyout(buf, nand_req->ubuf, nand_req->length); - break; - case DIOCNWRITEOOB: - nand_req = (struct nand_oob_request *)data; - - buf = g_malloc(nand_req->length, M_WAITOK); - error = copyin(nand_req->ubuf, buf, nand_req->length); - - if (error) - break; - - error = g_write_oob(cp, nand_req->offset, buf, - nand_req->length); - break; case DIOCGIDENT: error = g_io_getattr("GEOM::ident", cp, &i, data); break; Modified: projects/nand/sys/geom/geom_disk.c ============================================================================== --- projects/nand/sys/geom/geom_disk.c Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/geom/geom_disk.c Sat Apr 7 03:50:24 2012 (r233972) @@ -368,10 +368,6 @@ g_disk_start(struct bio *bp) break; else if (g_handleattr_int(bp, "GEOM::fwheads", dp->d_fwheads)) break; - else if (g_handleattr_int(bp, "NAND::oobsize", dp->n_oobsize)) - break; - else if (g_handleattr_int(bp, "NAND::pagesize", dp->n_pagesize)) - break; else if (g_handleattr_off_t(bp, "GEOM::frontstuff", 0)) break; else if (g_handleattr_str(bp, "GEOM::ident", dp->d_ident)) Modified: projects/nand/sys/geom/geom_disk.h ============================================================================== --- projects/nand/sys/geom/geom_disk.h Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/geom/geom_disk.h Sat Apr 7 03:50:24 2012 (r233972) @@ -86,8 +86,6 @@ struct disk { u_int d_maxsize; u_int d_stripeoffset; u_int d_stripesize; - u_int n_oobsize; - u_int n_pagesize; char d_ident[DISK_IDENT_SIZE]; char d_descr[DISK_IDENT_SIZE]; uint16_t d_hba_vendor; Modified: projects/nand/sys/geom/geom_io.c ============================================================================== --- projects/nand/sys/geom/geom_io.c Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/geom/geom_io.c Sat Apr 7 03:50:24 2012 (r233972) @@ -289,13 +289,11 @@ g_io_check(struct bio *bp) /* Fail if access counters dont allow the operation */ switch(bp->bio_cmd) { case BIO_READ: - case BIO_READOOB: case BIO_GETATTR: if (cp->acr == 0) return (EPERM); break; case BIO_WRITE: - case BIO_WRITEOOB: case BIO_DELETE: case BIO_FLUSH: if (cp->acw == 0) @@ -761,52 +759,6 @@ g_delete_data(struct g_consumer *cp, off return (error); } -void * -g_read_oob(struct g_consumer *cp, off_t offset, off_t length, int *error) -{ - struct bio *bp; - void *ptr; - int errorc; - - bp = g_alloc_bio(); - bp->bio_cmd = BIO_READOOB; - bp->bio_done = NULL; - bp->bio_offset = offset; - bp->bio_length = length; - ptr = g_malloc(length, M_WAITOK); - bp->bio_data = ptr; - g_io_request(bp, cp); - errorc = biowait(bp, "groob"); - if (error != NULL) - *error = errorc; - - g_destroy_bio(bp); - if (errorc) { - g_free(ptr); - ptr = NULL; - } - - return (ptr); -} - -int -g_write_oob(struct g_consumer *cp, off_t offset, void *ptr, off_t length) -{ - struct bio *bp; - int error; - - bp = g_alloc_bio(); - bp->bio_cmd = BIO_WRITEOOB; - bp->bio_done = NULL; - bp->bio_offset = offset; - bp->bio_length = length; - bp->bio_data = ptr; - g_io_request(bp, cp); - error = biowait(bp, "gwoob"); - g_destroy_bio(bp); - return (error); -} - void g_print_bio(struct bio *bp) { Modified: projects/nand/sys/geom/geom_slice.c ============================================================================== --- projects/nand/sys/geom/geom_slice.c Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/geom/geom_slice.c Sat Apr 7 03:50:24 2012 (r233972) @@ -215,9 +215,7 @@ g_slice_start(struct bio *bp) gsl = &gsp->slices[idx]; switch(bp->bio_cmd) { case BIO_READ: - case BIO_READOOB: case BIO_WRITE: - case BIO_WRITEOOB: case BIO_DELETE: if (bp->bio_offset > gsl->length) { g_io_deliver(bp, EINVAL); /* XXX: EWHAT ? */ @@ -235,10 +233,8 @@ g_slice_start(struct bio *bp) if (t + bp->bio_length <= ghp->offset) continue; switch(bp->bio_cmd) { - case BIO_READ: - case BIO_READOOB: idx = ghp->ract; break; - case BIO_WRITE: - case BIO_WRITEOOB: idx = ghp->wact; break; + case BIO_READ: idx = ghp->ract; break; + case BIO_WRITE: idx = ghp->wact; break; case BIO_DELETE: idx = ghp->dact; break; } switch(idx) { Modified: projects/nand/sys/sys/bio.h ============================================================================== --- projects/nand/sys/sys/bio.h Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/sys/bio.h Sat Apr 7 03:50:24 2012 (r233972) @@ -46,19 +46,15 @@ #define BIO_DELETE 0x04 #define BIO_GETATTR 0x08 #define BIO_FLUSH 0x10 -#define BIO_CMD0 0x20 -#define BIO_CMD1 0x40 +#define BIO_CMD0 0x20 /* Available for local hacks */ +#define BIO_CMD1 0x40 /* Available for local hacks */ #define BIO_CMD2 0x80 /* Available for local hacks */ -#define BIO_READOOB BIO_CMD0 -#define BIO_WRITEOOB BIO_CMD1 - /* bio_flags */ #define BIO_ERROR 0x01 #define BIO_DONE 0x02 #define BIO_ONQUEUE 0x04 #define BIO_ORDERED 0x08 -#define BIO_ECC 0x10 #ifdef _KERNEL struct disk; @@ -69,7 +65,6 @@ struct bio; typedef void bio_task_t(void *); - /* * The bio structure describes an I/O operation in the kernel. */ @@ -79,10 +74,7 @@ struct bio { uint8_t bio_cflags; /* Private use by the consumer. */ uint8_t bio_pflags; /* Private use by the provider. */ struct cdev *bio_dev; /* Device to do I/O on. */ - union { - struct disk *bio_disk; /* Valid below geom_disk.c only */ - struct gnand *bio_nand; /* Valid below geom_disk.c only */ - } bio_source; + struct disk *bio_disk; /* Valid below geom_disk.c only */ off_t bio_offset; /* Offset into file. */ long bio_bcount; /* Valid bytes in buffer. */ caddr_t bio_data; /* Memory, superblocks, indirect etc. */ @@ -120,24 +112,6 @@ struct bio { daddr_t bio_pblkno; /* physical block number */ }; -#define bio_disk bio_source.bio_disk -#define bio_nand bio_source.bio_nand - -/* bio_cmd */ -#define BIO_READ 0x01 -#define BIO_WRITE 0x02 -#define BIO_DELETE 0x04 -#define BIO_GETATTR 0x08 -#define BIO_FLUSH 0x10 -#define BIO_CMD0 0x20 /* Available for local hacks */ -#define BIO_CMD1 0x40 /* Available for local hacks */ -#define BIO_CMD2 0x80 /* Available for local hacks */ - -/* bio_flags */ -#define BIO_ERROR 0x01 -#define BIO_DONE 0x02 -#define BIO_ONQUEUE 0x04 - struct uio; struct devstat; Modified: projects/nand/sys/sys/disk.h ============================================================================== --- projects/nand/sys/sys/disk.h Sat Apr 7 03:28:46 2012 (r233971) +++ projects/nand/sys/sys/disk.h Sat Apr 7 03:50:24 2012 (r233972) @@ -116,32 +116,6 @@ void disk_err(struct bio *bp, const char * This should be a multiple of the sector size. */ -#define DIOCNOOBSIZE _IOR('d', 141, u_int) /* Get oob size */ - /*- - * Get the OOB area size of NAND flash device. - */ - -#define DIOCNBLKSIZE _IOR('d', 142, u_int) /* Get block size */ - /* - - * Get the block size of NAND flash device. - */ - -struct nand_oob_request { - off_t offset; /* offset in bytes, page-aligned */ - off_t length; /* length */ - void * ubuf; /* buffer supplied by user */ -}; - -#define DIOCNREADOOB _IOW('d', 143, struct nand_oob_request) /* Read OOB area */ - /*- - * Read page OOB area from NAND flash device. - */ - -#define DIOCNWRITEOOB _IOW('d', 144, struct nand_oob_request) /* Write OOB area */ - /*- - * Write page OOB area to NAND flash device. - */ - #define DIOCGPHYSPATH _IOR('d', 141, char[MAXPATHLEN]) /* * Get a string defining the physical path for a given provider. From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 04:22: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 CEE931065672; Sat, 7 Apr 2012 04:22:47 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7DBAF8FC08; Sat, 7 Apr 2012 04:22:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q374Mlcc041925; Sat, 7 Apr 2012 04:22:47 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q374Ml3s041915; Sat, 7 Apr 2012 04:22:47 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070422.q374Ml3s041915@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 04:22:47 +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: r233975 - in projects/nand: include sys/dev/nand 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, 07 Apr 2012 04:22:48 -0000 Author: gber Date: Sat Apr 7 04:22:46 2012 New Revision: 233975 URL: http://svn.freebsd.org/changeset/base/233975 Log: nand: Follow-up to latest changes in geom Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Added: projects/nand/sys/dev/nand/nand_dev.h Deleted: projects/nand/sys/dev/nand/nand_cdev.h Modified: projects/nand/include/Makefile projects/nand/sys/dev/nand/nand.c projects/nand/sys/dev/nand/nand.h projects/nand/sys/dev/nand/nand_cdev.c projects/nand/sys/dev/nand/nand_generic.c projects/nand/sys/dev/nand/nand_geom.c projects/nand/sys/dev/nand/nandsim.c projects/nand/sys/dev/nand/nandsim_chip.c Modified: projects/nand/include/Makefile ============================================================================== --- projects/nand/include/Makefile Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/include/Makefile Sat Apr 7 04:22:46 2012 (r233975) @@ -172,7 +172,7 @@ copies: cd ${.CURDIR}/../sys/dev/nand; \ ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 nandsim.h \ ${DESTDIR}${INCLUDEDIR}/dev/nand; \ - ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 nand_cdev.h \ + ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 nand_dev.h \ ${DESTDIR}${INCLUDEDIR}/dev/nand .endif cd ${.CURDIR}/../sys/contrib/altq/altq; \ @@ -249,7 +249,7 @@ symlinks: done .if ${MK_NAND} != "no" cd ${.CURDIR}/../sys/dev/nand; \ - for h in nandsim.h nand_cdev.h; do \ + for h in nandsim.h nand_dev.h; do \ ln -fs ../../../../sys/dev/nand/$$h \ ${DESTDIR}${INCLUDEDIR}/dev/nand; \ done Modified: projects/nand/sys/dev/nand/nand.c ============================================================================== --- projects/nand/sys/dev/nand/nand.c Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nand.c Sat Apr 7 04:22:46 2012 (r233975) @@ -106,7 +106,7 @@ nand_init(struct nand_softc *nand, devic if (ecc_mode == NAND_ECC_SOFT) { nand->ecc.eccbytes = SOFTECC_BYTES; nand->ecc.eccsize = SOFTECC_SIZE; - } else if (ecc_mode != NAND_ECC_NONE){ + } else if (ecc_mode != NAND_ECC_NONE) { nand->ecc.eccbytes = ecc_bytes; nand->ecc.eccsize = ecc_size; if (eccposition) @@ -153,7 +153,7 @@ nand_set_params(struct nand_chip *chip, chip->t_ccs = 0; if (params->flags & NAND_16_BIT) - chip->flags |= NAND_16_BIT; + chip->flags |= NAND_16_BIT; } int @@ -390,9 +390,9 @@ correct_ecc(uint8_t *buf, uint8_t *calc_ addr = BIT3(ecc0) | (BIT5(ecc0) << 1) | (BIT7(ecc0) << 2); addr |= (BIT1(ecc2) << 3) | (BIT3(ecc2) << 4) | - (BIT5(ecc2) << 5) | (BIT7(ecc2) << 6); + (BIT5(ecc2) << 5) | (BIT7(ecc2) << 6); addr |= (BIT1(ecc1) << 7) | (BIT3(ecc1) << 8) | - (BIT5(ecc1) << 9) | (BIT7(ecc1) << 10); + (BIT5(ecc1) << 9) | (BIT7(ecc1) << 10); onesnum = 0; while (ecc0 || ecc1 || ecc2) { @@ -432,7 +432,7 @@ nand_softecc_get(device_t dev, uint8_t * int i = 0, j = 0; for (; i < (steps * SOFTECC_BYTES); - i += SOFTECC_BYTES, j += SOFTECC_SIZE) { + i += SOFTECC_BYTES, j += SOFTECC_SIZE) { calculate_ecc(&buf[j], &ecc[i]); } @@ -447,7 +447,7 @@ nand_softecc_correct(device_t dev, uint8 int i = 0, j = 0, ret = 0; for (i = 0; i < (steps * SOFTECC_BYTES); - i += SOFTECC_BYTES, j += SOFTECC_SIZE) { + i += SOFTECC_BYTES, j += SOFTECC_SIZE) { ret += correct_ecc(&buf[j], &calcecc[i], &readecc[i]); if (ret < 0) return (ret); @@ -677,7 +677,7 @@ nand_prog_pages(struct nand_chip *chip, oob[eccpos[i]] = eccd->ecccalculated[i]; if (NAND_PROGRAM_OOB(chip->dev, page, oob, - cg->oob_size, 0)) { + cg->oob_size, 0)) { err = ENXIO; break; } @@ -746,7 +746,7 @@ nand_prog_pages_raw(struct nand_chip *ch if (end) retval = NAND_PROGRAM_PAGE(chip->dev, page, ptr, end, 0); - + NANDBUS_UNLOCK(nandbus); return (retval); Modified: projects/nand/sys/dev/nand/nand.h ============================================================================== --- projects/nand/sys/dev/nand/nand.h Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nand.h Sat Apr 7 04:22:46 2012 (r233975) @@ -40,7 +40,7 @@ #include #include -#include +#include MALLOC_DECLARE(M_NAND); @@ -120,10 +120,6 @@ MALLOC_DECLARE(M_NAND); #define ECC_ERROR_ECC (-1) #define ECC_UNCORRECTABLE (-2) -/* NAND BIO operations */ -#define BIO_READOOB BIO_CMD0 -#define BIO_WRITEOOB BIO_CMD1 - #define NAND_MAN_SAMSUNG 0xec #define NAND_MAN_HYNIX 0xad #define NAND_MAN_STMICRO 0x20 @@ -290,8 +286,8 @@ struct nand_chip { struct nand_ops *ops; struct cdev *cdev; - struct gnand *disk; - struct gnand *rdisk; + struct disk *ndisk; + struct disk *rdisk; struct bio_queue_head bioq; /* bio queue */ struct mtx qlock; /* bioq lock */ struct taskqueue *tq; /* private task queue for i/o request */ Modified: projects/nand/sys/dev/nand/nand_cdev.c ============================================================================== --- projects/nand/sys/dev/nand/nand_cdev.c Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nand_cdev.c Sat Apr 7 04:22:46 2012 (r233975) @@ -1,412 +0,0 @@ -/*- - * Copyright (C) 2009-2012 Semihalf - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include "nand_if.h" -#include "nandbus_if.h" - -static int nand_page_stat(struct nand_chip *, struct page_stat_io *); -static int nand_block_stat(struct nand_chip *, struct block_stat_io *); - -static d_ioctl_t nand_ioctl; -static d_open_t nand_open; -static d_strategy_t nand_strategy; - -static struct cdevsw nand_cdevsw = { - .d_version = D_VERSION, - .d_name = "nand", - .d_open = nand_open, - .d_read = physread, - .d_write = physwrite, - .d_ioctl = nand_ioctl, - .d_strategy = nand_strategy, -}; - -static int -offset_to_page(struct chip_geom *cg, uint32_t offset) -{ - - return (offset / cg->page_size); -} - -static int -offset_to_page_off(struct chip_geom *cg, uint32_t offset) -{ - - return (offset % cg->page_size); -} - -int -nand_make_dev(struct nand_chip *chip) -{ - struct nandbus_ivar *ivar; - device_t parent, nandbus; - int parent_unit, unit; - char *name; - - ivar = device_get_ivars(chip->dev); - nandbus = device_get_parent(chip->dev); - - if (ivar->chip_cdev_name) { - name = ivar->chip_cdev_name; - - /* - * If we got distinct name for chip device we can enumarete it - * based on contoller number. - */ - parent = device_get_parent(nandbus); - } else { - name = "nand"; - parent = nandbus; - } - - parent_unit = device_get_unit(parent); - unit = parent_unit * 4 + chip->num; - chip->cdev = make_dev(&nand_cdevsw, unit, UID_ROOT, GID_WHEEL, - 0666, "%s%d.%d", name, parent_unit, chip->num); - - if (chip->cdev == NULL) - return (ENXIO); - - device_printf(chip->dev, "Created cdev %s%d.%d for chip [0x%0x, 0x%0x]\n", - name, parent_unit, chip->num, ivar->man_id, ivar->dev_id); - chip->cdev->si_drv1 = chip; - - return (0); -} - -void -nand_destroy_dev(struct nand_chip *chip) -{ - - if (chip->cdev) - destroy_dev(chip->cdev); -} - -static int -nand_open(struct cdev *dev, int oflags, int devtype, struct thread *td) -{ - - return (0); -} - -static int -nand_read(struct nand_chip *chip, uint32_t offset, void *buf, uint32_t len) -{ - struct chip_geom *cg; - device_t nandbus; - int start_page, count, off, err = 0; - uint8_t *ptr, *tmp; - - nand_debug(NDBG_CDEV, "Read from chip%d [%p] at %d\n", chip->num, - chip, offset); - - nandbus = device_get_parent(chip->dev); - NANDBUS_LOCK(nandbus); - NANDBUS_SELECT_CS(device_get_parent(chip->dev), chip->num); - - cg = &chip->chip_geom; - start_page = offset_to_page(cg, offset); - off = offset_to_page_off(cg, offset); - count = (len > cg->page_size - off) ? cg->page_size - off : len; - - ptr = (uint8_t *)buf; - while (len > 0) { - if (len < cg->page_size) { - tmp = malloc(cg->page_size, M_NAND, M_WAITOK); - if (!tmp) { - err = ENOMEM; - break; - } - err = NAND_READ_PAGE(chip->dev, start_page, - tmp, cg->page_size, 0); - if (err) { - free(tmp, M_NAND); - break; - } - bcopy(tmp + off, ptr, count); - free(tmp, M_NAND); - } else { - err = NAND_READ_PAGE(chip->dev, start_page, - ptr, cg->page_size, 0); - if (err) - break; - } - - len -= count; - start_page++; - ptr += count; - count = (len > cg->page_size) ? cg->page_size : len; - off = 0; - } - - NANDBUS_UNLOCK(nandbus); - return (err); -} - -static int -nand_write(struct nand_chip *chip, uint32_t offset, void* buf, uint32_t len) -{ - struct chip_geom *cg; - device_t nandbus; - int off, start_page, err = 0; - uint8_t *ptr; - - nand_debug(NDBG_CDEV, "Write to chip %d [%p] at %d\n", chip->num, - chip, offset); - - nandbus = device_get_parent(chip->dev); - NANDBUS_LOCK(nandbus); - NANDBUS_SELECT_CS(device_get_parent(chip->dev), chip->num); - - cg = &chip->chip_geom; - start_page = offset_to_page(cg, offset); - off = offset_to_page_off(cg, offset); - - if (off != 0 || (len % cg->page_size) != 0) { - printf("Not aligned write start [0x%08x] size [0x%08x]\n", - off, len); - NANDBUS_UNLOCK(nandbus); - return (EINVAL); - } - - ptr = (uint8_t *)buf; - while (len > 0) { - err = NAND_PROGRAM_PAGE(chip->dev, start_page, ptr, - cg->page_size, 0); - if (err) - break; - - len -= cg->page_size; - start_page++; - ptr += cg->page_size; - } - - NANDBUS_UNLOCK(nandbus); - return (err); -} - -static void -nand_strategy(struct bio *bp) -{ - struct nand_chip *chip; - struct cdev *dev; - int err = 0; - - dev = bp->bio_dev; - chip = dev->si_drv1; - - nand_debug(NDBG_CDEV, "Strategy %s on chip %d [%p]\n", - (bp->bio_cmd & BIO_READ) == BIO_READ ? "READ" : "WRITE", - chip->num, chip); - - if ((bp->bio_cmd & BIO_READ) == BIO_READ) { - err = nand_read(chip, - bp->bio_offset & 0xffffffff, - bp->bio_data, bp->bio_bcount); - } else { - err = nand_write(chip, - bp->bio_offset & 0xffffffff, - bp->bio_data, bp->bio_bcount); - } - - if (err == 0) - bp->bio_resid = 0; - else { - bp->bio_error = EIO; - bp->bio_flags |= BIO_ERROR; - bp->bio_resid = bp->bio_bcount; - } - - biodone(bp); -} - -static int -nand_oob_access(struct nand_chip *chip, uint32_t page, uint32_t offset, - uint32_t len, uint8_t *data, uint8_t write) -{ - struct chip_geom *cg; - uint8_t *buf = NULL; - int ret = 0; - - cg = &chip->chip_geom; - - buf = malloc(cg->oob_size, M_NAND, M_WAITOK); - if (!buf) - return (ENOMEM); - - memset(buf, 0xff, cg->oob_size); - - if (!write) { - ret = nand_read_oob(chip, page, buf, cg->oob_size); - copyout(buf, data, len); - } else { - copyin(data, buf, len); - ret = nand_prog_oob(chip, page, buf, cg->oob_size); - } - - free(buf, M_NAND); - - return (ret); -} - -static int -nand_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, - struct thread *td) -{ - struct nand_chip *chip; - struct nand_oob_rw *oob_rw = NULL; - struct nand_raw_rw *raw_rw = NULL; - device_t nandbus; - uint8_t *buf = NULL; - int ret = 0; - uint8_t status; - - chip = (struct nand_chip *)dev->si_drv1; - nandbus = device_get_parent(chip->dev); - - if ((cmd == NAND_IO_RAW_READ) || (cmd == NAND_IO_RAW_PROG)) { - raw_rw = (struct nand_raw_rw *)data; - buf = malloc(raw_rw->len, M_NAND, M_WAITOK); - } - switch(cmd) { - case NAND_IO_ERASE: - ret = nand_erase_blocks(chip, ((off_t *)data)[0], - ((off_t *)data)[1]); - break; - - case NAND_IO_OOB_READ: - oob_rw = (struct nand_oob_rw *)data; - ret = nand_oob_access(chip, oob_rw->page, 0, - oob_rw->len, oob_rw->data, 0); - break; - - case NAND_IO_OOB_PROG: - oob_rw = (struct nand_oob_rw *)data; - ret = nand_oob_access(chip, oob_rw->page, 0, - oob_rw->len, oob_rw->data, 1); - break; - - case NAND_IO_GET_STATUS: - NANDBUS_LOCK(nandbus); - ret = NANDBUS_GET_STATUS(nandbus, &status); - if (ret == 0) - *(uint8_t *)data = status; - NANDBUS_UNLOCK(nandbus); - break; - - case NAND_IO_RAW_PROG: - oob_rw = (struct nand_oob_rw *)data; - ret = copyin(oob_rw->data, buf, oob_rw->len); - if (ret) - break; - ret = nand_prog_pages_raw(chip, raw_rw->off, buf, - raw_rw->len); - break; - - case NAND_IO_RAW_READ: - oob_rw = (struct nand_oob_rw *)data; - ret = nand_read_pages_raw(chip, raw_rw->off, buf, - raw_rw->len); - if (ret) - break; - ret = copyout(buf, oob_rw->data, oob_rw->len); - break; - - case NAND_IO_PAGE_STAT: - ret = nand_page_stat(chip, (struct page_stat_io *)data); - break; - - case NAND_IO_BLOCK_STAT: - ret = nand_block_stat(chip, (struct block_stat_io *)data); - break; - - case NAND_IO_GET_CHIP_PARAM: - nand_get_chip_param(chip, (struct chip_param_io *)data); - break; - - default: - printf("Unknown nand_ioctl request \n"); - ret = EIO; - } - - if (buf) - free(buf, M_NAND); - - return (ret); -} - -static int -nand_page_stat(struct nand_chip *chip, struct page_stat_io *page_stat) -{ - struct chip_geom *cg; - struct page_stat *stat; - int num_pages; - - cg = &chip->chip_geom; - num_pages = cg->pgs_per_blk * cg->blks_per_lun * cg->luns; - if (page_stat->page_num >= num_pages) - return (EINVAL); - - stat = &chip->pg_stat[page_stat->page_num]; - page_stat->page_read = stat->page_read; - page_stat->page_written = stat->page_written; - page_stat->page_raw_read = stat->page_raw_read; - page_stat->page_raw_written = stat->page_raw_written; - page_stat->ecc_succeded = stat->ecc_stat.ecc_succeded; - page_stat->ecc_corrected = stat->ecc_stat.ecc_corrected; - page_stat->ecc_failed = stat->ecc_stat.ecc_failed; - - return (0); -} - -static int -nand_block_stat(struct nand_chip *chip, struct block_stat_io *block_stat) -{ - struct chip_geom *cg; - uint32_t block_num = block_stat->block_num; - - cg = &chip->chip_geom; - if (block_num >= cg->blks_per_lun * cg->luns) - return (EINVAL); - - block_stat->block_erased = chip->blk_stat[block_num].block_erased; - - return (0); -} Added: projects/nand/sys/dev/nand/nand_dev.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/nand/sys/dev/nand/nand_dev.h Sat Apr 7 04:22:46 2012 (r233975) @@ -0,0 +1,90 @@ +/*- + * Copyright (C) 2009-2012 Semihalf + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _DEV_NAND_CDEV_H_ +#define _DEV_NAND_CDEV_H_ + +#include +#include + +struct nand_raw_rw { + off_t off; + off_t len; + uint8_t *data; +}; + +struct nand_oob_rw { + uint32_t page; + off_t len; + uint8_t *data; +}; + +#define NAND_IOCTL_GROUP 'N' +#define NAND_IO_ERASE _IOWR(NAND_IOCTL_GROUP, 0x0, off_t[2]) + +#define NAND_IO_OOB_READ _IOWR(NAND_IOCTL_GROUP, 0x1, struct nand_oob_rw) + +#define NAND_IO_OOB_PROG _IOWR(NAND_IOCTL_GROUP, 0x2, struct nand_oob_rw) + +#define NAND_IO_RAW_READ _IOWR(NAND_IOCTL_GROUP, 0x3, struct nand_raw_rw) + +#define NAND_IO_RAW_PROG _IOWR(NAND_IOCTL_GROUP, 0x4, struct nand_raw_rw) + +#define NAND_IO_GET_STATUS _IOWR(NAND_IOCTL_GROUP, 0x5, uint8_t) + +struct page_stat_io { + uint32_t page_num; + uint32_t page_read; + uint32_t page_written; + uint32_t page_raw_read; + uint32_t page_raw_written; + uint32_t ecc_succeded; + uint32_t ecc_corrected; + uint32_t ecc_failed; +}; +#define NAND_IO_PAGE_STAT _IOWR(NAND_IOCTL_GROUP, 0x6, \ + struct page_stat_io) + +struct block_stat_io { + uint32_t block_num; + uint32_t block_erased; +}; +#define NAND_IO_BLOCK_STAT _IOWR(NAND_IOCTL_GROUP, 0x7, \ + struct block_stat_io) + +struct chip_param_io { + uint32_t page_size; + uint32_t oob_size; + + uint32_t blocks; + uint32_t pages_per_block; +}; +#define NAND_IO_GET_CHIP_PARAM _IOWR(NAND_IOCTL_GROUP, 0x8, \ + struct chip_param_io) + +#endif /* _DEV_NAND_CDEV_H_ */ Modified: projects/nand/sys/dev/nand/nand_generic.c ============================================================================== --- projects/nand/sys/dev/nand/nand_generic.c Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nand_generic.c Sat Apr 7 04:22:46 2012 (r233975) @@ -221,12 +221,12 @@ generic_nand_attach(device_t dev) /* TODO remove when HW ECC supported */ nandbus = device_get_parent(dev); nfc = device_get_parent(nandbus); - + chip->nand = device_get_softc(nfc); if (ivar->is_onfi) { onfi_params = malloc(sizeof(struct onfi_params), - M_NAND, M_WAITOK | M_ZERO); + M_NAND, M_WAITOK | M_ZERO); if (onfi_params == NULL) return (ENXIO); @@ -389,7 +389,7 @@ generic_read_page(device_t nand, uint32_ page_to_row(&chip->chip_geom, page, &row); if (send_read_page(nand, NAND_CMD_READ, NAND_CMD_READ_END, row, - offset)) + offset)) return (ENXIO); DELAY(chip->t_r); @@ -427,7 +427,7 @@ generic_read_oob(device_t nand, uint32_t offset += chip->chip_geom.page_size; if (send_read_page(nand, NAND_CMD_READ, NAND_CMD_READ_END, row, - offset)) + offset)) return (ENXIO); DELAY(chip->t_r); @@ -994,7 +994,7 @@ generic_correct_ecc(device_t dev, void * struct nand_chip *chip = device_get_softc(dev); struct chip_geom *cg = &chip->chip_geom; - return (NANDBUS_CORRECT_ECC(device_get_parent(dev), buf, + return (NANDBUS_CORRECT_ECC(device_get_parent(dev), buf, cg->page_size, readecc, calcecc)); } Modified: projects/nand/sys/dev/nand/nand_geom.c ============================================================================== --- projects/nand/sys/dev/nand/nand_geom.c Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nand_geom.c Sat Apr 7 04:22:46 2012 (r233975) @@ -35,20 +35,21 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include #include -#include +#include #include "nand_if.h" #include "nandbus_if.h" #define BIO_NAND_STD ((void *)1) #define BIO_NAND_RAW ((void *)2) -static gnand_ioctl_t nand_ioctl; -static gnand_strategy_t nand_strategy; -static gnand_strategy_t nand_strategy_raw; +static disk_ioctl_t nand_ioctl; +static disk_getattr_t nand_getattr; +static disk_strategy_t nand_strategy; +static disk_strategy_t nand_strategy_raw; static int nand_read(struct nand_chip *chip, uint32_t offset, void *buf, uint32_t len) @@ -94,7 +95,7 @@ nand_strategy(struct bio *bp) { struct nand_chip *chip; - chip = (struct nand_chip *)bp->bio_nand->d_drv1; + chip = (struct nand_chip *)bp->bio_disk->d_drv1; bp->bio_driver1 = BIO_NAND_STD; @@ -102,7 +103,7 @@ nand_strategy(struct bio *bp) (bp->bio_cmd & BIO_READ) == BIO_READ ? "READ" : ((bp->bio_cmd & BIO_WRITE) == BIO_WRITE ? "WRITE" : ((bp->bio_cmd & BIO_DELETE) == BIO_DELETE ? "DELETE" : "UNKNOWN")), - chip->num, chip); + chip->num, chip); mtx_lock(&chip->qlock); bioq_insert_tail(&chip->bioq, bp); @@ -115,7 +116,7 @@ nand_strategy_raw(struct bio *bp) { struct nand_chip *chip; - chip = (struct nand_chip *)bp->bio_nand->d_drv1; + chip = (struct nand_chip *)bp->bio_disk->d_drv1; /* Inform taskqueue that it's a raw access */ bp->bio_driver1 = BIO_NAND_RAW; @@ -124,7 +125,7 @@ nand_strategy_raw(struct bio *bp) (bp->bio_cmd & BIO_READ) == BIO_READ ? "READ" : ((bp->bio_cmd & BIO_WRITE) == BIO_WRITE ? "WRITE" : ((bp->bio_cmd & BIO_DELETE) == BIO_DELETE ? "DELETE" : "UNKNOWN")), - chip->num, chip); + chip->num, chip); mtx_lock(&chip->qlock); bioq_insert_tail(&chip->bioq, bp); @@ -150,7 +151,41 @@ nand_oob_access(struct nand_chip *chip, } static int -nand_ioctl(struct gnand *disk, u_long cmd, void *data, int fflag, +nand_getattr(struct bio *bp) +{ + struct nand_chip *chip; + struct chip_geom *cg; + device_t dev; + + if (bp->bio_disk == NULL || bp->bio_disk->d_drv1 == NULL) + return (ENXIO); + + chip = (struct nand_chip *)bp->bio_disk->d_drv1; + cg = &(chip->chip_geom); + + dev = device_get_parent(chip->dev); + dev = device_get_parent(dev); + + do { + if (g_handleattr_int(bp, "NAND::oobsize", cg->oob_size)) + break; + else if (g_handleattr_int(bp, "NAND::pagesize", cg->page_size)) + break; + else if (g_handleattr_int(bp, "NAND::blocksize", + cg->block_size)) + break; + else if (g_handleattr(bp, "NAND::device", &(dev), + sizeof(device_t))) + break; + + return (ERESTART); + } while (0); + + return (EJUSTRETURN); +} + +static int +nand_ioctl(struct disk *ndisk, u_long cmd, void *data, int fflag, struct thread *td) { struct nand_chip *chip; @@ -161,14 +196,12 @@ nand_ioctl(struct gnand *disk, u_long cm int ret = 0; uint8_t status; - chip = (struct nand_chip *)disk->d_drv1; + chip = (struct nand_chip *)ndisk->d_drv1; nandbus = device_get_parent(chip->dev); if ((cmd == NAND_IO_RAW_READ) || (cmd == NAND_IO_RAW_PROG)) { raw_rw = (struct nand_raw_rw *)data; buf = malloc(raw_rw->len, M_NAND, M_WAITOK); - if (!buf) - return (ENOMEM); } switch (cmd) { case NAND_IO_ERASE: @@ -197,7 +230,7 @@ nand_ioctl(struct gnand *disk, u_long cm break; case NAND_IO_RAW_PROG: - copyin(oob_rw->data, buf, oob_rw->len); + copyin(raw_rw->data, buf, raw_rw->len); ret = nand_prog_pages_raw(chip, raw_rw->off, buf, raw_rw->len); break; @@ -260,18 +293,6 @@ nand_io_proc(void *arg, int pending) } else panic("Unknown access type in bio->bio_driver1\n"); - if ((bp->bio_cmd & BIO_READOOB) == BIO_READOOB) { - err = nand_oob_access(chip, bp->bio_offset / - chip->chip_geom.page_size, 0, - bp->bio_bcount, bp->bio_data, 0); - } - - if ((bp->bio_cmd & BIO_WRITEOOB) == BIO_WRITEOOB) { - err = nand_oob_access(chip, bp->bio_offset / - chip->chip_geom.page_size, 0, - bp->bio_bcount, bp->bio_data, 1); - } - if ((bp->bio_cmd & BIO_DELETE) == BIO_DELETE) { nand_debug(NDBG_GEOM, "Delete on chip%d offset %lld " "length %ld\n", chip->num, bp->bio_offset, @@ -281,9 +302,6 @@ nand_io_proc(void *arg, int pending) bp->bio_bcount); } - if (err == ECC_CORRECTABLE) - bp->bio_flags |= BIO_ECC; - if (err == 0 || err == ECC_CORRECTABLE) bp->bio_resid = 0; else { @@ -301,65 +319,57 @@ nand_io_proc(void *arg, int pending) int create_geom_disk(struct nand_chip *chip) { - struct gnand *disk, *rdisk; - device_t dev; - - dev = device_get_parent(chip->dev); - dev = device_get_parent(dev); + struct disk *ndisk, *rdisk; /* Create the disk device */ - disk = gnand_alloc(); - disk->d_strategy = nand_strategy; - disk->d_ioctl = nand_ioctl; - disk->d_name = "gnand"; - disk->d_drv1 = chip; - disk->d_dev = dev; - disk->d_maxsize = chip->chip_geom.block_size; - disk->d_sectorsize = chip->chip_geom.page_size; - disk->d_mediasize = chip->chip_geom.chip_size; - disk->d_pagesize = chip->chip_geom.page_size; - disk->d_oobsize = chip->chip_geom.oob_size; - disk->d_unit = chip->num + + ndisk = disk_alloc(); + ndisk->d_strategy = nand_strategy; + ndisk->d_ioctl = nand_ioctl; + ndisk->d_getattr = nand_getattr; + ndisk->d_name = "gnand"; + ndisk->d_drv1 = chip; + ndisk->d_maxsize = chip->chip_geom.block_size; + ndisk->d_sectorsize = chip->chip_geom.page_size; + ndisk->d_mediasize = chip->chip_geom.chip_size; + ndisk->d_unit = chip->num + 10 * device_get_unit(device_get_parent(chip->dev)); - /* + /* * When using BBT, make two last blocks of device unavailable * to user (because those are used to store BBT table). */ if (chip->bbt != NULL) - disk->d_mediasize -= (2 * chip->chip_geom.block_size); + ndisk->d_mediasize -= (2 * chip->chip_geom.block_size); - disk->d_flags = DISKFLAG_CANDELETE; + ndisk->d_flags = DISKFLAG_CANDELETE; - snprintf(disk->d_ident, sizeof(disk->d_ident), + snprintf(ndisk->d_ident, sizeof(ndisk->d_ident), "nand: Man:0x%02x Dev:0x%02x", chip->id.man_id, chip->id.dev_id); - gnand_create(disk); + disk_create(ndisk, DISK_VERSION); /* Create the RAW disk device */ - rdisk = gnand_alloc(); + rdisk = disk_alloc(); rdisk->d_strategy = nand_strategy_raw; rdisk->d_ioctl = nand_ioctl; + rdisk->d_getattr = nand_getattr; rdisk->d_name = "gnand.raw"; rdisk->d_drv1 = chip; - rdisk->d_dev = dev; rdisk->d_maxsize = chip->chip_geom.block_size; rdisk->d_sectorsize = chip->chip_geom.page_size; rdisk->d_mediasize = chip->chip_geom.chip_size; - rdisk->d_pagesize = chip->chip_geom.page_size; - rdisk->d_oobsize = chip->chip_geom.oob_size; - rdisk->d_unit = chip->num + + rdisk->d_unit = chip->num + 10 * device_get_unit(device_get_parent(chip->dev)); rdisk->d_flags = DISKFLAG_CANDELETE; - snprintf(rdisk->d_ident, sizeof(disk->d_ident), + snprintf(rdisk->d_ident, sizeof(rdisk->d_ident), "nand_raw: Man:0x%02x Dev:0x%02x", chip->id.man_id, chip->id.dev_id); - gnand_create(rdisk); + disk_create(rdisk, DISK_VERSION); - chip->disk = disk; + chip->ndisk = ndisk; chip->rdisk = rdisk; mtx_init(&chip->qlock, "NAND I/O lock", NULL, MTX_DEF); @@ -370,8 +380,10 @@ create_geom_disk(struct nand_chip *chip) taskqueue_thread_enqueue, &chip->tq); taskqueue_start_threads(&chip->tq, 1, PI_DISK, "nand taskq"); - device_printf(chip->dev, "Created gnand%d for chip [0x%0x, 0x%0x]\n", - disk->d_unit, chip->id.man_id, chip->id.dev_id); + if (bootverbose) + device_printf(chip->dev, "Created gnand%d for chip [0x%0x, " + "0x%0x]\n", ndisk->d_unit, chip->id.man_id, + chip->id.dev_id); return (0); } @@ -382,8 +394,8 @@ destroy_geom_disk(struct nand_chip *chip struct bio *bp; taskqueue_free(chip->tq); - gnand_destroy(chip->disk); - gnand_destroy(chip->rdisk); + disk_destroy(chip->ndisk); + disk_destroy(chip->rdisk); mtx_lock(&chip->qlock); for (;;) { Modified: projects/nand/sys/dev/nand/nandsim.c ============================================================================== --- projects/nand/sys/dev/nand/nandsim.c Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nandsim.c Sat Apr 7 04:22:46 2012 (r233975) @@ -70,9 +70,9 @@ static void nandsim_print_log(struct sim static struct nandsim_chip *get_nandsim_chip(uint8_t, uint8_t); static struct cdevsw nandsim_cdevsw = { - .d_version = D_VERSION, - .d_ioctl = nandsim_ioctl, - .d_name = "nandsim", + .d_version = D_VERSION, + .d_ioctl = nandsim_ioctl, + .d_name = "nandsim", }; int @@ -263,7 +263,7 @@ nandsim_destroy_chip(struct sim_ctrl_chi { struct sim_ctrl_conf *ctrl_conf; - nand_debug(NDBG_SIM,"destroy chip num:%d at ctrl:%d", chip->chip_num, + nand_debug(NDBG_SIM,"destroy chip num:%d at ctrl:%d", chip->chip_num, chip->ctrl_num); if (chip->ctrl_num >= MAX_SIM_DEV || @@ -657,7 +657,7 @@ nandsim_modevent(module_t mod __unused, break; default: return (EOPNOTSUPP); - } + } return (0); } Modified: projects/nand/sys/dev/nand/nandsim_chip.c ============================================================================== --- projects/nand/sys/dev/nand/nandsim_chip.c Sat Apr 7 04:00:30 2012 (r233974) +++ projects/nand/sys/dev/nand/nandsim_chip.c Sat Apr 7 04:22:46 2012 (r233975) @@ -470,8 +470,8 @@ nandchip_get_addr_byte(struct nandsim_ch buffer = (uint8_t *)value; byte = *((uint8_t *)data); - KASSERT((chip->sm_state == NANDSIM_STATE_WAIT_ADDR_ROW || - chip->sm_state == NANDSIM_STATE_WAIT_ADDR_COL), + KASSERT((chip->sm_state == NANDSIM_STATE_WAIT_ADDR_ROW || + chip->sm_state == NANDSIM_STATE_WAIT_ADDR_COL), ("unexpected state")); if (chip->sm_state == NANDSIM_STATE_WAIT_ADDR_ROW) { From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 04:39:15 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6306D106564A; Sat, 7 Apr 2012 04:39:15 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 358838FC08; Sat, 7 Apr 2012 04:39:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q374dFdg042581; Sat, 7 Apr 2012 04:39:15 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q374dF7X042580; Sat, 7 Apr 2012 04:39:15 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070439.q374dF7X042580@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 04:39:15 +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: r233976 - projects/nand/sbin/mount_nandfs 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, 07 Apr 2012 04:39:15 -0000 Author: gber Date: Sat Apr 7 04:39:14 2012 New Revision: 233976 URL: http://svn.freebsd.org/changeset/base/233976 Log: Remove mount_nandfs Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Deleted: projects/nand/sbin/mount_nandfs/ From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 04:53: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 1F577106566B; Sat, 7 Apr 2012 04:53:33 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0839D8FC0C; Sat, 7 Apr 2012 04:53: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 q374rWHn043122; Sat, 7 Apr 2012 04:53:32 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q374rWXo043111; Sat, 7 Apr 2012 04:53:32 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070453.q374rWXo043111@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 04:53:32 +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: r233977 - in projects/nand: sbin/newfs_nandfs usr.sbin/nandsim usr.sbin/nandtool 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, 07 Apr 2012 04:53:33 -0000 Author: gber Date: Sat Apr 7 04:53:32 2012 New Revision: 233977 URL: http://svn.freebsd.org/changeset/base/233977 Log: nandtool newfs: Follow-up to latest changes in geom & cleanup Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/sbin/newfs_nandfs/newfs_nandfs.c projects/nand/usr.sbin/nandsim/nandsim.c projects/nand/usr.sbin/nandtool/Makefile projects/nand/usr.sbin/nandtool/nand_erase.c projects/nand/usr.sbin/nandtool/nand_info.c projects/nand/usr.sbin/nandtool/nand_read.c projects/nand/usr.sbin/nandtool/nand_readoob.c projects/nand/usr.sbin/nandtool/nand_write.c projects/nand/usr.sbin/nandtool/nand_writeoob.c projects/nand/usr.sbin/nandtool/nandtool.c Modified: projects/nand/sbin/newfs_nandfs/newfs_nandfs.c ============================================================================== --- projects/nand/sbin/newfs_nandfs/newfs_nandfs.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/sbin/newfs_nandfs/newfs_nandfs.c Sat Apr 7 04:53:32 2012 (r233977) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #define DEBUG #undef DEBUG @@ -165,7 +166,7 @@ nandfs_log2(unsigned n) * N.B. this function will return 0 if supplied 0. */ for (count = 0; n/2; count++) - n /= 2; + n /= 2; return count; } @@ -750,7 +751,7 @@ save_cpfile(void) /* mark rest of cp as invalid */ cno = NANDFS_FIRST_CNO + 1; i = NANDFS_CPFILE_FIRST_CHECKPOINT_OFFSET + 1; - for (;i < entries; i++) { + for (; i < entries; i++) { cp[i].cp_cno = cno++; cp[i].cp_flags = NANDFS_CHECKPOINT_INVALID; } @@ -909,10 +910,10 @@ check_parameters(void) i = 0; if (volumelabel) { while (isalnum(volumelabel[++i])); - if (volumelabel[i] != '\0') { - errx(1, "bad volume label. " - "Valid characters are alphanumerics."); - } + if (volumelabel[i] != '\0') { + errx(1, "bad volume label. " + "Valid characters are alphanumerics."); + } if (strlen(volumelabel) >= 16) errx(1, "Bad volume label. Length is longer than %d.", @@ -969,6 +970,7 @@ check_mounted(const char *fname, mode_t static void calculate_geometry(int fd) { + struct chip_param_io chip_params; char ident[DISK_IDENT_SIZE]; char medianame[MAXPATHLEN]; @@ -988,8 +990,13 @@ calculate_geometry(int fd) debug("mediasize: %#jx", mediasize); /* Get storage erase unit size */ - if (ioctl(fd, DIOCNBLKSIZE, &erasesize)) + if (!is_nand) erasesize = NANDFS_DEF_ERASESIZE; + else if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) + errx(1, "Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); + else + erasesize = chip_params.page_size * chip_params.pages_per_block; + debug("erasesize: %#jx", (uintmax_t)erasesize); if (blocks_per_segment == 0) { @@ -1134,8 +1141,8 @@ main(int argc, char *argv[]) fname = *argv++; if (!strchr(fname, '/')) { snprintf(buf, sizeof(buf), "%s%s", _PATH_DEV, fname); - if (!(fname = strdup(buf))) - err(1, NULL); + if (!(fname = strdup(buf))) + err(1, NULL); } fd = g_open(fname, 1); Modified: projects/nand/usr.sbin/nandsim/nandsim.c ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandsim/nandsim.c Sat Apr 7 04:53:32 2012 (r233977) @@ -38,7 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include Modified: projects/nand/usr.sbin/nandtool/Makefile ============================================================================== --- projects/nand/usr.sbin/nandtool/Makefile Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/Makefile Sat Apr 7 04:53:32 2012 (r233977) @@ -1,3 +1,5 @@ +# $FreeBSD$ + PROG= nandtool SRCS= nandtool.c nand_read.c nand_write.c nand_erase.c nand_info.c SRCS+= nand_readoob.c nand_writeoob.c @@ -6,6 +8,4 @@ DPADD= ${LIBGEOM} LDADD= -lgeom MAN= nandtool.8 -WARNS?= 7 - .include Modified: projects/nand/usr.sbin/nandtool/nand_erase.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nand_erase.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nand_erase.c Sat Apr 7 04:53:32 2012 (r233977) @@ -34,16 +34,17 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include "nandtool.h" int nand_erase(struct cmd_param *params) { + struct chip_param_io chip_params; char *dev; int fd = -1; off_t pos, count, err = 0; off_t start, nblocks, i; - int page_size, block_size, mult; + int block_size, mult; if (!(dev = param_get_string(params, "dev"))) { fprintf(stderr, "Please supply valid 'dev' parameter.\n"); @@ -58,21 +59,17 @@ int nand_erase(struct cmd_param *params) if ((count = param_get_int(params, "count")) < 0) count = 1; - if (ioctl(fd, DIOCGSECTORSIZE, &page_size)) { - perrorf("Cannot get page size for %s", dev); + if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) { + perrorf("Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); err = errno; goto out; } - if (ioctl(fd, DIOCNBLKSIZE, &block_size)) { - perrorf("Cannot get block size for %s", dev); - err = errno; - goto out; - } + block_size = chip_params.page_size * chip_params.pages_per_block; if (param_has_value(params, "page")) { - pos = page_size * param_get_int(params, "page"); - mult = page_size; + pos = chip_params.page_size * param_get_int(params, "page"); + mult = chip_params.page_size; } else if (param_has_value(params, "block")) { pos = block_size * param_get_int(params, "block"); mult = block_size; @@ -82,7 +79,7 @@ int nand_erase(struct cmd_param *params) } else { /* Erase all chip */ - if (ioctl(fd, DIOCGMEDIASIZE, &count) < 0) { + if (ioctl(fd, DIOCGMEDIASIZE, &count) == -1) { err = errno; goto out; } Modified: projects/nand/usr.sbin/nandtool/nand_info.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nand_info.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nand_info.c Sat Apr 7 04:53:32 2012 (r233977) @@ -34,17 +34,19 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include "nandtool.h" int nand_info(struct cmd_param *params) { - int fd = -1, page_size, block_size, oob_size, err = 0; - off_t media_size; + struct chip_param_io chip_params; + int fd = -1, err = 0, block_size; + off_t chip_size, media_size; const char *dev; if ((dev = param_get_string(params, "dev")) == NULL) { - fprintf(stderr, "Please supply 'dev' parameter, eg. 'dev=/dev/gnand0'\n"); + fprintf(stderr, "Please supply 'dev' parameter, eg. " + "'dev=/dev/gnand0'\n"); return (EINVAL); } @@ -53,35 +55,29 @@ int nand_info(struct cmd_param *params) return (errno); } - if (ioctl(fd, DIOCGSECTORSIZE, &page_size) < 0) { - perrorf("Cannot ioctl(DIOCGSECTORSIZE)"); + if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) { + perrorf("Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); err = errno; goto out; } - if (ioctl(fd, DIOCNBLKSIZE, &block_size) < 0) { - perrorf("Cannot ioctl(DIOCGSECTORSIZE)"); - err = errno; - goto out; - } - - if (ioctl(fd, DIOCNOOBSIZE, &oob_size) < 0) { - perrorf("Cannot ioctl(DIOCGSECTORSIZE)"); - err = errno; - goto out; - } - - if (ioctl(fd, DIOCGMEDIASIZE, &media_size) < 0) { + if (ioctl(fd, DIOCGMEDIASIZE, &media_size) == -1) { perrorf("Cannot ioctl(DIOCGMEDIASIZE)"); err = errno; goto out; } + block_size = chip_params.page_size * chip_params.pages_per_block; + chip_size = block_size * chip_params.blocks; + printf("Device:\t\t\t%s\n", dev); - printf("Page size:\t\t%d bytes\n", page_size); - printf("Block size:\t\t%d bytes (%d KB)\n", block_size, block_size / 1024); - printf("OOB size per page:\t%d bytes\n", oob_size); - printf("Chip size:\t\t%jd MB\n", (uintmax_t)(media_size / 1024 / 1024)); + printf("Page size:\t\t%d bytes\n", chip_params.page_size); + printf("Block size:\t\t%d bytes (%d KB)\n", block_size, + block_size / 1024); + printf("OOB size per page:\t%d bytes\n", chip_params.oob_size); + printf("Chip size:\t\t%jd MB\n", (uintmax_t)(chip_size / 1024 / 1024)); + printf("Slice size:\t\t%jd MB\n", + (uintmax_t)(media_size / 1024 / 1024)); out: if (fd != -1) @@ -89,4 +85,3 @@ out: return (err); } - Modified: projects/nand/usr.sbin/nandtool/nand_read.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nand_read.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nand_read.c Sat Apr 7 04:53:32 2012 (r233977) @@ -34,15 +34,16 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include "nandtool.h" int nand_read(struct cmd_param *params) { + struct chip_param_io chip_params; int fd = -1, out_fd = -1, ret; char *dev, *out; uint8_t *buf = NULL; - int pos, done = 0, count, mult, page_size, block_size; + int pos, done = 0, count, mult, block_size; int err = 0; if (!(dev = param_get_string(params, "dev"))) { @@ -64,28 +65,24 @@ int nand_read(struct cmd_param *params) goto out; } - if (ioctl(fd, DIOCNBLKSIZE, &block_size) < 0) { - perrorf("ioctl(DIOCNBLKSIZE) failed"); + if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) { + perrorf("Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); err = errno; goto out; } - if (ioctl(fd, DIOCGSECTORSIZE, &page_size) < 0) { - perrorf("ioctl(DIOCGSECTORSIZE) failed"); - err = errno; - goto out; - } + block_size = chip_params.page_size * chip_params.pages_per_block; if (param_has_value(params, "page")) { - pos = page_size * param_get_int(params, "page"); - mult = page_size; + pos = chip_params.page_size * param_get_int(params, "page"); + mult = chip_params.page_size; } else if (param_has_value(params, "block")) { pos = block_size * param_get_int(params, "block"); mult = block_size; } else if (param_has_value(params, "pos")) { pos = param_get_int(params, "pos"); mult = 1; - if (pos % page_size) { + if (pos % chip_params.page_size) { fprintf(stderr, "Position must be page-size aligned!\n"); err = errno; goto out; @@ -102,8 +99,9 @@ int nand_read(struct cmd_param *params) else count = param_get_int(params, "count") * mult; - if (!(buf = malloc(page_size))) { - perrorf("Cannot allocate buffer [size %x]", page_size); + if (!(buf = malloc(chip_params.page_size))) { + perrorf("Cannot allocate buffer [size %x]", + chip_params.page_size); err = errno; goto out; } @@ -111,7 +109,8 @@ int nand_read(struct cmd_param *params) lseek(fd, pos, SEEK_SET); while (done < count) { - if ((ret = read(fd, buf, page_size)) != page_size) { + if ((ret = read(fd, buf, chip_params.page_size)) != + (int32_t)chip_params.page_size) { perrorf("read error (read %d bytes)", ret); goto out; } @@ -119,13 +118,14 @@ int nand_read(struct cmd_param *params) done += ret; if (out_fd != -1) { - if ((ret = write(out_fd, buf, page_size)) != page_size) { + if ((ret = write(out_fd, buf, chip_params.page_size)) != + (int32_t)chip_params.page_size) { perrorf("write error (written %d bytes)", ret); err = errno; goto out; } } else - hexdump(buf, page_size); + hexdump(buf, chip_params.page_size); } out: Modified: projects/nand/usr.sbin/nandtool/nand_readoob.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nand_readoob.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nand_readoob.c Sat Apr 7 04:53:32 2012 (r233977) @@ -35,24 +35,24 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include "nandtool.h" int nand_read_oob(struct cmd_param *params) { + struct chip_param_io chip_params; + struct nand_oob_rw req; char *dev, *out; int fd = -1, fd_out = -1; - int err = 0; + int page, err = 0; uint8_t *buf = NULL; - int oobsize, page, pagesize; - struct nand_oob_request req; if ((page = param_get_int(params, "page")) < 0) { fprintf(stderr, "You must supply valid 'page' argument.\n"); return (EINVAL); } - if (!(dev = param_get_string(params, "dev"))){ + if (!(dev = param_get_string(params, "dev"))) { fprintf(stderr, "You must supply 'dev' argument.\n"); return (EINVAL); } @@ -71,39 +71,33 @@ int nand_read_oob(struct cmd_param *para goto out; } - if (ioctl(fd, DIOCGSECTORSIZE, &pagesize)) { - perrorf("Cannot get page size for %s", dev); + if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) { + perrorf("Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); err = errno; goto out; } - if (ioctl(fd, DIOCNOOBSIZE, &oobsize)) { - perrorf("Cannot get OOB size for %s", dev); - err = errno; - goto out; - } - - buf = malloc(oobsize); + buf = malloc(chip_params.oob_size); if (buf == NULL) { - perrorf("Cannot allocate %d bytes\n", oobsize); + perrorf("Cannot allocate %d bytes\n", chip_params.oob_size); err = errno; goto out; } - req.length = oobsize; - req.offset = page * pagesize; - req.ubuf = buf; + req.page = page; + req.len = chip_params.oob_size; + req.data = buf; - if (ioctl(fd, DIOCNREADOOB, &req)) { + if (ioctl(fd, NAND_IO_OOB_READ, &req) == -1) { perrorf("Cannot read OOB from %s", dev); err = errno; goto out; } if (fd_out != -1) - write(fd_out, buf, oobsize); + write(fd_out, buf, chip_params.oob_size); else - hexdump(buf, oobsize); + hexdump(buf, chip_params.oob_size); out: if (fd != -1) Modified: projects/nand/usr.sbin/nandtool/nand_write.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nand_write.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nand_write.c Sat Apr 7 04:53:32 2012 (r233977) @@ -34,15 +34,16 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include "nandtool.h" int nand_write(struct cmd_param *params) { + struct chip_param_io chip_params; char *dev, *file; int fd = -1, in_fd = -1, ret, err = 0; uint8_t *buf = NULL; - int page_size, block_size, mult, pos, done = 0, count, raw; + int block_size, mult, pos, done = 0, count, raw; raw = param_get_boolean(params, "raw"); @@ -67,29 +68,26 @@ int nand_write(struct cmd_param *params) goto out; } - if (ioctl(fd, DIOCGSECTORSIZE, &page_size) < 0) { - perrorf("ioctl(DIOCGSECTORSIZE) failed"); + if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) { + perrorf("Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); err = errno; goto out; } - if (ioctl(fd, DIOCNBLKSIZE, &block_size) < 0) { - perrorf("ioctl(DIOCNBLKSIZE) failed"); - err = errno; - goto out; - } + block_size = chip_params.page_size * chip_params.pages_per_block; if (param_has_value(params, "page")) { - pos = page_size * param_get_int(params, "page"); - mult = page_size; + pos = chip_params.page_size * param_get_int(params, "page"); + mult = chip_params.page_size; } else if (param_has_value(params, "block")) { pos = block_size * param_get_int(params, "block"); mult = block_size; } else if (param_has_value(params, "pos")) { pos = param_get_int(params, "pos"); mult = 1; - if (pos % page_size) { - fprintf(stderr, "Position must be page-size aligned!\n"); + if (pos % chip_params.page_size) { + fprintf(stderr, "Position must be page-size " + "aligned!\n"); errno = EINVAL; goto out; } @@ -105,17 +103,18 @@ int nand_write(struct cmd_param *params) else count = param_get_int(params, "count") * mult; - if (!(buf = malloc(page_size))) { - perrorf("Cannot allocate buffer [size %x]", page_size); + if (!(buf = malloc(chip_params.page_size))) { + perrorf("Cannot allocate buffer [size %x]", + chip_params.page_size); err = errno; goto out; } lseek(fd, pos, SEEK_SET); - while (done < count) - { - if ((ret = read(in_fd, buf, page_size)) != page_size) { + while (done < count) { + if ((ret = read(in_fd, buf, chip_params.page_size)) != + (int32_t)chip_params.page_size) { if (ret > 0) { /* End of file ahead, truncate here */ break; @@ -126,7 +125,8 @@ int nand_write(struct cmd_param *params) } } - if ((ret = write(fd, buf, page_size)) != page_size) { + if ((ret = write(fd, buf, chip_params.page_size)) != + (int32_t)chip_params.page_size) { err = errno; goto out; } Modified: projects/nand/usr.sbin/nandtool/nand_writeoob.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nand_writeoob.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nand_writeoob.c Sat Apr 7 04:53:32 2012 (r233977) @@ -34,16 +34,17 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include +#include #include "nandtool.h" int nand_write_oob(struct cmd_param *params) { + struct chip_param_io chip_params; + struct nand_oob_rw req; char *dev, *in; int fd = -1, fd_in = -1; uint8_t *buf = NULL; - int pagesize, oobsize, page, err = 0; - struct nand_oob_request req; + int page, err = 0; if (!(dev = param_get_string(params, "dev"))) { fprintf(stderr, "Please supply valid 'dev' parameter.\n"); @@ -71,38 +72,30 @@ int nand_write_oob(struct cmd_param *par goto out; } - if (ioctl(fd, DIOCGSECTORSIZE, &pagesize)) { - perrorf("Cannot get page size for %s", dev); + if (ioctl(fd, NAND_IO_GET_CHIP_PARAM, &chip_params) == -1) { + perrorf("Cannot ioctl(NAND_IO_GET_CHIP_PARAM)"); err = errno; goto out; } - - if (ioctl(fd, DIOCNOOBSIZE, &oobsize)) { - perrorf("Cannot get OOB size for %s", dev); - err = errno; - goto out; - } - - buf = xmalloc(oobsize); + buf = xmalloc(chip_params.oob_size); if (buf == NULL) { - perrorf("Cannot allocate %d bytes\n", oobsize); + perrorf("Cannot allocate %d bytes\n", chip_params.oob_size); err = errno; goto out; } - if (read(fd_in, buf, oobsize) < 0) { + if (read(fd_in, buf, chip_params.oob_size) < 0) { perrorf("Cannot read from %s", in); err = errno; goto out; } + req.page = page; + req.len = chip_params.oob_size; + req.data = buf; - req.offset = page * pagesize; - req.length = oobsize; - req.ubuf = buf; - - if (ioctl(fd, DIOCNWRITEOOB, &req)) { + if (ioctl(fd, NAND_IO_OOB_PROG, &req) == -1) { perrorf("Cannot write OOB to %s", dev); err = errno; goto out; Modified: projects/nand/usr.sbin/nandtool/nandtool.c ============================================================================== --- projects/nand/usr.sbin/nandtool/nandtool.c Sat Apr 7 04:39:14 2012 (r233976) +++ projects/nand/usr.sbin/nandtool/nandtool.c Sat Apr 7 04:53:32 2012 (r233977) @@ -55,7 +55,8 @@ static const struct { { NULL, NULL, NULL }, }; -char *param_get_string(struct cmd_param *params, const char *name) +char * +param_get_string(struct cmd_param *params, const char *name) { int i; @@ -67,7 +68,8 @@ char *param_get_string(struct cmd_param return (NULL); } -int param_get_int(struct cmd_param *params, const char *name) +int +param_get_int(struct cmd_param *params, const char *name) { unsigned long ret; char *str = param_get_string(params, name); @@ -85,7 +87,8 @@ int param_get_int(struct cmd_param *para return (ret); } -int param_get_boolean(struct cmd_param *params, const char *name) +int +param_get_boolean(struct cmd_param *params, const char *name) { char *str = param_get_string(params, name); @@ -98,7 +101,8 @@ int param_get_boolean(struct cmd_param * return (0); } -int param_has_value(struct cmd_param *params, const char *name) +int +param_has_value(struct cmd_param *params, const char *name) { int i; @@ -110,16 +114,18 @@ int param_has_value(struct cmd_param *pa return (0); } -int param_get_count(struct cmd_param *params) +int +param_get_count(struct cmd_param *params) { int i; for (i = 0; params[i].name[0] != '\0'; i++); - return i; + return (i); } -void hexdump(uint8_t *buf, int length) +void +hexdump(uint8_t *buf, int length) { int i, j; for (i = 0; i < length; i += 16) { @@ -140,28 +146,33 @@ void hexdump(uint8_t *buf, int length) } } -void *xmalloc(size_t len) +void * +xmalloc(size_t len) { void *ret = malloc(len); if (!ret) { - fprintf(stderr, "Cannot allocate buffer of %zd bytes. Exiting.\n", len); + fprintf(stderr, "Cannot allocate buffer of %zd bytes. " + "Exiting.\n", len); exit(EX_OSERR); } - return ret; + return (ret); } -void perrorf(const char *format, ...) +void +perrorf(const char *format, ...) { va_list args; + va_start(args, format); vfprintf(stderr, format, args); va_end(args); fprintf(stderr, ": %s\n", strerror(errno)); } -int usage(struct cmd_param *params) +int +usage(struct cmd_param *params) { int i; @@ -174,7 +185,8 @@ int usage(struct cmd_param *params) fprintf(stderr, "\t%s\n", commands[i].name); fprintf(stderr, "\n"); - fprintf(stderr, "For information about particular command, type:\n"); + fprintf(stderr, "For information about particular command, " + "type:\n"); fprintf(stderr, "'nandtool help topic='\n"); } else if (param_has_value(params, "topic")) { for (i = 0; commands[i].name != NULL; i++) { @@ -194,7 +206,8 @@ int usage(struct cmd_param *params) return (EX_USAGE); } -int main(int argc, const char *argv[]) +int +main(int argc, const char *argv[]) { struct cmd_param *params; int i, ret, idx; @@ -210,13 +223,14 @@ int main(int argc, const char *argv[]) if (sscanf(argv[i], "%63[^=]=%63s", params[idx].name, params[idx].value) < 2) { fprintf(stderr, "Syntax error in argument %d. " - "Argument should be in form 'name=value'.\n", i); + "Argument should be in form 'name=value'.\n", i); + free(params); return (-1); } } - params[idx+1].name[0] = '\0'; - params[idx+1].value[0] = '\0'; + params[idx].name[0] = '\0'; + params[idx].value[0] = '\0'; for (i = 0; commands[i].name != NULL; i++) { if (!strcmp(commands[i].name, argv[1])) { From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 04:55:37 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 E9B05106564A; Sat, 7 Apr 2012 04:55:36 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C9BD48FC12; Sat, 7 Apr 2012 04:55: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 q374ta5p043239; Sat, 7 Apr 2012 04:55:36 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q374taYC043237; Sat, 7 Apr 2012 04:55:36 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070455.q374taYC043237@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 04:55: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: r233978 - projects/nand/sys/dev/nand 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, 07 Apr 2012 04:55:37 -0000 Author: gber Date: Sat Apr 7 04:55:36 2012 New Revision: 233978 URL: http://svn.freebsd.org/changeset/base/233978 Log: Bring back nand_cdev.c Modified: projects/nand/sys/dev/nand/nand_cdev.c Modified: projects/nand/sys/dev/nand/nand_cdev.c ============================================================================== --- projects/nand/sys/dev/nand/nand_cdev.c Sat Apr 7 04:53:32 2012 (r233977) +++ projects/nand/sys/dev/nand/nand_cdev.c Sat Apr 7 04:55:36 2012 (r233978) @@ -0,0 +1,413 @@ +/*- + * Copyright (C) 2009-2012 Semihalf + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include "nand_if.h" +#include "nandbus_if.h" + +static int nand_page_stat(struct nand_chip *, struct page_stat_io *); +static int nand_block_stat(struct nand_chip *, struct block_stat_io *); + +static d_ioctl_t nand_ioctl; +static d_open_t nand_open; +static d_strategy_t nand_strategy; + +static struct cdevsw nand_cdevsw = { + .d_version = D_VERSION, + .d_name = "nand", + .d_open = nand_open, + .d_read = physread, + .d_write = physwrite, + .d_ioctl = nand_ioctl, + .d_strategy = nand_strategy, +}; + +static int +offset_to_page(struct chip_geom *cg, uint32_t offset) +{ + + return (offset / cg->page_size); +} + +static int +offset_to_page_off(struct chip_geom *cg, uint32_t offset) +{ + + return (offset % cg->page_size); +} + +int +nand_make_dev(struct nand_chip *chip) +{ + struct nandbus_ivar *ivar; + device_t parent, nandbus; + int parent_unit, unit; + char *name; + + ivar = device_get_ivars(chip->dev); + nandbus = device_get_parent(chip->dev); + + if (ivar->chip_cdev_name) { + name = ivar->chip_cdev_name; + + /* + * If we got distinct name for chip device we can enumarete it + * based on contoller number. + */ + parent = device_get_parent(nandbus); + } else { + name = "nand"; + parent = nandbus; + } + + parent_unit = device_get_unit(parent); + unit = parent_unit * 4 + chip->num; + chip->cdev = make_dev(&nand_cdevsw, unit, UID_ROOT, GID_WHEEL, + 0666, "%s%d.%d", name, parent_unit, chip->num); + + if (chip->cdev == NULL) + return (ENXIO); + + if (bootverbose) + device_printf(chip->dev, "Created cdev %s%d.%d for chip " + "[0x%0x, 0x%0x]\n", name, parent_unit, chip->num, + ivar->man_id, ivar->dev_id); + + chip->cdev->si_drv1 = chip; + + return (0); +} + +void +nand_destroy_dev(struct nand_chip *chip) +{ + + if (chip->cdev) + destroy_dev(chip->cdev); +} + +static int +nand_open(struct cdev *dev, int oflags, int devtype, struct thread *td) +{ + + return (0); +} + +static int +nand_read(struct nand_chip *chip, uint32_t offset, void *buf, uint32_t len) +{ + struct chip_geom *cg; + device_t nandbus; + int start_page, count, off, err = 0; + uint8_t *ptr, *tmp; + + nand_debug(NDBG_CDEV, "Read from chip%d [%p] at %d\n", chip->num, + chip, offset); + + nandbus = device_get_parent(chip->dev); + NANDBUS_LOCK(nandbus); + NANDBUS_SELECT_CS(device_get_parent(chip->dev), chip->num); + + cg = &chip->chip_geom; + start_page = offset_to_page(cg, offset); + off = offset_to_page_off(cg, offset); + count = (len > cg->page_size - off) ? cg->page_size - off : len; + + ptr = (uint8_t *)buf; + while (len > 0) { + if (len < cg->page_size) { + tmp = malloc(cg->page_size, M_NAND, M_WAITOK); + if (!tmp) { + err = ENOMEM; + break; + } + err = NAND_READ_PAGE(chip->dev, start_page, + tmp, cg->page_size, 0); + if (err) { + free(tmp, M_NAND); + break; + } + bcopy(tmp + off, ptr, count); + free(tmp, M_NAND); + } else { + err = NAND_READ_PAGE(chip->dev, start_page, + ptr, cg->page_size, 0); + if (err) + break; + } + + len -= count; + start_page++; + ptr += count; + count = (len > cg->page_size) ? cg->page_size : len; + off = 0; + } + + NANDBUS_UNLOCK(nandbus); + return (err); +} + +static int +nand_write(struct nand_chip *chip, uint32_t offset, void* buf, uint32_t len) +{ + struct chip_geom *cg; + device_t nandbus; + int off, start_page, err = 0; + uint8_t *ptr; + + nand_debug(NDBG_CDEV, "Write to chip %d [%p] at %d\n", chip->num, + chip, offset); + + nandbus = device_get_parent(chip->dev); + NANDBUS_LOCK(nandbus); + NANDBUS_SELECT_CS(device_get_parent(chip->dev), chip->num); + + cg = &chip->chip_geom; + start_page = offset_to_page(cg, offset); + off = offset_to_page_off(cg, offset); + + if (off != 0 || (len % cg->page_size) != 0) { + printf("Not aligned write start [0x%08x] size [0x%08x]\n", + off, len); + NANDBUS_UNLOCK(nandbus); + return (EINVAL); + } + + ptr = (uint8_t *)buf; + while (len > 0) { + err = NAND_PROGRAM_PAGE(chip->dev, start_page, ptr, + cg->page_size, 0); + if (err) + break; + + len -= cg->page_size; + start_page++; + ptr += cg->page_size; + } + + NANDBUS_UNLOCK(nandbus); + return (err); +} + +static void +nand_strategy(struct bio *bp) +{ + struct nand_chip *chip; + struct cdev *dev; + int err = 0; + + dev = bp->bio_dev; + chip = dev->si_drv1; + + nand_debug(NDBG_CDEV, "Strategy %s on chip %d [%p]\n", + (bp->bio_cmd & BIO_READ) == BIO_READ ? "READ" : "WRITE", + chip->num, chip); + + if ((bp->bio_cmd & BIO_READ) == BIO_READ) { + err = nand_read(chip, + bp->bio_offset & 0xffffffff, + bp->bio_data, bp->bio_bcount); + } else { + err = nand_write(chip, + bp->bio_offset & 0xffffffff, + bp->bio_data, bp->bio_bcount); + } + + if (err == 0) + bp->bio_resid = 0; + else { + bp->bio_error = EIO; + bp->bio_flags |= BIO_ERROR; + bp->bio_resid = bp->bio_bcount; + } + + biodone(bp); +} + +static int +nand_oob_access(struct nand_chip *chip, uint32_t page, uint32_t offset, + uint32_t len, uint8_t *data, uint8_t write) +{ + struct chip_geom *cg; + uint8_t *buf = NULL; + int ret = 0; + + cg = &chip->chip_geom; + + buf = malloc(cg->oob_size, M_NAND, M_WAITOK); + if (!buf) + return (ENOMEM); + + memset(buf, 0xff, cg->oob_size); + + if (!write) { + ret = nand_read_oob(chip, page, buf, cg->oob_size); + copyout(buf, data, len); + } else { + copyin(data, buf, len); + ret = nand_prog_oob(chip, page, buf, cg->oob_size); + } + + free(buf, M_NAND); + + return (ret); +} + +static int +nand_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int fflag, + struct thread *td) +{ + struct nand_chip *chip; + struct nand_oob_rw *oob_rw = NULL; + struct nand_raw_rw *raw_rw = NULL; + device_t nandbus; + uint8_t *buf = NULL; + int ret = 0; + uint8_t status; + + chip = (struct nand_chip *)dev->si_drv1; + nandbus = device_get_parent(chip->dev); + + if ((cmd == NAND_IO_RAW_READ) || (cmd == NAND_IO_RAW_PROG)) { + raw_rw = (struct nand_raw_rw *)data; + buf = malloc(raw_rw->len, M_NAND, M_WAITOK); + } + switch(cmd) { + case NAND_IO_ERASE: + ret = nand_erase_blocks(chip, ((off_t *)data)[0], + ((off_t *)data)[1]); + break; + + case NAND_IO_OOB_READ: + oob_rw = (struct nand_oob_rw *)data; + ret = nand_oob_access(chip, oob_rw->page, 0, + oob_rw->len, oob_rw->data, 0); + break; + + case NAND_IO_OOB_PROG: + oob_rw = (struct nand_oob_rw *)data; + ret = nand_oob_access(chip, oob_rw->page, 0, + oob_rw->len, oob_rw->data, 1); + break; + + case NAND_IO_GET_STATUS: + NANDBUS_LOCK(nandbus); + ret = NANDBUS_GET_STATUS(nandbus, &status); + if (ret == 0) + *(uint8_t *)data = status; + NANDBUS_UNLOCK(nandbus); + break; + + case NAND_IO_RAW_PROG: + ret = copyin(raw_rw->data, buf, raw_rw->len); + if (ret) + break; + ret = nand_prog_pages_raw(chip, raw_rw->off, buf, + raw_rw->len); + break; + + case NAND_IO_RAW_READ: + ret = nand_read_pages_raw(chip, raw_rw->off, buf, + raw_rw->len); + if (ret) + break; + ret = copyout(buf, raw_rw->data, raw_rw->len); + break; + + case NAND_IO_PAGE_STAT: + ret = nand_page_stat(chip, (struct page_stat_io *)data); + break; + + case NAND_IO_BLOCK_STAT: + ret = nand_block_stat(chip, (struct block_stat_io *)data); + break; + + case NAND_IO_GET_CHIP_PARAM: + nand_get_chip_param(chip, (struct chip_param_io *)data); + break; + + default: + printf("Unknown nand_ioctl request \n"); + ret = EIO; + } + + if (buf) + free(buf, M_NAND); + + return (ret); +} + +static int +nand_page_stat(struct nand_chip *chip, struct page_stat_io *page_stat) +{ + struct chip_geom *cg; + struct page_stat *stat; + int num_pages; + + cg = &chip->chip_geom; + num_pages = cg->pgs_per_blk * cg->blks_per_lun * cg->luns; + if (page_stat->page_num >= num_pages) + return (EINVAL); + + stat = &chip->pg_stat[page_stat->page_num]; + page_stat->page_read = stat->page_read; + page_stat->page_written = stat->page_written; + page_stat->page_raw_read = stat->page_raw_read; + page_stat->page_raw_written = stat->page_raw_written; + page_stat->ecc_succeded = stat->ecc_stat.ecc_succeded; + page_stat->ecc_corrected = stat->ecc_stat.ecc_corrected; + page_stat->ecc_failed = stat->ecc_stat.ecc_failed; + + return (0); +} + +static int +nand_block_stat(struct nand_chip *chip, struct block_stat_io *block_stat) +{ + struct chip_geom *cg; + uint32_t block_num = block_stat->block_num; + + cg = &chip->chip_geom; + if (block_num >= cg->blks_per_lun * cg->luns) + return (EINVAL); + + block_stat->block_erased = chip->blk_stat[block_num].block_erased; + + return (0); +} From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:04:15 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8F44D106564A; Sat, 7 Apr 2012 05:04:15 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 78F728FC19; Sat, 7 Apr 2012 05:04:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q3754F15043600; Sat, 7 Apr 2012 05:04:15 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q3754Fpl043592; Sat, 7 Apr 2012 05:04:15 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070504.q3754Fpl043592@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:04:15 +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: r233979 - projects/nand/sys/dev/nand 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, 07 Apr 2012 05:04:15 -0000 Author: gber Date: Sat Apr 7 05:04:14 2012 New Revision: 233979 URL: http://svn.freebsd.org/changeset/base/233979 Log: nand: Various fixes Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/sys/dev/nand/nand_bbt.c projects/nand/sys/dev/nand/nandsim.c projects/nand/sys/dev/nand/nandsim.h projects/nand/sys/dev/nand/nandsim_chip.c projects/nand/sys/dev/nand/nandsim_chip.h projects/nand/sys/dev/nand/nandsim_swap.c projects/nand/sys/dev/nand/nandsim_swap.h Modified: projects/nand/sys/dev/nand/nand_bbt.c ============================================================================== --- projects/nand/sys/dev/nand/nand_bbt.c Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nand_bbt.c Sat Apr 7 05:04:14 2012 (r233979) @@ -182,8 +182,8 @@ nand_bbt_load_hdr(struct nand_bbt *bbt, if (primary) addr = bbt->primary_map; - - addr = bbt->secondary_map; + else + addr = bbt->secondary_map; return (nand_read_pages_raw(bbt->chip, addr, hdr, sizeof(struct bbt_header))); @@ -227,6 +227,7 @@ nand_bbt_prescan(struct nand_bbt *bbt) { int32_t i; uint8_t bad; + bool printed_hash = 0; device_printf(bbt->chip->dev, "No BBT found. Prescan chip...\n"); for (i = 0; i < bbt->chip->chip_geom.blks_per_chip; i++) { @@ -237,9 +238,15 @@ nand_bbt_prescan(struct nand_bbt *bbt) device_printf(bbt->chip->dev, "Bad block(%d)\n", i); bbt->table[i] = 0x0FFFFFFF; } - if (!(i%100)) printf("#"); + if (!(i % 100)) { + printf("#"); + printed_hash = 1; + } } + if (printed_hash) + printf("\n"); + return (0); } Modified: projects/nand/sys/dev/nand/nandsim.c ============================================================================== --- projects/nand/sys/dev/nand/nandsim.c Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nandsim.c Sat Apr 7 05:04:14 2012 (r233979) @@ -453,7 +453,7 @@ nandsim_inject_error(struct sim_error *e return (EINVAL); offset = (page * page_size) + error->column; - memset(&bs->block_ptr[offset], error->pattern, error->len); + memset(&bs->blk_ptr[offset], error->pattern, error->len); return (0); } @@ -479,10 +479,10 @@ nandsim_set_block_state(struct sim_block if (bs->block_num > blocks) return (EINVAL); - chip->blk_wearout[bs->block_num].is_bad = bs->state; + chip->blk_state[bs->block_num].is_bad = bs->state; if (bs->wearout >= 0) - chip->blk_wearout[bs->block_num].wear_lev = bs->wearout; + chip->blk_state[bs->block_num].wear_lev = bs->wearout; return (0); } @@ -508,8 +508,8 @@ nandsim_get_block_state(struct sim_block if (bs->block_num > blocks) return (EINVAL); - bs->state = chip->blk_wearout[bs->block_num].is_bad; - bs->wearout = chip->blk_wearout[bs->block_num].wear_lev; + bs->state = chip->blk_state[bs->block_num].is_bad; + bs->wearout = chip->blk_state[bs->block_num].wear_lev; return (0); } @@ -538,7 +538,7 @@ nandsim_dump(struct sim_dump *dump) if (dump->len > blk_size) dump->len = blk_size; - copyout(bs->block_ptr, dump->data, dump->len); + copyout(bs->blk_ptr, dump->data, dump->len); return (0); } @@ -569,7 +569,7 @@ nandsim_restore(struct sim_dump *dump) dump->len = blk_size; - copyin(dump->data, bs->block_ptr, dump->len); + copyin(dump->data, bs->blk_ptr, dump->len); return (0); } Modified: projects/nand/sys/dev/nand/nandsim.h ============================================================================== --- projects/nand/sys/dev/nand/nandsim.h Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nandsim.h Sat Apr 7 05:04:14 2012 (r233979) @@ -35,6 +35,7 @@ #define MAX_SIM_DEV 4 #define MAX_CTRL_CS 4 #define MAX_ECC_BYTES 512 +#define MAX_BAD_BLOCKS 512 #define DEV_MODEL_STR_SIZE 21 #define MAN_STR_SIZE 13 #define FILENAME_SIZE 20 @@ -71,6 +72,7 @@ struct sim_ctrl { }; #define NANDSIM_CREATE_CTRL _IOW(NANDSIM_BASE, 2, struct sim_ctrl) #define NANDSIM_DESTROY_CTRL _IOW(NANDSIM_BASE, 3, int) + struct sim_chip { uint8_t num; uint8_t ctrl_num; @@ -96,6 +98,7 @@ struct sim_chip { uint32_t error_ratio; uint32_t wear_level; + uint32_t bad_block_map[MAX_BAD_BLOCKS]; uint8_t is_wp; }; Modified: projects/nand/sys/dev/nand/nandsim_chip.c ============================================================================== --- projects/nand/sys/dev/nand/nandsim_chip.c Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nandsim_chip.c Sat Apr 7 05:04:14 2012 (r233979) @@ -69,8 +69,9 @@ static void nandsim_start_handler(struct static void nandsim_callout_eh(void *); static int nandsim_delay(struct nandsim_chip *, int); -static int nandsim_blk_wearout_init(struct nandsim_chip *, uint32_t, uint32_t); -static void nandsim_blk_wearout_destroy(struct nandsim_chip *); +static int nandsim_bbm_init(struct nandsim_chip *, uint32_t, uint32_t *); +static int nandsim_blk_state_init(struct nandsim_chip *, uint32_t, uint32_t); +static void nandsim_blk_state_destroy(struct nandsim_chip *); static int nandchip_is_block_valid(struct nandsim_chip *, int); static void nandchip_set_status(struct nandsim_chip *, uint8_t); @@ -114,6 +115,9 @@ nandsim_chip_init(struct nandsim_softc* chip->erase_delay = sim_chip->erase_time; chip->read_delay = sim_chip->read_time; + chip_param->t_prog = sim_chip->prog_time; + chip_param->t_bers = sim_chip->erase_time; + chip_param->t_r = sim_chip->read_time; bcopy("onfi", &chip_param->signature, 4); chip_param->manufacturer_id = sim_chip->manufact_id; @@ -140,44 +144,41 @@ nandsim_chip_init(struct nandsim_softc* size = chip_param->blocks_per_lun * chip_param->luns; - error = nandsim_blk_wearout_init(chip, size, sim_chip->wear_level); + error = nandsim_blk_state_init(chip, size, sim_chip->wear_level); if (error) { mtx_destroy(&chip->ns_lock); free(chip, M_NANDSIM); return (NULL); } + error = nandsim_bbm_init(chip, size, sim_chip->bad_block_map); + if (error) { + mtx_destroy(&chip->ns_lock); + nandsim_blk_state_destroy(chip); + free(chip, M_NANDSIM); + return (NULL); + } + nandsim_start_handler(chip, poweron_evh); nand_debug(NDBG_SIM,"Create thread for chip%d [%8p]", chip->chip_num, chip); /* Create chip thread */ -#if __FreeBSD_version > 800001 error = kproc_kthread_add(nandsim_loop, chip, &nandsim_proc, &chip->nandsim_td, RFSTOPPED | RFHIGHPID, 0, "nandsim", "chip"); -#else - error = kthread_create(nandsim_loop, chip, &chip->nandsim_proc, - RFSTOPPED | RFHIGHPID, 0, "nandsim"); - chip->nandsim_td = FIRST_THREAD_IN_PROC(chip->nandsim_proc); -#endif if (error) { mtx_destroy(&chip->ns_lock); - nandsim_blk_wearout_destroy(chip); + nandsim_blk_state_destroy(chip); free(chip, M_NANDSIM); return (NULL); } -#if __FreeBSD_version > 700001 + thread_lock(chip->nandsim_td); sched_class(chip->nandsim_td, PRI_REALTIME); sched_add(chip->nandsim_td, SRQ_BORING); thread_unlock(chip->nandsim_td); -#else - mtx_lock_spin(&sched_lock); - sched_class(chip->nandsim_td->td_ksegrp, PRI_REALTIME); - sched_add(chip->nandsim_td, SRQ_BORING); - mtx_unlock_spin(&sched_lock); -#endif + size = (chip_param->bytes_per_page + chip_param->spare_bytes_per_page) * chip_param->pages_per_block; @@ -195,7 +196,7 @@ nandsim_chip_init(struct nandsim_softc* } static int -nandsim_blk_wearout_init(struct nandsim_chip *chip, uint32_t size, +nandsim_blk_state_init(struct nandsim_chip *chip, uint32_t size, uint32_t wear_lev) { int i; @@ -203,28 +204,58 @@ nandsim_blk_wearout_init(struct nandsim_ if (!chip || size == 0) return (-1); - chip->blk_wearout = malloc(size * sizeof(struct block_wearout), + chip->blk_state = malloc(size * sizeof(struct nandsim_block_state), M_NANDSIM, M_WAITOK | M_ZERO); - if (!chip->blk_wearout) { + if (!chip->blk_state) { return (-1); } for (i = 0; i < size; i++) { if (wear_lev) - chip->blk_wearout[i].wear_lev = wear_lev; + chip->blk_state[i].wear_lev = wear_lev; else - chip->blk_wearout[i].wear_lev = -1; + chip->blk_state[i].wear_lev = -1; } return (0); } static void -nandsim_blk_wearout_destroy(struct nandsim_chip *chip) +nandsim_blk_state_destroy(struct nandsim_chip *chip) { - if (chip && chip->blk_wearout) - free(chip->blk_wearout, M_NANDSIM); + if (chip && chip->blk_state) + free(chip->blk_state, M_NANDSIM); +} + +static int +nandsim_bbm_init(struct nandsim_chip *chip, uint32_t size, + uint32_t *sim_bbm) +{ + uint32_t index; + int i; + + if ((chip == NULL) || (size == 0)) + return (-1); + + if (chip->blk_state == NULL) + return (-1); + + if (sim_bbm == NULL) + return (0); + + for (i = 0; i < MAX_BAD_BLOCKS; i++) { + index = sim_bbm[i]; + + if (index == 0xffffffff) + break; + else if (index > size) + return (-1); + else + chip->blk_state[index].is_bad = 1; + } + + return (0); } void @@ -282,15 +313,12 @@ nandsim_loop(void *arg) NANDSIM_CHIP_UNLOCK(chip); nandsim_log(chip, NANDSIM_LOG_SM, "destroyed\n"); mtx_destroy(&chip->ns_lock); - nandsim_blk_wearout_destroy(chip); + nandsim_blk_state_destroy(chip); nandsim_swap_destroy(chip->swap); free(chip, M_NANDSIM); nandsim_proc = NULL; -#if __FreeBSD_version > 800001 + kthread_exit(); -#else - kthread_exit(0); -#endif } if (!(chip->flags & NANDSIM_CHIP_FROZEN)) { @@ -381,10 +409,8 @@ nandsim_delay(struct nandsim_chip *chip, if (callout_reset(&chip->ns_callout, tm, nandsim_callout_eh, ev)) return (-1); - chip->read_delay -= MIN(chip->read_delay, 100); delay.tv_sec = chip->read_delay / 1000000; delay.tv_usec = chip->read_delay % 1000000; - delay.tv_usec = chip->read_delay % 1000000; timevaladd(&chip->delay_tv, &delay); return (0); @@ -455,7 +481,7 @@ nandchip_chip_space(struct nandsim_chip } else offset = page * (chip->cg.page_size + chip->cg.oob_size); - nandchip_set_data(chip, &blk_space->block_ptr[offset], size, column); + nandchip_set_data(chip, &blk_space->blk_ptr[offset], size, column); return (0); } @@ -497,11 +523,11 @@ static int nandchip_is_block_valid(struct nandsim_chip *chip, int block_num) { - if (!chip || !chip->blk_wearout) + if (!chip || !chip->blk_state) return (0); - if (chip->blk_wearout[block_num].wear_lev == 0 || - chip->blk_wearout[block_num].is_bad) + if (chip->blk_state[block_num].wear_lev == 0 || + chip->blk_state[block_num].is_bad) return (0); return (1); @@ -789,8 +815,8 @@ erase_evh(struct nandsim_chip *chip, uin err = nand_row_to_blkpg(&chip->cg, row, &lun, &block, &page); if (!err) { - if (chip->blk_wearout[block].wear_lev > 0) - chip->blk_wearout[block].wear_lev--; + if (chip->blk_state[block].wear_lev > 0) + chip->blk_state[block].wear_lev--; } if (chip->erase_delay != 0 && Modified: projects/nand/sys/dev/nand/nandsim_chip.h ============================================================================== --- projects/nand/sys/dev/nand/nandsim_chip.h Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nandsim_chip.h Sat Apr 7 05:04:14 2012 (r233979) @@ -76,7 +76,7 @@ struct nandsim_data { uint32_t size; }; -struct block_wearout { +struct nandsim_block_state { int32_t wear_lev; uint8_t is_bad; }; @@ -88,9 +88,7 @@ struct block_wearout { struct nandsim_chip { struct nandsim_softc *sc; struct thread *nandsim_td; -#if __FreeBSD_version < 800001 - struct proc *nandsim_proc; -#endif + STAILQ_HEAD(, nandsim_ev) nandsim_events; nandsim_evh_t *ev_handler; struct mtx ns_lock; @@ -100,7 +98,7 @@ struct nandsim_chip { struct nand_id id; struct onfi_params params; struct nandsim_data data; - struct block_wearout *blk_wearout; + struct nandsim_block_state *blk_state; struct chip_swap *swap; Modified: projects/nand/sys/dev/nand/nandsim_swap.c ============================================================================== --- projects/nand/sys/dev/nand/nandsim_swap.c Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nandsim_swap.c Sat Apr 7 05:04:14 2012 (r233979) @@ -53,8 +53,8 @@ static void swap_file_close(struct chip_ static int swap_file_write(struct chip_swap *, struct block_state *); static int swap_file_read(struct chip_swap *, struct block_state *); -#define CHIP_SWAP_CMODE 0600 -#define CHIP_SWAP_BLOCKSPACES 2 +#define CHIP_SWAP_CMODE 0600 +#define CHIP_SWAP_BLOCKSPACES 2 static int init_block_state(struct chip_swap *swap) @@ -62,16 +62,11 @@ init_block_state(struct chip_swap *swap) struct block_state *blk_state; int i; - if (!swap) + if (swap == NULL) return (-1); blk_state = malloc(swap->nof_blks * sizeof(struct block_state), M_NANDSIM, M_WAITOK | M_ZERO); - if (!blk_state) { - nand_debug(NDBG_SIM,"Cannot allocate blk_state structure blks " - "%d", swap->nof_blks); - return (-1); - } for (i = 0; i < swap->nof_blks; i++) blk_state[i].offset = 0xffffffff; @@ -85,7 +80,10 @@ static void destroy_block_state(struct chip_swap *swap) { - if (swap && (swap->blk_state)) + if (swap == NULL) + return; + + if (swap->blk_state != NULL) free(swap->blk_state, M_NANDSIM); } @@ -98,14 +96,8 @@ create_buffers(struct chip_swap *swap) for (i = 0; i < CHIP_SWAP_BLOCKSPACES; i++) { block_space = malloc(sizeof(*block_space), M_NANDSIM, M_WAITOK); - if (!block_space) - break; block = malloc(swap->blk_size, M_NANDSIM, M_WAITOK); - if (!block) { - free(block_space, M_NANDSIM); - break; - } - block_space->block_ptr = block; + block_space->blk_ptr = block; SLIST_INSERT_HEAD(&swap->free_bs, block_space, free_link); nand_debug(NDBG_SIM,"created blk_space %p[%p]\n", block_space, block); @@ -122,15 +114,15 @@ destroy_buffers(struct chip_swap *swap) { struct block_space *blk_space; - if (!swap) + if (swap == NULL) return; blk_space = SLIST_FIRST(&swap->free_bs); while (blk_space) { SLIST_REMOVE_HEAD(&swap->free_bs, free_link); nand_debug(NDBG_SIM,"destroyed blk_space %p[%p]\n", - blk_space, blk_space->block_ptr); - free(blk_space->block_ptr, M_NANDSIM); + blk_space, blk_space->blk_ptr); + free(blk_space->blk_ptr, M_NANDSIM); free(blk_space, M_NANDSIM); blk_space = SLIST_FIRST(&swap->free_bs); } @@ -139,8 +131,8 @@ destroy_buffers(struct chip_swap *swap) while (blk_space) { STAILQ_REMOVE_HEAD(&swap->used_bs, used_link); nand_debug(NDBG_SIM,"destroyed blk_space %p[%p]\n", - blk_space, blk_space->block_ptr); - free(blk_space->block_ptr, M_NANDSIM); + blk_space, blk_space->blk_ptr); + free(blk_space->blk_ptr, M_NANDSIM); free(blk_space, M_NANDSIM); blk_space = STAILQ_FIRST(&swap->used_bs); } @@ -157,11 +149,7 @@ swap_file_open(struct chip_swap *swap, c flags = FWRITE | FREAD | O_NOFOLLOW | O_CREAT | O_TRUNC; -#if __FreeBSD_version > 700001 error = vn_open(&nd, &flags, CHIP_SWAP_CMODE, NULL); -#else - error = vn_open(&nd, &flags, CHIP_SWAP_CMODE, -1); -#endif if (error) { nand_debug(NDBG_SIM,"Cannot create swap file %s", swap_file); NDFREE(&nd, NDF_ONLY_PNBUF); @@ -173,11 +161,7 @@ swap_file_open(struct chip_swap *swap, c NDFREE(&nd, NDF_ONLY_PNBUF); /* We just unlock so we hold a reference */ -#if __FreeBSD_version > 800001 VOP_UNLOCK(nd.ni_vp, 0); -#else - VOP_UNLOCK(nd.ni_vp, 0, curthread); -#endif VFS_UNLOCK_GIANT(vfslocked); swap->swap_vp = nd.ni_vp; @@ -189,11 +173,14 @@ static void swap_file_close(struct chip_swap *swap) { - if (swap && swap->swap_vp) { - vn_close(swap->swap_vp, FWRITE, swap->swap_cred, - curthread); - crfree(swap->swap_cred); - } + if (swap == NULL) + return; + + if (swap->swap_vp == NULL) + return; + + vn_close(swap->swap_vp, FWRITE, swap->swap_cred, curthread); + crfree(swap->swap_cred); } static int @@ -207,7 +194,7 @@ swap_file_write(struct chip_swap *swap, struct iovec aiov; int vfslocked; - if (!swap || !blk_state) + if (swap == NULL || blk_state == NULL) return (-1); blk_space = blk_state->blk_sp; @@ -217,12 +204,12 @@ swap_file_write(struct chip_swap *swap, } nand_debug(NDBG_SIM,"saving %p[%p] at %x\n", - blk_space, blk_space->block_ptr, blk_state->offset); + blk_space, blk_space->blk_ptr, blk_state->offset); bzero(&aiov, sizeof(aiov)); bzero(&auio, sizeof(auio)); - aiov.iov_base = blk_space->block_ptr; + aiov.iov_base = blk_space->blk_ptr; aiov.iov_len = swap->blk_size; td = curthread; vp = swap->swap_vp; @@ -237,15 +224,9 @@ swap_file_write(struct chip_swap *swap, vfslocked = VFS_LOCK_GIANT(vp->v_mount); vn_start_write(vp, &mp, V_WAIT); -#if __FreeBSD_version > 800001 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); VOP_WRITE(vp, &auio, IO_UNIT, swap->swap_cred); VOP_UNLOCK(vp, 0); -#else - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - VOP_WRITE(vp, &auio, IO_UNIT, swap->swap_cred); - VOP_UNLOCK(vp, 0, td); -#endif vn_finished_write(mp); VFS_UNLOCK_GIANT(vfslocked); @@ -262,18 +243,18 @@ swap_file_read(struct chip_swap *swap, s struct iovec aiov; int vfslocked; - if (!swap || !blk_state) + if (swap == NULL || blk_state == NULL) return (-1); blk_space = blk_state->blk_sp; nand_debug(NDBG_SIM,"restore %p[%p] at %x\n", - blk_space, blk_space->block_ptr, blk_state->offset); + blk_space, blk_space->blk_ptr, blk_state->offset); bzero(&aiov, sizeof(aiov)); bzero(&auio, sizeof(auio)); - aiov.iov_base = blk_space->block_ptr; + aiov.iov_base = blk_space->blk_ptr; aiov.iov_len = swap->blk_size; td = curthread; vp = swap->swap_vp; @@ -287,15 +268,9 @@ swap_file_read(struct chip_swap *swap, s auio.uio_td = td; vfslocked = VFS_LOCK_GIANT(vp->v_mount); -#if __FreeBSD_version > 800001 vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); VOP_READ(vp, &auio, 0, swap->swap_cred); VOP_UNLOCK(vp, 0); -#else - vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); - VOP_READ(vp, &auio, 0, swap->swap_cred); - VOP_UNLOCK(vp, 0, td); -#endif VFS_UNLOCK_GIANT(vfslocked); return (0); @@ -307,14 +282,10 @@ nandsim_swap_init(const char *swap_file, struct chip_swap *swap; int err = 0; - if ((!swap_file) || (nof_blks == 0) || (blk_size == 0)) + if ((swap_file == NULL) || (nof_blks == 0) || (blk_size == 0)) return (NULL); swap = malloc(sizeof(*swap), M_NANDSIM, M_WAITOK | M_ZERO); - if (!swap) { - nand_debug(NDBG_SIM,"Cannot allocate swap structure"); - return (NULL); - } SLIST_INIT(&swap->free_bs); STAILQ_INIT(&swap->used_bs); @@ -346,12 +317,13 @@ void nandsim_swap_destroy(struct chip_swap *swap) { - if (swap) { - destroy_block_state(swap); - destroy_buffers(swap); - swap_file_close(swap); - free(swap, M_NANDSIM); - } + if (swap == NULL) + return; + + destroy_block_state(swap); + destroy_buffers(swap); + swap_file_close(swap); + free(swap, M_NANDSIM); } struct block_space * @@ -360,7 +332,7 @@ get_bs(struct chip_swap *swap, uint32_t struct block_state *blk_state, *old_blk_state = NULL; struct block_space *blk_space; - if (!swap || (block >= swap->nof_blks)) + if (swap == NULL || (block >= swap->nof_blks)) return (NULL); blk_state = &swap->blk_state[block]; @@ -372,12 +344,14 @@ get_bs(struct chip_swap *swap, uint32_t blk_space = SLIST_FIRST(&swap->free_bs); if (blk_space) { SLIST_REMOVE_HEAD(&swap->free_bs, free_link); - STAILQ_INSERT_TAIL(&swap->used_bs, blk_space, used_link); + STAILQ_INSERT_TAIL(&swap->used_bs, blk_space, + used_link); } else { blk_space = STAILQ_FIRST(&swap->used_bs); old_blk_state = blk_space->blk_state; STAILQ_REMOVE_HEAD(&swap->used_bs, used_link); - STAILQ_INSERT_TAIL(&swap->used_bs, blk_space, used_link); + STAILQ_INSERT_TAIL(&swap->used_bs, blk_space, + used_link); if (old_blk_state->status & BLOCK_DIRTY) { swap_file_write(swap, old_blk_state); old_blk_state->status &= ~BLOCK_DIRTY; @@ -386,10 +360,10 @@ get_bs(struct chip_swap *swap, uint32_t } } - if (!blk_space) + if (blk_space == NULL) return (NULL); - if (old_blk_state) { + if (old_blk_state != NULL) { old_blk_state->status &= ~BLOCK_ALLOCATED; old_blk_state->blk_sp = NULL; } @@ -401,7 +375,7 @@ get_bs(struct chip_swap *swap, uint32_t if (blk_state->status & BLOCK_SWAPPED) swap_file_read(swap, blk_state); else - memset(blk_space->block_ptr, 0xff, swap->blk_size); + memset(blk_space->blk_ptr, 0xff, swap->blk_size); blk_state->status |= BLOCK_ALLOCATED; } @@ -409,7 +383,7 @@ get_bs(struct chip_swap *swap, uint32_t blk_state->status |= BLOCK_DIRTY; nand_debug(NDBG_SIM,"get_bs returned %p[%p] state %x\n", blk_space, - blk_space->block_ptr, blk_state->status); + blk_space->blk_ptr, blk_state->status); return (blk_space); } Modified: projects/nand/sys/dev/nand/nandsim_swap.h ============================================================================== --- projects/nand/sys/dev/nand/nandsim_swap.h Sat Apr 7 04:55:36 2012 (r233978) +++ projects/nand/sys/dev/nand/nandsim_swap.h Sat Apr 7 05:04:14 2012 (r233979) @@ -30,15 +30,15 @@ #define _NANDSIM_SWAP_CHIP_H_ struct block_space { - SLIST_ENTRY(block_space) free_link; - STAILQ_ENTRY(block_space) used_link; - struct block_state *blk_state; - uint8_t* block_ptr; + SLIST_ENTRY(block_space) free_link; + STAILQ_ENTRY(block_space) used_link; + struct block_state *blk_state; + uint8_t *blk_ptr; }; -#define BLOCK_ALLOCATED 0x1 -#define BLOCK_SWAPPED 0x2 -#define BLOCK_DIRTY 0x4 +#define BLOCK_ALLOCATED 0x1 +#define BLOCK_SWAPPED 0x2 +#define BLOCK_DIRTY 0x4 struct block_state { struct block_space *blk_sp; From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:13:03 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 27FED1065670; Sat, 7 Apr 2012 05:13:03 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 11B9D8FC0A; Sat, 7 Apr 2012 05:13:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q375D30G043955; Sat, 7 Apr 2012 05:13:03 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q375D2Ku043946; Sat, 7 Apr 2012 05:13:02 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070513.q375D2Ku043946@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:13:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r233980 - projects/nand/usr.sbin/nandsim 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, 07 Apr 2012 05:13:03 -0000 Author: gber Date: Sat Apr 7 05:13:02 2012 New Revision: 233980 URL: http://svn.freebsd.org/changeset/base/233980 Log: nandsim: Various fixes Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/usr.sbin/nandsim/Makefile projects/nand/usr.sbin/nandsim/nandsim.8 projects/nand/usr.sbin/nandsim/nandsim.c projects/nand/usr.sbin/nandsim/nandsim_cfgparse.c projects/nand/usr.sbin/nandsim/nandsim_cfgparse.h projects/nand/usr.sbin/nandsim/nandsim_rcfile.c projects/nand/usr.sbin/nandsim/nandsim_rcfile.h projects/nand/usr.sbin/nandsim/sample.conf Modified: projects/nand/usr.sbin/nandsim/Makefile ============================================================================== --- projects/nand/usr.sbin/nandsim/Makefile Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/Makefile Sat Apr 7 05:13:02 2012 (r233980) @@ -1,8 +1,8 @@ +# $FreeBSD$ + PROG= nandsim SRCS= nandsim.c nandsim_rcfile.c nandsim_cfgparse.c BINDIR= /usr/sbin -MAN=nandsim.8 - -WARNS?= 3 +MAN= nandsim.8 .include Modified: projects/nand/usr.sbin/nandsim/nandsim.8 ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim.8 Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/nandsim.8 Sat Apr 7 05:13:02 2012 (r233980) @@ -27,7 +27,7 @@ .Os .Sh NAME .Nm nandsim -.Nd NAND simulator +.Nd NAND simulator control program .Sh SYNOPSIS .Nm .Ic status @@ -211,5 +211,15 @@ gives more verbose output. Stops simulation of given controller (simulates power-loss). All commands issues to any chip on this controller are ignored. .El -.Sh AUTHORS -.An Lukasz Wojcik +.Sh SEE ALSO +.Xr nand 4 , +.Xr nandsim 4 +.Xr nandsim.conf 5 +.Sh HISTORY +The +.Nm +utility first appeared in +.Fx 10.0 . +.Sh AUTHOR +This utility was written by +.An Lukasz Wojcik . Modified: projects/nand/usr.sbin/nandsim/nandsim.c ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim.c Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/nandsim.c Sat Apr 7 05:13:02 2012 (r233980) @@ -89,11 +89,11 @@ __FBSDID("$FreeBSD$"); typedef int (commandfunc_t)(int , char **); -static struct nandsim_command *getcommand(char *arg); -static int parse_devstring(char *str, int *ctrl, int *cs); -static void printchip(struct sim_chip *chip, uint8_t verbose); -static void printctrl(struct sim_ctrl *ctrl); -static int opendev(int *fd); +static struct nandsim_command *getcommand(char *); +static int parse_devstring(char *, int *, int *); +static void printchip(struct sim_chip *, uint8_t); +static void printctrl(struct sim_ctrl *); +static int opendev(int *); static commandfunc_t cmdstatus; static commandfunc_t cmdconf; static commandfunc_t cmdstart; @@ -108,12 +108,12 @@ static commandfunc_t cmddump; static commandfunc_t cmdrestore; static commandfunc_t cmddestroy; static commandfunc_t cmdhelp; -static int checkusage(int argc, int argsreqd, char **argv); -static int is_chip_created(int ctrl_no, int chip_no, int *created); -static int is_ctrl_created(int ctrl_no, int *created); -static int is_ctrl_running(int ctrl_no, int *running); -static int assert_chip_connected(int ctrl_no, int chip_no); -static int printstats(int ctrlno, int chipno, uint32_t pageno, int cdevd); +static int checkusage(int, int, char **); +static int is_chip_created(int, int, int *); +static int is_ctrl_created(int, int *); +static int is_ctrl_running(int, int *); +static int assert_chip_connected(int , int); +static int printstats(int, int, uint32_t, int); struct nandsim_command { const char *cmd_name; /* Command name */ @@ -193,7 +193,7 @@ parse_devstring(char *str, int *ctrl, in *cs = 0xff; if (strcmp(str, "--all") == 0 || strcmp(str, "-a") == 0) { - /* if --all or -a is specified, ctl==chip==0xff */ + /* If --all or -a is specified, ctl==chip==0xff */ debug("CTRL=%d CHIP=%d\n", *ctrl, *cs); return (0); } @@ -237,7 +237,6 @@ static int opendev(int *fd) { - /* Open simulator device. */ *fd = open(SIMDEVICE, O_RDWR); if (*fd == -1) { error("Could not open simulator device file (%s)!", @@ -270,10 +269,10 @@ checkusage(int gargc, int argsreqd, char if (gargc < argsreqd + 2 || (gargc >= (argsreqd + 2) && (strcmp(gargv[1], "--help") == 0 || - strcmp(gargv[1], "-h") == 0))) { + strcmp(gargv[1], "-h") == 0))) return (1); - } else - return (0); + + return (0); } static int @@ -335,7 +334,7 @@ cmdstatus(int gargc, char **gargv) } static int -cmdconf(int gargc, char **gargv) +cmdconf(int gargc __unused, char **gargv) { int err; @@ -347,7 +346,7 @@ cmdconf(int gargc, char **gargv) } static int -cmdstart(int gargc, char **gargv) +cmdstart(int gargc __unused, char **gargv) { int chip = 0, ctl = 0, err = 0, fd, running, state; @@ -384,7 +383,7 @@ cmdstart(int gargc, char **gargv) } static int -cmdstop(int gargc, char **gargv) +cmdstop(int gargc __unused, char **gargv) { int chip = 0, ctl = 0, err = 0, fd, running; @@ -414,7 +413,7 @@ cmdstop(int gargc, char **gargv) } static int -cmdmod(int gargc, char **gargv) +cmdmod(int gargc __unused, char **gargv) { int chip, ctl, err = 0, fd = -1, i; struct sim_mod mods; @@ -434,7 +433,7 @@ cmdmod(int gargc, char **gargv) err = ioctl(fd, NANDSIM_MODIFY, &mods); if (err) { error("simulator parameter %s could not be " - "modified !", gargv[i]); + "modified !", gargv[3]); close(fd); return (EX_SOFTWARE); } @@ -460,10 +459,10 @@ cmdmod(int gargc, char **gargv) if (opendev(&fd) != EX_OK) return (EX_OSFILE); - /* Findout which flags were passed */ + /* Find out which flags were passed */ for (i = 3; i < gargc; i++) { - if (convert_arguint(gargv[i+1], &mods.new_value) != 0) + if (convert_arguint(gargv[i + 1], &mods.new_value) != 0) continue; if (strcmp(gargv[i], "--prog-time") == 0 || @@ -515,7 +514,7 @@ cmdmod(int gargc, char **gargv) } static int -cmderror(int gargc, char **gargv) +cmderror(int gargc __unused, char **gargv) { uint32_t page, column, len, pattern; int chip = 0, ctl = 0, err = 0, fd; @@ -536,7 +535,7 @@ cmderror(int gargc, char **gargv) convert_arguint(gargv[6], &pattern)) return (EX_SOFTWARE); - if(!assert_chip_connected(ctl, chip)) + if (!assert_chip_connected(ctl, chip)) return (EX_SOFTWARE); sim_err.page_num = page; @@ -594,7 +593,7 @@ cmdbb(int gargc, char **gargv) bs.ctrl_num = ctl; bs.chip_num = chip; - if(!assert_chip_connected(ctl, chip)) + if (!assert_chip_connected(ctl, chip)) return (EX_SOFTWARE); if (opencdev(&cdevd, ctl, chip) != EX_OK) @@ -657,7 +656,7 @@ cmdbb(int gargc, char **gargv) } static int -cmdfreeze(int gargc, char **gargv) +cmdfreeze(int gargc __unused, char **gargv) { int chip = 0, ctl = 0, err = 0, fd, i, start = 0, state, stop = 0; struct sim_ctrl_chip ctrlchip; @@ -713,7 +712,7 @@ cmdfreeze(int gargc, char **gargv) } static int -cmdlog(int gargc, char **gargv) +cmdlog(int gargc __unused, char **gargv) { struct sim_log log; int chip = 0, ctl = 0, err = 0, fd, idx, start = 0, stop = 0; @@ -765,7 +764,7 @@ cmdlog(int gargc, char **gargv) } static int -cmdstats(int gargc, char **gargv) +cmdstats(int gargc __unused, char **gargv) { int cdevd, chip = 0, ctl = 0, err = 0; uint32_t pageno = 0; @@ -799,7 +798,7 @@ cmdstats(int gargc, char **gargv) } static int -cmddump(int gargc, char **gargv) +cmddump(int gargc __unused, char **gargv) { struct sim_dump dump; struct sim_block_state bs; @@ -927,7 +926,7 @@ cmddump(int gargc, char **gargv) } static int -cmdrestore(int gargc, char **gargv) +cmdrestore(int gargc __unused, char **gargv) { struct sim_dump dump; struct sim_block_state bs; @@ -973,8 +972,7 @@ cmdrestore(int gargc, char **gargv) cparams.oob_size); /* Expected dump file size for chip */ - expfilesz = cparams.blocks * (blksz + sizeof(bs)) + - sizeof(cparams); + expfilesz = cparams.blocks * (blksz + sizeof(bs)) + sizeof(cparams); if (fsize != expfilesz) { error("File size does not match chip geometry (file size: %d" @@ -985,7 +983,6 @@ cmdrestore(int gargc, char **gargv) dumpfd = open(gargv[3], O_RDONLY); if (dumpfd == -1) { error("Could not open dump file!"); - free(buf); return (EX_IOERR); } @@ -1070,7 +1067,7 @@ cmdrestore(int gargc, char **gargv) } static int -cmddestroy(int gargc, char **gargv) +cmddestroy(int gargc __unused, char **gargv) { int chip = 0, ctl = 0, err = 0, fd, idx, idx2, state; int chipstart, chipstop, ctrlstart, ctrlstop; @@ -1134,7 +1131,7 @@ cmddestroy(int gargc, char **gargv) ioctl(fd, NANDSIM_DESTROY_CHIP, &chip_destroy); } - /* If chip isnt explicitely specified -- destroy ctrl */ + /* If chip isn't explicitly specified -- destroy ctrl */ if (chip == 0xff) { err = ioctl(fd, NANDSIM_DESTROY_CTRL, &idx); if (err) { @@ -1182,7 +1179,7 @@ main(int argc, char **argv) } static int -cmdhelp(int gargc, char **gargv) +cmdhelp(int gargc __unused, char **gargv __unused) { struct nandsim_command *opts; @@ -1365,7 +1362,7 @@ printstats(int ctrlno, int chipno, uint3 if (err) { error("Could not acquire chip info for chip attached to cs#" - "%d, ctrl#%d", chipno, ctrlno); + "%d, ctrl#%d", chipno, ctrlno); return (EX_SOFTWARE); } Modified: projects/nand/usr.sbin/nandsim/nandsim_cfgparse.c ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim_cfgparse.c Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/nandsim_cfgparse.c Sat Apr 7 05:13:02 2012 (r233980) @@ -122,23 +122,26 @@ static struct nandsim_key nandsim_chip_k {"width", 1, VALUE_UINT | SIZE_8, (void *)&chip_conf.width, 0}, {"wear_out", 1, VALUE_UINT | SIZE_32, (void *)&chip_conf.wear_level, 0}, + {"bad_block_map", 0, VALUE_UINTARRAY | SIZE_32, + (void *)&chip_conf.bad_block_map, MAX_BAD_BLOCKS}, {NULL, 0, 0, NULL, 0}, }; struct nandsim_section sections[] = { {"ctrl", (struct nandsim_key *)&nandsim_ctrl_keys}, {"chip", (struct nandsim_key *)&nandsim_chip_keys}, + {NULL, NULL}, }; static uint8_t logoutputtoint(char *, int *); -static uint8_t validate_chips(struct sim_chip *chips, int chipcnt, - struct sim_ctrl *ctrls, int ctrlcnt); -static uint8_t validate_ctrls(struct sim_ctrl *ctrl, int ctrlcnt); -static int configure_sim(const char *cfgfilename, struct rcfile *f); -static int create_ctrls(struct rcfile *f, struct sim_ctrl **ctrls, int *cnt); -static int create_chips(struct rcfile *f, struct sim_chip **chips, int *cnt); -static void destroy_ctrls(struct sim_ctrl *ctrls); -static void destroy_chips(struct sim_chip *chips); +static uint8_t validate_chips(struct sim_chip *, int, struct sim_ctrl *, int); +static uint8_t validate_ctrls(struct sim_ctrl *, int); +static int configure_sim(const char *, struct rcfile *); +static int create_ctrls(struct rcfile *, struct sim_ctrl **, int *); +static int create_chips(struct rcfile *, struct sim_chip **, int *); +static void destroy_ctrls(struct sim_ctrl *); +static void destroy_chips(struct sim_chip *); +static int validate_section_config(struct rcfile *, const char *, int); int convert_argint(char *arg, int *value) @@ -335,12 +338,19 @@ create_ctrls(struct rcfile *f, struct si for (i = 0; i < count; i++) { bzero((void *)&ctrl_conf, sizeof(ctrl_conf)); + /* - * Ecc layout have to end up with 0xffff, so + * ECC layout have to end up with 0xffff, so * we're filling buffer with 0xff. If ecc_layout is * defined in config file, values will be overriden. */ - memset((void *)&ctrl_conf.ecc_layout, 0xff, MAX_ECC_BYTES); + memset((void *)&ctrl_conf.ecc_layout, 0xff, + sizeof(ctrl_conf.ecc_layout)); + + if (validate_section_config(f, "ctrl", i) != 0) { + free(ctrlsptr); + return (EINVAL); + } if (parse_section(f, "ctrl", i) != 0) { free(ctrlsptr); @@ -351,9 +361,9 @@ create_ctrls(struct rcfile *f, struct si /* Try to create ctrl with config parsed */ debug("NUM=%d\nNUM_CS=%d\nECC=%d\nFILENAME=%s\nECC_LAYOUT[0]" "=%d\nECC_LAYOUT[1]=%d\n\n", - ctrlsptr[i].num, ctrlsptr[i].num_cs, ctrlsptr[i].ecc, - ctrlsptr[i].filename, ctrlsptr[i].ecc_layout[0], - ctrlsptr[i].ecc_layout[1]); + ctrlsptr[i].num, ctrlsptr[i].num_cs, ctrlsptr[i].ecc, + ctrlsptr[i].filename, ctrlsptr[i].ecc_layout[0], + ctrlsptr[i].ecc_layout[1]); } *cnt = count; *ctrls = ctrlsptr; @@ -391,6 +401,19 @@ create_chips(struct rcfile *f, struct si for (i = 0; i < count; i++) { bzero((void *)&chip_conf, sizeof(chip_conf)); + /* + * Bad block map have to end up with 0xffff, so + * we're filling array with 0xff. If bad block map is + * defined in config file, values will be overriden. + */ + memset((void *)&chip_conf.bad_block_map, 0xff, + sizeof(chip_conf.bad_block_map)); + + if (validate_section_config(f, "chip", i) != 0) { + free(chipsptr); + return (EINVAL); + } + if (parse_section(f, "chip", i) != 0) { free(chipsptr); return (EINVAL); @@ -404,15 +427,15 @@ create_chips(struct rcfile *f, struct si "MAN=%s\nCOLADDRCYCLES=%d\nROWADDRCYCLES=%d\nCHWIDTH=%d\n" "PGS/BLK=%d\nBLK/LUN=%d\nLUNS=%d\nERR_RATIO=%d\n" "WEARLEVEL=%d\nISWP=%d\n\n\n\n", - chipsptr[i].num, chipsptr[i].ctrl_num, - chipsptr[i].device_id, chipsptr[i].manufact_id, - chipsptr[i].page_size, chipsptr[i].oob_size, - chipsptr[i].read_time, chipsptr[i].device_model, - chipsptr[i].manufacturer, chipsptr[i].col_addr_cycles, - chipsptr[i].row_addr_cycles, chipsptr[i].width, - chipsptr[i].pgs_per_blk, chipsptr[i].blks_per_lun, - chipsptr[i].luns, chipsptr[i].error_ratio, - chipsptr[i].wear_level, chipsptr[i].is_wp); + chipsptr[i].num, chipsptr[i].ctrl_num, + chipsptr[i].device_id, chipsptr[i].manufact_id, + chipsptr[i].page_size, chipsptr[i].oob_size, + chipsptr[i].read_time, chipsptr[i].device_model, + chipsptr[i].manufacturer, chipsptr[i].col_addr_cycles, + chipsptr[i].row_addr_cycles, chipsptr[i].width, + chipsptr[i].pgs_per_blk, chipsptr[i].blks_per_lun, + chipsptr[i].luns, chipsptr[i].error_ratio, + chipsptr[i].wear_level, chipsptr[i].is_wp); } *cnt = count; *chips = chipsptr; @@ -563,14 +586,14 @@ get_argument_intarray(const char *sect_n if (getres != 0) { if (key->mandatory != 0) { error(MSG_MANDATORYKEYMISSING, key->keyname, - sect_name); + sect_name); return (EINVAL); } else /* Non-mandatory key, not present -- skip */ return (0); } cnt = parse_intarray((char *)&strbuf, &intbuf); - cnt = (cnt <= key->maxlength) ? cnt : key->maxlength - 1; + cnt = (cnt <= key->maxlength) ? cnt : key->maxlength; for (i = 0; i < cnt; i++) { if (SIZE(key->valuetype) == SIZE_8) @@ -609,7 +632,7 @@ get_argument_int(const char *sect_name, } else /* Non-mandatory key, not present -- skip */ return (0); - } + } if (SIZE(key->valuetype) == SIZE_8) *(uint8_t *)(key->field) = (uint8_t)val; else if (SIZE(key->valuetype) == SIZE_16) @@ -832,7 +855,7 @@ validate_chips(struct sim_chip *chips, i if ((chips[chipcnt].read_time < DELAYTIME_MIN || chips[chipcnt].read_time > DELAYTIME_MAX) && - chips[chipcnt].erase_time != 0) { + chips[chipcnt].read_time != 0) { error("Invalid read time value for chip#%d at " "ctrl#%d!", chips[chipcnt].num, @@ -865,7 +888,6 @@ validate_chips(struct sim_chip *chips, i static uint8_t validate_ctrls(struct sim_ctrl *ctrl, int ctrlcnt) { - for (ctrlcnt -= 1; ctrlcnt >= 0; ctrlcnt--) { if (ctrl[ctrlcnt].num > MAX_SIM_DEV) { error("Controller no. too high (%d)!!\n", @@ -877,9 +899,54 @@ validate_ctrls(struct sim_ctrl *ctrl, in return (EINVAL); } if (ctrl[ctrlcnt].ecc != 0 && ctrl[ctrlcnt].ecc != 1) { - error("ECC is not set to neither 0 nor 1 !\n"); + error("ECC is set to neither 0 nor 1 !\n"); + return (EINVAL); + } + } + + return (0); +} + +static int validate_section_config(struct rcfile *f, const char *sect_name, + int sectno) +{ + struct nandsim_key *key; + struct nandsim_section *sect; + char **keys_tbl; + int i, match; + + for (match = 0, sect = (struct nandsim_section *)§ions; + sect != NULL; sect++) { + if (strcmp(sect->name, sect_name) == 0) { + match = 1; + break; + } + } + + if (match == 0) + return (EINVAL); + + keys_tbl = rc_getkeys(f, sect_name, sectno); + if (keys_tbl == NULL) + return (ENOMEM); + + for (i = 0; keys_tbl[i] != NULL; i++) { + key = sect->keys; + match = 0; + do { + if (strcmp(keys_tbl[i], key->keyname) == 0) { + match = 1; + break; + } + } while ((++key)->keyname != NULL); + + if (match == 0) { + error("Invalid key in config file: %s\n", keys_tbl[i]); + free(keys_tbl); return (EINVAL); } } + + free(keys_tbl); return (0); } Modified: projects/nand/usr.sbin/nandsim/nandsim_cfgparse.h ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim_cfgparse.h Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/nandsim_cfgparse.h Sat Apr 7 05:13:02 2012 (r233980) @@ -77,9 +77,8 @@ struct nandsim_config { int parse_intarray(char *, int **); int parse_config(char *, const char *); int parse_section(struct rcfile *, const char *, int); -int compare_configs(struct nandsim_config *runningconfig, - struct nandsim_config *newconfig); -int convert_argint(char *arg, int *value); -int convert_arguint(char *arg, unsigned int *value); +int compare_configs(struct nandsim_config *, struct nandsim_config *); +int convert_argint(char *, int *); +int convert_arguint(char *, unsigned int *); #endif /* _NANDSIM_CONFPARSER_H_ */ Modified: projects/nand/usr.sbin/nandsim/nandsim_rcfile.c ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim_rcfile.c Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/nandsim_rcfile.c Sat Apr 7 05:13:02 2012 (r233980) @@ -80,7 +80,7 @@ rc_open(const char *filename, const char return ENOMEM; } bzero(rcp, sizeof(struct rcfile)); - rcp->rf_name = strdup (filename); + rcp->rf_name = strdup(filename); rcp->rf_f = f; SLIST_INSERT_HEAD(&pf_head, rcp, rf_next); rc_parse(rcp); @@ -237,7 +237,7 @@ rc_parse(struct rcfile *rcp) } } if (state == stSkipToEOL || next == last) {/* ignore long lines */ - if (c == '\n'){ + if (c == '\n') { state = stNewLine; next = buf; } @@ -256,7 +256,7 @@ rc_parse(struct rcfile *rcp) if (state == stGetKey) { if (c == ' ' || c == '\t')/* side effect: 'key name='*/ continue; /* become 'keyname=' */ - if (c == '\n') { /* silently ignore ... */ + if (c == '\n') { /* silently ignore ... */ state = stNewLine; continue; } @@ -266,7 +266,8 @@ rc_parse(struct rcfile *rcp) } *next = 0; if (rsp == NULL) { - fprintf(stderr, "Key '%s' defined before section\n", buf); + fprintf(stderr, "Key '%s' defined before " + "section\n", buf); state = stSkipToEOL; continue; } @@ -277,7 +278,8 @@ rc_parse(struct rcfile *rcp) } /* only stGetValue left */ if (state != stGetValue) { - fprintf(stderr, "Well, I can't parse file '%s'\n",rcp->rf_name); + fprintf(stderr, "Well, I can't parse file " + "'%s'\n",rcp->rf_name); state = stSkipToEOL; } if (c != '\n') { @@ -348,7 +350,8 @@ rc_getint(struct rcfile *rcp, const char errno = 0; *value = strtol(rkp->rk_value,NULL,0); if (errno) { - fprintf(stderr, "invalid int value '%s' for key '%s' in section '%s'\n",rkp->rk_value,key,section); + fprintf(stderr, "invalid int value '%s' for key '%s' in " + "section '%s'\n",rkp->rk_value,key,section); return (errno); } return (0); @@ -386,7 +389,8 @@ rc_getbool(struct rcfile *rcp, const cha *value = 1; return (0); } - fprintf(stderr, "invalid boolean value '%s' for key '%s' in section '%s' \n",p, key, section); + fprintf(stderr, "invalid boolean value '%s' for key '%s' in section " + "'%s' \n",p, key, section); return (EINVAL); } @@ -403,7 +407,33 @@ int rc_getsectionscount(struct rcfile *f p = rc_findsect(f, sectname, count); } return (count); - } - else + } else return (0); } + +char ** +rc_getkeys(struct rcfile *rcp, const char *sectname, int sect_id) +{ + struct rcsection *rsp; + struct rckey *p; + char **names_tbl; + int i = 0, count = 0; + + rsp = rc_findsect(rcp, sectname, sect_id); + if (rsp == NULL) + return (NULL); + + SLIST_FOREACH(p, &rsp->rs_keys, rk_next) + count++; + + names_tbl = malloc(sizeof(char *) * (count + 1)); + if (names_tbl == NULL) + return (NULL); + + SLIST_FOREACH(p, &rsp->rs_keys, rk_next) + names_tbl[i++] = p->rk_name; + + names_tbl[i] = NULL; + return (names_tbl); +} + Modified: projects/nand/usr.sbin/nandsim/nandsim_rcfile.h ============================================================================== --- projects/nand/usr.sbin/nandsim/nandsim_rcfile.h Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/nandsim_rcfile.h Sat Apr 7 05:13:02 2012 (r233980) @@ -45,7 +45,6 @@ struct rcsection { SLIST_HEAD(rckey_head,rckey) rs_keys; /* key list */ char *rs_name; /* section name */ int rs_id; /* allow few same named */ - }; struct rcfile { @@ -64,5 +63,6 @@ int rc_getstring(struct rcfile *, const int rc_getint(struct rcfile *, const char *, int, const char *, int *); int rc_getbool(struct rcfile *, const char *, int, const char *, int *); int rc_getsectionscount(struct rcfile *, const char *); +char **rc_getkeys(struct rcfile *, const char *, int); #endif /* _SIMRC_H_ */ Modified: projects/nand/usr.sbin/nandsim/sample.conf ============================================================================== --- projects/nand/usr.sbin/nandsim/sample.conf Sat Apr 7 05:04:14 2012 (r233979) +++ projects/nand/usr.sbin/nandsim/sample.conf Sat Apr 7 05:13:02 2012 (r233980) @@ -72,7 +72,7 @@ ecc=on ecc_layout=[0-53] # Absolute path to the log file for this controller. -log_filename=/var/log/nandsim-ctl0.log +#log_filename=/var/log/nandsim-ctl0.log ############################################################################# @@ -129,17 +129,17 @@ column_addr_cycle=2 row_addr_cycle=3 # program_time= (in us) -program_time=700 +program_time=0 # erase_time= (in us) -erase_time=2000 +erase_time=0 # read_time= (in us) -read_time=600 +read_time=0 # ccs_time= (in us) -ccs_time=200 +#ccs_time=200 # Simulate write-protect on the chip. # write_protect=[yes|no] -write_protect=no +#write_protect=no # Blocks wear-out threshold. Each block has a counter of program-erase cycles; # when this counter reaches 'wear_out' value a given block is treated as a bad @@ -158,10 +158,17 @@ wear_out=50000 # such problems). # # error_ratio=0..1000000 -error_ratio=50 +#error_ratio=50 # Chip data bus width. All chips connected to the same controller must have # the same bus width. # # width=[8|16] width=8 + +# Bad block map. NANDsim emulates bad block behavior upon accessing a block +# with number from the specified list. +# +# bad_block_map=[bad_block1, bad_block2-bad_block3, ..bad_blockn] +bad_block_map=[100-200] + From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:17:42 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 675E5106564A; Sat, 7 Apr 2012 05:17:42 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 508698FC08; Sat, 7 Apr 2012 05:17:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q375HgmL044156; Sat, 7 Apr 2012 05:17:42 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q375HgeE044148; Sat, 7 Apr 2012 05:17:42 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070517.q375HgeE044148@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:17:42 +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: r233981 - projects/nand/sys/fs/nandfs 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, 07 Apr 2012 05:17:42 -0000 Author: gber Date: Sat Apr 7 05:17:41 2012 New Revision: 233981 URL: http://svn.freebsd.org/changeset/base/233981 Log: nandfs: Update - add cleaner - minor enhacement - bug fixes Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/sys/fs/nandfs/nandfs.h projects/nand/sys/fs/nandfs/nandfs_cpfile.c projects/nand/sys/fs/nandfs/nandfs_dat.c projects/nand/sys/fs/nandfs/nandfs_fs.h projects/nand/sys/fs/nandfs/nandfs_segment.c projects/nand/sys/fs/nandfs/nandfs_subr.c projects/nand/sys/fs/nandfs/nandfs_subr.h projects/nand/sys/fs/nandfs/nandfs_sufile.c projects/nand/sys/fs/nandfs/nandfs_vfsops.c projects/nand/sys/fs/nandfs/nandfs_vnops.c Modified: projects/nand/sys/fs/nandfs/nandfs.h ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs.h Sat Apr 7 05:13:02 2012 (r233980) +++ projects/nand/sys/fs/nandfs/nandfs.h Sat Apr 7 05:17:41 2012 (r233981) @@ -122,8 +122,8 @@ struct nandfs_segment { uint64_t start_block; uint32_t num_blocks; - uint32_t nfinfos; uint32_t nblocks; + uint32_t nbinfos; uint32_t segsum_blocks; uint32_t segsum_bytes; uint32_t bytes_left; @@ -135,7 +135,6 @@ struct nandfs_seginfo { struct nandfs_segment *curseg; struct nandfs_device *fsdev; uint32_t blocks; - uint32_t finfos; uint8_t reiterate; }; @@ -146,10 +145,19 @@ struct nandfs_fsarea { int last_used; }; +extern int nandfs_cleaner_enable; +extern int nandfs_cleaner_interval; +extern int nandfs_cleaner_segments; + struct nandfs_device { struct vnode *nd_devvp; struct g_consumer *nd_gconsumer; + struct proc *nd_syncer; + struct proc *nd_cleaner; + int nd_syncer_exit; + int nd_cleaner_exit; + int nd_is_nand; struct nandfs_fsarea nd_fsarea[NANDFS_NFSAREAS]; @@ -177,12 +185,12 @@ struct nandfs_device { struct mtx nd_mutex; struct mtx nd_sync_mtx; struct cv nd_sync_cv; + struct mtx nd_clean_mtx; + struct cv nd_clean_cv; struct lock nd_seg_const; struct nandfs_seginfo *nd_seginfo; - int32_t nd_cleanerd_pid; - /* FS geometry */ uint64_t nd_devsize; uint64_t nd_maxfilesize; @@ -209,14 +217,14 @@ struct nandfs_device { int nd_mount_state; int nd_refcnt; int nd_syncing; + int nd_cleaning; }; extern SLIST_HEAD(_nandfs_devices, nandfs_device) nandfs_devices; #define NANDFS_KILL_SYNCER 0x1 #define NANDFS_FORCE_SYNCER 0x2 -#define NANDFS_NOLOCK_SYNCER 0x4 -#define NANDFS_UMOUNT 0x8 +#define NANDFS_UMOUNT 0x4 #define SYNCER_UMOUNT 0x0 #define SYNCER_VFS_SYNC 0x1 @@ -233,19 +241,11 @@ struct nandfsmount { struct nandfs_device *nm_nandfsdev; struct nandfs_args nm_mount_args; struct nandfs_node *nm_ifile_node; - struct proc *nm_syncer; - struct sysctl_oid *nm_mountpoint_oid; uint8_t nm_flags; int8_t nm_ronly; }; -struct nandfs_indirect{ - TAILQ_ENTRY(nandfs_indirect) list_entry; - struct nandfs_indir indices; - struct buf *bp; -}; - struct nandfs_node { struct vnode *nn_vnode; struct nandfsmount *nn_nmp; Modified: projects/nand/sys/fs/nandfs/nandfs_cpfile.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_cpfile.c Sat Apr 7 05:13:02 2012 (r233980) +++ projects/nand/sys/fs/nandfs/nandfs_cpfile.c Sat Apr 7 05:17:41 2012 (r233981) @@ -137,8 +137,7 @@ nandfs_get_checkpoint(struct nandfs_devi int nandfs_set_checkpoint(struct nandfs_device *fsdev, struct nandfs_node *cp_node, - uint64_t cn, struct nandfs_inode *ifile_inode, uint64_t nblocks, - uint64_t nfinfos) + uint64_t cn, struct nandfs_inode *ifile_inode, uint64_t nblocks) { struct nandfs_cpfile_header *cnh; struct nandfs_checkpoint *cnp; @@ -179,13 +178,12 @@ nandfs_set_checkpoint(struct nandfs_devi cnp->cp_cno = cn; cnp->cp_create = fsdev->nd_ts.tv_sec; cnp->cp_nblk_inc = nblocks; - cnp->cp_inodes_count = nfinfos; cnp->cp_blocks_count = 0; memcpy (&cnp->cp_ifile_inode, ifile_inode, sizeof(cnp->cp_ifile_inode)); - DPRINTF(CPFILE, ("%s: cn:%#jx ctime:%#jx nblk:%#jx nino:%#jx\n", + DPRINTF(CPFILE, ("%s: cn:%#jx ctime:%#jx nblk:%#jx\n", __func__, (uintmax_t)cn, (uintmax_t)cnp->cp_create, - (uintmax_t)nblocks, (uintmax_t)nfinfos)); + (uintmax_t)nblocks)); brelse(bp); return (0); @@ -477,7 +475,6 @@ nandfs_cpinfo_fill(struct nandfs_checkpo nci->nci_cno = cnp->cp_cno; nci->nci_create = cnp->cp_create; nci->nci_nblk_inc = cnp->cp_nblk_inc; - nci->nci_inodes_count = cnp->cp_inodes_count; nci->nci_blocks_count = cnp->cp_blocks_count; nci->nci_next = cnp->cp_snapshot_list.ssl_next; DPRINTF(CPFILE, ("%s: cn:%#jx ctime:%#jx\n", @@ -575,7 +572,8 @@ nandfs_get_cpinfo_sp(struct nandfs_node fsdev = node->nn_nandfsdev; curr_cno = cno; - *nmembs = 0; + if (nmembs) + *nmembs = 0; if (curr_cno == 1) { /* Get list from header */ error = nandfs_bread(node, 0, NOCRED, 0, &bp); @@ -616,10 +614,10 @@ nandfs_get_cpinfo_sp(struct nandfs_node nci->nci_cno = cnp->cp_cno; nci->nci_create = cnp->cp_create; nci->nci_nblk_inc = cnp->cp_nblk_inc; - nci->nci_inodes_count = cnp->cp_inodes_count; nci->nci_blocks_count = cnp->cp_blocks_count; nci->nci_next = cnp->cp_snapshot_list.ssl_next; - (*nmembs)++; + if (nmembs) + (*nmembs)++; curr_cno = nci->nci_next; if (!curr_cno) @@ -632,30 +630,18 @@ nandfs_get_cpinfo_sp(struct nandfs_node } int -nandfs_get_cpinfo(struct nandfs_node *node, struct nandfs_argv *nargv) +nandfs_get_cpinfo(struct nandfs_node *node, uint64_t cno, uint16_t flags, + struct nandfs_cpinfo *nci, uint32_t nmembs, uint32_t *nnmembs) { - struct nandfs_cpinfo *nci; - uint64_t cno = nargv->nv_index; - void *buf = (void *)((uintptr_t)nargv->nv_base); - uint16_t flags = nargv->nv_flags; - uint32_t nmembs = 0; int error; - if (nargv->nv_nmembs > NANDFS_CPINFO_MAX) - return (EINVAL); - - nci = malloc(sizeof(struct nandfs_cpinfo) * nargv->nv_nmembs, - M_NANDFSTEMP, M_WAITOK | M_ZERO); - VOP_LOCK(NTOV(node), LK_EXCLUSIVE); switch (flags) { case NANDFS_CHECKPOINT: - error = nandfs_get_cpinfo_cp(node, cno, nci, nargv->nv_nmembs, - &nmembs); + error = nandfs_get_cpinfo_cp(node, cno, nci, nmembs, nnmembs); break; case NANDFS_SNAPSHOT: - error = nandfs_get_cpinfo_sp(node, cno, nci, nargv->nv_nmembs, - &nmembs); + error = nandfs_get_cpinfo_sp(node, cno, nci, nmembs, nnmembs); break; default: error = EINVAL; @@ -663,6 +649,27 @@ nandfs_get_cpinfo(struct nandfs_node *no } VOP_UNLOCK(NTOV(node), 0); + return (error); +} + +int +nandfs_get_cpinfo_ioctl(struct nandfs_node *node, struct nandfs_argv *nargv) +{ + struct nandfs_cpinfo *nci; + uint64_t cno = nargv->nv_index; + void *buf = (void *)((uintptr_t)nargv->nv_base); + uint16_t flags = nargv->nv_flags; + uint32_t nmembs = 0; + int error; + + if (nargv->nv_nmembs > NANDFS_CPINFO_MAX) + return (EINVAL); + + nci = malloc(sizeof(struct nandfs_cpinfo) * nargv->nv_nmembs, + M_NANDFSTEMP, M_WAITOK | M_ZERO); + + error = nandfs_get_cpinfo(node, cno, flags, nci, nargv->nv_nmembs, &nmembs); + if (error == 0) { nargv->nv_nmembs = nmembs; error = copyout(nci, buf, Modified: projects/nand/sys/fs/nandfs/nandfs_dat.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_dat.c Sat Apr 7 05:13:02 2012 (r233980) +++ projects/nand/sys/fs/nandfs/nandfs_dat.c Sat Apr 7 05:17:41 2012 (r233981) @@ -222,26 +222,16 @@ nandfs_vblock_free(struct nandfs_device } int -nandfs_get_dat_vinfo(struct nandfs_device *nandfsdev, struct nandfs_argv *nargv) +nandfs_get_dat_vinfo_ioctl(struct nandfs_device *nandfsdev, struct nandfs_argv *nargv) { - struct nandfs_node *dat; - struct nandfs_mdt *mdt; - struct nandfs_alloc_request req; - struct nandfs_dat_entry *dat_entry; struct nandfs_vinfo *vinfo; size_t size; - uint32_t i, nmembs, idx; int error; - dat = nandfsdev->nd_dat_node; - mdt = &nandfsdev->nd_dat_mdt; - - nmembs = nargv->nv_nmembs; - - if (nmembs > NANDFS_VINFO_MAX) + if (nargv->nv_nmembs > NANDFS_VINFO_MAX) return (EINVAL); - size = sizeof(struct nandfs_vinfo) * nmembs; + size = sizeof(struct nandfs_vinfo) * nargv->nv_nmembs; vinfo = malloc(size, M_NANDFSTEMP, M_WAITOK|M_ZERO); error = copyin((void *)(uintptr_t)nargv->nv_base, vinfo, size); @@ -250,6 +240,27 @@ nandfs_get_dat_vinfo(struct nandfs_devic return (error); } + error = nandfs_get_dat_vinfo(nandfsdev, vinfo, nargv->nv_nmembs); + if (error == 0) + error = copyout(vinfo, (void *)(uintptr_t)nargv->nv_base, size); + free(vinfo, M_NANDFSTEMP); + return (error); +} + +int +nandfs_get_dat_vinfo(struct nandfs_device *nandfsdev, struct nandfs_vinfo *vinfo, + uint32_t nmembs) +{ + struct nandfs_node *dat; + struct nandfs_mdt *mdt; + struct nandfs_alloc_request req; + struct nandfs_dat_entry *dat_entry; + uint32_t i, idx; + int error = 0; + + dat = nandfsdev->nd_dat_node; + mdt = &nandfsdev->nd_dat_mdt; + DPRINTF(DAT, ("%s: nmembs %#x\n", __func__, nmembs)); VOP_LOCK(NTOV(dat), LK_EXCLUSIVE); @@ -274,9 +285,60 @@ nandfs_get_dat_vinfo(struct nandfs_devic } VOP_UNLOCK(NTOV(dat), 0); + return (error); +} + +int +nandfs_get_dat_bdescs_ioctl(struct nandfs_device *nffsdev, + struct nandfs_argv *nargv) +{ + struct nandfs_bdesc *bd; + size_t size; + int error; + + size = nargv->nv_nmembs * sizeof(struct nandfs_bdesc); + bd = malloc(size, M_NANDFSTEMP, M_WAITOK); + error = copyin((void *)(uintptr_t)nargv->nv_base, bd, size); + if (error) { + free(bd, M_NANDFSTEMP); + return (error); + } + + error = nandfs_get_dat_bdescs(nffsdev, bd, nargv->nv_nmembs); if (error == 0) - error = copyout(vinfo, (void *)(uintptr_t)nargv->nv_base, size); - free(vinfo, M_NANDFSTEMP); + error = copyout(bd, (void *)(uintptr_t)nargv->nv_base, size); + + free(bd, M_NANDFSTEMP); + return (error); +} + +int +nandfs_get_dat_bdescs(struct nandfs_device *nffsdev, struct nandfs_bdesc *bd, + uint32_t nmembs) +{ + struct nandfs_node *dat_node; + uint64_t map; + uint32_t i; + int error = 0; + + dat_node = nffsdev->nd_dat_node; + + VOP_LOCK(NTOV(dat_node), LK_EXCLUSIVE); + + for (i = 0; i < nmembs; i++) { + DPRINTF(CLEAN, + ("%s: bd ino:%#jx oblk:%#jx blocknr:%#jx off:%#jx\n", + __func__, (uintmax_t)bd[i].bd_ino, + (uintmax_t)bd[i].bd_oblocknr, (uintmax_t)bd[i].bd_blocknr, + (uintmax_t)bd[i].bd_offset)); + + error = nandfs_bmap_nlookup(dat_node, bd[i].bd_offset, 1, &map); + if (error) + break; + bd[i].bd_blocknr = map; + } + + VOP_UNLOCK(NTOV(dat_node), 0); return (error); } Modified: projects/nand/sys/fs/nandfs/nandfs_fs.h ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_fs.h Sat Apr 7 05:13:02 2012 (r233980) +++ projects/nand/sys/fs/nandfs/nandfs_fs.h Sat Apr 7 05:17:41 2012 (r233981) @@ -33,6 +33,8 @@ #ifndef _NANDFS_FS_H #define _NANDFS_FS_H +#include + #define MNINDIR(fsdev) ((fsdev)->nd_blocksize / sizeof(nandfs_daddr_t)) /* @@ -175,7 +177,7 @@ struct nandfs_fsdata { uint32_t f_crc_seed; /* seed value of CRC calculation */ - uint8_t f_uuid[16]; /* 128-bit uuid for volume */ + struct uuid f_uuid; /* 128-bit uuid for volume */ char f_volume_name[16]; /* volume name */ uint32_t f_pad[96]; } __packed; @@ -276,35 +278,34 @@ struct nandfs_dir_entry { * files and optionally a super root. */ -struct nandfs_finfo { - uint64_t fi_ino; /* inode number */ - uint64_t fi_cno; /* checkpoint associated with this */ - uint32_t fi_nblocks; /* size in blocks of this finfo */ - uint32_t fi_ndatablk; /* number of data blocks */ -}; - /* * Virtual to physical block translation information. For data blocks it maps * logical block number bi_blkoff to virtual block nr bi_vblocknr. For non * datablocks it is the virtual block number assigned to an indirect block * and has no bi_blkoff. The physical block number is the next - * available data block in the partial segment after all the finfo's. + * available data block in the partial segment after all the binfo's. */ struct nandfs_binfo_v { + uint64_t bi_ino; /* file's inode */ uint64_t bi_vblocknr; /* assigned virtual block number */ uint64_t bi_blkoff; /* for file's logical block number */ }; /* * DAT allocation. For data blocks just the logical block number that maps on - * the next available data block in the partial segment after the finfo's. + * the next available data block in the partial segment after the binfo's. */ struct nandfs_binfo_dat { + uint64_t bi_ino; uint64_t bi_blkoff; /* DAT file's logical block number */ uint8_t bi_level; /* whether this is meta block */ uint8_t bi_pad[7]; }; +#ifdef _KERNEL +CTASSERT(sizeof(struct nandfs_binfo_v) == sizeof(struct nandfs_binfo_dat)); +#endif + /* Convenience union for both types of binfo's */ union nandfs_binfo { struct nandfs_binfo_v bi_v; @@ -327,11 +328,11 @@ struct nandfs_segment_summary { uint64_t ss_seq; /* sequence number of this segm. sum */ uint64_t ss_create; /* creation timestamp in seconds */ uint64_t ss_next; /* blocknumber of next segment */ - uint32_t ss_nblocks; /* number of blocks follow */ - uint32_t ss_nfinfo; /* number of finfo structures follow */ + uint32_t ss_nblocks; /* number of blocks used by summary */ + uint32_t ss_nbinfos; /* number of binfo structures */ uint32_t ss_sumbytes; /* total size of segment summary */ uint32_t ss_pad; - /* stream of finfo structures */ + /* stream of binfo structures */ }; #define NANDFS_SEGSUM_MAGIC 0x8e680011 /* segment summary magic number */ @@ -382,7 +383,7 @@ struct nandfs_dat_entry { * Structure of CP file. * * A snapshot is just a checkpoint only it's protected against removal by the - * cleanerd. The snapshots are kept on a double linked list of checkpoints. + * cleaner. The snapshots are kept on a double linked list of checkpoints. */ struct nandfs_snapshot_list { uint64_t ssl_next; /* checkpoint nr. forward */ @@ -397,7 +398,6 @@ struct nandfs_checkpoint { uint64_t cp_cno; /* checkpoint number */ uint64_t cp_create; /* creation timestamp */ uint64_t cp_nblk_inc; /* number of blocks incremented */ - uint64_t cp_inodes_count; /* number of inodes in this cp. */ uint64_t cp_blocks_count; /* reserved (might be deleted) */ struct nandfs_inode cp_ifile_inode; /* inode file inode */ }; @@ -421,6 +421,9 @@ struct nandfs_cpfile_header { sizeof(struct nandfs_checkpoint) - 1) / \ sizeof(struct nandfs_checkpoint)) + +#define NANDFS_NOSEGMENT 0xffffffff + /* * Structure of SU file. * @@ -475,7 +478,6 @@ struct nandfs_cpinfo { uint64_t nci_cno; uint64_t nci_create; uint64_t nci_nblk_inc; - uint64_t nci_inodes_count; uint64_t nci_blocks_count; uint64_t nci_next; }; @@ -483,6 +485,7 @@ struct nandfs_cpinfo { #define NANDFS_SEGMENTS_MAX 512 struct nandfs_suinfo { + uint64_t nsi_num; uint64_t nsi_lastmod; uint32_t nsi_blocks; uint32_t nsi_flags; @@ -491,10 +494,12 @@ struct nandfs_suinfo { #define NANDFS_VINFO_MAX 512 struct nandfs_vinfo { + uint64_t nvi_ino; uint64_t nvi_vblocknr; uint64_t nvi_start; uint64_t nvi_end; uint64_t nvi_blocknr; + int nvi_alive; }; struct nandfs_cpmode { @@ -506,6 +511,7 @@ struct nandfs_cpmode { struct nandfs_argv { uint64_t nv_base; uint32_t nv_nmembs; + uint16_t nv_size; uint16_t nv_flags; uint64_t nv_index; }; @@ -538,7 +544,7 @@ struct nandfs_bdesc { uint64_t bd_blocknr; uint64_t bd_offset; uint32_t bd_level; - uint32_t bd_pad; + uint32_t bd_alive; }; #ifndef _KERNEL @@ -559,16 +565,13 @@ struct nandfs_fsinfo { #define NANDFS_IOCTL_CHANGE_CPMODE _IOWR('N', 101, struct nandfs_cpmode) #define NANDFS_IOCTL_GET_CPINFO _IOWR('N', 102, struct nandfs_argv) #define NANDFS_IOCTL_DELETE_CP _IOWR('N', 103, uint64_t[2]) -#define NANDFS_IOCTL_CPSTAT _IOR('N', 104, struct nandfs_cpstat) +#define NANDFS_IOCTL_GET_CPSTAT _IOR('N', 104, struct nandfs_cpstat) #define NANDFS_IOCTL_GET_SUINFO _IOWR('N', 105, struct nandfs_argv) #define NANDFS_IOCTL_GET_VINFO _IOWR('N', 106, struct nandfs_argv) #define NANDFS_IOCTL_GET_BDESCS _IOWR('N', 107, struct nandfs_argv) -#define NANDFS_IOCTL_CLEAN_SEGMENTS _IOWR('N', 108, struct nandfs_argv[5]) -#define NANDFS_IOCTL_SYNC _IOWR('N', 109, uint64_t) -#define NANDFS_IOCTL_GET_FSINFO _IOR('N', 110, struct nandfs_fsinfo) -#define NANDFS_IOCTL_CLEANERD_SET _IO('N', 111) -#define NANDFS_IOCTL_CLEANERD_UNSET _IO('N', 112) -#define NANDFS_IOCTL_MAKE_SNAP _IOWR('N', 113, uint64_t) -#define NANDFS_IOCTL_DELETE_SNAP _IOWR('N', 114, uint64_t) +#define NANDFS_IOCTL_GET_FSINFO _IOR('N', 108, struct nandfs_fsinfo) +#define NANDFS_IOCTL_MAKE_SNAP _IOWR('N', 109, uint64_t) +#define NANDFS_IOCTL_DELETE_SNAP _IOWR('N', 110, uint64_t) +#define NANDFS_IOCTL_SYNC _IOWR('N', 111, uint64_t) #endif /* _NANDFS_FS_H */ Modified: projects/nand/sys/fs/nandfs/nandfs_segment.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_segment.c Sat Apr 7 05:13:02 2012 (r233980) +++ projects/nand/sys/fs/nandfs/nandfs_segment.c Sat Apr 7 05:17:41 2012 (r233981) @@ -109,6 +109,11 @@ create_segment(struct nandfs_seginfo *se return (error); } start_block = fsdev->nd_last_pseg + (uint64_t)nblocks; + /* + * XXX hack + */ + if (blks_per_seg - (start_block % blks_per_seg) - 1 == 0) + start_block++; curr = nandfs_get_segnum_of_block(fsdev, start_block); /* Allocate new segment if last one is full */ if (fsdev->nd_seg_num != curr) { @@ -150,7 +155,8 @@ create_segment(struct nandfs_seginfo *se seg->segsum_bytes = sizeof(struct nandfs_segment_summary); /* Allocate buffer for segment summary */ - bp = nandfs_geteblk(fsdev->nd_blocksize, 0); + bp = getblk(fsdev->nd_devvp, nandfs_block_to_dblock(fsdev, + seg->start_block), fsdev->nd_blocksize, 0, 0, 0); bzero(bp->b_data, seginfo->fsdev->nd_blocksize); bp->b_bufobj = &seginfo->fsdev->nd_devvp->v_bufobj; bp->b_flags |= B_MANAGED; @@ -207,7 +213,6 @@ create_seginfo(struct nandfs_device *fsd info->fsdev = fsdev; info->curseg = NULL; info->blocks = 0; - info->finfos = 0; *seginfo = info; fsdev->nd_seginfo = info; return (0); @@ -308,14 +313,13 @@ nandfs_add_superroot(struct nandfs_segin } static int -nandfs_add_segsum_block(struct nandfs_seginfo *seginfo, struct buf **newbp, - int *new_seg) +nandfs_add_segsum_block(struct nandfs_seginfo *seginfo, struct buf **newbp) { + struct nandfs_device *fsdev; + nandfs_daddr_t blk; struct buf *bp; int error; - *new_seg = 0; - if (!(seginfo->curseg) || seginfo->curseg->num_blocks <= 1) { error = create_segment(seginfo); if (error) { @@ -324,11 +328,14 @@ nandfs_add_segsum_block(struct nandfs_se return (error); } *newbp = TAILQ_FIRST(&seginfo->curseg->segsum); - *new_seg = 1; return (0); } - bp = nandfs_geteblk(seginfo->fsdev->nd_blocksize, GB_NOWAIT_BD); + fsdev = seginfo->fsdev; + blk = nandfs_block_to_dblock(fsdev, seginfo->curseg->start_block + + seginfo->curseg->segsum_blocks); + + bp = getblk(fsdev->nd_devvp, blk, fsdev->nd_blocksize, 0, 0, 0); bzero(bp->b_data, seginfo->fsdev->nd_blocksize); bp->b_bufobj = &seginfo->fsdev->nd_devvp->v_bufobj; @@ -336,8 +343,8 @@ nandfs_add_segsum_block(struct nandfs_se TAILQ_INSERT_TAIL(&seginfo->curseg->segsum, bp, b_cluster.cluster_entry); - seginfo->curseg->num_blocks--; + seginfo->curseg->segsum_blocks++; seginfo->curseg->bytes_left = seginfo->fsdev->nd_blocksize; seginfo->curseg->current_off = bp->b_data; @@ -351,48 +358,12 @@ nandfs_add_segsum_block(struct nandfs_se } static int -nandfs_fill_finfo(struct nandfs_seginfo *seginfo, struct nandfs_node *node) -{ - struct nandfs_finfo *finfo; - struct buf *bp; - int new_seg, error; - - if (!(seginfo->curseg) || - seginfo->curseg->bytes_left < sizeof(struct nandfs_finfo)) { - error = nandfs_add_segsum_block(seginfo, &bp, &new_seg); - if (error) { - nandfs_error("%s: cannot add new block for segsum" - " for seg:%p node:%p\n", __func__, seginfo, node); - return (error); - } - } - - seginfo->curseg->nfinfos++; - seginfo->finfos++; - - finfo = (struct nandfs_finfo *)seginfo->curseg->current_off; - finfo->fi_ino = node->nn_ino; - finfo->fi_ndatablk = 0; - finfo->fi_nblocks = 0; - finfo->fi_cno = seginfo->fsdev->nd_last_cno + 1; - DPRINTF(SYNC, ("%s: finfo %p ino %#jx cno %#jx\n", __func__, - finfo, node->nn_ino, (uintmax_t)seginfo->fsdev->nd_last_cno + 1)); - - finfo++; - seginfo->curseg->bytes_left -= sizeof(struct nandfs_finfo); - seginfo->curseg->segsum_bytes += sizeof(struct nandfs_finfo); - seginfo->curseg->current_off = (char *)finfo; - - return (0); -} - -static int nandfs_add_blocks(struct nandfs_seginfo *seginfo, struct nandfs_node *node, struct buf *bp) { union nandfs_binfo *binfo; struct buf *seg_bp; - int new_seg, error; + int error; if (!(seginfo->curseg) || !seginfo->curseg->num_blocks) { error = create_segment(seginfo); @@ -401,26 +372,24 @@ nandfs_add_blocks(struct nandfs_seginfo __func__, error); return (error); } - nandfs_fill_finfo(seginfo, node); } - binfo = (union nandfs_binfo *)seginfo->curseg->current_off; if (seginfo->curseg->bytes_left < sizeof(union nandfs_binfo)) { - error = nandfs_add_segsum_block(seginfo, &seg_bp, &new_seg); + error = nandfs_add_segsum_block(seginfo, &seg_bp); if (error) { nandfs_error("%s: error:%d when adding segsum\n", __func__, error); return (error); } - if (new_seg == 1) - nandfs_fill_finfo(seginfo, node); - binfo = (union nandfs_binfo *)seginfo->curseg->current_off; } + binfo = (union nandfs_binfo *)seginfo->curseg->current_off; - if (node->nn_ino != NANDFS_DAT_INO) + if (node->nn_ino != NANDFS_DAT_INO) { binfo->bi_v.bi_blkoff = bp->b_lblkno; - else { + binfo->bi_v.bi_ino = node->nn_ino; + } else { binfo->bi_dat.bi_blkoff = bp->b_lblkno; + binfo->bi_dat.bi_ino = node->nn_ino; if (NANDFS_IS_INDIRECT(bp)) binfo->bi_dat.bi_level = 1; else @@ -434,6 +403,7 @@ nandfs_add_blocks(struct nandfs_seginfo TAILQ_INSERT_TAIL(&seginfo->curseg->data, bp, b_cluster.cluster_entry); + seginfo->curseg->nbinfos++; seginfo->curseg->nblocks++; seginfo->curseg->num_blocks--; seginfo->blocks++; @@ -451,7 +421,6 @@ nandfs_iterate_dirty_buf(struct vnode *v struct buf *bp, *tbd; struct bufobj *bo; struct nandfs_node *node; - int finfo = 0; int error; node = VTON(vp); @@ -465,9 +434,6 @@ nandfs_iterate_dirty_buf(struct vnode *v "add buf\n", __func__, vp, bp, bp->b_lblkno, node->nn_ino)); if (!(NANDFS_ISGATHERED(bp))) { - if (!finfo) - nandfs_fill_finfo(seginfo, node); - finfo = 1; error = nandfs_bmap_update_dat(node, nandfs_vblk_get(bp), bp); if (error) @@ -590,6 +556,7 @@ nandfs_update_phys_block(struct nandfs_d nandfs_vblock_assign(fsdev, new_blknr, phys_blknr); binfo->bi_v.bi_vblocknr = new_blknr; binfo->bi_v.bi_blkoff = bp->b_lblkno; + binfo->bi_v.bi_ino = node->nn_ino; } else { VOP_LOCK(NTOV(dat), LK_EXCLUSIVE); error = nandfs_bmap_update_block(node, bp, phys_blknr); @@ -601,6 +568,7 @@ nandfs_update_phys_block(struct nandfs_d } VOP_UNLOCK(NTOV(dat), 0); binfo->bi_dat.bi_blkoff = bp->b_lblkno; + binfo->bi_dat.bi_ino = node->nn_ino; if (NANDFS_IS_INDIRECT(bp)) binfo->bi_dat.bi_level = 1; else @@ -610,23 +578,19 @@ nandfs_update_phys_block(struct nandfs_d return (0); } -#define NFINFO(off) ((off) + sizeof(struct nandfs_finfo)) #define NBINFO(off) ((off) + sizeof(union nandfs_binfo)) static int nandfs_segment_assign_pblk(struct nandfs_segment *nfsseg) { struct nandfs_device *fsdev; - struct nandfs_finfo *finfo; union nandfs_binfo *binfo; struct buf *bp, *seg_bp; - uint64_t blocknr, dblocks, ablocks, ino; + uint64_t blocknr; uint32_t curr_off, blocksize; - int nfinfo = 0, error; + int error; fsdev = nfsseg->fsdev; blocksize = fsdev->nd_blocksize; - finfo = NULL; - dblocks = ablocks = ino = 0; blocknr = nfsseg->start_block + nfsseg->segsum_blocks; seg_bp = TAILQ_FIRST(&nfsseg->segsum); @@ -639,44 +603,10 @@ nandfs_segment_assign_pblk(struct nandfs TAILQ_FOREACH(bp, &nfsseg->data, b_cluster.cluster_entry) { KASSERT((bp->b_vp), ("bp %p has not vp", bp)); - if ((VTON(bp->b_vp)->nn_ino) != ino) { - /* If not the first one, update block counts */ - if (finfo) { - finfo->fi_nblocks = ablocks; - finfo->fi_ndatablk = dblocks; - DPRINTF(SYNC, - ("%s: update finfo %p ino %#jx nblk %#x " - "dblk %#x\n", __func__, - finfo, finfo->fi_ino, finfo->fi_nblocks, - finfo->fi_ndatablk)); - } - - finfo = (struct nandfs_finfo *)binfo; - nfinfo++; - - if (NFINFO(curr_off) > blocksize) { - seg_bp = TAILQ_NEXT(seg_bp, - b_cluster.cluster_entry); - finfo = (struct nandfs_finfo *)seg_bp->b_data; - curr_off = 0; - DPRINTF(SYNC, - ("%s: next segsum %p data %p\n", - __func__, seg_bp, seg_bp->b_data)); - } - - ino = VTON(bp->b_vp)->nn_ino; - KASSERT((VTON(bp->b_vp)->nn_ino == finfo->fi_ino), - ("bp <=> finfo ino mismatch bp:%p finfo:%p", bp, - finfo)); - - dblocks = ablocks = 0; - curr_off += sizeof(struct nandfs_finfo); - binfo = (union nandfs_binfo *)(finfo + 1); - } DPRINTF(BMAP, ("\n\n%s: assign buf %p for ino %#jx next %p\n", - __func__, bp, (uintmax_t)VTON(bp->b_vp)->nn_ino, - TAILQ_NEXT(bp, b_cluster.cluster_entry))); + __func__, bp, (uintmax_t)VTON(bp->b_vp)->nn_ino, + TAILQ_NEXT(bp, b_cluster.cluster_entry))); if (NBINFO(curr_off) > blocksize) { seg_bp = TAILQ_NEXT(seg_bp, b_cluster.cluster_entry); @@ -697,38 +627,6 @@ nandfs_segment_assign_pblk(struct nandfs curr_off = NBINFO(curr_off); blocknr++; - ablocks++; - if (!NANDFS_IS_INDIRECT(bp)) - dblocks++; - } - - /* If there is one block rest of segment */ - if (finfo == NULL) { - finfo = (struct nandfs_finfo *)binfo; - if (finfo == NULL) { - nandfs_error("%s: finfo is NULL\n", __func__); - return (-1); - } - nfinfo++; - } - - finfo->fi_nblocks = ablocks; - finfo->fi_ndatablk = dblocks; - DPRINTF(SYNC, ("%s:update finfo %p ino %#jx nblk %#x dblk %#x\n", - __func__, finfo, finfo->fi_ino, finfo->fi_nblocks, - finfo->fi_ndatablk)); - - if (nfsseg->nfinfos != nfinfo) { - nfsseg->nfinfos = nfinfo; - finfo = (struct nandfs_finfo *)binfo; - if (NFINFO(curr_off) > blocksize) { - seg_bp = TAILQ_NEXT(seg_bp, b_cluster.cluster_entry); - finfo = (struct nandfs_finfo *)seg_bp->b_data; - DPRINTF(SYNC, - ("%s: next segsum %p data %p\n", - __func__, seg_bp, seg_bp->b_data)); - } - bzero(finfo, sizeof(*finfo)); } return (0); @@ -759,10 +657,10 @@ nandfs_fill_segsum(struct nandfs_segment uint16_t flags; uint8_t *crc_area, crc_skip, crc_seed, crc_calc = 0; - DPRINTF(SYNC, ("%s: seg %#jx nblocks %#x nfinfo %#x sumbytes %#x\n", + DPRINTF(SYNC, ("%s: seg %#jx nblocks %#x sumbytes %#x\n", __func__, (uintmax_t) seg->seg_num, seg->nblocks + seg->segsum_blocks, - seg->nfinfos, seg->segsum_bytes)); + seg->segsum_bytes)); fsdev = seg->fsdev; crc_seed = fsdev->nd_fsdata.f_crc_seed; @@ -780,7 +678,7 @@ nandfs_fill_segsum(struct nandfs_segment ss->ss_create = fsdev->nd_ts.tv_sec; nandfs_get_segment_range(fsdev, seg->seg_next, &ss->ss_next, NULL); ss->ss_nblocks = seg->nblocks + seg->segsum_blocks; - ss->ss_nfinfo = seg->nfinfos; + ss->ss_nbinfos = seg->nbinfos; ss->ss_sumbytes = seg->segsum_bytes; crc_skip = sizeof(ss->ss_datasum) + sizeof(ss->ss_sumsum); @@ -809,15 +707,11 @@ static int nandfs_save_buf(struct buf *bp, uint64_t blocknr, struct nandfs_device *fsdev) { struct bufobj *bo; - uint32_t blocksize; - off_t offset; int error; bo = &fsdev->nd_devvp->v_bufobj; - blocksize = fsdev->nd_blocksize; - offset = blocknr * blocksize; - bp->b_blkno = btodb(offset); + bp->b_blkno = nandfs_block_to_dblock(fsdev, blocknr); bp->b_iooffset = dbtob(bp->b_blkno); KASSERT(bp->b_bufobj != NULL, ("no bufobj for %p", bp)); @@ -830,7 +724,7 @@ nandfs_save_buf(struct buf *bp, uint64_t DPRINTF(SYNC, ("%s: buf: %p offset %#jx blk %#jx size %#x\n", __func__, bp, (uintmax_t)bp->b_offset, (uintmax_t)blocknr, - blocksize)); + fsdev->nd_blocksize)); NANDFS_UNGATHER(bp); nandfs_buf_clear(bp, 0xffffffff); @@ -1027,7 +921,7 @@ out: return (error); } -/* Process segments marks to free by cleanerd */ +/* Process segments marks to free by cleaner */ static void nandfs_process_segments(struct nandfs_device *fsdev) { @@ -1038,6 +932,8 @@ nandfs_process_segments(struct nandfs_de saved_segment = nandfs_get_segnum_of_block(fsdev, fsdev->nd_super.s_last_pseg); for (i = 0; i < fsdev->nd_free_count; i++) { + if (fsdev->nd_free_base[i] == NANDFS_NOSEGMENT) + continue; /* Update superblock if clearing segment point by it */ if (fsdev->nd_free_base[i] == saved_segment) { nandfs_write_superblock(fsdev); @@ -1142,7 +1038,7 @@ nandfs_sync_file(struct vnode *vp) /* Fill checkpoint data */ error = nandfs_set_checkpoint(fsdev, cp, fsdev->nd_last_cno + 1, - &ifile->nn_inode, seginfo->blocks, seginfo->finfos); + &ifile->nn_inode, seginfo->blocks); if (error) { clean_seginfo(seginfo, 0); delete_seginfo(seginfo); @@ -1270,7 +1166,7 @@ reiterate: /* Fill checkpoint data */ nandfs_set_checkpoint(fsdev, cp, fsdev->nd_last_cno + 1, - &ifile->nn_inode, seginfo->blocks, seginfo->finfos); + &ifile->nn_inode, seginfo->blocks); LIST_FOREACH(seg, &seginfo->seg_list, seg_link) nandfs_update_segment(fsdev, seg->seg_num, Modified: projects/nand/sys/fs/nandfs/nandfs_subr.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_subr.c Sat Apr 7 05:13:02 2012 (r233980) +++ projects/nand/sys/fs/nandfs/nandfs_subr.c Sat Apr 7 05:17:41 2012 (r233981) @@ -512,39 +512,43 @@ struct nandfs_recover_info { STAILQ_ENTRY(nandfs_recover_info) next; }; -/* - * Helper functions of nandfs_mount() that actually mounts the media. - */ -static int -nandfs_load_segsum(struct nandfs_device *nandfsdev, - struct nandfs_recover_info *ri) +int +nandfs_load_segsum(struct nandfs_device *fsdev, nandfs_daddr_t blocknr, + struct nandfs_segment_summary *segsum) { struct buf *bp; - uint64_t blocknr; int error; - /* Read in segsum structure */ - blocknr = ri->pseg; DPRINTF(VOLUMES, ("nandfs: try segsum at block %jx\n", (uintmax_t)blocknr)); - /* Read in block */ - error = nandfs_dev_bread(nandfsdev, blocknr, NOCRED, 0, &bp); + error = nandfs_dev_bread(fsdev, blocknr, NOCRED, 0, &bp); if (error) return (error); - memcpy(&ri->segsum, bp->b_data, sizeof(struct nandfs_segment_summary)); + memcpy(segsum, bp->b_data, sizeof(struct nandfs_segment_summary)); brelse(bp); - if (ri->segsum.ss_magic != NANDFS_SEGSUM_MAGIC) { + if (segsum->ss_magic != NANDFS_SEGSUM_MAGIC) { DPRINTF(VOLUMES, ("%s: bad magic pseg:%jx\n", __func__, - ri->pseg)); + blocknr)); return (EINVAL); } return (error); } +/* + * Helper functions of nandfs_mount() that actually mounts the media. + */ +static int +nandfs_load_segsum_ri(struct nandfs_device *nandfsdev, + struct nandfs_recover_info *ri) +{ + + return (nandfs_load_segsum(nandfsdev, ri->pseg, &ri->segsum)); +} + static int nandfs_load_super_root(struct nandfs_device *nandfsdev, struct nandfs_recover_info *ri) @@ -623,7 +627,7 @@ nandfs_search_super_root(struct nandfs_d (uintmax_t)ri->pseg)); for (;;) { - error = nandfs_load_segsum(nandfsdev, ri); + error = nandfs_load_segsum_ri(nandfsdev, ri); if (error) break; @@ -923,211 +927,6 @@ nandfs_lookup_name_in_dir(struct vnode * return (error); } -static int -nandfs_process_bdesc(struct nandfs_device *nffsdev, struct nandfs_bdesc *bd, - uint64_t nmembs) -{ - struct nandfs_node *dat_node; - struct buf *bp; - uint64_t i; - int error; - - dat_node = nffsdev->nd_dat_node; - - VOP_LOCK(NTOV(dat_node), LK_EXCLUSIVE); - - for (i = 0; i < nmembs; i++) { - DPRINTF(CLEAN, ("%s: idx %jx offset %jx\n", - __func__, i, bd[i].bd_offset)); - if (bd[i].bd_level) { - error = nandfs_bread_meta(dat_node, bd[i].bd_offset, *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:20:15 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 6C48A1065670; Sat, 7 Apr 2012 05:20:15 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 550C78FC08; Sat, 7 Apr 2012 05:20:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q375KFNj044289; Sat, 7 Apr 2012 05:20:15 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q375KFJs044288; Sat, 7 Apr 2012 05:20:15 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070520.q375KFJs044288@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:20:15 +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: r233982 - projects/nand/sys/fs/nandfs 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, 07 Apr 2012 05:20:15 -0000 Author: gber Date: Sat Apr 7 05:20:14 2012 New Revision: 233982 URL: http://svn.freebsd.org/changeset/base/233982 Log: nandfs: Add nandfs cleaner. Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Added: projects/nand/sys/fs/nandfs/nandfs_cleaner.c Added: projects/nand/sys/fs/nandfs/nandfs_cleaner.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/nand/sys/fs/nandfs/nandfs_cleaner.c Sat Apr 7 05:20:14 2012 (r233982) @@ -0,0 +1,587 @@ +/*- + * Copyright (c) 2010-2012 Semihalf. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#define NANDFS_CLEANER_KILL 1 + +static void nandfs_cleaner(struct nandfs_device *); +static int nandfs_cleaner_clean_segments(struct nandfs_device *, + struct nandfs_vinfo *, uint32_t, struct nandfs_period *, uint32_t, + struct nandfs_bdesc *, uint32_t, uint64_t *, uint32_t); + +static int +nandfs_process_bdesc(struct nandfs_device *nffsdev, struct nandfs_bdesc *bd, + uint64_t nmembs); + +static void +nandfs_wakeup_wait_cleaner(struct nandfs_device *fsdev, int reason) +{ + + mtx_lock(&fsdev->nd_clean_mtx); + if (reason == NANDFS_CLEANER_KILL) + fsdev->nd_cleaner_exit = 1; + if (fsdev->nd_cleaning == 0) { + fsdev->nd_cleaning = 1; + wakeup(&fsdev->nd_cleaning); + } + cv_wait(&fsdev->nd_clean_cv, &fsdev->nd_clean_mtx); + mtx_unlock(&fsdev->nd_clean_mtx); +} + +int +nandfs_start_cleaner(struct nandfs_device *fsdev) +{ + int error; + + MPASS(fsdev->nd_cleaner == NULL); + + fsdev->nd_cleaner_exit = 0; + + error = kproc_create((void(*)(void *))nandfs_cleaner, fsdev, + &fsdev->nd_cleaner, 0, 0, "nandfs_cleaner"); + if (error) + printf("nandfs: could not start cleaner: %d\n", error); + + return (error); +} + +int +nandfs_stop_cleaner(struct nandfs_device *fsdev) +{ + + MPASS(fsdev->nd_cleaner != NULL); + nandfs_wakeup_wait_cleaner(fsdev, NANDFS_CLEANER_KILL); + fsdev->nd_cleaner = NULL; + + DPRINTF(CLEAN, ("cleaner stopped\n")); + return (0); +} + +static int +nandfs_cleaner_finished(struct nandfs_device *fsdev) +{ + int exit; + + mtx_lock(&fsdev->nd_clean_mtx); + fsdev->nd_cleaning = 0; + if (!fsdev->nd_cleaner_exit) { + DPRINTF(CLEAN, ("%s: sleep\n", __func__)); + msleep(&fsdev->nd_cleaning, &fsdev->nd_clean_mtx, PRIBIO, "-", + hz * nandfs_cleaner_interval); + } + exit = fsdev->nd_cleaner_exit; + cv_broadcast(&fsdev->nd_clean_cv); + mtx_unlock(&fsdev->nd_clean_mtx); + if (exit) { + DPRINTF(CLEAN, ("%s: no longer active\n", __func__)); + return (1); + } + + return (0); +} + +static void +print_suinfo(struct nandfs_suinfo *suinfo, int nsegs) +{ + int i; + + for (i = 0; i < nsegs; i++) { + DPRINTF(CLEAN, ("%jx %jd %c%c%c %10u\n", + suinfo[i].nsi_num, suinfo[i].nsi_lastmod, + (suinfo[i].nsi_flags & + (NANDFS_SEGMENT_USAGE_ACTIVE) ? 'a' : '-'), + (suinfo[i].nsi_flags & + (NANDFS_SEGMENT_USAGE_DIRTY) ? 'd' : '-'), + (suinfo[i].nsi_flags & + (NANDFS_SEGMENT_USAGE_ERROR) ? 'e' : '-'), + suinfo[i].nsi_blocks)); + } +} + +static int +nandfs_cleaner_vblock_is_alive(struct nandfs_device *fsdev, + struct nandfs_vinfo *vinfo, struct nandfs_cpinfo *cp, uint32_t ncps) +{ + int64_t idx, min, max; + + if (vinfo->nvi_end >= fsdev->nd_last_cno) + return (1); + + if (ncps == 0) + return (0); + + if (vinfo->nvi_end < cp[0].nci_cno || + vinfo->nvi_start > cp[ncps - 1].nci_cno) + return (0); + + idx = min = 0; + max = ncps - 1; + while (min <= max) { + idx = (min + max) / 2; + if (vinfo->nvi_start == cp[idx].nci_cno) + return (1); + if (vinfo->nvi_start < cp[idx].nci_cno) + max = idx - 1; + else + min = idx + 1; + } + + return (vinfo->nvi_end >= cp[idx].nci_cno); +} + +static void +nandfs_cleaner_vinfo_mark_alive(struct nandfs_device *fsdev, + struct nandfs_vinfo *vinfo, uint32_t nmembs, struct nandfs_cpinfo *cp, + uint32_t ncps) +{ + uint32_t i; + + for (i = 0; i < nmembs; i++) + vinfo[i].nvi_alive = + nandfs_cleaner_vblock_is_alive(fsdev, &vinfo[i], cp, ncps); +} + +static int +nandfs_cleaner_bdesc_is_alive(struct nandfs_device *fsdev, + struct nandfs_bdesc *bdesc) +{ + + return (bdesc->bd_oblocknr == bdesc->bd_blocknr); +} + +static void +nandfs_cleaner_bdesc_mark_alive(struct nandfs_device *fsdev, + struct nandfs_bdesc *bdesc, uint32_t nmembs) +{ + uint32_t i; + + for (i = 0; i < nmembs; i++) + bdesc[i].bd_alive = nandfs_cleaner_bdesc_is_alive(fsdev, + &bdesc[i]); +} + +static void +nandfs_cleaner_iterate_psegment(struct nandfs_device *fsdev, + struct nandfs_segment_summary *segsum, union nandfs_binfo *binfo, + nandfs_daddr_t blk, struct nandfs_vinfo **vipp, struct nandfs_bdesc **bdpp) +{ + int i; + + DPRINTF(CLEAN, ("%s nbinfos %x\n", __func__, segsum->ss_nbinfos)); + for (i = 0; i < segsum->ss_nbinfos; i++) { + if (binfo[i].bi_v.bi_ino == NANDFS_DAT_INO) { + (*bdpp)->bd_oblocknr = blk + segsum->ss_nblocks - + segsum->ss_nbinfos + i - 1; + (*bdpp)->bd_level = binfo[i].bi_dat.bi_level; + (*bdpp)->bd_offset = binfo[i].bi_dat.bi_blkoff; + (*bdpp)++; + } else { + (*vipp)->nvi_ino = binfo[i].bi_v.bi_ino; + (*vipp)->nvi_vblocknr = binfo[i].bi_v.bi_vblocknr; + (*vipp)++; + } + } +} + +static int +nandfs_cleaner_iterate_segment(struct nandfs_device *fsdev, uint64_t segno, + struct nandfs_vinfo **vipp, struct nandfs_bdesc **bdpp, int *select) +{ + struct nandfs_segment_summary *segsum; + union nandfs_binfo *binfo; + struct buf *bp; + uint32_t nblocks; + nandfs_daddr_t curr, start, end; + int error = 0; + + nandfs_get_segment_range(fsdev, segno, &start, &end); + + DPRINTF(CLEAN, ("%s: segno %jx start %jx end %jx\n", __func__, segno, + start, end)); + + *select = 0; + + for (curr = start; curr < end; curr += nblocks) { + error = nandfs_dev_bread(fsdev, curr, NOCRED, 0, &bp); + if (error) { + brelse(bp); + nandfs_error("%s: couldn't load segment summary of %jx: %d\n", + __func__, segno, error); + return (error); + } + + segsum = (struct nandfs_segment_summary *)bp->b_data; + binfo = (union nandfs_binfo *)(bp->b_data + segsum->ss_bytes); + + DPRINTF(CLEAN, ("%s: %jx magic %x bytes %x nblocks %x nbinfos " + "%x\n", __func__, segno, segsum->ss_magic, segsum->ss_bytes, + segsum->ss_nblocks, segsum->ss_nbinfos)); + + nandfs_cleaner_iterate_psegment(fsdev, segsum, binfo, curr, + vipp, bdpp); + nblocks = segsum->ss_nblocks; + brelse(bp); + } + + if (error == 0) + *select = 1; + + return (error); +} + +static int +nandfs_cleaner_choose_segment(struct nandfs_device *fsdev, uint64_t **segpp, + uint64_t nsegs, uint64_t *rseg) +{ + struct nandfs_suinfo *suinfo; + uint64_t i, ssegs; + int error; + + suinfo = malloc(sizeof(*suinfo) * nsegs, M_NANDFSTEMP, + M_ZERO | M_WAITOK); + + if (*rseg >= fsdev->nd_seg_num) + *rseg = 0; + + error = nandfs_get_segment_info_filter(fsdev, suinfo, nsegs, *rseg, + &ssegs, NANDFS_SEGMENT_USAGE_DIRTY, + NANDFS_SEGMENT_USAGE_ACTIVE | NANDFS_SEGMENT_USAGE_ERROR); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + goto out; + } + + print_suinfo(suinfo, ssegs); + + for (i = 0; i < ssegs; i++) { + (**segpp) = suinfo[i].nsi_num; + (*segpp)++; + } + + *rseg = suinfo[i - 1].nsi_num; +out: + free(suinfo, M_NANDFSTEMP); + + return (error); +} + +static int +nandfs_cleaner_body(struct nandfs_device *fsdev, uint64_t *rseg) +{ + struct nandfs_vinfo *vinfo, *vip, *vipi; + struct nandfs_bdesc *bdesc, *bdp, *bdpi; + struct nandfs_cpstat cpstat; + struct nandfs_cpinfo *cpinfo = NULL; + uint64_t *segnums, *segp; + int select, selected; + int error = 0; + int nsegs; + int i; + + nsegs = nandfs_cleaner_segments; + + vip = vinfo = malloc(sizeof(*vinfo) * + fsdev->nd_fsdata.f_blocks_per_segment * nsegs, M_NANDFSTEMP, + M_ZERO | M_WAITOK); + bdp = bdesc = malloc(sizeof(*bdesc) * + fsdev->nd_fsdata.f_blocks_per_segment * nsegs, M_NANDFSTEMP, + M_ZERO | M_WAITOK); + segp = segnums = malloc(sizeof(*segnums) * nsegs, M_NANDFSTEMP, + M_WAITOK); + + error = nandfs_cleaner_choose_segment(fsdev, &segp, nsegs, rseg); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + goto out; + } + + if (segnums == segp) + goto out; + + selected = 0; + for (i = 0; i < segp - segnums; i++) { + error = nandfs_cleaner_iterate_segment(fsdev, segnums[i], &vip, + &bdp, &select); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + goto out; + } + if (!select) + segnums[i] = NANDFS_NOSEGMENT; + else + selected++; + } + + if (selected == 0) { + MPASS(vinfo == vip); + MPASS(bdesc == bdp); + goto out; + } + + error = nandfs_get_cpstat(fsdev->nd_cp_node, &cpstat); + if (error) { + nandfs_error("%s:%d\n", __FILE__, __LINE__); + goto out; + } + + if (cpstat.ncp_nss != 0) { + cpinfo = malloc(sizeof(struct nandfs_cpinfo) * cpstat.ncp_nss, + M_NANDFSTEMP, M_WAITOK); + error = nandfs_get_cpinfo(fsdev->nd_cp_node, 1, NANDFS_SNAPSHOT, + cpinfo, cpstat.ncp_nss, NULL); + if (error) { + nandfs_error("%s:%d\n", __FILE__, __LINE__); + goto out; + } + } + + error = nandfs_get_dat_vinfo(fsdev, vinfo, vip - vinfo); + if (error) { + nandfs_error("%s:%d\n", __FILE__, __LINE__); + goto out; + } + + nandfs_cleaner_vinfo_mark_alive(fsdev, vinfo, vip - vinfo, cpinfo, + cpstat.ncp_nss); + + error = nandfs_get_dat_bdescs(fsdev, bdesc, bdp - bdesc); + if (error) { + nandfs_error("%s:%d\n", __FILE__, __LINE__); + goto out; + } + + nandfs_cleaner_bdesc_mark_alive(fsdev, bdesc, bdp - bdesc); + + DPRINTF(CLEAN, ("got:\n")); + for (vipi = vinfo; vipi < vip; vipi++) { + DPRINTF(CLEAN, ("v ino %jx vblocknr %jx start %jx end %jx " + "alive %d\n", vipi->nvi_ino, vipi->nvi_vblocknr, + vipi->nvi_start, vipi->nvi_end, vipi->nvi_alive)); + } + for (bdpi = bdesc; bdpi < bdp; bdpi++) { + DPRINTF(CLEAN, ("b oblocknr %jx blocknr %jx offset %jx\n", + bdpi->bd_oblocknr, bdpi->bd_blocknr, bdpi->bd_offset)); + } + DPRINTF(CLEAN, ("end list\n")); + + error = nandfs_cleaner_clean_segments(fsdev, vinfo, vip - vinfo, NULL, + 0, bdesc, bdp - bdesc, segnums, segp - segnums); + if (error) + nandfs_error("%s:%d\n", __FILE__, __LINE__); + +out: + free(cpinfo, M_NANDFSTEMP); + free(segnums, M_NANDFSTEMP); + free(bdesc, M_NANDFSTEMP); + free(vinfo, M_NANDFSTEMP); + + return (error); +} + +static void +nandfs_cleaner(struct nandfs_device *fsdev) +{ + uint64_t checked_seg = 0; + int error; + + while (!nandfs_cleaner_finished(fsdev)) { + if (!nandfs_cleaner_enable) + continue; + + DPRINTF(CLEAN, ("%s: run started\n", __func__)); + + fsdev->nd_cleaning = 1; + + error = nandfs_cleaner_body(fsdev, &checked_seg); + + DPRINTF(CLEAN, ("%s: run finished error %d\n", __func__, + error)); + } + + DPRINTF(CLEAN, ("%s: exiting\n", __func__)); + kproc_exit(0); +} + +static int +nandfs_cleaner_clean_segments(struct nandfs_device *nffsdev, + struct nandfs_vinfo *vinfo, uint32_t nvinfo, + struct nandfs_period *pd, uint32_t npd, + struct nandfs_bdesc *bdesc, uint32_t nbdesc, + uint64_t *segments, uint32_t nsegs) +{ + struct nandfs_node *gc; + struct buf *bp; + uint32_t i; + int error = 0; + + gc = nffsdev->nd_gc_node; + + lockmgr(&nffsdev->nd_seg_const, LK_EXCLUSIVE, NULL); + + DPRINTF(CLEAN, ("%s: enter\n", __func__)); + + VOP_LOCK(NTOV(gc), LK_EXCLUSIVE); + for (i = 0; i < nvinfo; i++) { + if (!vinfo[i].nvi_alive) + continue; + DPRINTF(CLEAN, ("%s: read vblknr:%#jx blk:%#jx\n", + __func__, (uintmax_t)vinfo[i].nvi_vblocknr, + (uintmax_t)vinfo[i].nvi_blocknr)); + error = nandfs_bread(nffsdev->nd_gc_node, vinfo[i].nvi_blocknr, + NULL, 0, &bp); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + VOP_UNLOCK(NTOV(gc), 0); + goto out; + } + nandfs_vblk_set(bp, vinfo[i].nvi_vblocknr); + nandfs_buf_set(bp, NANDFS_VBLK_ASSIGNED); + nandfs_dirty_buf(bp, 1); + } + VOP_UNLOCK(NTOV(gc), 0); + + /* Delete checkpoints */ + for (i = 0; i < npd; i++) { + DPRINTF(CLEAN, ("delete checkpoint: %jx\n", + (uintmax_t)pd[i].p_start)); + error = nandfs_delete_cp(nffsdev->nd_cp_node, pd[i].p_start, + pd[i].p_end); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + goto out; + } + } + + /* Update vblocks */ + for (i = 0; i < nvinfo; i++) { + if (vinfo[i].nvi_alive) + continue; + DPRINTF(CLEAN, ("freeing vblknr: %jx\n", vinfo[i].nvi_vblocknr)); + error = nandfs_vblock_free(nffsdev, vinfo[i].nvi_vblocknr); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + goto out; + } + } + + error = nandfs_process_bdesc(nffsdev, bdesc, nbdesc); + if (error) { + nandfs_error("%s:%d", __FILE__, __LINE__); + goto out; + } + + /* Add segments to clean */ + if (nffsdev->nd_free_count) { + nffsdev->nd_free_base = realloc(nffsdev->nd_free_base, + (nffsdev->nd_free_count + nsegs) * sizeof(uint64_t), + M_NANDFSTEMP, M_WAITOK | M_ZERO); + memcpy(&nffsdev->nd_free_base[nffsdev->nd_free_count], segments, + nsegs * sizeof(uint64_t)); + nffsdev->nd_free_count += nsegs; + } else { + nffsdev->nd_free_base = malloc(nsegs * sizeof(uint64_t), + M_NANDFSTEMP, M_WAITOK|M_ZERO); + memcpy(nffsdev->nd_free_base, segments, + nsegs * sizeof(uint64_t)); + nffsdev->nd_free_count = nsegs; + } + +out: + lockmgr(&nffsdev->nd_seg_const, LK_RELEASE, NULL); + + DPRINTF(CLEAN, ("%s: exit error %d\n", __func__, error)); + + return (error); +} + +static int +nandfs_process_bdesc(struct nandfs_device *nffsdev, struct nandfs_bdesc *bd, + uint64_t nmembs) +{ + struct nandfs_node *dat_node; + struct buf *bp; + uint64_t i; + int error; + + dat_node = nffsdev->nd_dat_node; + + VOP_LOCK(NTOV(dat_node), LK_EXCLUSIVE); + + for (i = 0; i < nmembs; i++) { + if (!bd[i].bd_alive) + continue; + DPRINTF(CLEAN, ("%s: idx %jx offset %jx\n", + __func__, i, bd[i].bd_offset)); + if (bd[i].bd_level) { + error = nandfs_bread_meta(dat_node, bd[i].bd_offset, + NULL, 0, &bp); + if (error) { + nandfs_error("%s: cannot read dat node " + "level:%d\n", __func__, bd[i].bd_level); + brelse(bp); + VOP_UNLOCK(NTOV(dat_node), 0); + return (error); + } + nandfs_dirty_buf_meta(bp, 1); + nandfs_bmap_dirty_blocks(VTON(bp->b_vp), bp, 1); + } else { + error = nandfs_bread(dat_node, bd[i].bd_offset, NULL, + 0, &bp); + if (error) { + nandfs_error("%s: cannot read dat node\n", + __func__); + brelse(bp); + VOP_UNLOCK(NTOV(dat_node), 0); + return (error); + } + nandfs_dirty_buf(bp, 1); + } + DPRINTF(CLEAN, ("%s: bp: %p\n", __func__, bp)); + } + + VOP_UNLOCK(NTOV(dat_node), 0); + + return (0); +} From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:25:13 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 DF410106566B; Sat, 7 Apr 2012 05:25:13 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C9C578FC15; Sat, 7 Apr 2012 05:25:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q375PD4F044505; Sat, 7 Apr 2012 05:25:13 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q375PDW2044502; Sat, 7 Apr 2012 05:25:13 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070525.q375PDW2044502@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:25: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: r233983 - in projects/nand/sys/modules: . nandfs 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, 07 Apr 2012 05:25:14 -0000 Author: gber Date: Sat Apr 7 05:25:13 2012 New Revision: 233983 URL: http://svn.freebsd.org/changeset/base/233983 Log: ndfs: Add module Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Added: projects/nand/sys/modules/nandfs/ projects/nand/sys/modules/nandfs/Makefile Modified: projects/nand/sys/modules/Makefile Modified: projects/nand/sys/modules/Makefile ============================================================================== --- projects/nand/sys/modules/Makefile Sat Apr 7 05:20:14 2012 (r233982) +++ projects/nand/sys/modules/Makefile Sat Apr 7 05:25:13 2012 (r233983) @@ -217,6 +217,7 @@ SUBDIR= ${_3dfx} \ ${_mwlfw} \ mxge \ my \ + ${_nandfs} \ ${_nandsim} \ ${_ncp} \ ${_ncv} \ Added: projects/nand/sys/modules/nandfs/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ projects/nand/sys/modules/nandfs/Makefile Sat Apr 7 05:25:13 2012 (r233983) @@ -0,0 +1,12 @@ +# $FreeBSD$ + +.PATH: ${.CURDIR}/../../fs/nandfs + +KMOD= nandfs +SRCS= vnode_if.h \ + bmap.c nandfs_bmap.c nandfs_dir.c nandfs_subr.c nandfs_vfsops.c \ + nandfs_vnops.c nandfs_alloc.c nandfs_cpfile.c nandfs_dat.c \ + nandfs_ifile.c nandfs_segment.c nandfs_sufile.c nandfs_buffer.c \ + nandfs_cleaner.c + +.include From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:32:06 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 DA218106564A; Sat, 7 Apr 2012 05:32:06 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C45EA8FC18; Sat, 7 Apr 2012 05:32:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q375W6w5044785; Sat, 7 Apr 2012 05:32:06 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q375W68c044780; Sat, 7 Apr 2012 05:32:06 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070532.q375W68c044780@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:32:06 +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: r233984 - in projects/nand: lib/libnandfs sbin/nandfs 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, 07 Apr 2012 05:32:06 -0000 Author: gber Date: Sat Apr 7 05:32:06 2012 New Revision: 233984 URL: http://svn.freebsd.org/changeset/base/233984 Log: nandfs: remove locks from libnandfs and tools accordingly Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/lib/libnandfs/libnandfs.h projects/nand/lib/libnandfs/nandfs.c projects/nand/sbin/nandfs/mksnap.c projects/nand/sbin/nandfs/rmsnap.c Modified: projects/nand/lib/libnandfs/libnandfs.h ============================================================================== --- projects/nand/lib/libnandfs/libnandfs.h Sat Apr 7 05:25:13 2012 (r233983) +++ projects/nand/lib/libnandfs/libnandfs.h Sat Apr 7 05:32:06 2012 (r233984) @@ -46,19 +46,10 @@ const char *nandfs_errmsg(struct nandfs void nandfs_init(struct nandfs *, const char *); void nandfs_destroy(struct nandfs *); -int nandfs_cleanerd_set(struct nandfs *); -int nandfs_cleanerd_unset(struct nandfs *); - const char *nandfs_dev(struct nandfs *); int nandfs_open(struct nandfs *); -int nandfs_open_rw(struct nandfs *); -int nandfs_open_dev(struct nandfs *); void nandfs_close(struct nandfs *); -void nandfs_close_dev(struct nandfs *); - -int nandfs_lock(struct nandfs *, int write); -int nandfs_unlock(struct nandfs *); ssize_t nandfs_get_cp(struct nandfs *, uint64_t, struct nandfs_cpinfo *, size_t); Modified: projects/nand/lib/libnandfs/nandfs.c ============================================================================== --- projects/nand/lib/libnandfs/nandfs.c Sat Apr 7 05:25:13 2012 (r233983) +++ projects/nand/lib/libnandfs/nandfs.c Sat Apr 7 05:32:06 2012 (r233984) @@ -50,8 +50,6 @@ __FBSDID("$FreeBSD$"); #define NANDFS_IS_OPENED 0x2 #define NANDFS_IS_OPENED_DEV 0x4 #define NANDFS_IS_ERROR 0x8 -#define NANDFS_IS_LOCKED 0x10 -#define NANDFS_IS_READONLY 0x20 #define DEBUG #undef DEBUG @@ -66,12 +64,6 @@ __FBSDID("$FreeBSD$"); #define NANDFS_ASSERT_VALID_DEV(fs) \ assert(((fs)->n_flags & (NANDFS_IS_VALID | NANDFS_IS_OPENED_DEV)) == \ (NANDFS_IS_VALID | NANDFS_IS_OPENED_DEV)) -#define NANDFS_ASSERT_RDWR(fs) \ - assert(!((fs)->n_flags & NANDFS_IS_READONLY)) -#define NANDFS_ASSERT_LOCKED(fs) \ - assert((fs)->n_flags & NANDFS_IS_LOCKED) -#define NANDFS_ASSERT_UNLOCKED(fs) \ - assert(!((fs)->n_flags & NANDFS_IS_LOCKED)) int nandfs_iserror(struct nandfs *fs) @@ -104,88 +96,6 @@ nandfs_seterr(struct nandfs *fs, const c fs->n_flags |= NANDFS_IS_ERROR; } -int -nandfs_cleanerd_set(struct nandfs *fs) -{ - - NANDFS_ASSERT_VALID_DEV(fs); - - if (ioctl(fs->n_iocfd, NANDFS_IOCTL_CLEANERD_SET) == -1) { - nandfs_seterr(fs, "%s", strerror(errno)); - return (-1); - } - - return (0); -} - -int -nandfs_cleanerd_unset(struct nandfs *fs) -{ - - NANDFS_ASSERT_VALID_DEV(fs); - - if (ioctl(fs->n_iocfd, NANDFS_IOCTL_CLEANERD_UNSET) == -1) { - nandfs_seterr(fs, "%s", strerror(errno)); - return (-1); - } - - return (0); -} - -int -nandfs_lock(struct nandfs *fs, int rdwr) -{ - struct flock lck; - int error; - - NANDFS_ASSERT_VALID(fs); - NANDFS_ASSERT_RDWR(fs); - NANDFS_ASSERT_UNLOCKED(fs); - - lck.l_type = (rdwr ? F_WRLCK : F_RDLCK); - lck.l_start = 0; - lck.l_whence = SEEK_SET; - lck.l_len = 1; - - error = fcntl(fs->n_iocfd, F_SETLKW, &lck); - if (error == -1) { - nandfs_seterr(fs, "couldn't lock %s: %s", fs->n_ioc, - strerror(errno)); - return (-1); - } - - fs->n_flags |= NANDFS_IS_LOCKED; - - return (0); -} - -int -nandfs_unlock(struct nandfs *fs) -{ - struct flock lck; - int error; - - NANDFS_ASSERT_VALID(fs); - NANDFS_ASSERT_RDWR(fs); - NANDFS_ASSERT_LOCKED(fs); - - lck.l_type = F_UNLCK; - lck.l_start = 0; - lck.l_whence = SEEK_SET; - lck.l_len = 1; - - error = fcntl(fs->n_iocfd, F_SETLK, &lck); - if (error == -1) { - nandfs_seterr(fs, "couldn't unlock %s: %s", fs->n_ioc, - strerror(errno)); - return (-1); - } - - fs->n_flags &= ~NANDFS_IS_LOCKED; - - return (0); -} - const char * nandfs_dev(struct nandfs *fs) { @@ -209,26 +119,18 @@ nandfs_destroy(struct nandfs *fs) assert(fs->n_iocfd == -1); fs->n_flags &= - ~(NANDFS_IS_ERROR | NANDFS_IS_VALID | NANDFS_IS_READONLY); + ~(NANDFS_IS_ERROR | NANDFS_IS_VALID); assert(fs->n_flags == 0); } -static int -_nandfs_open(struct nandfs *fs, int rdwr) +int +nandfs_open(struct nandfs *fs) { struct nandfs_fsinfo fsinfo; - int flags; fs->n_flags |= NANDFS_IS_OPENED; - if (rdwr) - flags = O_RDWR; - else { - fs->n_flags |= NANDFS_IS_READONLY; - flags = O_RDONLY; - } - - fs->n_iocfd = open(fs->n_ioc, flags, S_IRUSR | S_IWUSR | S_IRGRP | + fs->n_iocfd = open(fs->n_ioc, O_RDONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); if (fs->n_iocfd == -1) { nandfs_seterr(fs, "couldn't open %s: %s", fs->n_ioc, @@ -249,39 +151,6 @@ _nandfs_open(struct nandfs *fs, int rdwr return (0); } -int -nandfs_open(struct nandfs *fs) -{ - - return (_nandfs_open(fs, 0)); -} - -int -nandfs_open_rw(struct nandfs *fs) -{ - - return (_nandfs_open(fs, 1)); -} - -int -nandfs_open_dev(struct nandfs *fs) -{ - - fs->n_flags |= NANDFS_IS_OPENED_DEV; - - if (nandfs_open_rw(fs) == -1) - return (-1); - - fs->n_devfd = open(fs->n_dev, O_RDONLY); - if (fs->n_devfd == -1) { - nandfs_seterr(fs, "couldn't open %s: %s", fs->n_dev, - strerror(errno)); - return (-1); - } - - return (0); -} - void nandfs_close(struct nandfs *fs) { @@ -294,18 +163,6 @@ nandfs_close(struct nandfs *fs) fs->n_flags &= ~NANDFS_IS_OPENED; } -void -nandfs_close_dev(struct nandfs *fs) -{ - - assert(fs->n_flags & NANDFS_IS_OPENED_DEV); - - close(fs->n_devfd); - fs->n_devfd = -1; - fs->n_flags &= ~NANDFS_IS_OPENED_DEV; - nandfs_close(fs); -} - static ssize_t nandfs_get_cpinfo(struct nandfs *fs, uint64_t cno, int mode, struct nandfs_cpinfo *cpinfo, size_t nci) @@ -349,8 +206,6 @@ nandfs_make_snap(struct nandfs *fs, uint { NANDFS_ASSERT_VALID(fs); - NANDFS_ASSERT_RDWR(fs); - NANDFS_ASSERT_LOCKED(fs); if (ioctl(fs->n_iocfd, NANDFS_IOCTL_MAKE_SNAP, cno) == -1) { nandfs_seterr(fs, "ioctl NANDFS_IOCTL_MAKE_SNAP: %s", @@ -366,8 +221,6 @@ nandfs_delete_snap(struct nandfs *fs, ui { NANDFS_ASSERT_VALID(fs); - NANDFS_ASSERT_RDWR(fs); - NANDFS_ASSERT_LOCKED(fs); if (ioctl(fs->n_iocfd, NANDFS_IOCTL_DELETE_SNAP, &cno) == -1) { nandfs_seterr(fs, "ioctl NANDFS_IOCTL_DELETE_SNAP: %s", Modified: projects/nand/sbin/nandfs/mksnap.c ============================================================================== --- projects/nand/sbin/nandfs/mksnap.c Sat Apr 7 05:25:13 2012 (r233983) +++ projects/nand/sbin/nandfs/mksnap.c Sat Apr 7 05:32:06 2012 (r233984) @@ -61,29 +61,18 @@ nandfs_mksnap(int argc, char **argv) } nandfs_init(&fs, argv[0]); - error = nandfs_open_rw(&fs); + error = nandfs_open(&fs); if (error == -1) { fprintf(stderr, "nandfs_open: %s\n", nandfs_errmsg(&fs)); goto out; } - error = nandfs_lock(&fs, 1); - if (error == -1) { - fprintf(stderr, "nandfs_lock: %s\n", nandfs_errmsg(&fs)); - goto out; - } - error = nandfs_make_snap(&fs, &cpno); if (error == -1) fprintf(stderr, "nandfs_make_snap: %s\n", nandfs_errmsg(&fs)); else printf("%jd\n", cpno); - error = nandfs_unlock(&fs); - if (error == -1) { - fprintf(stderr, "nandfs_unlock: %s\n", nandfs_errmsg(&fs)); - goto out; - } out: nandfs_close(&fs); nandfs_destroy(&fs); Modified: projects/nand/sbin/nandfs/rmsnap.c ============================================================================== --- projects/nand/sbin/nandfs/rmsnap.c Sat Apr 7 05:25:13 2012 (r233983) +++ projects/nand/sbin/nandfs/rmsnap.c Sat Apr 7 05:32:06 2012 (r233984) @@ -70,27 +70,16 @@ nandfs_rmsnap(int argc, char **argv) } nandfs_init(&fs, argv[1]); - error = nandfs_open_rw(&fs); + error = nandfs_open(&fs); if (error == -1) { fprintf(stderr, "nandfs_open: %s\n", nandfs_errmsg(&fs)); goto out; } - error = nandfs_lock(&fs, 1); - if (error == -1) { - fprintf(stderr, "nandfs_lock: %s\n", nandfs_errmsg(&fs)); - goto out; - } - error = nandfs_delete_snap(&fs, cpno); if (error == -1) fprintf(stderr, "nandfs_delete_snap: %s\n", nandfs_errmsg(&fs)); - error = nandfs_unlock(&fs); - if (error == -1) { - fprintf(stderr, "nandfs_unlock: %s\n", nandfs_errmsg(&fs)); - goto out; - } out: nandfs_close(&fs); nandfs_destroy(&fs); From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 05:41:03 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A9FE51065673; Sat, 7 Apr 2012 05:41:03 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 935278FC14; Sat, 7 Apr 2012 05:41:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q375f3i0045163; Sat, 7 Apr 2012 05:41:03 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q375f3SH045148; Sat, 7 Apr 2012 05:41:03 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201204070541.q375f3SH045148@svn.freebsd.org> From: Grzegorz Bernacki Date: Sat, 7 Apr 2012 05:41:03 +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: r233985 - in projects/nand: lib/libnandfs sbin/nandfs sbin/newfs_nandfs sys/conf sys/fs/nandfs usr.sbin/nandsim 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, 07 Apr 2012 05:41:03 -0000 Author: gber Date: Sat Apr 7 05:41:02 2012 New Revision: 233985 URL: http://svn.freebsd.org/changeset/base/233985 Log: nandfs: Various fixes and cleanups. Obtained from: Semihalf Supported by: FreeBSD Foundation, Juniper Networks Modified: projects/nand/lib/libnandfs/libnandfs.h projects/nand/lib/libnandfs/nandfs.c projects/nand/sbin/nandfs/Makefile projects/nand/sbin/nandfs/lssnap.c projects/nand/sbin/nandfs/nandfs.h projects/nand/sbin/newfs_nandfs/Makefile projects/nand/sbin/newfs_nandfs/newfs_nandfs.c projects/nand/sys/conf/files projects/nand/sys/fs/nandfs/nandfs_cleaner.c projects/nand/sys/fs/nandfs/nandfs_segment.c projects/nand/sys/fs/nandfs/nandfs_subr.c projects/nand/sys/fs/nandfs/nandfs_subr.h projects/nand/sys/fs/nandfs/nandfs_vfsops.c projects/nand/usr.sbin/nandsim/sample.conf Modified: projects/nand/lib/libnandfs/libnandfs.h ============================================================================== --- projects/nand/lib/libnandfs/libnandfs.h Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/lib/libnandfs/libnandfs.h Sat Apr 7 05:41:02 2012 (r233985) @@ -51,6 +51,8 @@ const char *nandfs_dev(struct nandfs *); int nandfs_open(struct nandfs *); void nandfs_close(struct nandfs *); +int nandfs_get_cpstat(struct nandfs *, struct nandfs_cpstat *); + ssize_t nandfs_get_cp(struct nandfs *, uint64_t, struct nandfs_cpinfo *, size_t); Modified: projects/nand/lib/libnandfs/nandfs.c ============================================================================== --- projects/nand/lib/libnandfs/nandfs.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/lib/libnandfs/nandfs.c Sat Apr 7 05:41:02 2012 (r233985) @@ -163,6 +163,21 @@ nandfs_close(struct nandfs *fs) fs->n_flags &= ~NANDFS_IS_OPENED; } +int +nandfs_get_cpstat(struct nandfs *fs, struct nandfs_cpstat *cpstat) +{ + + NANDFS_ASSERT_VALID(fs); + + if (ioctl(fs->n_iocfd, NANDFS_IOCTL_GET_CPSTAT, cpstat) == -1) { + nandfs_seterr(fs, "ioctl NANDFS_IOCTL_GET_CPSTAT: %s", + strerror(errno)); + return (-1); + } + + return (0); +} + static ssize_t nandfs_get_cpinfo(struct nandfs *fs, uint64_t cno, int mode, struct nandfs_cpinfo *cpinfo, size_t nci) Modified: projects/nand/sbin/nandfs/Makefile ============================================================================== --- projects/nand/sbin/nandfs/Makefile Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sbin/nandfs/Makefile Sat Apr 7 05:41:02 2012 (r233985) @@ -1,3 +1,5 @@ +# $FreeBSD$ + PROG= nandfs SRCS= nandfs.c lssnap.c mksnap.c rmsnap.c MAN= nandfs.8 Modified: projects/nand/sbin/nandfs/lssnap.c ============================================================================== --- projects/nand/sbin/nandfs/lssnap.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sbin/nandfs/lssnap.c Sat Apr 7 05:41:02 2012 (r233985) @@ -59,9 +59,6 @@ print_cpinfo(struct nandfs_cpinfo *cpinf time_t t; char timebuf[128]; - if (!(cpinfo->nci_nblk_inc) && !(cpinfo->nci_inodes_count)) - return; - t = (time_t)cpinfo->nci_create; localtime_r(&t, &tm); strftime(timebuf, sizeof(timebuf), "%F %T", &tm); @@ -74,8 +71,8 @@ nandfs_lssnap(int argc, char **argv) { struct nandfs_cpinfo *cpinfos; struct nandfs fs; - int nsnap, i; - int error; + uint64_t next; + int error, nsnap, i; if (argc != 1) { lssnap_usage(); @@ -95,14 +92,17 @@ nandfs_lssnap(int argc, char **argv) goto out; } - nsnap = nandfs_get_snap(&fs, 1, cpinfos, NCPINFO); - if (nsnap == -1) { - fprintf(stderr, "nandfs_get_snap: %s\n", nandfs_errmsg(&fs)); - goto out; + for (next = 1; next != 0; next = cpinfos[nsnap - 1].nci_next) { + nsnap = nandfs_get_snap(&fs, next, cpinfos, NCPINFO); + if (nsnap < 1) + break; + + for (i = 0; i < nsnap; i++) + print_cpinfo(&cpinfos[i]); } - for (i = 0; i < nsnap; i++) - print_cpinfo(&cpinfos[i]); + if (nsnap == -1) + fprintf(stderr, "nandfs_get_snap: %s\n", nandfs_errmsg(&fs)); out: nandfs_close(&fs); Modified: projects/nand/sbin/nandfs/nandfs.h ============================================================================== --- projects/nand/sbin/nandfs/nandfs.h Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sbin/nandfs/nandfs.h Sat Apr 7 05:41:02 2012 (r233985) @@ -31,6 +31,7 @@ */ #ifndef NANDFS_H +#define NANDFS_H int nandfs_lssnap(int, char **); int nandfs_mksnap(int, char **); Modified: projects/nand/sbin/newfs_nandfs/Makefile ============================================================================== --- projects/nand/sbin/newfs_nandfs/Makefile Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sbin/newfs_nandfs/Makefile Sat Apr 7 05:41:02 2012 (r233985) @@ -2,12 +2,8 @@ PROG= newfs_nandfs MAN= newfs_nandfs.8 -.if ${MACHINE_ARCH} == "arm" -WARNS?= 3 -.else -WARNS?= 6 -.endif LDADD+= -lgeom +DPADD+= ${LIBGEOM} .include Modified: projects/nand/sbin/newfs_nandfs/newfs_nandfs.c ============================================================================== --- projects/nand/sbin/newfs_nandfs/newfs_nandfs.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sbin/newfs_nandfs/newfs_nandfs.c Sat Apr 7 05:41:02 2012 (r233985) @@ -93,7 +93,7 @@ struct nandfs_block { LIST_ENTRY(nandfs_block) block_link; uint32_t number; uint64_t offset; - char *data; + void *data; }; static LIST_HEAD(, nandfs_block) block_head = LIST_HEAD_INITIALIZER(&block_head); @@ -124,7 +124,6 @@ uint32_t crc_seed; struct nandfs_super_root *sr; uint32_t nuserfiles; -uint32_t seg_nfinfo; uint32_t seg_segsum_size; uint32_t seg_nblocks; uint32_t seg_endblock; @@ -191,7 +190,7 @@ crc32_le(uint32_t crc, const uint8_t *bu return (crc); } -static char * +static void * get_block(uint32_t block_nr, uint64_t offset) { struct nandfs_block *block, *new_block; @@ -242,7 +241,6 @@ segment_size(void) u_int size; size = sizeof(struct nandfs_segment_summary ); - size += seg_nfinfo * sizeof(struct nandfs_finfo); size += seg_nblocks * sizeof(struct nandfs_binfo_v); if (size > blocksize) @@ -256,13 +254,10 @@ static void prepare_blockgrouped_file(uint32_t block) { struct nandfs_block_group_desc *desc; - uint8_t *block_data; uint32_t i, entries; - block_data = get_block(block, 0); + desc = (struct nandfs_block_group_desc *)get_block(block, 0); entries = blocksize / sizeof(struct nandfs_block_group_desc); - - desc = (struct nandfs_block_group_desc *) block_data; for (i = 0; i < entries; i++) desc[i].bg_nfrees = blocksize * 8; } @@ -274,8 +269,8 @@ alloc_blockgrouped_file(uint32_t block, uint32_t desc_nr; uint32_t *bitmap; - desc = (struct nandfs_block_group_desc *) get_block(block, 0); - bitmap = (uint32_t*)get_block(block + 1, 1); + desc = (struct nandfs_block_group_desc *)get_block(block, 0); + bitmap = (uint32_t *)get_block(block + 1, 1); bitmap += (entry >> 5); if (*bitmap & (1 << (entry % 32))) { @@ -294,7 +289,7 @@ count_su_blocks(void) { uint64_t maxblk, blk, offset, i; - maxblk = 0; + maxblk = blk = 0; for (i = 0; i < bad_segments_count; i++) { nandfs_seg_usage_blk_offset(bad_segments[i], &blk, &offset); @@ -322,12 +317,8 @@ count_seg_blocks(void) if (user_files[i].nblocks) { seg_nblocks += user_files[i].nblocks; user_files[i].blocks = malloc(user_files[i].nblocks * sizeof(uint32_t)); - seg_nfinfo++; } - /* and 4 finfos for cpfile, ifile, sufile and datfile */ - seg_nfinfo += 4; - ifile.nblocks = 2 + SIZE_TO_BLOCK(sizeof(struct nandfs_inode) * (NANDFS_USER_INO + 1)); ifile.blocks = malloc(ifile.nblocks * sizeof(uint32_t)); @@ -428,45 +419,38 @@ update_datfile(uint64_t block) return (allocated); } -static struct nandfs_finfo * -update_block_info(struct nandfs_finfo *finfo, struct file_info *file) +static union nandfs_binfo * +update_block_info(union nandfs_binfo *binfo, struct file_info *file) { - union nandfs_binfo *binfo; - uint64_t vblock; + nandfs_daddr_t vblock; uint32_t i; - finfo->fi_ino = file->ino; - finfo->fi_ndatablk = file->nblocks; - finfo->fi_nblocks = file->nblocks; - finfo->fi_cno = 1; - finfo++; - - binfo = (union nandfs_binfo *)finfo; for (i = 0; i < file->nblocks; i++) { debug("%s: blk %x", __func__, i); if (file->ino != NANDFS_DAT_INO) { vblock = update_datfile(file->blocks[i]); binfo->bi_v.bi_vblocknr = vblock; binfo->bi_v.bi_blkoff = i; + binfo->bi_v.bi_ino = file->ino; file->inode->i_db[i] = vblock; } else { binfo->bi_dat.bi_blkoff = i; + binfo->bi_dat.bi_ino = file->ino; file->inode->i_db[i] = datfile.blocks[i]; } binfo++; } - finfo = (struct nandfs_finfo *)binfo; - return (finfo); + return (binfo); } static void save_segsum(struct nandfs_segment_summary *ss) { - struct nandfs_finfo *finfo; + union nandfs_binfo *binfo; struct nandfs_block *block; uint32_t sum_bytes, i; - uint8_t *data, crc_data, crc_skip; + uint8_t crc_data, crc_skip; sum_bytes = segment_size(); ss->ss_magic = NANDFS_SEGSUM_MAGIC; @@ -478,7 +462,7 @@ save_segsum(struct nandfs_segment_summar ss->ss_next = nandfs_first_block() + blocks_per_segment; /* nblocks = segment blocks + segsum block + superroot */ ss->ss_nblocks = seg_nblocks + 2; - ss->ss_nfinfo = seg_nfinfo; + ss->ss_nbinfos = seg_nblocks; ss->ss_sumbytes = sum_bytes; crc_skip = sizeof(ss->ss_datasum) + sizeof(ss->ss_sumsum); @@ -486,18 +470,16 @@ save_segsum(struct nandfs_segment_summar sum_bytes - crc_skip); crc_data = 0; - data = (uint8_t *)ss + sizeof(struct nandfs_segment_summary); - finfo = (struct nandfs_finfo *)data; - + binfo = (union nandfs_binfo *)(ss + 1); for (i = 0; i < nuserfiles; i++) { if (user_files[i].nblocks) - finfo = update_block_info(finfo, &user_files[i]); + binfo = update_block_info(binfo, &user_files[i]); } - finfo = update_block_info(finfo, &ifile); - finfo = update_block_info(finfo, &cpfile); - finfo = update_block_info(finfo, &sufile); - finfo = update_block_info(finfo, &datfile); + binfo = update_block_info(binfo, &ifile); + binfo = update_block_info(binfo, &cpfile); + binfo = update_block_info(binfo, &sufile); + update_block_info(binfo, &datfile); /* save superroot crc */ crc_skip = sizeof(sr->sr_sum); @@ -510,7 +492,8 @@ save_segsum(struct nandfs_segment_summar if (block->number < NANDFS_FIRST_BLOCK) continue; if (block->number == NANDFS_FIRST_BLOCK) - crc_data = crc32_le(crc_seed, block->data + crc_skip, + crc_data = crc32_le(crc_seed, + (uint8_t *)block->data + crc_skip, blocksize - crc_skip); else crc_data = crc32_le(crc_data, block->data, blocksize); @@ -546,7 +529,7 @@ create_fsdata(void) fsdata.f_checkpoint_size = sizeof(struct nandfs_checkpoint); fsdata.f_segment_usage_size = sizeof(struct nandfs_segment_usage); - uuidgen((struct uuid *)fsdata.f_uuid, 1); + uuidgen(&fsdata.f_uuid, 1); if (volumelabel) memcpy(fsdata.f_volume_name, volumelabel, 16); @@ -573,7 +556,7 @@ create_super_block(void) super_block.s_last_pseg = NANDFS_FIRST_BLOCK; super_block.s_last_seq = 1; super_block.s_free_blocks_count = - (nsegments - bad_segments_count - 1) * blocks_per_segment; + (nsegments - bad_segments_count) * blocks_per_segment; super_block.s_mtime = 0; super_block.s_wtime = nandfs_time; super_block.s_mnt_count = 0; @@ -604,14 +587,14 @@ save_super_root(void) } static struct nandfs_dir_entry * -add_de(uint8_t *block, struct nandfs_dir_entry *de, uint64_t ino, +add_de(void *block, struct nandfs_dir_entry *de, uint64_t ino, const char *name, uint8_t type) { uint16_t reclen; /* modify last de */ de->rec_len = NANDFS_DIR_REC_LEN(de->name_len); - de = (struct nandfs_dir_entry *)((uint8_t *)de + de->rec_len); + de = (void *)((uint8_t *)de + de->rec_len); reclen = blocksize - ((uintptr_t)de - (uintptr_t)block); if (reclen < NANDFS_DIR_REC_LEN(strlen(name))) { @@ -631,7 +614,7 @@ add_de(uint8_t *block, struct nandfs_dir } static struct nandfs_dir_entry * -make_dir(uint8_t *block, uint64_t ino, uint64_t parent_ino) +make_dir(void *block, uint64_t ino, uint64_t parent_ino) { struct nandfs_dir_entry *de = (struct nandfs_dir_entry *)block; @@ -643,7 +626,7 @@ make_dir(uint8_t *block, uint64_t ino, u memcpy(de->name, "..\0\0\0\0\0\0", 8); /* create '.' entry */ - de = (struct nandfs_dir_entry *)(block + NANDFS_DIR_REC_LEN(2)); + de = (void *)((uint8_t *)block + NANDFS_DIR_REC_LEN(2)); de->inode = ino; de->rec_len = blocksize - NANDFS_DIR_REC_LEN(1) + NANDFS_DIR_REC_LEN(2); de->name_len = 1; @@ -660,7 +643,7 @@ save_root_dir(void) struct file_info *root = &user_files[0]; struct nandfs_dir_entry *de; uint32_t i; - uint8_t *block; + void *block; block = get_block(root->blocks[0], 0); @@ -679,7 +662,7 @@ save_sufile(void) struct nandfs_sufile_header *header; struct nandfs_segment_usage *su; uint64_t blk, i, off; - char *block; + void *block; int start; /* @@ -692,7 +675,7 @@ save_sufile(void) block = get_block(sufile.blocks[start], 0); header = (struct nandfs_sufile_header *)block; - header->sh_ncleansegs = nsegments - 1; + header->sh_ncleansegs = nsegments - bad_segments_count - 1; header->sh_ndirtysegs = 1; header->sh_last_alloc = 1; @@ -728,6 +711,7 @@ save_cpfile(void) struct nandfs_checkpoint *cp, *initial_cp; int i, entries = blocksize / sizeof(struct nandfs_checkpoint); uint64_t cno; + header = (struct nandfs_cpfile_header *)get_block(cpfile.blocks[0], 0); header->ch_ncheckpoints = 1; header->ch_nsnapshots = 0; @@ -741,7 +725,6 @@ save_cpfile(void) initial_cp->cp_cno = NANDFS_FIRST_CNO; initial_cp->cp_create = nandfs_time; initial_cp->cp_nblk_inc = seg_endblock - 1; - initial_cp->cp_inodes_count = nuserfiles; initial_cp->cp_blocks_count = seg_nblocks; memset(&initial_cp->cp_snapshot_list, 0, sizeof(struct nandfs_snapshot_list)); @@ -854,8 +837,7 @@ create_fs(void) } /* Save segment summary and CRCs */ - data = get_block(NANDFS_FIRST_BLOCK, 0); - save_segsum((struct nandfs_segment_summary *)data); + save_segsum(get_block(NANDFS_FIRST_BLOCK, 0)); return (0); } @@ -909,7 +891,9 @@ check_parameters(void) /* check volume label */ i = 0; if (volumelabel) { - while (isalnum(volumelabel[++i])); + while (isalnum(volumelabel[++i])) + ; + if (volumelabel[i] != '\0') { errx(1, "bad volume label. " "Valid characters are alphanumerics."); @@ -1092,8 +1076,10 @@ print_summary(void) printf("filesystem created succesfully\n"); printf("total segments: %#jx valid segments: %#jx\n", nsegments, - super_block.s_free_blocks_count); - printf("total space: %ju MB\n", + nsegments - bad_segments_count); + printf("total space: %ju MB free: %ju MB\n", + (nsegments * + blocks_per_segment * blocksize) / (1024 * 1024), ((nsegments - bad_segments_count) * blocks_per_segment * blocksize) / (1024 * 1024)); } Modified: projects/nand/sys/conf/files ============================================================================== --- projects/nand/sys/conf/files Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sys/conf/files Sat Apr 7 05:41:02 2012 (r233985) @@ -2269,6 +2269,7 @@ fs/nandfs/bmap.c optional nandfs fs/nandfs/nandfs_alloc.c optional nandfs fs/nandfs/nandfs_bmap.c optional nandfs fs/nandfs/nandfs_buffer.c optional nandfs +fs/nandfs/nandfs_cleaner.c optional nandfs fs/nandfs/nandfs_cpfile.c optional nandfs fs/nandfs/nandfs_dat.c optional nandfs fs/nandfs/nandfs_dir.c optional nandfs Modified: projects/nand/sys/fs/nandfs/nandfs_cleaner.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_cleaner.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sys/fs/nandfs/nandfs_cleaner.c Sat Apr 7 05:41:02 2012 (r233985) @@ -255,6 +255,12 @@ nandfs_cleaner_iterate_segment(struct na segsum = (struct nandfs_segment_summary *)bp->b_data; binfo = (union nandfs_binfo *)(bp->b_data + segsum->ss_bytes); + if (!nandfs_segsum_valid(segsum)) { + nandfs_error("nandfs: invalid summary of segment %jx\n", segno); + brelse(bp); + return (error); + } + DPRINTF(CLEAN, ("%s: %jx magic %x bytes %x nblocks %x nbinfos " "%x\n", __func__, segno, segsum->ss_magic, segsum->ss_bytes, segsum->ss_nblocks, segsum->ss_nbinfos)); Modified: projects/nand/sys/fs/nandfs/nandfs_segment.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_segment.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sys/fs/nandfs/nandfs_segment.c Sat Apr 7 05:41:02 2012 (r233985) @@ -1099,6 +1099,7 @@ nandfs_segment_constructor(struct nandfs fsdev = nmp->nm_nandfsdev; lockmgr(&fsdev->nd_seg_const, LK_EXCLUSIVE, NULL); +again: create_seginfo(fsdev, &seginfo); dat = fsdev->nd_dat_node; @@ -1191,6 +1192,22 @@ reiterate: VOP_UNLOCK(NTOV(su), 0); delete_seginfo(seginfo); + + /* + * XXX: a hack, will go away soon + */ + if ((NTOV(dat)->v_bufobj.bo_dirty.bv_cnt != 0 || + NTOV(cp)->v_bufobj.bo_dirty.bv_cnt != 0 || + NTOV(gc)->v_bufobj.bo_dirty.bv_cnt != 0 || + NTOV(ifile)->v_bufobj.bo_dirty.bv_cnt != 0 || + NTOV(su)->v_bufobj.bo_dirty.bv_cnt != 0) && + (flags & NANDFS_UMOUNT)) { + DPRINTF(SYNC, ("%s: RERUN\n", __func__)); + goto again; + } + + MPASS(fsdev->nd_free_base == NULL); + lockmgr(&fsdev->nd_seg_const, LK_RELEASE, NULL); if (cno_changed) { Modified: projects/nand/sys/fs/nandfs/nandfs_subr.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_subr.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sys/fs/nandfs/nandfs_subr.c Sat Apr 7 05:41:02 2012 (r233985) @@ -513,6 +513,13 @@ struct nandfs_recover_info { }; int +nandfs_segsum_valid(struct nandfs_segment_summary *segsum) +{ + + return (segsum->ss_magic == NANDFS_SEGSUM_MAGIC); +} + +int nandfs_load_segsum(struct nandfs_device *fsdev, nandfs_daddr_t blocknr, struct nandfs_segment_summary *segsum) { @@ -529,7 +536,7 @@ nandfs_load_segsum(struct nandfs_device memcpy(segsum, bp->b_data, sizeof(struct nandfs_segment_summary)); brelse(bp); - if (segsum->ss_magic != NANDFS_SEGSUM_MAGIC) { + if (!nandfs_segsum_valid(segsum)) { DPRINTF(VOLUMES, ("%s: bad magic pseg:%jx\n", __func__, blocknr)); return (EINVAL); Modified: projects/nand/sys/fs/nandfs/nandfs_subr.h ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_subr.h Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sys/fs/nandfs/nandfs_subr.h Sat Apr 7 05:41:02 2012 (r233985) @@ -203,6 +203,7 @@ void nandfs_dirty_bufs_decrement(struct int nandfs_start_cleaner(struct nandfs_device *); int nandfs_stop_cleaner(struct nandfs_device *); +int nandfs_segsum_valid(struct nandfs_segment_summary *); int nandfs_load_segsum(struct nandfs_device *, nandfs_daddr_t, struct nandfs_segment_summary *); int nandfs_get_segment_info(struct nandfs_device *, struct nandfs_suinfo *, Modified: projects/nand/sys/fs/nandfs/nandfs_vfsops.c ============================================================================== --- projects/nand/sys/fs/nandfs/nandfs_vfsops.c Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/sys/fs/nandfs/nandfs_vfsops.c Sat Apr 7 05:41:02 2012 (r233985) @@ -95,23 +95,23 @@ int nandfs_max_dirty_segs = NANDFS_MAX_D SYSCTL_UINT(_vfs_nandfs, OID_AUTO, max_dirty_segs, CTLFLAG_RW, &nandfs_max_dirty_segs, 0, ""); -#define NANFS_CPS_BETWEEN_SBLOCKS 5 -int nandfs_cps_between_sblocks = NANFS_CPS_BETWEEN_SBLOCKS; /* write superblock every 5 checkpoints */ +#define NANDFS_CPS_BETWEEN_SBLOCKS 5 +int nandfs_cps_between_sblocks = NANDFS_CPS_BETWEEN_SBLOCKS; /* write superblock every 5 checkpoints */ SYSCTL_UINT(_vfs_nandfs, OID_AUTO, cps_between_sblocks, CTLFLAG_RW, &nandfs_cps_between_sblocks, 0, ""); -#define NANFS_CLEANER_ENABLE 0 -int nandfs_cleaner_enable = NANFS_CLEANER_ENABLE; +#define NANDFS_CLEANER_ENABLE 0 +int nandfs_cleaner_enable = NANDFS_CLEANER_ENABLE; SYSCTL_UINT(_vfs_nandfs, OID_AUTO, cleaner_enable, CTLFLAG_RW, &nandfs_cleaner_enable, 0, ""); -#define NANFS_CLEANER_INTERVAL 5 -int nandfs_cleaner_interval = NANFS_CLEANER_INTERVAL; +#define NANDFS_CLEANER_INTERVAL 5 +int nandfs_cleaner_interval = NANDFS_CLEANER_INTERVAL; SYSCTL_UINT(_vfs_nandfs, OID_AUTO, cleaner_interval, CTLFLAG_RW, &nandfs_cleaner_interval, 0, ""); -#define NANFS_CLEANER_SEGMENTS 5 -int nandfs_cleaner_segments = NANFS_CLEANER_SEGMENTS; +#define NANDFS_CLEANER_SEGMENTS 5 +int nandfs_cleaner_segments = NANDFS_CLEANER_SEGMENTS; SYSCTL_UINT(_vfs_nandfs, OID_AUTO, cleaner_segments, CTLFLAG_RW, &nandfs_cleaner_segments, 0, ""); @@ -746,6 +746,10 @@ nandfs_unmount_device(struct nandfs_devi if (nandfsdev->nd_refcnt >= 1) return; + MPASS(nandfsdev->nd_syncer == NULL); + MPASS(nandfsdev->nd_cleaner == NULL); + MPASS(nandfsdev->nd_free_base == NULL); + /* Unmount our base */ nandfs_unmount_base(nandfsdev); @@ -1124,8 +1128,11 @@ nandfs_procbody(struct nandfsmount *nmp) nandfs_gc_finished(nffsdev, 0); } nmp->nm_flags &= ~NANDFS_KILL_SYNCER; + MPASS(nffsdev->nd_free_base == NULL); + nandfs_gc_finished(nffsdev, 1); nffsdev->nd_syncer = NULL; + MPASS(nffsdev->nd_free_base == NULL); /* * A bit of explanation: @@ -1215,14 +1222,13 @@ nandfs_mount(struct mount *mp) if (mp->mnt_flag & MNT_FORCE) flags |= FORCECLOSE; - nandfs_stop_cleaner(nmp->nm_nandfsdev); - nandfs_wakeup_wait_sync(nmp->nm_nandfsdev, SYNCER_ROUPD); error = vflush(mp, 0, flags, td); if (error) return (error); + nandfs_stop_cleaner(nmp->nm_nandfsdev); stop_syncer(nmp); DROP_GIANT(); g_topology_lock(); @@ -1446,7 +1452,6 @@ nandfs_unmount(struct mount *mp, int mnt /* Umount already stopped writing */ if (!(nmp->nm_ronly)) { - nandfs_stop_cleaner(nandfsdev); nmp->nm_flags |= NANDFS_UMOUNT; /* * XXX This is a hack soon to be removed @@ -1459,8 +1464,10 @@ nandfs_unmount(struct mount *mp, int mnt if (error) return (error); - if (!(nmp->nm_ronly)) + if (!(nmp->nm_ronly)) { + nandfs_stop_cleaner(nandfsdev); stop_syncer(nmp); + } if (nmp->nm_ifile_node) NANDFS_UNSET_SYSTEMFILE(NTOV(nmp->nm_ifile_node)); Modified: projects/nand/usr.sbin/nandsim/sample.conf ============================================================================== --- projects/nand/usr.sbin/nandsim/sample.conf Sat Apr 7 05:32:06 2012 (r233984) +++ projects/nand/usr.sbin/nandsim/sample.conf Sat Apr 7 05:41:02 2012 (r233985) @@ -122,7 +122,7 @@ pages_per_block=64 # blocks_per_lun=[>0] blocks_per_lun=4096 # luns=1..N -luns=2 +luns=1 # column_addr_cycle=[1,2] column_addr_cycle=2 # row_addr_cycle=[1,2,3] From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 06:10:46 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 BFA5D106566C for ; Sat, 7 Apr 2012 06:10:46 +0000 (UTC) (envelope-from andy@fud.org.nz) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id E7CB08FC0A for ; Sat, 7 Apr 2012 06:10:45 +0000 (UTC) Received: by lagv3 with SMTP id v3so3685321lag.13 for ; Fri, 06 Apr 2012 23:10:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding:x-gm-message-state; bh=sR/VpwQHflwZu0Ruoh6v092DVHYHaxYnC0Ez0PlwIMQ=; b=OdJTkUdq1oe7jAXA/BSRacTz9fVJtitl5rgoljAUXYo7gkLDnMl1ue/CB79V0PIp3s UJN3VmLNE2b7W8VyIbxZCMC3wT9Zl8Hon0H2Hli3L2whtXX7ibB+yU7H/Cwn9cyz7EmK WaJTBdW8OAePcDgnAn52XuVt/BC7C1kVd2/MfSzehkSckHY42JFIB/2wDLCbbUzbFrQ+ 51UnRjKnzVtoWLM8nuKuOUKFvFNZdSVS4sDapoEaJ12MAqmsvPTKxPGzTUT2EKMkNVyV gxlGOqlKGQMTlF1LlNP3I6izrMAHcdDYHypxS/87xAcWDhDh3RlrSR2AhxBOp2pLLW9S pJZQ== MIME-Version: 1.0 Received: by 10.152.102.228 with SMTP id fr4mr772527lab.23.1333779044498; Fri, 06 Apr 2012 23:10:44 -0700 (PDT) Sender: andy@fud.org.nz Received: by 10.112.150.72 with HTTP; Fri, 6 Apr 2012 23:10:44 -0700 (PDT) In-Reply-To: <201204070520.q375KFJs044288@svn.freebsd.org> References: <201204070520.q375KFJs044288@svn.freebsd.org> Date: Sat, 7 Apr 2012 18:10:44 +1200 X-Google-Sender-Auth: iK8bJZb3o2krhKf6HSFimfr19M0 Message-ID: From: Andrew Thompson To: Grzegorz Bernacki Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Gm-Message-State: ALoCoQkMsCGhqBlyGqkQqtACSpB78NBibkES4a3MieD9YFByN0pf4/1EsZJqq7/hgXefT4t2hp5E Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r233982 - projects/nand/sys/fs/nandfs 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, 07 Apr 2012 06:10:46 -0000 On 7 April 2012 17:20, Grzegorz Bernacki wrote: > Author: gber > Date: Sat Apr =A07 05:20:14 2012 > New Revision: 233982 > URL: http://svn.freebsd.org/changeset/base/233982 > > Log: > =A0nandfs: Add nandfs cleaner. > > =A0Obtained from: Semihalf > =A0Supported by: =A0FreeBSD Foundation, Juniper Networks > > Added: projects/nand/sys/fs/nandfs/nandfs_cleaner.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 > --- /dev/null =A0 00:00:00 1970 =A0 (empty, because file is newly added) > +++ projects/nand/sys/fs/nandfs/nandfs_cleaner.c =A0 =A0 =A0 =A0Sat Apr = =A07 05:20:14 2012 =A0 =A0 =A0 =A0(r233982) > +nandfs_start_cleaner(struct nandfs_device *fsdev) > +{ > + =A0 =A0 =A0 int error; > + > + =A0 =A0 =A0 MPASS(fsdev->nd_cleaner =3D=3D NULL); > + > + =A0 =A0 =A0 fsdev->nd_cleaner_exit =3D 0; > + > + =A0 =A0 =A0 error =3D kproc_create((void(*)(void *))nandfs_cleaner, fsd= ev, > + =A0 =A0 =A0 =A0 =A0 &fsdev->nd_cleaner, 0, 0, "nandfs_cleaner"); Unless you particularly wanted nandfs_cleaner to show up in the process table you can use kthread_add() to make this a thread of pid-0. Likewise kproc_kthread_add() allows you to easily add all the nand processes as threads of a new proc. There are examples of each if you search the kernel sources. Andrew From owner-svn-src-projects@FreeBSD.ORG Sat Apr 7 06:22:19 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 28A6F106564A; Sat, 7 Apr 2012 06:22:19 +0000 (UTC) (envelope-from gjb@semihalf.com) Received: from smtp.semihalf.com (smtp.semihalf.com [213.17.239.109]) by mx1.freebsd.org (Postfix) with ESMTP id C69FE8FC15; Sat, 7 Apr 2012 06:22:18 +0000 (UTC) Received: from localhost (unknown [213.17.239.109]) by smtp.semihalf.com (Postfix) with ESMTP id 1F636C4B3D; Sat, 7 Apr 2012 08:22:04 +0200 (CEST) X-Virus-Scanned: by amavisd-new at semihalf.com Received: from smtp.semihalf.com ([213.17.239.109]) by localhost (smtp.semihalf.com [213.17.239.109]) (amavisd-new, port 10024) with ESMTP id UbCNazyOwGli; Sat, 7 Apr 2012 08:22:03 +0200 (CEST) Received: from [172.17.136.194] (adsl-66-120-169-242.dsl.sntc01.pacbell.net [66.120.169.242]) by smtp.semihalf.com (Postfix) with ESMTPSA id 4C282C3833; Sat, 7 Apr 2012 08:22:00 +0200 (CEST) Message-ID: <4F7FDD0E.3090106@semihalf.com> Date: Sat, 07 Apr 2012 08:22:06 +0200 From: Grzegorz Bernacki User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: Andrew Thompson References: <201204070520.q375KFJs044288@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-projects@freebsd.org, Grzegorz Bernacki , src-committers@freebsd.org Subject: Re: svn commit: r233982 - projects/nand/sys/fs/nandfs 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, 07 Apr 2012 06:22:19 -0000 W dniu 2012-04-07 08:10, Andrew Thompson pisze: > On 7 April 2012 17:20, Grzegorz Bernacki wrote: >> Author: gber >> Date: Sat Apr 7 05:20:14 2012 >> New Revision: 233982 >> URL: http://svn.freebsd.org/changeset/base/233982 >> >> Log: >> nandfs: Add nandfs cleaner. >> >> Obtained from: Semihalf >> Supported by: FreeBSD Foundation, Juniper Networks >> >> Added: projects/nand/sys/fs/nandfs/nandfs_cleaner.c >> ============================================================================== >> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >> +++ projects/nand/sys/fs/nandfs/nandfs_cleaner.c Sat Apr 7 05:20:14 2012 (r233982) >> +nandfs_start_cleaner(struct nandfs_device *fsdev) >> +{ >> + int error; >> + >> + MPASS(fsdev->nd_cleaner == NULL); >> + >> + fsdev->nd_cleaner_exit = 0; >> + >> + error = kproc_create((void(*)(void *))nandfs_cleaner, fsdev, >> +&fsdev->nd_cleaner, 0, 0, "nandfs_cleaner"); > Unless you particularly wanted nandfs_cleaner to show up in the > process table you can use kthread_add() to make this a thread of > pid-0. Likewise kproc_kthread_add() allows you to easily add all the > nand processes as threads of a new proc. There are examples of each if > you search the kernel sources. Hi, Thanks for information. I think we can use kthread_add(). I see no reason to have this thread shown in process table. thanks, Grzesiek