From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 00:57:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A8FE64F0; Sun, 11 Aug 2013 00:57:01 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 95DFC28C2; Sun, 11 Aug 2013 00:57:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B0v1cX067288; Sun, 11 Aug 2013 00:57:01 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B0v1Ca067287; Sun, 11 Aug 2013 00:57:01 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201308110057.r7B0v1Ca067287@svn.freebsd.org> From: Rui Paulo Date: Sun, 11 Aug 2013 00:57:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254198 - head/sys/cddl/contrib/opensolaris/uts/common/dtrace X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 00:57:01 -0000 Author: rpaulo Date: Sun Aug 11 00:57:01 2013 New Revision: 254198 URL: http://svnweb.freebsd.org/changeset/base/254198 Log: fasttrap_fork(): unlock the processes before removing the tracepoints. In the future, we'll need to come up with new proc_*() functions that accept locked processes. For now, this prevents postgresql + DTrace from crashing the system. MFC after: 1 month Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Sat Aug 10 23:17:09 2013 (r254197) +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Sun Aug 11 00:57:01 2013 (r254198) @@ -502,7 +502,13 @@ fasttrap_fork(proc_t *p, proc_t *cp) sprlock_proc(cp); mtx_unlock_spin(&cp->p_slock); #else + /* + * fasttrap_tracepoint_remove() expects the child process to be + * unlocked and the VM then expects curproc to be unlocked. + */ _PHOLD(cp); + PROC_UNLOCK(cp); + PROC_UNLOCK(p); #endif /* @@ -537,6 +543,8 @@ fasttrap_fork(proc_t *p, proc_t *cp) mutex_enter(&cp->p_lock); sprunlock(cp); #else + PROC_LOCK(p); + PROC_LOCK(cp); _PRELE(cp); #endif } From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 01:03:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 77D50653; Sun, 11 Aug 2013 01:03:33 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 185D22902; Sun, 11 Aug 2013 01:03:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B13WTC070721; Sun, 11 Aug 2013 01:03:32 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B13WJn070719; Sun, 11 Aug 2013 01:03:32 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308110103.r7B13WJn070719@svn.freebsd.org> From: Adrian Chadd Date: Sun, 11 Aug 2013 01:03:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254199 - in head/sys: contrib/dev/iwn modules/iwnfw/iwn6000g2a X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 01:03:33 -0000 Author: adrian Date: Sun Aug 11 01:03:32 2013 New Revision: 254199 URL: http://svnweb.freebsd.org/changeset/base/254199 Log: Update the 6000g2a image. Obtained from: Linux, Intel Added: head/sys/contrib/dev/iwn/iwlwifi-6000g2a-18.168.6.1.fw.uu Modified: head/sys/modules/iwnfw/iwn6000g2a/Makefile Added: head/sys/contrib/dev/iwn/iwlwifi-6000g2a-18.168.6.1.fw.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/iwn/iwlwifi-6000g2a-18.168.6.1.fw.uu Sun Aug 11 01:03:32 2013 (r254199) @@ -0,0 +1,30188 @@ +Copyright (c) 2006-2012, Intel Corporation. +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Intel Corporation nor the names of its suppliers + may be used to endorse or promote products derived from this software + without specific prior written permission. +* No reverse engineering, decompilation, or disassembly of this software + is permitted. + +Limited patent license. Intel Corporation grants a world-wide, +royalty-free, non-exclusive license under patents it now or hereafter +owns or controls to make, have made, use, import, offer to sell and +sell ("Utilize") this software, but solely to the extent that any +such patent is necessary to Utilize the software alone, or in +combination with an operating system licensed under an approved Open +Source license as listed by the Open Source Initiative at +http://opensource.org/licenses. The patent license shall not apply to +any other combinations which include this software. No hardware per +se is licensed hereunder. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. +begin 644 iwlwifi-6000g2a-18.168.6.1.fw.uu +M`````$E73`HV,#`P9S)A(&9W('8Q."XQ-C@N-BXQ(&)U:6QD(#`*```````` +M`````````````````````````````````````0:H$@`````!``````````$` +M``!07`(`(""`#P``0`!I(```:2!``&D@``!I($``(""`#P``Z`!I(```:2!` +M`&D@``!I($``(""`#P``L/]I(```:2!``&D@``!*(```2B$``$HB``!*(P`` +M2B0``$HE``!*)@``2B<``$H@`!!*(0`02B(`$$HC`!!*)``02B4`$$HF`!!* +M)P`02B``($HA`"!*(@`@2B,`($HD`"!*)0`@2B8`($HG`"!*(``P2B$`,`HD +M@#^!``!`02R<,$`LG#!")!PT"B*`/X``(%L*(P`WS@B`!THF`'!I($``2B8` +M<$HF`'!*)@!P2B8`<``6`'"``"0=0'@@($"'`````````````/P`3<.-TU\.!X!-PTW3/PX'@$W##=,?#@>`3<+-TO\.!X!-PHW2WP +MX'@$W"3=*_#@>`3<(-TI\.!X!-P`3<%-TC\.!X!-P0 +MW2'PX'@$W`S='_#@>`3<"-T<\.!X!-P$W1GP-!0:,#`4&3`L%!@P*!07,"04 +M%C`@%!4P'!04,!@4$S`4%!(P$!01,`P4$#`"QP'&L"1-,[`D'S/@?N!XX'C@ +M>.!XX'C@>`HD@/`%($0`X"#!!T0D_H!!*L0`A``"`"\D`O%"(0$!0B`#`>@@ +MH@0$$00"!!$%`@01!@($$0<"!!L(`00;2`$$&X@!!!O(`2P`)0!$(CZ!/``B +M`$0B_(!`(<$`X"#!!T`CPP"H((`!`1&$`@$;"@$@(,`'!!$$`@01!0($&P@! +MU`?A_P0;2`%$(OR`!!$$`LD'[_\$&P@!0B%!`$(@0P"H((`!`1&$`@$;"@$@ +M(,`'SW&@`*PO&(&:N!BAT0!@$@78X'C/<:``K"\8@;.XNK@8H;T`8!)DV`HB +M0(``V>X``0`O)@#P2B9``$X`!@!/`"``BB7_#^!X"B)`@`#9S@`!`&P`)``O +M)@#P7``%`"L(-0A*)D``"'$`V`(AOH#@(,4'0GD!X`(AOH#@(,4'0GGK!^__ +M`>`O+0$`0"5%``(F?/$``"```"A``>@@8@,O(`"`+R%+``(AOH#`((8!PB&& +M`.!^$0`@`$H@`!!*($`0#B)"`"\@"Q+.($6`BB7_#P@`!0`O+0$`0"5%``(F +M?/$``"```"A``4HF0`#H("(#+R``@"\A2P`"(;Z`P""&`<(AA@!*)@``0B#^ +MD,X@@@%$('Z0SB&"`>!^*0```.!X_!R(L?P<2+'\'`BQX.!XX'C@ +M>.!XX'C@>.!XX'C@>.!XX'C@>.!XX'C@>&&]C"7_G^WUX'_!Q>!X\<#AQ<]P +M@`#X'DV`SW6``+2%((6WNKBZ!"&!#P,````'N45Y+:"."B`2`-@`A<]Q@`#< +MJU$@@(),B<]P@`!0PC)J-GG'<8``$+]@@59X08`%\I6[8*&KN@3PM;M@H8NZ +M0:`+C:.X%07O_PNMHL'QP)(,S_]%P<]U@`#X'B>%,'`(]#"5%!0.,3!V!/19 +M'8(0T!4!%C!P#O3/<8``!"(\D104#3$P=0;TSW&``%PB6:F`X@STSW6``,0' +MP8V`Y@#9RB!!`"7R(:V.X@3T`=@A\$$H#0('?4$H`02G><]W@`#$!Z"/4R5% +M$4PE`(3&N8WV"B'`#^MRSW```,T;G]NA`2`!BB2##U$E@)$&\@#8#-Q;!,__ +MSW:``-#!%B9-$:>-H*_)=18E31$`I104`#%&K<=Q@`"0O@*U`(D'K0`90@$` +M&T(!Q/'@>/'`M@O/_PC(SW*@`,@?#AH8@`G(#QH8@`K($!H8@`L2`38"R"1X +M$1H8@`S(SW&```PZ+1H8@`"!`>``H<.XC>`I]`O(?]D*N21X+R@!`$X@@@<` +MV`\@@``$(0&`0B*-`AGR"R-`P!?TSW"@`(@@\"!0`\]V@`#<-@"&$'7/=X`` +MX#8&]`"'$G#D#\$&H*8`'P`4B0//_^!X\<#AQ0'9SW"@`+`?.:#/<8``6!T( +M@0"`K,%)P`R!`(#/<8``X"'/=8``#)%*P`J!H;@*H0B%X+@)\E$@P($'](X( +M``8F#V`"&-B+<:EP?@A@#R3:SW"``,`'((`"B8#@$O0$B5$@`(`.\@O(!""` +M#_[__P,+&A@P"\B&N(RXC[B0N`OP"\@%((`/`0``_`L:&#`+R*RX"QH8,-(. +MS_^+<##9D-H>V\H.8`X8N\]PGP"X_P+9-J`HP('@RB'"#\HBP@?*(((/``#J +M',HC@@\``/P`RB0B`.@'X@#*)2(`.@H`!H#@!_1:"^```-C:"Z`.!MBI`N__ +MK,#/<8``G%K@?PAAX'CQP*X(``;/<8``L!CP(0``0'C/<*``T!N`VE"@SW"` +M`#@=`(!1(`""`-D&\L]PGP"X_SV@T<#@?O'`Z@GO_P_9SW6```C(`!8`0``6 +M`$!5)4X4`*72"*`1!&W)<(X(H!$BE1Z5SW&``,`'VF#88`$0A0!,)0"`0*$3 +M]`*%\+C*(<$/RB+!!\H@@0\``.D(#A +MRB1-<.!XZ"`M`L]QH`!0#"6!`1A2`.!^X'CQP%H)S__/<(``^!X#@!B(I<&$ +MX$H@`"`,]`HAP`_K`X`)@%$@@(`,\L8,8`('V`'8`:7/<*``+"`0@`"E +MSW"``&0Q`("!X`WTSW"``'C'SW$``!`G[@GO_P6`$'@"\`#8SW&``.2H![$# +MA8'@#!D$!##T`(&"X,P@XH`$]`'8`*%,%8`0@>`F],]PH``L(-"`SW`!`-0Q +M0,`!V$'`"!P`-!'80\``V(RX1,``V!#9!-H(*+!\<"B#Z__F')%P4$H`0('>4$H`@0G>L:ZSW6` +M`)"^267GN5UE$_04%`XQSW.``-#!:'(V>N""\7`%].*2T7<'\B>*Y[FG:O7S +M`-@H\,:*@.8'](#?SW"``,0'X:C/=X``3!\%CQ!V!/2`V`6O"O#/=X``7"(9 +MCQ!V!/2`V!FOQHHV>P`<@`,'BH>Y`*W/<(``Q`=`B""H`=A'JPS<

/_^!X +MH<'QP`,2`C?7<@```$`!VL(BB@`7NL=R``X``(.Z['-`H^QR`*+Z#*`$*'#1 +MP.!_H<#@>*7@'_()]H/@%?*$X!?RA>`;].!_`=B]X`_R!O:MX!7TX'\"V,S@ +M#_*,($.'#?3@?P;8X'\`V.!_`]C@?P38X'\%V.!_!]@(V.!^X'CQP.'%SW6` +M`(0OJ7!`)8$;&@P@#R[:`=CA!J__81T"$/'`6@Z/_X+@"'6-]PHAP`_K`X`(@,]QI`"T15$@`(`/ +M\D0MOAL`)T`>;)!+D'M[97I3&9B`#9!4&1B`!?!3&9B#5!F8@T0MOALG=PZ7 +M5AD8@`^76!D8@!"751D8@!&75QD8@!*76AD8@!.77!D8@!2761D8@!676QD8 +M@*((8`@J<&4%C__@>/'`(@OO_^'%U@J`!,]P@`#X'@.`&(B!X"[TSW&```C( +MSW*```Q%`()@@6"@`((/'`@>#AQ0#8 +M"?3/<(``1Y$!W;(*[_^I<:EPF02/_^!X\<"6X.'%`-B,]\]U@`"TA:EPD@KO +M_P39"XV#N`NM`=AQ!(__\<":X.'%`-B,]\]U@`"TA01M;@KO_P39"XV"N`NM +M`=A-!(__\<"DP9#@`-G*($(`$_2+<$H*[_\0V0`4`#&$X,P@8H$(],]P@`!0 +MJQ^`];@"\DQP`=BDP-'`X'[QP)8+C_\(=\]P@`#X'@.`&(B$X!IQ2?*$YP#= +MC``E`,H@10//=H``,)%`)@`3]@GO_P39+HZPKE,A```1KD$HP""@N3!P8@`E +M``(@0@!CO_%R5@`&`(#B#O+/<:``T`\0$0"&8;I88!`9&(`E$0"&#W@#\`^. +M`-E3(((@#R&!`"1X+R8'\,]QGP"X_Q"N&('/(.('T"#A!QBA&(&>N!BA&(&^ +MN!BA`=A1`X__X<3\',B^_!Q(ON'`X<'APN'#_!P(L?P<2+'\'(BQ_!S(L?P< +M"++\'$BR_!R(LOP(P@7((!V.!_ +MPB`+`/'`%@JO_THD0`#/=8``^!X5)0,0`(-`)0X5T7#")`(!\"4-$<@5!19$ +M);Z!"?(*(<`/ZW*.V(VX=0>@`'3;R!`-!J5YR!A8`*"#!ME&><@5`!8D>,@= +M&!``@\@0``:&('^.=`H!$AT"C__@>/'`I@F/_\]S@`#$!@2#@.!$],]V@`!$ +ME!,6`I8`WX0J"`D`(8!_@`!(C`*C)(@!W8#AZZ.LHR+R'1[8DPP0!0`$)8$/ +MP/\``$$I!`;/<8``>,<4$08`!2X^`0`AA'\_`/__!"1!`1X>6)`@D(PA@H8! +MV<(A3@`JH^>C)(#/=H``@)#`N2JVSW:``'0E**Y`K@*(I*,!KB#P!(.!X!ST +MY@\`"0#8!*,"@R2(@.$2]">#'.`V>"2(SW"``"0B!X@0<0'9P'G/<(``<"4@ +MH`+8`_`!V`.C.0&O_P'8X'CQP,H(C__/=8``Q`8$A:/!@.``WR?T^@I```'8 +M!*4"A02(@.!2`@$`SW"``'`E`("`X$8"`@#/<(``6!T0@,]R@`"DD`"`(X(9 +M8<]P@`!@)0"`.&"2#B`0`J*`X!H"`0!V\`2%@N`\]`J%@.`/]`P5!!`0%040 +M"B'`#^MRSW```(H,Y06@`(HCC@M"A2>%0"(`!S9X)HA@P2:(`1Q",":(`AQ" +M,">(8<$GB`4<0C`'B(MQ!AP",)8*8`ZH$@``SW"``%@=$(`@@,]P@`!T)2&@ +M@@^@`.6E`]@$I<_P!(6#X#KT0H4GA4`B```6(42!`@1/RSW&``%@=`Y(P +M@<]S@`!T)2"!88,*N&)Y,'`%]PG8"Z6.\`6%@.`-]`2*@."K\L]P@`"DD+X- +M(!`"@(#@H_(%A8#@!O(%V`NE`=@)\,]P@`!P)0"`@."7]`#8E@B`!Y/P!(6! +MX&_TT@E``R*%1X5`(0`'5GA%B."Z&_*#ND6HSW.``,@ZR8//#?F88&IB#!8A1($"`*_*N"P`0@.`0 +M]`HAP`\"A>MR'!4%$`00A`#/<```BPR=!*``BB,0`)X+(!`"V"X+(!`(V"*% +M!(F"X`KT`=@`I0#8#J46"R`06M@BA02)@>`#]`'8`:4'A1SA%GD%B88@_XS* +M(((/```P0U@-8@3*(2(``H4GA1S@-G@%B(8@_H<$\@+8!*4E\`38!*4A\"2% +MA.$!V!WT#Z7/=H``6!T0AG7:'ML@@,]P@`!T)2&@#-F^"B`.&+L$AL]Q@`!H +M)0"`=@A@`2"!!J7DI038`Z4!V+D&;_^CP.!X\$2(SW"``+P&`)`0<@'>#_3/<(``O@9`D,]P@`"`D`J0$'(% +M],2E`-A*\`2)@.`:\L]P@`!P)0"`@.`4],]P@`"DD".`SW"``&0E`(!2#6`& +M.&"`X`;T\@Y@!P#8`=@P\,2E`=@L\`2%@>`L]`*%SW*``/@>(X)D@&BA(X)E +M@!S@::$GA39X)(@#@@#>-+`"V`39C@OO_\ERSW.``("00H4'A4`B`0<6>0J3 +M)(E$@GH,X`S)<\2E`]@#I0'8X05/_PP5!!`0%040"B'`#^MRSW```(D,]0*@ +M`(HC#@'QP%(-3__/=8``Q`8$A8#@H<$P]`'?SW"``'`EX*``V`^E`*4!I0+> +MR7!^#*`$Z7'/<(``D`8`@":`GA$`!J:XGAD8`,EP`-GZ"N__!-JV"J`1R7#/ +M<(``^!XC@$B!-)%3(@``Y@O@#.ESQ*7I<&WP!(6"X!WT`H4$B(#@%_()A8#@ +M%?3/VT#`BW"&""`.&+L:ANFEA"@("0`A@'^``#B.*X"AN2N@ +M!M@$I0#8!?`$A8;@!O(!V'4$;_^AP`;8`Z4`V-;Q\<#^"T__SW6``,0&!(6` +MX*7!"/0"A02(@.`9]`+8!*4$A8'@5/0%A8#@1O3/<(``6!T$@,]Q@``P1P"` +MI@@@$""!@.`S]`#8-_#/<(``6!T$@`#>Q:7/<8``9"4`@+8-(`$@@<]Q@``P +M1P'?!-H`H<]PH``L($`0!P#/<```/'A`P`780'#P```'TJ"N`$V';DI>EP*_#N".`$!=@$V`/P!=B`X`':!/0!V"'P*86! +MX0KR3*4+I0CP!(6"X!;T"86!X`3T`=@/\(#@\/4"A>()H`0#@`AQSW"``!Q" +M0@G`#P#8O@[`!N+Q`-AI`V__I<#QP/H*3__/=8``Q`8$A8#@I<&K]`*%1X4D +M@%9XSW*``"0B!"&!#P`&``"`X0'99XH@$(X`P'EP=@CTSW>``("0ZI?!BO%V +M!/(`W@;PQHK1$#`!=A!P`'?0L=#QD3&Z7`&V03:`-N8<[AS@@C@!-ASSW"``!A'P*CDI>EP +M'O``V,]Q@``81P"I`MDCI1;P!(6!X`'>$?0%A8#@'?3/<(``I)`C@,]P@`!D +M)0"`Y@A@!CA@@.`%\@'8T0%O_Z7`SW"``!A'P*CV#J`$!=@`V`2EH?$%V`NE +M`@W@!LEP`-G/<(``&$<@J.GQ\<`Z"4__SW:``,0&!(:`X'CT`H8$B(#@%/+/ +M<(``<"4`@(#@#O3/<(``I)`J#^`/`H"`X`;R'@I@!P#8'0,``,]P@`!8'1"` +M1X8@@,]P@`!T)0&``GD"AE9X!X`0<8;W`=@$IO4"````AH#@#/)1(T#`"O(" +MV<]PH`#0&S.@]@S@#Q[8SW:``%@=!(;/=8``Q`8`@(H-X`\FA8#@O`(!``2& +MSW&``&@E`("F"B`!(($&I0*%)X4"(]`*&)X8C"!8$$!P6!1!`)``'%B!``06(42``@$`C`@<:\@#9 +M2B3`<"AUJ"#``?`B0`,!Y1EA`]]*)$!Q`-VH(,`!\"+``P'G'64P=<3W&(N" +MN!BK`-W/=X``I)"EIQ@4``%`)4$`$'$GID?WAQ0`!E$@0(`&\@'8F@\@!PRF +M3O#V">`&"X8+R`0@@`____\#"QH8,$(-X`BKI@+8`Z8"AL]R@`!P)22(@.$/ +M]">&'.`V>,]Q@``D(B>)!(@P<`'8P'@`HBGP((*`X07R`=@#IB/P)X8V>!P0 +M!`#/<(``!(,$$`4`SW"``'C'!8`,'P`1!2A^`4`I@'*0<,HBS@?*((X/``"- +M#,HCC@\``$X%B`-N`,HAS@^DIDD&+_\!V`P6!!`0%@40"B'`#^MRSW```(X, +M90-@`(HCU07@>/'`SW"``'`E`("`X!WRSW"``)PJ`("`X!OT_@@`#H#@"/0+ +MR`4@@`\````\"QH8,#()``Z`X`GT"\@%((`/````U`L:&#`+R)"X"QH8,"8* +M0`;1P.!^X'CQP&8-#_\(=<]VH``X+@>&SW$``"0IJ+@'IKX)(`<-V(#E`-_$ +M#Z(1RB`B!,]U@`#8*D45`18'AB5X!Z;/<(``0"(LD,]P@`#X'AZ0$'$+R$4= +MV!,*\@4@@`\```#4"QH8,`O(D+@&\`4@@`\!``#\"QH8,#H)3_\`A;"X4@V@ +M$0"E@.#8#((1104/__'`SW"``$P3#X"`X`_RSW*?`+C_':+/<8``.!T$@0'@ +ML[BUN+BX!*$6HF(/@`"#X`GTSW"``-Q#8@J`#[()X``%V,]P@``X'0"`[[@& +M\@#9SW"?`+C_/:#1P.!^\<#/<(``3!,/@(#@#_+/"SN+6XN+@$H1:B!@^``(?@"?3/<(``W$,&"H`/5@G@``;8SW"``#@=`(#O +MN`;R`-G/<)\`N/\]H-'`X'[QP,]P@`!,$P^`@.`/\L]RGP"X_QVBSW&``#@= +M!($!X+.XM;BXN`2A%J*J#H``A.`)],]P@`#<0ZH)@`_Z".```MC/<(``.!T` +M@.^X!O(`V<]PGP"X_SV@T<#@?O'`SW"``$P3#X"`X`_RSW*?`+C_':+/<8`` +M.!T$@0'@L[BUN+BX!*$6HDX.@`"(X`GTSW"``-Q#3@F`#YX(X``!V,]P@``X +M'0"`[[@&\@#9SW"?`+C_/:#1P.!^\<#/<(``3!,/@(#@#_+/"SN+6XN+@$H1:BE@Q@``38"B4`@,HAP@_*(L('RB""#P``WP[* +M(X(/``!Y`;@`8@#*)&(`SW"``#@=`(#ON`?R`-G/<)\`N/\]H-'`X'[@>.'% +M`=O/.!XX'C@>.!XX'C@>.!XX'C@>.!XX'C@>.!XX'C@ +M>.!XX'C@>.!XX'C@>.!XX'C@>.!XX'C@>.!XX'@&N$4@S0#/<*``[">FH`J` +M`-L`L7ZRX'_!Q>!X\<">#<`"W@E`$98/`!&`V<]PH`#0&S"@T<#@?O'`:@H/ +M_QIP`=\`$!(!%/!:=1+P%2#`(Z"0`A`1`0'GUW4``/O_\']T]@PB@*\``/__ +M"?+/<```^_]2<.SUB0(/_\]V@`!0'0"&`>"!X`"F"?0!V<]PH`#('#&@:@Q@ +M$2AP!KV!O4`I`"2E>,]QH`#L)P:A`(9"($"``*;<]<]QH`#('`#8$:'6\>!X +M\<#/<(``0"X`@('@RB'"#\HBP@?*(((/``"O$\HC@@\``/,!RB0B`%P'(@#* +M)0(!&@@``-'`X'[QP'X(P!`*"\`-T<#@?N!X\<"&"0__SW"``/@>`X#/LFY)7K/<:<`%$A-H46``8`*NLFX9'I% +M>`ZASW&``!`Z#HF&(/\!6VC/<(``^'],J$^),(E`(!,#AB+_`4.ZAB'_`4VH +M0[GJ":`'+JC:<,]P@`!0'0"``>"!X,]Q@`!0'0"A"O0!V<]PH`#('#&@7@M@ +M$2APSW$(`(<0SW"@`.PG)J`#V`#9,B-5(#IQ3"4`HI0`*@!:<$HD`"`:\$`E +M@0$P>0:Y@;D0OR5_SW&@`.PGYJ%`)H$!,'D&N8&Y$+@E>,]QH`#L)P:A0"14 +M(,]P@`#`*B"`8'D&V))P]@`.`!$E`*7T\ZIP=@A@!8IQ&G"J<.(.(`6*<9AP +M0"A`(1!X$+B!N(>XC+C/<:``["<&H4PD`*`F\DPD0*`4](HEQ`:*)H0((O`* +M(<`/ZW+/<```L!.*(\4-"B1`!=T%(`!*)0``"B'`#^MRSW```*XHBB-&!DHD +M``#!!2``"B4`!8HE@@V*)D(/`-\$VY]SZ7"H(``,8;M`+H(A0"P!`5EA=7D` +M(TT!QW&``/220I&P?0:]@;U<>A"Z17W/FHD*1P+IX>N5Z4']#D0`C +MC0&P?0:]7'J!O1"ZI7K/=J``["=&IB.1P+EX>25X$'AH\4(B0""`X+(&[?]` +M(4$@SW$(`(80SW"@`.PG)J#/<(``4!T`@,]Q@`!0'4(@0(``H0?TSW&@`,@< +M`-@1H:$'S_[@>/'``-B-N#(/H`P&&A@P#,R&(/^*"/+/<(``U#8`B(#@B`]" +M!-'`X'[/<0,`0`W/<*``J"`MH,]Q@`!`"$"!`6H`H<]PH``X+@6`!""`#\`` +M``#7<,`````*\DC8SW&?`+C_&J%;H6G8&+@9H<]R@`"Z"?+&N@JZSW"``,!#R@Q@ +M#UEAT<#@?N!X\<#AQ<]S@``41`:#`X`@@,]P@`#4*ZB(2HA$+3X;`"&`?X`` +M4"M5>$R0:'`*NI(,8`]98!XSW"``-0K2(@JB,]S@``41$0J/@L`(8!_@`!0*S5X3)`B@VAP"KI%!&`/ +M66'QP/X-S_[/<8``>$HA@:/!0L'/<8``^!X5(1```!``(,`0#@:`YB\H@0-. +M((T'6/(2;19X`""2#X``$+\&$H`@SW&``-#!%GD`@2*1CN4('$0PRB!A``;R +MBW(.#B__`L&`X#?R`-C/<8``7`=`@0\@0`,O(0H@!"&`H`"A!O2`XL0((@C* +M("((KWAF#F`$$-D`WP0:Q".*(0@``!I`(*EPZ7$6#^`&#]H`$`(@P!(`!@0@ +M0`3`&A@`SW"``%#"MGC@H.&@SW"``'"^M'C@L!`F3I,O*($#3B"-!ZSU?07O +M_J/`X'CQP.'%"'4$\-X*0`]""V`/J7"`X/KUB07/_N!XH\%`P$'!!12!,`#8 +M@>%"P@WR@N$'\H/A#?0AP0#8#R!```,4@3`/($```A2!,`\@0``&%($P@>$. +M\H+A!_*#X0_T(<$#X0\@0``#%($P`^$/($```A2!,`/A#R!```D4@3"!X0[T +M`A2!,`JY3R$"!`,4@3`,N25Z(<$.N45Y)7@@P8'A"/0'%($P(L(&N0BZ17DE +M>.!_H\"CP>'%0L$)%($P0\*#X4'``-@*]H#AR/8*%($P@.'$]H/AP_8!V`<4 +M@C`&%(,P4',&\B+!,'/,(D*``_0!V"'%@>40]`H4@3`CPW!Q2O8+%((P4'', +M(ZJ`A/:`XLH@:0"!X`WTBB')#\]P@``T!R"@@>7_V*SNK6ZN+I$H%:A +MSW:``(!%SW>``,A5`_``%040`85`+0$")7@@AC!P`_(`IO`G0!%`>(#@\_// +M<(``.!T`@%$@@((&\@#9SW"?`+C_/:"Y`\_^HL'AQ4+!02@"`@=Z02@!!$=Y +MSW*``)"^QKDJ8N>Z$O0(%`,QSW6``-#!J7%6>4"!4'`%]$*1<'(&\D>)Y[KW +M\X#8`_`&B<'%X'^BP/'`SW*``!J_,F@V>3%BHL%`P4'`BW`(V9[:'MLR#V`- +M&+NBP-'`X'[@?N!X\<`(R)6X"!H8,`G(F[@)&A@P"\B*N(VXD+@+&A@PSW"` +M`/@>`X`8B('@#/0+R,]Q``!P*ZRX"QH8,`X/H`8/V-'`X'[QP.'%"'4^B,]P +M@`!L%$"`0"4`%`.Y-7E98?8(8`X*VIH/[_^I<.4"S_[@>/'`I<%!P$+!#!P` +M,1`<0#'/<8``?'XT&<`/,!D`#RP9P`XH&8`.)!E`#L]P@`!\?B`80`O/<(`` +M?'X<&``+SW"``'Q^&!C`"L]P@`!\?A08@`K/<(``?'X0&,`(SW"``'Q^#!B` +M",]P@`!\?@@80`C/<8```'Z`&0`(?!G`!W@9@`=T&4`'Z#!0& +M,,ES`-VV#"`&$!0',,]PH`"T#[R@6@^``\]P``"MWEH(``$(V`#9+@]@!IFY +M009`#O'`Q@C/_L]R@`#X)8#ASW6```Q'#O(`H@"%@.`3].X,8`$/V/8+X`<( +MV`'8`*4+\`#>P**R"V`!#]C&"^`'"-C`I?$`S_[@>,]Q@`#\*0"!'-K/`6(H.`,],]P@`"\!@"02'2`)$03`*P>VP/P&-MBH54B0`UX8`6A +M\05@#2APX'CQP`H(S_[/<(``3!,#@(#@#_+/"S +MN+6XN+@$H1:BSW"``&@&0(#/=H``Q`^@A@0B@P\/``#@!".!#P$````2:61X +M!WV@IIAU!"*.#P```$#/=8``P`_@A0.^9'X]><=_X*4$)`T`!"*"#P```(`& +M(T`#17D"N>1^!".##P(```#&>&1Y)G@O*`$`3B!!!(;A#1I8,`?RSW"```"J +M#I"`X"CRSW"``"0'`(C/(`V07T28.XXH+W`=F`X0'="?3/<:``B"`5>:"A%/`& +MV-OQH@Y@#`8:6#.6#X`%@.`*]`#9D;G/<*``T!LQH+H,H`^I&1B`'1F8@)H-8`P& +M&E@S+0:O_@#8X'CQP.'%SW"``&@&`(`$((`/#P``X"\M`1#Z#N__3B5`%`HE +M`(`-\@HAP`_K#HHCQ0HE`^__3B5$%'_8"KC/<:``T!L3H7_8$*'I +M!8_^X'CQP&(-C_X(=NR(*);/<(``B`:R;RASAB/S#[9]0BL1`L=U@``0OV"% +M[;L(<@+R1&CKN8H@PR\$]!X6D!`-CE$@`("D\N.Y/?3KNQ7R_]@'K4HD`'$` +MV:@@@`,H8@`A@P^``/C&]GL$JRAB`>$O>0"K7?!,(0"AD/8*(<`/ZW+/<``` +M+26*(PL$2B1``'D"[_\*)4`$[KD'C3(B0@0`(8$O@`#XQO9Y"?)$J039`"E! +M!"5X!ZT]\$"I#R!`!&/P3"``I);VC"##K\HAP@_*(L('RB""#P``+B7*(X(/ +M``#D`LHD8@`@`N+_RB4"!.X)[__)<`B6[K@%\@*.":T#\`&."*T`A>NX&/(` +MVD>M2B0`<<]Q@`#XQJ@@P`(X8O9X!!@"!``8`@0!XD]Z`8X(K0*.":TL\$PA +M`*'*(0GR!!D"!`39`"E!!"9X!ZW=\0`9`@0`V0\A000F>`>M`8X(K3D$C_[QP-X+ +MC_[/SW6?`+C__85Y8<]S@`!L!N"CW:7/V.E$!I8@`'8L0./_O'`1@N/_L]P@`!,$P^`K,&`X`#?#_+/"SN+6XN+@$H1:BSW&``,@D&8&AN!FASW&```R1`I%!D1"X!7H" +M'(0P,+HH@00`(;$$``&SW6``,@Z42!`@0?T6@C`!`'8W!T`$`&&&(A! +M'1@0Y@X@`1C8SW"``-0K*(C/<(``9"M$*3X+-"!`#E$@`('*(`$'RB$A#,HB +M@0\``)``RB.A![0.(0W`*R$&SW"``#@=`(#ON`7RSW"?`+C__:"U`J_^K,#Q +MP/8)(``!V,]P@`#8*B"`Z[D/\L]P@`#X'@"`Q!``!E$@0($%\E$A@(($V`+R +M`M@J#P``T<#@?O'`#@J/_E$@@,&EP9@/X@/*(*(`"\B0N`L:&#`Z#J_^`-W/ +M<(``W$,F@".!((&,O1(((`^Y80#9SW:``-@J_!Y`$,]PH``L(/"`SW```%0< +M0,`"V$'``=A"P$/!1,$%V03:`-N8<[ASV'-N""`$`"='$P"&B[@`IOT!K_ZE +MP.!X\<"."8_^42"`P:7!&`_B`\H@H@`+R)"X"QH8,+H-K_X`W<]P@`#<0R:` +M(X$@@8R]D@_@#KEA`=K/=H``V"K\'H`0`-G/<*``+"#P@,]P```,'4#``MA! +MP$+"0\%$P2AP!=D$V@ASF'"X<-APZ@_@`P`G1Q,`AJNX`*9]`:_^I<#QP!() +MC_[/=8``V"H`A>NX!?*2"X`%@.`*\@O(!2"`#P```#P+&A@P+@V/_L]SH``X +M+@>#P[B/X`_R'!,$``HAP`_K`'\HC@$?0`A5$@`((-]"8+@`6`X`GRSW"``!1$!H`#@`"`U@G``!X+@`6` +MX`KRSW"``-Q#.@[`#HH-(```V`GP"(Z)X`GT`(51(("`!?0`V)H+H`>,N,D` +MC_[@>/'`0@B/_GIP@>`!W<(E01.!X`'8SW>``/@>((?`>,@1#@8AAT0FOI'( +M$0,&!/1$([Z!$O(*(<`/ZW)`*PT$SW```,L;BB-'#`HDP`2A!:__!26%$\]Q +M@`!`(EZ7+)%0<0?TSW*``,B;08)0<1KR(@H``.H)(`"I<*H)``#P)T`3Q!`! +M!JEP);G`N1H(X```VH(.0`\+R)"X"QH8,/X+C_ZJ#J`0`=CN"6`*`-CF"6`* +M`MC/=J``P"^I%@"6JQ8!EJH6`I8%>:P6`)8`W:T6`Y8%>JX6`)8%>\]P#P`` +M^`0A`8`$(A``!",1`%IU%_(O*D$`3B*`!\]RH``,+?`B`@!1(@""`-H/(@(` +M!/1%?03P!2*2(`8A@8#K]<]P@`!`(BR0'I<0<0_TSW"``-@J`(`$(+Z/```X +M$`7TR@Y`!8#@*/1,(T"@"_2E%@&63R(`(8:X!GFE'EB0#_#/<(``0"(LD!Z7 +M$'$)\J46`)9%)4$1)GBE'AB03"-`H`GRSW"``$`B+)`>EQ!Q!/)."2`1!=A, +M(T"@"_2E%@"6125!$04A`00E>*4>&)`Z\$\B`"&&N,]Q@`#0*TB!!2!`!`5Z +M`-@(H0&'P!`#!H#C+RC!`$X@C0%7T@A<]R@`#L +MD4AP@"$#`"H,X`T#VB"%SW"``-`Z@"$#`Q8,X`V#V@T&3_[@>/'`H<'/<(`` +M2$D`@+8*H`9`P(MP!-F]VA[;P@D@#1B[H<#1P.!^X'C/<(``T"O@?P:`X'C/ +M<(``O"O@?L]P@`!\!^!_`(#@>/'`1@UO_@#92B2`<.!XJ"``"L]U@`#4+'#< +M`B4"$T0I/@P*(%VV2BSW,"`&P&8Z(!VV6BYJ)")0(>`")` +M#L"@!MI$H,]R`@``!T.@9:#FH`'A405/_O'`X<7/<(``?`?/<8``3!-O@4"` +M@.-/>`_RSW&?`+C_?:'//'` +M*@SO_P#8SW"``-@J`(#@N`;R[K@']`C8`_`!V'()``#1P.!^X'CQP%(,3_ZE +MP5$@@,$"W=P)X@/*($(#"\B0N`L:&#!^"*_^`-_/<(``W$,F@".!((&,OU8* +MX`[Y8<]V@`#8*OP>0!,`V<]PH``L($`0!P#/<```L!Q`P$'%0L%#P43!`=@% +MV03:`-N8<[ASV'"N"N`#`"?'`P"&@+@`ID$$;_ZEP/'`T@M/_E$@@,&EP5P) +MX@/*(*(`"\B0N`L:&##^#V_^`-W/<(``W$,F@".!((&,O=8)X`ZY80/8SW:` +M`-@J_!X`$`#9SW"@`"P@\(#/<```:!U`P`+80/'`_@I@!>'%@.`+\@O(!2"` +M#P```-0+&A@P?@]/_L]U@`#8*@"%Y[@&\J>X`*52"Z`.`-C/<(``0"((B(G@ +M"/*(X`[T`(51(`"""O3/<(``%$0&@`.``(`^#(``:0-/_L]Q@`!\!P4&[_\` +MH?'``=G/<(``T"L@H,]S@`#X0P:#`X`@@,]P@`!8'06`0(!H<-6Z\@C@#EEA +MSW"``,`'((`$B:"X!*G1P.!^X'C//'`F@E/_L]P@`!,$P*`!Q(/-H#@#1(.-@$2$#8/\L]RGP"X +M_QVBSW&``#@=!($!X+.XM;BXN`2A%J(&V`T:&##/=:``%`0*I0F%@.`G\@/8 +M$*4$I<]P@``(RJ((8`\#&A@PDMD#R)"YH!A``'(,X`,`V`F%@.`/\B@5!!`D +M%040'M@*(<`/ZW*,N+$&;_^*(P0&!QK8,P$:/<(``.!W*I0"`42"`@`T: +MF#,&\L]QGP"X_P#8':%%`4_^\<#AQ0AU`@S@`!38SW"``/@>`(#$$``&);@B +M#N``P+C^"V`'!-BN#^`,J7!&#(`,]@F`#"4!3_[QP.'%@N"AP2(!+@`(=<(, +MK_\`VL]RH/X4!H#@SW&?`+C_!O1(OQ@>$Y]'8.;_Z+<"#` +MSW&``+2%4R`"`(8@?P](J1QX":GL\8[A3@`%`,]P@`#X'@.`&(B!X!_RSW*` +M`.B"2'`^#F_^!ME`(@`",@YO_@;9#)*!N`RRO_&$X8WWSW*``.B"0"(`!18. +M;_X$V0R2@+@,LK'Q$]@"\!S8\0`1A_\HE +M(0!1)$""-?0`V<]S@`#4*RBK`=I)JTJKC!U$$`K;CAW"$(?@`MN/'<(0!O*( +MX`[T420`@@SR[!4`$6JX$'B0'000"MB4'000!_!DV)`=!!"4'400DAU"$)8= +M@A!5)<`85B7!%?(,H`T+V@"%B;@`I0'8`:7/<8``^!X`@<@0``:&('^."?0! +M@<@0``:&('^.K`X!`PB.A^`(\L]QH``X+@>!J+@'H:$&#_[QP.'%`-C/=8`` +MY*A*)$!Q)(6H((`"`-L/(P,`"R'`@`/T`>`%\&9Y`@F@`"2E!(6`X"`)X0#* +M(&$";08/_N!X"',X8-6[U;DP,=%@@'@R;@B>GIB +M%KC@?T5XX'CQP,(-+_Z8<@AUSW:``$"&]"9`$,]W@`#`A5$@0(+*($$`RB0B +M=,H@(@#H(&("]"8"$%$B0((#\@'@D.!&``8`+;O`N\]R@`!POK1Z0"N%`F"2 +M!+V&)?@3B;T/(T,`8+(`VA9_0*=!I\.YI7D%(4,!%'Y@ML]Q@`!@AA5Y`!D` +M`0+P@-BE!0_^X'[@>/'`X<7/<8``T(I!B<]U@`"`%8#BSW.``)PJ((,&\@'8 +M`*6"N2"C"?``VD"EHKF`X""CG`_""0#8/@QO_PAQ1@C@`0#8:04/_O'`\@PO +M_IAP`Q(!-@"1(8%`X/2YP""B``/@!""`#P``_/_/<:``U`SW6@`,@?42!`@,]P@`#XQR&``\@/\J`5`A#X%0,08GD" +M(E<`=A`!`2\GR"59803PA!`7`>)Q.AC$!1^%$''%]S!XH@D@!@+9`=G/<*`` +MU``4A%0`#R"&``!`2`4/!N!"8`'(0 +M`0&Z$``!`B$4!FX-X`9$P('@"_3/<(``#!T`D('@`=C`>`RX0L`"\$+&`\C/ +M<:``U`=9@(@9@`"D$`$`V:"X&((#NAB$`[>YI!A```/`]K@(\L]RH`!("$`B +M`",'\$`B`"'/04E52`G:,]S``#\_V1YSW.``/C'8X,( +M(<4`SW.@`-0'%:,`&D`%`B(`)0^C`B5``!NC\*//"F`SW*```"J.V-IH*05`!#X%0$0 +M@'`B>$7``=C/<:``U`L0H0/`-;C`N!>X`""!#P`.``#/<(``^,<"@`*X*^`$ +M((`/``#\_R5X['$`H0$2`3;L<""@SW"``/C'(H#L<""H#<@4(@$`,(GL<""H +M['#`L`/(E!`!`.QP(*`-R/`E`0#L<""P['#`L.QPP*#L<,"@!Q(!-NQP(*`# +MR""05!```1"Y)7CL<0"A`Q(#-@*``@0_R,HMPB\]P@`!0P79X`(B&('\, +M''@$N"5X`O"`V.QQ`*D#R#MV,(@S$(``!+DE>.QQ`*D#R!IV/)#L<""P`Q(# +M-L]P@``\19P3`0%O@R:YP+G`NPRY#;ME>2"@#1(!-@`A@`^``"BJP*C/<(`` +MK*DV>#1ZP+("D,`:A`,5)4$`>!H$`,]P@`#X'@2`&I#0&H0#1L#/<(``^,<" +M@,"A@.#*)XX3'@,N`,HACB/)=`_[@`WNCS+_``WOJXRB:" +M'P```0+YN,HF@A\```("_+C*)H(?```!`H#B"O+/$DHU$A@*!#]!X:6(,=$@"&!QH8,!T2`(9* +MP!T2`88$R""@'1(!AB&@'1(!AB*@'1(!AB.@'1(!AB2@5B4`$AX:&(`=$@*& +M0"\`)%!Y!2$5``02`3:&(O,/`!$2`8PB#(`!@4/`%_(:V!;PSW"``/C'"!`$ +M```0!0`*(<`/ZW)7V,]S``",$]$$+_^,N`#>T?`@V)IP`W`0>'(9!```WDP@ +M`*`#]`/(CO0'R`#!!""`#_$``/`0<93T +M`\CI<`,2`3<0N25X['$`H0K`0"%9,`$:&#`$R`,2`39! +MQ0,:&#`$&E@P(8``D`'%-+G`N31X`^!`Y00@@`\``/S_'64-$@$V!_`5(D`P +M#A``!@)]%2)`,`X0``80=7;W`\S/<9\`N/\8H<]PH`#\1%V`!"*^CP`&``!A +M]$P@`*`,\@3(4(A3(L$`AB+^`T2ZQ!B"`#"HSW"@`!0$Q*`'R,]QH`!(+!VA +MSW"``/C'`H!`(%`@$G`,!`%H;3Q!H&!OP'@!J&P\>"_"/+/<8``/#P%@0'@!:$Z=P/(Z7'( +MN0B(#+@E>`,2`3<0N25X['$J=(0D`I$`H4`A33`;\L]QH`#4!X`9P`0#S"IR +MR+H0N$5X['(`HLRA`=@4&1B`S@\@$`'ESW&@_H0`SW"?`+C_-J`#$@(VDA(` +M`>JX!!(!-@;TDA$#`5$C@((V\JJXDAH$`)(1``&JN)H-(`F2&00`$-G/<*`` +MT`\0&%B`)!`!AL]R@``(SD62,'D"ND5Y#!A8@!39$!A8@,]Q@``(SF>11I$8 +MV1"[97H,&)B`$!A8@,]Q@``(SFF12)$0NV5Z#!B8@`;PSW"```C.RJC/QP(*`!Y<]P@`#XQP*`$'6W +M]\]P@`"HDB20E.'`(88/``"3`,]PH`!H+/`@0`#/<8``/$4@@<]UH`#4!R5X +M#:(#V!*EB@A`#%$G0)(%\IX.K_\!P`;P`]@3'1B0%!V8DTP@`*`7\L]PH``L +M(#"`!<`P<`'=RB6&$P0@CT\@````SW```#45[@H`!8#ES"(X'/<(``$#H0B!"X,B&!#P``V`*?N(#A`=G`>0^Y)7C/<:`` +M_$0-H4PC`*`-\L]PH`#T!V`8P`3/<8``/#P#@0'@`Z'/<(``J)(DD)3AP"&& +M#P``DP#/<*``:"SP($``SW&``#Q%(($`VL]VH`#4!R5XSW&@`-0+#:%,IAX) +MX`X&P!D6`);`X*(`#@`-S%$@0(!+\@/=(!Y8DP'8%!X8D`02`38`%@1`!QH8 +M,0`6!4`!&E@Q!,J6),0B5,@P@"&(/X#1+C$&0(`4*G/`##1("-@3(SW&@`"P@L!```2^!9.`P<,H@A0\2*`@`A/?/<``H"``&&A@P +M`-X-S`0@@`\```((@N`*]`02`3:*(`0``@Z@"9@1`0`-R,]Q@``0JL]R@`#D +MJ!1YP+$FDL]P@`#XQP*`&6$P>2:RK=C/<@"[`+M"#R`'!;@#R!J0<@Y@!PT2 +M`3;/=8``J)($E<]V@`!@O?0F`1`&E3!P%/(&":`%!\@*(<`/ZW($E0P5!!'/ +M_]J\#@>%$@0,/QP.'%)_+/<(``^,H1#8#J$!V!49&(`J"R`00=A1($##$_(!V<]P@``(12"@P@R@ +M#@'8SW&``#0]#8$!X`VABB4($B[PSW&@`/Q$'8$Y@00A@H\````(`-T']`0@ +MOH\`!@``&?(`W?JXRB6"'P```0+YN,HE@A\```("@.(*\L]S@`"X/%"#BB4( +M$@'B4*->"P`0!O`#V<]PH``4!"6@_0#O_:EPX'CQP'X(S_T(=<]V@`"(#0". +M@."HP5CTBW?I<,]Q@`"<2B()[_T@V@'8`*X`V(^X"QH<,`#8%1H",,]V@``` +M`-=U``#^RJ"V!?0'P("X1\#/<*``K"\:@%(@``!1(`"`"/(!EH"X`;8'P(&X +M1\#/<(``"$^@B#H/8`2JKL]Q0W6H$D#!BB$:"D'!*XX$ID;`Z7!CP0T<0C// +M<8``?#Y$P<]Q@`#H/47!(-D!VCW;'@Q@#!>["-@J#F`%`=D"V<]P@`!$)22@ +M(0#O_:C`X'CQP+(/K_TO)`<`@.#/BHZ.CS"$A@`'9RB$A`,]U@`!`(LB-B>87],&#Q!8.%E$F0)$1\LR5 +MOI.Q=@WR@>`*\H#@"?0`@\00``91($"!`_0`V8'BRB$A``#>SW6@`+0/W*7Z +M"6`&B'#/<(``1"4$@%$@@(`1\L]P@`!4.`"`@.`+],]P```6"88(P`2!X`7T +MI@L`"PKP`-F>N<]PH`#\1"&@X'C!H-RE@.=$#&(`RB!B`+X/@`2`X`3T!@]` +M#@3P-@]`#L]U@`!<#@"-@.`&]*8-0`T!V`"M)0>/_?'`L@Z/_<]V@`#4*RF. +M:(XP<\]U@`#8*AIP!?0`A>RXD_)*CL]P@`!D*T`@D0%$*SX+)W!5>`:(@>`H +MKE3T`(7/=X``4"M$*3X+0"*I"@N2JP"/"`X0;RN@Z`!0"%C+@`I0B.1"@^"S(A0"Z!X`'8PB`! +M`*8.X`\*KBB.2HY$*3X+`"=`'E5X3)"`XL]P@``41!/RSW.``$`B:(N)XP?R +MB.,-]&"%42,`@@GT1"D^"S(A02Z!X23R"G$E\"UJ"KDB\$0I/@LR(4`NSW>` +M`%`K@.#*(&(`0@[@#PJN"(Y*CD0H/@LO<3AG57A,D(#BSW"``!1$X_,R(4$@ +M@>'?\T`J@0("<@`"P@4(<`W@:%1Z6Z#J_]#B"` +M``BEQ+40A\6U!J5U!:_]"(7QP,]Q@`#DJ``1!`"X<,]R@``4,4`L@``5>!4@ +M0`$P(@8`3"8`@0OT"B'`#^MRBB#,#'$"[_Z*(\4"3"8`@"OR3"9`@!+R3":` +M@!?R3";`@!#R"B'`#^MRBB`,#8HC10M!`N_^"B6``48*``#1P.!^(@D``/SQ +M3"1`@`/8`O(`H0#8!:$$@:"X!*'&"&```]CN\>[Q\<#/#!P!K+,]@2*@>`&]`6*@>`!V`/R`-B`X(`(`@#1P.!^SW"``%"K()!$(0`# +MB.`T]`#;SW*``.2H9:($@E$A@(&@N`2B'O0$DL]Q@``\J0'@)($0>#!P!++, +M]P2*@>`&]`6*@>`!V`/R`-B`X"P``@#/<(``[#0#@(#@"_(#V`KPSW&``.PT +M`X&`X`/R8Z$$V&4!``#@?N!X\<#//'`4@N/_>X/S__/<(``$*E@@,]R@`#DJ*B`8*+/=H``9#$$@JBB +M`-G`AJ"X@>8EH@2B$O2"X\PCXH`3](#ESW"``.PT(Z`%\I(/S_\)\&(*```' +M\`';8*(HHJ"X!*)A`X_]X'CQP.X*K_T`V,]QH``L(%"!SW:``.2H)([/=8`` +M$*F!X0BE!?0ECH'A`O(!V(#@)?0JAH#A'/(&ADX,K_T.((``SW$``!`G,'#0 +M]\]Q@`!XQR6!F2'-"C!P2O<%\,]P```0)PBE`M@(\`#8"/`)AH#@]O4!V`"E +M`=CA`H_]SW*``.2H)((/(0$`)**I!B``"=CQP%H*C_W/=J``+"`0AL]U@`#D +MJ`>ESW"``(Q"_@_@#0#?`!4%$$PE0(`2\DPE@(#,)>*`/?(*(<`/ZW**($P- +MBB,(![$'K_Z*)(,/!)6`X&SRS@S/_\]P@`!XQP6`*(69(,T*,'`!V,(@#@"` +MX%[RSW"``'PTZ:#7<0``$"=O(`L`@.`2\@2-@>`&]`6-@>`!V`/R`-B`X`3R +M^@W/_T;PSW```(@3"*4^#L__/O`$E8#@&_0EE0B%@>'`(($/``"($P/R&WC/ +M<8``>,`&]`6-@>`!V`/R`-B`X`3R@@W/_PCPSW```(@3"*7& +M#<__!)4%M>2U$(:5`:_]!J7@>/'`SW&```2#08'/<8``>,/'`X<4`V,]S@`#D +MJ`"CSW6@`"P@$(4!V<]R@``0J0:C$(4@H@:BSW"``'PT`X@DJXP@@X8DJ@3R +M):HEJ](+(``#V"$!C_W@>`'9SW"``.2HX'\@H,]P@`#X'@.`SW&D`!Q`"(#` +MN!-XP;@2H>!^X'CAQ0#:2B0`=,]U@`#`A<]S@``XADAPJ"```T`C`0(4>4"Q +M%B4!$$"A0:$!X$HDP',`V:@@0`+/<(``<+XT>$"P`>'/<(``6`=!H,]P@`#H +M@DRPX'_!Q>!X!?!"><=P0````,]R@`!XQT6"4'$W]U,@0P5P<<`@C0]````` +MP""-`.!_(G@&\&)Y`B"`#T````#/,=E@G!Q-_=3($(%.F)0`5A +M+;W`O0/P_]TB"H`$@.`(\L]P@`!`(@B(A^`"V`/R`-C/<8``,)%WB<]R@`#( +MFR&",',$\B""@.$$]`'?`_``W\]V@`#X'B"&Q!$!!E$A0($K\H#E*?0CACB) +MA.$E\OH/P`V`Y\]Q@`!$.QCRSW*``)@'`H(!X`*B`-C/`0H:H-C_V&"8`$@.`.\L]P@`!`(@B( +MB.#,)6&0!O2>#^`-`=@^#(`%C"7#GTGR@.<1\L]Q@`"`%0"!@.`+\@#8`*'/ +M<8``G"H`@:*X4@E@"0"AW@E`#<]Q@`!XQP:!12!``0:ASW>``+2%"X]1(,"` +ME`F"_0N/42"`@-@,P@,V#(`#]@F`!(#@Q`HB`,H@(@:`Y0CR`(;$$``&42!` +M@1'TSW&``%PX!(F`X`OR`XF`X$@*X0O*(.$`E@H@`!78L09/_>!XX<7/<8`` +MA!4`B0';@.!AJ23RSW"@`+`?>:#/<(``6!T(@*.!8(`"@1!U`-H8],]P@`"< +M%0"(@.`#]`'8"O`!@0(C#0#7=4P`0$MY]T&I2'"!X`/T8:%"J>!_P<6BH>_Q +M@.`!V,(@#`#/_^`-J`X`3T$]TN\,]R@``PD4AP(@RO_0S9SW&``(05`(F`X`[R +MSW"``%"K`)"&(/P`C"`"@`;T!9)DDF=X`Z%")0`3*@O@!8AQ"B4`D`STSW"` +M`%"K`)"&(/P`C"`"@`P/P?_!!6_]J7#@>/'`F'"X<9S@RB+&!\H@A@\``.,. +MRB.&#P``@P#``J;^RB'&#TPE@('*(L8'RB"&#P``Y`[*(X8/``"$`*`"IO[* +M(<8/`-K/<8``P'^>NA4A00$`@0$J`@%&>-8.8`<`H='`X'Z=!^__!=G@>/'` +MX<4`W<]P@`#`?TH*+_\.'%SW*``(06((H`W>"Y9-C*($$# +MX;G//'`X<4`W<]PH`#`':"@J7!J""``J7'/<(`` +MA!:CH*2@*0-O_::@X'CQP.'%3@@@``AQ@.``W1_RZ@R@#S+8Y@R@#Q[8SW*@ +M`,@??Q(`AL]S@`"@%C"X(8O$N#!P`=G"(4H`@.`@J\?VK:*!X0/T!-@!J]D" +M3_W@>.'%X<;/CN8#]X#F`O0`WL]P@`#(FWB(@.,$](#F!/0`VP3PPH`$V\]P +M@`#X'@.`&(B#X,P@(H',(.*!S"`B@LP@8H(#\@#8%_`*DA!V!_0+DA!SS"$A +M@/?S`=C/<:``R!\-H.!^X'C@ +M?P#8X'[@>.!^X'C@?N!XX'[@>.!^X'C/<8``P#L2@0'@$J$-R,=P@``$O>2RHSW"``(06`H@0<`N\F(((```V*((```N#X`/`=A` +MP('!VMP")P`3:@Z@#"#:J7`DV;S:'MO^#.`+&+L!V%$>&!`2\(#@$/)."2`) +M5!8`%@#?0,>I<"39O-H>V]H,X`L8NU$>V!/I`&_]J<#@>`S:SW&``-0L`N`/ +M>"<9`H``V"@9`H`+$8"`)AF"@`@1@H`I&0*``>`/>`L9`H#/<(``9BM$*CX+ +M,B!`#N!_*AD"@.!XW=C/<8``\"L$J0N)!^`/>`6I4-@&J6_8!ZF:V`BI"=C@ +M?PFI\<`."&_])-JMP<]Q@`",2\8(;_V$P,]R@`!`(@B*A^!\`@(`SW>``-0L +M"!>!D`H7@Y#/=8``9"M`)9`1`VU$*3X+)W5U?6:-SW:``-@J@>-,`@(`;)+/ +MDE!S"/1`A@0BOH\``#@0+`(!``#=J7(+\$0I/@L`(8-_@`!0*U5[ +M;),!XGUE1"D^"S(@1`Z0$#'$(P"!>`D`J]1"@^"S(@02XO +M<,=P@`!0*X#ARB%B`#5X#)`*N$'`SW"``!1$`H!"Q>EQ@B%#!4/`0"3`,(8, +MH`P-VEX.[_\-V)X.S_\J#8`/`=A$P(7!VMP")P`39@R@#"#:A,`DV;S:'MOZ +M"N`+&+L"V%$>&!"6\`+9SW"@`+`?.:!1%@$6@^$(%X"0N'`G]$0H/@LO<#(@ +M`2#'<(``4"L*(D"`RB)B`!4@@P"D%@(7;)-0$!V<(A00`U>*46`1=, +MD#!RSW"``%@=!_0-@`"`4Q8!%A!Q9/+_V`,<`C!$+3X+,B!!+B]PQW"``%`K +M"KV`X`R0"KA!P,]P@`!8'0F`0L4@@``A``%#P.EQ0"3`,((A0P6B +M"Z`,#=I^#>__#=BZ#<__1@R`#P'81,"%P=K<`B<`$X(+H`P@VH3`)-F\VA[; +M&@K@"QB[`]A1'A@0"!>`D$0H/@LR($(N+W#'<(``4"L*(X"`RB-B`!4@P0`L +MD8'BI!Y<$`'9PB%!`#5X#)"E'AP0SW"``%@=#8``@%,>&!`$\%X,S__5!2_] +MK<#@>/'`;@T/_9@0`@`$(H$/````"#MY!"*##P```!`E>\]Q@`#X'J2!Z;I6 +M)4X45B4/%9@0@0`(\H8A_P-$N2]GB;_I<1GP42(`@KP5`A$,\L*Y@"4"&3]E +MZ(\]93"-97_P?T5Y"?##N3QY/V8^9C".Z(]%>8@8P`-E>5T%+_V,&$``\<#A +MQ0/(I!`!`)@0`@!1(0"`'V"6`"`-JL:"(/ +MP`W/B!*]`T2`3<# +MR.2Y>!`"`2'R42%`@,]Q@`#X'B2!5!$!`0GR?A`-`2)]8GT")$,#*_"`$`,! +MSW6``/"]`"-$`'"(=GU@E0`C#0&$$`,!NV,;\*00`0#TN0CR<(C/<8``\+UV +M>6"1!/""$`,!SW&``/@>)(&`$`T!5!$!`3UENV.$$`T!NV.`$`T!N6%^$`T! +M0GTG\(+@(?0#$@TV#EQ#&)"`V`ZF*0,O_7!X\<"Z"@_]SW&``/@>\"$"`%8B100(@E8B +M!`51(,"`BB`(`,H@(0"\&@0`2B0`<@#9J""`#\]U@`!,4/R*+F7D?B\H@0-. +M((,'SW"``#12;V``)4,`X*M$$H\`Y'XO+H$33B:/%^Y@R*O(@E$FP)`/\AV* +MAN'3(*8`+R@!`$X@C0?/<(``<$ZH8!#PSW:``'10+F;.9;R*Q'U8$HX`Q'TO +M+4$33B6.%\A@$*L!X4HD`'(`VZ@@@0#5@2C@#$>2\I +M00!.(8X'R64L&$(``>-*)`!Q`-BH($`%SW&``&Q.?8H)80`D#``!X&1Y+RE! +M`$XA@P?/<8``<$YI82"LP0$/_>!XX<7AQL]SI`"T12D3`(;/<8``R#K(&0`` +M*Q,`ALP9``#/<*4`"`P#@.09```.$P"&$'HPN-09``#0&8``#Q,`AM@9``#/ +M<(``C*O4B+:(Z!F``WB([!E``PV0\!G``"S@`B""`_09@``"($(#8GCX&8`` +M_!D``,'&X'_!Q<]P@`#D1`:``X`@@,]P@`#.'%X<:8<,]R@`"D +M%@6"(()F@LJX$+C*N04A`8`!@LJ[$+O*N`4C!0!G@@*"RKL0N\JX!2,'`&B" +M`X+*N\JX$+L%(P8`)/(`%`X`+RA!`$X@@P<`V`\@P``2?00@0P&D?F5^`!R` +M`]J"I'[%>WJB>8($((X!!"#``:1[Q7MYHGB"I'L$(4a@8HM_UP<;@?\'% +MX'CQP"((#_TZ<`6!H('*N!"XRKT%)0V0`8$F@`1_!R>/ +MDT''%O2`YEOT:@S@!`K8@.!7\@HAP`_KP3:"O"`X`CTSW"``*`J((!@>0W8"R>`DP7R2@NO_PK8"/"`Y@;T&@JO +M_PK85@@``-RE"-Q/!^_\H\#@>/'`X@[O_`#:SW.``*06.X.Z@P#>#R8.$*1Y +M!"9`$$(@`(#*(&(`+R8'\`'=RB"!``?R'(,D>.8.[__%>*EP$0?/_.!X\<#A +MQ:'!`=A`P,]U@`"D%@J%42``@`SRBW`$V6?:/=O&"J`+%[L*A:"X"J7E!N_\ +MH<#@>/'`8@[/_!IP*'5(=VAV.&-FV3W:"@N@"Q>Z@>`)]`IPX@J@"ZEQZ7"R +M"J`+R7&9!L_\X'CQP"X.S_RFP2AU&G)@P`#8`1P",`'8`AP",`,<`C"+<'8) +MH`>!P8#E!?($P0IP8'T%P@/!@.$.]`HAP`_K/'`S@WO_`'9HL'/=8``I!8:A5N%!'H#>__ +M"G"Q!>_\HL#@>.!^X'@`V<]P@`"\+N!_.*#@?N!X\<#B"0`$SW`!`+A4@.`* +M\L]Q@`"D%K@9```;@9&X&Z'/<`$`)%2`X`CRSW&``*06'J$;@8&X&Z'/<``` +MW&.`X`GRSW&``*06E!D``!N!B+@;H<]P``#@8X#@"O+/<8``I!:8&0``&X&) +MN!NASW```.QC@.`)\L]Q@`"D%IP9```;@8JX&Z'/<`$`+%V`X`KRSW&``*06 +MV!D``!N!F;@;H='`X'[QP.'%H<'/__BB,(``C8 +M`-D>#N__*'(`V+T$[_RAP/'`-@SO_`C9SW*MWN^^+@L@`CIPL@\@`"IP@^!( +M\L]P@`#:$YJCW`>>' +MY[@'Q?\J<,]RK=[OOK8*(`(0V3X/(``J<(/@#O+/<:W>[[ZB"B`"*G`&#^__ +M*G"#X,H@(@#I`\_\\<"*"^_\`]JFP1IP_@E@#(/!`\'/<(``D`\4%`[[Y"P`3""G"`VSX* +M(`*8<]()(``*<(/@0/(#P\]P@`"P#T*%\"#!`,"E@.$,%1`0P:4(\L]W@`"X +M#_`GP!"`X`;TP*7!I0#9&?"$*@P#F@A@`"]P#B"!#P````$@I0/`A"@,(_`G +M`1"""&``+W`.(($/`````2&E!(6!X`WT`(41>(P@!XW"]\"E,7F,(0>-P_?! +MI0#8%0/O_*;`X'CQP*X*[_P$VJ;!(@E@#(MQSW```!O2`-VI<88,8`"I<@#! +MSW```!S2=@Q@`*ER`,'/<(``[`T!PA4@00``D0+!!;I*#6``17D#P(#@W``% +M`,]V@``@"-+8"+@9V4(,8```VL]P```BTD`F`1)R"F``!-K/<```(])`)@$3 +M8@I@``#:SW```"#2A,%6"F```-J%Q\]P```ATNEQ1@I@``#:`H87V;8.H`M` +M)@(2`X87V:H.H`M`)@(3!,`7V9X.H`N$P@7`%]F6#J`+Z7("A@#9>@\@`(NY +M`J8#A@#9;@\@`(NY`Z8$P`#9"+AB#R``B[D(=P7``-D(N%(/(`"+N2*&,7D9 +MX04I?@`CAB]R4'1GA!2E^`"]QS"!%@(;W`\`!Y1!U,@?._P/`$'7&]P'9 +MSW"``"`()*``V-T![_RFP/'`<@GO_`G:J<$(=MX/(`R+<38/[_PAP`AQ0M@N +M#&``!;D,%`0P`,')<`;""B6`#ZW>[[XV""`"`L.2#B``R7"#X"KR`,$%PL]P +M@``T#@#=\"!```3!"KH$(H(/#P``_,FY17GZ"F``J7)6"R`/!=@@%`0P`,') +M<`;""B6`#ZW>[[[J#^`!!\,Z#N__R7"#X,H@0@-)`>_\J<#@>/'`L@CO_`+: +MI\&:<$(/(`R#P<]P@`"P2P"`!]E%P,]P```1TIX*8```VL]P```2T@#9D@I@ +M``#:SW```!/2`-F""F```-K/<```%-(`V78*8```VL]P```!1`?99@I@``#: +MSW"@`+0/MWN^^0L>*<`3!`\(>VYAS2B4``$HF``#Z#N`!2B<``(H.[_^*<(/@W/+/ +M=8``(`@(%180#!43$`[80,!!QD+'BG`$P0/"'MN8*<`3!`\+AVYAS +M2B4``$HF``!6#N`!2B<``.8-[_^*<(/@BO(BA:.%+R#'!<]RH`"T#QRB!,+/ +MP"CP]M5?F"FSW:``*@/ +M57Y@IB+TM@V``PHAP`^`X.MR#_+/<*``_$1T$`0`9!`%`,]P``"Q$WT$[_V* +M(TD*SW```*T3BB.)"DHD``!E!._]"B4``8#@'?1R#8`#"B'`#X#@ZW(/\L]P +MH`#\1'00!`!D$`4`SW```+$3.03O_8HCB0S/<```KA.*(\D,WO$"((`E&6$" +M(8&$#_("(((D#'H2#"``+W`$P@(@`2#/<(``D`]5>""@`B7`)+E@`B%!A`_R +M`B5")`QZZ@L@`"]P!,(")0$@SW"``)@/57@@H`#870:O_*?`X'CQP/X-(``` +MV,]P```-T@#9#@A@``#:SW````S2`-D""&```-K/<```%=+/(/(```VL]P```"TJ#9FKG2#R```-H)V(RX`-G&#R```-H4 +MV(RX_]FZ#R```-H`V(RX_]FN#R```-H1V(RX_]FB#R```-H"V(ZX`-F6#R`` +M`-H!V(ZXSW$``/__A@\@``#:SW````O2`-EV#R```-K/<```#=(!V6H/(``` +MVL]P```2T@#96@\@``#:SW```!/2`-E.#R```-K/<```%-(`V3X/(```V@#8 +MT<#@?O'`1@V/_*/!BW$!W;(+(`RI83@S"!B@68/(``/V`#8\02O_*/`\<#AQ:'!BW'N"B`,`=K/=8``[($` +M%`0PSW"``)`-0"4!'Q+:Z@T@``#;`!0$,,]P@`",#:EQ`=K6#2```MO/<(`` +MM`TD;1S:W@T@``##`-BA!*_\H<#@>/'`"@RO_`/:H\&Z<)(*(`R+<0'!SW"` +M`#P.`-_T($X``L'/<(``5`Z`YO0@5`#/<(``(`C@H.&@S":BD,PF8I',)J*1 +MRB7"$P+T`-V!YLPFXI#,)N*1S"8BD@/T`=V$YLPF8I+,)J*2S";BD@+T`MV& +M#<__JG#/[[ZB"N`!R7%B#N__JG"#X';R`,"`X,P@HH%0](#FS"9BD,PF +M(I%*]`+`@.!(],]P@`"0#[5X6G#@H,]P@`"8#[5X>G#@H,]P@`"P#[5X&G#@ +MH,]P@`"X#[5X.G#@H,]P@`"@#[5XX*#/<(``J`^U>."@JG#)<<]SK=[OOBH* +MX`&I`RAJG"I<[[[>">`!BG-.#Z__JG"#X!+R +M`,#/<8``(`A`@02^!KC88!4@``7'<(``])(A@4*P([``V.4"K_RCP.!X\<"D +MP8MQ'@D@#`3:`,`!P02X-7C/<8``]`T0868-(``"P0#``<$$N#5XSW&``!0. +M$&%2#2```\$`V*3`T<#@?O'`H<'Z"R`"BW(`P*'`T<#@?N!XH<'AQ>'&N'#/ +M<(``R)L0$`8`SW"``$`N!8"8<8#@H<&&)/D`NC0&T?;IB%7K/<8``N)1(8=1^"'.&(_T/>WLZ8D&*97A(]UE +M%27-$;YAPHYE>LESAB/]#WM[N6$CB65^*'.&(_T/3"0`@'M[97D3\L]UJ@#@ +M!W.%42,`@`;R2*4)I2JERZ40\`BE2:7*I2NE"O`)ND5XSW*G`!1(`Z()N25^ +MQ*+/<8``C$4`&8`!SW"``)1%`!A``<]P@`"010`8``&AP,'&P<7@?Z'`\<`^ +M"8_\Z@B``X#@J`K!`@#>%_!PW`(E`!-$+CX7+W?>#N`,)W!")0`>U@[@#/A@ +M`-D`)H`?@`!"+""H`>;/=8``U"QK%8"0$':F]\]P@`#`0ZX.P`S/<8``V"H` +M@:&XKKA%`:_\`*'QP,]Q`((!`,]PH`"L+SR@SW"``%0X`("`X`STSW"``*08 +M`(""X`;R9@]``]'`X'ZR"T``:@B@!6_8@.`'].H*X`X*V)X+0`#R\?+QSW*` +M`%0X(((&>>!_(*+@>,]R@`!4.""")7C@?P"BX'@$*(`/```OND(IPG10>D0J +M_@("($`.$'B`X`3R`>)0>H/@0+$#]H#@`_0`V`+P@-C@?N!XM04/_O'`*@B/ +M_#IPSW6``%`=`(4!X('@`*4*]`'9SW"@`,@<,:!B"N`.*'":#B`%!]@:<,]V +MH`#L)^N&F@D@!RIP"Z8`A4(@0(``I0;TSW&@`,@<`-@1H6X+(`4*<#$`K_SI +M]L*)$`$X02O_0HE``3QP#8/3_P(=SIQ@.(:S?=(=?0G@!,5(8$C4@_O +M_PIR8;V`Y0'F-O=M!T_\X'CQP`H/3_RAP0AW@.(:<0#>S_=(=?0G@!,>""`` +MBW$`P!0@C"-AO8#E`+0!YC3W00=O_*'`\<#6#D_\H<$:<,]V@`!0'0"&`>"! +MX"AU`*8*]`'9SW"@`,@<,:`&">`.*'`^#2`%!]@(=QX(H`.SV(#@%?*+<:(+ +M;_T*<``4`#$`I0"&0B!`@`"F!O0`V<]PH`#('#&@"@H@!>EPU09O_*'`423` +M@/'`!?(J#\__`_#B"```T<#@?N!X42/`@/'`!?)"#\__`_#Z"```T<#@?N!X +M\S?=(=?0G@!/P(8$C5@_O_PIR8;V` +MY0'F-O>Q!4_\X'CQP$X-3_P(=X#B&G$`WLWW2'7T)X`3&@@@`/0@@2-AO8#E +M`>8W]XT%3_S@>/'`'@U/_!IPSW:``%`=`(8!X('@*'4`I@GT`=G/<*``R!PQ +MH%(/H`XH<(X+(`4'V#IP;@Y@`Y/8@.`9\K!]0"B/(8&_$+VE?\]PH`#L)^:@ +M`(9"($"``-D`I@;TSW"@`,@<,:!2""`%*G`5!4_\X'C/<8``^!XC@<]R@`#4 +M!S(A@P\``!\#`:(R(8$/```9`V&R2'`@L@C9<]H>V]4`(`L8N^!X\<#/<(`` +M^!X#@`F`42!`@.!^X'CQP%H,3_P( +M=2AV((5"(0&`RB%B`(#A`-@%\OX)X`RI<`'8)(6`YM`A8@#/(2(`T"$A`,\A +M80"`X"2E-`GB#,H@0@.%!$_\X'CQP!(,;_R*(@0.SW"``)`&`(#/=H``T(HF +M@$`F`!2:">`+!.$!AL]U@`#X'B*&R!T8$,]R@``D(LD=6!`AEB>J((X$((`/ +M``8``(#@`=C`>"&J!JH`WC((H`G)<,]P@`!5'?X/[_[`J&8-0`.`X`KRZ@U` +M`X#@!O1B#B_^R7`7\`+8X@J@`0'9-@F@#@+8(X5(@3214R(``&X*X`D!VP#9 +MGKG/<(``^"4@H-4#3_S@>/'`L.#AQ0AU@_:YY/'`+@MO_)AP08'DNK")._)RB<]V@``0O_)M +M]G_F9C3*]KX($84`22#```CRSW:``%#!MG[!C@/P`-['<(``4,&V>`2("",# +M``@C@P,`(T`!22##`Q9M=7C/I(6XA0&` +MI7@$((`/````"`9[`O!C@>B[F!G```#="?*D$0```-V7O9&XE+BD&0``420` +M@!SRSW"``/@>Q(#`NLB&!":.'P!````^OA[FV'I%>_Z[F!G```WRI!$``(4E +M`12,N)&XI!D``)P90`,=\/^[$O*D$0(`A24!%):]F+V-NI&ZI!F``)P90`,D +M@!"!GK@0H0OPE+V6O9P90`,D@!"!GKB?N!"A@0)/_.!X\<`."F_\`]C/=H`` +MN"H@AD!Y@.!M\B"&8'D$V(#@:?(@AF!Y`-AGN(O@"O0!Y`-A"\,]P@`#`*B"`8'D!V(#@`=C`>#CPSW6``,`J((5@>0'8@>`1\B"% +M8'D!V(/@"_(@A6!Y`=B"X`?R((5@>0'8@>#>]0'8'O#/<(``P"H@@&!Y`=B% +MX`'8P'@4\,]P@`#`*B"`8'D!V('@`=C`>`KPSW"``,`J((!@>0'8@^`!V,!X +M@>`7\B"&ZW5@>0#8&G#/<(``P"H@@&!Y`=BX<#?8"B'`#ZERE-O)!F_]"B0` +M!(4!3_S@>,]P@``,D2`0@`"!X,]Q@`#$!@OT`-K/<*``M`]!^SW"```R1(!"``('@SW&``,0&!?0"V`2A`_`!V`6AX'[QP,]Q@``8 +M"`"!@>`.\@HAP`_K#/<8``Q`8%]`38!*$#\`'8 +M!:'@?O'`SW"``$P3"H"`X`_RSW*?`+C_':+/<8``.!T$@0'@L[BUN+BX!*$6 +MHL]P@``4"``0!`#/<8``&`@`$04`3"0`@,%V!?RPN//:+/$O>83A-*@#$@(VC/;/<`,`A`"@&@``BB`(``8:&#`+\(H@$``&&A@PSW`" +M`80`H!H``.!^SW.@`+`?`=I9H\]S@`!8'6B#@.!@@P7R(GMP<(/W`-@"\$AP +MX'[@>,]RH``L('""@.`*\@(C0@#7<@"````&]U!PAO<`V`7P<'!^]P'8X'[Q +MP%8.+_R8<*7!*'>X!".`#_\````8N@5Z;WD(N?_8"+AD>"BX!7E%>0C= +M]"2``R=X1,`V"N`,$!0`,1(4`C%AO4`H`00%>4=Y1,$0%`(Q%"2`,X#E0+`! +MYBGW4R7"!4"G`!0-`0?9!_`0?10G3!``M&&Y%"1`,+M[3[T`D*5[@>%P>WA@ +M,O<$((`/````_Q"X!7I`IR4&+_REP.!X\<`V"```]@@```H)``#1P.!^X'C/ +M<8``="5`(0`#52'"!5!P1O<`V0084`!0<+WWX'[@>/'`.@R@!@#8<@\O_0#8 +MSW"``&!$2@A/_<]P@`!`1$((3_WJ#(_^$@V`"`#8I@L@`X#92@F`#)8-@`** +M"\`,!@C``8X(``,`V.(*[_X(<<]P@`"$%@"(42"`@`CRSW&@`,`=`(&@N`"A +M&@L`"^((``.J"J`!_]@^#T`!BB"%#PAQM@J@!0ART<#@?N!X\<#Z#"_\BB#_ +M#\]UH``X+L>%!Z7/<*``5"X+@-.X!B8`<`\`__^""N`-%MG&#\`!QZ4U!0_\ +MX'CQP'8+H`8!V*X.+_T!V&(.@`[1P.!^X'CQP.'%`-W/<(``7`>@H,]P@`#H +M@JRP,@K@#*EP2@T/_=X/X`NI<)(*``3B"L_]J@Y``8H@!@H(<2(*H`4(<@H. +M;_RI<.(-3_S5!`_\`-G/<*``["``I0GT`=G/<*``R!PQ +MH"X.8`XH<`"%0B!`@`"E!_0`V<]PH`#('#&@G@D``3D$+_RDP/'`H<&+<+X* +MX`T!V88)``&AP-'`X'[@>/'`H<&+<&H*X`T$V0#`42!`@-@/H@;*(*(``,!1 +M(("`8`K""P#`42#`@+@)`@<`P%$@`(&<#L(&,@_@#`'8SW&`KN`!['`@H`'( +M['$`H<]R@``4@(HD@7T`V:@@``+P(D,`['!@H`'A5@D@`0#8H<#1P.!^\<#A +MQ:/!`=A`P,]U@`"D%JEPZ@G@#5S9]@G/_CJ%&X4D>#R%!'F!P$H*+_]!P0'! +M&X4D>$'`525`'\X*+_^I<<]P@``<&,(*+_]`)0$;BW"N#^``!-D6"R__`<`` +MA8#@!?0%A8#@,`P!_UX)S_XY`R_\H\#QP.'%SW"``-!(`("BP4'`@<`!W:X) +MX`VI<4#%BW!N#^``!-D-`R_\HL#@>/'`H<&+<)()X`T!V0#`42#`@2\D!P`` +M'``Q#/('$@4V"B'`#^MRBB#%``$`;_TGVW(-H`%`V#((``$.#D`'H<#1P.!^ +M\$''`?JEP.@G@#0/9!@@``8#F`_("A0+P`(6- +M`B_\`Z7@>.!^X'CQP.'%SW6``"@=J7#2".`-$-D`%0003"1`@!'R3"3`@!_R +M3"0`@1/R"B'`#^MRC]B-N)C;>0)]>!!R^?=1 +M(P"`"?(`%@!!`_``V!4AC```I`'BA>*Z]P/,UW````!``=C"(`H`%[C'<``. +M``"#N)VXG[CL<@"B`1("-NQP0*#"#N```HFAP-'`X'[@>/'`X<7/=8``-`BI +M<"8/H`T(V0"%SW&@`+@>`J$!A0.A'@[``+D`#_P5!L``\<"DP8MP`@^@#1#9 +M`\S7<````$`!V,(@"@`7N,=P``X``(.XG;B?N.QQ`*$!$@$V['`@H`#`42`` +M@`/`!O0"P28-(`$`V@7P^@Y@`@'!"@[``*3`T<#@?@D````%````\<"R#<`` +M406`"^!X\<#AQ;3!BW6I<,X.H`T4V0#`AN#,(.*!!O1F"&`#J7`(<23P@N`' +M]`8)8`.I<`AQ'/"!X`;TA@I@`ZEP"'$6\(/@S"`B@@?TH@\@`ZEP"'$,\(3@ +M!O2B"&`#J7`(<0;PB>`>](HA1``#S-=P````0`'8PB`*`!>XQW``#@``@[B= +MN)^X['(`H@$2`C;L<$"@6@W@`"APL0?O^[3`"B'`#^MR?-B-N'?;B[M*)``` +MO00O_0HE``'@>/'`X<6BP8MUJ7`6#J`-`ME""F`#J7#:#,``=0?O^Z+`\<#R +M#L_[`!800*'!3""`H,HAQ@_*(L8'RB"&#P``CPS*(X8/``",!.'X``1(YF#&`,!&[/<(``*)`: +M@!)P$/(D%H`0@.`C\JEP!-F9VA[;T@J@"AB[`-@D'@(0&?#'=X``.(X+AX&X +M"Z?/<(``Q`8O@(#A`=H$\D2@!-@'\`#9+*!)H"2@!=CF"8`#J0;O^Z'`\<#A +MQ<]P@`#X)0"`!""^CP#````(],]P@``@C`"(C"##CP7R]@NO_0'8SW6``-"* +MJ7`:#:`-4MFR#(`'W@O@`*.%C@P@`:EP"''/<(``L$`F#$`,_MG/<(``((Q= +M!N_[(*C@>/'`SW"``,"0W@R@#0W9J@O``&(.0`;1P.!^X'CQP*X-[_L"V:+! +MP@R@#8MP`Q22,$PB@*"/]@04A3`*(<`/ZW+/<```A`R*(X4),0,O_0HD@`0" +M%(`PSW:``,0&A"H(*2]W(!X"$,]P@`!@A3/=8``2(Q` +M)1$2_66+<*EQI@M@"P+:0"4`$NH+H`U")($A`">`'X``2(P($`4`SW"``'C' +M!8!3)4$%$''*(<8/RB+&!\H@A@\``(4,RB.&#P``A`&``B;]RB2&!'8,H`=* +M<$HD@'``V:@@@`2$*0@)+W`R(`(@@.()\@@5!1`P(00@#"1`@17R`>%`)@`8 +M>@G@``39`=D,&T(@AQ4`%H"XAQT8$`8/8`,H<,T$[_NBP`HAP`_K.!^X'C@?N!XX'[@ +M>.!^X'C@?N!X\<`6#._[!-FCP0#>0L;&"Z`-BW`#S-=P````0`'8PB`*`!>X +M`""!#P`.```&%``Q&W@3X`0@@`\``/S_)7B=N)^X['$`H0$2`3;L<""@`,'L +M<""@!!0!,>QP(+`&%`$Q['`@L`84!#%1)`"`#/(!$@4V"B'`#^MRSW```$\F +M.0$O_6G;&@[@`P'8`L$`Q25X0L#/<*``+"!`$!``P+T!Y0+P`>8&%``Q$':` +M``H`@N4$%``Q@L<6]!MX$'CI`'@$'C:#N`# +MJ7+L<0"I"/#I<8/@`#1 +MP.!^X'CQP*7!BW`&":`-!=D`P%$@`(`5\L]P@`#X'@.`&(B!X`WT`-B:N,]Q +MH`#('P^A`<"D&0``P]@:N`ZAH@^``*7`T<#@?OD`8`8`V.!X\<#/<(``(#AZ +M"*`-*-F"#X``T<#@?N!X\<#AQ0`6`$""X,]U@`"D&`"E'_0`V<]PGP"X_SV@ +M'-D5\,]PH`#(.S:`1"$"!S:`AB'_""5Z-H"&(?\(17G/` +MX>OU*@^``""%A.%>``T`,R9!<(``9$A`)X!R-'@`>#@0!`!8$`4`"B'`#^MR +MSW```)DAO0;O_"_;-@]@`U3842!`@!/RSW&``%0X`(&!N!(.X`T`H0GP1@UO +M_@'85@J``P/PZ@^`!&4!S_O@>/'`+@W`"+H.@`#1P.!^X'CQP$8+8`D`V,]P +M@`#X'L@0`0;`N8'A`=G`>1(*X`T\$(``T<#@?N!X\<#AQ<]U@`#X'@"%Q!`` +M!E$@0($-\@HAP`_K#F`,`=C/<(`` +M0"((B(?@'O0!A<00``91($"!&/(&"T_]SW&``'C'!)`E@0JX,'`.\@HAP`_K +M/'` +MV@M@"0#8/@W/_,]Q@`#DFP*)6@G@#2")T<#@?N!X\<"BP8MPP@Y@#0C9`,"` +MX,]Q@`"@.`"A!_(&%``Q`[$$%``Q`K&N#8``HL#1P.!^\<#"#Z_[@=BAP6#` +M`\P`W\]V@``4"`(`#H0'8`O`"V!IP`,!Z""_\"G'/=8``K#@#$@$W7I6!V&"& +MX@_@#0HD``3/<*``+"`0@$`=0!1,(("@$:5('0`43?(`AHC@$_3/<(``;$/Z +M#``,6@IO_A38:@K@!`38X*;/<(``&`C@H`#8A>`#\@#8"/#/<(``&`@`@(3@ +M^?4!V"\F!_`.\LX+H`,4V(#@"O3/<(``4$,F@".!(($>#0`,`(:`X`/R`-@( +M\,]P@``8"`"`@.#Y]0'8+R8'\`7T.@C``H#@"_+/<(``X`<`@"\H`0#6#6_] +M3B#`!P4'K_NAP/'`G@ZO^X#8H<$#$@$W8,#/$ +M*!\`,B9%'@`F0!Y,)0"``*$-\@HAP`_K">;V\$"[_R*)(,/SW&` +M``2MP@H@"ZAR`(^$*!\`-"%!+L]P@`#AJR`!8`00'A&[)@CX0K'P``(8!_@`!,K4.(4'&,!^7_+W4`)8$?@`#(LP`E +M@A^``$BT6@Q`!WH(;_X4V((/H`0$V$"/`*)(,/'0'O_$HE``#@>/'`X<4@V\]QH`#('&FA`!8`0,]RH``0%`RB`!8% +M0`'=3"4`@,HAP0_*(L$'RB"!#P``+"7*(X$/```)`=0`X?S*)$$#&!I``6@9 +M0`$#V`^BN:%JH?H(@`"5`X_[\<#AQ:W!BW6I/'`V@JO^PS9 +MK,':"6`-BW``%``Q@.`P],]U@`"X*B"%SW:``(0O8'D`V(S@0"2/,!#R((5@ +M>0#8D.`,\B"%8'D`V)'@!O(@A6!Y`-B2X`;TZ7#)<1C:!?#I<,EQ+MHF"``+ +M`=A@'@(0%X:`X`P,X?O*("$``!0`,8'@$_1`)(`PSW6``(0O0"6!&_H/X`HN +MV@'8-X5A'0(0@>'@"\'[%@B``*$"K_NLP/'`)@JO^Q?9M\$R"6`-BW`CP$HB +M0"!3(-``AB#^`TP@`*1"*!$!#!P"-(_V"B'`#^MRO +M_`HE``1(%`4P(,!`*(X@SW6``!"_UGY1(`"`P&5!+4\#P+^^9H8@]P]>](#@ +M#?0*(<`/ZW)SV(VXBB//!%$'K_P*)``$BB!/!0IQ6@_@!*AR`<`"P0IR!@VO +M^V9N@.`]\NEP4@Z@#0IQ#12`,(4@P0`-'`(PBB#_#U/``(:IN`"F$L"&(/L/ +M*+@/KDHD`'0`V:@@``/_VKAA0"B#('9[$N!X8$"H`>$*<$X-H`V+<<]P@`#X +M'O`@P0/`$0`&#R``!,`9&``/CH'@!_2`Y\P@HJ/`"`(.`=\"\`+?<@A@`@IP +M!_"`X,HG@13*)R(2@>=0`@(`((;/<(``^!X#@!B(*'6!X(8E^Q\1\FX+@`*` +MX""&&O+/<(``0"((B(?@%/1!*4`#42``@`[R$\#HN!+""O*&(OL/02H$`D^. +MD'($\JBX4\`3P!+"!GE$>"5X@.4`IH8@^P\+\H#@RB`!!,HA(0`\"J$#RB+A +M`PX>0A0`V,]Q@`!0PA8A`01`A@"A];H!H07T`-B+N`&A]KH%\@&!12``!@&A +M]@KO_(MP#12`,%$@0($A\E@4`#$%MEH4`#$&M@66@.`9\OH*@`*`X!#R!I91 +M($"`"?(J#:_\"G!:"``.!=@2K@#8!;8'\`IP`-F^":`##]H-%(`P42!`@'[R +M4!0%,0*6'MHO(4H!,'DD>"\I`0`"(D``$'A`*`$A)7C/<:``P"^B$0&&$'@0 +M\"\M01`"(D,#`-T/)`A4!X`"NHZZAIJ*FI*:EIKBNN:X!P+JN +M`L$'I@/`**8)IH'`/@T@#0'9`<`'IGIUB_""P"X-(`T"V0&.`\$!W^.N`>`! +MK@+`*:8(IFH.K_N+<@0@``4O)`>@`MDCK@*N`,$AIF_R$FD6>,]R@``0OP!B +M2B$`(`\A42`MN%,@$`"*(%0%B@O@!`IRSW&``%P'0($O(DHD^*X0'D`4!"*` +MH!0>`!0`H0/9(ZY"I@.F!_2`X@7RX@B@!"#8^:X%V`.N(,!Z#N``$-D`P#)H +M-GD`(8(/@``0OXHA"`"BLB"B!MDCK@#9(@]@`P_:`,*`V1)J%GC'<(``$+\H +MJ"FH!]@#KL]P@`#X'O`@``3/\`0`08$(8$$P!A8``#9(*//<(`` +M<+XAHU1XE@W@#:"P@.`'\AH-P`T(V`.N^JY`(U,@(/'`BB!5"P#9>@K@!"AR0@_`"I8*0`#1P.!^X'CQP.'%`!8- +M0`/,`=K7<````$`!R,(BB@`7NL=R``X``$8((`M3)0$0425`D,]Q@`#(.@'8 +MRB`A`/$$;_L`H>!X\<"AP8MP=@L@#0'9`!0%,$PE`(`+]`HAP`_K/'`Z@H`!\]P@`#X'BP0A`!,)`"!"?3) +M$``&42!`@07R@@W``1#P3"1`@`SRSW"``$`B"!"%`$PEP(',)6*"!O3*#H_[ +MT<#@?@HAP`_K8+]P0DA"\````D#"2` +MCP```"0L\H+@5``-`(+@!O2`XB;R@N8D](#B!?+,X4``"0#/<(``P"H@@&!Y +M!M@0=A;WSW"``/@>\"#`!,,0``8!V00@OH\`!@``!"2`+P````C"(4$`*[@0 +M<43W`-@#\`'8#W@#\`'?Z7`$)($O`0``P"ZYSW*``#1:*6(P=P'9PB%-`(#@ +MS"$B@!CR0B%`((#@(`?M_P'E`A"`(,]Q@`#030AA@>`<\@HAP`_K\"#`!.MRBB-8#\,0!`9XV(VX50=O_`HE``4#$(`@ +M"&&"X`GR"B'`#^MR>MB-N(HCF0(2\>X/8`U*<,]P@`#PO18@@`0@D,]R```8 +M%0DA@0!6#R``(+"M`6_[HL#@>/'``!:!0,]P@`!<12"H`!:$0``6@4#/<(`` +M944@J``6@$!0)+Z!RB'"#\HBP@?*(((/``#:%,HC@@\``($'S`9B_,HE(@#/ +M<(``O`8`D(#@!?(:"4`--@A`#>X.``#1P.!^X'C1`^`,`-C@>/'`!@EO^P#9 +M2B0`ET@K@#3_8 +M`,`$%`$Q!Z7N#>`,@KD<'0`4#@X@``$:F#.-`&_[HL#QP`#8:@T@``02@3`$ +M$H4P"B'`#^MR.-B*(P\!I05O_$HD``#QP.'%SW6``-@JJ7"`(``X,/VCN#)]@HAP`_K2FMSW>``&0K52;`&$0I/@LG<,8-X`P+V6F-`V]$ +M*SX+,B!`#HK@RB')#\H@B0\``-$;RB.)#P``:@&J`"D`RB+)!X+@RB'+#\H@ +MBP\``-(;RB.+#P``;`&*`"L`RB++!X'@`=G3]D(@1``*)`!Q*'"H($`#1"L^ +M"P`G01X5>4:)(HDP`/>,H(0`*`X!WRSW"``$`B"(B)X`?RB.`5]`"& +M42``@A'TU@C/_(+@!?+.",_\@>`)],]P@``41`:``X``@%(/3_W>"P``:08/ +M^PHAP`_K!D%H`4!V.!X10#@"`'8 +MX'CQP/8(8`+AQ8#@SW6``-@J#O0$%000"B'`#^MRSW```+X;BB,&!$4#;_RX +M`(#$$``&42!`@1OR[!4`$<]Q@`!XQR6!"K@P +M<,HAP@_*(L('RB""#P``Q!O*(X(/``">`,$'H`P!V.!XN0&@ +M#0'8X'CQP*'!`-E`P0`6`D``%@!`@>(:\@/,UW````!``=C"(`H`%[C'<``. +M``!%(``#G;B?N.QR`*(!$@(V['!`H.QP(*`?\%(((`:+<`/,`=G7<````$`! +MV,(@"@`7N,=P``X``(2XG;B?N.QR`*(!$@(V['!`H.QP(*``PNQP0*"*"B`` +M*'"AP-'`X'[@>/'`7@PO^P+9SW>``'1%"@S@#.EP0(?/=J``["?/=8``P"K@ +MNDOR*X9$(H``AB+_#B*ZH;D4NK2Y!2"#`&5Y*Z8$((`/$``"``0B@@\0``(` +MSW&``.0%17@+H2"%!-Y@>H8X.P`4@A6!Y`=B%X#7T`(=1(,"` +M,?+/<*``1!W%H,.@Q*`I\,]PH`#('`'9/J`+AH&X"Z9J#P`&((5@>0'8A>`3 +M],]P@`#X'@.`"(!1(`"`"_(`V92YSW"``.0%*Z`+AI2X"/#/<(``Y`4`V2N@ +M"X:TN`NF+@D``+D##_O@>/'`SW"``'04^@K@#`+9%@D``-'`X'[@>/'`-@LO +M^P#:"'4H=L]PH`#4"SB`0B$!"(#ARB&,`$`F`!(0<6`/10T#S-=P````0`'8 +MPB`*`!>X`""!#P`.```';@0@@`\``/S_)7B=N)^X['$`H0$2`3;L<""@(KX& +M\.QQ`*$$Y6&^@>8`A3KWX@@``#$##_O@>/'`X<7/`/,UW````!``=C" +M(`H`%[C'<``.``!/(($`G;F?N>QP(*#/<*``%`0#V26@`1("-L]PH`#4"TV@ +MSW"@`$0=-:#@?N!X`]K/<:``%`1%H<]QH`#4"PVASW"@`$0=5:#@?@/:SW&@ +M`!0$1:'/<:``U`L-H>!^`]K/<:``%`1%H<]QH`#\"PRISW"@`$0=5:#@?N!^ +MX'C@?N!XX'[@>.!^X'C@?N!XX'[@>.!^X'C/"2_[N''/<(``*)!H$`0`2B``($PD@(#*(L8'RB"&#P`` +MD0S*(X8/``"W!]`&)OS*(<8/SW"``,0&!X"$+`@)`"&!?X``2(Q,)0"`%GG' +M@3[TSW"``/PEB@ZO_(HA#P_/<(``D"5Z#J_\(-G/<*4`"`R@@%,E39`3\H'E +M$_*"Y13R"B'`#^MRSW```)(,BB.?!YAU:08O_`HE``3_V`;P_]@(N`3P_]@0 +MN,]Q@`#D!0RAK:'.H0#9D;G/<*``T!LQH)X.X`L!V!_PSW.``.0%#H.`X!OT +MSW&``"Q/SW*``/PESW6``'0EBB3#?PIPJ"#``@]A%27#$^>#\"(.``'@_F;' +MH[T`#_LX$P0`"B'`#^MRSW```),,BB,?#.$%+_P*)0`$X'CAQ>'&SW"@`!0$ +M`]DCH`W(SW*``!"K89+/<8```*K$BA0A#0!HM0`@@P^``""J..'`JV*"%7D& +MDF"A`Q(#-L`=!!`$@J`3`0"&(<,/)7B@&P``P<;@?\'%\<#F#\_Z"'9>"B`" +M*'6`X-$E8I,!V`/T`-@$N,]U@`"8QQ1X"66!X1UE"O2*"N`+J7`"#J_]`8T` +MV`"M`845`"_[`*;QP*(.@`AR"R`+`-C/<(``0"(($(0`3"3`@1/R3"0`@A7R +M3"1`@AKR"B'`#^MRSW```,H;N]L%!2_\2B4``((,C_Q6#T`-T<#@?L]P@`#8 +M*@"`42``@@7TO@@/_/7Q_@F/_)X,C_P+R*ZXK[@+&A@P"\B'N`L:&#!N"P_[ +MY?'@>/'`(@_/^L]Q@`!`(@R1SW6``/@>WI4.)@Z0SW"``+@L#I#*)F(0#+$! +MV$H.(```V68+(`@!V)H)C_R!X!CT`(7$$``&42!`@0/R@.80\@'8"'$>#R_] +M"'(+R)"X"QH8,`O(!2"`#P```-0)\`O(KKBON`L:&#`+R(>X"QH8,.H*#_L- +M!\_ZX'CQP((.S_H-$@$VSW>@`+PMSW"``/@>+J<$@`#=1A`1`58@4@16(),$ +M#1(0-U8@%`5&(,`@`Q("-@T:'#"D$@``A+BD&@```9*BP8#@AAI$`PCRSW"` +M``"K]"!``(#@"?(!@NZX!?10(``@+R`((%,@?J!*`P$`SW:``,@Z:18`%@'@ +M!!(#-FD>&!"D&T`#`9*`X$KRSW"```"J-'B`$`$'@.%"]-`0`0%3(<&`%/1R +M$@$!X)(B?[@2@0`B?_!_X!C$`Z02`0"&(?./!O)HO_!_X!C$`W`2#P'@$``! +M(9+B>/%PPB<.$,(AS@-T$@`!.&"X$H$`=!M$`Z"S.&`0>)`;!`"^&P0`$(H0 +MJP&"`:,(B@BK$HH`VA*KEKHR\!8-(`**(`4!#X?WN/KS3X?VNE,BP`(F\H[@ +M2?>G%@`6MKH!X*<>&!`<\&2X!!(!-A!XD!D$``0B@`\```#P++AT&40#H+$0 +MJ:&Q`\B^&40#88"HJ88C_PV$NV&A$H@2J?:Z/@(!``#8EKCUN@02`3:D&0`` +M$O+:":_^`-@$$@$VI!$```0@@@\"````+;H%(@($+R"(($#P`8%1(`"!4O(T +MRE")22#$`/)JSW"``!"_]G_@8/:X,]S@`#0P@!CSW.``%#"5GM!@\]S@`#X +M'F2#>(-E>@0B@@\````(1GB8&0```-B6N/2X08&&(O\-'_*`XE+RF!&"`$`B +M`"E(8,]S@`!0DD#`(,+#NEQZ]"."`%;P"B'`#^MR--B,N%_;!;N*)(,/Q0$O +M_$HE``"8$0,`Z;N<&4`#(_*`XH"XI!D``"SRF!&``,]R@`#X'D."AB#_`T2X +M,B0`((FX0,`@PU2"9'J&(_\#AB+_#D2[>F)/>L]S@`!,3O0C@@`@\%$C`((* +M\H#B"O*8$8(`0"(`*4A@#?"`X@7T`-I(.!X]#W`KK/<8``$+]6>D%A\;D(\K@6`!8!X+@>&!`-\(!P$'B&'000 +M:A8`%@T:'#0!X&H>&!`=`^_ZHL"AP?'`R@K/^@AU1L#HO2APT``A`$AV`[A` +M()`%1"4"%B.Z!"6/'P8````!XD$O0!0$)8$?P````%A@-KG/`%\E,@`0`X8.V]`BF!(P_RSW*``!A20)(%*CX``"&` +M?P``_S\NN%T`(``985D`(``5>5$E0))4`"$`)L6WY2``"P`S:%,E`A#/<(`` +ME$[P((``!2D^``H@P`X!X`?PBN7`*.$`P"BB`,]Q@`#X'B.!P-HT@:1YAB'_ +M#B*Y.GK:>AEB,'@(W/L!S_HS:%,EP!`<>,]R@`!<4O`B```6X04I/@`*(,`. +M`>`4V8,'[__:>>!XSW&``%@=)(%!*((%U;@@@4$I@P75N0)YSW"``'C'8GH% *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 01:04:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 90CBA79D; Sun, 11 Aug 2013 01:04:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 647EB290B; Sun, 11 Aug 2013 01:04:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B148Pj070898; Sun, 11 Aug 2013 01:04:08 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B148Ei070897; Sun, 11 Aug 2013 01:04:08 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308110104.r7B148Ei070897@svn.freebsd.org> From: Adrian Chadd Date: Sun, 11 Aug 2013 01:04:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254200 - head/sys/contrib/dev/iwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 01:04:08 -0000 Author: adrian Date: Sun Aug 11 01:04:07 2013 New Revision: 254200 URL: http://svnweb.freebsd.org/changeset/base/254200 Log: Remove a now-unused firmware. Deleted: head/sys/contrib/dev/iwn/iwlwifi-6000g2a-17.168.5.3.fw.uu From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 01:06:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3E0C78E3; Sun, 11 Aug 2013 01:06:36 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2ADF9291D; Sun, 11 Aug 2013 01:06:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B16aJt071393; Sun, 11 Aug 2013 01:06:36 GMT (envelope-from smh@svn.freebsd.org) Received: (from smh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B16aK0071392; Sun, 11 Aug 2013 01:06:36 GMT (envelope-from smh@svn.freebsd.org) Message-Id: <201308110106.r7B16aK0071392@svn.freebsd.org> From: Steven Hartland Date: Sun, 11 Aug 2013 01:06:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r254201 - stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 01:06:36 -0000 Author: smh Date: Sun Aug 11 01:06:35 2013 New Revision: 254201 URL: http://svnweb.freebsd.org/changeset/base/254201 Log: MFC: r253926 zfs_ioc_rename should not leave the value of zc_name passed in via zc altered on return. Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/cddl/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Sun Aug 11 01:04:07 2013 (r254200) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Sun Aug 11 01:06:35 2013 (r254201) @@ -3612,6 +3612,8 @@ zfs_ioc_rename(zfs_cmd_t *zc) at = strchr(zc->zc_name, '@'); if (at != NULL) { /* snaps must be in same fs */ + int error; + if (strncmp(zc->zc_name, zc->zc_value, at - zc->zc_name + 1)) return (SET_ERROR(EXDEV)); *at = '\0'; @@ -3620,14 +3622,19 @@ zfs_ioc_rename(zfs_cmd_t *zc) #else if (zc->zc_objset_type == DMU_OST_ZFS && allow_mounted) { #endif - int error = dmu_objset_find(zc->zc_name, + error = dmu_objset_find(zc->zc_name, recursive_unmount, at + 1, recursive ? DS_FIND_CHILDREN : 0); - if (error != 0) + if (error != 0) { + *at = '@'; return (error); + } } - return (dsl_dataset_rename_snapshot(zc->zc_name, - at + 1, strchr(zc->zc_value, '@') + 1, recursive)); + error = dsl_dataset_rename_snapshot(zc->zc_name, + at + 1, strchr(zc->zc_value, '@') + 1, recursive); + *at = '@'; + + return (error); } else { #ifdef illumos if (zc->zc_objset_type == DMU_OST_ZVOL) From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 01:09:17 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 20E01A4F; Sun, 11 Aug 2013 01:09:17 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0CB692940; Sun, 11 Aug 2013 01:09:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B19HF5071993; Sun, 11 Aug 2013 01:09:17 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B19GoC071991; Sun, 11 Aug 2013 01:09:16 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308110109.r7B19GoC071991@svn.freebsd.org> From: Adrian Chadd Date: Sun, 11 Aug 2013 01:09:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254202 - in head/sys: contrib/dev/iwn modules/iwnfw modules/iwnfw/iwn2030 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 01:09:17 -0000 Author: adrian Date: Sun Aug 11 01:09:16 2013 New Revision: 254202 URL: http://svnweb.freebsd.org/changeset/base/254202 Log: Add firmware for the Intel 2030 and variants. Submitted by: Cedric GROSS Obtained from: Linux, Intel Added: head/sys/contrib/dev/iwn/iwnwifi-2030-18.168.6.1.fw.uu (contents, props changed) head/sys/modules/iwnfw/iwn2030/ head/sys/modules/iwnfw/iwn2030/Makefile (contents, props changed) Modified: head/sys/modules/iwnfw/Makefile Added: head/sys/contrib/dev/iwn/iwnwifi-2030-18.168.6.1.fw.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/contrib/dev/iwn/iwnwifi-2030-18.168.6.1.fw.uu Sun Aug 11 01:09:16 2013 (r254202) @@ -0,0 +1,24904 @@ +Copyright (c) 2006-2012, Intel Corporation. +All rights reserved. + +Redistribution. Redistribution and use in binary form, without +modification, are permitted provided that the following conditions are +met: + +* Redistributions must reproduce the above copyright notice and the + following disclaimer in the documentation and/or other materials + provided with the distribution. +* Neither the name of Intel Corporation nor the names of its suppliers + may be used to endorse or promote products derived from this software + without specific prior written permission. +* No reverse engineering, decompilation, or disassembly of this software + is permitted. + +Limited patent license. Intel Corporation grants a world-wide, +royalty-free, non-exclusive license under patents it now or hereafter +owns or controls to make, have made, use, import, offer to sell and +sell ("Utilize") this software, but solely to the extent that any +such patent is necessary to Utilize the software alone, or in +combination with an operating system licensed under an approved Open +Source license as listed by the Open Source Initiative at +http://opensource.org/licenses. The patent license shall not apply to +any other combinations which include this software. No hardware per +se is licensed hereunder. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. +begin-base64 644 iwlwifi-2030-18.168.6.1.fw +AAAAAElXTAoyMDMwIGZ3IHYxOC4xNjguNi4xIGJ1aWxkIDAKAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAQaoEgAAAAABAAAAAAAAAAEAAABErAIAICCADwAAQABpIAAAaSBAAGkg +AABpIEAAICCADwAA6ABpIAAAaSBAAGkgAABpIEAAICCADwEANB1pIAAAaSBAAGkgAABKIAAASiEA +AEoiAABKIwAASiQAAEolAABKJgAASicAAEogABBKIQAQSiIAEEojABBKJAAQSiUAEEomABBKJwAQ +SiAAIEohACBKIgAgSiMAIEokACBKJQAgSiYAIEonACBKIAAwSiEAMAokgD+BAABAQSycMEAsnDBC +JBw0CiKAP4AAIIcKIwA3ng8ACEomAHBpIEAASiYAcEomAHBKJgBwSiYAcAAWAHCAAIwvQHggIECH +AAAAAAAAAAAAAPwciLb8HEi2/BwItvwcyLX8HIi1/BxItfwcCLX8HMi0/ByItPwcSLT8HAi0/BzI +s/wciLP8HEiz4H7geATcON018OB4BNw03TPw4HgE3DDdMfDgeATcLN0v8OB4BNwo3S3w4HgE3CTd +K/DgeATcIN0p8OB4BNwc3Sfw4HgE3BjdJfDgeATcFN0j8OB4BNwQ3SHw4HgE3AzdH/DgeATcCN0c +8OB4BNwE3RnwNBQaMDAUGTAsFBgwKBQXMCQUFjAgFBUwHBQUMBgUEzAUFBIwEBQRMAwUEDACxwHG +sCRNM7AkHzPgfuB44HjgeOB44HjgeAokgPAFIEQA4CDBB0Qk/oBBKsQAhAACAC8kAvFCIQEBQiAD +AeggogQEEQQCBBEFAgQRBgIEEQcCBBsIAQQbSAEEG4gBBBvIASwAJQBEIj6BPAAiAEQi/IBAIcEA +4CDBB0AjwwCoIIABARGEAgEbCgEgIMAHBBEEAgQRBQIEGwgB1Afh/wQbSAFEIvyABBEEAskH7/8E +GwgBQiFBAEIgQwCoIIABARGEAgEbCgEgIMAHz3GgAKwvGIGauBihcQDgFAXY4HjPcaAArC8YgbO4 +urgYoV0A4BRk2AoiQIAA2e4AAQAvJgDwSiZAAE4ABgBPACAAiiX/D+B4CiJAgADZzgABAGwAJAAv +JgDwXAAFACsINQhKJkAACHEA2AIhvoDgIMUHQnkB4AIhvoDgIMUHQnnrB+//AeAvLQEAQCVFAAIm +fPEAACAAAChAAeggYgMvIACALyFLAAIhvoDAIIYBwiGGAOB+EQAgAEogABBKIEAQDiJCAC8gCxLO +IEWAiiX/DwgABQAvLQEAQCVFAAImfPEAACAAAChAAUomQADoICIDLyAAgC8hSwACIb6AwCCGAcIh +hgBKJgAAQiD+kM4gggFEIH6QziGCAeB+KQAAAOB4/ByIsfwcSLH8HAix4cPhwuHB4cAHwBwcwDHh +wOB/AcAKJgDwiiC/D8ogZADgfy8gAwDgf4og/w/hxQh1EfDgeOB44HjgeOB44HjgeOB44HjgeOB4 +4HjgeOB44HjgeGG9jCX/n+314H/BxeB48cDhxc9wgABoMU2Az3WAALSxIIW3uri6BCGBDwMAAAAH +uUV5LaAuCqAUANgAhc9xgADc11EggIJMic9wgABQ7jJqNnnHcYAAEOtggVZ4QYAF8pW7YKGrugTw +tbtgoYu6QaALjaO4FQXv/wutosHxwJIMz/9Fwc91gABoMSeFMHAI9DCVFBQOMTB2BPRZHYIQ0BUB +FjBwDvTPcYAAdDQ8kRQUDTEwdQb0z3GAAMw0WamA4gz0z3WAAJwKwY2A5gDZyiBBACXyIa2O4gT0 +Adgh8EEoDQIHfUEoAQSnec93gACcCqCPUyVFEUwlAITGuY32CiHAD+tyz3AAAM0bn9uVBCABiiSD +D1ElgJEG8gDYDNxbBM//z3aAANDtFiZNEaeNoK/JdRYlTREApRQUADFGrcdxgACQ6gK1AIkHrQAZ +QgEAG0IBxPHgePHAtgvP/wjIz3KgAMgfDhoYgAnIDxoYgArIEBoYgAsSATYCyCR4ERoYgAzIz3GA +APBLLRoYgACBAeAAocO4jeAp9AvIf9kKuSR4LygBAE4gggcA2A8ggAAEIQGAQiKNAhnyCyNAwBf0 +z3CgAIgg8CBQA892gAD8RwCGEHXPd4AAAEgG9ACHEnAIDoEHoKYAHwAUiQPP/+B48cDhxQHZz3Cg +ALAfOaDPcYAAwC8IgQCArMFJwAyBAIDPcYAAUDTPdYAADL1KwAqBobgKoQiF4LgJ8lEgwIEH9IYN +gAZWDaACGNiLcalwdgtgESTaz3CAAJgKIIACiYDgEvQEiVEgAIAO8gvIBCCAD/7//wMLGhgwC8iG +uIy4j7iQuAvwC8gFIIAPAQAA/AsaGDALyKy4CxoYMNIOz/+LcDDZkNoe28YNYBAYu89wnwC4/wLZ +NqAowIHgyiHCD8oiwgfKIIIPAADqHMojgg8AAPwAyiQiANwCIgHKJSIAQg+ABoDgB/QmDuAAANh6 +C6AQBtipAu//rMDPcYAAnIbgfwhh4HjxwKYNgAbPcYAAGCvwIQAAQHjPcKAA0BuA2lCgz3CAAKAv +AIBRIACCANkG8s9wnwC4/z2g0cDgfvHA6gnv/w/Zz3WAAAj0ABYAQAAWAEBVJU4UAKUmDuATBG3J +cOIN4BMilR6Vz3GAAJgK2mDYYAEQhQBMJQCAQKET9AKF8LjKIcEPyiLBB8oggQ8AAOkcyiOBDwAA +wQAYAiEByiRhAPEBz//geIDhyiRNcOB46CAtAs9xoABQDCWBARhSAOB+4HjxwFoJz//PcIAAaDED +gBiIpcGE4EogACAM9AohwA/rcoogjA1k2wokAATFASABuHPPd4AAwC8khyCB/gzgB4ogBw6KIJkF +8gzgB2fZz3WAADC9iiDZBuIM4AcsjYog2QbWDOAHLY2KINkGzgzgBy+NiiDZBsIM4AcujYog2Qa6 +DOAHMI2KINkGrgzgBzGNz3aAAAxGz3CAAExsGg1gEiQeABTPcIAAaGwKDUASz3CAABBtAg1AEs9w +gAAsbfYMQBItjYDhBPJsjTBzjPZqDOAHiiCHDYoghw1eDOAHLI3I8ASHQIDPcIAABK9goCGgQqDP +cIAAePMIkBBxlPbPcIAAePMB2iiwz3eAAFTVz3CAADzVTKdDgFBxARgCBML3I6AQjYDgyiBiAAOm +EY2A4BbygOMU9M9wgABoMQOACYBRIICADPKSCqACB9gB2AGmz3CgACwgEIAApoogyQPaC+AHo9mK +IIkDz3GAAASvygvgByKBAYbPcYAABK8ggYDgyiBiABi4BXkDhgoiAICKIIkDyiJiABC6ogvgB0V5 +z3CAAIRCAICB4A30z3CAAHjzz3EAABAnRgnv/wWAEHgC8ADYz3GAAOTUB7EDhoHgDBkEBDr0AIGC +4Mwg4oAE9AHYAKFMFoAQgeAw9M9woAAsIPCAz3ABAERVQMAB2EHACBwANBHYQ8AA2Iy4RMAA2BDZ +BNoIc5hwuHAAJ4cfAAAAfYIK4AXYcIogygQOC+AHANmKIMoDBgvgBwDZSxaAEAHgD3hLHgIQDI2A +4AX0AYaA4FQMAQbPcIAAvGxaC0ASAdnPcIAATCYgoHIJoAIG2FEHr/+lwOB4osHxwOYOr/+YckXB +QSgBAgd5QSgCBCd6xrrPdYAAkOpJZee5XWUT9BQUDjHPc4AA0O1ocjZ64ILxcAX04pLRdwfyJ4rn +uadq9fMA2CjwxoqA5gf0gN/PcIAAnArhqM93gAC8MQWPEHYE9IDYBa8K8M93gADMNBmPEHYE9IDY +Ga/GijZ7AByAAweKh7kArc9wgACcCkCIIKgB2EerDNy3Bo//4HihwfHAAxICN9dyAAAAQAHawiKK +ABe6x3IADgAAg7rsc0Cj7HIAoj4IYAUocNHA4H+hwOB4peAf8gn2g+AV8oTgF/KF4Bv04H8B2L3g +D/IG9q3gFfTgfwLYzOAP8owgQ4cN9OB/BtjgfwDY4H8D2OB/BNjgfwXY4H8H2AjY4H7gePHA4cWK +IFIOlgngB7TZz3WAAKRAqXBAJYEbTg4gES7aAdgdBq//YR0CEOB48cCSDY//guAIdY33CiHAD+ty +/diLuHPbSiQAAA0G4AC4c893gACkQDeHACWQH4AA+EAwdQX0DBCAIIDgkvJ+CmAJBdg6cIogEg4q +CeAHqXFELb4bACdAHkCQIZAA3gi6RXnPcqQAuD2bGlgAIpAMGIIjyhpYACOQt6fLGlgAJJDEGlgA +JZDGGlgAJpDHGlgAJ5DCGlgAKJDDGlgAKZDFGlgACpCjGhgAz3CAACg9IIBgeclwjOAa8s9wgAAo +PSCAYHnJcJDgEvLPcIAAKD0ggGB5yXCR4Aryz3CAACg9IIBgeclwkuAD9ADdz3CAAGgxA4AIgM9x +pAC0RVEgAIAQ8kQtvhsAJ0AebJBLkHt7ZXpTGZiADZBUGRiABvBTGZiDVBmYg0Qtvhsndw6XVhkY +gA+XWBkYgBCXVRkYgBGXVxkYgBKXWhkYgBOXXBkYgBSXWRkYgBWXWxkYgGIOIAkqcJEEj//xwFIK +7//hxQYOAAXPcIAAaDEDgBiIgeAu9M9xgAAI9M9ygAAEbwCCYIFgoACCHNtgqARpAaLPcIAAHAsD +oVUhQAQDohjYAqJVIcAFBaIBgQDdWhlEAwSiAoGtuNYIoAYCoYDgEPS6D6AAqXAODWAQBtgK8DoM +gBSA4AbyEg2AFNoJgBQpBI//huDxwADYD/TPcIAATL0qCu//BtnPcYAA7L0AgYK4AKEB2NHA4H7g +eIPg8cAA2An0z3CAAES9Agrv/wPZAdjRwOB+4HjxwIHg4cUA2An0z3CAAEe9Ad3iCe//qXGpcMkD +j//gePHAluDhxQDYjPfPdYAAtLGpcMIJ7/8E2QuNg7gLrQHYoQOP//HAmuDhxQDYjPfPdYAAtLEE +bZ4J7/8E2QuNgrgLrQHYfQOP//HApMGQ4ADZyiBCABP0i3B6Ce//ENkAFAAxhODMIGKBCPTPcIAA +UNcfgPW4AvJMcAHYpMDRwOB+8cDGCo//CHfPcIAAaDEDgBiIhOAacUnyhOcA3YwAJQDKIEUDz3aA +ADC9QCYAEyYJ7/8E2S6OsK5TIQAAEa5BKMAgoLkwcGIAJQACIEIAY7/xclYABgCA4g7yz3GgANAP +EBEAhmG6WGAQGRiAJREAhg94A/APjgDZUyCCIA8hgQAkeC8mB/DPcZ8AuP8QrhiBzyDiB9Ag4QcY +oRiBnrgYoRiBvrgYoQHYgQKP/+HE/BzIvvwcSL7hwOHB4cLhw/wcCLH8HEix/ByIsfwcyLH8HAiy +/BxIsvwciLL8HMiy/BwIv2okgBDhxGokwBDhxPHAz3CgANAbFIDPcYAAQAkEIICPz1EE4QChEfL2 +uC8pAQAF8i8pgQ9AAAAAz3CAAIw88CBAAEB47g2P/9HAwcRrJMAQwcRrJIAQwcSfdAQUCzQEFAo0 +BBQJNAQUCDQEFAc0BBQGNAQUBTQEFAQ0wcPBwsHBwcDBxEUsfhAKJkB+wcRrJIAUwcQgIECH4HiM +IFyCAdjgf8IgCwDxwEYJr/9KJEAAz3WAAGgxFSUDEACDQCUOFdFwwiQCAfAlDRHIFQUWRCW+gQny +CiHAD+tyjtiNuJkB4AB028gQDQalecgYWACggwbZRnnIFQAWJHjIHRgQAIPIEAAGhiB/jmwJgRRN +AY//4HjxwNYIr/+KIAwJz3WAAJwJJIWeDIAHBIWA4EX0z3aAAETAExYClgDfhCoICQAhgH+AAEi4 +AqUkiAHbgOHrpWylIfIdHtiTDBAFAAQlgQ/A/wAAQSkEBs9xgAB48xQRBgAFLj4BACGEfz8A//8E +JEEBHh5YkCCQjCGChgHZwiFOACql56UkgM92gACAvMC5KrbPdoAA5DcorkCuAohkpQGuH/AEhYHg +HfRqC0AKANgEpQKFJIiA4RP0J4Uc4DZ4JIjPcIAAlDQHiBBxAdnAec9wgADgNyCgAtgC8AHYA6Vh +AK//AdjxwPIPb/+KIAwKo8HPdYAAnAkkhbYLoAcA3gSFgOAo9OoLQAAB2ASlAoUEiIDgcAIBAM9w +gADgNwCAgOBgAgIAz3CAAMAvEIDPcoAApLwAgCOCGWHPcIAA0DcAgDhgTgxgEgKigOA4AgEAfvAE +hYLgQvQKhYDgEPQMFQQQEBUFEAohwA/rcs9wAACKDPUHoACKI44LIoVHhUAhAAdWeEaIYMJGiAEc +gjBGiAIcgjBHiGHCR4gFHIIwB4gGHAIwiiBTAQoLoAeoEQEAAoWLcUIKYBCoEAAAz3CAAMAvEIAg +gM9wgADkNyGgkgngAMWlA9gEpdbwBIWD4Dr0QoUnhUAiAAc2eAWIUSBAgRPyz3GAAMAvA5Iwgc9z +gADkNyCBYYMKuGJ5MHAF9wnYC6WO8AWFgOAN9ASKgOCy8s9wgACkvGoLYBICgIDgqvIFhYDgBvIF +2AulAdgJ8M9wgADgNwCAgOCe9ADYKg1ACJrwBIWB4G/0OgvAAyKFR4VAIQAHVnhFiOC6G/KDukWo +z3KAAKxMyYLPc4AARMAVG5iD+YLFgv5mFhuYg/iCxIL+ZhcbmIPDgleCXmYYG5iDBYhRIECAK/Ja +CUASgOAQ9AohwA8ChetyHBUFEAQQhADPcAAAiwyhBqAAiiMQAEoJYBIC2NoIYBII2CKFBImC4Ar0 +AdgApQDYDqXCCGASWtgihQSJgeAD9AHYAaUHhRzhFnkFiYYg/4zKIIIPAAAwQ3gIIgXKISIAAoUn +hRzgNngFiIYg/ocE8gLYBKUs8ATYBKUo8CSFhOEB2CT0D6XPd4AAwC8QhyCAz3CAAOQ3IaBiCaAH +iiAMCs9wgADkNwzZddoe274IIBAYuwSHz3GAANg3AIAGC2ABIIEGpcSlBNgDpQHYvQVv/6PA8cBS +DW//iiCMCc91gACcCSSFFgmABwSFgOBA9CKFR4VAIQAHVnhEiM9wgACUCQCQEHIB3g70z3CAAJYJ +QJDPcIAAgLwKkBByBPTEpQDYUfAEiYDgH/LPcIAA4DcAgIDgGfTPcIAApLwjgM9wgADUNwCAZgog +BzhggOAN9IogTA2mCKAHiiFNB2ILYAgA2AHYL/DEpQHYLfAEhYHgK/QChc9ygABoMSOCZIBooSOC +ZYAc4GmhJ4U2eCSIA4IA3jSwAtgE2UoL7//Jcs9zgACAvEKFB4VAIgEHFnkKkySJRIIWDaAOyXPE +pQPYA6UB2NEET/8MFQQQEBUFEAohwA/rcs9wAACJDNkEoACKIw4B4HjxwD4MT//PdoAAnAkEhoDg +ocE79CSGAgigB4ogjAoB389wgADgN+CgANgPpgCmAaaKIJMB4g9gB4ohWQUC3alwYg8gBelxz3CA +AGgJAIAmgJ4RAAamuJ4ZGACpcADZogrv/wTaKgkgFKlwz3CAAGgxI4BIgTSRUyIAAG4MoA7pc6Sm +6XCL8ASGguAz9CSGig9gB4ogjArPcYAAlAmKIIwMdg9gByCRz3GAAJYJiiDMDGYPYAcgkQKGBIiA +4BfyCYaA4BX0z3KAAKS8BoIlgg4ggw8HACChMHNH9wfYC6YB2AymCaYD8DhgBaID2DLwBIaD4BD0 +JIYiD2AHiiCMCgvIBCCAD////wMLGhgwBNgi8ASGhOAg9CSG/g5gB4ogjApTIMBAz3GAAHBvLg8g +AAChz3CAACi8OoDPcIAAZLqEKQgJMCBADlEgQIAF2MogoQEEpiTwBIaF4AHfHfTPdYAAKLwahQTZ +mdoe20DAi3AaDuAPGLsahemmhCgICQAhgH+AADi6K4ChuSugBtgEpgDYBfAEhobgBvIB2A0Db/+h +wAbYA6YA2Nbx8cCWCk//z3WAAJwJBIWA4KXBDfQkhVoOYAeKIIwIAoUEiIDgGPQC2ASlBIWB4FX0 +BYWA4EX0z3CAAMAvBIDPcYAAhHMAgNINIBIggYDgNPQA2Djwz3CAAMAvBIAA3sWlz3GAANQ3AIDO +DyABIIHPcYAAhHMB3wTaAKHPcKAALCBAEAcAz3AAAKiJQMAF2EHAQsdDxkTGyXAG2clzmHa4dgAn +hw8AAAB9Lg1gBdh25KXpcDHwsgtgBQXYBNgC8AXYgOAB2gP0Adgl8CmFgeEQ8kylC6UM8ASFguAc +9CSFkg1gB4ogjAgJhYHgBPQB2A/wgODr9QKFdgwgBQOACHHPcIAAFGxaDsARANhGDIAH3fEA2O0B +b/+lwPHAfglv/4ogTAnPdYAAnAkkhUYNYAelwQSFgOCq9AKFR4UkgFZ4z3KAAJQ0BCGBDwAGAACA +4QHZZ4ogEI4AwHlwdgn0z3eAAIC86pfBivF2A/IA3gXwxorRcf31Ad6A5s9xgADgN8ChFfTPcYAA +lAkgkTBzD/TPcYAAlgkgkWGKMHMJ9M9xgACYCSCJRoowcgPyANkC8AHZgOFk8hwQBADPcIAApLwM +GAABz3CAAASvBBAFAM9wgAB48wWABSh+AUApgHKQcMoizgfKII4PAACIDMojjg8AAAEDNAGuAMoh +zg/PcIAA1DcAgB4O4AaAcIDgBfRuCAARUPALyAQggA////8DCxoYMM9wgABocwCIAN6A4MWlCvTP +cKAALCAQgMdwAAAAfRKlSBUHEM9wAABsiUDABdhBwAHfQsdDxkTG6XAG2QTaANuYc7hzcgtgBdhz +z3CAAGhzwKjkpelwH/AA2M9xgABocwCpAtkjpRfwBIWB4AHeEvQFhYDgHPTPcIAApLwjgM9wgADU +NwCAeg3gBjhggOAG8gHYTQBv/6XAz3CAAGhzwKimCWAFBdgA2ASlovEF2AulfgqgB8lwANnPcIAA +aHMgqOjx4HjxwLIPD//PdoAAnAkEhoDgePQChgSIgOAU8s9wgADgNwCAgOAO9M9wgACkvD4MIBIC +gIDgBvIaDiAIANhpAwAAz3CAAMAvEIBHhiCAz3CAAOQ3AYACeQKGVngHgBBxhvcB2ASmQQMAAACG +gOAM8lEjQMAK8gLZz3CgANAbM6AKCiASHtjPdoAAwC8Ehs91gACcCQCAngogEiaFgOAIAwEABIbP +cYAA2DcAgKoMIAEggQalAoUnhRzgNngFiIYg/4wJ8s9wAAAwQ89xgAAAOJYJwAQChSeFHOA2eAWI +USBAgMQCAQAAhYDgCPLPcKAALCAGgIDgsAICAE4JwASpAgAABIaB4Jb0JIaCCmAHiiBMCs9wgADA +LzCAIIFyCmAHiiBMCgKGJ4Yc4DZ4BRCGAADaUSYAgE+mQfLPc4AA5DfPd4AArEwYhySHz3WAAETA +GWEXFQCWWKtcFwQQDBcFEAAlBQEYFQSWAnkCJQUBFRUAliQXBBACJASAFhUNlgWHonjKJYEQA/IB +3birgOEO8kAsjwDxcYT3TyWAEAbwgOAG8k8lQBAPfRirQSnAADhgsHBD94K9uKtRJkCALvIAhoDg +DfLPcaAALCAmgQ6GInjPcYAA5DcFoUCmBfABhoDgA/JBpmYIwATqCAASguAR8ut13ggAEgwWBBC4 +cM9wAACMDAohwA+pcj0GYACKIxML5gggEgDYAoYnhhzgNngFiIYg/4wF8gLYBKa+8ATYBKa88ASG +guAL9M9wAAAwQ89xgAAAOCIIwAQE2ASmBIaE4K/0JIY6CWAHiiBMCs9wgADALxCAIIDPcIAA5DdA +IA0HN6AaCWAHiiCMDSKGHBYEEEAhAAcWIAABBYhRIACAHfIA2kokwHBIc6ggwAHwJcAQAeMaYgPf +SiRAcQDbqCDAAfAlwBMB5xtjUHPH989ygADkNxiKgrgYqgDdz3eAAKS8pacMkUAkQgAQckemR/eH +EQAGUSBAgAbyAdhmCyAIDKZc8EIPYAcLhgvIBCCAD////wMLGhgw6g/gCaumiiBMDX4IYAeKIZQN +B4YihhZ5iiBMDWoIYAcngQLYA6YChs9ygADgNySIgOEP9CeGHOA2eM9xgACUNCeJBIgwcAHYwHgA +oinwIIKA4QXyAdgDpiPwJ4Y2eBwQBADPcIAABK8EEAUAz3CAAHjzBYAMHwARBSh+AUApgHKQcMoi +zgfKII4PAACNDMojjg8AAE4FqARuAMohzg+kpnUEL/8B2AwWBBAQFgUQCiHAD+tyz3AAAI4MhQRg +AIoj1QXgePHAz3CAAOA3AICA4B3yz3CAAAw9AICA4Bv04g/AD4DgCPQLyAUggA8AAAA8CxoYMBYI +ABCA4An0C8gFIIAPAAAA1AsaGDALyJC4CxoYMHYOwAbRwOB+4HjxwJILD/8Idc92oAA4LgeGz3EA +ACQsqLgHpmIN4AcN2IDlAN+4DSIUyiAiBM91gABIPUUVARYHhiV4B6aKIBUMKg8gB4ohzQ2KIBUM +Hg8gB0UVARbPcIAAsDQskM9wgABoMR6QEHELyEUd2BMK8gUggA8AAADUCxoYMAvIkLgG8AUggA8B +AAD8CxoYME4PD/8AhbC4LgsgFAClgOC0CgIUWQMP//HAz3CAAFAhD4CA4A/yz3KfALj/HaLPcYAA +oC8EgQHgs7i1uLi4BKEWopoIwACD4BH0z3GAAAy9iiCVB4oOIAcogc9wgADUbfoOgBHmCuAABdjP +cIAAoC8AgO+4BvIA2c9wnwC4/z2g0cDgfvHAz3CAAFAhD4CA4A/yz3KfALj/HaLPcYAAoC8EgQHg +s7i1uLi4BKEWoi4IwACH4BH0z3GAAAy9iiCVBx4OIAcogc9wgADUbY4OgBF6CuAABtjPcIAAoC8A +gO+4BvIA2c9wnwC4/z2g0cDgfvHAz3CAAFAhD4CA4A/yz3KfALj/HaLPcYAAoC8EgQHgs7i1uLi4 +BKEWosIPgACE4BH0z3GAAAy9iiDVB7INIAcogc9wgADUbSIOgBEOCuAAAtjPcIAAoC8AgO+4BvIA +2c9wnwC4/z2g0cDgfvHAz3CAAFAhD4CA4A/yz3KfALj/HaLPcYAAoC8EgQHgs7i1uLi4BKEWolYP +gACI4BH0z3GAAAy9iiDVB0YNIAcogc9wgADUbbYNgBGiCeAAAdjPcIAAoC8AgO+4BvIA2c9wnwC4 +/z2g0cDgfvHAz3CAAFAhD4CA4A/yz3KfALj/HaLPcYAAoC8EgQHgs7i1uLi4BKEWonXY6gwgB4oh +hQ1eDWAABNgKJQCAyiHCD8oiwgfKIIIPAADfDsojgg8AAHkBeAFiAMokYgDPcIAAoC8AgO+4BvIA +2c9wnwC4/z2g0cDgfuHFAdvPcoAAqAh+suB44HjgeOB44HjgeOB44HjgeOB44HjgeOB44HjgeOB4 +4HjgeOB44HjgeOB44HjgeOB44HjgeOB44HjgeOB44HgGuEUgzQDPcKAA7CemoAqAANsAsX6y4H/B +xeB48cCKIMoGMgwgBwDZng1AAz4PgBPeDIATgNnPcKAA0BswoNHA4H7gePHAKggP/xpwAd8AEBIB +FPBadRLwFSDAI6CQAhARAQHn13UAAPv/8H909gwigK8AAP//CfLPcAAA+/9ScOz1SQAP/892gAC4 +LwCGAeCB4ACmCfQB2c9woADIHDGgygngEyhwBr2BvUApACSleM9xoADsJwahAIZCIECAAKbc9c9x +oADIHADYEaHW8eB48cCiD8/+ocEacKCQz3eAALgvAIcB4IHgAd4Apwz0z3CgAMgc0aB2CeATyXAE +8Ah1AebQfs9wAAD7/xB1G/IVIIEjAJHXcAAA+/8CEREBcfaWDu//i3EAFAQxDCEAoerzCiHAD+ty +O9iL29EHIAAKJUAEAIdCIECAAKcH9ADZz3CgAMgcMaB9B+/+ocDxwM9wgABgPwCAgeDKIcIPyiLC +B8oggg8AAK8TyiOCDwAA8wHKJCIAhAciAMolAgEaCAAA0cDgfvHABgsAE94PgA/RwOB+4HjxwLoO +z/7PcIAAaDEDgM9zDwAA/CiAz3CAALi+wLk2eESAIIAKumR6ybkles9xpwAUSE2hRYABgAq6ybhk +ekV4DqHPcYAA9EsOiYYg/wFbaM9wgAD4q0yoT4kwiUAgEwOGIv8BQ7qGIf8BTahDuVoNYAguqNpw +z3CAALgvAIAB4IHgz3GAALgvAKEK9AHZz3CgAMgcMaAyCOATKHDPcQgAhxDPcKAA7CcmoAPYANky +I1UgOnFMJQCilAAqAFpwSiQAIBrwQCWBATB5BrmBuRC/JX/PcaAA7CfmoUAmgQEweQa5gbkQuCV4 +z3GgAOwnBqFAJFQgz3CAADA9IIBgeQbYknD2AA4AESUApfTzqnCyCuAFinEacKpwDgngBYpxmHBA +KEAhEHgQuIG4h7iMuM9xoADsJwahTCQAoCbyTCRAoBT0iiXEBoomhAgi8AohwA/rcs9wAACwE4oj +xQ0KJEAFBQYgAEolAAAKIcAP63LPcAAAriiKI0YGSiQAAOkFIAAKJQAFiiWCDYomQg8A3wTbn3Pp +cKggAAxhu0AugiFALAEBWWF1eQAjTQHHcYAA9L5CkbB9Br2BvVx6ELpFfc9yoADsJ6aiQpHAunh6 +5XpQf0ORACONAbB9Br1ceoG9ELqles92oADsJ0amI5HAuXh5JXgQeGjxQiJAIIDgsgbt/0AhQSDP +cQgAhhDPcKAA7CcmoM9wgAC4LwCAz3GAALgvQiBAgAChB/TPcaAAyBwA2BGh1QTP/uB48cAA2I24 +fg5gDgYaGDAMzIYg/4oI8s9wgAD0RwCIgOCkCQIF0cDgfs9xAwBADc9woACoIC2gz3GAABgLQIEB +agChz3CgADguBYAEIIAPwAAAANdwwAAAAArySNjPcZ8AuP8aoVuhadgYuBmhz3KAAHhoBoIDgCCA +x3EAAIgT6QCgEUhwCHLPc4AAlGgGgwOAIIDPcIAAwC8EgACA1bgZYRDhaHDBAKARQnngePHACHHP +cIAARD5IiM9wgADWPUQqPgsyIEIO57oJ8sa6CrrPcIAAuG2SCKARWWHRwOB+4HjxwOHFz3WAAAxu +BoUDgCCAz3CAAEQ+aIhKiEQrPgsAIYB/gADAPVV4TJCpcAq6WgigEVlhiiCVCl4P4AYihfkDz/7g +eM9wgAD8PVyQz3OAAPBtIoNocAq6LQCgEVlh4HjxwOHFz3CAAEQ+SIgqiM91gAAMbkQqPgsAIYB/ +gADAPTV4TJAihalwCrr+D2ARWWGKIJUKAg/gBiKFnQPP/uB48cASC8/+z3GAAER2IYGjwULBz3GA +AGgxFSEQAAAQACDAEA4GgOYvKIEDTiCNB1jyEm0WeAAgkg+AABDrBhKAIM9xgADQ7RZ5AIEikY7l +CBxEMMogYQAG8oty3gsv/wLBgOA38gDYz3GAADgKQIEPIEADLyEKIAQhgKAAoQb0gOLwDeIIyiAi +CK94ZgggBRDZAN8EGsQjiiEIAAAaQCCpcOlxrgngBw/aABACIMASAAYEIEAEwBoYAM9wgABQ7rZ4 +4KDhoM9wgABw6rR44LAQJk6TLyiBA04gjQes9ZEC7/6jwOB48cDhxQh1BPCGDkAR6g5gEalwgOD6 +9Z0Cz/7geKPBQMBBwQUUgTAA2IHhQsIN8oLhB/KD4Q30IcEA2A8gQAADFIEwDyBAAAIUgTAPIEAA +BhSBMIHhDvKC4Qfyg+EP9CHBA+EPIEAAAxSBMAPhDyBAAAIUgTAD4Q8gQAAJFIEwgeEO9AIUgTAK +uU8hAgQDFIEwDLkleiHBDrlFeSV4IMGB4Qj0BxSBMCLCBrkIukV5JXjgf6PAo8HhxULBCRSBMEPC +g+FBwADYCvaA4cj2ChSBMIDhxPaD4cP2AdgHFIIwBhSDMFBzBvIiwTBzzCJCgAP0AdghxYHlEPQK +FIEwI8NwcUr2CxSCMFBxzCOqgIT2gOLKIGkAgeAN9IohyQ/PcIAADAogoIHl/9nKISIAIaDBxeB/ +o8DxwAYJz/7PdoAA7AoAFgUQTCVAgsohxg/KIsYHyiCGDwAAhifKI4YPAABjAGgBJgDKJKYAz3CA +AFAhCoCA4BDyz3GfALj/HaHPcIAAoC9EgAHis7q1uri6RKBWoc93gAB4bwCGoYYIuCCHBX0wdQny +ELmKIEsFagzgBqV5oKcghs9wgAAkgvAgQABAeIDg6/PPcIAAoC8AgFEggIIG8gDZz3CfALj/PaDF +AM/+osHhxULBQSgCAgd6QSgBBEd5z3KAAJDqxrkqYue6EvQIFAMxz3WAANDtqXFWeUCBUHAF9EKR +cHIG8keJ57r384DYA/AGicHF4H+iwPHAz3KAABrrMmg2eTFiosFAwUHAi3AI2Z7aHts6C2APGLui +wNHA4H7gfuB48cAIyJW4CBoYMAnIm7gJGhgwC8iKuI24kLgLGhgwz3CAAGgxA4AYiIHgDPQLyM9x +AABwLqy4CxoYMJIJoAcP2NHA4H7xwOHFCHU+iM9wgAAQJUCAQCUAFAO5NXlZYfoIYBAK2poP7/+p +cPEHj/7gePHApcFBwELBDBwAMRAcQDHPcYAAfKo0GcAPMBkADywZwA4oGYAOJBlADs9wgAB8qiAY +QAvPcIAAfKocGAALz3CAAHyqGBjACs9wgAB8qhQYgArPcIAAfKoQGMAIz3CAAHyqDBiACM9wgAB8 +qggYQAjPcYAAAKqAGQAIfBnAB3gZgAd0GUAHcBkAB2wZAAdoGYAGZBlABmAZAAZcGcAFWBmABVQZ +QAVQGQAFTBnABEgZgAREGUAEQBkABO+hzqGtoYyhLBnAAigZgAIkGUACIBkAAhwZwAEYGYABFBlA +ARAZAAFjoWogAAPYGQAAaiDAAtQZAABqIIAC0BkAAGogQAHIGQAAaiAAAcQZAABqIMAAwBkAAGog +gAC8GQAAaiBAALgZAABqIAAAtBkAAGoggAHMGQAAQNifuM9xnwC4/x2hz3Cg/gAAFqFTI8AEBSCA +D7D+AAAWoRiBUyfNNVMlxDVTJsU1lLgYoUDDAcACwde6DBQGMKlzegjgBhAUBzBGD2APANjPcaAA +yDsugb4J4AZ92G4IQATPcAAArd6+CQABCNgA2VIJYAeZuVUGQBDgePHAxg2P/s9ygABoOIDhz3WA +AFxzDvIAogCFgOAT9B4IoAEP2C4J4AgI2AHYAKUL8ADewKLODmABD9jeCOAICNjApfEFj/7geM9x +gABsPACBHNrPc4AAnAlAoEKDVSLACQGhoBIAAI24oBoAAM9wgAA8C6QaAACcEgABZ4MEoVUiQA0D +oUAiAAd2eAWIoOAM9M9wgACUCQCQSHSAJEQTAKwe2wPwGNtioVUiQA14YAWhDQJgDyhw4HjxwAoN +j/7PcIAAUCEDgIDgD/LPcp8AuP8dos9xgACgLwSBAeCzuLW4uLgEoRaiz3CAAEAJQIDPdoAAeByg +hgQigw8PAADgBCOBDwEAAAASaWR4B32gpph1BCKODwAAAEDPdYAAdBzghQO+ZH49ecd/4KUEJA0A +BCKCDwAAAIAGI0ADRXkCueR+BCODDwIAAADGeGR5JngvKAEATiBBBIbhDRpYMAfyz3CAAADWDpCA +4Cjyz3CAAPwJAIjPcoAAaDHwIgIAvxICBlMiQoAa9M9ygABse4bhBLgAYhL0z3KAABDW9CICAIDi +DPLPcoAAGE8jgg0aGDAB4SOiBfAQcRvyKHDPc6AAFAQKo89ygAAYCkCKgeIA2QX0SYO44oL3AdmA +4QHdCfTPcaAAiCAVeaChFPAG2Nvxug0gDgYaWDOuCkAGgOAK9ADZkbnPcKAA0BsxoGoK4BGpcBkE +j/7xwK4Lr/4w2s9xnwC4/1ahDRoYMM9xoADUBxoZGIAfEQCGAd0BGhgwBBKFMEwlAIfKIcIPyiLC +B8oggg8AAOscyiOCDwAAaQH0A+L/yiRCAxkRAoYD2CAZGIAUGViDDxEOhgAWAEAAFgBAABYDQQAW +AEEAFg9ADxmYg/S/ViMAAhB4BPIC4BB4A+AEIIAPAAD8/xByDxEAhkDgHhkYgB0RAoYb9626HhkY +gB0ZmICeC0AGgOAF8moPb/8A2BLwC8gFIIAPAQAA/AsaGDALyKy4CxoYMAbwjboeGRiAHRmYgLIM +IA4GGlgzLQOv/gDY4HjxwOHFz3CAAEAJoIB12AQljR8PAADggg6gBoohhQkvLUET8g7v/04lQBQK +JQCADvIKIcAP63LPcAAA3g6KI8UKDQPv/04lRBR/2Aq4z3GgANAbE6F/2BCh3QKP/vHAWgqP/gh2 +7Igols9wgABgCbJvKHOGI/MPtn1CKxECx3WAABDrYIXtuwhyAvJEaOu5iiDDLwT0HhaQEA2OUSAA +gKTy47k99Ou7FfL/2AetSiQAcQDZqCCAAyhiACGDD4AA+PL2ewSrKGIB4S95AKtd8EwhAKGQ9goh +wA/rcs9wAAAtJYojCwRKJEAAZQLv/wolQATuuQeNMiJCBAAhgS+AAPjy9nkJ8kSpBNkAKUEEJXgH +rT3wQKkPIEAEY/BMIACklvaMIMOvyiHCD8oiwgfKIIIPAAAuJcojgg8AAOQCyiRiAAwC4v/KJQIE +2gnv/8lwCJbuuAXyAo4JrQPwAY4IrQCF67gY8gDaR61KJABxz3GAAPjyqCDAAjhi9ngEGAIEABgC +BAHiT3oBjgitAo4JrSzwTCEAocohyg/KIIoPAAAvJcojig8AAAEDPAfq/8oiygcIlgAhgS+AAPjy +7rgHjfZ5CfIEGQIEBNkAKUEEJngHrd3xABkCBADZDyFBBCZ4B60BjgitMQGP/vHA1giP/s9zgABw +CmCDAN7PdZ8AuP/9hXlhz3OAAEQJ4KPdpc9zoABQDGCDx3MAAABAInvNu3BwxPdRIwDA9PPPcYAA +RAlggc9xnwC4/32hUSMAwMogIgAe9IHiG/TPcqAA0A8QEgGGgODT9891gAA4Jp9wY4WoIAADAo0l +Eg+GwbjTaNh/AeACred7Y6UQGliAAdipAI/+8cA+CI/+z3CAAFAhD4CswYDgAN8P8s9ynwC4/x2i +z3GAAKAvBIEB4LO4tbi4uAShFqLPcYAAODcZgc91gAAMvaG4GaEClSGVELgFeQIcRDAwuQQcRDAo +hQLaz3CgALAfSMFZoM9ygADALwmCAIBJwA2CAIBKwKILoAaKINUDz3CAAJgKIICKINUDjgugBiKJ +CIXguBzyUSDAgRr0z3WAAGgxAIXEEAAGz3aAAKxMUSBAgQf0LgpABQHY3B4AEAGFGIhBHhgQ8glg +ARjYz3CAAEQ+KIjPcIAA1D1EKT4LNCBADlEgAIHKIAEHyiEhDMoigQ8AAJAAyiOhB4wKIQ/AKyEG +z3CAAKAvAIDvuAXyz3CfALj//aCRB2/+rMDxwPYJIAAB2M9wgABIPSCA67kP8s9wgABoMQCAxBAA +BlEgQIEF8lEhgIIE2ALyAtg2DwAA0cDgfvHA6g5P/lEggMGlwawIogTKIKIAC8iQuAsaGDAWC6/+ +AN3PcIAA1G0mgCOBIIGMvYILIBG5YQDZz3aAAEg9/B5AEM9woAAsIPCAz3AAAEAeQMAC2EHAAdhC +wEPBRMEF2QTaANuYc7hz2HPCCaAEACdHEwCGi7gAptkGb/6lwOB48cBqDk/+USCAwaXBLAiiBMog +ogALyJC4CxoYMJYKr/4A3c9wgADUbSaAI4EggYy9AgsgEblhAdrPdoAASD38HoAQANnPcKAALCDw +gM9wAAAYH0DAAthBwELCQ8FEwShwBdkE2ghzmHC4cNhwPgmgBAAnRxMAhqu4AKZZBm/+pcDxwO4N +T/7PdYAASD0Aheu4BfKGDgAGgOAK8gvIBSCADwAAADwLGhgwCgqP/s9zoAA4LgeDw7iP4A/yHBME +AAohwA/rcs9wAADBG4ojBAAtBq//SiUAAM92gACwNAiOieAH8ojgEfQAhVEgAIIN9BoOAAaA4Any +z3CAAAxuBoADgACAHgvAABIOAAaA4Aryz3CAANRtqgkAEZYNIAAA2AnwCI6J4An0AIVRIICABfQA +2I4IoAiMuKUFT/7gePHAHg1P/npwgeAB3cIlQROB4AHYz3eAAGgxIIfAeMgRDgYhh0QmvpHIEQMG +BPREI76BEvIKIcAP63JAKw0Ez3AAAMsbiiNHDAokwARxBa//BSWFE89xgACwNF6XLJFQcQf0z3KA +AMjHQYJQcRryIgoAAOoJIACpcKoJAADwJ0ATxBABBqlwJbnAuVoJ4AAA2iIMgBELyJC4CxoYMNoI +j/4mCyATAdi+C+ALANi2C+ALAtjPdqAAwC+pFgCWqxYBlqoWApYFeawWAJYA3a0WA5YFeq4WAJYF +e89wDwAA+AQhAYAEIhAABCMRAFp1F/IvKkEATiKAB89yoAAMLfAiAgBRIgCCANoPIgIABPRFfQTw +BSKSIAYhgYDr9c9wgACwNCyQHpcQcQ/0z3CAAEg9AIAEIL6PAAA4EAX0vgkABoDgKPRMI0CgC/Sl +FgGWTyIAIYa4BnmlHliQD/DPcIAAsDQskB6XEHEJ8qUWAJZFJUERJnilHhiQTCNAoAnyz3CAALA0 +LJAelxBxBPLyDWATBdhMI0CgC/SlFgCWRSVBEQUhAQQleKUeGJA68E8iACGGuM9xgABAPkiBBSBA +BAV6ANgIoQGHwBADBoDjLyjBAE4gjQch8o7lyiQidMogIgDoICIF8m0AIIEPgAAQ6/Z/EuHvYYwn +w5/KISIAzyHCA8YiQgAB4BAjQ4MvKMEATiCNB+L1pRYAlgV6pR6YkFkDT/7xwA4LT/7PcaAALCDm +gbCBz3aAAEA+BYYCJQIQBIYQckT3QngGoQbwCtgGoXYOAAfkpkUDb/6lpvHA4cXPdYAAaDEVfQCF +z3GAAOy9gCADADIM4A8D2gCFz3GAALRMgCADAyIM4A+D2h0DT/7xwOHFz3WAAGgxFX0ghc9ygADs +vUhwgCEDAP4L4A8D2iCFz3CAALRMgCEDA+oL4A+D2ukCT/7gePHAocHPcIAAHHYAgEINYAdAwItw +BNm92h7bmg3gDhi7ocDRwOB+4HjPcIAAQD7gfwaA4HjPcIAALD7gfs9wgABYCuB/AIDgePHAIgpv +/gDZSiSAcOB4qCAACs91gABEP3DcAiUCE0QpPgcncs93gAB4bgDewKIF22Siz3MCAGxMY6IB22Wi +5qJCJQIeACJADsCgBtpEoM9yAgAATUOgZaDmoAHhLQJP/vHAwglP/s9wgABYCuCAz3CAAFAhD4CA +4O99EPLPcZ8AuP8doc9wgACgL0SAAeKzurW6uLpEoFahz3aAAHVvAI4QdQjyiiAVA1INYAapceCu +z3CAAIR68CBAA0B4z3CAAKAvAIDvuAfyANnPcJ8AuP89oLkBT/7gePHAHgzv/wDYz3CAAEg9AIDg +uAby7rgH9AjYA/AB2HIJAADRwOB+4HjxwCIJT/6lwVEggMEC3eQKYgTKIEIDC8iQuAsaGDBODW/+ +AN/PcIAA1G0mgCOBIIGMv7oN4BD5Yc92gABIPfweQBMA2c9woAAsIEAQBwDPcAAArB5AwEHFQsFD +wUTBAdgF2QTaANuYc7hz2HD2C2AEACfHAwCGgLgAphEBb/6lwPHAoghP/lEggMGlwWQKYgTKIKIA +C8iQuAsaGDDODG/+AN3PcIAA1G0mgCOBIIGMvToN4BC5YQPYz3aAAEg9/B4AEADZz3CgACwg8IDP +cAAAhB9AwALYQcBCwUPBRMEocAXZBNoIc5hwuHBKJkAAdgtgBAAnRxMAhqC4AKaNAG/+pcDgePHA +5g3gBeHFgOAL8gvIBSCADwAAANQLGhgwTgxP/s91gABIPQCF57gG8qe4AKVGDqAQANjPcIAAsDQI +iIngCPKI4A70AIVRIACCCvTPcIAADG4GgAOAAIB6DYAAOQBP/vHAwg8P/gh2z3WAAFgKiiCVAoYL +YAYghYog1QLApXoLYAbJcdoNz/8FAE/+8cAB2c9wgABAPiCgz3OAAPBtBoMDgCCAz3CAAMAvBYBA +gGhw1bo2DOAQWWHPcIAAmAoggASJoLgEqdHA4H7geM9zgADwbQaDA4AggM9wgADALwWAQIBocNW6 +AQTgEFlhKHIJACAAANnhxeHGQCkNAiV9QC0DFIjipXsIdZD3UyV+kAbyAR1SEGG6+/FBKo4AwbpC +Jk6QBB3QEP31gOIK8i8kiXDgeKgggAEBHVIQ4HjBxuB/wcXgePHA4cXPdYAAILggjYwhw48K8oDg +BvLPcIAAqGoSC8AQ/9gArc9wgADItwDZNaDPcIAANCYgoM9xgAAMPQCBorgmDqALAKEA2NIIr/8I +cQUHD/7gePHA4cUA3c9wgAD0CqCgz3CAAAw9oKDPcIAAwLypdJ2wMLyesD4LoASpcKlwjg0gCqlx +zQYP/uB48cBKDg/+z3CAAFAhAoAHEg82gOANEg42ARIQNg/yz3KfALj/HaLPcYAAoC8EgQHgs7i1 +uLi4BKEWogbYDRoYMM91oAAUBAqlCYWA4CfyA9gQpQSlz3CAAAj2Fg5gEQMaGDCS2QPIkLmgGEAA +Gg5gBADYCYWA4A/yKBUEECQVBRAe2AohwA/rcoy4VQZv/4ojBAYHGtgzARoYNM9wgACgL8qlAIBR +IICADRqYMwbyz3GfALj/ANgdofUFD/7xwOHFCHXODuAAFNjPcIAAaDEAgMQQAAYluI4IIAHAuMYI +YAgE2IIL4A6pcEYPQA56DEAOiiALADIJYAapcc0FD/7gePHAUg0P/qHBCHUodoogRA8WCWAGqXGC +5QP3E92a8KlwyXFaDK//ANrPcqD+FAaA4M9xnwC4/wb0SHAWobah7/FAIgAOFqG2oc9yoABQDAWC +z3aAADC9Eq4FghOuCZaMIIiAKm1G8hP2h+Ai8owgxIFq9ILhWgAFAM9ygAC0sVoLb/5AIgACSHEf +8IwgyIBM8owgEIBY9AWCCWmF4EP3AN1T8KoIoAcA2Qh1T/CB4Ur0z3KAALSxIgtv/kAigAILioG4 +C6rt8QuJgLgLqenxgeE49AYLb/6LcCDAz3GAALSxUyACAIYgfw9IqRx4Cant8Y7hUAAFAM9wgABo +MQOAGIiB4CDyz3KAAOiuSHDKCm/+BtlAIgACwgpv/gbZDJKBuAyyv/GE4Y73z3KAAOiuQCIABaYK +b/4E2QySgLgMsrHxE90D8BzdiiBED94PIAYplqlwbQQv/qHA8cDPcIAA6K4MkOC4BPKCCUAEBvBR +IECA6ApCBM9wgAC0sQuIgeAI8oLgCfTqDwAF0cDgfv4IQAX88fzx8cC+Cw/+9gzABYDgz3WAAEg9 +D/QEFQQQCiHAD+tyz3AAAL0bw9slBG//SiUAAM92gACwNAiOABUEEIfg0SQhgsohwQ/KIsEHyiCB +DwAAwxvKI4EPAADKAPADYf/KJSEAUSRAgjX0ANnPc4AARD4oqwHaSatKq4wdRBAK244dwhCH4ALb +jx3CEAbyiOAO9FEkAIIM8uwVABFquBB4kB0EEArYlB0EEAfwZNiQHQQQlB1EEJIdQhCWHYIQVSXA +GFYlwRVuDKAPC9oAhYm4AKUB2AGlz3GAAGgxAIHIEAAGhiB/jgn0AYHIEAAGhiB/jkAPgQMIjofg +CPLPcaAAOC4Hgai4B6ElAw/+8cCyCi/+SiRAcc92gADk1CSGAN2oIEACAN8PJ08TCyHAgwT0AeUN +8IogSg5eDiAGqXEEhuZ4BKYeCqAAqXAEhoDgsAvhAMogYQLRAg/+4HgIczhg1bvVuTBzNrjE9wIj +QgAK8M9ygAB480WCAeDJuCJ6emIWuOB/RXjgePHANgov/phyCHXPdoAAQLL0JkAQz3eAAMCxUSBA +gsogQQDKJCJ0yiAiAOggYgL0JgIQUSJAggPyAeCQ4EYABgAtu8C7z3KAAHDqtHpAK4UCYJIEvYYl ++BOJvQ8jQwBgsgDaFn9Ap0Gnw7mleQUhQwEUfmC2z3GAAGCyFXkAGQABAvCA2BkCD/7gfuB48cDh +xc9xgADQtkGJz3WAADQmgOLPc4AADD0ggwbyAdgApYK5IKMJ8ADaQKWiuYDgIKMECYILANiyC2// +CHHiDSACANjdAQ/+8cBmCS/+mHADEgE2AJEhgUDg9LnAIKIAA+AEIIAPAAD8/89xoADUBw8RDYYA +IAUBkHUA2kf3DcgVIgMwDhMABh1lGREAhgIlQwMQc3wADgAF3Qy9z3CgAMgfvqAQ3a6gAd0VGFiD +z3afALj/vYbPcIAARAmgoF2mGREAhhBzxfdRIwDA+vPPcIAARAlAgM9wnwC4/12gUSMAwBjyDcgV +IgIwDhICBs9wnwC4/1agdqAZEQCGCiHAD+tyQ9jPcwAARBYxAW//jLgPGViBBQEP/vHAaggP/qvB +B8gA3s93gAD48wQggA/xAADwQMANzAAXFRDPdaAAyB9hh1EgQIADyA7yoBUCEPgVARAie3YQAQEC +ItcALyfIJVlhBvCEEBcBACfBIDoYxAUfhRBxxfcweJ4L4AYC2QHZz3CgANQHNKAzoAPZLaAREACG +z3GgANQHQcBA4A8ZGIAUGZiDA8ikEAEAUSEAggXyzgxADgPwRx2Yk89woADUBw0QAYZALwAkMHkF +IFQAA8ghgAAQEgFDwbgQmAByEAEBuhAAAQIhEwYmCeAHRMCB4Av0z3CAAHQvAJCB4AHYwHgMuELA +AvBCxgPIz3GgANQHWYCIGYAApBABANmguBiCA7oYhAO3uaQYQAADwPa4CPLPcKAASAhAIgEjB/BA +IgEhz3CgAEwIBMICwwNxZXoFJJQgZ2nPcgAA/P9kemOHCCLQAM9zoADUBzWjABgABQIiwCQPowIg +gCAbowPYEKPPcoAABEgNEgE2AIIwcB3yz3CgADguBYAEIIAPwAAAANdwwAAAAA3y9dgFuM9znwC4 +/xqjO6Np2Bi4GaMB2ALwyXCB4AP0IKIBh5YgQQ8epRDYDqUB2BUdGJDPcYAAlCgBgVEgAIBS9Iog +BAAAoYog0waSCiAGiiEEAM9wgAAKSACQhRUBls9ygAAISEokQAAEIIAPAAAAKNdwAAAAKMIkAgEA +koYh/w4vJgfwIrkg9M9zgAD0S2yLBCCAD////8KGI/8BQ7uGI38PguMB28B7LybH8AHbwiPBAGV5 +QCzDAmV4CrmIuAV5jbkweCCyz3GgAPxETYEEIIAPAAAAPAQigg/////DRXgNoQfIz3GAAKi+BCCA +DwEAAPAsuAMSAzYEsQ+DzqkAoUATAAECsRCLYBMDAVRow7tlekaxD6khhw0SAjbPc4AAfNZAIwQJ +VXtJgzB4WGAJo6QVABA4YPgVARAieEXAAdjPcaAA1AsQoQPANbjAuBe4ACCBDwAOAAAChwK4K+AE +IIAPAAD8/yV47HEAoQESATbscCCgIofscCCoDRIBNs9wgAAA1jR4MIjscCCo7HDAsAPIlBABAOxw +IKANyPAkAQDscCCw7HDAsOxwwKDscMCgBxIBNuxwIKADyCCQVBAAARC5JXjscQChAxICNgGCUSAA +gQIlFSQO8jKKUIrPcIAAUO1WeACIhiB/DBx4BLgleAPwgNjscQCpA8jPcoAANG8wiDMQgAAEuSV4 +7HEAqQPIO3Y8kOxwILADyBp2nBABAQ+AJrnAucC4DLkNuCV4AKINEgI2z3CAAADWACKBD4AAKNbA +qc9xgACs1VZ5VHjAsCKRwBiEA9AYhAMVJIIAeBhEAM9wgABoMQSAGpDAokbAz3CAAPjzAoCA4Mol +jhMcAy4AyiGOI8l3yXU6dkwgAKC98hPwz3GgAPxEHYE5gQQhgo8AAAAIEfQEIL6PAAYAAA30USMA +wCb0z3CgAPQHB4D/uADe6fMu8ADe+rjKJoIfAAABAvm4yiaCHwAAAgL8uMomgh8AAAECgOIJ8s9z +gACcTlCDiiYIEgHiUKOCDoASEvAB2c9wgAAAbyCgFg/gEChwz3GAABhPDYGKJggSAeANoQUljZMQ +8nMCIAAA3oQSAACy4JX3USMAwE30z3AAAJATggnABc9yoADUBw+CEHgZEgGGWOAwcCz3CfDPc4AA +IE4kg4ohECEB4SSjUSGAoET0HhrYgx0SAIYHGhgwHRIAhkrAHRIBhgTIIKAdEgGGIaAdEgGGIqAd +EgGGI6AdEgGGJKBWJwASHhoYgB0SAoZALwEkUHgFIFQABBIBNoYi8w8AERIBjCIMgAGBQ8AW8hrY +FfDPcIAA+PMIEAQAABAFAAohwA/rclfYz3MAAIwTpQMv/4y4AN7S8CDYenADcBB4chkEAADeTCAA +oAT0A8hz8APA9rgH8s9woABICEAiASMG8EAiASHPcKAATAhHwANxSMEEwQLAJXgFJBQgCMAH4M9x +gAD48yOBBCCADwAA/P8IIFYADCZApSwBLQBJwNYNAAAFJQ2QmfQB2c9woADUBxQYWIBVJ0EUDxhY +gFEiAML+9QjAz3GgANQHFaEHwgIiwCQAGgAFD6EJwgImgCAboQPYEKEqwJzgAN6P9AfIAMEEIIAP +8QAA8BBxlfQDyKlxyLkCJZUlCIgMuCV4AxIBNxC5JXjscQChCsBAIVkwARoYMATIAxIBNkHHAxoY +MAQaWDAhgACQAcc0ucC5NHgD4EDnBCCADwAA/P8fZw0SATYG8BUiQDAOEAAGAn8VIkAwDhAABhB3 +d/cDzM9xnwC4/xihz3CgAPxEPYAEIb6PAAYAAGL0TCAAoAvyBMhQiFMiwQCGIv4DRLrEGIIAMKjP +cKAAFATEoAfIz3GgAEgsHaHPcIAA+PMCgEAgUCAScA4Fzf8M8M9ygAAgTiOCiiESIAHhI6IC8Dp1 +agjABlMhfqAE9JIMAAAFfYDlUvLhvUfyA8gpiAHhKajPcYAAIE4GgQHgBqFD8AohwA/rcigUBTA8 +2Iy4z3MAABsUuQEv/0okQADqDWAGKHAKIcAP63IHEgU2R9iMuM9zAAAjFJUBL/8AFAQwTCAAoM9y +gAAgToolEBAJ9AfIz3OgAEgsiiUIEB2j+rkG8gWCgL0B4AWitfEGgoG9AeAGoq/x4L0H8s9xgAAg +TgWBAeAFoTp1A8ipcci5CIgMuAV5A8wQuCV47HEqdIQkApEAoUAhTzAb8s9xoADUB4AZQAUDzCpy +yLoQuEV47HIAosyhAdgUGRiAXgugEgHnz3Gg/oQAz3CfALj/NqADEgI2khIAAeq4BBIBNgb0khED +AVEjgII28qq4khoEAJIRAAGquE4NoAqSGQQAENnPcKAA0A8QGFiAJBAChs9xgAAI+iWRUHoCuUV5 +DBhYgBTZEBhYgM9xgAAI+meRRpEY2RC7ZXoMGJiAEBhYgM9xgAAI+mmRSJEQu2V6DBiYgAbwz3CA +AAj6yqjPcqAA1AvQokwhAKBk8s9xoP64AM9wnwC4/zagBfAI2exwIKAB589wgAD48wKAEHe3989w +gACoviSQlOHAIYYPAACTAM9woABoLPAgQADPcYAANG8ggc93oADUByV4DaID2BKn2goADlElQJIF +8goOr/8BwAbwA9gTHxiQFB+Yk0wgAKAX8s9woAAsIDCABcAwcAHdyiWGEwQgj08gAAAAz3AAADUV +8gyABYDlzCchkOvzz3AAKAgABhoYMAbA9gmgBslxUSFAoNDyz3CgACwgz6DM8M9wgAD0SxGIUSAA +gDnyUSAAwzfyz3CAAAhIIJAocIYg+w+MIASAAdjAeIHgD/TPcKAAwB0HgAQhgQ8AAAA8hiD/DiK4 +CrgleAPwB9gKuM9ygABoMUOCz3GAAPRLMIkQuTIigg8AANgCn7mA4gHawHoPukV5JXjPcaAA/EQN +oUwlAKAN8s9woAD0B2AYQAXPcYAAIE4DgQHgA6HPcIAAqL4kkJThwCGGDwAAkwDPcKAAaCzwIEAA +z3GAADRvIIEA2s92oADUByV4z3GgANQLDaFMpoogBAIGCuAFqXF6DeAQBsAZFgCWwOCgAA4ADcxR +IECATPID3SAeWJMB2BQeGJAEEgE2ABYEQAcaGDEAFgVAARpYMQTKnODKIsIHyiCCDwAA3A7KI4IP +AAD0CmQG4v7KIcIPKHAqCuARDtkPFgCWBBIBNrQZBAATHliTEIlTIMIAhiD+A0S4xBkCAFCpz3AS +IAAAagpgBA0SAjYEyM9xoAAsILAQAAEvgWTgMHDKIIUPEigIAIX3z3AAKAgABhoYMADeDcwEIIAP +AAACCILgCfQEEgE2iiAEAJoOIAuYEQEADcjPcYAAENbPcoAA5NQUec9wgAD488CxIoAGks92gACo +vhlhMHkmsq3Yz3IAuwC77g0gCAW4A8gakO4NYAgNEgE2BJbPdYAAYOn0JQEQBpYwcBPyxglgBgfI +CiHAD+tyBJYMFgQRz3MAAKkV9CUFEDHYbQXv/oy48QSv/avAUSBAw/HA4cUn8s9wgAD48wGAz3Gg +AMgfliBBDx6hENgOoQHYFRkYgGYOYBJB2FEgQMMT8gHZz3CAAABvIKCyD6AQAdjPcYAAGE8NgQHg +DaGKJQgSLvDPcaAA/EQdgTmBBCGCjwAAAAgA3Qf0BCC+jwAGAAAZ8gDd+rjKJYIfAAABAvm4yiWC +HwAAAgKA4gryz3OAAJxOUIOKJQgSAeJQo6oOQBIG8APZz3CgABQEJaCZBK/9qXDgePHAGgyP/Qh1 +z3aAAPwZAI6A4KjBWPSLd+lwz3GAAGh2vgyv/SDaAdgArgDYj7gLGhwwANgVGgIwz3aAAAAA13UA +AP7KoLYF9AfAgLhHwM9woACsLxqAUiAAAFEgAIAI8gGWgLgBtgfAgbhHwM9wgABke6CIkgggBaqu +z3FDdagSQMGKIRoKQcErjgSmRsDpcGPBDRxCM89xgABkUETBz3GAANBPRcEg2QHaPdu2DiAOF7sI +2OoOIAYB2QLZz3CAALQ3JKC9A6/9qMDgePHASguP/Sh2gODPcYAAaDEvIAcgA/RhgQLwYIHEEwMG +JbvwIQ0AwLuA5qKho6HMIyGAAd3KJSEQz3OAALA06IuJ5xf04YHEFw8WUSdAkRHy7JN+kXB3DfKB +4ArygOAJ9ACBxBAABlEgQIED9ADdgeLKJSEQAN8qDGAO6XAKcB4MIAepcc9wgAC0NwSAUSCAgBHy +z3CAADhKAICA4Av0z3AAABYJOgpABYHgBfS2CMAMDPAA2Z65z3CgAPxEIaDgeOGg3gtgDgDYgOYH +8pYNYAAB2J4NQABqCUAFgOAE9HYJgBAE8KYJgBDPdYAAEBsAjYDgBvRiDEAPAdgArbECj/3xwEYK +j/3PdoAARD4pjmiOMHPPdYAASD0acAX0AIXsuKPySo7PcIAA1D1AIJEBRCs+CydwVXgGiIHgKK5z +9ACFz3eAAMA9RCk+C0AnARU0IUEO7LjAuRHygOGsuAClFPLqD0AGCI5EKD4LACdAHiqQoLkqsAjw +gOEG8tIPQAYAhYy4AKUIjkQoPgsyIUAugeAB2MIgAQDaCWASCq4IjiqORCg+Cyd3NX9Ml5hwgOLP +d4AADG7pcBjyz3GAALA0KImJ4QjyiOEr9CCFUSEAgif0RCw+CzIhQS6B4Qb0QCqBAgJxA/AKcTIO +ABCKIJUKOg2gBSKHiiCVCi4NoAUihwiORCg+C89wgADUPTQgQA5RIECBAIUn8oW4JvAtagq5AnHj +8UQpPgsyIUAuz3eAAAxugODKIGIAOglgEgquCI5KjkQoPgsvcQAhgA+AAMA9VXhMkIDi6XDI8zIh +QSCB4cD1wvGluAClz3GAALA0KImH4QzyiOEQ9M9xgABoMSGBxBEBBlEhQIEI8uK4zyDiANAg4QAA +pf4IwAANAY/98cCyCI/9z3WAAOTUxJWA5h/yz3CgACwgMIAA3waFJ6UOIEAAKgqv/clxCKWKIIoL +WgygBclxiiDKC1IMoAUoheS1z3CgACwgEIDltQalzQCv/QiF8cBWCI/9OnDPdYAA5NQAhc9xgAA0 +QgK4FXgVIEAEMCEQAIogSg0SDKAFKnGKIIoNBgygBQpxTCAAoQ/0ABUEEAohwA/rcoogzAyKI8UC +oQDv/golQARMIACgN/JMIECgFPJMIICgHvJMIMCgEfIAFQQQCiHAD+tyiiAMDYojRQttAO/+CiUA +BOYKAAAd8IogCgumC6AFiiHFBn4JAAAV8ACFgeAD3gnyiiAKDYoLoAWKIQUJwKUA2AWlBIWguASl +FgpgAAPY8QdP/eB48cDPcoAA5NQmkgHhB5IweRBxJrLX9gSKgeAG9AWKgeAB2APyANiA4A3yQgug +BYogig6KIMoBNgugBYohhgyqCAAA0cDgfuB48cDhxc9wgABQ10CQRCIAA4jgQ/QA3c9xgADk1KWh +BIFRIoCBoLgEoSb0BJHPcoAAPNUB4ESCEHhQcASx1PcEiYHgBvQFiYHgAdgD8gDYgOAK8oogygHO +CqAFiiGGAUIIAAAb8M9wgAAMRgOAgOAS8gPYEfDPcQAA//+qCqAFiiAKDs9xgAAMRgOBgOAC8qOh +BNiiCQAALQdP/eB48cDhxc9zgADk1AQThABMJECABvQFi4HgAdgD8gDYgOAL9AUThQAKIcAP63KK +II0ODQev/s7bAtgAowDdBJOpo6WjprMKowSDpLOguASjiiDKATYKoAXV2WYJYAepcMkGT/3gePHA +4cWKIAoNGgqgBcDZz3WAAOTUiiDKCwoKoAUohQDZA9gApSWlJIWguY4J4A4kpZEGT/0A2c9wgADk +1Cqg4H8poOB48cAKDk/97g/P/89wgAAQ1WCAz3KAAOTUqIBgos92gACEQgSCqKIA2cCGoLiB5iWi +BKIY9ILjzCPigBn0gOXPcIAADEYjoAvyiiAKC5IJoAWKIQQLag/P/wnw6goAAAfwAdtgoiiioLgE +og0GT/3gePHAmg1v/QDYz3GgACwgUIHPdoAA5NQkjs91gAAQ1YHhCKUF9CWOgeEC8gHYgOAl9CqG +gOEc8gaG+g5v/Q4ggADPcQAAECcwcND3z3GAAHjzJYGZIc0KMHBK9wXwz3AAABAnCKUC2AjwANgI +8AmGgOD29QHYAKUB2I0FT/3xwOHFCHWKIAoO6gigBalxz3GAAOTUBIEPIEADBKF2DyAACdhtBU/9 +8cDyDE/9z3agACwgEIbPdYAA5NQHpc9wgACEbCoJIBAA34ogigumCKAFJJUAFQUQTCVAgBHyTCWA +gMwl4oBR8gohwA/rcoogTA2KIwgHNQWv/ookgw8ElYDgnfLmC8//z3CAAHjzBYAohZkgzQowcAHY +wiAOAIDgjfLPcIAAnEXpoNdxAAAQJ28gCwCA4CDyBI2B4AX0BY2B4AHZAvIA2YDhiiAKCwnyIgig +BYohxwSWDc//b/AWCKAFiiEHBs9wAACIE+YN7/8IpWXwiiAKC/oPYAWKIQcI0g3P/1vwBJWA4CL0 +JZUIhYHhwCCBDwAAiBMD8ht4CKWKIAoLzg9gBYohRw3PcIAAePMFgCiFmSDNCjBwAdjCIA4AgOA3 +9BIJAAA38IHgB/SKIAoLiiGHDivwCIUdeNdwAAAQJwilbyALAIDgHfIEjYHgBvQFjYHgAdkD8gDZ +gOGKIAoLCPJuD2AFiiGIAeIMz/8T8F4PYAWKIcgCz3AAAIgTCKUH8IogCguKIcgERg9ABSINz/8E +lQW1iiCKCzYPYAUkleS1EIa5A2/9BqXgePHAz3GAAASvQYHPcYAAePMlgQUpvgAwcMogTgAMIQDw +z3EAABAnwgxv/cogRQ7PcYAAPNUEodHA4H7gePHA4cUA2M9zgADk1ACjz3WgACwgEIUB2c9ygAAQ +1QajEIUgogaiz3CAAJxFA4gkq4wgg4YkqgTyJaolqxIMIAAD2EUDT/3gePHA4cXPdYAA5NSKIIoM +kg5gBSCFAdgpA2/9AKXPcIAAaDEDgM9xpAAcQAiAwLgTeMG4EqHgfuB44cUA2kokAHTPdYAAwLHP +c4AAOLJIcKggAANAIwECFHlAsRYlARBAoUGhAeBKJMBzANmoIEACz3CAAHDqNHhAsAHhz3CAADQK +QaDPcIAA6K5MsOB/wcXgeAXwQnnHcEAAAADPcoAAePNFglBxN/dTIEMFcHHAII0PQAAAAMAgjQDg +fyJ4BvBieQIggA9AAAAAz3KAAHjzZYJwcTf3UyBCBTpiUHOD9zhgB/ACIIAPQAAAAGJ4OGDgfvHA +1glP/c9wgADc1wyI57gK9AK4z3GAABDrFngFYS29wL0D8P/dTgoABYDgCPLPcIAAsDQIiIfgAtgD +8gDYz3GAADC9d4nPcoAAyMchgjBzBPIggoDhBPQB3wPwAN/PdoAAaDEghsQRAQZRIUCBK/KA5Sn0 +I4Y4iYThJfKiCAAQgOfPcYAAKE0Y8s9ygABwCgKCAeACogDYz3KAANhuAKLPcoAANG4Aos9ygABI +CQCiEYEB4BGhBfAQgQHgEKG+D0/9sgkABYDgDvLPcIAAsDQIiIjgzCVhkAb0RgggEAHYAgxABowl +w59P8oDnEfLPcYAANCYAgYDgC/IA2AChz3GAAAw9AIGiuFoI4AoAoToPAA/PcYAAePMGgUUgQAEG +oc93gAC0sQuPUSDAgKgLQv0Lj1EggIBUDEIEQgsABCIKAAWA4AgLIgDKICIGgOUI8gCGxBAABlEg +QIEX9M9xgABASgSJgOAR8gOJgOAK9Iog0A4+DGAFiiFFA8IKoA0D2M4KIAAV2LkAT/3geOHFz3GA +ADgmAIkB24DgYakk8s9woACwH3mgz3CAAMAvCICjgWCAAoEQdQDaGPTPcIAAUCYAiIDgA/QB2Arw +AYECIw0A13VMAEBLefdBqUhwgeAD9GGhQqngf8HFoqHv8YDgAdjCIAwAz3KAADgmAKoB2AGqANgC +qgGiAqIDouB/JKLgePHAxg8P/Qh1KHdIdoogRw2OC2AFiiFWA5DlifcO2Olx0g6v/gDagOAD9BPd +LfDPcoAAML1IcBoOb/0M2c9xgAA4JgCJgOAP8s9wgABQ1wCQhiD8AIwgAoAF9AWSZJJneAOhQiUA +E14LoAbJcQolAJAL9M9wgABQ1wCQhiD8AIwgAoD8DsH/qQcv/alw8cAyDw/9OnAacQoLYAVn2GjY +AgtgBSpxTCEAp473CiHAD+tyz3AAAOMOg9sKJEAEmQdv/golAARMIIChyiHGD8oghg8AAOQOyiOG +DwAAhADKIsYHbPcA2s9xgADAq566FSEBBACBASpCBEZ4cg1gCAChIQcP/eB4iQfv/wXZ4HjxwOHF +AN3PcIAAwKt+D+/+HNkb2KYIIAAF2UokAHfPcYAAWCaoIMACFiFAAwQQBQCwdZh1BfRAJE0A+QYP +/QohwA/rcnfYBbgBB2/+U9vgePHAz3CAAMCrGBAFAC8sQQFMJACHyiLGB8oghg8AAOIOyiOGDwAA +qwDQBmb+yiHGD89wgABYJhYgAAEAgEB40cDgfuB48cDhxc9wAwBADc91oADIH0UdGBCqD8//gNgV +HRiQgQYP/eB48cD6DQ/9OnAacdIJYAVl2GbYyglgBSpxTCEAp473CiHAD+tyz3AAAOMOY9sKJEAE +YQZv/golAARMIIChyiHGD8oghg8AAOQOyiOGDwAAZADKIsYHbPcA2s9wgADAq566FSAABCCAASpC +BEV5OgxgCCCg6QUP/eB4iQfv/wXZ4HjxwH4NL/3/2s9wgABEwBMYmIAcGJiAAN7PcYAAnAnDoc9w +gADcN0CgAdrPcIAA4DdAoMyh0KHRoc+hwKHBoQLdyXfPcIAAOLqELwgZACBCDkuCJ3AAIZB/gABE +ukYiwgBLoHYJ4A9AIAAhYb2A5SQYgiMB5yf3AtgA2coLr/0E2roPYAUB2F0FD/3geOB+4HjgfuB4 +4H7geOB/AdjgfuB44H7gePHA1gwP/Qh3z3WAACQmAIU6cc9xgACQb0QoPg8VIcBzMCEQAM9xgAC8 +cAZhiiCTCIYIYAXpcYogkwh+CGAFKnFMIACgB9jKIQIE4yBCAMogQgSG5sogggPMIGGCAvQAhYPg +AdrCIoEAh+DPcYAAdChAqRD0oIUKIcAP63KKIIcPCL3p2wUlxBPlBG/+CiVABKUEL/0ApeB48cBK +DA/9z3OAACgmoIMA3g8mThCE4MwgooEK9MZ9oKPPc4AALCY1e0CjCPCD4MwgYoEE9MV9oKMGJb6T +yiAiABP0g+DMIGKBDvSD4AHYwiABAM9ygAAsJvAiQQAbeA4P7/8E4AHYUQQP/eB49LjxwBTyz3CA +AIgoCIiA4MogYQAYDKEIyiEBAADYz3GgAMAdCKEE2JS4CaHRwOB+8cDqDqAFcNhPIEEGIg+gBXDY +aghAANHA4H7gePHA4cXGD2AFosHuDaACCHWB5RH0i3XeCaAFqXACDKAIqXCB4An0z3CAAGAxwgqA +BQPwFg9ABdEDL/2iwPHA4cWiwQh1hgkgAItwz3KAADgnIcEHgjhgB6ImggUUgDA4YAaiJYIGFIAw +OGAFoiSCBxSAMDhgBKIjgiDAOGADogEUgTACgjhgAqIhggIUgDA4YAGiIIIDFIAwOGAAoqlwgCAH +CUhxrgsv/SDaXQMv/aLA8cDPcIAAvCcUiIDgCvLPcIAAiCgM2c7aHtsODqANGLvRwOB+8cC+Cg/9 +ocHPdYAAuC8AhQHggeAApQr0AdnPcKAAyBwxoIoM4BEocItxzgkv/oogiA8AhUIgQIAApQf0ANnP +cKAAyBwxoAAUDTEnvcC9z3aAAIgoiiDTBzoOIAUojoog0wcyDiAFqXEIjrFwyiBCA5wKogjKIWIA +SgyACK0CL/2hwOB48cA6Ci/9CHPPcqAAyB+DEgCGI4sEIIAP//8AwIsaWIAhi8CLBrklfiKLCrnF +eSV4gxoYgAGD6BoAgAOLQiAAgEoIIADKIGIAA4uA4ADdDPKKIMQIhBoYgIMSAIaUuIMaGIAG8IQa +WIODGliDOQIP/c9yoACwHyKCIKAjgiGgiiD/DwKiA6LgfoDgyiBiAAi4i7jPcYAACkgAsc9xgAAI +SOB/ALGE4AjyBLgUeAAggQ+AAIR5YIHPcKAAyB9EaYIY2IBKJMByANmoIIAC8CJDAM9woACAHzV4 +AeFgoOB+4HjgfuB4z3GAAKRNEoEB4BKhDcjHcIAAHNYsiAHhL3ksqM9wgACUKByIEHHJ9oogCAAG +GhgwitiQuAfwiiAQAAYaGDBC2Ji44H7xwAoJL/0veoHgAdjAeC8gACCF4s9wgACUKD+oCvQpiIDh +yPQB2bYMIAAgGEIAwvDPd4AAIBo1fyOPAd2A4QHZIBhCAM92gAAKSACWwH0vJgfwu30K9KV4ALZP +JQEWnLmGDCAFiiATB89wgAAISCCQLyZH8A30pXkgsE8lARZqDCAFiiATB89wgAAISCCQABeFEM9y +oADAHQeChiD/DmCWQSiHAG94EHUDF4YQAReEECT0TCCAoMonYQBMJACAANjKIOIAwCgiAxlwBCOD +D////8JALcACZXhALgMCZXhAL4MCZXgFIAACBCC+jwAAADwAtgT0i7gAtgeCL3twdYYg/w4iuDL0 +TCBAoBX0z3OAAPRLbIuGI/8BQ7uGI38PguMB28B7LybH8AHbwiPBAGV4BfBMIICgyiBhAAQhgQ// +///CCiMAgUAtzQIlfUAuAQLKI2IADbuleQq4JXgFe3B5z3CAAAhIYLDPc6AA/EQNg0wmAIAEIIAP +////w88goQLPIOECzyAhAwbyBCGNDwAAADyleA2jAo+B4Ab0AdgIogDYCaIEIYAPAAAAPCq4CqK9 +B8/88cBaD8/8z3eAAJQoH4+F4Ar0IBeAEIHgoAkhAMogIQAA2Hbwz3WAAApIAJUPeYLhCvSGIMMP +ALWKIBMHAtn2CiAFnLnPdoAACEggli94guAK9IYhww8gtoogEwfWCiAFAtkgls9yoADAHQeCRCAF +AQCVQS2FAC8mB/AB2xP0BCCAD////8JPIAQCQC2FAgUlAAEEIL6PAAAAPAC1A/SLuAC1B4IvfYDl +hiD/DiK4HfTPdYAA9EusjQQhgQ/////CiLmGJf8RQ72GJX8fguUB3cB9LyZH8wHdwiVBE6V4Crgl +eBB5ALbPcKAA/EStgAQhgQ8AAAA8BCWNH////8Mlfa2gKrkqogDYCKJpoh+vtQbv/CAfAhDgePHA +Mg7P/Eh2GnMKIwAhCiFAIQoigCHPdYAAlCgdrT6tgOAB30GFD/LpreqtRiJCAobgAdvAeyEdwhCH +4AHbwHsI8ADbaa1qrUUiQgIhHcITgOEoHcIQB/LoreutRiKCAQbwANkorSutRSKCAUIgAIBBpSYM +7//KIGIAw6XFpRAdABQYHQAUJB1EFCYdRBQiHYIUIx2CFPUF7/wcHcIU4HjxwJ4Nz/wacM91gACU +KAGFg7gBpc92gAAKSACWLyYH8Av0RSDAAAC2z3EAEQMATgkgBYogEwfPcIAACEgAkC8mB/AO9EUg +wQDPcIAACEggsIogEwcD2SYJIAWYuc93oADIH4UXAJaGIP8OQSiBAACWD3qD4hD0BCCAD////8IK +uSV4BCGBDwAAADyA4QC2BPSLuAC2hRcAloYg/w5BKIEAz3CAAAhIAJAPeoPiDPQEIIAP////wgq5 +BXkweM9ygAAISCCyz3KgAPxELYIEIIAPAAAAPCq4BCGBD////8OKuYu5jLktoogfGJAdjYfgzCCi +gQXyAdghHQIQCY1MIECgCq0A2AmtK/TPdYAAuC8AhQHggeAApQf0AdhRHxiQdg6AEc9wgABASgCI +z3GgAOwngeAB2MB4B7hFIAAGELiFIJEABqEqD+/8AdgAhUIgQIAApQX0ANhRHxiQiiCTBgDZGggg +BZm5nQTP/OB48cA2DM/8z3WAAJQoHY2H4MwgooF18gWFz3aAAApIA6UGhQSlE5UStSMVgBAiHQIQ +AJYPeYPhC/SGIMMPALaKIBMHA9nKD+AEnLnPd4AACEgAlw95g+EK9IYgww8At4ogEweuD+AEA9nP +caAAwB0HgQDaRCAEAQCWLyYH8EEshAAR9AQggA/////CiLhALIMCZXgEIL6PAAAAPAC2A/SLuAC2 +J4EAl4Yh/w4Pe4DjIrkK9AQggA/////CiLgKuQV5MHggt89xoAD8RG2BBCCADwAAADwEI4MP//// +w2V4DaEBhaO4AaUJjSEdghAA2QqtAdgJrYogkwYWD+AEmLmhA8/84HjxwOHFAN3PcIAAlCihoHoJ +7/+pcM9wgAAISACQz3GgAMAdBCCADwAAADwquAqhBYGloQWBBaF1A8/84HjxwPoKz/zPc4AAlCgh +E4IAgOIS8igTgQCA4Q7yHROEAAohwA/rcoogRw+KI4cBWQMv/rhzgOJq9CgTgQCA4dAgogNt9M9x +gAAKSCCJgOFF9EEowQLAuc9zoADAHaeDz3aAAAhIQJaGJf8eLyaH8Dt5Ir0j9IHhFfTPcYAA9Ess +iYYh/wFDuYYhfw+C4QHZwHkvJkfwAdnCIUEAJX0E8ILhyiVhEAQigg/////CiLoKvUV9sHqgts91 +oAD8RM2FBCKBDwAAADwEJo4f////wyV+zaUquSqjz3KgAMgf7BIBgO65FvSLEgGGgOES8s9xgAAI +SCCRBCGBDwAAACjXcQAAACgL9Ou4C/SOuAnw7BIBgFEhAIAD8qu4+PFNAs/84HjxwNYJz/zPcYAA +lCgBgYYgv41z9ADYkrgAoYog0wYA2Y4N4ASSuc91gAAKSACVD3mB4Qv0hiDDDwC1iiATBwHZbg3g +BJy5z3KgAMAdB4LPc4AACEiGIP8OQSiBAACTLyYH8ADfG/TPdoAA9EvMjgQggA/////Chib/EUO+ +hiZ/H4LmAd7Afi8mh/MB3sImgRPFeQq5BXkweCCzz3GgAPxEbYEEI4MP////w4q7i7uMu22hJ4KG +If8OQSmEACCVL3uA4wLeEfQEIYEP////woi5QCyDAmV5D9sKuwshwIAgtQP0i7kgteiiyaIEIIAP +AAAAPCq4CqJJAc/84HjgfuB44H7geOB+4HjgfuB48cDKCO/8JNqpwYt1z3GAACB2fgnv/Klwz3eA +AEQ/CBeBkM9wgADWPUQpPgsyIEAOz3aAAEg9USDAgVEWABYf8oHgLvJiCCAAANiiCAAAog6AEQHY +QMCBwdrcAicAEw4JYA4g2qlwJNm82h7bpgtgDRi7AdhRHhgQEvCA4BDypg0gClQWABYA30DHqXAk +2bzaHtuCC2ANGLtRHtgTlQDv/KnA4HgM2s9xgABEPwLgD3gnGQKAANgoGQKACxGAgCYZgoAIEYKA +KRkCgAHgD3gLGQKAz3CAANY9RCo+CzIgQA7gfyoZAoDgeN3Yz3GAAGA+BKkLiQfgD3gFqVDYBqlv +2AepmtgIqQnY4H8JqfHAug+v/CTarcHPcYAAWHdyCO/8hMDPcoAAsDQIiofgfAICAM93gABEPwgX +gZAKF4OQz3WAANQ9QCWQEQNtRCk+Cyd1dX1mjc92gABIPYHjTAICAGySz3KAAGgxXpJQcwj0QIYE +Ir6PAAA4ECwCAQAA3alyC/BEKT4LACGDf4AAwD1Ve2yTAeJ9ZUQpPgsyIEQOkHKx90wkgIDKIcIP +yiLCB8oggg8AANobyiOCDwAAxACcB+L9yiUiAAYNgAPKDKADmHACIAABIIZKuOO50SEhg1HygODE +AQwAEHUA2QMcQjAJ96J4EHUB4S95/PcDHEIwgODE9gHhAxxCMAgXgJAKvUQoPgsyIEEuL3DHcIAA +wD2A4cohYgA1eAyQCrhBwM9wgAAMbgKAQsXpcYIhQwVDwEAkwDAqDyAODdpeDu//DdieDs//ngyA +EQHYRMCFwdrcAicAEwoPIA4g2oTAJNm82h7boglgDRi7AthRHhgQlvAC2c9woACwHzmgURYBFoPh +CBeAkLhwJ/REKD4LL3AyIAEgx3CAAMA9CiJAgMoiYgAVIIMApBYCF2yTUHMV9IHhAdnCIUEANXil +FgEXTJAwcs9wgADALwf0DYAAgFMWARYQcWTy/9gDHAIwRC0+CzIgQS4vcMdwgADAPQq9gOHKIWIA +NXgMkAq4QcDPcIAAwC8JgELFIIAAIQABQ8DpcUAkwDCCIUMFRg4gDg3afg3v/w3Yug3P/7oLgBEB +2ETAhcHa3AInABMmDiAOINqEwCTZvNoe28IIYA0YuwPYUR4YEAgXgJBEKD4LMiBCLi9wx3CAAMA9 +CiOAgMojYgAVIMEALJGB4qQeXBAB2cIhQQA1eAyQpR4cEM9wgADALw2AAIBTHhgQBPBeDM//gQWv +/K3A4HjxwBoNj/yYEAIABCKBDwAAAAg7eQQigw8AAAAQJXvPcYAAaDGkgem6ViVOFFYlDxWYEIEA +CPKGIf8DRLkvZ4m/6XEZ8FEiAIK8FQIRDPLCuYAlAhk/ZeiPPWUwjWV/8H9FeQnww7k8eT9mPmYw +juiPRXmIGMADZXkJBa/8jBhAAPHA4cUDyKQQAQCYEAIAUSEAgHIQAQFIcAbyvg1gAgDaCHUH8AHh +sg1gAgDarGiqDYAPz3KgAMgf+BIBAAPIz3OAABDrEIgCuBZ4AGPtuM9wgADALwj0AdtzokiAQIIM +gGCACPAC23OiSYBAgg2AYIACJUAQWGAQcsAjbQANcQChDXBgoAAWAEAAFgBAA8jPcqAA9AdwEAEB +aLknonAQAQFouTB5bQSv/HAYRADxwO4Lj/zPdqAAyB+gFgQQ+BYDEITgAN8i9AMSATakEQAA9Lh2 +EQIBBvLPcIAA+POhgATwghENAQ3MUSAAgYQRAAEJ8gIlwRACJEMACCMDAATwhhEDARtjaHFx8IHg +SvQNEgE3A8jkuXgQAgEh8lEhQIDPcYAAaDEkgVQRAQEJ8n4QDQEifWJ9AiRDAyvwgBADAc91gADw +6QAjRABwiHZ9YJUAIw0BhBADAbtjG/CkEAEA9LkI8nCIz3GAAPDpdnlgkQTwghADAc9xgABoMSSB +gBANAVQRAQE9ZbtjhBANAbtjgBANAblhfhANAUJ9J/CC4CH0AxINNg3MeBUCEVEgAIHPcIAAaDEE +gFQQAQEJ8oAVABEieGJ4AiQDAAfwghUDEYQVABE7YxtjgBUNEUJ9BfDpc+ly6XXpcQ3MUSBAgAfy +A8h2EAIBYro6YgvwgONiusn2z3CAAGgxBIBGEAABGmL4FgAQXWUCfR+GEHWL96DYD6b/pl+mAtgV +HhiQgNgOptUCr/xwePHAZgqP/M9xgABoMfAhAgBWIkUECIJWIgQFUSDAgIogCADKICEAvBoEAEok +AHIA2agggA/PdYAAqHz8ii5l5H4vKIEDTiCDB89wgACQfm9gACVDAOCrRBKPAOR+Ly6BE04mjxfu +YMiryIJRJsCQD/Idiobh0yCmAC8oAQBOII0Hz3CAAMx6qGAQ8M92gADQfC5mzmW8isR9WBKOAMR9 +Ly1BE04ljhfIYBCrAeFKJAByANuoIIEA3IrPcYAAbH5vYc91gACQfuR+LyiBA04gjwfvZQAlwAD8 +qEQSjwDkfi8ugRNOJo8X7mUkGIIDyIJRJsCQD/I9ioDj0yGhAC8pQQBOIY0Hz3GAAMx6qWER8IDj +A/LJawLwaHbOYTyKxHlYEo4AxHkvKUEATiGOB8llLBhCAAHjSiQAcQDYqCBABc9xgADIen2KCWEA +JAwAAeBkeS8pQQBOIYMHz3GAAMx6aWEgrG0Bj/zgeOHF4cbPc6QAtEUpEwCGz3GAAKxMyBkAACsT +AIbMGQAAz3ClAAgMA4DkGQAADhMAhhB6MLjUGQAA0BmAAA8TAIbYGQAAz3CAAIzX1Ii2iOgZgAN4 +iOwZQAMNkPAZwAAs4AIgggP0GYAAAiBCA2J4+BmAAPwZAADBxuB/wcXPcIAA3G4GgAOAIIDPcIAA +3Kvgfymg4HjhxeHGmHDPcoAA0CgFgiCCZoLKuBC4yrkFIQGAAYLKuxC7yrgFIwUAZ4ICgsq7ELvK +uAUjBwBoggOCyrvKuBC7BSMGACTyABQOAC8oQQBOIIMHANgPIMAAEn0EIEMBpH5lfgAcgAPagqR+ +xXt6onmCBCCOAQQgwAGke8V7eaJ4gqR7BCFBg2V4GKLf9cHG4H/BxeB48cDOD0/8OnAFgaCByrgQ +uMq9BSUNkAGBJoHKuMq5ELkFIRAAAd4b8gQlgJMU8i8oAQBOIIIH8CGBIIDhAN8PJ48QCfIEJwAU +QiAAgGB5yiBiAOZ9gOXbfuj11QdP/OB44H8A2KHB8cBqD0/8o8EIdUjAz3aAANAoGob7hjyGBH8k +f6d/QccqC6AEiiDYBIog2AQeC6AEqXGA5xf0gOVs9HoJYAUK2IDgZvIKIcAP63LPcAAAjROKI0cA +SiQAAKkHr/0KJQABBBQBMYDhGfIgFAAxCyBAgA3yz3CAABQ9YIDPcQAAuHEM2GB7A9oJ8IDgB/TP +cIAAED0ggGB5DNgGFAExgOEZ8iIUADELIECADfLPcIAAFD1ggM9xAAC4cQ3YYHsE2gnwgOAH9M9w +gAAQPSCAYHkN2AQnUJML8hIJb/8K2IogGAhqCqAECnET8IDlEfSKINgEWgqgBIohRwu6Dy//CtiK +IBgERgqgBOlxYggAALymCNzDBm/8o8DxwFoOT/wIdgDdiiDYAyYKoATJcc9wgADQKFqAO4BEeQDa +DyKCAwQiQwBCIwOAyiNiAC8mx/AB38ogQQMH8hyAJHiqDu//RXjpcHkGT/zgePHA4cWhwQHYQMDP +dYAA0CgKhVEgAIAM8otwBNln2j3bMgkgDRe7CoWguAqlVQZv/KHA4HjxwNINT/wacCh1SHdodjhj +Ztk92nYJIA0XuoHgCfQKcE4JIA2pcelwHgkgDclxCQZP/OB48cCeDU/8psEodRpyYMAA2AEcAjAB +2AIcAjADHAIwi3B+CKAIgcGA5QXyBMEKcGB9BcIDwYDhDvQKIcAP63LPcAAAjBPu24okww/pBa/9 +uHNgeQDYrQVv/KbA4HjxwD4NT/yiwQHez3WAANAoOoUbhSR4PIUEIRAAAgmgBIogmANMIACgMvID +8Nt+BCCAo/7zLygBAE4gkQcVJU4UHYZcHUAUgODKIcEPyiLBB8oggQ8AAI8TyiOBDwAAHALKJAEE +cAWh/colQQQODI//HYZAeH4LT/+KIJgDogigBCpxANgPIEAEBiAQIEoN7/8KcIogmAOKCKAEPIUB +BW/8osDgeOB+4HgA2c9wgADcP+B/OKDgfuB48cBWDwAEz3ABAFCEgOAK8s9xgADQKLgZAAAbgZG4 +G6HPcAEAhIOA4Ajyz3GAANAoHqEbgYG4G6HPcAAAjHSA4Anyz3GAANAolBkAABuBiLgboc9wAACQ +dIDgCvLPcYAA0CiYGQAAG4GJuBuhz3AAAJx0gOAJ8s9xgADQKJwZAAAbgYq4G6HPcAEAvI+A4Ary +z3GAANAo2BkAABuBmbgbodHA4H7xwOHFocHPcoAAuL7PdYAA0CgXhQDZDyEBABiFJHhCIACAyiBi +AIHgAdsA2Q/0CNhgwAEcQjACHMIwAxzCMItwBNnWDe//iiMIAAjYANn+De//KHIA2A0Eb/yhwPHA +hgtv/AjZz3Kt3u++jg4gAjpwIghgACpwg+BI8s9wgADcqwOQTiDPAYfnUAAGAM9wgAD4Gj4OYAD0 +IMADAN4A3QTYGnAqcOlxyXIKJIAPrd7vvkYOIAKpczYIYAAqcIPgJvJCIEAggOAB5Sz3AeaE5qj3 +AeeH57gHxf8qcM9yrd7vvhYOIAIQ2a4PIAAqcIPgDvLPca3e774CDiACKnAGD+//KnCD4MogIgA5 +A0/88cDaCm/8A9qmwRpwRgzgDYPBA8HPcIAARBwUFAcwAN7wIEUAz3CAAEwc8CBGAM91gAD4Cg7Y +xKVAwATYQcDPcK3e775CwATCCnCA254NIAKYc9IJIAAKcIPgQPIDw89wgABkHEKF8CDBAMClgOEM +FRAQwaUI8s93gABsHPAnwBCA4Ab0wKXBpQDZGfCEKgwDCglgAC9wDiCBDwAAAAEgpQPAhCgMI/An +ARDyCGAAL3AOIIEPAAAAASGlBIWB4A30AIUReIwgB43C98ClMXmMIQeNw/fBpQDYZQJv/KbA4Hjx +wP4Jb/wE2qbBagvgDYtxz3AAABvSAN2pcf4MYACpcgDBz3AAABzS7gxgAKlyAMHPcIAAoBoBwhUg +QQAAkQLBBbrCDWAARXkDwIDg3AAFAM92gAD4CtLYCLgZ2boMYAAA2s9wAAAi0kAmARLiCmAABNrP +cAAAI9JAJgET0gpgAADaz3AAACDShMHGCmAAANqFx89wAAAh0ulxtgpgAADaAoYX2b4OIA1AJgIS +A4YX2bIOIA1AJgITBMAX2aYOIA2EwgXAF9meDiAN6XIChgDZ6g8gAIu5AqYDhgDZ3g8gAIu5A6YE +wADZCLjSDyAAi7kIdwXAANkIuMIPIACLuSKGMXkZ4QUpfgAjhi9yUHcxeRnhBSl+AC9xzCBFgIb3 +A8AB5RB1MgfO/wPAEHXG9wHZz3CAAPgKJKAA2C0Bb/ymwPHAwghv/AnaqcEIdiYK4A2LcYYOb/wh +wAhxQtimDGAABbkMFAQwAMHJcAbCCiWAD63e776WCyACAsMCDyAAyXCD4CryAMEFws9wgADoGgDd +8CBAAATBCroEIoIPDwAA/Mm5RXlyC2AAqXJGCiARBdggFAQwAMHJcAbCCiWAD63e775KCyACB8M6 +Du//yXCD4MogQgOZAG/8qcDgePHAAghv/ALap8GacIoJ4A2Dwc9wgAB8dwCAANlFwM9wAAAR0hYL +YAAocs9wAAAS0gDZCgtgAChyz3AAABPSANn6CmAAKHLPcAAAFNIA2e4KYAAocs9wAAABRAfZ3gpg +AADaz3CgALQPcBAXAAYJIA0B2KIJIBEF2LzYrgtgAADZw9imC2AAANmKIEQImgtgAADZiiAECpIL +YAAA2SXFtdiGC2AAqXGKIIQGfgtgAKlxA9hAwATeQcbPd63e775Cx4pwBMEDwh7bmHNKJQAASiYA +AF4KIAJKJwAAjg7v/4pwg+AsAgEAz3WAAPgKCBUWEAwVEhAO2EDAQcZCx4pwBMEDwh7bmHNKJQAA +SiYAACIKIAJKJwAAUg7v/4pwg+DwAQEACBUVEAwVEBAO2EDAQcZCx4pwBMEDwuHbmHNKJQAASiYA +AOoJIAJKJwAAGg7v/4pwg+Dc8ggVERAMFRMQA9hAwEHGQseKcATBA8Lh25hzSiUAAEomAAC2CSAC +SicAAOYN7/+KcIPgwvLChaOF5g/gDC8gxwUEwc9ygABkHAIhQKXPc4AAVBw1egCiAiMAJM9ygABs +HDV6AKLD2jV7QKPPc4AAXBw1e0CjP/TPcKAAsB8BgIYg/wGA4AHYwHgvJgfwE/TPcKAA/ER0EAQA +ZBAFAAohwA/rcs9wAACxE7UGb/2KIwkKzgrAAwohwA+A4OtyEPLPcKAA/ER0EAQAZBAFAM9wAACx +E4kGb/2KI0kKz3AAAK0TiiOJCkokAAB1Bm/9CiUAAYDgOfTPcKAAsB8BgIYg/wGA4AHYwHgvJgfw +EvTPcKAA/ER0EAQAZBAFAAohwA/rcs9wAACxEzUGb/2KI0kMTgrAAwohwA+A4OtyD/LPcKAA/ER0 +EAQAZBAFAM9wAACxEw0Gb/2KI4kMz3AAAK4TiiPJDMHxAiWAJdlgAiFBhA/yAiVCJAx6EgwgAC9w +BMICJQEgz3CAAEQcVXggoAIggCS5YAIhwYQP8gIgwiQMeuoLIAAvcATCAiABIM9wgABMHFV4IKAA +2D0FL/ynwOB48cD+DSAAANjPcAAADdIA2RYIYAAA2s9wAAAM0gDZCghgAADaz3AAABXSz3HzD//8 +9g8gAADaz3AAABvSANnqDyAAANrPcAAAAtKg2Zq52g8gAADaCdiMuADZzg8gAADaFNiMuP/Zwg8g +AADaANiMuP/Ztg8gAADaEdiMuP/Zqg8gAADaAtiOuADZng8gAADaAdiOuM9xAAD//44PIAAA2s9w +AAAL0gDZfg8gAADaz3AAAA3SAdlyDyAAANrPcAAAEtIA2WIPIAAA2s9wAAAT0gDZVg8gAADaz3AA +ABTSANlGDyAAANoA2NHA4H7xwCYMD/yjwYtxAd2KDaANqXLPcIAAXHYAgEHABNgKCGAALNkO2AII +YAAA2SHGtdj2DyAAyXGKIIQG7g8gAMlxiiBGAOIPIADJcQDAgODMIKKAzCDigMwgYoHMIKKBzCAi +gswgYoLMIOKCyiFCAwP0A9mB4MwgooDMIOKAzCCigcwg4oHMICKCzCCigswg4oID9IK5L3mE4Mwg +YoHMIKKBzCDigcwgIoLMIGKCzCCigswg4oID9IO5L3luDyAAD9gA2NEDL/yjwPHA4cWhwYtxxgyg +DQHaz3WAAOytABQEMM9wgABEGkAlAR8S2uoNIAAA2wAUBDDPcIAAQBqpcQHa1g0gAALbz3CAAGga +JG0c2t4NIAAAwwDYgQMv/KHA4HjxwOoKL/wD2qPBunBqDKANi3EBwc9wgADwGgDf9CBOAALBz3CA +AAgbgOb0IFQAz3CAAPgK4KDhoMwmopDMJmKRzCaikcolwhMC9ADdgebMJuKQzCbikcwmIpID9AHd +hObMJmKSzCaikswm4pIC9ALdhg3P/6pwz3Kt3u++kg3gAclxYg7v/6pwg+B28gDAgODMIKKBUPSA +5swmYpDMJiKRSvQCwIDgSPTPcIAARBy1eFpw4KDPcIAATBy1eHpw4KDPcIAAZBy1eBpw4KDPcIAA +bBy1eDpw4KDPcIAAVBy1eOCgz3CAAFwctXjgoKpwyXHPc63e774aDeABqXLmCe//qnCD4DjyAMEA +EgAghuEB2cB5A7m1ecdxgAC4vgChABMAIAShABAAIBt4CKEAEQAgG3gMoapwqXHJcgokgA+t3u++ +zgzgAYpz3g6v/6pwg+AS8gDAz3GAAPgKQIEEvga42GAVIAAFx3CAAPS+IYFCsCOwANjFAS/8o8Dg +ePHApMGLcfYKoA0E2gDAAcEEuDV4z3GAAKgaEGFuDSAAAsEAwAHBBLg1eM9xgADIGhBhWg0gAAPB +ANikwNHA4H7xwKHBxg8gAotyAMChwNHA4H7geKHB4cXhxrhwz3CAAMjHEBAGAM9wgABgPwWAmHGA +4KHBhiT3D3Pyz3CAAIRvAIDQcA30z3CAAIxvAICwcAf0z3CAAIhvAICQcGHyABxAMSDCARSBMPDe +UyLAAMR6UyHHACR+VHpALo0BtH26YhV6z3GAALjASGHUfghzhiP9D3t7OmJBimV4SHOGI/0Pe3vd +ZRUlzRG+YcKOZXrJc4Yj/Q97e7lhI4llfihzhiP9D0wkAIB7e2V5E/LPdaoA4AdzhVEjAIAG8kil +CaUqpculEPAIpUmlyqUrpQrwCbpFeM9ypwAUSAOiCbklfsSiz3GAAIRvABmAAc9wgACMbwAYQAHP +cIAAiG8AGAABocDBxsHF4H+hwPHAHggP/OINgAOA4NAOwQIA3hfwcNwCJQATRC4+Fy93UgygDidw +QiUAHkoMoA74YADZACaAH4AAsj4gqAHmz3WAAEQ/axWAkBB2pvfPcIAAuG0iDIAOz3GAAEg9AIGh +uK64JQAv/ACh8cDPcQCCAQDPcKAArC88oM9wgAA4SgCAgOAM9M9wgADQKgCAguAG8l4MgAPRwOB+ +0gxAAOoO4AVv2IDgB/RqCeAQCti+DEAA8vHy8c9ygAA4SiCCBnngfyCi4HjPcoAAOEoggiV44H8A +ouB4BCiADwAAL7pCKcJ0UHpEKv4CAiBADhB4gOAE8gHiUHqD4ECxA/aA4AP0ANgC8IDY4H7geOUH +j/3xwAoPz/s6cM91gAC4LwCFAeCB4AClCvQB2c9woADIHDGg4gjgEChwCgygBQfYGnDPdqAA7Cfr +huYP4AcqcAumAIVCIECAAKUG9M9xoADIHADYEaHeCKAFCnARB+/76XDxwKYOz/s6cCh1GnLGC6AF +B9hRIICgWnAG8pYM4AjI2FAgkCBMIICgHPIL9kwgAKAS8kwgQKAj9BXYE7gO8EwgAKQT8kwgAKgZ +9AIJoAQqcAClEPAp2BK48CBABAClCvAr2BK4+vHPcKAA7CcZgAClYgigBUpwjQbP+wohwA/rcs9w +AACKE3vbCiRABLUGL/0KJQAE8cAWDs/7CHc6cYDiGnMA3s33SHX0J4ATFSGBI1IP7/8KcmG9gOUB +5jb3TQbP++B48cDqDc/7ocEId4DiGnEA3s/3SHX0J4ATHgggAItxAMAUIIwjYb2A5QC0AeY09yEG +7/uhwPHAtg3P+6HBGnDPdoAAuC8AhgHggeAodQCmCvQB2c9woADIHDGghg+gEChwrgqgBQfYCHcW +DaADs9iA4BXyi3G2DO/8CnAAFAAxAKUAhkIgQIAApgb0ANnPcKAAyBwxoHoPYAXpcLUF7/uhwFEk +wIDxwAXyKg/P/wPw6ggAANHA4H7geFEjwIDxwAXyQg/P/wPwAgkAANHA4H7gePHAHg3P+wh1juAB +3sImjRPPcKAAtA/8gFYOoAwA2MlwqXEB2jYKoAVIc0YOoAzveFUFz/vxwN4Mz/s6cCh1GnL+CaAF +B9hMIICgWnAf8g72TCAAoBXyTCBAoCj0FdgTuBUgQASgoB3wTCAApBXyTCAAqBz0KnCyD2AEqXER +8CnYErgVIEAEoKAL8CvYErgVIEAEoKAF8M9woADsJ7mgog5gBUpwyQTP+wohwA/rcs9wAACJE0rb +CiRABPUEL/0KJQAE4HjxwFIMz/sIdzpxgOIacwDezfdIdfQngBPwIYEjVg/v/wpyYb2A5QHmNveJ +BM/74HjxwCYMz/sId4DiGnEA3s33SHX0J4ATGgggAPQggSNhvYDlAeY392UEz/vgePHA9gvP+xpw +z3aAALgvAIYB4IHgKHUApgn0AdnPcKAAyBwxoMoNoBAocPYIoAUH2DpwXgugA5PYgOAZ8rB9QCiP +IYG/EL2lf89woADsJ+agAIZCIECAANkApgb0z3CgAMgcMaC6DWAFKnDtA8/74HjPcYAAaDEjgc9y +gACsCjIhgw8AAB8DAaIyIYEPAAAZA2GySHAgsgjZc9oe26kGYAwYu+B48cDPcIAAaDEDgAmAUSBA +gcogYgBcDqL+yiEiAM9xgACUCYogjAwOD+ADIJGGCe/9AdjRwOB+4HjgfuB48cAiC8/7CHUodiCF +QiEBgMohYgCA4QDYBfJaD2AOqXAB2CSFgObQIWIAzyEiANAhIQDPIWEAgOAkpZAOYg7KIEIDTQPP +++B48cDaCu/7iiIEDs9wgABoCQCAz3aAANC2JoBAJgAUWgtgDQThAYbPdYAAaDEihsgdGBDPcoAA +lDTJHVgQIZYnqiCOBCCADwAGAACA4AHYwHghqgaqAN7mD6AKyXDPcIAAvS/2DK/+wKhGCoADgOAK +8soKgAOA4Ab0tgjv/clwKvDPcIAAwC8kgCCBJg7gA4ogTAyKIJMBGg7gA6nZAtieDaABAdmCD2AQ +AtgjhUiBNJFTIgAAygogCwHbiiCMDvIN4AOz2QDZnrnPcIAAaDggoHUCz/vxwLDg4cUIdYP2ueXM +9gohwA/rcs9wAACaISLbmHV1Ai/9uHNCJQAcUQLv+w944HjxwNIJ7/uYcEGB5LqwiTvyconPdoAA +EOvybfZ/5mY0yva+CBGFAEkgwAAI8s92gABQ7bZ+wY4D8ADex3CAAFDttngEiAgjAwAII4MDACNA +AUkgwwMWbXV4z3OAANDuA2PPcIAAUO62eM91gABoMaSFuIUBgKV4BCCADwAAAAgGewLwY4Hou5gZ +wAAA3QnypBEAAADdl72RuJS4pBkAAFEkAIAc8s9wgABoMcSAwLrIhgQmjh8AQAAAPr4e5th6RXv+ +u5gZwAAN8qQRAACFJQEUjLiRuKQZAACcGUADHfD/uxLypBECAIUlARSWvZi9jbqRuqQZgACcGUAD +JIAQgZ64EKEL8JS9lr2cGUADJIAQgZ64n7gQoSUBz/vgePHAsgjv+wPYz3aAACg9IIZAeYDgbfIg +hmB5BNiA4GnyIIZgeQDYZ7iL4Ar3MyYAcIAAMHRAJwFyFHkAeQDYQvDPcIAAMD0ggGB5AdiA4AHY +wHg48M91gAAwPSCFYHkB2IHgEfIghWB5AdiD4AvyIIVgeQHYguAH8iCFYHkB2IHg3vUB2B7wz3CA +ADA9IIBgeQHYheAB2MB4FPDPcIAAMD0ggGB5AdiB4AHYwHgK8M9wgAAwPSCAYHkB2IPgAdjAeIHg +F/Ighut1YHkA2Bpwz3CAADA9IIBgeQHYuHA32AohwA+pcpTbYQAv/QokAAQpAM/74HjxwMIPj/vP +dYAADL0gFYAQgeDPdoAAnAkJ9ADf9gigDOlwAtgDpuSmA/AB2AWmiiDMCGoL4AMohfEHj/vPcIAA +DL0ogM9ygACcCS94geAF9ALYBKID8AHYBaJBA+ADiiDMCOB48cBeD4/7z3WAAPAKAIWB4A7yCiHA +D+tyz3AAAIcniiNEBkokAADJB+/8uHPPdoAA7ApAhoLizCLigcohwg/KIIIPAACIJ8ojgg8AABoB +yiLCB+n1guI49M9xgAC2CmCJz3GAAE7ZhCsfADIhQQ5RIQCACfLPcYAADL0gEYEAgeEP9Bi6ELgF +IIEAhSEMAKoK4AOKIIsAA9gApgDfQ/CaCuADiiDLCCCGAIUYuRC4BXmFIYgAggrgA4ogiwAC2ACm +AKUy8M9xgAAMvSARgQCB4QDfLPTPcYAAtgpgic9xgABc2Ri6hCsfADAhQQ6A4RC4BXoJ8s9wgAC4 +CgCAhiA5jwnyTyIBAjIK4AOKIIsAAdjE8U8iwQIiCuADiiCLAAjYAKbgpaEGj/uKIEsKCgrgA0hx +z3GAALgKiiBLCfoJ4AMggQCGQIUYuBC6BXrb8eB4z3CAACS4KIDPcoAAnAkveIHgBfQE2ASiA/AB +2AWiyQHgA4ogzAjgePHA5g2P+89wgABQIQqAgOAP8s9ynwC4/x2iz3GAAKAvBIEB4LO4tbi4uASh +FqLPcIAA7AoAEAQAz3aAAPAKABYFEEwkAIHMJWGAyiLCB8oggg8AAIknyiOCDwAAUwEYBuL8yiHC +D891gADECgCFANnPd4AAKNkPIQEAz3CAAMAKQIAmeiAXgRCB4UCgEfRALAEGQC0ABCV4QCwBAgV5 +iiCLAB4J4ANFIUEBBdgj8MLhz3KAAJBKCYIM8owhwoEH8owhgoIG8oC4BvBFIMAABPBFIEABCaJA +LAAGQC0BBAV5QCwAAgV5iiCLANYI4AOBuQLYAKaKIEsExgjgAyCFiiBLBL4I4AMoh89wgACgLwCA +USCAggbyANnPcJ8AuP89oC0Fj/uA4ADayiCBABHyz3KgALAfAdt5os9ygADAL0iCYIICI0IAcHHC +Im0AQnjgfg3Ix3CAABzWNIgB4S95hOE0qAMSAjaM9s9wAwCEAKAaAACKIAgABhoYMAvwiiAQAAYa +GDDPcAIBhACgGgAAiiAEAC0A4AMA2c9zoACwHwHaWaPPc4AAwC9og4DgYIMF8iJ7cHCD9wDYAvBI +cOB+4HjPcqAALCBwgoDgCvICI0IA13IAgAAABvdQcIb3ANgF8HBwfvcB2OB+8cD+C6/7mHClwSh3 +uHMA3gQjgA//AAAAGLoFem95CLn/2Ai4ZHgouAV5RXkI3fQkgAMneETAeg5gDhAUADESFAIxYb1A +KAEEBXlHeUTBEBQCMRQkgDOA5UCwAeYp91MlwgVApwAUDQEH2QfwEH0UJ0wQALRhuRQkQDC7e0+9 +AJCle4HhcHt4YDL3BCCADwAAAP8QuAV6QKfNA6/7pcDgePHANggAAN4IAADyCAAA0cDgfuB4z3GA +AOQ3QCEAA1UhwgVQcEb3ANkEGFAAUHC99+B+4HjxwNIIoAcA2AYI7/wA2M9wgABYbt4Iz/zPcIAA +OG7WCM/8fghP/i4LwAkA2DIPIAOA2YYNAA6mCMACzg9ADpoKwAEaDAADANj6DW/+CHEOCs/+vgmA +DIYMAAOiDKAB/9gmCYABiiCFDwhxjgsgBghy0cDgfvHAugqv+4og/w/PdaAAOC7HhQelz3CgAFQu +C4DTuAYmAHAPAP//ig2gDxbZmgoAAsel9QKP++B48cAmCKAHAdhaD6/8AdjqC4AQ0cDgfuB48cDh +xQDdz3CAADgKoKDPcIAA6K6ssI4OYA6pcNYNj/zmCKANqXDWDUAE8gtP/ZYIgAGKIAYKCHH6CiAG +CHKSDO/7qXBeDM/7lQKP+wDZz3CgAOwnK6DgfvHAz3CAACgoYg6gDxPZ2gsAAQLYHg1v/gDZ0cDg +fuB48cDPcIAAeChCDqAPBNm6CwABAdj+DG/+ANnRwOB+4HjxwKHBi3AmDqAPAdmaCwABiiBTB5IN +oAMgwYogUwiKDaADARSBMCDAgeAB2MIgAQAH4MIMb/4BFIEwocDRwOB+8cChwYtwqg2gDwTZAMBR +IECAXA2iB8ogogAAwFEggIB0C0INAMBRIMCAEAsCCADAUSAAgQQNwgdyDKAOAdjPcYCu4AHscCCg +AcjscQChz3KAABSsiiSBfQDZqCAAAvAiQwDscGCgAeFCCyABANihwNHA4H7xwOHFo8EB2EDAz3WA +ANAoqXAqDaAPXNk2CM/+OoUbhSR4PIUEeYHAiggv/0HBAcA7hQR5QcG+DKADiiBYBFUlQB8GCS// +qXHPcIAASCr6CC//QCUBG4twkgkgAQTZTgkv/wHAAIWA4AX0BYWA4KQKAf9WD0/+HQGv+6PA8cDh +xc9wgACkdQCAosFBwIHAAd3mDKAPqXGKIBcKWgygAwESATYhwoogFwoFFIEwELpGDKADRXlAxYtw +MgkgAQTZ1QCv+6LA8cChwYtwrgygDwHZAMBRIMCBLyQHAAAcADEM8gcSBTYKIcAP63KKIMUAvQDv +/CfbiiAXCvoLoAMBEgE2JgjgAUDY7gkAAaYPQAihwNHA4H7xwAoIj/vPdYAAeC8ChSOFAd4QccB+ +qXBKDKAPA9nCCQABgOYD8gKFAvAAhUkAr/sDpeB44H7gePHA4cXPdYAAkC+pcOILoA8Q2QAVBBBM +JECAEfJMJMCAH/JMJACBE/IKIcAP63KP2I24mNspAO/8uHMBhQy4BCCADwEAAPABpQvwIYXPcIAA +/EkgoCOFz3CAAB4mIKgDzNdwAAAAQAHYwiAKABe4x3AADgAAg7iduJ+47HEAoQESATbscCCgZgkg +AQHYuQdP+/HA4cUA2c9ygACgLyCiIaIios9w0P4AAASiABYNQKCiABYDQP+9YaIAFgBAABYAQBDy +/7tA2M8g4gfKIIEPAADQAM8g4QfPcZ8AuP8doQbwz3CfALj/PaADzNdwAAAAQAHYwiAKABe4x3AA +DgAAg7iduJ+47HEAoQESATbscCCg2gggAQHYWgzAAi0HT/vgePHAABYCQKHBQMIBFIAwUSAAgAby +z3GAAHCuBfDPcYAAOL5AoWCJAdoH8AAWAEAVIYwAAKQB4n14EHL591EjAIAJ8gAWAEED8ADYFSGM +AACkAeKF4rr3A8zXcAAAAEAB2MIgCgAXuMdwAA4AAIO4nbifuOxyAKIBEgI27HBAoH4IIAECiaHA +0cDgfuB48cDhxc91gAAMC6lwNgqgDwjZAIXPcaAAuB4CoQGFA6HaD8AAdQZP+9EHwADxwKTBi3AS +CqAPENkDzNdwAAAAQAHYwiAKABe4x3AADgAAg7iduJ+47HEAoQESATbscCCgAMBRIACAA8AG9ALB +8g4gAQDaBfAeCqACAcHGD8AApMDRwOB+CQAAAAUAAADxwG4PwAAdBgAN4HjxwOHFtMGLdalw3gmg +DxTZAMCG4Mwg4oEG9E4MYAOpcAhxJPCC4Af0Jg1gA6lwCHEc8IHgBvSqDmADqXAIcRbwg+DMICKC +B/RCC2ADqXAIcQzwhOAG9MIMYAOpcAhxBvCJ4B70iiGEAAPM13AAAABAAdjCIAoAF7jHcAAOAACD +uJ24n7jscgCiARICNuxwQKAWD+AAKHBtBW/7tMAKIcAP63J82I24d9uLu0okAABtBa/8CiUAAeB4 +8cDhxaLBi3WpcCYJoA8C2bIOYAOpcJYOwAAxBW/7osDxwK4MT/sAFhBAocFMIICgyiHGD8oixgfK +IIYPAACPDMojhg8AAIwFyiQGBBQFpvzKJSYAABwANIt1qXBGDeAABNmKIMwKRgigAwpxhCgIKS93 +ACeOH4AARLquCCAOBG7PcIAAKLwagBJwEfIkFoAQgOAk8qlwBNmZ2h7bfg/gCxi7ANgkHgIQGPDH +d4AAOLoLh4G4C6fPcIAAnAkvgIDhAdoF8kSgBNgG8ADZLKBJoCSgBdiaDoADWQRv+6HA4HjxwOHF +z3CAAMAvJIAggb4PYAOKIMwNz3CAAGg4AIAEIL6PAMAAAAn0z3CAACC4AIiMIMOPBPLmDC/9AdjP +dYAA0LapcAoIoA9S2Z4OgAijhYogTA52D2ADqXFyDcAAiiCMDmoPYANq2SYOIAGpcAhxz3CAAKhq +RggADv7Zz3CAACC46QNv+yCo8cDPcIAAwLy+D2APDdk2DcAA3gpAB9HA4H7gePHAOgtv+4ogzA6i +wRoPYAOKIQUGi3CWD2APAtkDFJEwTCGAoI/2BBSFMAohwA/rcs9wAACEDIojhQmlA6/8CiRABAIU +gDDPdoAAnAmEKQgpL3cgHgIQz3CAAFy6+WAsiUAgEgOA4QAUFDEAINMDHPKKIEwNsg5gA4ohBQyK +IEwNpg5gAypx1gqgAUIkgCEB2BG2/9ghHgIQQCYAGIIL4AAE2WvwANgRtiEeQhTPdYAASLhAJRAS +/WWLcKlxBgzgDALaQCUAEqoOYA9CJIEhACeAH4AASLgIEAUAz3CAAHjzBYBTJUEFEHHKIcYPyiLG +B8oghg8AAIUMyiOGDwAAhAHcAqb8yiRGBG4OoAgqcEokgHAA2aggQASEKQgJL3AyIgIggOII8ggV +BRAwIAQgDCRAgSbyAeFAJgAY5grgAATZAdkMG0IghxUAFoC4hx0YEFILoAMocIogTA3ODWADiiHG +CIogTA3CDWADIoWKIEwNtg1gAypxGQJv+6LACiHAD+tyz3AAAIYMVQKv/IojxgUAFgBAkQPAAPHA +4cXPdYAAHNipcAYOYA8D2QGFz3GgAIAlDKEChQ2hAI1RIACAANiOuATyD6ED8BChXgvAAPkBT/vg +eOB+4HjgfuB44H7geOB+4HjgfuB48cBiCW/7B9ijwQDfQsd+DC/+CdmLcF4OYA8E2T7YIg1gAwES +ATY+2BYNYAMEFAExPtgODWADBhQBMQPM13AAAABAAdjCIAoAF7gAIIEPAA4AAAYUADEbeBPgBCCA +DwAA/P8leJ24n7jscQChARIBNuxwIKAAwexwIKAEFAEx7HAgsAYUATHscCCwBhQEMVEkAIAN8gES +BTYKIcAP63LPcAAATyZRAa/8adsB3c9xAAAiIo4MYAM+2LYIYASpcALBJXhCwADAUSAAgMolohDK +IYIPAAAzM2gMYgPKIKIPz3CgACwgQBAQAALwAecGFAAxEHeAAAoAguUEFAAxgsYW9Bt4EHjJcX4J +YASpcuxxAKkEFAAxyXEbeAHgEHhmCWAEqXLscQCpCPDJcVoJYASpcuxxALEEFAAxQCBFAM9woAAs +IBCALyVIAQIgAATXcAEAoIaaB+X/BBxEMQgUBDAKIcAP63LPcAAAUCaNAK/8jNvuDwAEz3CgACwg +MIA+2MILYAMCIQEEP9i2C2ADAsEI2PoKL/4J2e4J4AACwCkAb/ujwOB48cAAFoVApsFMJQCGABxC +MUT2TCUAgk32CiHAD+tyz3AAAGYZldstAK/8SiRAAAAWgEABHAIwABaAQAIcAjAAFoBAAxwCMItw +dgpgB4HBAsKA4g/0ABSFMAohwA/rcs9wAABnGZ/b7Qdv/Iokww8EwGB6BcEDwYDhC/QKIcAP63IA +FIUwz3AAAGgZo9vt8QHAgODjIEIAyiAiAAIJwACmwNHA4H7xwM9wgACcRXILYA8J2eYLwAUGCMAF +bgjABd4IwADRwOB+4HjxwM9wgACgR04LYA8H2cYIwADRwOB+4HjxwKXBi3A6C2APBdkAwFEgAIAV +8s9wgABoMQOAGIiB4A30ANiauM9xoADIHw+hAcCkGQAAw9gauA6hggjAAKXA0cDgfskEIAcA2OB4 +8cDPcIAABEquCmAPKNliCMAA0cDgfuB48cDhxQAWAECC4M91gADQKgClH/QA2c9wnwC4/z2gHNkV +8M9woADIOzaARCECBzaAhiH/CCV6NoCGIf8IRXnPcqAAqCBNguTikfeA4ev1CgjAACCFhOFeAA0A +MyZBcIAAYHRAJ4ByNHgAeDgQBABYEAUACiHAD+tyz3AAAJkhkQZv/C/bOgngA1TYUSBAgBPyz3GA +ADhKAIGBuHoK4A8AoQnwVggv/gHYWgzAAwPwJgwABUUGD/vgePHA+goACpoPgADRwOB+4HjxwPoJ +oAoA2M9wgABoMcgQAQbAuYHhAdnAeZoMoA88EIAA0cDgfuB48cDhxc91gABoMQCFxBAABlEgQIEN +8gohwA/rcoXYjbiKI5wPSiRAAPUFb/y4c0YMAAyaCSAOAdjPcIAAsDQIiIfgHvQBhcQQAAZRIECB +GPIKC8/8z3GAAHjzBJAlgQq4MHAO8gohwA/rcobYjbiKI10CSiQAAKkFb/y4c54IT/yuCyANANhW +CIAD3g6AAHkFD/vgePHAmgqgCgDYEg1P/M9xgADkxwKJ4gugDyCJ0cDgfuB48cCiwYtw9ghgDwjZ +AMCA4M9xgACESgChB/IGFAAxA7EEFAAxArGODoAAosDRwOB+8cCiDC/7gdihwWDAANgBHAIwA8zP +doAA7AoCHAQwiiCLB2IIYANk2YogiwdWCGADIIaKIIsHz3WAAPAKRghgAyCFz3CgACwgQBARAACG +gOAP8s9xgAC4CgCBgbgAoc9xgACQSgOBAeADoQHYAvAC2BpwAMDyDW/7CnHPd4AAkEoDEgE3XpeB +2GCGPgzgDwokAATPcKAALCAQgEAfQBRMIICgEadIHwAUUvIAhojgGfTPcIAAZG1KCMANMg3v/RTY +Pg8gBQTYIIZAhYogiwAYuRC6sg8gA0V5ANgApgClheAD8gDYBfAAhYTg/fUB2C8mB/AP8voN4AMU +2IDgCfTPcIAASG0mgCOBIIFqCMANAIaA4ATyANgG8ACFgOD89QHYLyYH8AX0DgvAAoDgEPKKIAsA +Ug8gA5/Zz3CAALgKAIAvKAEA1g3v/E4gwAe1Ay/7ocDgePHATgsv+4DYocEDEgE3YMDPc4AA7Apg +g891gACQSgIcRDAvpShySiAAIAEcAjRGC+APCiQABM9wgAC0NxAQBQBRJYCADPQAFAQwCiHAD+ty +z3AAAHYnkQNv/Gfbz3CAAOwKAICA4JQCAgASCAAMgOCIAgIAz3CAAKBHAIBRIACBeAICAIogCg+m +DiADARIBNqYMQAvPd4AAtgoAj4QoHwAAIYB/gABM2c4OIA+KIQsPYI8KIYAvgABo2YQrHwAAIYJ/ +gABM2QWShiB/DBx4UyCAgAj0z3GAALgKAIGGuAChAopRIECAaPSEKx8AACGAf4AASNyCDiAPGNkA +j4QoHwAvcDQhDSBCJQQWjCQHgc33CiHAD+tyz3AAAIEnkNvJAm/8iiUHAc92gACE3NhgSg4gD4hx +AI/PcYAAyAqEKB8AMiZFHgAmQB5MJQCAAKEN8gohwA/rcs9wAAB3J5XbiQJv/Iokgw+hiM9xgADM +CkAlhRBMJYCIQCWCH0CpzPcKIcAP63LPcAAAeCeb21kCb/yKJIMPz3GAAATZXgqgDKhyAI+EKB8A +NCFBLs9wgAC0CiCwIPAcEgQBjCQIgMz3CiHAD+tyz3AAAIsnpNsZAm/8iiUIAIQrHwAAIYB/gABI +3JYNIA+Icc9wgAAo2SAYAAQA2TPwABYCQIQrHwAAIYB/gACY3zDgNXhAoAAWAkEAIYB/gAAY4DDg +NHhAsAAWgEAAIY1/gAA43lJpVHq6YhCqEaoSqgAWgEAUqhWqFqoAFgBBACGCf4AAVOA1ehqyABYA +QQHhG7Jgj4QrHwAAIYB/gABM2UOIUHGMB+X/L3UAJYEfgADI3wAlgh+AAEjgng1ACE4L7/0U2F4M +IAUE2ECPAcjPdYAA8AqEKh8AACGBf4AACOEAoc9wgADsCiCFAIAQuRi4BXmIuXYMIAOKIIsAAdnP +cIAA7AogoAAdABRGCm/7AMAeCcACgODgCQIQAxIBN89zgADsCmCDgNgocoYI4A9KJEAAI/AEhQHg +BKXPcKAA1AMckF4IQAEAwAYKb/sC2QMSATfPc4AA7Apgg4DYKHJSCOAPSiSAAEIOoAsC2IogSg/6 +CyADANl1AC/7ocDxwAohwA/rcs9wAAAwJYojjAeKJIMPkQBv/EolAADgePHA4cUg289xoADIHGmh +ABYAQM9yoAAQFAyiABYFQAHdTCUAgMohwQ/KIsEHyiCBDwAALCXKI4EPAAAJAUgAYfzKJEEDGBpA +AWgZQAED2A+iuaFqoXoJgAAVAA/78cDhxa3Bi3WpcO4LIA8N2QDAHXhTIAEARCk+DalwACGBf4AA +iOnqCKAMDdpGCYAA4Qfv+q3A4HjZA+APANjgePHAWg/v+oogkg2swSYLIAPF2YtwogsgDwzZABQA +MYDgL/TPdYAAKD0ghc92gACkQGB5ANiM4EAkjzAR8iCFYHkA2JDgC/IghWB5ANiR4AfyIIVgeQDY +kuAF9OlwyXEY2gTw6XDJcS7akg9ADAHYYB4CEBeGgOBMCWH7yiAhAAAUADGB4Bf0iiDSDaoKIAPe +2UAkgDDPdYAApEBAJYEbXg9gDC7aAdg3hWEdAhCB4RQJQfuCCIAADQfv+qzA8cCSDu/6F9m3wfIK +IA+LcCPASiJAIFMg0ACGIP4DTCAApEIoEQEMHAI0j/YKIcAP63Jy2I24iiMPAwokgATxBi/8CiUA +BEgUBTAgwEAojiDPdYAAEOvWflEgAIDAZUEtTwPAv75mhiD3D170gOAN9AohwA/rcnPYjbiKI88E +sQYv/AokAASKIE8FCnHeDmAFqHIBwALBCnJyCS/7Zm6A4D3y6XBGCqAPCnENFIAwhSDBAA0cAjCK +IP8PU8AAhqm4AKYSwIYg+w8ouA+uSiQAdADZqCAAA//auGFAKIMgdnsS4HhgQKgB4QpwQgmgD4tx +z3CAAGgx8CDBA8ARAAYPIAAEwBkYAA+OgeAH9IDnzCCio/QMwg8B3wLwAt+aCmACCnAH8IDgyieB +FMonIhKB51ACAgAghs9wgABoMQOAGIgodYHghiX7HxHy8g2AAoDgIIYa8s9wgACwNAiIh+AU9EEp +QANRIACADvITwOi4EsIK8oYi+w9BKgQCT46QcgTyqLhTwBPAEsIGeUR4JXiA5QCmhiD7DwvygODK +IAEEyiEhACwM4QPKIuEDDh5CFADYz3GAAFDuFiEBBECGAKH1ugGhBfQA2Iu4AaH2ugXyAYFFIAAG +AaFqCm/8i3ANFIAwUSBAgSHyWBQAMQW2WhQAMQa2BZaA4Bnyfg2AAoDgEPIGllEgQIAJ8ooML/wK +cI4MwA8F2BKuANgFtgfwCnAA2a4L4AMP2g0UgDBRIECAfvJQFAUxApYe2i8hSgEweSR4LykBAAIi +QAAQeEAoASEleM9xoADAL6IRAYYQeBDwLy1BEAIiQwMA3Q8lzRCmec91gABg6fQlzRCxcAjygOHx +9c9wAAD//wfwcHjPcYAAqL5ksddwAAD//zDyz3KAACDotGi7YgQTBAAjgwUhPoEm8s9xoP4QB892 +nwC4/zamz3GgAMAvFXkqEQCGFhEAhqBiCiHADxamAYPrchamAoMWpgODFqYEEwQADBMFAJHYjbg9 +BC/8iiOSB0wlAIAEHkQRFPIA3RDYOnAClhEgQIPKIAIEyiFCA7gK4gPKIkIDQiFAIIDgAeUx9w0U +gDBRIACBBvIKcDoJIAFVFIEwDRSAMFEgwIAb8jXBVhQCMQpwHgnv/BLDjCACgLhwDfQKIcAP63J0 +2I24iiOSD8UDL/xKJEAAUSXAgconIhEaCaAPCnADzNdwAAAAQAHYwiAKABe4x3AADgAAg7iduJ+4 +7HEAoQESATbscCCgEg1gAOlwQQPv+rfA8cDSCu/6iiBTCaTBAN2pcaYLYAWpcs92gADQ8gCOSiRA +IKGuAh4CFQHgAK6jrqGmoqakpqWmuK65rgHAuq4CwQemA8AopgmmAdh6DuACqXGBwPYO4A4B2QHA +B6ZadbjwgsDmDuAOAtkBjgLBAd/jrgHgAa4DwCimCabpcEYO4ALpcQLAi3J+Cy/7A8EEIAAFLyQH +IALZAq4AwCOuAaYmDuAC6XBMJACgkPIAwc9ygAAQ60ojACASaRZ4AGIPI1MgLbhTIBAAiiBUBe4K +YAUKcs9wgAA4CgAQEQAvJcokz3GAADgK+K4EJUAkAKED2SOuEB7AFBQeABQIHkAUA6bGDeAC6XDP +cIAAOAoAgIDgDvRMIQCgCvIqDeAEINgE2SOu+a6iDeAC6XAF2SOulg3gAgHYIMCGD+AAENkAwAK4 +FngAIIEPgAAQ66KxiiAIAAChBtkjrm4N4AIB2ADAANm+COADD9oAwIDZArgWeMdwgAAQ6yioKagH +2SOuSg3gAgHYz3CAAGgx8CACBM9zgABQ7sASAQYEIUAFwBoYAADCANnPcIAAcOpWeyCjIaNUeG4J +4A+gsIDgCvLyCMAPCNkjrvquAg3gAgHYQCJSICHAUnCQBs3/CdkjruoM4AIB2APM13AAAABAAdjC +IAoAF7jHcAAOAACDuJ24n7jscQChARIBNuxwIKAyC2AAinAK2SOusgzgAgHYDQHv+qTA8cCKIFUL +ANmSCWAFKHJSDkAMlgpAANHA4H7gePHA4cUAFg1AA8wB2tdwAAAAQAHIwiKKABe6x3IADgAAVg9g +DFMlARBRJUCQz3GAAKxMAdjKICEA8QDv+gCh4HjxwKHBi3DKDOAOAdkAFAUwTCUAgAv0CiHAD+ty +idiNuEXb4QAv/EokQADPcYAA8NUDGUIBQC2AAwKhSiTAcADaqCBAAgDYDyCAAAsgQIEE9AHiBPAO +uAGh8glAAKHA0cDgfuB48cA+CwAIz3CAAGgxLBCEAEwkAIEJ9MkQAAZRIECBBfL6DsABEPBMJECA +DPLPcIAAsDQIEIUATCXAgcwlYoIG9JoLD/vRwOB+CiHAD+tyz3AAAOwcSQAv/F/b4HjxwJoPj/oA +FhJBABYAQc9xgAAQ60AqgCAWeDAhBQCiwUwiAKRBLUADUyATAI73CiHAD+tyddiNuIojGAJKJEAA +AQAv/EolAABRJUCCDPIKIcAP63J22I24iiNYAuUH7/sKJIAEz3CAAFDtFiCABBpwngvgDgLZz3CA +APDpFiCABI4L4A4C2UAqlSEAJYAvgADQ7n4L4A4Q2YtwdgvgDgHZACWAL4AA0O4WCKAHENkBEIAg +kOCO9gohwA/rcnfYjbiKI5gKSiRAAHkH7/sKJYAEAN0Q2DpwFSVAI89xgADQ7jAhFAAEJIKvAAAA +AQQcADVN8kQkDiYjvgHmBCSALwYAAAAxuCHB32Cg4dEk4aI68oDiBPKB5gv3BCSELwAAACQMJICP +AAAAJCzyguBUAA0AguAG9IDiJvKC5iT0gOIF8szhQAAJAM9wgAAwPSCAYHkG2BB2FvfPcIAAaDHw +IMAEwxAABgHZBCC+jwAGAAAEJIAvAAAACMIhQQAruBBxRPcA2APwAdgPeAPwAd/pcAQkgS8BAADA +LrnPcoAANIYpYjB3AdnCIU0AgODMISKAGPJCIUAggOAgB+3/AeUCEIAgz3GAACx6CGGB4BzyCiHA +D+tyediNuIojGQAy8QohwA/PcIAAaDHwIMAE63KKI1gPwxAEBnjYjbhJBu/7CiUABQMQgCAIYYLg +CfIKIcAP63J62I24iiOZAhLxjgtgD0pwz3CAAPDpFiCABCCQz3IAABgVCSGBAFYPIAAgsK0Fr/qi +wOB48cAAFoFAz3CAAFRvIKgAFoRAABaBQM9wgABdbyCoABaAQFAkvoHKIcIPyiLCB8oggg8AANoU +yiOCDwAAgQfABeL7yiUiAM9wgACUCQCQgOAF8roKAA++CQAP7g4AANHA4H7geK0EoA4A2OB48cAG +Da/6ANlKJABy4HioIIACABYCQBUiQDAOGJgAAeEAFg1AABYOQP4JwA7PcKAAFASsoM9woADUC9yg +ng4AADEFj/rxwLoMr/oI2aLBARIONs91oAA4LhwVEBDGCOAOi3AAFAQwAN8EJL6P8P8AAMohwg/K +IsIHyiCCDwAApijKI4IPAADhBggF4vvKJcIAUSRAgsohwg/KIsIHyiCCDwAApyjKI4IPAADkBuQE +4vvKJcIA56WaDqAPP9gAwAQUATEHpTYPoA6CuRwdABQODiAAARqYM40Er/qiwPHAANhqDSAABBKB +MAQShTAKIcAP63I42IojDwGZBO/7SiQAAPHA4cXPdYAASD2pcIAgBw8SCOAOBNmKDEACgOAH8s9w +gACwNAiIieAO8gohwA/rcs9wAADUG37bSiQAAFUE7/sKJQABz3CAAGgxIYDEEQAGUSBAgcohwQ/K +IIEPAADWG8ojgQ8AAH8AyiLBB+bz/hUAF4Dgw/aO4Mn2CiHAD+tyz3AAANcbgNvY8cgRAAaGIH+O +BfRiCEAAD/AAhZK4AKULyK64r7gLGhgwC8iHuAsaGDCaD4/6Jg0AAMEDj/rgePHAQguP+s92gABI +PQCGz3WAAEQ+USBAggXyagxAAoDgI/IA2AitAdgJrVUmwBhyD6AOC9lVJsAYVibBFXoMIAwL2giN +z3eAANQ9RCg+CwZvMiBADoHgAdjCIAEACq0Ahom4AKYU8AiNKY0wcAX0TiBBAC95Ka3Pd4AA1D1V +JsAYRCk+CydwGg+gDgvZaY0Db0QrPgsyIEAOiuDKIckPyiCJDwAA0RvKI4kPAABqAaoAKQDKIskH +guDKIcsPyiCLDwAA0hvKI4sPAABsAYoAKwDKIssHgeAB2dP2QiBEAAokAHEocKggQANEKz4LACdB +HhV5RokiiTByJ/IB4A944gpAAoDgHfLPcIAAsDQIiIngB/KI4BX0AIZRIACCEfT6Dw/8guAF8vIP +D/yB4An0z3CAAAxuBoADgACAvg/P/N4LAABpAo/6CiHAD+tyz3AAANMbiiNFDEokAAB5Au/7CiUA +AeB4CQCgBgHY4HgZBuAJAdjgePHADgtgAuHFgODPdYAASD0O9AQVBBAKIcAP63LPcAAAvhuKIwYE +OQLv+7hzAIWIuAClVSVAHvYNoA4F2fcVgRDPcKAAyBwagAq5yrgVeDhgmSAKAEQdGBDPcIAAsDQI +iIfgJfTPcIAAaDEAgMQQAAZRIECBG/LsFQARz3GAAHjzJYEKuDBwyiHCD8oiwgfKIIIPAADEG8oj +gg8AAJ4ByiQiALwB4vvKJcIACgiAC14NYA0C2KYMj/u2D2AMANheDMAC5goAAIEBj/rgeKEG4AkB +2OB4nQCgDgHY4HhpBWAPAdjgePHAocEA2UDBABYCQAAWAECB4hryA8zXcAAAAEAB2MIgCgAXuMdw +AA4AAEUgAAOduJ+47HIAogESAjbscECg7HAgoB/wmgzgBotwA8wB2ddwAAAAQAHYwiAKABe4x3AA +DgAAhLiduJ+47HIAogESAjbscECg7HAgoADC7HBAoIoKIAAocKHA0cDgfuB48cBeCK/6AtnPd4AA +bG9eDaAO6XBAh892oADsJ891gAAwPeC6S/IrhkQigACGIv8OIrqhuRS6tLkFIIMAZXkrpgQggA8Q +AAIABCKCDxAAAgDPcYAAqAhFeAuhIIUE3mB5yXCH4AvyIIVgeclwhuAH8iCFYHkB2IHgEfQAh89x +oADIHFEgQIAH8gHYHqFuDwAHBfAA2B6hCgvABiCFYHkB2IXgNfQAh1EgwIAx8s9woABEHcWgw6DE +oCnwz3CgAMgcAdk+oAuGgbgLpjIPAAcghWB5AdiF4BP0z3CAAGgxA4AIgFEgAIAL8gDZlLnPcIAA +qAgroAuGlLgI8M9wgACoCADZK6ALhrS4C6YuCQAAuQdP+uB48cDPcIAAGCVODKAOAtkWCQAA0cDg +fuB48cA2D2/6ANoIdSh2z3CgANQLOIBCIQEIgOHKIYwAQCYAEhBxEAtFDwPM13AAAABAAdjCIAoA +F7gAIIEPAA4AAAduBCCADwAA/P8leJ24n7jscQChARIBNuxwIKAivgbw7HEAoQTlYb6B5gCFOvfi +CAAAMQdP+uB48cDhxc9yoADUCwPdsaIA23CiAxICN9dyAAAAQAHawiKKABe6x3IADgAARSICBp26 +n7rsc0CjAtoUGoIwBRIDNuxyYKILEgI3AeILGpww7HIAogESAjbscECg7HAgoM9woACwHwHZOaDP +cYAAwC8IgUCA7HBAoAyBAIBeCAAAz3GgAMg7DoGIuA6hqQZP+uB4A8zXcAAAAEAB2MIgCgAXuMdw +AA4AAE8ggQCduZ+57HAgoM9woAAUBAPZJaABEgI2z3CgANQLTaDPcKAARB01oOB+4HgD2s9xoAAU +BEWhz3GgANQLDaHPcKAARB1VoOB+A9rPcaAAFARFoc9xoADUCw2h4H4D2s9xoAAUBEWhz3GgAPwL +DKnPcKAARB1VoOB+ANmWuc9woACsLzyg4H7geOB+4HjgfuB44H7geOB+4HjgfuB44H7geOB+4HjP +c6AAqCAxg89ygADkNwOCOGADogHYEqPgfuB48cBODW/6uHHPcIAAKLxoEAQASiAAIEwkgIDKIsYH +yiCGDwAAkQzKI4YPAAC3B7QFpvvKIcYPz3CAAJwJB4CELAgJACGBf4AASLhMJQCAFnnHgT70z3CA +AGw4yg0v/IohDw/PcIAAADi6DS/8INnPcKUACAyggFMlTZAT8oHlE/KC5RTyCiHAD+tyz3AAAJIM +iiOfB5h1TQWv+wolAAT/2Abw/9gIuATw/9gQuM9xgACoCAyhraHOoQDZkbnPcKAA0BsxoD4LoA0B +2B/wz3OAAKgIDoOA4Bv0z3GAAIh7z3KAAGw4z3WAAOQ3iiTDfwpwqCDAAg9hFSXDE+eD8CIOAAHg +/mbHo60ET/o4EwQACiHAD+tyz3AAAJMMiiMfDMUEr/sKJQAE4HjhxeHGz3CgABQEA9kjoA3Iz3KA +ABDXYZLPcYAAANbEihQhDQBotQAggw+AACDWOOHAq2KCFXkGkmChAxIDNsAdBBAEgqATAQCGIcMP +JXigGwAAwcbgf8HF8cDWC0/6CHZmDCACKHWA4NElYpMB2AP0ANgEuM91gACY8xR4CWWB4R1lCvRW +DWANqXC+Di/9AY0A2ACtAYUFBG/6AKbxwKoMwAlCDaAMANjPcIAAsDQIEIQATCTAgRPyTCQAghXy +TCRAghryCiHAD+tyz3AAAMobu9vpA6/7SiUAAMILD/wOC0AP0cDgfs9wgABIPQCAUSAAggX0eg9P ++/XxEgkP/N4LD/wLyK64r7gLGhgwC8iHuAsaGDBeD0/65fHgePHAEgtP+s9xgACwNAyRz3WAAGgx +3pUOJg6Qz3CAACg/DpDKJmIQDLEB2EoOIAAA2UIIYAkB2K4ID/yB4Bj0AIXEEAAGUSBAgQPygOYQ +8gHYCHFyD6/8CHILyJC4CxoYMAvIBSCADwAAANQJ8AvIrrivuAsaGDALyIe4CxoYMNoOT/r9Ak/6 +4HjxwHIKT/oNEgE2z3egALwtz3CAAGgxLqcEgADdRhARAVYgUgRWIJMEDRIQN1YgFAVGIMAgAxIC +Ng0aHDCkEgAAhLikGgAAAZKiwYDghhpEAwjyz3CAAADX9CBAAIDgCfIBgu64BfRQIAAgLyAIIFMg +fqBKAwEAz3aAAKxMaRYAFgHgBBIDNmkeGBCkG0ADAZKA4Eryz3CAAADWNHiAEAEHgOFC9NAQAQFT +IcGAFPRyEgEB4JIif7gSgQAif/B/4BjEA6QSAQCGIfOPBvJov/B/4BjEA3ASDwHgEAABIZLiePFw +wicOEMIhzgN0EgABOGC4EoEAdBtEA6CzOGAQeJAbBAC+GwQAEIoQqwGCAaMIigirEooA2hKrlroy +8CoPIAKKIAUBD4f3uPrzT4f2ulMiwAIm8o7gSfenFgAWtroB4KceGBAc8GS4BBIBNhB4kBkEAAQi +gA8AAADwLLh0GUQDoLEQqaGxA8i+GUQDYYCoqYYj/w2Eu2GhEogSqfa6PgIBAADYlrj1ugQSATak +GQAAEvImD2/+ANgEEgE2pBEAAAQggg8CAAAALboFIgIELyCIIEDwAYFRIACBUvI0ylCJSSDEAPJq +z3CAABDr9n/gYPa4cokH8s9wgABQ7VZ4AYgC8ADYACSPD4AAUO1Wf+SPCCPDAwgjAABJIMMDFmp1 +eM9zgADQ7gBjz3OAAFDuVntBg89zgABoMWSDeINlegQigg8AAAAIRniYGQAAANiWuPS4QYGGIv8N +H/KA4lLymBGCAEAiAClIYM9zgABQvkDAIMLDulx69COCAFbwCiHAD+tyNNiMuF/bBbuKJIMPqQCv ++0olAACYEQMA6bucGUADI/KA4oC4pBkAACzymBGAAM9ygABoMUOChiD/A0S4MiQAIIm4QMAgw1SC +ZHqGI/8DhiL/DkS7emJPes9zgACoevQjggAg8FEjAIIK8oDiCvKYEYIAQCIAKUhgDfCA4gX0ANpI +cBDwmBGAAMO4HHgyIwAgQMAgws9zgAD4vcO6XHr0I4IAiBkAAJgRAACEGYQAkBEBAa4IIAAA2gQS +ATYDEg02hBECAYIZBADPc6AAyB9YYBB4sBkEAPgTAgCwFQ8RQn/PcoAAaDFEggAh0SNUEgQBACRP +BB9noBMDAPB/cHc4AA0AUIKYFQMQCyLAgBb0MIlQjTBy0SMighbyhiP/CSO7AeOB49D3ArrPcYAA +EOtWekFh8bkI8rgWABYB4LgeGBAN8IBwEHiGHQQQahYAFg0aHDQB4GoeGBANBy/6osChwfHAug4P ++gh1RsDovShw0AAhAEh2A7hAIJAFRCUCFiO6BCWPHwYAAAAB4kEvQBQEJYEfwAAAAFhgNrnPcoAA +AIapc8a7KWIIYjhgQS2BElIhAQDAuQO5GOGF4MohjQ8BAIkN1SEOAC8hSCAEJYEfAAAAGM9wgAA4 +fddxAAAACB4AIgDwIMAAJsGg4RIAAQDPcUJ70F4FKH4ACiDADgpxBSk+AAogwA6A5yS4AeAF8lMg +AQA4YO29AimBIw/yz3KAAHR+QJIFKj4AACGAfwAA/z8uuF0AIAAZYVkAIAAVeVElQJJUACEAJsW3 +5SAACwAzaFMlAhDPcIAA8HrwIIAABSk+AAogwA4B4AfwiuXAKOEAwCiiAM9xgABoMSOBwNo0gaR5 +hiH/DiK5OnraehliMHgI3OsFD/ozaFMlwBAceM9ygAC4fvAiAAAW4QUpPgAKIMAOAeAU2YMH7//a +eeB4z3GAAMAvJIFBKIIF1bgggUEpgwXVuQJ5z3CAAHjzYnoFgMm6BSi+ACdxz3CAAFhuA4AAgOB/ +OGDPcYAAwC8kgSCBQSiDBdW4QSmCBdW5EHFbY0r3z3KAAHjzRYJZYQJ5AeMD8AJ5QCuABZkH7/8l +ePHAig8P+u4ML/pQ2UXASiAAININL/6GxUwgAKUEFQEUTvcFwNdxrd7vvhUgAAQgoEAgUCDy9STc +HwUP+gohwA/rcs9wAACLE4ojBwuYczkFb/sKJQAE4HjxwOHFguCYcLhxyvcKIcAP63J92I24GQVv ++/Dbz3CAAGgx8CABAYojCw1MJQCAQCECBnhiJvSogXpioKJJgUGgXIlIqF2JSagqEYIASqgrEYIA +S6gsEYIATKhNkUewV5FIsEiBBCKCDwAGAACA4gHawHpSqFSRU6gogcC5Lagc8EwlQIAa9GJiSKFB +gEmhSIhcqUmIXalKiCoZggBLiCsZggBMiCwZggBTiFSxR5BNsQiQF7FhBA/6CiHAD+tykNiNuG0E +b/uKI4QH4HjxwNILD/rPdoAASD1VFgEWVhYCFjBypMFI94gWABACIYMAeGCIHgAQgOEO8oDiDPRX +FgAWOGBXHhgQWBYAFjhgWB4YEM93gABMCQCHgOAA3QPyWB5YE1gWABZDwkDAVxYAFkLBENm+2kHA +i3Ae264OoAoYu1YeWBNVHlgToKe9Ay/6pMDxwE4LD/rPdoAAiK4EFgUQQiVBAIXhTAEtAKLBMiZB +cIAAGHRAJwByNHgAeALYAKYB2c9wgAB0LyCwfg1gCihwAobPdYAAOC8ohUeFCBUEEA8gQAACps9w +gAAYLzV4QKAYFQURDBUGEM9wgABERgDZNKjPcAAAMMNAwAWFEBUHEEHAGo07jUCFFg2gC2GFiiAZ +AZYOIAI6jWHwz3CAAHYvAdkgqM9wgAA4LyeAz3CAAFTVL6ASDe/8AthR8ATYAKYA2M93gAB0L+4M +YAoAt891gAA4LwKGSIVnhQ8ggQDPcIAAGC9VeGCgIqbs2C4LoARAlwgVBBDPcAAAMMMYFQURDBUG +EEDABYUQFQcQQcAajTuNQIWKDKALYYUkFYAQSIUA2VEgAIEEhg8hgQAJ8gHbz3KAAERGdKoFeSSm +A/AmeASm2g9gBADYo/G6C8/7B/CKIBkB0g0gAiKGXQIv+qLACBYEEAohwA/rcs9wAABCH20Cb/uK +I0QH8cDhxYogGQCmDSACrdkB3c9wgACIrqCgANjPcYAAdC8eDGAKALG2DCAAqXAhAg/68cDhxQDY +z3WAAIiuWgggAACl1grv/ALYIoXPcoAAdC932FIKoARAkvUBD/rxwHoJD/oA3s93gAB0L8C30gtg +Cslwz3WAAIiuwqXDpcSliiDJAMlxHgqgBECXAdixAS/6AKXgePHAz3GAAIiuABEFAEwlQIGM9woh +wA/rcs9wAABBH5nbsQFv+4okgw8Boc9wgABgL/AgQAFAeNHA4H7gePHABgkP+s91gACIrgQVBRBM +JUCAosEl8kwlgIAQ8kwlQIFs8ggVBBAKIcAP63LPcAAARB9hAW/7iiNHBs9wgAB2LwHZIKjPcIAA +OC8ngM9wgABU1S+gKgvv/ALYUPAE2AClANnPcIAAdC8gsAILYAoocM92gAA4LwKFSIZnhg8ggQDP +cIAAGC9VeCKlYKBGCaAEiiCGCwgWBBAYFgURz3AAADDDDBYGEEDABYYQFgcQQcAajjuOQIaeCqAL +YYYkFoAQAd9IhgDZUSAAgQSFDyGBAAnyz3KAAERG9KoFeSSlA/AmeASl7g1gBADYiiAZAe4LIAI6 +jgTwwgnP+3EAL/qiwOB48cACCA/6z3aAAIiuBBYFEEIlQQCE4eYADQAzJkFwgAAgdEAngHI0eAB4 +AobPcYAAOC9IgSeBDyCAAAKmz3CAABgvVXggoFnwz3CAAHYvgNkgqM9wgAA4LyeAz3CAAFTVL6Aa +Cu/8AthH8AqWjCACgBH0ANjPdYAAdC/yCWAKALUihoogBQRKCKAEQJUB2ACmM/AD2ACmMfADhowg +w48B3xL0ANjPdYAAdC/CCWAKALUihoogRQrgphYIoARAlfoIz/sb8ADZDyEBAAKGBiBAgBL0ANjP +dYAAdC+SCWAKALUihooghQzqD2AEQJXKCO/74KYD8AKmdQfP+QgWBBAKIcAP63LPcAAAQx+JBy/7 +iiNGAOB48cDhxc91gACIrgQVBRBCJUEAheGQAA0AMyZBcIAAKHRAJwByNHgAeM9wgAB2L4DZIKjP +cIAAOC8ngM9wgABU1S+gJgnv/ALYLPAChc9xgAA4L0iBJ4EPIIAAAqXPcIAAGC9VeCCgHvADhYwg +w48B2gjyANkPIQEAAoUGIECADvTPcIAAdC9AsM4IYAoB2APYEgjv+wClBvACpQTwAdgApcUGz/kI +FQQQCiHAD+tyz3AAAEUfyQYv+4ojSAvxwDYOz/kIdoogWQH+CSACyXHPdYAAiK7DpdoM7/8F2COF +z3KAAHQvoNjWDmAEQJJxBs/58cD2De/5iiCZAc91gACIrsYJIAIihc9wgAAMvQiAAN8nuMC4E3jG +uAHgCrUI2DpwAN4ChQ8mzhMLJgCQN/IEhQsggIMe8sZ4BKXPcIAADL0gEIAAgeAW8s9xgABERhCJ +AeAPeBCpiiAKBW4JIALJcc9xgAAMvQiBhiDDD4C4CKGKIJkBUgkgAulxz3CAABgvFSDQAwAQACCA +4OIgAgAChQDZABhAIMZ4AqVCIUAggOAB534H7f/vfyqVgeHPdoAAdC8Algv0gOAQ9ADZz3CAAERG +NKiKIAoEBfCA4Ab0iiBKBPYIIAIA2QGFheAI8gCWgeAD2MogIgHGC8//WQXP+c9ygACIriKCANsP +IwMAZnkios9xgAAYLwDaFXngf0Chz3OAAIiuQoMPIkIAQqPPcoAAGC81euB/AKLgePHAxgzv+Rlx +CHaIdc9xgAA4LxqpGxkCAkChEBnAAQwZgAGioQPAGBlEAQTFB6EmwKihJBkCAAfAYaEFoYogGQJa +CCACqXFT2MlxRg1gBKlyJsBRIACACfJX2MlxMg1gBKlyBtgF8IHmAtjKIGIAFgvP/8EEz/ngePHA +QgzP+Tpwz3aAALgvAIYB4IHgz3WgAMgfAKYG9AHYUR0YkBYOgA6kFRAQz3CAANw/JoDPd4AAyMdg +eQDYAYeA4CryJNgY2RIOoA4z2oHgDvIEFwUQCiHAD+tyz3AAAHQZwNt1BC/7CiRABCTYAdnqDaAO +M9qB4A7yBBcFEAohwA/rcs9wAACrKMXbTQQv+wokQASkFQEQiiAYD4YP4AECIQEEAIZCIECAAKYE +9ADYUR0YkO0Dz/nxwJYL7/mKIBgOz3aAAJxJWg/gATKGz3CAANw/BICA4An0z3EAAK0LQg/gAYog +GA498DKG5OHX9s91gACAbwCF2uBR9oogWA4iD+ABBNlAhTKGiiCYDhC6Eg/gAUV5BNga8NrhRgAK +AM91gACAbwCF5ODd9oogWA7yDuABiiE/D0CFMoaKIJgOELriDuABRXmKID8PVg5ADiCFSBYAERC5 +qg7v/yV4EoYApVkDz/ngeOB+4HjgfuB4z3CAAPRHQIjgugjyz3GgAKwvGYGKuBmhUSJAgAfyz3Gg +AKwvGYGOuBmh4H7PcaAAyDsdgYDgCPKC2BShz3AAgBEUDqHgfuB48cDhxbTBi3WpcM9xgADEdUYL +7/lQ2iIMwAFWCeABqXDpAu/5tMDgeM9wgADc12yIz3GAAOiujCMCgAqRQSgCAwzy67gK9AK7dnvH +c4AAEOsCkw8ggAACswDY4H8MseB48cAyCu/5VGiGIvgDTyJDAlMhwgAFIsQAz3KAAHDqFHqP4Yoj +DwzKICkACfYAkgDdDyVNEIojzw+meACyANlKJAB0z3aAAMCxz3KAADiyz3WAADyyqCDABBQiQADk +kGR/kHcM9ADf5LAWJkAQ4KDhoEAlABk1eOCgAeEhAs/54HjxwADanroA2c9woAD8REGg4HghoO4K +oAoocAvIBCCAD/7//wMLGhgwC8iHuAsaGDDRwOB+8cCCCc/5SHaA4AHdRPaKJf8fE3iA4UT2s30z +eRQhAAAaC+/5O3mseAAeQB7BAe/5AdjgePHA4cUIcgHdgOHKIcEPyiLBB8oggQ8AAJsTyiOBDwAA +XADKJCEAtAEh+8olAQGA4kT2U3qKJf8fgOFE9jN5s30UIYAAwgrv+Tt5rHh1Ae/5L3DgePHA4cXP +dYAA6K7PcIAAaDEjgECFAIEQch/0ApFClRByG/QChXoIL/sjhYwgAoAV8s9ygAA0CiGCANsPIwMA +ArhmeRZ4IaIAIIEPgAAQ6wCBqriIuAChANgVAe/5DLXgeM9wnwC4/89xoP5IBzagz3CgAMgfPIBA +EAAGz3CfALj/WBgACEokwHHPcQAACIGoIAACKdgSuPAgQAAB4eB+4HjxwOHFz3AAAP//z3WAAASv +A6XPcIAATGySDEAMz3CAAGhsigxADM9wgAAQbX4MQAzPcIAALG12DEAMANkgpQXYAaUipYogyQPm +C+ABiiHMBEYJr/wG2EIJr/wJ2HEAz/kH2c9yoADUBxoaWICA4A7yGRIBhgkgQwAPEgGGAiDAgHlh +DxpYgPb14H7gePHAyg+P+QMSAzYIdw0SDjbPcYAAANYQi89ygAAQ69R5ArgWeAViMYktvYDhWGDA +vQvyIYPtuQnyz3GAAJgwtHmgkRDloLElkIDh0fZhuSWwEIsyaDZ5O2Jlk4DjOmIH9CaSUSFAgFgP +wvqeDoANkg4gBw3IA8gB2aAYQADPcQ8A///uCCAA6XCpB4/58cA2D6/5A9jPdqAA1AcTHhiQDxYR +lgAWAUAAFg1AosHPcLD+AADTuQV5QMXPcp8AuP82olMlwRQleBaiIMCc4A7yCiHAD+tyNdiMuM9z +AAD0DJhzeQfv+kolAAAAFg9A8H8AFhBAQOdRIAClwCeiEAPnBCePHwAA/P8H8M9wAAAFDX4MgAEZ +FgCWQicBFBBxNvcAIcAjDx4YkAPYIB4YkBkWAJaI4JP3HxYAlkHAIcCc4Mohwg/KIsIHNtjKI4IP +AAARDc8gIgPF9drYSgrgAalxBCCALwAAAEC9Bq/5osDxwFYOr/nI2oIkAzIIdSh2z3GAAIh2Dg+v ++Ytwz3CAAFAhDYCA4M9xnwC4/wzyHaHPcoAAoC8EggHgs7i1uLi4BKIWoc9woAAUBAHaRKDPcoAA +pE0YguK9AeAYos9woP4QARahQC4AFKV4FqHKICIAsA7B/xpwDcjPcaAAZC7PcqAAOC7wIQEA07kH +giR4BCCRA6zwjg7P/892gAAI+hpwyXAmDKAEi3H+COAOyXCe8APfz3CgABQE8KDkoAAWBEAHGhgx +ABYFQAEaWDEEypzgHvSLcOYJ4A0O2STA4b5TIMEAhiD+A0S4xBwCMGTBRCaNFBnyjthRJgCRkLig +HAAwa/KG2JC4oBwAMGfw63LPcAAA3A7PcwAA9ArVBe/6CiHAD0wgAKAH8ozYkLigHAAwU/ACuTZ5 +x3GAABDrQIFIdIQkDJAN8lEiQIII8ovYkLigHAAwAd1B8IjYkLj68U6JUHCR2M8gIgT09QHA+rgI +8gHdkNiQuKAcADAv8DMUgDAikREhAIAV8gfIBCCADwDAAADXcADAAAAL9CLAgODKIIkPAACNAKwH +6f/PICkECsGMIf+PEfLPcKAALCAQgCJ413AAgAAAyiCFDwAAhwCEB+X/zyAlBEwgAKDMJSGQXPXP +cKAAFATjoEwgAKCpdmL1UyZ+kAfyz3CgABQECYCA4Fj14b4z8kwhAKAB2iryKnEvKEEATiCDB5Tj +yiXFEIX3aHWAJcIUz3CgAGgs8CBAA5TjD3jKJ8UQhPdod4AnwhHPdaAAGCzwJc0TsXDKIiIAgOIK +8gDYDyDAAAYhAYDa9QHYA/AA2IDgJPNNBK/5gCQDMuB48cDmC4/5GnAiDyACMNiYcCm4USAAgMoh +wg/KIsIHyiCCDwAA6RTKI4IPAADHAEwE4vrKJSIALNg2DyACQCiBIAHeiiUPGuYOIAIw2JhwKbhR +IACAC/KMJg+aJ/J+DWAOAdhhvYDlAeYv98IOIAI02E8gAQWVufoOIAI02K4OIAIs2Ah1pg4gAjTY +9bi4cBjyCiHAD+tyz3AAAOsU49vdA+/6SiQAAAohwA/rcs9wAADqFNTbxQPv+kolAACNA6/5QS0A +FPHAIguP+Qh3AN7JcE4KoAXJcQPYyXWA5xpwCvJELT4XACGAf4AAGGtSDwAMgOcK8kQtPhcAIYB/ +gADAaz4PAAxCIEAggOAB5Sf3z3CAAMC8yXSdsDC8nrDPcIAA9ApWCiAHwKAhA4/58cBaC0ABgOAQ +8s9wgABIPQCAUSCAggryz3CAAJxt9g4ADIYN4AsA2NHA4H7xwJYJL/3hxc9zgACsTM9xgAD8bkCB +9BMNAFB1ANiK9/gTAQAwcgb3/BMBADByw/cB2NkCj/ngePHAz3WAAEAJfNgqDqABIIUAFQQQCiHA +DwESBTbrcs9wAADbDsUC7/qP2+B48cDKCkABgOAw8s9wgABIPQCAUSCAgiryz3CAAEQ+aIhKiEQr +PgsAIYB/gADUPVV4BoiB4ADZGvTPcoAAnG0GggOAYIACgmJ4gODKIEsABdkKuTBwSvYGggOAIIDH +cQAAABSWDiAMSHDRwOB+8cC2Ca/5A9iuwc92oADUBxMeGJAPFhCWGRYAlsDgvvcAFgFAABYPQNO5 +z3Cw/gAABXnPdZ8AuP82pVMnwRQleBal73ic4Mohwg/KIsIHyiCCDwAAQADPICIDyiOCDwAAmAzK +JMIA7AHi+solIgCLcK4NoA0O2QYUATEAFAAxUSEAgcAgogAD4AQgkg8AAPz/C8CA4FYiESIQ8hql +LMAbpQLAHqXPcABsBAAZpQbwz3AAALUMzg5AARkWAJZScLn3ACEAJA8eGJAD2CAeGJDg2MoMoAHp +cQHABCCADwAAAEAxAa/5rsDgePHAzgiP+Qh2z3CgAGQu8CCNA9O9DRIQNg0amDP12AW4PgwgAslx +DcjPcaAAFAQA3wqhOgvgCclwWnAB2M9xAAAQJ89yoADIHz6iENkuohUaGIBMIgCgSiEAIA8hkSPQ +9wsgQMQE9FEjAMD88wsgQMQG8qoO7/8B51J3tPcLIEDEF/RRIwDAJPIT8C8oQQNOIIEHANgPIEAA +QC4+lQZ9ANgE9EApPoMD8gHY+gwAAoDl7fUKIcAP63JX2Iy4iiOfAUokAAClAO/6CiUAAQ0aGDT1 +2AW4igsgAgpxDcjPcaAAFAQKoUUAj/nxwOYPT/nPcKAAVC4rgAfd07kvKEEATiCPB89woADAL6UQ +EoYUEBGGz3agABQEqqYOC+AJgNjz2AW4gNk6CyACn7kNEhA29dgFuC4LIAKpcaqmDRpYMwTwA9gF +pqmGgOUb8oDl+vNBLYCQCvIvJAlw4HioIIABABYAQOB4UyVNkAnyLyRJc+B4qCBAAQAWgEDgeKmG +5/Hz2JoKIAIFuP+44fX12AW40gogAgpxKB4AFJTnDRoYNMohxQOF9+lxgCHCAc9woAAYLPAgQgCU +58ohxQOF9+lxgCHCBM9woABoLDV4BL9AoMd3gADM5xWHNocFeReHuIcleAUlDZDKIcIPyiLCB8og +gg8AAMIhyiOCDwAAjQfKJEIDaAei+solIgCA2c9woADQGzCgz3CgAMAvpRiYhBQYWIQJB0/58cCi +Dk/5pBEAACh1USAAgArYyiAhBJgVARAEIb6PAQAAwHYdBBAw9Oi5FvJEIQAGI7hBaAQhgA8GAAAA +MbhYYAQhgg8GAAAB13ICAAAByiChAAPwAdiB4A/yguAI8oPgANjKIOEBwCihAwvwz3CAAPDVAoAF +8M9wgADw1QGABXmYHUAQnhUAEZQdQBCSHQQQghUAEZAVERGyHQQQANiAHQQQfh0EEAPIz3agANQH +QZCA4hAVkhAK8g3Iz3GAAADX9CEAAIDgE/IZFgCWuOBP9w3Mz3GAAKRNRiCAAg0aHDAagQHglwIg +ABqhDxYUloDiCfINyM9xgAAA1/QhAACA4APyAdgF8APYEx4YkADYBxIPNgESEDYAFgRAenAHGhgx +ABYFQAEaWDEEypzgyiLCB8oggg8AANwOyiOCDwAA9AoEBqL6yiHCD6lwygmgDQ7ZTCNAoA/0BMgB +kIDgIfLPcYAAGE8agQHgGqEcgQHgHKEX8APIAZCA4BPyDcjPcYAA0Nb0IQAAUyDAgAv0z3GAABhP +GoEB4BqhG4EB4BuhAxIBNgGB7rgN8lQRAAFTIMCAB/TPcYAAGE8ZgQHgGaECFQURTCUAgBTyAYXu +uMohwg/KIsIHyiCiC88gIgPKI4IPAAC1B2AFovrKJGIAAJWwcMohzA/KIswHyiDsC88gLAPKI4wP +AAC4BzwFrPrKJGwAEI1TIMEAhiD+A0S4xB0CEKQVABD2uDCtIvQHEgI2AiLBA4HhANgH8gIngRCM *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 01:14:46 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BF482B92; Sun, 11 Aug 2013 01:14:46 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AABF0296B; Sun, 11 Aug 2013 01:14:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B1Ek4X075243; Sun, 11 Aug 2013 01:14:46 GMT (envelope-from smh@svn.freebsd.org) Received: (from smh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B1EkPF075242; Sun, 11 Aug 2013 01:14:46 GMT (envelope-from smh@svn.freebsd.org) Message-Id: <201308110114.r7B1EkPF075242@svn.freebsd.org> From: Steven Hartland Date: Sun, 11 Aug 2013 01:14:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254203 - stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 01:14:46 -0000 Author: smh Date: Sun Aug 11 01:14:46 2013 New Revision: 254203 URL: http://svnweb.freebsd.org/changeset/base/254203 Log: MFC: r253926 zfs_ioc_rename should not leave the value of zc_name passed in via zc altered on return. Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/cddl/contrib/opensolaris/ (props changed) Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Sun Aug 11 01:09:16 2013 (r254202) +++ stable/9/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Sun Aug 11 01:14:46 2013 (r254203) @@ -3612,6 +3612,8 @@ zfs_ioc_rename(zfs_cmd_t *zc) at = strchr(zc->zc_name, '@'); if (at != NULL) { /* snaps must be in same fs */ + int error; + if (strncmp(zc->zc_name, zc->zc_value, at - zc->zc_name + 1)) return (SET_ERROR(EXDEV)); *at = '\0'; @@ -3620,14 +3622,19 @@ zfs_ioc_rename(zfs_cmd_t *zc) #else if (zc->zc_objset_type == DMU_OST_ZFS && allow_mounted) { #endif - int error = dmu_objset_find(zc->zc_name, + error = dmu_objset_find(zc->zc_name, recursive_unmount, at + 1, recursive ? DS_FIND_CHILDREN : 0); - if (error != 0) + if (error != 0) { + *at = '@'; return (error); + } } - return (dsl_dataset_rename_snapshot(zc->zc_name, - at + 1, strchr(zc->zc_value, '@') + 1, recursive)); + error = dsl_dataset_rename_snapshot(zc->zc_name, + at + 1, strchr(zc->zc_value, '@') + 1, recursive); + *at = '@'; + + return (error); } else { #ifdef illumos if (zc->zc_objset_type == DMU_OST_ZVOL) From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 01:57:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 170C2228; Sun, 11 Aug 2013 01:57:55 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 01E6C2A9E; Sun, 11 Aug 2013 01:57:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B1vsos091209; Sun, 11 Aug 2013 01:57:54 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B1vsXY091207; Sun, 11 Aug 2013 01:57:54 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308110157.r7B1vsXY091207@svn.freebsd.org> From: Adrian Chadd Date: Sun, 11 Aug 2013 01:57:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254204 - head/sys/dev/iwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 01:57:55 -0000 Author: adrian Date: Sun Aug 11 01:57:54 2013 New Revision: 254204 URL: http://svnweb.freebsd.org/changeset/base/254204 Log: Prepare for the PAN (personal area network) support for iwn(4). * Break out the single, static RX context into a pointer, and .. * .. extend it to two RX contexts - a default and a PAN context. Whilst here, add a few extra fields in preparation for further iwn(4) work. Tested: * Intel 4965, STA mode - same level of stability * Intel 5100, STA mode - no change Submitted by: Cedric Gross Modified: head/sys/dev/iwn/if_iwn.c head/sys/dev/iwn/if_iwnvar.h Modified: head/sys/dev/iwn/if_iwn.c ============================================================================== --- head/sys/dev/iwn/if_iwn.c Sun Aug 11 01:14:46 2013 (r254203) +++ head/sys/dev/iwn/if_iwn.c Sun Aug 11 01:57:54 2013 (r254204) @@ -1,4 +1,6 @@ /*- + * Copyright (c) 2013 Cedric GROSS + * Copyright (c) 2011 Intel Corporation * Copyright (c) 2007-2009 * Damien Bergamini * Copyright (c) 2008 @@ -521,6 +523,7 @@ iwn_attach(device_t dev) /* Read hardware revision and attach. */ sc->hw_type = (IWN_READ(sc, IWN_HW_REV) >> IWN_HW_REV_TYPE_SHIFT) & IWN_HW_REV_TYPE_MASK; + sc->subdevice_id = pci_get_subdevice(dev); if (sc->hw_type == IWN_HW_REV_TYPE_4965) error = iwn4965_attach(sc, pci_get_device(dev)); else @@ -908,19 +911,27 @@ iwn_vap_create(struct ieee80211com *ic, { struct iwn_vap *ivp; struct ieee80211vap *vap; + uint8_t mac1[IEEE80211_ADDR_LEN]; + struct iwn_softc *sc = ic->ic_ifp->if_softc; if (!TAILQ_EMPTY(&ic->ic_vaps)) /* only one at a time */ return NULL; + + IEEE80211_ADDR_COPY(mac1, mac); + ivp = (struct iwn_vap *) malloc(sizeof(struct iwn_vap), M_80211_VAP, M_NOWAIT | M_ZERO); if (ivp == NULL) return NULL; vap = &ivp->iv_vap; - ieee80211_vap_setup(ic, vap, name, unit, opmode, flags, bssid, mac); + ieee80211_vap_setup(ic, vap, name, unit, opmode, flags, bssid, mac1); + ivp->ctx = IWN_RXON_BSS_CTX; + IEEE80211_ADDR_COPY(ivp->macaddr, mac1); vap->iv_bmissthreshold = 10; /* override default */ /* Override with driver methods. */ ivp->iv_newstate = vap->iv_newstate; vap->iv_newstate = iwn_newstate; + sc->ivap[IWN_RXON_BSS_CTX] = vap; ieee80211_ratectl_init(vap); /* Complete setup. */ @@ -2339,6 +2350,8 @@ iwn_newstate(struct ieee80211vap *vap, e IWN_LOCK(sc); callout_stop(&sc->calib_to); + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; + switch (nstate) { case IEEE80211_S_ASSOC: if (vap->iv_state != IEEE80211_S_RUN) @@ -2352,8 +2365,8 @@ iwn_newstate(struct ieee80211vap *vap, e * !AUTH -> AUTH transition requires state reset to handle * reassociations correctly. */ - sc->rxon.associd = 0; - sc->rxon.filter &= ~htole32(IWN_FILTER_BSS); + sc->rxon->associd = 0; + sc->rxon->filter &= ~htole32(IWN_FILTER_BSS); sc->calib.state = IWN_CALIB_STATE_INIT; if ((error = iwn_auth(sc, vap)) != 0) { @@ -4367,6 +4380,8 @@ iwn_add_broadcast_node(struct iwn_softc DPRINTF(sc, IWN_DEBUG_TRACE, "->%s begin\n", __func__); + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; + memset(&node, 0, sizeof node); IEEE80211_ADDR_COPY(node.macaddr, ifp->if_broadcastaddr); node.id = sc->broadcast_id; @@ -4550,8 +4565,9 @@ iwn4965_set_txpower(struct iwn_softc *sc int i, c, grp, maxpwr; uint8_t chan; + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; /* Retrieve current channel from last RXON. */ - chan = sc->rxon.chan; + chan = sc->rxon->chan; DPRINTF(sc, IWN_DEBUG_RESET, "setting TX power for channel %d\n", chan); @@ -4910,8 +4926,8 @@ iwn_collect_noise(struct iwn_softc *sc, #ifdef notyet /* XXX Disable RX chains with no antennas connected. */ - sc->rxon.rxchain = htole16(IWN_RXCHAIN_SEL(sc->chainmask)); - (void)iwn_cmd(sc, IWN_CMD_RXON, &sc->rxon, sc->rxonsz, 1); + sc->rxon->rxchain = htole16(IWN_RXCHAIN_SEL(sc->chainmask)); + (void)iwn_cmd(sc, IWN_CMD_RXON, sc->rxon, sc->rxonsz, 1); #endif /* Enable power-saving mode if requested by user. */ @@ -5440,39 +5456,40 @@ iwn_config(struct iwn_softc *sc) } /* Set mode, channel, RX filter and enable RX. */ - memset(&sc->rxon, 0, sizeof (struct iwn_rxon)); - IEEE80211_ADDR_COPY(sc->rxon.myaddr, IF_LLADDR(ifp)); - IEEE80211_ADDR_COPY(sc->rxon.wlap, IF_LLADDR(ifp)); - sc->rxon.chan = ieee80211_chan2ieee(ic, ic->ic_curchan); - sc->rxon.flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; + memset(sc->rxon, 0, sizeof (struct iwn_rxon)); + IEEE80211_ADDR_COPY(sc->rxon->myaddr, IF_LLADDR(ifp)); + IEEE80211_ADDR_COPY(sc->rxon->wlap, IF_LLADDR(ifp)); + sc->rxon->chan = ieee80211_chan2ieee(ic, ic->ic_curchan); + sc->rxon->flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan)) - sc->rxon.flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); + sc->rxon->flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); switch (ic->ic_opmode) { case IEEE80211_M_STA: - sc->rxon.mode = IWN_MODE_STA; - sc->rxon.filter = htole32(IWN_FILTER_MULTICAST); + sc->rxon->mode = IWN_MODE_STA; + sc->rxon->filter = htole32(IWN_FILTER_MULTICAST); break; case IEEE80211_M_MONITOR: - sc->rxon.mode = IWN_MODE_MONITOR; - sc->rxon.filter = htole32(IWN_FILTER_MULTICAST | + sc->rxon->mode = IWN_MODE_MONITOR; + sc->rxon->filter = htole32(IWN_FILTER_MULTICAST | IWN_FILTER_CTL | IWN_FILTER_PROMISC); break; default: /* Should not get there. */ break; } - sc->rxon.cck_mask = 0x0f; /* not yet negotiated */ - sc->rxon.ofdm_mask = 0xff; /* not yet negotiated */ - sc->rxon.ht_single_mask = 0xff; - sc->rxon.ht_dual_mask = 0xff; - sc->rxon.ht_triple_mask = 0xff; + sc->rxon->cck_mask = 0x0f; /* not yet negotiated */ + sc->rxon->ofdm_mask = 0xff; /* not yet negotiated */ + sc->rxon->ht_single_mask = 0xff; + sc->rxon->ht_dual_mask = 0xff; + sc->rxon->ht_triple_mask = 0xff; rxchain = IWN_RXCHAIN_VALID(sc->rxchainmask) | IWN_RXCHAIN_MIMO_COUNT(2) | IWN_RXCHAIN_IDLE_COUNT(2); - sc->rxon.rxchain = htole16(rxchain); + sc->rxon->rxchain = htole16(rxchain); DPRINTF(sc, IWN_DEBUG_RESET, "%s: setting configuration\n", __func__); - error = iwn_cmd(sc, IWN_CMD_RXON, &sc->rxon, sc->rxonsz, 0); + error = iwn_cmd(sc, IWN_CMD_RXON, sc->rxon, sc->rxonsz, 0); if (error != 0) { device_printf(sc->sc_dev, "%s: RXON command failed\n", __func__); @@ -5543,6 +5560,7 @@ iwn_scan(struct iwn_softc *sc) DPRINTF(sc, IWN_DEBUG_TRACE, "->%s begin\n", __func__); + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; buf = malloc(IWN_SCAN_MAXSZ, M_DEVBUF, M_NOWAIT | M_ZERO); if (buf == NULL) { device_printf(sc->sc_dev, @@ -5584,7 +5602,7 @@ iwn_scan(struct iwn_softc *sc) } else { hdr->flags = htole32(IWN_RXON_24GHZ | IWN_RXON_AUTO); if (sc->hw_type == IWN_HW_REV_TYPE_4965 && - sc->rxon.associd && sc->rxon.chan > 14) + sc->rxon->associd && sc->rxon->chan > 14) tx->rate = htole32(0xd); else { /* Send probe requests at 1Mbps. */ @@ -5643,7 +5661,7 @@ iwn_scan(struct iwn_softc *sc) } else if (IEEE80211_IS_CHAN_5GHZ(c)) { chan->rf_gain = 0x3b; chan->active = htole16(24); - if (sc->rxon.associd) + if (sc->rxon->associd) chan->passive = htole16(78); else chan->passive = htole16(110); @@ -5656,7 +5674,7 @@ iwn_scan(struct iwn_softc *sc) } else { chan->rf_gain = 0x28; chan->active = htole16(36); - if (sc->rxon.associd) + if (sc->rxon->associd) chan->passive = htole16(88); else chan->passive = htole16(120); @@ -5695,31 +5713,32 @@ iwn_auth(struct iwn_softc *sc, struct ie DPRINTF(sc, IWN_DEBUG_TRACE, "->%s begin\n", __func__); + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; /* Update adapter configuration. */ - IEEE80211_ADDR_COPY(sc->rxon.bssid, ni->ni_bssid); - sc->rxon.chan = ieee80211_chan2ieee(ic, ni->ni_chan); - sc->rxon.flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); + IEEE80211_ADDR_COPY(sc->rxon->bssid, ni->ni_bssid); + sc->rxon->chan = ieee80211_chan2ieee(ic, ni->ni_chan); + sc->rxon->flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) - sc->rxon.flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); + sc->rxon->flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); if (ic->ic_flags & IEEE80211_F_SHSLOT) - sc->rxon.flags |= htole32(IWN_RXON_SHSLOT); + sc->rxon->flags |= htole32(IWN_RXON_SHSLOT); if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) - sc->rxon.flags |= htole32(IWN_RXON_SHPREAMBLE); + sc->rxon->flags |= htole32(IWN_RXON_SHPREAMBLE); if (IEEE80211_IS_CHAN_A(ni->ni_chan)) { - sc->rxon.cck_mask = 0; - sc->rxon.ofdm_mask = 0x15; + sc->rxon->cck_mask = 0; + sc->rxon->ofdm_mask = 0x15; } else if (IEEE80211_IS_CHAN_B(ni->ni_chan)) { - sc->rxon.cck_mask = 0x03; - sc->rxon.ofdm_mask = 0; + sc->rxon->cck_mask = 0x03; + sc->rxon->ofdm_mask = 0; } else { /* Assume 802.11b/g. */ - sc->rxon.cck_mask = 0x0f; - sc->rxon.ofdm_mask = 0x15; + sc->rxon->cck_mask = 0x0f; + sc->rxon->ofdm_mask = 0x15; } DPRINTF(sc, IWN_DEBUG_STATE, "rxon chan %d flags %x cck %x ofdm %x\n", - sc->rxon.chan, sc->rxon.flags, sc->rxon.cck_mask, - sc->rxon.ofdm_mask); - error = iwn_cmd(sc, IWN_CMD_RXON, &sc->rxon, sc->rxonsz, 1); + sc->rxon->chan, sc->rxon->flags, sc->rxon->cck_mask, + sc->rxon->ofdm_mask); + error = iwn_cmd(sc, IWN_CMD_RXON, sc->rxon, sc->rxonsz, 1); if (error != 0) { device_printf(sc->sc_dev, "%s: RXON command failed, error %d\n", __func__, error); @@ -5761,6 +5780,7 @@ iwn_run(struct iwn_softc *sc, struct iee DPRINTF(sc, IWN_DEBUG_TRACE, "->%s begin\n", __func__); + sc->rxon = &sc->rx_on[IWN_RXON_BSS_CTX]; if (ic->ic_opmode == IEEE80211_M_MONITOR) { /* Link LED blinks while monitoring. */ iwn_set_led(sc, IWN_LED_LINK, 5, 5); @@ -5773,26 +5793,26 @@ iwn_run(struct iwn_softc *sc, struct iee } /* Update adapter configuration. */ - IEEE80211_ADDR_COPY(sc->rxon.bssid, ni->ni_bssid); - sc->rxon.associd = htole16(IEEE80211_AID(ni->ni_associd)); - sc->rxon.chan = ieee80211_chan2ieee(ic, ni->ni_chan); - sc->rxon.flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); + IEEE80211_ADDR_COPY(sc->rxon->bssid, ni->ni_bssid); + sc->rxon->associd = htole16(IEEE80211_AID(ni->ni_associd)); + sc->rxon->chan = ieee80211_chan2ieee(ic, ni->ni_chan); + sc->rxon->flags = htole32(IWN_RXON_TSF | IWN_RXON_CTS_TO_SELF); if (IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) - sc->rxon.flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); + sc->rxon->flags |= htole32(IWN_RXON_AUTO | IWN_RXON_24GHZ); if (ic->ic_flags & IEEE80211_F_SHSLOT) - sc->rxon.flags |= htole32(IWN_RXON_SHSLOT); + sc->rxon->flags |= htole32(IWN_RXON_SHSLOT); if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) - sc->rxon.flags |= htole32(IWN_RXON_SHPREAMBLE); + sc->rxon->flags |= htole32(IWN_RXON_SHPREAMBLE); if (IEEE80211_IS_CHAN_A(ni->ni_chan)) { - sc->rxon.cck_mask = 0; - sc->rxon.ofdm_mask = 0x15; + sc->rxon->cck_mask = 0; + sc->rxon->ofdm_mask = 0x15; } else if (IEEE80211_IS_CHAN_B(ni->ni_chan)) { - sc->rxon.cck_mask = 0x03; - sc->rxon.ofdm_mask = 0; + sc->rxon->cck_mask = 0x03; + sc->rxon->ofdm_mask = 0; } else { /* Assume 802.11b/g. */ - sc->rxon.cck_mask = 0x0f; - sc->rxon.ofdm_mask = 0x15; + sc->rxon->cck_mask = 0x0f; + sc->rxon->ofdm_mask = 0x15; } if (IEEE80211_IS_CHAN_HT(ni->ni_chan)) { htflags |= IWN_RXON_HT_PROTMODE(ic->ic_curhtprotmode); @@ -5809,11 +5829,11 @@ iwn_run(struct iwn_softc *sc, struct iee if (IEEE80211_IS_CHAN_HT40D(ni->ni_chan)) htflags |= IWN_RXON_HT_HT40MINUS; } - sc->rxon.flags |= htole32(htflags); - sc->rxon.filter |= htole32(IWN_FILTER_BSS); + sc->rxon->flags |= htole32(htflags); + sc->rxon->filter |= htole32(IWN_FILTER_BSS); DPRINTF(sc, IWN_DEBUG_STATE, "rxon chan %d flags %x\n", - sc->rxon.chan, sc->rxon.flags); - error = iwn_cmd(sc, IWN_CMD_RXON, &sc->rxon, sc->rxonsz, 1); + sc->rxon->chan, sc->rxon->flags); + error = iwn_cmd(sc, IWN_CMD_RXON, sc->rxon, sc->rxonsz, 1); if (error != 0) { device_printf(sc->sc_dev, "%s: could not update configuration, error %d\n", __func__, @@ -6795,6 +6815,27 @@ iwn_read_firmware_tlv(struct iwn_softc * sc->noise_gain = tmp + 1; } break; + case IWN_FW_TLV_PAN: + sc->sc_flags |= IWN_FLAG_PAN_SUPPORT; + DPRINTF(sc, IWN_DEBUG_RESET, + "PAN Support found: %d\n", 1); + break; + case IWN_FW_TLV_FLAGS : + sc->tlv_feature_flags = htole32(*ptr); + break; + case IWN_FW_TLV_PBREQ_MAXLEN: + case IWN_FW_TLV_RUNT_EVTLOG_PTR: + case IWN_FW_TLV_RUNT_EVTLOG_SIZE: + case IWN_FW_TLV_RUNT_ERRLOG_PTR: + case IWN_FW_TLV_INIT_EVTLOG_PTR: + case IWN_FW_TLV_INIT_EVTLOG_SIZE: + case IWN_FW_TLV_INIT_ERRLOG_PTR: + case IWN_FW_TLV_WOWLAN_INST: + case IWN_FW_TLV_WOWLAN_DATA: + DPRINTF(sc, IWN_DEBUG_RESET, + "TLV type %d reconized but not handled\n", + le16toh(tlv->type)); + break; default: DPRINTF(sc, IWN_DEBUG_RESET, "TLV type %d not handled\n", le16toh(tlv->type)); Modified: head/sys/dev/iwn/if_iwnvar.h ============================================================================== --- head/sys/dev/iwn/if_iwnvar.h Sun Aug 11 01:14:46 2013 (r254203) +++ head/sys/dev/iwn/if_iwnvar.h Sun Aug 11 01:57:54 2013 (r254204) @@ -2,6 +2,8 @@ /* $OpenBSD: if_iwnvar.h,v 1.18 2010/04/30 16:06:46 damien Exp $ */ /*- + * Copyright (c) 2013 Cedric GROSS + * Copyright (c) 2011 Intel Corporation * Copyright (c) 2007, 2008 * Damien Bergamini * Copyright (c) 2008 Sam Leffler, Errno Consulting @@ -18,6 +20,38 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +enum iwn_rxon_ctx_id { + IWN_RXON_BSS_CTX, + IWN_RXON_PAN_CTX, + IWN_NUM_RXON_CTX +}; + +struct iwn_pan_slot { + uint16_t time; + uint8_t type; + uint8_t reserved; +} __packed; + +struct iwn_pan_params_cmd { + uint16_t flags; +#define IWN_PAN_PARAMS_FLG_SLOTTED_MODE (1 << 3) + + uint8_t reserved; + uint8_t num_slots; + struct iwn_pan_slot slots[10]; +} __packed; + +struct iwn_led_mode +{ + uint8_t led_cur_mode; + uint64_t led_cur_bt; + uint64_t led_last_bt; + uint64_t led_cur_tpt; + uint64_t led_last_tpt; + uint64_t led_bt_diff; + int led_cur_time; + int led_last_time; +}; struct iwn_rx_radiotap_header { struct ieee80211_radiotap_header wr_ihdr; @@ -191,6 +225,10 @@ struct iwn_vap { int (*iv_newstate)(struct ieee80211vap *, enum ieee80211_state, int); + int ctx; + int beacon_int; + uint8_t macaddr[IEEE80211_ADDR_LEN]; + }; #define IWN_VAP(_vap) ((struct iwn_vap *)(_vap)) @@ -210,8 +248,11 @@ struct iwn_softc { #define IWN_FLAG_HAS_11N (1 << 6) #define IWN_FLAG_ENH_SENS (1 << 7) #define IWN_FLAG_ADV_BTCOEX (1 << 8) +#define IWN_FLAG_PAN_SUPPORT (1 << 9) uint8_t hw_type; + /* subdevice_id used to adjust configuration */ + uint16_t subdevice_id; struct iwn_ops ops; const char *fwname; @@ -272,7 +313,7 @@ struct iwn_softc { int calib_cnt; struct iwn_calib_state calib; struct callout watchdog_to; - + struct callout ct_kill_exit_to; struct iwn_fw_info fw; struct iwn_calib_info calibcmd[5]; uint32_t errptr; @@ -280,7 +321,12 @@ struct iwn_softc { struct iwn_rx_stat last_rx_stat; int last_rx_valid; struct iwn_ucode_info ucode_info; - struct iwn_rxon rxon; + struct iwn_rxon rx_on[IWN_NUM_RXON_CTX]; + struct iwn_rxon *rxon; + int ctx; + struct ieee80211vap *ivap[IWN_NUM_RXON_CTX]; + + uint8_t uc_scan_progress; uint32_t rawtemp; int temp; int noise; @@ -295,11 +341,14 @@ struct iwn_softc { char eeprom_domain[4]; uint32_t eeprom_crystal; int16_t eeprom_temp; + int16_t eeprom_temp_high; int16_t eeprom_voltage; int8_t maxpwr2GHz; int8_t maxpwr5GHz; int8_t maxpwr[IEEE80211_CHAN_MAX]; + uint32_t tlv_feature_flags; + int32_t temp_off; uint32_t int_mask; uint8_t ntxchains; @@ -309,6 +358,7 @@ struct iwn_softc { uint8_t chainmask; int sc_tx_timer; + int sc_scan_timer; struct ieee80211_tx_ampdu *qid2tap[IWN5000_NTXQUEUES]; @@ -323,9 +373,22 @@ struct iwn_softc { void (*sc_addba_stop)(struct ieee80211_node *, struct ieee80211_tx_ampdu *); + struct iwn_led_mode sc_led; struct iwn_rx_radiotap_header sc_rxtap; struct iwn_tx_radiotap_header sc_txtap; + + /* The power save level originally configured by user */ + int desired_pwrsave_level; + + /* + * The current power save level, this may differ from the + * configured value due to thermal throttling etc. + */ + int current_pwrsave_level; + + /* For specifique params */ + struct iwn_base_params *base_params; }; #define IWN_LOCK_INIT(_sc) \ From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 02:53:20 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BACC7AA7; Sun, 11 Aug 2013 02:53:20 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 99C2E2CA6; Sun, 11 Aug 2013 02:53:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B2rK7Z013394; Sun, 11 Aug 2013 02:53:20 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B2rIjV013376; Sun, 11 Aug 2013 02:53:18 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201308110253.r7B2rIjV013376@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Sun, 11 Aug 2013 02:53:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254205 - in stable/9/sys: conf fs/ext2fs modules/ext2fs X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 02:53:20 -0000 Author: pfg Date: Sun Aug 11 02:53:18 2013 New Revision: 254205 URL: http://svnweb.freebsd.org/changeset/base/254205 Log: MFC r252890, 252906, r252907, r253861, r254104: Implementation of the HTree directory index. This is a port of NetBSD's GSoC 2012 Ext3 HTree directory indexing by Vyacheslav Matyushin. It was cleaned up and enhanced for FreeBSD by Zheng Liu (lz@). This is an excellent example of work shared among different projects: Vyacheslav was able to look at an early prototype from Zheng Liu who was also able to check the code from Haiku (with permission). As in linux, the feature is not available by default and must be enabled explicitly with tune2fs. We still do not support the workarounds required in readdir for NFS. Submitted by: Zheng Liu Tested by: Mike Ma Sponsored by: Google Inc. Added: stable/9/sys/fs/ext2fs/ext2_hash.c - copied, changed from r252890, head/sys/fs/ext2fs/ext2_hash.c stable/9/sys/fs/ext2fs/ext2_htree.c - copied, changed from r252890, head/sys/fs/ext2fs/ext2_htree.c stable/9/sys/fs/ext2fs/htree.h - copied unchanged from r252890, head/sys/fs/ext2fs/htree.h Modified: stable/9/sys/conf/files stable/9/sys/fs/ext2fs/ext2_dir.h stable/9/sys/fs/ext2fs/ext2_extern.h stable/9/sys/fs/ext2fs/ext2_inode_cnv.c stable/9/sys/fs/ext2fs/ext2_lookup.c stable/9/sys/fs/ext2fs/ext2_vfsops.c stable/9/sys/fs/ext2fs/ext2fs.h stable/9/sys/modules/ext2fs/Makefile Directory Properties: stable/9/sys/ (props changed) stable/9/sys/conf/ (props changed) stable/9/sys/fs/ (props changed) stable/9/sys/modules/ (props changed) Modified: stable/9/sys/conf/files ============================================================================== --- stable/9/sys/conf/files Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/conf/files Sun Aug 11 02:53:18 2013 (r254205) @@ -2377,6 +2377,8 @@ fs/ext2fs/ext2_balloc.c optional ext2fs fs/ext2fs/ext2_bmap.c optional ext2fs fs/ext2fs/ext2_inode.c optional ext2fs fs/ext2fs/ext2_inode_cnv.c optional ext2fs +fs/ext2fs/ext2_hash.c optional ext2fs +fs/ext2fs/ext2_htree.c optional ext2fs fs/ext2fs/ext2_lookup.c optional ext2fs fs/ext2fs/ext2_subr.c optional ext2fs fs/ext2fs/ext2_vfsops.c optional ext2fs Modified: stable/9/sys/fs/ext2fs/ext2_dir.h ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_dir.h Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/fs/ext2fs/ext2_dir.h Sun Aug 11 02:53:18 2013 (r254205) @@ -40,6 +40,21 @@ struct ext2fs_direct { uint16_t e2d_namlen; /* length of string in e2d_name */ char e2d_name[EXT2FS_MAXNAMLEN];/* name with length<=EXT2FS_MAXNAMLEN */ }; + +enum slotstatus { + NONE, + COMPACT, + FOUND +}; + +struct ext2fs_searchslot { + enum slotstatus slotstatus; + doff_t slotoffset; /* offset of area with free space */ + int slotsize; /* size of area at slotoffset */ + int slotfreespace; /* amount of space free in slot */ + int slotneeded; /* sizeof the entry we are seeking */ +}; + /* * The new version of the directory entry. Since EXT2 structures are * stored in intel byte order, and the name_len field could never be Modified: stable/9/sys/fs/ext2fs/ext2_extern.h ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_extern.h Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/fs/ext2fs/ext2_extern.h Sun Aug 11 02:53:18 2013 (r254205) @@ -40,12 +40,15 @@ #define _FS_EXT2FS_EXT2_EXTERN_H_ struct ext2fs_dinode; +struct ext2fs_direct_2; +struct ext2fs_searchslot; struct indir; struct inode; struct mount; struct vfsconf; struct vnode; +int ext2_add_entry(struct vnode *, struct ext2fs_direct_2 *); int ext2_alloc(struct inode *, int32_t, int32_t, int, struct ucred *, int32_t *); int ext2_balloc(struct inode *, @@ -81,6 +84,18 @@ int ext2_dirempty(struct inode *, ino_t, int ext2_checkpath(struct inode *, struct inode *, struct ucred *); int cg_has_sb(int i); int ext2_inactive(struct vop_inactive_args *); +int ext2_htree_add_entry(struct vnode *, struct ext2fs_direct_2 *, + struct componentname *); +int ext2_htree_create_index(struct vnode *, struct componentname *, + struct ext2fs_direct_2 *); +int ext2_htree_has_idx(struct inode *); +int ext2_htree_hash(const char *, int, uint32_t *, int, uint32_t *, + uint32_t *); +int ext2_htree_lookup(struct inode *, const char *, int, struct buf **, + int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *); +int ext2_search_dirblock(struct inode *, void *, int *, const char *, int, + int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *); + /* Flags to low-level allocation routines. * The low 16-bits are reserved for IO_ flags from vnode.h. Copied and modified: stable/9/sys/fs/ext2fs/ext2_hash.c (from r252890, head/sys/fs/ext2fs/ext2_hash.c) ============================================================================== --- head/sys/fs/ext2fs/ext2_hash.c Sat Jul 6 18:28:06 2013 (r252890, copy source) +++ stable/9/sys/fs/ext2fs/ext2_hash.c Sun Aug 11 02:53:18 2013 (r254205) @@ -27,6 +27,30 @@ * $FreeBSD$ */ +/* + * The following notice applies to the code in ext2_half_md4(): + * + * Copyright (C) 1990-2, RSA Data Security, Inc. All rights reserved. + * + * License to copy and use this software is granted provided that it + * is identified as the "RSA Data Security, Inc. MD4 Message-Digest + * Algorithm" in all material mentioning or referencing this software + * or this function. + * + * License is also granted to make and use derivative works provided + * that such works are identified as "derived from the RSA Data + * Security, Inc. MD4 Message-Digest Algorithm" in all material + * mentioning or referencing the derived work. + * + * RSA Data Security, Inc. makes no representations concerning either + * the merchantability of this software or the suitability of this + * software for any particular purpose. It is provided "as is" + * without express or implied warranty of any kind. + * + * These notices must be retained in any copies of any part of this + * documentation and/or software. + */ + #include #include #include @@ -49,7 +73,7 @@ /* * FF, GG, and HH are transformations for rounds 1, 2, and 3. - * Rotation is separated from addition to prevent recompuatation + * Rotation is separated from addition to prevent recomputation. */ #define FF(a, b, c, d, x, s) { \ (a) += F ((b), (c), (d)) + (x); \ @@ -69,13 +93,13 @@ /* * MD4 basic transformation. It transforms state based on block. * - * This is a half md4 algorithm because in Linux it uses this algorithm in dir - * index. This function is copied from kern/md4c.c file and is modified as - * necessary. + * This is a half md4 algorithm since Linux uses this algorithm for dir + * index. This function is derived from the RSA Data Security, Inc. MD4 + * Message-Digest Algorithm and was modified as necessary. * * The return value of this function is uint32_t in Linux, but actually we don't - * need to check this value. So in our version this function don't return any - * values. + * need to check this value, so in our version this function doesn't return any + * value. */ static void ext2_half_md4(uint32_t hash[4], uint32_t data[8]) Copied and modified: stable/9/sys/fs/ext2fs/ext2_htree.c (from r252890, head/sys/fs/ext2fs/ext2_htree.c) ============================================================================== --- head/sys/fs/ext2fs/ext2_htree.c Sat Jul 6 18:28:06 2013 (r252890, copy source) +++ stable/9/sys/fs/ext2fs/ext2_htree.c Sun Aug 11 02:53:18 2013 (r254205) @@ -313,7 +313,7 @@ error: } /* - * Try to lookup an directory entry in HTree index + * Try to lookup a directory entry in HTree index */ int ext2_htree_lookup(struct inode *ip, const char *name, int namelen, @@ -458,7 +458,7 @@ ext2_htree_insert_entry(struct ext2fs_ht } /* - * Compare two entry sort descriptiors by name hash value. + * Compare two entry sort descriptors by name hash value. * This is used together with qsort. */ static int @@ -584,7 +584,7 @@ ext2_htree_split_dirblock(char *block1, ep = (struct ext2fs_direct_2 *)(block1 + offset); offset += ep->e2d_reclen; if (last->e2d_ino) { - /* trim the existing slot */ + /* Trim the existing slot */ last->e2d_reclen = entry_len; last = (struct ext2fs_direct_2 *) ((char *)last + entry_len); Modified: stable/9/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_inode_cnv.c Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/fs/ext2fs/ext2_inode_cnv.c Sun Aug 11 02:53:18 2013 (r254205) @@ -91,7 +91,7 @@ ext2_ei2i(struct ext2fs_dinode *ei, stru ip->i_birthtime = ei->e2di_crtime; ip->i_birthnsec = XTIME_TO_NSEC(ei->e2di_crtime_extra); } - ip->i_flags = 0; + ip->i_flags = ei->e2di_flags; ip->i_flags |= (ei->e2di_flags & EXT2_APPEND) ? SF_APPEND : 0; ip->i_flags |= (ei->e2di_flags & EXT2_IMMUTABLE) ? SF_IMMUTABLE : 0; ip->i_flags |= (ei->e2di_flags & EXT2_NODUMP) ? UF_NODUMP : 0; @@ -135,7 +135,6 @@ ext2_i2ei(struct inode *ip, struct ext2f ei->e2di_crtime_extra = NSEC_TO_XTIME(ip->i_birthnsec); } ei->e2di_flags = ip->i_flags; - ei->e2di_flags = 0; ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; ei->e2di_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP: 0; Modified: stable/9/sys/fs/ext2fs/ext2_lookup.c ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_lookup.c Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/fs/ext2fs/ext2_lookup.c Sun Aug 11 02:53:18 2013 (r254205) @@ -113,9 +113,19 @@ static u_char dt_to_ext2_ft[] = { static int ext2_dirbadentry(struct vnode *dp, struct ext2fs_direct_2 *de, int entryoffsetinblock); +static int ext2_is_dot_entry(struct componentname *cnp); static int ext2_lookup_ino(struct vnode *vdp, struct vnode **vpp, struct componentname *cnp, ino_t *dd_ino); +static int +ext2_is_dot_entry(struct componentname *cnp) +{ + if (cnp->cn_namelen <= 2 && cnp->cn_nameptr[0] == '.' && + (cnp->cn_nameptr[1] == '.' || cnp->cn_nameptr[1] == '0')) + return (1); + return (0); +} + /* * Vnode op for reading directories. * @@ -287,13 +297,9 @@ ext2_lookup_ino(struct vnode *vdp, struc struct buf *bp; /* a buffer of directory entries */ struct ext2fs_direct_2 *ep; /* the current directory entry */ int entryoffsetinblock; /* offset of ep in bp's buffer */ - enum {NONE, COMPACT, FOUND} slotstatus; - doff_t slotoffset; /* offset of area with free space */ + struct ext2fs_searchslot ss; doff_t i_diroff; /* cached i_diroff value */ doff_t i_offset; /* cached i_offset value */ - int slotsize; /* size of area at slotoffset */ - int slotfreespace; /* amount of space free in slot */ - int slotneeded; /* size of the entry we're seeking */ int numdirpasses; /* strategy for directory search */ doff_t endsearch; /* offset to end directory search */ doff_t prevoff; /* prev entry dp->i_offset */ @@ -301,12 +307,13 @@ ext2_lookup_ino(struct vnode *vdp, struc struct vnode *tdp; /* returned by VFS_VGET */ doff_t enduseful; /* pointer past last used dir slot */ u_long bmask; /* block offset mask */ - int namlen, error; + int error; struct ucred *cred = cnp->cn_cred; int flags = cnp->cn_flags; int nameiop = cnp->cn_nameiop; ino_t ino, ino1; int ltype; + int entry_found = 0; int DIRBLKSIZ = VTOI(vdp)->i_e2fs->e2fs_bsize; @@ -317,13 +324,11 @@ ext2_lookup_ino(struct vnode *vdp, struc bmask = VFSTOEXT2(vdp->v_mount)->um_mountp->mnt_stat.f_iosize - 1; restart: bp = NULL; - slotoffset = -1; + ss.slotoffset = -1; /* * We now have a segment name to search for, and a directory to search. - */ - - /* + * * Suppress search for slots unless creating * file and at end of pathname, in which case * we watch for a place to put the new file in @@ -331,18 +336,46 @@ restart: */ ino = 0; i_diroff = dp->i_diroff; - slotstatus = FOUND; - slotfreespace = slotsize = slotneeded = 0; + ss.slotstatus = FOUND; + ss.slotfreespace = ss.slotsize = ss.slotneeded = 0; if ((nameiop == CREATE || nameiop == RENAME) && (flags & ISLASTCN)) { - slotstatus = NONE; - slotneeded = EXT2_DIR_REC_LEN(cnp->cn_namelen); + ss.slotstatus = NONE; + ss.slotneeded = EXT2_DIR_REC_LEN(cnp->cn_namelen); /* was - slotneeded = (sizeof(struct direct) - MAXNAMLEN + + ss.slotneeded = (sizeof(struct direct) - MAXNAMLEN + cnp->cn_namelen + 3) &~ 3; */ } /* + * Try to lookup dir entry using htree directory index. + * + * If we got an error or we want to find '.' or '..' entry, + * we will fall back to linear search. + */ + if (!ext2_is_dot_entry(cnp) && ext2_htree_has_idx(dp)) { + numdirpasses = 1; + entryoffsetinblock = 0; + switch (ext2_htree_lookup(dp, cnp->cn_nameptr, cnp->cn_namelen, + &bp, &entryoffsetinblock, &i_offset, &prevoff, + &enduseful, &ss)) { + case 0: + ep = (struct ext2fs_direct_2 *)((char *)bp->b_data + + (i_offset & bmask)); + goto foundentry; + case ENOENT: + i_offset = roundup2(dp->i_size, DIRBLKSIZ); + goto notfound; + default: + /* + * Something failed; just fallback to do a linear + * search. + */ + break; + } + } + + /* * If there is cached information on a previous search of * this directory, pick up where we last left off. * We cache only lookups as these are the most common @@ -376,96 +409,38 @@ searchloop: /* * If necessary, get the next directory block. */ - if ((i_offset & bmask) == 0) { - if (bp != NULL) - brelse(bp); - if ((error = - ext2_blkatoff(vdp, (off_t)i_offset, NULL, - &bp)) != 0) - return (error); - entryoffsetinblock = 0; - } + if (bp != NULL) + brelse(bp); + error = ext2_blkatoff(vdp, (off_t)i_offset, NULL, &bp); + if (error != 0) + return (error); + entryoffsetinblock = 0; /* * If still looking for a slot, and at a DIRBLKSIZE * boundary, have to start looking for free space again. */ - if (slotstatus == NONE && + if (ss.slotstatus == NONE && (entryoffsetinblock & (DIRBLKSIZ - 1)) == 0) { - slotoffset = -1; - slotfreespace = 0; + ss.slotoffset = -1; + ss.slotfreespace = 0; } - /* - * Get pointer to next entry. - * Full validation checks are slow, so we only check - * enough to insure forward progress through the - * directory. Complete checks can be run by setting - * "vfs.e2fs.dirchk" to be true. - */ - ep = (struct ext2fs_direct_2 *) - ((char *)bp->b_data + entryoffsetinblock); - if (ep->e2d_reclen == 0 || - (dirchk && ext2_dirbadentry(vdp, ep, entryoffsetinblock))) { - int i; - ext2_dirbad(dp, i_offset, "mangled entry"); - i = DIRBLKSIZ - (entryoffsetinblock & (DIRBLKSIZ - 1)); - i_offset += i; - entryoffsetinblock += i; - continue; - } - - /* - * If an appropriate sized slot has not yet been found, - * check to see if one is available. Also accumulate space - * in the current block so that we can determine if - * compaction is viable. - */ - if (slotstatus != FOUND) { - int size = ep->e2d_reclen; - - if (ep->e2d_ino != 0) - size -= EXT2_DIR_REC_LEN(ep->e2d_namlen); - if (size > 0) { - if (size >= slotneeded) { - slotstatus = FOUND; - slotoffset = i_offset; - slotsize = ep->e2d_reclen; - } else if (slotstatus == NONE) { - slotfreespace += size; - if (slotoffset == -1) - slotoffset = i_offset; - if (slotfreespace >= slotneeded) { - slotstatus = COMPACT; - slotsize = i_offset + - ep->e2d_reclen - slotoffset; - } - } - } + error = ext2_search_dirblock(dp, bp->b_data, &entry_found, + cnp->cn_nameptr, cnp->cn_namelen, + &entryoffsetinblock, &i_offset, &prevoff, + &enduseful, &ss); + if (error != 0) { + brelse(bp); + return (error); } - - /* - * Check for a name match. - */ - if (ep->e2d_ino) { - namlen = ep->e2d_namlen; - if (namlen == cnp->cn_namelen && - !bcmp(cnp->cn_nameptr, ep->e2d_name, - (unsigned)namlen)) { - /* - * Save directory entry's inode number and - * reclen in ndp->ni_ufs area, and release - * directory buffer. - */ - ino = ep->e2d_ino; - goto found; - } + if (entry_found) { + ep = (struct ext2fs_direct_2 *)((char *)bp->b_data + + (entryoffsetinblock & bmask)); +foundentry: + ino = ep->e2d_ino; + goto found; } - prevoff = i_offset; - i_offset += ep->e2d_reclen; - entryoffsetinblock += ep->e2d_reclen; - if (ep->e2d_ino) - enduseful = i_offset; } -/* notfound: */ +notfound: /* * If we started in the middle of the directory and failed * to find our target, we must check the beginning as well. @@ -500,15 +475,15 @@ searchloop: * can be put in the range from dp->i_offset to * dp->i_offset + dp->i_count. */ - if (slotstatus == NONE) { + if (ss.slotstatus == NONE) { dp->i_offset = roundup2(dp->i_size, DIRBLKSIZ); dp->i_count = 0; enduseful = dp->i_offset; } else { - dp->i_offset = slotoffset; - dp->i_count = slotsize; - if (enduseful < slotoffset + slotsize) - enduseful = slotoffset + slotsize; + dp->i_offset = ss.slotoffset; + dp->i_count = ss.slotsize; + if (enduseful < ss.slotoffset + ss.slotsize) + enduseful = ss.slotoffset + ss.slotsize; } dp->i_endoff = roundup2(enduseful, DIRBLKSIZ); /* @@ -714,6 +689,102 @@ found: return (0); } +int +ext2_search_dirblock(struct inode *ip, void *data, int *foundp, + const char *name, int namelen, int *entryoffsetinblockp, + doff_t *offp, doff_t *prevoffp, doff_t *endusefulp, + struct ext2fs_searchslot *ssp) +{ + struct vnode *vdp; + struct ext2fs_direct_2 *ep, *top; + uint32_t bsize = ip->i_e2fs->e2fs_bsize; + int offset = *entryoffsetinblockp; + int namlen; + + vdp = ITOV(ip); + + ep = (struct ext2fs_direct_2 *)((char *)data + offset); + top = (struct ext2fs_direct_2 *)((char *)data + + bsize - EXT2_DIR_REC_LEN(0)); + + while (ep < top) { + /* + * Full validation checks are slow, so we only check + * enough to insure forward progress through the + * directory. Complete checks can be run by setting + * "vfs.e2fs.dirchk" to be true. + */ + if (ep->e2d_reclen == 0 || + (dirchk && ext2_dirbadentry(vdp, ep, offset))) { + int i; + ext2_dirbad(ip, *offp, "mangled entry"); + i = bsize - (offset & (bsize - 1)); + *offp += i; + offset += i; + continue; + } + + /* + * If an appropriate sized slot has not yet been found, + * check to see if one is available. Also accumulate space + * in the current block so that we can determine if + * compaction is viable. + */ + if (ssp->slotstatus != FOUND) { + int size = ep->e2d_reclen; + + if (ep->e2d_ino != 0) + size -= EXT2_DIR_REC_LEN(ep->e2d_namlen); + if (size > 0) { + if (size >= ssp->slotneeded) { + ssp->slotstatus = FOUND; + ssp->slotoffset = *offp; + ssp->slotsize = ep->e2d_reclen; + } else if (ssp->slotstatus == NONE) { + ssp->slotfreespace += size; + if (ssp->slotoffset == -1) + ssp->slotoffset = *offp; + if (ssp->slotfreespace >= ssp->slotneeded) { + ssp->slotstatus = COMPACT; + ssp->slotsize = *offp + + ep->e2d_reclen - + ssp->slotoffset; + } + } + } + } + + /* + * Check for a name match. + */ + if (ep->e2d_ino) { + namlen = ep->e2d_namlen; + if (namlen == namelen && + !bcmp(name, ep->e2d_name, (unsigned)namlen)) { + /* + * Save directory entry's inode number and + * reclen in ndp->ni_ufs area, and release + * directory buffer. + */ + *foundp = 1; + return (0); + } + } + *prevoffp = *offp; + *offp += ep->e2d_reclen; + offset += ep->e2d_reclen; + *entryoffsetinblockp = offset; + if (ep->e2d_ino) + *endusefulp = *offp; + /* + * Get pointer to the next entry. + */ + ep = (struct ext2fs_direct_2 *)((char *)data + offset); + } + + return (0); +} + void ext2_dirbad(struct inode *ip, doff_t offset, char *how) { @@ -781,16 +852,12 @@ ext2_dirbadentry(struct vnode *dp, struc int ext2_direnter(struct inode *ip, struct vnode *dvp, struct componentname *cnp) { - struct ext2fs_direct_2 *ep, *nep; struct inode *dp; - struct buf *bp; struct ext2fs_direct_2 newdir; struct iovec aiov; struct uio auio; - u_int dsize; - int error, loc, newentrysize, spacefree; - char *dirbuf; - int DIRBLKSIZ = ip->i_e2fs->e2fs_bsize; + int error, newentrysize; + int DIRBLKSIZ = ip->i_e2fs->e2fs_bsize; #ifdef INVARIANTS @@ -807,6 +874,28 @@ ext2_direnter(struct inode *ip, struct v newdir.e2d_type = EXT2_FT_UNKNOWN; bcopy(cnp->cn_nameptr, newdir.e2d_name, (unsigned)cnp->cn_namelen + 1); newentrysize = EXT2_DIR_REC_LEN(newdir.e2d_namlen); + + if (ext2_htree_has_idx(dp)) { + error = ext2_htree_add_entry(dvp, &newdir, cnp); + if (error) { + dp->i_flags &= ~EXT4_INDEX; + dp->i_flags |= IN_CHANGE | IN_UPDATE; + } + return (error); + } + + if (EXT2_HAS_COMPAT_FEATURE(ip->i_e2fs, EXT2F_COMPAT_DIRHASHINDEX) && + !ext2_htree_has_idx(dp)) { + if ((dp->i_size / DIRBLKSIZ) == 1 && + dp->i_offset == DIRBLKSIZ) { + /* + * Making indexed directory when one block is not + * enough to save all entries. + */ + return ext2_htree_create_index(dvp, cnp, &newdir); + } + } + if (dp->i_count == 0) { /* * If dp->i_count is 0, then namei could find no @@ -838,6 +927,29 @@ ext2_direnter(struct inode *ip, struct v return (error); } + error = ext2_add_entry(dvp, &newdir); + if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) + error = ext2_truncate(dvp, (off_t)dp->i_endoff, IO_SYNC, + cnp->cn_cred, cnp->cn_thread); + return (error); +} + +/* + * Insert an entry into the directory block. + * Compact the contents. + */ +int +ext2_add_entry(struct vnode *dvp, struct ext2fs_direct_2 *entry) +{ + struct ext2fs_direct_2 *ep, *nep; + struct inode *dp; + struct buf *bp; + u_int dsize; + int error, loc, newentrysize, spacefree; + char *dirbuf; + + dp = VTOI(dvp); + /* * If dp->i_count is non-zero, then namei found space * for the new entry in the range dp->i_offset to @@ -869,6 +981,7 @@ ext2_direnter(struct inode *ip, struct v * dp->i_offset + dp->i_count would yield the * space. */ + newentrysize = EXT2_DIR_REC_LEN(entry->e2d_namlen); ep = (struct ext2fs_direct_2 *)dirbuf; dsize = EXT2_DIR_REC_LEN(ep->e2d_namlen); spacefree = ep->e2d_reclen - dsize; @@ -894,15 +1007,15 @@ ext2_direnter(struct inode *ip, struct v if (ep->e2d_ino == 0) { if (spacefree + dsize < newentrysize) panic("ext2_direnter: compact1"); - newdir.e2d_reclen = spacefree + dsize; + entry->e2d_reclen = spacefree + dsize; } else { if (spacefree < newentrysize) panic("ext2_direnter: compact2"); - newdir.e2d_reclen = spacefree; + entry->e2d_reclen = spacefree; ep->e2d_reclen = dsize; ep = (struct ext2fs_direct_2 *)((char *)ep + dsize); } - bcopy((caddr_t)&newdir, (caddr_t)ep, (u_int)newentrysize); + bcopy((caddr_t)entry, (caddr_t)ep, (u_int)newentrysize); if (DOINGASYNC(dvp)) { bdwrite(bp); error = 0; @@ -910,9 +1023,6 @@ ext2_direnter(struct inode *ip, struct v error = bwrite(bp); } dp->i_flag |= IN_CHANGE | IN_UPDATE; - if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) - error = ext2_truncate(dvp, (off_t)dp->i_endoff, IO_SYNC, - cnp->cn_cred, cnp->cn_thread); return (error); } Modified: stable/9/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- stable/9/sys/fs/ext2fs/ext2_vfsops.c Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/fs/ext2fs/ext2_vfsops.c Sun Aug 11 02:53:18 2013 (r254205) @@ -399,6 +399,18 @@ compute_sb_data(struct vnode *devvp, str fs->e2fs_maxfilesize = 0x7fffffff; else fs->e2fs_maxfilesize = 0x7fffffffffffffff; + + if (es->e4fs_flags & E2FS_UNSIGNED_HASH) { + fs->e2fs_uhash = 3; + } else if ((es->e4fs_flags & E2FS_SIGNED_HASH) == 0) { +#ifdef __CHAR_UNSIGNED__ + es->e4fs_flags |= E2FS_UNSIGNED_HASH; + fs->e2fs_uhash = 3; +#else + es->e4fs_flags |= E2FS_SIGNED_HASH; +#endif + } + return (0); } Modified: stable/9/sys/fs/ext2fs/ext2fs.h ============================================================================== --- stable/9/sys/fs/ext2fs/ext2fs.h Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/fs/ext2fs/ext2fs.h Sun Aug 11 02:53:18 2013 (r254205) @@ -147,6 +147,7 @@ struct m_ext2fs { int32_t e2fs_contigsumsize; /* size of cluster summary array */ int32_t *e2fs_maxcluster; /* max cluster in each cyl group */ struct csum *e2fs_clustersum; /* cluster summary in each cyl group */ + int32_t e2fs_uhash; /* 3 if hash should be signed, 0 if not */ }; /* cluster summary information */ @@ -228,6 +229,12 @@ struct csum { #define E2FS_ISCLEAN 0x0001 /* Unmounted cleanly */ #define E2FS_ERRORS 0x0002 /* Errors detected */ +/* + * Filesystem miscellaneous flags + */ +#define E2FS_SIGNED_HASH 0x0001 +#define E2FS_UNSIGNED_HASH 0x0002 + /* ext2 file system block group descriptor */ struct ext2_gd { Copied: stable/9/sys/fs/ext2fs/htree.h (from r252890, head/sys/fs/ext2fs/htree.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/sys/fs/ext2fs/htree.h Sun Aug 11 02:53:18 2013 (r254205, copy of r252890, head/sys/fs/ext2fs/htree.h) @@ -0,0 +1,100 @@ +/*- + * Copyright (c) 2010, 2012 Zheng Liu + * Copyright (c) 2012, Vyacheslav Matyushin + * 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 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. + * + * $FreeBSD$ + */ + +#ifndef _FS_EXT2FS_HTREE_H_ +#define _FS_EXT2FS_HTREE_H_ + +/* EXT3 HTree directory indexing */ + +#define EXT2_HTREE_LEGACY 0 +#define EXT2_HTREE_HALF_MD4 1 +#define EXT2_HTREE_TEA 2 +#define EXT2_HTREE_LEGACY_UNSIGNED 3 +#define EXT2_HTREE_HALF_MD4_UNSIGNED 4 +#define EXT2_HTREE_TEA_UNSIGNED 5 + +#define EXT2_HTREE_EOF 0x7FFFFFFF + +struct ext2fs_fake_direct { + uint32_t e2d_ino; /* inode number of entry */ + uint16_t e2d_reclen; /* length of this record */ + uint8_t e2d_namlen; /* length of string in d_name */ + uint8_t e2d_type; /* file type */ +}; + +struct ext2fs_htree_count { + uint16_t h_entries_max; + uint16_t h_entries_num; +}; + +struct ext2fs_htree_entry { + uint32_t h_hash; + uint32_t h_blk; +}; + +struct ext2fs_htree_root_info { + uint32_t h_reserved1; + uint8_t h_hash_version; + uint8_t h_info_len; + uint8_t h_ind_levels; + uint8_t h_reserved2; +}; + +struct ext2fs_htree_root { + struct ext2fs_fake_direct h_dot; + char h_dot_name[4]; + struct ext2fs_fake_direct h_dotdot; + char h_dotdot_name[4]; + struct ext2fs_htree_root_info h_info; + struct ext2fs_htree_entry h_entries[0]; +}; + +struct ext2fs_htree_node { + struct ext2fs_fake_direct h_fake_dirent; + struct ext2fs_htree_entry h_entries[0]; +}; + +struct ext2fs_htree_lookup_level { + struct buf *h_bp; + struct ext2fs_htree_entry *h_entries; + struct ext2fs_htree_entry *h_entry; +}; + +struct ext2fs_htree_lookup_info { + struct ext2fs_htree_lookup_level h_levels[2]; + uint32_t h_levels_num; +}; + +struct ext2fs_htree_sort_entry { + uint16_t h_offset; + uint16_t h_size; + uint32_t h_hash; +}; + +#endif /* !_FS_EXT2FS_HTREE_H_ */ Modified: stable/9/sys/modules/ext2fs/Makefile ============================================================================== --- stable/9/sys/modules/ext2fs/Makefile Sun Aug 11 01:57:54 2013 (r254204) +++ stable/9/sys/modules/ext2fs/Makefile Sun Aug 11 02:53:18 2013 (r254205) @@ -3,8 +3,8 @@ .PATH: ${.CURDIR}/../../fs/ext2fs KMOD= ext2fs SRCS= opt_ddb.h opt_directio.h opt_quota.h opt_suiddir.h vnode_if.h \ - ext2_alloc.c ext2_balloc.c ext2_bmap.c ext2_inode.c \ - ext2_inode_cnv.c ext2_lookup.c ext2_subr.c ext2_vfsops.c \ + ext2_alloc.c ext2_balloc.c ext2_bmap.c ext2_hash.c ext2_htree.c \ + ext2_inode.c ext2_inode_cnv.c ext2_lookup.c ext2_subr.c ext2_vfsops.c \ ext2_vnops.c .include From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 03:39:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 08FE72F0; Sun, 11 Aug 2013 03:39:29 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E87812EC7; Sun, 11 Aug 2013 03:39:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B3dScX030930; Sun, 11 Aug 2013 03:39:28 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B3dSfT030929; Sun, 11 Aug 2013 03:39:28 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308110339.r7B3dSfT030929@svn.freebsd.org> From: Adrian Chadd Date: Sun, 11 Aug 2013 03:39:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254206 - head/sys/dev/iwn X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 03:39:29 -0000 Author: adrian Date: Sun Aug 11 03:39:28 2013 New Revision: 254206 URL: http://svnweb.freebsd.org/changeset/base/254206 Log: Use the correct structure size when flipping the BT coex state machine. This showed up when doing some basic testing on the Intel 6230. Tested: * Intel 6230, STA mode Modified: head/sys/dev/iwn/if_iwn.c Modified: head/sys/dev/iwn/if_iwn.c ============================================================================== --- head/sys/dev/iwn/if_iwn.c Sun Aug 11 02:53:18 2013 (r254205) +++ head/sys/dev/iwn/if_iwn.c Sun Aug 11 03:39:28 2013 (r254206) @@ -5372,7 +5372,7 @@ iwn_send_advanced_btcoex(struct iwn_soft return error; /* Force BT state machine change. */ - memset(&btprot, 0, sizeof btprio); + memset(&btprot, 0, sizeof btprot); btprot.open = 1; btprot.type = 1; error = iwn_cmd(sc, IWN_CMD_BT_COEX_PROT, &btprot, sizeof(btprot), 1); From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 06:57:57 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CC42091C; Sun, 11 Aug 2013 06:57:57 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B7DF52644; Sun, 11 Aug 2013 06:57:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B6vvb1005920; Sun, 11 Aug 2013 06:57:57 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B6vvUC005919; Sun, 11 Aug 2013 06:57:57 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201308110657.r7B6vvUC005919@svn.freebsd.org> From: Rui Paulo Date: Sun, 11 Aug 2013 06:57:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254207 - head/sys/dev/pci X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 06:57:57 -0000 Author: rpaulo Date: Sun Aug 11 06:57:57 2013 New Revision: 254207 URL: http://svnweb.freebsd.org/changeset/base/254207 Log: Use device_printf(). Modified: head/sys/dev/pci/fixup_pci.c Modified: head/sys/dev/pci/fixup_pci.c ============================================================================== --- head/sys/dev/pci/fixup_pci.c Sun Aug 11 03:39:28 2013 (r254206) +++ head/sys/dev/pci/fixup_pci.c Sun Aug 11 06:57:57 2013 (r254207) @@ -92,13 +92,13 @@ fixwsc_natoma(device_t dev) pmccfg = pci_read_config(dev, 0x50, 2); #if defined(SMP) if (pmccfg & 0x8000) { - printf("Correcting Natoma config for SMP\n"); + device_printf(dev, "correcting Natoma config for SMP\n"); pmccfg &= ~0x8000; pci_write_config(dev, 0x50, pmccfg, 2); } #else if ((pmccfg & 0x8000) == 0) { - printf("Correcting Natoma config for non-SMP\n"); + device_printf(dev, "correcting Natoma config for non-SMP\n"); pmccfg |= 0x8000; pci_write_config(dev, 0x50, pmccfg, 2); } @@ -132,7 +132,8 @@ fixc1_nforce2(device_t dev) pci_get_function(dev) == 0) { val = pci_read_config(dev, 0x6c, 4); if (val & 0x000e0000) { - printf("Correcting nForce2 C1 CPU disconnect hangs\n"); + device_printf(dev, + "correcting nForce2 C1 CPU disconnect hangs\n"); val &= ~0x000e0000; pci_write_config(dev, 0x6c, val, 4); } From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 08:38:12 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 990595AD; Sun, 11 Aug 2013 08:38:12 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 828CF29C8; Sun, 11 Aug 2013 08:38:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B8cCVG044328; Sun, 11 Aug 2013 08:38:12 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B8cB1l044320; Sun, 11 Aug 2013 08:38:11 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308110838.r7B8cB1l044320@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 08:38:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254210 - in vendor/nvi: 1.79 1.79/build 1.79/catalog 1.79/cl 1.79/clib 1.79/common 1.79/contrib/nvi 1.79/contrib/nvi/build 1.79/contrib/nvi/catalog 1.79/contrib/nvi/cl 1.79/contrib/nvi... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 08:38:12 -0000 Author: peter Date: Sun Aug 11 08:38:10 2013 New Revision: 254210 URL: http://svnweb.freebsd.org/changeset/base/254210 Log: Post-cvs2svn flatten pass. Added: vendor/nvi/1.79/FAQ - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/FAQ vendor/nvi/1.79/LAYOUT - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/LAYOUT vendor/nvi/1.79/LICENSE - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/LICENSE vendor/nvi/1.79/README - copied unchanged from r254209, vendor/nvi/1.79/contrib/nvi/README vendor/nvi/1.79/build/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/build/ vendor/nvi/1.79/catalog/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/catalog/ vendor/nvi/1.79/cl/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/cl/ vendor/nvi/1.79/clib/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/clib/ vendor/nvi/1.79/common/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/common/ vendor/nvi/1.79/docs/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/docs/ vendor/nvi/1.79/ex/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/ex/ vendor/nvi/1.79/include/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/include/ vendor/nvi/1.79/ip/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/ip/ vendor/nvi/1.79/ip_cl/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/ip_cl/ vendor/nvi/1.79/perl_api/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/perl_api/ vendor/nvi/1.79/perl_scripts/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/perl_scripts/ vendor/nvi/1.79/tcl_api/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/tcl_api/ vendor/nvi/1.79/tcl_scripts/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/tcl_scripts/ vendor/nvi/1.79/tk/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/tk/ vendor/nvi/1.79/vi/ - copied from r254209, vendor/nvi/1.79/contrib/nvi/vi/ vendor/nvi/dist/FAQ - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/FAQ vendor/nvi/dist/LAYOUT - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/LAYOUT vendor/nvi/dist/LICENSE - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/LICENSE vendor/nvi/dist/README - copied unchanged from r254209, vendor/nvi/dist/contrib/nvi/README vendor/nvi/dist/build/ - copied from r254209, vendor/nvi/dist/contrib/nvi/build/ vendor/nvi/dist/catalog/ - copied from r254209, vendor/nvi/dist/contrib/nvi/catalog/ vendor/nvi/dist/cl/ - copied from r254209, vendor/nvi/dist/contrib/nvi/cl/ vendor/nvi/dist/clib/ - copied from r254209, vendor/nvi/dist/contrib/nvi/clib/ vendor/nvi/dist/common/ - copied from r254209, vendor/nvi/dist/contrib/nvi/common/ vendor/nvi/dist/docs/ - copied from r254209, vendor/nvi/dist/contrib/nvi/docs/ vendor/nvi/dist/ex/ - copied from r254209, vendor/nvi/dist/contrib/nvi/ex/ vendor/nvi/dist/include/ - copied from r254209, vendor/nvi/dist/contrib/nvi/include/ vendor/nvi/dist/ip/ - copied from r254209, vendor/nvi/dist/contrib/nvi/ip/ vendor/nvi/dist/ip_cl/ - copied from r254209, vendor/nvi/dist/contrib/nvi/ip_cl/ vendor/nvi/dist/perl_api/ - copied from r254209, vendor/nvi/dist/contrib/nvi/perl_api/ vendor/nvi/dist/perl_scripts/ - copied from r254209, vendor/nvi/dist/contrib/nvi/perl_scripts/ vendor/nvi/dist/tcl_api/ - copied from r254209, vendor/nvi/dist/contrib/nvi/tcl_api/ vendor/nvi/dist/tcl_scripts/ - copied from r254209, vendor/nvi/dist/contrib/nvi/tcl_scripts/ vendor/nvi/dist/tk/ - copied from r254209, vendor/nvi/dist/contrib/nvi/tk/ vendor/nvi/dist/vi/ - copied from r254209, vendor/nvi/dist/contrib/nvi/vi/ Deleted: vendor/nvi/1.79/contrib/nvi/FAQ vendor/nvi/1.79/contrib/nvi/LAYOUT vendor/nvi/1.79/contrib/nvi/LICENSE vendor/nvi/1.79/contrib/nvi/README vendor/nvi/1.79/contrib/nvi/build/ vendor/nvi/1.79/contrib/nvi/catalog/ vendor/nvi/1.79/contrib/nvi/cl/ vendor/nvi/1.79/contrib/nvi/clib/ vendor/nvi/1.79/contrib/nvi/common/ vendor/nvi/1.79/contrib/nvi/docs/ vendor/nvi/1.79/contrib/nvi/ex/ vendor/nvi/1.79/contrib/nvi/include/ vendor/nvi/1.79/contrib/nvi/ip/ vendor/nvi/1.79/contrib/nvi/ip_cl/ vendor/nvi/1.79/contrib/nvi/perl_api/ vendor/nvi/1.79/contrib/nvi/perl_scripts/ vendor/nvi/1.79/contrib/nvi/tcl_api/ vendor/nvi/1.79/contrib/nvi/tcl_scripts/ vendor/nvi/1.79/contrib/nvi/tk/ vendor/nvi/1.79/contrib/nvi/vi/ vendor/nvi/dist/contrib/nvi/FAQ vendor/nvi/dist/contrib/nvi/LAYOUT vendor/nvi/dist/contrib/nvi/LICENSE vendor/nvi/dist/contrib/nvi/README vendor/nvi/dist/contrib/nvi/build/ vendor/nvi/dist/contrib/nvi/catalog/ vendor/nvi/dist/contrib/nvi/cl/ vendor/nvi/dist/contrib/nvi/clib/ vendor/nvi/dist/contrib/nvi/common/ vendor/nvi/dist/contrib/nvi/docs/ vendor/nvi/dist/contrib/nvi/ex/ vendor/nvi/dist/contrib/nvi/include/ vendor/nvi/dist/contrib/nvi/ip/ vendor/nvi/dist/contrib/nvi/ip_cl/ vendor/nvi/dist/contrib/nvi/perl_api/ vendor/nvi/dist/contrib/nvi/perl_scripts/ vendor/nvi/dist/contrib/nvi/tcl_api/ vendor/nvi/dist/contrib/nvi/tcl_scripts/ vendor/nvi/dist/contrib/nvi/tk/ vendor/nvi/dist/contrib/nvi/vi/ Copied: vendor/nvi/1.79/FAQ (from r254209, vendor/nvi/1.79/contrib/nvi/FAQ) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/FAQ Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/FAQ) @@ -0,0 +1,160 @@ +@(#)FAQ 8.13 (Berkeley) 10/14/96 + +Q: How can I get vi to display my character set? +A: Vi uses the C library routine isprint(3) to determine if a character + is printable, or should be displayed as an octal or hexadecimal value + on the screen. Generally, if vi is displaying printable characters + in octal/hexadecimal forms, your environment is not configured correctly. + Try looking at the man pages that allow you to configure your locale. + For example, to configure an ISO 8859-1 locale under Solaris using csh, + you would do: + + setenv LANG C + setenv LC_CTYPE iso_8859_1 + + Other LC_CTYPE systems/values that I'm told work: + + System Value + ====== ===== + FreeBSD lt_LN.ISO_8859-1 + HP-UX 9.X american.iso88591 + HP-UX 10.X en_US.iso88591 + SunOS 4.X iso_8859_1 + SunOS 5.X iso_8859_1 + + If there's no other solution, you can use the print and noprint edit + options of vi to specify that a specific character is printable or not + printable. + +Q: My map won't work! +A: One thing that you should immediately check if a vi map doesn't work + is if depends on the final cursor position after a P or p command. + Historic vi's were inconsistent as to the final position of the cursor, + and, to make matter worse, the final cursor position also depended on + whether the put text came from a named or unnamed buffer! Vi follows + the POSIX 1003.2 standard on this one, and makes this consistent, always + placing the cursor on the first character. + +Q: I'm using ksh or csh as my vi edit option shell value, and file + expansions don't work right! +A: The problem may be in your ksh or csh startup files, e.g., .cshrc. Vi + executes the shell to do name expansion, and the shell generally reads + its startup files. If the startup files are not correctly configured + for non-interactive use, e.g., they always echo a prompt to the screen, + vi will be unable to parse the output and things will not work + correctly. + +Q: How does the iclower edit option differ from the ignorecase (i.e. ic) + edit option? +A: The difference is that the ignorecase edit option always ignores the + case of letters in the Regular Expression (RE), and the iclower edit + option only ignores the case if there are no upper-case letters in the + RE. If any upper-case letters appear in the Regular Expression, then + it will be treated case-sensitively, as if the ignorecase edit option + was not set. + +Q: When I edit binary files, vi appends a to the last line! +A: This is historic practice for vi, and further, it's required by the + POSIX 1003.2 standard. My intent is to provide a command line and/or + edit option to turn this behavior off when I switch to version 2.0 of + the Berkeley DB package. + +Q: My cursor keys don't work when I'm in text input mode! +A: A common problem over slow links is that the set of characters sent by + the cursor keys don't arrive close enough together for vi to understand + that they are a single keystroke, and not separate keystrokes. Try + increasing the value of the escapetime edit option, which will cause + vi to wait longer before deciding that the character that + starts cursor key sequences doesn't have any characters following it. + +Q: When I edit some files, vi seems to hang forever, and I have to kill it. +A: Vi uses flock(2) and fcntl(2) to do file locking. When it attempts to + acquired a lock for a file on an NFS mounted filesystem, it can hang + for a very long (perhaps infinite) period of time. Turning off the + "lock" edit option will keep vi from attempting to acquire any locks + on the files you edit. + +Q: When I compile vi I get lots of warnings about pointer assignments + being incompatible! +A: Vi is partially written to support wide characters. When this code + interfaces with the code that doesn't yet support wide characters, + the pointer types clash. This will hopefully be fixed in the near + future, but I've been saying that for awhile, now. + +Q: I get jumpy scrolling behavior in the screen! +A: This is almost certainly a problem with the system's terminfo or + termcap information for your terminal. If the terminfo/termcap entry + doesn't have the settable scrolling region capabilities, or the more + powerful scrolling commands, these behaviors can result. Historic + implementations of vi, and some of the vi clones, don't suffer from + this problem because they wrote their own screen support instead of + using the curses library. + + The solution is to find a good terminfo or termcap entry for your + terminal, which will fix the problem for all of the applications on + your system, not just vi. Eric Raymond maintains the freely + redistributable termcap/terminfo entries. They can be downloaded + from http://www.ccil.org/~esr/ncurses.html, or you can contact him + at esr@snark.thyrsus.com. + +Q: The entire screen repaints on every keystroke! +A: Your system's curses implementation is broken. You should use the + curses implementation provided with vi or a curses replacement such + as ncurses. Eric Raymond is one of the maintainers of the freely + redistributable ncurses package. You can download ncurses from + http://www.ccil.org/~esr/ncurses.html, or you can contact him at + esr@snark.thyrsus.com. + +Q: When I use vi on a Sun console (terminal type sun-34) the screen + is occasionally trashed, usually when exiting vi! +A: The Sun console can't handle the 'al' capability of the termcap + entry (the il1 capability of terminfo entries). If you delete that + entry from your terminfo/termcap information everything should work + correctly. + +Q: I don't have a version of ctags (or I have ctags, but it doesn't tag + nearly enough things)! +A: There's a version of ctags available on the 4.4BSD-Lite distributions, + as well as the FreeBSD, NetBSD, Linux and GNU distributions. Or, you + might want to try Exuberant Ctags: + + Title: Exuberant Ctags + Version: 1.3 + Entered-date: 16JUN96 + Description: + A better ctags which generates tags for all possible tag types: + macro definitions, enumerated values (values inside enum{...}), + function and method definitions, enum/struct/union tags, external + function prototypes (optional), typedefs, and variable + declarations. It is far less easily fooled by code containing #if + preprocessor conditional constructs, using a conditional path + selection algorithm to resolve complicated choices, and a + fall-back algorithm when this one fails. Can also be used to print + out a list of selected objects found in source files. + Keywords: ctags, tags, exuberant + Author: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Maintained-by: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c + 27kB ctags-1.3.tar.gz + Alternate-site: ftp.halcyon.com /local/gvr + 27kB ctags-1.3.tar.gz + Original-site: + Platforms: UNIX, MSDOS, WindowsNT, Windows95, OS/2, Amiga + Copying-policy: Public domain + +Q: When I update a file I already have open, and use :e to reread it, I + get nul's for the rest of the file! +A: Your system's implementation of mmap(2) has a bug; you will have to + exit vi and re-execute it. + +Q: Where can I get cscope? +A: Cscope is available on UNIXWare System V Release 4.0 variants such as + Sun Solaris 2.x (/opt/SUNWspro/bin) and UNIXWare System V Release 4.1. + + You can buy version 13.3 source with an unrestricted license for $400 + from AT&T Software Solutions by calling +1-800-462-8146. Binary + redistribution of cscope is an additional $1500, one-time flat fee. + + For more information, see http://www.unipress.com/att/new/cscope.html. Copied: vendor/nvi/1.79/LAYOUT (from r254209, vendor/nvi/1.79/contrib/nvi/LAYOUT) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/LAYOUT Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/LAYOUT) @@ -0,0 +1,128 @@ +# @(#)LAYOUT 8.12 (Berkeley) 10/10/96 + +LAYOUT + This file: the layout of the nvi sources. + +LICENSE + Nvi's copyright notice and conditions for redistribution. + +README + Welcome message and basic information. + +build/ + The build/configuration directory for nvi. See build/README for + more information. + +catalog/ + Support for message catalogs for nvi. See catalog/README for more + information. + +cl/ + Source files for nvi's curses screen support. + +clib/ + Replacement source files for C library functions. + +common/ + Source files for pieces of code that are shared by ex and vi, + e.g., searching and logging code or code translating line numbers + into requests to the dbopen(3) database code. It also has the + interface code for modifying "records" in the underlying database. + +curses/ + A stripped-down replacement curses library. Do not try and use + this library outside of nvi, many standard curses functions have + been removed because nvi doesn't use them. See build/README for + more information. + +db/ + A stripped-down replacement DB library. Do not try and use this + library outside of nvi, many standard DB functions have been + removed because nvi doesn't use them. See db/README for more + information. + +docs/ + Ex/vi documentation, both current and historic. + + USD.doc/ + [USD stands for "User's Supplementary Documents".] + + edit/ Roff source for "Edit: A tutorial". This document + was USD:14 in the 4.3BSD manuals, but was not + distributed with 4.4BSD. + + exref/ Roff source for "Ex Reference Manual -- Version + 3.7". This document was USD:16 in the 4.3BSD + manuals, and USD tabbed 12 in the 4.4BSD manuals. + + vi.man/ Roff source for a UNIX manual page for nex/nvi. + An updated version of the 4.4BSD manual page. + + vi.ref/ Roff source for the nex/nvi reference document. + An updated version of the 4.4BSD document, USD + tabbed 13. + + vitut/ Roff source for "An Introduction to Display + Editing with Vi". This document was USD:15 in + the 4.3BSD manuals, but was not distributed with + 4.4BSD. It includes the historic "Vi Quick + Reference" card. + + + PostScript preformatted versions of the nex/nvi reference + manual and manual page are in the files named with a ".ps" + suffix, in their respective source directories. Flat text + preformatted versions of the nex/nvi reference manual and + manual page are in the files named with a ".txt" suffix, + in their respective source directories. + + changelog -- Log of changes from version to version. + features -- Todo list, suggested features list. + internals/ + autowrite -- Vi autowrite option discussion. + context -- Previous context marks discussion. + gdb.script -- GDB debugging scripts. + input -- Vi maps, executable buffers, and input discussion. + openmode -- Open mode behaviors. + quoting -- Vi quoting discussion. + structures -- Out-of-date nvi internal structure description. + tutorial/ -- Historic vi tutorial(s), of unknown quality. + +ex/ + The ex source code. Because vi has the colon command, lots of + this code is used by vi. Generally, if functionality is shared + by both ex and vi, it's in the ex directory. If it's vi only, + it's in the vi directory. Files are generally named by the + command(s) they support, but occasionally with a name that + describes their functionality. + + version.h -- Version information. + +include/ + Replacement include files: + + bitstring.h -- The 4.4BSD bitstring operations. + sys/queue.h -- The 4.4BSD queue operations. + +perl_api/ + Source code supporting the Perl scripting language for nvi. + +perl_scripts/ + Scripts for Perl included with nvi. + +regex/ + Henry Spencer's POSIX 1003.2 regular expression (RE) library. + +tcl_api/ + Source code supporting the Tcl scripting language for nvi. + +tcl_scripts/ + Scripts for Tcl included with nvi. + +tk/ + Source files for nvi's Tk screen support. + + init.tcl -- Vi startup tcl script. + +vi/ + The vi source code. Copied: vendor/nvi/1.79/LICENSE (from r254209, vendor/nvi/1.79/contrib/nvi/LICENSE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/LICENSE Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/LICENSE) @@ -0,0 +1,40 @@ +The vi program is freely redistributable. You are welcome to copy, modify +and share it with others under the conditions listed in this file. If any +company (not any individual!) finds vi sufficiently useful that you would +have purchased it, or if any company wishes to redistribute it, contributions +to the authors would be appreciated. + +/*- + * Copyright (c) 1991, 1992, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Keith Bostic. 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 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. + */ Copied: vendor/nvi/1.79/README (from r254209, vendor/nvi/1.79/contrib/nvi/README) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/1.79/README Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/1.79/contrib/nvi/README) @@ -0,0 +1,113 @@ +# @(#)README 8.147 (Berkeley) 10/19/96 + +This is the README for nex/nvi, a freely redistributable implementation +of the ex/vi text editors originally distributed as part of the Fourth +Berkeley Software Distribution (4BSD), by the University of California, +Berkeley. + +The source code for nex/nvi can be retrieved by using anonymous ftp to +ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, +of version 1.71 of nex/nvi. This version is believed to be stable and +problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive +of the current alpha-test release of nex/nvi. This version reflects the +current development tree, and will be more likely to have problems. + +See the file: + build/README for information on building nvi. + LAYOUT for a description of where everything is. + LICENSE for the copyright and redistribution terms. + +If you have any questions about nex/nvi, problems with it, or concerns +about the conditions for redistribution, please contact me: + + Keith Bostic +1-508-287-4781 + 394 E. Riding Dr. bostic@bostic.com + Carlisle, MA 01741 + USA + +Keith Bostic + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +o This software is several years old and is the product of many folks' work. + + This software was originally derived from software contributed to + the University of California, Berkeley by Steve Kirkendall, the + author of the vi clone elvis. Without his work, this work would + have been far more difficult. + + IEEE POSIX 1003.2 style regular expression support is courtesy of + Henry Spencer, for which I am *very* grateful. + + Elan Amir did the original 4BSD curses work that made it possible + to support a full-screen editor using curses. + + George Neville-Neil added the Tcl interpreter, and the initial + interpreter design was his. + + Sven Verdoolaege added the Perl interpreter. + + Rob Mayoff provided the original Cscope support. + +o Many, many people suggested enhancements, and provided bug reports and + testing, far too many to individually thank. + +o From the original vi acknowledgements, by William Joy and Mark Horton: + + Bruce Englar encouraged the early development of this display + editor. Peter Kessler helped bring sanity to version 2's + command layout. Bill Joy wrote versions 1 and 2.0 through 2.7, + and created the framework that users see in the present editor. + Mark Horton added macros and other features and made the editor + work on a large number of terminals and Unix systems. + +o And... + The financial support of UUNET Communications Services is gratefully + acknowledged. + +=-=-=-=-=-=-=-=-=-=-= +o Status: + +This software is in beta test, and it's pretty stable. Almost all of the +historic functionality in ex/vi is there, the only major missing pieces +are open mode and the lisp edit option. + +Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in +during initial development to keep things simple. Wide character support +will be integrated at the same time that it is made fully 8-bit clean. + +There aren't a lot of new features in nex/nvi, but there are a few things +you might like. The "Additional Features" section of the reference work +(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more +information. + +=-=-=-=-=-=-=-=-=-=-= +o Debugging: + +Code fixes are greatly appreciated, of course, but if you can't provide +them, please email me as much information as you can as to how I might +reproduce the bug, and I'll try to fix it locally. Stack traces of core +dumps are only rarely helpful -- an example file with a set of keystrokes +that causes the problem is almost invariably necessary. I know it's +annoying, but simply playing with the bug until you can reproduce it at +will, with minimal keystrokes, is immensely helpful to me. + +Please include the following in the bug report; + + o The version of nvi you're running (use :version to get it). + o The row/column dimensions of the screen (80 x 32). + o Unless you're confident that they're not part of the problem, + your startup files (.exrc, .nexrc) and the environment variable + (EXINIT, NEXINIT) values. (Cutting and pasting the output + of ":set all" is usually sufficient.) + +If you want to do your own debugging, recompile the program with DEBUG +defined. (Configuring with --enable-debug will do this for you.) This +turns on the additional command-line option -D, that takes either s or w +as an argument. The option -Ds causes nvi to ignore the EXINIT and +.exrc files on startup, and -Dw causes nvi to print out the process id +and wait for you to enter a to continue. + +If you're running a memory checker (e.g. Purify) on nvi, you will first +want to recompile everything with "-DPURIFY" set in the CFLAGS. This +initializes allocated pages in the DB code, and free's allocated memory +at the end of the nvi execution. Copied: vendor/nvi/dist/FAQ (from r254209, vendor/nvi/dist/contrib/nvi/FAQ) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/FAQ Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/FAQ) @@ -0,0 +1,160 @@ +@(#)FAQ 8.13 (Berkeley) 10/14/96 + +Q: How can I get vi to display my character set? +A: Vi uses the C library routine isprint(3) to determine if a character + is printable, or should be displayed as an octal or hexadecimal value + on the screen. Generally, if vi is displaying printable characters + in octal/hexadecimal forms, your environment is not configured correctly. + Try looking at the man pages that allow you to configure your locale. + For example, to configure an ISO 8859-1 locale under Solaris using csh, + you would do: + + setenv LANG C + setenv LC_CTYPE iso_8859_1 + + Other LC_CTYPE systems/values that I'm told work: + + System Value + ====== ===== + FreeBSD lt_LN.ISO_8859-1 + HP-UX 9.X american.iso88591 + HP-UX 10.X en_US.iso88591 + SunOS 4.X iso_8859_1 + SunOS 5.X iso_8859_1 + + If there's no other solution, you can use the print and noprint edit + options of vi to specify that a specific character is printable or not + printable. + +Q: My map won't work! +A: One thing that you should immediately check if a vi map doesn't work + is if depends on the final cursor position after a P or p command. + Historic vi's were inconsistent as to the final position of the cursor, + and, to make matter worse, the final cursor position also depended on + whether the put text came from a named or unnamed buffer! Vi follows + the POSIX 1003.2 standard on this one, and makes this consistent, always + placing the cursor on the first character. + +Q: I'm using ksh or csh as my vi edit option shell value, and file + expansions don't work right! +A: The problem may be in your ksh or csh startup files, e.g., .cshrc. Vi + executes the shell to do name expansion, and the shell generally reads + its startup files. If the startup files are not correctly configured + for non-interactive use, e.g., they always echo a prompt to the screen, + vi will be unable to parse the output and things will not work + correctly. + +Q: How does the iclower edit option differ from the ignorecase (i.e. ic) + edit option? +A: The difference is that the ignorecase edit option always ignores the + case of letters in the Regular Expression (RE), and the iclower edit + option only ignores the case if there are no upper-case letters in the + RE. If any upper-case letters appear in the Regular Expression, then + it will be treated case-sensitively, as if the ignorecase edit option + was not set. + +Q: When I edit binary files, vi appends a to the last line! +A: This is historic practice for vi, and further, it's required by the + POSIX 1003.2 standard. My intent is to provide a command line and/or + edit option to turn this behavior off when I switch to version 2.0 of + the Berkeley DB package. + +Q: My cursor keys don't work when I'm in text input mode! +A: A common problem over slow links is that the set of characters sent by + the cursor keys don't arrive close enough together for vi to understand + that they are a single keystroke, and not separate keystrokes. Try + increasing the value of the escapetime edit option, which will cause + vi to wait longer before deciding that the character that + starts cursor key sequences doesn't have any characters following it. + +Q: When I edit some files, vi seems to hang forever, and I have to kill it. +A: Vi uses flock(2) and fcntl(2) to do file locking. When it attempts to + acquired a lock for a file on an NFS mounted filesystem, it can hang + for a very long (perhaps infinite) period of time. Turning off the + "lock" edit option will keep vi from attempting to acquire any locks + on the files you edit. + +Q: When I compile vi I get lots of warnings about pointer assignments + being incompatible! +A: Vi is partially written to support wide characters. When this code + interfaces with the code that doesn't yet support wide characters, + the pointer types clash. This will hopefully be fixed in the near + future, but I've been saying that for awhile, now. + +Q: I get jumpy scrolling behavior in the screen! +A: This is almost certainly a problem with the system's terminfo or + termcap information for your terminal. If the terminfo/termcap entry + doesn't have the settable scrolling region capabilities, or the more + powerful scrolling commands, these behaviors can result. Historic + implementations of vi, and some of the vi clones, don't suffer from + this problem because they wrote their own screen support instead of + using the curses library. + + The solution is to find a good terminfo or termcap entry for your + terminal, which will fix the problem for all of the applications on + your system, not just vi. Eric Raymond maintains the freely + redistributable termcap/terminfo entries. They can be downloaded + from http://www.ccil.org/~esr/ncurses.html, or you can contact him + at esr@snark.thyrsus.com. + +Q: The entire screen repaints on every keystroke! +A: Your system's curses implementation is broken. You should use the + curses implementation provided with vi or a curses replacement such + as ncurses. Eric Raymond is one of the maintainers of the freely + redistributable ncurses package. You can download ncurses from + http://www.ccil.org/~esr/ncurses.html, or you can contact him at + esr@snark.thyrsus.com. + +Q: When I use vi on a Sun console (terminal type sun-34) the screen + is occasionally trashed, usually when exiting vi! +A: The Sun console can't handle the 'al' capability of the termcap + entry (the il1 capability of terminfo entries). If you delete that + entry from your terminfo/termcap information everything should work + correctly. + +Q: I don't have a version of ctags (or I have ctags, but it doesn't tag + nearly enough things)! +A: There's a version of ctags available on the 4.4BSD-Lite distributions, + as well as the FreeBSD, NetBSD, Linux and GNU distributions. Or, you + might want to try Exuberant Ctags: + + Title: Exuberant Ctags + Version: 1.3 + Entered-date: 16JUN96 + Description: + A better ctags which generates tags for all possible tag types: + macro definitions, enumerated values (values inside enum{...}), + function and method definitions, enum/struct/union tags, external + function prototypes (optional), typedefs, and variable + declarations. It is far less easily fooled by code containing #if + preprocessor conditional constructs, using a conditional path + selection algorithm to resolve complicated choices, and a + fall-back algorithm when this one fails. Can also be used to print + out a list of selected objects found in source files. + Keywords: ctags, tags, exuberant + Author: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Maintained-by: darren@sirsi.com (Darren Hiebert) + darren@hiwaay.net (Darren Hiebert) + Primary-site: sunsite.unc.edu /pub/Linux/devel/lang/c + 27kB ctags-1.3.tar.gz + Alternate-site: ftp.halcyon.com /local/gvr + 27kB ctags-1.3.tar.gz + Original-site: + Platforms: UNIX, MSDOS, WindowsNT, Windows95, OS/2, Amiga + Copying-policy: Public domain + +Q: When I update a file I already have open, and use :e to reread it, I + get nul's for the rest of the file! +A: Your system's implementation of mmap(2) has a bug; you will have to + exit vi and re-execute it. + +Q: Where can I get cscope? +A: Cscope is available on UNIXWare System V Release 4.0 variants such as + Sun Solaris 2.x (/opt/SUNWspro/bin) and UNIXWare System V Release 4.1. + + You can buy version 13.3 source with an unrestricted license for $400 + from AT&T Software Solutions by calling +1-800-462-8146. Binary + redistribution of cscope is an additional $1500, one-time flat fee. + + For more information, see http://www.unipress.com/att/new/cscope.html. Copied: vendor/nvi/dist/LAYOUT (from r254209, vendor/nvi/dist/contrib/nvi/LAYOUT) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/LAYOUT Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/LAYOUT) @@ -0,0 +1,128 @@ +# @(#)LAYOUT 8.12 (Berkeley) 10/10/96 + +LAYOUT + This file: the layout of the nvi sources. + +LICENSE + Nvi's copyright notice and conditions for redistribution. + +README + Welcome message and basic information. + +build/ + The build/configuration directory for nvi. See build/README for + more information. + +catalog/ + Support for message catalogs for nvi. See catalog/README for more + information. + +cl/ + Source files for nvi's curses screen support. + +clib/ + Replacement source files for C library functions. + +common/ + Source files for pieces of code that are shared by ex and vi, + e.g., searching and logging code or code translating line numbers + into requests to the dbopen(3) database code. It also has the + interface code for modifying "records" in the underlying database. + +curses/ + A stripped-down replacement curses library. Do not try and use + this library outside of nvi, many standard curses functions have + been removed because nvi doesn't use them. See build/README for + more information. + +db/ + A stripped-down replacement DB library. Do not try and use this + library outside of nvi, many standard DB functions have been + removed because nvi doesn't use them. See db/README for more + information. + +docs/ + Ex/vi documentation, both current and historic. + + USD.doc/ + [USD stands for "User's Supplementary Documents".] + + edit/ Roff source for "Edit: A tutorial". This document + was USD:14 in the 4.3BSD manuals, but was not + distributed with 4.4BSD. + + exref/ Roff source for "Ex Reference Manual -- Version + 3.7". This document was USD:16 in the 4.3BSD + manuals, and USD tabbed 12 in the 4.4BSD manuals. + + vi.man/ Roff source for a UNIX manual page for nex/nvi. + An updated version of the 4.4BSD manual page. + + vi.ref/ Roff source for the nex/nvi reference document. + An updated version of the 4.4BSD document, USD + tabbed 13. + + vitut/ Roff source for "An Introduction to Display + Editing with Vi". This document was USD:15 in + the 4.3BSD manuals, but was not distributed with + 4.4BSD. It includes the historic "Vi Quick + Reference" card. + + + PostScript preformatted versions of the nex/nvi reference + manual and manual page are in the files named with a ".ps" + suffix, in their respective source directories. Flat text + preformatted versions of the nex/nvi reference manual and + manual page are in the files named with a ".txt" suffix, + in their respective source directories. + + changelog -- Log of changes from version to version. + features -- Todo list, suggested features list. + internals/ + autowrite -- Vi autowrite option discussion. + context -- Previous context marks discussion. + gdb.script -- GDB debugging scripts. + input -- Vi maps, executable buffers, and input discussion. + openmode -- Open mode behaviors. + quoting -- Vi quoting discussion. + structures -- Out-of-date nvi internal structure description. + tutorial/ -- Historic vi tutorial(s), of unknown quality. + +ex/ + The ex source code. Because vi has the colon command, lots of + this code is used by vi. Generally, if functionality is shared + by both ex and vi, it's in the ex directory. If it's vi only, + it's in the vi directory. Files are generally named by the + command(s) they support, but occasionally with a name that + describes their functionality. + + version.h -- Version information. + +include/ + Replacement include files: + + bitstring.h -- The 4.4BSD bitstring operations. + sys/queue.h -- The 4.4BSD queue operations. + +perl_api/ + Source code supporting the Perl scripting language for nvi. + +perl_scripts/ + Scripts for Perl included with nvi. + +regex/ + Henry Spencer's POSIX 1003.2 regular expression (RE) library. + +tcl_api/ + Source code supporting the Tcl scripting language for nvi. + +tcl_scripts/ + Scripts for Tcl included with nvi. + +tk/ + Source files for nvi's Tk screen support. + + init.tcl -- Vi startup tcl script. + +vi/ + The vi source code. Copied: vendor/nvi/dist/LICENSE (from r254209, vendor/nvi/dist/contrib/nvi/LICENSE) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/LICENSE Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/LICENSE) @@ -0,0 +1,40 @@ +The vi program is freely redistributable. You are welcome to copy, modify +and share it with others under the conditions listed in this file. If any +company (not any individual!) finds vi sufficiently useful that you would +have purchased it, or if any company wishes to redistribute it, contributions +to the authors would be appreciated. + +/*- + * Copyright (c) 1991, 1992, 1993, 1994 + * The Regents of the University of California. All rights reserved. + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Keith Bostic. 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 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. + */ Copied: vendor/nvi/dist/README (from r254209, vendor/nvi/dist/contrib/nvi/README) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/nvi/dist/README Sun Aug 11 08:38:10 2013 (r254210, copy of r254209, vendor/nvi/dist/contrib/nvi/README) @@ -0,0 +1,113 @@ +# @(#)README 8.147 (Berkeley) 10/19/96 + +This is the README for nex/nvi, a freely redistributable implementation +of the ex/vi text editors originally distributed as part of the Fourth +Berkeley Software Distribution (4BSD), by the University of California, +Berkeley. + +The source code for nex/nvi can be retrieved by using anonymous ftp to +ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, +of version 1.71 of nex/nvi. This version is believed to be stable and +problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive +of the current alpha-test release of nex/nvi. This version reflects the +current development tree, and will be more likely to have problems. + +See the file: + build/README for information on building nvi. + LAYOUT for a description of where everything is. + LICENSE for the copyright and redistribution terms. + +If you have any questions about nex/nvi, problems with it, or concerns +about the conditions for redistribution, please contact me: + + Keith Bostic +1-508-287-4781 + 394 E. Riding Dr. bostic@bostic.com + Carlisle, MA 01741 + USA + +Keith Bostic + +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +o This software is several years old and is the product of many folks' work. + + This software was originally derived from software contributed to + the University of California, Berkeley by Steve Kirkendall, the + author of the vi clone elvis. Without his work, this work would + have been far more difficult. + + IEEE POSIX 1003.2 style regular expression support is courtesy of + Henry Spencer, for which I am *very* grateful. + + Elan Amir did the original 4BSD curses work that made it possible + to support a full-screen editor using curses. + + George Neville-Neil added the Tcl interpreter, and the initial + interpreter design was his. + + Sven Verdoolaege added the Perl interpreter. + + Rob Mayoff provided the original Cscope support. + +o Many, many people suggested enhancements, and provided bug reports and + testing, far too many to individually thank. + +o From the original vi acknowledgements, by William Joy and Mark Horton: + + Bruce Englar encouraged the early development of this display + editor. Peter Kessler helped bring sanity to version 2's + command layout. Bill Joy wrote versions 1 and 2.0 through 2.7, + and created the framework that users see in the present editor. + Mark Horton added macros and other features and made the editor + work on a large number of terminals and Unix systems. + +o And... + The financial support of UUNET Communications Services is gratefully + acknowledged. + +=-=-=-=-=-=-=-=-=-=-= +o Status: + +This software is in beta test, and it's pretty stable. Almost all of the +historic functionality in ex/vi is there, the only major missing pieces +are open mode and the lisp edit option. + +Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in +during initial development to keep things simple. Wide character support +will be integrated at the same time that it is made fully 8-bit clean. + +There aren't a lot of new features in nex/nvi, but there are a few things +you might like. The "Additional Features" section of the reference work +(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more +information. + +=-=-=-=-=-=-=-=-=-=-= +o Debugging: + +Code fixes are greatly appreciated, of course, but if you can't provide +them, please email me as much information as you can as to how I might +reproduce the bug, and I'll try to fix it locally. Stack traces of core +dumps are only rarely helpful -- an example file with a set of keystrokes +that causes the problem is almost invariably necessary. I know it's +annoying, but simply playing with the bug until you can reproduce it at +will, with minimal keystrokes, is immensely helpful to me. + +Please include the following in the bug report; + + o The version of nvi you're running (use :version to get it). + o The row/column dimensions of the screen (80 x 32). + o Unless you're confident that they're not part of the problem, + your startup files (.exrc, .nexrc) and the environment variable + (EXINIT, NEXINIT) values. (Cutting and pasting the output + of ":set all" is usually sufficient.) + +If you want to do your own debugging, recompile the program with DEBUG +defined. (Configuring with --enable-debug will do this for you.) This +turns on the additional command-line option -D, that takes either s or w +as an argument. The option -Ds causes nvi to ignore the EXINIT and +.exrc files on startup, and -Dw causes nvi to print out the process id +and wait for you to enter a to continue. + +If you're running a memory checker (e.g. Purify) on nvi, you will first +want to recompile everything with "-DPURIFY" set in the CFLAGS. This +initializes allocated pages in the DB code, and free's allocated memory +at the end of the nvi execution. From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 09:45:00 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0786FE6; Sun, 11 Aug 2013 09:45:00 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E51712C88; Sun, 11 Aug 2013 09:44:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B9ixue070082; Sun, 11 Aug 2013 09:44:59 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B9iwxR070074; Sun, 11 Aug 2013 09:44:58 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308110944.r7B9iwxR070074@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 09:44:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254211 - in vendor/nvi/dist: . build catalog cl clib common contrib docs docs/USD.doc/vi.man docs/USD.doc/vi.ref ex include ip ip_cl perl_api perl_scripts regex tcl_api tcl_scripts tk vi X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 09:45:00 -0000 Author: peter Date: Sun Aug 11 09:44:58 2013 New Revision: 254211 URL: http://svnweb.freebsd.org/changeset/base/254211 Log: Import nvi-2.1.1-4334a8297f into the work area. This is the gsoc-2011 project to clean up and backport multibyte support from other nvi forks in a form we can use. GSoC info: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1 Repo at: https://github.com/lichray/nvi2 Obtained from: Zhihao Yuan Added: vendor/nvi/dist/catalog/polish.base (contents, props changed) vendor/nvi/dist/catalog/polish.owner vendor/nvi/dist/catalog/uk_UA.KOI8-U.base (contents, props changed) vendor/nvi/dist/catalog/uk_UA.KOI8-U.owner vendor/nvi/dist/catalog/zh_CN.GB2312.base (contents, props changed) vendor/nvi/dist/catalog/zh_CN.GB2312.owner vendor/nvi/dist/cl/extern.h (contents, props changed) vendor/nvi/dist/common/conv.c (contents, props changed) vendor/nvi/dist/common/conv.h (contents, props changed) vendor/nvi/dist/common/encoding.c (contents, props changed) vendor/nvi/dist/common/extern.h (contents, props changed) vendor/nvi/dist/common/multibyte.h (contents, props changed) vendor/nvi/dist/common/options_def.h (contents, props changed) vendor/nvi/dist/ex/ex_def.h (contents, props changed) vendor/nvi/dist/ex/extern.h (contents, props changed) vendor/nvi/dist/regex/ vendor/nvi/dist/regex/COPYRIGHT vendor/nvi/dist/regex/WHATSNEW vendor/nvi/dist/regex/cclass.h (contents, props changed) vendor/nvi/dist/regex/cname.h (contents, props changed) vendor/nvi/dist/regex/engine.c (contents, props changed) vendor/nvi/dist/regex/re_format.7 (contents, props changed) vendor/nvi/dist/regex/regcomp.c (contents, props changed) vendor/nvi/dist/regex/regerror.c (contents, props changed) vendor/nvi/dist/regex/regex.3 (contents, props changed) vendor/nvi/dist/regex/regex.h (contents, props changed) vendor/nvi/dist/regex/regex2.h (contents, props changed) vendor/nvi/dist/regex/regexec.c (contents, props changed) vendor/nvi/dist/regex/regfree.c (contents, props changed) vendor/nvi/dist/regex/utils.h (contents, props changed) vendor/nvi/dist/vi/extern.h (contents, props changed) Deleted: vendor/nvi/dist/FAQ vendor/nvi/dist/LAYOUT vendor/nvi/dist/build/ vendor/nvi/dist/catalog/dutch vendor/nvi/dist/catalog/dutch.check vendor/nvi/dist/catalog/english vendor/nvi/dist/catalog/english.base vendor/nvi/dist/catalog/english.check vendor/nvi/dist/catalog/french vendor/nvi/dist/catalog/french.check vendor/nvi/dist/catalog/german vendor/nvi/dist/catalog/german.check vendor/nvi/dist/catalog/ru_RU.KOI8-R vendor/nvi/dist/catalog/ru_RU.KOI8-R.check vendor/nvi/dist/catalog/ru_SU.KOI8-R vendor/nvi/dist/catalog/ru_SU.KOI8-R.base vendor/nvi/dist/catalog/ru_SU.KOI8-R.check vendor/nvi/dist/catalog/ru_SU.KOI8-R.owner vendor/nvi/dist/catalog/spanish vendor/nvi/dist/catalog/spanish.check vendor/nvi/dist/catalog/swedish vendor/nvi/dist/catalog/swedish.check vendor/nvi/dist/cl/cl_bsd.c vendor/nvi/dist/clib/ vendor/nvi/dist/common/api.c vendor/nvi/dist/contrib/ vendor/nvi/dist/ex/ex_perl.c vendor/nvi/dist/ex/ex_tcl.c vendor/nvi/dist/include/ vendor/nvi/dist/ip/ vendor/nvi/dist/ip_cl/ vendor/nvi/dist/perl_api/ vendor/nvi/dist/perl_scripts/ vendor/nvi/dist/tcl_api/ vendor/nvi/dist/tcl_scripts/ vendor/nvi/dist/tk/ Modified: vendor/nvi/dist/LICENSE vendor/nvi/dist/README vendor/nvi/dist/catalog/Makefile vendor/nvi/dist/catalog/README vendor/nvi/dist/catalog/dump.c vendor/nvi/dist/catalog/dutch.base (contents, props changed) vendor/nvi/dist/catalog/french.base (contents, props changed) vendor/nvi/dist/catalog/german.base (contents, props changed) vendor/nvi/dist/catalog/german.owner vendor/nvi/dist/catalog/ru_RU.KOI8-R.base (contents, props changed) vendor/nvi/dist/catalog/ru_RU.KOI8-R.owner vendor/nvi/dist/catalog/spanish.base (contents, props changed) vendor/nvi/dist/catalog/swedish.base (contents, props changed) vendor/nvi/dist/cl/README.signal vendor/nvi/dist/cl/cl.h vendor/nvi/dist/cl/cl_funcs.c vendor/nvi/dist/cl/cl_main.c vendor/nvi/dist/cl/cl_read.c vendor/nvi/dist/cl/cl_screen.c vendor/nvi/dist/cl/cl_term.c vendor/nvi/dist/common/args.h vendor/nvi/dist/common/common.h vendor/nvi/dist/common/cut.c vendor/nvi/dist/common/cut.h vendor/nvi/dist/common/delete.c vendor/nvi/dist/common/exf.c vendor/nvi/dist/common/exf.h vendor/nvi/dist/common/gs.h vendor/nvi/dist/common/key.c vendor/nvi/dist/common/key.h vendor/nvi/dist/common/line.c vendor/nvi/dist/common/log.c vendor/nvi/dist/common/main.c vendor/nvi/dist/common/mark.c vendor/nvi/dist/common/mark.h vendor/nvi/dist/common/mem.h vendor/nvi/dist/common/msg.c vendor/nvi/dist/common/msg.h vendor/nvi/dist/common/options.c vendor/nvi/dist/common/options.h vendor/nvi/dist/common/options_f.c vendor/nvi/dist/common/put.c vendor/nvi/dist/common/recover.c vendor/nvi/dist/common/screen.c vendor/nvi/dist/common/screen.h vendor/nvi/dist/common/search.c vendor/nvi/dist/common/seq.c vendor/nvi/dist/common/seq.h vendor/nvi/dist/common/util.c vendor/nvi/dist/common/util.h vendor/nvi/dist/docs/USD.doc/vi.man/vi.1 vendor/nvi/dist/docs/USD.doc/vi.ref/vi.ref vendor/nvi/dist/docs/help vendor/nvi/dist/ex/ex.c vendor/nvi/dist/ex/ex.h vendor/nvi/dist/ex/ex_abbrev.c vendor/nvi/dist/ex/ex_append.c vendor/nvi/dist/ex/ex_args.c vendor/nvi/dist/ex/ex_argv.c vendor/nvi/dist/ex/ex_at.c vendor/nvi/dist/ex/ex_bang.c vendor/nvi/dist/ex/ex_cd.c vendor/nvi/dist/ex/ex_cmd.c vendor/nvi/dist/ex/ex_cscope.c vendor/nvi/dist/ex/ex_delete.c vendor/nvi/dist/ex/ex_display.c vendor/nvi/dist/ex/ex_edit.c vendor/nvi/dist/ex/ex_equal.c vendor/nvi/dist/ex/ex_file.c vendor/nvi/dist/ex/ex_filter.c vendor/nvi/dist/ex/ex_global.c vendor/nvi/dist/ex/ex_init.c vendor/nvi/dist/ex/ex_join.c vendor/nvi/dist/ex/ex_map.c vendor/nvi/dist/ex/ex_mark.c vendor/nvi/dist/ex/ex_mkexrc.c vendor/nvi/dist/ex/ex_move.c vendor/nvi/dist/ex/ex_open.c vendor/nvi/dist/ex/ex_preserve.c vendor/nvi/dist/ex/ex_print.c vendor/nvi/dist/ex/ex_put.c vendor/nvi/dist/ex/ex_quit.c vendor/nvi/dist/ex/ex_read.c vendor/nvi/dist/ex/ex_screen.c vendor/nvi/dist/ex/ex_script.c vendor/nvi/dist/ex/ex_set.c vendor/nvi/dist/ex/ex_shell.c vendor/nvi/dist/ex/ex_shift.c vendor/nvi/dist/ex/ex_source.c vendor/nvi/dist/ex/ex_stop.c vendor/nvi/dist/ex/ex_subst.c vendor/nvi/dist/ex/ex_tag.c vendor/nvi/dist/ex/ex_txt.c vendor/nvi/dist/ex/ex_undo.c vendor/nvi/dist/ex/ex_usage.c vendor/nvi/dist/ex/ex_util.c vendor/nvi/dist/ex/ex_version.c vendor/nvi/dist/ex/ex_visual.c vendor/nvi/dist/ex/ex_write.c vendor/nvi/dist/ex/ex_yank.c vendor/nvi/dist/ex/ex_z.c vendor/nvi/dist/ex/script.h vendor/nvi/dist/ex/tag.h vendor/nvi/dist/ex/version.h vendor/nvi/dist/vi/getc.c vendor/nvi/dist/vi/v_at.c vendor/nvi/dist/vi/v_ch.c vendor/nvi/dist/vi/v_cmd.c vendor/nvi/dist/vi/v_delete.c vendor/nvi/dist/vi/v_ex.c vendor/nvi/dist/vi/v_increment.c vendor/nvi/dist/vi/v_init.c vendor/nvi/dist/vi/v_itxt.c vendor/nvi/dist/vi/v_left.c vendor/nvi/dist/vi/v_mark.c vendor/nvi/dist/vi/v_match.c vendor/nvi/dist/vi/v_paragraph.c vendor/nvi/dist/vi/v_put.c vendor/nvi/dist/vi/v_redraw.c vendor/nvi/dist/vi/v_replace.c vendor/nvi/dist/vi/v_right.c vendor/nvi/dist/vi/v_screen.c vendor/nvi/dist/vi/v_scroll.c vendor/nvi/dist/vi/v_search.c vendor/nvi/dist/vi/v_section.c vendor/nvi/dist/vi/v_sentence.c vendor/nvi/dist/vi/v_status.c vendor/nvi/dist/vi/v_txt.c vendor/nvi/dist/vi/v_ulcase.c vendor/nvi/dist/vi/v_undo.c vendor/nvi/dist/vi/v_util.c vendor/nvi/dist/vi/v_word.c vendor/nvi/dist/vi/v_xchar.c vendor/nvi/dist/vi/v_yank.c vendor/nvi/dist/vi/v_z.c vendor/nvi/dist/vi/v_zexit.c vendor/nvi/dist/vi/vi.c vendor/nvi/dist/vi/vi.h vendor/nvi/dist/vi/vs_line.c vendor/nvi/dist/vi/vs_msg.c vendor/nvi/dist/vi/vs_refresh.c vendor/nvi/dist/vi/vs_relative.c vendor/nvi/dist/vi/vs_smap.c vendor/nvi/dist/vi/vs_split.c Modified: vendor/nvi/dist/LICENSE ============================================================================== --- vendor/nvi/dist/LICENSE Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/LICENSE Sun Aug 11 09:44:58 2013 (r254211) @@ -1,14 +1,19 @@ -The vi program is freely redistributable. You are welcome to copy, modify -and share it with others under the conditions listed in this file. If any -company (not any individual!) finds vi sufficiently useful that you would -have purchased it, or if any company wishes to redistribute it, contributions -to the authors would be appreciated. - /*- + * $Id: LICENSE,v 8.18 2011/07/10 11:58:35 zy Exp $ + */ + +The following are the copyrights and redistribution conditions that apply +to this copy of the Vi software. + +/* * Copyright (c) 1991, 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. - * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 * Keith Bostic. All rights reserved. + * Copyright (c) 1999, 2000 + * Sven Verdoolaege. All rights reserved. + * Copyright (c) 2011 + * Zhihao Yuan. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -18,11 +23,7 @@ to the authors would be appreciated. * 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 + * 3. 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. * Modified: vendor/nvi/dist/README ============================================================================== --- vendor/nvi/dist/README Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/README Sun Aug 11 09:44:58 2013 (r254211) @@ -1,31 +1,32 @@ -# @(#)README 8.147 (Berkeley) 10/19/96 +# $Id: README,v 9.0 2012/10/07 09:13:54 zy Exp $ -This is the README for nex/nvi, a freely redistributable implementation -of the ex/vi text editors originally distributed as part of the Fourth -Berkeley Software Distribution (4BSD), by the University of California, -Berkeley. - -The source code for nex/nvi can be retrieved by using anonymous ftp to -ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, -of version 1.71 of nex/nvi. This version is believed to be stable and -problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive -of the current alpha-test release of nex/nvi. This version reflects the -current development tree, and will be more likely to have problems. - -See the file: - build/README for information on building nvi. - LAYOUT for a description of where everything is. - LICENSE for the copyright and redistribution terms. - -If you have any questions about nex/nvi, problems with it, or concerns -about the conditions for redistribution, please contact me: - - Keith Bostic +1-508-287-4781 - 394 E. Riding Dr. bostic@bostic.com - Carlisle, MA 01741 - USA +This is version 2.1.1 (2012-10-07) of nex/nvi, a reimplementation of the ex/vi +text editors originally distributed as part of the Fourth Berkeley +Software Distribution (4BSD), by the University of California, Berkeley. + +The directory layout is as follows: + + LICENSE ....... Copyright, use and redistribution information. + README ........ This file. + build ......... Build directory. + catalog ....... Message catalogs; see catalog/README. + cl ............ Vi interface to the curses(3) library. + common ........ Code shared by ex and vi. + docs .......... Ex/vi documentation, both current and historic. + ex ............ Ex source code. + regex ......... Modified regex library with wide character support. + vi ............ Vi source code. -Keith Bostic +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +o Nvi was written by Keith Bostic, and the last version is 1.79. After that, + + Sven Verdoolaege added the iconv support and the DB3 locking. + + Jun-ichiro itojun Hagino developed the file encoding detection + techniques in his nvi-m17n. + +The following acknowledgments were written by Keith Bostic: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= o This software is several years old and is the product of many folks' work. @@ -63,51 +64,3 @@ o From the original vi acknowledgements, o And... The financial support of UUNET Communications Services is gratefully acknowledged. - -=-=-=-=-=-=-=-=-=-=-= -o Status: - -This software is in beta test, and it's pretty stable. Almost all of the -historic functionality in ex/vi is there, the only major missing pieces -are open mode and the lisp edit option. - -Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in -during initial development to keep things simple. Wide character support -will be integrated at the same time that it is made fully 8-bit clean. - -There aren't a lot of new features in nex/nvi, but there are a few things -you might like. The "Additional Features" section of the reference work -(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more -information. - -=-=-=-=-=-=-=-=-=-=-= -o Debugging: - -Code fixes are greatly appreciated, of course, but if you can't provide -them, please email me as much information as you can as to how I might -reproduce the bug, and I'll try to fix it locally. Stack traces of core -dumps are only rarely helpful -- an example file with a set of keystrokes -that causes the problem is almost invariably necessary. I know it's -annoying, but simply playing with the bug until you can reproduce it at -will, with minimal keystrokes, is immensely helpful to me. - -Please include the following in the bug report; - - o The version of nvi you're running (use :version to get it). - o The row/column dimensions of the screen (80 x 32). - o Unless you're confident that they're not part of the problem, - your startup files (.exrc, .nexrc) and the environment variable - (EXINIT, NEXINIT) values. (Cutting and pasting the output - of ":set all" is usually sufficient.) - -If you want to do your own debugging, recompile the program with DEBUG -defined. (Configuring with --enable-debug will do this for you.) This -turns on the additional command-line option -D, that takes either s or w -as an argument. The option -Ds causes nvi to ignore the EXINIT and -.exrc files on startup, and -Dw causes nvi to print out the process id -and wait for you to enter a to continue. - -If you're running a memory checker (e.g. Purify) on nvi, you will first -want to recompile everything with "-DPURIFY" set in the CFLAGS. This -initializes allocated pages in the DB code, and free's allocated memory -at the end of the nvi execution. Modified: vendor/nvi/dist/catalog/Makefile ============================================================================== --- vendor/nvi/dist/catalog/Makefile Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/Makefile Sun Aug 11 09:44:58 2013 (r254211) @@ -1,7 +1,8 @@ -# @(#)Makefile 8.29 (Berkeley) 10/19/96 +# $Id: Makefile,v 9.0 2012/10/19 15:13:11 zy Exp $ -CAT= dutch english french german ru_SU.KOI8-R spanish swedish -FILES= ../cl/*.c ../common/*.c ../ex/*.c ../tk/*.c ../vi/*.c +CAT= dutch english french german polish ru_RU.KOI8-R spanish swedish \ + uk_UA.KOI8-U zh_CN.GB2312 +FILES= ../cl/*.c ../common/*.c ../ex/*.c ../vi/*.c all: dump ${CAT} @@ -18,13 +19,10 @@ ${CAT}: english.base print "DUPLICATE MESSAGE NUMBER " $$1; \ exit 1; \ } \ - for (; nline < $$1; ++nline) \ - print ""; \ print $0; \ }' | \ - sed -e '1s/^/VI_MESSAGE_CATALOG/' \ - -e '/"/s/^[^"]*"//' \ - -e '1!s/"$$/X/' > $@; \ + sed -e '1s/^/$$set 1~$$quote "~/; 1y/~/\n/' | \ + gencat $@ /dev/stdin; \ chmod 444 $@; \ if grep DUPLICATE $@ > /dev/null; then \ grep DUPLICATE $@; \ @@ -34,7 +32,8 @@ ${CAT}: english.base fi CHK= dutch.check english.check french.check german.check \ - ru_SU.KOI8-R.check spanish.check swedish.check + polish.check ru_RU.KOI8-R.check spanish.check swedish.check \ + uk_UA.KOI8-U.check zh_CN.GB2312.check check: ${CHK} ${CHK}: ${CAT} @echo "... $@"; \ @@ -63,19 +62,14 @@ ${CHK}: ${CAT} echo "Duplicate messages, both id and message (this is okay):"; \ sed '/^$$/d' < $$f.base | sort | uniq -c | \ awk '$$1 != 1 { print $$0 }' | sort -n; \ - echo =========================; \ - echo "Duplicate messages, just message (this is okay):"; \ - sed '/^$$/d' < $$f | sort | uniq -c | \ - awk '$$1 != 1 { print $$0 }' | sort -n; \ echo =========================) > $@ english.base: dump ${FILES} #Makefile ./dump ${FILES} |\ sed -e '/|/!d' \ -e 's/|/ "/' \ - -e 's/^"//' \ - -e 's/\\"/"/g' |\ - sort -n > $@ + -e 's/^"//' |\ + sort -nu > $@ dump: dump.c ${CC} -O -o dump dump.c Modified: vendor/nvi/dist/catalog/README ============================================================================== --- vendor/nvi/dist/catalog/README Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/README Sun Aug 11 09:44:58 2013 (r254211) @@ -1,15 +1,9 @@ -# @(#)README 8.4 (Berkeley) 11/22/94 +# $Id: README,v 9.0 2012/10/19 17:06:15 zy Exp $ Generally, all non-system error and informational messages in nvi are catalog messages, i.e. they can be tailored to a specific langauge. -Command strings, usage strings, system errors and other "known text" -are not. It would certainly be possible to internationalize all the -text strings in nvi, but it's unclear that it's the right thing to do. - -First, there's no portable way to do message catalogs. The System V -scheme is a reasonable choice, but none of the 4BSD derived systems -support it. So, catalogs are completely implemented within nvi, and -don't require any library support. +Command strings, usage strings, system errors and other 'known text' +are not. Message catalogs in nvi are fairly simple. Every catalog message consists of two parts -- an initial number followed by a pipe (`|') @@ -33,19 +27,7 @@ For example: msgq(sp, M_ERR, "002|Error: %d %x", arg1, arg2); -is a format string that displays two arguments. It is possible, however, -to reorder the arguments or to not display all of them. The convention -nvi uses is the System V printf(3) convention, i.e. "%[0-9]*$" is the name -of a specific, numbered argument. For example: - - msgq(sp, M_ERR, "002|Error: %2$d %1$x", arg1, arg2); - -displays the arguments in reverse order. - -If the system supports this convention in its library printf routines -(as specified by the test #define NL_ARGMAX), nvi uses those routines. -Otherwise, there is some serious magic going on in common/msg.c to make -this all work. +is a format string that displays two arguments. Arguments to the msgq function are required to contain ONLY printable characters. No further translation is done by the msgq routine before @@ -54,14 +36,16 @@ displaying the message on the screen. F msgq(sp, M_ERR, "003|File: %s", file_name); "file_name" must contain only printable characters. The routine -msg_print() returns a printable version of a string in allocated -memory. For example: +msg_print() returns a printable version of a string; the third argument +indicates whether the string needs to be freed. For example: char *p; + int nf; - p = msg_print(sp, file_name); - msgq(sp, M_ERR, M("003", "File: %s"), p); - FREE_SPACE(sp, p, 0); + p = msg_print(sp, file_name, &nf); + msgq(sp, M_ERR, "003|File: %s", p); + if (nf) + FREE_SPACE(sp, p, 0); makes sure that "file_name" is printable before calling the msgq routine. @@ -71,63 +55,40 @@ routine. The message catalogs themselves are maintained in two files. The first is the "base file" which contains two fields, a record number and the message itself. All base files are named using the convention -"vi_.base", e.g. the English one is "vi_english.base". For +".base", e.g. the English one is "english.base". For example: - 002 "Unable to create temporary file" - 003 "Warning: %s is not a regular file" - 004 "%s already locked, session is read-only" - 005 "%s: remove" - 006 "%s: close" - 007 "%s: remove" - 008 "%s: remove" - 009 "Read-only file, not written; use ! to override" - 010 "Read-only file, not written" - -are the first few lines of the current vi_english.base file. Note that -message #1 is missing -- the first message of each catalog is a special -one, so that nvi can recognize message catalog files. It's added by the -Makefile script that creates the second version of the message catalog. - -The second file is the file used by nvi to access messages, and is a list -of the messages, one per line: - - VI_MESSAGE_CATALOG - Unable to create temporary fileX - Warning: %s is not a regular fileX - %s already locked, session is read-onlyX - %s: removeX - %s: closeX - %s: removeX - %s: removeX - Read-only file, not written; use ! to overrideX - Read-only file, not writtenX - -Note that all messages have had a trailing 'X' character appended. This -is to provide nvi a place to store a trailing nul for the message so that -C library routines that expect one won't be disappointed. + 002 "Line length overflow" + 003 "unable to delete line %lu" + 004 "unable to append to line %lu" + 005 "unable to insert at line %lu" + 006 "unable to store line %lu" + 007 "unable to get last line" + +are the first few lines of the current english.base file. + +Before this file being converted to the second file, the POSIX formatted +message catalog file, by gencat(1), two lines: + + $set 1 + $quote " + +will be inserted before the base text to setup the set_id and the quote +character. So the double-quote needs to be escaped by a backslash to be +included in a message; same as the backslash itself. -These files are named for their language, e.g. "vi_english". The second -files are automatically created from the first files. +These files are named for their language, e.g. "english". However, a +locale(1) name is also recommended. To create a new catalog for nvi: -Copy the file vi_english.base to a file that you can modify , e.g. "cp -vi_english.base vi_german.base". For each of the messages in the file, -replace the message with the string that you want to use. To find out -what the arguments to a message are, I'm afraid you'll have to search -the source code for the message number. You can find them fairly quickly -by doing: - - cd ..; egrep '123\|' */*.[chys] - -I'm sorry that there's not an easier way, but I couldn't think of -anything that wasn't a lot of work. - -If, for some reason, you don't have the file vi_english.base, or you -have new sources for which you want to create a new base catalog, you -can create it by running the command "make english" in the catalog -directory. +Copy the file english.base to a file that you can modify , e.g. "cp +english.base german.base". For each of the messages in the file, +replace the message with the string that you want to use. If you have +doubts about the meaning of a message, just email me. + +A latest english.base can be created from source by running the command +"make english" in the catalog/ directory. Once you've translated all of the strings, then add your catalog to the "CAT=" line of the Makefile, and run the command "make catalog". This @@ -156,11 +117,11 @@ a single place. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= To select a catalog when running nvi, set the "msgcat" option. If the value of this option ends with a '/', it is treated as the name of a -directory that contains a message catalog "vi_XXXX", where XXXX is the -value of the LANG environmental variable, if it's set, or the value of -the LC_MESSAGES environmental variable if it's not. If neither of those -environmental variables are set, or if the option doesn't end in a '/', -the option is treated as the full path name of the message catalog to use. +directory that contains a message catalog "$LC_MESSAGES", which is set +through the LC_MESSAGES environment variable but returned by setlocale(3). +Check the output of locale(1) to validate such a value. If the option +doesn't end in a '/', the option is treated as the full path name of the +message catalog to use. If any messages are missing from the catalog, the backup text (English) is used instead. Modified: vendor/nvi/dist/catalog/dump.c ============================================================================== --- vendor/nvi/dist/catalog/dump.c Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/dump.c Sun Aug 11 09:44:58 2013 (r254211) @@ -2,43 +2,17 @@ * Copyright (c) 1992, 1993, 1994 * 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. - * 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. + * %sccs.include.redist.c% */ #ifndef lint static char copyright[] = -"@(#) Copyright (c) 1992, 1993, 1994\n\ +"%Z% Copyright (c) 1992, 1993, 1994\n\ The Regents of the University of California. All rights reserved.\n"; #endif /* not lint */ #ifndef lint -static char sccsid[] = "@(#)dump.c 8.1 (Berkeley) 8/31/94"; +static char sccsid[] = "$Id: dump.c,v 8.2 2011/07/14 00:05:25 zy Exp $"; #endif /* not lint */ #include @@ -105,10 +79,10 @@ main(argc, argv) for (; *argv != NULL; ++argv) { if ((fp = fopen(*argv, "r")) == NULL) { perror(*argv); - exit (1); + return (1); } parse(fp); (void)fclose(fp); } - exit (0); + return (0); } Modified: vendor/nvi/dist/catalog/dutch.base ============================================================================== --- vendor/nvi/dist/catalog/dutch.base Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/dutch.base Sun Aug 11 09:44:58 2013 (r254211) @@ -43,8 +43,7 @@ 044 "De lisp optie is niet ondersteund" 045 "messages niet uitgeschakeld: %s" 046 "messages niet geactiveerd: %s" -048 "De paragraph optie moet karakter paren bevatten" -049 "De section optie moet karakter paren bevatten" +047 "De %s optie moet karakter paren bevatten" 053 "De standaard buffer is leeg" 054 "Buffer %s is leeg" 055 "Bestanden met newlines in de naam kunnen niet hersteld worden" @@ -97,16 +96,16 @@ 103 "Ongeldig adres: het bestand is leeg" 104 "Het %s commando staat het adres 0 niet toe" 105 "Geen afkortingen om weer te geven" -106 "Afkortingen moeten eindigen met een "woord" letter" +106 "Afkortingen moeten eindigen met een \"woord\" letter" 107 "Afkortingen mogen geen tabulaties of spaties bevatten" 108 "Afkortingen mogen geen woord/niet-woord karakters mengen, behalve aan het einde" -109 ""%s" is geen afkorting" +109 "\"%s\" is geen afkorting" 110 "Vi commando mislukt: gemappede toetsen genegeerd" 111 "Dit is het laatste bestand" 112 "Dit is het eerste bestand" 113 "Dit is het eerste bestand" 114 "lijst met bestanden is leeg" -115 "Geen voorgaand commando om "!" te vervangen" +115 "Geen voorgaand commando om \"!\" te vervangen" 116 "Geen bestandsnaam voor %%" 117 "Geen bestandsnaam voor #" 118 "Fout: execl: %s" @@ -119,14 +118,14 @@ 125 "%s/%s: niet gelezen: noch U noch root is de eigenaar" 126 "%s/%s: niet gelezen: U bent niet de eigenaar" 127 "%s/%s: niet gelezen: kan gewijzigd worden door andere gebruikers" -128 "%s: niet gelezen: noch U noch root is de eigenaar"" +128 "%s: niet gelezen: noch U noch root is de eigenaar" 129 "%s: niet gelezen: U bent niet de eigenaar" 130 "%s: niet gelezen: kan gewijzigd worden door andere gebruikers" 131 "Geen volgende regel om samen te voegen" 132 "Geen input map entries" 133 "Geen command map entries" 134 "Het %s karakter kan niet ge-remapped worden" -135 ""%s" is niet gemapped" +135 "\"%s\" is niet gemapped" 136 "Merk naam moet een enkel karakter zijn" 137 "%s bestaat al, niet weggeschreven; gebruik ! om het te forceren" 138 "Nieuw .exrc bestand: %s. " @@ -296,7 +295,7 @@ 306 "Vi was niet geladen met een Perl interpreter" 307 "Geen ex commando om uit te voeren" 308 "Kies om commando uit te voeren, :q om te stoppen" -309 "Gebruik "cscope help" voor uitleg" +309 "Gebruik \"cscope help\" voor uitleg" 310 "Nog geen cscope connectie aanwezig" 311 "%s: onbekend zoek type: gebruik een van %s" 312 "%d: onbekende cscope sessie" Modified: vendor/nvi/dist/catalog/french.base ============================================================================== --- vendor/nvi/dist/catalog/french.base Sun Aug 11 08:38:10 2013 (r254210) +++ vendor/nvi/dist/catalog/french.base Sun Aug 11 09:44:58 2013 (r254211) @@ -1,309 +1,306 @@ -002 "D‚passement de longueur de ligne" +002 "Dépassement de longueur de ligne" 003 "impossible de supprimer la ligne %lu" -004 "impossible d'ajouter … la ligne %lu" -005 "impossible d'ins‚rer devant la ligne %lu" +004 "impossible d'ajouter à la ligne %lu" +005 "impossible d'insérer devant la ligne %lu" 006 "impossible de stocker la ligne %lu" -007 "impossible d'obtenir la derniŠre ligne" -008 "Erreur : impossible de r‚cup‚rer la ligne %lu" +007 "impossible d'obtenir la dernière ligne" +008 "Erreur : impossible de récupérer la ligne %lu" 009 "Fichier journal" -010 "Aucune connexion n'‚tant effectu‚e, impossible d'annuler" -011 "Aucune action … annuler" -012 "Aucune connexion n'‚tant effectu‚e, impossible d'annuler" -013 "Aucune connexion n'‚tant effectu‚e, reprise actualis‚e impossible" -014 "Aucune action … refaire" -015 "%s/%d : Erreur d'‚criture de journal" -016 "L'entr‚e et la sortie Vi standards doivent ˆtre un terminal" -017 "Marque %s : non d‚finie" -018 "Marque %s : la ligne a ‚t‚ supprim‚e" +010 "Aucune journalisation n'étant effectuée, impossible d'annuler" +011 "Aucune action à annuler" +012 "Aucune journalisation n'étant effectuée, impossible d'annuler" +013 "Aucune journalisation n'étant effectuée, reprise actualisée impossible" +014 "Aucune action à refaire" +015 "%s/%d : Erreur d'écriture de journal" +016 "L'entrée et la sortie Vi standards doivent être un terminal" +017 "Marque %s : non définie" +018 "Marque %s : la ligne a été supprimée" 019 "Marque %s : la position du curseur n'existe plus" 020 "Erreur : " 021 "nouveau fichier" -022 "le nom a chang‚" -023 "modifi‚" -024 "non modifi‚" -025 "DEVERROUILLE" +022 "le nom a changé" +023 "modifié" +024 "non modifié" +025 "DÉVERROUILLÉ" 026 "lecture seule" 027 "ligne %lu de %lu [%ld%%]" 028 "fichier vide" 029 "ligne %lu" 030 "Ce fichier %s n'est pas un catalogue de messages" -031 "Impossible de configurer option %s par d‚faut" +031 "Impossible de configurer option %s par défaut" 032 "Utilisation : %s" -033 "D‚finition : pas d'option %s : 'tout d‚finir' donne toutes les valeurs optionnelles" -034 "D‚finition : option [no]%s ne prend pas de valeur" -035 "D‚finition : l'option %s n'est pas bool‚enne" -036 "D‚finition : option %s : %s" -037 "D‚finition : option %s : %s : D‚passement de valeur" -038 "D‚finition : option %s : %s n'est pas un nombre valide" -039 "D‚finition : l'option %s n'est pas bool‚enne" -040 "Les colonnes de l'‚cran sont trop petites, inf‚rieures … %d" -041 "Les colonnes de l'‚cran sont trop grandes, sup‚rieures … %d" -042 "Les lignes de l'‚cran sont trop courtes, inf‚rieures … %d" -043 "Les lignes de l'‚cran sont trop longues, sup‚rieures … %d" -044 "L'option lisp n'est pas impl‚ment‚e" -045 "Les messages ne sont pas d‚sactiv‚s : %s" -046 "Les messages ne sont pas activ‚s : %s" -048 "L'option de paragraphe doit ˆtre en groupe de deux caractŠres" -049 "L'option de section doit ˆtre en groupe de deux caractŠres" -053 "Le tampon par d‚faut est vide" +033 "Définition : pas d'option %s : 'set all' donne toutes les valeurs optionnelles" +034 "Définition : option [no]%s ne prend pas de valeur" +035 "Définition : l'option %s n'est pas booléenne" +036 "Définition : option %s : %s" +037 "Définition : option %s : %s : Dépassement de valeur" +038 "Définition : option %s : %s n'est pas un nombre valide" +039 "Définition : l'option %s n'est pas booléenne" +040 "Les colonnes de l'écran sont trop petites, inférieures à %d" +041 "Les colonnes de l'écran sont trop grandes, supérieures à %d" +042 "Les lignes de l'écran sont trop courtes, inférieures à %d" +043 "Les lignes de l'écran sont trop longues, supérieures à %d" +044 "L'option lisp n'est pas implémentée" +045 "Les messages ne sont pas désactivés : %s" +046 "Les messages ne sont pas activés : %s" +047 "L'option de %s doit être en groupe de deux caractères" +053 "Le tampon par défaut est vide" 054 "Le tampon %s est vide" -055 "Les fichiers dont le nom contient des caractŠres de saut de ligne sont irr‚cup‚rables" -056 "Impossible de r‚cup‚rer les modifications si la session ‚choue" -057 "Copie en cours du fichier pour r‚cup‚ration..." -058 "La pr‚servation a ‚chou‚ : %s" -059 "Impossible de r‚cup‚rer les modifications si la session ‚choue" -060 "La sauvegarde du fichier a ‚chou‚ : %s" -061 "Copie en cours du fichier pour r‚cup‚ration..." -062 "Les renseignements sur l'identit‚ %u de l'utilisateur sont introuvables" -063 "Impossible de verrouiller le fichier de r‚cup‚ration" -064 "D‚bordement de tampon du fichier de r‚cup‚ration" -065 "Fichier de r‚cup‚ration" -066 "%s : Fichier de r‚cup‚ration malform‚" -067 "%s : Fichier de r‚cup‚ration malform‚" -068 "Aucun fichier nomm‚ %s … r‚cup‚rer, que vous puissiez lire" -069 "Il existe des versions r‚cup‚rables ant‚rieures … ce fichier" -070 "Vous avez d'autres fichiers … r‚cup‚rer" +055 "Les fichiers dont le nom contient des caractères de saut de ligne sont irrécupérables" +056 "Impossible de récupérer les modifications si la session échoue" +057 "Copie en cours du fichier pour récupération..." +058 "La préservation a échoué : %s" +059 "Impossible de récupérer les modifications si la session échoue" +060 "La sauvegarde du fichier a échoué : %s" +061 "Copie en cours du fichier pour récupération..." +062 "Les renseignements sur l'identité %u de l'utilisateur sont introuvables" +063 "Impossible de verrouiller le fichier de récupération" +064 "Débordement de tampon du fichier de récupération" +065 "Fichier de récupération" +066 "%s : Fichier de récupération malformé" +067 "%s : Fichier de récupération malformé" +068 "Aucun fichier nommé %s à récupérer, que vous puissiez lire" +069 "Il existe des versions récupérables antérieures à ce fichier" +070 "Vous avez d'autres fichiers à récupérer" 071 "pas d'envoi d'email : %s" -072 "Fichier vide, rien … rechercher" +072 "Fichier vide, rien à rechercher" 073 "Fin de fichier atteinte sans trouver le motif" -074 "Pas de motif de recherche pr‚c‚dent" +074 "Pas de motif de recherche précédent" 075 "Motif introuvable" -076 "D‚but du fichier atteint sans trouver le motif" -077 "La recherche est revenue … son point de d‚part" +076 "Début du fichier atteint sans trouver le motif" +077 "La recherche est revenue à son point de départ" 078 "Recherche en cours..." -079 "CaractŠre non-imprimable introuvable" +079 "Caractère non-imprimable introuvable" 080 "Nom de commande inconnu" 082 "%s : Commande non disponible en ex mode" -083 "Le compte ne peut ˆtre z‚ro" -084 "%s : mauvaise sp‚cification de ligne" +083 "Le compteur ne peut être zéro" +084 "%s : mauvaise spécification de ligne" 085 "Erreur de tableau de syntaxe interne (%s: %s)" 086 "Utilisation : %s" -087 "%s : tampon temporaire non lib‚r‚" -088 "D‚calage de drapeau hors de la ligne 1" -089 "D‚calage de drapeau hors de la fin du fichier" -090 "@ avec plage, en cours d'ex‚cution quand le fichier/l'‚cran a chang‚" -091 "Commande Global/v en cours d'ex‚cution quand le fichier/l'‚cran a chang‚" -092 "La commande ex a ‚chou‚ : commandes en attente abandonn‚es" -093 "La commande ex a ‚chou‚ : les touches affect‚es sont abandonn‚es" -094 "La deuxiŠme adresse est plus petite que la premiŠre" +087 "%s : tampon temporaire non libéré" +088 "Décalage de drapeau hors de la ligne 1" +089 "Décalage de drapeau hors de la fin du fichier" +090 "@ avec plage, en cours d'exécution quand le fichier/l'écran a changé" +091 "Commande Global/v en cours d'exécution quand le fichier/l'écran a changé" +092 "La commande ex a échoué : commandes en attente abandonnées" +093 "La commande ex a échoué : les touches affectées sont abandonnées" +094 "La deuxième adresse est plus petite que la première" 095 "Aucun nom de marque fourni" -096 "\\ pas suivi par / ou ?" -097 "R‚f‚rence … un num‚ro de ligne inf‚rieure … 0" +096 "\\ non suivi par / ou ?" +097 "Référence à un numéro de ligne inférieure à 0" 098 "La commande %s est inconnue" -099 "D‚passement de la valeur adresse" -100 "D‚passement n‚gatif de la valeur adresse" +099 "Dépassement de la valeur adresse" +100 "Dépassement négatif de la valeur adresse" 101 "Combinaison d'adresse non valide" -102 "Adresse non valide : il n'y a que des lignes %lu dans le fichier" +102 "Adresse non valide : il n'y a que %lu lignes dans ce fichier" 103 "Adresse non valide : le fichier est vide" 104 "La commande %s ne permet pas une adresse de 0" -105 "Pas d'abr‚viations … afficher" -106 "Les abr‚viations doivent finir par un caractŠre"mot" -107 "Les abr‚viations ne peuvent pas contenir de tabulations ni d'espaces" -108 "Les abr‚viations ne peuvent pas contenir un m‚lange de caractŠres mot/non-mot, sauf … la fin" -109 ""%s" n'est pas une abr‚viation" -110 "La commande Vi a ‚chou‚ : Les touches affect‚es ont ‚t‚ abandonn‚es" -111 "Plus de fichiers … ‚diter" -112 "Pas de fichiers pr‚c‚dents … ‚diter" -113 "Pas de fichiers pr‚c‚dents … rembobiner" -114 "Pas de liste de fichiers … afficher" -115 "Pas de commande pr‚c‚dente … remplacer"!"" -116 "Pas de nom de fichier … substituer … %%" -117 "Pas de nom de fichier … substituer … #" +105 "Pas d'abréviations à afficher" +106 "Les abréviations doivent finir par un caractère \"mot\"" +107 "Les abréviations ne peuvent pas contenir de tabulations ni d'espaces" +108 "Les abréviations ne peuvent pas contenir un mélange de caractères mot/non-mot, sauf à la fin" +109 "\"%s\" n'est pas une abréviation" +110 "La commande Vi a échoué : Les touches affectées ont été abandonnées" +111 "Plus de fichiers à éditer" +112 "Pas de fichiers précédents à éditer" +113 "Pas de fichiers précédents à rembobiner" +114 "Pas de liste de fichiers à afficher" +115 "Pas de commande précédente à remplacer \"!\"" +116 "Pas de nom de fichier à substituer à %%" +117 "Pas de nom de fichier à substituer à #" 118 "Erreur : execl : %s" 119 "Erreur E/S : %s" -120 "Fichier modifi‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser ! pour outrepasser" -121 "Impossible de trouver l'emplacement du r‚pertoire d'origine" -122 "Nouveau r‚pertoire en cours : %s" -123 "Pas de tampon de coupure … afficher" -124 "La commande %s ne peut pas ˆtre utilis‚e … l'int‚rieur d'une commande globale ou commande v" -125 "%s/%s : ‚chec de source : ni vous ni le super-utilisateur n'ˆtes les propri‚taires " -126 "%s/%s : ‚chec de source : vous n'ˆtes pas le propri‚taire" -127 "%s/%s : ‚chec de source : peut ˆtre ‚crit par un utilisateur autre que le propri‚taire" -128 "%s : ‚chec de source : ni vous ni le super-utilisateur n'ˆtes les propri‚taires" -129 "%s : ‚chec de source : vous n'ˆtes pas le propri‚taire" -130 "%s : ‚chec de source : peut ˆtre ‚crit par un utilisateur autre que le propri‚taire" -131 "Pas de lignes suivantes … joindre" -132 "Pas d'entr‚es de mappage d'entr‚e" -133 "Pas d'entr‚es de mappage de commandes" -134 "Le caractŠre %s ne peut pas ˆtre remapp‚" -135 ""%s" n'est pas actuellement mapp‚" -136 "Les noms de marque ne doivent avoir qu'un caractŠre" -137 "%s existe, non enregistr‚; utiliser ! pour outrepasser" +120 "Fichier modifié depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser" +121 "Impossible de trouver l'emplacement du répertoire d'origine" +122 "Nouveau répertoire en cours : %s" +123 "Pas de tampon de coupure à afficher" +124 "La commande %s ne peut pas être utilisée à l'intérieur d'une commande globale ou commande v" +125 "%s/%s : échec de source : ni vous ni le super-utilisateur n'êtes les propriétaires " +126 "%s/%s : échec de source : vous n'êtes pas le propriétaire" +127 "%s/%s : échec de source : peut être écrit par un utilisateur autre que le propriétaire" +128 "%s : échec de source : ni vous ni le super-utilisateur n'êtes les propriétaires" +129 "%s : échec de source : vous n'êtes pas le propriétaire" +130 "%s : échec de source : peut être écrit par un utilisateur autre que le propriétaire" +131 "Pas de lignes suivantes à joindre" +132 "Pas d'entrées de mappage d'entrée" +133 "Pas d'entrées de mappage de commandes" +134 "Le caractère %s ne peut pas être remappé" +135 "\"%s\" n'est pas actuellement mappé" +136 "Les noms de marque ne doivent avoir qu'un caractère" +137 "%s existe, non enregistré; utiliser ! pour outrepasser" 138 "Nouveau fichier exrc : %s" -139 "La ligne de destination est … l'int‚rieur de la plage … d‚placer" -140 "La commande ouverte n‚cessite que l'option ouverte soit d‚finie" -141 "La commande ouverte n'est pas encore impl‚ment‚e" -142 "La pr‚servation de ce fichier est impossible" -143 "Fichier pr‚serv‚" -144 "%s: ‚tendu dans trop de noms de fichiers" -145 "Vous ne pouvez lire que les fichiers standards et les canaux de transmission nomm‚s" +139 "La ligne de destination est à l'intérieur de la plage à déplacer" +140 "La commande ouverte nécessite que l'option ouverte soit définie" +141 "La commande ouverte n'est pas encore implémentée" +142 "La préservation de ce fichier est impossible" +143 "Fichier préservé" +144 "%s: étendu dans trop de noms de fichiers" +145 "Vous ne pouvez lire que les fichiers standards et les canaux de transmission nommés" 146 "%s: Interdiction de lecture non disponible" 147 "Lecture en cours..." -148 "%s: %lu lignes, %lu caractŠres" -149 "Pas d'‚crans d'arriŠre-plan … afficher" +148 "%s: %lu lignes, %lu caractères" +149 "Pas d'écrans d'arrière-plan à afficher" 150 "La commande script n'est disponible qu'en mode vi" -151 "Pas de commande … ex‚cuter" -152 "Option de largeur de d‚calage d‚finie sur 0" -153 "Compter d‚passement" -154 "Compter d‚passement n‚gatif" -155 "Expression standard sp‚cifi‚e; drapeau r superflu" +151 "Pas de commande à exécuter" +152 "Option de largeur de décalage définie sur 0" +153 "Compter dépassement" +154 "Compter dépassement négatif" +155 "Expression standard spécifiée; drapeau r superflu" 156 "Vous ne pouvez pas en mode vi, combiner les drapeaux #, l et p avec le drapeau c" -157 "Aucune correspondance trouv‚e" -158 "Aucune marque pr‚c‚dente entr‚e" -159 "Moins de %s entr‚es dans la pile de marques ; utilisez t[ags]" +157 "Aucune correspondance trouvée" +158 "Aucune marque précédente entrée" +159 "Moins de %s entrées dans la pile de marques ; utilisez t[ags]" 160 "Pas de fichier %s vers lequel retourner dans la pile de marques ; utiliser : affichage t[ags]" -161 "Appuyez sur Entr‚e pour continuer :" +161 "Appuyez sur Entrée pour continuer :" 162 "%s : marque introuvable" 163 "%s : marque corrompue en %s" -164 "%s : le num‚ro de ligne de la marque d‚passe la fin du fichier" +164 "%s : le numéro de ligne de la marque dépasse la fin du fichier" 165 "La pile de marques est vide" 166 "%s : motif de recherche introuvable" -167 "%d fichiers suppl‚mentaires … ‚diter" +167 "%d fichiers supplémentaires à éditer" 168 "Le tampon %s est vide 169 "Confirmer les changements ? [n]" 170 "Interrompu" -171 "Pas de tampon pr‚c‚dent … ex‚cuter" -172 "Pas d'expression standard pr‚c‚dente" -173 "La commande %s n‚cessite qu'un fichier ait d‚j… ‚t‚ lu en m‚moire" +171 "Pas de tampon précédent à exécuter" +172 "Pas d'expression standard précédente" +173 "La commande %s nécessite qu'un fichier ait déjà été lu en mémoire" 174 "Utilisation : %s" -175 "La commande visuelle n‚cessite que l'option ouverte soit d‚finie" +175 "La commande visual nécessite que l'option open soit définie" 177 "Fichier vide" -178 "Pas de recherche pr‚c‚dente F, f, T ou t" +178 "Pas de recherche précédente F, f, T ou t" 179 "%s introuvable" -180 "Pas de fichier pr‚c‚dent … ‚diter" +180 "Pas de fichier précédent à éditer" 181 "Le curseur n'est pas dans un nombre" 182 "Le nombre obtenu est trop grand" 183 "Le nombre obtenu est trop petit" -184 "Pas de correspondance de caractŠre sur cette ligne" -185 "CaractŠre correspondant introuvable" -186 "Pas de caractŠres … remplacer" -187 "Pas d'autre ‚cran vers lequel basculer" -188 "CaractŠres aprŠs la chaŒne de recherche, d‚calage de ligne et/ou commande z" -189 "Pas de motif de recherche pr‚c‚dent" -190 "La recherche est revenue … son point de d‚part" -191 "L'abr‚viation a d‚pass‚ la limite de l'expansion : caractŠres abandonn‚s" -192 "CaractŠre non valide ; guillemet pour saisir" -193 "D‚j… au d‚but de l'insertion" -194 "Plus de caractŠres … effacer" -195 "D‚placement hors de fin de fichier" -196 "D‚placement hors de fin de ligne" -197 "Aucun mouvement de curseur n'a ‚t‚ effectu‚" -198 "D‚j… au d‚but du fichier" -199 "D‚placement hors du d‚but du fichier" -200 "D‚j… dans la premiŠre colonne" -201 "Les tampons doivent ˆtre sp‚cifi‚s avant la commande" -202 "D‚j… … la fin du fichier" -203 "D‚j… … la fin de la ligne" +184 "Pas de correspondance de caractère sur cette ligne" +185 "Caractère correspondant introuvable" +186 "Pas de caractères à remplacer" +187 "Pas d'autre écran vers lequel basculer" +188 "Caractères après la chaîne de recherche, décalage de ligne et/ou commande z" +189 "Pas de motif de recherche précédent" +190 "La recherche est revenue à son point de départ" +191 "L'abréviation a dépassé la limite de l'expansion : caractères abandonnés" +192 "Caractère non valide ; guillemet pour saisir" +193 "Déjà au début de l'insertion" +194 "Plus de caractères à effacer" +195 "Déplacement hors de fin de fichier" +196 "Déplacement hors de fin de ligne" +197 "Aucun mouvement de curseur n'a été effectué" +198 "Déjà au début du fichier" +199 "Déplacement hors du début du fichier" +200 "Déjà dans la première colonne" +201 "Les tampons doivent être spécifiés avant la commande" +202 "Déjà à la fin du fichier" +203 "Déjà à la fin de la ligne" 204 "%s n'est pas une commande vi" 205 "Utilisation : %s" -206 "Pas de caractŠres … supprimer" -207 "La commande Q n‚cessite une interface terminal ex" -208 "Pas de commande … r‚p‚ter" +206 "Pas de caractères à supprimer" +207 "La commande Q nécessite une interface terminal ex" +208 "Pas de commande à répéter" 209 "Le fichier est vide" -209 "Le fichier est vide" -210 "Vous ne pouvez pas utiliser %s comme commande de d‚placement" -211 "D‚j… en mode commande" +210 "Vous ne pouvez pas utiliser %s comme commande de déplacement" +211 "Déjà en mode commande" 212 "Le curseur n'est pas dans un mot" -214 "Valeur optionnelle de fenˆtre trop grande, maximum est %u" +214 "Valeur optionnelle de fenêtre trop grande, maximum est %u" 215 "Ajouter" 216 "Changer" 217 "Commande" -218 "Ins‚rer" +218 "Insérer" 219 "Remplacer" -220 "D‚placement hors de la fin d'‚cran" -221 "D‚placement hors du d‚but d'‚cran" -222 "L'‚cran doit ˆtre sup‚rieur … %d lignes pour se fractionner" -223 "Il n'y a pas d'‚cran d'arriŠre-plan" -224 "Il n'y a pas d'‚cran d'arriŠre-plan qui ‚dite un fichier nomm‚ %s" -225 "Vous ne pouvez pas mettre … l'arriŠre-plan votre seul ‚cran affich‚" -226 "L'‚cran ne peut ˆtre r‚duit qu'… %d rangs" -227 "L'‚cran n'est pas auto-r‚ductible" -228 "L'‚cran n'est pas auto-extensible" -230 "Vous ne pouvez pas mettre cet ‚cran en attente" -231 "Interrompu : les touches affect‚es ont ‚t‚ abandonn‚es" -232 "vi : le tampon temporaire n' a pas ‚t‚ lib‚r‚" +220 "Déplacement hors de la fin d'écran" +221 "Déplacement hors du début d'écran" +222 "L'écran doit être supérieur à %d lignes pour se fractionner" +223 "Il n'y a pas d'écran d'arrière-plan" +224 "Il n'y a pas d'écran d'arrière-plan qui édite un fichier nommé %s" +225 "Vous ne pouvez pas mettre à l'arrière-plan votre seul écran affiché" +226 "L'écran ne peut être réduit qu'à %d rangs" +227 "L'écran n'est pas auto-réductible" +228 "L'écran n'est pas auto-extensible" +230 "Vous ne pouvez pas mettre cet écran en attente" +231 "Interrompu : les touches affectées ont été abandonnées" +232 "vi : le tampon temporaire n' a pas été libéré" 233 "Ce terminal n'a pas de touche %s" -234 "Vous ne pouvez sp‚cifier qu'un seul tampon" -235 "Nombre sup‚rieur … %lu" +234 "Vous ne pouvez spécifier qu'un seul tampon" +235 "Nombre supérieur à %lu" 236 "Interrompu" -237 "Impossible de cr‚er un fichier temporaire" +237 "Impossible de créer un fichier temporaire" 238 "Avertissement : %s n'est pas un fichier standard" -239 "%s d‚j… verrouill‚, session en lecture seule" +239 "%s déjà verrouillé, session en lecture seule" 240 "%s: supprimer" 241 "%s: fermer" 242 "%s: supprimer" 243 "%s: supprimer" -244 "Fichier en lecture seule, pas ‚crit, utiliser ! pour outrepasser" -245 "Fichier en lecture seule, pas ‚crit" -246 "%s existe, pas ‚crit; utiliser ! pour outrepasser" -247 "%s existe, pas ‚crit" -248 "Fichier partiel, pas ‚crit; utiliser ! pour outrepasser" -249 "Fichier partiel, pas ‚crit" -250 "%s: fichier modifi‚ plus r‚cemment que cet exemplaire; utiliser ! pour outrepasser" -251 "%s: fichier modifi‚ plus r‚cemment que cet exemplaire" -252 "%s: interdiction d'‚criture non disponible" +244 "Fichier en lecture seule, non écrit, utiliser ! pour outrepasser" +245 "Fichier en lecture seule, non écrit" +246 "%s existe, non écrit; utiliser ! pour outrepasser" +247 "%s existe, non écrit" +248 "Fichier partiel, non écrit; utiliser ! pour outrepasser" +249 "Fichier partiel, non écrit" +250 "%s: fichier modifié plus récemment que cet exemplaire; utiliser ! pour outrepasser" +251 "%s: fichier modifié plus récemment que cet exemplaire" +252 "%s: interdiction d'écriture non disponible" 253 "Ecriture en cours..." -254 "%s: AVERTISSEMENT : FICHIER TRONQUE" -255 "PremiŠre marque de ce groupe d‚j… atteinte" -256 "%s: nouveau fichier : %lu lignes, %lu caractŠres" -257 "%s: %lu lignes, %lu caractŠres" -258 "%s ‚tendue … trop de noms de fichiers" +254 "%s: AVERTISSEMENT : FICHIER TRONQUÉ" +255 "Première marque de ce groupe déjà atteinte" +256 "%s: nouveau fichier : %lu lignes, %lu caractères" +257 "%s: %lu lignes, %lu caractères" +258 "%s étendue à trop de noms de fichiers" 259 "%s: pas un fichier standard" 260 "%s: ne vous appartient pas" -261 "%s: accessible par un utilisateur autre que son propri‚taire" -262 "Fichier modif‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser ! pour outrepasser " -263 "Fichier modif‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser :edit! pour outrepasser" -264 "Fichier modif‚ depuis la derniŠre ‚criture complŠte ; ‚crire ou utiliser ! pour outrepasser" +261 "%s: accessible par un utilisateur autre que son propriétaire" +262 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser " +263 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser :edit! pour outrepasser" +264 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser" 265 "Fichier temporaire ; quitter annulera les modifications" -266 "Fichier en lecture seule ; les modifications ne sont pas ‚crites automatiquement" -267 "Journal red‚marr‚" +266 "Fichier en lecture seule ; les modifications ne sont pas écrites automatiquement" +267 "Journal redémarré" 268 "confirmer ? [ynq]" 269 "Appuyez sur n'importe quelle touche pour continuer : " 270 "Appuyez sur n'importe quelle touche pour continuer [: pour entrer plus de commandes ex] : " 271 "Appuyez sur n'importe quelle touche pour continuer [q pour Quitter]: " -272 "Cette forme de %s n‚cessite l'interface de terminal ex" -273 "Entr‚e de mode entr‚e ex." -274 "La commande a ‚chou‚, aucun fichier n'a encore ‚t‚ lu." +272 "Cette forme de %s nécessite l'interface de terminal ex" +273 "Entrée de mode entrée ex." +274 "La commande a échoué, aucun fichier n'a encore été lu." 275 "cont?" -276 "Ev‚nement impr‚vu de caractŠre" -277 "Ev‚nement impr‚vu de fin-de-fichier" -278 "Pas de correspondances pour cette requˆte" -279 "Ev‚nement impr‚vu d'interruption" -280 "Ev‚nement quitter impr‚vu" -281 "Ev‚nement impr‚vu de rafraŒchissement" -282 "La derniŠre marque de ce groupe a d‚j… ‚t‚ atteinte" -283 "La commande %s n‚cessite l'interface de terminal ex" -284 "Cette forme de %s n'est pas reconnue quand l'option d'‚dition prot‚g‚e est activ‚e" -285 "Ev‚nement impr‚vu de chaŒne" -286 "Ev‚nement impr‚vu de d‚lai imparti" -287 "Ev‚nement d'‚criture impr‚vu" -289 "Les expansions du shell ne sont pas reconnues quand l'option d'‚dition prot‚g‚e est activ‚e" -290 "La commande %s n'est pas reconnue quand l'option d'‚dition prot‚g‚e est activ‚e" -291 "D‚finition : l'option %s ne peut pas ˆtre d‚sactiv‚e" +276 "Evénement imprévu de caractère" +277 "Evénement imprévu de fin-de-fichier" +278 "Pas de correspondances pour cette requête" +279 "Evénement imprévu d'interruption" +280 "Evénement quitter imprévu" +281 "Evénement imprévu de rafraîchissement" +282 "La dernière marque de ce groupe a déjà été atteinte" +283 "La commande %s nécessite l'interface de terminal ex" +284 "Cette forme de %s n'est pas reconnue quand l'option d'édition protégée est activée" +285 "Evénement imprévu de chaîne" +286 "Evénement imprévu de délai imparti" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 09:55:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4CCCB27D; Sun, 11 Aug 2013 09:55:09 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 200BF2CEC; Sun, 11 Aug 2013 09:55:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B9t80T073849; Sun, 11 Aug 2013 09:55:08 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B9t8kY073848; Sun, 11 Aug 2013 09:55:08 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308110955.r7B9t8kY073848@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 09:55:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254212 - vendor/nvi/2.1.1-4334a8297f X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 09:55:09 -0000 Author: peter Date: Sun Aug 11 09:55:08 2013 New Revision: 254212 URL: http://svnweb.freebsd.org/changeset/base/254212 Log: Tag import Added: vendor/nvi/2.1.1-4334a8297f/ - copied from r254211, vendor/nvi/dist/ From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 10:35:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3B619E1D; Sun, 11 Aug 2013 10:35:39 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0EE202E6D; Sun, 11 Aug 2013 10:35:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BAZcqv089504; Sun, 11 Aug 2013 10:35:38 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BAZcUl089503; Sun, 11 Aug 2013 10:35:38 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308111035.r7BAZcUl089503@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 10:35:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254213 - head/contrib/nvi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 10:35:39 -0000 Author: peter Date: Sun Aug 11 10:35:38 2013 New Revision: 254213 URL: http://svnweb.freebsd.org/changeset/base/254213 Log: Bootstrap svn:mergeinfo as of the 2008 run of cvs2svn. Modified: Directory Properties: head/contrib/nvi/ (props changed) From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 11:06:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8A270515; Sun, 11 Aug 2013 11:06:50 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 779082F9F; Sun, 11 Aug 2013 11:06:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BB6okD001142; Sun, 11 Aug 2013 11:06:50 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BB6oIs001141; Sun, 11 Aug 2013 11:06:50 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201308111106.r7BB6oIs001141@svn.freebsd.org> From: Edward Tomasz Napierala Date: Sun, 11 Aug 2013 11:06:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254215 - head/usr.bin/su X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 11:06:50 -0000 Author: trasz Date: Sun Aug 11 11:06:49 2013 New Revision: 254215 URL: http://svnweb.freebsd.org/changeset/base/254215 Log: In su(1), fix option ordering and clarify that the login class specified must be defined in login.conf. MFC after: 1 month Modified: head/usr.bin/su/su.1 Modified: head/usr.bin/su/su.1 ============================================================================== --- head/usr.bin/su/su.1 Sun Aug 11 10:54:16 2013 (r254214) +++ head/usr.bin/su/su.1 Sun Aug 11 11:06:49 2013 (r254215) @@ -28,7 +28,7 @@ .\" @(#)su.1 8.2 (Berkeley) 4/18/94 .\" $FreeBSD$ .\" -.Dd June 6, 2011 +.Dd August 11, 2013 .Dt SU 1 .Os .Sh NAME @@ -37,8 +37,8 @@ .Sh SYNOPSIS .Nm .Op Fl -.Op Fl flms .Op Fl c Ar class +.Op Fl flms .Op Ar login Op Ar args .Sh DESCRIPTION The @@ -85,6 +85,11 @@ are also normally retained unless the ta .Pp The options are as follows: .Bl -tag -width Ds +.It Fl c Ar class +Use the settings of the specified login class. +The login class must be defined in +.Xr login.conf 5 . +Only allowed for the super-user. .It Fl f If the invoked shell is .Xr csh 1 , @@ -139,9 +144,6 @@ is not sufficient to transition to the u If the label cannot be set, .Nm will fail. -.It Fl c Ar class -Use the settings of the specified login class. -Only allowed for the super-user. .El .Pp The From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 12:01:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7E83DD59; Sun, 11 Aug 2013 12:01:24 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-ee0-x22a.google.com (mail-ee0-x22a.google.com [IPv6:2a00:1450:4013:c00::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8CD422217; Sun, 11 Aug 2013 12:01:23 +0000 (UTC) Received: by mail-ee0-f42.google.com with SMTP id b45so2967168eek.29 for ; Sun, 11 Aug 2013 05:01:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=M5Hi/hMAl8+m925svgpiXwRYWBDX+KE0Cuv5IMD6bK4=; b=WurDbLdMmZkttzCHcG00DCgPmj+mkobA6CW7haPCeI87JzBU5npybNqnjT0nRzKUJ7 5tRmTJgwrOkc40SpCC2fEl6C/jI2l2sW7ko/7vsCNGpx1GBaRt2SuL6VsecojIvRYLrN z0gsmHuSF6Q7DZtCmX3BRPWXNUEh5LoZPBzLZcE7YtgS6cX17lS3VCE3K93fF+i8yWbI zwxxJ+arGKdzhzUBdrhV6+iH4DSh+i3dJmfgeC9evaEPqI0mlZ78ZNYODWVnnv8FAg2N wUaiNanbCtC4RBfjM6npQQV2Yg0GR8Q1D+1a1JfFZZhBaSbPe4YtETS7HnzPulTbq0/1 U7Hg== X-Received: by 10.15.27.133 with SMTP id p5mr20883443eeu.65.1376222481834; Sun, 11 Aug 2013 05:01:21 -0700 (PDT) Received: from mavbook.mavhome.dp.ua ([37.229.21.195]) by mx.google.com with ESMTPSA id f49sm42002038eec.7.2013.08.11.05.01.19 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 11 Aug 2013 05:01:20 -0700 (PDT) Sender: Alexander Motin Message-ID: <52077D0D.8090607@FreeBSD.org> Date: Sun, 11 Aug 2013 15:01:17 +0300 From: Alexander Motin User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130616 Thunderbird/17.0.6 MIME-Version: 1.0 To: Scott Long Subject: Re: svn commit: r253460 - head/sys/dev/mps References: <201307190012.r6J0Cg1r027645@svn.freebsd.org> In-Reply-To: <201307190012.r6J0Cg1r027645@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 12:01:24 -0000 On 19.07.2013 03:12, Scott Long wrote: > Author: scottl > Date: Fri Jul 19 00:12:41 2013 > New Revision: 253460 > URL: http://svnweb.freebsd.org/changeset/base/253460 > > Log: > Overhaul error, information, and debug logging. > > Obtained from: Netflix > MFC after: 3 days > > Modified: > head/sys/dev/mps/mps.c > head/sys/dev/mps/mps_mapping.c > head/sys/dev/mps/mps_pci.c > head/sys/dev/mps/mps_sas.c > head/sys/dev/mps/mps_sas_lsi.c > head/sys/dev/mps/mps_table.c > head/sys/dev/mps/mps_user.c > head/sys/dev/mps/mpsvar.h This change created significant CPU overhead under high I/O rate (350K IOPS) because several functions inside mpssas_log_command() are now writing into the buffer that is just discarded after that. The following simple patch seems fixes the situation for me: Index: mps_sas.c =================================================================== --- mps_sas.c (revision 254181) +++ mps_sas.c (working copy) @@ -304,7 +304,7 @@ mpssas_log_command(struct mps_command *cm, u_int l char str[192]; char path_str[64]; - if (cm == NULL) + if (cm == NULL || (cm->cm_sc->mps_debug & level) == 0) return; sbuf_new(&sb, str, sizeof(str), 0); -- Alexander Motin From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 13:57:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 84CC8DB; Sun, 11 Aug 2013 13:57:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 725AD267A; Sun, 11 Aug 2013 13:57:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BDvF01065443; Sun, 11 Aug 2013 13:57:15 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BDvF7H065442; Sun, 11 Aug 2013 13:57:15 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308111357.r7BDvF7H065442@svn.freebsd.org> From: Glen Barber Date: Sun, 11 Aug 2013 13:57:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254217 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 13:57:15 -0000 Author: gjb Date: Sun Aug 11 13:57:14 2013 New Revision: 254217 URL: http://svnweb.freebsd.org/changeset/base/254217 Log: Use realpath(1) to determine the location of the newvers.sh script, since the current working directory might not be what is expected, causing svn{,lite}version to fail to find ${0} (itself). Submitted by: Dan Mack Modified: head/sys/conf/newvers.sh Modified: head/sys/conf/newvers.sh ============================================================================== --- head/sys/conf/newvers.sh Sun Aug 11 11:33:48 2013 (r254216) +++ head/sys/conf/newvers.sh Sun Aug 11 13:57:14 2013 (r254217) @@ -96,7 +96,7 @@ for dir in /usr/bin /usr/local/bin; do # Run svnversion from ${dir} on this script; if return code # is not zero, the checkout might not be compatible with the # svnversion being used. - ${dir}/svnversion $(basename ${0}) >/dev/null 2>&1 + ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 if [ $? -eq 0 ]; then svnversion=${dir}/svnversion break @@ -105,7 +105,7 @@ for dir in /usr/bin /usr/local/bin; do done if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then - /usr/bin/svnliteversion $(basename ${0}) >/dev/null 2>&1 + /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 if [ $? -eq 0 ]; then svnversion=/usr/bin/svnliteversion else From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 14:15:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E1CFF6BA; Sun, 11 Aug 2013 14:15:01 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CF8CF2731; Sun, 11 Aug 2013 14:15:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BEF18m073065; Sun, 11 Aug 2013 14:15:01 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BEF1Pt073064; Sun, 11 Aug 2013 14:15:01 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308111415.r7BEF1Pt073064@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 11 Aug 2013 14:15:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254218 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:15:02 -0000 Author: jilles Date: Sun Aug 11 14:15:01 2013 New Revision: 254218 URL: http://svnweb.freebsd.org/changeset/base/254218 Log: wait: Make sure WIFSIGNALED(s) is false if WIFCONTINUED(s) is true. Modified: head/sys/sys/wait.h Modified: head/sys/sys/wait.h ============================================================================== --- head/sys/sys/wait.h Sun Aug 11 13:57:14 2013 (r254217) +++ head/sys/sys/wait.h Sun Aug 11 14:15:01 2013 (r254218) @@ -53,7 +53,7 @@ #define _WSTOPPED 0177 /* _WSTATUS if process is stopped */ #define WIFSTOPPED(x) (_WSTATUS(x) == _WSTOPPED) #define WSTOPSIG(x) (_W_INT(x) >> 8) -#define WIFSIGNALED(x) (_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0) +#define WIFSIGNALED(x) (_WSTATUS(x) != _WSTOPPED && _WSTATUS(x) != 0 && (x) != 0x13) #define WTERMSIG(x) (_WSTATUS(x)) #define WIFEXITED(x) (_WSTATUS(x) == 0) #define WEXITSTATUS(x) (_W_INT(x) >> 8) From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 14:28:46 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E91E78AD; Sun, 11 Aug 2013 14:28:46 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D2C82278C; Sun, 11 Aug 2013 14:28:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BESknR077358; Sun, 11 Aug 2013 14:28:46 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BESk7k077355; Sun, 11 Aug 2013 14:28:46 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111428.r7BESk7k077355@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:28:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254219 - vendor-sys/ipfilter/dist/netinet vendor/ipfilter/dist vendor/ipfilter/dist/4bsd vendor/ipfilter/dist/AIX vendor/ipfilter/dist/BSD vendor/ipfilter/dist/BSDOS vendor/ipfilter/di... X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:28:47 -0000 Author: cy Date: Sun Aug 11 14:28:45 2013 New Revision: 254219 URL: http://svnweb.freebsd.org/changeset/base/254219 Log: Import IP-Filter 5.1.2 into vendor branches using the existing license that the current version of IP-Filter in FreeBSD is under as per email received from Darren Reed on Mon, 08 Jul 2013 23:54:16 +1000. Approved by: glebius (Mentor), Darren Reed Deleted: vendor-sys/ipfilter/dist/netinet/QNX_OCL.txt vendor-sys/ipfilter/dist/netinet/ip_h323_pxy.c vendor-sys/ipfilter/dist/netinet/y vendor-sys/ipfilter/dist/netinet/y.pub Modified: vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE vendor-sys/ipfilter/dist/netinet/fil.c vendor-sys/ipfilter/dist/netinet/ip_auth.c vendor-sys/ipfilter/dist/netinet/ip_auth.h vendor-sys/ipfilter/dist/netinet/ip_compat.h vendor-sys/ipfilter/dist/netinet/ip_fil.c vendor-sys/ipfilter/dist/netinet/ip_fil.h vendor-sys/ipfilter/dist/netinet/ip_fil_freebsd.c vendor-sys/ipfilter/dist/netinet/ip_frag.c vendor-sys/ipfilter/dist/netinet/ip_frag.h vendor-sys/ipfilter/dist/netinet/ip_ftp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_htable.c vendor-sys/ipfilter/dist/netinet/ip_htable.h vendor-sys/ipfilter/dist/netinet/ip_ipsec_pxy.c vendor-sys/ipfilter/dist/netinet/ip_irc_pxy.c vendor-sys/ipfilter/dist/netinet/ip_log.c vendor-sys/ipfilter/dist/netinet/ip_lookup.c vendor-sys/ipfilter/dist/netinet/ip_lookup.h vendor-sys/ipfilter/dist/netinet/ip_nat.c vendor-sys/ipfilter/dist/netinet/ip_nat.h vendor-sys/ipfilter/dist/netinet/ip_netbios_pxy.c vendor-sys/ipfilter/dist/netinet/ip_pool.c vendor-sys/ipfilter/dist/netinet/ip_pool.h vendor-sys/ipfilter/dist/netinet/ip_pptp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.h vendor-sys/ipfilter/dist/netinet/ip_raudio_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rcmd_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rpcb_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rules.c vendor-sys/ipfilter/dist/netinet/ip_rules.h vendor-sys/ipfilter/dist/netinet/ip_scan.c vendor-sys/ipfilter/dist/netinet/ip_scan.h vendor-sys/ipfilter/dist/netinet/ip_state.c vendor-sys/ipfilter/dist/netinet/ip_state.h vendor-sys/ipfilter/dist/netinet/ip_sync.c vendor-sys/ipfilter/dist/netinet/ip_sync.h vendor-sys/ipfilter/dist/netinet/ipl.h vendor-sys/ipfilter/dist/netinet/mlfk_ipl.c Changes in other areas also in this revision: Added: vendor/ipfilter/dist/4bsd/ vendor/ipfilter/dist/4bsd/conf.c.diffs vendor/ipfilter/dist/4bsd/files.diffs vendor/ipfilter/dist/4bsd/files.newconf.diffs vendor/ipfilter/dist/4bsd/files.oldconf.diffs vendor/ipfilter/dist/4bsd/filez.diffs vendor/ipfilter/dist/4bsd/ip_input.c.diffs vendor/ipfilter/dist/4bsd/ip_output.c.diffs vendor/ipfilter/dist/4bsd/kinstall (contents, props changed) vendor/ipfilter/dist/AIX/ vendor/ipfilter/dist/AIX/Makefile (contents, props changed) vendor/ipfilter/dist/AIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/AIX/aix_cfg_ipf.c vendor/ipfilter/dist/AIX/bootbits.sh (contents, props changed) vendor/ipfilter/dist/AIX/cpurev (contents, props changed) vendor/ipfilter/dist/AIX/ipfkext.exp vendor/ipfilter/dist/AIX/ipfkext.map vendor/ipfilter/dist/BSD/upgrade (contents, props changed) vendor/ipfilter/dist/BSDOS/ vendor/ipfilter/dist/BSDOS/files.diffs vendor/ipfilter/dist/BSDOS/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS/ip_input.c.diffs vendor/ipfilter/dist/BSDOS/ip_output.c.diffs vendor/ipfilter/dist/BSDOS/kinstall (contents, props changed) vendor/ipfilter/dist/BSDOS3/ vendor/ipfilter/dist/BSDOS3/OBJS/ vendor/ipfilter/dist/BSDOS3/OBJS/README vendor/ipfilter/dist/BSDOS3/OBJS/files vendor/ipfilter/dist/BSDOS3/OBJS/ioconf.c vendor/ipfilter/dist/BSDOS3/files.diffs vendor/ipfilter/dist/BSDOS3/in_proto.c.diffs vendor/ipfilter/dist/BSDOS3/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS3/ip_input.c.diffs vendor/ipfilter/dist/BSDOS3/ip_output.c.diffs vendor/ipfilter/dist/BSDOS3/kinstall vendor/ipfilter/dist/BSDOS3/unkinstall vendor/ipfilter/dist/BSDOS4/ vendor/ipfilter/dist/BSDOS4/files.diffs vendor/ipfilter/dist/BSDOS4/in_proto.c.diffs vendor/ipfilter/dist/BSDOS4/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS4/ip_input.c.diffs vendor/ipfilter/dist/BSDOS4/ip_output.c.diffs vendor/ipfilter/dist/BSDOS4/kinstall vendor/ipfilter/dist/BSDOS4/unkinstall vendor/ipfilter/dist/HPUX/ vendor/ipfilter/dist/HPUX/INSTALL.TXT vendor/ipfilter/dist/HPUX/IPF-ALL/ vendor/ipfilter/dist/HPUX/IPF-ALL/checkinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/checkremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/description (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/verify (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/HPUX/cpurev (contents, props changed) vendor/ipfilter/dist/HPUX/ethers.c vendor/ipfilter/dist/HPUX/installmod (contents, props changed) vendor/ipfilter/dist/HPUX/ipf.psf.dist vendor/ipfilter/dist/HPUX/ipfboot vendor/ipfilter/dist/HPUX/ipfconf vendor/ipfilter/dist/HPUX/makeargs (contents, props changed) vendor/ipfilter/dist/HPUX/master vendor/ipfilter/dist/HPUX/space.h vendor/ipfilter/dist/HPUX/system vendor/ipfilter/dist/INSTALL.Tru64 vendor/ipfilter/dist/IRIX/ vendor/ipfilter/dist/IRIX/Makefile (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.common (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend.std (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.std (contents, props changed) vendor/ipfilter/dist/IRIX/cpurev (contents, props changed) vendor/ipfilter/dist/IRIX/getkflags (contents, props changed) vendor/ipfilter/dist/IRIX/getrev (contents, props changed) vendor/ipfilter/dist/IRIX/ipfboot vendor/ipfilter/dist/IRIX/ipl vendor/ipfilter/dist/Linux/ vendor/ipfilter/dist/Linux/Makefile (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.kbuild (contents, props changed) vendor/ipfilter/dist/Linux/Tips_SuSE91.txt vendor/ipfilter/dist/Linux/howchkconfig (contents, props changed) vendor/ipfilter/dist/Linux/initscript vendor/ipfilter/dist/Linux/ipf-linux.h vendor/ipfilter/dist/Linux/ipfilter (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-redhat (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-suse (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter.spec.dist vendor/ipfilter/dist/Linux/linuxversion (contents, props changed) vendor/ipfilter/dist/Linux/minstall (contents, props changed) vendor/ipfilter/dist/Linux/mkinit (contents, props changed) vendor/ipfilter/dist/NetBSD/ vendor/ipfilter/dist/NetBSD-1.2/ vendor/ipfilter/dist/NetBSD-1.2/conf.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/files-PATCH vendor/ipfilter/dist/NetBSD-1.2/files.oldconf-PATCH vendor/ipfilter/dist/NetBSD-1.2/in_proto.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_input.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_output.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD-1.2/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/conf.c.diffs vendor/ipfilter/dist/NetBSD/conf.c.old.diffs vendor/ipfilter/dist/NetBSD/files.diffs vendor/ipfilter/dist/NetBSD/files.newconf.diffs vendor/ipfilter/dist/NetBSD/files.oldconf.diffs vendor/ipfilter/dist/NetBSD/filez.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.old.diffs vendor/ipfilter/dist/NetBSD/ip_input.c.diffs vendor/ipfilter/dist/NetBSD/ip_output.c.diffs vendor/ipfilter/dist/NetBSD/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unkinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unminstall (contents, props changed) vendor/ipfilter/dist/OSF/ vendor/ipfilter/dist/OSF/Makefile (contents, props changed) vendor/ipfilter/dist/OSF/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/OSF/cpurev (contents, props changed) vendor/ipfilter/dist/OSF/ipfboot vendor/ipfilter/dist/OSF/sysconfigtab vendor/ipfilter/dist/OpenBSD/ vendor/ipfilter/dist/OpenBSD-2/ vendor/ipfilter/dist/OpenBSD-2/2.9-IPv6.diffs vendor/ipfilter/dist/OpenBSD-2/files.diffs vendor/ipfilter/dist/OpenBSD-2/ipf-fastroute.patch-2.7 vendor/ipfilter/dist/OpenBSD-2/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD-2/mknewipf.sh vendor/ipfilter/dist/OpenBSD-2/patch.1 vendor/ipfilter/dist/OpenBSD-2/unkinstall vendor/ipfilter/dist/OpenBSD-3/ vendor/ipfilter/dist/OpenBSD-3/3.0-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-sys-diffs vendor/ipfilter/dist/OpenBSD-3/README.3_0 vendor/ipfilter/dist/OpenBSD-3/README.3_1 vendor/ipfilter/dist/OpenBSD-3/README.3_2 vendor/ipfilter/dist/OpenBSD-3/README.3_3 vendor/ipfilter/dist/OpenBSD-3/README.3_4 vendor/ipfilter/dist/OpenBSD-3/README.3_5 vendor/ipfilter/dist/OpenBSD-3/fixdist-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.1 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD/files.diffs vendor/ipfilter/dist/OpenBSD/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD/mknewipf.sh vendor/ipfilter/dist/OpenBSD/patch.1 vendor/ipfilter/dist/OpenBSD/unkinstall vendor/ipfilter/dist/SunOS4/ vendor/ipfilter/dist/SunOS4/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS4/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS4/conf.c.diff vendor/ipfilter/dist/SunOS4/files.cmn.diff vendor/ipfilter/dist/SunOS4/in_proto.c.diffs vendor/ipfilter/dist/SunOS4/kinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/minstall (contents, props changed) vendor/ipfilter/dist/SunOS4/mkroutes (contents, props changed) vendor/ipfilter/dist/SunOS4/rc.ipf (contents, props changed) vendor/ipfilter/dist/SunOS4/reload (contents, props changed) vendor/ipfilter/dist/SunOS4/unkinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/unminstall (contents, props changed) vendor/ipfilter/dist/SunOS5/ vendor/ipfilter/dist/SunOS5/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS5/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS5/copyright vendor/ipfilter/dist/SunOS5/depend vendor/ipfilter/dist/SunOS5/ipf.conf vendor/ipfilter/dist/SunOS5/ipfboot vendor/ipfilter/dist/SunOS5/makeargs (contents, props changed) vendor/ipfilter/dist/SunOS5/mblk_misc.c vendor/ipfilter/dist/SunOS5/pkginfo vendor/ipfilter/dist/SunOS5/postinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/postremove (contents, props changed) vendor/ipfilter/dist/SunOS5/preremove (contents, props changed) vendor/ipfilter/dist/SunOS5/prototype vendor/ipfilter/dist/SunOS5/prototype32 vendor/ipfilter/dist/SunOS5/prototype64 vendor/ipfilter/dist/SunOS5/prototype_amd64 vendor/ipfilter/dist/SunOS5/prototype_ia32 vendor/ipfilter/dist/SunOS5/replace (contents, props changed) vendor/ipfilter/dist/SunOS5/solinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/uninstall (contents, props changed) vendor/ipfilter/dist/WhatsNew50.txt vendor/ipfilter/dist/arc4random.c vendor/ipfilter/dist/hpux.c vendor/ipfilter/dist/ip_dns_pxy.c vendor/ipfilter/dist/ip_dstlist.c vendor/ipfilter/dist/ip_dstlist.h vendor/ipfilter/dist/ip_fil_aix.c vendor/ipfilter/dist/ip_fil_compat.c vendor/ipfilter/dist/ip_fil_hpux.c vendor/ipfilter/dist/ip_fil_irix.c vendor/ipfilter/dist/ip_fil_linux.c vendor/ipfilter/dist/ip_fil_netbsd.c vendor/ipfilter/dist/ip_fil_openbsd.c vendor/ipfilter/dist/ip_fil_osf.c vendor/ipfilter/dist/ip_fil_solaris.c vendor/ipfilter/dist/ip_fil_sunos4.c vendor/ipfilter/dist/ip_nat6.c vendor/ipfilter/dist/ip_tftp_pxy.c vendor/ipfilter/dist/ipf_rb.h vendor/ipfilter/dist/lib/allocmbt.c vendor/ipfilter/dist/lib/assigndefined.c vendor/ipfilter/dist/lib/connecttcp.c vendor/ipfilter/dist/lib/dupmbt.c vendor/ipfilter/dist/lib/familyname.c vendor/ipfilter/dist/lib/findword.c vendor/ipfilter/dist/lib/freembt.c vendor/ipfilter/dist/lib/ftov.c vendor/ipfilter/dist/lib/geticmptype.c vendor/ipfilter/dist/lib/icmptypename.c vendor/ipfilter/dist/lib/icmptypes.c vendor/ipfilter/dist/lib/interror.c vendor/ipfilter/dist/lib/ipf_perror.c vendor/ipfilter/dist/lib/load_dstlist.c vendor/ipfilter/dist/lib/load_dstlistnode.c vendor/ipfilter/dist/lib/mb_hexdump.c vendor/ipfilter/dist/lib/msgdsize.c vendor/ipfilter/dist/lib/parsefields.c vendor/ipfilter/dist/lib/parseipfexpr.c vendor/ipfilter/dist/lib/parsewhoisline.c vendor/ipfilter/dist/lib/poolio.c vendor/ipfilter/dist/lib/prependmbt.c vendor/ipfilter/dist/lib/printactiveaddr.c vendor/ipfilter/dist/lib/printaddr.c vendor/ipfilter/dist/lib/printdstl_live.c vendor/ipfilter/dist/lib/printdstlist.c vendor/ipfilter/dist/lib/printdstlistdata.c vendor/ipfilter/dist/lib/printdstlistnode.c vendor/ipfilter/dist/lib/printdstlistpolicy.c vendor/ipfilter/dist/lib/printfieldhdr.c vendor/ipfilter/dist/lib/printhost.c vendor/ipfilter/dist/lib/printipfexpr.c vendor/ipfilter/dist/lib/printiphdr.c vendor/ipfilter/dist/lib/printlookup.c vendor/ipfilter/dist/lib/printnataddr.c vendor/ipfilter/dist/lib/printnatfield.c vendor/ipfilter/dist/lib/printnatside.c vendor/ipfilter/dist/lib/printpoolfield.c vendor/ipfilter/dist/lib/printstatefields.c vendor/ipfilter/dist/lib/printtcpflags.c vendor/ipfilter/dist/lib/printunit.c vendor/ipfilter/dist/lib/save_execute.c vendor/ipfilter/dist/lib/save_file.c vendor/ipfilter/dist/lib/save_nothing.c vendor/ipfilter/dist/lib/save_syslog.c vendor/ipfilter/dist/lib/save_v1trap.c vendor/ipfilter/dist/lib/save_v2trap.c vendor/ipfilter/dist/lib/vtof.c vendor/ipfilter/dist/linux.c vendor/ipfilter/dist/mln_rule.c vendor/ipfilter/dist/mlo_ipl.c vendor/ipfilter/dist/mlo_rule.c vendor/ipfilter/dist/mls_rule.c vendor/ipfilter/dist/mlso_rule.c vendor/ipfilter/dist/radix_ipf.c vendor/ipfilter/dist/sys/ vendor/ipfilter/dist/sys/tree.h vendor/ipfilter/dist/test/e4to6 vendor/ipfilter/dist/test/expected/.cvsignore vendor/ipfilter/dist/test/expected/f21 vendor/ipfilter/dist/test/expected/f22 vendor/ipfilter/dist/test/expected/f25 vendor/ipfilter/dist/test/expected/f26 vendor/ipfilter/dist/test/expected/f27 vendor/ipfilter/dist/test/expected/f28 vendor/ipfilter/dist/test/expected/f29 vendor/ipfilter/dist/test/expected/f30 vendor/ipfilter/dist/test/expected/i22 vendor/ipfilter/dist/test/expected/i23 vendor/ipfilter/dist/test/expected/in100 vendor/ipfilter/dist/test/expected/in101 vendor/ipfilter/dist/test/expected/in102 vendor/ipfilter/dist/test/expected/in7 vendor/ipfilter/dist/test/expected/ip3 vendor/ipfilter/dist/test/expected/ipv6.4 vendor/ipfilter/dist/test/expected/n100 vendor/ipfilter/dist/test/expected/n101 vendor/ipfilter/dist/test/expected/n102 vendor/ipfilter/dist/test/expected/n103 vendor/ipfilter/dist/test/expected/n104 vendor/ipfilter/dist/test/expected/n105 vendor/ipfilter/dist/test/expected/n106 vendor/ipfilter/dist/test/expected/n11_6 vendor/ipfilter/dist/test/expected/n12_6 vendor/ipfilter/dist/test/expected/n13_6 vendor/ipfilter/dist/test/expected/n14_6 vendor/ipfilter/dist/test/expected/n15 vendor/ipfilter/dist/test/expected/n15_6 vendor/ipfilter/dist/test/expected/n17 vendor/ipfilter/dist/test/expected/n18 vendor/ipfilter/dist/test/expected/n1_6 vendor/ipfilter/dist/test/expected/n200 vendor/ipfilter/dist/test/expected/n2_6 vendor/ipfilter/dist/test/expected/n4_6 vendor/ipfilter/dist/test/expected/n5_6 vendor/ipfilter/dist/test/expected/n6_6 vendor/ipfilter/dist/test/expected/n7_6 vendor/ipfilter/dist/test/expected/n8_6 vendor/ipfilter/dist/test/expected/n9_6 vendor/ipfilter/dist/test/expected/ni17 vendor/ipfilter/dist/test/expected/ni18 vendor/ipfilter/dist/test/expected/p10 vendor/ipfilter/dist/test/expected/p11 vendor/ipfilter/dist/test/expected/p12 vendor/ipfilter/dist/test/expected/p13 vendor/ipfilter/dist/test/expected/p4 vendor/ipfilter/dist/test/expected/p6 vendor/ipfilter/dist/test/expected/p7 vendor/ipfilter/dist/test/expected/p9 vendor/ipfilter/dist/test/h4to6 vendor/ipfilter/dist/test/i4to6 vendor/ipfilter/dist/test/input/f21 vendor/ipfilter/dist/test/input/f22 vendor/ipfilter/dist/test/input/f25 vendor/ipfilter/dist/test/input/f26 vendor/ipfilter/dist/test/input/f27 vendor/ipfilter/dist/test/input/f28 vendor/ipfilter/dist/test/input/f29 vendor/ipfilter/dist/test/input/f30 vendor/ipfilter/dist/test/input/ipv6.4 vendor/ipfilter/dist/test/input/n100 vendor/ipfilter/dist/test/input/n101 vendor/ipfilter/dist/test/input/n102 vendor/ipfilter/dist/test/input/n103 vendor/ipfilter/dist/test/input/n104 vendor/ipfilter/dist/test/input/n105 vendor/ipfilter/dist/test/input/n106 vendor/ipfilter/dist/test/input/n10_6 vendor/ipfilter/dist/test/input/n11_6 vendor/ipfilter/dist/test/input/n12_6 vendor/ipfilter/dist/test/input/n13_6 vendor/ipfilter/dist/test/input/n14_6 vendor/ipfilter/dist/test/input/n15 vendor/ipfilter/dist/test/input/n15_6 vendor/ipfilter/dist/test/input/n17 vendor/ipfilter/dist/test/input/n17_6 vendor/ipfilter/dist/test/input/n18 vendor/ipfilter/dist/test/input/n1_6 vendor/ipfilter/dist/test/input/n200 vendor/ipfilter/dist/test/input/n2_6 vendor/ipfilter/dist/test/input/n4_6 vendor/ipfilter/dist/test/input/n5_6 vendor/ipfilter/dist/test/input/n6_6 vendor/ipfilter/dist/test/input/n7_6 vendor/ipfilter/dist/test/input/n8_6 vendor/ipfilter/dist/test/input/n9_6 vendor/ipfilter/dist/test/input/ni18 vendor/ipfilter/dist/test/input/p10 vendor/ipfilter/dist/test/input/p11 vendor/ipfilter/dist/test/input/p12 vendor/ipfilter/dist/test/input/p13 vendor/ipfilter/dist/test/input/p4 vendor/ipfilter/dist/test/input/p6 vendor/ipfilter/dist/test/input/p7 vendor/ipfilter/dist/test/input/p9 vendor/ipfilter/dist/test/ipflib.sh vendor/ipfilter/dist/test/regress/f21 vendor/ipfilter/dist/test/regress/f22 vendor/ipfilter/dist/test/regress/f25 vendor/ipfilter/dist/test/regress/f26 vendor/ipfilter/dist/test/regress/f27 vendor/ipfilter/dist/test/regress/f28.ipf vendor/ipfilter/dist/test/regress/f28.pool vendor/ipfilter/dist/test/regress/f29.ipf vendor/ipfilter/dist/test/regress/f29.pool vendor/ipfilter/dist/test/regress/f30 vendor/ipfilter/dist/test/regress/i22 vendor/ipfilter/dist/test/regress/i23 vendor/ipfilter/dist/test/regress/in100 vendor/ipfilter/dist/test/regress/in101 vendor/ipfilter/dist/test/regress/in102 vendor/ipfilter/dist/test/regress/in7 vendor/ipfilter/dist/test/regress/ip3 vendor/ipfilter/dist/test/regress/ipv6.4 vendor/ipfilter/dist/test/regress/n100 vendor/ipfilter/dist/test/regress/n101 vendor/ipfilter/dist/test/regress/n102 vendor/ipfilter/dist/test/regress/n103 vendor/ipfilter/dist/test/regress/n104 vendor/ipfilter/dist/test/regress/n105 vendor/ipfilter/dist/test/regress/n106 vendor/ipfilter/dist/test/regress/n10_6 vendor/ipfilter/dist/test/regress/n11_6 vendor/ipfilter/dist/test/regress/n12_6 vendor/ipfilter/dist/test/regress/n13_6 vendor/ipfilter/dist/test/regress/n14_6 vendor/ipfilter/dist/test/regress/n15 vendor/ipfilter/dist/test/regress/n15_6 vendor/ipfilter/dist/test/regress/n16_6 vendor/ipfilter/dist/test/regress/n17 vendor/ipfilter/dist/test/regress/n17_6 vendor/ipfilter/dist/test/regress/n18 vendor/ipfilter/dist/test/regress/n1_6 vendor/ipfilter/dist/test/regress/n200 vendor/ipfilter/dist/test/regress/n2_6 vendor/ipfilter/dist/test/regress/n4_6 vendor/ipfilter/dist/test/regress/n5_6 vendor/ipfilter/dist/test/regress/n6_6 vendor/ipfilter/dist/test/regress/n7_6 vendor/ipfilter/dist/test/regress/n8_6 vendor/ipfilter/dist/test/regress/n9_6 vendor/ipfilter/dist/test/regress/ni17.ipf vendor/ipfilter/dist/test/regress/ni18.ipf vendor/ipfilter/dist/test/regress/ni18.nat vendor/ipfilter/dist/test/regress/p10.nat vendor/ipfilter/dist/test/regress/p10.pool vendor/ipfilter/dist/test/regress/p11.nat vendor/ipfilter/dist/test/regress/p11.pool vendor/ipfilter/dist/test/regress/p12.nat vendor/ipfilter/dist/test/regress/p12.pool vendor/ipfilter/dist/test/regress/p13.ipf vendor/ipfilter/dist/test/regress/p13.pool vendor/ipfilter/dist/test/regress/p4.nat vendor/ipfilter/dist/test/regress/p4.pool vendor/ipfilter/dist/test/regress/p6.ipf vendor/ipfilter/dist/test/regress/p6.pool vendor/ipfilter/dist/test/regress/p6.whois vendor/ipfilter/dist/test/regress/p7.nat vendor/ipfilter/dist/test/regress/p7.pool vendor/ipfilter/dist/test/regress/p9.nat vendor/ipfilter/dist/test/regress/p9.pool vendor/ipfilter/dist/tools/ipfsyncd.c vendor/ipfilter/dist/tru64.c Deleted: vendor/ipfilter/dist/BSD/.cvsignore vendor/ipfilter/dist/FWTK/FWTK.sed vendor/ipfilter/dist/FWTK/fwtk-2.1-transparency.txt vendor/ipfilter/dist/FWTK/tproxy.diff vendor/ipfilter/dist/FreeBSD-4.0/ipv6-patch vendor/ipfilter/dist/QNX_OCL.txt vendor/ipfilter/dist/UPGRADE_NOTICE vendor/ipfilter/dist/bpf-ipf.h vendor/ipfilter/dist/bpf.h vendor/ipfilter/dist/bpf_filter.c vendor/ipfilter/dist/buildlinux vendor/ipfilter/dist/common.c vendor/ipfilter/dist/etc/etc.sed vendor/ipfilter/dist/facpri.c vendor/ipfilter/dist/facpri.h vendor/ipfilter/dist/fils.c vendor/ipfilter/dist/inet_addr.c vendor/ipfilter/dist/ip_h323_pxy.c vendor/ipfilter/dist/ip_lfil.c vendor/ipfilter/dist/ip_msnrpc_pxy.c vendor/ipfilter/dist/ip_sfil.c vendor/ipfilter/dist/ipf.c vendor/ipfilter/dist/ipfs.c vendor/ipfilter/dist/ipft_ef.c vendor/ipfilter/dist/ipft_hx.c vendor/ipfilter/dist/ipft_pc.c vendor/ipfilter/dist/ipft_sn.c vendor/ipfilter/dist/ipft_td.c vendor/ipfilter/dist/ipft_tx.c vendor/ipfilter/dist/ipl_ldev.c vendor/ipfilter/dist/iplang/.cvsignore vendor/ipfilter/dist/ipmon.c vendor/ipfilter/dist/ipnat.c vendor/ipfilter/dist/ipsd/ip_compat.h vendor/ipfilter/dist/ipsd/ipsd.sed vendor/ipfilter/dist/ipsend/.cvsignore vendor/ipfilter/dist/ipsend/README vendor/ipfilter/dist/ipsend/hpux.c vendor/ipfilter/dist/ipsend/in_var.h vendor/ipfilter/dist/ipsend/ip_compat.h vendor/ipfilter/dist/ipsend/ip_var.h vendor/ipfilter/dist/ipsend/ipsend.sed vendor/ipfilter/dist/ipsend/tcpip.h vendor/ipfilter/dist/ipsend/ultrix.c vendor/ipfilter/dist/ipt.c vendor/ipfilter/dist/kmem.c vendor/ipfilter/dist/lib/addkeep.c vendor/ipfilter/dist/lib/extras.c vendor/ipfilter/dist/lib/getline.c vendor/ipfilter/dist/lib/hexdump.c vendor/ipfilter/dist/lib/hostmask.c vendor/ipfilter/dist/lib/hostnum.c vendor/ipfilter/dist/lib/inet_addr.c vendor/ipfilter/dist/lib/ipft_ef.c vendor/ipfilter/dist/lib/ipft_sn.c vendor/ipfilter/dist/lib/ipft_td.c vendor/ipfilter/dist/lib/loglevel.c vendor/ipfilter/dist/lib/make_range.c vendor/ipfilter/dist/lib/natparse.c vendor/ipfilter/dist/lib/parse.c vendor/ipfilter/dist/lib/portnum.c vendor/ipfilter/dist/lib/ports.c vendor/ipfilter/dist/lib/ratoi.c vendor/ipfilter/dist/lib/ratoui.c vendor/ipfilter/dist/lib/tcp_flags.c vendor/ipfilter/dist/lib/to_interface.c vendor/ipfilter/dist/man/ipf.1 vendor/ipfilter/dist/man/ipnat.1 vendor/ipfilter/dist/man/man.sed vendor/ipfilter/dist/misc.c vendor/ipfilter/dist/natparse.c vendor/ipfilter/dist/net/.cvsignore vendor/ipfilter/dist/opt.c vendor/ipfilter/dist/opt_inet6.h vendor/ipfilter/dist/parse.c vendor/ipfilter/dist/pcap.h vendor/ipfilter/dist/printnat.c vendor/ipfilter/dist/printstate.c vendor/ipfilter/dist/radix.c vendor/ipfilter/dist/relay.c vendor/ipfilter/dist/rules/.cvsignore vendor/ipfilter/dist/rules/rules.sed vendor/ipfilter/dist/samples/.cvsignore vendor/ipfilter/dist/test/expected/1 vendor/ipfilter/dist/test/expected/10 vendor/ipfilter/dist/test/expected/11 vendor/ipfilter/dist/test/expected/12 vendor/ipfilter/dist/test/expected/14 vendor/ipfilter/dist/test/expected/2 vendor/ipfilter/dist/test/expected/3 vendor/ipfilter/dist/test/expected/4 vendor/ipfilter/dist/test/expected/5 vendor/ipfilter/dist/test/expected/6 vendor/ipfilter/dist/test/expected/7 vendor/ipfilter/dist/test/expected/8 vendor/ipfilter/dist/test/expected/9 vendor/ipfilter/dist/test/expected/expected.sed vendor/ipfilter/dist/test/expected/i19 vendor/ipfilter/dist/test/hextest vendor/ipfilter/dist/test/input/1 vendor/ipfilter/dist/test/input/10 vendor/ipfilter/dist/test/input/11 vendor/ipfilter/dist/test/input/12 vendor/ipfilter/dist/test/input/13 vendor/ipfilter/dist/test/input/14 vendor/ipfilter/dist/test/input/2 vendor/ipfilter/dist/test/input/3 vendor/ipfilter/dist/test/input/4 vendor/ipfilter/dist/test/input/5 vendor/ipfilter/dist/test/input/6 vendor/ipfilter/dist/test/input/7 vendor/ipfilter/dist/test/input/8 vendor/ipfilter/dist/test/input/9 vendor/ipfilter/dist/test/input/input.sed vendor/ipfilter/dist/test/input/ipf6-1 vendor/ipfilter/dist/test/mhtest vendor/ipfilter/dist/test/regress/1 vendor/ipfilter/dist/test/regress/10 vendor/ipfilter/dist/test/regress/11 vendor/ipfilter/dist/test/regress/12 vendor/ipfilter/dist/test/regress/13 vendor/ipfilter/dist/test/regress/14 vendor/ipfilter/dist/test/regress/2 vendor/ipfilter/dist/test/regress/3 vendor/ipfilter/dist/test/regress/4 vendor/ipfilter/dist/test/regress/5 vendor/ipfilter/dist/test/regress/6 vendor/ipfilter/dist/test/regress/7 vendor/ipfilter/dist/test/regress/8 vendor/ipfilter/dist/test/regress/9 vendor/ipfilter/dist/test/regress/ipf6-1 vendor/ipfilter/dist/test/regress/regress.sed vendor/ipfilter/dist/test/test.sed Modified: vendor/ipfilter/dist/.cvsignore vendor/ipfilter/dist/BNF vendor/ipfilter/dist/BSD/Makefile vendor/ipfilter/dist/BSD/Makefile.ipsend vendor/ipfilter/dist/BSD/ipfadm-rcd vendor/ipfilter/dist/BSD/kupgrade vendor/ipfilter/dist/FAQ.FreeBSD vendor/ipfilter/dist/FWTK/ftp-gw.diff vendor/ipfilter/dist/FWTK/fwtk_transparent.diff vendor/ipfilter/dist/FreeBSD-2.2/kinstall vendor/ipfilter/dist/FreeBSD-3/INST.FreeBSD-3 vendor/ipfilter/dist/FreeBSD-3/kinstall vendor/ipfilter/dist/FreeBSD-4.0/INST.FreeBSD-4 vendor/ipfilter/dist/FreeBSD-4.0/kinstall vendor/ipfilter/dist/FreeBSD/kinstall vendor/ipfilter/dist/HISTORY vendor/ipfilter/dist/INSTALL.FreeBSD vendor/ipfilter/dist/INSTALL.IRIX vendor/ipfilter/dist/INSTALL.Linux vendor/ipfilter/dist/INSTALL.Sol2 vendor/ipfilter/dist/Makefile vendor/ipfilter/dist/NAT.FreeBSD vendor/ipfilter/dist/buildsunos vendor/ipfilter/dist/etc/protocols vendor/ipfilter/dist/etc/services vendor/ipfilter/dist/fil.c vendor/ipfilter/dist/ip_auth.c vendor/ipfilter/dist/ip_auth.h vendor/ipfilter/dist/ip_compat.h vendor/ipfilter/dist/ip_fil.c vendor/ipfilter/dist/ip_fil.h vendor/ipfilter/dist/ip_fil_freebsd.c vendor/ipfilter/dist/ip_frag.c vendor/ipfilter/dist/ip_frag.h vendor/ipfilter/dist/ip_ftp_pxy.c vendor/ipfilter/dist/ip_htable.c vendor/ipfilter/dist/ip_htable.h vendor/ipfilter/dist/ip_ipsec_pxy.c vendor/ipfilter/dist/ip_irc_pxy.c vendor/ipfilter/dist/ip_log.c vendor/ipfilter/dist/ip_lookup.c vendor/ipfilter/dist/ip_lookup.h vendor/ipfilter/dist/ip_nat.c vendor/ipfilter/dist/ip_nat.h vendor/ipfilter/dist/ip_netbios_pxy.c vendor/ipfilter/dist/ip_pool.c vendor/ipfilter/dist/ip_pool.h vendor/ipfilter/dist/ip_pptp_pxy.c vendor/ipfilter/dist/ip_proxy.c vendor/ipfilter/dist/ip_proxy.h vendor/ipfilter/dist/ip_raudio_pxy.c vendor/ipfilter/dist/ip_rcmd_pxy.c vendor/ipfilter/dist/ip_rpcb_pxy.c vendor/ipfilter/dist/ip_scan.c vendor/ipfilter/dist/ip_scan.h vendor/ipfilter/dist/ip_state.c vendor/ipfilter/dist/ip_state.h vendor/ipfilter/dist/ip_sync.c vendor/ipfilter/dist/ip_sync.h vendor/ipfilter/dist/ipf.h vendor/ipfilter/dist/ipl.h vendor/ipfilter/dist/iplang/Makefile vendor/ipfilter/dist/iplang/iplang.h vendor/ipfilter/dist/iplang/iplang.tst vendor/ipfilter/dist/iplang/iplang_l.l vendor/ipfilter/dist/iplang/iplang_y.y vendor/ipfilter/dist/ipmon.h vendor/ipfilter/dist/ipsd/Makefile vendor/ipfilter/dist/ipsd/ipsd.c vendor/ipfilter/dist/ipsd/ipsdr.c vendor/ipfilter/dist/ipsd/linux.h vendor/ipfilter/dist/ipsd/sbpf.c vendor/ipfilter/dist/ipsd/sdlpi.c vendor/ipfilter/dist/ipsd/slinux.c vendor/ipfilter/dist/ipsd/snit.c vendor/ipfilter/dist/ipsend/44arp.c vendor/ipfilter/dist/ipsend/Makefile vendor/ipfilter/dist/ipsend/arp.c vendor/ipfilter/dist/ipsend/dlcommon.c vendor/ipfilter/dist/ipsend/ip.c vendor/ipfilter/dist/ipsend/ipresend.c vendor/ipfilter/dist/ipsend/ipsend.5 vendor/ipfilter/dist/ipsend/ipsend.c vendor/ipfilter/dist/ipsend/ipsend.h vendor/ipfilter/dist/ipsend/ipsopt.c vendor/ipfilter/dist/ipsend/iptest.c vendor/ipfilter/dist/ipsend/iptests.c vendor/ipfilter/dist/ipsend/larp.c vendor/ipfilter/dist/ipsend/linux.h vendor/ipfilter/dist/ipsend/lsock.c vendor/ipfilter/dist/ipsend/resend.c vendor/ipfilter/dist/ipsend/sbpf.c vendor/ipfilter/dist/ipsend/sdlpi.c vendor/ipfilter/dist/ipsend/sirix.c vendor/ipfilter/dist/ipsend/slinux.c vendor/ipfilter/dist/ipsend/snit.c vendor/ipfilter/dist/ipsend/sock.c vendor/ipfilter/dist/ipt.h vendor/ipfilter/dist/kmem.h vendor/ipfilter/dist/l4check/Makefile vendor/ipfilter/dist/l4check/l4check.c vendor/ipfilter/dist/lib/Makefile vendor/ipfilter/dist/lib/addicmp.c vendor/ipfilter/dist/lib/addipopt.c vendor/ipfilter/dist/lib/alist_free.c vendor/ipfilter/dist/lib/alist_new.c vendor/ipfilter/dist/lib/bcopywrap.c vendor/ipfilter/dist/lib/binprint.c vendor/ipfilter/dist/lib/buildopts.c vendor/ipfilter/dist/lib/checkrev.c vendor/ipfilter/dist/lib/count4bits.c vendor/ipfilter/dist/lib/count6bits.c vendor/ipfilter/dist/lib/debug.c vendor/ipfilter/dist/lib/facpri.c vendor/ipfilter/dist/lib/facpri.h vendor/ipfilter/dist/lib/fill6bits.c vendor/ipfilter/dist/lib/flags.c vendor/ipfilter/dist/lib/genmask.c vendor/ipfilter/dist/lib/gethost.c vendor/ipfilter/dist/lib/getifname.c vendor/ipfilter/dist/lib/getnattype.c vendor/ipfilter/dist/lib/getport.c vendor/ipfilter/dist/lib/getportproto.c vendor/ipfilter/dist/lib/getproto.c vendor/ipfilter/dist/lib/getsumd.c vendor/ipfilter/dist/lib/hostname.c vendor/ipfilter/dist/lib/icmpcode.c vendor/ipfilter/dist/lib/initparse.c vendor/ipfilter/dist/lib/ionames.c vendor/ipfilter/dist/lib/ipf_dotuning.c vendor/ipfilter/dist/lib/ipft_hx.c vendor/ipfilter/dist/lib/ipft_pc.c vendor/ipfilter/dist/lib/ipft_tx.c vendor/ipfilter/dist/lib/ipoptsec.c vendor/ipfilter/dist/lib/kmem.c vendor/ipfilter/dist/lib/kmem.h vendor/ipfilter/dist/lib/kmemcpywrap.c vendor/ipfilter/dist/lib/kvatoname.c vendor/ipfilter/dist/lib/load_file.c vendor/ipfilter/dist/lib/load_hash.c vendor/ipfilter/dist/lib/load_hashnode.c vendor/ipfilter/dist/lib/load_http.c vendor/ipfilter/dist/lib/load_pool.c vendor/ipfilter/dist/lib/load_poolnode.c vendor/ipfilter/dist/lib/load_url.c vendor/ipfilter/dist/lib/mutex_emul.c vendor/ipfilter/dist/lib/nametokva.c vendor/ipfilter/dist/lib/nat_setgroupmap.c vendor/ipfilter/dist/lib/ntomask.c vendor/ipfilter/dist/lib/optname.c vendor/ipfilter/dist/lib/optprint.c vendor/ipfilter/dist/lib/optprintv6.c vendor/ipfilter/dist/lib/optvalue.c vendor/ipfilter/dist/lib/portname.c vendor/ipfilter/dist/lib/print_toif.c vendor/ipfilter/dist/lib/printactivenat.c vendor/ipfilter/dist/lib/printaps.c vendor/ipfilter/dist/lib/printbuf.c vendor/ipfilter/dist/lib/printfr.c vendor/ipfilter/dist/lib/printfraginfo.c vendor/ipfilter/dist/lib/printhash.c vendor/ipfilter/dist/lib/printhash_live.c vendor/ipfilter/dist/lib/printhashdata.c vendor/ipfilter/dist/lib/printhashnode.c vendor/ipfilter/dist/lib/printhostmap.c vendor/ipfilter/dist/lib/printhostmask.c vendor/ipfilter/dist/lib/printifname.c vendor/ipfilter/dist/lib/printip.c vendor/ipfilter/dist/lib/printlog.c vendor/ipfilter/dist/lib/printmask.c vendor/ipfilter/dist/lib/printnat.c vendor/ipfilter/dist/lib/printpacket.c vendor/ipfilter/dist/lib/printpacket6.c vendor/ipfilter/dist/lib/printpool.c vendor/ipfilter/dist/lib/printpool_live.c vendor/ipfilter/dist/lib/printpooldata.c vendor/ipfilter/dist/lib/printpoolnode.c vendor/ipfilter/dist/lib/printportcmp.c vendor/ipfilter/dist/lib/printproto.c vendor/ipfilter/dist/lib/printsbuf.c vendor/ipfilter/dist/lib/printstate.c vendor/ipfilter/dist/lib/printtqtable.c vendor/ipfilter/dist/lib/printtunable.c vendor/ipfilter/dist/lib/remove_hash.c vendor/ipfilter/dist/lib/remove_hashnode.c vendor/ipfilter/dist/lib/remove_pool.c vendor/ipfilter/dist/lib/remove_poolnode.c vendor/ipfilter/dist/lib/resetlexer.c vendor/ipfilter/dist/lib/rwlock_emul.c vendor/ipfilter/dist/lib/tcpflags.c vendor/ipfilter/dist/lib/tcpoptnames.c vendor/ipfilter/dist/lib/v6ionames.c vendor/ipfilter/dist/lib/v6optvalue.c vendor/ipfilter/dist/lib/var.c vendor/ipfilter/dist/lib/verbose.c vendor/ipfilter/dist/linux.h vendor/ipfilter/dist/man/Makefile vendor/ipfilter/dist/man/ipf.4 vendor/ipfilter/dist/man/ipf.5 vendor/ipfilter/dist/man/ipfilter.4 vendor/ipfilter/dist/man/ipfilter.4.mandoc vendor/ipfilter/dist/man/ipfstat.8 vendor/ipfilter/dist/man/ipftest.1 vendor/ipfilter/dist/man/ipmon.5 vendor/ipfilter/dist/man/ipmon.8 vendor/ipfilter/dist/man/ipnat.4 vendor/ipfilter/dist/man/ipnat.5 vendor/ipfilter/dist/man/ipnat.8 vendor/ipfilter/dist/man/ippool.5 vendor/ipfilter/dist/man/ippool.8 vendor/ipfilter/dist/md5.c vendor/ipfilter/dist/mkfilters vendor/ipfilter/dist/ml_ipl.c vendor/ipfilter/dist/mlf_ipl.c vendor/ipfilter/dist/mlf_rule.c vendor/ipfilter/dist/mlfk_ipl.c vendor/ipfilter/dist/mlfk_rule.c vendor/ipfilter/dist/mlh_rule.c vendor/ipfilter/dist/mli_ipl.c vendor/ipfilter/dist/mln_ipl.c vendor/ipfilter/dist/mls_ipl.c vendor/ipfilter/dist/opts.h vendor/ipfilter/dist/pcap-ipf.h vendor/ipfilter/dist/perl/Ipfanaly.pl vendor/ipfilter/dist/perl/Isbgraph vendor/ipfilter/dist/perl/Services vendor/ipfilter/dist/perl/ipfmeta.pl vendor/ipfilter/dist/perl/logfilter.pl vendor/ipfilter/dist/radix_ipf.h vendor/ipfilter/dist/rules/BASIC_1.FW vendor/ipfilter/dist/rules/BASIC_2.FW vendor/ipfilter/dist/rules/firewall vendor/ipfilter/dist/rules/ipmon.conf vendor/ipfilter/dist/rules/server vendor/ipfilter/dist/samples/proxy.c vendor/ipfilter/dist/samples/relay.c vendor/ipfilter/dist/snoop.h vendor/ipfilter/dist/solaris.c vendor/ipfilter/dist/test/.cvsignore vendor/ipfilter/dist/test/Makefile vendor/ipfilter/dist/test/bpftest vendor/ipfilter/dist/test/dotest vendor/ipfilter/dist/test/expected/f11 vendor/ipfilter/dist/test/expected/f13 vendor/ipfilter/dist/test/expected/f18 vendor/ipfilter/dist/test/expected/i1 vendor/ipfilter/dist/test/expected/i10 vendor/ipfilter/dist/test/expected/i11 vendor/ipfilter/dist/test/expected/i12 vendor/ipfilter/dist/test/expected/i14 vendor/ipfilter/dist/test/expected/i17 vendor/ipfilter/dist/test/expected/i18 vendor/ipfilter/dist/test/expected/i2 vendor/ipfilter/dist/test/expected/i20 vendor/ipfilter/dist/test/expected/i3 vendor/ipfilter/dist/test/expected/i4 vendor/ipfilter/dist/test/expected/i5 vendor/ipfilter/dist/test/expected/i6 vendor/ipfilter/dist/test/expected/i7 vendor/ipfilter/dist/test/expected/i8 vendor/ipfilter/dist/test/expected/i9 vendor/ipfilter/dist/test/expected/in1 vendor/ipfilter/dist/test/expected/in2 vendor/ipfilter/dist/test/expected/in3 vendor/ipfilter/dist/test/expected/in5 vendor/ipfilter/dist/test/expected/in6 vendor/ipfilter/dist/test/expected/ip1 vendor/ipfilter/dist/test/expected/ip2 vendor/ipfilter/dist/test/expected/ipv6.6 vendor/ipfilter/dist/test/expected/l1 vendor/ipfilter/dist/test/expected/l1.b vendor/ipfilter/dist/test/expected/n1 vendor/ipfilter/dist/test/expected/n10 vendor/ipfilter/dist/test/expected/n11 vendor/ipfilter/dist/test/expected/n12 vendor/ipfilter/dist/test/expected/n13 vendor/ipfilter/dist/test/expected/n14 vendor/ipfilter/dist/test/expected/n16 vendor/ipfilter/dist/test/expected/n2 vendor/ipfilter/dist/test/expected/n3 vendor/ipfilter/dist/test/expected/n4 vendor/ipfilter/dist/test/expected/n5 vendor/ipfilter/dist/test/expected/n6 vendor/ipfilter/dist/test/expected/n7 vendor/ipfilter/dist/test/expected/n8 vendor/ipfilter/dist/test/expected/n9 vendor/ipfilter/dist/test/expected/ni10 vendor/ipfilter/dist/test/expected/ni11 vendor/ipfilter/dist/test/expected/ni12 vendor/ipfilter/dist/test/expected/ni19 vendor/ipfilter/dist/test/expected/ni2 vendor/ipfilter/dist/test/expected/ni20 vendor/ipfilter/dist/test/expected/ni21 vendor/ipfilter/dist/test/expected/ni23 vendor/ipfilter/dist/test/expected/ni4 vendor/ipfilter/dist/test/expected/ni5 vendor/ipfilter/dist/test/expected/ni6 vendor/ipfilter/dist/test/expected/ni8 vendor/ipfilter/dist/test/expected/p1 vendor/ipfilter/dist/test/expected/p2 vendor/ipfilter/dist/test/expected/p3 vendor/ipfilter/dist/test/expected/p5 vendor/ipfilter/dist/test/input/f13 vendor/ipfilter/dist/test/input/f24 vendor/ipfilter/dist/test/input/ipv6.1 vendor/ipfilter/dist/test/input/ipv6.3 vendor/ipfilter/dist/test/input/ipv6.6 vendor/ipfilter/dist/test/input/n10 vendor/ipfilter/dist/test/input/n12 vendor/ipfilter/dist/test/input/n16 vendor/ipfilter/dist/test/input/n8 vendor/ipfilter/dist/test/input/n9 vendor/ipfilter/dist/test/input/ni1 vendor/ipfilter/dist/test/input/ni10 vendor/ipfilter/dist/test/input/ni11 vendor/ipfilter/dist/test/input/ni12 vendor/ipfilter/dist/test/input/ni13 vendor/ipfilter/dist/test/input/ni14 vendor/ipfilter/dist/test/input/ni15 vendor/ipfilter/dist/test/input/ni16 vendor/ipfilter/dist/test/input/ni19 vendor/ipfilter/dist/test/input/ni2 vendor/ipfilter/dist/test/input/ni20 vendor/ipfilter/dist/test/input/ni3 vendor/ipfilter/dist/test/input/ni4 vendor/ipfilter/dist/test/input/ni5 vendor/ipfilter/dist/test/input/ni7 vendor/ipfilter/dist/test/input/ni8 vendor/ipfilter/dist/test/input/ni9 vendor/ipfilter/dist/test/intest vendor/ipfilter/dist/test/iptest vendor/ipfilter/dist/test/itest vendor/ipfilter/dist/test/logtest vendor/ipfilter/dist/test/mtest vendor/ipfilter/dist/test/natipftest vendor/ipfilter/dist/test/nattest vendor/ipfilter/dist/test/ptest vendor/ipfilter/dist/test/regress/f13 vendor/ipfilter/dist/test/regress/i11 vendor/ipfilter/dist/test/regress/i12 vendor/ipfilter/dist/test/regress/i14 vendor/ipfilter/dist/test/regress/i17 vendor/ipfilter/dist/test/regress/i18 vendor/ipfilter/dist/test/regress/i2 vendor/ipfilter/dist/test/regress/i21 vendor/ipfilter/dist/test/regress/i7 vendor/ipfilter/dist/test/regress/i8 vendor/ipfilter/dist/test/regress/in2 vendor/ipfilter/dist/test/regress/ipv6.5 vendor/ipfilter/dist/test/regress/ipv6.6 vendor/ipfilter/dist/test/regress/n12 vendor/ipfilter/dist/test/regress/n2 vendor/ipfilter/dist/test/regress/n5 vendor/ipfilter/dist/test/regress/ni1.nat vendor/ipfilter/dist/test/regress/ni13.nat vendor/ipfilter/dist/test/regress/ni14.nat vendor/ipfilter/dist/test/regress/ni2.nat vendor/ipfilter/dist/test/regress/ni4.nat vendor/ipfilter/dist/test/regress/p1.pool vendor/ipfilter/dist/test/regress/p3.ipf vendor/ipfilter/dist/test/test.format vendor/ipfilter/dist/test/vfycksum.pl vendor/ipfilter/dist/todo vendor/ipfilter/dist/tools/BNF.ipf vendor/ipfilter/dist/tools/Makefile vendor/ipfilter/dist/tools/ipf.c vendor/ipfilter/dist/tools/ipf_y.y vendor/ipfilter/dist/tools/ipfcomp.c vendor/ipfilter/dist/tools/ipfs.c vendor/ipfilter/dist/tools/ipfstat.c vendor/ipfilter/dist/tools/ipftest.c vendor/ipfilter/dist/tools/ipmon.c vendor/ipfilter/dist/tools/ipmon_y.y vendor/ipfilter/dist/tools/ipnat.c vendor/ipfilter/dist/tools/ipnat_y.y vendor/ipfilter/dist/tools/ippool.c vendor/ipfilter/dist/tools/ippool_y.y vendor/ipfilter/dist/tools/ipscan_y.y vendor/ipfilter/dist/tools/ipsyncm.c vendor/ipfilter/dist/tools/ipsyncs.c vendor/ipfilter/dist/tools/lex_var.h vendor/ipfilter/dist/tools/lexer.c vendor/ipfilter/dist/tools/lexer.h Modified: vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE ============================================================================== --- vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE Sun Aug 11 14:15:01 2013 (r254218) +++ vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE Sun Aug 11 14:28:45 2013 (r254219) @@ -1,29 +1,340 @@ -/* - * Copyright (C) 1993-2001 by Darren Reed. - * - * The author accepts no responsibility for the use of this software and - * provides it on an ``as is'' basis without express or implied warranty. - * - * Redistribution and use, with or without modification, in source and binary - * forms, are permitted provided that this notice is preserved in its entirety - * and due credit is given to the original author and the contributors. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied, in part or in whole, and put under another distribution licence - * [including the GNU Public Licence.] - * - * 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. - * - * I hate legalese, don't you ? - */ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Modified: vendor-sys/ipfilter/dist/netinet/fil.c ============================================================================== --- vendor-sys/ipfilter/dist/netinet/fil.c Sun Aug 11 14:15:01 2013 (r254218) +++ vendor-sys/ipfilter/dist/netinet/fil.c Sun Aug 11 14:28:45 2013 (r254219) @@ -1,7 +1,12 @@ /* - * Copyright (C) 1993-2003 by Darren Reed. + * Copyright (C) 2012 by Darren Reed. * * See the IPFILTER.LICENCE file for details on licencing. + * + * Copyright 2008 Sun Microsystems. + * + * $Id$ + * */ #if defined(KERNEL) || defined(_KERNEL) # undef KERNEL @@ -13,15 +18,6 @@ #include #include #include -#if defined(__NetBSD__) -# if (NetBSD >= 199905) && !defined(IPFILTER_LKM) && defined(_KERNEL) -# if (__NetBSD_Version__ < 399001400) -# include "opt_ipfilter_log.h" -# else -# include "opt_ipfilter.h" -# endif -# endif -#endif #if defined(_KERNEL) && defined(__FreeBSD_version) && \ (__FreeBSD_version >= 220000) # if (__FreeBSD_version >= 400000) @@ -80,23 +76,9 @@ struct file; #ifdef sun # include #endif -#if !defined(_KERNEL) && (defined(__FreeBSD__) || defined(SOLARIS2)) -# if (__FreeBSD_version >= 504000) -# undef _RADIX_H_ -# endif -# include "radix_ipf.h" -#endif -#ifdef __osf__ -# include "radix_ipf.h" -#else -# include -#endif #include #include #include -#if !defined(linux) -# include -#endif #if defined(__sgi) && defined(IFF_DRVRLOCK) /* IRIX 6 */ # include # include @@ -119,7 +101,6 @@ struct file; # include # endif #endif -#include #include "netinet/ip_fil.h" #include "netinet/ip_nat.h" #include "netinet/ip_frag.h" @@ -129,9 +110,8 @@ struct file; #ifdef IPFILTER_SCAN # include "netinet/ip_scan.h" #endif -#ifdef IPFILTER_SYNC -# include "netinet/ip_sync.h" -#endif +#include "netinet/ip_sync.h" +#include "netinet/ip_lookup.h" #include "netinet/ip_pool.h" #include "netinet/ip_htable.h" #ifdef IPFILTER_COMPILED @@ -142,116 +122,101 @@ struct file; #endif #if defined(__FreeBSD_version) && (__FreeBSD_version >= 300000) # include -# if defined(_KERNEL) && !defined(IPFILTER_LKM) -# include "opt_ipfilter.h" -# endif #endif #include "netinet/ipl.h" + +#if defined(__NetBSD__) && (__NetBSD_Version__ >= 104230000) +# include +extern struct callout ipf_slowtimer_ch; +#endif +#if defined(__OpenBSD__) +# include +extern struct timeout ipf_slowtimer_ch; +#endif /* END OF INCLUDES */ #if !defined(lint) static const char sccsid[] = "@(#)fil.c 1.36 6/5/96 (C) 1993-2000 Darren Reed"; -static const char rcsid[] = "@(#)$Id: fil.c,v 2.243.2.125 2007/10/10 09:27:20 darrenr Exp $"; +static const char rcsid[] = "@(#)$Id$"; #endif #ifndef _KERNEL # include "ipf.h" # include "ipt.h" -# include "bpf-ipf.h" extern int opts; +extern int blockreason; #endif /* _KERNEL */ +#define LBUMP(x) softc->x++ +#define LBUMPD(x, y) do { softc->x.y++; DT(y); } while (0) -fr_info_t frcache[2][8]; -struct filterstats frstats[2]; -struct frentry *ipfilter[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipfilter6[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipacct6[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipacct[2][2] = { { NULL, NULL }, { NULL, NULL } }, - *ipnatrules[2][2] = { { NULL, NULL }, { NULL, NULL } }; -struct frgroup *ipfgroups[IPL_LOGSIZE][2]; -char ipfilter_version[] = IPL_VERSION; -int fr_refcnt = 0; -/* - * For fr_running: - * 0 == loading, 1 = running, -1 = disabled, -2 = unloading - */ -int fr_running = 0; -int fr_flags = IPF_LOGGING; -int fr_active = 0; -int fr_control_forwarding = 0; -int fr_update_ipid = 0; -u_short fr_ip_id = 0; -int fr_chksrc = 0; /* causes a system crash if enabled */ -int fr_minttl = 4; -int fr_icmpminfragmtu = 68; -u_long fr_frouteok[2] = {0, 0}; -u_long fr_userifqs = 0; -u_long fr_badcoalesces[2] = {0, 0}; -u_char ipf_iss_secret[32]; -#if defined(IPFILTER_DEFAULT_BLOCK) -int fr_pass = FR_BLOCK|FR_NOMATCH; -#else -int fr_pass = (IPF_DEFAULT_PASS)|FR_NOMATCH; -#endif -int fr_features = 0 -#ifdef IPFILTER_LKM - | IPF_FEAT_LKM -#endif -#ifdef IPFILTER_LOG - | IPF_FEAT_LOG -#endif -#ifdef IPFILTER_LOOKUP - | IPF_FEAT_LOOKUP -#endif -#ifdef IPFILTER_BPF - | IPF_FEAT_BPF -#endif -#ifdef IPFILTER_COMPILED - | IPF_FEAT_COMPILED -#endif -#ifdef IPFILTER_CKSUM - | IPF_FEAT_CKSUM -#endif -#ifdef IPFILTER_SYNC - | IPF_FEAT_SYNC -#endif -#ifdef IPFILTER_SCAN - | IPF_FEAT_SCAN +static INLINE int ipf_check_ipf __P((fr_info_t *, frentry_t *, int)); +static u_32_t ipf_checkcipso __P((fr_info_t *, u_char *, int)); +static u_32_t ipf_checkripso __P((u_char *)); +static u_32_t ipf_decaps __P((fr_info_t *, u_32_t, int)); +#ifdef IPFILTER_LOG +static frentry_t *ipf_dolog __P((fr_info_t *, u_32_t *)); #endif -#ifdef USE_INET6 - | IPF_FEAT_IPV6 +static int ipf_flushlist __P((ipf_main_softc_t *, int *, + frentry_t **)); +static int ipf_flush_groups __P((ipf_main_softc_t *, frgroup_t **, + int)); +static ipfunc_t ipf_findfunc __P((ipfunc_t)); +static void *ipf_findlookup __P((ipf_main_softc_t *, int, + frentry_t *, + i6addr_t *, i6addr_t *)); +static frentry_t *ipf_firewall __P((fr_info_t *, u_32_t *)); +static int ipf_fr_matcharray __P((fr_info_t *, int *)); +static int ipf_frruleiter __P((ipf_main_softc_t *, void *, int, + void *)); +static void ipf_funcfini __P((ipf_main_softc_t *, frentry_t *)); +static int ipf_funcinit __P((ipf_main_softc_t *, frentry_t *)); +static int ipf_geniter __P((ipf_main_softc_t *, ipftoken_t *, + ipfgeniter_t *)); +static void ipf_getstat __P((ipf_main_softc_t *, + struct friostat *, int)); +static int ipf_group_flush __P((ipf_main_softc_t *, frgroup_t *)); +static void ipf_group_free __P((frgroup_t *)); +static int ipf_grpmapfini __P((struct ipf_main_softc_s *, + frentry_t *)); +static int ipf_grpmapinit __P((struct ipf_main_softc_s *, + frentry_t *)); +static frentry_t *ipf_nextrule __P((ipf_main_softc_t *, int, int, + frentry_t *, int)); +static int ipf_portcheck __P((frpcmp_t *, u_32_t)); +static INLINE int ipf_pr_ah __P((fr_info_t *)); +static INLINE void ipf_pr_esp __P((fr_info_t *)); +static INLINE void ipf_pr_gre __P((fr_info_t *)); +static INLINE void ipf_pr_udp __P((fr_info_t *)); +static INLINE void ipf_pr_tcp __P((fr_info_t *)); +static INLINE void ipf_pr_icmp __P((fr_info_t *)); +static INLINE void ipf_pr_ipv4hdr __P((fr_info_t *)); +static INLINE void ipf_pr_short __P((fr_info_t *, int)); +static INLINE int ipf_pr_tcpcommon __P((fr_info_t *)); +static INLINE int ipf_pr_udpcommon __P((fr_info_t *)); +static void ipf_rule_delete __P((ipf_main_softc_t *, frentry_t *f, + int, int)); +static void ipf_rule_expire_insert __P((ipf_main_softc_t *, + frentry_t *, int)); +static int ipf_synclist __P((ipf_main_softc_t *, frentry_t *, + void *)); +static void ipf_token_flush __P((ipf_main_softc_t *)); +static void ipf_token_unlink __P((ipf_main_softc_t *, + ipftoken_t *)); +static ipftuneable_t *ipf_tune_findbyname __P((ipftuneable_t *, + const char *)); +static ipftuneable_t *ipf_tune_findbycookie __P((ipftuneable_t **, void *, + void **)); +static int ipf_updateipid __P((fr_info_t *)); +static int ipf_settimeout __P((struct ipf_main_softc_s *, + struct ipftuneable *, + ipftuneval_t *)); +#if !defined(_KERNEL) || (!defined(__NetBSD__) && !defined(__OpenBSD__) && \ + !defined(__FreeBSD__)) || \ + FREEBSD_LT_REV(501000) || NETBSD_LT_REV(105000000) || \ + OPENBSD_LT_REV(200006) +static int ppsratecheck(struct timeval *, int *, int); #endif - ; - -static INLINE int fr_ipfcheck __P((fr_info_t *, frentry_t *, int)); -static int fr_portcheck __P((frpcmp_t *, u_short *)); -static int frflushlist __P((int, minor_t, int *, frentry_t **)); -static ipfunc_t fr_findfunc __P((ipfunc_t)); -static frentry_t *fr_firewall __P((fr_info_t *, u_32_t *)); -static int fr_funcinit __P((frentry_t *fr)); -static INLINE void frpr_ah __P((fr_info_t *)); -static INLINE void frpr_esp __P((fr_info_t *)); -static INLINE void frpr_gre __P((fr_info_t *)); -static INLINE void frpr_udp __P((fr_info_t *)); -static INLINE void frpr_tcp __P((fr_info_t *)); -static INLINE void frpr_icmp __P((fr_info_t *)); -static INLINE void frpr_ipv4hdr __P((fr_info_t *)); -static INLINE int frpr_pullup __P((fr_info_t *, int)); -static INLINE void frpr_short __P((fr_info_t *, int)); -static INLINE int frpr_tcpcommon __P((fr_info_t *)); -static INLINE int frpr_udpcommon __P((fr_info_t *)); -static int fr_updateipid __P((fr_info_t *)); -#ifdef IPFILTER_LOOKUP -static int fr_grpmapinit __P((frentry_t *fr)); -static INLINE void *fr_resolvelookup __P((u_int, u_int, i6addr_t *, lookupfunc_t *)); -#endif -static void frsynclist __P((frentry_t *, void *)); -static ipftuneable_t *fr_findtunebyname __P((const char *)); -static ipftuneable_t *fr_findtunebycookie __P((void *, void **)); -static int ipf_geniter __P((ipftoken_t *, ipfgeniter_t *)); -static int ipf_frruleiter __P((void *, int, void *)); -static void ipf_unlinktoken __P((ipftoken_t *)); /* @@ -260,7 +225,7 @@ static void ipf_unlinktoken __P((ipftok * hand side to allow for binary searching of the array and include a trailer * with a 0 for the bitmask for linear searches to easily find the end with. */ -const struct optlist ipopts[20] = { +static const struct optlist ipopts[20] = { { IPOPT_NOP, 0x000001 }, { IPOPT_RR, 0x000002 }, { IPOPT_ZSU, 0x000004 }, @@ -284,7 +249,7 @@ const struct optlist ipopts[20] = { }; #ifdef USE_INET6 -struct optlist ip6exthdr[] = { +static struct optlist ip6exthdr[] = { { IPPROTO_HOPOPTS, 0x000001 }, { IPPROTO_IPV6, 0x000002 }, { IPPROTO_ROUTING, 0x000004 }, @@ -298,20 +263,10 @@ struct optlist ip6exthdr[] = { }; #endif -struct optlist tcpopts[] = { - { TCPOPT_NOP, 0x000001 }, - { TCPOPT_MAXSEG, 0x000002 }, - { TCPOPT_WINDOW, 0x000004 }, - { TCPOPT_SACK_PERMITTED, 0x000008 }, - { TCPOPT_SACK, 0x000010 }, - { TCPOPT_TIMESTAMP, 0x000020 }, - { 0, 0x000000 } -}; - /* * bit values for identifying presence of individual IP security options */ -const struct optlist secopt[8] = { +static const struct optlist secopt[8] = { { IPSO_CLASS_RES4, 0x01 }, { IPSO_CLASS_TOPS, 0x02 }, { IPSO_CLASS_SECR, 0x04 }, @@ -322,16 +277,143 @@ const struct optlist secopt[8] = { { IPSO_CLASS_RES1, 0x80 } }; +char ipfilter_version[] = IPL_VERSION; + +int ipf_features = 0 +#ifdef IPFILTER_LKM + | IPF_FEAT_LKM +#endif +#ifdef IPFILTER_LOG + | IPF_FEAT_LOG +#endif + | IPF_FEAT_LOOKUP +#ifdef IPFILTER_BPF + | IPF_FEAT_BPF +#endif +#ifdef IPFILTER_COMPILED + | IPF_FEAT_COMPILED +#endif +#ifdef IPFILTER_CKSUM + | IPF_FEAT_CKSUM +#endif + | IPF_FEAT_SYNC +#ifdef IPFILTER_SCAN + | IPF_FEAT_SCAN +#endif +#ifdef USE_INET6 + | IPF_FEAT_IPV6 +#endif + ; + /* * Table of functions available for use with call rules. */ -static ipfunc_resolve_t fr_availfuncs[] = { -#ifdef IPFILTER_LOOKUP - { "fr_srcgrpmap", fr_srcgrpmap, fr_grpmapinit }, - { "fr_dstgrpmap", fr_dstgrpmap, fr_grpmapinit }, -#endif - { "", NULL, NULL } +static ipfunc_resolve_t ipf_availfuncs[] = { + { "srcgrpmap", ipf_srcgrpmap, ipf_grpmapinit, ipf_grpmapfini }, + { "dstgrpmap", ipf_dstgrpmap, ipf_grpmapinit, ipf_grpmapfini }, + { "", NULL, NULL, NULL } +}; + +static ipftuneable_t ipf_main_tuneables[] = { + { { (void *)offsetof(struct ipf_main_softc_s, ipf_flags) }, + "ipf_flags", 0, 0xffffffff, + stsizeof(ipf_main_softc_t, ipf_flags), + 0, NULL, NULL }, + { { (void *)offsetof(struct ipf_main_softc_s, ipf_active) }, + "active", 0, 0, + stsizeof(ipf_main_softc_t, ipf_active), + IPFT_RDONLY, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_control_forwarding) }, + "control_forwarding", 0, 1, + stsizeof(ipf_main_softc_t, ipf_control_forwarding), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_update_ipid) }, + "update_ipid", 0, 1, + stsizeof(ipf_main_softc_t, ipf_update_ipid), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_chksrc) }, + "chksrc", 0, 1, + stsizeof(ipf_main_softc_t, ipf_chksrc), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_minttl) }, + "min_ttl", 0, 1, + stsizeof(ipf_main_softc_t, ipf_minttl), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_icmpminfragmtu) }, + "icmp_minfragmtu", 0, 1, + stsizeof(ipf_main_softc_t, ipf_icmpminfragmtu), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_pass) }, + "default_pass", 0, 0xffffffff, + stsizeof(ipf_main_softc_t, ipf_pass), + 0, NULL, NULL }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpidletimeout) }, + "tcp_idle_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpidletimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpclosewait) }, + "tcp_close_wait", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpclosewait), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcplastack) }, + "tcp_last_ack", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcplastack), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcptimeout) }, + "tcp_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcptimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpsynsent) }, + "tcp_syn_sent", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpsynsent), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpsynrecv) }, + "tcp_syn_received", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpsynrecv), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcpclosed) }, + "tcp_closed", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcpclosed), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcphalfclosed) }, + "tcp_half_closed", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcphalfclosed), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_tcptimewait) }, + "tcp_time_wait", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_tcptimewait), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_udptimeout) }, + "udp_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_udptimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_udpacktimeout) }, + "udp_ack_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_udpacktimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_icmptimeout) }, + "icmp_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_icmptimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_icmpacktimeout) }, + "icmp_ack_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_icmpacktimeout), + 0, NULL, ipf_settimeout }, + { { (void *)offsetof(ipf_main_softc_t, ipf_iptimeout) }, + "ip_timeout", 1, 0x7fffffff, + stsizeof(ipf_main_softc_t, ipf_iptimeout), + 0, NULL, ipf_settimeout }, +#if defined(INSTANCES) && defined(_KERNEL) + { { (void *)offsetof(ipf_main_softc_t, ipf_get_loopback) }, + "intercept_loopback", 0, 1, + stsizeof(ipf_main_softc_t, ipf_get_loopback), + 0, NULL, ipf_set_loopback }, +#endif + { { 0 }, + NULL, 0, 0, + 0, + 0, NULL, NULL } }; @@ -341,39 +423,41 @@ static ipfunc_resolve_t fr_availfuncs[] * current packet. There are different routines for the same protocol * for each of IPv4 and IPv6. Adding a new protocol, for which there * will "special" inspection for setup, is now more easily done by adding - * a new routine and expanding the frpr_ipinit*() function rather than by + * a new routine and expanding the ipf_pr_ipinit*() function rather than by * adding more code to a growing switch statement. */ #ifdef USE_INET6 -static INLINE int frpr_ah6 __P((fr_info_t *)); -static INLINE void frpr_esp6 __P((fr_info_t *)); -static INLINE void frpr_gre6 __P((fr_info_t *)); -static INLINE void frpr_udp6 __P((fr_info_t *)); -static INLINE void frpr_tcp6 __P((fr_info_t *)); -static INLINE void frpr_icmp6 __P((fr_info_t *)); -static INLINE int frpr_ipv6hdr __P((fr_info_t *)); -static INLINE void frpr_short6 __P((fr_info_t *, int)); -static INLINE int frpr_hopopts6 __P((fr_info_t *)); -static INLINE int frpr_mobility6 __P((fr_info_t *)); -static INLINE int frpr_routing6 __P((fr_info_t *)); -static INLINE int frpr_dstopts6 __P((fr_info_t *)); -static INLINE int frpr_fragment6 __P((fr_info_t *)); -static INLINE int frpr_ipv6exthdr __P((fr_info_t *, int, int)); +static INLINE int ipf_pr_ah6 __P((fr_info_t *)); +static INLINE void ipf_pr_esp6 __P((fr_info_t *)); +static INLINE void ipf_pr_gre6 __P((fr_info_t *)); +static INLINE void ipf_pr_udp6 __P((fr_info_t *)); +static INLINE void ipf_pr_tcp6 __P((fr_info_t *)); +static INLINE void ipf_pr_icmp6 __P((fr_info_t *)); +static INLINE void ipf_pr_ipv6hdr __P((fr_info_t *)); +static INLINE void ipf_pr_short6 __P((fr_info_t *, int)); +static INLINE int ipf_pr_hopopts6 __P((fr_info_t *)); +static INLINE int ipf_pr_mobility6 __P((fr_info_t *)); +static INLINE int ipf_pr_routing6 __P((fr_info_t *)); +static INLINE int ipf_pr_dstopts6 __P((fr_info_t *)); +static INLINE int ipf_pr_fragment6 __P((fr_info_t *)); +static INLINE struct ip6_ext *ipf_pr_ipv6exthdr __P((fr_info_t *, int, int)); /* ------------------------------------------------------------------------ */ -/* Function: frpr_short6 */ +/* Function: ipf_pr_short6 */ /* Returns: void */ -/* Parameters: fin(I) - pointer to packet information */ +/* Parameters: fin(I) - pointer to packet information */ +/* xmin(I) - minimum header size */ /* */ /* IPv6 Only */ /* This is function enforces the 'is a packet too short to be legit' rule */ /* for IPv6 and marks the packet with FI_SHORT if so. See function comment */ -/* for frpr_short() for more details. */ +/* for ipf_pr_short() for more details. */ /* ------------------------------------------------------------------------ */ -static INLINE void frpr_short6(fin, xmin) -fr_info_t *fin; -int xmin; +static INLINE void +ipf_pr_short6(fin, xmin) + fr_info_t *fin; + int xmin; { if (fin->fin_dlen < xmin) @@ -382,8 +466,8 @@ int xmin; /* ------------------------------------------------------------------------ */ -/* Function: frpr_ipv6hdr */ -/* Returns: int - 0 = IPv6 packet intact, -1 = packet lost */ +/* Function: ipf_pr_ipv6hdr */ +/* Returns: void */ /* Parameters: fin(I) - pointer to packet information */ /* */ /* IPv6 Only */ @@ -392,8 +476,9 @@ int xmin; /* analyzer may pullup or free the packet itself so we need to be vigiliant */ /* of that possibility arising. */ /* ------------------------------------------------------------------------ */ -static INLINE int frpr_ipv6hdr(fin) -fr_info_t *fin; +static INLINE void +ipf_pr_ipv6hdr(fin) + fr_info_t *fin; { ip6_t *ip6 = (ip6_t *)fin->fin_ip; int p, go = 1, i, hdrcount; @@ -407,57 +492,68 @@ fr_info_t *fin; fi->fi_auth = 0; p = ip6->ip6_nxt; + fin->fin_crc = p; fi->fi_ttl = ip6->ip6_hlim; fi->fi_src.in6 = ip6->ip6_src; + fin->fin_crc += fi->fi_src.i6[0]; + fin->fin_crc += fi->fi_src.i6[1]; + fin->fin_crc += fi->fi_src.i6[2]; + fin->fin_crc += fi->fi_src.i6[3]; fi->fi_dst.in6 = ip6->ip6_dst; - fin->fin_id = (u_short)(ip6->ip6_flow & 0xffff); + fin->fin_crc += fi->fi_dst.i6[0]; + fin->fin_crc += fi->fi_dst.i6[1]; + fin->fin_crc += fi->fi_dst.i6[2]; + fin->fin_crc += fi->fi_dst.i6[3]; + fin->fin_id = 0; + if (IN6_IS_ADDR_MULTICAST(&fi->fi_dst.in6)) + fin->fin_flx |= FI_MULTICAST|FI_MBCAST; hdrcount = 0; - while (go && !(fin->fin_flx & (FI_BAD|FI_SHORT))) { + while (go && !(fin->fin_flx & FI_SHORT)) { switch (p) { case IPPROTO_UDP : - frpr_udp6(fin); + ipf_pr_udp6(fin); go = 0; break; case IPPROTO_TCP : - frpr_tcp6(fin); + ipf_pr_tcp6(fin); go = 0; break; case IPPROTO_ICMPV6 : - frpr_icmp6(fin); + ipf_pr_icmp6(fin); go = 0; break; case IPPROTO_GRE : - frpr_gre6(fin); + ipf_pr_gre6(fin); go = 0; break; case IPPROTO_HOPOPTS : - p = frpr_hopopts6(fin); + p = ipf_pr_hopopts6(fin); break; case IPPROTO_MOBILITY : - p = frpr_mobility6(fin); + p = ipf_pr_mobility6(fin); break; case IPPROTO_DSTOPTS : - p = frpr_dstopts6(fin); + p = ipf_pr_dstopts6(fin); break; case IPPROTO_ROUTING : - p = frpr_routing6(fin); + p = ipf_pr_routing6(fin); break; case IPPROTO_AH : - p = frpr_ah6(fin); + p = ipf_pr_ah6(fin); break; case IPPROTO_ESP : - frpr_esp6(fin); + ipf_pr_esp6(fin); go = 0; break; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 14:28:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8458A8AE; Sun, 11 Aug 2013 14:28:49 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6EDD0278D; Sun, 11 Aug 2013 14:28:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BESnIA077377; Sun, 11 Aug 2013 14:28:49 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BESl93077363; Sun, 11 Aug 2013 14:28:47 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111428.r7BESl93077363@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:28:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254219 - vendor-sys/ipfilter/dist/netinet vendor/ipfilter/dist vendor/ipfilter/dist/4bsd vendor/ipfilter/dist/AIX vendor/ipfilter/dist/BSD vendor/ipfilter/dist/BSDOS vendor/ipfilter/di... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:28:49 -0000 Author: cy Date: Sun Aug 11 14:28:45 2013 New Revision: 254219 URL: http://svnweb.freebsd.org/changeset/base/254219 Log: Import IP-Filter 5.1.2 into vendor branches using the existing license that the current version of IP-Filter in FreeBSD is under as per email received from Darren Reed on Mon, 08 Jul 2013 23:54:16 +1000. Approved by: glebius (Mentor), Darren Reed Added: vendor/ipfilter/dist/4bsd/ vendor/ipfilter/dist/4bsd/conf.c.diffs vendor/ipfilter/dist/4bsd/files.diffs vendor/ipfilter/dist/4bsd/files.newconf.diffs vendor/ipfilter/dist/4bsd/files.oldconf.diffs vendor/ipfilter/dist/4bsd/filez.diffs vendor/ipfilter/dist/4bsd/ip_input.c.diffs vendor/ipfilter/dist/4bsd/ip_output.c.diffs vendor/ipfilter/dist/4bsd/kinstall (contents, props changed) vendor/ipfilter/dist/AIX/ vendor/ipfilter/dist/AIX/Makefile (contents, props changed) vendor/ipfilter/dist/AIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/AIX/aix_cfg_ipf.c vendor/ipfilter/dist/AIX/bootbits.sh (contents, props changed) vendor/ipfilter/dist/AIX/cpurev (contents, props changed) vendor/ipfilter/dist/AIX/ipfkext.exp vendor/ipfilter/dist/AIX/ipfkext.map vendor/ipfilter/dist/BSD/upgrade (contents, props changed) vendor/ipfilter/dist/BSDOS/ vendor/ipfilter/dist/BSDOS/files.diffs vendor/ipfilter/dist/BSDOS/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS/ip_input.c.diffs vendor/ipfilter/dist/BSDOS/ip_output.c.diffs vendor/ipfilter/dist/BSDOS/kinstall (contents, props changed) vendor/ipfilter/dist/BSDOS3/ vendor/ipfilter/dist/BSDOS3/OBJS/ vendor/ipfilter/dist/BSDOS3/OBJS/README vendor/ipfilter/dist/BSDOS3/OBJS/files vendor/ipfilter/dist/BSDOS3/OBJS/ioconf.c vendor/ipfilter/dist/BSDOS3/files.diffs vendor/ipfilter/dist/BSDOS3/in_proto.c.diffs vendor/ipfilter/dist/BSDOS3/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS3/ip_input.c.diffs vendor/ipfilter/dist/BSDOS3/ip_output.c.diffs vendor/ipfilter/dist/BSDOS3/kinstall vendor/ipfilter/dist/BSDOS3/unkinstall vendor/ipfilter/dist/BSDOS4/ vendor/ipfilter/dist/BSDOS4/files.diffs vendor/ipfilter/dist/BSDOS4/in_proto.c.diffs vendor/ipfilter/dist/BSDOS4/ioconf.c.i386.diffs vendor/ipfilter/dist/BSDOS4/ip_input.c.diffs vendor/ipfilter/dist/BSDOS4/ip_output.c.diffs vendor/ipfilter/dist/BSDOS4/kinstall vendor/ipfilter/dist/BSDOS4/unkinstall vendor/ipfilter/dist/HPUX/ vendor/ipfilter/dist/HPUX/INSTALL.TXT vendor/ipfilter/dist/HPUX/IPF-ALL/ vendor/ipfilter/dist/HPUX/IPF-ALL/checkinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/checkremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/description (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/postremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preinstall (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/preremove (contents, props changed) vendor/ipfilter/dist/HPUX/IPF-ALL/verify (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile (contents, props changed) vendor/ipfilter/dist/HPUX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/HPUX/cpurev (contents, props changed) vendor/ipfilter/dist/HPUX/ethers.c vendor/ipfilter/dist/HPUX/installmod (contents, props changed) vendor/ipfilter/dist/HPUX/ipf.psf.dist vendor/ipfilter/dist/HPUX/ipfboot vendor/ipfilter/dist/HPUX/ipfconf vendor/ipfilter/dist/HPUX/makeargs (contents, props changed) vendor/ipfilter/dist/HPUX/master vendor/ipfilter/dist/HPUX/space.h vendor/ipfilter/dist/HPUX/system vendor/ipfilter/dist/INSTALL.Tru64 vendor/ipfilter/dist/IRIX/ vendor/ipfilter/dist/IRIX/Makefile (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.common (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.ipsend.std (contents, props changed) vendor/ipfilter/dist/IRIX/Makefile.std (contents, props changed) vendor/ipfilter/dist/IRIX/cpurev (contents, props changed) vendor/ipfilter/dist/IRIX/getkflags (contents, props changed) vendor/ipfilter/dist/IRIX/getrev (contents, props changed) vendor/ipfilter/dist/IRIX/ipfboot vendor/ipfilter/dist/IRIX/ipl vendor/ipfilter/dist/Linux/ vendor/ipfilter/dist/Linux/Makefile (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/Linux/Makefile.kbuild (contents, props changed) vendor/ipfilter/dist/Linux/Tips_SuSE91.txt vendor/ipfilter/dist/Linux/howchkconfig (contents, props changed) vendor/ipfilter/dist/Linux/initscript vendor/ipfilter/dist/Linux/ipf-linux.h vendor/ipfilter/dist/Linux/ipfilter (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-redhat (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter-suse (contents, props changed) vendor/ipfilter/dist/Linux/ipfilter.spec.dist vendor/ipfilter/dist/Linux/linuxversion (contents, props changed) vendor/ipfilter/dist/Linux/minstall (contents, props changed) vendor/ipfilter/dist/Linux/mkinit (contents, props changed) vendor/ipfilter/dist/NetBSD/ vendor/ipfilter/dist/NetBSD-1.2/ vendor/ipfilter/dist/NetBSD-1.2/conf.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/files-PATCH vendor/ipfilter/dist/NetBSD-1.2/files.oldconf-PATCH vendor/ipfilter/dist/NetBSD-1.2/in_proto.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_input.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/ip_output.c-PATCH vendor/ipfilter/dist/NetBSD-1.2/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD-1.2/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/conf.c.diffs vendor/ipfilter/dist/NetBSD/conf.c.old.diffs vendor/ipfilter/dist/NetBSD/files.diffs vendor/ipfilter/dist/NetBSD/files.newconf.diffs vendor/ipfilter/dist/NetBSD/files.oldconf.diffs vendor/ipfilter/dist/NetBSD/filez.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.diffs vendor/ipfilter/dist/NetBSD/in_proto.c.old.diffs vendor/ipfilter/dist/NetBSD/ip_input.c.diffs vendor/ipfilter/dist/NetBSD/ip_output.c.diffs vendor/ipfilter/dist/NetBSD/kinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/minstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unkinstall (contents, props changed) vendor/ipfilter/dist/NetBSD/unminstall (contents, props changed) vendor/ipfilter/dist/OSF/ vendor/ipfilter/dist/OSF/Makefile (contents, props changed) vendor/ipfilter/dist/OSF/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/OSF/cpurev (contents, props changed) vendor/ipfilter/dist/OSF/ipfboot vendor/ipfilter/dist/OSF/sysconfigtab vendor/ipfilter/dist/OpenBSD/ vendor/ipfilter/dist/OpenBSD-2/ vendor/ipfilter/dist/OpenBSD-2/2.9-IPv6.diffs vendor/ipfilter/dist/OpenBSD-2/files.diffs vendor/ipfilter/dist/OpenBSD-2/ipf-fastroute.patch-2.7 vendor/ipfilter/dist/OpenBSD-2/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD-2/mknewipf.sh vendor/ipfilter/dist/OpenBSD-2/patch.1 vendor/ipfilter/dist/OpenBSD-2/unkinstall vendor/ipfilter/dist/OpenBSD-3/ vendor/ipfilter/dist/OpenBSD-3/3.0-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.0-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.1-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.2-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.3-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.4-sys-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-MAKEDEV-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-rc-diffs vendor/ipfilter/dist/OpenBSD-3/3.5-sys-diffs vendor/ipfilter/dist/OpenBSD-3/README.3_0 vendor/ipfilter/dist/OpenBSD-3/README.3_1 vendor/ipfilter/dist/OpenBSD-3/README.3_2 vendor/ipfilter/dist/OpenBSD-3/README.3_3 vendor/ipfilter/dist/OpenBSD-3/README.3_4 vendor/ipfilter/dist/OpenBSD-3/README.3_5 vendor/ipfilter/dist/OpenBSD-3/fixdist-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/fixdist-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.0 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.1 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.2 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.3 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.4 (contents, props changed) vendor/ipfilter/dist/OpenBSD-3/makedevs-3.5 (contents, props changed) vendor/ipfilter/dist/OpenBSD/files.diffs vendor/ipfilter/dist/OpenBSD/kinstall (contents, props changed) vendor/ipfilter/dist/OpenBSD/mknewipf.sh vendor/ipfilter/dist/OpenBSD/patch.1 vendor/ipfilter/dist/OpenBSD/unkinstall vendor/ipfilter/dist/SunOS4/ vendor/ipfilter/dist/SunOS4/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS4/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS4/conf.c.diff vendor/ipfilter/dist/SunOS4/files.cmn.diff vendor/ipfilter/dist/SunOS4/in_proto.c.diffs vendor/ipfilter/dist/SunOS4/kinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/minstall (contents, props changed) vendor/ipfilter/dist/SunOS4/mkroutes (contents, props changed) vendor/ipfilter/dist/SunOS4/rc.ipf (contents, props changed) vendor/ipfilter/dist/SunOS4/reload (contents, props changed) vendor/ipfilter/dist/SunOS4/unkinstall (contents, props changed) vendor/ipfilter/dist/SunOS4/unminstall (contents, props changed) vendor/ipfilter/dist/SunOS5/ vendor/ipfilter/dist/SunOS5/Makefile (contents, props changed) vendor/ipfilter/dist/SunOS5/Makefile.ipsend (contents, props changed) vendor/ipfilter/dist/SunOS5/copyright vendor/ipfilter/dist/SunOS5/depend vendor/ipfilter/dist/SunOS5/ipf.conf vendor/ipfilter/dist/SunOS5/ipfboot vendor/ipfilter/dist/SunOS5/makeargs (contents, props changed) vendor/ipfilter/dist/SunOS5/mblk_misc.c vendor/ipfilter/dist/SunOS5/pkginfo vendor/ipfilter/dist/SunOS5/postinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/postremove (contents, props changed) vendor/ipfilter/dist/SunOS5/preremove (contents, props changed) vendor/ipfilter/dist/SunOS5/prototype vendor/ipfilter/dist/SunOS5/prototype32 vendor/ipfilter/dist/SunOS5/prototype64 vendor/ipfilter/dist/SunOS5/prototype_amd64 vendor/ipfilter/dist/SunOS5/prototype_ia32 vendor/ipfilter/dist/SunOS5/replace (contents, props changed) vendor/ipfilter/dist/SunOS5/solinstall (contents, props changed) vendor/ipfilter/dist/SunOS5/uninstall (contents, props changed) vendor/ipfilter/dist/WhatsNew50.txt vendor/ipfilter/dist/arc4random.c vendor/ipfilter/dist/hpux.c vendor/ipfilter/dist/ip_dns_pxy.c vendor/ipfilter/dist/ip_dstlist.c vendor/ipfilter/dist/ip_dstlist.h vendor/ipfilter/dist/ip_fil_aix.c vendor/ipfilter/dist/ip_fil_compat.c vendor/ipfilter/dist/ip_fil_hpux.c vendor/ipfilter/dist/ip_fil_irix.c vendor/ipfilter/dist/ip_fil_linux.c vendor/ipfilter/dist/ip_fil_netbsd.c vendor/ipfilter/dist/ip_fil_openbsd.c vendor/ipfilter/dist/ip_fil_osf.c vendor/ipfilter/dist/ip_fil_solaris.c vendor/ipfilter/dist/ip_fil_sunos4.c vendor/ipfilter/dist/ip_nat6.c vendor/ipfilter/dist/ip_tftp_pxy.c vendor/ipfilter/dist/ipf_rb.h vendor/ipfilter/dist/lib/allocmbt.c vendor/ipfilter/dist/lib/assigndefined.c vendor/ipfilter/dist/lib/connecttcp.c vendor/ipfilter/dist/lib/dupmbt.c vendor/ipfilter/dist/lib/familyname.c vendor/ipfilter/dist/lib/findword.c vendor/ipfilter/dist/lib/freembt.c vendor/ipfilter/dist/lib/ftov.c vendor/ipfilter/dist/lib/geticmptype.c vendor/ipfilter/dist/lib/icmptypename.c vendor/ipfilter/dist/lib/icmptypes.c vendor/ipfilter/dist/lib/interror.c vendor/ipfilter/dist/lib/ipf_perror.c vendor/ipfilter/dist/lib/load_dstlist.c vendor/ipfilter/dist/lib/load_dstlistnode.c vendor/ipfilter/dist/lib/mb_hexdump.c vendor/ipfilter/dist/lib/msgdsize.c vendor/ipfilter/dist/lib/parsefields.c vendor/ipfilter/dist/lib/parseipfexpr.c vendor/ipfilter/dist/lib/parsewhoisline.c vendor/ipfilter/dist/lib/poolio.c vendor/ipfilter/dist/lib/prependmbt.c vendor/ipfilter/dist/lib/printactiveaddr.c vendor/ipfilter/dist/lib/printaddr.c vendor/ipfilter/dist/lib/printdstl_live.c vendor/ipfilter/dist/lib/printdstlist.c vendor/ipfilter/dist/lib/printdstlistdata.c vendor/ipfilter/dist/lib/printdstlistnode.c vendor/ipfilter/dist/lib/printdstlistpolicy.c vendor/ipfilter/dist/lib/printfieldhdr.c vendor/ipfilter/dist/lib/printhost.c vendor/ipfilter/dist/lib/printipfexpr.c vendor/ipfilter/dist/lib/printiphdr.c vendor/ipfilter/dist/lib/printlookup.c vendor/ipfilter/dist/lib/printnataddr.c vendor/ipfilter/dist/lib/printnatfield.c vendor/ipfilter/dist/lib/printnatside.c vendor/ipfilter/dist/lib/printpoolfield.c vendor/ipfilter/dist/lib/printstatefields.c vendor/ipfilter/dist/lib/printtcpflags.c vendor/ipfilter/dist/lib/printunit.c vendor/ipfilter/dist/lib/save_execute.c vendor/ipfilter/dist/lib/save_file.c vendor/ipfilter/dist/lib/save_nothing.c vendor/ipfilter/dist/lib/save_syslog.c vendor/ipfilter/dist/lib/save_v1trap.c vendor/ipfilter/dist/lib/save_v2trap.c vendor/ipfilter/dist/lib/vtof.c vendor/ipfilter/dist/linux.c vendor/ipfilter/dist/mln_rule.c vendor/ipfilter/dist/mlo_ipl.c vendor/ipfilter/dist/mlo_rule.c vendor/ipfilter/dist/mls_rule.c vendor/ipfilter/dist/mlso_rule.c vendor/ipfilter/dist/radix_ipf.c vendor/ipfilter/dist/sys/ vendor/ipfilter/dist/sys/tree.h vendor/ipfilter/dist/test/e4to6 vendor/ipfilter/dist/test/expected/.cvsignore vendor/ipfilter/dist/test/expected/f21 vendor/ipfilter/dist/test/expected/f22 vendor/ipfilter/dist/test/expected/f25 vendor/ipfilter/dist/test/expected/f26 vendor/ipfilter/dist/test/expected/f27 vendor/ipfilter/dist/test/expected/f28 vendor/ipfilter/dist/test/expected/f29 vendor/ipfilter/dist/test/expected/f30 vendor/ipfilter/dist/test/expected/i22 vendor/ipfilter/dist/test/expected/i23 vendor/ipfilter/dist/test/expected/in100 vendor/ipfilter/dist/test/expected/in101 vendor/ipfilter/dist/test/expected/in102 vendor/ipfilter/dist/test/expected/in7 vendor/ipfilter/dist/test/expected/ip3 vendor/ipfilter/dist/test/expected/ipv6.4 vendor/ipfilter/dist/test/expected/n100 vendor/ipfilter/dist/test/expected/n101 vendor/ipfilter/dist/test/expected/n102 vendor/ipfilter/dist/test/expected/n103 vendor/ipfilter/dist/test/expected/n104 vendor/ipfilter/dist/test/expected/n105 vendor/ipfilter/dist/test/expected/n106 vendor/ipfilter/dist/test/expected/n11_6 vendor/ipfilter/dist/test/expected/n12_6 vendor/ipfilter/dist/test/expected/n13_6 vendor/ipfilter/dist/test/expected/n14_6 vendor/ipfilter/dist/test/expected/n15 vendor/ipfilter/dist/test/expected/n15_6 vendor/ipfilter/dist/test/expected/n17 vendor/ipfilter/dist/test/expected/n18 vendor/ipfilter/dist/test/expected/n1_6 vendor/ipfilter/dist/test/expected/n200 vendor/ipfilter/dist/test/expected/n2_6 vendor/ipfilter/dist/test/expected/n4_6 vendor/ipfilter/dist/test/expected/n5_6 vendor/ipfilter/dist/test/expected/n6_6 vendor/ipfilter/dist/test/expected/n7_6 vendor/ipfilter/dist/test/expected/n8_6 vendor/ipfilter/dist/test/expected/n9_6 vendor/ipfilter/dist/test/expected/ni17 vendor/ipfilter/dist/test/expected/ni18 vendor/ipfilter/dist/test/expected/p10 vendor/ipfilter/dist/test/expected/p11 vendor/ipfilter/dist/test/expected/p12 vendor/ipfilter/dist/test/expected/p13 vendor/ipfilter/dist/test/expected/p4 vendor/ipfilter/dist/test/expected/p6 vendor/ipfilter/dist/test/expected/p7 vendor/ipfilter/dist/test/expected/p9 vendor/ipfilter/dist/test/h4to6 vendor/ipfilter/dist/test/i4to6 vendor/ipfilter/dist/test/input/f21 vendor/ipfilter/dist/test/input/f22 vendor/ipfilter/dist/test/input/f25 vendor/ipfilter/dist/test/input/f26 vendor/ipfilter/dist/test/input/f27 vendor/ipfilter/dist/test/input/f28 vendor/ipfilter/dist/test/input/f29 vendor/ipfilter/dist/test/input/f30 vendor/ipfilter/dist/test/input/ipv6.4 vendor/ipfilter/dist/test/input/n100 vendor/ipfilter/dist/test/input/n101 vendor/ipfilter/dist/test/input/n102 vendor/ipfilter/dist/test/input/n103 vendor/ipfilter/dist/test/input/n104 vendor/ipfilter/dist/test/input/n105 vendor/ipfilter/dist/test/input/n106 vendor/ipfilter/dist/test/input/n10_6 vendor/ipfilter/dist/test/input/n11_6 vendor/ipfilter/dist/test/input/n12_6 vendor/ipfilter/dist/test/input/n13_6 vendor/ipfilter/dist/test/input/n14_6 vendor/ipfilter/dist/test/input/n15 vendor/ipfilter/dist/test/input/n15_6 vendor/ipfilter/dist/test/input/n17 vendor/ipfilter/dist/test/input/n17_6 vendor/ipfilter/dist/test/input/n18 vendor/ipfilter/dist/test/input/n1_6 vendor/ipfilter/dist/test/input/n200 vendor/ipfilter/dist/test/input/n2_6 vendor/ipfilter/dist/test/input/n4_6 vendor/ipfilter/dist/test/input/n5_6 vendor/ipfilter/dist/test/input/n6_6 vendor/ipfilter/dist/test/input/n7_6 vendor/ipfilter/dist/test/input/n8_6 vendor/ipfilter/dist/test/input/n9_6 vendor/ipfilter/dist/test/input/ni18 vendor/ipfilter/dist/test/input/p10 vendor/ipfilter/dist/test/input/p11 vendor/ipfilter/dist/test/input/p12 vendor/ipfilter/dist/test/input/p13 vendor/ipfilter/dist/test/input/p4 vendor/ipfilter/dist/test/input/p6 vendor/ipfilter/dist/test/input/p7 vendor/ipfilter/dist/test/input/p9 vendor/ipfilter/dist/test/ipflib.sh vendor/ipfilter/dist/test/regress/f21 vendor/ipfilter/dist/test/regress/f22 vendor/ipfilter/dist/test/regress/f25 vendor/ipfilter/dist/test/regress/f26 vendor/ipfilter/dist/test/regress/f27 vendor/ipfilter/dist/test/regress/f28.ipf vendor/ipfilter/dist/test/regress/f28.pool vendor/ipfilter/dist/test/regress/f29.ipf vendor/ipfilter/dist/test/regress/f29.pool vendor/ipfilter/dist/test/regress/f30 vendor/ipfilter/dist/test/regress/i22 vendor/ipfilter/dist/test/regress/i23 vendor/ipfilter/dist/test/regress/in100 vendor/ipfilter/dist/test/regress/in101 vendor/ipfilter/dist/test/regress/in102 vendor/ipfilter/dist/test/regress/in7 vendor/ipfilter/dist/test/regress/ip3 vendor/ipfilter/dist/test/regress/ipv6.4 vendor/ipfilter/dist/test/regress/n100 vendor/ipfilter/dist/test/regress/n101 vendor/ipfilter/dist/test/regress/n102 vendor/ipfilter/dist/test/regress/n103 vendor/ipfilter/dist/test/regress/n104 vendor/ipfilter/dist/test/regress/n105 vendor/ipfilter/dist/test/regress/n106 vendor/ipfilter/dist/test/regress/n10_6 vendor/ipfilter/dist/test/regress/n11_6 vendor/ipfilter/dist/test/regress/n12_6 vendor/ipfilter/dist/test/regress/n13_6 vendor/ipfilter/dist/test/regress/n14_6 vendor/ipfilter/dist/test/regress/n15 vendor/ipfilter/dist/test/regress/n15_6 vendor/ipfilter/dist/test/regress/n16_6 vendor/ipfilter/dist/test/regress/n17 vendor/ipfilter/dist/test/regress/n17_6 vendor/ipfilter/dist/test/regress/n18 vendor/ipfilter/dist/test/regress/n1_6 vendor/ipfilter/dist/test/regress/n200 vendor/ipfilter/dist/test/regress/n2_6 vendor/ipfilter/dist/test/regress/n4_6 vendor/ipfilter/dist/test/regress/n5_6 vendor/ipfilter/dist/test/regress/n6_6 vendor/ipfilter/dist/test/regress/n7_6 vendor/ipfilter/dist/test/regress/n8_6 vendor/ipfilter/dist/test/regress/n9_6 vendor/ipfilter/dist/test/regress/ni17.ipf vendor/ipfilter/dist/test/regress/ni18.ipf vendor/ipfilter/dist/test/regress/ni18.nat vendor/ipfilter/dist/test/regress/p10.nat vendor/ipfilter/dist/test/regress/p10.pool vendor/ipfilter/dist/test/regress/p11.nat vendor/ipfilter/dist/test/regress/p11.pool vendor/ipfilter/dist/test/regress/p12.nat vendor/ipfilter/dist/test/regress/p12.pool vendor/ipfilter/dist/test/regress/p13.ipf vendor/ipfilter/dist/test/regress/p13.pool vendor/ipfilter/dist/test/regress/p4.nat vendor/ipfilter/dist/test/regress/p4.pool vendor/ipfilter/dist/test/regress/p6.ipf vendor/ipfilter/dist/test/regress/p6.pool vendor/ipfilter/dist/test/regress/p6.whois vendor/ipfilter/dist/test/regress/p7.nat vendor/ipfilter/dist/test/regress/p7.pool vendor/ipfilter/dist/test/regress/p9.nat vendor/ipfilter/dist/test/regress/p9.pool vendor/ipfilter/dist/tools/ipfsyncd.c vendor/ipfilter/dist/tru64.c Deleted: vendor/ipfilter/dist/BSD/.cvsignore vendor/ipfilter/dist/FWTK/FWTK.sed vendor/ipfilter/dist/FWTK/fwtk-2.1-transparency.txt vendor/ipfilter/dist/FWTK/tproxy.diff vendor/ipfilter/dist/FreeBSD-4.0/ipv6-patch vendor/ipfilter/dist/QNX_OCL.txt vendor/ipfilter/dist/UPGRADE_NOTICE vendor/ipfilter/dist/bpf-ipf.h vendor/ipfilter/dist/bpf.h vendor/ipfilter/dist/bpf_filter.c vendor/ipfilter/dist/buildlinux vendor/ipfilter/dist/common.c vendor/ipfilter/dist/etc/etc.sed vendor/ipfilter/dist/facpri.c vendor/ipfilter/dist/facpri.h vendor/ipfilter/dist/fils.c vendor/ipfilter/dist/inet_addr.c vendor/ipfilter/dist/ip_h323_pxy.c vendor/ipfilter/dist/ip_lfil.c vendor/ipfilter/dist/ip_msnrpc_pxy.c vendor/ipfilter/dist/ip_sfil.c vendor/ipfilter/dist/ipf.c vendor/ipfilter/dist/ipfs.c vendor/ipfilter/dist/ipft_ef.c vendor/ipfilter/dist/ipft_hx.c vendor/ipfilter/dist/ipft_pc.c vendor/ipfilter/dist/ipft_sn.c vendor/ipfilter/dist/ipft_td.c vendor/ipfilter/dist/ipft_tx.c vendor/ipfilter/dist/ipl_ldev.c vendor/ipfilter/dist/iplang/.cvsignore vendor/ipfilter/dist/ipmon.c vendor/ipfilter/dist/ipnat.c vendor/ipfilter/dist/ipsd/ip_compat.h vendor/ipfilter/dist/ipsd/ipsd.sed vendor/ipfilter/dist/ipsend/.cvsignore vendor/ipfilter/dist/ipsend/README vendor/ipfilter/dist/ipsend/hpux.c vendor/ipfilter/dist/ipsend/in_var.h vendor/ipfilter/dist/ipsend/ip_compat.h vendor/ipfilter/dist/ipsend/ip_var.h vendor/ipfilter/dist/ipsend/ipsend.sed vendor/ipfilter/dist/ipsend/tcpip.h vendor/ipfilter/dist/ipsend/ultrix.c vendor/ipfilter/dist/ipt.c vendor/ipfilter/dist/kmem.c vendor/ipfilter/dist/lib/addkeep.c vendor/ipfilter/dist/lib/extras.c vendor/ipfilter/dist/lib/getline.c vendor/ipfilter/dist/lib/hexdump.c vendor/ipfilter/dist/lib/hostmask.c vendor/ipfilter/dist/lib/hostnum.c vendor/ipfilter/dist/lib/inet_addr.c vendor/ipfilter/dist/lib/ipft_ef.c vendor/ipfilter/dist/lib/ipft_sn.c vendor/ipfilter/dist/lib/ipft_td.c vendor/ipfilter/dist/lib/loglevel.c vendor/ipfilter/dist/lib/make_range.c vendor/ipfilter/dist/lib/natparse.c vendor/ipfilter/dist/lib/parse.c vendor/ipfilter/dist/lib/portnum.c vendor/ipfilter/dist/lib/ports.c vendor/ipfilter/dist/lib/ratoi.c vendor/ipfilter/dist/lib/ratoui.c vendor/ipfilter/dist/lib/tcp_flags.c vendor/ipfilter/dist/lib/to_interface.c vendor/ipfilter/dist/man/ipf.1 vendor/ipfilter/dist/man/ipnat.1 vendor/ipfilter/dist/man/man.sed vendor/ipfilter/dist/misc.c vendor/ipfilter/dist/natparse.c vendor/ipfilter/dist/net/.cvsignore vendor/ipfilter/dist/opt.c vendor/ipfilter/dist/opt_inet6.h vendor/ipfilter/dist/parse.c vendor/ipfilter/dist/pcap.h vendor/ipfilter/dist/printnat.c vendor/ipfilter/dist/printstate.c vendor/ipfilter/dist/radix.c vendor/ipfilter/dist/relay.c vendor/ipfilter/dist/rules/.cvsignore vendor/ipfilter/dist/rules/rules.sed vendor/ipfilter/dist/samples/.cvsignore vendor/ipfilter/dist/test/expected/1 vendor/ipfilter/dist/test/expected/10 vendor/ipfilter/dist/test/expected/11 vendor/ipfilter/dist/test/expected/12 vendor/ipfilter/dist/test/expected/14 vendor/ipfilter/dist/test/expected/2 vendor/ipfilter/dist/test/expected/3 vendor/ipfilter/dist/test/expected/4 vendor/ipfilter/dist/test/expected/5 vendor/ipfilter/dist/test/expected/6 vendor/ipfilter/dist/test/expected/7 vendor/ipfilter/dist/test/expected/8 vendor/ipfilter/dist/test/expected/9 vendor/ipfilter/dist/test/expected/expected.sed vendor/ipfilter/dist/test/expected/i19 vendor/ipfilter/dist/test/hextest vendor/ipfilter/dist/test/input/1 vendor/ipfilter/dist/test/input/10 vendor/ipfilter/dist/test/input/11 vendor/ipfilter/dist/test/input/12 vendor/ipfilter/dist/test/input/13 vendor/ipfilter/dist/test/input/14 vendor/ipfilter/dist/test/input/2 vendor/ipfilter/dist/test/input/3 vendor/ipfilter/dist/test/input/4 vendor/ipfilter/dist/test/input/5 vendor/ipfilter/dist/test/input/6 vendor/ipfilter/dist/test/input/7 vendor/ipfilter/dist/test/input/8 vendor/ipfilter/dist/test/input/9 vendor/ipfilter/dist/test/input/input.sed vendor/ipfilter/dist/test/input/ipf6-1 vendor/ipfilter/dist/test/mhtest vendor/ipfilter/dist/test/regress/1 vendor/ipfilter/dist/test/regress/10 vendor/ipfilter/dist/test/regress/11 vendor/ipfilter/dist/test/regress/12 vendor/ipfilter/dist/test/regress/13 vendor/ipfilter/dist/test/regress/14 vendor/ipfilter/dist/test/regress/2 vendor/ipfilter/dist/test/regress/3 vendor/ipfilter/dist/test/regress/4 vendor/ipfilter/dist/test/regress/5 vendor/ipfilter/dist/test/regress/6 vendor/ipfilter/dist/test/regress/7 vendor/ipfilter/dist/test/regress/8 vendor/ipfilter/dist/test/regress/9 vendor/ipfilter/dist/test/regress/ipf6-1 vendor/ipfilter/dist/test/regress/regress.sed vendor/ipfilter/dist/test/test.sed Modified: vendor/ipfilter/dist/.cvsignore vendor/ipfilter/dist/BNF vendor/ipfilter/dist/BSD/Makefile vendor/ipfilter/dist/BSD/Makefile.ipsend vendor/ipfilter/dist/BSD/ipfadm-rcd vendor/ipfilter/dist/BSD/kupgrade vendor/ipfilter/dist/FAQ.FreeBSD vendor/ipfilter/dist/FWTK/ftp-gw.diff vendor/ipfilter/dist/FWTK/fwtk_transparent.diff vendor/ipfilter/dist/FreeBSD-2.2/kinstall vendor/ipfilter/dist/FreeBSD-3/INST.FreeBSD-3 vendor/ipfilter/dist/FreeBSD-3/kinstall vendor/ipfilter/dist/FreeBSD-4.0/INST.FreeBSD-4 vendor/ipfilter/dist/FreeBSD-4.0/kinstall vendor/ipfilter/dist/FreeBSD/kinstall vendor/ipfilter/dist/HISTORY vendor/ipfilter/dist/INSTALL.FreeBSD vendor/ipfilter/dist/INSTALL.IRIX vendor/ipfilter/dist/INSTALL.Linux vendor/ipfilter/dist/INSTALL.Sol2 vendor/ipfilter/dist/Makefile vendor/ipfilter/dist/NAT.FreeBSD vendor/ipfilter/dist/buildsunos vendor/ipfilter/dist/etc/protocols vendor/ipfilter/dist/etc/services vendor/ipfilter/dist/fil.c vendor/ipfilter/dist/ip_auth.c vendor/ipfilter/dist/ip_auth.h vendor/ipfilter/dist/ip_compat.h vendor/ipfilter/dist/ip_fil.c vendor/ipfilter/dist/ip_fil.h vendor/ipfilter/dist/ip_fil_freebsd.c vendor/ipfilter/dist/ip_frag.c vendor/ipfilter/dist/ip_frag.h vendor/ipfilter/dist/ip_ftp_pxy.c vendor/ipfilter/dist/ip_htable.c vendor/ipfilter/dist/ip_htable.h vendor/ipfilter/dist/ip_ipsec_pxy.c vendor/ipfilter/dist/ip_irc_pxy.c vendor/ipfilter/dist/ip_log.c vendor/ipfilter/dist/ip_lookup.c vendor/ipfilter/dist/ip_lookup.h vendor/ipfilter/dist/ip_nat.c vendor/ipfilter/dist/ip_nat.h vendor/ipfilter/dist/ip_netbios_pxy.c vendor/ipfilter/dist/ip_pool.c vendor/ipfilter/dist/ip_pool.h vendor/ipfilter/dist/ip_pptp_pxy.c vendor/ipfilter/dist/ip_proxy.c vendor/ipfilter/dist/ip_proxy.h vendor/ipfilter/dist/ip_raudio_pxy.c vendor/ipfilter/dist/ip_rcmd_pxy.c vendor/ipfilter/dist/ip_rpcb_pxy.c vendor/ipfilter/dist/ip_scan.c vendor/ipfilter/dist/ip_scan.h vendor/ipfilter/dist/ip_state.c vendor/ipfilter/dist/ip_state.h vendor/ipfilter/dist/ip_sync.c vendor/ipfilter/dist/ip_sync.h vendor/ipfilter/dist/ipf.h vendor/ipfilter/dist/ipl.h vendor/ipfilter/dist/iplang/Makefile vendor/ipfilter/dist/iplang/iplang.h vendor/ipfilter/dist/iplang/iplang.tst vendor/ipfilter/dist/iplang/iplang_l.l vendor/ipfilter/dist/iplang/iplang_y.y vendor/ipfilter/dist/ipmon.h vendor/ipfilter/dist/ipsd/Makefile vendor/ipfilter/dist/ipsd/ipsd.c vendor/ipfilter/dist/ipsd/ipsdr.c vendor/ipfilter/dist/ipsd/linux.h vendor/ipfilter/dist/ipsd/sbpf.c vendor/ipfilter/dist/ipsd/sdlpi.c vendor/ipfilter/dist/ipsd/slinux.c vendor/ipfilter/dist/ipsd/snit.c vendor/ipfilter/dist/ipsend/44arp.c vendor/ipfilter/dist/ipsend/Makefile vendor/ipfilter/dist/ipsend/arp.c vendor/ipfilter/dist/ipsend/dlcommon.c vendor/ipfilter/dist/ipsend/ip.c vendor/ipfilter/dist/ipsend/ipresend.c vendor/ipfilter/dist/ipsend/ipsend.5 vendor/ipfilter/dist/ipsend/ipsend.c vendor/ipfilter/dist/ipsend/ipsend.h vendor/ipfilter/dist/ipsend/ipsopt.c vendor/ipfilter/dist/ipsend/iptest.c vendor/ipfilter/dist/ipsend/iptests.c vendor/ipfilter/dist/ipsend/larp.c vendor/ipfilter/dist/ipsend/linux.h vendor/ipfilter/dist/ipsend/lsock.c vendor/ipfilter/dist/ipsend/resend.c vendor/ipfilter/dist/ipsend/sbpf.c vendor/ipfilter/dist/ipsend/sdlpi.c vendor/ipfilter/dist/ipsend/sirix.c vendor/ipfilter/dist/ipsend/slinux.c vendor/ipfilter/dist/ipsend/snit.c vendor/ipfilter/dist/ipsend/sock.c vendor/ipfilter/dist/ipt.h vendor/ipfilter/dist/kmem.h vendor/ipfilter/dist/l4check/Makefile vendor/ipfilter/dist/l4check/l4check.c vendor/ipfilter/dist/lib/Makefile vendor/ipfilter/dist/lib/addicmp.c vendor/ipfilter/dist/lib/addipopt.c vendor/ipfilter/dist/lib/alist_free.c vendor/ipfilter/dist/lib/alist_new.c vendor/ipfilter/dist/lib/bcopywrap.c vendor/ipfilter/dist/lib/binprint.c vendor/ipfilter/dist/lib/buildopts.c vendor/ipfilter/dist/lib/checkrev.c vendor/ipfilter/dist/lib/count4bits.c vendor/ipfilter/dist/lib/count6bits.c vendor/ipfilter/dist/lib/debug.c vendor/ipfilter/dist/lib/facpri.c vendor/ipfilter/dist/lib/facpri.h vendor/ipfilter/dist/lib/fill6bits.c vendor/ipfilter/dist/lib/flags.c vendor/ipfilter/dist/lib/genmask.c vendor/ipfilter/dist/lib/gethost.c vendor/ipfilter/dist/lib/getifname.c vendor/ipfilter/dist/lib/getnattype.c vendor/ipfilter/dist/lib/getport.c vendor/ipfilter/dist/lib/getportproto.c vendor/ipfilter/dist/lib/getproto.c vendor/ipfilter/dist/lib/getsumd.c vendor/ipfilter/dist/lib/hostname.c vendor/ipfilter/dist/lib/icmpcode.c vendor/ipfilter/dist/lib/initparse.c vendor/ipfilter/dist/lib/ionames.c vendor/ipfilter/dist/lib/ipf_dotuning.c vendor/ipfilter/dist/lib/ipft_hx.c vendor/ipfilter/dist/lib/ipft_pc.c vendor/ipfilter/dist/lib/ipft_tx.c vendor/ipfilter/dist/lib/ipoptsec.c vendor/ipfilter/dist/lib/kmem.c vendor/ipfilter/dist/lib/kmem.h vendor/ipfilter/dist/lib/kmemcpywrap.c vendor/ipfilter/dist/lib/kvatoname.c vendor/ipfilter/dist/lib/load_file.c vendor/ipfilter/dist/lib/load_hash.c vendor/ipfilter/dist/lib/load_hashnode.c vendor/ipfilter/dist/lib/load_http.c vendor/ipfilter/dist/lib/load_pool.c vendor/ipfilter/dist/lib/load_poolnode.c vendor/ipfilter/dist/lib/load_url.c vendor/ipfilter/dist/lib/mutex_emul.c vendor/ipfilter/dist/lib/nametokva.c vendor/ipfilter/dist/lib/nat_setgroupmap.c vendor/ipfilter/dist/lib/ntomask.c vendor/ipfilter/dist/lib/optname.c vendor/ipfilter/dist/lib/optprint.c vendor/ipfilter/dist/lib/optprintv6.c vendor/ipfilter/dist/lib/optvalue.c vendor/ipfilter/dist/lib/portname.c vendor/ipfilter/dist/lib/print_toif.c vendor/ipfilter/dist/lib/printactivenat.c vendor/ipfilter/dist/lib/printaps.c vendor/ipfilter/dist/lib/printbuf.c vendor/ipfilter/dist/lib/printfr.c vendor/ipfilter/dist/lib/printfraginfo.c vendor/ipfilter/dist/lib/printhash.c vendor/ipfilter/dist/lib/printhash_live.c vendor/ipfilter/dist/lib/printhashdata.c vendor/ipfilter/dist/lib/printhashnode.c vendor/ipfilter/dist/lib/printhostmap.c vendor/ipfilter/dist/lib/printhostmask.c vendor/ipfilter/dist/lib/printifname.c vendor/ipfilter/dist/lib/printip.c vendor/ipfilter/dist/lib/printlog.c vendor/ipfilter/dist/lib/printmask.c vendor/ipfilter/dist/lib/printnat.c vendor/ipfilter/dist/lib/printpacket.c vendor/ipfilter/dist/lib/printpacket6.c vendor/ipfilter/dist/lib/printpool.c vendor/ipfilter/dist/lib/printpool_live.c vendor/ipfilter/dist/lib/printpooldata.c vendor/ipfilter/dist/lib/printpoolnode.c vendor/ipfilter/dist/lib/printportcmp.c vendor/ipfilter/dist/lib/printproto.c vendor/ipfilter/dist/lib/printsbuf.c vendor/ipfilter/dist/lib/printstate.c vendor/ipfilter/dist/lib/printtqtable.c vendor/ipfilter/dist/lib/printtunable.c vendor/ipfilter/dist/lib/remove_hash.c vendor/ipfilter/dist/lib/remove_hashnode.c vendor/ipfilter/dist/lib/remove_pool.c vendor/ipfilter/dist/lib/remove_poolnode.c vendor/ipfilter/dist/lib/resetlexer.c vendor/ipfilter/dist/lib/rwlock_emul.c vendor/ipfilter/dist/lib/tcpflags.c vendor/ipfilter/dist/lib/tcpoptnames.c vendor/ipfilter/dist/lib/v6ionames.c vendor/ipfilter/dist/lib/v6optvalue.c vendor/ipfilter/dist/lib/var.c vendor/ipfilter/dist/lib/verbose.c vendor/ipfilter/dist/linux.h vendor/ipfilter/dist/man/Makefile vendor/ipfilter/dist/man/ipf.4 vendor/ipfilter/dist/man/ipf.5 vendor/ipfilter/dist/man/ipfilter.4 vendor/ipfilter/dist/man/ipfilter.4.mandoc vendor/ipfilter/dist/man/ipfstat.8 vendor/ipfilter/dist/man/ipftest.1 vendor/ipfilter/dist/man/ipmon.5 vendor/ipfilter/dist/man/ipmon.8 vendor/ipfilter/dist/man/ipnat.4 vendor/ipfilter/dist/man/ipnat.5 vendor/ipfilter/dist/man/ipnat.8 vendor/ipfilter/dist/man/ippool.5 vendor/ipfilter/dist/man/ippool.8 vendor/ipfilter/dist/md5.c vendor/ipfilter/dist/mkfilters vendor/ipfilter/dist/ml_ipl.c vendor/ipfilter/dist/mlf_ipl.c vendor/ipfilter/dist/mlf_rule.c vendor/ipfilter/dist/mlfk_ipl.c vendor/ipfilter/dist/mlfk_rule.c vendor/ipfilter/dist/mlh_rule.c vendor/ipfilter/dist/mli_ipl.c vendor/ipfilter/dist/mln_ipl.c vendor/ipfilter/dist/mls_ipl.c vendor/ipfilter/dist/opts.h vendor/ipfilter/dist/pcap-ipf.h vendor/ipfilter/dist/perl/Ipfanaly.pl vendor/ipfilter/dist/perl/Isbgraph vendor/ipfilter/dist/perl/Services vendor/ipfilter/dist/perl/ipfmeta.pl vendor/ipfilter/dist/perl/logfilter.pl vendor/ipfilter/dist/radix_ipf.h vendor/ipfilter/dist/rules/BASIC_1.FW vendor/ipfilter/dist/rules/BASIC_2.FW vendor/ipfilter/dist/rules/firewall vendor/ipfilter/dist/rules/ipmon.conf vendor/ipfilter/dist/rules/server vendor/ipfilter/dist/samples/proxy.c vendor/ipfilter/dist/samples/relay.c vendor/ipfilter/dist/snoop.h vendor/ipfilter/dist/solaris.c vendor/ipfilter/dist/test/.cvsignore vendor/ipfilter/dist/test/Makefile vendor/ipfilter/dist/test/bpftest vendor/ipfilter/dist/test/dotest vendor/ipfilter/dist/test/expected/f11 vendor/ipfilter/dist/test/expected/f13 vendor/ipfilter/dist/test/expected/f18 vendor/ipfilter/dist/test/expected/i1 vendor/ipfilter/dist/test/expected/i10 vendor/ipfilter/dist/test/expected/i11 vendor/ipfilter/dist/test/expected/i12 vendor/ipfilter/dist/test/expected/i14 vendor/ipfilter/dist/test/expected/i17 vendor/ipfilter/dist/test/expected/i18 vendor/ipfilter/dist/test/expected/i2 vendor/ipfilter/dist/test/expected/i20 vendor/ipfilter/dist/test/expected/i3 vendor/ipfilter/dist/test/expected/i4 vendor/ipfilter/dist/test/expected/i5 vendor/ipfilter/dist/test/expected/i6 vendor/ipfilter/dist/test/expected/i7 vendor/ipfilter/dist/test/expected/i8 vendor/ipfilter/dist/test/expected/i9 vendor/ipfilter/dist/test/expected/in1 vendor/ipfilter/dist/test/expected/in2 vendor/ipfilter/dist/test/expected/in3 vendor/ipfilter/dist/test/expected/in5 vendor/ipfilter/dist/test/expected/in6 vendor/ipfilter/dist/test/expected/ip1 vendor/ipfilter/dist/test/expected/ip2 vendor/ipfilter/dist/test/expected/ipv6.6 vendor/ipfilter/dist/test/expected/l1 vendor/ipfilter/dist/test/expected/l1.b vendor/ipfilter/dist/test/expected/n1 vendor/ipfilter/dist/test/expected/n10 vendor/ipfilter/dist/test/expected/n11 vendor/ipfilter/dist/test/expected/n12 vendor/ipfilter/dist/test/expected/n13 vendor/ipfilter/dist/test/expected/n14 vendor/ipfilter/dist/test/expected/n16 vendor/ipfilter/dist/test/expected/n2 vendor/ipfilter/dist/test/expected/n3 vendor/ipfilter/dist/test/expected/n4 vendor/ipfilter/dist/test/expected/n5 vendor/ipfilter/dist/test/expected/n6 vendor/ipfilter/dist/test/expected/n7 vendor/ipfilter/dist/test/expected/n8 vendor/ipfilter/dist/test/expected/n9 vendor/ipfilter/dist/test/expected/ni10 vendor/ipfilter/dist/test/expected/ni11 vendor/ipfilter/dist/test/expected/ni12 vendor/ipfilter/dist/test/expected/ni19 vendor/ipfilter/dist/test/expected/ni2 vendor/ipfilter/dist/test/expected/ni20 vendor/ipfilter/dist/test/expected/ni21 vendor/ipfilter/dist/test/expected/ni23 vendor/ipfilter/dist/test/expected/ni4 vendor/ipfilter/dist/test/expected/ni5 vendor/ipfilter/dist/test/expected/ni6 vendor/ipfilter/dist/test/expected/ni8 vendor/ipfilter/dist/test/expected/p1 vendor/ipfilter/dist/test/expected/p2 vendor/ipfilter/dist/test/expected/p3 vendor/ipfilter/dist/test/expected/p5 vendor/ipfilter/dist/test/input/f13 vendor/ipfilter/dist/test/input/f24 vendor/ipfilter/dist/test/input/ipv6.1 vendor/ipfilter/dist/test/input/ipv6.3 vendor/ipfilter/dist/test/input/ipv6.6 vendor/ipfilter/dist/test/input/n10 vendor/ipfilter/dist/test/input/n12 vendor/ipfilter/dist/test/input/n16 vendor/ipfilter/dist/test/input/n8 vendor/ipfilter/dist/test/input/n9 vendor/ipfilter/dist/test/input/ni1 vendor/ipfilter/dist/test/input/ni10 vendor/ipfilter/dist/test/input/ni11 vendor/ipfilter/dist/test/input/ni12 vendor/ipfilter/dist/test/input/ni13 vendor/ipfilter/dist/test/input/ni14 vendor/ipfilter/dist/test/input/ni15 vendor/ipfilter/dist/test/input/ni16 vendor/ipfilter/dist/test/input/ni19 vendor/ipfilter/dist/test/input/ni2 vendor/ipfilter/dist/test/input/ni20 vendor/ipfilter/dist/test/input/ni3 vendor/ipfilter/dist/test/input/ni4 vendor/ipfilter/dist/test/input/ni5 vendor/ipfilter/dist/test/input/ni7 vendor/ipfilter/dist/test/input/ni8 vendor/ipfilter/dist/test/input/ni9 vendor/ipfilter/dist/test/intest vendor/ipfilter/dist/test/iptest vendor/ipfilter/dist/test/itest vendor/ipfilter/dist/test/logtest vendor/ipfilter/dist/test/mtest vendor/ipfilter/dist/test/natipftest vendor/ipfilter/dist/test/nattest vendor/ipfilter/dist/test/ptest vendor/ipfilter/dist/test/regress/f13 vendor/ipfilter/dist/test/regress/i11 vendor/ipfilter/dist/test/regress/i12 vendor/ipfilter/dist/test/regress/i14 vendor/ipfilter/dist/test/regress/i17 vendor/ipfilter/dist/test/regress/i18 vendor/ipfilter/dist/test/regress/i2 vendor/ipfilter/dist/test/regress/i21 vendor/ipfilter/dist/test/regress/i7 vendor/ipfilter/dist/test/regress/i8 vendor/ipfilter/dist/test/regress/in2 vendor/ipfilter/dist/test/regress/ipv6.5 vendor/ipfilter/dist/test/regress/ipv6.6 vendor/ipfilter/dist/test/regress/n12 vendor/ipfilter/dist/test/regress/n2 vendor/ipfilter/dist/test/regress/n5 vendor/ipfilter/dist/test/regress/ni1.nat vendor/ipfilter/dist/test/regress/ni13.nat vendor/ipfilter/dist/test/regress/ni14.nat vendor/ipfilter/dist/test/regress/ni2.nat vendor/ipfilter/dist/test/regress/ni4.nat vendor/ipfilter/dist/test/regress/p1.pool vendor/ipfilter/dist/test/regress/p3.ipf vendor/ipfilter/dist/test/test.format vendor/ipfilter/dist/test/vfycksum.pl vendor/ipfilter/dist/todo vendor/ipfilter/dist/tools/BNF.ipf vendor/ipfilter/dist/tools/Makefile vendor/ipfilter/dist/tools/ipf.c vendor/ipfilter/dist/tools/ipf_y.y vendor/ipfilter/dist/tools/ipfcomp.c vendor/ipfilter/dist/tools/ipfs.c vendor/ipfilter/dist/tools/ipfstat.c vendor/ipfilter/dist/tools/ipftest.c vendor/ipfilter/dist/tools/ipmon.c vendor/ipfilter/dist/tools/ipmon_y.y vendor/ipfilter/dist/tools/ipnat.c vendor/ipfilter/dist/tools/ipnat_y.y vendor/ipfilter/dist/tools/ippool.c vendor/ipfilter/dist/tools/ippool_y.y vendor/ipfilter/dist/tools/ipscan_y.y vendor/ipfilter/dist/tools/ipsyncm.c vendor/ipfilter/dist/tools/ipsyncs.c vendor/ipfilter/dist/tools/lex_var.h vendor/ipfilter/dist/tools/lexer.c vendor/ipfilter/dist/tools/lexer.h Changes in other areas also in this revision: Deleted: vendor-sys/ipfilter/dist/netinet/QNX_OCL.txt vendor-sys/ipfilter/dist/netinet/ip_h323_pxy.c vendor-sys/ipfilter/dist/netinet/y vendor-sys/ipfilter/dist/netinet/y.pub Modified: vendor-sys/ipfilter/dist/netinet/IPFILTER.LICENCE vendor-sys/ipfilter/dist/netinet/fil.c vendor-sys/ipfilter/dist/netinet/ip_auth.c vendor-sys/ipfilter/dist/netinet/ip_auth.h vendor-sys/ipfilter/dist/netinet/ip_compat.h vendor-sys/ipfilter/dist/netinet/ip_fil.c vendor-sys/ipfilter/dist/netinet/ip_fil.h vendor-sys/ipfilter/dist/netinet/ip_fil_freebsd.c vendor-sys/ipfilter/dist/netinet/ip_frag.c vendor-sys/ipfilter/dist/netinet/ip_frag.h vendor-sys/ipfilter/dist/netinet/ip_ftp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_htable.c vendor-sys/ipfilter/dist/netinet/ip_htable.h vendor-sys/ipfilter/dist/netinet/ip_ipsec_pxy.c vendor-sys/ipfilter/dist/netinet/ip_irc_pxy.c vendor-sys/ipfilter/dist/netinet/ip_log.c vendor-sys/ipfilter/dist/netinet/ip_lookup.c vendor-sys/ipfilter/dist/netinet/ip_lookup.h vendor-sys/ipfilter/dist/netinet/ip_nat.c vendor-sys/ipfilter/dist/netinet/ip_nat.h vendor-sys/ipfilter/dist/netinet/ip_netbios_pxy.c vendor-sys/ipfilter/dist/netinet/ip_pool.c vendor-sys/ipfilter/dist/netinet/ip_pool.h vendor-sys/ipfilter/dist/netinet/ip_pptp_pxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.c vendor-sys/ipfilter/dist/netinet/ip_proxy.h vendor-sys/ipfilter/dist/netinet/ip_raudio_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rcmd_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rpcb_pxy.c vendor-sys/ipfilter/dist/netinet/ip_rules.c vendor-sys/ipfilter/dist/netinet/ip_rules.h vendor-sys/ipfilter/dist/netinet/ip_scan.c vendor-sys/ipfilter/dist/netinet/ip_scan.h vendor-sys/ipfilter/dist/netinet/ip_state.c vendor-sys/ipfilter/dist/netinet/ip_state.h vendor-sys/ipfilter/dist/netinet/ip_sync.c vendor-sys/ipfilter/dist/netinet/ip_sync.h vendor-sys/ipfilter/dist/netinet/ipl.h vendor-sys/ipfilter/dist/netinet/mlfk_ipl.c Modified: vendor/ipfilter/dist/.cvsignore ============================================================================== --- vendor/ipfilter/dist/.cvsignore Sun Aug 11 14:15:01 2013 (r254218) +++ vendor/ipfilter/dist/.cvsignore Sun Aug 11 14:28:45 2013 (r254219) @@ -1,28 +1,43 @@ -ipf -sparcv7 -sparcv9 -h -ipf-darren -bugs -ipftest -patches -state -cbits CVS -old -new -netinet -import +amd64 bak -streams +bugs +cbits cvs.diff -threads +cvs.diffs +extern glibc +h hp -windows +i86 +import +ipf +ipf-darren +ipfstat +ipftest ipnat -opt_inet6.h ippool ipmon -ip_rules.c +ipscan +ipsyncm +ipsyncs ip_rules.h +ip_rules.c +net +netinet +new +old +opt_bpf.h +opt_inet6.h +opt_pfil.h +patches +sparcv7 +sparcv9 +state +streams +threads +windows +SunOS5/i386-5.10 +*.o +*/*.o +*/*/*.o Added: vendor/ipfilter/dist/4bsd/conf.c.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/conf.c.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,41 @@ +*** conf.c.orig Wed May 10 23:38:08 1995 +--- conf.c Thu May 11 00:33:19 1995 +*************** +*** 169,174 **** +--- 169,187 ---- + #endif + cdev_decl(lkm); + ++ /* open, close, read, ioctl */ ++ cdev_decl(ipl); ++ #define cdev_gen_ipf(c,n) { \ ++ dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \ ++ (dev_type_write((*))) enodev, dev_init(c,n,ioctl), \ ++ (dev_type_stop((*))) nullop, 0, (dev_type_select((*))) enodev, \ ++ (dev_type_mmap((*))) enodev, 0 } ++ #ifdef IPFILTER ++ #define NIPF 1 ++ #else ++ #define NIPF 0 ++ #endif ++ + struct cdevsw cdevsw[] = + { + cdev_cn_init(1,cn), /* 0: virtual console */ +*************** +*** 232,238 **** + cdev_notdef(), /* 56 */ + cdev_notdef(), /* 57 */ + cdev_disk_init(NCD,cd), /* 58 SCSI CD-ROM */ +! cdev_notdef(), /* 59 */ + cdev_notdef(), /* 60 */ + cdev_notdef(), /* 61 */ + cdev_notdef(), /* 62 */ +--- 245,251 ---- + cdev_notdef(), /* 56 */ + cdev_notdef(), /* 57 */ + cdev_disk_init(NCD,cd), /* 58 SCSI CD-ROM */ +! cdev_gen_ipf(NIPF,ipl), /* 59 */ + cdev_notdef(), /* 60 */ + cdev_notdef(), /* 61 */ + cdev_notdef(), /* 62 */ Added: vendor/ipfilter/dist/4bsd/files.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/files.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.orig Sat Apr 29 19:59:31 1995 +--- files Sun Apr 23 17:54:18 1995 +*************** +*** 180,185 **** +--- 180,197 ---- + netinet/tcp_timer.c optional inet + netinet/tcp_usrreq.c optional inet + netinet/udp_usrreq.c optional inet ++ netinet/ip_fil.c optional ipfilter requires inet ++ netinet/fil.c optional ipfilter requires inet ++ netinet/ip_nat.c optional ipfilter requires inet ++ netinet/ip_auth.c optional ipfilter requires inet ++ netinet/ip_frag.c optional ipfilter requires inet ++ netinet/ip_state.c optional ipfilter requires inet ++ netinet/ip_proxy.c optional ipfilter requires inet ++ netinet/ip_log.c optional ipfilter requires inet ++ netinet/ip_scan.c optional ipfilter requires inet ++ netinet/ip_sync.c optional ipfilter requires inet ++ netinet/ip_pool.c optional ipfilter_pool requires inet ++ netinet/ip_rules.c optional ipfilter_compiled requires ipfilter + netiso/clnp_debug.c optional iso + netiso/clnp_er.c optional iso + netiso/clnp_frag.c optional iso Added: vendor/ipfilter/dist/4bsd/files.newconf.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/files.newconf.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.newconf.orig Sat Apr 29 20:00:02 1995 +--- files.newconf Sun Apr 23 17:53:58 1995 +*************** +*** 222,227 **** +--- 222,239 ---- + file netinet/tcp_timer.c inet + file netinet/tcp_usrreq.c inet + file netinet/udp_usrreq.c inet ++ file netinet/ip_fil.c ipfilter ++ file netinet/fil.c ipfilter ++ file netinet/ip_nat.c ipfilter ++ file netinet/ip_frag.c ipfilter ++ file netinet/ip_state.c ipfilter ++ file netinet/ip_auth.c ipfilter ++ file netinet/ip_proxy.c ipfilter ++ file netinet/ip_log.c ipfilter ++ file netinet/ip_scan.c ipfilter ++ file netinet/ip_sync.c ipfilter ++ file netinet/ip_pool.c ipfilter_pool ++ file netinet/ip_rules.c ipfilter_compiled + file netiso/clnp_debug.c iso + file netiso/clnp_er.c iso + file netiso/clnp_frag.c iso Added: vendor/ipfilter/dist/4bsd/files.oldconf.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/files.oldconf.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.oldconf.orig Sat Apr 29 19:59:31 1995 +--- files.oldconf Sun Apr 23 17:54:18 1995 +*************** +*** 180,185 **** +--- 180,197 ---- + netinet/tcp_timer.c optional inet + netinet/tcp_usrreq.c optional inet + netinet/udp_usrreq.c optional inet ++ netinet/ip_fil.c optional ipfilter requires inet ++ netinet/fil.c optional ipfilter requires inet ++ netinet/ip_nat.c optional ipfilter requires inet ++ netinet/ip_frag.c optional ipfilter requires inet ++ netinet/ip_state.c optional ipfilter requires inet ++ netinet/ip_proxy.c optional ipfilter requires inet ++ netinet/ip_log.c optional ipfilter requires inet ++ netinet/ip_auth.c optional ipfilter requires inet ++ netinet/ip_scan.c optional ipfilter requires inet ++ netinet/ip_sync.c optional ipfilter requires inet ++ netinet/ip_pool.c optional ipfilter_pool requires inet ++ netinet/ip_rules.c optional ipfilter_compiled requires ipfilter + netiso/clnp_debug.c optional iso + netiso/clnp_er.c optional iso + netiso/clnp_frag.c optional iso Added: vendor/ipfilter/dist/4bsd/filez.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/filez.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,23 @@ +*** files.orig Sat Apr 29 20:00:02 1995 +--- files Sun Apr 23 17:53:58 1995 +*************** +*** 222,227 **** +--- 222,239 ---- + file netinet/tcp_timer.c inet + file netinet/tcp_usrreq.c inet + file netinet/udp_usrreq.c inet ++ file netinet/ip_fil.c ipfilter ++ file netinet/fil.c ipfilter ++ file netinet/ip_nat.c ipfilter ++ file netinet/ip_frag.c ipfilter ++ file netinet/ip_state.c ipfilter ++ file netinet/ip_proxy.c ipfilter ++ file netinet/ip_auth.c ipfilter ++ file netinet/ip_log.c ipfilter ++ file netinet/ip_scan.c ipfilter ++ file netinet/ip_sync.c ipfilter ++ file netinet/ip_pool.c ipfilter_pool ++ file netinet/ip_rules.c ipfilter_compiled + file netiso/clnp_debug.c iso + file netiso/clnp_er.c iso + file netiso/clnp_frag.c iso Added: vendor/ipfilter/dist/4bsd/ip_input.c.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/ip_input.c.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,38 @@ +*** ip_input.c.orig Sun Apr 23 17:17:05 1995 +--- ip_input.c Sun Apr 23 17:30:03 1995 +*************** +*** 80,85 **** +--- 80,90 ---- + int ipqmaxlen = IFQ_MAXLEN; + struct in_ifaddr *in_ifaddr; /* first inet address */ + struct ifqueue ipintrq; ++ #if defined(IPFILTER) || defined(IPFILTER_LKM) ++ int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ #endif + + /* + * We need to save the IP options in case a protocol wants to respond +*************** +*** 225,231 **** +--- 233,252 ---- + m_adj(m, ip->ip_len - m->m_pkthdr.len); + } + ++ #if defined(IPFILTER) || defined(IPFILTER_LKM) + /* ++ * Check if we want to allow this packet to be processed. ++ * Consider it to be bad if not. ++ */ ++ if (fr_checkp) { ++ struct mbuf *m1 = m; ++ ++ if ((*fr_checkp)(ip, hlen, m->m_pkthdr.rcvif, 0, &m1) || !m1) ++ goto next; ++ ip = mtod(m = m1, struct ip *); ++ } ++ #endif ++ /* + * Process options and, if not destined for us, + * ship it on. ip_dooptions returns 1 when an + * error was detected (causing an icmp message Added: vendor/ipfilter/dist/4bsd/ip_output.c.diffs ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/ip_output.c.diffs Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,36 @@ +*** ip_output.c.orig Sun Apr 23 17:17:05 1995 +--- ip_output.c Sun Apr 23 17:32:11 1995 +*************** +*** 60,65 **** +--- 60,69 ---- + static struct mbuf *ip_insertoptions __P((struct mbuf *, struct mbuf *, int *)); + static void ip_mloopback + __P((struct ifnet *, struct mbuf *, struct sockaddr_in *)); ++ #if defined(IPFILTER_LKM) || defined(IPFILTER) ++ extern int fr_check __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ extern int (*fr_checkp) __P((struct ip *, int, struct ifnet *, int, struct mbuf *)); ++ #endif + + /* + * IP output. The packet in mbuf chain m contains a skeletal IP +*************** +*** 277,282 **** +--- 284,303 ---- + } else + m->m_flags &= ~M_BCAST; + + sendit: ++ #if defined(IPFILTER) || defined(IPFILTER_LKM) ++ /* ++ * looks like most checking has been done now...do a filter check ++ */ ++ if (fr_checkp) { ++ struct mbuf *m1 = m; ++ ++ if ((error = (*fr_checkp)(ip, hlen, ifp, 1, &m1)) || !m1) ++ goto done; ++ ip = mtod(m = m1, struct ip *); ++ } ++ #endif + /* + * If small enough for interface, can just send directly. Added: vendor/ipfilter/dist/4bsd/kinstall ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/4bsd/kinstall Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,55 @@ +#!/bin/csh -f +# +set dir=`pwd` +set karch=`uname -m` +set archdir="/sys/arch/$karch" +set confdir="$archdir/conf" + +if ( $dir =~ *fil/4bsd ) cd .. +if ($0 =~ *kinstall) then + echo "Installing ip_fil.c and ip_fil.h" + cp ip_fil.{c,h} /sys/netinet + echo "Patching $archdir/$karch/conf.c" + cat conf.c.diffs | (cd $archdir/$karch; patch) +endif +echo "Patching ip_input.c and ip_output.c" +cat 4bsd/ip_{in,out}put.c.diffs | (cd /sys/netinet; patch) + +if ( -f /sys/conf/files.newconf ) then + echo "Patching /sys/conf/files.newconf" + cat 4bsd/files.newconf.diffs | (cd /sys/conf; patch) + echo "Patching /sys/conf/files" + cat 4bsd/files.diffs | (cd /sys/conf; patch) +endif +if ( -f /sys/conf/files.oldconf ) then + echo "Patching /sys/conf/files.oldconf" + cat 4bsd/files.oldconf.diffs | (cd /sys/conf; patch) + echo "Patching /sys/conf/files" + cat 4bsd/filez.diffs | (cd /sys/conf; patch) +endif + +set config=`/bin/ls -1t $confdir [0-9A-Z_]* | head -1` + +echo -n "Kernel configuration to update [$config] " +set newconfig=$< +if ( "$newconfig" != "" ) then + set config="$confdir/$newconfig" +else + set newconfig=$config +endif +echo "Re-config'ing $newconfig..." +if ( -f $confdir/$newconfig ) then + mv $confdir/$newconfig $confdir/$newconfig.bak +endif +if ( -d $archdir/$newconfig ) then + mv $archdir/$newconfig $archdir/$newconfig.bak +endif +if ($0 =~ *kinstall) then + awk '{print $0;if($2=="INET"){print"options IPFILTER"}}}' \ + $confdir/$newconfig.bak > $confdir/$newconfig +else + awk '{print $0;if($2=="INET"){print"options IPFILTER_LKM"}}' \ + $confdir/$newconfig.bak > $confdir/$newconfig +endif +echo 'You will now need to run "config" and build a new kernel.' +exit 0 Added: vendor/ipfilter/dist/AIX/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/AIX/Makefile Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,401 @@ +# +# Copyright (C) 2012 by Darren Reed. +# +# See the IPFILTER.LICENCE file for details on licencing. +# +BINDEST=/usr/sbin +SBINDEST=/sbin +MANDIR=/usr/share/man +CC=cc +CFLAGS=-g -I$(TOP) +DEBUG=-O3 +# +# For AIX 5.3 +# +CPU=`uname -p` +INC=-I/usr/include +DEF=-D$(CPU) -D__$(CPU)__ -DINET -DKERNEL -D_KERNEL $(INC) +LKM=ipf +DLKM= +OBJ=. +TOP=.. +HERE=AIX/$(OSREV) +AIX=`uname -v` +DEST=. +MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \ + 'CFLAGS=$(CFLAGS)' "IPFLKM=$(IPFLKM)" \ + "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \ + "DEBUG=$(DEBUG)" "DCPU=$(CPU)" "CPUDIR=$(CPUDIR)" \ + "LOOKUP=$(LOOKUP)" "XID=$(XID)" "SCAN=$(SCAN)" "ALLOPTS=$(ALLOPTS)" +LIBS=-q$(BITS) -L. -lipf +CCARGS=$(DEBUG) $(CFLAGS) -I. -DAIX=$(AIX) -q$(BITS) +EXTRA=$(ALLOPTS) +MILLI=`../bootbits.sh` +FIXMILLI=-D_H_STRING=1 -Dbzero=bzero$(MILLI) \ +-Dmemcmp=memcmp$(MILLI) \ +-Dmemcpy=memcpy$(MILLI) \ +-Dmemccpy=memccpy$(MILLI) \ +-Dmemset=memset$(MILLI) \ +-Dmemmove=memmove$(MILLI) \ +-Dfill=fill$(MILLI) \ +-Dstrstr=strstr$(MILLI) +# +########## ########## ########## ########## ########## ########## ########## +# +CP=/bin/cp +RM=/bin/rm +CHMOD=/bin/chmod +INSTALL=$(TOP)/bsdinstall +# +MODOBJS=ip_fil.o fil.o md5.o ip_nat.o ip_frag.o ip_state.o ip_nat6.o \ + ip_proxy.o ip_auth.o ip_log.o ip_pool.o ip_htable.o ip_lookup.o \ + ip_sync.o ip_scan.o ip_rules.o +DFLAGS=$(DEBUG) -DAIX=$(AIX) $(IPFLKM) $(IPFLOG) $(DEF) $(CFLAGS) $(DLKM) \ + $(FIXMILLI) $(IPFBPF) $(LOOKUP) $(XID) -I. +IPF=ipf.o ipfcomp.o ipf_y.o ipf_l.o +IPT=ipftest.o fil_u.o ip_frag_u.o ip_state_u.o ip_nat_u.o ip_nat6_u.o \ + ip_proxy_u.o ip_auth_u.o ip_fil_u.o ip_sync_u.o ip_scan_u.o \ + ip_log_u.o ip_pool_u.o ip_htable_u.o ip_lookup_u.o ip_rules_u.o \ + ipf_y.o ipf_l.o ipnat_y.o ipnat_l.o ippool_y.o ippool_l.o \ + md5_u.o radix_ipf_u.o +IPNAT=ipnat.o ipnat_y.o ipnat_l.o +IPMON=ipmon.o ipmon_y.o ipmon_l.o +IPPOOL=ippool_y.o ippool_l.o kmem.o ippool.o +FILS=ipfstat.o +LIBSRC=$(TOP)/lib +RANLIB=ranlib +AROPTS=-X $(BITS) crs +TOOL=$(TOP)/tools + +include $(TOP)/lib/Makefile + +build all: ./libipf.a ipf.exe ipfs ipfstat ipftest ipmon \ + ipnat ippool ipscan ipsyncm ipsyncs cfg_ipf $(LKM) + -sh -c 'for i in ipftest ipmon ippool ipnat ipscan ipsyncm ipsyncs; do /bin/rm -f $(TOP)/$$i; ln -s `pwd`/$$i $(TOP); done' + -ln -s `pwd`/ipf.exe $(TOP)/ipf + +ipfstat: $(FILS) ./libipf.a + $(CC) $(CCARGS) $(STATETOP_CFLAGS) $(STATETOP_INC) $(FILS) \ + -o $@ $(LIBS) $(STATETOP_LIB) + +ipf.exe: $(IPF) ./libipf.a + $(CC) $(CCARGS) $(IPF) -o $@ $(LIBS) $(LIBBPF) + +ipftest: $(IPT) ./libipf.a + $(CC) $(CCARGS) $(IPT) -o $@ $(LIBS) $(LIBBPF) + +ipnat: $(IPNAT) ./libipf.a + $(CC) $(CCARGS) $(IPNAT) -o $@ $(LIBS) + +ipfs: ipfs.o ./libipf.a + $(CC) $(CCARGS) ipfs.o -o $@ $(LIBS) + +ipsyncm: ipsyncm.o ./libipf.a + $(CC) $(CCARGS) ipsyncm.o -o $@ $(LIBS) + +ipsyncs: ipsyncs.o ./libipf.a + $(CC) $(CCARGS) ipsyncs.o -o $@ $(LIBS) + +ipsyncm.o: $(TOOL)/ipsyncm.c $(TOP)/ip_sync.h + $(CC) $(CCARGS) -c $(TOOL)/ipsyncm.c -o $@ + +ipsyncs.o: $(TOOL)/ipsyncs.c $(TOP)/ip_sync.h + $(CC) $(CCARGS) -c $(TOOL)/ipsyncs.c -o $@ + +tests: + (cd test; make ) + +ipfstat.o: $(TOOL)/ipfstat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_frag.h \ + $(TOP)/ip_compat.h $(TOP)/ip_state.h $(TOP)/ip_nat.h + $(CC) $(CCARGS) $(STATETOP_CFLAGS) $(STATETOP_INC) \ + -c $(TOOL)/ipfstat.c -o $@ + +ipfs.o: $(TOOL)/ipfs.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_state.h \ + $(TOP)/ip_nat.h + $(CC) $(CCARGS) -c $(TOOL)/ipfs.c -o $@ + +fil_u.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h + $(CC) $(CCARGS) $(EXTRA) $(FIXRADIX) $(IPFBPF) -c $(TOP)/fil.c -o $@ + +ipf.o: $(TOOL)/ipf.c $(TOP)/ip_fil.h $(TOP)/ipf.h + $(CC) $(CCARGS) -c $(TOOL)/ipf.c -o $@ + +ipf_y.o: ipf_y.c ipf_y.h $(TOP)/ipf.h ipf_l.h + $(CC) $(CCARGS) $(IPFBPF) -c ipf_y.c -o $@ + +ipf_l.o: ipf_l.c ipf_y.h $(TOP)/ipf.h ipf_l.h + $(CC) $(CCARGS) -I. -c ipf_l.c -o $@ + +ipf_y.h ipf_y.c: $(TOOL)/ipf_y.y $(TOP)/ip_pool.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipf_l.c ipf_l.h: $(TOOL)/lexer.c $(TOP)/ipf.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipfcomp.o: $(TOOL)/ipfcomp.c $(TOP)/ip_fil.h $(TOP)/ipf.h + $(CC) $(CCARGS) -c $(TOOL)/ipfcomp.c -o $@ + +ipftest.o: $(TOOL)/ipftest.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h + $(CC) $(CCARGS) -c $(TOOL)/ipftest.c -o $@ + +ipnat.o: $(TOOL)/ipnat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h + $(CC) $(CCARGS) -c $(TOOL)/ipnat.c -o $@ + +ipnat_y.o: ipnat_y.c ipnat_y.h $(TOP)/ip_fil.h $(TOP)/ip_compat.h \ + $(TOP)/ipf.h $(TOP)/ip_nat.h ipnat_l.h + $(CC) $(CCARGS) -c ipnat_y.c -o $@ + +ipnat_l.o: ipnat_l.c ipnat_y.h $(TOP)/ip_fil.h $(TOP)/ip_compat.h \ + $(TOP)/ipf.h $(TOP)/ip_nat.h ipnat_l.h + $(CC) $(CCARGS) -I. -c ipnat_l.c -o $@ + +ipnat_y.h ipnat_y.c: $(TOOL)/ipnat_y.y $(TOP)/ip_nat.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipnat_l.c ipnat_l.h: $(TOOL)/lexer.c $(TOP)/ip_nat.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ip_rules.c: $(TOP)/rules/ip_rules $(TOP)/tools/ipfcomp.c ipf.exe + ./ipf.exe -cc -nf $(TOP)/rules/ip_rules + +$(TOP)/ip_rules.h: ip_rules.c + if [ ! -f $(TOP)/ip_rules.h ] ; then \ + /bin/mv -f ip_rules.h $(TOP); \ + else \ + touch $(TOP)/ip_rules.h; \ + fi + +ip_nat_u.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_nat.c -o $@ + +ip_nat6_u.o: $(TOP)/ip_nat6.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_nat6.c -o $@ + +ip_proxy_u.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \ + $(TOP)/ip_ftp_pxy.c $(TOP)/ip_rcmd_pxy.c $(TOP)/ip_raudio_pxy.c \ + $(TOP)/ip_rpcb_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_nat.h \ + $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_proxy.c -o $@ + +ip_frag_u.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_frag.c -o $@ + +ip_state_u.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h $(TOP)/ip_nat.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_state.c -o $@ + +ip_auth_u.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_auth.c -o $@ + +ip_fil_u.o: $(TOP)/ip_fil.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h + $(CC) $(CCARGS) $(EXTRA) $(FIXRADIX) -c $(TOP)/ip_fil.c -o $@ + +ip_scan_u.o: $(TOP)/ip_scan.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_scan.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_scan.c -o $@ + +ip_sync_u.o: $(TOP)/ip_sync.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_sync.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_sync.c -o $@ + +ip_rules_u.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_rules.h + $(CC) $(CCARGS) $(EXTRA) -c ip_rules.c -o $@ + +ip_log_u.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_log.c -o $@ + +ip_pool_u.o: $(TOP)/ip_pool.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_pool.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_pool.c -o $@ + +ip_htable_u.o: $(TOP)/ip_htable.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_htable.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_htable.c -o $@ + +ip_lookup_u.o: $(TOP)/ip_lookup.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_lookup.h + $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_lookup.c -o $@ + +bpf_filter_u.o: $(TOP)/bpf_filter.c $(TOP)/pcap-ipf.h $(TOP)/bpf-ipf.h + $(CC) $(CCARGS) -c $(TOP)/bpf_filter.c -o $@ + +md5_u.o: $(TOP)/md5.c $(TOP)/md5.h + $(CC) $(CCARGS) -c $(TOP)/md5.c -o $@ + +radix_ipf_u.o: $(TOP)/radix_ipf.c $(TOP)/radix_ipf.h + $(CC) $(CCARGS) -c $(TOP)/radix_ipf.c -o $@ + +cfg_ipf: cfg_ipf.o +# ld -o cfg_ipf cfg_ipf.o -L/usr/lib/ia64l32 -L/usr/ccs/lib/ia64l32 \ +# -lodm -lrts -lcfg + $(CC) $(CCARGS) -o cfg_ipf cfg_ipf.o -lodm -lrts -lcfg + +cfg_ipf.o: ../aix_cfg_ipf.c + $(CC) -D_ALL_SOURCE -D_KERNEL $(CCARGS) -c ../aix_cfg_ipf.c -o $@ + +$(LKM): $(MODOBJS) ../ipfkext.exp /lib/kernex.exp /lib/syscalls.exp + ld -G -eipfconfig -bimport:/lib/syscalls.exp -bimport:/lib/kernex.exp \ + -bimport:/lib/kernex.exp -bimport:/lib/netinet.exp \ + -bimport:/lib/statcmd.exp \ + -lcsys -lsys -bexport:../ipfkext.exp -bmap:ipfkext.map \ + $(MODOBJS) -o $(LKM)32 + /bin/rm -f $(LKM) + ar -X $(BITS) cq $(LKM) $(LKM)32 + +fil.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h $(TOP)/ipl.h + $(CC) $(POLICY) $(DFLAGS) $(IPFBPF) -c $(TOP)/fil.c -o $@ + +ip_nat.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_nat.c -o $@ + +ip_nat6.o: $(TOP)/ip_nat6.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_nat6.c -o $@ + +ip_frag.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_frag.c -o $@ + +ip_state.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h $(TOP)/ip_nat.h + $(CC) $(DFLAGS) -DIPSTATE_SIZE=127 -c $(TOP)/ip_state.c -o $@ + +ip_proxy.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \ + $(TOP)/ip_ftp_pxy.c $(TOP)/ip_rcmd_pxy.c $(TOP)/ip_raudio_pxy.c \ + $(TOP)/ip_rpcb_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_nat.h \ + $(TOP)/ip_nat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_proxy.c -o $@ + +ip_auth.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \ + $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_auth.c -o $@ + +ip_fil.o: $(TOP)/ip_fil_aix.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h $(TOP)/ip_nat.h + $(CC) $(DFLAGS) $(COMPIPF) -c $(TOP)/ip_fil_aix.c -o $@ + +ip_log.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h + $(CC) $(DFLAGS) -c $(TOP)/ip_log.c -o $@ + +ip_scan.o: $(TOP)/ip_scan.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_scan.h + $(CC) $(DFLAGS) -c $(TOP)/ip_scan.c -o $@ + +ip_sync.o: $(TOP)/ip_sync.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_sync.h + $(CC) $(DFLAGS) -c $(TOP)/ip_sync.c -o $@ + +radix_ipf.o: $(TOP)/radix_ipf.c $(TOP)/radix_ipf.h + $(CC) $(DFLAGS) -c $(TOP)/radix_ipf.c -o $@ + +ip_pool.o: $(TOP)/ip_pool.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_pool.h $(TOP)/radix_ipf.h + $(CC) $(DFLAGS) $(FIXRADIX) -c $(TOP)/ip_pool.c -o $@ + +ip_htable.o: $(TOP)/ip_htable.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_htable.h + $(CC) $(DFLAGS) -c $(TOP)/ip_htable.c -o $@ + +ip_lookup.o: $(TOP)/ip_lookup.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ + $(TOP)/ip_lookup.h + $(CC) $(DFLAGS) $(FIXRADIX) -c $(TOP)/ip_lookup.c -o $@ + +ip_rules.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_rules.h + $(CC) -I. $(DFLAGS) -c ip_rules.c -o $@ + +ip_rulesx.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_rules.h + $(CC) -I. -DIPFILTER_COMPILED $(DFLAGS) -c ip_rules.c -o $@ + +#aix.o: $(TOP)/aix.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h +# $(CC) $(DFLAGS) -c $(TOP)/aix.c -o $@ + +md5.o: $(TOP)/md5.c $(TOP)/md5.h + $(CC) $(DFLAGS) -c $(TOP)/md5.c -o $@ + +ipmon: $(IPMON) ./libipf.a + $(CC) $(CCARGS) $(LOGFAC) $(IPMON) -o $@ $(LIBS) -ll + +ipmon.o: $(TOOL)/ipmon.c $(TOP)/ipmon.h + $(CC) $(CCARGS) $(LOGFAC) -c $(TOOL)/ipmon.c -o $@ + +ipmon_y.o: ipmon_y.c ipmon_y.h $(TOP)/ipmon.h ipmon_l.h + $(CC) $(CCARGS) -c ipmon_y.c -o $@ + +ipmon_l.o: ipmon_l.c ipmon_y.h $(TOP)/ipmon.h ipmon_l.h + $(CC) $(CCARGS) -I. -c ipmon_l.c -o $@ + +ipmon_y.h ipmon_y.c: $(TOOL)/ipmon_y.y $(TOP)/ipmon.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipmon_l.c ipmon_l.h: $(TOOL)/lexer.c $(TOP)/ipmon.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipscan: ipscan_y.o ipscan_l.o + $(CC) $(DEBUG) ipscan_y.o ipscan_l.o -o $@ -ll $(LIBS) + +ipscan_y.o: ipscan_y.c ipscan_y.h $(TOP)/ip_scan.h ipscan_l.h + $(CC) $(CCARGS) -c ipscan_y.c -o $@ + +ipscan_l.o: ipscan_l.c ipscan_y.h $(TOP)/ip_scan.h ipscan_l.h + $(CC) $(CCARGS) -I. -c ipscan_l.c -o $@ + +ipscan_y.h ipscan_y.c: $(TOOL)/ipscan_y.y $(TOP)/ip_scan.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ipscan_l.c ipscan_l.h: $(TOOL)/lexer.c $(TOP)/ip_scan.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ippool: $(IPPOOL) + $(CC) $(DEBUG) -I. $(CFLAGS) $(IPPOOL) -o $@ $(LIBS) -ll + +ippool.o: $(TOOL)/ippool.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_pool.h + $(CC) $(CCARGS) -c $(TOOL)/ippool.c -o $@ + +ippool_y.o: ippool_y.c ippool_y.h $(TOP)/ip_pool.h ippool_l.h + $(CC) $(CCARGS) -c ippool_y.c -o $@ + +ippool_l.o: ippool_l.c ippool_y.h $(TOP)/ip_pool.h ippool_l.h + $(CC) $(CCARGS) -I. -c ippool_l.c -o $@ + +ippool_y.h ippool_y.c: $(TOOL)/ippool_y.y $(TOP)/ip_pool.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +ippool_l.c ippool_l.h: $(TOOL)/lexer.c $(TOP)/ip_pool.h + (cd $(TOOL); make "DEST=../$(HERE)" ../$(HERE)/$@) + +.y.c: + +.l.c: + +clean: + ${RM} -f ../ipf.exe ../ipnat ../ipmon ../ippool ../ipftest + ${RM} -f ../ipscan ../ipsyncm ../ipsyncs cfg_ipf + ${RM} -f *.core *.o *.a *.o.d + ${RM} -f fils ipf.exe ipfstat ipftest ipmon if_ipl ipnat + ${RM} -f $(LKM) ioconf.h *.ko setdef1.c setdef0.c setdefs.h + ${RM} -f ip_fil.c ipf_l.c ipf_y.c ipf_y.h ipf_l.h + ${RM} -f ipscan ipscan_y.c ipscan_y.h ipscan_l.c ipscan_l.h + ${RM} -f ippool ippool_y.c ippool_y.h ippool_l.c ippool_l.h + ${RM} -f ipnat_y.c ipnat_y.h ipnat_l.c ipnat_l.h + ${RM} -f ipmon_y.c ipmon_y.h ipmon_l.c ipmon_l.h + ${RM} -f ipscan ipscan_y.c ipscan_y.h ipscan_l.c y.tab.? lex.yy.c ipfs + ${RM} -f ipsyncm ipsyncs ip_rules.c ip_rules.h + + ${MAKE} -f Makefile.ipsend ${MFLAGS} clean + -(for i in *; do \ + if [ -d $${i} -a -f $${i}/Makefile ] ; then \ + cd $${i}; (make TOP=../.. clean); cd ..; \ + rm $${i}/Makefile $${i}/Makefile.ipsend; \ + rmdir $${i}; \ + fi \ + done) + +install: + cp cfg_ipf /usr/lib/methods + cp $(LKM) /usr/lib/drivers/ipf + -for i in ipfs ipnat ipscan ipfstat; do \ + $(INSTALL) -s -c -g system -m 755 -o root $$i $(SBINDEST); \ + done + $(INSTALL) -s -c -g system -m 755 -o root ipf.exe $(SBINDEST)/ipf + -for i in ipmon ipftest ipsyncs ipsyncm; do \ + $(INSTALL) -s -c -g system -m 755 -o root $$i $(BINDEST); \ + done + (cd $(TOP)/man; make INSTALL=../bsdinstall MANDIR=$(MANDIR) install; cd $(TOP)) + sync Added: vendor/ipfilter/dist/AIX/Makefile.ipsend ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/AIX/Makefile.ipsend Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,78 @@ +MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \ + "CC=$(CC)" "CFLAGS=$(CFLAGS)" "DEBUG=$(DEBUG)" \ + "IPFLKM=$(IPFLKM)" "IPFLOG=$(IPFLOG)" \ + "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" "LOOKUP=$(LOOKUP)" +FIXRADIX=-Dradix_node=ipf_radix_node -Dradix_node_head=ipf_radix_node_head +OBJS=ipsend.o ip.o ipsopt.o iplang_y.o iplang_l.o +IPFTO=ipft_ef.o ipft_hx.o ipft_pc.o ipft_sn.o ipft_td.o ipft_tx.o +ROBJS=ipresend.o ip.o resend.o +TOBJS=iptest.o iptests.o ip.o +UNIXOBJS=dlcommon.o sbpf.o arp.o sock.o +OBJ=. +LIBS=-L$(OBJ) -lipf + +CC=cc +CFLAGS=-g -I$(TOP) +CCARGS=$(DEBUG) $(CFLAGS) -I. + +all nit sunos4 sunos4-nit build : ipsend ipresend iptest + +iplang_y.o: $(TOP)/iplang/iplang_y.y + (cd $(TOP)/iplang; $(MAKE) 'DESTDIR=../AIX/$(OSREV)' ) + +iplang_l.o: $(TOP)/iplang/iplang_l.l + (cd $(TOP)/iplang; $(MAKE) 'DESTDIR=../AIX/$(OSREV)' ) + +.c.o: + $(CC) $(CCARGS) -c $(TOP)/ipsend/$< -o $@ + +ipsend: $(OBJS) $(UNIXOBJS) + $(CC) $(DEBUG) $(OBJS) $(UNIXOBJS) -o $@ $(LIBS) -ll + +ipresend: $(ROBJS) $(UNIXOBJS) + $(CC) $(DEBUG) $(ROBJS) $(UNIXOBJS) -o $@ $(LIBS) + +iptest: $(TOBJS) $(UNIXOBJS) + $(CC) $(DEBUG) $(TOBJS) $(UNIXOBJS) -o $@ $(LIBS) + +clean: + rm -rf *.o core a.out ipsend ipresend iptest iplang_y.* iplang_l.* + +ipsend.o: $(TOP)/ipsend/ipsend.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ipsend.c -o $@ +ipsopt.o: $(TOP)/ipsend/ipsopt.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ipsopt.c -o $@ +ipresend.o: $(TOP)/ipsend/ipresend.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ipresend.c -o $@ +ip.o: $(TOP)/ipsend/ip.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/ip.c -o $@ +resend.o: $(TOP)/ipsend/resend.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/resend.c -o $@ +ipft_sn.o: $(TOP)/ipft_sn.c + $(CC) $(CCARGS) -c $(TOP)/ipft_sn.c -o $@ +ipft_pc.o: $(TOP)/ipft_pc.c + $(CC) $(CCARGS) -c $(TOP)/ipft_pc.c -o $@ +iptest.o: $(TOP)/ipsend/iptest.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/iptest.c -o $@ +iptests.o: $(TOP)/ipsend/iptests.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/iptests.c -o $@ +sbpf.o: $(TOP)/ipsend/sbpf.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/sbpf.c -o $@ +snit.o: $(TOP)/ipsend/snit.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/snit.c -o $@ +sock.o: $(TOP)/ipsend/sock.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/sock.c -o $@ +arp.o: $(TOP)/ipsend/arp.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/arp.c -o $@ +44arp.o: $(TOP)/ipsend/44arp.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/44arp.c -o $@ +lsock.o: $(TOP)/ipsend/lsock.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/lsock.c -o $@ +slinux.o: $(TOP)/ipsend/slinux.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/slinux.c -o $@ +larp.o: $(TOP)/ipsend/larp.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/larp.c -o $@ +dlcommon.o: $(TOP)/ipsend/dlcommon.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/dlcommon.c -o $@ +sdlpi.o: $(TOP)/ipsend/sdlpi.c + $(CC) $(CCARGS) -c $(TOP)/ipsend/sdlpi.c -o $@ Added: vendor/ipfilter/dist/AIX/aix_cfg_ipf.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/ipfilter/dist/AIX/aix_cfg_ipf.c Sun Aug 11 14:28:45 2013 (r254219) @@ -0,0 +1,257 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + * + * $Id$ + */ +#include +#include +#include +#include +/* + * This is a workaround for troubles on FreeBSD, HPUX, OpenBSD. + * Needed here because on some systems gets included by things + * like + */ +#include +#include +#include +#include +#define _TCP_DEBUG_H_ +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "netinet/ip_compat.h" +#include "netinet/ip_fil.h" + +#ifndef __P +# ifdef __STDC__ +# define __P(x) x +# else +# define __P(x) () +# endif +#endif +#ifndef __STDC__ +# undef const +# define const +#endif + +/* + * AIX requires a specific configure/unconfigure program + */ +#undef ASSERT +#include +#include + +void loadipf __P((int major, int minor, dev_t devno, char *)); +void unloadipf __P((int major, int minor, dev_t devno)); +void queryipf __P((int major, int minor, dev_t devno)); +int checkarg __P((int, char *arg)); +void usage __P((char *)); + +static char *ipf_devfiles[] = { IPL_NAME, IPNAT_NAME, IPSTATE_NAME, + IPAUTH_NAME, IPSYNC_NAME, IPSCAN_NAME, + IPLOOKUP_NAME, NULL }; + +int +main(int argc, char *argv[]) +{ + int major, minor, action; + dev_t devno; + + action = checkarg(argc, argv[1]); + if (action == -1) + usage(argv[0]); + + if (odm_initialize() == -1) { + fprintf(stderr, "odm_initialize() failed\n"); + exit(1); + } + + major = genmajor("ipf"); + if (major == -1) { + fprintf(stderr, "genmajor(ipf) failed\n"); + exit(1); + } + minor = 0; + + devno = makedev(major, minor); + if (devno == -1) { + fprintf(stderr, "makedev(%d,%d) failed\n", major, minor); + exit(1); + } + printf("Major %d\ndevno %x\n", major, devno); + + switch (action) + { + case 1 : + loadipf(major, minor, devno, argv[2]); + break; + case 2 : + unloadipf(major, minor, devno); + break; + case 3 : + queryipf(major, minor, devno); + break; + } + + odm_terminate(); + + return 0; +} + + +void usage(char *prog) +{ + fprintf(stderr, "Usage:\t%s -l\n\t%s -u\n\t%s -q\n", + prog, prog, prog); + exit(1); +} + + +int checkarg(int argc, char *arg) +{ + if (argc < 2) + return -1; + + if (!strcmp(arg, "-l") && (argc <= 3)) + return 1; + + if (!strcmp(arg, "-u") && (argc == 2)) + return 2; + + if (!strcmp(arg, "-q") && (argc == 2)) + return 3; + + return -1; +} + + +void +loadipf(int major, int minor, dev_t devno, char *path) +{ + struct cfg_dd ipfcfg; + struct cfg_load cfg; + char *buffer[1024]; + char *ipfpath; + int i; + + bzero(buffer, sizeof(buffer)); + if (path != NULL) + ipfpath = path; + else + ipfpath = "/usr/lib/drivers/ipf"; + +#if 0 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 14:37:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4DDBDB7D; Sun, 11 Aug 2013 14:37:52 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E176C27E0; Sun, 11 Aug 2013 14:37:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BEbpig080931; Sun, 11 Aug 2013 14:37:51 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BEbpL9080930; Sun, 11 Aug 2013 14:37:51 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111437.r7BEbpL9080930@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:37:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254220 - vendor/ipfilter/5.1.2 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:37:52 -0000 Author: cy Date: Sun Aug 11 14:37:51 2013 New Revision: 254220 URL: http://svnweb.freebsd.org/changeset/base/254220 Log: Tag import of IP-Filter 5.1.2. Approved by: glebius (Mentor) Added: vendor/ipfilter/5.1.2/ - copied from r254219, vendor/ipfilter/dist/ From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 14:39:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B9276CEB; Sun, 11 Aug 2013 14:39:27 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8E28627F0; Sun, 11 Aug 2013 14:39:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BEdRJn081218; Sun, 11 Aug 2013 14:39:27 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BEdRff081217; Sun, 11 Aug 2013 14:39:27 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308111439.r7BEdRff081217@svn.freebsd.org> From: Cy Schubert Date: Sun, 11 Aug 2013 14:39:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254221 - vendor-sys/ipfilter/5-1-2 X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 14:39:27 -0000 Author: cy Date: Sun Aug 11 14:39:27 2013 New Revision: 254221 URL: http://svnweb.freebsd.org/changeset/base/254221 Log: Tag import of IP-Filter 5.1.2. Approved by: glebius (Mentor) Added: vendor-sys/ipfilter/5-1-2/ - copied from r254220, vendor-sys/ipfilter/dist/ From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 15:38:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 43EC77D7; Sun, 11 Aug 2013 15:38:49 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3111C29DE; Sun, 11 Aug 2013 15:38:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BFcnQ2004843; Sun, 11 Aug 2013 15:38:49 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BFcmNO004842; Sun, 11 Aug 2013 15:38:48 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308111538.r7BFcmNO004842@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 11 Aug 2013 15:38:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254222 - head/lib/libc/db/hash X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 15:38:49 -0000 Author: jilles Date: Sun Aug 11 15:38:48 2013 New Revision: 254222 URL: http://svnweb.freebsd.org/changeset/base/254222 Log: db/hash: Use O_CLOEXEC instead of separate fcntl() call. In particular, a hash db is used by getpwnam() and getpwuid(). MFC after: 1 week Modified: head/lib/libc/db/hash/hash.c Modified: head/lib/libc/db/hash/hash.c ============================================================================== --- head/lib/libc/db/hash/hash.c Sun Aug 11 14:39:27 2013 (r254221) +++ head/lib/libc/db/hash/hash.c Sun Aug 11 15:38:48 2013 (r254222) @@ -121,9 +121,8 @@ __hash_open(const char *file, int flags, hashp->flags = flags; if (file) { - if ((hashp->fp = _open(file, flags, mode)) == -1) + if ((hashp->fp = _open(file, flags | O_CLOEXEC, mode)) == -1) RETURN_ERROR(errno, error0); - (void)_fcntl(hashp->fp, F_SETFD, 1); new_table = _fstat(hashp->fp, &statbuf) == 0 && statbuf.st_size == 0 && (flags & O_ACCMODE) != O_RDONLY; } else From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 15:43:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DDD04A5F; Sun, 11 Aug 2013 15:43:09 +0000 (UTC) (envelope-from cognet@ci0.Org) Received: from kanar.ci0.org (unknown [IPv6:2a01:e0b:1:150:ca0a:a9ff:fef1:a4c9]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 62ED62A1A; Sun, 11 Aug 2013 15:43:09 +0000 (UTC) Received: from kanar.ci0.org (pluxor@localhost [127.0.0.1]) by kanar.ci0.org (8.14.5/8.14.5) with ESMTP id r7BFgiYZ092853; Sun, 11 Aug 2013 17:42:44 +0200 (CEST) (envelope-from cognet@ci0.Org) Received: (from doginou@localhost) by kanar.ci0.org (8.14.5/8.14.5/Submit) id r7BFgisa092852; Sun, 11 Aug 2013 17:42:44 +0200 (CEST) (envelope-from cognet@ci0.Org) X-Authentication-Warning: kanar.ci0.org: doginou set sender to cognet@ci0.Org using -f Date: Sun, 11 Aug 2013 17:42:44 +0200 From: Olivier Houchard To: Zbigniew Bodek Subject: Re: svn commit: r254061 - head/sys/arm/arm Message-ID: <20130811154244.GA92775@ci0.org> References: <201308071544.r77FiwMK072982@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="r5Pyd7+fXNt84Ff3" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-all@freebsd.org, "freebsd-arm@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 15:43:09 -0000 --r5Pyd7+fXNt84Ff3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Sat, Aug 10, 2013 at 04:50:36PM +0200, Zbigniew Bodek wrote: > 2013/8/7 Olivier Houchard > > > Author: cognet > > Date: Wed Aug 7 15:44:58 2013 > > New Revision: 254061 > > URL: http://svnweb.freebsd.org/changeset/base/254061 > > > > Log: > > Don't bother trying to work around buffers which are not aligned on a > > cache > > line boundary. It has never been 100% correct, and it can't work on SMP, > > because nothing prevents another core from accessing data from an > > unrelated > > buffer in the same cache line while we invalidated it. Just use bounce > > pages > > instead. > > > > Reviewed by: ian > > Approved by: mux (mentor) (implicit) > > > > Modified: > > head/sys/arm/arm/busdma_machdep-v6.c > > > > > Hello Olivier, > > While continuing rebase of my work to the current HEAD I encountered > another problem regarding the PCIe NIC this time. > > I'm using Realtek card and starting from this revision Rx buffers cannot be > allocated for my device. > Please check out the message below: Hi Zbigniew, Can you test the attached patch (largely untested, I'm afraid I'm on vacations, far away from my arm boards), to see if it helps ? Regards, Olivier --r5Pyd7+fXNt84Ff3 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="busdmap_bz.patch" Index: busdma_machdep-v6.c =================================================================== --- busdma_machdep-v6.c (revision 254221) +++ busdma_machdep-v6.c (working copy) @@ -425,6 +425,8 @@ if (_bus_dma_can_bounce(newtag->lowaddr, newtag->highaddr) || newtag->alignment > 1) newtag->flags |= BUS_DMA_COULD_BOUNCE; + else + maxsize = 2; /* Need at most 2 bounce pages for unaligned acces */ if ((flags & BUS_DMA_ALLOCNOW) != 0) { struct bounce_zone *bz; @@ -519,7 +521,10 @@ * Attempt to add pages to our pool on a per-instance * basis up to a sane limit. */ - maxpages = MAX_BPAGES; + if (dmat->flags & BUS_DMA_COULD_BOUNCE) + maxpages = MAX_BPAGES; + else + maxpages = 2 * bz->map_count; /* Only need at most 2 pages for unaligned access */ if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 || (bz->map_count > 0 && bz->total_bpages < maxpages)) { int pages; --r5Pyd7+fXNt84Ff3-- From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 17:04:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 50F1C925 for ; Sun, 11 Aug 2013 17:04:55 +0000 (UTC) (envelope-from zbb@semihalf.com) Received: from mail-qc0-f180.google.com (mail-qc0-f180.google.com [209.85.216.180]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 11D442D58 for ; Sun, 11 Aug 2013 17:04:54 +0000 (UTC) Received: by mail-qc0-f180.google.com with SMTP id j10so3008675qcx.39 for ; Sun, 11 Aug 2013 10:04:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=MLI95NdpKcGunyYFdkuxFLNDdP5FQNPxeMobF2W/fjM=; b=JWGDY8G+JShBvvZCfrr2QIxIz0+WhuM5vsFk7+Odx+QYGqgDY9IZPrRHCTgo5edaIe sIVLIAi6kdfWpXxEJkgZQYhhyjAzYGoHuPURJ46Vwav/q9e6Ftl6HPe57gGsgGEcd6M1 Ucksqzrdx+dK8qX7/HpUIwAHK/Ozppo/w7CmbNDdXI7ciKBZmvQd77p9uKH/kMKktO27 tH5zRSbGjIYHQ0ckCOp6XOExfOG0rXGedSS3A0SdPEKzfx2xqMvehdhsYQNHU9rCDcyU udr66z+1EwZjwg3nrG0fJhuUFQOzj1/BEsr5aqJ4Zx/gG+m5dkjC7aNiiRx5Shd2FA+S XtwA== X-Gm-Message-State: ALoCoQkBv+8KVMHwj3TUb4r7wDHHn9dMb8gV/G5veCfb9UQ7P0tamoPfm8gYU16bp9n50Pp2gn3g MIME-Version: 1.0 X-Received: by 10.49.109.37 with SMTP id hp5mr10183269qeb.59.1376240688466; Sun, 11 Aug 2013 10:04:48 -0700 (PDT) Received: by 10.49.82.34 with HTTP; Sun, 11 Aug 2013 10:04:48 -0700 (PDT) In-Reply-To: <20130811154244.GA92775@ci0.org> References: <201308071544.r77FiwMK072982@svn.freebsd.org> <20130811154244.GA92775@ci0.org> Date: Sun, 11 Aug 2013 19:04:48 +0200 Message-ID: Subject: Re: svn commit: r254061 - head/sys/arm/arm From: Zbigniew Bodek To: Olivier Houchard Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: svn-src-all@freebsd.org, "freebsd-arm@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 17:04:55 -0000 2013/8/11 Olivier Houchard > On Sat, Aug 10, 2013 at 04:50:36PM +0200, Zbigniew Bodek wrote: > > 2013/8/7 Olivier Houchard > > > > > Author: cognet > > > Date: Wed Aug 7 15:44:58 2013 > > > New Revision: 254061 > > > URL: http://svnweb.freebsd.org/changeset/base/254061 > > > > > > Log: > > > Don't bother trying to work around buffers which are not aligned on a > > > cache > > > line boundary. It has never been 100% correct, and it can't work on > SMP, > > > because nothing prevents another core from accessing data from an > > > unrelated > > > buffer in the same cache line while we invalidated it. Just use > bounce > > > pages > > > instead. > > > > > > Reviewed by: ian > > > Approved by: mux (mentor) (implicit) > > > > > > Modified: > > > head/sys/arm/arm/busdma_machdep-v6.c > > > > > > > > Hello Olivier, > > > > While continuing rebase of my work to the current HEAD I encountered > > another problem regarding the PCIe NIC this time. > > > > I'm using Realtek card and starting from this revision Rx buffers cannot > be > > allocated for my device. > > Please check out the message below: > > Hi Zbigniew, > > Can you test the attached patch (largely untested, I'm afraid I'm on > vacations, far away from my arm boards), to see if it helps ? > > Regards, > > Olivier > > Hello Olivier, The patch that you've sent helps for the issue. Thank you very much and have a nice vacation. Best regards Zbyszek Bodek From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 18:05:20 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DFE39D36; Sun, 11 Aug 2013 18:05:20 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CD4C920BC; Sun, 11 Aug 2013 18:05:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BI5KN6061848; Sun, 11 Aug 2013 18:05:20 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BI5Kv1061847; Sun, 11 Aug 2013 18:05:20 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308111805.r7BI5Kv1061847@svn.freebsd.org> From: Glen Barber Date: Sun, 11 Aug 2013 18:05:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254223 - head/gnu/usr.bin/groff/tmac X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 18:05:21 -0000 Author: gjb Date: Sun Aug 11 18:05:20 2013 New Revision: 254223 URL: http://svnweb.freebsd.org/changeset/base/254223 Log: Add FreeBSD 9.2 to mdoc.local. Modified: head/gnu/usr.bin/groff/tmac/mdoc.local Modified: head/gnu/usr.bin/groff/tmac/mdoc.local ============================================================================== --- head/gnu/usr.bin/groff/tmac/mdoc.local Sun Aug 11 15:38:48 2013 (r254222) +++ head/gnu/usr.bin/groff/tmac/mdoc.local Sun Aug 11 18:05:20 2013 (r254223) @@ -52,6 +52,7 @@ .ds doc-operating-system-FreeBSD-8.3 8.3 .ds doc-operating-system-FreeBSD-8.4 8.4 .ds doc-operating-system-FreeBSD-9.1 9.1 +.ds doc-operating-system-FreeBSD-9.2 9.2 .ds doc-operating-system-FreeBSD-10.0 10.0 . .\" Definitions not (yet) in doc-syms From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 18:57:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9F0734D4; Sun, 11 Aug 2013 18:57:27 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8B10122D1; Sun, 11 Aug 2013 18:57:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BIvRhh080971; Sun, 11 Aug 2013 18:57:27 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BIvRSq080970; Sun, 11 Aug 2013 18:57:27 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308111857.r7BIvRSq080970@svn.freebsd.org> From: Glen Barber Date: Sun, 11 Aug 2013 18:57:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254224 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 18:57:27 -0000 Author: gjb Date: Sun Aug 11 18:57:27 2013 New Revision: 254224 URL: http://svnweb.freebsd.org/changeset/base/254224 Log: - Update the wrapper script to 'release.sh', as used by the FreeBSD Release Engineering Team as of 9.2-RELEASE. - Document that a cross-build release is possible by setting the TARGET and TARGET_ARCH variables. - Include an example of using release.sh with and without the optional configuration file. - Document the supported release.sh configuration file variables. - Update the 'cdrom' target output file to disc1.iso. - Update the 'memstick' target output file to memstick.img. - Add attributions for the last major updates to this manual page. - Fix some mdoc(7) style nits: - Sentences should begin on a new line - Use .Pq to enclose full lines in parenthesis Modified: head/share/man/man7/release.7 Modified: head/share/man/man7/release.7 ============================================================================== --- head/share/man/man7/release.7 Sun Aug 11 18:05:20 2013 (r254223) +++ head/share/man/man7/release.7 Sun Aug 11 18:57:27 2013 (r254224) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 3, 2013 +.Dd August 11, 2013 .Dt RELEASE 7 .Os .Sh NAME @@ -50,8 +50,9 @@ For some users, it may be desirable to p build environment, with no local modifications to the source tree or to .Xr make.conf 5 , and with clean checkouts of specific versions of the doc, src, and ports -trees. For this purpose, a script -.Pq Pa src/release/generate-release.sh +trees. +For this purpose, a script +.Pq Pa src/release/release.sh is provided to automate these checkouts and then execute .Dq Li "make release" in a clean @@ -70,86 +71,194 @@ and .Dq Li "make buildkernel" . This is necessary to provide the object files for the release or, when using -.Pa generate-release.sh , +.Pa release.sh , so that the object files for a complete system can be installed into a clean .Xr chroot 8 -environment. In this second case, the built world must be capable of running -on the build system (i.e. it must be for the same architecture and be -compatible with the installed kernel). +environment. +.Pp +If the target release build is for a different architecture or machine type, +the +.Va TARGET +and +.Va TARGET_ARCH +variables must be used. +See the supported +.Fa release.conf +variables for more information. +.Pp The release procedure on some architectures may also require that the .Xr md 4 (memory disk) device driver be present in the kernel -(either by being compiled in or available as a module). +.Pq either by being compiled in or available as a module . .Pp This document does not cover source code management, quality assurance, or other aspects of the release engineering process. .Sh CLEAN RELEASE GENERATION -Official releases of FreeBSD are produced in a totally clean environment to +Official releases of +.Fx +are produced in a totally clean environment to ensure consistency between the versions of the src, ports, and doc trees -and to avoid contamination from the host system (e.g. local patches, changes +and to avoid contamination from the host system +.Po such as local patches, changes to .Xr make.conf 5 , -etc.). This is accomplished using the wrapper script -.Pa src/release/generate-release.sh . -.Pp -.Ic generate-release.sh -svn-branch scratch-dir -.Pp -.Ic generate-release.sh -calls +etc. +.Pc . +This is accomplished using the wrapper script +.Pa src/release/release.sh . +.Pp +.Ic release.sh +.Op Fl c Ar release.conf +.Pp +.Ic release.sh +checks out the +.Li src/ , +.Li ports/ , +and +.Li doc/ +trees to +.Va CHROOTDIR , +then calls +.Dq Li "make buildworld" +and .Dq Li "make installworld" to generate a .Xr chroot 8 -environment in -.Ar scratch-dir . -It then checks out the src tree specified by -.Ar svn-branch -using -.Xr svn 1 . -Once the various source trees have been obtained, it executes +environment. +Next, .Dq Li "make release" -within the +is run within the .Xr chroot 8 environment and places the result in -.Pa $scratch-dir/R . -Note that because this uses a chroot, it cannot be used to cross-build -.Fx -release media. +.Pa $CHROOTDIR/R . .Pp -Optional environment variables: -.Bl -tag -width ".Cm WORLD_FLAGS" -.It Ev WORLD_FLAGS -This environment variable can be set to pass flags (e.g. -j) to -.Xr make 1 -when invoked to build a world by the script. -.It Ev KERNEL_FLAGS -This environment variable can be set to pass flags (e.g. -j) to -.Xr make 1 -when invoked to build a kernel by the script. -.It Ev SVNROOTBASE -The base part of URL of the FreeBSD SVN repositories. +The optional +.Fa release.conf +configuration file supports the following variables: +.Bl -tag -width Ev +.It Va CHROOTDIR +The directory within which the release will be built. +.It Va SVNROOT +The +.Xr svn 1 +host used to check out the various trees. Defaults to -.Pa svn://svn.freebsd.org . -.It Ev SVNROOTSRC -The URL of the FreeBSD SVN source repository. +.Pa svn://svn.FreeeBSD.org . +.It Va SRCBRANCH +The +.Li src/ +branch to use. Defaults to -.Pa ${SVNROOTBASE}/base . -.It Ev SVNROOTDOC -The URL of the FreeBSD SVN doc repository. +.Va head/ . +.It Va DOCBRANCH +The +.Li doc/ +branch to use. Defaults to -.Pa ${SVNROOTBASE}/doc . -.It Ev SVNROOTPORTS -The URL of the FreeBSD SVN ports repository. +.Va head/ . +.It Va PORTBRANCH +The +.Li ports/ +branch to use. Defaults to -.Pa ${SVNROOTBASE}/ports . -.It Ev BRANCHDOC -The branch name of the FreeBSD SVN doc repository. +.Va head/ . +.It Va SRCREVISION +The revision of the +.Li src/ +tree to use. +Defaults to the current top of tree revision. +.It Va DOCREVISION +The revision of the +.Li doc/ +tree to use. +Defaults to the current top of tree revision. +.It Va PORTREVISION +The revision of the +.Li ports/ +tree to use. +Defaults to the current top of tree revision. +.It Va TARGET +The target machine type for the release. +Defaults to the current machine type. +.It Va TARGET_ARCH +The target machine architecture for the release. +Defaults to the value of +.Va TARGET . +.Pp +For the supported list of +.Va TARGET +and +.Va TARGET_ARCH +combinations, consult the output of +.Dq make targets +as documented in +.Xr build 7 . +.It Va KERNEL +The target kernel configuration to use. Defaults to -.Pa head . -.It Ev BRANCHPORTS -The branch name of the FreeBSD SVN ports repository. +.Va GENERIC . +Multiple +.Va KERNEL +entries may be specified. +.It Va MAKE_CONF +The +.Xr make.conf 5 +to use for the release build. Defaults to -.Pa head . +.Fa /dev/null +to prevent polluting the release with local system changes. +.It Va SRC_CONF +The +.Xr src.conf 5 +to use for the release build. +Defaults to +.Fa /dev/null +to prevent polluting the release with local system changes. +.It Va MAKE_FLAGS +Additional flags to pass to +.Xr make 1 . +.It Va WORLD_FLAGS +Additional flags to pass to +.Xr make 1 +during the +.Dq buildworld +phase. +Defaults to setting the number of +.Xr make 1 +jobs +.Pq Ar -j +to the number of CPUs available on the system. +.It Va KERNEL_FLAGS +Additional flags to pass to +.Xr make 1 +during the +.Dq buildkernel +phase. +Defaults to setting the number of +.Xr make 1 +jobs +.Pq Ar -j +to half the number of CPUs available on the system. +.It Va NODOC +Set to a non-empty value to skip the +.Li doc/ +tree checkout. +When set, +.Va NODOC +will prevent the +.Fa doc.txz +distribution package from being created. +.It Va NOPORTS +Set to a non-empty value to skip the +.Li ports/ +tree checkout. +When set, +.Va NOPORTS +will prevent the +.Fa ports.txz +distribution package from being created. +Setting this also sets +.Va NODOC . .El .Sh MAKEFILE TARGETS The release makefile @@ -175,18 +284,19 @@ This may require the (memory disk) device driver be present in the kernel (either by being compiled in or available as a module). This target produces files called -.Pa release.iso +.Pa disc1.iso and .Pa bootonly.iso as its output. .It Cm memstick Builds an installation memory stick image named -.Pa memstick . +.Pa memstick.img . Not applicable on all platforms. Requires that the .Xr md 4 -(memory disk) device driver be present in the kernel -(either by being compiled in or available as a module). +.Pq memory disk +device driver be present in the kernel +.Pq either by being compiled in or available as a module . .It Cm ftp Creates a directory named .Pa ftp @@ -197,7 +307,8 @@ and suitable for upload to an FTP mirror Major subtargets called by targets above: .Bl -tag -width ".Cm packagesystem" .It Cm packagesystem -Generates all the distribution archives (e.g. base, kernel, ports, doc) +Generates all the distribution archives +.Pq base, kernel, ports, doc applicable on this platform. .It Cm system Builds a bootable installation system containing all the distribution files @@ -211,8 +322,9 @@ targets. .It Cm reldoc Builds the release documentation. This includes the release notes, -hardware guide, and installation instructions. Other documentation (e.g. -the Handbook) is built during the +hardware guide, and installation instructions. +Other documentation, such as the Handbook, +is built during the .Cm base.txz target invoked by .Cm packagesystem . @@ -221,20 +333,24 @@ target invoked by Optional variables: .Bl -tag -width ".Ev TARGET_ARCH" .It Ev OSRELEASE -Optional base name for generated media images (e.g. FreeBSD-9.0-RC2-amd64). +Optional base name for generated media images +.Pq e.g., FreeBSD-9.0-RC2-amd64 . Defaults to the output of .Ic `uname -s`-`uname -r`-`uname -p` within the chroot. .It Ev WORLDDIR -Location of a directory containing the src tree. By default, the directory +Location of a directory containing the src tree. +By default, the directory above the one containing the makefile .Pq Pa src . .It Ev PORTSDIR -Location of a directory containing the ports tree. By default, +Location of a directory containing the ports tree. +By default, .Pa /usr/ports . If it is unset or cannot be found, ports will not be included in the release. .It Ev DOCDIR -Location of a directory containing the doc tree. By default, +Location of a directory containing the doc tree. +By default, .Pa /usr/doc . If it is unset or cannot be found, most documentation will not be included in the release; see @@ -291,7 +407,8 @@ Typically, one only needs to set .It Pa /usr/src/Makefile .It Pa /usr/src/Makefile.inc1 .It Pa /usr/src/release/Makefile -.It Pa /usr/src/release/generate-release.sh +.It Pa /usr/src/release/release.sh +.It Pa /usr/src/release/release.conf.sample .El .Sh EXAMPLES The following sequence of commands can be used to build a @@ -316,12 +433,27 @@ The following sequence of commands can b in a clean environment, including ports and documentation: .Bd -literal -offset indent cd /usr/src/release -sh generate-release.sh head /local3/release +sh release.sh +.Ed +.Pp +Optionally, a configuration file can be used customize the release build, +such as the subversion revision to use, the branch of the subversion tree for +.Li src/ , +.Li ports/ , +and +.Li doc/ . +.Bd -literal -offset indent +cd /usr/src/release +sh release.sh -c $HOME/release.conf .Ed .Pp After running these commands, all prepared release files are available in the -.Pa /local3/release/R +.Pa /scratch directory. +The target directory can be changed by specifying the +.Va CHROOTDIR +variable in +.Li release.conf . .Sh SEE ALSO .Xr cc 1 , .Xr install 1 , @@ -372,6 +504,16 @@ was overhauled and the wrapper script .Pa src/release/generate-release.sh introduced to support the introduction of a new installer. .Pp +For the +.Fx 9.2 +release, +.Pa src/release/release.sh +was introduced to support per-build configuration files. +.Pa src/release/release.sh +is heavily based on the +.Pa src/release/generate-release.sh +script. +.Pp At near 1000 revisions spread over multiple branches, the .Xr svn 1 log of @@ -386,5 +528,22 @@ was originally written by .An Jordan Hubbard , and .An Poul-Henning Kamp . -This manual page was written by +.Pp +This manual page was originally written by .An Murray Stokely Aq murray@FreeBSD.org . +.Pp +It was updated by +.An Nathan Whitehorn Aq nwhitehorn@FreeBSD.org +to include the +.Fa generate-release.sh +script used for the +.Fx 9.0 +release cycle. +.Pp +It was later updated by +.An Glen Barber Aq gjb@FreeBSD.org +to include the +.Fa release.sh +script used for the +.Fx 9.2 +release cycle. From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 20:03:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 93ACE431; Sun, 11 Aug 2013 20:03:15 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7D6D7256A; Sun, 11 Aug 2013 20:03:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BK3FOf006877; Sun, 11 Aug 2013 20:03:15 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BK3Dqt006856; Sun, 11 Aug 2013 20:03:13 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308112003.r7BK3Dqt006856@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 20:03:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254225 - in head: . contrib/nvi contrib/nvi/build contrib/nvi/catalog contrib/nvi/cl contrib/nvi/clib contrib/nvi/common contrib/nvi/docs/USD.doc/vi.man contrib/nvi/ex contrib/nvi/incl... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 20:03:15 -0000 Author: peter Date: Sun Aug 11 20:03:12 2013 New Revision: 254225 URL: http://svnweb.freebsd.org/changeset/base/254225 Log: Update nvi-1.79 to 2.1.1-4334a8297f This is the gsoc-2011 project to clean up and backport multibyte support from other nvi forks in a form we can use. USE_WIDECHAR is on unless building for the rescue crunchgen. This should allow editing in the native locale encoding. USE_ICONV depends on make.conf having 'WITH_ICONV=YES' for now. This adds the ability to do things like edit a KOI8-R file while having $LANG set to (say) en_US.UTF-8. iconv is used to transcode the characters for display. Other points: * It uses gencat and catopen/etc instead of homegrown msg catalog stuff. * A lot of stuff has been trimmed out, eg: the perl and tcl bindings which we could never use in base anyway. * It uses ncursesw when in widechar mode. This could be interesting. GSoC info: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1 Repo at: https://github.com/lichray/nvi2 Obtained from: Zhihao Yuan Added: head/contrib/nvi/catalog/zh_CN.GB2312.base (contents, props changed) head/contrib/nvi/catalog/zh_CN.GB2312.owner head/contrib/nvi/cl/extern.h (contents, props changed) head/contrib/nvi/common/conv.c (contents, props changed) head/contrib/nvi/common/conv.h (contents, props changed) head/contrib/nvi/common/encoding.c (contents, props changed) head/contrib/nvi/common/extern.h (contents, props changed) head/contrib/nvi/common/multibyte.h (contents, props changed) head/contrib/nvi/common/options_def.h (contents, props changed) head/contrib/nvi/ex/ex_def.h (contents, props changed) head/contrib/nvi/ex/extern.h (contents, props changed) head/contrib/nvi/regex/ head/contrib/nvi/regex/COPYRIGHT head/contrib/nvi/regex/WHATSNEW head/contrib/nvi/regex/cclass.h (contents, props changed) head/contrib/nvi/regex/cname.h (contents, props changed) head/contrib/nvi/regex/engine.c (contents, props changed) head/contrib/nvi/regex/re_format.7 (contents, props changed) head/contrib/nvi/regex/regcomp.c (contents, props changed) head/contrib/nvi/regex/regerror.c (contents, props changed) head/contrib/nvi/regex/regex.3 (contents, props changed) head/contrib/nvi/regex/regex.h (contents, props changed) head/contrib/nvi/regex/regex2.h (contents, props changed) head/contrib/nvi/regex/regexec.c (contents, props changed) head/contrib/nvi/regex/regfree.c (contents, props changed) head/contrib/nvi/regex/utils.h (contents, props changed) head/contrib/nvi/vi/extern.h (contents, props changed) head/usr.bin/vi/catalog/ head/usr.bin/vi/catalog/Makefile (contents, props changed) Deleted: head/contrib/nvi/FAQ head/contrib/nvi/LAYOUT head/contrib/nvi/build/ head/contrib/nvi/catalog/dutch head/contrib/nvi/catalog/dutch.check head/contrib/nvi/catalog/english head/contrib/nvi/catalog/english.base head/contrib/nvi/catalog/english.check head/contrib/nvi/catalog/french head/contrib/nvi/catalog/french.check head/contrib/nvi/catalog/german head/contrib/nvi/catalog/german.check head/contrib/nvi/catalog/polish head/contrib/nvi/catalog/polish.check head/contrib/nvi/catalog/ru_RU.KOI8-R head/contrib/nvi/catalog/ru_RU.KOI8-R.check head/contrib/nvi/catalog/spanish head/contrib/nvi/catalog/spanish.check head/contrib/nvi/catalog/swedish head/contrib/nvi/catalog/swedish.check head/contrib/nvi/catalog/uk_UA.KOI8-U head/contrib/nvi/cl/cl_bsd.c head/contrib/nvi/clib/ head/contrib/nvi/common/api.c head/contrib/nvi/ex/ex_perl.c head/contrib/nvi/ex/ex_tcl.c head/contrib/nvi/include/ head/contrib/nvi/ip/ head/contrib/nvi/ip_cl/ head/contrib/nvi/perl_api/ head/contrib/nvi/perl_scripts/ head/contrib/nvi/tcl_api/ head/contrib/nvi/tcl_scripts/ head/contrib/nvi/tk/ head/usr.bin/vi/port.h Modified: head/Makefile.inc1 head/contrib/nvi/LICENSE head/contrib/nvi/README head/contrib/nvi/catalog/Makefile head/contrib/nvi/catalog/README head/contrib/nvi/catalog/dump.c head/contrib/nvi/catalog/dutch.base (contents, props changed) head/contrib/nvi/catalog/french.base (contents, props changed) head/contrib/nvi/catalog/german.base (contents, props changed) head/contrib/nvi/catalog/german.owner head/contrib/nvi/catalog/polish.base (contents, props changed) head/contrib/nvi/catalog/ru_RU.KOI8-R.base (contents, props changed) head/contrib/nvi/catalog/ru_RU.KOI8-R.owner head/contrib/nvi/catalog/spanish.base (contents, props changed) head/contrib/nvi/catalog/swedish.base (contents, props changed) head/contrib/nvi/catalog/uk_UA.KOI8-U.base (contents, props changed) head/contrib/nvi/cl/README.signal head/contrib/nvi/cl/cl.h head/contrib/nvi/cl/cl_funcs.c head/contrib/nvi/cl/cl_main.c head/contrib/nvi/cl/cl_read.c head/contrib/nvi/cl/cl_screen.c head/contrib/nvi/cl/cl_term.c head/contrib/nvi/common/args.h head/contrib/nvi/common/common.h head/contrib/nvi/common/cut.c head/contrib/nvi/common/cut.h head/contrib/nvi/common/delete.c head/contrib/nvi/common/exf.c head/contrib/nvi/common/exf.h head/contrib/nvi/common/gs.h head/contrib/nvi/common/key.c head/contrib/nvi/common/key.h head/contrib/nvi/common/line.c head/contrib/nvi/common/log.c head/contrib/nvi/common/main.c head/contrib/nvi/common/mark.c head/contrib/nvi/common/mark.h head/contrib/nvi/common/mem.h head/contrib/nvi/common/msg.c head/contrib/nvi/common/msg.h head/contrib/nvi/common/options.c head/contrib/nvi/common/options.h head/contrib/nvi/common/options_f.c head/contrib/nvi/common/put.c head/contrib/nvi/common/recover.c head/contrib/nvi/common/screen.c head/contrib/nvi/common/screen.h head/contrib/nvi/common/search.c head/contrib/nvi/common/seq.c head/contrib/nvi/common/seq.h head/contrib/nvi/common/util.c head/contrib/nvi/common/util.h head/contrib/nvi/docs/USD.doc/vi.man/vi.1 head/contrib/nvi/ex/ex.c head/contrib/nvi/ex/ex.h head/contrib/nvi/ex/ex_abbrev.c head/contrib/nvi/ex/ex_append.c head/contrib/nvi/ex/ex_args.c head/contrib/nvi/ex/ex_argv.c head/contrib/nvi/ex/ex_at.c head/contrib/nvi/ex/ex_bang.c head/contrib/nvi/ex/ex_cd.c head/contrib/nvi/ex/ex_cmd.c head/contrib/nvi/ex/ex_cscope.c head/contrib/nvi/ex/ex_delete.c head/contrib/nvi/ex/ex_display.c head/contrib/nvi/ex/ex_edit.c head/contrib/nvi/ex/ex_equal.c head/contrib/nvi/ex/ex_file.c head/contrib/nvi/ex/ex_filter.c head/contrib/nvi/ex/ex_global.c head/contrib/nvi/ex/ex_init.c head/contrib/nvi/ex/ex_join.c head/contrib/nvi/ex/ex_map.c head/contrib/nvi/ex/ex_mark.c head/contrib/nvi/ex/ex_mkexrc.c head/contrib/nvi/ex/ex_move.c head/contrib/nvi/ex/ex_open.c head/contrib/nvi/ex/ex_preserve.c head/contrib/nvi/ex/ex_print.c head/contrib/nvi/ex/ex_put.c head/contrib/nvi/ex/ex_quit.c head/contrib/nvi/ex/ex_read.c head/contrib/nvi/ex/ex_screen.c head/contrib/nvi/ex/ex_script.c head/contrib/nvi/ex/ex_set.c head/contrib/nvi/ex/ex_shell.c head/contrib/nvi/ex/ex_shift.c head/contrib/nvi/ex/ex_source.c head/contrib/nvi/ex/ex_stop.c head/contrib/nvi/ex/ex_subst.c head/contrib/nvi/ex/ex_tag.c head/contrib/nvi/ex/ex_txt.c head/contrib/nvi/ex/ex_undo.c head/contrib/nvi/ex/ex_usage.c head/contrib/nvi/ex/ex_util.c head/contrib/nvi/ex/ex_version.c head/contrib/nvi/ex/ex_visual.c head/contrib/nvi/ex/ex_write.c head/contrib/nvi/ex/ex_yank.c head/contrib/nvi/ex/ex_z.c head/contrib/nvi/ex/script.h head/contrib/nvi/ex/tag.h head/contrib/nvi/ex/version.h head/contrib/nvi/vi/getc.c head/contrib/nvi/vi/v_at.c head/contrib/nvi/vi/v_ch.c head/contrib/nvi/vi/v_cmd.c head/contrib/nvi/vi/v_delete.c head/contrib/nvi/vi/v_ex.c head/contrib/nvi/vi/v_increment.c head/contrib/nvi/vi/v_init.c head/contrib/nvi/vi/v_itxt.c head/contrib/nvi/vi/v_left.c head/contrib/nvi/vi/v_mark.c head/contrib/nvi/vi/v_match.c head/contrib/nvi/vi/v_paragraph.c head/contrib/nvi/vi/v_put.c head/contrib/nvi/vi/v_redraw.c head/contrib/nvi/vi/v_replace.c head/contrib/nvi/vi/v_right.c head/contrib/nvi/vi/v_screen.c head/contrib/nvi/vi/v_scroll.c head/contrib/nvi/vi/v_search.c head/contrib/nvi/vi/v_section.c head/contrib/nvi/vi/v_sentence.c head/contrib/nvi/vi/v_status.c head/contrib/nvi/vi/v_txt.c head/contrib/nvi/vi/v_ulcase.c head/contrib/nvi/vi/v_undo.c head/contrib/nvi/vi/v_util.c head/contrib/nvi/vi/v_word.c head/contrib/nvi/vi/v_xchar.c head/contrib/nvi/vi/v_yank.c head/contrib/nvi/vi/v_z.c head/contrib/nvi/vi/v_zexit.c head/contrib/nvi/vi/vi.c head/contrib/nvi/vi/vi.h head/contrib/nvi/vi/vs_line.c head/contrib/nvi/vi/vs_msg.c head/contrib/nvi/vi/vs_refresh.c head/contrib/nvi/vi/vs_relative.c head/contrib/nvi/vi/vs_smap.c head/contrib/nvi/vi/vs_split.c head/usr.bin/vi/Makefile head/usr.bin/vi/config.h head/usr.bin/vi/pathnames.h Directory Properties: head/contrib/nvi/ (props changed) Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Sun Aug 11 18:57:27 2013 (r254224) +++ head/Makefile.inc1 Sun Aug 11 20:03:12 2013 (r254225) @@ -1331,7 +1331,8 @@ build-tools: .MAKE usr.bin/awk \ lib/libmagic \ usr.bin/mkesdb_static \ - usr.bin/mkcsmapper_static + usr.bin/mkcsmapper_static \ + usr.bin/vi/catalog ${_+_}@${ECHODIR} "===> ${_tool} (obj,build-tools)"; \ cd ${.CURDIR}/${_tool} && \ ${MAKE} DIRPRFX=${_tool}/ obj && \ Modified: head/contrib/nvi/LICENSE ============================================================================== --- head/contrib/nvi/LICENSE Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/LICENSE Sun Aug 11 20:03:12 2013 (r254225) @@ -1,14 +1,19 @@ -The vi program is freely redistributable. You are welcome to copy, modify -and share it with others under the conditions listed in this file. If any -company (not any individual!) finds vi sufficiently useful that you would -have purchased it, or if any company wishes to redistribute it, contributions -to the authors would be appreciated. - /*- + * $Id: LICENSE,v 8.18 2011/07/10 11:58:35 zy Exp $ + */ + +The following are the copyrights and redistribution conditions that apply +to this copy of the Vi software. + +/* * Copyright (c) 1991, 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. - * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996 + * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 * Keith Bostic. All rights reserved. + * Copyright (c) 1999, 2000 + * Sven Verdoolaege. All rights reserved. + * Copyright (c) 2011 + * Zhihao Yuan. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -18,11 +23,7 @@ to the authors would be appreciated. * 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 + * 3. 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. * Modified: head/contrib/nvi/README ============================================================================== --- head/contrib/nvi/README Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/README Sun Aug 11 20:03:12 2013 (r254225) @@ -1,31 +1,32 @@ -# @(#)README 8.147 (Berkeley) 10/19/96 +# $Id: README,v 9.0 2012/10/07 09:13:54 zy Exp $ -This is the README for nex/nvi, a freely redistributable implementation -of the ex/vi text editors originally distributed as part of the Fourth -Berkeley Software Distribution (4BSD), by the University of California, -Berkeley. - -The source code for nex/nvi can be retrieved by using anonymous ftp to -ftp.cs.berkeley.edu. The file ucb/4bsd/nvi.tar.gz is the gzip'd archive, -of version 1.71 of nex/nvi. This version is believed to be stable and -problem free. The file ucb/4bsd/nvi-###.ALPHA.tar.gz is a gzip'd archive -of the current alpha-test release of nex/nvi. This version reflects the -current development tree, and will be more likely to have problems. - -See the file: - build/README for information on building nvi. - LAYOUT for a description of where everything is. - LICENSE for the copyright and redistribution terms. - -If you have any questions about nex/nvi, problems with it, or concerns -about the conditions for redistribution, please contact me: - - Keith Bostic +1-508-287-4781 - 394 E. Riding Dr. bostic@bostic.com - Carlisle, MA 01741 - USA +This is version 2.1.1 (2012-10-07) of nex/nvi, a reimplementation of the ex/vi +text editors originally distributed as part of the Fourth Berkeley +Software Distribution (4BSD), by the University of California, Berkeley. + +The directory layout is as follows: + + LICENSE ....... Copyright, use and redistribution information. + README ........ This file. + build ......... Build directory. + catalog ....... Message catalogs; see catalog/README. + cl ............ Vi interface to the curses(3) library. + common ........ Code shared by ex and vi. + docs .......... Ex/vi documentation, both current and historic. + ex ............ Ex source code. + regex ......... Modified regex library with wide character support. + vi ............ Vi source code. -Keith Bostic +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= + +o Nvi was written by Keith Bostic, and the last version is 1.79. After that, + + Sven Verdoolaege added the iconv support and the DB3 locking. + + Jun-ichiro itojun Hagino developed the file encoding detection + techniques in his nvi-m17n. + +The following acknowledgments were written by Keith Bostic: =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= o This software is several years old and is the product of many folks' work. @@ -63,51 +64,3 @@ o From the original vi acknowledgements, o And... The financial support of UUNET Communications Services is gratefully acknowledged. - -=-=-=-=-=-=-=-=-=-=-= -o Status: - -This software is in beta test, and it's pretty stable. Almost all of the -historic functionality in ex/vi is there, the only major missing pieces -are open mode and the lisp edit option. - -Nvi is largely 8-bit clean. This isn't difficult to fix, and was left in -during initial development to keep things simple. Wide character support -will be integrated at the same time that it is made fully 8-bit clean. - -There aren't a lot of new features in nex/nvi, but there are a few things -you might like. The "Additional Features" section of the reference work -(docs/USD.doc/vi.ref/vi.ref.txt, docs/USD.doc/vi.ref/vi.ref.ps) has more -information. - -=-=-=-=-=-=-=-=-=-=-= -o Debugging: - -Code fixes are greatly appreciated, of course, but if you can't provide -them, please email me as much information as you can as to how I might -reproduce the bug, and I'll try to fix it locally. Stack traces of core -dumps are only rarely helpful -- an example file with a set of keystrokes -that causes the problem is almost invariably necessary. I know it's -annoying, but simply playing with the bug until you can reproduce it at -will, with minimal keystrokes, is immensely helpful to me. - -Please include the following in the bug report; - - o The version of nvi you're running (use :version to get it). - o The row/column dimensions of the screen (80 x 32). - o Unless you're confident that they're not part of the problem, - your startup files (.exrc, .nexrc) and the environment variable - (EXINIT, NEXINIT) values. (Cutting and pasting the output - of ":set all" is usually sufficient.) - -If you want to do your own debugging, recompile the program with DEBUG -defined. (Configuring with --enable-debug will do this for you.) This -turns on the additional command-line option -D, that takes either s or w -as an argument. The option -Ds causes nvi to ignore the EXINIT and -.exrc files on startup, and -Dw causes nvi to print out the process id -and wait for you to enter a to continue. - -If you're running a memory checker (e.g. Purify) on nvi, you will first -want to recompile everything with "-DPURIFY" set in the CFLAGS. This -initializes allocated pages in the DB code, and free's allocated memory -at the end of the nvi execution. Modified: head/contrib/nvi/catalog/Makefile ============================================================================== --- head/contrib/nvi/catalog/Makefile Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/Makefile Sun Aug 11 20:03:12 2013 (r254225) @@ -1,7 +1,8 @@ -# @(#)Makefile 8.29 (Berkeley) 10/19/96 +# $Id: Makefile,v 9.0 2012/10/19 15:13:11 zy Exp $ -CAT= dutch english french german polish ru_SU.KOI8-R spanish swedish -FILES= ../cl/*.c ../common/*.c ../ex/*.c ../tk/*.c ../vi/*.c +CAT= dutch english french german polish ru_RU.KOI8-R spanish swedish \ + uk_UA.KOI8-U zh_CN.GB2312 +FILES= ../cl/*.c ../common/*.c ../ex/*.c ../vi/*.c all: dump ${CAT} @@ -18,13 +19,10 @@ ${CAT}: english.base print "DUPLICATE MESSAGE NUMBER " $$1; \ exit 1; \ } \ - for (; nline < $$1; ++nline) \ - print ""; \ print $0; \ }' | \ - sed -e '1s/^/VI_MESSAGE_CATALOG/' \ - -e '/"/s/^[^"]*"//' \ - -e '1!s/"$$/X/' > $@; \ + sed -e '1s/^/$$set 1~$$quote "~/; 1y/~/\n/' | \ + gencat $@ /dev/stdin; \ chmod 444 $@; \ if grep DUPLICATE $@ > /dev/null; then \ grep DUPLICATE $@; \ @@ -34,7 +32,8 @@ ${CAT}: english.base fi CHK= dutch.check english.check french.check german.check \ - polish.check ru_SU.KOI8-R.check spanish.check swedish.check + polish.check ru_RU.KOI8-R.check spanish.check swedish.check \ + uk_UA.KOI8-U.check zh_CN.GB2312.check check: ${CHK} ${CHK}: ${CAT} @echo "... $@"; \ @@ -63,19 +62,14 @@ ${CHK}: ${CAT} echo "Duplicate messages, both id and message (this is okay):"; \ sed '/^$$/d' < $$f.base | sort | uniq -c | \ awk '$$1 != 1 { print $$0 }' | sort -n; \ - echo =========================; \ - echo "Duplicate messages, just message (this is okay):"; \ - sed '/^$$/d' < $$f | sort | uniq -c | \ - awk '$$1 != 1 { print $$0 }' | sort -n; \ echo =========================) > $@ english.base: dump ${FILES} #Makefile ./dump ${FILES} |\ sed -e '/|/!d' \ -e 's/|/ "/' \ - -e 's/^"//' \ - -e 's/\\"/"/g' |\ - sort -n > $@ + -e 's/^"//' |\ + sort -nu > $@ dump: dump.c ${CC} -O -o dump dump.c Modified: head/contrib/nvi/catalog/README ============================================================================== --- head/contrib/nvi/catalog/README Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/README Sun Aug 11 20:03:12 2013 (r254225) @@ -1,15 +1,9 @@ -# @(#)README 8.4 (Berkeley) 11/22/94 +# $Id: README,v 9.0 2012/10/19 17:06:15 zy Exp $ Generally, all non-system error and informational messages in nvi are catalog messages, i.e. they can be tailored to a specific langauge. -Command strings, usage strings, system errors and other "known text" -are not. It would certainly be possible to internationalize all the -text strings in nvi, but it's unclear that it's the right thing to do. - -First, there's no portable way to do message catalogs. The System V -scheme is a reasonable choice, but none of the 4BSD derived systems -support it. So, catalogs are completely implemented within nvi, and -don't require any library support. +Command strings, usage strings, system errors and other 'known text' +are not. Message catalogs in nvi are fairly simple. Every catalog message consists of two parts -- an initial number followed by a pipe (`|') @@ -33,19 +27,7 @@ For example: msgq(sp, M_ERR, "002|Error: %d %x", arg1, arg2); -is a format string that displays two arguments. It is possible, however, -to reorder the arguments or to not display all of them. The convention -nvi uses is the System V printf(3) convention, i.e. "%[0-9]*$" is the name -of a specific, numbered argument. For example: - - msgq(sp, M_ERR, "002|Error: %2$d %1$x", arg1, arg2); - -displays the arguments in reverse order. - -If the system supports this convention in its library printf routines -(as specified by the test #define NL_ARGMAX), nvi uses those routines. -Otherwise, there is some serious magic going on in common/msg.c to make -this all work. +is a format string that displays two arguments. Arguments to the msgq function are required to contain ONLY printable characters. No further translation is done by the msgq routine before @@ -54,14 +36,16 @@ displaying the message on the screen. F msgq(sp, M_ERR, "003|File: %s", file_name); "file_name" must contain only printable characters. The routine -msg_print() returns a printable version of a string in allocated -memory. For example: +msg_print() returns a printable version of a string; the third argument +indicates whether the string needs to be freed. For example: char *p; + int nf; - p = msg_print(sp, file_name); - msgq(sp, M_ERR, M("003", "File: %s"), p); - FREE_SPACE(sp, p, 0); + p = msg_print(sp, file_name, &nf); + msgq(sp, M_ERR, "003|File: %s", p); + if (nf) + FREE_SPACE(sp, p, 0); makes sure that "file_name" is printable before calling the msgq routine. @@ -71,63 +55,40 @@ routine. The message catalogs themselves are maintained in two files. The first is the "base file" which contains two fields, a record number and the message itself. All base files are named using the convention -"vi_.base", e.g. the English one is "vi_english.base". For +".base", e.g. the English one is "english.base". For example: - 002 "Unable to create temporary file" - 003 "Warning: %s is not a regular file" - 004 "%s already locked, session is read-only" - 005 "%s: remove" - 006 "%s: close" - 007 "%s: remove" - 008 "%s: remove" - 009 "Read-only file, not written; use ! to override" - 010 "Read-only file, not written" - -are the first few lines of the current vi_english.base file. Note that -message #1 is missing -- the first message of each catalog is a special -one, so that nvi can recognize message catalog files. It's added by the -Makefile script that creates the second version of the message catalog. - -The second file is the file used by nvi to access messages, and is a list -of the messages, one per line: - - VI_MESSAGE_CATALOG - Unable to create temporary fileX - Warning: %s is not a regular fileX - %s already locked, session is read-onlyX - %s: removeX - %s: closeX - %s: removeX - %s: removeX - Read-only file, not written; use ! to overrideX - Read-only file, not writtenX - -Note that all messages have had a trailing 'X' character appended. This -is to provide nvi a place to store a trailing nul for the message so that -C library routines that expect one won't be disappointed. + 002 "Line length overflow" + 003 "unable to delete line %lu" + 004 "unable to append to line %lu" + 005 "unable to insert at line %lu" + 006 "unable to store line %lu" + 007 "unable to get last line" + +are the first few lines of the current english.base file. + +Before this file being converted to the second file, the POSIX formatted +message catalog file, by gencat(1), two lines: + + $set 1 + $quote " + +will be inserted before the base text to setup the set_id and the quote +character. So the double-quote needs to be escaped by a backslash to be +included in a message; same as the backslash itself. -These files are named for their language, e.g. "vi_english". The second -files are automatically created from the first files. +These files are named for their language, e.g. "english". However, a +locale(1) name is also recommended. To create a new catalog for nvi: -Copy the file vi_english.base to a file that you can modify , e.g. "cp -vi_english.base vi_german.base". For each of the messages in the file, -replace the message with the string that you want to use. To find out -what the arguments to a message are, I'm afraid you'll have to search -the source code for the message number. You can find them fairly quickly -by doing: - - cd ..; egrep '123\|' */*.[chys] - -I'm sorry that there's not an easier way, but I couldn't think of -anything that wasn't a lot of work. - -If, for some reason, you don't have the file vi_english.base, or you -have new sources for which you want to create a new base catalog, you -can create it by running the command "make english" in the catalog -directory. +Copy the file english.base to a file that you can modify , e.g. "cp +english.base german.base". For each of the messages in the file, +replace the message with the string that you want to use. If you have +doubts about the meaning of a message, just email me. + +A latest english.base can be created from source by running the command +"make english" in the catalog/ directory. Once you've translated all of the strings, then add your catalog to the "CAT=" line of the Makefile, and run the command "make catalog". This @@ -156,11 +117,11 @@ a single place. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= To select a catalog when running nvi, set the "msgcat" option. If the value of this option ends with a '/', it is treated as the name of a -directory that contains a message catalog "vi_XXXX", where XXXX is the -value of the LANG environmental variable, if it's set, or the value of -the LC_MESSAGES environmental variable if it's not. If neither of those -environmental variables are set, or if the option doesn't end in a '/', -the option is treated as the full path name of the message catalog to use. +directory that contains a message catalog "$LC_MESSAGES", which is set +through the LC_MESSAGES environment variable but returned by setlocale(3). +Check the output of locale(1) to validate such a value. If the option +doesn't end in a '/', the option is treated as the full path name of the +message catalog to use. If any messages are missing from the catalog, the backup text (English) is used instead. Modified: head/contrib/nvi/catalog/dump.c ============================================================================== --- head/contrib/nvi/catalog/dump.c Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/dump.c Sun Aug 11 20:03:12 2013 (r254225) @@ -105,10 +105,10 @@ main(argc, argv) for (; *argv != NULL; ++argv) { if ((fp = fopen(*argv, "r")) == NULL) { perror(*argv); - exit (1); + return (1); } parse(fp); (void)fclose(fp); } - exit (0); + return (0); } Modified: head/contrib/nvi/catalog/dutch.base ============================================================================== --- head/contrib/nvi/catalog/dutch.base Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/dutch.base Sun Aug 11 20:03:12 2013 (r254225) @@ -43,8 +43,7 @@ 044 "De lisp optie is niet ondersteund" 045 "messages niet uitgeschakeld: %s" 046 "messages niet geactiveerd: %s" -048 "De paragraph optie moet karakter paren bevatten" -049 "De section optie moet karakter paren bevatten" +047 "De %s optie moet karakter paren bevatten" 053 "De standaard buffer is leeg" 054 "Buffer %s is leeg" 055 "Bestanden met newlines in de naam kunnen niet hersteld worden" @@ -97,16 +96,16 @@ 103 "Ongeldig adres: het bestand is leeg" 104 "Het %s commando staat het adres 0 niet toe" 105 "Geen afkortingen om weer te geven" -106 "Afkortingen moeten eindigen met een "woord" letter" +106 "Afkortingen moeten eindigen met een \"woord\" letter" 107 "Afkortingen mogen geen tabulaties of spaties bevatten" 108 "Afkortingen mogen geen woord/niet-woord karakters mengen, behalve aan het einde" -109 ""%s" is geen afkorting" +109 "\"%s\" is geen afkorting" 110 "Vi commando mislukt: gemappede toetsen genegeerd" 111 "Dit is het laatste bestand" 112 "Dit is het eerste bestand" 113 "Dit is het eerste bestand" 114 "lijst met bestanden is leeg" -115 "Geen voorgaand commando om "!" te vervangen" +115 "Geen voorgaand commando om \"!\" te vervangen" 116 "Geen bestandsnaam voor %%" 117 "Geen bestandsnaam voor #" 118 "Fout: execl: %s" @@ -119,14 +118,14 @@ 125 "%s/%s: niet gelezen: noch U noch root is de eigenaar" 126 "%s/%s: niet gelezen: U bent niet de eigenaar" 127 "%s/%s: niet gelezen: kan gewijzigd worden door andere gebruikers" -128 "%s: niet gelezen: noch U noch root is de eigenaar"" +128 "%s: niet gelezen: noch U noch root is de eigenaar" 129 "%s: niet gelezen: U bent niet de eigenaar" 130 "%s: niet gelezen: kan gewijzigd worden door andere gebruikers" 131 "Geen volgende regel om samen te voegen" 132 "Geen input map entries" 133 "Geen command map entries" 134 "Het %s karakter kan niet ge-remapped worden" -135 ""%s" is niet gemapped" +135 "\"%s\" is niet gemapped" 136 "Merk naam moet een enkel karakter zijn" 137 "%s bestaat al, niet weggeschreven; gebruik ! om het te forceren" 138 "Nieuw .exrc bestand: %s. " @@ -296,7 +295,7 @@ 306 "Vi was niet geladen met een Perl interpreter" 307 "Geen ex commando om uit te voeren" 308 "Kies om commando uit te voeren, :q om te stoppen" -309 "Gebruik "cscope help" voor uitleg" +309 "Gebruik \"cscope help\" voor uitleg" 310 "Nog geen cscope connectie aanwezig" 311 "%s: onbekend zoek type: gebruik een van %s" 312 "%d: onbekende cscope sessie" Modified: head/contrib/nvi/catalog/french.base ============================================================================== --- head/contrib/nvi/catalog/french.base Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/french.base Sun Aug 11 20:03:12 2013 (r254225) @@ -43,8 +43,7 @@ 044 "L'option lisp n'est pas implémentée" 045 "Les messages ne sont pas désactivés : %s" 046 "Les messages ne sont pas activés : %s" -048 "L'option de paragraphe doit être en groupe de deux caractères" -049 "L'option de section doit être en groupe de deux caractères" +047 "L'option de %s doit être en groupe de deux caractères" 053 "Le tampon par défaut est vide" 054 "Le tampon %s est vide" 055 "Les fichiers dont le nom contient des caractères de saut de ligne sont irrécupérables" @@ -97,16 +96,16 @@ 103 "Adresse non valide : le fichier est vide" 104 "La commande %s ne permet pas une adresse de 0" 105 "Pas d'abréviations à afficher" -106 "Les abréviations doivent finir par un caractère"mot" +106 "Les abréviations doivent finir par un caractère \"mot\"" 107 "Les abréviations ne peuvent pas contenir de tabulations ni d'espaces" 108 "Les abréviations ne peuvent pas contenir un mélange de caractères mot/non-mot, sauf à la fin" -109 ""%s" n'est pas une abréviation" +109 "\"%s\" n'est pas une abréviation" 110 "La commande Vi a échoué : Les touches affectées ont été abandonnées" 111 "Plus de fichiers à éditer" 112 "Pas de fichiers précédents à éditer" 113 "Pas de fichiers précédents à rembobiner" 114 "Pas de liste de fichiers à afficher" -115 "Pas de commande précédente à remplacer"!"" +115 "Pas de commande précédente à remplacer \"!\"" 116 "Pas de nom de fichier à substituer à %%" 117 "Pas de nom de fichier à substituer à #" 118 "Erreur : execl : %s" @@ -126,7 +125,7 @@ 132 "Pas d'entrées de mappage d'entrée" 133 "Pas d'entrées de mappage de commandes" 134 "Le caractère %s ne peut pas être remappé" -135 ""%s" n'est pas actuellement mappé" +135 "\"%s\" n'est pas actuellement mappé" 136 "Les noms de marque ne doivent avoir qu'un caractère" 137 "%s existe, non enregistré; utiliser ! pour outrepasser" 138 "Nouveau fichier exrc : %s" @@ -200,7 +199,6 @@ 207 "La commande Q nécessite une interface terminal ex" 208 "Pas de commande à répéter" 209 "Le fichier est vide" -209 "Le fichier est vide" 210 "Vous ne pouvez pas utiliser %s comme commande de déplacement" 211 "Déjà en mode commande" 212 "Le curseur n'est pas dans un mot" @@ -293,12 +291,11 @@ 302 "Vi n'a pas été chargé avec un interprétateur Tcl" 303 "Ficher modifié depuis le dernier enregistrement." 304 "L'expansion du shell a échoué" -304 "L'expansion du shell a échoué" 305 "Pas d'option d'édition %s spécifiée" 306 "Vi n'a pas été chargé avec un interprétateur Perl" 307 "Pas de commande ex à exécuter" 308 "Entrez pour exécuter une commande, :q pour quitter" -309 "Utiliser "cscope help" pour obtenir de l'aide" +309 "Utiliser \"cscope help\" pour obtenir de l'aide" 310 "Aucune connexion cscope n'est lancée" 311 "%s : type de recherche inconnu : utiliser un des %s" 312 "%d : Il n'existe pas de telle session cscope" Modified: head/contrib/nvi/catalog/german.base ============================================================================== --- head/contrib/nvi/catalog/german.base Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/german.base Sun Aug 11 20:03:12 2013 (r254225) @@ -1,67 +1,66 @@ -002 "Zeilenlaengen Ueberlauf" -003 "kann Zeile %lu nicht loeschen" -004 "kann an Zeile %lu nicht anfuegen" -005 "kann in Zeile %lu nicht einfuegen" +002 "Zeilenlängen-Überlauf" +003 "kann Zeile %lu nicht löschen" +004 "kann an Zeile %lu nicht anfügen" +005 "kann in Zeile %lu nicht einfügen" 006 "kann Zeile %lu nicht speichern" 007 "kann letzte Zeile nicht lesen" 008 "Fehler: kann Zeile %lu nicht wiederherstellen" 009 "Protokolldatei" -010 "Keine Protokollierung aktiv, rueckgaengig machen nicht moeglich" -011 "Keine Aenderungen rueckgaengig zu machen" -012 "Keine Protokollierung aktiv, rueckgaengig machen nicht moeglich" -013 "Keine Protokollierung aktiv, Wiederholung von Aenderungen nicht moeglich" -014 "Keine Aenderungen zu wiederholen" +010 "Keine Protokollierung aktiv, Rückgängigmachen nicht möglich" +011 "Keine Änderungen rückgängig zu machen" +012 "Keine Protokollierung aktiv, Rückgängigmachen nicht möglich" +013 "Keine Protokollierung aktiv, Wiederholung von Änderungen nicht möglich" +014 "Keine Änderungen zu wiederholen" 015 "%s/%d: Protokollschreibfehler" -016 "Vi's Standardein- und ausgabe muss ein Terminal sein" +016 "Vi's Standardein- und -ausgabe muß ein Terminal sein" 017 "Marke %s: nicht gesetzt" -018 "Marke %s: die Zeile wurde geloescht" +018 "Marke %s: die Zeile wurde gelöscht" 019 "Marke %s: Cursorposition existiert nicht mehr" 020 "Fehler: " 021 "neue Datei" -022 "Name geaendert" -023 "geaendert" -024 "nicht geaendert" -025 "NICHT GELOCKED" +022 "Name geändert" +023 "geändert" +024 "nicht geändert" +025 "NICHT GELOCKT" 026 "nur zum Lesen" 027 "Zeile %lu von %lu [%ld%%]" 028 "leere Datei" 029 "Zeile %lu" 030 "Die Datei %s ist kein Meldungskatalog" -031 "Setzen der Voreinstellung fuer %s Option nicht moeglich" +031 "Setzen der Voreinstellung für %s Option nicht möglich" 032 "Benutzung: %s" 033 "set: keine %s Option: 'set all' zeigt alle Optionen mit Werten an" 034 "set: der [no]%s Option kann kein Wert zugewiesen werden" -035 "set: %s ist keine boolsche Option" +035 "set: %s ist keine Boolsche Option" 036 "set: %s Option: %s" -037 "set: %s Option: %s: Wert Ueberlauf" -038 "set: %s Option: %s ist eine ungueltige Zahl" -039 "set: %s ist keine boolsche Option" -040 "Anzeige hat zu wenig Spalten, weniger als %d" -041 "Anzeige hat zu viele Spalten, mehr als %d" -042 "Anzeige hat zu wenig Zeilen, weniger als %d" -043 "Anzeige hat zu viele Zeilen, mehr als %d" -044 "Die lisp Option ist nicht implementiert" -045 "Messages nicht abgeschalten: %s" -046 "Messages nicht eingeschalten: %s" -048 "Die paragraph Option muss Gruppen zu zwei Zeichen enthalten" -049 "Die section Option muss Gruppen zu zwei Zeichen enthalten" +037 "set: %s Option: %s: Werte-Überlauf" +038 "set: %s Option: %s ist eine ungültige Zahl" +039 "set: %s ist keine Boolsche Option" +040 "Bildschirm hat zu wenig Spalten, weniger als %d" +041 "Bildschirm hat zu viele Spalten, mehr als %d" +042 "Bildschirm hat zu wenig Zeilen, weniger als %d" +043 "Bildschirm hat zu viele Zeilen, mehr als %d" +044 "Die lisp-Option ist nicht implementiert" +045 "Meldungen nicht abgeschaltet: %s" +046 "Meldungen nicht eingeschaltet: %s" +047 "Die %s-Option muß Gruppen zu zwei Zeichen enthalten" 053 "Der Standardpuffer ist leer" 054 "Puffer %s ist leer" 055 "Dateien mit newlines im Namen sind nicht wiederherstellbar" -056 "Aenderungen nicht wiederherstellbar falls die Editorsitzung schief geht" -057 "kopiere Datei fuer Wiederherstellung ..." +056 "Änderungen nicht wiederherstellbar, falls die Editorsitzung schiefgeht" +057 "kopiere Datei für Wiederherstellung ..." 058 "Rettungsmechanismus funktioniert nicht: %s" -059 "Aenderungen nicht wiederherstellbar falls die Editorsitzung schief geht" +059 "Änderungen nicht wiederherstellbar, falls die Editorsitzung schiefgeht" 060 "Sicherung der Datei gescheitert: %s" -061 "kopiere Datei fuer Wiederherstellung ..." -062 "Informationen ueber den Benutzer mit id %u nicht gefunden" -063 "Wiederherstellungsdatei kann nicht gesperrt werden" -064 "Puffer der Wiederherstellungsdatei uebergelaufen" +061 "kopiere Datei für Wiederherstellung ..." +062 "Informationen über den Benutzer mit id %u nicht gefunden" +063 "Wiederherstellungsdatei kann nicht gelockt werden" +064 "Puffer der Wiederherstellungsdatei übergelaufen" 065 "Wiederherstellungsdatei" 066 "%s: Wiederherstellungsdatei hat falsches Format" 067 "%s: Wiederherstellungsdatei hat falsches Format" 068 "Keine von Ihnen lesbaren Dateien mit Namen %s zum Wiederherstellen" -069 "Es gibt aeltere Versionen dieser Datei von Ihnen zum Wiederherstellen" +069 "Es gibt ältere Versionen dieser Datei von Ihnen zum Wiederherstellen" 070 "Sie haben noch andere Dateien zum Wiederherstellen" 071 "schicke keine email: %s" 072 "Datei leer; nichts zu suchen" @@ -69,110 +68,110 @@ 074 "Kein altes Suchmuster" 075 "Suchmuster nicht gefunden" 076 "Dateianfang erreicht, ohne das Suchmuster zu finden" -077 "Suche umgeschlagen" +077 "Suche beginnt von vorn" 078 "suche ..." 079 "Keine nichtdruckbaren Zeichen gefunden" 080 "Unbekannter Kommandoname" -082 "%s: Kommando im ex Modus nicht verfuegbar" -083 "Count darf nicht Null sein" +082 "%s: Kommando im ex-Modus nicht verfügbar" +083 "Anzahl darf nicht Null sein" 084 "%s: falsche Zeilenangabe" 085 "Interner Syntaxtabellenfehler (%s: %s)" 086 "Benutzung: %s" -087 "%s: temporaerer Puffer nicht freigegeben" +087 "%s: temporärer Puffer nicht freigegeben" 088 "Flagoffset vor Zeile 1" 089 "Flagoffset hinter dem Dateiende" -090 "@ mit Bereich lief als Datei/Anzeige geaendert wurde" -091 "globales oder v-Kommando lief als Datei/Anzeige geaendert wurde" -092 "Ex Kommando misslungen: restliche Kommandoeingabe ignoriert" -093 "Ex Kommando misslungen: umdefinierte Tasten ungueltig" +090 "@ mit Bereich lief, als Datei/Anzeige geändert wurde" +091 "globales oder v-Kommando lief, als Datei/Anzeige geändert wurde" +092 "Ex-Kommando mißlungen: restliche Kommandoeingabe ignoriert" +093 "Ex-Kommando mißlungen: umdefinierte Tasten ungültig" 094 "Die zweite Adresse ist kleiner als die erste" 095 "Kein Markenname angegeben" 096 "\\ ohne folgenden / oder ?" 097 "Referenz auf eine negative Zeilennummer" 098 "Das Kommando %s ist unbekannt" -099 "Adresswert zu gross" -100 "Adresswert zu klein" -101 "Ungueltige Adresskombination" -102 "Ungueltige Adresse: nur %lu Zeilen in der Datei" -103 "Ungueltige Adresse: die Datei ist leer" +099 "Adreßwert zu groß" +100 "Adreßwert zu klein" +101 "Ungültige Adreßkombination" +102 "Ungültige Adresse: nur %lu Zeilen in der Datei" +103 "Ungültige Adresse: die Datei ist leer" 104 "Das Kommando %s erlaubt keine Adresse 0" -105 "Keine Abkuerzungen zum Anzeigen" -106 "Abkuerzungen muessen mit einem "Wort"-Zeichen enden" -107 "Abkuerzungen duerfen keine Tabulator- oder Leerzeichen enthalten" -108 "In Abkuerzungen duerfen ausser am Ende Wort- und Nicht-Wort-Zeichen nicht gemischt werden" -109 ""%s" ist keine Abkuerzung" -110 "Vi Kommando misslungen: umdefinierte Tasten ungueltig" -111 "Keine weiteren Dateien zu edieren" -112 "Keine vorhergehenden Dateien zu edieren" -113 "Keine vorhergehenden Dateien fuer rewind" +105 "Keine Abkürzungen zum Anzeigen" +106 "Abkürzungen müssen mit einem \"Wort\"-Zeichen enden" +107 "Abkürzungen dürfen keine Tabulator- oder Leerzeichen enthalten" +108 "In Abkürzungen dürfen außer am Ende Wort- und Nicht-Wort-Zeichen nicht gemischt werden" +109 "\"%s\" ist keine Abkürzung" +110 "Vi Kommando mißlungen: umdefinierte Tasten ungültig" +111 "Keine weiteren Dateien zu editieren" +112 "Keine vorhergehenden Dateien zu editieren" +113 "Keine vorhergehenden Dateien für rewind" 114 "Keine Dateiliste zum Anzeigen" -115 "Kein vorhergehendes Kommando um "!" zu ersetzen" -116 "Kein Dateiname fuer %%" -117 "Kein Dateiname fuer #" +115 "Kein vorhergehendes Kommando, um \"!\" zu ersetzen" +116 "Kein Dateiname für %%" +117 "Kein Dateiname für #" 118 "Fehler: execl: %s" -119 "I/O Fehler: %s" -120 "Datei wurde seit dem letzten vollstaendigen Schreiben geaendert; schreibe oder verwende ! zum ignorieren" +119 "E/A-Fehler: %s" +120 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende ! zum ignorieren" 121 "Kann Homedirectory nicht bestimmen" 122 "Neues aktuelles Directory: %s" 123 "Keine Puffer anzuzeigen" 124 "Das Kommando %s kann nicht als Teil eines global oder v Kommandos verwendet werden" -125 "%s/%s: nicht gelesen: gehoehrt weder Ihnen noch root" -126 "%s/%s: nicht gelesen: gehoehrt nicht Ihnen" -127 "%s/%s: nicht gelesen: anderer Benutzer als Eigentuemer hat Schreibrecht" -128 "%s: nicht gelesen: gehoehrt weder Ihnen noch root" -129 "%s: nicht gelesen: gehoehrt nicht Ihnen" -130 "%s: nicht gelesen: anderer Benutzer als Eigentuemer hat Schreibrecht" +125 "%s/%s: nicht gelesen: gehört weder Ihnen noch root" +126 "%s/%s: nicht gelesen: gehört nicht Ihnen" +127 "%s/%s: nicht gelesen: anderer Benutzer als Eigentümer hat Schreibrecht" +128 "%s: nicht gelesen: gehört weder Ihnen noch root" +129 "%s: nicht gelesen: gehört nicht Ihnen" +130 "%s: nicht gelesen: anderer Benutzer als Eigentümer hat Schreibrecht" 131 "Keine folgenden Zeilen zum Verbinden" -132 "Kein Eingabe-Map Eintrag" -133 "Kein Kommando-Map Eintrag" +132 "Kein input-Map Eintrag" +133 "Kein command-Map Eintrag" 134 "Das %s Zeichen kann nicht umgemappt werden" -135 ""%s" ist momentan nicht gemappt" -136 "Markennamen muessen einzelne Buchstaben sein" -137 "%s existiert, nicht geschrieben; verwende ! zum Ueberschreiben" +135 "\"%s\" ist momentan nicht gemappt" +136 "Markennamen müssen einzelne Buchstaben sein" +137 "%s existiert, nicht geschrieben; verwende ! zum Überschreiben" 138 "Neue .exrc Datei: %s. " 139 "Zielzeile ist innerhalb des Verschiebebereichs" -140 "Das open Kommando verlangt, dass die open Option gesetzt ist" +140 "Das open Kommando verlangt, daß die open Option gesetzt ist" 141 "Das open Kommando ist nocht nicht implementiert" -142 "Rettung dieser Datei nicht moeglich" +142 "Rettung dieser Datei nicht möglich" 143 "Datei gerettet" 144 "%s wurde in zu viele Dateinamen expandiert" -145 "Nur regulaere Dateien und named pipes koennen gelesen werden" -146 "%s: Lesesperrung war nicht moeglich" +145 "Nur reguläre Dateien und named pipes können gelesen werden" +146 "%s: Locken zum Lesen war nicht möglich" 147 "lese ..." 148 "%s: %lu Zeilen, %lu Zeichen" -149 "Keine Hintegrundanzeigen vorhanden" -150 "Das script Kommando ist nur im vi Modus verfuegbar" -151 "Kein Kommando auszufuehren" +149 "Keine Hintergrundanzeigen vorhanden" +150 "Das script Kommando ist nur im vi Modus verfügbar" +151 "Kein Kommando auszuführen" 152 "shiftwidth Option auf 0 gesetzt" -153 "Count ueberlauf" -154 "Count unterlauf" -155 "Regulaerer Ausdruck angegeben; r Flag bedeutungslos" -156 "Die #, l und p Flags koennen im vi Modus nicht mit dem c Flag kombiniert werden" -157 "Keine Uebereinstimmung gefunden" +153 "Anzahl-Überlauf" +154 "Anzahl-Unterlauf" +155 "Regulärer Ausdruck angegeben; r Flag bedeutungslos" +156 "Die #, l und p Flags können im vi Modus nicht mit dem c Flag kombiniert werden" +157 "Keine Übereinstimmung gefunden" 158 "Kein vorhergehender 'tag' angegeben" -159 "Weniger als %s Eintraege auf dem 'tag'-Stack; verwende :display t[ags]" +159 "Weniger als %s Einträge auf dem 'tag'-Stack; verwende :display t[ags]" 160 "Keine Datei namens %s auf dem 'tag'-Stack; verwende :display t[ags]" -161 "Druecke Enter um fortzufahren: " +161 "Drücke Enter um fortzufahren: " 162 "%s: 'tag' nicht gefunden" 163 "%s: kaputter 'tag' in %s" 164 "%s: die Zeilennummer des 'tag' ist hinter dem Dateiende" 165 "Der 'tag' Stack ist leer" 166 "%s: Suchmuster nicht gefunden" -167 "%d weitere Dateien zu edieren" +167 "%d weitere Dateien zu editieren" 168 "Puffer %s ist leer" -169 "Bestaetige Aenderung [n]" +169 "Bestätige Änderung [n]" 170 "Unterbrochen." -171 "Kein vorhergehender Puffer zum Ausfuehren" -172 "Kein vorhergehender regulaerer Ausdruck" -173 "Das Kommando %s verlangt, dass bereits eine Datei eingelesen wurde" +171 "Kein vorhergehender Puffer zum Ausführen" +172 "Kein vorhergehender regulärer Ausdruck" +173 "Das Kommando %s verlangt, daß bereits eine Datei eingelesen wurde" 174 "Benutzung: %s" -175 "Das visual Kommando verlangt dass die open Option gesetzt ist" +175 "Das visual Kommando verlangt daß die open Option gesetzt ist" 177 "Leere Datei" 178 "Keine vorhergehende F, f, T oder t Suche" 179 "%s nicht gefunden" -180 "Keine vorhergehende Datei zu edieren" +180 "Keine vorhergehende Datei zu editieren" 181 "Cursor nicht auf einer Zahl" -182 "Sich ergebende Zahl ist zu gross" +182 "Sich ergebende Zahl ist zu groß" 183 "Sich ergebende Zahl ist zu klein" 184 "Kein korrespondierendes Zeichen in dieser Zeile" 185 "Korrespondierendes Zeichen nicht gefunden" @@ -180,11 +179,11 @@ 187 "Keine andere Anzeige zum Hinschalten" 188 "Zeichen nach Suchmuster, Zeilenoffset und/oder z Kommando" 189 "Kein altes Suchmuster" -190 "Suche zur urspruenglichen Position umgeschlagen" -191 "Abkuerzung ueberschreitet Expansionsgrenze: Zeichen weggelassen" +190 "Suche zur ursprünglichen Position zurückgekehrt" +191 "Abkürzung überschreitet Expansionsgrenze: Zeichen weggelassen" 192 "Nicht erlaubtes Zeichen; maskiere zum Eingeben" 193 "Bereits am Anfang der Eingabe" -194 "Keine weiteren Zeichen zu loeschen" +194 "Keine weiteren Zeichen zu löschen" 195 "Bewegung hinter das Dateiende" 196 "Bewegung hinter das Zeilenende" 197 "Keine Cursorbewegung gemacht" @@ -196,73 +195,73 @@ 203 "Bereits am Zeilenende" 204 "%s ist kein vi Kommando" 205 "Benutzung: %s" -206 "Keine Zeichen zu loeschen" -207 "Das Q Kommando benoetigt das ex Terminal Interface" +206 "Keine Zeichen zu löschen" +207 "Das Q Kommando benötigt das ex Terminal Interface" 208 "Kein Kommando zu wiederholen" 209 "Die Datei ist leer" 210 "%s kann nicht als Bewegungskommando verwendet werden" 211 "Bereits im Kommando-Modus" 212 " Cursor nicht auf einem Wort" -214 "Wert der Window Option ist zu gross, max ist %u" -215 "Anfuegen" -216 "Aendern" +214 "Wert der Window Option ist zu groß, max ist %u" +215 "Anhängen" +216 "Ändern" 217 "Kommando" -218 "Einfuegen" +218 "Einfügen" 219 "Ersetzen" 220 "Bewegung hinter das Anzeigenende" 221 "Bewegung vor den Anzeigenanfang" -222 "Anzeige muss zum Zerlegen groesser als %d sein" +222 "Anzeige muß für Bildschirmteilung größer als %d sein" 223 "Keine Hintergrundanzeigen vorhanden" -224 "Es gibt keine Hintergrundanzeige die eine Datei namens %s ediert" +224 "Es gibt keine Hintergrundanzeige, die eine Datei namens %s editiert" 225 "Die einzige dargestellte Anzeige kann nicht in den Hintergrund gebracht werden" 226 "Die Anzeige kann nur auf %d Zeilen verkleinert werden" 227 "Die Anzeige kann nicht verkleinert werden" -228 "Die Anzeige kann nicht vergroessert werden" -230 "Diese Anzeige kann nicht gestopped werden" -231 "Unterbrochen: umdefinierte Tasten ungueltig" -232 "vi: temporaerer Puffer nicht freigegeben" +228 "Die Anzeige kann nicht vergrößert werden" +230 "Diese Anzeige kann nicht gestopt werden" +231 "Unterbrochen: umdefinierte Tasten ungültig" +232 "vi: temporärer Puffer nicht freigegeben" 233 "Dieses Terminal hat keine %s Taste" 234 "es kann nur ein Puffer angegeben werden" -235 "Zahl groesser als %lu" +235 "Zahl größer als %lu" 236 "Unterbrochen" -237 "Nicht moeglich temporaere Datei anzulegen" -238 "Warnung: %s ist keine regulaere Datei" -239 "%s ist bereits gesperrt, nur-lese Editorsitzung" -240 "%s: loeschen" -241 "%s: schliessen" -242 "%s: loeschen" -243 "%s: loeschen" -244 "Nur-lese Datei, nicht geschrieben; verwende ! zum Ueberschreiben" -245 "Nur-lese Datei, nicht geschrieben" -246 "%s existiert, nicht geschrieben; verwende ! zum Ueberschreiben" +237 "Nicht möglich, temporäre Datei anzulegen" +238 "Warnung: %s ist keine reguläre Datei" +239 "%s ist bereits gelockt, Editorsitzung schreibgeschützt" +240 "%s: löschen" +241 "%s: schließen" +242 "%s: löschen" +243 "%s: löschen" +244 "Datei nicht schreibbar, nicht geschrieben; verwende ! zum Überschreiben" +245 "Datei nicht schreibbar, nicht geschrieben" +246 "%s existiert, nicht geschrieben; verwende ! zum Überschreiben" 247 "%s existiert, nicht geschrieben" -248 "Teil der Datei, nicht geschrieben; verwende ! zum Ueberschreiben" +248 "Teil der Datei, nicht geschrieben; verwende ! zum Überschreiben" 249 "Teil der Datei, nicht geschrieben" -250 "%s: Datei wurde spaeter als diese Kopie veraendert; verwende ! zum Ueberschreiben" -251 "%s: Datei wurde spaeter als diese Kopie veraendert" -252 "%s: Schreibsperrung war nicht moeglich" +250 "%s: Datei wurde später als diese Kopie verändert; verwende ! zum Überschreiben" +251 "%s: Datei wurde später als diese Kopie verändert" +252 "%s: Locken zum Schreiben war nicht möglich" 253 "schreibe ..." 254 "%s: WARNUNG: DATEI ABGESCHNITTEN" 255 "Bereits am ersten 'tag' dieser Gruppe" 256 "%s: neue Datei: %lu Zeilen, %lu Zeichen" 257 "%s: %lu Zeilen, %lu Zeichen" 258 "%s wurde in zu viele Dateinamen expandiert" -259 "%s: keine regulaere Datei" -260 "%s: gehoehrt nicht Ihnen" -261 "%s: anderer Benutzer als Eigentuemer hat Zugriff" -262 "Datei wurde seit dem letzten vollstaendigen Schreiben geaendert; schreibe oder verwende ! zum ignorieren" -263 "Datei wurde seit dem letzten vollstaendigen Schreiben geaendert; schreibe oder verwende :edit! zum ignorieren" -264 "Datei wurde seit dem letzten vollstaendigen Schreiben geaendert; schreibe oder verwende ! zum ignorieren" -265 "Datei ist temporaer; beim Verlassen gehen die Aenderungen verloren" -266 "Nur-lese Datei, Aenderungen werden nicht automatisch geschrieben" +259 "%s: keine reguläre Datei" +260 "%s: gehört nicht Ihnen" +261 "%s: anderer Benutzer als Eigentümer hat Zugriff" +262 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende ! zum ignorieren" +263 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende :edit! zum ignorieren" +264 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende ! zum ignorieren" +265 "Datei ist temporär; beim Verlassen gehen die Änderungen verloren" +266 "Datei ist schreibgeschützt, Änderungen werden nicht automatisch geschrieben" 267 "Portokollierung neu begonnen" -268 "bestaetigen [ynq]" -269 "Druecke beliebige Taste um fortzufahren" -270 "Druecke beliebige Taste um fortzufahren [: um weitere Kommandos einzugeben]: " -271 "Druecke beliebige Taste um fortzufahren [q zum Verlassen]: " -272 "Diese Form von %s benoetigt das ex Terminal-Interface" +268 "bestätigen [ynq]" +269 "Drücke beliebige Taste um fortzufahren" +270 "Drücke beliebige Taste um fortzufahren [: um weitere Kommandos einzugeben]: " +271 "Drücke beliebige Taste um fortzufahren [q zum Verlassen]: " +272 "Diese Form von %s benötigt das ex Terminal-Interface" 273 "Gehe in ex Eingabe-Modus.\n" -274 "Kommando schief gelaufen, noch keine Datei eingelesen" +274 "Kommando schiefgelaufen, noch keine Datei eingelesen" 275 " weiter?" 276 "unerwartetes Zeichen - Ereignis" 277 "unerwartetes Dateiende - Ereignis" @@ -271,18 +270,18 @@ 280 "unerwartetes Verlassen - Ereignis" 281 "unerwartetes Wiederherstellungs - Ereignis" 282 "Bereits am letzten 'tag' dieser Gruppe" -283 "Das %s Kommando benoetigt das ex Terminal-Interface" -284 "Diese Form von %s wird nicht unterstuetzt wenn die 'secure edit' - Option gesetzt ist" +283 "Das %s Kommando benötigt das ex Terminal-Interface" +284 "Diese Form von %s wird nicht unterstützt wenn die 'secure edit' - Option gesetzt ist" 285 "unerwartetes Zeichenketten - Ereignis" 286 "unerwartetes timeout - Ereignis" 287 "unerwartetes Schreibe - Ereignis" -289 "Shell Expandierungen nicht unterstuetzt wenn die 'secure edit' - Option gesetzt ist" -290 "Das %s Kommando wird nicht unterstuetzt wenn die 'secure edit' - Option gesetzt ist" +289 "Shell Expandierungen nicht unterstützt wenn die 'secure edit' - Option gesetzt ist" +290 "Das %s Kommando wird nicht unterstützt wenn die 'secure edit' - Option gesetzt ist" 291 "set: %s kann nicht ausgeschaltet werden" 292 "Anzeige zu klein." -293 "angefuegt" -294 "geaendert" -295 "geloescht" +293 "angefügt" +294 "geändert" +295 "gelöscht" 296 "verbunden" 297 "verschoben" 298 "geschoben" @@ -290,18 +289,18 @@ 300 "Zeile" 301 "Zeilen" 302 "Vi wurde nicht mit dem Tcl Interpreter gelinkt" -303 "Datei wurde seit dem letzten Schreiben veraendert." -304 "Shell Expansion nicht geklappt" -305 "Es ist keine %s Edieroption angegeben" +303 "Datei wurde seit dem letzten Schreiben verändert." +304 "Shell Expansion hat nicht geklappt" +305 "Es ist keine %s Editieroption angegeben" 306 "Vi wurde nicht mit einem Perl Interpreter geladen" -307 "Kein ex Kommando auszufuehren" -308 "Druecke um ein Kommando auszufuehren, :q zum verlassen" -309 "Verwende "cscope help" fuer Hilestellung" +307 "Kein ex Kommando auszuführen" +308 "Drücke um ein Kommando auszuführen, :q zum verlassen" +309 "Verwende \"cscope help\" für Hilestellung" 310 "Keine cscope Verbindung aktiv" 311 "%s: unbekannter Suchtyp: verwende einen aus %s" 312 "%d: keine solche cscope Verbindung" 313 "set: die %s Option kann nicht eingeschaltet werden" 314 "set: die %s Option kann nicht auf 0 gesetzt werden" -315 "%s: angefuegt: %lu Zeilen, %lu Zeichen" -316 "unerwartetes Groessenveraenderungs - Ereignis" +315 "%s: angefügt: %lu Zeilen, %lu Zeichen" +316 "unerwartetes Größenveränderungs - Ereignis" 317 "%d Dateien zu edieren" Modified: head/contrib/nvi/catalog/german.owner ============================================================================== --- head/contrib/nvi/catalog/german.owner Sun Aug 11 18:57:27 2013 (r254224) +++ head/contrib/nvi/catalog/german.owner Sun Aug 11 20:03:12 2013 (r254225) *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 20:46:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 10FDA9F8; Sun, 11 Aug 2013 20:46:06 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F052226D8; Sun, 11 Aug 2013 20:46:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BKk5gs022489; Sun, 11 Aug 2013 20:46:05 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BKk5cW022488; Sun, 11 Aug 2013 20:46:05 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308112046.r7BKk5cW022488@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 20:46:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254227 - head/usr.bin/vi/catalog X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 20:46:06 -0000 Author: peter Date: Sun Aug 11 20:46:05 2013 New Revision: 254227 URL: http://svnweb.freebsd.org/changeset/base/254227 Log: Don't install a ru_SU.KOI8-R symlink, 'make delete-old' will just remove it again. Modified: head/usr.bin/vi/catalog/Makefile Modified: head/usr.bin/vi/catalog/Makefile ============================================================================== --- head/usr.bin/vi/catalog/Makefile Sun Aug 11 20:24:00 2013 (r254226) +++ head/usr.bin/vi/catalog/Makefile Sun Aug 11 20:46:05 2013 (r254227) @@ -163,7 +163,6 @@ SYMLINKS+= swedish ${FILESDIR}/$l.ISO885 SYMLINKS+= polish ${FILESDIR}/$l.ISO8859-2 .endfor # iconv not required for these. -SYMLINKS+= ru_RU.KOI8-R ${FILESDIR}/ru_SU.KOI8-R SYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GB18030 SYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GBK SYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.eucCN From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 21:15:04 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D44C8383; Sun, 11 Aug 2013 21:15:04 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C1B282814; Sun, 11 Aug 2013 21:15:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BLF4XP034079; Sun, 11 Aug 2013 21:15:04 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BLF4Hf034078; Sun, 11 Aug 2013 21:15:04 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201308112115.r7BLF4Hf034078@svn.freebsd.org> From: Attilio Rao Date: Sun, 11 Aug 2013 21:15:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254228 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 21:15:04 -0000 Author: attilio Date: Sun Aug 11 21:15:04 2013 New Revision: 254228 URL: http://svnweb.freebsd.org/changeset/base/254228 Log: Correct the recovery logic in vm_page_alloc_contig: what is really needed on this code snipped is that all the pages that are already fully inserted gets fully freed, while for the others the object removal itself might be skipped, hence the object might be set to NULL. Sponsored by: EMC / Isilon storage division Reported by: alc, kib Reviewed by: alc Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Sun Aug 11 20:46:05 2013 (r254227) +++ head/sys/vm/vm_page.c Sun Aug 11 21:15:04 2013 (r254228) @@ -1807,11 +1807,9 @@ retry: &deferred_vdrop_list); if (vm_paging_needed()) pagedaemon_wakeup(); - for (m = m_ret, m_tmp = m_ret; + for (m_tmp = m, m = m_ret; m < &m_ret[npages]; m++) { - if (m_tmp < m) - m_tmp++; - else + if (m >= m_tmp) m->object = NULL; vm_page_free(m); } From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 21:21:02 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EB2C64EA; Sun, 11 Aug 2013 21:21:02 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D8C522858; Sun, 11 Aug 2013 21:21:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BLL2pg037122; Sun, 11 Aug 2013 21:21:02 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BLL2H5037121; Sun, 11 Aug 2013 21:21:02 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201308112121.r7BLL2H5037121@svn.freebsd.org> From: Olivier Houchard Date: Sun, 11 Aug 2013 21:21:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254229 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 21:21:03 -0000 Author: cognet Date: Sun Aug 11 21:21:02 2013 New Revision: 254229 URL: http://svnweb.freebsd.org/changeset/base/254229 Log: Only allocate 2 bounce pages for maps that can only use them for buffers that are unaligned on cache lines boundary, as we will never need more. Modified: head/sys/arm/arm/busdma_machdep-v6.c Modified: head/sys/arm/arm/busdma_machdep-v6.c ============================================================================== --- head/sys/arm/arm/busdma_machdep-v6.c Sun Aug 11 21:15:04 2013 (r254228) +++ head/sys/arm/arm/busdma_machdep-v6.c Sun Aug 11 21:21:02 2013 (r254229) @@ -425,6 +425,8 @@ bus_dma_tag_create(bus_dma_tag_t parent, if (_bus_dma_can_bounce(newtag->lowaddr, newtag->highaddr) || newtag->alignment > 1) newtag->flags |= BUS_DMA_COULD_BOUNCE; + else + maxsize = 2; /* Need at most 2 bounce pages for unaligned access on cache line boundaries */ if ((flags & BUS_DMA_ALLOCNOW) != 0) { struct bounce_zone *bz; @@ -519,7 +521,10 @@ static int allocate_bz_and_pages(bus_dma * Attempt to add pages to our pool on a per-instance * basis up to a sane limit. */ - maxpages = MAX_BPAGES; + if (dmat->flags & BUS_DMA_COULD_BOUNCE) + maxpages = MAX_BPAGES; + else + maxpages = 2 * bz->map_count; /* Only need at most 2 pages for buffers unaligned on cache line boundaries */ if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 || (bz->map_count > 0 && bz->total_bpages < maxpages)) { int pages; From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 21:46:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2B8CB7D7; Sun, 11 Aug 2013 21:46:07 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 18D382917; Sun, 11 Aug 2013 21:46:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BLk6js045308; Sun, 11 Aug 2013 21:46:06 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BLk6Hp045307; Sun, 11 Aug 2013 21:46:06 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308112146.r7BLk6Hp045307@svn.freebsd.org> From: Peter Wemm Date: Sun, 11 Aug 2013 21:46:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254230 - head/usr.bin/vi/catalog X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 21:46:07 -0000 Author: peter Date: Sun Aug 11 21:46:06 2013 New Revision: 254230 URL: http://svnweb.freebsd.org/changeset/base/254230 Log: Don't build the UTF-8 version of the catalogs without iconv enabled. Pointy-hat to: peter (don't do things at 4am!) Modified: head/usr.bin/vi/catalog/Makefile Modified: head/usr.bin/vi/catalog/Makefile ============================================================================== --- head/usr.bin/vi/catalog/Makefile Sun Aug 11 21:21:02 2013 (r254229) +++ head/usr.bin/vi/catalog/Makefile Sun Aug 11 21:46:06 2013 (r254230) @@ -5,13 +5,6 @@ V= ${.CURDIR}/../../../contrib/nvi -.if ${MK_ICONV} == yes -UCAT= dutch english french german polish spanish swedish -.else -# turn on WITH_ICONV=yes if you want UTF-8 -UCAT= -.endif - CAT= dutch english french german polish ru_RU.KOI8-R spanish swedish \ uk_UA.KOI8-U zh_CN.GB2312 @@ -23,7 +16,11 @@ all: dump build-tools: dump -.for c in ${UCAT} +# If we have iconv available, convert the ISO-8859 encoded files +# to UTF-8 as well. +.if ${MK_ICONV} == yes + +.for c in dutch english french german polish spanish swedish CAT+= ${c}.UTF-8 CLEANFILES+=${c}.UTF-8.base $c.UTF-8.base: ${c}.base @@ -45,6 +42,8 @@ uk_UA.UTF-8.base: uk_UA.KOI8-U.base ru_RU.UTF-8.base: ru_RU.KOI8-R.base iconv -f KOI8-R -t UTF-8 ${.ALLSRC} > ${.TARGET} +.endif + .for c in ${CAT} ${c}: ${c}.base @echo "... $c"; \ From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 21:46:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E38BB90E for ; Sun, 11 Aug 2013 21:46:38 +0000 (UTC) (envelope-from scott4long@yahoo.com) Received: from nm15-vm2.bullet.mail.ne1.yahoo.com (nm15-vm2.bullet.mail.ne1.yahoo.com [98.138.91.91]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5EC2E291C for ; Sun, 11 Aug 2013 21:46:38 +0000 (UTC) Received: from [98.138.226.176] by nm15.bullet.mail.ne1.yahoo.com with NNFMP; 11 Aug 2013 21:40:10 -0000 Received: from [98.138.84.41] by tm11.bullet.mail.ne1.yahoo.com with NNFMP; 11 Aug 2013 21:40:10 -0000 Received: from [127.0.0.1] by smtp109.mail.ne1.yahoo.com with NNFMP; 11 Aug 2013 21:40:10 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1376257210; bh=1JKaHRi2TFqwNaR/oRkjAeoIo4YaPmlszuCCiEuwezg=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:X-Rocket-Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer; b=Da2LXx/D3eTaCQ2QCbtAPLQAnykLVJhdtbCjDADIaMKqIFBLNhx6opqwFrzmV/tEisx+CamxbnEPrhoBRNmo3Vy+a57H5sSh55w14COOcrSftImG8L0+kh7wD4pdwHNP7Vqp7npI0TgDvXSaEsiZSUGYOTGc+Jh0AJA71zAWrTA= X-Yahoo-Newman-Id: 399430.40155.bm@smtp109.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: AYw5ehIVM1m2TlALwTEmdoAwpfOeNIrVdLIwtRyFPrKCBg5 _5bDrMFEZSaRpbIN1erYshU98YDPBx7_.RvIsEN18v9IPT25mbmVwDkDX4vy ipGrJlQGbUufGgWyAhsqNMbJdBrjeDY2aPrgegA6K2q1ofGd1PA7J_zN1TmX uF6ai7TX3SBdFQsdpBUfzl4SwNE30RGCBU9pYeXCW9AH0UvDg7ohyqdtN8E3 ewUoPnytJvGP_KxehDPwlk83w4NuK78coZAgFtE4Jq.DZu_OWDtpBGhaQWOD ao0HMvefHoQ.dBN_HraZ_SrDpgBsIbngi1qA8cdCSMxx7uXllAlK53JQ8htE 4CoFwjNErdJSN5Rlr.BcBXu61qTCsLJapU2JyPZLLtwUNNVTC2uOFQ7by_US hdRN5D.WKYh4kKasX.HGyVT0h6W9IlsZCBZXe.PQdFLXCtRff9IcKpI7D7qK n_oRnyKhNb5jqeyFOpv1yBcPOxpbSp1qPcvDbf5E.uKoKk38l3JtQilb3RNS qbnLbrbLLBkvD879no5txQIo.I1LqOfot4S8Wh_AO.WUe4_V8lKVWVVIR.g- - X-Yahoo-SMTP: clhABp.swBB7fs.LwIJpv3jkWgo2NU8- X-Rocket-Received: from [192.168.254.206] (scott4long@168.103.85.57 with ) by smtp109.mail.ne1.yahoo.com with SMTP; 11 Aug 2013 14:40:10 -0700 PDT Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r253460 - head/sys/dev/mps From: Scott Long In-Reply-To: <52077D0D.8090607@FreeBSD.org> Date: Sun, 11 Aug 2013 15:40:09 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201307190012.r6J0Cg1r027645@svn.freebsd.org> <52077D0D.8090607@FreeBSD.org> To: Alexander Motin X-Mailer: Apple Mail (2.1508) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Scott Long X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 21:46:39 -0000 Thanks, I'll look into it. Scott On Aug 11, 2013, at 6:01 AM, Alexander Motin wrote: > On 19.07.2013 03:12, Scott Long wrote: >> Author: scottl >> Date: Fri Jul 19 00:12:41 2013 >> New Revision: 253460 >> URL: http://svnweb.freebsd.org/changeset/base/253460 >>=20 >> Log: >> Overhaul error, information, and debug logging. >>=20 >> Obtained from: Netflix >> MFC after: 3 days >>=20 >> Modified: >> head/sys/dev/mps/mps.c >> head/sys/dev/mps/mps_mapping.c >> head/sys/dev/mps/mps_pci.c >> head/sys/dev/mps/mps_sas.c >> head/sys/dev/mps/mps_sas_lsi.c >> head/sys/dev/mps/mps_table.c >> head/sys/dev/mps/mps_user.c >> head/sys/dev/mps/mpsvar.h >=20 > This change created significant CPU overhead under high I/O rate (350K = IOPS) because several functions inside mpssas_log_command() are now = writing into the buffer that is just discarded after that. The following = simple patch seems fixes the situation for me: >=20 > Index: mps_sas.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 > --- mps_sas.c (revision 254181) > +++ mps_sas.c (working copy) > @@ -304,7 +304,7 @@ mpssas_log_command(struct mps_command *cm, u_int l > char str[192]; > char path_str[64]; >=20 > - if (cm =3D=3D NULL) > + if (cm =3D=3D NULL || (cm->cm_sc->mps_debug & level) =3D=3D 0) > return; >=20 > sbuf_new(&sb, str, sizeof(str), 0); >=20 >=20 > --=20 > Alexander Motin From owner-svn-src-all@FreeBSD.ORG Sun Aug 11 21:54:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2D760A89; Sun, 11 Aug 2013 21:54:21 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1A629296B; Sun, 11 Aug 2013 21:54:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7BLsKbR048684; Sun, 11 Aug 2013 21:54:20 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7BLsKGh048683; Sun, 11 Aug 2013 21:54:20 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308112154.r7BLsKGh048683@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 11 Aug 2013 21:54:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254231 - head/tools/regression/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 21:54:21 -0000 Author: jilles Date: Sun Aug 11 21:54:20 2013 New Revision: 254231 URL: http://svnweb.freebsd.org/changeset/base/254231 Log: fnmatch(): Add test for r254091 (pattern with single backslash). This test cannot be converted to an sh(1) test because the syntax would be invalid. PR: 181129 MFC after: 1 week Modified: head/tools/regression/lib/libc/gen/test-fnmatch.c Modified: head/tools/regression/lib/libc/gen/test-fnmatch.c ============================================================================== --- head/tools/regression/lib/libc/gen/test-fnmatch.c Sun Aug 11 21:46:06 2013 (r254230) +++ head/tools/regression/lib/libc/gen/test-fnmatch.c Sun Aug 11 21:54:20 2013 (r254231) @@ -135,6 +135,8 @@ struct testcase { "\\[", "\\[", 0, FNM_NOMATCH, "\\(", "\\(", 0, FNM_NOMATCH, "\\a", "\\a", 0, FNM_NOMATCH, + "\\", "\\", 0, FNM_NOMATCH, + "\\", "", 0, 0, "\\*", "\\*", FNM_NOESCAPE, 0, "\\?", "\\?", FNM_NOESCAPE, 0, "\\", "\\", FNM_NOESCAPE, 0, @@ -236,6 +238,8 @@ write_sh_tests(const char *progname, int if (strchr(t->pattern, '\'') != NULL || strchr(t->string, '\'') != NULL) continue; + if (t->flags == 0 && strcmp(t->pattern, "\\") == 0) + continue; if (num == 1 && t->flags == 0) printf("test%smatch '%s' '%s'\n", t->result == FNM_NOMATCH ? "no" : "", From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 00:38:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 65414B82; Mon, 12 Aug 2013 00:38:48 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 52E652F1A; Mon, 12 Aug 2013 00:38:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C0cmG3009898; Mon, 12 Aug 2013 00:38:48 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C0cmKA009897; Mon, 12 Aug 2013 00:38:48 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308120038.r7C0cmKA009897@svn.freebsd.org> From: Adrian Chadd Date: Mon, 12 Aug 2013 00:38:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254234 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 00:38:48 -0000 Author: adrian Date: Mon Aug 12 00:38:47 2013 New Revision: 254234 URL: http://svnweb.freebsd.org/changeset/base/254234 Log: Add a missing break. Modified: head/sys/mips/atheros/ar71xx_gpio.c Modified: head/sys/mips/atheros/ar71xx_gpio.c ============================================================================== --- head/sys/mips/atheros/ar71xx_gpio.c Sun Aug 11 22:32:22 2013 (r254233) +++ head/sys/mips/atheros/ar71xx_gpio.c Mon Aug 12 00:38:47 2013 (r254234) @@ -156,6 +156,7 @@ ar71xx_gpio_pin_max(device_t dev, int *m case AR71XX_SOC_AR9342: case AR71XX_SOC_AR9344: *maxpin = AR934X_GPIO_COUNT - 1; + break; default: *maxpin = AR71XX_GPIO_PINS - 1; } From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 01:01:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 032D1E57; Mon, 12 Aug 2013 01:01:29 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-we0-x234.google.com (mail-we0-x234.google.com [IPv6:2a00:1450:400c:c03::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E57912FEE; Mon, 12 Aug 2013 01:01:27 +0000 (UTC) Received: by mail-we0-f180.google.com with SMTP id p61so5033972wes.11 for ; Sun, 11 Aug 2013 18:01:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=JEBQL8wyw0FkGTATublHwdRX23uNVFKD/dVYJhQlv6U=; b=gWSvpAFUYLcIIhNa23mmpnk2OJjAJQo6pY9rkK39Z3ka5AT4TG5Pll+u7zbRNo56Pk 6xnzKJzFnQp+E+jPolL7D58+AZPLMipeulXHWP2mgpgKvKcj1VUDonDlHJE1m+ZSVxSW x5fXc6DZ10FCRy+YOaEZ1RWNw29GziTn208nN0WwdVs+TlnHs51tKq1zof7NoM6QyGjI LdoW2U5WCYGxbWN799J7h0HnHF8r9PiHFa1e2eHZBNue8kbBljzYWHxfKA1Pfu6LHchI /mU0b9YzdjRMaV6y5SpXRsfkFH2mSrt3Dr1lQjCEKwy5JVn/H5cRGOFASfgIhgP+yyRh kiXA== MIME-Version: 1.0 X-Received: by 10.194.201.202 with SMTP id kc10mr11419929wjc.1.1376269286198; Sun, 11 Aug 2013 18:01:26 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.217.116.136 with HTTP; Sun, 11 Aug 2013 18:01:26 -0700 (PDT) In-Reply-To: References: <201307190012.r6J0Cg1r027645@svn.freebsd.org> <52077D0D.8090607@FreeBSD.org> Date: Sun, 11 Aug 2013 18:01:26 -0700 X-Google-Sender-Auth: A4l_ptZac6ZacA03JkaWCLP8R9s Message-ID: Subject: Re: svn commit: r253460 - head/sys/dev/mps From: Adrian Chadd To: Scott Long Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, Alexander Motin , src-committers@freebsd.org, Scott Long , svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 01:01:29 -0000 On 11 August 2013 14:40, Scott Long wrote: > Thanks, I'll look into it. Yo! Damnit, I really should create a generic "here's a 64 bit mask for debug" set of macros we can use elsewhere. Anyway, you should consider a #define that means you can avoid actually evaluating the arguments that you pass in. That saves even more CPU. Ie: #ifdef DRV_DEBUG #define DPRINTF(sc, mask, ...) do { if ( (sc)->sc_debug & mask ) dev_printf(sc->sc_dev, __VA_ARGS__); } while (0) #else #define DPRINTF(sc, mask, ...) #endif -adrian From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 01:21:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7BD7712B; Mon, 12 Aug 2013 01:21:18 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 51FF320C0; Mon, 12 Aug 2013 01:21:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C1LI0X028108; Mon, 12 Aug 2013 01:21:18 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C1LEDM028064; Mon, 12 Aug 2013 01:21:14 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201308120121.r7C1LEDM028064@svn.freebsd.org> From: Devin Teske Date: Mon, 12 Aug 2013 01:21:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254235 - in releng/9.2/sys/boot: common forth i386/loader ia64/common pc98/loader powerpc/ofw powerpc/ps3 sparc64/loader X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 01:21:18 -0000 Author: dteske Date: Mon Aug 12 01:21:14 2013 New Revision: 254235 URL: http://svnweb.freebsd.org/changeset/base/254235 Log: Synchronize releng/9.2 Forth code with stable/9 via MFS of 2 revisions: First, MFS of SVN r254109: itself an MFC of 22 revisions: 227727, 233941, 235560, 238431, 241310, 241361, 241363, 241365, 241367, 241523, 242667-242669, 242923, 243114, 243660, 244048, 244089, 244158, 253715, 254105, and 254108. This includes critical fixes that sadly should have been merged prior. Namely, SVN r244158 fixes a possible regression. Second, MFS of SVN r254146: Itself an MFC of r242688. Approved by: re (marius) Added: releng/9.2/sys/boot/forth/menusets.4th - copied unchanged from r254109, stable/9/sys/boot/forth/menusets.4th releng/9.2/sys/boot/forth/menusets.4th.8 - copied unchanged from r254109, stable/9/sys/boot/forth/menusets.4th.8 Modified: releng/9.2/sys/boot/common/Makefile.inc releng/9.2/sys/boot/forth/beastie.4th releng/9.2/sys/boot/forth/beastie.4th.8 releng/9.2/sys/boot/forth/brand.4th releng/9.2/sys/boot/forth/brand.4th.8 releng/9.2/sys/boot/forth/check-password.4th releng/9.2/sys/boot/forth/check-password.4th.8 releng/9.2/sys/boot/forth/color.4th releng/9.2/sys/boot/forth/color.4th.8 releng/9.2/sys/boot/forth/delay.4th releng/9.2/sys/boot/forth/delay.4th.8 releng/9.2/sys/boot/forth/frames.4th releng/9.2/sys/boot/forth/loader.4th releng/9.2/sys/boot/forth/loader.4th.8 releng/9.2/sys/boot/forth/loader.conf releng/9.2/sys/boot/forth/loader.conf.5 releng/9.2/sys/boot/forth/loader.rc releng/9.2/sys/boot/forth/menu-commands.4th releng/9.2/sys/boot/forth/menu.4th releng/9.2/sys/boot/forth/menu.4th.8 releng/9.2/sys/boot/forth/menu.rc releng/9.2/sys/boot/forth/shortcuts.4th releng/9.2/sys/boot/forth/support.4th releng/9.2/sys/boot/forth/version.4th releng/9.2/sys/boot/forth/version.4th.8 releng/9.2/sys/boot/i386/loader/Makefile releng/9.2/sys/boot/ia64/common/Makefile releng/9.2/sys/boot/pc98/loader/Makefile releng/9.2/sys/boot/powerpc/ofw/Makefile releng/9.2/sys/boot/powerpc/ps3/Makefile releng/9.2/sys/boot/sparc64/loader/Makefile Directory Properties: releng/9.2/sys/ (props changed) releng/9.2/sys/boot/ (props changed) releng/9.2/sys/boot/forth/ (props changed) releng/9.2/sys/boot/powerpc/ofw/ (props changed) Modified: releng/9.2/sys/boot/common/Makefile.inc ============================================================================== --- releng/9.2/sys/boot/common/Makefile.inc Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/common/Makefile.inc Mon Aug 12 01:21:14 2013 (r254235) @@ -64,6 +64,7 @@ MAN+= ../forth/delay.4th.8 MAN+= ../forth/loader.conf.5 MAN+= ../forth/loader.4th.8 MAN+= ../forth/menu.4th.8 +MAN+= ../forth/menusets.4th.8 MAN+= ../forth/version.4th.8 .endif Modified: releng/9.2/sys/boot/forth/beastie.4th ============================================================================== --- releng/9.2/sys/boot/forth/beastie.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/beastie.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,6 +1,6 @@ \ Copyright (c) 2003 Scott Long \ Copyright (c) 2003 Aleksander Fafula -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2013 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -28,7 +28,6 @@ marker task-beastie.4th -include /boot/color.4th include /boot/delay.4th variable logoX @@ -182,8 +181,8 @@ variable logoY \ beastie Color ``Helper Daemon'' mascot (19 rows x 34 columns) \ beastiebw B/W ``Helper Daemon'' mascot (19 rows x 34 columns) \ fbsdbw "FreeBSD" logo in B/W (13 rows x 21 columns) -\ orb Color ``Orb'' mascot (15 rows x 30 columns) -\ orbbw B/W ``Orb'' mascot (15 rows x 32 columns) (default) +\ orb Color ``Orb'' mascot (15 rows x 30 columns) (default) +\ orbbw B/W ``Orb'' mascot (15 rows x 32 columns) \ \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will \ prevent beastie from being drawn. Modified: releng/9.2/sys/boot/forth/beastie.4th.8 ============================================================================== --- releng/9.2/sys/boot/forth/beastie.4th.8 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/beastie.4th.8 Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2011 Devin Teske +.\" Copyright (c) 2011-2012 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -94,8 +94,9 @@ The variable can be configured in .Xr loader.conf 5 to the number of seconds you would like to delay loading the boot menu. -During the delay the user can press Ctrl-C to fall back to autoboot or ENTER -to proceed. +During the delay the user can press Ctrl-C to fall back to +.Ic autoboot +or ENTER to proceed. The default behavior is to not delay. .El .Pp @@ -168,4 +169,4 @@ set of commands was written by .An Scott Long Aq scottl@FreeBSD.org , .An Aleksander Fafula Aq alex@fafula.com and -.An Devin Teske Aq devinteske@hotmail.com . +.An Devin Teske Aq dteske@FreeBSD.org . Modified: releng/9.2/sys/boot/forth/brand.4th ============================================================================== --- releng/9.2/sys/boot/forth/brand.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/brand.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2011 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without Modified: releng/9.2/sys/boot/forth/brand.4th.8 ============================================================================== --- releng/9.2/sys/boot/forth/brand.4th.8 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/brand.4th.8 Mon Aug 12 01:21:14 2013 (r254235) @@ -122,4 +122,4 @@ The .Nm set of commands was written by .An -nosplit -.An Devin Teske Aq devinteske@hotmail.com . +.An Devin Teske Aq dteske@FreeBSD.org . Modified: releng/9.2/sys/boot/forth/check-password.4th ============================================================================== --- releng/9.2/sys/boot/forth/check-password.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/check-password.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2012 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -74,7 +74,7 @@ variable readlen \ input length again ; -: read ( -- String prompt ) +: read ( String prompt -- ) 0 25 at-xy \ Move the cursor to the bottom-left dup 1+ read-start ! \ Store X offset after the prompt @@ -134,23 +134,37 @@ variable readlen \ input length : check-password ( -- ) - \ Exit if a password was not set - s" password" getenv dup -1 = if - drop exit + \ Do not allow the user to proceed beyond this point if a boot-lock + \ password has been set (preventing even boot from proceeding) + s" bootlock_password" getenv dup -1 <> if + begin + s" Boot Password: " read ( prompt -- ) + 2dup readval readlen @ compare 0<> + while + 3000 ms ." loader: incorrect password" 10 emit + repeat + 2drop ( c-addr/u ) + else + drop ( -1 ) \ getenv cruft then - begin \ Loop as long as it takes to get the right password + \ Exit if a password was not set + s" password" getenv -1 = if exit else drop then + + \ We should prevent the user from visiting the menu or dropping to the + \ interactive loader(8) prompt, but still allow the machine to boot... - s" Password: " \ Output a prompt for a password - read \ Read the user's input until Enter + 0 autoboot + \ Only reached if autoboot fails for any reason (including if/when + \ the user aborts/escapes the countdown sequence leading to boot). + + s" password" getenv + begin + s" Password: " read ( prompt -- ) 2dup readval readlen @ compare 0= if 2drop exit \ Correct password then - - \ Bad Password - 3000 ms - ." loader: incorrect password" 10 emit - - again \ Not the right password; repeat + 3000 ms ." loader: incorrect password" 10 emit + again ; Modified: releng/9.2/sys/boot/forth/check-password.4th.8 ============================================================================== --- releng/9.2/sys/boot/forth/check-password.4th.8 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/check-password.4th.8 Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2011 Devin Teske +.\" Copyright (c) 2011-2012 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 18, 2011 +.Dd December 10, 2012 .Dt CHECK-PASSWORD.4TH 8 .Os .Sh NAME @@ -33,7 +33,8 @@ .Sh DESCRIPTION The file that goes by the name of .Nm -is a set of commands designed to prevent booting without the proper password. +is a set of commands designed to either prevent booting or prevent modification +of boot options without an appropriately configured password. The commands of .Nm by themselves are not enough for most uses. @@ -57,30 +58,36 @@ The commands provided by it are: .Pp .Bl -tag -width disable-module_module -compact -offset indent .It Ic check-password -Once called, the user cannot continue until the correct password is entered. -If the user enters the correct password the function returns. +Dual-purpose function that can either protect the interactive boot menu or +prevent boot without password (separately). .Pp -The password that is required is configured by setting the -.Ic password -variable in -.Xr loader.conf 5 . -.Pp -Subsequent calls after a successful password -has been entered will not cause reprompting -\(em the function will silently return. +First checks +.Va bootlock_password +and if-set, the user cannot continue until the correct password is entered. +.Pp +Next checks +.Va password +and if-set, tries to +.Ic autoboot +and only prompts for password on failure or user-interrupt. +See +.Xr loader.conf 5 +for additional information. .El .Pp The environment variables that effect its behavior are: -.Bl -tag -width bootfile -offset indent +.Bl -tag -width bootlock_password -offset indent +.It Va bootlock_password +Sets the bootlock password (up to 16 characters long) that is required by +.Ic check-password +to be entered before the system is allowed to boot. .It Va password Sets the password (up to 16 characters long) that is required by .Ic check-password -to be entered before the system is allowed to boot. If unset (default) or NULL, -.Ic check-password -will silently abort. +before the user is allowed to visit the boot menu. .El .Sh FILES -.Bl -tag -width /boot/loader.4th -compact +.Bl -tag -width /boot/check-password.4th -compact .It Pa /boot/loader The .Xr loader 8 . @@ -101,11 +108,20 @@ check-password .Ed .Pp Set a password in -.Xr loader.conf 5 : +.Xr loader.conf 5 +to prevent modification of boot options: .Pp .Bd -literal -offset indent -compact password="abc123" .Ed +.Pp +Set a password in +.Xr loader.conf 5 +to prevent booting without password: +.Pp +.Bd -literal -offset indent -compact +bootlock_password="boot" +.Ed .Sh SEE ALSO .Xr loader.conf 5 , .Xr loader 8 , @@ -120,4 +136,4 @@ The .Nm set of commands was written by .An -nosplit -.An Devin Teske Aq devinteske@hotmail.com . +.An Devin Teske Aq dteske@FreeBSD.org . Modified: releng/9.2/sys/boot/forth/color.4th ============================================================================== --- releng/9.2/sys/boot/forth/color.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/color.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -\ Copyright (c) 2011 Devin Teske +\ Copyright (c) 2011-2013 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -26,23 +26,24 @@ marker task-color.4th -\ This function returns TRUE if the `loader_color' environment variable is set -\ to YES, yes, or 1. Otherwise, FALSE is returned. +\ This function returns FALSE if the `loader_color' environment variable is set +\ to NO, no, or 0. Otherwise, TRUE is returned (unless booting serial). \ : loader_color? ( -- N ) s" loader_color" getenv dup -1 <> if - 2dup s" YES" compare-insensitive 0= if + 2dup s" NO" compare-insensitive 0= if 2drop - TRUE exit + FALSE exit then - 2dup s" 1" compare 0= if + 2dup s" 0" compare 0= if 2drop - TRUE exit + FALSE exit then drop then + drop - drop FALSE exit + boot_serial? if FALSE else TRUE then ; Modified: releng/9.2/sys/boot/forth/color.4th.8 ============================================================================== --- releng/9.2/sys/boot/forth/color.4th.8 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/color.4th.8 Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2011 Devin Teske +.\" Copyright (c) 2011-2013 Devin Teske .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 18, 2011 +.Dd August 6, 2013 .Dt COLOR.4TH 8 .Os .Sh NAME @@ -50,33 +50,33 @@ through the command: .Dl include color.4th .Pp This line is present in -.Pa /boot/beastie.4th +.Pa /boot/loader.4th file, so it is not needed (and should not be re-issued) in a normal setup. .Pp The commands provided by it are: .Pp .Bl -tag -width disable-module_module -compact -offset indent .It Ic loader_color? -Returns TRUE if the +Returns FALSE if the .Ic loader_color environment variable is set to -.Dq YES +.Dq NO (case-insensitive) or -.Dq 1 . -Otherwise returns FALSE. +.Dq 0 . +Otherwise returns TRUE +.Pq unless booting serial . .El .Pp The environment variables that effect its behavior are: .Bl -tag -width bootfile -offset indent .It Va loader_color If set to -.Dq YES +.Dq NO (case-insensitive) or -.Dq 1 , +.Dq 0 , causes .Ic loader_color? -to return TRUE, indicating to many other modules that color should be used -whenever/wherever possible. +to return FALSE, indicating to many modules that color should not be used. .El .Sh FILES .Bl -tag -width /boot/loader.4th -compact @@ -102,7 +102,6 @@ loader_color="YES" .Sh SEE ALSO .Xr loader.conf 5 , .Xr loader 8 , -.Xr beastie.4th 8 , .Xr loader.4th 8 .Sh HISTORY The @@ -114,4 +113,4 @@ The .Nm set of commands was written by .An -nosplit -.An Devin Teske Aq devinteske@hotmail.com . +.An Devin Teske Aq dteske@FreeBSD.org . Modified: releng/9.2/sys/boot/forth/delay.4th ============================================================================== --- releng/9.2/sys/boot/forth/delay.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/delay.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -\ Copyright (c) 2008-2011 Devin Teske +\ Copyright (c) 2008-2011 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without Modified: releng/9.2/sys/boot/forth/delay.4th.8 ============================================================================== --- releng/9.2/sys/boot/forth/delay.4th.8 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/delay.4th.8 Mon Aug 12 01:21:14 2013 (r254235) @@ -123,4 +123,4 @@ The .Nm set of commands was written by .An -nosplit -.An Devin Teske Aq devinteske@hotmail.com . +.An Devin Teske Aq dteske@FreeBSD.org . Modified: releng/9.2/sys/boot/forth/frames.4th ============================================================================== --- releng/9.2/sys/boot/forth/frames.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/frames.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -12,6 +12,11 @@ variable rt_el variable rb_el variable fill +\ ASCII frames (used when serial console is detected) + 45 constant ascii_dash +124 constant ascii_pipe + 43 constant ascii_plus + s" arch-pc98" environment? [if] \ Single frames 149 constant sh_el @@ -63,7 +68,17 @@ s" arch-pc98" environment? [if] loop ; +: f_ascii ( -- ) ( -- ) \ set frames to ascii + ascii_dash h_el ! + ascii_pipe v_el ! + ascii_plus lt_el ! + ascii_plus lb_el ! + ascii_plus rt_el ! + ascii_plus rb_el ! +; + : f_single ( -- ) \ set frames to single + boot_serial? if f_ascii exit then sh_el h_el ! sv_el v_el ! slt_el lt_el ! @@ -73,6 +88,7 @@ s" arch-pc98" environment? [if] ; : f_double ( -- ) \ set frames to double + boot_serial? if f_ascii exit then dh_el h_el ! dv_el v_el ! dlt_el lt_el ! Modified: releng/9.2/sys/boot/forth/loader.4th ============================================================================== --- releng/9.2/sys/boot/forth/loader.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/loader.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -40,6 +40,7 @@ s" arch-i386" environment? [if] [if] 2048 dictincrease ! \ 2048 additional cells each time include /boot/support.4th +include /boot/color.4th only forth also support-functions also builtins definitions @@ -59,11 +60,23 @@ only forth also support-functions also b else drop then + s" menusets-unset" + sfind if + execute + else + drop + then ; : boot 0= if ( interpreted ) get_arguments then + loader_color? if + ." Booting..." cr + else + ." Booting..." cr + then + \ Unload only if a path was passed dup if >r over r> swap Modified: releng/9.2/sys/boot/forth/loader.4th.8 ============================================================================== --- releng/9.2/sys/boot/forth/loader.4th.8 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/loader.4th.8 Mon Aug 12 01:21:14 2013 (r254235) @@ -99,7 +99,7 @@ This is the command used in the default .Pa /boot/loader.rc file, and it uses the -.Pa autoboot +.Ic autoboot command (see .Xr loader 8 ) , so it can be stopped for further interaction with Modified: releng/9.2/sys/boot/forth/loader.conf ============================================================================== --- releng/9.2/sys/boot/forth/loader.conf Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/loader.conf Mon Aug 12 01:21:14 2013 (r254235) @@ -48,7 +48,7 @@ bitmap_type="splash_image_data" # and pl # escape to the loader prompt, set to # "NO" to disable autobooting #beastie_disable="NO" # Turn the beastie boot menu on and off -#loader_logo="fbsdbw" # Desired logo: fbsdbw, beastiebw, beastie, none +#loader_logo="orbbw" # Desired logo: orbbw, orb, fbsdbw, beastiebw, beastie, none #comconsole_speed="9600" # Set the current serial console speed #console="vidconsole" # A comma separated list of console(s) #currdev="disk1s1a" # Set the current device Modified: releng/9.2/sys/boot/forth/loader.conf.5 ============================================================================== --- releng/9.2/sys/boot/forth/loader.conf.5 Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/loader.conf.5 Mon Aug 12 01:21:14 2013 (r254235) @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd July 20, 2011 +.Dd August 6, 2013 .Dt LOADER.CONF 5 .Os .Sh NAME @@ -113,8 +113,23 @@ that contains a kernel. .It Ar kernel_options Flags to be passed to the kernel. .It Ar password +Protect boot menu with a password without interrupting +.Ic autoboot +process. +The password should be in clear text format. +If a password is set, boot menu will not appear until any key is pressed during +countdown period specified by +.Va autoboot_delay +variable or +.Ic autoboot +process fails. +In both cases user should provide specified password to be able to access boot +menu. +.It Ar bootlock_password Provides a password to be required by check-password before execution is allowed to continue. +The password should be in clear text format. +If a password is set, the user must provide specified password to boot. .It Ar verbose_loading If set to .Dq YES , @@ -230,8 +245,8 @@ and .Dq Li none . .It Va loader_color If set to -.Dq YES , -the beastie boot menu will be displayed using ANSI coloring where possible. +.Dq NO , +the beastie boot menu will be displayed without ANSI coloring. .El .Sh FILES .Bl -tag -width /boot/defaults/loader.conf -compact Modified: releng/9.2/sys/boot/forth/loader.rc ============================================================================== --- releng/9.2/sys/boot/forth/loader.rc Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/loader.rc Mon Aug 12 01:21:14 2013 (r254235) @@ -10,5 +10,9 @@ start \ Tests for password -- executes autoboot first if a password was defined check-password +\ Uncomment to enable boot menu +\ include /boot/beastie.4th +\ beastie-start + \ Unless set otherwise, autoboot is automatic at this point Modified: releng/9.2/sys/boot/forth/menu-commands.4th ============================================================================== --- releng/9.2/sys/boot/forth/menu-commands.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/menu-commands.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,4 +1,4 @@ -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2012 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -26,6 +26,60 @@ marker task-menu-commands.4th +include /boot/menusets.4th + +variable kernel_state +variable root_state + +\ +\ Boot +\ + +: init_boot ( N -- N ) + dup + s" boot_single" getenv -1 <> if + drop ( n n c-addr -- n n ) \ unused + toggle_menuitem ( n n -- n n ) + s" set menu_keycode[N]=115" \ base command to execute + else + s" set menu_keycode[N]=98" \ base command to execute + then + 17 +c! \ replace 'N' with ASCII numeral + evaluate +; + +\ +\ Alternate Boot +\ + +: init_altboot ( N -- N ) + dup + s" boot_single" getenv -1 <> if + drop ( n c-addr -- n ) \ unused + toggle_menuitem ( n -- n ) + s" set menu_keycode[N]=109" \ base command to execute + else + s" set menu_keycode[N]=115" \ base command to execute + then + 17 +c! \ replace 'N' with ASCII numeral + evaluate +; + +: altboot ( -- ) + s" boot_single" 2dup getenv -1 <> if + drop ( c-addr/u c-addr -- c-addr/u ) \ unused + unsetenv ( c-addr/u -- ) + else + 2drop ( c-addr/u -- ) \ unused + s" set boot_single=YES" evaluate + then + 0 boot ( state -- ) +; + +\ +\ ACPI +\ + : acpi_enable ( -- ) s" set acpi_load=YES" evaluate \ XXX deprecated but harmless s" set hint.acpi.0.disabled=0" evaluate @@ -53,39 +107,51 @@ marker task-menu-commands.4th TRUE \ loop menu again ; +\ +\ Safe Mode +\ + +: safemode_enabled? ( -- flag ) + s" kern.smp.disabled" getenv -1 <> dup if + swap drop ( c-addr flag -- flag ) + then +; + +: safemode_enable ( -- ) + s" set kern.smp.disabled=1" evaluate + s" set hw.ata.ata_dma=0" evaluate + s" set hw.ata.atapi_dma=0" evaluate + s" set hw.ata.wc=0" evaluate + s" set hw.eisa_slots=0" evaluate + s" set kern.eventtimer.periodic=1" evaluate + s" set kern.geom.part.check_integrity=0" evaluate +; + +: safemode_disable ( -- ) + s" kern.smp.disabled" unsetenv + s" hw.ata.ata_dma" unsetenv + s" hw.ata.atapi_dma" unsetenv + s" hw.ata.wc" unsetenv + s" hw.eisa_slots" unsetenv + s" kern.eventtimer.periodic" unsetenv + s" kern.geom.part.check_integrity" unsetenv +; + +: init_safemode ( N -- N ) + safemode_enabled? if + toggle_menuitem ( n -- n ) + then +; + : toggle_safemode ( N -- N TRUE ) toggle_menuitem \ Now we're going to make the change effective - s" toggle_stateN @" \ base name of toggle state var - -rot 2dup 12 + c! rot \ replace 'N' with ASCII numeral - - evaluate 0= if - s" hint.apic.0.disabled" unsetenv - s" hw.ata.ata_dma" unsetenv - s" hw.ata.atapi_dma" unsetenv - s" hw.ata.wc" unsetenv - s" hw.eisa_slots" unsetenv - s" hint.kbdmux.0.disabled" unsetenv - else - \ - \ Toggle ACPI elements if necessary - \ - acpipresent? if acpienabled? if - menuacpi @ dup 0<> if - toggle_menuitem ( N -- N ) - then - drop - acpi_disable - then then - - s" set hint.apic.0.disabled=1" evaluate - s" set hw.ata.ata_dma=0" evaluate - s" set hw.ata.atapi_dma=0" evaluate - s" set hw.ata.wc=0" evaluate - s" set hw.eisa_slots=0" evaluate - s" set hint.kbdmux.0.disabled=1" evaluate + dup toggle_stateN @ 0= if + safemode_disable + else + safemode_enable then menu-redraw @@ -93,42 +159,88 @@ marker task-menu-commands.4th TRUE \ loop menu again ; +\ +\ Single User Mode +\ + +: singleuser_enabled? ( -- flag ) + s" boot_single" getenv -1 <> dup if + swap drop ( c-addr flag -- flag ) + then +; + +: singleuser_enable ( -- ) + s" set boot_single=YES" evaluate +; + +: singleuser_disable ( -- ) + s" boot_single" unsetenv +; + +: init_singleuser ( N -- N ) + singleuser_enabled? if + toggle_menuitem ( n -- n ) + then +; + : toggle_singleuser ( N -- N TRUE ) toggle_menuitem menu-redraw \ Now we're going to make the change effective - s" toggle_stateN @" \ base name of toggle state var - -rot 2dup 12 + c! rot \ replace 'N' with ASCII numeral - - evaluate 0= if - s" boot_single" unsetenv + dup toggle_stateN @ 0= if + singleuser_disable else - s" set boot_single=YES" evaluate + singleuser_enable then TRUE \ loop menu again ; +\ +\ Verbose Boot +\ + +: verbose_enabled? ( -- flag ) + s" boot_verbose" getenv -1 <> dup if + swap drop ( c-addr flag -- flag ) + then +; + +: verbose_enable ( -- ) + s" set boot_verbose=YES" evaluate +; + +: verbose_disable ( -- ) + s" boot_verbose" unsetenv +; + +: init_verbose ( N -- N ) + verbose_enabled? if + toggle_menuitem ( n -- n ) + then +; + : toggle_verbose ( N -- N TRUE ) toggle_menuitem menu-redraw \ Now we're going to make the change effective - s" toggle_stateN @" \ base name of toggle state var - -rot 2dup 12 + c! rot \ replace 'N' with ASCII numeral - - evaluate 0= if - s" boot_verbose" unsetenv + dup toggle_stateN @ 0= if + verbose_disable else - s" set boot_verbose=YES" evaluate + verbose_enable then TRUE \ loop menu again ; +\ +\ Escape to Prompt +\ + : goto_prompt ( N -- N FALSE ) s" set autoboot_delay=NO" evaluate @@ -141,50 +253,94 @@ marker task-menu-commands.4th FALSE \ exit the menu ; +\ +\ Cyclestate (used by kernel/root below) +\ + +: init_cyclestate ( N K -- N ) + over cycle_stateN ( n k -- n k addr ) + begin + tuck @ ( n k addr -- n addr k c ) + over <> ( n addr k c -- n addr k 0|-1 ) + while + rot ( n addr k -- addr k n ) + cycle_menuitem + swap rot ( addr k n -- n k addr ) + repeat + 2drop ( n k addr -- n ) +; + +\ +\ Kernel +\ + +: init_kernel ( N -- N ) + kernel_state @ ( n -- n k ) + init_cyclestate ( n k -- n ) +; + : cycle_kernel ( N -- N TRUE ) cycle_menuitem menu-redraw \ Now we're going to make the change effective - s" cycle_stateN" \ base name of array state var - -rot 2dup 11 + c! rot \ replace 'N' with ASCII numeral - evaluate \ translate name into address - @ \ dereference address into value + dup cycle_stateN @ + dup kernel_state ! \ save a copy for re-initialization 48 + \ convert to ASCII numeral - \ Since we are [in this file] going to override the standard `boot' - \ routine with a custom one, you should know that we use $kernel - \ when referencing the desired kernel. Set $kernel below. - s" set kernel=${kernel_prefix}${kernel[N]}${kernel_suffix}" - \ command to assemble full kernel-path - -rot tuck 36 + c! swap \ replace 'N' with array index value - evaluate \ sets $kernel to full kernel-path + 36 +c! \ replace 'N' with ASCII numeral + evaluate \ sets $kernel to full kernel-path TRUE \ loop menu again ; +\ +\ Root +\ + +: init_root ( N -- N ) + root_state @ ( n -- n k ) + init_cyclestate ( n k -- n ) +; + : cycle_root ( N -- N TRUE ) cycle_menuitem menu-redraw \ Now we're going to make the change effective - s" cycle_stateN" \ base name of array state var - -rot 2dup 11 + c! rot \ replace 'N' with ASCII numeral - evaluate \ translate name into address - @ \ dereference address into value + dup cycle_stateN @ + dup root_state ! \ save a copy for re-initialization 48 + \ convert to ASCII numeral - \ Since we are [in this file] going to override the standard `boot' - \ routine with a custom one, you should know that we use $root when - \ booting. Set $root below. - - s" set root=${root_prefix}${root[N]}${root_prefix}" - \ command to assemble full kernel-path - -rot tuck 30 + c! swap \ replace 'N' with array index value - evaluate \ sets $kernel to full kernel-path + s" set root=${root_prefix}${root[N]}${root_suffix}" + 30 +c! \ replace 'N' with ASCII numeral + evaluate \ sets $root to full root-path TRUE \ loop menu again ; + +\ +\ Menusets +\ + +: goto_menu ( N M -- N TRUE ) + menu-unset + menuset-loadsetnum ( n m -- n ) + menu-redraw + TRUE \ Loop menu again +; + +\ +\ Defaults +\ + +: set_default_boot_options ( N -- N TRUE ) + acpi_enable + safemode_disable + singleuser_disable + verbose_disable + 2 goto_menu +; Modified: releng/9.2/sys/boot/forth/menu.4th ============================================================================== --- releng/9.2/sys/boot/forth/menu.4th Mon Aug 12 00:38:47 2013 (r254234) +++ releng/9.2/sys/boot/forth/menu.4th Mon Aug 12 01:21:14 2013 (r254235) @@ -1,6 +1,6 @@ \ Copyright (c) 2003 Scott Long \ Copyright (c) 2003 Aleksander Fafula -\ Copyright (c) 2006-2011 Devin Teske +\ Copyright (c) 2006-2013 Devin Teske \ All rights reserved. \ \ Redistribution and use in source and binary forms, with or without @@ -35,6 +35,8 @@ f_double \ Set frames to double ( \ f_single if you want single frames. 46 constant dot \ ASCII definition of a period (in decimal) + 5 constant menu_default_x \ default column position of timeout +10 constant menu_default_y \ default row position of timeout msg 4 constant menu_timeout_default_x \ default column position of timeout 23 constant menu_timeout_default_y \ default row position of timeout msg 10 constant menu_timeout_default \ default timeout (in seconds) @@ -76,6 +78,16 @@ variable menu_timeout \ determin variable menu_timeout_x \ column position of timeout message variable menu_timeout_y \ row position of timeout message +\ Menu initialization status variables +variable init_state1 +variable init_state2 +variable init_state3 +variable init_state4 +variable init_state5 +variable init_state6 +variable init_state7 +variable init_state8 + \ Boolean option status variables variable toggle_state1 variable toggle_state2 @@ -106,6 +118,52 @@ create init_text6 255 allot create init_text7 255 allot create init_text8 255 allot +: +c! ( N C-ADDR/U K -- C-ADDR/U ) + 3 pick 3 pick ( n c-addr/u k -- n c-addr/u k n c-addr ) + rot + c! ( n c-addr/u k n c-addr -- n c-addr/u ) + rot drop ( n c-addr/u -- c-addr/u ) +; + +: menukeyN ( N -- ADDR ) s" menukeyN" 7 +c! evaluate ; +: init_stateN ( N -- ADDR ) s" init_stateN" 10 +c! evaluate ; +: toggle_stateN ( N -- ADDR ) s" toggle_stateN" 12 +c! evaluate ; +: cycle_stateN ( N -- ADDR ) s" cycle_stateN" 11 +c! evaluate ; +: init_textN ( N -- C-ADDR ) s" init_textN" 9 +c! evaluate ; + +: str_loader_menu_frame ( -- C-ADDR/U ) s" loader_menu_frame" ; +: str_loader_menu_title ( -- C-ADDR/U ) s" loader_menu_title" ; +: str_loader_menu_title_align ( -- C-ADDR/U ) s" loader_menu_title_align" ; +: str_loader_menu_x ( -- C-ADDR/U ) s" loader_menu_x" ; +: str_loader_menu_y ( -- C-ADDR/U ) s" loader_menu_y" ; +: str_loader_menu_timeout_x ( -- C-ADDR/U ) s" loader_menu_timeout_x" ; +: str_loader_menu_timeout_y ( -- C-ADDR/U ) s" loader_menu_timeout_y" ; +: str_menu_init ( -- C-ADDR/U ) s" menu_init" ; +: str_menu_timeout_command ( -- C-ADDR/U ) s" menu_timeout_command" ; +: str_menu_reboot ( -- C-ADDR/U ) s" menu_reboot" ; +: str_menu_acpi ( -- C-ADDR/U ) s" menu_acpi" ; +: str_menu_options ( -- C-ADDR/U ) s" menu_options" ; +: str_menu_optionstext ( -- C-ADDR/U ) s" menu_optionstext" ; + +: str_menu_init[x] ( -- C-ADDR/U ) s" menu_init[x]" ; +: str_menu_command[x] ( -- C-ADDR/U ) s" menu_command[x]" ; +: str_menu_caption[x] ( -- C-ADDR/U ) s" menu_caption[x]" ; +: str_ansi_caption[x] ( -- C-ADDR/U ) s" ansi_caption[x]" ; +: str_menu_keycode[x] ( -- C-ADDR/U ) s" menu_keycode[x]" ; +: str_toggled_text[x] ( -- C-ADDR/U ) s" toggled_text[x]" ; +: str_toggled_ansi[x] ( -- C-ADDR/U ) s" toggled_ansi[x]" ; +: str_menu_caption[x][y] ( -- C-ADDR/U ) s" menu_caption[x][y]" ; +: str_ansi_caption[x][y] ( -- C-ADDR/U ) s" ansi_caption[x][y]" ; + +: menu_init[x] ( N -- C-ADDR/U ) str_menu_init[x] 10 +c! ; +: menu_command[x] ( N -- C-ADDR/U ) str_menu_command[x] 13 +c! ; +: menu_caption[x] ( N -- C-ADDR/U ) str_menu_caption[x] 13 +c! ; +: ansi_caption[x] ( N -- C-ADDR/U ) str_ansi_caption[x] 13 +c! ; +: menu_keycode[x] ( N -- C-ADDR/U ) str_menu_keycode[x] 13 +c! ; +: toggled_text[x] ( N -- C-ADDR/U ) str_toggled_text[x] 13 +c! ; +: toggled_ansi[x] ( N -- C-ADDR/U ) str_toggled_ansi[x] 13 +c! ; +: menu_caption[x][y] ( N M -- C-ADDR/U ) str_menu_caption[x][y] 16 +c! 13 +c! ; +: ansi_caption[x][y] ( N M -- C-ADDR/U ) str_ansi_caption[x][y] 16 +c! 13 +c! ; + : arch-i386? ( -- BOOL ) \ Returns TRUE (-1) on i386, FALSE (0) otherwise. s" arch-i386" environment? dup if drop @@ -162,30 +220,24 @@ create init_text8 255 allot \ ASCII numeral equal to user-selected menu item must be on the stack. \ We do not modify the stack, so the ASCII numeral is left on top. *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 02:21:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8BED6B0A; Mon, 12 Aug 2013 02:21:45 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 79A4B2347; Mon, 12 Aug 2013 02:21:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C2Ljof054806; Mon, 12 Aug 2013 02:21:45 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C2LjPk054805; Mon, 12 Aug 2013 02:21:45 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308120221.r7C2LjPk054805@svn.freebsd.org> From: Adrian Chadd Date: Mon, 12 Aug 2013 02:21:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254236 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 02:21:45 -0000 Author: adrian Date: Mon Aug 12 02:21:44 2013 New Revision: 254236 URL: http://svnweb.freebsd.org/changeset/base/254236 Log: When flushing packets from the powersave queue, make sure that m_nextpkt is NULL before passing it up to the parent transmit method. Modified: head/sys/net80211/ieee80211_power.c Modified: head/sys/net80211/ieee80211_power.c ============================================================================== --- head/sys/net80211/ieee80211_power.c Mon Aug 12 01:21:14 2013 (r254235) +++ head/sys/net80211/ieee80211_power.c Mon Aug 12 02:21:44 2013 (r254236) @@ -456,6 +456,7 @@ pwrsave_flushq(struct ieee80211_node *ni while (parent_q != NULL) { m = parent_q; parent_q = m->m_nextpkt; + m->m_nextpkt = NULL; /* must be encapsulated */ KASSERT((m->m_flags & M_ENCAP), ("%s: parentq with non-M_ENCAP frame!\n", From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 03:52:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6191559A; Mon, 12 Aug 2013 03:52:24 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 358BF2742; Mon, 12 Aug 2013 03:52:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C3qOas089567; Mon, 12 Aug 2013 03:52:24 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C3qOh5089566; Mon, 12 Aug 2013 03:52:24 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201308120352.r7C3qOh5089566@svn.freebsd.org> From: Devin Teske Date: Mon, 12 Aug 2013 03:52:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254237 - head/sys/boot/forth X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 03:52:24 -0000 Author: dteske Date: Mon Aug 12 03:52:23 2013 New Revision: 254237 URL: http://svnweb.freebsd.org/changeset/base/254237 Log: Add optional support for default override of standard setup; but only if corresponding functions are provided. If override function does not exist, boot remains unmodified. This patch should not result in any changes. Modified: head/sys/boot/forth/beastie.4th Modified: head/sys/boot/forth/beastie.4th ============================================================================== --- head/sys/boot/forth/beastie.4th Mon Aug 12 02:21:44 2013 (r254236) +++ head/sys/boot/forth/beastie.4th Mon Aug 12 03:52:23 2013 (r254237) @@ -181,8 +181,10 @@ variable logoY \ beastie Color ``Helper Daemon'' mascot (19 rows x 34 columns) \ beastiebw B/W ``Helper Daemon'' mascot (19 rows x 34 columns) \ fbsdbw "FreeBSD" logo in B/W (13 rows x 21 columns) -\ orb Color ``Orb'' mascot (15 rows x 30 columns) (default) +\ orb Color ``Orb'' mascot (15 rows x 30 columns) (2nd default) \ orbbw B/W ``Orb'' mascot (15 rows x 32 columns) +\ tribute Color ``Tribute'' (must fit 19 rows x 34 columns) (default) +\ tributebw B/W ``Tribute'' (must fit 19 rows x 34 columns) \ \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will \ prevent beastie from being drawn. @@ -203,9 +205,21 @@ variable logoY s" loader_logo" getenv dup -1 = if logoX @ logoY @ loader_color? if - orb-logo + s" tribute-logo" + sfind if + execute + else + drop + orb-logo + then else - orbbw-logo + s" tributebw-logo" + sfind if + execute + else + drop + orbbw-logo + then then drop exit then @@ -230,6 +244,24 @@ variable logoY logoX @ logoY @ orbbw-logo 2drop exit then + 2dup s" tribute" compare-insensitive 0= if + logoX @ logoY @ + s" tribute-logo" sfind if + execute + else + orb-logo + then + 2drop exit + then + 2dup s" tributebw" compare-insensitive 0= if + logoX @ logoY @ + s" tributebw-logo" sfind if + execute + else + orbbw-logo + then + 2drop exit + then 2drop ; From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 06:09:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 05F68209; Mon, 12 Aug 2013 06:09:29 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E657F2BFB; Mon, 12 Aug 2013 06:09:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C69Snu040565; Mon, 12 Aug 2013 06:09:28 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C69Swq040564; Mon, 12 Aug 2013 06:09:28 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201308120609.r7C69Swq040564@svn.freebsd.org> From: Hans Petter Selasky Date: Mon, 12 Aug 2013 06:09:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254238 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 06:09:29 -0000 Author: hselasky Date: Mon Aug 12 06:09:28 2013 New Revision: 254238 URL: http://svnweb.freebsd.org/changeset/base/254238 Log: Correct an EHCI register write. MFC after: 1 week Reported by: aseem.jolly@gmail.com Modified: head/sys/dev/usb/controller/ehci.c Modified: head/sys/dev/usb/controller/ehci.c ============================================================================== --- head/sys/dev/usb/controller/ehci.c Mon Aug 12 03:52:23 2013 (r254237) +++ head/sys/dev/usb/controller/ehci.c Mon Aug 12 06:09:28 2013 (r254238) @@ -259,7 +259,7 @@ ehci_init_sub(struct ehci_softc *sc) DPRINTF("HCC uses 64-bit structures\n"); /* MUST clear segment register if 64 bit capable */ - EWRITE4(sc, EHCI_CTRLDSSEGMENT, 0); + EOWRITE4(sc, EHCI_CTRLDSSEGMENT, 0); } usbd_get_page(&sc->sc_hw.pframes_pc, 0, &buf_res); From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 08:15:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1D53F432; Mon, 12 Aug 2013 08:15:59 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0A84A21F4; Mon, 12 Aug 2013 08:15:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C8FwhI087149; Mon, 12 Aug 2013 08:15:58 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C8FwQ1087148; Mon, 12 Aug 2013 08:15:58 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308120815.r7C8FwQ1087148@svn.freebsd.org> From: Erwin Lansing Date: Mon, 12 Aug 2013 08:15:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254239 - in vendor/bind9/dist: . libtool.m4 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 08:15:59 -0000 Author: erwin Date: Mon Aug 12 08:15:58 2013 New Revision: 254239 URL: http://svnweb.freebsd.org/changeset/base/254239 Log: Take the weirdly named libtool file off the vendor brachn and make sure it won't get imported in the future. Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S Deleted: vendor/bind9/dist/libtool.m4/lt~obsolete.m4 Modified: vendor/bind9/dist/FREEBSD-Xlist Modified: vendor/bind9/dist/FREEBSD-Xlist ============================================================================== --- vendor/bind9/dist/FREEBSD-Xlist Mon Aug 12 06:09:28 2013 (r254238) +++ vendor/bind9/dist/FREEBSD-Xlist Mon Aug 12 08:15:58 2013 (r254239) @@ -11,6 +11,7 @@ docutil isc-config.sh.1 isc-config.sh.docbook isc-config.sh.html +libtool.m4/lt~obsolete.m4 srcid util From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 09:15:34 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DB1CE733; Mon, 12 Aug 2013 09:15:34 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ADC7E271C; Mon, 12 Aug 2013 09:15:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C9FYmJ010140; Mon, 12 Aug 2013 09:15:34 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C9FYDO010135; Mon, 12 Aug 2013 09:15:34 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201308120915.r7C9FYDO010135@svn.freebsd.org> From: Hans Petter Selasky Date: Mon, 12 Aug 2013 09:15:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254241 - head/tools/tools/usbtest X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 09:15:35 -0000 Author: hselasky Date: Mon Aug 12 09:15:33 2013 New Revision: 254241 URL: http://svnweb.freebsd.org/changeset/base/254241 Log: Fix some signed comparison compile warnings. Modified: head/tools/tools/usbtest/usb_control_ep_test.c head/tools/tools/usbtest/usb_modem_test.c head/tools/tools/usbtest/usb_msc_test.c Modified: head/tools/tools/usbtest/usb_control_ep_test.c ============================================================================== --- head/tools/tools/usbtest/usb_control_ep_test.c Mon Aug 12 09:03:34 2013 (r254240) +++ head/tools/tools/usbtest/usb_control_ep_test.c Mon Aug 12 09:15:33 2013 (r254241) @@ -286,7 +286,7 @@ usb_port_reset_test(uint16_t vid, uint16 } timersub(&sub_tv, &ref_tv, &res_tv); - if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= duration)) + if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= (int)duration)) break; if (libusb20_dev_reset(pdev)) { @@ -445,7 +445,7 @@ usb_suspend_resume_test(uint16_t vid, ui } timersub(&sub_tv, &ref_tv, &res_tv); - if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= duration)) + if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= (int)duration)) break; error = libusb20_dev_set_power_mode(pdev, (iter & 1) ? Modified: head/tools/tools/usbtest/usb_modem_test.c ============================================================================== --- head/tools/tools/usbtest/usb_modem_test.c Mon Aug 12 09:03:34 2013 (r254240) +++ head/tools/tools/usbtest/usb_modem_test.c Mon Aug 12 09:15:33 2013 (r254241) @@ -215,7 +215,7 @@ usb_modem_control_ep_test(struct modem * } timersub(&sub_tv, &ref_tv, &res_tv); - if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= duration)) + if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= (int)duration)) break; LIBUSB20_INIT(LIBUSB20_CONTROL_SETUP, &setup); @@ -333,7 +333,7 @@ usb_modem_data_stress_test(struct modem } timersub(&sub_tv, &ref_tv, &res_tv); - if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= duration)) + if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= (int)duration)) break; libusb20_dev_process(p->usb_dev); Modified: head/tools/tools/usbtest/usb_msc_test.c ============================================================================== --- head/tools/tools/usbtest/usb_msc_test.c Mon Aug 12 09:03:34 2013 (r254240) +++ head/tools/tools/usbtest/usb_msc_test.c Mon Aug 12 09:15:33 2013 (r254241) @@ -798,7 +798,7 @@ retry_read_init: } timersub(&sub_tv, &ref_tv, &res_tv); - if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= p->duration)) + if ((res_tv.tv_sec < 0) || (res_tv.tv_sec >= (int)p->duration)) break; do_io_test(p, lun, lba_max, buffer, reference); From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 09:17:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BA8E8A20; Mon, 12 Aug 2013 09:17:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 987152734; Mon, 12 Aug 2013 09:17:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C9HnxC010547; Mon, 12 Aug 2013 09:17:49 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C9HmU3010543; Mon, 12 Aug 2013 09:17:48 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201308120917.r7C9HmU3010543@svn.freebsd.org> From: Hans Petter Selasky Date: Mon, 12 Aug 2013 09:17:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254243 - head/sys/dev/usb X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 09:17:49 -0000 Author: hselasky Date: Mon Aug 12 09:17:48 2013 New Revision: 254243 URL: http://svnweb.freebsd.org/changeset/base/254243 Log: - Try to fix build of 32-bit compatibility USB support for FreeBSD and Linux targets without breaking the existing IOCTL API. - Remove some not-needed header file inclusions. - Wrap a long line. MFC after: 1 week Reported by: Damjan Jovanovic Modified: head/sys/dev/usb/usb_compat_linux.c head/sys/dev/usb/usb_hub.c head/sys/dev/usb/usb_ioctl.h head/sys/dev/usb/usb_request.c Modified: head/sys/dev/usb/usb_compat_linux.c ============================================================================== --- head/sys/dev/usb/usb_compat_linux.c Mon Aug 12 09:17:46 2013 (r254242) +++ head/sys/dev/usb/usb_compat_linux.c Mon Aug 12 09:17:48 2013 (r254243) @@ -48,7 +48,6 @@ #include #include -#include #include #include Modified: head/sys/dev/usb/usb_hub.c ============================================================================== --- head/sys/dev/usb/usb_hub.c Mon Aug 12 09:17:46 2013 (r254242) +++ head/sys/dev/usb/usb_hub.c Mon Aug 12 09:17:48 2013 (r254243) @@ -53,7 +53,6 @@ #include #include -#include #include #include Modified: head/sys/dev/usb/usb_ioctl.h ============================================================================== --- head/sys/dev/usb/usb_ioctl.h Mon Aug 12 09:17:46 2013 (r254242) +++ head/sys/dev/usb/usb_ioctl.h Mon Aug 12 09:17:48 2013 (r254243) @@ -31,6 +31,7 @@ #ifndef USB_GLOBAL_INCLUDE_FILE #include +#include /* Building "kdump" depends on these includes */ @@ -43,6 +44,16 @@ #define USB_GENERIC_NAME "ugen" #define USB_TEMPLATE_SYSCTL "hw.usb.template" /* integer type */ +/* + * Align IOCTL structures to hide differences when running 32-bit + * programs under 64-bit kernels: + */ +#ifdef COMPAT_32BIT +#define USB_IOCTL_STRUCT_ALIGN(n) __aligned(n) +#else +#define USB_IOCTL_STRUCT_ALIGN(n) +#endif + /* Definition of valid template sysctl values */ enum { @@ -64,7 +75,7 @@ struct usb_read_dir { #endif uint32_t urd_startentry; uint32_t urd_maxlen; -}; +} USB_IOCTL_STRUCT_ALIGN(8); struct usb_ctl_request { #ifdef COMPAT_32BIT @@ -76,12 +87,12 @@ struct usb_ctl_request { uint16_t ucr_actlen; /* actual length transferred */ uint8_t ucr_addr; /* zero - currently not used */ struct usb_device_request ucr_request; -}; +} USB_IOCTL_STRUCT_ALIGN(8); struct usb_alt_interface { uint8_t uai_interface_index; uint8_t uai_alt_index; -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_gen_descriptor { #ifdef COMPAT_32BIT @@ -100,7 +111,7 @@ struct usb_gen_descriptor { uint8_t ugd_endpt_index; uint8_t ugd_report_type; uint8_t reserved[8]; -}; +} USB_IOCTL_STRUCT_ALIGN(8); struct usb_device_info { uint16_t udi_productNo; @@ -129,7 +140,7 @@ struct usb_device_info { char udi_vendor[128]; char udi_serial[64]; char udi_release[8]; -}; +} USB_IOCTL_STRUCT_ALIGN(2); #define USB_DEVICE_PORT_PATH_MAX 32 @@ -138,24 +149,24 @@ struct usb_device_port_path { uint8_t udp_index; /* which device index */ uint8_t udp_port_level; /* how many levels: 0, 1, 2 ... */ uint8_t udp_port_no[USB_DEVICE_PORT_PATH_MAX]; -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_device_stats { uint32_t uds_requests_ok[4]; /* Indexed by transfer type UE_XXX */ uint32_t uds_requests_fail[4]; /* Indexed by transfer type UE_XXX */ -}; +} USB_IOCTL_STRUCT_ALIGN(4); struct usb_fs_start { uint8_t ep_index; -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_stop { uint8_t ep_index; -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_complete { uint8_t ep_index; -}; +} USB_IOCTL_STRUCT_ALIGN(1); /* This structure is used for all endpoint types */ struct usb_fs_endpoint { @@ -188,7 +199,7 @@ struct usb_fs_endpoint { /* timeout value for no timeout */ #define USB_FS_TIMEOUT_NONE 0 int status; /* see USB_ERR_XXX */ -}; +} USB_IOCTL_STRUCT_ALIGN(8); struct usb_fs_init { /* userland pointer to endpoints structure */ @@ -199,11 +210,11 @@ struct usb_fs_init { #endif /* maximum number of endpoints */ uint8_t ep_index_max; -}; +} USB_IOCTL_STRUCT_ALIGN(8); struct usb_fs_uninit { uint8_t dummy; /* zero */ -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_open { #define USB_FS_MAX_BUFSIZE (1 << 18) @@ -215,20 +226,20 @@ struct usb_fs_open { uint8_t dev_index; /* currently unused */ uint8_t ep_index; uint8_t ep_no; /* bEndpointNumber */ -}; +} USB_IOCTL_STRUCT_ALIGN(4); struct usb_fs_open_stream { struct usb_fs_open fs_open; - uint16_t stream_id; -}; + uint16_t stream_id; /* stream ID */ +} USB_IOCTL_STRUCT_ALIGN(4); struct usb_fs_close { uint8_t ep_index; -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_fs_clear_stall_sync { uint8_t ep_index; -}; +} USB_IOCTL_STRUCT_ALIGN(1); struct usb_gen_quirk { uint16_t index; /* Quirk Index */ @@ -238,11 +249,11 @@ struct usb_gen_quirk { uint16_t bcdDeviceHigh; /* High Device Revision */ uint16_t reserved[2]; /* - * String version of quirk including terminating zero. See UQ_XXX in - * "usb_quirk.h". + * String version of quirk including terminating zero. See + * UQ_XXX in "usb_quirk.h". */ char quirkname[64 - 14]; -}; +} USB_IOCTL_STRUCT_ALIGN(2); /* USB controller */ #define USB_REQUEST _IOWR('U', 1, struct usb_ctl_request) Modified: head/sys/dev/usb/usb_request.c ============================================================================== --- head/sys/dev/usb/usb_request.c Mon Aug 12 09:17:46 2013 (r254242) +++ head/sys/dev/usb/usb_request.c Mon Aug 12 09:17:48 2013 (r254243) @@ -51,7 +51,6 @@ #include #include #include -#include #include #define USB_DEBUG_VAR usb_debug From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 09:56:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1EE5D7F5; Mon, 12 Aug 2013 09:56:54 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0AECF2A7A; Mon, 12 Aug 2013 09:56:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7C9useC025343; Mon, 12 Aug 2013 09:56:54 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7C9urH2025338; Mon, 12 Aug 2013 09:56:53 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308120956.r7C9urH2025338@svn.freebsd.org> From: Peter Wemm Date: Mon, 12 Aug 2013 09:56:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254244 - head/usr.bin/vi/catalog X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 09:56:54 -0000 Author: peter Date: Mon Aug 12 09:56:52 2013 New Revision: 254244 URL: http://svnweb.freebsd.org/changeset/base/254244 Log: Give up on using iconv to convert to UTF-8 at build time. I don't see any practical way to make iconv(1) as a build tool. Instead pre-convert. This gives us UTF-8 nvi catalogs even on systems without iconv enabled. Added: head/usr.bin/vi/catalog/dutch.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/french.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/german.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/polish.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/ru_RU.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/spanish.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/swedish.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/uk_UA.UTF-8.base (contents, props changed) head/usr.bin/vi/catalog/zh_CN.UTF-8.base (contents, props changed) Modified: head/usr.bin/vi/catalog/Makefile Modified: head/usr.bin/vi/catalog/Makefile ============================================================================== --- head/usr.bin/vi/catalog/Makefile Mon Aug 12 09:17:48 2013 (r254243) +++ head/usr.bin/vi/catalog/Makefile Mon Aug 12 09:56:52 2013 (r254244) @@ -16,33 +16,19 @@ all: dump build-tools: dump -# If we have iconv available, convert the ISO-8859 encoded files -# to UTF-8 as well. -.if ${MK_ICONV} == yes - -.for c in dutch english french german polish spanish swedish -CAT+= ${c}.UTF-8 -CLEANFILES+=${c}.UTF-8.base -$c.UTF-8.base: ${c}.base -.if ${c} == "polish" - iconv -f ISO8859-2 -t UTF-8 ${.ALLSRC} > ${.TARGET} -.else - iconv -f ISO8859-1 -t UTF-8 ${.ALLSRC} > ${.TARGET} -.endif -.endfor - -CAT+= zh_CN.UTF-8 uk_UA.UTF-8 ru_RU.UTF-8 -CLEANFILES+= zh_CN.UTF-8.base uk_UA.UTF-8.base ru_RU.UTF-8.base -zh_CN.UTF-8.base: zh_CN.GB2312.base - iconv -f GB2312 -t UTF-8 ${.ALLSRC} > ${.TARGET} - -uk_UA.UTF-8.base: uk_UA.KOI8-U.base - iconv -f KOI8-U -t UTF-8 ${.ALLSRC} > ${.TARGET} - -ru_RU.UTF-8.base: ru_RU.KOI8-R.base - iconv -f KOI8-R -t UTF-8 ${.ALLSRC} > ${.TARGET} - -.endif +# Helper since iconv is non trivial to make a build tool +utf8convert: +.for c in dutch french german spanish swedish + iconv -f ISO8859-1 -t UTF-8 $V/catalog/$c.base > $c.UTF-8.base +.endfor + iconv -f ISO8859-2 -t UTF-8 $V/catalog/polish.base > polish.UTF-8.base + iconv -f GB2312 -t UTF-8 $V/catalog/zh_CN.GB2312.base > zh_CN.UTF-8.base + iconv -f KOI8-R -t UTF-8 $V/catalog/ru_RU.KOI8-R.base > ru_RU.UTF-8.base + iconv -f KOI8-U -t UTF-8 $V/catalog/uk_UA.KOI8-U.base > uk_UA.UTF-8.base + +.for c in dutch french german polish spanish swedish zh_CN ru_RU uk_UA +CAT+= $c.UTF-8 +.endfor .for c in ${CAT} ${c}: ${c}.base @@ -134,59 +120,42 @@ SYMLINKS= .for l in ${NLLINKS} SYMLINKS+= dutch ${FILESDIR}/$l.ISO8859-1 SYMLINKS+= dutch ${FILESDIR}/$l.ISO8859-15 +SYMLINKS+= dutch.UTF-8 ${FILESDIR}/$l.UTF-8 .endfor .for l in ${ENLINKS} SYMLINKS+= english ${FILESDIR}/$l.ISO8859-1 SYMLINKS+= english ${FILESDIR}/$l.ISO8859-15 SYMLINKS+= english ${FILESDIR}/$l.US-ASCII +SYMLINKS+= english ${FILESDIR}/$l.UTF-8 .endfor SYMLINKS+= english ${FILESDIR}/POSIX SYMLINKS+= english ${FILESDIR}/C .for l in ${FRLINKS} SYMLINKS+= french ${FILESDIR}/$l.ISO8859-1 SYMLINKS+= french ${FILESDIR}/$l.ISO8859-15 +SYMLINKS+= french.UTF-8 ${FILESDIR}/$l.UTF-8 .endfor .for l in ${DELINKS} SYMLINKS+= german ${FILESDIR}/$l.ISO8859-1 SYMLINKS+= german ${FILESDIR}/$l.ISO8859-15 +SYMLINKS+= german.UTF-8 ${FILESDIR}/$l.UTF-8 .endfor .for l in ${ESLINKS} SYMLINKS+= spanish ${FILESDIR}/$l.ISO8859-1 SYMLINKS+= spanish ${FILESDIR}/$l.ISO8859-15 +SYMLINKS+= spanish.UTF-8 ${FILESDIR}/$l.UTF-8 .endfor .for l in ${SVLINKS} SYMLINKS+= swedish ${FILESDIR}/$l.ISO8859-1 SYMLINKS+= swedish ${FILESDIR}/$l.ISO8859-15 +SYMLINKS+= swedish.UTF-8 ${FILESDIR}/$l.UTF-8 .endfor .for l in ${PLLINKS} SYMLINKS+= polish ${FILESDIR}/$l.ISO8859-2 +SYMLINKS+= polish.UTF-8 ${FILESDIR}/$l.UTF-8 .endfor -# iconv not required for these. SYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GB18030 SYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.GBK SYMLINKS+= zh_CN.GB2312 ${FILESDIR}/zh_CN.eucCN -.if ${MK_ICONV} == yes -.for l in ${NLLINKS} -SYMLINKS+= dutch.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.for l in ${ENLINKS} -SYMLINKS+= english.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.for l in ${FRLINKS} -SYMLINKS+= french.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.for l in ${DELINKS} -SYMLINKS+= german.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.for l in ${ESLINKS} -SYMLINKS+= spanish.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.for l in ${SVLINKS} -SYMLINKS+= swedish.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.for l in ${PLLINKS} -SYMLINKS+= polish.UTF-8 ${FILESDIR}/$l.UTF-8 -.endfor -.endif .include Added: head/usr.bin/vi/catalog/dutch.UTF-8.base ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/vi/catalog/dutch.UTF-8.base Mon Aug 12 09:56:52 2013 (r254244) @@ -0,0 +1,306 @@ +002 "regel te lang" +003 "kan regel %lu niet verwijderen" +004 "kan niet toevoegen aan regel %lu" +005 "kan niet invoegen vooraan regel %lu" +006 "kan regel %lu niet opslaan" +007 "kan laatste regel niet lezen" +008 "Fout: kan regel %lu niet vinden" +009 "log bestand" +010 "Er vindt geen logging plaats, kan wijzigingen niet ongedaan maken" +011 "geen wijzigingen om ongedaan te maken" +012 "Er vindt geen logging plaats, kan wijzigingen niet ongedaan maken" +013 "Er vindt geen logging plaats, herhaling niet mogelijk" +014 "geen wijzigingen om te herhalen" +015 "%s/%d: schrijven naar log mislukt" +016 "Vi's standaard invoer en uitvoer moeten aan een terminal gekoppeld zijn" +017 "Merk %s: niet gezet" +018 "Merk %s: de regel is verwijderd" +019 "Merk %s: de cursor positie bestaat niet meer" +020 "Fout: " +021 "nieuw bestand" +022 "naam veranderd" +023 "gewijzigd" +024 "ongewijzigd" +025 "NIET BEVEILIGD" +026 "niet schrijfbaar" +027 "regel %lu uit %lu [%ld%%]" +028 "leeg bestand" +029 "regel %lu" +030 "Het bestand %s is geen message catalog" +031 "Niet in staat om de standaard %s optie in te stellen" +032 "Gebruik: %s" +033 "set: optie %s onbekend: 'set all' laat alle opties zien" +034 "set: [no]%s optie kan geen waarde hebben" +035 "set: %s optie moet een waarde hebben" +036 "set: %s optie: %s" +037 "set: %s optie: %s: getal is te groot" +038 "set: %s optie: %s is een ongeldige waarde" +039 "set: %s optie moet een waarde hebben" +040 "Te weinig kolommen op het scherm, minder dan %d" +041 "Aantal kolommen te groot, meer dan %d" +042 "Te weinig regels op het scherm, minder dan %d" +043 "Aantal regels te groot, meer dan %d" +044 "De lisp optie is niet ondersteund" +045 "messages niet uitgeschakeld: %s" +046 "messages niet geactiveerd: %s" +047 "De %s optie moet karakter paren bevatten" +053 "De standaard buffer is leeg" +054 "Buffer %s is leeg" +055 "Bestanden met newlines in de naam kunnen niet hersteld worden" +056 "Wijzigingen kunnen niet ongedaan gemaakt worden als deze sessie mislukt" +057 "Bestand wordt gecopieerd voor herstel..." +058 "Herstel mechanisme werkt niet: %s" +059 "Wijzigingen kunnen niet ongedaan gemaakt worden als deze sessie mislukt" +060 "Kon bestand niet veilig stellen: %s" +061 "Bestand wordt gecopieerd voor herstel..." +062 "Informatie met betrekking tot gebruiker nummer %u niet gevonden" +063 "Kan herstel bestand niet beveiligen" +064 "herstel buffer overgelopen" +065 "herstel bestand" +066 "%s: verminkt herstel bestand" +067 "%s: verminkt herstel bestand" +068 "U heeft geen bestand genaamd %s te herstellen" +069 "U kan eerdere versies van dit bestand herstellen" +070 "U kan nog meer bestanden herstellen" +071 "kan geen email versturen: %s" +072 "Bestand leeg; niets om te doorzoeken" +073 "Einde van het bestand bereikt zonder dat het patroon gevonden is" +074 "Geen vorig zoek patroon" +075 "Patroon niet gevonden" +076 "Begin van het bestand bereikt zonder dat het patroon gevonden is" +077 "Zoek-operatie omgeslagen" +078 "Bezig met zoeken..." +079 "Geen niet-printbaar karakter gevonden" +080 "Onbekend commando" +082 "Commando niet beschikbaar in ex mode" +083 "Aantal mag niet nul zijn" +084 "%s: ongeldige regel aanduiding" +085 "Interne fout in syntax tabel (%s: %s)" +086 "Gebruik: %s" +087 "%s: tijdelijke buffer niet vrijgegeven" +088 "Vlag offset voor regel 1" +089 "Vlag offset voorbij bestands einde" +090 "bestand/scherm veranderd tijdens uitvoeren van @ in een blok" +091 "bestand/scherm veranderd tijdens uitvoeren van globaal/v commando" +092 "Ex commando mislukt: rest van commando(s) genegeerd" +093 "Ex commando mislukt: gemappede toetsen genegeerd" +094 "Het tweede adres is kleiner dan het eerste" +095 "Geen merk naam opgegeven" +096 "\\ niet gevolgd door / of ?" +097 "Referentie aan een regel nummer kleiner dan 0" +098 "Het %s commando is onbekend" +099 "Adres waarde te groot" +100 "Adres waarde te klein" +101 "Ongeldige adres combinatie" +102 "Ongeldig adres: slechts %lu regels in het bestand aanwezig" +103 "Ongeldig adres: het bestand is leeg" +104 "Het %s commando staat het adres 0 niet toe" +105 "Geen afkortingen om weer te geven" +106 "Afkortingen moeten eindigen met een \"woord\" letter" +107 "Afkortingen mogen geen tabulaties of spaties bevatten" +108 "Afkortingen mogen geen woord/niet-woord karakters mengen, behalve aan het einde" +109 "\"%s\" is geen afkorting" +110 "Vi commando mislukt: gemappede toetsen genegeerd" +111 "Dit is het laatste bestand" +112 "Dit is het eerste bestand" +113 "Dit is het eerste bestand" +114 "lijst met bestanden is leeg" +115 "Geen voorgaand commando om \"!\" te vervangen" +116 "Geen bestandsnaam voor %%" +117 "Geen bestandsnaam voor #" +118 "Fout: execl: %s" +119 "I/O fout: %s" +120 "Bestand gewijzigd sinds laatste schrijfactie; schrijf het weg of gebruik ! om het te forceren" +121 "Kan uw home directory niet vinden" +122 "Nieuwe huidige directory: %s" +123 "Geen cut buffers aanwezig" +124 "Het %s commando kan niet gebruikt worden in een globaal of v commando" +125 "%s/%s: niet gelezen: noch U noch root is de eigenaar" +126 "%s/%s: niet gelezen: U bent niet de eigenaar" +127 "%s/%s: niet gelezen: kan gewijzigd worden door andere gebruikers" +128 "%s: niet gelezen: noch U noch root is de eigenaar" +129 "%s: niet gelezen: U bent niet de eigenaar" +130 "%s: niet gelezen: kan gewijzigd worden door andere gebruikers" +131 "Geen volgende regel om samen te voegen" +132 "Geen input map entries" +133 "Geen command map entries" +134 "Het %s karakter kan niet ge-remapped worden" +135 "\"%s\" is niet gemapped" +136 "Merk naam moet een enkel karakter zijn" +137 "%s bestaat al, niet weggeschreven; gebruik ! om het te forceren" +138 "Nieuw .exrc bestand: %s. " +139 "doel regel ligt in het blok" +140 "Het open commando vereist dat de open optie actief is" +141 "Het open commando is nog niet ondersteund" +142 "Kan dit bestand niet veilig stellen" +143 "Bestand veilig gesteld" +144 "%s resulteert in te veel bestandsnamen" +145 "Alleen echte bestanden en named pipes kunnen gelezen worden" +146 "%s: lees beveiliging niet beschikbaar" +147 "Bezig met lezen..." +148 "%s: %lu regels, %lu karakters" +149 "Geen achtergrond schermen aanwezig" +150 "Het script commando is alleen beschikbaar in vi mode" +151 "Geen comando om uit te voeren" +152 "shiftwidth optie op 0 gezet" +153 "Count te groot" +154 "Count te klein" +155 "Reguliere expressie opgegeven; r vlag heeft geen betekenis" +156 "De #, l en p vlaggen kunnen niet gecombineerd worden met de c vlag in vi mode" +157 "Geen match gevonden" +158 "Geen voorafgaande tag aanwezig" +159 "Minder dan %s elementen op de tags stapel; gebruik :display t[ags]" +160 "Geen bestand genaamd %s op de tags stapel; gebruik :display t[ags]" +161 "Kies Enter om door te gaan: " +162 "%s: tag niet gevonden" +163 "%s: verminkte tag in %s" +164 "%s: Het regel nummer van deze tag is voorbij het einde van het bestand" +165 "De tags stapel is leeg" +166 "%s: zoek patroon niet gevonden" +167 "%d andere bestanden te wijzigen" +168 "Buffer %s is leeg" +169 "Bevestig wijziging? [n]" +170 "Onderbroken" +171 "Geen voorafgaande buffer om uit te voeren" +172 "Geen vorige reguliere expressie" +173 "Het %s commando vereist dat er een bestand geladen is" +174 "Gebruik: %s" +175 "Het visual commando vereist dat de open optie actief is" +177 "Leeg bestand" +178 "Geen voorafgaand F, f, T of t zoek commando" +179 "%s niet gevonden" +180 "Geen voorafgaand bestand te bewerken" +181 "Cursor niet op een getal" +182 "Getal wordt te groot" +183 "Getal wordt te klein" +184 "Geen overeenkomstig karakter op deze regel" +185 "Overeenkomstig karakter niet gevonden" +186 "Geen karakters te vervangen" +187 "Geen ander scherm aanwezig" +188 "Karakters achter het zoek patroon, de regel offset, en/of het z commando" +189 "Geen voorafgaand zoek patroon" +190 "Zoekopdracht na omslag teruggekeerd op originele positie" +191 "Afkorting overschrijdt expansie limiet: karakters genegeerd" +192 "Ongeldig karakter; quote to enter" +193 "Reeds aan het begin van de invoer" +194 "Niet meer karakters te verwijderen" +195 "Verplaatsing voorbij het einde van het bestand" +196 "Verplaatsing voorbij het einde van de regel" +197 "Cursor niet verplaatst" +198 "Reeds aan het begin van het bestand" +199 "Verplaatsing voorbij het begin van het bestand" +200 "Reeds in de eerste kolom" +201 "Buffers moeten voor het commando opgegeven worden" +202 "Reeds bij het einde van het bestand" +203 "Reeds bij het einde van de regel" +204 "%s is geen vi commando" +205 "Gebruik: %s" +206 "Geen karakters te verwijderen" +207 "Het Q commando vereist de ex terminal interface" +208 "Geen commando om te herhalen" +209 "Het bestand is leeg" +210 "%s mag niet gebruikt worden als een verplaatsings commando" +211 "Al in commando mode" +212 "Cursor niet in een woord" +214 "Windows optie waarde is te groot, maximum is %u" +215 "Toevoegen" +216 "Veranderen" +217 "Commando" +218 "Invoegen" +219 "Vervangen" +220 "Verplaatsing voorbij het eind van het scherm" +221 "Verplaatsing voorbij het begin van het scherm" +222 "Scherm moet meer dan %d regels hebben om het te kunnen splitsen" +223 "Er zijn geen achtergrond schermen" +224 "Er is geen achtergrond scherm waarin U bestand %s aan het bewerken bent" +225 "U kan uw enige scherm niet in de achtergrond zetten" +226 "Het scherm kan slechts verkleind worden tot %d regels" +227 "Het scherm kan niet kleiner" +228 "Het scherm kan niet groter" +230 "Dit scherm kan niet gesuspend worden" +231 "Onderbroken: gemappede toetsen genegeerd" +232 "vi: tijdelijke buffer niet vrijgegeven" +233 "Deze terminal heeft geen %s toets" +234 "Er kan slechts een buffer opgegeven worden" +235 "Getal groter dan %lu" +236 "Onderbroken" +237 "Aanmaken van tijdelijk bestand is mislukt" +238 "Waarschuwing: %s is geen regulier bestand" +239 "%s is al geopend, bestand is in deze sessie niet schrijfbaar" +240 "%s: verwijdering mislukt" +241 "%s: sluiting mislukt" +242 "%s: verwijdering mislukt" +243 "%s: verwijdering mislukt" +244 "Bestand niet schrijfbaar, niet weggeschreven; gebruik ! om het te forceren" +245 "Bestand niet schrijfbaar, niet weggeschreven" +246 "%s bestaat al, niet weggeschreven; gebruik ! om het te forceren" +247 "%s bestaat al, niet weggeschreven" +248 "Gebruik ! om een incompleet bestand weg te schrijven" +249 "Bestand incompleet, niet weggeschreven" +250 "%s: bestand op disk nieuwer dan deze versie; gebruik ! om het te forceren" +251 "%s: bestand op disk nieuwer dan deze versie" +252 "%s: schrijf beveiliging niet beschikbaar" +253 "Bezig met schrijven..." +254 "%s: WAARSCHUWING: BESTAND INCOMPLEET" +255 "Reeds op de eerste tag van deze groep" +256 "%s: nieuw bestand: %lu regels, %lu karakters" +257 "%s: %lu regels, %lu karakters" +258 "%s resulteert in te veel bestandsnamen" +259 "%s: geen normaal bestand" +260 "%s: U bent niet de eigenaar" +261 "%s: kan gewijzigd worden door andere gebruikers" +262 "Bestand gewijzigd sinds laatste schrijfactie; schrijf het weg of gebruik ! om het te forceren" +263 "Bestand gewijzigd sinds laatste schrijfactie; schrijf het weg of gebruik :edit! om het te forceren" +264 "Bestand gewijzigd sinds laatste schrijfactie; schrijf het weg of gebruik ! om het te forceren" +265 "Tijdelijk bestand; exit negeert wijzigingen" +266 "Bestand niet schrijfbaar, wijzigingen niet automatisch weggeschreven" +267 "log opnieuw gestart" +268 "Bevestig? [ynq]" +269 "Druk op een toets om door te gaan: " +270 "Druk op een toets om door te gaan [: voor meer ex commandos]: " +271 "Druk op een toets om door te gaan [q om te stoppen]: " +272 "Deze vorm van %s vereist de ex terminal interface" +273 "Entering ex input mode." +274 "Commando mislukt, nog geen bestand geladen." +275 " doorgaan?" +276 "Onverwacht character event" +277 "Onverwacht end-of-file event" +278 "Geen match gevonden voor dit patroon" +279 "Onverwacht interrupt event" +280 "Onverwacht quit event" +281 "Onverwacht repaint event" +282 "Reeds op de laatste tag van deze groep" +283 "Het %s command vereist de ex terminal interface" +284 "Deze vorm van %s is niet ondersteund als de secure edit optie actief is" +285 "Onverwacht string event" +286 "Onverwacht timeout event" +287 "Onverwacht write event" +289 "Shell expansies zijn niet ondersteund als de secure edit optie actief is" +290 "Het %s commando is niet ondersteund als de secure edit optie actief is" +291 "set: %s mag niet uitgezet worden" +292 "Scherm te klein." +293 "toegevoegd" +294 "gewijzigd" +295 "verwijderd" +296 "samengevoegd" +297 "verplaatst" +298 "verschoven" +299 "gebufferd" +300 "regel" +301 "regels" +302 "Vi was niet geladen met een Tcl interpreter" +303 "Bestand gewijzigd sinds het de laatste keer weg is geschreven." +304 "Shell expansie mislukt" +305 "Geen %s edit optie opgegeven" +306 "Vi was niet geladen met een Perl interpreter" +307 "Geen ex commando om uit te voeren" +308 "Kies om commando uit te voeren, :q om te stoppen" +309 "Gebruik \"cscope help\" voor uitleg" +310 "Nog geen cscope connectie aanwezig" +311 "%s: onbekend zoek type: gebruik een van %s" +312 "%d: onbekende cscope sessie" +313 "set: de %s optie mag nooit aangezet worden" +314 "set: de %s optie mag nooit op 0 gezet worden" +315 "%s: toegevoegd: %lu regels, %lu karakters" +316 "Onverwacht resize event" +317 "%d bestanden te wijzigen" Added: head/usr.bin/vi/catalog/french.UTF-8.base ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/vi/catalog/french.UTF-8.base Mon Aug 12 09:56:52 2013 (r254244) @@ -0,0 +1,306 @@ +002 "Dépassement de longueur de ligne" +003 "impossible de supprimer la ligne %lu" +004 "impossible d'ajouter à la ligne %lu" +005 "impossible d'insérer devant la ligne %lu" +006 "impossible de stocker la ligne %lu" +007 "impossible d'obtenir la dernière ligne" +008 "Erreur : impossible de récupérer la ligne %lu" +009 "Fichier journal" +010 "Aucune journalisation n'étant effectuée, impossible d'annuler" +011 "Aucune action à annuler" +012 "Aucune journalisation n'étant effectuée, impossible d'annuler" +013 "Aucune journalisation n'étant effectuée, reprise actualisée impossible" +014 "Aucune action à refaire" +015 "%s/%d : Erreur d'écriture de journal" +016 "L'entrée et la sortie Vi standards doivent être un terminal" +017 "Marque %s : non définie" +018 "Marque %s : la ligne a été supprimée" +019 "Marque %s : la position du curseur n'existe plus" +020 "Erreur : " +021 "nouveau fichier" +022 "le nom a changé" +023 "modifié" +024 "non modifié" +025 "DÉVERROUILLÉ" +026 "lecture seule" +027 "ligne %lu de %lu [%ld%%]" +028 "fichier vide" +029 "ligne %lu" +030 "Ce fichier %s n'est pas un catalogue de messages" +031 "Impossible de configurer option %s par défaut" +032 "Utilisation : %s" +033 "Définition : pas d'option %s : 'set all' donne toutes les valeurs optionnelles" +034 "Définition : option [no]%s ne prend pas de valeur" +035 "Définition : l'option %s n'est pas booléenne" +036 "Définition : option %s : %s" +037 "Définition : option %s : %s : Dépassement de valeur" +038 "Définition : option %s : %s n'est pas un nombre valide" +039 "Définition : l'option %s n'est pas booléenne" +040 "Les colonnes de l'écran sont trop petites, inférieures à %d" +041 "Les colonnes de l'écran sont trop grandes, supérieures à %d" +042 "Les lignes de l'écran sont trop courtes, inférieures à %d" +043 "Les lignes de l'écran sont trop longues, supérieures à %d" +044 "L'option lisp n'est pas implémentée" +045 "Les messages ne sont pas désactivés : %s" +046 "Les messages ne sont pas activés : %s" +047 "L'option de %s doit être en groupe de deux caractères" +053 "Le tampon par défaut est vide" +054 "Le tampon %s est vide" +055 "Les fichiers dont le nom contient des caractères de saut de ligne sont irrécupérables" +056 "Impossible de récupérer les modifications si la session échoue" +057 "Copie en cours du fichier pour récupération..." +058 "La préservation a échoué : %s" +059 "Impossible de récupérer les modifications si la session échoue" +060 "La sauvegarde du fichier a échoué : %s" +061 "Copie en cours du fichier pour récupération..." +062 "Les renseignements sur l'identité %u de l'utilisateur sont introuvables" +063 "Impossible de verrouiller le fichier de récupération" +064 "Débordement de tampon du fichier de récupération" +065 "Fichier de récupération" +066 "%s : Fichier de récupération malformé" +067 "%s : Fichier de récupération malformé" +068 "Aucun fichier nommé %s à récupérer, que vous puissiez lire" +069 "Il existe des versions récupérables antérieures à ce fichier" +070 "Vous avez d'autres fichiers à récupérer" +071 "pas d'envoi d'email : %s" +072 "Fichier vide, rien à rechercher" +073 "Fin de fichier atteinte sans trouver le motif" +074 "Pas de motif de recherche précédent" +075 "Motif introuvable" +076 "Début du fichier atteint sans trouver le motif" +077 "La recherche est revenue à son point de départ" +078 "Recherche en cours..." +079 "Caractère non-imprimable introuvable" +080 "Nom de commande inconnu" +082 "%s : Commande non disponible en ex mode" +083 "Le compteur ne peut être zéro" +084 "%s : mauvaise spécification de ligne" +085 "Erreur de tableau de syntaxe interne (%s: %s)" +086 "Utilisation : %s" +087 "%s : tampon temporaire non libéré" +088 "Décalage de drapeau hors de la ligne 1" +089 "Décalage de drapeau hors de la fin du fichier" +090 "@ avec plage, en cours d'exécution quand le fichier/l'écran a changé" +091 "Commande Global/v en cours d'exécution quand le fichier/l'écran a changé" +092 "La commande ex a échoué : commandes en attente abandonnées" +093 "La commande ex a échoué : les touches affectées sont abandonnées" +094 "La deuxième adresse est plus petite que la première" +095 "Aucun nom de marque fourni" +096 "\\ non suivi par / ou ?" +097 "Référence à un numéro de ligne inférieure à 0" +098 "La commande %s est inconnue" +099 "Dépassement de la valeur adresse" +100 "Dépassement négatif de la valeur adresse" +101 "Combinaison d'adresse non valide" +102 "Adresse non valide : il n'y a que %lu lignes dans ce fichier" +103 "Adresse non valide : le fichier est vide" +104 "La commande %s ne permet pas une adresse de 0" +105 "Pas d'abréviations à afficher" +106 "Les abréviations doivent finir par un caractère \"mot\"" +107 "Les abréviations ne peuvent pas contenir de tabulations ni d'espaces" +108 "Les abréviations ne peuvent pas contenir un mélange de caractères mot/non-mot, sauf à la fin" +109 "\"%s\" n'est pas une abréviation" +110 "La commande Vi a échoué : Les touches affectées ont été abandonnées" +111 "Plus de fichiers à éditer" +112 "Pas de fichiers précédents à éditer" +113 "Pas de fichiers précédents à rembobiner" +114 "Pas de liste de fichiers à afficher" +115 "Pas de commande précédente à remplacer \"!\"" +116 "Pas de nom de fichier à substituer à %%" +117 "Pas de nom de fichier à substituer à #" +118 "Erreur : execl : %s" +119 "Erreur E/S : %s" +120 "Fichier modifié depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser" +121 "Impossible de trouver l'emplacement du répertoire d'origine" +122 "Nouveau répertoire en cours : %s" +123 "Pas de tampon de coupure à afficher" +124 "La commande %s ne peut pas être utilisée à l'intérieur d'une commande globale ou commande v" +125 "%s/%s : échec de source : ni vous ni le super-utilisateur n'êtes les propriétaires " +126 "%s/%s : échec de source : vous n'êtes pas le propriétaire" +127 "%s/%s : échec de source : peut être écrit par un utilisateur autre que le propriétaire" +128 "%s : échec de source : ni vous ni le super-utilisateur n'êtes les propriétaires" +129 "%s : échec de source : vous n'êtes pas le propriétaire" +130 "%s : échec de source : peut être écrit par un utilisateur autre que le propriétaire" +131 "Pas de lignes suivantes à joindre" +132 "Pas d'entrées de mappage d'entrée" +133 "Pas d'entrées de mappage de commandes" +134 "Le caractère %s ne peut pas être remappé" +135 "\"%s\" n'est pas actuellement mappé" +136 "Les noms de marque ne doivent avoir qu'un caractère" +137 "%s existe, non enregistré; utiliser ! pour outrepasser" +138 "Nouveau fichier exrc : %s" +139 "La ligne de destination est à l'intérieur de la plage à déplacer" +140 "La commande ouverte nécessite que l'option ouverte soit définie" +141 "La commande ouverte n'est pas encore implémentée" +142 "La préservation de ce fichier est impossible" +143 "Fichier préservé" +144 "%s: étendu dans trop de noms de fichiers" +145 "Vous ne pouvez lire que les fichiers standards et les canaux de transmission nommés" +146 "%s: Interdiction de lecture non disponible" +147 "Lecture en cours..." +148 "%s: %lu lignes, %lu caractères" +149 "Pas d'écrans d'arrière-plan à afficher" +150 "La commande script n'est disponible qu'en mode vi" +151 "Pas de commande à exécuter" +152 "Option de largeur de décalage définie sur 0" +153 "Compter dépassement" +154 "Compter dépassement négatif" +155 "Expression standard spécifiée; drapeau r superflu" +156 "Vous ne pouvez pas en mode vi, combiner les drapeaux #, l et p avec le drapeau c" +157 "Aucune correspondance trouvée" +158 "Aucune marque précédente entrée" +159 "Moins de %s entrées dans la pile de marques ; utilisez t[ags]" +160 "Pas de fichier %s vers lequel retourner dans la pile de marques ; utiliser : affichage t[ags]" +161 "Appuyez sur Entrée pour continuer :" +162 "%s : marque introuvable" +163 "%s : marque corrompue en %s" +164 "%s : le numéro de ligne de la marque dépasse la fin du fichier" +165 "La pile de marques est vide" +166 "%s : motif de recherche introuvable" +167 "%d fichiers supplémentaires à éditer" +168 "Le tampon %s est vide +169 "Confirmer les changements ? [n]" +170 "Interrompu" +171 "Pas de tampon précédent à exécuter" +172 "Pas d'expression standard précédente" +173 "La commande %s nécessite qu'un fichier ait déjà été lu en mémoire" +174 "Utilisation : %s" +175 "La commande visual nécessite que l'option open soit définie" +177 "Fichier vide" +178 "Pas de recherche précédente F, f, T ou t" +179 "%s introuvable" +180 "Pas de fichier précédent à éditer" +181 "Le curseur n'est pas dans un nombre" +182 "Le nombre obtenu est trop grand" +183 "Le nombre obtenu est trop petit" +184 "Pas de correspondance de caractère sur cette ligne" +185 "Caractère correspondant introuvable" +186 "Pas de caractères à remplacer" +187 "Pas d'autre écran vers lequel basculer" +188 "Caractères après la chaîne de recherche, décalage de ligne et/ou commande z" +189 "Pas de motif de recherche précédent" +190 "La recherche est revenue à son point de départ" +191 "L'abréviation a dépassé la limite de l'expansion : caractères abandonnés" +192 "Caractère non valide ; guillemet pour saisir" +193 "Déjà au début de l'insertion" +194 "Plus de caractères à effacer" +195 "Déplacement hors de fin de fichier" +196 "Déplacement hors de fin de ligne" +197 "Aucun mouvement de curseur n'a été effectué" +198 "Déjà au début du fichier" +199 "Déplacement hors du début du fichier" +200 "Déjà dans la première colonne" +201 "Les tampons doivent être spécifiés avant la commande" +202 "Déjà à la fin du fichier" +203 "Déjà à la fin de la ligne" +204 "%s n'est pas une commande vi" +205 "Utilisation : %s" +206 "Pas de caractères à supprimer" +207 "La commande Q nécessite une interface terminal ex" +208 "Pas de commande à répéter" +209 "Le fichier est vide" +210 "Vous ne pouvez pas utiliser %s comme commande de déplacement" +211 "Déjà en mode commande" +212 "Le curseur n'est pas dans un mot" +214 "Valeur optionnelle de fenêtre trop grande, maximum est %u" +215 "Ajouter" +216 "Changer" +217 "Commande" +218 "Insérer" +219 "Remplacer" +220 "Déplacement hors de la fin d'écran" +221 "Déplacement hors du début d'écran" +222 "L'écran doit être supérieur à %d lignes pour se fractionner" +223 "Il n'y a pas d'écran d'arrière-plan" +224 "Il n'y a pas d'écran d'arrière-plan qui édite un fichier nommé %s" +225 "Vous ne pouvez pas mettre à l'arrière-plan votre seul écran affiché" +226 "L'écran ne peut être réduit qu'à %d rangs" +227 "L'écran n'est pas auto-réductible" +228 "L'écran n'est pas auto-extensible" +230 "Vous ne pouvez pas mettre cet écran en attente" +231 "Interrompu : les touches affectées ont été abandonnées" +232 "vi : le tampon temporaire n' a pas été libéré" +233 "Ce terminal n'a pas de touche %s" +234 "Vous ne pouvez spécifier qu'un seul tampon" +235 "Nombre supérieur à %lu" +236 "Interrompu" +237 "Impossible de créer un fichier temporaire" +238 "Avertissement : %s n'est pas un fichier standard" +239 "%s déjà verrouillé, session en lecture seule" +240 "%s: supprimer" +241 "%s: fermer" +242 "%s: supprimer" +243 "%s: supprimer" +244 "Fichier en lecture seule, non écrit, utiliser ! pour outrepasser" +245 "Fichier en lecture seule, non écrit" +246 "%s existe, non écrit; utiliser ! pour outrepasser" +247 "%s existe, non écrit" +248 "Fichier partiel, non écrit; utiliser ! pour outrepasser" +249 "Fichier partiel, non écrit" +250 "%s: fichier modifié plus récemment que cet exemplaire; utiliser ! pour outrepasser" +251 "%s: fichier modifié plus récemment que cet exemplaire" +252 "%s: interdiction d'écriture non disponible" +253 "Ecriture en cours..." +254 "%s: AVERTISSEMENT : FICHIER TRONQUÉ" +255 "Première marque de ce groupe déjà atteinte" +256 "%s: nouveau fichier : %lu lignes, %lu caractères" +257 "%s: %lu lignes, %lu caractères" +258 "%s étendue à trop de noms de fichiers" +259 "%s: pas un fichier standard" +260 "%s: ne vous appartient pas" +261 "%s: accessible par un utilisateur autre que son propriétaire" +262 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser " +263 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser :edit! pour outrepasser" +264 "Fichier modifé depuis la dernière écriture complète ; écrire ou utiliser ! pour outrepasser" +265 "Fichier temporaire ; quitter annulera les modifications" +266 "Fichier en lecture seule ; les modifications ne sont pas écrites automatiquement" +267 "Journal redémarré" +268 "confirmer ? [ynq]" +269 "Appuyez sur n'importe quelle touche pour continuer : " +270 "Appuyez sur n'importe quelle touche pour continuer [: pour entrer plus de commandes ex] : " +271 "Appuyez sur n'importe quelle touche pour continuer [q pour Quitter]: " +272 "Cette forme de %s nécessite l'interface de terminal ex" +273 "Entrée de mode entrée ex." +274 "La commande a échoué, aucun fichier n'a encore été lu." +275 "cont?" +276 "Evénement imprévu de caractère" +277 "Evénement imprévu de fin-de-fichier" +278 "Pas de correspondances pour cette requête" +279 "Evénement imprévu d'interruption" +280 "Evénement quitter imprévu" +281 "Evénement imprévu de rafraîchissement" +282 "La dernière marque de ce groupe a déjà été atteinte" +283 "La commande %s nécessite l'interface de terminal ex" +284 "Cette forme de %s n'est pas reconnue quand l'option d'édition protégée est activée" +285 "Evénement imprévu de chaîne" +286 "Evénement imprévu de délai imparti" +287 "Evénement d'écriture imprévu" +289 "Les expansions du shell ne sont pas reconnues quand l'option d'édition protégée est activée" +290 "La commande %s n'est pas reconnue quand l'option d'édition protégée est activée" +291 "Définition : l'option %s ne peut pas être désactivée" +292 "Affichage trop petit." +293 "ajouté" +294 "changé" +295 "supprimé" +296 "joint" +297 "déplacé" +298 "décalé" +299 "coupé" +300 "ligne" +301 "lignes" +302 "Vi n'a pas été chargé avec un interprétateur Tcl" +303 "Ficher modifié depuis le dernier enregistrement." +304 "L'expansion du shell a échoué" +305 "Pas d'option d'édition %s spécifiée" +306 "Vi n'a pas été chargé avec un interprétateur Perl" +307 "Pas de commande ex à exécuter" +308 "Entrez pour exécuter une commande, :q pour quitter" +309 "Utiliser \"cscope help\" pour obtenir de l'aide" +310 "Aucune connexion cscope n'est lancée" +311 "%s : type de recherche inconnu : utiliser un des %s" +312 "%d : Il n'existe pas de telle session cscope" +313 "Définition : l'option %s ne peut jamais être activée" +314 "Définition : l'option %s ne peut jamais être définie sur 0" +315 "%s: joints : %lu lignes, %lu caractères" +316 "événement imprévu de redimensionnement" +317 "%d fichiers à éditer" Added: head/usr.bin/vi/catalog/german.UTF-8.base ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/usr.bin/vi/catalog/german.UTF-8.base Mon Aug 12 09:56:52 2013 (r254244) @@ -0,0 +1,306 @@ +002 "Zeilenlängen-Ãœberlauf" +003 "kann Zeile %lu nicht löschen" +004 "kann an Zeile %lu nicht anfügen" +005 "kann in Zeile %lu nicht einfügen" +006 "kann Zeile %lu nicht speichern" +007 "kann letzte Zeile nicht lesen" +008 "Fehler: kann Zeile %lu nicht wiederherstellen" +009 "Protokolldatei" +010 "Keine Protokollierung aktiv, Rückgängigmachen nicht möglich" +011 "Keine Änderungen rückgängig zu machen" +012 "Keine Protokollierung aktiv, Rückgängigmachen nicht möglich" +013 "Keine Protokollierung aktiv, Wiederholung von Änderungen nicht möglich" +014 "Keine Änderungen zu wiederholen" +015 "%s/%d: Protokollschreibfehler" +016 "Vi's Standardein- und -ausgabe muß ein Terminal sein" +017 "Marke %s: nicht gesetzt" +018 "Marke %s: die Zeile wurde gelöscht" +019 "Marke %s: Cursorposition existiert nicht mehr" +020 "Fehler: " +021 "neue Datei" +022 "Name geändert" +023 "geändert" +024 "nicht geändert" +025 "NICHT GELOCKT" +026 "nur zum Lesen" +027 "Zeile %lu von %lu [%ld%%]" +028 "leere Datei" +029 "Zeile %lu" +030 "Die Datei %s ist kein Meldungskatalog" +031 "Setzen der Voreinstellung für %s Option nicht möglich" +032 "Benutzung: %s" +033 "set: keine %s Option: 'set all' zeigt alle Optionen mit Werten an" +034 "set: der [no]%s Option kann kein Wert zugewiesen werden" +035 "set: %s ist keine Boolsche Option" +036 "set: %s Option: %s" +037 "set: %s Option: %s: Werte-Ãœberlauf" +038 "set: %s Option: %s ist eine ungültige Zahl" +039 "set: %s ist keine Boolsche Option" +040 "Bildschirm hat zu wenig Spalten, weniger als %d" +041 "Bildschirm hat zu viele Spalten, mehr als %d" +042 "Bildschirm hat zu wenig Zeilen, weniger als %d" +043 "Bildschirm hat zu viele Zeilen, mehr als %d" +044 "Die lisp-Option ist nicht implementiert" +045 "Meldungen nicht abgeschaltet: %s" +046 "Meldungen nicht eingeschaltet: %s" +047 "Die %s-Option muß Gruppen zu zwei Zeichen enthalten" +053 "Der Standardpuffer ist leer" +054 "Puffer %s ist leer" +055 "Dateien mit newlines im Namen sind nicht wiederherstellbar" +056 "Änderungen nicht wiederherstellbar, falls die Editorsitzung schiefgeht" +057 "kopiere Datei für Wiederherstellung ..." +058 "Rettungsmechanismus funktioniert nicht: %s" +059 "Änderungen nicht wiederherstellbar, falls die Editorsitzung schiefgeht" +060 "Sicherung der Datei gescheitert: %s" +061 "kopiere Datei für Wiederherstellung ..." +062 "Informationen über den Benutzer mit id %u nicht gefunden" +063 "Wiederherstellungsdatei kann nicht gelockt werden" +064 "Puffer der Wiederherstellungsdatei übergelaufen" +065 "Wiederherstellungsdatei" +066 "%s: Wiederherstellungsdatei hat falsches Format" +067 "%s: Wiederherstellungsdatei hat falsches Format" +068 "Keine von Ihnen lesbaren Dateien mit Namen %s zum Wiederherstellen" +069 "Es gibt ältere Versionen dieser Datei von Ihnen zum Wiederherstellen" +070 "Sie haben noch andere Dateien zum Wiederherstellen" +071 "schicke keine email: %s" +072 "Datei leer; nichts zu suchen" +073 "Dateiende erreicht, ohne das Suchmuster zu finden" +074 "Kein altes Suchmuster" +075 "Suchmuster nicht gefunden" +076 "Dateianfang erreicht, ohne das Suchmuster zu finden" +077 "Suche beginnt von vorn" +078 "suche ..." +079 "Keine nichtdruckbaren Zeichen gefunden" +080 "Unbekannter Kommandoname" +082 "%s: Kommando im ex-Modus nicht verfügbar" +083 "Anzahl darf nicht Null sein" +084 "%s: falsche Zeilenangabe" +085 "Interner Syntaxtabellenfehler (%s: %s)" +086 "Benutzung: %s" +087 "%s: temporärer Puffer nicht freigegeben" +088 "Flagoffset vor Zeile 1" +089 "Flagoffset hinter dem Dateiende" +090 "@ mit Bereich lief, als Datei/Anzeige geändert wurde" +091 "globales oder v-Kommando lief, als Datei/Anzeige geändert wurde" +092 "Ex-Kommando mißlungen: restliche Kommandoeingabe ignoriert" +093 "Ex-Kommando mißlungen: umdefinierte Tasten ungültig" +094 "Die zweite Adresse ist kleiner als die erste" +095 "Kein Markenname angegeben" +096 "\\ ohne folgenden / oder ?" +097 "Referenz auf eine negative Zeilennummer" +098 "Das Kommando %s ist unbekannt" +099 "Adreßwert zu groß" +100 "Adreßwert zu klein" +101 "Ungültige Adreßkombination" +102 "Ungültige Adresse: nur %lu Zeilen in der Datei" +103 "Ungültige Adresse: die Datei ist leer" +104 "Das Kommando %s erlaubt keine Adresse 0" +105 "Keine Abkürzungen zum Anzeigen" +106 "Abkürzungen müssen mit einem \"Wort\"-Zeichen enden" +107 "Abkürzungen dürfen keine Tabulator- oder Leerzeichen enthalten" +108 "In Abkürzungen dürfen außer am Ende Wort- und Nicht-Wort-Zeichen nicht gemischt werden" +109 "\"%s\" ist keine Abkürzung" +110 "Vi Kommando mißlungen: umdefinierte Tasten ungültig" +111 "Keine weiteren Dateien zu editieren" +112 "Keine vorhergehenden Dateien zu editieren" +113 "Keine vorhergehenden Dateien für rewind" +114 "Keine Dateiliste zum Anzeigen" +115 "Kein vorhergehendes Kommando, um \"!\" zu ersetzen" +116 "Kein Dateiname für %%" +117 "Kein Dateiname für #" +118 "Fehler: execl: %s" +119 "E/A-Fehler: %s" +120 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende ! zum ignorieren" +121 "Kann Homedirectory nicht bestimmen" +122 "Neues aktuelles Directory: %s" +123 "Keine Puffer anzuzeigen" +124 "Das Kommando %s kann nicht als Teil eines global oder v Kommandos verwendet werden" +125 "%s/%s: nicht gelesen: gehört weder Ihnen noch root" +126 "%s/%s: nicht gelesen: gehört nicht Ihnen" +127 "%s/%s: nicht gelesen: anderer Benutzer als Eigentümer hat Schreibrecht" +128 "%s: nicht gelesen: gehört weder Ihnen noch root" +129 "%s: nicht gelesen: gehört nicht Ihnen" +130 "%s: nicht gelesen: anderer Benutzer als Eigentümer hat Schreibrecht" +131 "Keine folgenden Zeilen zum Verbinden" +132 "Kein input-Map Eintrag" +133 "Kein command-Map Eintrag" +134 "Das %s Zeichen kann nicht umgemappt werden" +135 "\"%s\" ist momentan nicht gemappt" +136 "Markennamen müssen einzelne Buchstaben sein" +137 "%s existiert, nicht geschrieben; verwende ! zum Ãœberschreiben" +138 "Neue .exrc Datei: %s. " +139 "Zielzeile ist innerhalb des Verschiebebereichs" +140 "Das open Kommando verlangt, daß die open Option gesetzt ist" +141 "Das open Kommando ist nocht nicht implementiert" +142 "Rettung dieser Datei nicht möglich" +143 "Datei gerettet" +144 "%s wurde in zu viele Dateinamen expandiert" +145 "Nur reguläre Dateien und named pipes können gelesen werden" +146 "%s: Locken zum Lesen war nicht möglich" +147 "lese ..." +148 "%s: %lu Zeilen, %lu Zeichen" +149 "Keine Hintergrundanzeigen vorhanden" +150 "Das script Kommando ist nur im vi Modus verfügbar" +151 "Kein Kommando auszuführen" +152 "shiftwidth Option auf 0 gesetzt" +153 "Anzahl-Ãœberlauf" +154 "Anzahl-Unterlauf" +155 "Regulärer Ausdruck angegeben; r Flag bedeutungslos" +156 "Die #, l und p Flags können im vi Modus nicht mit dem c Flag kombiniert werden" +157 "Keine Ãœbereinstimmung gefunden" +158 "Kein vorhergehender 'tag' angegeben" +159 "Weniger als %s Einträge auf dem 'tag'-Stack; verwende :display t[ags]" +160 "Keine Datei namens %s auf dem 'tag'-Stack; verwende :display t[ags]" +161 "Drücke Enter um fortzufahren: " +162 "%s: 'tag' nicht gefunden" +163 "%s: kaputter 'tag' in %s" +164 "%s: die Zeilennummer des 'tag' ist hinter dem Dateiende" +165 "Der 'tag' Stack ist leer" +166 "%s: Suchmuster nicht gefunden" +167 "%d weitere Dateien zu editieren" +168 "Puffer %s ist leer" +169 "Bestätige Änderung [n]" +170 "Unterbrochen." +171 "Kein vorhergehender Puffer zum Ausführen" +172 "Kein vorhergehender regulärer Ausdruck" +173 "Das Kommando %s verlangt, daß bereits eine Datei eingelesen wurde" +174 "Benutzung: %s" +175 "Das visual Kommando verlangt daß die open Option gesetzt ist" +177 "Leere Datei" +178 "Keine vorhergehende F, f, T oder t Suche" +179 "%s nicht gefunden" +180 "Keine vorhergehende Datei zu editieren" +181 "Cursor nicht auf einer Zahl" +182 "Sich ergebende Zahl ist zu groß" +183 "Sich ergebende Zahl ist zu klein" +184 "Kein korrespondierendes Zeichen in dieser Zeile" +185 "Korrespondierendes Zeichen nicht gefunden" +186 "Keine Zeichen zu ersetzen" +187 "Keine andere Anzeige zum Hinschalten" +188 "Zeichen nach Suchmuster, Zeilenoffset und/oder z Kommando" +189 "Kein altes Suchmuster" +190 "Suche zur ursprünglichen Position zurückgekehrt" +191 "Abkürzung überschreitet Expansionsgrenze: Zeichen weggelassen" +192 "Nicht erlaubtes Zeichen; maskiere zum Eingeben" +193 "Bereits am Anfang der Eingabe" +194 "Keine weiteren Zeichen zu löschen" +195 "Bewegung hinter das Dateiende" +196 "Bewegung hinter das Zeilenende" +197 "Keine Cursorbewegung gemacht" +198 "Bereits am Dateianfang" +199 "Bewegung vor den Dateianfang" +200 "Bereits in der ersten Spalte" +201 "Puffer sollen vor dem Kommando angegeben werden" +202 "Bereits am Dateiende" +203 "Bereits am Zeilenende" +204 "%s ist kein vi Kommando" +205 "Benutzung: %s" +206 "Keine Zeichen zu löschen" +207 "Das Q Kommando benötigt das ex Terminal Interface" +208 "Kein Kommando zu wiederholen" +209 "Die Datei ist leer" +210 "%s kann nicht als Bewegungskommando verwendet werden" +211 "Bereits im Kommando-Modus" +212 " Cursor nicht auf einem Wort" +214 "Wert der Window Option ist zu groß, max ist %u" +215 "Anhängen" +216 "Ändern" +217 "Kommando" +218 "Einfügen" +219 "Ersetzen" +220 "Bewegung hinter das Anzeigenende" +221 "Bewegung vor den Anzeigenanfang" +222 "Anzeige muß für Bildschirmteilung größer als %d sein" +223 "Keine Hintergrundanzeigen vorhanden" +224 "Es gibt keine Hintergrundanzeige, die eine Datei namens %s editiert" +225 "Die einzige dargestellte Anzeige kann nicht in den Hintergrund gebracht werden" +226 "Die Anzeige kann nur auf %d Zeilen verkleinert werden" +227 "Die Anzeige kann nicht verkleinert werden" +228 "Die Anzeige kann nicht vergrößert werden" +230 "Diese Anzeige kann nicht gestopt werden" +231 "Unterbrochen: umdefinierte Tasten ungültig" +232 "vi: temporärer Puffer nicht freigegeben" +233 "Dieses Terminal hat keine %s Taste" +234 "es kann nur ein Puffer angegeben werden" +235 "Zahl größer als %lu" +236 "Unterbrochen" +237 "Nicht möglich, temporäre Datei anzulegen" +238 "Warnung: %s ist keine reguläre Datei" +239 "%s ist bereits gelockt, Editorsitzung schreibgeschützt" +240 "%s: löschen" +241 "%s: schließen" +242 "%s: löschen" +243 "%s: löschen" +244 "Datei nicht schreibbar, nicht geschrieben; verwende ! zum Ãœberschreiben" +245 "Datei nicht schreibbar, nicht geschrieben" +246 "%s existiert, nicht geschrieben; verwende ! zum Ãœberschreiben" +247 "%s existiert, nicht geschrieben" +248 "Teil der Datei, nicht geschrieben; verwende ! zum Ãœberschreiben" +249 "Teil der Datei, nicht geschrieben" +250 "%s: Datei wurde später als diese Kopie verändert; verwende ! zum Ãœberschreiben" +251 "%s: Datei wurde später als diese Kopie verändert" +252 "%s: Locken zum Schreiben war nicht möglich" +253 "schreibe ..." +254 "%s: WARNUNG: DATEI ABGESCHNITTEN" +255 "Bereits am ersten 'tag' dieser Gruppe" +256 "%s: neue Datei: %lu Zeilen, %lu Zeichen" +257 "%s: %lu Zeilen, %lu Zeichen" +258 "%s wurde in zu viele Dateinamen expandiert" +259 "%s: keine reguläre Datei" +260 "%s: gehört nicht Ihnen" +261 "%s: anderer Benutzer als Eigentümer hat Zugriff" +262 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende ! zum ignorieren" +263 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende :edit! zum ignorieren" +264 "Datei wurde seit dem letzten vollständigen Schreiben geändert; schreibe oder verwende ! zum ignorieren" +265 "Datei ist temporär; beim Verlassen gehen die Änderungen verloren" +266 "Datei ist schreibgeschützt, Änderungen werden nicht automatisch geschrieben" +267 "Portokollierung neu begonnen" +268 "bestätigen [ynq]" +269 "Drücke beliebige Taste um fortzufahren" +270 "Drücke beliebige Taste um fortzufahren [: um weitere Kommandos einzugeben]: " +271 "Drücke beliebige Taste um fortzufahren [q zum Verlassen]: " +272 "Diese Form von %s benötigt das ex Terminal-Interface" +273 "Gehe in ex Eingabe-Modus.\n" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 10:11:10 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CA49ECE5; Mon, 12 Aug 2013 10:11:10 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B800A2BF1; Mon, 12 Aug 2013 10:11:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CABAsK032308; Mon, 12 Aug 2013 10:11:10 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CABATX032307; Mon, 12 Aug 2013 10:11:10 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308121011.r7CABATX032307@svn.freebsd.org> From: Peter Wemm Date: Mon, 12 Aug 2013 10:11:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254245 - head/usr.bin/vi/catalog X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 10:11:10 -0000 Author: peter Date: Mon Aug 12 10:11:10 2013 New Revision: 254245 URL: http://svnweb.freebsd.org/changeset/base/254245 Log: It seems the pre-commit checker doesn't detect illegal character sets. Fix. Modified: Directory Properties: head/usr.bin/vi/catalog/dutch.UTF-8.base (props changed) head/usr.bin/vi/catalog/french.UTF-8.base (props changed) head/usr.bin/vi/catalog/german.UTF-8.base (props changed) head/usr.bin/vi/catalog/polish.UTF-8.base (props changed) head/usr.bin/vi/catalog/ru_RU.UTF-8.base (props changed) head/usr.bin/vi/catalog/spanish.UTF-8.base (props changed) head/usr.bin/vi/catalog/swedish.UTF-8.base (props changed) head/usr.bin/vi/catalog/uk_UA.UTF-8.base (props changed) head/usr.bin/vi/catalog/zh_CN.UTF-8.base (props changed) From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 13:52:17 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E7A1DB9E; Mon, 12 Aug 2013 13:52:16 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D4CF82F88; Mon, 12 Aug 2013 13:52:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CDqGgp015021; Mon, 12 Aug 2013 13:52:16 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CDqGth015017; Mon, 12 Aug 2013 13:52:16 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201308121352.r7CDqGth015017@svn.freebsd.org> From: Michael Tuexen Date: Mon, 12 Aug 2013 13:52:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254248 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 13:52:17 -0000 Author: tuexen Date: Mon Aug 12 13:52:15 2013 New Revision: 254248 URL: http://svnweb.freebsd.org/changeset/base/254248 Log: Make the features a 64-bit value instead of 32-bit. This will allow an easier integration of the support for NDATA. While there, do also some minor cleanups. Obtained from: rrs@ MFC after: 2 weeks Modified: head/sys/netinet/sctp.h head/sys/netinet/sctp_indata.c head/sys/netinet/sctp_output.c head/sys/netinet/sctp_pcb.h Modified: head/sys/netinet/sctp.h ============================================================================== --- head/sys/netinet/sctp.h Mon Aug 12 11:41:39 2013 (r254247) +++ head/sys/netinet/sctp.h Mon Aug 12 13:52:15 2013 (r254248) @@ -425,7 +425,7 @@ struct sctp_error_unrecognized_chunk { /* RFC4895 */ #define SCTP_AUTHENTICATION 0x0f /* EY nr_sack chunk id*/ -#define SCTP_NR_SELECTIVE_ACK 0x10 +#define SCTP_NR_SELECTIVE_ACK 0x10 /************0x40 series ***********/ /************0x80 series ***********/ /* RFC5061 */ @@ -509,38 +509,38 @@ struct sctp_error_unrecognized_chunk { /* * PCB Features (in sctp_features bitmask) */ -#define SCTP_PCB_FLAGS_DO_NOT_PMTUD 0x00000001 -#define SCTP_PCB_FLAGS_EXT_RCVINFO 0x00000002 /* deprecated */ -#define SCTP_PCB_FLAGS_DONOT_HEARTBEAT 0x00000004 -#define SCTP_PCB_FLAGS_FRAG_INTERLEAVE 0x00000008 -#define SCTP_PCB_FLAGS_INTERLEAVE_STRMS 0x00000010 -#define SCTP_PCB_FLAGS_DO_ASCONF 0x00000020 -#define SCTP_PCB_FLAGS_AUTO_ASCONF 0x00000040 -#define SCTP_PCB_FLAGS_ZERO_COPY_ACTIVE 0x00000080 +#define SCTP_PCB_FLAGS_DO_NOT_PMTUD 0x0000000000000001 +#define SCTP_PCB_FLAGS_EXT_RCVINFO 0x0000000000000002 /* deprecated */ +#define SCTP_PCB_FLAGS_DONOT_HEARTBEAT 0x0000000000000004 +#define SCTP_PCB_FLAGS_FRAG_INTERLEAVE 0x0000000000000008 +#define SCTP_PCB_FLAGS_INTERLEAVE_STRMS 0x0000000000000010 +#define SCTP_PCB_FLAGS_DO_ASCONF 0x0000000000000020 +#define SCTP_PCB_FLAGS_AUTO_ASCONF 0x0000000000000040 +#define SCTP_PCB_FLAGS_ZERO_COPY_ACTIVE 0x0000000000000080 /* socket options */ -#define SCTP_PCB_FLAGS_NODELAY 0x00000100 -#define SCTP_PCB_FLAGS_AUTOCLOSE 0x00000200 -#define SCTP_PCB_FLAGS_RECVDATAIOEVNT 0x00000400 /* deprecated */ -#define SCTP_PCB_FLAGS_RECVASSOCEVNT 0x00000800 -#define SCTP_PCB_FLAGS_RECVPADDREVNT 0x00001000 -#define SCTP_PCB_FLAGS_RECVPEERERR 0x00002000 -#define SCTP_PCB_FLAGS_RECVSENDFAILEVNT 0x00004000 /* deprecated */ -#define SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT 0x00008000 -#define SCTP_PCB_FLAGS_ADAPTATIONEVNT 0x00010000 -#define SCTP_PCB_FLAGS_PDAPIEVNT 0x00020000 -#define SCTP_PCB_FLAGS_AUTHEVNT 0x00040000 -#define SCTP_PCB_FLAGS_STREAM_RESETEVNT 0x00080000 -#define SCTP_PCB_FLAGS_NO_FRAGMENT 0x00100000 -#define SCTP_PCB_FLAGS_EXPLICIT_EOR 0x00400000 -#define SCTP_PCB_FLAGS_NEEDS_MAPPED_V4 0x00800000 -#define SCTP_PCB_FLAGS_MULTIPLE_ASCONFS 0x01000000 -#define SCTP_PCB_FLAGS_PORTREUSE 0x02000000 -#define SCTP_PCB_FLAGS_DRYEVNT 0x04000000 -#define SCTP_PCB_FLAGS_RECVRCVINFO 0x08000000 -#define SCTP_PCB_FLAGS_RECVNXTINFO 0x10000000 -#define SCTP_PCB_FLAGS_ASSOC_RESETEVNT 0x20000000 -#define SCTP_PCB_FLAGS_STREAM_CHANGEEVNT 0x40000000 -#define SCTP_PCB_FLAGS_RECVNSENDFAILEVNT 0x80000000 +#define SCTP_PCB_FLAGS_NODELAY 0x0000000000000100 +#define SCTP_PCB_FLAGS_AUTOCLOSE 0x0000000000000200 +#define SCTP_PCB_FLAGS_RECVDATAIOEVNT 0x0000000000000400 /* deprecated */ +#define SCTP_PCB_FLAGS_RECVASSOCEVNT 0x0000000000000800 +#define SCTP_PCB_FLAGS_RECVPADDREVNT 0x0000000000001000 +#define SCTP_PCB_FLAGS_RECVPEERERR 0x0000000000002000 +#define SCTP_PCB_FLAGS_RECVSENDFAILEVNT 0x0000000000004000 /* deprecated */ +#define SCTP_PCB_FLAGS_RECVSHUTDOWNEVNT 0x0000000000008000 +#define SCTP_PCB_FLAGS_ADAPTATIONEVNT 0x0000000000010000 +#define SCTP_PCB_FLAGS_PDAPIEVNT 0x0000000000020000 +#define SCTP_PCB_FLAGS_AUTHEVNT 0x0000000000040000 +#define SCTP_PCB_FLAGS_STREAM_RESETEVNT 0x0000000000080000 +#define SCTP_PCB_FLAGS_NO_FRAGMENT 0x0000000000100000 +#define SCTP_PCB_FLAGS_EXPLICIT_EOR 0x0000000000400000 +#define SCTP_PCB_FLAGS_NEEDS_MAPPED_V4 0x0000000000800000 +#define SCTP_PCB_FLAGS_MULTIPLE_ASCONFS 0x0000000001000000 +#define SCTP_PCB_FLAGS_PORTREUSE 0x0000000002000000 +#define SCTP_PCB_FLAGS_DRYEVNT 0x0000000004000000 +#define SCTP_PCB_FLAGS_RECVRCVINFO 0x0000000008000000 +#define SCTP_PCB_FLAGS_RECVNXTINFO 0x0000000010000000 +#define SCTP_PCB_FLAGS_ASSOC_RESETEVNT 0x0000000020000000 +#define SCTP_PCB_FLAGS_STREAM_CHANGEEVNT 0x0000000040000000 +#define SCTP_PCB_FLAGS_RECVNSENDFAILEVNT 0x0000000080000000 /*- * mobility_features parameters (by micchie).Note Modified: head/sys/netinet/sctp_indata.c ============================================================================== --- head/sys/netinet/sctp_indata.c Mon Aug 12 11:41:39 2013 (r254247) +++ head/sys/netinet/sctp_indata.c Mon Aug 12 13:52:15 2013 (r254248) @@ -1417,7 +1417,6 @@ sctp_does_tsn_belong_to_reasm(struct sct return (0); } - static int sctp_process_a_data_chunk(struct sctp_tcb *stcb, struct sctp_association *asoc, struct mbuf **m, int offset, struct sctp_data_chunk *ch, int chk_length, Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Mon Aug 12 11:41:39 2013 (r254247) +++ head/sys/netinet/sctp_output.c Mon Aug 12 13:52:15 2013 (r254248) @@ -7613,7 +7613,7 @@ sctp_med_chunk_output(struct sctp_inpcb #endif ) { - /* + /** * Ok this is the generic chunk service queue. we must do the * following: - Service the stream queue that is next, moving any * message (note I must get a complete message i.e. FIRST/MIDDLE and Modified: head/sys/netinet/sctp_pcb.h ============================================================================== --- head/sys/netinet/sctp_pcb.h Mon Aug 12 11:41:39 2013 (r254247) +++ head/sys/netinet/sctp_pcb.h Mon Aug 12 13:52:15 2013 (r254248) @@ -388,8 +388,8 @@ struct sctp_inpcb { /* back pointer to our socket */ struct socket *sctp_socket; + uint64_t sctp_features; /* Feature flags */ uint32_t sctp_flags; /* INP state flag set */ - uint32_t sctp_features; /* Feature flags */ uint32_t sctp_mobility_features; /* Mobility Feature flags */ struct sctp_pcb sctp_ep;/* SCTP ep data */ /* head of the hash of all associations */ From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 15:53:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 83E80D51; Mon, 12 Aug 2013 15:53:28 +0000 (UTC) (envelope-from rpaulo@felyko.com) Received: from felyko.com (felyko.com [174.136.100.2]) by mx1.freebsd.org (Postfix) with ESMTP id 668E62890; Mon, 12 Aug 2013 15:53:28 +0000 (UTC) Received: from [IPv6:2601:9:4d00:119:28e8:48a2:a8c3:3b55] (unknown [IPv6:2601:9:4d00:119:28e8:48a2:a8c3:3b55]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by felyko.com (Postfix) with ESMTPSA id 762B83981E; Mon, 12 Aug 2013 08:53:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=felyko.com; s=mail; t=1376322802; bh=cbTBpEJv4KZ2elMhxAjAvC7IQiVuP6F30RDwJwBBr1I=; h=Subject:From:In-Reply-To:Date:Cc:References:To; b=NtFxzqR7tC6qBE5wUmPGV4AZRRMK/PCV5B6a/3qGMueZMQND/RkiBCsPr0gYTAMXH FH/FIEJF5cSc+xMpjLxHfJrf/TyASRHFJJ3cLu81O4vcDRfCdvJCTrtMVPnDvYOC+R WIc+QOEbqyoNYtGnzVU84mGTxf2ueLdxaa04aCps= Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 7.0 \(1793.5\)) Subject: Re: svn commit: r253460 - head/sys/dev/mps From: Rui Paulo In-Reply-To: Date: Mon, 12 Aug 2013 08:53:19 -0700 Content-Transfer-Encoding: 7bit Message-Id: <4F5740C6-D1D5-4BFB-93E0-4F122F887111@felyko.com> References: <201307190012.r6J0Cg1r027645@svn.freebsd.org> <52077D0D.8090607@FreeBSD.org> To: Adrian Chadd X-Mailer: Apple Mail (2.1793.5) Cc: src-committers@freebsd.org, Scott Long , Alexander Motin , Scott Long , svn-src-head@freebsd.org, svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 15:53:28 -0000 On 11 Aug 2013, at 18:01, Adrian Chadd wrote: > Damnit, I really should create a generic "here's a 64 bit mask for > debug" set of macros we can use elsewhere. Like re-inventing bitstring.h and bitset.h? -- Rui Paulo From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 15:56:56 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 27935F42; Mon, 12 Aug 2013 15:56:56 +0000 (UTC) (envelope-from ken@kdm.org) Received: from nargothrond.kdm.org (nargothrond.kdm.org [70.56.43.81]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E486928D8; Mon, 12 Aug 2013 15:56:55 +0000 (UTC) Received: from nargothrond.kdm.org (localhost [127.0.0.1]) by nargothrond.kdm.org (8.14.2/8.14.2) with ESMTP id r7CFumOE012119; Mon, 12 Aug 2013 09:56:48 -0600 (MDT) (envelope-from ken@nargothrond.kdm.org) Received: (from ken@localhost) by nargothrond.kdm.org (8.14.2/8.14.2/Submit) id r7CFumvi012118; Mon, 12 Aug 2013 09:56:48 -0600 (MDT) (envelope-from ken) Date: Mon, 12 Aug 2013 09:56:48 -0600 From: "Kenneth D. Merry" To: Slawa Olhovchenkov Subject: Re: svn commit: r253550 - head/sys/dev/mps Message-ID: <20130812155647.GA11414@nargothrond.kdm.org> References: <201307221841.r6MIfsoQ075667@svn.freebsd.org> <20130810181454.GA47115@zxy.spb.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130810181454.GA47115@zxy.spb.ru> User-Agent: Mutt/1.4.2i Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 15:56:56 -0000 On Sat, Aug 10, 2013 at 22:14:54 +0400, Slawa Olhovchenkov wrote: > On Mon, Jul 22, 2013 at 06:41:54PM +0000, Kenneth D. Merry wrote: > > > Author: ken > > Date: Mon Jul 22 18:41:53 2013 > > New Revision: 253550 > > URL: http://svnweb.freebsd.org/changeset/base/253550 > > > > Log: > > Merge in phase 14+ -> 16 mps driver fixes from LSI: > > Submitted by: LSI > > MFC after: 1 week > > Not done? I was waiting for the stable/9 freeze to end. Now that it's done, I hope to merge that change to stable/9 this week. Ken -- Kenneth Merry ken@FreeBSD.ORG From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 17:12:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A2A75FB2; Mon, 12 Aug 2013 17:12:06 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-we0-x233.google.com (mail-we0-x233.google.com [IPv6:2a00:1450:400c:c03::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7197B2DAF; Mon, 12 Aug 2013 17:12:05 +0000 (UTC) Received: by mail-we0-f179.google.com with SMTP id t57so5817022wes.10 for ; Mon, 12 Aug 2013 10:12:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=VXKuHs3lL06XpRUM75cpaW698lH5tun7VYjF+f9Pgc0=; b=Dba9qfwAtt04KGsc1H1qEe13ZIObBx/hbUOkuIEL3s9eFVn+Y7+07V1MeBi/2AxL8M mqLSylrqqRcUACLnJiFwgfuaj5KMwfwiwYK2wh4xMKBD6dZpL7soD6EeMkIOhUZWyYQE rWk3gFaJZx5F9SZUgazAJcdT2dZDW2rDmid3FknzkoeqcRG7QIziHe5iP0z+1/7ILz96 MdxR1g5MnnFAo5Cb+Sp4arvLLFyJDv1GjQRdpEoGMxzIpzW8fMHiHTgiiZwmbiHk479K Qdy552HI2t0+Z8HYfncGOXYPBIa3kBVLmsPBYd0xST9L3d79NH3g6bHPxLDQ8IxUg7HB fkyQ== MIME-Version: 1.0 X-Received: by 10.194.11.67 with SMTP id o3mr59938wjb.0.1376327523587; Mon, 12 Aug 2013 10:12:03 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.217.116.136 with HTTP; Mon, 12 Aug 2013 10:12:03 -0700 (PDT) In-Reply-To: <4F5740C6-D1D5-4BFB-93E0-4F122F887111@felyko.com> References: <201307190012.r6J0Cg1r027645@svn.freebsd.org> <52077D0D.8090607@FreeBSD.org> <4F5740C6-D1D5-4BFB-93E0-4F122F887111@felyko.com> Date: Mon, 12 Aug 2013 10:12:03 -0700 X-Google-Sender-Auth: BshOThrK6hK5ScIZmO77wQsTVh8 Message-ID: Subject: Re: svn commit: r253460 - head/sys/dev/mps From: Adrian Chadd To: Rui Paulo Content-Type: text/plain; charset=ISO-8859-1 Cc: src-committers@freebsd.org, Scott Long , Alexander Motin , Scott Long , svn-src-head@freebsd.org, svn-src-all@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 17:12:06 -0000 On 12 August 2013 08:53, Rui Paulo wrote: > On 11 Aug 2013, at 18:01, Adrian Chadd wrote: > >> Damnit, I really should create a generic "here's a 64 bit mask for >> debug" set of macros we can use elsewhere. > > Like re-inventing bitstring.h and bitset.h? Right, except for use inside a debugging macro. :P (Patches to ath/net80211 to make debugging use those are gratefully accepted, btw. :) -adrian From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 17:20:43 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 70CAF33D for ; Mon, 12 Aug 2013 17:20:43 +0000 (UTC) (envelope-from scott4long@yahoo.com) Received: from nm26-vm6.bullet.mail.ne1.yahoo.com (nm26-vm6.bullet.mail.ne1.yahoo.com [98.138.91.119]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 02E6A2E40 for ; Mon, 12 Aug 2013 17:20:42 +0000 (UTC) Received: from [98.138.226.177] by nm26.bullet.mail.ne1.yahoo.com with NNFMP; 12 Aug 2013 17:20:40 -0000 Received: from [98.138.226.130] by tm12.bullet.mail.ne1.yahoo.com with NNFMP; 12 Aug 2013 17:20:40 -0000 Received: from [127.0.0.1] by smtp217.mail.ne1.yahoo.com with NNFMP; 12 Aug 2013 17:20:40 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1376328040; bh=EQEDJe44ag/7nWesc/e4i/yjfRr7PrFX8BHa68QiaWM=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:X-Rocket-Received:Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer; b=Ug2fyf5ANIUd7eSuXHkOoisfbx5MeLP72AAriVKBgD5Bavk/bN2JRZmH/wOa/Y8Qhryigr5Dq0GQTJnuzsDFwDLWsfaIarwcrNLRJsNkLD0IVKXUTBqYm+sAyUASqv59LavfSVo7Kq6gXQQTw7eYXPC6HmqFKdqJCab3VUz4QHk= X-Yahoo-Newman-Id: 488787.11600.bm@smtp217.mail.ne1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: S9ilFJwVM1lK2dvczWoTL_3AcZSpz9D8SDJ_k.l_dWh9r8l fS4VMWHLUPE57xWQCvGU8aVTcKAmes.AgyQ2u30f_x2S0vGYZ3JS2_Ui88HM DUoZH3MAlLnT2pGYFUkAX_VpKL2T7Bu.IIY_2fEB4s8UXFYL0OHWqJKh87zu qmpcRbc64B1_ylGUCwhHGhj2zh7ErNfT8c.3ExygdS3f8uPmLeNiwxOYDmc2 GPzjgxflZSvq0vRpi5RMvYYr27UZaaT5LtdhHzCfaOx.Mq_kKAD4MH_9Q6lK tOfbeFdxyJF8hdiwop6wEarrBdpatiK6PhMMgGr2NwQGmbzvwTVgeCoEzUdM oFa9kK8l7dL.eogiOpJR.6AxtP27WVlVcGH390I5ZV5bxcPYxlW.w0QMS0tA sokTCjDaaHql6iDUiC4IlAmCEk37El0OrYLqePefv4uk2V7ROFWiM9RWqpR0 bMCBBipAURUxh0SZ0r3wU9Y.ieZ7UhrGbHQyFBGYARQn5yDByHG1CWCnYaFO Rv44RX_2aT3yb.Fme_jJrToh3Ove7uFLYgrmQ1m4rR3kDZOByoSzl_Kz7sQ- - X-Yahoo-SMTP: clhABp.swBB7fs.LwIJpv3jkWgo2NU8- X-Rocket-Received: from [192.168.254.206] (scott4long@168.103.85.57 with ) by smtp217.mail.ne1.yahoo.com with SMTP; 12 Aug 2013 17:20:40 +0000 UTC Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r253460 - head/sys/dev/mps From: Scott Long In-Reply-To: Date: Mon, 12 Aug 2013 11:20:38 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <5A2F448F-0E99-4976-B762-9BB2982825D2@yahoo.com> References: <201307190012.r6J0Cg1r027645@svn.freebsd.org> <52077D0D.8090607@FreeBSD.org> <4F5740C6-D1D5-4BFB-93E0-4F122F887111@felyko.com> To: Adrian Chadd X-Mailer: Apple Mail (2.1508) Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, Scott Long , Rui Paulo , svn-src-head@freebsd.org, Alexander Motin X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 17:20:43 -0000 On Aug 12, 2013, at 11:12 AM, Adrian Chadd wrote: > On 12 August 2013 08:53, Rui Paulo wrote: >> On 11 Aug 2013, at 18:01, Adrian Chadd wrote: >>=20 >>> Damnit, I really should create a generic "here's a 64 bit mask for >>> debug" set of macros we can use elsewhere. >>=20 >> Like re-inventing bitstring.h and bitset.h? >=20 > Right, except for use inside a debugging macro. :P >=20 > (Patches to ath/net80211 to make debugging use those are gratefully > accepted, btw. :) >=20 Anyways=85 the MPS driver already uses debugging macros, but the case = that Alexander pointed out is more complicated than a simple printf. I'll = take care of it. Scott From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 17:22:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4136348C; Mon, 12 Aug 2013 17:22:40 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2CEDD2E51; Mon, 12 Aug 2013 17:22:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CHMeVd094831; Mon, 12 Aug 2013 17:22:40 GMT (envelope-from gshapiro@svn.freebsd.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CHMduE094830; Mon, 12 Aug 2013 17:22:40 GMT (envelope-from gshapiro@svn.freebsd.org) Message-Id: <201308121722.r7CHMduE094830@svn.freebsd.org> From: Gregory Neil Shapiro Date: Mon, 12 Aug 2013 17:22:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254251 - head/contrib/sendmail/include/sm/os X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 17:22:40 -0000 Author: gshapiro Date: Mon Aug 12 17:22:39 2013 New Revision: 254251 URL: http://svnweb.freebsd.org/changeset/base/254251 Log: Temporarily revert sendmail 8.14.7 change to getipnodebyname() flags to prevent problems between the resolver and Microsoft DNS servers with AAAA lookups. The upstream open source project will work on a more permanent fix for the next release. Issue noted by Pavel Timofeev. MFC after: 3 days Modified: head/contrib/sendmail/include/sm/os/sm_os_freebsd.h Modified: head/contrib/sendmail/include/sm/os/sm_os_freebsd.h ============================================================================== --- head/contrib/sendmail/include/sm/os/sm_os_freebsd.h Mon Aug 12 15:35:10 2013 (r254250) +++ head/contrib/sendmail/include/sm/os/sm_os_freebsd.h Mon Aug 12 17:22:39 2013 (r254251) @@ -39,3 +39,7 @@ #ifndef SM_CONF_MSG # define SM_CONF_MSG 1 #endif /* SM_CONF_MSG */ + +#ifndef SM_IPNODEBYNAME_FLAGS +# define SM_IPNODEBYNAME_FLAGS AI_DEFAULT|AI_ALL +#endif /* SM_IPNODEBYNAME_FLAGS */ From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 17:43:37 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 52B2DC52; Mon, 12 Aug 2013 17:43:37 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) by mx1.freebsd.org (Postfix) with ESMTP id 0E76A2F85; Mon, 12 Aug 2013 17:43:36 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1V8wBd-0001DZ-5b; Mon, 12 Aug 2013 21:45:45 +0400 Date: Mon, 12 Aug 2013 21:45:45 +0400 From: Slawa Olhovchenkov To: "Kenneth D. Merry" Subject: Re: svn commit: r253550 - head/sys/dev/mps Message-ID: <20130812174545.GA3796@zxy.spb.ru> References: <201307221841.r6MIfsoQ075667@svn.freebsd.org> <20130810181454.GA47115@zxy.spb.ru> <20130812155647.GA11414@nargothrond.kdm.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130812155647.GA11414@nargothrond.kdm.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 17:43:37 -0000 On Mon, Aug 12, 2013 at 09:56:48AM -0600, Kenneth D. Merry wrote: > On Sat, Aug 10, 2013 at 22:14:54 +0400, Slawa Olhovchenkov wrote: > > On Mon, Jul 22, 2013 at 06:41:54PM +0000, Kenneth D. Merry wrote: > > > > > Author: ken > > > Date: Mon Jul 22 18:41:53 2013 > > > New Revision: 253550 > > > URL: http://svnweb.freebsd.org/changeset/base/253550 > > > > > > Log: > > > Merge in phase 14+ -> 16 mps driver fixes from LSI: > > > Submitted by: LSI > > > MFC after: 1 week > > > > Not done? > > I was waiting for the stable/9 freeze to end. Hm? Date: Mon Aug 5 23:34:35 2013 New Revision: 253975 URL: http://svnweb.freebsd.org/changeset/base/253975 Log: stable/9 no longer requires re@ approval for commits, now that the releng/9.2 branch is created. Committers are urged to exercise caution with commits to stable/9 until the 9.2-RELEASE is finalized. Or, can you published patch for 9-STABLE? > Now that it's done, I hope to merge that change to stable/9 this week. Also, I see strange behaviour of LSI 9211-8i -- after some activity got timeout and HBA put in looped reset. From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 18:17:46 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 37AAC7DF; Mon, 12 Aug 2013 18:17:46 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 24F202209; Mon, 12 Aug 2013 18:17:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CIHkW8015196; Mon, 12 Aug 2013 18:17:46 GMT (envelope-from ed@svn.freebsd.org) Received: (from ed@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CIHkHT015195; Mon, 12 Aug 2013 18:17:46 GMT (envelope-from ed@svn.freebsd.org) Message-Id: <201308121817.r7CIHkHT015195@svn.freebsd.org> From: Ed Schouten Date: Mon, 12 Aug 2013 18:17:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254252 - head/sys/geom/mirror X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 18:17:46 -0000 Author: ed Date: Mon Aug 12 18:17:45 2013 New Revision: 254252 URL: http://svnweb.freebsd.org/changeset/base/254252 Log: Fix the formatting of the error message. The G_MIRROR_DEBUG() macro already appends a newline. Also, most of the log messages emitted by gmirror start with an uppercase letter. Modified: head/sys/geom/mirror/g_mirror.c Modified: head/sys/geom/mirror/g_mirror.c ============================================================================== --- head/sys/geom/mirror/g_mirror.c Mon Aug 12 17:22:39 2013 (r254251) +++ head/sys/geom/mirror/g_mirror.c Mon Aug 12 18:17:45 2013 (r254252) @@ -2052,8 +2052,8 @@ g_mirror_launch_provider(struct g_mirror } /* A provider underneath us doesn't support unmapped */ if ((dp->flags & G_PF_ACCEPT_UNMAPPED) == 0) { - G_MIRROR_DEBUG(0, "cancelling unmapped " - "because of %s\n", dp->name); + G_MIRROR_DEBUG(0, "Cancelling unmapped " + "because of %s.", dp->name); pp->flags &= ~G_PF_ACCEPT_UNMAPPED; } } From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 19:02:33 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 711CF169; Mon, 12 Aug 2013 19:02:33 +0000 (UTC) (envelope-from ken@kdm.org) Received: from nargothrond.kdm.org (nargothrond.kdm.org [70.56.43.81]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9EBB32498; Mon, 12 Aug 2013 19:02:31 +0000 (UTC) Received: from nargothrond.kdm.org (localhost [127.0.0.1]) by nargothrond.kdm.org (8.14.2/8.14.2) with ESMTP id r7CJ2Ugx024500; Mon, 12 Aug 2013 13:02:30 -0600 (MDT) (envelope-from ken@nargothrond.kdm.org) Received: (from ken@localhost) by nargothrond.kdm.org (8.14.2/8.14.2/Submit) id r7CJ2TnW024499; Mon, 12 Aug 2013 13:02:29 -0600 (MDT) (envelope-from ken) Date: Mon, 12 Aug 2013 13:02:29 -0600 From: "Kenneth D. Merry" To: Slawa Olhovchenkov Subject: Re: svn commit: r253550 - head/sys/dev/mps Message-ID: <20130812190229.GA24478@nargothrond.kdm.org> References: <201307221841.r6MIfsoQ075667@svn.freebsd.org> <20130810181454.GA47115@zxy.spb.ru> <20130812155647.GA11414@nargothrond.kdm.org> <20130812174545.GA3796@zxy.spb.ru> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="k1lZvvs/B4yU6o8G" Content-Disposition: inline In-Reply-To: <20130812174545.GA3796@zxy.spb.ru> User-Agent: Mutt/1.4.2i Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 19:02:33 -0000 --k1lZvvs/B4yU6o8G Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Mon, Aug 12, 2013 at 21:45:45 +0400, Slawa Olhovchenkov wrote: > On Mon, Aug 12, 2013 at 09:56:48AM -0600, Kenneth D. Merry wrote: > > > On Sat, Aug 10, 2013 at 22:14:54 +0400, Slawa Olhovchenkov wrote: > > > On Mon, Jul 22, 2013 at 06:41:54PM +0000, Kenneth D. Merry wrote: > > > > > > > Author: ken > > > > Date: Mon Jul 22 18:41:53 2013 > > > > New Revision: 253550 > > > > URL: http://svnweb.freebsd.org/changeset/base/253550 > > > > > > > > Log: > > > > Merge in phase 14+ -> 16 mps driver fixes from LSI: > > > > Submitted by: LSI > > > > MFC after: 1 week > > > > > > Not done? > > > > I was waiting for the stable/9 freeze to end. > > Hm? > > Date: Mon Aug 5 23:34:35 2013 > New Revision: 253975 > URL: http://svnweb.freebsd.org/changeset/base/253975 > > Log: > stable/9 no longer requires re@ approval for commits, now that the > releng/9.2 branch is created. > > Committers are urged to exercise caution with commits to stable/9 > until the 9.2-RELEASE is finalized. > > Or, can you published patch for 9-STABLE? If you really want one now, I've attached a patch from stable/9 on June 27th. It may or may not apply now. > > Now that it's done, I hope to merge that change to stable/9 this week. > > Also, I see strange behaviour of LSI 9211-8i -- after some activity > got timeout and HBA put in looped reset. That's not good. Try with the newer driver and see whether if affects the behavior. Ken -- Kenneth Merry ken@FreeBSD.ORG --k1lZvvs/B4yU6o8G Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="mps_scan_stable9.20130627.1.txt" *** src/sys/cam/cam_ccb.h.orig --- src/sys/cam/cam_ccb.h *************** *** 578,583 **** --- 578,584 ---- PIM_NO_6_BYTE = 0x08, /* Do not send 6-byte commands */ PIM_SEQSCAN = 0x04, /* Do bus scans sequentially, not in parallel */ PIM_UNMAPPED = 0x02, + PIM_NOSCAN = 0x01 /* SIM does its own scanning */ } pi_miscflag; /* Path Inquiry CCB */ *** src/sys/cam/cam_xpt.c.orig --- src/sys/cam/cam_xpt.c *************** *** 4012,4026 **** /* Notify interested parties */ if (sim->path_id != CAM_XPT_PATH_ID) { - union ccb *scan_ccb; xpt_async(AC_PATH_REGISTERED, path, &cpi); ! /* Initiate bus rescan. */ ! scan_ccb = xpt_alloc_ccb_nowait(); ! scan_ccb->ccb_h.path = path; ! scan_ccb->ccb_h.func_code = XPT_SCAN_BUS; ! scan_ccb->crcn.flags = 0; ! xpt_rescan(scan_ccb); } else xpt_free_path(path); return (CAM_SUCCESS); --- 4012,4030 ---- /* Notify interested parties */ if (sim->path_id != CAM_XPT_PATH_ID) { xpt_async(AC_PATH_REGISTERED, path, &cpi); ! ! if ((cpi.hba_misc & PIM_NOSCAN) == 0) { ! union ccb *scan_ccb; ! ! /* Initiate bus rescan. */ ! scan_ccb = xpt_alloc_ccb_nowait(); ! scan_ccb->ccb_h.path = path; ! scan_ccb->ccb_h.func_code = XPT_SCAN_BUS; ! scan_ccb->crcn.flags = 0; ! xpt_rescan(scan_ccb); ! } } else xpt_free_path(path); return (CAM_SUCCESS); *** src/sys/dev/mps/mps.c.orig --- src/sys/dev/mps/mps.c *************** *** 51,56 **** --- 51,57 ---- #include #include #include + #include #include #include *************** *** 61,66 **** --- 62,68 ---- #include + #include #include #include *************** *** 73,85 **** --- 75,93 ---- #include #include #include + #include static int mps_diag_reset(struct mps_softc *sc, int sleep_flag); static int mps_init_queues(struct mps_softc *sc); static int mps_message_unit_reset(struct mps_softc *sc, int sleep_flag); static int mps_transition_operational(struct mps_softc *sc); + static int mps_iocfacts_allocate(struct mps_softc *sc, uint8_t attaching); + static void mps_iocfacts_free(struct mps_softc *sc); static void mps_startup(void *arg); static int mps_send_iocinit(struct mps_softc *sc); + static int mps_alloc_queues(struct mps_softc *sc); + static int mps_alloc_replies(struct mps_softc *sc); + static int mps_alloc_requests(struct mps_softc *sc); static int mps_attach_log(struct mps_softc *sc); static __inline void mps_complete_command(struct mps_command *cm); static void mps_dispatch_event(struct mps_softc *sc, uintptr_t data, *************** *** 88,93 **** --- 96,102 ---- static void mps_periodic(void *); static int mps_reregister_events(struct mps_softc *sc); static void mps_enqueue_request(struct mps_softc *sc, struct mps_command *cm); + static int mps_get_iocfacts(struct mps_softc *sc, MPI2_IOC_FACTS_REPLY *facts); static int mps_wait_db_ack(struct mps_softc *sc, int timeout, int sleep_flag); SYSCTL_NODE(_hw, OID_AUTO, mps, CTLFLAG_RD, 0, "MPS Driver Parameters"); *************** *** 148,154 **** mpt2_reset_magic[i]); /* wait 100 msec */ if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) ! msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, "mpsdiag", hz/10); else if (sleep_flag == CAN_SLEEP) pause("mpsdiag", hz/10); else --- 157,164 ---- mpt2_reset_magic[i]); /* wait 100 msec */ if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) ! msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, ! "mpsdiag", hz/10); else if (sleep_flag == CAN_SLEEP) pause("mpsdiag", hz/10); else *************** *** 172,178 **** for (i = 0; i < 60000; i++) { /* wait 50 msec */ if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) ! msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, "mpsdiag", hz/20); else if (sleep_flag == CAN_SLEEP) pause("mpsdiag", hz/20); else --- 182,189 ---- for (i = 0; i < 60000; i++) { /* wait 50 msec */ if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) ! msleep(&sc->msleep_fake_chan, &sc->mps_mtx, 0, ! "mpsdiag", hz/20); else if (sleep_flag == CAN_SLEEP) pause("mpsdiag", hz/20); else *************** *** 302,310 **** return (error); } /* - * XXX Some of this should probably move to mps.c - * * The terms diag reset and hard reset are used interchangeably in the MPI * docs to mean resetting the controller chip. In this code diag reset * cleans everything up, and the hard reset function just sends the reset --- 313,669 ---- return (error); } + /* + * This is called during attach and when re-initializing due to a Diag Reset. + * IOC Facts is used to allocate many of the structures needed by the driver. + * If called from attach, de-allocation is not required because the driver has + * not allocated any structures yet, but if called from a Diag Reset, previously + * allocated structures based on IOC Facts will need to be freed and re- + * allocated bases on the latest IOC Facts. + */ + static int + mps_iocfacts_allocate(struct mps_softc *sc, uint8_t attaching) + { + int error, i; + Mpi2IOCFactsReply_t saved_facts; + uint8_t saved_mode, reallocating; + struct mpssas_lun *lun, *lun_tmp; + struct mpssas_target *targ; + + mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + + /* Save old IOC Facts and then only reallocate if Facts have changed */ + if (!attaching) { + bcopy(sc->facts, &saved_facts, sizeof(MPI2_IOC_FACTS_REPLY)); + } + + /* + * Get IOC Facts. In all cases throughout this function, panic if doing + * a re-initialization and only return the error if attaching so the OS + * can handle it. + */ + if ((error = mps_get_iocfacts(sc, sc->facts)) != 0) { + if (attaching) { + mps_dprint(sc, MPS_FAULT, "%s failed to get IOC Facts " + "with error %d\n", __func__, error); + return (error); + } else { + panic("%s failed to get IOC Facts with error %d\n", + __func__, error); + } + } + + mps_print_iocfacts(sc, sc->facts); + + snprintf(sc->fw_version, sizeof(sc->fw_version), + "%02d.%02d.%02d.%02d", + sc->facts->FWVersion.Struct.Major, + sc->facts->FWVersion.Struct.Minor, + sc->facts->FWVersion.Struct.Unit, + sc->facts->FWVersion.Struct.Dev); + + mps_printf(sc, "Firmware: %s, Driver: %s\n", sc->fw_version, + MPS_DRIVER_VERSION); + mps_printf(sc, "IOCCapabilities: %b\n", sc->facts->IOCCapabilities, + "\20" "\3ScsiTaskFull" "\4DiagTrace" "\5SnapBuf" "\6ExtBuf" + "\7EEDP" "\10BiDirTarg" "\11Multicast" "\14TransRetry" "\15IR" + "\16EventReplay" "\17RaidAccel" "\20MSIXIndex" "\21HostDisc"); + + /* + * If the chip doesn't support event replay then a hard reset will be + * required to trigger a full discovery. Do the reset here then + * retransition to Ready. A hard reset might have already been done, + * but it doesn't hurt to do it again. Only do this if attaching, not + * for a Diag Reset. + */ + if (attaching) { + if ((sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY) == 0) { + mps_diag_reset(sc, NO_SLEEP); + if ((error = mps_transition_ready(sc)) != 0) { + mps_dprint(sc, MPS_FAULT, "%s failed to " + "transition to ready with error %d\n", + __func__, error); + return (error); + } + } + } + + /* + * Set flag if IR Firmware is loaded. If the RAID Capability has + * changed from the previous IOC Facts, log a warning, but only if + * checking this after a Diag Reset and not during attach. + */ + saved_mode = sc->ir_firmware; + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_INTEGRATED_RAID) + sc->ir_firmware = 1; + if (!attaching) { + if (sc->ir_firmware != saved_mode) { + mps_dprint(sc, MPS_FAULT, "%s new IR/IT mode in IOC " + "Facts does not match previous mode\n", __func__); + } + } + + /* Only deallocate and reallocate if relevant IOC Facts have changed */ + reallocating = FALSE; + if ((!attaching) && + ((saved_facts.MsgVersion != sc->facts->MsgVersion) || + (saved_facts.HeaderVersion != sc->facts->HeaderVersion) || + (saved_facts.MaxChainDepth != sc->facts->MaxChainDepth) || + (saved_facts.RequestCredit != sc->facts->RequestCredit) || + (saved_facts.ProductID != sc->facts->ProductID) || + (saved_facts.IOCCapabilities != sc->facts->IOCCapabilities) || + (saved_facts.IOCRequestFrameSize != + sc->facts->IOCRequestFrameSize) || + (saved_facts.MaxTargets != sc->facts->MaxTargets) || + (saved_facts.MaxSasExpanders != sc->facts->MaxSasExpanders) || + (saved_facts.MaxEnclosures != sc->facts->MaxEnclosures) || + (saved_facts.HighPriorityCredit != sc->facts->HighPriorityCredit) || + (saved_facts.MaxReplyDescriptorPostQueueDepth != + sc->facts->MaxReplyDescriptorPostQueueDepth) || + (saved_facts.ReplyFrameSize != sc->facts->ReplyFrameSize) || + (saved_facts.MaxVolumes != sc->facts->MaxVolumes) || + (saved_facts.MaxPersistentEntries != + sc->facts->MaxPersistentEntries))) { + reallocating = TRUE; + } + + /* + * Some things should be done if attaching or re-allocating after a Diag + * Reset, but are not needed after a Diag Reset if the FW has not + * changed. + */ + if (attaching || reallocating) { + /* + * Check if controller supports FW diag buffers and set flag to + * enable each type. + */ + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER) + sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_TRACE]. + enabled = TRUE; + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER) + sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_SNAPSHOT]. + enabled = TRUE; + if (sc->facts->IOCCapabilities & + MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER) + sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_EXTENDED]. + enabled = TRUE; + + /* + * Set flag if EEDP is supported and if TLR is supported. + */ + if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_EEDP) + sc->eedp_enabled = TRUE; + if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TLR) + sc->control_TLR = TRUE; + + /* + * Size the queues. Since the reply queues always need one free + * entry, we'll just deduct one reply message here. + */ + sc->num_reqs = MIN(MPS_REQ_FRAMES, sc->facts->RequestCredit); + sc->num_replies = MIN(MPS_REPLY_FRAMES + MPS_EVT_REPLY_FRAMES, + sc->facts->MaxReplyDescriptorPostQueueDepth) - 1; + + /* + * Initialize all Tail Queues + */ + TAILQ_INIT(&sc->req_list); + TAILQ_INIT(&sc->high_priority_req_list); + TAILQ_INIT(&sc->chain_list); + TAILQ_INIT(&sc->tm_list); + } + + /* + * If doing a Diag Reset and the FW is significantly different + * (reallocating will be set above in IOC Facts comparison), then all + * buffers based on the IOC Facts will need to be freed before they are + * reallocated. + */ + if (reallocating) { + mps_iocfacts_free(sc); + + /* + * The number of targets is based on IOC Facts, so free all of + * the allocated LUNs for each target and then the target buffer + * itself. + */ + for (i=0; i< saved_facts.MaxTargets; i++) { + targ = &sc->sassc->targets[i]; + SLIST_FOREACH_SAFE(lun, &targ->luns, lun_link, + lun_tmp) { + free(lun, M_MPT2); + } + } + free(sc->sassc->targets, M_MPT2); + + sc->sassc->targets = malloc(sizeof(struct mpssas_target) * + sc->facts->MaxTargets, M_MPT2, M_WAITOK|M_ZERO); + if (!sc->sassc->targets) { + panic("%s failed to alloc targets with error %d\n", + __func__, ENOMEM); + } + } + + /* + * Any deallocation has been completed. Now start reallocating + * if needed. Will only need to reallocate if attaching or if the new + * IOC Facts are different from the previous IOC Facts after a Diag + * Reset. Targets have already been allocated above if needed. + */ + if (attaching || reallocating) { + if (((error = mps_alloc_queues(sc)) != 0) || + ((error = mps_alloc_replies(sc)) != 0) || + ((error = mps_alloc_requests(sc)) != 0)) { + if (attaching ) { + mps_dprint(sc, MPS_FAULT, "%s failed to alloc " + "queues with error %d\n", __func__, error); + mps_free(sc); + return (error); + } else { + panic("%s failed to alloc queues with error " + "%d\n", __func__, error); + } + } + } + + /* Always initialize the queues */ + bzero(sc->free_queue, sc->fqdepth * 4); + mps_init_queues(sc); + + /* + * Always get the chip out of the reset state, but only panic if not + * attaching. If attaching and there is an error, that is handled by + * the OS. + */ + error = mps_transition_operational(sc); + if (error != 0) { + if (attaching) { + mps_printf(sc, "%s failed to transition to operational " + "with error %d\n", __func__, error); + mps_free(sc); + return (error); + } else { + panic("%s failed to transition to operational with " + "error %d\n", __func__, error); + } + } + + /* + * Finish the queue initialization. + * These are set here instead of in mps_init_queues() because the + * IOC resets these values during the state transition in + * mps_transition_operational(). The free index is set to 1 + * because the corresponding index in the IOC is set to 0, and the + * IOC treats the queues as full if both are set to the same value. + * Hence the reason that the queue can't hold all of the possible + * replies. + */ + sc->replypostindex = 0; + mps_regwrite(sc, MPI2_REPLY_FREE_HOST_INDEX_OFFSET, sc->replyfreeindex); + mps_regwrite(sc, MPI2_REPLY_POST_HOST_INDEX_OFFSET, 0); + + /* + * Attach the subsystems so they can prepare their event masks. + */ + /* XXX Should be dynamic so that IM/IR and user modules can attach */ + if (attaching) { + if (((error = mps_attach_log(sc)) != 0) || + ((error = mps_attach_sas(sc)) != 0) || + ((error = mps_attach_user(sc)) != 0)) { + mps_printf(sc, "%s failed to attach all subsystems: " + "error %d\n", __func__, error); + mps_free(sc); + return (error); + } + + if ((error = mps_pci_setup_interrupts(sc)) != 0) { + mps_printf(sc, "%s failed to setup interrupts\n", + __func__); + mps_free(sc); + return (error); + } + } + + /* + * Set flag if this is a WD controller. This shouldn't ever change, but + * reset it after a Diag Reset, just in case. + */ + sc->WD_available = FALSE; + if (pci_get_device(sc->mps_dev) == MPI2_MFGPAGE_DEVID_SSS6200) + sc->WD_available = TRUE; + + return (error); + } + + /* + * This is called if memory is being free (during detach for example) and when + * buffers need to be reallocated due to a Diag Reset. + */ + static void + mps_iocfacts_free(struct mps_softc *sc) + { + struct mps_command *cm; + int i; + + mps_dprint(sc, MPS_TRACE, "%s\n", __func__); + + if (sc->post_busaddr != 0) + bus_dmamap_unload(sc->queues_dmat, sc->queues_map); + if (sc->post_queue != NULL) + bus_dmamem_free(sc->queues_dmat, sc->post_queue, + sc->queues_map); + if (sc->queues_dmat != NULL) + bus_dma_tag_destroy(sc->queues_dmat); + + if (sc->chain_busaddr != 0) + bus_dmamap_unload(sc->chain_dmat, sc->chain_map); + if (sc->chain_frames != NULL) + bus_dmamem_free(sc->chain_dmat, sc->chain_frames, + sc->chain_map); + if (sc->chain_dmat != NULL) + bus_dma_tag_destroy(sc->chain_dmat); + + if (sc->sense_busaddr != 0) + bus_dmamap_unload(sc->sense_dmat, sc->sense_map); + if (sc->sense_frames != NULL) + bus_dmamem_free(sc->sense_dmat, sc->sense_frames, + sc->sense_map); + if (sc->sense_dmat != NULL) + bus_dma_tag_destroy(sc->sense_dmat); + + if (sc->reply_busaddr != 0) + bus_dmamap_unload(sc->reply_dmat, sc->reply_map); + if (sc->reply_frames != NULL) + bus_dmamem_free(sc->reply_dmat, sc->reply_frames, + sc->reply_map); + if (sc->reply_dmat != NULL) + bus_dma_tag_destroy(sc->reply_dmat); + + if (sc->req_busaddr != 0) + bus_dmamap_unload(sc->req_dmat, sc->req_map); + if (sc->req_frames != NULL) + bus_dmamem_free(sc->req_dmat, sc->req_frames, sc->req_map); + if (sc->req_dmat != NULL) + bus_dma_tag_destroy(sc->req_dmat); + + if (sc->chains != NULL) + free(sc->chains, M_MPT2); + if (sc->commands != NULL) { + for (i = 1; i < sc->num_reqs; i++) { + cm = &sc->commands[i]; + bus_dmamap_destroy(sc->buffer_dmat, cm->cm_dmamap); + } + free(sc->commands, M_MPT2); + } + if (sc->buffer_dmat != NULL) + bus_dma_tag_destroy(sc->buffer_dmat); + } + /* * The terms diag reset and hard reset are used interchangeably in the MPI * docs to mean resetting the controller chip. In this code diag reset * cleans everything up, and the hard reset function just sends the reset *************** *** 316,322 **** mps_reinit(struct mps_softc *sc) { int error; - uint32_t db; mps_printf(sc, "%s sc %p\n", __func__, sc); --- 675,680 ---- *************** *** 332,344 **** */ sc->mps_flags |= MPS_FLAGS_DIAGRESET; mps_printf(sc, "%s mask interrupts\n", __func__); mps_mask_intr(sc); error = mps_diag_reset(sc, CAN_SLEEP); if (error != 0) { ! panic("%s hard reset failed with error %d\n", ! __func__, error); } /* Restore the PCI state, including the MSI-X registers */ --- 690,704 ---- */ sc->mps_flags |= MPS_FLAGS_DIAGRESET; + /* + * Mask interrupts here. + */ mps_printf(sc, "%s mask interrupts\n", __func__); mps_mask_intr(sc); error = mps_diag_reset(sc, CAN_SLEEP); if (error != 0) { ! panic("%s hard reset failed with error %d\n", __func__, error); } /* Restore the PCI state, including the MSI-X registers */ *************** *** 347,395 **** /* Give the I/O subsystem special priority to get itself prepared */ mpssas_handle_reinit(sc); ! /* reinitialize queues after the reset */ ! bzero(sc->free_queue, sc->fqdepth * 4); ! mps_init_queues(sc); ! ! /* get the chip out of the reset state */ ! error = mps_transition_operational(sc); ! if (error != 0) ! panic("%s transition operational failed with error %d\n", __func__, error); ! /* Reinitialize the reply queue. This is delicate because this ! * function is typically invoked by task mgmt completion callbacks, ! * which are called by the interrupt thread. We need to make sure ! * the interrupt handler loop will exit when we return to it, and ! * that it will recognize the indexes we've changed. */ ! sc->replypostindex = 0; ! mps_regwrite(sc, MPI2_REPLY_FREE_HOST_INDEX_OFFSET, sc->replyfreeindex); ! mps_regwrite(sc, MPI2_REPLY_POST_HOST_INDEX_OFFSET, sc->replypostindex); ! db = mps_regread(sc, MPI2_DOORBELL_OFFSET); ! mps_printf(sc, "%s doorbell 0x%08x\n", __func__, db); ! ! mps_printf(sc, "%s unmask interrupts post %u free %u\n", __func__, ! sc->replypostindex, sc->replyfreeindex); ! mps_unmask_intr(sc); ! mps_printf(sc, "%s restarting post %u free %u\n", __func__, ! sc->replypostindex, sc->replyfreeindex); ! /* restart will reload the event masks clobbered by the reset, and * then enable the port. */ mps_reregister_events(sc); /* the end of discovery will release the simq, so we're done. */ ! mps_printf(sc, "%s finished sc %p post %u free %u\n", ! __func__, sc, sc->replypostindex, sc->replyfreeindex); - sc->mps_flags &= ~MPS_FLAGS_DIAGRESET; - return 0; } --- 707,756 ---- /* Give the I/O subsystem special priority to get itself prepared */ mpssas_handle_reinit(sc); ! /* ! * Get IOC Facts and allocate all structures based on this information. ! * The attach function will also call mps_iocfacts_allocate at startup. ! * If relevant values have changed in IOC Facts, this function will free ! * all of the memory based on IOC Facts and reallocate that memory. ! */ ! if ((error = mps_iocfacts_allocate(sc, FALSE)) != 0) { ! panic("%s IOC Facts based allocation failed with error %d\n", __func__, error); + } ! /* ! * Mapping structures will be re-allocated after getting IOC Page8, so ! * free these structures here. */ ! mps_mapping_exit(sc); ! /* ! * The static page function currently read is IOC Page8. Others can be ! * added in future. It's possible that the values in IOC Page8 have ! * changed after a Diag Reset due to user modification, so always read ! * these. Interrupts are masked, so unmask them before getting config ! * pages. ! */ mps_unmask_intr(sc); + sc->mps_flags &= ~MPS_FLAGS_DIAGRESET; + mps_base_static_config_pages(sc); ! /* ! * Some mapping info is based in IOC Page8 data, so re-initialize the ! * mapping tables. ! */ ! mps_mapping_initialize(sc); ! /* ! * Restart will reload the event masks clobbered by the reset, and * then enable the port. */ mps_reregister_events(sc); /* the end of discovery will release the simq, so we're done. */ ! mps_printf(sc, "%s finished sc %p post %u free %u\n", __func__, sc, sc->replypostindex, sc->replyfreeindex); return 0; } *************** *** 634,681 **** } static int - mps_get_portfacts(struct mps_softc *sc, MPI2_PORT_FACTS_REPLY *facts, int port) - { - MPI2_PORT_FACTS_REQUEST *request; - MPI2_PORT_FACTS_REPLY *reply; - struct mps_command *cm; - int error; - - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); - - if ((cm = mps_alloc_command(sc)) == NULL) - return (EBUSY); - request = (MPI2_PORT_FACTS_REQUEST *)cm->cm_req; - request->Function = MPI2_FUNCTION_PORT_FACTS; - request->PortNumber = port; - cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; - cm->cm_data = NULL; - error = mps_request_polled(sc, cm); - reply = (MPI2_PORT_FACTS_REPLY *)cm->cm_reply; - if (reply == NULL) { - mps_printf(sc, "%s NULL reply\n", __func__); - goto done; - } - if ((reply->IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) { - mps_printf(sc, - "%s error %d iocstatus 0x%x iocloginfo 0x%x type 0x%x\n", - __func__, error, reply->IOCStatus, reply->IOCLogInfo, - reply->PortType); - error = ENXIO; - } - bcopy(reply, facts, sizeof(MPI2_PORT_FACTS_REPLY)); - done: - mps_free_command(sc, cm); - - return (error); - } - - static int mps_send_iocinit(struct mps_softc *sc) { MPI2_IOC_INIT_REQUEST init; MPI2_DEFAULT_REPLY reply; int req_sz, reply_sz, error; mps_dprint(sc, MPS_TRACE, "%s\n", __func__); --- 995,1007 ---- } static int mps_send_iocinit(struct mps_softc *sc) { MPI2_IOC_INIT_REQUEST init; MPI2_DEFAULT_REPLY reply; int req_sz, reply_sz, error; + struct timeval now; + uint64_t time_in_msec; mps_dprint(sc, MPS_TRACE, "%s\n", __func__); *************** *** 704,711 **** init.ReplyDescriptorPostQueueAddress.Low = htole32((uint32_t)sc->post_busaddr); init.ReplyFreeQueueAddress.High = 0; init.ReplyFreeQueueAddress.Low = htole32((uint32_t)sc->free_busaddr); ! init.TimeStamp.High = 0; ! init.TimeStamp.Low = htole32((uint32_t)time_uptime); error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) --- 1030,1039 ---- init.ReplyDescriptorPostQueueAddress.Low = htole32((uint32_t)sc->post_busaddr); init.ReplyFreeQueueAddress.High = 0; init.ReplyFreeQueueAddress.Low = htole32((uint32_t)sc->free_busaddr); ! getmicrotime(&now); ! time_in_msec = (now.tv_sec * 1000 + now.tv_usec/1000); ! init.TimeStamp.High = htole32((time_in_msec >> 32) & 0xFFFFFFFF); ! init.TimeStamp.Low = htole32(time_in_msec & 0xFFFFFFFF); error = mps_request_sync(sc, &init, &reply, req_sz, reply_sz, 5); if ((reply.IOCStatus & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS) *************** *** 1119,1125 **** int mps_attach(struct mps_softc *sc) { ! int i, error; mps_get_tunables(sc); --- 1447,1453 ---- int mps_attach(struct mps_softc *sc) { ! int error; mps_get_tunables(sc); *************** *** 1141,1291 **** __func__, __LINE__); return (ENOMEM); } - if ((error = mps_get_iocfacts(sc, sc->facts)) != 0) - return (error); - - mps_print_iocfacts(sc, sc->facts); - - snprintf(sc->fw_version, sizeof(sc->fw_version), - "%02d.%02d.%02d.%02d", - sc->facts->FWVersion.Struct.Major, - sc->facts->FWVersion.Struct.Minor, - sc->facts->FWVersion.Struct.Unit, - sc->facts->FWVersion.Struct.Dev); - mps_printf(sc, "Firmware: %s, Driver: %s\n", sc->fw_version, - MPS_DRIVER_VERSION); - mps_printf(sc, "IOCCapabilities: %b\n", sc->facts->IOCCapabilities, - "\20" "\3ScsiTaskFull" "\4DiagTrace" "\5SnapBuf" "\6ExtBuf" - "\7EEDP" "\10BiDirTarg" "\11Multicast" "\14TransRetry" "\15IR" - "\16EventReplay" "\17RaidAccel" "\20MSIXIndex" "\21HostDisc"); - /* ! * If the chip doesn't support event replay then a hard reset will be ! * required to trigger a full discovery. Do the reset here then ! * retransition to Ready. A hard reset might have already been done, ! * but it doesn't hurt to do it again. */ ! if ((sc->facts->IOCCapabilities & ! MPI2_IOCFACTS_CAPABILITY_EVENT_REPLAY) == 0) { ! mps_diag_reset(sc, NO_SLEEP); ! if ((error = mps_transition_ready(sc)) != 0) ! return (error); ! } ! ! /* ! * Set flag if IR Firmware is loaded. ! */ ! if (sc->facts->IOCCapabilities & ! MPI2_IOCFACTS_CAPABILITY_INTEGRATED_RAID) ! sc->ir_firmware = 1; ! ! /* ! * Check if controller supports FW diag buffers and set flag to enable ! * each type. ! */ ! if (sc->facts->IOCCapabilities & ! MPI2_IOCFACTS_CAPABILITY_DIAG_TRACE_BUFFER) ! sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_TRACE].enabled = ! TRUE; ! if (sc->facts->IOCCapabilities & ! MPI2_IOCFACTS_CAPABILITY_SNAPSHOT_BUFFER) ! sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_SNAPSHOT].enabled = ! TRUE; ! if (sc->facts->IOCCapabilities & ! MPI2_IOCFACTS_CAPABILITY_EXTENDED_BUFFER) ! sc->fw_diag_buffer_list[MPI2_DIAG_BUF_TYPE_EXTENDED].enabled = ! TRUE; ! ! /* ! * Set flag if EEDP is supported and if TLR is supported. ! */ ! if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_EEDP) ! sc->eedp_enabled = TRUE; ! if (sc->facts->IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TLR) ! sc->control_TLR = TRUE; ! ! /* ! * Size the queues. Since the reply queues always need one free entry, ! * we'll just deduct one reply message here. ! */ ! sc->num_reqs = MIN(MPS_REQ_FRAMES, sc->facts->RequestCredit); ! sc->num_replies = MIN(MPS_REPLY_FRAMES + MPS_EVT_REPLY_FRAMES, ! sc->facts->MaxReplyDescriptorPostQueueDepth) - 1; ! TAILQ_INIT(&sc->req_list); ! TAILQ_INIT(&sc->high_priority_req_list); ! TAILQ_INIT(&sc->chain_list); ! TAILQ_INIT(&sc->tm_list); ! ! if (((error = mps_alloc_queues(sc)) != 0) || ! ((error = mps_alloc_replies(sc)) != 0) || ! ((error = mps_alloc_requests(sc)) != 0)) { ! mps_printf(sc, "%s failed to alloc\n", __func__); ! mps_free(sc); ! return (error); ! } ! ! if (((error = mps_init_queues(sc)) != 0) || ! ((error = mps_transition_operational(sc)) != 0)) { ! mps_printf(sc, "%s failed to transition operational\n", __func__); ! mps_free(sc); ! return (error); ! } ! ! /* ! * Finish the queue initialization. ! * These are set here instead of in mps_init_queues() because the ! * IOC resets these values during the state transition in ! * mps_transition_operational(). The free index is set to 1 ! * because the corresponding index in the IOC is set to 0, and the ! * IOC treats the queues as full if both are set to the same value. ! * Hence the reason that the queue can't hold all of the possible ! * replies. ! */ ! sc->replypostindex = 0; ! mps_regwrite(sc, MPI2_REPLY_FREE_HOST_INDEX_OFFSET, sc->replyfreeindex); ! mps_regwrite(sc, MPI2_REPLY_POST_HOST_INDEX_OFFSET, 0); ! ! sc->pfacts = malloc(sizeof(MPI2_PORT_FACTS_REPLY) * ! sc->facts->NumberOfPorts, M_MPT2, M_ZERO|M_WAITOK); ! if(!sc->pfacts) { ! device_printf(sc->mps_dev, "Cannot allocate memory %s %d\n", ! __func__, __LINE__); ! return (ENOMEM); ! } ! for (i = 0; i < sc->facts->NumberOfPorts; i++) { ! if ((error = mps_get_portfacts(sc, &sc->pfacts[i], i)) != 0) { ! mps_printf(sc, "%s failed to get portfacts for port %d\n", ! __func__, i); ! mps_free(sc); ! return (error); ! } ! mps_print_portfacts(sc, &sc->pfacts[i]); ! } ! ! /* Attach the subsystems so they can prepare their event masks. */ ! /* XXX Should be dynamic so that IM/IR and user modules can attach */ ! if (((error = mps_attach_log(sc)) != 0) || ! ((error = mps_attach_sas(sc)) != 0) || ! ((error = mps_attach_user(sc)) != 0)) { ! mps_printf(sc, "%s failed to attach all subsystems: error %d\n", ! __func__, error); ! mps_free(sc); ! return (error); ! } ! ! if ((error = mps_pci_setup_interrupts(sc)) != 0) { ! mps_printf(sc, "%s failed to setup interrupts\n", __func__); ! mps_free(sc); return (error); } - /* - * The static page function currently read is ioc page8. Others can be - * added in future. - */ - mps_base_static_config_pages(sc); - /* Start the periodic watchdog check on the IOC Doorbell */ mps_periodic(sc); --- 1469,1488 ---- __func__, __LINE__); return (ENOMEM); } /* ! * Get IOC Facts and allocate all structures based on this information. ! * A Diag Reset will also call mps_iocfacts_allocate and re-read the IOC ! * Facts. If relevant values have changed in IOC Facts, this function ! * will free all of the memory based on IOC Facts and reallocate that ! * memory. If this fails, any allocated memory should already be freed. */ ! if ((error = mps_iocfacts_allocate(sc, TRUE)) != 0) { ! mps_dprint(sc, MPS_FAULT, "%s IOC Facts based allocation " ! "failed with error %d\n", __func__, error); return (error); } /* Start the periodic watchdog check on the IOC Doorbell */ mps_periodic(sc); *************** *** 1328,1334 **** --- 1525,1533 ---- mps_lock(sc); mps_unmask_intr(sc); + /* initialize device mapping tables */ + mps_base_static_config_pages(sc); mps_mapping_initialize(sc); mpssas_startup(sc); mps_unlock(sc); *************** *** 1411,1418 **** int mps_free(struct mps_softc *sc) { ! struct mps_command *cm; ! int i, error; /* Turn off the watchdog */ mps_lock(sc); --- 1610,1616 ---- int mps_free(struct mps_softc *sc) { ! int error; /* Turn off the watchdog */ mps_lock(sc); *************** *** 1438,1499 **** if (sc->facts != NULL) free(sc->facts, M_MPT2); ! if (sc->pfacts != NULL) ! free(sc->pfacts, M_MPT2); ! ! if (sc->post_busaddr != 0) ! bus_dmamap_unload(sc->queues_dmat, sc->queues_map); ! if (sc->post_queue != NULL) ! bus_dmamem_free(sc->queues_dmat, sc->post_queue, ! sc->queues_map); ! if (sc->queues_dmat != NULL) ! bus_dma_tag_destroy(sc->queues_dmat); ! ! if (sc->chain_busaddr != 0) ! bus_dmamap_unload(sc->chain_dmat, sc->chain_map); ! if (sc->chain_frames != NULL) ! bus_dmamem_free(sc->chain_dmat, sc->chain_frames,sc->chain_map); ! if (sc->chain_dmat != NULL) ! bus_dma_tag_destroy(sc->chain_dmat); ! ! if (sc->sense_busaddr != 0) ! bus_dmamap_unload(sc->sense_dmat, sc->sense_map); ! if (sc->sense_frames != NULL) ! bus_dmamem_free(sc->sense_dmat, sc->sense_frames,sc->sense_map); ! if (sc->sense_dmat != NULL) ! bus_dma_tag_destroy(sc->sense_dmat); ! ! if (sc->reply_busaddr != 0) ! bus_dmamap_unload(sc->reply_dmat, sc->reply_map); ! if (sc->reply_frames != NULL) ! bus_dmamem_free(sc->reply_dmat, sc->reply_frames,sc->reply_map); ! if (sc->reply_dmat != NULL) ! bus_dma_tag_destroy(sc->reply_dmat); ! ! if (sc->req_busaddr != 0) ! bus_dmamap_unload(sc->req_dmat, sc->req_map); ! if (sc->req_frames != NULL) ! bus_dmamem_free(sc->req_dmat, sc->req_frames, sc->req_map); ! if (sc->req_dmat != NULL) ! bus_dma_tag_destroy(sc->req_dmat); - if (sc->chains != NULL) - free(sc->chains, M_MPT2); - if (sc->commands != NULL) { - for (i = 1; i < sc->num_reqs; i++) { - cm = &sc->commands[i]; - bus_dmamap_destroy(sc->buffer_dmat, cm->cm_dmamap); - } - free(sc->commands, M_MPT2); - } - if (sc->buffer_dmat != NULL) - bus_dma_tag_destroy(sc->buffer_dmat); - if (sc->sysctl_tree != NULL) sysctl_ctx_free(&sc->sysctl_ctx); - mps_mapping_free_memory(sc); - /* Deregister the shutdown function */ if (sc->shutdown_eh != NULL) EVENTHANDLER_DEREGISTER(shutdown_final, sc->shutdown_eh); --- 1636,1650 ---- if (sc->facts != NULL) free(sc->facts, M_MPT2); ! /* ! * Free all buffers that are based on IOC Facts. A Diag Reset may need ! * to free these buffers too. ! */ ! mps_iocfacts_free(sc); if (sc->sysctl_tree != NULL) sysctl_ctx_free(&sc->sysctl_ctx); /* Deregister the shutdown function */ if (sc->shutdown_eh != NULL) EVENTHANDLER_DEREGISTER(shutdown_final, sc->shutdown_eh); *************** *** 1914,1920 **** /* first, reregister events */ ! for (i = 0; i < MPI2_EVENT_NOTIFY_EVENTMASK_WORDS; i++) sc->event_mask[i] = -1; TAILQ_FOREACH(eh, &sc->event_list, eh_list) { --- 2065,2071 ---- /* first, reregister events */ ! for (i = 0; i < MPI2_EVENT_NOTIFY_EVENTMASK_WORDS; i++) sc->event_mask[i] = -1; TAILQ_FOREACH(eh, &sc->event_list, eh_list) { *************** *** 1946,1952 **** error = mps_map_command(sc, cm); ! mps_dprint(sc, MPS_TRACE, "%s finished with error %d\n", __func__, error); return (error); } --- 2097,2104 ---- error = mps_map_command(sc, cm); ! mps_dprint(sc, MPS_TRACE, "%s finished with error %d\n", __func__, ! error); return (error); } *************** *** 2325,2350 **** * be executed and enqueued automatically. Other errors come from msleep(). */ int ! mps_wait_command(struct mps_softc *sc, struct mps_command *cm, int timeout) { int error, rc; ! mtx_assert(&sc->mps_mtx, MA_OWNED); ! ! if(sc->mps_flags & MPS_FLAGS_DIAGRESET) return EBUSY; cm->cm_complete = NULL; ! cm->cm_flags |= MPS_CM_FLAGS_WAKEUP; error = mps_map_command(sc, cm); if ((error != 0) && (error != EINPROGRESS)) return (error); ! error = msleep(cm, &sc->mps_mtx, 0, "mpswait", timeout*hz); if (error == EWOULDBLOCK) { mps_dprint(sc, MPS_FAULT, "Calling Reinit from %s\n", __func__); rc = mps_reinit(sc); ! mps_dprint(sc, MPS_FAULT, "Reinit %s\n", ! (rc == 0) ? "success" : "failed"); error = ETIMEDOUT; } return (error); --- 2477,2526 ---- * be executed and enqueued automatically. Other errors come from msleep(). */ int ! mps_wait_command(struct mps_softc *sc, struct mps_command *cm, int timeout, ! int sleep_flag) { int error, rc; + struct timeval cur_time, start_time; ! if (sc->mps_flags & MPS_FLAGS_DIAGRESET) return EBUSY; cm->cm_complete = NULL; ! cm->cm_flags |= (MPS_CM_FLAGS_WAKEUP + MPS_CM_FLAGS_POLLED); error = mps_map_command(sc, cm); if ((error != 0) && (error != EINPROGRESS)) return (error); ! ! // Check for context and wait for 50 mSec at a time until time has ! // expired or the command has finished. If msleep can't be used, need ! // to poll. ! if (curthread->td_pflags & TDP_NOSLEEPING) ! sleep_flag = NO_SLEEP; ! getmicrotime(&start_time); ! if (mtx_owned(&sc->mps_mtx) && sleep_flag == CAN_SLEEP) { ! error = msleep(cm, &sc->mps_mtx, 0, "mpswait", timeout*hz); ! } else { ! while ((cm->cm_flags & MPS_CM_FLAGS_COMPLETE) == 0) { ! mps_intr_locked(sc); ! if (sleep_flag == CAN_SLEEP) ! pause("mpswait", hz/20); ! else ! DELAY(50000); ! ! getmicrotime(&cur_time); ! if ((cur_time.tv_sec - start_time.tv_sec) > timeout) { ! error = EWOULDBLOCK; ! break; ! } ! } ! } ! if (error == EWOULDBLOCK) { mps_dprint(sc, MPS_FAULT, "Calling Reinit from %s\n", __func__); rc = mps_reinit(sc); ! mps_dprint(sc, MPS_FAULT, "Reinit %s\n", (rc == 0) ? "success" : ! "failed"); error = ETIMEDOUT; } return (error); *************** *** 2444,2450 **** cm->cm_complete = mps_config_complete; return (mps_map_command(sc, cm)); } else { ! error = mps_wait_command(sc, cm, 0); if (error) { mps_dprint(sc, MPS_FAULT, "Error %d reading config page\n", error); --- 2620,2626 ---- cm->cm_complete = mps_config_complete; return (mps_map_command(sc, cm)); } else { ! error = mps_wait_command(sc, cm, 0, CAN_SLEEP); if (error) { mps_dprint(sc, MPS_FAULT, "Error %d reading config page\n", error); *** src/sys/dev/mps/mps_config.c.orig --- src/sys/dev/mps/mps_config.c *************** *** 93,104 **** request->Header.PageVersion = MPI2_IOCPAGE8_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for header completed with error %d", __func__, error); error = ENXIO; goto out; --- 93,107 ---- request->Header.PageVersion = MPI2_IOCPAGE8_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for header completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 107,113 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 110,119 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 144,155 **** goto out; } cm->cm_data = page; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 150,165 ---- goto out; } cm->cm_data = page; ! ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 158,164 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 168,177 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 211,216 **** --- 224,234 ---- request->Header.PageVersion = MPI2_MANUFACTURING10_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; + + /* + * This page must be polled because the IOC isn't ready yet when this + * page is needed. + */ error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { *************** *** 262,267 **** --- 280,290 ---- goto out; } cm->cm_data = page; + + /* + * This page must be polled because the IOC isn't ready yet when this + * page is needed. + */ error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { *************** *** 561,572 **** MPI2_DPM_PGAD_ENTRY_COUNT_SHIFT; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for header completed with error %d", __func__, error); error = ENXIO; goto out; --- 584,598 ---- MPI2_DPM_PGAD_ENTRY_COUNT_SHIFT; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for header completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 575,581 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 601,610 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 615,626 **** goto out; } cm->cm_data = page; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 644,658 ---- goto out; } cm->cm_data = page; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 629,635 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 661,670 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 685,696 **** request->PageAddress |= htole16(entry_idx); cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for header completed with error %d", __func__, error); error = ENXIO; goto out; --- 720,734 ---- request->PageAddress |= htole16(entry_idx); cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for header completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 699,705 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 737,746 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 741,752 **** bcopy(config_page, page, MIN(cm->cm_length, (sizeof(Mpi2DriverMappingPage0_t)))); cm->cm_data = page; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 782,796 ---- bcopy(config_page, page, MIN(cm->cm_length, (sizeof(Mpi2DriverMappingPage0_t)))); cm->cm_data = page; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request to write page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 755,761 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: page written with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 799,808 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: page written with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 808,819 **** request->Header.PageVersion = MPI2_SASDEVICE0_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for header completed with error %d", __func__, error); error = ENXIO; goto out; --- 855,869 ---- request->Header.PageVersion = MPI2_SASDEVICE0_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for header completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 822,828 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 872,881 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 862,873 **** } cm->cm_data = page; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 915,929 ---- } cm->cm_data = page; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 876,882 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 932,941 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 928,939 **** request->Header.PageVersion = MPI2_BIOSPAGE3_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for header completed with error %d", __func__, error); error = ENXIO; goto out; --- 987,1001 ---- request->Header.PageVersion = MPI2_BIOSPAGE3_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for header completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 942,948 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 1004,1013 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 980,991 **** } cm->cm_data = page; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 1045,1059 ---- } cm->cm_data = page; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 994,1000 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 1062,1071 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 1046,1051 **** --- 1117,1127 ---- request->Header.PageVersion = MPI2_RAIDVOLPAGE0_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; + + /* + * This page must be polled because the IOC isn't ready yet when this + * page is needed. + */ error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { *************** *** 1099,1104 **** --- 1175,1184 ---- } cm->cm_data = page; + /* + * This page must be polled because the IOC isn't ready yet when this + * page is needed. + */ error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { *************** *** 1166,1177 **** request->Header.PageVersion = MPI2_RAIDVOLPAGE1_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for header completed with error %d", __func__, error); error = ENXIO; goto out; --- 1246,1260 ---- request->Header.PageVersion = MPI2_RAIDVOLPAGE1_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for header completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 1180,1186 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 1263,1272 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: header read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 1219,1230 **** } cm->cm_data = page; ! error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 1305,1319 ---- } cm->cm_data = page; ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 1233,1239 **** bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; --- 1322,1331 ---- bcopy(reply, mpi_reply, sizeof(MPI2_CONFIG_REPLY)); if (ioc_status != MPI2_IOCSTATUS_SUCCESS) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ printf("%s: page read with error; iocstatus = 0x%x\n", __func__, ioc_status); error = ENXIO; *************** *** 1311,1316 **** --- 1403,1413 ---- request->Header.PageVersion = MPI2_RAIDPHYSDISKPAGE0_PAGEVERSION; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = NULL; + + /* + * This page must be polled because the IOC isn't ready yet when this + * page is needed. + */ error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { *************** *** 1364,1369 **** --- 1461,1470 ---- } cm->cm_data = page; + /* + * This page must be polled because the IOC isn't ready yet when this + * page is needed. + */ error = mps_request_polled(sc, cm); reply = (MPI2_CONFIG_REPLY *)cm->cm_reply; if (error || (reply == NULL)) { *** src/sys/dev/mps/mps_mapping.c.orig --- src/sys/dev/mps/mps_mapping.c *************** *** 1216,1227 **** phy_change->is_processed = 1; } else { phy_change->is_processed = 1; ! printf("%s: failed to add the " ! "device with handle 0x%04x " ! "to persistent table " ! "because there is no free " ! "space available\n", ! __func__, phy_change->dev_handle); } } else { --- 1216,1227 ---- phy_change->is_processed = 1; } else { phy_change->is_processed = 1; ! mps_dprint(sc, MPS_INFO, "%s: " ! "failed to add the device " ! "with handle 0x%04x to " ! "persistent table because " ! "there is no free space " ! "available\n", __func__, phy_change->dev_handle); } } else { *************** *** 1318,1329 **** phy_change->is_processed = 1; } else if (dpm_idx == MPS_DPM_BAD_IDX) { phy_change->is_processed = 1; ! printf("%s: failed to add the " ! "device with handle 0x%04x " ! "to persistent table " ! "because there is no free " ! "space available\n", ! __func__, phy_change->dev_handle); } } --- 1318,1329 ---- phy_change->is_processed = 1; } else if (dpm_idx == MPS_DPM_BAD_IDX) { phy_change->is_processed = 1; ! mps_dprint(sc, MPS_INFO, "%s: " ! "failed to add the device " ! "with handle 0x%04x to " ! "persistent table because " ! "there is no free space " ! "available\n", __func__, phy_change->dev_handle); } } *** src/sys/dev/mps/mps_sas.c.orig --- src/sys/dev/mps/mps_sas.c *************** *** 136,149 **** static void mpssas_resetdev_complete(struct mps_softc *, struct mps_command *); static int mpssas_send_abort(struct mps_softc *sc, struct mps_command *tm, struct mps_command *cm); static int mpssas_send_reset(struct mps_softc *sc, struct mps_command *tm, uint8_t type); - static void mpssas_rescan(struct mpssas_softc *sassc, union ccb *ccb); - static void mpssas_rescan_done(struct cam_periph *periph, union ccb *done_ccb); - static void mpssas_scanner_thread(void *arg); - #if __FreeBSD_version >= 1000006 static void mpssas_async(void *callback_arg, uint32_t code, struct cam_path *path, void *arg); ! #else ! static void mpssas_check_eedp(struct mpssas_softc *sassc); static void mpssas_read_cap_done(struct cam_periph *periph, union ccb *done_ccb); #endif static int mpssas_send_portenable(struct mps_softc *sc); --- 136,147 ---- static void mpssas_resetdev_complete(struct mps_softc *, struct mps_command *); static int mpssas_send_abort(struct mps_softc *sc, struct mps_command *tm, struct mps_command *cm); static int mpssas_send_reset(struct mps_softc *sc, struct mps_command *tm, uint8_t type); static void mpssas_async(void *callback_arg, uint32_t code, struct cam_path *path, void *arg); ! #if (__FreeBSD_version < 901503) || \ ! ((__FreeBSD_version >= 1000000) && (__FreeBSD_version < 1000006)) ! static void mpssas_check_eedp(struct mps_softc *sc, struct cam_path *path, ! struct ccb_getdev *cgd); static void mpssas_read_cap_done(struct cam_periph *periph, union ccb *done_ccb); #endif static int mpssas_send_portenable(struct mps_softc *sc); *************** *** 198,205 **** --- 196,208 ---- mps_dprint(sassc->sc, MPS_INFO, "%s releasing simq\n", __func__); sassc->flags &= ~MPSSAS_IN_STARTUP; + #if (__FreeBSD_version >= 1000036) || \ + ((__FreeBSD_version < 1000000) && (__FreeBSD_version >= 9010506)) + xpt_release_boot(); + #else xpt_release_simq(sassc->sim, 1); mpssas_rescan_target(sassc->sc, NULL); + #endif } mps_dprint(sassc->sc, MPS_TRACE, "%s refcount %u\n", __func__, sassc->startup_refcount); *************** *** 247,253 **** mps_free_high_priority_command(sc, tm); } - void mpssas_rescan_target(struct mps_softc *sc, struct mpssas_target *targ) { --- 250,255 ---- *************** *** 272,278 **** } if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, pathid, ! targetid, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { mps_dprint(sc, MPS_FAULT, "unable to create path for rescan\n"); xpt_free_ccb(ccb); return; --- 274,280 ---- } if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, pathid, ! targetid, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { mps_dprint(sc, MPS_FAULT, "unable to create path for rescan\n"); xpt_free_ccb(ccb); return; *************** *** 284,290 **** ccb->ccb_h.func_code = XPT_SCAN_TGT; mps_dprint(sc, MPS_TRACE, "%s targetid %u\n", __func__, targetid); ! mpssas_rescan(sassc, ccb); } static void --- 286,292 ---- ccb->ccb_h.func_code = XPT_SCAN_TGT; mps_dprint(sc, MPS_TRACE, "%s targetid %u\n", __func__, targetid); ! xpt_rescan(ccb); } static void *************** *** 671,679 **** mps_attach_sas(struct mps_softc *sc) { struct mpssas_softc *sassc; - #if __FreeBSD_version >= 1000006 cam_status status; - #endif int unit, error = 0; mps_dprint(sc, MPS_TRACE, "%s\n", __func__); --- 673,679 ---- *************** *** 721,736 **** taskqueue_start_threads(&sassc->ev_tq, 1, 255, "%s taskq", device_get_nameunit(sc->mps_dev)); - TAILQ_INIT(&sassc->ccb_scanq); - error = mps_kproc_create(mpssas_scanner_thread, sassc, - &sassc->rescan_thread, 0, 0, "mps_scan%d", unit); - if (error) { - mps_printf(sc, "Error %d starting rescan thread\n", error); - goto out; - } - mps_lock(sc); - sassc->flags |= MPSSAS_SCANTHREAD; /* * XXX There should be a bus for every port on the adapter, but since --- 721,727 ---- *************** *** 745,756 **** } /* ! * Assume that discovery events will start right away. Freezing ! * the simq will prevent the CAM boottime scanner from running ! * before discovery is complete. */ sassc->flags |= MPSSAS_IN_STARTUP | MPSSAS_IN_DISCOVERY; xpt_freeze_simq(sassc->sim, 1); sc->sassc->startup_refcount = 0; callout_init(&sassc->discovery_callout, 1 /*mpsafe*/); --- 736,752 ---- } /* ! * Assume that discovery events will start right away. ! * ! * Hold off boot until discovery is complete. */ sassc->flags |= MPSSAS_IN_STARTUP | MPSSAS_IN_DISCOVERY; + #if (__FreeBSD_version >= 1000036) || \ + ((__FreeBSD_version < 1000000) && (__FreeBSD_version >= 9010506)) + xpt_hold_boot(); + #else xpt_freeze_simq(sassc->sim, 1); + #endif sc->sassc->startup_refcount = 0; callout_init(&sassc->discovery_callout, 1 /*mpsafe*/); *************** *** 758,770 **** sassc->tm_count = 0; ! #if __FreeBSD_version >= 1000006 ! status = xpt_register_async(AC_ADVINFO_CHANGED, mpssas_async, sc, NULL); if (status != CAM_REQ_CMP) { ! mps_printf(sc, "Error %#x registering async handler for " ! "AC_ADVINFO_CHANGED events\n", status); } - #endif mps_unlock(sc); --- 754,794 ---- sassc->tm_count = 0; ! /* ! * Register for async events so we can determine the EEDP ! * capabilities of devices. ! */ ! status = xpt_create_path(&sassc->path, /*periph*/NULL, ! cam_sim_path(sc->sassc->sim), CAM_TARGET_WILDCARD, ! CAM_LUN_WILDCARD); ! if (status != CAM_REQ_CMP) { ! mps_printf(sc, "Error %#x creating sim path\n", status); ! sassc->path = NULL; ! } else { ! int event; ! ! #if (__FreeBSD_version >= 1000006) || \ ! ((__FreeBSD_version >= 901503) && (__FreeBSD_version < 1000000)) ! event = AC_ADVINFO_CHANGED; ! #else ! event = AC_FOUND_DEVICE; ! #endif ! status = xpt_register_async(event, mpssas_async, sc, ! sassc->path); ! if (status != CAM_REQ_CMP) { ! mps_printf(sc, "Error %#x registering async handler " ! "for event type 0x%x\n", status, event); ! xpt_free_path(sassc->path); ! sassc->path = NULL; ! } ! } if (status != CAM_REQ_CMP) { ! /* ! * EEDP use is the exception, not the rule. ! * Warn the user, but do not fail to attach. ! */ ! mps_printf(sc, "EEDP capabilities disabled.\n"); } mps_unlock(sc); *************** *** 803,811 **** mps_lock(sc); /* Deregister our async handler */ ! #if __FreeBSD_version >= 1000006 ! xpt_register_async(0, mpssas_async, sc, NULL); ! #endif if (sassc->flags & MPSSAS_IN_STARTUP) xpt_release_simq(sassc->sim, 1); --- 827,837 ---- mps_lock(sc); /* Deregister our async handler */ ! if (sassc->path != NULL) { ! xpt_register_async(0, mpssas_async, sc, sassc->path); ! xpt_free_path(sassc->path); ! sassc->path = NULL; ! } if (sassc->flags & MPSSAS_IN_STARTUP) xpt_release_simq(sassc->sim, 1); *************** *** 815,829 **** cam_sim_free(sassc->sim, FALSE); } ! if (sassc->flags & MPSSAS_SCANTHREAD) { ! sassc->flags |= MPSSAS_SHUTDOWN; ! wakeup(&sassc->ccb_scanq); ! ! if (sassc->flags & MPSSAS_SCANTHREAD) { ! msleep(&sassc->flags, &sc->mps_mtx, PRIBIO, ! "mps_shutdown", 30 * hz); ! } ! } mps_unlock(sc); mps_dprint(sc, MPS_INFO, "%s:%d\n", __func__,__LINE__); --- 841,847 ---- cam_sim_free(sassc->sim, FALSE); } ! sassc->flags |= MPSSAS_SHUTDOWN; mps_unlock(sc); mps_dprint(sc, MPS_INFO, "%s:%d\n", __func__,__LINE__); *************** *** 914,920 **** --- 932,943 ---- cpi->version_num = 1; cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16; cpi->target_sprt = 0; + #if (__FreeBSD_version >= 1000036) || \ + ((__FreeBSD_version < 1000000) && (__FreeBSD_version >= 9010506)) + cpi->hba_misc = PIM_NOBUSRESET | PIM_UNMAPPED | PIM_NOSCAN; + #else cpi->hba_misc = PIM_NOBUSRESET | PIM_UNMAPPED; + #endif cpi->hba_eng_cnt = 0; cpi->max_target = sassc->sc->facts->MaxTargets - 1; cpi->max_lun = 255; *************** *** 1580,1586 **** csio = &ccb->csio; targ = &sassc->targets[csio->ccb_h.target_id]; ! mps_dprint(sc, MPS_TRACE, "%s ccb %p target flag %x\n", __func__, ccb, targ->flags); if (targ->handle == 0x0) { mps_dprint(sc, MPS_TRACE, "%s NULL handle for target %u\n", __func__, csio->ccb_h.target_id); --- 1603,1610 ---- csio = &ccb->csio; targ = &sassc->targets[csio->ccb_h.target_id]; ! mps_dprint(sc, MPS_TRACE, "%s ccb %p target flag %x\n", __func__, ccb, ! targ->flags); if (targ->handle == 0x0) { mps_dprint(sc, MPS_TRACE, "%s NULL handle for target %u\n", __func__, csio->ccb_h.target_id); *************** *** 1589,1601 **** return; } if (targ->flags & MPS_TARGET_FLAGS_RAID_COMPONENT) { ! mps_dprint(sc, MPS_TRACE, "%s Raid component no SCSI IO supported %u\n", ! __func__, csio->ccb_h.target_id); csio->ccb_h.status = CAM_TID_INVALID; xpt_done(ccb); return; } /* * If devinfo is 0 this will be a volume. In that case don't tell CAM * that the volume has timed out. We want volumes to be enumerated * until they are deleted/removed, not just failed. --- 1613,1636 ---- return; } if (targ->flags & MPS_TARGET_FLAGS_RAID_COMPONENT) { ! mps_dprint(sc, MPS_TRACE, "%s Raid component no SCSI IO " ! "supported %u\n", __func__, csio->ccb_h.target_id); csio->ccb_h.status = CAM_TID_INVALID; xpt_done(ccb); return; } /* + * Sometimes, it is possible to get a command that is not "In + * Progress" and was actually aborted by the upper layer. Check for + * this here and complete the command without error. + */ + if (ccb->ccb_h.status != CAM_REQ_INPROG) { + mps_dprint(sc, MPS_TRACE, "%s Command is not in progress for " + "target %u\n", __func__, csio->ccb_h.target_id); + xpt_done(ccb); + return; + } + /* * If devinfo is 0 this will be a volume. In that case don't tell CAM * that the volume has timed out. We want volumes to be enumerated * until they are deleted/removed, not just failed. *************** *** 1663,1669 **** break; } ! if (csio->cdb_len == 32) mpi_control |= 4 << MPI2_SCSIIO_CONTROL_ADDCDBLEN_SHIFT; /* * It looks like the hardware doesn't require an explicit tag --- 1698,1704 ---- break; } ! if (csio->cdb_len == 32) mpi_control |= 4 << MPI2_SCSIIO_CONTROL_ADDCDBLEN_SHIFT; /* * It looks like the hardware doesn't require an explicit tag *************** *** 1791,1796 **** --- 1826,1832 ---- targ->issued++; targ->outstanding++; TAILQ_INSERT_TAIL(&targ->commands, cm, cm_link); + ccb->ccb_h.status |= CAM_SIM_QUEUED; if ((sc->mps_debug & MPS_TRACE) != 0) mpssas_log_command(cm, "%s cm %p ccb %p outstanding %u\n", *************** *** 1969,1982 **** strcat(desc_scsi_state, "autosense valid "); mps_dprint(sc, MPS_INFO, "\thandle(0x%04x), ioc_status(%s)(0x%04x), \n", ! le16toh(mpi_reply->DevHandle), ! desc_ioc_state, ioc_status); /* We can add more detail about underflow data here * TO-DO * */ mps_dprint(sc, MPS_INFO, "\tscsi_status(%s)(0x%02x), " ! "scsi_state(%s)(0x%02x)\n", desc_scsi_status, ! scsi_status, desc_scsi_state, scsi_state); if (sc->mps_debug & MPS_INFO && scsi_state & MPI2_SCSI_STATE_AUTOSENSE_VALID) { --- 2005,2017 ---- strcat(desc_scsi_state, "autosense valid "); mps_dprint(sc, MPS_INFO, "\thandle(0x%04x), ioc_status(%s)(0x%04x), \n", ! le16toh(mpi_reply->DevHandle), desc_ioc_state, ioc_status); /* We can add more detail about underflow data here * TO-DO * */ mps_dprint(sc, MPS_INFO, "\tscsi_status(%s)(0x%02x), " ! "scsi_state(%s)(0x%02x)\n", desc_scsi_status, scsi_status, ! desc_scsi_state, scsi_state); if (sc->mps_debug & MPS_INFO && scsi_state & MPI2_SCSI_STATE_AUTOSENSE_VALID) { *************** *** 2033,2038 **** --- 2068,2074 ---- cm->cm_targ->completed++; cm->cm_targ->outstanding--; TAILQ_REMOVE(&cm->cm_targ->commands, cm, cm_link); + ccb->ccb_h.status |= ~(CAM_STATUS_MASK | CAM_SIM_QUEUED); if (cm->cm_state == MPS_CM_STATE_TIMEDOUT) { TAILQ_REMOVE(&cm->cm_targ->timedout_commands, cm, cm_recovery); *************** *** 2108,2114 **** ccb->ccb_h.status |= CAM_RELEASE_SIMQ; sassc->flags &= ~MPSSAS_QUEUE_FROZEN; mps_dprint(sc, MPS_INFO, ! "Unfreezing SIM queue\n"); } } --- 2144,2150 ---- ccb->ccb_h.status |= CAM_RELEASE_SIMQ; sassc->flags &= ~MPSSAS_QUEUE_FROZEN; mps_dprint(sc, MPS_INFO, ! "Unfreezing SIM queue\n"); } } *************** *** 2335,2341 **** ccb->ccb_h.status |= CAM_RELEASE_SIMQ; sassc->flags &= ~MPSSAS_QUEUE_FROZEN; mps_dprint(sc, MPS_INFO, "Command completed, " ! "unfreezing SIM queue\n"); } if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { --- 2371,2377 ---- ccb->ccb_h.status |= CAM_RELEASE_SIMQ; sassc->flags &= ~MPSSAS_QUEUE_FROZEN; mps_dprint(sc, MPS_INFO, "Command completed, " ! "unfreezing SIM queue\n"); } if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP) { *************** *** 2651,2657 **** sasaddr = le32toh(req->SASAddress.Low); sasaddr |= ((uint64_t)(le32toh(req->SASAddress.High))) << 32; ! if ((le16toh(rpl->IOCStatus) & MPI2_IOCSTATUS_MASK) != MPI2_IOCSTATUS_SUCCESS || rpl->SASStatus != MPI2_SASSTATUS_SUCCESS) { mps_dprint(sc, MPS_INFO, "%s: IOCStatus %04x SASStatus %02x\n", __func__, le16toh(rpl->IOCStatus), rpl->SASStatus); --- 2687,2694 ---- sasaddr = le32toh(req->SASAddress.Low); sasaddr |= ((uint64_t)(le32toh(req->SASAddress.High))) << 32; ! if ((le16toh(rpl->IOCStatus) & MPI2_IOCSTATUS_MASK) != ! MPI2_IOCSTATUS_SUCCESS || rpl->SASStatus != MPI2_SASSTATUS_SUCCESS) { mps_dprint(sc, MPS_INFO, "%s: IOCStatus %04x SASStatus %02x\n", __func__, le16toh(rpl->IOCStatus), rpl->SASStatus); *************** *** 2774,2780 **** MPI2_SGLFLAGS_SYSTEM_ADDRESS_SPACE | MPI2_SGLFLAGS_SGL_TYPE_MPI; mps_dprint(sc, MPS_INFO, "%s: sending SMP request to SAS " ! "address %#jx\n", __func__, (uintmax_t)sasaddr); mpi_init_sge(cm, req, &req->SGL); --- 2811,2817 ---- MPI2_SGLFLAGS_SYSTEM_ADDRESS_SPACE | MPI2_SGLFLAGS_SGL_TYPE_MPI; mps_dprint(sc, MPS_INFO, "%s: sending SMP request to SAS " ! "address %#jx\n", __func__, (uintmax_t)sasaddr); mpi_init_sge(cm, req, &req->SGL); *************** *** 2992,2998 **** sc = sassc->sc; tm = mps_alloc_command(sc); if (tm == NULL) { ! mps_printf(sc, "comand alloc failure in mpssas_action_resetdev\n"); ccb->ccb_h.status = CAM_RESRC_UNAVAIL; xpt_done(ccb); return; --- 3029,3036 ---- sc = sassc->sc; tm = mps_alloc_command(sc); if (tm == NULL) { ! mps_printf(sc, "comand alloc failure in " ! "mpssas_action_resetdev\n"); ccb->ccb_h.status = CAM_RESRC_UNAVAIL; xpt_done(ccb); return; *************** *** 3080,3193 **** } static void - mpssas_rescan_done(struct cam_periph *periph, union ccb *done_ccb) - { - struct mpssas_softc *sassc; - char path_str[64]; - - if (done_ccb == NULL) - return; - - sassc = (struct mpssas_softc *)done_ccb->ccb_h.ppriv_ptr1; - - mtx_assert(&sassc->sc->mps_mtx, MA_OWNED); - - xpt_path_string(done_ccb->ccb_h.path, path_str, sizeof(path_str)); - mps_dprint(sassc->sc, MPS_INFO, "Completing rescan for %s\n", path_str); - - xpt_free_path(done_ccb->ccb_h.path); - xpt_free_ccb(done_ccb); - - #if __FreeBSD_version < 1000006 - /* - * Before completing scan, get EEDP stuff for all of the existing - * targets. - */ - mpssas_check_eedp(sassc); - #endif - - } - - /* thread to handle bus rescans */ - static void - mpssas_scanner_thread(void *arg) - { - struct mpssas_softc *sassc; - struct mps_softc *sc; - union ccb *ccb; - - sassc = (struct mpssas_softc *)arg; - sc = sassc->sc; - - mps_dprint(sc, MPS_TRACE, "%s\n", __func__); - - mps_lock(sc); - for (;;) { - /* Sleep for 1 second and check the queue status*/ - msleep(&sassc->ccb_scanq, &sc->mps_mtx, PRIBIO, - "mps_scanq", 1 * hz); - if (sassc->flags & MPSSAS_SHUTDOWN) { - mps_dprint(sc, MPS_TRACE, "Scanner shutting down\n"); - break; - } - next_work: - // Get first work. - ccb = (union ccb *)TAILQ_FIRST(&sassc->ccb_scanq); - if (ccb == NULL) - continue; - // Got first work. - TAILQ_REMOVE(&sassc->ccb_scanq, &ccb->ccb_h, sim_links.tqe); - xpt_action(ccb); - if (sassc->flags & MPSSAS_SHUTDOWN) { - mps_dprint(sc, MPS_TRACE, "Scanner shutting down\n"); - break; - } - goto next_work; - } - - sassc->flags &= ~MPSSAS_SCANTHREAD; - wakeup(&sassc->flags); - mps_unlock(sc); - mps_dprint(sc, MPS_TRACE, "Scanner exiting\n"); - mps_kproc_exit(0); - } - - /* - * This function will send READ_CAP_16 to find out EEDP protection mode. - * It will check inquiry data before sending READ_CAP_16. - * Callback for READ_CAP_16 is "mpssas_read_cap_done". - * This is insternal scsi command and we need to take care release of devq, if - * CAM_DEV_QFRZN is set. Driver needs to release devq if it has frozen any. - * xpt_release_devq is called from mpssas_read_cap_done. - * - * All other commands will be handled by periph layer and there it will - * check for "CAM_DEV_QFRZN" and release of devq will be done. - */ - static void - mpssas_rescan(struct mpssas_softc *sassc, union ccb *ccb) - { - char path_str[64]; - - mps_dprint(sassc->sc, MPS_TRACE, "%s\n", __func__); - - mtx_assert(&sassc->sc->mps_mtx, MA_OWNED); - - if (ccb == NULL) - return; - - xpt_path_string(ccb->ccb_h.path, path_str, sizeof(path_str)); - mps_dprint(sassc->sc, MPS_INFO, "Queueing rescan for %s\n", path_str); - - /* Prepare request */ - ccb->ccb_h.ppriv_ptr1 = sassc; - ccb->ccb_h.cbfcnp = mpssas_rescan_done; - xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, MPS_PRIORITY_XPT); - TAILQ_INSERT_TAIL(&sassc->ccb_scanq, &ccb->ccb_h, sim_links.tqe); - wakeup(&sassc->ccb_scanq); - } - - #if __FreeBSD_version >= 1000006 - static void mpssas_async(void *callback_arg, uint32_t code, struct cam_path *path, void *arg) { --- 3118,3123 ---- *************** *** 3196,3201 **** --- 3126,3133 ---- sc = (struct mps_softc *)callback_arg; switch (code) { + #if (__FreeBSD_version >= 1000006) || \ + ((__FreeBSD_version >= 901503) && (__FreeBSD_version < 1000000)) case AC_ADVINFO_CHANGED: { struct mpssas_target *target; struct mpssas_softc *sassc; *************** *** 3218,3230 **** break; /* - * We're only interested in devices that are attached to - * this controller. - */ - if (xpt_path_path_id(path) != sassc->sim->path_id) - break; - - /* * We should have a handle for this, but check to make sure. */ target = &sassc->targets[xpt_path_target_id(path)]; --- 3150,3155 ---- *************** *** 3275,3452 **** } break; } default: break; } } - #else /* __FreeBSD_version >= 1000006 */ static void ! mpssas_check_eedp(struct mpssas_softc *sassc) { ! struct mps_softc *sc = sassc->sc; struct ccb_scsiio *csio; struct scsi_read_capacity_16 *scsi_cmd; struct scsi_read_capacity_eedp *rcap_buf; ! union ccb *ccb; ! path_id_t pathid = cam_sim_path(sassc->sim); target_id_t targetid; lun_id_t lunid; ! struct cam_periph *found_periph; struct mpssas_target *target; struct mpssas_lun *lun; uint8_t found_lun; - struct ccb_getdev cgd; char path_str[64]; /* ! * Issue a READ CAPACITY 16 command to each LUN of each target. This ! * info is used to determine if the LUN is formatted for EEDP support. */ ! for (targetid = 0; targetid < sc->facts->MaxTargets; targetid++) { ! target = &sassc->targets[targetid]; ! if (target->handle == 0x0) { ! continue; ! } ! lunid = 0; ! do { ! ccb = xpt_alloc_ccb_nowait(); ! if (ccb == NULL) { ! mps_dprint(sc, MPS_FAULT, "Unable to alloc CCB " ! "for EEDP support.\n"); ! return; ! } ! if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, ! pathid, targetid, lunid) != CAM_REQ_CMP) { ! mps_dprint(sc, MPS_FAULT, "Unable to create " ! "path for EEDP support\n"); ! xpt_free_ccb(ccb); ! return; ! } ! /* ! * If a periph is returned, the LUN exists. Create an ! * entry in the target's LUN list. ! */ ! if ((found_periph = cam_periph_find(ccb->ccb_h.path, ! NULL)) != NULL) { ! /* ! * If LUN is already in list, don't create a new ! * one. ! */ ! found_lun = FALSE; ! SLIST_FOREACH(lun, &target->luns, lun_link) { ! if (lun->lun_id == lunid) { ! found_lun = TRUE; ! break; ! } ! } ! if (!found_lun) { ! lun = malloc(sizeof(struct mpssas_lun), ! M_MPT2, M_NOWAIT | M_ZERO); ! if (lun == NULL) { ! mps_dprint(sc, MPS_FAULT, ! "Unable to alloc LUN for " ! "EEDP support.\n"); ! xpt_free_path(ccb->ccb_h.path); ! xpt_free_ccb(ccb); ! return; ! } ! lun->lun_id = lunid; ! SLIST_INSERT_HEAD(&target->luns, lun, ! lun_link); ! } ! lunid++; ! /* Before Issuing READ CAPACITY 16, ! * check Device type. ! */ ! xpt_setup_ccb(&cgd.ccb_h, ccb->ccb_h.path, ! CAM_PRIORITY_NORMAL); ! cgd.ccb_h.func_code = XPT_GDEV_TYPE; ! xpt_action((union ccb *)&cgd); ! /* ! * If this flag is set in the inquiry data, ! * the device supports protection information, ! * and must support the 16 byte read ! * capacity command, otherwise continue without ! * sending read cap 16 ! */ ! xpt_path_string(ccb->ccb_h.path, path_str, ! sizeof(path_str)); ! if ((cgd.inq_data.spc3_flags & ! SPC3_SID_PROTECT) == 0) { ! xpt_free_path(ccb->ccb_h.path); ! xpt_free_ccb(ccb); ! continue; ! } ! ! mps_dprint(sc, MPS_INFO, ! "Sending read cap: path %s" ! " handle %d\n", path_str, target->handle ); ! ! /* ! * Issue a READ CAPACITY 16 command for the LUN. ! * The mpssas_read_cap_done function will load ! * the read cap info into the LUN struct. ! */ ! rcap_buf = ! malloc(sizeof(struct scsi_read_capacity_eedp), ! M_MPT2, M_NOWAIT| M_ZERO); ! if (rcap_buf == NULL) { ! mps_dprint(sc, MPS_FAULT, "Unable to alloc read " ! "capacity buffer for EEDP support.\n"); ! xpt_free_path(ccb->ccb_h.path); ! xpt_free_ccb(ccb); ! return; ! } ! csio = &ccb->csio; ! csio->ccb_h.func_code = XPT_SCSI_IO; ! csio->ccb_h.flags = CAM_DIR_IN; ! csio->ccb_h.retry_count = 4; ! csio->ccb_h.cbfcnp = mpssas_read_cap_done; ! csio->ccb_h.timeout = 60000; ! csio->data_ptr = (uint8_t *)rcap_buf; ! csio->dxfer_len = sizeof(struct ! scsi_read_capacity_eedp); ! csio->sense_len = MPS_SENSE_LEN; ! csio->cdb_len = sizeof(*scsi_cmd); ! csio->tag_action = MSG_SIMPLE_Q_TAG; ! scsi_cmd = (struct scsi_read_capacity_16 *) ! &csio->cdb_io.cdb_bytes; ! bzero(scsi_cmd, sizeof(*scsi_cmd)); ! scsi_cmd->opcode = 0x9E; ! scsi_cmd->service_action = SRC16_SERVICE_ACTION; ! ((uint8_t *)scsi_cmd)[13] = sizeof(struct ! scsi_read_capacity_eedp); ! ! /* ! * Set the path, target and lun IDs for the READ ! * CAPACITY request. ! */ ! ccb->ccb_h.path_id = ! xpt_path_path_id(ccb->ccb_h.path); ! ccb->ccb_h.target_id = ! xpt_path_target_id(ccb->ccb_h.path); ! ccb->ccb_h.target_lun = ! xpt_path_lun_id(ccb->ccb_h.path); ! ! ccb->ccb_h.ppriv_ptr1 = sassc; ! xpt_action(ccb); ! } else { ! xpt_free_path(ccb->ccb_h.path); ! xpt_free_ccb(ccb); ! } ! } while (found_periph); ! } } - static void mpssas_read_cap_done(struct cam_periph *periph, union ccb *done_ccb) { --- 3200,3347 ---- } break; } + #else + case AC_FOUND_DEVICE: { + struct ccb_getdev *cgd; + + cgd = arg; + mpssas_check_eedp(sc, path, cgd); + break; + } + #endif default: break; } } + #if (__FreeBSD_version < 901503) || \ + ((__FreeBSD_version >= 1000000) && (__FreeBSD_version < 1000006)) static void ! mpssas_check_eedp(struct mps_softc *sc, struct cam_path *path, ! struct ccb_getdev *cgd) { ! struct mpssas_softc *sassc = sc->sassc; struct ccb_scsiio *csio; struct scsi_read_capacity_16 *scsi_cmd; struct scsi_read_capacity_eedp *rcap_buf; ! path_id_t pathid; target_id_t targetid; lun_id_t lunid; ! union ccb *ccb; ! struct cam_path *local_path; struct mpssas_target *target; struct mpssas_lun *lun; uint8_t found_lun; char path_str[64]; + sassc = sc->sassc; + pathid = cam_sim_path(sassc->sim); + targetid = xpt_path_target_id(path); + lunid = xpt_path_lun_id(path); + + target = &sassc->targets[targetid]; + if (target->handle == 0x0) + return; + /* ! * Determine if the device is EEDP capable. ! * ! * If this flag is set in the inquiry data, ! * the device supports protection information, ! * and must support the 16 byte read ! * capacity command, otherwise continue without ! * sending read cap 16 */ ! if ((cgd->inq_data.spc3_flags & SPC3_SID_PROTECT) == 0) ! return; ! /* ! * Issue a READ CAPACITY 16 command. This info ! * is used to determine if the LUN is formatted ! * for EEDP support. ! */ ! ccb = xpt_alloc_ccb_nowait(); ! if (ccb == NULL) { ! mps_dprint(sc, MPS_FAULT, ! "Unable to alloc CCB for EEDP support.\n"); ! return; ! } ! if (xpt_create_path(&local_path, xpt_periph, ! pathid, targetid, lunid) != CAM_REQ_CMP) { ! mps_dprint(sc, MPS_FAULT, ! "Unable to create path for EEDP support\n"); ! xpt_free_ccb(ccb); ! return; ! } ! /* ! * If LUN is already in list, don't create a new ! * one. ! */ ! found_lun = FALSE; ! SLIST_FOREACH(lun, &target->luns, lun_link) { ! if (lun->lun_id == lunid) { ! found_lun = TRUE; ! break; ! } ! } ! if (!found_lun) { ! lun = malloc(sizeof(struct mpssas_lun), M_MPT2, ! M_NOWAIT | M_ZERO); ! if (lun == NULL) { ! mps_dprint(sc, MPS_FAULT, ! "Unable to alloc LUN for EEDP support.\n"); ! xpt_free_path(local_path); ! xpt_free_ccb(ccb); ! return; ! } ! lun->lun_id = lunid; ! SLIST_INSERT_HEAD(&target->luns, lun, ! lun_link); ! } ! xpt_path_string(local_path, path_str, sizeof(path_str)); ! mps_dprint(sc, MPS_INFO, "Sending read cap: path %s handle %d\n", ! path_str, target->handle); ! /* ! * Issue a READ CAPACITY 16 command for the LUN. ! * The mpssas_read_cap_done function will load ! * the read cap info into the LUN struct. ! */ ! rcap_buf = malloc(sizeof(struct scsi_read_capacity_eedp), ! M_MPT2, M_NOWAIT | M_ZERO); ! if (rcap_buf == NULL) { ! mps_dprint(sc, MPS_FAULT, ! "Unable to alloc read capacity buffer for EEDP support.\n"); ! xpt_free_path(ccb->ccb_h.path); ! xpt_free_ccb(ccb); ! return; ! } ! xpt_setup_ccb(&ccb->ccb_h, local_path, CAM_PRIORITY_XPT); ! csio = &ccb->csio; ! csio->ccb_h.func_code = XPT_SCSI_IO; ! csio->ccb_h.flags = CAM_DIR_IN; ! csio->ccb_h.retry_count = 4; ! csio->ccb_h.cbfcnp = mpssas_read_cap_done; ! csio->ccb_h.timeout = 60000; ! csio->data_ptr = (uint8_t *)rcap_buf; ! csio->dxfer_len = sizeof(struct scsi_read_capacity_eedp); ! csio->sense_len = MPS_SENSE_LEN; ! csio->cdb_len = sizeof(*scsi_cmd); ! csio->tag_action = MSG_SIMPLE_Q_TAG; ! scsi_cmd = (struct scsi_read_capacity_16 *)&csio->cdb_io.cdb_bytes; ! bzero(scsi_cmd, sizeof(*scsi_cmd)); ! scsi_cmd->opcode = 0x9E; ! scsi_cmd->service_action = SRC16_SERVICE_ACTION; ! ((uint8_t *)scsi_cmd)[13] = sizeof(struct scsi_read_capacity_eedp); ! ccb->ccb_h.ppriv_ptr1 = sassc; ! xpt_action(ccb); } static void mpssas_read_cap_done(struct cam_periph *periph, union ccb *done_ccb) { *************** *** 3499,3504 **** --- 3394,3403 ---- } if (rcap_buf->protect & 0x01) { + mps_dprint(sassc->sc, MPS_INFO, "LUN %d for " + "target ID %d is formatted for EEDP " + "support.\n", done_ccb->ccb_h.target_lun, + done_ccb->ccb_h.target_id); lun->eedp_formatted = TRUE; lun->eedp_block_size = scsi_4btoul(rcap_buf->length); } *************** *** 3510,3516 **** xpt_free_path(done_ccb->ccb_h.path); xpt_free_ccb(done_ccb); } ! #endif /* __FreeBSD_version >= 1000006 */ int mpssas_startup(struct mps_softc *sc) --- 3409,3416 ---- xpt_free_path(done_ccb->ccb_h.path); xpt_free_ccb(done_ccb); } ! #endif /* (__FreeBSD_version < 901503) || \ ! ((__FreeBSD_version >= 1000000) && (__FreeBSD_version < 1000006)) */ int mpssas_startup(struct mps_softc *sc) *** src/sys/dev/mps/mps_sas.h.orig --- src/sys/dev/mps/mps_sas.h *************** *** 87,93 **** #define MPSSAS_DISCOVERY_TIMEOUT_PENDING (1 << 2) #define MPSSAS_QUEUE_FROZEN (1 << 3) #define MPSSAS_SHUTDOWN (1 << 4) - #define MPSSAS_SCANTHREAD (1 << 5) struct mpssas_target *targets; struct cam_devq *devq; struct cam_sim *sim; --- 87,92 ---- *************** *** 101,109 **** u_int tm_count; struct proc *sysctl_proc; - TAILQ_HEAD(, ccb_hdr) ccb_scanq; - struct proc *rescan_thread; - struct taskqueue *ev_tq; struct task ev_task; TAILQ_HEAD(, mps_fw_event_work) ev_queue; --- 100,105 ---- *** src/sys/dev/mps/mps_sas_lsi.c.orig --- src/sys/dev/mps/mps_sas_lsi.c *************** *** 699,705 **** --- 699,709 ---- mps_dprint(sc, MPS_INFO, "Found device <%s> <%s> <0x%04x> <%d/%d>\n", devstring, mps_describe_table(mps_linkrate_names, targ->linkrate), targ->handle, targ->encl_handle, targ->encl_slot); + + #if ((__FreeBSD_version < 9010506) || \ + ((__FreeBSD_version >= 1000000) && (__FreeBSD_version < 1000036))) if ((sassc->flags & MPSSAS_IN_STARTUP) == 0) + #endif mpssas_rescan_target(sc, targ); mps_dprint(sc, MPS_INFO, "Target id 0x%x added\n", targ->tid); out: *************** *** 818,829 **** cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = buffer; cm->cm_length = htole32(sz); ! error = mps_request_polled(sc, cm); reply = (Mpi2SataPassthroughReply_t *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* If the poll returns error then we need to do diag reset */ ! printf("%s: poll for page completed with error %d", __func__, error); error = ENXIO; goto out; --- 822,836 ---- cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; cm->cm_data = buffer; cm->cm_length = htole32(sz); ! error = mps_wait_command(sc, cm, 60, CAN_SLEEP); reply = (Mpi2SataPassthroughReply_t *)cm->cm_reply; if (error || (reply == NULL)) { /* FIXME */ ! /* ! * If the request returns an error then we need to do a diag ! * reset ! */ ! printf("%s: request for page completed with error %d", __func__, error); error = ENXIO; goto out; *************** *** 955,961 **** action->Action = MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; mps_lock(sc); ! mps_request_polled(sc, cm); mps_unlock(sc); /* --- 962,968 ---- action->Action = MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; mps_lock(sc); ! mps_wait_command(sc, cm, 5, CAN_SLEEP); mps_unlock(sc); /* *** src/sys/dev/mps/mps_user.c.orig --- src/sys/dev/mps/mps_user.c *************** *** 672,678 **** cm = mps_alloc_command(sc); if (cm == NULL) { ! mps_printf(sc, "mps_user_command: no mps requests\n"); err = ENOMEM; goto Ret; } --- 672,678 ---- cm = mps_alloc_command(sc); if (cm == NULL) { ! mps_printf(sc, "%s: no mps requests\n", __func__); err = ENOMEM; goto Ret; } *************** *** 680,687 **** hdr = (MPI2_REQUEST_HEADER *)cm->cm_req; ! mps_dprint(sc, MPS_INFO, "mps_user_command: req %p %d rpl %p %d\n", ! cmd->req, cmd->req_len, cmd->rpl, cmd->rpl_len ); if (cmd->req_len > (int)sc->facts->IOCRequestFrameSize * 4) { err = EINVAL; --- 680,687 ---- hdr = (MPI2_REQUEST_HEADER *)cm->cm_req; ! mps_dprint(sc, MPS_INFO, "%s: req %p %d rpl %p %d\n", __func__, ! cmd->req, cmd->req_len, cmd->rpl, cmd->rpl_len); if (cmd->req_len > (int)sc->facts->IOCRequestFrameSize * 4) { err = EINVAL; *************** *** 691,698 **** if (err != 0) goto RetFreeUnlocked; ! mps_dprint(sc, MPS_INFO, "mps_user_command: Function %02X " ! "MsgFlags %02X\n", hdr->Function, hdr->MsgFlags ); err = mps_user_setup_request(cm, cmd); if (err != 0) { --- 691,698 ---- if (err != 0) goto RetFreeUnlocked; ! mps_dprint(sc, MPS_INFO, "%s: Function %02X MsgFlags %02X\n", __func__, ! hdr->Function, hdr->MsgFlags); err = mps_user_setup_request(cm, cmd); if (err != 0) { *************** *** 718,725 **** cm->cm_flags = MPS_CM_FLAGS_SGE_SIMPLE; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; mps_lock(sc); ! err = mps_wait_command(sc, cm, 30); if (err) { mps_printf(sc, "%s: invalid request: error %d\n", --- 718,734 ---- cm->cm_flags = MPS_CM_FLAGS_SGE_SIMPLE; cm->cm_desc.Default.RequestFlags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; + err = mps_user_setup_request(cm, cmd); + if (err == EINVAL) { + mps_printf(sc, "%s: unsupported parameter or unsupported " + "function in request (function = 0x%X)\n", __func__, + hdr->Function); + } + if (err != 0) + goto RetFreeUnlocked; + mps_lock(sc); ! err = mps_wait_command(sc, cm, 60, CAN_SLEEP); if (err) { mps_printf(sc, "%s: invalid request: error %d\n", *************** *** 731,740 **** sz = rpl->MsgLength * 4; if (sz > cmd->rpl_len) { ! mps_printf(sc, ! "mps_user_command: reply buffer too small %d required %d\n", ! cmd->rpl_len, sz ); ! err = EINVAL; sz = cmd->rpl_len; } --- 740,747 ---- sz = rpl->MsgLength * 4; if (sz > cmd->rpl_len) { ! mps_printf(sc, "%s: user reply buffer (%d) smaller than " ! "returned buffer (%d)\n", __func__, cmd->rpl_len, sz); sz = cmd->rpl_len; } *************** *** 742,748 **** copyout(rpl, cmd->rpl, sz); if (buf != NULL) copyout(buf, cmd->buf, cmd->len); ! mps_dprint(sc, MPS_INFO, "mps_user_command: reply size %d\n", sz ); RetFreeUnlocked: mps_lock(sc); --- 749,755 ---- copyout(rpl, cmd->rpl, sz); if (buf != NULL) copyout(buf, cmd->buf, cmd->len); ! mps_dprint(sc, MPS_INFO, "%s: reply size %d\n", __func__, sz); RetFreeUnlocked: mps_lock(sc); *************** *** 849,855 **** cm->cm_complete = NULL; cm->cm_complete_data = NULL; ! err = mps_wait_command(sc, cm, 30); if (err != 0) { err = EIO; --- 856,862 ---- cm->cm_complete = NULL; cm->cm_complete_data = NULL; ! err = mps_wait_command(sc, cm, 30, CAN_SLEEP); if (err != 0) { err = EIO; *************** *** 864,878 **** sz = rpl->MsgLength * 4; if (sz > data->ReplySize) { ! mps_printf(sc, "%s: reply buffer too small: %d, " ! "required: %d\n", __func__, data->ReplySize, sz); ! err = EINVAL; ! } else { ! mps_unlock(sc); ! copyout(cm->cm_reply, PTRIN(data->PtrReply), ! data->ReplySize); ! mps_lock(sc); } } mpssas_free_tm(sc, cm); goto Ret; --- 871,884 ---- sz = rpl->MsgLength * 4; if (sz > data->ReplySize) { ! mps_printf(sc, "%s: user reply buffer (%d) " ! "smaller than returned buffer (%d)\n", ! __func__, data->ReplySize, sz); } + mps_unlock(sc); + copyout(cm->cm_reply, PTRIN(data->PtrReply), + data->ReplySize); + mps_lock(sc); } mpssas_free_tm(sc, cm); goto Ret; *************** *** 986,992 **** mps_lock(sc); ! err = mps_wait_command(sc, cm, 30); if (err) { mps_printf(sc, "%s: invalid request: error %d\n", __func__, --- 992,998 ---- mps_lock(sc); ! err = mps_wait_command(sc, cm, 30, CAN_SLEEP); if (err) { mps_printf(sc, "%s: invalid request: error %d\n", __func__, *************** *** 1025,1039 **** sz = rpl->MsgLength * 4; if (sz > data->ReplySize) { ! mps_printf(sc, "%s: reply buffer too small: %d, " ! "required: %d\n", __func__, data->ReplySize, sz); ! err = EINVAL; ! } else { ! mps_unlock(sc); ! copyout(cm->cm_reply, PTRIN(data->PtrReply), ! data->ReplySize); ! mps_lock(sc); } if ((function == MPI2_FUNCTION_SCSI_IO_REQUEST) || (function == MPI2_FUNCTION_RAID_SCSI_IO_PASSTHROUGH)) { --- 1031,1043 ---- sz = rpl->MsgLength * 4; if (sz > data->ReplySize) { ! mps_printf(sc, "%s: user reply buffer (%d) smaller " ! "than returned buffer (%d)\n", __func__, ! data->ReplySize, sz); } + mps_unlock(sc); + copyout(cm->cm_reply, PTRIN(data->PtrReply), data->ReplySize); + mps_lock(sc); if ((function == MPI2_FUNCTION_SCSI_IO_REQUEST) || (function == MPI2_FUNCTION_RAID_SCSI_IO_PASSTHROUGH)) { *************** *** 1203,1209 **** /* * Send command synchronously. */ ! status = mps_wait_command(sc, cm, 30); if (status) { mps_printf(sc, "%s: invalid request: error %d\n", __func__, status); --- 1207,1213 ---- /* * Send command synchronously. */ ! status = mps_wait_command(sc, cm, 30, CAN_SLEEP); if (status) { mps_printf(sc, "%s: invalid request: error %d\n", __func__, status); *************** *** 1252,1259 **** */ *return_code = MPS_FW_DIAG_ERROR_RELEASE_FAILED; if (!pBuffer->enabled) { ! mps_dprint(sc, MPS_INFO, "%s: This buffer type is not supported " ! "by the IOC", __func__); return (MPS_DIAG_FAILURE); } --- 1256,1263 ---- */ *return_code = MPS_FW_DIAG_ERROR_RELEASE_FAILED; if (!pBuffer->enabled) { ! mps_dprint(sc, MPS_INFO, "%s: This buffer type is not " ! "supported by the IOC", __func__); return (MPS_DIAG_FAILURE); } *************** *** 1287,1293 **** /* * Send command synchronously. */ ! status = mps_wait_command(sc, cm, 30); if (status) { mps_printf(sc, "%s: invalid request: error %d\n", __func__, status); --- 1291,1297 ---- /* * Send command synchronously. */ ! status = mps_wait_command(sc, cm, 30, CAN_SLEEP); if (status) { mps_printf(sc, "%s: invalid request: error %d\n", __func__, status); *** src/sys/dev/mps/mpsvar.h.orig --- src/sys/dev/mps/mpsvar.h *************** *** 26,38 **** * * LSI MPT-Fusion Host Adapter FreeBSD * ! * $FreeBSD: stable/9/sys/dev/mps/mpsvar.h 251874 2013-06-18 00:36:53Z scottl $ */ #ifndef _MPSVAR_H #define _MPSVAR_H ! #define MPS_DRIVER_VERSION "14.00.00.01-fbsd" #define MPS_DB_MAX_WAIT 2500 --- 26,38 ---- * * LSI MPT-Fusion Host Adapter FreeBSD * ! * $FreeBSD: head/sys/dev/mps/mpsvar.h 246713 2013-02-12 16:57:20Z kib $ */ #ifndef _MPSVAR_H #define _MPSVAR_H ! #define MPS_DRIVER_VERSION "16.00.00.00-fbsd" #define MPS_DB_MAX_WAIT 2500 *************** *** 304,310 **** bus_dma_tag_t buffer_dmat; MPI2_IOC_FACTS_REPLY *facts; - MPI2_PORT_FACTS_REPLY *pfacts; int num_reqs; int num_replies; int fqdepth; /* Free queue */ --- 304,309 ---- *************** *** 628,642 **** static __inline void mps_from_u64(uint64_t data, U64 *mps) { ! (mps)->High = (uint32_t)((data) >> 32); ! (mps)->Low = (uint32_t)((data) & 0xffffffff); } static __inline uint64_t mps_to_u64(U64 *data) { ! return (((uint64_t)data->High << 32) | data->Low); } static __inline void --- 627,641 ---- static __inline void mps_from_u64(uint64_t data, U64 *mps) { ! (mps)->High = htole32((uint32_t)((data) >> 32)); ! (mps)->Low = htole32((uint32_t)((data) & 0xffffffff)); } static __inline uint64_t mps_to_u64(U64 *data) { ! return (((uint64_t)le32toh(data->High) << 32) | le32toh(data->Low)); } static __inline void *************** *** 686,692 **** MPI2_EVENT_NOTIFICATION_REPLY *event_reply); int mps_map_command(struct mps_softc *sc, struct mps_command *cm); ! int mps_wait_command(struct mps_softc *sc, struct mps_command *cm, int timeout); int mps_request_polled(struct mps_softc *sc, struct mps_command *cm); int mps_config_get_bios_pg3(struct mps_softc *sc, Mpi2ConfigReply_t --- 685,692 ---- MPI2_EVENT_NOTIFICATION_REPLY *event_reply); int mps_map_command(struct mps_softc *sc, struct mps_command *cm); ! int mps_wait_command(struct mps_softc *sc, struct mps_command *cm, int timeout, ! int sleep_flag); int mps_request_polled(struct mps_softc *sc, struct mps_command *cm); int mps_config_get_bios_pg3(struct mps_softc *sc, Mpi2ConfigReply_t *** src/sys/sys/param.h.orig --- src/sys/sys/param.h *************** *** 58,64 **** * in the range 5 to 9. */ #undef __FreeBSD_version ! #define __FreeBSD_version 901505 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, --- 58,64 ---- * in the range 5 to 9. */ #undef __FreeBSD_version ! #define __FreeBSD_version 901506 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, --k1lZvvs/B4yU6o8G-- From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 19:16:56 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8058C571; Mon, 12 Aug 2013 19:16:56 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6DB5B2570; Mon, 12 Aug 2013 19:16:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CJGu3M038005; Mon, 12 Aug 2013 19:16:56 GMT (envelope-from scottl@svn.freebsd.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CJGuHj038004; Mon, 12 Aug 2013 19:16:56 GMT (envelope-from scottl@svn.freebsd.org) Message-Id: <201308121916.r7CJGuHj038004@svn.freebsd.org> From: Scott Long Date: Mon, 12 Aug 2013 19:16:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254253 - head/sys/dev/mps X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 19:16:56 -0000 Author: scottl Date: Mon Aug 12 19:16:55 2013 New Revision: 254253 URL: http://svnweb.freebsd.org/changeset/base/254253 Log: r253460 accidentally some moderately expensive debugging code, even when debugging isn't enabled. Work around this. Submitted by: mav Obtained from: Netflix MFC after: 3 days Modified: head/sys/dev/mps/mps_sas.c Modified: head/sys/dev/mps/mps_sas.c ============================================================================== --- head/sys/dev/mps/mps_sas.c Mon Aug 12 18:17:45 2013 (r254252) +++ head/sys/dev/mps/mps_sas.c Mon Aug 12 19:16:55 2013 (r254253) @@ -307,6 +307,10 @@ mpssas_log_command(struct mps_command *c if (cm == NULL) return; + /* No need to be in here if debugging isn't enabled */ + if (cm->cm_sc->mps_debug & level) == 0) + return; + sbuf_new(&sb, str, sizeof(str), 0); va_start(ap, fmt); From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 20:17:38 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5DB3C17C; Mon, 12 Aug 2013 20:17:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4A5C328C7; Mon, 12 Aug 2013 20:17:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CKHcYW061260; Mon, 12 Aug 2013 20:17:38 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CKHcDv061259; Mon, 12 Aug 2013 20:17:38 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308122017.r7CKHcDv061259@svn.freebsd.org> From: Alexander Motin Date: Mon, 12 Aug 2013 20:17:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254257 - head/sys/dev/mps X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 20:17:38 -0000 Author: mav Date: Mon Aug 12 20:17:37 2013 New Revision: 254257 URL: http://svnweb.freebsd.org/changeset/base/254257 Log: Add brace missing in r254253. Modified: head/sys/dev/mps/mps_sas.c Modified: head/sys/dev/mps/mps_sas.c ============================================================================== --- head/sys/dev/mps/mps_sas.c Mon Aug 12 19:50:08 2013 (r254256) +++ head/sys/dev/mps/mps_sas.c Mon Aug 12 20:17:37 2013 (r254257) @@ -308,7 +308,7 @@ mpssas_log_command(struct mps_command *c return; /* No need to be in here if debugging isn't enabled */ - if (cm->cm_sc->mps_debug & level) == 0) + if ((cm->cm_sc->mps_debug & level) == 0) return; sbuf_new(&sb, str, sizeof(str), 0); From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 21:01:02 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2D5ACD1A; Mon, 12 Aug 2013 21:01:02 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1A6A82B74; Mon, 12 Aug 2013 21:01:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CL11eC079044; Mon, 12 Aug 2013 21:01:01 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CL114L079043; Mon, 12 Aug 2013 21:01:01 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201308122101.r7CL114L079043@svn.freebsd.org> From: Edward Tomasz Napierala Date: Mon, 12 Aug 2013 21:01:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254259 - head/usr.bin/su X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 21:01:02 -0000 Author: trasz Date: Mon Aug 12 21:01:01 2013 New Revision: 254259 URL: http://svnweb.freebsd.org/changeset/base/254259 Log: Make check for unknown login class actually work. Previously, using the "-c" option with login class not defined in login.conf(5) would silently fail, resulting in using the default login class. Modified: head/usr.bin/su/su.c Modified: head/usr.bin/su/su.c ============================================================================== --- head/usr.bin/su/su.c Mon Aug 12 20:27:24 2013 (r254258) +++ head/usr.bin/su/su.c Mon Aug 12 21:01:01 2013 (r254259) @@ -373,6 +373,8 @@ main(int argc, char *argv[]) } lc = login_getclass(class); if (lc == NULL) + err(1, "login_getclass"); + if (lc->lc_class == NULL || strcmp(class, lc->lc_class) != 0) errx(1, "unknown class: %s", class); } From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 21:34:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E6D05387; Mon, 12 Aug 2013 21:34:51 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C01F82D31; Mon, 12 Aug 2013 21:34:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CLYpCq091460; Mon, 12 Aug 2013 21:34:51 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CLYnBR091429; Mon, 12 Aug 2013 21:34:49 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201308122134.r7CLYnBR091429@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Mon, 12 Aug 2013 21:34:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254260 - in head/sys: conf fs/ext2fs modules/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 21:34:52 -0000 Author: pfg Date: Mon Aug 12 21:34:48 2013 New Revision: 254260 URL: http://svnweb.freebsd.org/changeset/base/254260 Log: Add read-only support for extents in ext2fs. Basic support for extents was implemented by Zheng Liu as part of his Google Summer of Code in 2010. This support is read-only at this time. In addition to extents we also support the huge_file extension for read-only purposes. This works nicely with the additional support for birthtime/nanosec timestamps and dir_index that have been added lately. The implementation may not work for all ext4 filesystems as it doesn't support some features that are being enabled by default on recent linux like flex_bg. Nevertheless, the feature should be very useful for migration or simple access in filesystems that have been converted from ext2/3 or don't use incompatible features. Special thanks to Zheng Liu for his dedication and continued work to support ext2 in FreeBSD. Submitted by: Zheng Liu (lz@) Reviewed by: Mike Ma, Christoph Mallon (previous version) Sponsored by: Google Inc. MFC after: 3 weeks Added: head/sys/fs/ext2fs/ext2_extents.c (contents, props changed) head/sys/fs/ext2fs/ext2_extents.h (contents, props changed) Modified: head/sys/conf/files head/sys/fs/ext2fs/ext2_bmap.c head/sys/fs/ext2fs/ext2_dinode.h head/sys/fs/ext2fs/ext2_extern.h head/sys/fs/ext2fs/ext2_inode_cnv.c head/sys/fs/ext2fs/ext2_subr.c head/sys/fs/ext2fs/ext2_vfsops.c head/sys/fs/ext2fs/ext2_vnops.c head/sys/fs/ext2fs/ext2fs.h head/sys/fs/ext2fs/inode.h head/sys/modules/ext2fs/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/conf/files Mon Aug 12 21:34:48 2013 (r254260) @@ -2714,6 +2714,7 @@ geom/zero/g_zero.c optional geom_zero fs/ext2fs/ext2_alloc.c optional ext2fs fs/ext2fs/ext2_balloc.c optional ext2fs fs/ext2fs/ext2_bmap.c optional ext2fs +fs/ext2fs/ext2_extents.c optional ext2fs fs/ext2fs/ext2_inode.c optional ext2fs fs/ext2fs/ext2_inode_cnv.c optional ext2fs fs/ext2fs/ext2_hash.c optional ext2fs Modified: head/sys/fs/ext2fs/ext2_bmap.c ============================================================================== --- head/sys/fs/ext2fs/ext2_bmap.c Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_bmap.c Mon Aug 12 21:34:48 2013 (r254260) @@ -46,10 +46,14 @@ #include #include +#include #include +#include #include #include +static int ext4_bmapext(struct vnode *, int32_t, int64_t *, int *, int *); + /* * Bmap converts the logical block number of a file to its physical block * number on the disk. The conversion is done by using the logical block @@ -58,7 +62,7 @@ int ext2_bmap(struct vop_bmap_args *ap) { - int32_t blkno; + int64_t blkno; int error; /* @@ -70,13 +74,57 @@ ext2_bmap(struct vop_bmap_args *ap) if (ap->a_bnp == NULL) return (0); - error = ext2_bmaparray(ap->a_vp, ap->a_bn, &blkno, - ap->a_runp, ap->a_runb); + if (VTOI(ap->a_vp)->i_flags & EXT4_EXTENTS) + error = ext4_bmapext(ap->a_vp, ap->a_bn, &blkno, + ap->a_runp, ap->a_runb); + else + error = ext2_bmaparray(ap->a_vp, ap->a_bn, &blkno, + ap->a_runp, ap->a_runb); *ap->a_bnp = blkno; return (error); } /* + * This function converts the logical block number of a file to + * its physical block number on the disk within ext4 extents. + */ +static int +ext4_bmapext(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb) +{ + struct inode *ip; + struct m_ext2fs *fs; + struct ext4_extent *ep; + struct ext4_extent_path path; + daddr_t lbn; + + ip = VTOI(vp); + fs = ip->i_e2fs; + lbn = bn; + + /* + * TODO: need to implement read ahead to improve the performance. + */ + if (runp != NULL) + *runp = 0; + + if (runb != NULL) + *runb = 0; + + ext4_ext_find_extent(fs, ip, lbn, &path); + ep = path.ep_ext; + if (ep == NULL) + return (EIO); + + *bnp = fsbtodb(fs, lbn - ep->e_blk + + (ep->e_start_lo | (daddr_t)ep->e_start_hi << 32)); + + if (*bnp == 0) + *bnp = -1; + + return (0); +} + +/* * Indirect blocks are now on the vnode for the file. They are given negative * logical block numbers. Indirect blocks are addressed by the negative * address of the first data block to which they point. Double indirect blocks @@ -91,7 +139,7 @@ ext2_bmap(struct vop_bmap_args *ap) */ int -ext2_bmaparray(struct vnode *vp, int32_t bn, int32_t *bnp, int *runp, int *runb) +ext2_bmaparray(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb) { struct inode *ip; struct buf *bp; Modified: head/sys/fs/ext2fs/ext2_dinode.h ============================================================================== --- head/sys/fs/ext2fs/ext2_dinode.h Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_dinode.h Mon Aug 12 21:34:48 2013 (r254260) @@ -79,6 +79,8 @@ #define E2DI_HAS_XTIME(ip) (EXT2_HAS_RO_COMPAT_FEATURE(ip->i_e2fs, \ EXT2F_ROCOMPAT_EXTRA_ISIZE)) +#define E2DI_HAS_HUGE_FILE(ip) (EXT2_HAS_RO_COMPAT_FEATURE(ip->i_e2fs, \ + EXT2F_ROCOMPAT_HUGE_FILE)) /* * Constants relative to the data blocks Added: head/sys/fs/ext2fs/ext2_extents.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/fs/ext2fs/ext2_extents.c Mon Aug 12 21:34:48 2013 (r254260) @@ -0,0 +1,177 @@ +/*- + * Copyright (c) 2010 Zheng Liu + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +static void ext4_ext_binsearch_index(struct inode *ip, struct ext4_extent_path + *path, daddr_t lbn) +{ + struct ext4_extent_header *ehp = path->ep_header; + struct ext4_extent_index *l, *r, *m; + + l = (struct ext4_extent_index *)(char *)(ehp + 1); + r = (struct ext4_extent_index *)(char *)(ehp + 1) + ehp->eh_ecount - 1; + while (l <= r) { + m = l + (r - l) / 2; + if (lbn < m->ei_blk) + r = m - 1; + else + l = m + 1; + } + + path->ep_index = l - 1; +} + +static void +ext4_ext_binsearch(struct inode *ip, struct ext4_extent_path *path, daddr_t lbn) +{ + struct ext4_extent_header *ehp = path->ep_header; + struct ext4_extent *l, *r, *m; + + if (ehp->eh_ecount == 0) + return; + + l = (struct ext4_extent *)(char *)(ehp + 1); + r = (struct ext4_extent *)(char *)(ehp + 1) + ehp->eh_ecount - 1; + while (l <= r) { + m = l + (r - l) / 2; + if (lbn < m->e_blk) + r = m - 1; + else + l = m + 1; + } + + path->ep_ext = l - 1; +} + +/* + * Find a block in ext4 extent cache. + */ +int +ext4_ext_in_cache(struct inode *ip, daddr_t lbn, struct ext4_extent *ep) +{ + struct ext4_extent_cache *ecp; + int ret = EXT4_EXT_CACHE_NO; + + ecp = &ip->i_ext_cache; + + /* cache is invalid */ + if (ecp->ec_type == EXT4_EXT_CACHE_NO) + return (ret); + + if (lbn >= ecp->ec_blk && lbn < ecp->ec_blk + ecp->ec_len) { + ep->e_blk = ecp->ec_blk; + ep->e_start_lo = ecp->ec_start & 0xffffffff; + ep->e_start_hi = ecp->ec_start >> 32 & 0xffff; + ep->e_len = ecp->ec_len; + ret = ecp->ec_type; + } + return (ret); +} + +/* + * Put an ext4_extent structure in ext4 cache. + */ +void +ext4_ext_put_cache(struct inode *ip, struct ext4_extent *ep, int type) +{ + struct ext4_extent_cache *ecp; + + ecp = &ip->i_ext_cache; + ecp->ec_type = type; + ecp->ec_blk = ep->e_blk; + ecp->ec_len = ep->e_len; + ecp->ec_start = (daddr_t)ep->e_start_hi << 32 | ep->e_start_lo; +} + +/* + * Find an extent. + */ +struct ext4_extent_path * +ext4_ext_find_extent(struct m_ext2fs *fs, struct inode *ip, + daddr_t lbn, struct ext4_extent_path *path) +{ + struct vnode *vp; + struct ext4_extent_header *ehp; + uint16_t i; + int error, size; + daddr_t nblk; + + vp = ITOV(ip); + ehp = (struct ext4_extent_header *)(char *)ip->i_db; + + if (ehp->eh_magic != EXT4_EXT_MAGIC) + return (NULL); + + path->ep_header = ehp; + + for (i = ehp->eh_depth; i != 0; --i) { + ext4_ext_binsearch_index(ip, path, lbn); + path->ep_depth = 0; + path->ep_ext = NULL; + + nblk = (daddr_t)path->ep_index->ei_leaf_hi << 32 | + path->ep_index->ei_leaf_lo; + size = blksize(fs, ip, nblk); + if (path->ep_bp != NULL) { + brelse(path->ep_bp); + path->ep_bp = NULL; + } + error = bread(ip->i_devvp, fsbtodb(fs, nblk), size, NOCRED, + &path->ep_bp); + if (error) { + brelse(path->ep_bp); + path->ep_bp = NULL; + return (NULL); + } + ehp = (struct ext4_extent_header *)path->ep_bp->b_data; + path->ep_header = ehp; + } + + path->ep_depth = i; + path->ep_ext = NULL; + path->ep_index = NULL; + + ext4_ext_binsearch(ip, path, lbn); + return (path); +} Added: head/sys/fs/ext2fs/ext2_extents.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/fs/ext2fs/ext2_extents.h Mon Aug 12 21:34:48 2013 (r254260) @@ -0,0 +1,99 @@ +/*- + * Copyright (c) 2012, 2010 Zheng Liu + * 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 _FS_EXT2FS_EXT2_EXTENTS_H_ +#define _FS_EXT2FS_EXT2_EXTENTS_H_ + +#include + +#define EXT4_EXT_MAGIC 0xf30a + +#define EXT4_EXT_CACHE_NO 0 +#define EXT4_EXT_CACHE_GAP 1 +#define EXT4_EXT_CACHE_IN 2 + +/* + * Ext4 file system extent on disk. + */ +struct ext4_extent { + uint32_t e_blk; /* first logical block */ + uint16_t e_len; /* number of blocks */ + uint16_t e_start_hi; /* high 16 bits of physical block */ + uint32_t e_start_lo; /* low 32 bits of physical block */ +}; + +/* + * Extent index on disk. + */ +struct ext4_extent_index { + uint32_t ei_blk; /* indexes logical blocks */ + uint32_t ei_leaf_lo; /* points to physical block of the + * next level */ + uint16_t ei_leaf_hi; /* high 16 bits of physical block */ + uint16_t ei_unused; +}; + +/* + * Extent tree header. + */ +struct ext4_extent_header { + uint16_t eh_magic; /* magic number: 0xf30a */ + uint16_t eh_ecount; /* number of valid entries */ + uint16_t eh_max; /* capacity of store in entries */ + uint16_t eh_depth; /* the depth of extent tree */ + uint32_t eh_gen; /* generation of extent tree */ +}; + +/* + * Save cached extent. + */ +struct ext4_extent_cache { + daddr_t ec_start; /* extent start */ + uint32_t ec_blk; /* logical block */ + uint32_t ec_len; + uint32_t ec_type; +}; + +/* + * Save path to some extent. + */ +struct ext4_extent_path { + uint16_t ep_depth; + struct buf *ep_bp; + struct ext4_extent *ep_ext; + struct ext4_extent_index *ep_index; + struct ext4_extent_header *ep_header; +}; + +struct inode; +struct m_ext2fs; +int ext4_ext_in_cache(struct inode *, daddr_t, struct ext4_extent *); +void ext4_ext_put_cache(struct inode *, struct ext4_extent *, int); +struct ext4_extent_path *ext4_ext_find_extent(struct m_ext2fs *fs, + struct inode *, daddr_t, struct ext4_extent_path *); + +#endif /* !_FS_EXT2FS_EXT2_EXTENTS_H_ */ Modified: head/sys/fs/ext2fs/ext2_extern.h ============================================================================== --- head/sys/fs/ext2fs/ext2_extern.h Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_extern.h Mon Aug 12 21:34:48 2013 (r254260) @@ -57,7 +57,7 @@ int ext2_blkatoff(struct vnode *, off_t, void ext2_blkfree(struct inode *, int32_t, long); int32_t ext2_blkpref(struct inode *, e2fs_lbn_t, int, int32_t *, int32_t); int ext2_bmap(struct vop_bmap_args *); -int ext2_bmaparray(struct vnode *, int32_t, int32_t *, int *, int *); +int ext2_bmaparray(struct vnode *, int32_t, int64_t *, int *, int *); void ext2_clusteracct(struct m_ext2fs *, char *, int, daddr_t, int); void ext2_dirbad(struct inode *ip, doff_t offset, char *how); void ext2_ei2i(struct ext2fs_dinode *, struct inode *); Modified: head/sys/fs/ext2fs/ext2_inode_cnv.c ============================================================================== --- head/sys/fs/ext2fs/ext2_inode_cnv.c Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_inode_cnv.c Mon Aug 12 21:34:48 2013 (r254260) @@ -32,6 +32,7 @@ #include #include +#include #include #include #include @@ -44,22 +45,34 @@ void ext2_print_inode(struct inode *in) { int i; + struct ext4_extent_header *ehp; + struct ext4_extent *ep; printf( "Inode: %5ju", (uintmax_t)in->i_number); printf( /* "Inode: %5d" */ " Type: %10s Mode: 0x%o Flags: 0x%x Version: %d\n", "n/a", in->i_mode, in->i_flags, in->i_gen); - printf( "User: %5lu Group: %5lu Size: %lu\n", - (unsigned long)in->i_uid, (unsigned long)in->i_gid, - (unsigned long)in->i_size); - printf( "Links: %3d Blockcount: %d\n", - in->i_nlink, in->i_blocks); + printf("User: %5u Group: %5u Size: %ju\n", + in->i_uid, in->i_gid, (uintmax_t)in->i_size); + printf("Links: %3d Blockcount: %ju\n", + in->i_nlink, (uintmax_t)in->i_blocks); printf( "ctime: 0x%x", in->i_ctime); printf( "atime: 0x%x", in->i_atime); printf( "mtime: 0x%x", in->i_mtime); - printf( "BLOCKS: "); - for(i=0; i < (in->i_blocks <= 24 ? ((in->i_blocks+1)/2): 12); i++) - printf("%d ", in->i_db[i]); + if (E2DI_HAS_XTIME(in)) + printf("crtime %#x ", in->i_birthtime); + printf("BLOCKS:"); + for (i = 0; i < (in->i_blocks <= 24 ? (in->i_blocks + 1) / 2 : 12); i++) + printf(" %d", in->i_db[i]); + printf("\n"); + printf("Extents:\n"); + ehp = (struct ext4_extent_header *)in->i_db; + printf("Header (magic 0x%x entries %d max %d depth %d gen %d)\n", + ehp->eh_magic, ehp->eh_ecount, ehp->eh_max, ehp->eh_depth, + ehp->eh_gen); + ep = (struct ext4_extent *)(char *)(ehp + 1); + printf("Index (blk %d len %d start_lo %d start_hi %d)\n", ep->e_blk, + ep->e_len, ep->e_start_lo, ep->e_start_hi); printf("\n"); } @@ -96,6 +109,11 @@ ext2_ei2i(struct ext2fs_dinode *ei, stru ip->i_flags |= (ei->e2di_flags & EXT2_IMMUTABLE) ? SF_IMMUTABLE : 0; ip->i_flags |= (ei->e2di_flags & EXT2_NODUMP) ? UF_NODUMP : 0; ip->i_blocks = ei->e2di_nblock; + if (E2DI_HAS_HUGE_FILE(ip)) { + ip->i_blocks |= (uint64_t)ei->e2di_nblock_high << 32; + if (ei->e2di_flags & EXT4_HUGE_FILE) + ip->i_blocks = fsbtodb(ip->i_e2fs, ip->i_blocks); + } ip->i_gen = ei->e2di_gen; ip->i_uid = ei->e2di_uid; ip->i_gid = ei->e2di_gid; @@ -138,7 +156,8 @@ ext2_i2ei(struct inode *ip, struct ext2f ei->e2di_flags |= (ip->i_flags & SF_APPEND) ? EXT2_APPEND: 0; ei->e2di_flags |= (ip->i_flags & SF_IMMUTABLE) ? EXT2_IMMUTABLE: 0; ei->e2di_flags |= (ip->i_flags & UF_NODUMP) ? EXT2_NODUMP: 0; - ei->e2di_nblock = ip->i_blocks; + ei->e2di_nblock = ip->i_blocks & 0xffffffff; + ei->e2di_nblock_high = ip->i_blocks >> 32 & 0xffff; ei->e2di_gen = ip->i_gen; ei->e2di_uid = ip->i_uid; ei->e2di_gid = ip->i_gid; Modified: head/sys/fs/ext2fs/ext2_subr.c ============================================================================== --- head/sys/fs/ext2fs/ext2_subr.c Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_subr.c Mon Aug 12 21:34:48 2013 (r254260) @@ -50,10 +50,11 @@ #include #include #include - -#ifdef KDB +#include #include +#include +#ifdef KDB void ext2_checkoverlap(struct buf *, struct inode *); #endif @@ -70,21 +71,63 @@ ext2_blkatoff(struct vnode *vp, off_t of struct buf *bp; e2fs_lbn_t lbn; int bsize, error; + daddr_t newblk; + struct ext4_extent *ep; + struct ext4_extent_path path; ip = VTOI(vp); fs = ip->i_e2fs; lbn = lblkno(fs, offset); bsize = blksize(fs, ip, lbn); - *bpp = NULL; - if ((error = bread(vp, lbn, bsize, NOCRED, &bp)) != 0) { + + /* + * The EXT4_EXTENTS requires special treatment, otherwise we can + * fall back to the normal path. + */ + if (!(ip->i_flags & EXT4_EXTENTS)) + goto normal; + + memset(&path, 0, sizeof(path)); + if (ext4_ext_find_extent(fs, ip, lbn, &path) == NULL) + goto normal; + ep = path.ep_ext; + if (ep == NULL) + goto normal; + + newblk = lbn - ep->e_blk + + (ep->e_start_lo | (daddr_t)ep->e_start_hi << 32); + + if (path.ep_bp != NULL) { + brelse(path.ep_bp); + path.ep_bp = NULL; + } + error = bread(ip->i_devvp, fsbtodb(fs, newblk), bsize, NOCRED, &bp); + if (error != 0) { brelse(bp); return (error); } if (res) *res = (char *)bp->b_data + blkoff(fs, offset); + /* + * If EXT4_EXTENTS is enabled we would get a wrong offset so + * reset b_offset here. + */ + bp->b_offset = lbn * bsize; *bpp = bp; return (0); + +normal: + if (*bpp == NULL) { + if ((error = bread(vp, lbn, bsize, NOCRED, &bp)) != 0) { + brelse(bp); + return (error); + } + if (res) + *res = (char *)bp->b_data + blkoff(fs, offset); + *bpp = bp; + } + return (0); } #ifdef KDB Modified: head/sys/fs/ext2fs/ext2_vfsops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vfsops.c Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_vfsops.c Mon Aug 12 21:34:48 2013 (r254260) @@ -397,9 +397,11 @@ compute_sb_data(struct vnode *devvp, str if (es->e2fs_rev == E2FS_REV0 || !EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_LARGEFILE)) fs->e2fs_maxfilesize = 0x7fffffff; - else - fs->e2fs_maxfilesize = 0x7fffffffffffffff; - + else { + fs->e2fs_maxfilesize = 0xffffffffffff; + if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_HUGE_FILE)) + fs->e2fs_maxfilesize = 0x7fffffffffffffff; + } if (es->e4fs_flags & E2FS_UNSIGNED_HASH) { fs->e2fs_uhash = 3; } else if ((es->e4fs_flags & E2FS_SIGNED_HASH) == 0) { @@ -961,8 +963,12 @@ ext2_vget(struct mount *mp, ino_t ino, i * Now we want to make sure that block pointers for unused * blocks are zeroed out - ext2_balloc depends on this * although for regular files and directories only + * + * If EXT4_EXTENTS flag is enabled, unused blocks aren't + * zeroed out because we could corrupt the extent tree. */ - if(S_ISDIR(ip->i_mode) || S_ISREG(ip->i_mode)) { + if (!(ip->i_flags & EXT4_EXTENTS) && + (S_ISDIR(ip->i_mode) || S_ISREG(ip->i_mode))) { used_blocks = (ip->i_size+fs->e2fs_bsize-1) / fs->e2fs_bsize; for (i = used_blocks; i < EXT2_NDIR_BLOCKS; i++) ip->i_db[i] = 0; Modified: head/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vnops.c Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2_vnops.c Mon Aug 12 21:34:48 2013 (r254260) @@ -84,6 +84,8 @@ static int ext2_makeinode(int mode, struct vnode *, struct vnode **, struct componentname *); static void ext2_itimes_locked(struct vnode *); +static int ext4_ext_read(struct vop_read_args *); +static int ext2_ind_read(struct vop_read_args *); static vop_access_t ext2_access; static int ext2_chmod(struct vnode *, int, struct ucred *, struct thread *); @@ -1327,7 +1329,7 @@ ext2_strategy(struct vop_strategy_args * struct vnode *vp = ap->a_vp; struct inode *ip; struct bufobj *bo; - int32_t blkno; + int64_t blkno; int error; ip = VTOI(vp); @@ -1607,6 +1609,29 @@ ext2_read(struct vop_read_args *ap) { struct vnode *vp; struct inode *ip; + int error; + + vp = ap->a_vp; + ip = VTOI(vp); + + /*EXT4_EXT_LOCK(ip);*/ + if (ip->i_flags & EXT4_EXTENTS) + error = ext4_ext_read(ap); + else + error = ext2_ind_read(ap); + /*EXT4_EXT_UNLOCK(ip);*/ + return (error); +} + + +/* + * Vnode op for reading. + */ +static int +ext2_ind_read(struct vop_read_args *ap) +{ + struct vnode *vp; + struct inode *ip; struct uio *uio; struct m_ext2fs *fs; struct buf *bp; @@ -1758,6 +1783,107 @@ ext2_ioctl(struct vop_ioctl_args *ap) } /* + * this function handles ext4 extents block mapping + */ +static int +ext4_ext_read(struct vop_read_args *ap) +{ + struct vnode *vp; + struct inode *ip; + struct uio *uio; + struct m_ext2fs *fs; + struct buf *bp; + struct ext4_extent nex, *ep; + struct ext4_extent_path path; + daddr_t lbn, newblk; + off_t bytesinfile; + int cache_type; + ssize_t orig_resid; + int error; + long size, xfersize, blkoffset; + + vp = ap->a_vp; + ip = VTOI(vp); + uio = ap->a_uio; + memset(&path, 0, sizeof(path)); + + orig_resid = uio->uio_resid; + KASSERT(orig_resid >= 0, ("%s: uio->uio_resid < 0", __func__)); + if (orig_resid == 0) + return (0); + KASSERT(uio->uio_offset >= 0, ("%s: uio->uio_offset < 0", __func__)); + fs = ip->i_e2fs; + if (uio->uio_offset < ip->i_size && uio->uio_offset >= fs->e2fs_maxfilesize) + return (EOVERFLOW); + + while (uio->uio_resid > 0) { + if ((bytesinfile = ip->i_size - uio->uio_offset) <= 0) + break; + lbn = lblkno(fs, uio->uio_offset); + size = blksize(fs, ip, lbn); + blkoffset = blkoff(fs, uio->uio_offset); + + xfersize = fs->e2fs_fsize - blkoffset; + xfersize = MIN(xfersize, uio->uio_resid); + xfersize = MIN(xfersize, bytesinfile); + + /* get block from ext4 extent cache */ + cache_type = ext4_ext_in_cache(ip, lbn, &nex); + switch (cache_type) { + case EXT4_EXT_CACHE_NO: + ext4_ext_find_extent(fs, ip, lbn, &path); + ep = path.ep_ext; + if (ep == NULL) + return (EIO); + + ext4_ext_put_cache(ip, ep, EXT4_EXT_CACHE_IN); + + newblk = lbn - ep->e_blk + (ep->e_start_lo | + (daddr_t)ep->e_start_hi << 32); + + if (path.ep_bp != NULL) { + brelse(path.ep_bp); + path.ep_bp = NULL; + } + break; + + case EXT4_EXT_CACHE_GAP: + /* block has not been allocated yet */ + return (0); + + case EXT4_EXT_CACHE_IN: + newblk = lbn - nex.e_blk + (nex.e_start_lo | + (daddr_t)nex.e_start_hi << 32); + break; + + default: + panic("%s: invalid cache type", __func__); + } + + error = bread(ip->i_devvp, fsbtodb(fs, newblk), size, NOCRED, &bp); + if (error) { + brelse(bp); + return (error); + } + + size -= bp->b_resid; + if (size < xfersize) { + if (size == 0) { + bqrelse(bp); + break; + } + xfersize = size; + } + error = uiomove(bp->b_data + blkoffset, (int)xfersize, uio); + bqrelse(bp); + if (error) + return (error); + } + + return (0); +} + +/* * Vnode op for writing. */ static int Modified: head/sys/fs/ext2fs/ext2fs.h ============================================================================== --- head/sys/fs/ext2fs/ext2fs.h Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/ext2fs.h Mon Aug 12 21:34:48 2013 (r254260) @@ -201,12 +201,18 @@ struct csum { * - EXT2F_ROCOMPAT_SPARSESUPER * - EXT2F_ROCOMPAT_LARGEFILE * - EXT2F_INCOMPAT_FTYPE + * + * We partially (read-only) support the following EXT4 features: + * - EXT2F_ROCOMPAT_HUGE_FILE + * - EXT2F_ROCOMPAT_EXTRA_ISIZE + * - EXT2F_INCOMPAT_EXTENTS */ #define EXT2F_COMPAT_SUPP 0x0000 #define EXT2F_ROCOMPAT_SUPP (EXT2F_ROCOMPAT_SPARSESUPER | \ EXT2F_ROCOMPAT_LARGEFILE | \ EXT2F_ROCOMPAT_EXTRA_ISIZE) -#define EXT2F_INCOMPAT_SUPP EXT2F_INCOMPAT_FTYPE +#define EXT2F_INCOMPAT_SUPP (EXT2F_INCOMPAT_FTYPE | \ + EXT2F_INCOMPAT_EXTENTS) /* Assume that user mode programs are passing in an ext2fs superblock, not * a kernel struct super_block. This will allow us to call the feature-test Modified: head/sys/fs/ext2fs/inode.h ============================================================================== --- head/sys/fs/ext2fs/inode.h Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/fs/ext2fs/inode.h Mon Aug 12 21:34:48 2013 (r254260) @@ -38,9 +38,13 @@ #ifndef _FS_EXT2FS_INODE_H_ #define _FS_EXT2FS_INODE_H_ +#include #include +#include #include +#include + /* * This must agree with the definition in . */ @@ -86,7 +90,10 @@ struct inode { /* Fields from struct dinode in UFS. */ uint16_t i_mode; /* IFMT, permissions; see below. */ int16_t i_nlink; /* File link count. */ + uint32_t i_uid; /* File owner. */ + uint32_t i_gid; /* File group. */ uint64_t i_size; /* File byte count. */ + uint64_t i_blocks; /* Blocks actually held. */ int32_t i_atime; /* Last access time. */ int32_t i_mtime; /* Last modified time. */ int32_t i_ctime; /* Last inode change time. */ @@ -95,13 +102,12 @@ struct inode { int32_t i_atimensec; /* Last access time. */ int32_t i_ctimensec; /* Last inode change time. */ int32_t i_birthnsec; /* Inode creation time. */ + uint32_t i_gen; /* Generation number. */ + uint32_t i_flags; /* Status flags (chflags). */ uint32_t i_db[NDADDR]; /* Direct disk blocks. */ uint32_t i_ib[NIADDR]; /* Indirect disk blocks. */ - uint32_t i_flags; /* Status flags (chflags). */ - uint32_t i_blocks; /* Blocks actually held. */ - uint32_t i_gen; /* Generation number. */ - uint32_t i_uid; /* File owner. */ - uint32_t i_gid; /* File group. */ + + struct ext4_extent_cache i_ext_cache; /* cache for ext4 extent */ }; /* Modified: head/sys/modules/ext2fs/Makefile ============================================================================== --- head/sys/modules/ext2fs/Makefile Mon Aug 12 21:01:01 2013 (r254259) +++ head/sys/modules/ext2fs/Makefile Mon Aug 12 21:34:48 2013 (r254260) @@ -3,8 +3,8 @@ .PATH: ${.CURDIR}/../../fs/ext2fs KMOD= ext2fs SRCS= opt_ddb.h opt_directio.h opt_quota.h opt_suiddir.h vnode_if.h \ - ext2_alloc.c ext2_balloc.c ext2_bmap.c ext2_hash.c ext2_htree.c \ - ext2_inode.c ext2_inode_cnv.c ext2_lookup.c ext2_subr.c ext2_vfsops.c \ - ext2_vnops.c + ext2_alloc.c ext2_balloc.c ext2_bmap.c ext2_extents.c ext2_hash.c \ + ext2_htree.c ext2_inode.c ext2_inode_cnv.c ext2_lookup.c ext2_subr.c \ + ext2_vfsops.c ext2_vnops.c .include From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 22:27:53 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 98588F82; Mon, 12 Aug 2013 22:27:53 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8619F205B; Mon, 12 Aug 2013 22:27:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CMRrSh011175; Mon, 12 Aug 2013 22:27:53 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CMRrmd011174; Mon, 12 Aug 2013 22:27:53 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308122227.r7CMRrmd011174@svn.freebsd.org> From: Adrian Chadd Date: Mon, 12 Aug 2013 22:27:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254261 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 22:27:53 -0000 Author: adrian Date: Mon Aug 12 22:27:53 2013 New Revision: 254261 URL: http://svnweb.freebsd.org/changeset/base/254261 Log: Blank m_nextpkt before passing it up. Modified: head/sys/net80211/ieee80211_power.c Modified: head/sys/net80211/ieee80211_power.c ============================================================================== --- head/sys/net80211/ieee80211_power.c Mon Aug 12 21:34:48 2013 (r254260) +++ head/sys/net80211/ieee80211_power.c Mon Aug 12 22:27:53 2013 (r254261) @@ -475,6 +475,7 @@ pwrsave_flushq(struct ieee80211_node *ni while (ifp_q != NULL) { m = ifp_q; ifp_q = m->m_nextpkt; + m->m_nextpkt = NULL; KASSERT((!(m->m_flags & M_ENCAP)), ("%s: vapq with M_ENCAP frame!\n", __func__)); (void) ieee80211_vap_xmitpkt(vap, m); From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 22:54:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B6D48387; Mon, 12 Aug 2013 22:54:39 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9558A21AD; Mon, 12 Aug 2013 22:54:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CMsdmR021712; Mon, 12 Aug 2013 22:54:39 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CMscG3021708; Mon, 12 Aug 2013 22:54:38 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201308122254.r7CMscG3021708@svn.freebsd.org> From: Jack F Vogel Date: Mon, 12 Aug 2013 22:54:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254262 - in head/sys/dev: e1000 ixgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 22:54:39 -0000 Author: jfv Date: Mon Aug 12 22:54:38 2013 New Revision: 254262 URL: http://svnweb.freebsd.org/changeset/base/254262 Log: Improve the MSIX setup code in the drivers, thanks to Marius for the changes. Make sure that pci_alloc_msix() does give us the vectors we need and fall back to MSI when it doesn't, also release any that were allocated when insufficient. MFC after: 3 days Modified: head/sys/dev/e1000/if_em.c head/sys/dev/e1000/if_igb.c head/sys/dev/ixgbe/ixgbe.c head/sys/dev/ixgbe/ixv.c Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Mon Aug 12 22:27:53 2013 (r254261) +++ head/sys/dev/e1000/if_em.c Mon Aug 12 22:54:38 2013 (r254262) @@ -2277,7 +2277,7 @@ em_local_timer(void *arg) /* Mask to use in the irq trigger */ if (adapter->msix_mem) - trigger = rxr->ims; /* RX for 82574 */ + trigger = rxr->ims; else trigger = E1000_ICS_RXDMT0; @@ -2775,23 +2775,30 @@ em_setup_msix(struct adapter *adapter) if (val >= 3) val = 3; else { - bus_release_resource(dev, SYS_RES_MEMORY, - PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem); - adapter->msix_mem = NULL; device_printf(adapter->dev, - "MSIX: incorrect vectors, using MSI\n"); + "MSIX: insufficient vectors, using MSI\n"); goto msi; } - if (pci_alloc_msix(dev, &val) == 0) { + if ((pci_alloc_msix(dev, &val) == 0) && (val == 3)) { device_printf(adapter->dev, "Using MSIX interrupts " "with %d vectors\n", val); return (val); } - /* Fall through to MSI */ + + /* + ** If MSIX alloc failed or provided us with + ** less than needed, free and fall through to MSI + */ + pci_release_msi(dev); } msi: + if (adapter->msix_mem != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem); + adapter->msix_mem = NULL; + } val = 1; if (pci_alloc_msi(dev, &val) == 0) { device_printf(adapter->dev,"Using an MSI interrupt\n"); Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Mon Aug 12 22:27:53 2013 (r254261) +++ head/sys/dev/e1000/if_igb.c Mon Aug 12 22:54:38 2013 (r254262) @@ -2899,13 +2899,18 @@ igb_setup_msix(struct adapter *adapter) msgs, want); goto msi; } - if (pci_alloc_msix(dev, &msgs) == 0) { + if ((pci_alloc_msix(dev, &msgs) == 0) && (msgs == want)) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); adapter->num_queues = queues; return (msgs); } - /* Fallback to MSI configuration */ + /* + ** If MSIX alloc failed or provided us with + ** less than needed, free and fall through to MSI + */ + pci_release_msi(dev); + msi: if (adapter->msix_mem != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, @@ -2914,10 +2919,10 @@ msi: } msgs = 1; if (pci_alloc_msi(dev, &msgs) == 0) { - device_printf(adapter->dev," Using MSI interrupt\n"); + device_printf(adapter->dev," Using an MSI interrupt\n"); return (msgs); } - /* Default to a legacy interrupt */ + device_printf(adapter->dev," Using a Legacy interrupt\n"); return (0); } Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Mon Aug 12 22:27:53 2013 (r254261) +++ head/sys/dev/ixgbe/ixgbe.c Mon Aug 12 22:54:38 2013 (r254262) @@ -2456,12 +2456,18 @@ ixgbe_setup_msix(struct adapter *adapter msgs, want); goto msi; } - if (pci_alloc_msix(dev, &msgs) == 0) { + if ((pci_alloc_msix(dev, &msgs) == 0) && (msgs == want)) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); adapter->num_queues = queues; return (msgs); } + /* + ** If MSIX alloc failed or provided us with + ** less than needed, free and fall through to MSI + */ + pci_release_msi(dev); + msi: if (adapter->msix_mem != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, Modified: head/sys/dev/ixgbe/ixv.c ============================================================================== --- head/sys/dev/ixgbe/ixv.c Mon Aug 12 22:27:53 2013 (r254261) +++ head/sys/dev/ixgbe/ixv.c Mon Aug 12 22:54:38 2013 (r254262) @@ -1704,11 +1704,13 @@ ixv_setup_msix(struct adapter *adapter) ** plus an additional for mailbox. */ want = 2; - if (pci_alloc_msix(dev, &want) == 0) { + if ((pci_alloc_msix(dev, &want) == 0) && (want == 2)) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", want); return (want); } + /* Release in case alloc was insufficient */ + pci_release_msi(dev); out: if (adapter->msix_mem != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, From owner-svn-src-all@FreeBSD.ORG Mon Aug 12 23:30:10 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 79AA8A6A; Mon, 12 Aug 2013 23:30:10 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 641FD239C; Mon, 12 Aug 2013 23:30:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7CNUA3J034423; Mon, 12 Aug 2013 23:30:10 GMT (envelope-from scottl@svn.freebsd.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7CNU25k034351; Mon, 12 Aug 2013 23:30:02 GMT (envelope-from scottl@svn.freebsd.org) Message-Id: <201308122330.r7CNU25k034351@svn.freebsd.org> From: Scott Long Date: Mon, 12 Aug 2013 23:30:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254263 - in head/sys: dev/aacraid dev/advansys dev/aic7xxx dev/amr dev/an dev/arcmsr dev/asr dev/ata dev/bktr dev/buslogic dev/dpt dev/e1000 dev/fatm dev/firewire dev/fxp dev/hatm dev/... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Aug 2013 23:30:10 -0000 Author: scottl Date: Mon Aug 12 23:30:01 2013 New Revision: 254263 URL: http://svnweb.freebsd.org/changeset/base/254263 Log: Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI command register. The lazy BAR allocation code in FreeBSD sometimes disables this bit when it detects a range conflict, and will re-enable it on demand when a driver allocates the BAR. Thus, the bit is no longer a reliable indication of capability, and should not be checked. This results in the elimination of a lot of code from drivers, and also gives the opportunity to simplify a lot of drivers to use a helper API to set the busmaster enable bit. This changes fixes some recent reports of disk controllers and their associated drives/enclosures disappearing during boot. Submitted by: jhb Reviewed by: jfv, marius, achadd, achim MFC after: 1 day Modified: head/sys/dev/aacraid/aacraid_pci.c head/sys/dev/advansys/adw_pci.c head/sys/dev/aic7xxx/ahc_pci.c head/sys/dev/aic7xxx/ahd_pci.c head/sys/dev/amr/amr_pci.c head/sys/dev/an/if_an_pci.c head/sys/dev/arcmsr/arcmsr.c head/sys/dev/asr/asr.c head/sys/dev/ata/ata-pci.c head/sys/dev/bktr/bktr_os.c head/sys/dev/buslogic/bt_pci.c head/sys/dev/dpt/dpt_pci.c head/sys/dev/e1000/if_em.c head/sys/dev/e1000/if_igb.c head/sys/dev/e1000/if_lem.c head/sys/dev/fatm/if_fatm.c head/sys/dev/firewire/fwohci_pci.c head/sys/dev/fxp/if_fxp.c head/sys/dev/hatm/if_hatm.c head/sys/dev/ips/ips_pci.c head/sys/dev/isp/isp_pci.c head/sys/dev/iwn/if_iwn.c head/sys/dev/ixgb/if_ixgb.c head/sys/dev/ixgbe/ixv.c head/sys/dev/mfi/mfi_pci.c head/sys/dev/mly/mly.c head/sys/dev/mn/if_mn.c head/sys/dev/mps/mps_pci.c head/sys/dev/mpt/mpt_pci.c head/sys/dev/mwl/if_mwl_pci.c head/sys/dev/mxge/if_mxge.c head/sys/dev/pccbb/pccbb_pci.c head/sys/dev/pst/pst-pci.c head/sys/dev/rp/rp_pci.c head/sys/dev/safe/safe.c head/sys/dev/sound/pci/als4000.c head/sys/dev/sound/pci/aureal.c head/sys/dev/sound/pci/cmi.c head/sys/dev/sound/pci/cs4281.c head/sys/dev/sound/pci/csa.c head/sys/dev/sound/pci/ds1.c head/sys/dev/sound/pci/emu10k1.c head/sys/dev/sound/pci/emu10kx.c head/sys/dev/sound/pci/envy24.c head/sys/dev/sound/pci/envy24ht.c head/sys/dev/sound/pci/es137x.c head/sys/dev/sound/pci/fm801.c head/sys/dev/sound/pci/hdspe.c head/sys/dev/sound/pci/maestro.c head/sys/dev/sound/pci/maestro3.c head/sys/dev/sound/pci/neomagic.c head/sys/dev/sound/pci/solo.c head/sys/dev/sound/pci/t4dwave.c head/sys/dev/sound/pci/via82c686.c head/sys/dev/sound/pci/vibes.c head/sys/dev/stge/if_stge.c head/sys/dev/sym/sym_hipd.c head/sys/dev/tdfx/tdfx_pci.c head/sys/dev/twa/tw_osl_freebsd.c head/sys/dev/tws/tws.c head/sys/dev/ubsec/ubsec.c head/sys/dev/wi/if_wi_pci.c head/sys/pci/ncr.c Modified: head/sys/dev/aacraid/aacraid_pci.c ============================================================================== --- head/sys/dev/aacraid/aacraid_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/aacraid/aacraid_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -169,18 +169,12 @@ aacraid_pci_attach(device_t dev) /* * Verify that the adapter is correctly set up in PCI space. */ - command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); + pci_enable_busmaster(dev); command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); if (!(command & PCIM_CMD_BUSMASTEREN)) { device_printf(sc->aac_dev, "can't enable bus-master feature\n"); goto out; } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(sc->aac_dev, "memory window not available\n"); - goto out; - } /* * Detect the hardware interface version, set up the bus interface Modified: head/sys/dev/advansys/adw_pci.c ============================================================================== --- head/sys/dev/advansys/adw_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/advansys/adw_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -199,14 +199,13 @@ adw_pci_attach(device_t dev) { struct adw_softc *adw; struct adw_pci_identity *entry; - u_int32_t command; + u_int16_t command; struct resource *regs; int regs_type; int regs_id; int error; int zero; - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); entry = adw_find_pci_device(dev); if (entry == NULL) return (ENXIO); @@ -214,14 +213,11 @@ adw_pci_attach(device_t dev) regs_type = 0; regs_id = 0; #ifdef ADW_ALLOW_MEMIO - if ((command & PCIM_CMD_MEMEN) != 0) { - regs_type = SYS_RES_MEMORY; - regs_id = ADW_PCI_MEMBASE; - regs = bus_alloc_resource_any(dev, regs_type, - ®s_id, RF_ACTIVE); - } + regs_type = SYS_RES_MEMORY; + regs_id = ADW_PCI_MEMBASE; + regs = bus_alloc_resource_any(dev, regs_type, ®s_id, RF_ACTIVE); #endif - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = ADW_PCI_IOBASE; regs = bus_alloc_resource_any(dev, regs_type, @@ -296,6 +292,7 @@ adw_pci_attach(device_t dev) * 'control_flag' CONTROL_FLAG_IGNORE_PERR flag to tell the microcode * to ignore DMA parity errors. */ + command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/2); if ((command & PCIM_CMD_PERRESPEN) == 0) adw_lram_write_16(adw, ADW_MC_CONTROL_FLAG, adw_lram_read_16(adw, ADW_MC_CONTROL_FLAG) Modified: head/sys/dev/aic7xxx/ahc_pci.c ============================================================================== --- head/sys/dev/aic7xxx/ahc_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/aic7xxx/ahc_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -139,12 +139,10 @@ int ahc_pci_map_registers(struct ahc_softc *ahc) { struct resource *regs; - u_int command; int regs_type; int regs_id; int allow_memio; - command = aic_pci_read_config(ahc->dev_softc, PCIR_COMMAND, /*bytes*/1); regs = NULL; regs_type = 0; regs_id = 0; @@ -166,7 +164,7 @@ ahc_pci_map_registers(struct ahc_softc * #endif } - if ((allow_memio != 0) && (command & PCIM_CMD_MEMEN) != 0) { + if (allow_memio != 0) { regs_type = SYS_RES_MEMORY; regs_id = AHC_PCI_MEMADDR; @@ -190,16 +188,11 @@ ahc_pci_map_registers(struct ahc_softc * bus_release_resource(ahc->dev_softc, regs_type, regs_id, regs); regs = NULL; - } else { - command &= ~PCIM_CMD_PORTEN; - aic_pci_write_config(ahc->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = AHC_PCI_IOADDR; regs = bus_alloc_resource_any(ahc->dev_softc, regs_type, @@ -217,11 +210,6 @@ ahc_pci_map_registers(struct ahc_softc * bus_release_resource(ahc->dev_softc, regs_type, regs_id, regs); regs = NULL; - } else { - command &= ~PCIM_CMD_MEMEN; - aic_pci_write_config(ahc->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } Modified: head/sys/dev/aic7xxx/ahd_pci.c ============================================================================== --- head/sys/dev/aic7xxx/ahd_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/aic7xxx/ahd_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -143,13 +143,11 @@ ahd_pci_map_registers(struct ahd_softc * { struct resource *regs; struct resource *regs2; - u_int command; int regs_type; int regs_id; int regs_id2; int allow_memio; - command = aic_pci_read_config(ahd->dev_softc, PCIR_COMMAND, /*bytes*/1); regs = NULL; regs2 = NULL; regs_type = 0; @@ -165,8 +163,7 @@ ahd_pci_map_registers(struct ahd_softc * allow_memio = 1; } - if ((command & PCIM_CMD_MEMEN) != 0 - && (ahd->bugs & AHD_PCIX_MMAPIO_BUG) == 0 + if ((ahd->bugs & AHD_PCIX_MMAPIO_BUG) == 0 && allow_memio != 0) { regs_type = SYS_RES_MEMORY; @@ -199,15 +196,10 @@ ahd_pci_map_registers(struct ahd_softc * regs_id, regs); regs = NULL; AHD_CORRECTABLE_ERROR(ahd); - } else { - command &= ~PCIM_CMD_PORTEN; - aic_pci_write_config(ahd->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = AHD_PCI_IOADDR0; regs = bus_alloc_resource_any(ahd->dev_softc, regs_type, @@ -233,9 +225,6 @@ ahd_pci_map_registers(struct ahd_softc * } ahd->tags[1] = rman_get_bustag(regs2); ahd->bshs[1] = rman_get_bushandle(regs2); - command &= ~PCIM_CMD_MEMEN; - aic_pci_write_config(ahd->dev_softc, PCIR_COMMAND, - command, /*bytes*/1); ahd->platform_data->regs_res_type[1] = regs_type; ahd->platform_data->regs_res_id[1] = regs_id2; ahd->platform_data->regs[1] = regs2; Modified: head/sys/dev/amr/amr_pci.c ============================================================================== --- head/sys/dev/amr/amr_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/amr/amr_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -184,7 +184,6 @@ amr_pci_attach(device_t dev) struct amr_softc *sc; struct amr_ident *id; int rid, rtype, error; - u_int32_t command; debug_called(1); @@ -204,24 +203,8 @@ amr_pci_attach(device_t dev) if ((id = amr_find_ident(dev)) == NULL) return (ENXIO); - command = pci_read_config(dev, PCIR_COMMAND, 1); if (id->flags & AMR_ID_QUARTZ) { - /* - * Make sure we are going to be able to talk to this board. - */ - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "memory window not available\n"); - return (ENXIO); - } sc->amr_type |= AMR_TYPE_QUARTZ; - } else { - /* - * Make sure we are going to be able to talk to this board. - */ - if ((command & PCIM_CMD_PORTEN) == 0) { - device_printf(dev, "I/O window not available\n"); - return (ENXIO); - } } if ((amr_force_sg32 == 0) && (id->flags & AMR_ID_DO_SG64) && @@ -231,11 +214,7 @@ amr_pci_attach(device_t dev) } /* force the busmaster enable bit on */ - if (!(command & PCIM_CMD_BUSMASTEREN)) { - device_printf(dev, "busmaster bit not set, enabling\n"); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - } + pci_enable_busmaster(dev); /* * Allocate the PCI register window. Modified: head/sys/dev/an/if_an_pci.c ============================================================================== --- head/sys/dev/an/if_an_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/an/if_an_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -141,7 +141,6 @@ static int an_attach_pci(dev) device_t dev; { - u_int32_t command; struct an_softc *sc; int flags, error = 0; @@ -153,19 +152,6 @@ an_attach_pci(dev) sc->mpi350 = 1; sc->port_rid = PCIR_BAR(0); } else { - /* - * Map control/status registers. - */ - command = pci_read_config(dev, PCIR_COMMAND, 4); - command |= PCIM_CMD_PORTEN; - pci_write_config(dev, PCIR_COMMAND, command, 4); - command = pci_read_config(dev, PCIR_COMMAND, 4); - - if (!(command & PCIM_CMD_PORTEN)) { - device_printf(dev, "failed to enable I/O ports!\n"); - error = ENXIO; - goto fail; - } sc->port_rid = AN_PCI_LOIO; } error = an_alloc_port(dev, sc->port_rid, 1); Modified: head/sys/dev/arcmsr/arcmsr.c ============================================================================== --- head/sys/dev/arcmsr/arcmsr.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/arcmsr/arcmsr.c Mon Aug 12 23:30:01 2013 (r254263) @@ -4101,8 +4101,7 @@ static u_int32_t arcmsr_initialize(devic pci_command |= PCIM_CMD_BUSMASTEREN; pci_command |= PCIM_CMD_PERRESPEN; pci_command |= PCIM_CMD_MWRICEN; - /* Enable Busmaster/Mem */ - pci_command |= PCIM_CMD_MEMEN; + /* Enable Busmaster */ pci_write_config(dev, PCIR_COMMAND, pci_command, 2); switch(acb->adapter_type) { case ACB_ADAPTER_TYPE_A: { Modified: head/sys/dev/asr/asr.c ============================================================================== --- head/sys/dev/asr/asr.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/asr/asr.c Mon Aug 12 23:30:01 2013 (r254263) @@ -2428,9 +2428,7 @@ asr_attach(device_t dev) return(ENXIO); } /* Enable if not formerly enabled */ - pci_write_config(dev, PCIR_COMMAND, - pci_read_config(dev, PCIR_COMMAND, sizeof(char)) | - PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, sizeof(char)); + pci_enable_busmaster(dev); sc->ha_pciBusNum = pci_get_bus(dev); sc->ha_pciDeviceNum = (pci_get_slot(dev) << 3) | pci_get_function(dev); Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/ata/ata-pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -98,11 +98,8 @@ ata_pci_attach(device_t dev) ctlr->dev = dev; /* if needed try to enable busmastering */ + pci_enable_busmaster(dev); cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(cmd & PCIM_CMD_BUSMASTEREN)) { - pci_write_config(dev, PCIR_COMMAND, cmd | PCIM_CMD_BUSMASTEREN, 2); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - } /* if busmastering mode "stuck" use it */ if ((cmd & PCIM_CMD_BUSMASTEREN) == PCIM_CMD_BUSMASTEREN) { Modified: head/sys/dev/bktr/bktr_os.c ============================================================================== --- head/sys/dev/bktr/bktr_os.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/bktr/bktr_os.c Mon Aug 12 23:30:01 2013 (r254263) @@ -318,7 +318,6 @@ bktr_attach( device_t dev ) { u_long latency; u_long fun; - u_long val; unsigned int rev; unsigned int unit; int error = 0; @@ -336,9 +335,7 @@ bktr_attach( device_t dev ) /* * Enable bus mastering and Memory Mapped device */ - val = pci_read_config(dev, PCIR_COMMAND, 4); - val |= (PCIM_CMD_MEMEN|PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, val, 4); + pci_enable_busmaster(dev); /* * Map control/status registers. Modified: head/sys/dev/buslogic/bt_pci.c ============================================================================== --- head/sys/dev/buslogic/bt_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/buslogic/bt_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -57,24 +57,19 @@ __FBSDID("$FreeBSD$"); static int bt_pci_alloc_resources(device_t dev) { - int command, type = 0, rid, zero; + int type = 0, rid, zero; struct resource *regs = 0; struct resource *irq = 0; - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); #if 0 /* XXX Memory Mapped I/O seems to cause problems */ - if (command & PCIM_CMD_MEMEN) { - type = SYS_RES_MEMORY; - rid = BT_PCI_MEMADDR; - regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); - } + type = SYS_RES_MEMORY; + rid = BT_PCI_MEMADDR; + regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); #else - if (!regs && (command & PCIM_CMD_PORTEN)) { - type = SYS_RES_IOPORT; - rid = BT_PCI_IOADDR; - regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); - } + type = SYS_RES_IOPORT; + rid = BT_PCI_IOADDR; + regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); #endif if (!regs) return (ENOMEM); Modified: head/sys/dev/dpt/dpt_pci.c ============================================================================== --- head/sys/dev/dpt/dpt_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/dpt/dpt_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -77,23 +77,17 @@ dpt_pci_attach (device_t dev) dpt_softc_t * dpt; int error = 0; - u_int32_t command; - dpt = device_get_softc(dev); dpt->dev = dev; dpt_alloc(dev); - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); - #ifdef DPT_ALLOW_MMIO - if ((command & PCIM_CMD_MEMEN) != 0) { - dpt->io_rid = DPT_PCI_MEMADDR; - dpt->io_type = SYS_RES_MEMORY; - dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, - &dpt->io_rid, RF_ACTIVE); - } + dpt->io_rid = DPT_PCI_MEMADDR; + dpt->io_type = SYS_RES_MEMORY; + dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, + &dpt->io_rid, RF_ACTIVE); #endif - if (dpt->io_res == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (dpt->io_res == NULL) { dpt->io_rid = DPT_PCI_IOADDR; dpt->io_type = SYS_RES_IOPORT; dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, Modified: head/sys/dev/e1000/if_em.c ============================================================================== --- head/sys/dev/e1000/if_em.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/e1000/if_em.c Mon Aug 12 23:30:01 2013 (r254263) @@ -2442,16 +2442,8 @@ em_identify_hardware(struct adapter *ada device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, "Memory Access and/or Bus Master bits " - "were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/e1000/if_igb.c Mon Aug 12 23:30:01 2013 (r254263) @@ -2410,16 +2410,8 @@ igb_identify_hardware(struct adapter *ad device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - INIT_DEBUGOUT("Memory Access and/or Bus Master " - "bits were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: head/sys/dev/e1000/if_lem.c ============================================================================== --- head/sys/dev/e1000/if_lem.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/e1000/if_lem.c Mon Aug 12 23:30:01 2013 (r254263) @@ -2119,16 +2119,8 @@ lem_identify_hardware(struct adapter *ad device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, "Memory Access and/or Bus Master bits " - "were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: head/sys/dev/fatm/if_fatm.c ============================================================================== --- head/sys/dev/fatm/if_fatm.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/fatm/if_fatm.c Mon Aug 12 23:30:01 2013 (r254263) @@ -2829,21 +2829,13 @@ fatm_attach(device_t dev) ifp->if_linkmiblen = sizeof(IFP2IFATM(sc->ifp)->mib); /* - * Enable memory and bustmaster + * Enable busmaster */ - cfg = pci_read_config(dev, PCIR_COMMAND, 2); - cfg |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cfg, 2); + pci_enable_busmaster(dev); /* * Map memory */ - cfg = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(cfg & PCIM_CMD_MEMEN)) { - if_printf(ifp, "failed to enable memory mapping\n"); - error = ENXIO; - goto fail; - } sc->memid = 0x10; sc->memres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->memid, RF_ACTIVE); Modified: head/sys/dev/firewire/fwohci_pci.c ============================================================================== --- head/sys/dev/firewire/fwohci_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/firewire/fwohci_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -242,7 +242,7 @@ fwohci_pci_init(device_t self) uint16_t cmd; cmd = pci_read_config(self, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; + cmd |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; #if 1 /* for broken hardware */ cmd &= ~PCIM_CMD_MWRICEN; #endif Modified: head/sys/dev/fxp/if_fxp.c ============================================================================== --- head/sys/dev/fxp/if_fxp.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/fxp/if_fxp.c Mon Aug 12 23:30:01 2013 (r254263) @@ -452,7 +452,6 @@ fxp_attach(device_t dev) * Enable bus mastering. */ pci_enable_busmaster(dev); - val = pci_read_config(dev, PCIR_COMMAND, 2); /* * Figure out which we should try first - memory mapping or i/o mapping? @@ -610,6 +609,7 @@ fxp_attach(device_t dev) * is a valid cacheline size (8 or 16 dwords), then tell * the board to turn on MWI. */ + val = pci_read_config(dev, PCIR_COMMAND, 2); if (val & PCIM_CMD_MWRICEN && pci_read_config(dev, PCIR_CACHELNSZ, 1) != 0) sc->flags |= FXP_FLAG_MWI_ENABLE; Modified: head/sys/dev/hatm/if_hatm.c ============================================================================== --- head/sys/dev/hatm/if_hatm.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/hatm/if_hatm.c Mon Aug 12 23:30:01 2013 (r254263) @@ -1686,7 +1686,7 @@ hatm_attach(device_t dev) * 4.2 BIOS Configuration */ v = pci_read_config(dev, PCIR_COMMAND, 2); - v |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; + v |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; pci_write_config(dev, PCIR_COMMAND, v, 2); /* @@ -1702,12 +1702,6 @@ hatm_attach(device_t dev) /* * Map memory */ - v = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(v & PCIM_CMD_MEMEN)) { - device_printf(dev, "failed to enable memory\n"); - error = ENXIO; - goto failed; - } sc->memid = PCIR_BAR(0); sc->memres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->memid, RF_ACTIVE); Modified: head/sys/dev/ips/ips_pci.c ============================================================================== --- head/sys/dev/ips/ips_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/ips/ips_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -59,7 +59,6 @@ static int ips_pci_probe(device_t dev) static int ips_pci_attach(device_t dev) { - u_int32_t command; ips_softc_t *sc; @@ -95,22 +94,18 @@ static int ips_pci_attach(device_t dev) } else goto error; /* make sure busmastering is on */ - command = pci_read_config(dev, PCIR_COMMAND, 1); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 1); + pci_enable_busmaster(dev); /* seting up io space */ sc->iores = NULL; - if(command & PCIM_CMD_MEMEN){ - PRINTF(10, "trying MEMIO\n"); - if(pci_get_device(dev) == IPS_COPPERHEAD_DEVICE_ID) - sc->rid = PCIR_BAR(1); - else - sc->rid = PCIR_BAR(0); - sc->iotype = SYS_RES_MEMORY; - sc->iores = bus_alloc_resource_any(dev, sc->iotype, - &sc->rid, RF_ACTIVE); - } - if(!sc->iores && command & PCIM_CMD_PORTEN){ + PRINTF(10, "trying MEMIO\n"); + if(pci_get_device(dev) == IPS_COPPERHEAD_DEVICE_ID) + sc->rid = PCIR_BAR(1); + else + sc->rid = PCIR_BAR(0); + sc->iotype = SYS_RES_MEMORY; + sc->iores = bus_alloc_resource_any(dev, sc->iotype, &sc->rid, + RF_ACTIVE); + if(!sc->iores){ PRINTF(10, "trying PORTIO\n"); sc->rid = PCIR_BAR(0); sc->iotype = SYS_RES_IOPORT; Modified: head/sys/dev/isp/isp_pci.c ============================================================================== --- head/sys/dev/isp/isp_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/isp/isp_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -706,13 +706,10 @@ isp_pci_attach(device_t dev) pcs->irq = pcs->regs = NULL; pcs->rgd = pcs->rtp = pcs->iqd = 0; - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if (cmd & m1) { - pcs->rtp = (m1 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; - pcs->rgd = (m1 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; - pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); - } - if (pcs->regs == NULL && (cmd & m2)) { + pcs->rtp = (m1 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; + pcs->rgd = (m1 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; + pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); + if (pcs->regs == NULL) { pcs->rtp = (m2 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; pcs->rgd = (m2 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); @@ -891,6 +888,7 @@ isp_pci_attach(device_t dev) /* * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ + cmd = pci_read_config(dev, PCIR_COMMAND, 2); cmd |= PCIM_CMD_SEREN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_INVEN; if (IS_2300(isp)) { /* per QLogic errata */ cmd &= ~PCIM_CMD_INVEN; Modified: head/sys/dev/iwn/if_iwn.c ============================================================================== --- head/sys/dev/iwn/if_iwn.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/iwn/if_iwn.c Mon Aug 12 23:30:01 2013 (r254263) @@ -483,12 +483,12 @@ iwn_attach(device_t dev) pci_write_config(dev, 0x41, 0, 1); /* Hardware bug workaround. */ - reg = pci_read_config(dev, PCIR_COMMAND, 1); + reg = pci_read_config(dev, PCIR_COMMAND, 2); if (reg & PCIM_CMD_INTxDIS) { DPRINTF(sc, IWN_DEBUG_RESET, "%s: PCIe INTx Disable set\n", __func__); reg &= ~PCIM_CMD_INTxDIS; - pci_write_config(dev, PCIR_COMMAND, reg, 1); + pci_write_config(dev, PCIR_COMMAND, reg, 2); } /* Enable bus-mastering. */ Modified: head/sys/dev/ixgb/if_ixgb.c ============================================================================== --- head/sys/dev/ixgb/if_ixgb.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/ixgb/if_ixgb.c Mon Aug 12 23:30:01 2013 (r254263) @@ -1210,15 +1210,9 @@ ixgb_identify_hardware(struct adapter * device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, - "Memory Access and/or Bus Master bits were not set!\n"); - adapter->hw.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, adapter->hw.pci_cmd_word, 2); - } + /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); adapter->hw.device_id = pci_get_device(dev); Modified: head/sys/dev/ixgbe/ixv.c ============================================================================== --- head/sys/dev/ixgbe/ixv.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/ixgbe/ixv.c Mon Aug 12 23:30:01 2013 (r254263) @@ -1561,14 +1561,8 @@ ixv_identify_hardware(struct adapter *ad ** Make sure BUSMASTER is set, on a VM under ** KVM it may not be and will break things. */ + pci_enable_busmaster(dev); pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (pci_cmd_word & PCIM_CMD_MEMEN))) { - INIT_DEBUGOUT("Memory Access and/or Bus Master " - "bits were not set!\n"); - pci_cmd_word |= (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: head/sys/dev/mfi/mfi_pci.c ============================================================================== --- head/sys/dev/mfi/mfi_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mfi/mfi_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -187,7 +187,6 @@ mfi_pci_attach(device_t dev) { struct mfi_softc *sc; struct mfi_ident *m; - uint32_t command; int count, error; sc = device_get_softc(dev); @@ -196,19 +195,8 @@ mfi_pci_attach(device_t dev) m = mfi_find_ident(dev); sc->mfi_flags = m->flags; - /* Verify that the adapter can be set up in PCI space */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "Can't enable PCI busmaster\n"); - return (ENXIO); - } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "PCI memory window not available\n"); - return (ENXIO); - } + /* Ensure busmastering is enabled */ + pci_enable_busmaster(dev); /* Allocate PCI registers */ if ((sc->mfi_flags & MFI_FLAGS_1064R) || Modified: head/sys/dev/mly/mly.c ============================================================================== --- head/sys/dev/mly/mly.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mly/mly.c Mon Aug 12 23:30:01 2013 (r254263) @@ -333,7 +333,6 @@ static int mly_pci_attach(struct mly_softc *sc) { int i, error; - u_int32_t command; debug_called(1); @@ -342,21 +341,8 @@ mly_pci_attach(struct mly_softc *sc) /* * Verify that the adapter is correctly set up in PCI space. - * - * XXX we shouldn't do this; the PCI code should. */ - command = pci_read_config(sc->mly_dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(sc->mly_dev, PCIR_COMMAND, command, 2); - command = pci_read_config(sc->mly_dev, PCIR_COMMAND, 2); - if (!(command & PCIM_CMD_BUSMASTEREN)) { - mly_printf(sc, "can't enable busmaster feature\n"); - goto fail; - } - if ((command & PCIM_CMD_MEMEN) == 0) { - mly_printf(sc, "memory window not available\n"); - goto fail; - } + pci_enable_busmaster(sc->mly_dev); /* * Allocate the PCI register window. Modified: head/sys/dev/mn/if_mn.c ============================================================================== --- head/sys/dev/mn/if_mn.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mn/if_mn.c Mon Aug 12 23:30:01 2013 (r254263) @@ -1346,9 +1346,9 @@ mn_attach (device_t self) return(ENXIO); } - u = pci_read_config(self, PCIR_COMMAND, 1); + u = pci_read_config(self, PCIR_COMMAND, 2); printf("%x\n", u); - pci_write_config(self, PCIR_COMMAND, u | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN, 1); + pci_write_config(self, PCIR_COMMAND, u | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN, 2); #if 0 pci_write_config(self, PCIR_COMMAND, 0x02800046, 4); #endif Modified: head/sys/dev/mps/mps_pci.c ============================================================================== --- head/sys/dev/mps/mps_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mps/mps_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -183,7 +183,6 @@ mps_pci_attach(device_t dev) { struct mps_softc *sc; struct mps_ident *m; - uint16_t command; int error; sc = device_get_softc(dev); @@ -193,18 +192,7 @@ mps_pci_attach(device_t dev) sc->mps_flags = m->flags; /* Twiddle basic PCI config bits for a sanity check */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_BUSMASTEREN) == 0) { - mps_printf(sc, "Cannot enable PCI busmaster\n"); - return (ENXIO); - } - if ((command & PCIM_CMD_MEMEN) == 0) { - mps_printf(sc, "PCI memory window not available\n"); - return (ENXIO); - } + pci_enable_busmaster(dev); /* Allocate the System Interface Register Set */ sc->mps_regs_rid = PCIR_BAR(1); Modified: head/sys/dev/mpt/mpt_pci.c ============================================================================== --- head/sys/dev/mpt/mpt_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mpt/mpt_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -389,16 +389,11 @@ mpt_pci_attach(device_t dev) /* Print INFO level (if any) if bootverbose is set */ mpt->verbose += (bootverbose != 0)? 1 : 0; } - /* Make sure memory access decoders are enabled */ - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if ((cmd & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "Memory accesses disabled"); - return (ENXIO); - } /* * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ + cmd = pci_read_config(dev, PCIR_COMMAND, 2); cmd |= PCIM_CMD_SERRESPEN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; Modified: head/sys/dev/mwl/if_mwl_pci.c ============================================================================== --- head/sys/dev/mwl/if_mwl_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mwl/if_mwl_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -120,29 +120,6 @@ mwl_pci_probe(device_t dev) return ENXIO; } -static u_int32_t -mwl_pci_setup(device_t dev) -{ - u_int32_t cmd; - - /* - * Enable memory mapping and bus mastering. - */ - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cmd, 4); - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - if ((cmd & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "failed to enable memory mapping\n"); - return 0; - } - if ((cmd & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "failed to enable bus mastering\n"); - return 0; - } - return 1; -} - static int mwl_pci_attach(device_t dev) { @@ -152,11 +129,8 @@ mwl_pci_attach(device_t dev) sc->sc_dev = dev; - /* - * Enable memory mapping and bus mastering. - */ - if (!mwl_pci_setup(dev)) - return 0; + pci_enable_busmaster(dev); + /* * Setup memory-mapping of PCI registers. */ @@ -285,8 +259,7 @@ mwl_pci_resume(device_t dev) { struct mwl_pci_softc *psc = device_get_softc(dev); - if (!mwl_pci_setup(dev)) - return ENXIO; + pci_enable_busmaster(dev); mwl_resume(&psc->sc_sc); Modified: head/sys/dev/mxge/if_mxge.c ============================================================================== --- head/sys/dev/mxge/if_mxge.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/mxge/if_mxge.c Mon Aug 12 23:30:01 2013 (r254263) @@ -3827,7 +3827,7 @@ mxge_setup_cfg_space(mxge_softc_t *sc) { device_t dev = sc->dev; int reg; - uint16_t cmd, lnk, pectl; + uint16_t lnk, pectl; /* find the PCIe link width and set max read request to 4KB*/ if (pci_find_cap(dev, PCIY_EXPRESS, ®) == 0) { @@ -3847,9 +3847,6 @@ mxge_setup_cfg_space(mxge_softc_t *sc) /* Enable DMA and Memory space access */ pci_enable_busmaster(dev); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN; - pci_write_config(dev, PCIR_COMMAND, cmd, 2); } static uint32_t Modified: head/sys/dev/pccbb/pccbb_pci.c ============================================================================== --- head/sys/dev/pccbb/pccbb_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/pccbb/pccbb_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -471,10 +471,7 @@ cbb_chipinit(struct cbb_softc *sc) pci_write_config(sc->dev, PCIR_SUBBUS_2, sc->subbus, 1); /* Enable memory access */ - PCI_MASK_CONFIG(sc->dev, PCIR_COMMAND, - | PCIM_CMD_MEMEN - | PCIM_CMD_PORTEN - | PCIM_CMD_BUSMASTEREN, 2); + pci_enable_busmaster(sc->dev); /* disable Legacy IO */ switch (sc->chipset) { Modified: head/sys/dev/pst/pst-pci.c ============================================================================== --- head/sys/dev/pst/pst-pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/pst/pst-pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -88,9 +88,7 @@ iop_pci_attach(device_t dev) RF_SHAREABLE | RF_ACTIVE); /* now setup the infrastructure to talk to the device */ - pci_write_config(dev, PCIR_COMMAND, - pci_read_config(dev, PCIR_COMMAND, 1) | - PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, 1); + pci_enable_busmaster(dev); sc->ibase = rman_get_virtual(sc->r_mem); sc->reg = (struct i2o_registers *)sc->ibase; Modified: head/sys/dev/rp/rp_pci.c ============================================================================== --- head/sys/dev/rp/rp_pci.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/rp/rp_pci.c Mon Aug 12 23:30:01 2013 (r254263) @@ -151,7 +151,6 @@ rp_pciattach(device_t dev) CONTROLLER_t *ctlp; int unit; int retval; - u_int32_t stcmd; ctlp = device_get_softc(dev); bzero(ctlp, sizeof(*ctlp)); @@ -161,13 +160,6 @@ rp_pciattach(device_t dev) ctlp->aiop2off = rp_pci_aiop2off; ctlp->ctlmask = rp_pci_ctlmask; - /* Wake up the device. */ - stcmd = pci_read_config(dev, PCIR_COMMAND, 4); - if ((stcmd & PCIM_CMD_PORTEN) == 0) { - stcmd |= (PCIM_CMD_PORTEN); - pci_write_config(dev, PCIR_COMMAND, 4, stcmd); - } - /* The IO ports of AIOPs for a PCI controller are continuous. */ ctlp->io_num = 1; ctlp->io_rid = malloc(sizeof(*(ctlp->io_rid)) * ctlp->io_num, M_DEVBUF, M_NOWAIT | M_ZERO); Modified: head/sys/dev/safe/safe.c ============================================================================== --- head/sys/dev/safe/safe.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/safe/safe.c Mon Aug 12 23:30:01 2013 (r254263) @@ -220,28 +220,15 @@ safe_attach(device_t dev) { struct safe_softc *sc = device_get_softc(dev); u_int32_t raddr; - u_int32_t cmd, i, devinfo; + u_int32_t i, devinfo; int rid; bzero(sc, sizeof (*sc)); sc->sc_dev = dev; /* XXX handle power management */ - - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cmd, 4); - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - if (!(cmd & PCIM_CMD_MEMEN)) { - device_printf(dev, "failed to enable memory mapping\n"); - goto bad; - } - - if (!(cmd & PCIM_CMD_BUSMASTEREN)) { - device_printf(dev, "failed to enable bus mastering\n"); - goto bad; - } + pci_enable_busmaster(dev); /* * Setup memory-mapping of PCI registers. Modified: head/sys/dev/sound/pci/als4000.c ============================================================================== --- head/sys/dev/sound/pci/als4000.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/sound/pci/als4000.c Mon Aug 12 23:30:01 2013 (r254263) @@ -806,16 +806,13 @@ static int als_pci_attach(device_t dev) { struct sc_info *sc; - u_int32_t data; char status[SND_STATUSLEN]; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_als4000 softc"); sc->dev = dev; - data = pci_read_config(dev, PCIR_COMMAND, 2); - data |= (PCIM_CMD_PORTEN | PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, data, 2); + pci_enable_busmaster(dev); /* * By default the power to the various components on the * ALS4000 is entirely controlled by the pci powerstate. We Modified: head/sys/dev/sound/pci/aureal.c ============================================================================== --- head/sys/dev/sound/pci/aureal.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/sound/pci/aureal.c Mon Aug 12 23:30:01 2013 (r254263) @@ -550,7 +550,6 @@ au_pci_probe(device_t dev) static int au_pci_attach(device_t dev) { - u_int32_t data; struct au_info *au; int type[10]; int regid[10]; @@ -565,10 +564,7 @@ au_pci_attach(device_t dev) au = malloc(sizeof(*au), M_DEVBUF, M_WAITOK | M_ZERO); au->unit = device_get_unit(dev); - data = pci_read_config(dev, PCIR_COMMAND, 2); - data |= (PCIM_CMD_PORTEN|PCIM_CMD_MEMEN|PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, data, 2); - data = pci_read_config(dev, PCIR_COMMAND, 2); + pci_enable_busmaster(dev); j=0; /* XXX dfr: is this strictly necessary? */ Modified: head/sys/dev/sound/pci/cmi.c ============================================================================== --- head/sys/dev/sound/pci/cmi.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/sound/pci/cmi.c Mon Aug 12 23:30:01 2013 (r254263) @@ -935,15 +935,11 @@ static int cmi_attach(device_t dev) { struct sc_info *sc; - u_int32_t data; char status[SND_STATUSLEN]; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_cmi softc"); - data = pci_read_config(dev, PCIR_COMMAND, 2); - data |= (PCIM_CMD_PORTEN|PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, data, 2); - data = pci_read_config(dev, PCIR_COMMAND, 2); + pci_enable_busmaster(dev); sc->dev = dev; sc->regid = PCIR_BAR(0); Modified: head/sys/dev/sound/pci/cs4281.c ============================================================================== --- head/sys/dev/sound/pci/cs4281.c Mon Aug 12 22:54:38 2013 (r254262) +++ head/sys/dev/sound/pci/cs4281.c Mon Aug 12 23:30:01 2013 (r254263) @@ -760,16 +760,13 @@ cs4281_pci_attach(device_t dev) { struct sc_info *sc; struct ac97_info *codec = NULL; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 00:25:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 57764884; Tue, 13 Aug 2013 00:25:40 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 45B5E2750; Tue, 13 Aug 2013 00:25:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D0PeL7056271; Tue, 13 Aug 2013 00:25:40 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D0Pe4Q056270; Tue, 13 Aug 2013 00:25:40 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201308130025.r7D0Pe4Q056270@svn.freebsd.org> From: Jack F Vogel Date: Tue, 13 Aug 2013 00:25:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254264 - head/sys/dev/e1000 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 00:25:40 -0000 Author: jfv Date: Tue Aug 13 00:25:39 2013 New Revision: 254264 URL: http://svnweb.freebsd.org/changeset/base/254264 Log: Alter the mq_start routine to do a TRYLOCK and call to the locked routine rather than just queueing. The former code was an attempt at getting UDP performance up, but there have been customer reports of problems with it, so the ixgbe approach seems the best solution for now. Modified: head/sys/dev/e1000/if_igb.c Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Mon Aug 12 23:30:01 2013 (r254263) +++ head/sys/dev/e1000/if_igb.c Tue Aug 13 00:25:39 2013 (r254264) @@ -972,7 +972,13 @@ igb_mq_start(struct ifnet *ifp, struct m que = &adapter->queues[i]; err = drbr_enqueue(ifp, txr->br, m); - taskqueue_enqueue(que->tq, &txr->txq_task); + if (err) + return (err); + if (IGB_TX_TRYLOCK(txr)) { + err = igb_mq_start_locked(ifp, txr); + IGB_TX_UNLOCK(txr); + } else + taskqueue_enqueue(que->tq, &txr->txq_task); return (err); } From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 02:31:46 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 99932F49; Tue, 13 Aug 2013 02:31:46 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 873ED2E5C; Tue, 13 Aug 2013 02:31:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D2Vkav003908; Tue, 13 Aug 2013 02:31:46 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D2VkBn003907; Tue, 13 Aug 2013 02:31:46 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308130231.r7D2VkBn003907@svn.freebsd.org> From: Glen Barber Date: Tue, 13 Aug 2013 02:31:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254265 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 02:31:46 -0000 Author: gjb Date: Tue Aug 13 02:31:46 2013 New Revision: 254265 URL: http://svnweb.freebsd.org/changeset/base/254265 Log: Make sure bootonly.iso for -BETAs and -RCs use the releases/ directory on the FTP mirrors to fetch distributions, since these are always pushed to releases/ during the release cycle. MFC after: 3 days X-MFC-To: stable/9, releng/9.2 Modified: head/usr.sbin/bsdinstall/scripts/mirrorselect Modified: head/usr.sbin/bsdinstall/scripts/mirrorselect ============================================================================== --- head/usr.sbin/bsdinstall/scripts/mirrorselect Tue Aug 13 00:25:39 2013 (r254264) +++ head/usr.sbin/bsdinstall/scripts/mirrorselect Tue Aug 13 02:31:46 2013 (r254265) @@ -162,7 +162,7 @@ exec 3>&- _UNAME_R=`uname -r` case ${_UNAME_R} in - *-CURRENT|*-STABLE|*-BETA*|*-PRERELEASE|*-RC*) + *-CURRENT|*-STABLE|*-PRERELEASE) RELDIR="snapshots" ;; *) From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 03:07:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 96D11747; Tue, 13 Aug 2013 03:07:50 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 838562109; Tue, 13 Aug 2013 03:07:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D37oPI017341; Tue, 13 Aug 2013 03:07:50 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D37nZl017329; Tue, 13 Aug 2013 03:07:49 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308130307.r7D37nZl017329@svn.freebsd.org> From: Mark Johnston Date: Tue, 13 Aug 2013 03:07:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254266 - in head: share/man/man9 sys/kern sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 03:07:50 -0000 Author: markj Date: Tue Aug 13 03:07:49 2013 New Revision: 254266 URL: http://svnweb.freebsd.org/changeset/base/254266 Log: Add event handlers for module load and unload events. The load handlers are called after the module has been loaded, and the unload handlers are called before the module is unloaded. Moreover, the module unload handlers may return an error to prevent the unload from proceeding. Reviewed by: avg MFC after: 2 weeks Modified: head/share/man/man9/EVENTHANDLER.9 head/sys/kern/kern_linker.c head/sys/sys/eventhandler.h Modified: head/share/man/man9/EVENTHANDLER.9 ============================================================================== --- head/share/man/man9/EVENTHANDLER.9 Tue Aug 13 02:31:46 2013 (r254265) +++ head/share/man/man9/EVENTHANDLER.9 Tue Aug 13 03:07:49 2013 (r254266) @@ -23,7 +23,7 @@ .\" SUCH DAMAGE. .\" $FreeBSD$ .\" -.Dd May 11, 2012 +.Dd August 1, 2013 .Dt EVENTHANDLER 9 .Os .Sh NAME @@ -199,6 +199,12 @@ Callbacks invoked when a new network int Callbacks invoked when a network interface is taken down. .It Vt bpf_track Callbacks invoked when a BPF listener attaches to/detaches from network interface. +.It Vt mod_load +Callbacks invoked after a module has been loaded. +.It Vt mod_unload +Callbacks invoked before a module is about to be unloaded. +These callbacks may be used to return an error and prevent the unload from +proceeding. .It Vt power_profile_change Callbacks invoked when the power profile of the system changes. .It Vt process_exec Modified: head/sys/kern/kern_linker.c ============================================================================== --- head/sys/kern/kern_linker.c Tue Aug 13 02:31:46 2013 (r254265) +++ head/sys/kern/kern_linker.c Tue Aug 13 03:07:49 2013 (r254266) @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -1046,6 +1047,9 @@ kern_kldload(struct thread *td, const ch lf->userrefs++; if (fileid != NULL) *fileid = lf->id; + + EVENTHANDLER_INVOKE(mod_load, lf); + #ifdef HWPMC_HOOKS KLD_DOWNGRADE(); pkm.pm_file = lf->filename; @@ -1101,8 +1105,10 @@ kern_kldunload(struct thread *td, int fi if (lf) { KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs)); - /* Check if there are DTrace probes enabled on this file. */ - if (lf->nenabled > 0) { + EVENTHANDLER_INVOKE(mod_unload, lf, &error); + if (error != 0) + error = EBUSY; + else if (lf->nenabled > 0) { printf("kldunload: attempt to unload file that has" " DTrace probes enabled\n"); error = EBUSY; Modified: head/sys/sys/eventhandler.h ============================================================================== --- head/sys/sys/eventhandler.h Tue Aug 13 02:31:46 2013 (r254265) +++ head/sys/sys/eventhandler.h Tue Aug 13 03:07:49 2013 (r254266) @@ -266,4 +266,11 @@ EVENTHANDLER_DECLARE(nmbclusters_change, EVENTHANDLER_DECLARE(nmbufs_change, uma_zone_chfn); EVENTHANDLER_DECLARE(maxsockets_change, uma_zone_chfn); +/* Module load and unload events */ +struct linker_file; +typedef void (*mod_load_fn)(void *, struct linker_file *); +typedef void (*mod_unload_fn)(void *, struct linker_file *, int *); +EVENTHANDLER_DECLARE(mod_load, mod_load_fn); +EVENTHANDLER_DECLARE(mod_unload, mod_unload_fn); + #endif /* SYS_EVENTHANDLER_H */ From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 03:09:00 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D6489891; Tue, 13 Aug 2013 03:09:00 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C3DF82117; Tue, 13 Aug 2013 03:09:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D390wL017570; Tue, 13 Aug 2013 03:09:00 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D390LF017567; Tue, 13 Aug 2013 03:09:00 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308130309.r7D390LF017567@svn.freebsd.org> From: Mark Johnston Date: Tue, 13 Aug 2013 03:09:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254267 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 03:09:00 -0000 Author: markj Date: Tue Aug 13 03:09:00 2013 New Revision: 254267 URL: http://svnweb.freebsd.org/changeset/base/254267 Log: Remove some unused fields from struct linker_file. They were added in r172862 for use by the DTrace SDT framework but don't seem to have ever been used. MFC after: 2 weeks Modified: head/sys/kern/kern_linker.c head/sys/sys/linker.h Modified: head/sys/kern/kern_linker.c ============================================================================== --- head/sys/kern/kern_linker.c Tue Aug 13 03:07:49 2013 (r254266) +++ head/sys/kern/kern_linker.c Tue Aug 13 03:09:00 2013 (r254267) @@ -583,8 +583,6 @@ linker_make_file(const char *pathname, l lf->ndeps = 0; lf->deps = NULL; lf->loadcnt = ++loadcnt; - lf->sdt_probes = NULL; - lf->sdt_nprobes = 0; STAILQ_INIT(&lf->common); TAILQ_INIT(&lf->modules); TAILQ_INSERT_TAIL(&linker_files, lf, link); Modified: head/sys/sys/linker.h ============================================================================== --- head/sys/sys/linker.h Tue Aug 13 03:07:49 2013 (r254266) +++ head/sys/sys/linker.h Tue Aug 13 03:09:00 2013 (r254267) @@ -92,10 +92,6 @@ struct linker_file { */ int nenabled; /* number of enabled probes. */ int fbt_nentries; /* number of fbt entries created. */ - void *sdt_probes; - int sdt_nentries; - size_t sdt_nprobes; - size_t sdt_size; }; /* From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 03:10:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AE332AB7; Tue, 13 Aug 2013 03:10:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 99F99215B; Tue, 13 Aug 2013 03:10:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D3Af8E019777; Tue, 13 Aug 2013 03:10:41 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D3Adc4019765; Tue, 13 Aug 2013 03:10:39 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308130310.r7D3Adc4019765@svn.freebsd.org> From: Mark Johnston Date: Tue, 13 Aug 2013 03:10:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254268 - in head/sys: cddl/contrib/opensolaris/uts/common/dtrace cddl/contrib/opensolaris/uts/common/sys cddl/dev/dtrace cddl/dev/fbt cddl/dev/sdt kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 03:10:41 -0000 Author: markj Date: Tue Aug 13 03:10:39 2013 New Revision: 254268 URL: http://svnweb.freebsd.org/changeset/base/254268 Log: FreeBSD's DTrace implementation has a few problems with respect to handling probes declared in a kernel module when that module is unloaded. In particular, * Unloading a module with active SDT probes will cause a panic. [1] * A module's (FBT/SDT) probes aren't destroyed when the module is unloaded; trying to use them after the fact will generally cause a panic. This change fixes both problems by porting the DTrace module load/unload handlers from illumos and registering them with the corresponding EVENTHANDLER(9) handlers. This allows the DTrace framework to destroy all probes defined in a module when that module is unloaded, and to prevent a module unload from proceeding if some of its probes are active. The latter problem has already been fixed for FBT probes by checking lf->nenabled in kern_kldunload(), but moving the check into the DTrace framework generalizes it to all kernel providers and also fixes a race in the current implementation (since a probe may be activated between the check and the call to linker_file_unload()). Additionally, the SDT implementation has been reworked to define SDT providers/probes/argtypes in linker sets rather than using SYSINIT/SYSUNINIT to create and destroy SDT probes when a module is loaded or unloaded. This simplifies things quite a bit since it means that pretty much all of the SDT code can live in sdt.ko, and since it becomes easier to integrate SDT with the DTrace framework. Furthermore, this allows FreeBSD to be quite flexible in that SDT providers spanning multiple modules can be created on the fly when a module is loaded; at the moment it looks like illumos' SDT implementation requires all SDT probes to be statically defined in a single kernel table. PR: 166927, 166926, 166928 Reported by: davide [1] Reviewed by: avg, trociny (earlier version) MFC after: 1 month Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h head/sys/cddl/dev/dtrace/dtrace_load.c head/sys/cddl/dev/dtrace/dtrace_unload.c head/sys/cddl/dev/fbt/fbt.c head/sys/cddl/dev/sdt/sdt.c head/sys/kern/kern_linker.c head/sys/kern/kern_sdt.c head/sys/sys/sdt.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Tue Aug 13 03:10:39 2013 (r254268) @@ -116,6 +116,7 @@ #if !defined(sun) #include #include +#include #include #include #include @@ -240,6 +241,8 @@ int dtrace_in_probe; /* non-zero if exe #if defined(__i386__) || defined(__amd64__) || defined(__mips__) || defined(__powerpc__) uintptr_t dtrace_in_probe_addr; /* Address of invop when already in probe */ #endif +static eventhandler_tag dtrace_modload_tag; +static eventhandler_tag dtrace_modunload_tag; #endif /* @@ -8098,19 +8101,6 @@ dtrace_probe_description(const dtrace_pr (void) strncpy(pdp->dtpd_name, prp->dtpr_name, DTRACE_NAMELEN - 1); } -#if !defined(sun) -static int -dtrace_probe_provide_cb(linker_file_t lf, void *arg) -{ - dtrace_provider_t *prv = (dtrace_provider_t *) arg; - - prv->dtpv_pops.dtps_provide_module(prv->dtpv_arg, lf); - - return(0); -} -#endif - - /* * Called to indicate that a probe -- or probes -- should be provided by a * specfied provider. If the specified description is NULL, the provider will @@ -8166,8 +8156,6 @@ dtrace_probe_provide(dtrace_probedesc_t } while ((ctl = ctl->mod_next) != &modules); mutex_exit(&mod_lock); -#else - (void) linker_file_foreach(dtrace_probe_provide_cb, prv); #endif } while (all && (prv = prv->dtpv_next) != NULL); } @@ -15152,7 +15140,6 @@ dtrace_helpers_duplicate(proc_t *from, p dtrace_helper_provider_register(to, newhelp, NULL); } -#if defined(sun) /* * DTrace Hook Functions */ @@ -15166,7 +15153,9 @@ dtrace_module_loaded(modctl_t *ctl) mutex_enter(&mod_lock); #endif +#if defined(sun) ASSERT(ctl->mod_busy); +#endif /* * We're going to call each providers per-module provide operation @@ -15214,12 +15203,29 @@ dtrace_module_loaded(modctl_t *ctl) } static void +#if defined(sun) dtrace_module_unloaded(modctl_t *ctl) +#else +dtrace_module_unloaded(modctl_t *ctl, int *error) +#endif { dtrace_probe_t template, *probe, *first, *next; dtrace_provider_t *prov; +#if !defined(sun) + char modname[DTRACE_MODNAMELEN]; + size_t len; +#endif +#if defined(sun) template.dtpr_mod = ctl->mod_modname; +#else + /* Handle the fact that ctl->filename may end in ".ko". */ + strlcpy(modname, ctl->filename, sizeof(modname)); + len = strlen(ctl->filename); + if (len > 3 && strcmp(modname + len - 3, ".ko") == 0) + modname[len - 3] = '\0'; + template.dtpr_mod = modname; +#endif mutex_enter(&dtrace_provider_lock); #if defined(sun) @@ -15227,6 +15233,18 @@ dtrace_module_unloaded(modctl_t *ctl) #endif mutex_enter(&dtrace_lock); +#if !defined(sun) + if (ctl->nenabled > 0) { + /* Don't allow unloads if a probe is enabled. */ + mutex_exit(&dtrace_provider_lock); + mutex_exit(&dtrace_lock); + *error = -1; + printf( + "kldunload: attempt to unload module that has DTrace probes enabled\n"); + return; + } +#endif + if (dtrace_bymod == NULL) { /* * The DTrace module is loaded (obviously) but not attached; @@ -15260,8 +15278,13 @@ dtrace_module_unloaded(modctl_t *ctl) * probe, either. */ if (dtrace_err_verbose) { +#if defined(sun) cmn_err(CE_WARN, "unloaded module '%s' had " "enabled probes", ctl->mod_modname); +#else + cmn_err(CE_WARN, "unloaded module '%s' had " + "enabled probes", modname); +#endif } return; @@ -15304,7 +15327,11 @@ dtrace_module_unloaded(modctl_t *ctl) kmem_free(probe->dtpr_mod, strlen(probe->dtpr_mod) + 1); kmem_free(probe->dtpr_func, strlen(probe->dtpr_func) + 1); kmem_free(probe->dtpr_name, strlen(probe->dtpr_name) + 1); +#if defined(sun) vmem_free(dtrace_arena, (void *)(uintptr_t)probe->dtpr_id, 1); +#else + free_unr(dtrace_arena, probe->dtpr_id); +#endif kmem_free(probe, sizeof (dtrace_probe_t)); } @@ -15315,6 +15342,26 @@ dtrace_module_unloaded(modctl_t *ctl) mutex_exit(&dtrace_provider_lock); } +#if !defined(sun) +static void +dtrace_mod_load(void *arg __unused, linker_file_t lf) +{ + + dtrace_module_loaded(lf); +} + +static void +dtrace_mod_unload(void *arg __unused, linker_file_t lf, int *error) +{ + + if (*error != 0) + /* We already have an error, so don't do anything. */ + return; + dtrace_module_unloaded(lf, error); +} +#endif + +#if defined(sun) static void dtrace_suspend(void) { Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h Tue Aug 13 03:10:39 2013 (r254268) @@ -2312,8 +2312,10 @@ extern void dtrace_membar_producer(void) extern void dtrace_membar_consumer(void); extern void (*dtrace_cpu_init)(processorid_t); +#if defined(sun) extern void (*dtrace_modload)(modctl_t *); extern void (*dtrace_modunload)(modctl_t *); +#endif extern void (*dtrace_helpers_cleanup)(void); extern void (*dtrace_helpers_fork)(proc_t *parent, proc_t *child); extern void (*dtrace_cpustart_init)(void); Modified: head/sys/cddl/dev/dtrace/dtrace_load.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_load.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/cddl/dev/dtrace/dtrace_load.c Tue Aug 13 03:10:39 2013 (r254268) @@ -56,6 +56,12 @@ dtrace_load(void *dummy) /* Hang our hook for exceptions. */ dtrace_invop_init(); + /* Register callbacks for module load and unload events. */ + dtrace_modload_tag = EVENTHANDLER_REGISTER(mod_load, + dtrace_mod_load, NULL, EVENTHANDLER_PRI_ANY); + dtrace_modunload_tag = EVENTHANDLER_REGISTER(mod_unload, + dtrace_mod_unload, NULL, EVENTHANDLER_PRI_ANY); + /* * Initialise the mutexes without 'witness' because the dtrace * code is mostly written to wait for memory. To have the Modified: head/sys/cddl/dev/dtrace/dtrace_unload.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_unload.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/cddl/dev/dtrace/dtrace_unload.c Tue Aug 13 03:10:39 2013 (r254268) @@ -67,6 +67,8 @@ dtrace_unload() } dtrace_provider = NULL; + EVENTHANDLER_DEREGISTER(mod_load, dtrace_modload_tag); + EVENTHANDLER_DEREGISTER(mod_unload, dtrace_modunload_tag); if ((state = dtrace_anon_grab()) != NULL) { /* Modified: head/sys/cddl/dev/fbt/fbt.c ============================================================================== --- head/sys/cddl/dev/fbt/fbt.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/cddl/dev/fbt/fbt.c Tue Aug 13 03:10:39 2013 (r254268) @@ -1335,6 +1335,15 @@ fbt_getargdesc(void *arg __unused, dtrac return; } +static int +fbt_linker_file_cb(linker_file_t lf, void *arg) +{ + + fbt_provide_module(arg, lf); + + return (0); +} + static void fbt_load(void *dummy) { @@ -1359,8 +1368,10 @@ fbt_load(void *dummy) if (dtrace_register("fbt", &fbt_attr, DTRACE_PRIV_USER, NULL, &fbt_pops, NULL, &fbt_id) != 0) return; -} + /* Create probes for the kernel and already-loaded modules. */ + linker_file_foreach(fbt_linker_file_cb, NULL); +} static int fbt_unload() Modified: head/sys/cddl/dev/sdt/sdt.c ============================================================================== --- head/sys/cddl/dev/sdt/sdt.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/cddl/dev/sdt/sdt.c Tue Aug 13 03:10:39 2013 (r254268) @@ -24,36 +24,44 @@ * */ -#ifndef KDTRACE_HOOKS -#define KDTRACE_HOOKS -#endif +#include "opt_kdtrace.h" #include #include #include + #include +#include #include #include -#include #include +#include +#include +#include #include #include - -#include +#include #include -#define SDT_ADDR2NDX(addr) (((uintptr_t)(addr)) >> 4) +#include +#include -static d_open_t sdt_open; -static int sdt_unload(void); +/* DTrace methods. */ static void sdt_getargdesc(void *, dtrace_id_t, void *, dtrace_argdesc_t *); static void sdt_provide_probes(void *, dtrace_probedesc_t *); static void sdt_destroy(void *, dtrace_id_t, void *); static void sdt_enable(void *, dtrace_id_t, void *); static void sdt_disable(void *, dtrace_id_t, void *); + +static d_open_t sdt_open; static void sdt_load(void *); -static int sdt_provider_unreg_callback(struct sdt_provider *prov, - void *arg); +static int sdt_unload(void *); +static void sdt_create_provider(struct sdt_provider *); +static void sdt_create_probe(struct sdt_probe *); +static void sdt_modload(void *, struct linker_file *); +static void sdt_modunload(void *, struct linker_file *, int *); + +static MALLOC_DEFINE(M_SDT, "SDT", "DTrace SDT providers"); static struct cdevsw sdt_cdevsw = { .d_version = D_VERSION, @@ -79,141 +87,261 @@ static dtrace_pops_t sdt_pops = { sdt_getargdesc, NULL, NULL, - sdt_destroy + sdt_destroy, }; -static struct cdev *sdt_cdev; +static struct cdev *sdt_cdev; -static int -sdt_argtype_callback(struct sdt_argtype *argtype, void *arg) -{ - dtrace_argdesc_t *desc = arg; +static TAILQ_HEAD(, sdt_provider) sdt_prov_list; - if (desc->dtargd_ndx == argtype->ndx) { - desc->dtargd_mapping = desc->dtargd_ndx; /* XXX */ - strlcpy(desc->dtargd_native, argtype->type, - sizeof(desc->dtargd_native)); - desc->dtargd_xlate[0] = '\0'; /* XXX */ - } - - return (0); -} +eventhandler_tag modload_tag; +eventhandler_tag modunload_tag; static void -sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc) +sdt_create_provider(struct sdt_provider *prov) { - struct sdt_probe *probe = parg; + struct sdt_provider *curr, *newprov; - if (desc->dtargd_ndx < probe->n_args) - (void) (sdt_argtype_listall(probe, sdt_argtype_callback, desc)); - else - desc->dtargd_ndx = DTRACE_ARGNONE; + TAILQ_FOREACH(curr, &sdt_prov_list, prov_entry) + if (strcmp(prov->name, curr->name) == 0) { + /* The provider has already been defined. */ + curr->sdt_refs++; + return; + } - return; + /* + * Make a copy of prov so that we don't lose fields if its module is + * unloaded but the provider isn't destroyed. This could happen with + * a provider that spans multiple modules. + */ + newprov = malloc(sizeof(*newprov), M_SDT, M_WAITOK | M_ZERO); + newprov->name = strdup(prov->name, M_SDT); + prov->sdt_refs = newprov->sdt_refs = 1; + TAILQ_INIT(&newprov->probe_list); + + TAILQ_INSERT_TAIL(&sdt_prov_list, newprov, prov_entry); + + (void)dtrace_register(newprov->name, &sdt_attr, DTRACE_PRIV_USER, NULL, + &sdt_pops, NULL, (dtrace_provider_id_t *)&newprov->id); + prov->id = newprov->id; } -static int -sdt_probe_callback(struct sdt_probe *probe, void *arg __unused) +static void +sdt_create_probe(struct sdt_probe *probe) { - struct sdt_provider *prov = probe->prov; - char mod[64]; - char func[64]; - char name[64]; + struct sdt_provider *prov; + char mod[DTRACE_MODNAMELEN]; + char func[DTRACE_FUNCNAMELEN]; + char name[DTRACE_NAMELEN]; + size_t len; + + TAILQ_FOREACH(prov, &sdt_prov_list, prov_entry) + if (strcmp(prov->name, probe->prov->name) == 0) + break; + + KASSERT(prov != NULL, ("probe defined without a provider")); + + /* If no module name was specified, use the module filename. */ + if (*probe->mod == 0) { + len = strlcpy(mod, probe->sdtp_lf->filename, sizeof(mod)); + if (len > 3 && strcmp(mod + len - 3, ".ko") == 0) + mod[len - 3] = '\0'; + } else + strlcpy(mod, probe->mod, sizeof(mod)); /* * Unfortunately this is necessary because the Solaris DTrace * code mixes consts and non-consts with casts to override * the incompatibilies. On FreeBSD, we use strict warnings - * in gcc, so we have to respect const vs non-const. + * in the C compiler, so we have to respect const vs non-const. */ - strlcpy(mod, probe->mod, sizeof(mod)); strlcpy(func, probe->func, sizeof(func)); strlcpy(name, probe->name, sizeof(name)); - if (dtrace_probe_lookup(prov->id, mod, func, name) != 0) - return (0); + if (dtrace_probe_lookup(prov->id, mod, func, name) != DTRACE_IDNONE) + return; - (void) dtrace_probe_create(prov->id, probe->mod, probe->func, - probe->name, 1, probe); + TAILQ_INSERT_TAIL(&prov->probe_list, probe, probe_entry); - return (0); + (void)dtrace_probe_create(prov->id, mod, func, name, 1, probe); } -static int -sdt_provider_entry(struct sdt_provider *prov, void *arg) +/* Probes are created through the SDT module load/unload hook. */ +static void +sdt_provide_probes(void *arg, dtrace_probedesc_t *desc) { - return (sdt_probe_listall(prov, sdt_probe_callback, NULL)); } static void -sdt_provide_probes(void *arg, dtrace_probedesc_t *desc) +sdt_enable(void *arg __unused, dtrace_id_t id, void *parg) { - if (desc != NULL) - return; + struct sdt_probe *probe = parg; - (void) sdt_provider_listall(sdt_provider_entry, NULL); + probe->id = id; + probe->sdtp_lf->nenabled++; } static void -sdt_destroy(void *arg, dtrace_id_t id, void *parg) +sdt_disable(void *arg __unused, dtrace_id_t id, void *parg) { - /* Nothing to do here. */ + struct sdt_probe *probe = parg; + + KASSERT(probe->sdtp_lf->nenabled > 0, ("no probes enabled")); + + probe->id = 0; + probe->sdtp_lf->nenabled--; } static void -sdt_enable(void *arg, dtrace_id_t id, void *parg) +sdt_getargdesc(void *arg, dtrace_id_t id, void *parg, dtrace_argdesc_t *desc) { + struct sdt_argtype *argtype; struct sdt_probe *probe = parg; - probe->id = id; + if (desc->dtargd_ndx < probe->n_args) { + TAILQ_FOREACH(argtype, &probe->argtype_list, argtype_entry) { + if (desc->dtargd_ndx == argtype->ndx) { + /* XXX */ + desc->dtargd_mapping = desc->dtargd_ndx; + strlcpy(desc->dtargd_native, argtype->type, + sizeof(desc->dtargd_native)); + desc->dtargd_xlate[0] = '\0'; /* XXX */ + } + } + } else + desc->dtargd_ndx = DTRACE_ARGNONE; } static void -sdt_disable(void *arg, dtrace_id_t id, void *parg) +sdt_destroy(void *arg, dtrace_id_t id, void *parg) { - struct sdt_probe *probe = parg; + struct sdt_probe *probe; - probe->id = 0; + probe = parg; + TAILQ_REMOVE(&probe->prov->probe_list, probe, probe_entry); +} + +/* + * Called from the kernel linker when a module is loaded, before + * dtrace_module_loaded() is called. This is done so that it's possible to + * register new providers when modules are loaded. We cannot do this in the + * provide_module method since it's called with the provider lock held + * and dtrace_register() will try to acquire it again. + */ +static void +sdt_modload(void *arg __unused, struct linker_file *lf) +{ + struct sdt_provider **prov, **begin, **end; + struct sdt_probe **probe, **p_begin, **p_end; + struct sdt_argtype **argtype, **a_begin, **a_end; + + if (linker_file_lookup_set(lf, "sdt_providers_set", &begin, &end, NULL)) + return; + for (prov = begin; prov < end; prov++) + sdt_create_provider(*prov); + + if (linker_file_lookup_set(lf, "sdt_probes_set", &p_begin, &p_end, + NULL)) + return; + for (probe = p_begin; probe < p_end; probe++) { + (*probe)->sdtp_lf = lf; + sdt_create_probe(*probe); + TAILQ_INIT(&(*probe)->argtype_list); + } + + if (linker_file_lookup_set(lf, "sdt_argtypes_set", &a_begin, &a_end, + NULL)) + return; + for (argtype = a_begin; argtype < a_end; argtype++) { + (*argtype)->probe->n_args++; + TAILQ_INSERT_TAIL(&(*argtype)->probe->argtype_list, *argtype, + argtype_entry); + } +} + +static void +sdt_modunload(void *arg __unused, struct linker_file *lf, int *error __unused) +{ + struct sdt_provider *prov, **curr, **begin, **end, *tmp; + + if (*error != 0) + /* We already have an error, so don't do anything. */ + return; + else if (linker_file_lookup_set(lf, "sdt_providers_set", &begin, &end, NULL)) + /* No DTrace providers are declared in this module. */ + return; + + /* + * Go through all the providers declared in this module and unregister + * any that aren't declared in another loaded module. + */ + for (curr = begin; curr < end; curr++) { + TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) { + if (strcmp(prov->name, (*curr)->name) == 0) { + if (prov->sdt_refs == 1) { + TAILQ_REMOVE(&sdt_prov_list, prov, + prov_entry); + dtrace_unregister(prov->id); + free(prov->name, M_SDT); + free(prov, M_SDT); + } else + prov->sdt_refs--; + break; + } + } + } } static int -sdt_provider_reg_callback(struct sdt_provider *prov, void *arg __unused) +sdt_linker_file_cb(linker_file_t lf, void *arg __unused) { - return (dtrace_register(prov->name, &sdt_attr, DTRACE_PRIV_USER, - NULL, &sdt_pops, NULL, (dtrace_provider_id_t *) &prov->id)); + + sdt_modload(NULL, lf); + + return (0); } static void -sdt_load(void *dummy) +sdt_load(void *arg __unused) { + + TAILQ_INIT(&sdt_prov_list); + /* Create the /dev/dtrace/sdt entry. */ sdt_cdev = make_dev(&sdt_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "dtrace/sdt"); sdt_probe_func = dtrace_probe; - sdt_register_callbacks(sdt_provider_reg_callback, NULL, - sdt_provider_unreg_callback, NULL, sdt_probe_callback, NULL); -} + modload_tag = EVENTHANDLER_REGISTER(mod_load, sdt_modload, NULL, + EVENTHANDLER_PRI_ANY); + modunload_tag = EVENTHANDLER_REGISTER(mod_unload, sdt_modunload, NULL, + EVENTHANDLER_PRI_ANY); -static int -sdt_provider_unreg_callback(struct sdt_provider *prov, void *arg __unused) -{ - return (dtrace_unregister(prov->id)); + /* Pick up probes from the kernel and already-loaded modules. */ + linker_file_foreach(sdt_linker_file_cb, NULL); } static int -sdt_unload() +sdt_unload(void *arg __unused) { - int error = 0; + struct sdt_provider *prov, *tmp; + + EVENTHANDLER_DEREGISTER(mod_load, modload_tag); + EVENTHANDLER_DEREGISTER(mod_unload, modunload_tag); sdt_probe_func = sdt_probe_stub; - sdt_deregister_callbacks(); - + TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) { + TAILQ_REMOVE(&sdt_prov_list, prov, prov_entry); + dtrace_unregister(prov->id); + free(prov->name, M_SDT); + free(prov, M_SDT); + } + destroy_dev(sdt_cdev); - return (error); + return (0); } /* ARGSUSED */ @@ -235,7 +363,6 @@ sdt_modevent(module_t mod __unused, int default: error = EOPNOTSUPP; break; - } return (error); @@ -243,8 +370,10 @@ sdt_modevent(module_t mod __unused, int /* ARGSUSED */ static int -sdt_open(struct cdev *dev __unused, int oflags __unused, int devtype __unused, struct thread *td __unused) +sdt_open(struct cdev *dev __unused, int oflags __unused, int devtype __unused, + struct thread *td __unused) { + return (0); } Modified: head/sys/kern/kern_linker.c ============================================================================== --- head/sys/kern/kern_linker.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/kern/kern_linker.c Tue Aug 13 03:10:39 2013 (r254268) @@ -1106,11 +1106,7 @@ kern_kldunload(struct thread *td, int fi EVENTHANDLER_INVOKE(mod_unload, lf, &error); if (error != 0) error = EBUSY; - else if (lf->nenabled > 0) { - printf("kldunload: attempt to unload file that has" - " DTrace probes enabled\n"); - error = EBUSY; - } else if (lf->userrefs == 0) { + else if (lf->userrefs == 0) { /* * XXX: maybe LINKER_UNLOAD_FORCE should override ? */ Modified: head/sys/kern/kern_sdt.c ============================================================================== --- head/sys/kern/kern_sdt.c Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/kern/kern_sdt.c Tue Aug 13 03:10:39 2013 (r254268) @@ -23,317 +23,29 @@ * SUCH DAMAGE. * * $FreeBSD$ - * - * Backend for the Statically Defined Tracing (SDT) kernel support. This is - * required to allow a module to load even though DTrace kernel support may - * not be present. A module may be built with SDT probes in it which are - * registered and deregistered via SYSINIT/SYSUNINIT. - * */ #include "opt_kdtrace.h" -#include #include #include -#include -#include -#include -#include -#include #include /* - * This is the list of statically defined tracing providers. - */ -static TAILQ_HEAD(sdt_provider_list_head, sdt_provider) sdt_provider_list; - -/* - * Mutex to serialise access to the SDT provider list. - */ -static struct sx sdt_sx; - -/* - * Hook for the DTrace probe function. The 'sdt' provider will set this - * to dtrace_probe when it loads. + * Hook for the DTrace probe function. The SDT provider will set this to + * dtrace_probe() when it loads. */ sdt_probe_func_t sdt_probe_func = sdt_probe_stub; -static sdt_provider_listall_func_t sdt_provider_register_func = NULL; -static sdt_provider_listall_func_t sdt_provider_deregister_func = NULL; -static sdt_probe_listall_func_t sdt_probe_register_func = NULL; - -static void *sdt_provider_register_arg; -static void *sdt_provider_deregister_arg; -static void *sdt_probe_register_arg; - -static int sdt_provider_listall_locked(sdt_provider_listall_func_t, void *); - /* * This is a stub for probe calls in case kernel DTrace support isn't - * compiled in. It should never get called because there is no DTrace - * support to enable it. + * enabled. It should never get called because there is no DTrace support + * to enable it. */ void sdt_probe_stub(uint32_t id, uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3, uintptr_t arg4) { - printf("sdt_probe_stub: Why did this get called?\n"); -} - -/* - * Called from SYSINIT to register a provider. - */ -void -sdt_provider_register(void *arg) -{ - struct sdt_provider *prov = arg; - - sx_xlock(&sdt_sx); - - TAILQ_INSERT_TAIL(&sdt_provider_list, prov, prov_entry); - - TAILQ_INIT(&prov->probe_list); - - if (sdt_provider_register_func != NULL) - sdt_provider_register_func(prov, sdt_provider_register_arg); - - sx_xunlock(&sdt_sx); -} - -/* - * Called from SYSUNINIT to de-register a provider. - */ -void -sdt_provider_deregister(void *arg) -{ - struct sdt_provider *prov = arg; - - sx_xlock(&sdt_sx); - - TAILQ_REMOVE(&sdt_provider_list, prov, prov_entry); - - if (sdt_provider_deregister_func != NULL) - sdt_provider_deregister_func(prov, sdt_provider_deregister_arg); - - sx_xunlock(&sdt_sx); -} - -/* - * Called from SYSINIT to register a statically defined trace probe. - */ -void -sdt_probe_register(void *arg) -{ - struct sdt_probe *probe = arg; - - /* - * Check the reference structure version. Only version 1 is - * supported at the moment. - */ - if (probe->version != sizeof(struct sdt_probe)) { - printf("%s:%s:%s has version %d when %d required\n", probe->mod, probe->func, probe->name, probe->version, (int) sizeof(struct sdt_probe)); - return; - } - - sx_xlock(&sdt_sx); - - TAILQ_INSERT_TAIL(&probe->prov->probe_list, probe, probe_entry); - - TAILQ_INIT(&probe->argtype_list); - - probe->state = SDT_INIT; - - if (sdt_probe_register_func != NULL) - sdt_probe_register_func(probe, sdt_provider_register_arg); - - sx_xunlock(&sdt_sx); -} - -/* - * Called from SYSUNINIT to de-register a statically defined trace probe. - */ -void -sdt_probe_deregister(void *arg) -{ - struct sdt_probe *probe = arg; - - sx_xlock(&sdt_sx); - - if (probe->state == SDT_INIT) { - TAILQ_REMOVE(&probe->prov->probe_list, probe, probe_entry); - probe->state = SDT_UNINIT; - } - - sx_xunlock(&sdt_sx); -} - -/* - * Called from SYSINIT to register a statically defined trace probe argument. - */ -void -sdt_argtype_register(void *arg) -{ - struct sdt_argtype *argtype = arg; - - sx_xlock(&sdt_sx); - - TAILQ_INSERT_TAIL(&argtype->probe->argtype_list, argtype, argtype_entry); - - argtype->probe->n_args++; - - sx_xunlock(&sdt_sx); -} - -/* - * Called from SYSUNINIT to de-register a statically defined trace probe argument. - */ -void -sdt_argtype_deregister(void *arg) -{ - struct sdt_argtype *argtype = arg; - - sx_xlock(&sdt_sx); - - TAILQ_REMOVE(&argtype->probe->argtype_list, argtype, argtype_entry); - - sx_xunlock(&sdt_sx); -} - -static void -sdt_init(void *arg) -{ - sx_init_flags(&sdt_sx, "Statically Defined Tracing", SX_NOWITNESS); - - TAILQ_INIT(&sdt_provider_list); -} - -SYSINIT(sdt, SI_SUB_KDTRACE, SI_ORDER_FIRST, sdt_init, NULL); - -static void -sdt_uninit(void *arg) -{ - sx_destroy(&sdt_sx); -} - -SYSUNINIT(sdt, SI_SUB_KDTRACE, SI_ORDER_FIRST, sdt_uninit, NULL); - -/* - * List statically defined tracing providers. - */ -int -sdt_provider_listall(sdt_provider_listall_func_t callback_func, void *arg) -{ - int error; - - sx_xlock(&sdt_sx); - error = sdt_provider_listall_locked(callback_func, arg); - sx_xunlock(&sdt_sx); - - return (error); -} - -static int -sdt_provider_listall_locked(sdt_provider_listall_func_t callback_func, - void *arg) -{ - int error = 0; - struct sdt_provider *prov; - - sx_assert(&sdt_sx, SX_XLOCKED); - - TAILQ_FOREACH(prov, &sdt_provider_list, prov_entry) { - if ((error = callback_func(prov, arg)) != 0) - break; - } - - return (error); -} - -/* - * List statically defined tracing probes. - */ -int -sdt_probe_listall(struct sdt_provider *prov, - sdt_probe_listall_func_t callback_func,void *arg) -{ - int error = 0; - int locked; - struct sdt_probe *probe; - - locked = sx_xlocked(&sdt_sx); - if (!locked) - sx_xlock(&sdt_sx); - - TAILQ_FOREACH(probe, &prov->probe_list, probe_entry) { - if ((error = callback_func(probe, arg)) != 0) - break; - } - - if (!locked) - sx_xunlock(&sdt_sx); - - return (error); -} - -/* - * List statically defined tracing probe arguments. - */ -int -sdt_argtype_listall(struct sdt_probe *probe, - sdt_argtype_listall_func_t callback_func,void *arg) -{ - int error = 0; - int locked; - struct sdt_argtype *argtype; - - locked = sx_xlocked(&sdt_sx); - if (!locked) - sx_xlock(&sdt_sx); - TAILQ_FOREACH(argtype, &probe->argtype_list, argtype_entry) { - if ((error = callback_func(argtype, arg)) != 0) - break; - } - - if (!locked) - sx_xunlock(&sdt_sx); - - return (error); -} - -void sdt_register_callbacks(sdt_provider_listall_func_t register_prov, - void *reg_prov_arg, sdt_provider_listall_func_t deregister_prov, - void *dereg_prov_arg, sdt_probe_listall_func_t register_probe, - void * reg_probe_arg) -{ - - sx_xlock(&sdt_sx); - sdt_provider_register_func = register_prov; - sdt_provider_deregister_func = deregister_prov; - sdt_probe_register_func = register_probe; - - sdt_provider_register_arg = reg_prov_arg; - sdt_provider_deregister_arg = dereg_prov_arg; - sdt_probe_register_arg = reg_probe_arg; - - sdt_provider_listall_locked(register_prov, reg_prov_arg); - sx_xunlock(&sdt_sx); -} - -void sdt_deregister_callbacks(void) -{ - - sx_xlock(&sdt_sx); - sdt_provider_listall_locked(sdt_provider_deregister_func, - sdt_provider_deregister_arg); - - sdt_provider_register_func = NULL; - sdt_provider_deregister_func = NULL; - sdt_probe_register_func = NULL; - - sdt_provider_register_arg = NULL; - sdt_provider_deregister_arg = NULL; - sdt_probe_register_arg = NULL; - sx_xunlock(&sdt_sx); + printf("sdt_probe_stub: Why did this get called?\n"); } Modified: head/sys/sys/sdt.h ============================================================================== --- head/sys/sys/sdt.h Tue Aug 13 03:09:00 2013 (r254267) +++ head/sys/sys/sdt.h Tue Aug 13 03:10:39 2013 (r254268) @@ -77,6 +77,9 @@ #else /* _KERNEL */ +#include +#include + #ifndef KDTRACE_HOOKS #define SDT_PROVIDER_DEFINE(prov) @@ -109,85 +112,26 @@ #else -/* - * This type definition must match that of dtrace_probe. It is defined this *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 06:21:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 80381682; Tue, 13 Aug 2013 06:21:37 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6D5D82BFC; Tue, 13 Aug 2013 06:21:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D6Lb4q056694; Tue, 13 Aug 2013 06:21:37 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D6LbuP056693; Tue, 13 Aug 2013 06:21:37 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308130621.r7D6LbuP056693@svn.freebsd.org> From: Alexander Motin Date: Tue, 13 Aug 2013 06:21:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254269 - head/sys/geom/raid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 06:21:37 -0000 Author: mav Date: Tue Aug 13 06:21:36 2013 New Revision: 254269 URL: http://svnweb.freebsd.org/changeset/base/254269 Log: Fix reasonable but safe Clang warnings. Modified: head/sys/geom/raid/tr_raid5.c Modified: head/sys/geom/raid/tr_raid5.c ============================================================================== --- head/sys/geom/raid/tr_raid5.c Tue Aug 13 03:10:39 2013 (r254268) +++ head/sys/geom/raid/tr_raid5.c Tue Aug 13 06:21:36 2013 (r254269) @@ -106,7 +106,8 @@ g_raid_tr_taste_raid5(struct g_raid_tr_o trs = (struct g_raid_tr_raid5_object *)tr; qual = tr->tro_volume->v_raid_level_qualifier; if (tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID4 && - qual >= 0 && qual <= 1) { + (qual == G_RAID_VOLUME_RLQ_R4P0 || + qual == G_RAID_VOLUME_RLQ_R4P0)) { /* RAID4 */ } else if ((tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID5 || tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID5E || @@ -114,7 +115,10 @@ g_raid_tr_taste_raid5(struct g_raid_tr_o tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID5R || tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID6 || tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAIDMDF) && - qual >= 0 && qual <= 3) { + (qual == G_RAID_VOLUME_RLQ_R5RA || + qual == G_RAID_VOLUME_RLQ_R5RS || + qual == G_RAID_VOLUME_RLQ_R5LA || + qual == G_RAID_VOLUME_RLQ_R5LS)) { /* RAID5/5E/5EE/5R/6/MDF */ } else return (G_RAID_TR_TASTE_FAIL); From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 06:25:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 651E5809; Tue, 13 Aug 2013 06:25:18 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 516862C21; Tue, 13 Aug 2013 06:25:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D6PIqu057419; Tue, 13 Aug 2013 06:25:18 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D6PIGb057418; Tue, 13 Aug 2013 06:25:18 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308130625.r7D6PIGb057418@svn.freebsd.org> From: Erwin Lansing Date: Tue, 13 Aug 2013 06:25:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254270 - stable/9/etc/namedb X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 06:25:18 -0000 Author: erwin Date: Tue Aug 13 06:25:17 2013 New Revision: 254270 URL: http://svnweb.freebsd.org/changeset/base/254270 Log: MFC r254132: Add empty zones for Shared Address Space (RFC 6598) Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S Modified: stable/9/etc/namedb/named.conf Directory Properties: stable/9/etc/ (props changed) Modified: stable/9/etc/namedb/named.conf ============================================================================== --- stable/9/etc/namedb/named.conf Tue Aug 13 06:21:36 2013 (r254269) +++ stable/9/etc/namedb/named.conf Tue Aug 13 06:25:17 2013 (r254270) @@ -153,6 +153,72 @@ zone "30.172.in-addr.arpa" { type master zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +// Shared Address Space (RFC 6598) +zone "64.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "65.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "66.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "67.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "68.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "69.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "70.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "71.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "72.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "73.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "74.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "75.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "76.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "77.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "78.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "79.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "80.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "81.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "82.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "83.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "84.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "85.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "86.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "87.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "88.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "89.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "90.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "91.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "92.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "93.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "94.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "95.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "96.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "97.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "98.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "99.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "100.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "101.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "102.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "103.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "104.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "105.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "106.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "107.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "108.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "109.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "110.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "111.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "112.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "113.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "114.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "115.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "116.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "117.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "118.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "119.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "120.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "121.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "122.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "123.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "124.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "125.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "126.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "127.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; + // Link-local/APIPA (RFCs 3927, 5735 and 6303) zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 06:25:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 85DAE92A; Tue, 13 Aug 2013 06:25:35 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 738912C24; Tue, 13 Aug 2013 06:25:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D6PZk6057507; Tue, 13 Aug 2013 06:25:35 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D6PZ1S057506; Tue, 13 Aug 2013 06:25:35 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308130625.r7D6PZ1S057506@svn.freebsd.org> From: Alexander Motin Date: Tue, 13 Aug 2013 06:25:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254271 - head/sys/geom/raid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 06:25:35 -0000 Author: mav Date: Tue Aug 13 06:25:34 2013 New Revision: 254271 URL: http://svnweb.freebsd.org/changeset/base/254271 Log: Oops, wrong constant at r254269. Modified: head/sys/geom/raid/tr_raid5.c Modified: head/sys/geom/raid/tr_raid5.c ============================================================================== --- head/sys/geom/raid/tr_raid5.c Tue Aug 13 06:25:17 2013 (r254270) +++ head/sys/geom/raid/tr_raid5.c Tue Aug 13 06:25:34 2013 (r254271) @@ -107,7 +107,7 @@ g_raid_tr_taste_raid5(struct g_raid_tr_o qual = tr->tro_volume->v_raid_level_qualifier; if (tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID4 && (qual == G_RAID_VOLUME_RLQ_R4P0 || - qual == G_RAID_VOLUME_RLQ_R4P0)) { + qual == G_RAID_VOLUME_RLQ_R4PN)) { /* RAID4 */ } else if ((tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID5 || tr->tro_volume->v_raid_level == G_RAID_VOLUME_RL_RAID5E || From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 07:15:04 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 85B27355; Tue, 13 Aug 2013 07:15:04 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 70E7D2EF6; Tue, 13 Aug 2013 07:15:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D7F4DK076353; Tue, 13 Aug 2013 07:15:04 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D7F1nu076335; Tue, 13 Aug 2013 07:15:01 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308130715.r7D7F1nu076335@svn.freebsd.org> From: Peter Wemm Date: Tue, 13 Aug 2013 07:15:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 07:15:04 -0000 Author: peter Date: Tue Aug 13 07:15:01 2013 New Revision: 254273 URL: http://svnweb.freebsd.org/changeset/base/254273 Log: The iconv in libc did two things - implement the standard APIs, the GNU extensions and also tried to be link time compatible with ports libiconv. This splits that functionality and enables the parts that shouldn't interfere with the port by default. WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc. WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker symbols and even a stub libiconv.so.3 that are good enough to be able to 'pkg delete -f libiconv' on a running system and reasonably expect it to work. I have tortured many machines over the last few days to try and reduce the possibilities of foot-shooting as much as I can. I've successfully recompiled to enable and disable the libiconv_compat modes, ports that use libiconv alongside system iconv etc. If you don't enable the WITH_LIBICONV_COMPAT switch, they don't share symbol space. This is an extension of behavior on other system. iconv(3) is a standard libc interface and libiconv port expects to be able to run alongside it on systems that have it. Bumped osreldate. Added: head/lib/libiconv_compat/ head/lib/libiconv_compat/Makefile (contents, props changed) head/lib/libiconv_compat/stub.c (contents, props changed) Modified: head/UPDATING head/include/Makefile head/include/iconv.h head/lib/Makefile head/lib/libc/iconv/Symbol.map head/lib/libc/iconv/iconv.c head/lib/libkiconv/xlat16_iconv.c head/share/mk/bsd.own.mk head/sys/sys/param.h head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/UPDATING ============================================================================== --- head/UPDATING Tue Aug 13 07:04:29 2013 (r254272) +++ head/UPDATING Tue Aug 13 07:15:01 2013 (r254273) @@ -31,6 +31,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20130813: + WITH_ICONV has been split into two feature sets. WITH_ICONV now + enables just the iconv* functionality and is now on by default. + WITH_LIBICONV_COMPAT enables the libiconv api and link time + compatability. Set WITHOUT_ICONV to build the old way. + 20130806: INVARIANTS option now enables DEBUG for code with OpenSolaris and Illumos origin, including ZFS. If you have INVARIANTS in your Modified: head/include/Makefile ============================================================================== --- head/include/Makefile Tue Aug 13 07:04:29 2013 (r254272) +++ head/include/Makefile Tue Aug 13 07:15:01 2013 (r254273) @@ -72,10 +72,6 @@ _dev_ieee488= dev/ieee488 INCS+= hesiod.h .endif -.if ${MK_ICONV} != "no" -INCS+= iconv.h -.endif - .if ${MK_BLUETOOTH} != "no" LSUBSUBDIRS+= netgraph/bluetooth/include .endif @@ -85,6 +81,20 @@ LSUBSUBDIRS+= netgraph/bluetooth/include _netipx= netipx #.endif +# Handle the #define aliases for libiconv +.if ${MK_ICONV} == "yes" +CLEANFILES+= _libiconv_compat.h +INCS+= _libiconv_compat.h iconv.h +_libiconv_compat.h: ${.CURDIR}/Makefile + echo "/* Indicate whether libiconv symbols are present */" > _libiconv_compat.h +.if ${MK_LIBICONV_COMPAT} == "yes" + echo "#define __LIBICONV_COMPAT" >> _libiconv_compat.h +.else + echo "#undef __LIBICONV_COMPAT" >> _libiconv_compat.h +.endif +.endif + + # Define SHARED to indicate whether you want symbolic links to the system # source (``symlinks''), or a separate copy (``copies''). ``symlinks'' is # probably only useful for developers and should be avoided if you do not Modified: head/include/iconv.h ============================================================================== --- head/include/iconv.h Tue Aug 13 07:04:29 2013 (r254272) +++ head/include/iconv.h Tue Aug 13 07:15:01 2013 (r254273) @@ -41,20 +41,23 @@ #include #include -#define iconv_open libiconv_open -#define iconv_close libiconv_close -#define iconv libiconv -#define iconv_t libiconv_t +#include <_libiconv_compat.h> +#ifdef __LIBICONV_COMPAT +#define libiconv_open iconv_open +#define libiconv_close iconv_close +#define libiconv iconv +#define libiconv_t iconv_t +#endif struct __tag_iconv_t; typedef struct __tag_iconv_t *iconv_t; __BEGIN_DECLS -iconv_t libiconv_open(const char *, const char *); -size_t libiconv(iconv_t, const char ** __restrict, - size_t * __restrict, char ** __restrict, - size_t * __restrict); -int libiconv_close(iconv_t); +iconv_t iconv_open(const char *, const char *); +size_t iconv(iconv_t, const char ** __restrict, + size_t * __restrict, char ** __restrict, + size_t * __restrict); +int iconv_close(iconv_t); /* * non-portable interfaces for iconv */ @@ -67,20 +70,28 @@ size_t __iconv(iconv_t, const char **, s /* * GNU interfaces for iconv */ -#define iconv_open_into libiconv_open_into -#define iconvctl libiconvctl -#define iconvlist libiconvlist +#ifdef __LIBICONV_COMPAT +#define libiconv_open_into iconv_open_into +#define libiconvctl iconvctl +#define libiconvlist iconvlist +#define libiconv_set_relocation_prefix iconv_set_relocation_prefix +#endif /* We have iconvctl() */ -#define _LIBICONV_VERSION 0x0108 -extern int _libiconv_version; +#define _ICONV_VERSION 0x0108 +extern int _iconv_version; + +#ifdef __LIBICONV_COMPAT +#define _libiconv_version _iconv_version +#define _LIBICONV_VERSION _ICONV_VERSION +#endif typedef struct { void *spaceholder[64]; } iconv_allocation_t; int iconv_open_into(const char *, const char *, iconv_allocation_t *); -void libiconv_set_relocation_prefix (const char *orig_prefix, +void iconv_set_relocation_prefix(const char *orig_prefix, const char *curr_prefix); /* Modified: head/lib/Makefile ============================================================================== --- head/lib/Makefile Tue Aug 13 07:04:29 2013 (r254272) +++ head/lib/Makefile Tue Aug 13 07:15:01 2013 (r254273) @@ -78,6 +78,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_libgpib} \ ${_libgssapi} \ ${_librpcsec_gss} \ + ${_libiconv_compat} \ libipsec \ ${_libipx} \ libjail \ @@ -189,6 +190,10 @@ _libcxxrt= libcxxrt _libcplusplus= libc++ .endif +.if ${MK_LIBICONV_COMPAT} != "no" +_libiconv_compat= libiconv_compat +.endif + .if ${MK_LIBTHR} != "no" _libthr= libthr .endif Modified: head/lib/libc/iconv/Symbol.map ============================================================================== --- head/lib/libc/iconv/Symbol.map Tue Aug 13 07:04:29 2013 (r254272) +++ head/lib/libc/iconv/Symbol.map Tue Aug 13 07:15:01 2013 (r254273) @@ -18,6 +18,7 @@ FBSD_1.2 { }; FBSD_1.3 { + _iconv_version; iconv; iconv_open; iconv_close; Modified: head/lib/libc/iconv/iconv.c ============================================================================== --- head/lib/libc/iconv/iconv.c Tue Aug 13 07:04:29 2013 (r254272) +++ head/lib/libc/iconv/iconv.c Tue Aug 13 07:15:01 2013 (r254273) @@ -47,17 +47,21 @@ #include "citrus_hash.h" #include "citrus_iconv.h" -__weak_reference(libiconv, iconv); -__weak_reference(libiconv_open, iconv_open); -__weak_reference(libiconv_open_into, iconv_open_into); -__weak_reference(libiconv_close, iconv_close); -__weak_reference(libiconvlist, iconvlist); -__weak_reference(libiconvctl, iconvctl); -__weak_reference(libiconv_set_relocation_prefix, iconv_set_relocation_prefix); +#include <_libiconv_compat.h> +#ifdef __LIBICONV_COMPAT +__weak_reference(iconv, libiconv); +__weak_reference(iconv_open, libiconv_open); +__weak_reference(iconv_open_into, libiconv_open_into); +__weak_reference(iconv_close, libiconv_close); +__weak_reference(iconvlist, libiconvlist); +__weak_reference(iconvctl, libiconvctl); +__weak_reference(iconv_set_relocation_prefix, libiconv_set_relocation_prefix); +__weak_reference(_iconv_version, _libiconv_version); +#endif #define ISBADF(_h_) (!(_h_) || (_h_) == (iconv_t)-1) -int _libiconv_version = _LIBICONV_VERSION; +int _iconv_version = _ICONV_VERSION; iconv_t _iconv_open(const char *out, const char *in, struct _citrus_iconv *prealloc); @@ -100,14 +104,14 @@ _iconv_open(const char *out, const char } iconv_t -libiconv_open(const char *out, const char *in) +iconv_open(const char *out, const char *in) { return (_iconv_open(out, in, NULL)); } int -libiconv_open_into(const char *out, const char *in, iconv_allocation_t *ptr) +iconv_open_into(const char *out, const char *in, iconv_allocation_t *ptr) { struct _citrus_iconv *handle; @@ -116,7 +120,7 @@ libiconv_open_into(const char *out, cons } int -libiconv_close(iconv_t handle) +iconv_close(iconv_t handle) { if (ISBADF(handle)) { @@ -130,7 +134,7 @@ libiconv_close(iconv_t handle) } size_t -libiconv(iconv_t handle, const char **in, size_t *szin, char **out, size_t *szout) +iconv(iconv_t handle, const char **in, size_t *szin, char **out, size_t *szout) { size_t ret; int err; @@ -210,7 +214,7 @@ qsort_helper(const void *first, const vo } void -libiconvlist(int (*do_one) (unsigned int, const char * const *, +iconvlist(int (*do_one) (unsigned int, const char * const *, void *), void *data) { char **list, **names; @@ -264,7 +268,7 @@ __inline const char } int -libiconvctl(iconv_t cd, int request, void *argument) +iconvctl(iconv_t cd, int request, void *argument) { struct _citrus_iconv *cv; struct iconv_hooks *hooks; @@ -316,7 +320,7 @@ libiconvctl(iconv_t cd, int request, voi } void -libiconv_set_relocation_prefix(const char *orig_prefix __unused, +iconv_set_relocation_prefix(const char *orig_prefix __unused, const char *curr_prefix __unused) { Added: head/lib/libiconv_compat/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libiconv_compat/Makefile Tue Aug 13 07:15:01 2013 (r254273) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +LIB= iconv +SHLIB_MAJOR= 3 +SRCS= stub.c + +.include Added: head/lib/libiconv_compat/stub.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libiconv_compat/stub.c Tue Aug 13 07:15:01 2013 (r254273) @@ -0,0 +1,8 @@ +/* + * Hacks to support things like the dlopen() in libkiconv.so or + * ports that want to hard-code -liconv. + * + * $FreeBSD$ + */ + +int __libiconv_stub__; Modified: head/lib/libkiconv/xlat16_iconv.c ============================================================================== --- head/lib/libkiconv/xlat16_iconv.c Tue Aug 13 07:04:29 2013 (r254272) +++ head/lib/libkiconv/xlat16_iconv.c Tue Aug 13 07:15:01 2013 (r254273) @@ -49,8 +49,6 @@ #include "quirks.h" -typedef void *iconv_t; - struct xlat16_table { uint32_t * idx[0x200]; void * data; @@ -61,6 +59,7 @@ static struct xlat16_table kiconv_xlat16 static int chklocale(int, const char *); #ifdef ICONV_DLOPEN +typedef void *iconv_t; static int my_iconv_init(void); static iconv_t (*my_iconv_open)(const char *, const char *); static size_t (*my_iconv)(iconv_t, const char **, size_t *, char **, size_t *); Modified: head/share/mk/bsd.own.mk ============================================================================== --- head/share/mk/bsd.own.mk Tue Aug 13 07:04:29 2013 (r254272) +++ head/share/mk/bsd.own.mk Tue Aug 13 07:15:01 2013 (r254273) @@ -292,6 +292,7 @@ __DEFAULT_YES_OPTIONS = \ GPIO \ GROFF \ HTML \ + ICONV \ INET \ INET6 \ INFO \ @@ -377,7 +378,7 @@ __DEFAULT_NO_OPTIONS = \ GNU_PATCH \ GPL_DTC \ HESIOD \ - ICONV \ + LIBICONV_COMPAT \ INSTALL_AS_USER \ LDNS_UTILS \ NMTREE \ @@ -484,6 +485,10 @@ MK_BIND_NAMED:= no MK_BIND_UTILS:= no .endif +.if ${MK_ICONV} == "no" +MK_LIBICONV_COMPAT:= no +.endif + .if ${MK_LDNS} == "no" MK_LDNS_UTILS:= no .endif Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Tue Aug 13 07:04:29 2013 (r254272) +++ head/sys/sys/param.h Tue Aug 13 07:15:01 2013 (r254273) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1000042 /* Master, propagated to newvers */ +#define __FreeBSD_version 1000043 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Tue Aug 13 07:04:29 2013 (r254272) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Tue Aug 13 07:15:01 2013 (r254273) @@ -2198,6 +2198,27 @@ OLD_FILES+=usr/share/man/man5/hesiod.con # to be filled in #.endif +.if ${MK_ICONV} == no +OLD_FILES+=usr/bin/iconv +OLD_FILES+=usr/bin/mkcsmapper +OLD_FILES+=usr/bin/mkesdb +OLD_FILES+=usr/include/_libiconv_compat.h +OLD_FILES+=usr/include/iconv.h +OLD_FILES+=usr/share/man/man1/iconv.1.gz +OLD_FILES+=usr/share/man/man1/mkcsmapper.1.gz +OLD_FILES+=usr/share/man/man1/mkesdb.1.gz +OLD_FILES+=usr/share/man/man3/__iconv.3.gz +OLD_FILES+=usr/share/man/man3/__iconv_free_list.3.gz +OLD_FILES+=usr/share/man/man3/__iconv_get_list.3.gz +OLD_FILES+=usr/share/man/man3/iconv.3.gz +OLD_FILES+=usr/share/man/man3/iconv_canonicalize.3.gz +OLD_FILES+=usr/share/man/man3/iconv_close.3.gz +OLD_FILES+=usr/share/man/man3/iconv_open.3.gz +OLD_FILES+=usr/share/man/man3/iconv_open_into.3.gz +OLD_FILES+=usr/share/man/man3/iconvctl.3.gz +OLD_FILES+=usr/share/man/man3/iconvlist.3.gz +.endif + .if ${MK_INET6} == no OLD_FILES+=sbin/ping6 OLD_FILES+=sbin/rtsol @@ -3338,6 +3359,13 @@ OLD_FILES+=usr/share/man/man8/verify_krb # to be filled in #.endif +.if ${MK_LIBICONV_COMPAT} == no +OLD_FILES+=usr/lib/libiconv.a +OLD_FILES+=usr/lib/libiconv.so +OLD_FILES+=usr/lib/libiconv.so.3 +OLD_FILES+=usr/lib/libiconv_p.a +.endif + .if ${MK_LIBCPLUSPLUS} == no OLD_LIBS+=lib/libcxxrt.so.1 OLD_FILES+=usr/lib/libc++.a @@ -4347,7 +4375,3 @@ OLD_FILES+=usr/bin/svnserve OLD_FILES+=usr/bin/svnsync OLD_FILES+=usr/bin/svnversion .endif - -.if ${MK_ICONV} == no -OLD_FILES+=usr/bin/iconv -.endif From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 07:31:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B8AA975D; Tue, 13 Aug 2013 07:31:27 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A62042FDA; Tue, 13 Aug 2013 07:31:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D7VRBt083054; Tue, 13 Aug 2013 07:31:27 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D7VRiM083053; Tue, 13 Aug 2013 07:31:27 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308130731.r7D7VRiM083053@svn.freebsd.org> From: Peter Wemm Date: Tue, 13 Aug 2013 07:31:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254274 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 07:31:27 -0000 Author: peter Date: Tue Aug 13 07:31:27 2013 New Revision: 254274 URL: http://svnweb.freebsd.org/changeset/base/254274 Log: Add a note that if you were WITH_ICONV before, you should turn on WITH_LIBICONV_COMPAT. Modified: head/UPDATING Modified: head/UPDATING ============================================================================== --- head/UPDATING Tue Aug 13 07:15:01 2013 (r254273) +++ head/UPDATING Tue Aug 13 07:31:27 2013 (r254274) @@ -36,6 +36,8 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 enables just the iconv* functionality and is now on by default. WITH_LIBICONV_COMPAT enables the libiconv api and link time compatability. Set WITHOUT_ICONV to build the old way. + If you have been using WITH_ICONV before, you will very likely + need to turn on WITH_LIBICONV_COMPAT. 20130806: INVARIANTS option now enables DEBUG for code with OpenSolaris and From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 07:42:43 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3F41BA39; Tue, 13 Aug 2013 07:42:43 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from server.mypc.hu (server.mypc.hu [87.229.73.95]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EAC862094; Tue, 13 Aug 2013 07:42:42 +0000 (UTC) Received: from server.mypc.hu (localhost [127.0.0.1]) by server.mypc.hu (Postfix) with ESMTP id E112D14D2517; Tue, 13 Aug 2013 09:35:57 +0200 (CEST) X-Virus-Scanned: amavisd-new at !change-mydomain-variable!.example.com Received: from server.mypc.hu ([127.0.0.1]) by server.mypc.hu (server.mypc.hu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id qBDkOnDkdoXz; Tue, 13 Aug 2013 09:35:57 +0200 (CEST) Received: from [192.168.0.10] (54034B4D.catv.pool.telekom.hu [84.3.75.77]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by server.mypc.hu (Postfix) with ESMTPSA id 3689514D2436; Tue, 13 Aug 2013 09:35:57 +0200 (CEST) Message-ID: <5209E1DC.1040309@FreeBSD.org> Date: Tue, 13 Aug 2013 09:35:56 +0200 From: Gabor Kovesdan User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Thunderbird/23.0 MIME-Version: 1.0 To: Peter Wemm , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r254273 - in head: . include lib lib/libc/iconv lib/libiconv_compat lib/libkiconv share/mk sys/sys tools/build/mk References: <201308130715.r7D7F1nu076335@svn.freebsd.org> In-Reply-To: <201308130715.r7D7F1nu076335@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 07:42:43 -0000 Em 13-08-2013 09:15, Peter Wemm escreveu: > Author: peter > Date: Tue Aug 13 07:15:01 2013 > New Revision: 254273 > URL:http://svnweb.freebsd.org/changeset/base/254273 > > Log: > The iconv in libc did two things - implement the standard APIs, the GNU > extensions and also tried to be link time compatible with ports libiconv. > This splits that functionality and enables the parts that shouldn't > interfere with the port by default. > > WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc. > WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker > symbols and even a stub libiconv.so.3 that are good enough to be able > to 'pkg delete -f libiconv' on a running system and reasonably expect it > to work. Thank you! Gabor From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 07:56:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CF62BD10; Tue, 13 Aug 2013 07:56:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A27432145; Tue, 13 Aug 2013 07:56:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D7ufwX086177; Tue, 13 Aug 2013 07:56:41 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D7uf9o086164; Tue, 13 Aug 2013 07:56:41 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308130756.r7D7uf9o086164@svn.freebsd.org> From: Alexander Motin Date: Tue, 13 Aug 2013 07:56:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254275 - head/sys/geom/raid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 07:56:41 -0000 Author: mav Date: Tue Aug 13 07:56:40 2013 New Revision: 254275 URL: http://svnweb.freebsd.org/changeset/base/254275 Log: Return error when opening read-only volumes (like RAID4/5/...) for writing. Previously opens succeeded, but actual write operations returned errors. Requested by: peter MFC after: 2 weeks Modified: head/sys/geom/raid/g_raid.c head/sys/geom/raid/g_raid.h head/sys/geom/raid/tr_raid5.c Modified: head/sys/geom/raid/g_raid.c ============================================================================== --- head/sys/geom/raid/g_raid.c Tue Aug 13 07:31:27 2013 (r254274) +++ head/sys/geom/raid/g_raid.c Tue Aug 13 07:56:40 2013 (r254275) @@ -1863,6 +1863,11 @@ g_raid_access(struct g_provider *pp, int error = ENXIO; goto out; } + /* Deny write opens for read-only volumes. */ + if (vol->v_read_only && acw > 0) { + error = EROFS; + goto out; + } if (dcw == 0) g_raid_clean(vol, dcw); vol->v_provider_open += acr + acw + ace; Modified: head/sys/geom/raid/g_raid.h ============================================================================== --- head/sys/geom/raid/g_raid.h Tue Aug 13 07:31:27 2013 (r254274) +++ head/sys/geom/raid/g_raid.h Tue Aug 13 07:56:40 2013 (r254275) @@ -306,6 +306,7 @@ struct g_raid_volume { int v_stopping; /* Volume is stopping */ int v_provider_open; /* Number of opens. */ int v_global_id; /* Global volume ID (rX). */ + int v_read_only; /* Volume is read-only. */ TAILQ_ENTRY(g_raid_volume) v_next; /* List of volumes entry. */ LIST_ENTRY(g_raid_volume) v_global_next; /* Global list entry. */ }; Modified: head/sys/geom/raid/tr_raid5.c ============================================================================== --- head/sys/geom/raid/tr_raid5.c Tue Aug 13 07:31:27 2013 (r254274) +++ head/sys/geom/raid/tr_raid5.c Tue Aug 13 07:56:40 2013 (r254275) @@ -185,8 +185,9 @@ g_raid_tr_start_raid5(struct g_raid_tr_o struct g_raid_volume *vol; trs = (struct g_raid_tr_raid5_object *)tr; - vol = tr->tro_volume; trs->trso_starting = 0; + vol = tr->tro_volume; + vol->v_read_only = 1; g_raid_tr_update_state_raid5(vol, NULL); return (0); } From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 08:12:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 073CE13D; Tue, 13 Aug 2013 08:12:58 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CF2BA226D; Tue, 13 Aug 2013 08:12:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D8CvrW072888; Tue, 13 Aug 2013 08:12:57 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D8Cv1F072883; Tue, 13 Aug 2013 08:12:57 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308130812.r7D8Cv1F072883@svn.freebsd.org> From: Peter Wemm Date: Tue, 13 Aug 2013 08:12:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254276 - head/lib/libiconv_compat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 08:12:58 -0000 Author: peter Date: Tue Aug 13 08:12:57 2013 New Revision: 254276 URL: http://svnweb.freebsd.org/changeset/base/254276 Log: Turn off warns for this do-nothing file. clang noticed. Modified: head/lib/libiconv_compat/Makefile Modified: head/lib/libiconv_compat/Makefile ============================================================================== --- head/lib/libiconv_compat/Makefile Tue Aug 13 07:56:40 2013 (r254275) +++ head/lib/libiconv_compat/Makefile Tue Aug 13 08:12:57 2013 (r254276) @@ -4,4 +4,6 @@ LIB= iconv SHLIB_MAJOR= 3 SRCS= stub.c +WARNS?= 0 + .include From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 08:40:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 47E846E9 for ; Tue, 13 Aug 2013 08:40:40 +0000 (UTC) (envelope-from peter@wemm.org) Received: from mail-vc0-x22b.google.com (mail-vc0-x22b.google.com [IPv6:2607:f8b0:400c:c03::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 05575241C for ; Tue, 13 Aug 2013 08:40:39 +0000 (UTC) Received: by mail-vc0-f171.google.com with SMTP id ij15so3617854vcb.30 for ; Tue, 13 Aug 2013 01:40:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wemm.org; s=google; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ecu04IHluLihvk/yR+gioyBzc+1s1aKsRvfVfT+8RBo=; b=FQoIjtzXAtmQFUAD0oZ6qI8jtaYjL5zPvf+c03IwLT8y63+LzHCYFwpPOS3AVyuucy DoYrCnlfq2UN1l7hQxr53vVnEU6hOR+dEP0GNp7YrLCBee6QDeJryay6V3frigqo/mk8 uK128FDDrP7oxHO7eHiSWkNEZxovnTThf3gf0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ecu04IHluLihvk/yR+gioyBzc+1s1aKsRvfVfT+8RBo=; b=ggNbhHdU1RXoC+rtiGmtBD8Zp/WJk9IFgZGqdHqsuS/N0nmzta7hx8r4kKRnf+NXaI 1EsM+ksphtUuOb1IYpqEPdv2Gw8ZUXOKeJvghySzhMxgkEeIi0EfpeEWo8S4WdZqToGN 7xZvg8+3r06KjdnCDu6GmSxoe4q283wDobBUlbpAUq+wMpZtS72cNXOm6G71fRdokQ2W qAB4EtWaksx5d20zHshDbvtizO06god1E2fuw8+iwVKBBH0tOn7dgh/5PtqGVeGrigfY WpMwyDretCcMpmhlsWxkFPmjx6g+tp3igEpTjYmNSb1WjtngCNwV1ubtt6+QuQcKvn/I WnEQ== X-Gm-Message-State: ALoCoQl7PnbKlg7x7MKyfHohevIINXu9MunbP0CrLJNyRfa2i5zmBv1A91X1hdAovGt7SEizY4SD MIME-Version: 1.0 X-Received: by 10.220.11.7 with SMTP id r7mr3390838vcr.12.1376383239219; Tue, 13 Aug 2013 01:40:39 -0700 (PDT) Received: by 10.220.167.74 with HTTP; Tue, 13 Aug 2013 01:40:39 -0700 (PDT) In-Reply-To: <201308130756.r7D7uf9o086164@svn.freebsd.org> References: <201308130756.r7D7uf9o086164@svn.freebsd.org> Date: Tue, 13 Aug 2013 01:40:39 -0700 Message-ID: Subject: Re: svn commit: r254275 - head/sys/geom/raid From: Peter Wemm To: Alexander Motin Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 08:40:40 -0000 On Tue, Aug 13, 2013 at 12:56 AM, Alexander Motin wrote: > Log: > Return error when opening read-only volumes (like RAID4/5/...) for writing. > Previously opens succeeded, but actual write operations returned errors. > > Requested by: peter > MFC after: 2 weeks Thanks! The read-only limitation was easy to miss in the man page. -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV UTF-8: for when a ' just won\342\200\231t do. ZFS must be the bacon of file systems. "everything's better with ZFS" From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 08:49:32 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 02B7BBF8; Tue, 13 Aug 2013 08:49:32 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id 939A124B2; Tue, 13 Aug 2013 08:49:30 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id LAA23389; Tue, 13 Aug 2013 11:49:29 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1V9AIC-0001sU-So; Tue, 13 Aug 2013 11:49:28 +0300 Message-ID: <5209F2E0.9000901@FreeBSD.org> Date: Tue, 13 Aug 2013 11:48:32 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130810 Thunderbird/17.0.8 MIME-Version: 1.0 To: Alexander Motin Subject: Re: svn commit: r254275 - head/sys/geom/raid References: <201308130756.r7D7uf9o086164@svn.freebsd.org> In-Reply-To: <201308130756.r7D7uf9o086164@svn.freebsd.org> X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 08:49:32 -0000 on 13/08/2013 10:56 Alexander Motin said the following: > + /* Deny write opens for read-only volumes. */ > + if (vol->v_read_only && acw > 0) { > + error = EROFS; > + goto out; > + } I'd like to stir a small (hopefully) discussion (again, hopefully): is EROFS appropriate here or would ENODEV be better? EROFS Read-only filesystem ENODEV Operation not supported by device -- Andriy Gapon From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 09:04:20 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A4E5B69F; Tue, 13 Aug 2013 09:04:20 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9263C25F4; Tue, 13 Aug 2013 09:04:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D94Kg0021071; Tue, 13 Aug 2013 09:04:20 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D94Kk3021070; Tue, 13 Aug 2013 09:04:20 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201308130904.r7D94Kk3021070@svn.freebsd.org> From: Dag-Erling Smørgrav Date: Tue, 13 Aug 2013 09:04:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254277 - vendor-crypto/openssh/dist X-SVN-Group: vendor-crypto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 09:04:20 -0000 Author: des Date: Tue Aug 13 09:04:20 2013 New Revision: 254277 URL: http://svnweb.freebsd.org/changeset/base/254277 Log: Apply upstream revision 1.151 (fix relative symlinks) Modified: vendor-crypto/openssh/dist/sftp.c Modified: vendor-crypto/openssh/dist/sftp.c ============================================================================== --- vendor-crypto/openssh/dist/sftp.c Tue Aug 13 08:12:57 2013 (r254276) +++ vendor-crypto/openssh/dist/sftp.c Tue Aug 13 09:04:20 2013 (r254277) @@ -1327,7 +1327,8 @@ parse_dispatch_command(struct sftp_conn case I_SYMLINK: sflag = 1; case I_LINK: - path1 = make_absolute(path1, *pwd); + if (!sflag) + path1 = make_absolute(path1, *pwd); path2 = make_absolute(path2, *pwd); err = (sflag ? do_symlink : do_hardlink)(conn, path1, path2); break; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 09:06:19 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 178D081A; Tue, 13 Aug 2013 09:06:19 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 04FC62610; Tue, 13 Aug 2013 09:06:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D96Ixo021480; Tue, 13 Aug 2013 09:06:18 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D96IWT021479; Tue, 13 Aug 2013 09:06:18 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201308130906.r7D96IWT021479@svn.freebsd.org> From: Dag-Erling Smørgrav Date: Tue, 13 Aug 2013 09:06:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254278 - head/crypto/openssh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 09:06:19 -0000 Author: des Date: Tue Aug 13 09:06:18 2013 New Revision: 254278 URL: http://svnweb.freebsd.org/changeset/base/254278 Log: Apply upstream revision 1.151 (fix relative symlinks) MFC after: 3 days Modified: head/crypto/openssh/sftp.c Directory Properties: head/crypto/openssh/ (props changed) Modified: head/crypto/openssh/sftp.c ============================================================================== --- head/crypto/openssh/sftp.c Tue Aug 13 09:04:20 2013 (r254277) +++ head/crypto/openssh/sftp.c Tue Aug 13 09:06:18 2013 (r254278) @@ -1328,7 +1328,8 @@ parse_dispatch_command(struct sftp_conn case I_SYMLINK: sflag = 1; case I_LINK: - path1 = make_absolute(path1, *pwd); + if (!sflag) + path1 = make_absolute(path1, *pwd); path2 = make_absolute(path2, *pwd); err = (sflag ? do_symlink : do_hardlink)(conn, path1, path2); break; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 09:16:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 849CCBFB; Tue, 13 Aug 2013 09:16:31 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-bk0-x233.google.com (mail-bk0-x233.google.com [IPv6:2a00:1450:4008:c01::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8A0632701; Tue, 13 Aug 2013 09:16:30 +0000 (UTC) Received: by mail-bk0-f51.google.com with SMTP id mx10so2235658bkb.10 for ; Tue, 13 Aug 2013 02:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=luKxMN3GE/mvKDnt7QNh3ofai3VPlUdcnsif9F4Rybg=; b=typSL1hSWbBPJ4Gx0bqnoBw0OEkiA2ZDVWE7QpgOac4gC4bltwBXIgrYpwrUVjajZT yIXwyzMh4WdlprOt/aUHaEy7Pmzvh+OwE55JvXVfTj7e8fSkXYlgx8pP2BL7BE2LVM8p l79rJvCuqWnCePIbb+FRIAnpJ9WxAhpw0ojXdFMlzfWrxYg6rtg6FDZ6Meqi1F0ynFL/ eZ9RFf2qQI6K16lqEHA1MMvFCdjjhzW5VmwcsvTSMXL++a3Tjiq1ThtFYsjtEp2+3QYp kk78ESgBWrzBaw08QXcy4nt0ZoEzn2eYVTQbAh69Vz7KjAes/loZw9lCMihq+9bvab5H DXKg== X-Received: by 10.204.70.141 with SMTP id d13mr1982422bkj.10.1376385387870; Tue, 13 Aug 2013 02:16:27 -0700 (PDT) Received: from mavbook.mavhome.dp.ua ([37.229.21.195]) by mx.google.com with ESMTPSA id et15sm6257332bkc.0.2013.08.13.02.16.25 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 13 Aug 2013 02:16:26 -0700 (PDT) Sender: Alexander Motin Message-ID: <5209F968.4090301@FreeBSD.org> Date: Tue, 13 Aug 2013 12:16:24 +0300 From: Alexander Motin User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130616 Thunderbird/17.0.6 MIME-Version: 1.0 To: Andriy Gapon Subject: Re: svn commit: r254275 - head/sys/geom/raid References: <201308130756.r7D7uf9o086164@svn.freebsd.org> <5209F2E0.9000901@FreeBSD.org> In-Reply-To: <5209F2E0.9000901@FreeBSD.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 09:16:31 -0000 On 13.08.2013 11:48, Andriy Gapon wrote: > on 13/08/2013 10:56 Alexander Motin said the following: >> + /* Deny write opens for read-only volumes. */ >> + if (vol->v_read_only && acw > 0) { >> + error = EROFS; >> + goto out; >> + } > > I'd like to stir a small (hopefully) discussion (again, hopefully): is EROFS > appropriate here or would ENODEV be better? > > EROFS Read-only filesystem > ENODEV Operation not supported by device I've seen both options and have no strong opinion here. Quick search via sources shown that some thing such as md(4) use EROFS. If that is wrong, lets fix it globally and forget. -- Alexander Motin From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 09:58:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 422DD51A; Tue, 13 Aug 2013 09:58:28 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2FA212965; Tue, 13 Aug 2013 09:58:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7D9wSVr040673; Tue, 13 Aug 2013 09:58:28 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7D9wSEn040672; Tue, 13 Aug 2013 09:58:28 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201308130958.r7D9wSEn040672@svn.freebsd.org> From: Adrian Chadd Date: Tue, 13 Aug 2013 09:58:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254279 - head/sys/dev/bwi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 09:58:28 -0000 Author: adrian Date: Tue Aug 13 09:58:27 2013 New Revision: 254279 URL: http://svnweb.freebsd.org/changeset/base/254279 Log: ieee80211_rate2plcp() and ieee80211_rate2phytype() are both pre-11n routines and thus assert if one passes in a rate code with the high bit set. Since the high bit can indicate either IEEE80211_RATE_BASIC or IEEE80211_RATE_MCS, it's up to the caller to determine whether the rate is 11n or not, and either mask out the BASIC bit, or call a different function. (Yes, this does mean that net80211 should grow 11n-aware rate2phytype() and rate2plcp() functions..) This may need to happen for the other drivers - it's currently only done (now) for iwn(4) and bwi(4). PR: kern/181100 Modified: head/sys/dev/bwi/bwimac.c Modified: head/sys/dev/bwi/bwimac.c ============================================================================== --- head/sys/dev/bwi/bwimac.c Tue Aug 13 09:06:18 2013 (r254278) +++ head/sys/dev/bwi/bwimac.c Tue Aug 13 09:58:27 2013 (r254279) @@ -1427,7 +1427,8 @@ bwi_mac_set_ackrates(struct bwi_mac *mac enum ieee80211_phytype modtype; uint16_t ofs; - modtype = ieee80211_rate2phytype(rt, rs->rs_rates[i]); + modtype = ieee80211_rate2phytype(rt, + rs->rs_rates[i] & IEEE80211_RATE_VAL); switch (modtype) { case IEEE80211_T_DS: ofs = 0x4c0; @@ -1438,7 +1439,9 @@ bwi_mac_set_ackrates(struct bwi_mac *mac default: panic("unsupported modtype %u\n", modtype); } - ofs += 2*(ieee80211_rate2plcp(rs->rs_rates[i], modtype) & 0xf); + ofs += 2*(ieee80211_rate2plcp( + rs->rs_rates[i] & IEEE80211_RATE_VAL, + modtype) & 0xf); MOBJ_WRITE_2(mac, BWI_COMM_MOBJ, ofs + 0x20, MOBJ_READ_2(mac, BWI_COMM_MOBJ, ofs)); From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 13:14:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 24CDBA1B; Tue, 13 Aug 2013 13:14:14 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 01D0925C1; Tue, 13 Aug 2013 13:14:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DDEDY5015651; Tue, 13 Aug 2013 13:14:13 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DDEDS7015649; Tue, 13 Aug 2013 13:14:13 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201308131314.r7DDEDS7015649@svn.freebsd.org> From: Ian Lepore Date: Tue, 13 Aug 2013 13:14:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254281 - head/sys/arm/freescale/imx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 13:14:14 -0000 Author: ian Date: Tue Aug 13 13:14:13 2013 New Revision: 254281 URL: http://svnweb.freebsd.org/changeset/base/254281 Log: Add imx6 compatibility and make the driver work for any clock frequency. There are still a couple references to imx51 ccm driver functions that will need to be changed after an imx6 ccm driver is written. Reviewed by: ray Modified: head/sys/arm/freescale/imx/imx_gpt.c head/sys/arm/freescale/imx/imx_gptreg.h Modified: head/sys/arm/freescale/imx/imx_gpt.c ============================================================================== --- head/sys/arm/freescale/imx/imx_gpt.c Tue Aug 13 10:24:42 2013 (r254280) +++ head/sys/arm/freescale/imx/imx_gpt.c Tue Aug 13 13:14:13 2013 (r254281) @@ -57,8 +57,6 @@ __FBSDID("$FreeBSD$"); #include #include -#define MIN_PERIOD 100LLU - #define WRITE4(_sc, _r, _v) \ bus_space_write_4((_sc)->sc_iot, (_sc)->sc_ioh, (_r), (_v)) #define READ4(_sc, _r) \ @@ -82,11 +80,27 @@ static struct timecounter imx_gpt_timeco .tc_get_timecount = imx_gpt_get_timecount, .tc_counter_mask = ~0u, .tc_frequency = 0, - .tc_quality = 500, + .tc_quality = 1000, }; +/* Global softc pointer for use in DELAY(). */ struct imx_gpt_softc *imx_gpt_sc = NULL; -static volatile int imx_gpt_delay_count = 300; + +/* + * Hand-calibrated delay-loop counter. This was calibrated on an i.MX6 running + * at 792mhz. It will delay a bit too long on slower processors -- that's + * better than not delaying long enough. In practice this is unlikely to get + * used much since the clock driver is one of the first to start up, and once + * we're attached the delay loop switches to using the timer hardware. + */ +static const int imx_gpt_delay_count = 78; + +/* Try to divide down an available fast clock to this frequency. */ +#define TARGET_FREQUENCY 1000000 + +/* Don't try to set an event timer period smaller than this. */ +#define MIN_ET_PERIOD 10LLU + static struct resource_spec imx_gpt_spec[] = { { SYS_RES_MEMORY, 0, RF_ACTIVE }, @@ -101,7 +115,7 @@ imx_gpt_probe(device_t dev) if (!ofw_bus_is_compatible(dev, "fsl,imx51-gpt")) return (ENXIO); - device_set_desc(dev, "Freescale i.MXxxx GPT timer"); + device_set_desc(dev, "Freescale i.MX GPT timer"); return (BUS_PROBE_DEFAULT); } @@ -109,7 +123,8 @@ static int imx_gpt_attach(device_t dev) { struct imx_gpt_softc *sc; - int err; + int ctlreg, err; + uint32_t basefreq, prescale; sc = device_get_softc(dev); @@ -119,49 +134,96 @@ imx_gpt_attach(device_t dev) } sc->sc_dev = dev; - sc->sc_clksrc = GPT_CR_CLKSRC_IPG; sc->sc_iot = rman_get_bustag(sc->res[0]); sc->sc_ioh = rman_get_bushandle(sc->res[0]); + /* + * For now, just automatically choose a good clock for the hardware + * we're running on. Eventually we could allow selection from the fdt; + * the code in this driver will cope with any clock frequency. + */ + if (ofw_bus_is_compatible(dev, "fsl,imx6-gpt")) + sc->sc_clksrc = GPT_CR_CLKSRC_24M; + else + sc->sc_clksrc = GPT_CR_CLKSRC_IPG; + + ctlreg = 0; + switch (sc->sc_clksrc) { - case GPT_CR_CLKSRC_NONE: - device_printf(dev, "can't run timer without clock source\n"); - return (EINVAL); - case GPT_CR_CLKSRC_EXT: - device_printf(dev, "Not implemented. Geve me the way to get " - "external clock source frequency\n"); - return (EINVAL); case GPT_CR_CLKSRC_32K: - sc->clkfreq = 32768; + basefreq = 32768; + break; + case GPT_CR_CLKSRC_IPG: + basefreq = imx51_get_clock(IMX51CLK_IPG_CLK_ROOT); break; case GPT_CR_CLKSRC_IPG_HIGH: - sc->clkfreq = imx51_get_clock(IMX51CLK_IPG_CLK_ROOT) * 2; + basefreq = imx51_get_clock(IMX51CLK_IPG_CLK_ROOT) * 2; + break; + case GPT_CR_CLKSRC_24M: + ctlreg |= GPT_CR_24MEN; + basefreq = 24000000; break; + case GPT_CR_CLKSRC_NONE:/* Can't run without a clock. */ + case GPT_CR_CLKSRC_EXT: /* No way to get the freq of an ext clock. */ default: - sc->clkfreq = imx51_get_clock(IMX51CLK_IPG_CLK_ROOT); + device_printf(dev, "Unsupported clock source '%d'\n", + sc->sc_clksrc); + return (EINVAL); } - device_printf(dev, "Run on %dKHz clock.\n", sc->clkfreq / 1000); - /* Reset */ - WRITE4(sc, IMX_GPT_CR, GPT_CR_SWR); - /* Enable and setup counters */ - WRITE4(sc, IMX_GPT_CR, - GPT_CR_CLKSRC_IPG | /* Use IPG clock */ + /* + * The following setup sequence is from the I.MX6 reference manual, + * "Selecting the clock source". First, disable the clock and + * interrupts. This also clears input and output mode bits and in + * general completes several of the early steps in the procedure. + */ + WRITE4(sc, IMX_GPT_CR, 0); + WRITE4(sc, IMX_GPT_IR, 0); + + /* Choose the clock and the power-saving behaviors. */ + ctlreg |= + sc->sc_clksrc | /* Use selected clock */ GPT_CR_FRR | /* Just count (FreeRunner mode) */ GPT_CR_STOPEN | /* Run in STOP mode */ + GPT_CR_DOZEEN | /* Run in DOZE mode */ GPT_CR_WAITEN | /* Run in WAIT mode */ - GPT_CR_DBGEN); /* Run in DEBUG mode */ + GPT_CR_DBGEN; /* Run in DEBUG mode */ + WRITE4(sc, IMX_GPT_CR, ctlreg); - /* Disable interrupts */ - WRITE4(sc, IMX_GPT_IR, 0); + /* + * The datasheet says to do the software reset after choosing the clock + * source. It says nothing about needing to wait for the reset to + * complete, but the register description does document the fact that + * the reset isn't complete until the SWR bit reads 0, so let's be safe. + * The reset also clears all registers except for a few of the bits in + * CR, but we'll rewrite all the CR bits when we start the counter. + */ + WRITE4(sc, IMX_GPT_CR, ctlreg | GPT_CR_SWR); + while (READ4(sc, IMX_GPT_CR) & GPT_CR_SWR) + continue; + + /* Set a prescaler value that gets us near the target frequency. */ + if (basefreq < TARGET_FREQUENCY) { + prescale = 0; + sc->clkfreq = basefreq; + } else { + prescale = basefreq / TARGET_FREQUENCY; + sc->clkfreq = basefreq / prescale; + prescale -= 1; /* 1..n range is 0..n-1 in hardware. */ + } + WRITE4(sc, IMX_GPT_PR, prescale); + + /* Clear the status register. */ + WRITE4(sc, IMX_GPT_SR, GPT_IR_ALL); - /* Tick every 10us */ - /* XXX: must be calculated from clock source frequency */ - WRITE4(sc, IMX_GPT_PR, 665); - /* Use 100 KHz */ - sc->clkfreq = 100000; + /* Start the counter. */ + WRITE4(sc, IMX_GPT_CR, ctlreg | GPT_CR_EN); - /* Setup and enable the timer interrupt */ + if (bootverbose) + device_printf(dev, "Running on %dKHz clock, base freq %uHz CR=0x%08x, PR=0x%08x\n", + sc->clkfreq / 1000, basefreq, READ4(sc, IMX_GPT_CR), READ4(sc, IMX_GPT_PR)); + + /* Setup the timer interrupt. */ err = bus_setup_intr(dev, sc->res[1], INTR_TYPE_CLK, imx_gpt_intr, NULL, sc, &sc->sc_ih); if (err != 0) { @@ -171,35 +233,25 @@ imx_gpt_attach(device_t dev) return (ENXIO); } + /* Register as an eventtimer. */ sc->et.et_name = "i.MXxxx GPT Eventtimer"; sc->et.et_flags = ET_FLAGS_ONESHOT | ET_FLAGS_PERIODIC; sc->et.et_quality = 1000; sc->et.et_frequency = sc->clkfreq; - sc->et.et_min_period = (MIN_PERIOD << 32) / sc->et.et_frequency; + sc->et.et_min_period = (MIN_ET_PERIOD << 32) / sc->et.et_frequency; sc->et.et_max_period = (0xfffffffeLLU << 32) / sc->et.et_frequency; sc->et.et_start = imx_gpt_timer_start; sc->et.et_stop = imx_gpt_timer_stop; sc->et.et_priv = sc; et_register(&sc->et); - /* Disable interrupts */ - WRITE4(sc, IMX_GPT_IR, 0); - /* ACK any panding interrupts */ - WRITE4(sc, IMX_GPT_SR, (GPT_IR_ROV << 1) - 1); - - if (device_get_unit(dev) == 0) - imx_gpt_sc = sc; - + /* Register as a timecounter. */ imx_gpt_timecounter.tc_frequency = sc->clkfreq; tc_init(&imx_gpt_timecounter); - printf("clock: hz=%d stathz = %d\n", hz, stathz); - - device_printf(sc->sc_dev, "timer clock frequency %d\n", sc->clkfreq); - - imx_gpt_delay_count = imx51_get_clock(IMX51CLK_ARM_ROOT) / 4000000; - - SET4(sc, IMX_GPT_CR, GPT_CR_EN); + /* If this is the first unit, store the softc for use in DELAY. */ + if (device_get_unit(dev) == 0) + imx_gpt_sc = sc; return (0); } @@ -267,16 +319,11 @@ void cpu_initclocks(void) { - if (!imx_gpt_sc) { - panic("%s: driver has not been initialized!", __func__); + if (imx_gpt_sc == NULL) { + panic("%s: i.MX GPT driver has not been initialized!", __func__); } cpu_initclocks_bsp(); - - /* Switch to DELAY using counter */ - imx_gpt_delay_count = 0; - device_printf(imx_gpt_sc->sc_dev, - "switch DELAY to use H/W counter\n"); } static int @@ -342,29 +389,30 @@ EARLY_DRIVER_MODULE(imx_gpt, simplebus, void DELAY(int usec) { - int32_t counts; - uint32_t last; + uint64_t curcnt, endcnt, startcnt, ticks; - /* - * Check the timers are setup, if not just use a for loop for the - * meantime. - */ - if (imx_gpt_delay_count) { - for (; usec > 0; usec--) - for (counts = imx_gpt_delay_count; counts > 0; - counts--) - /* Prevent optimizing out the loop */ + /* If the timer hardware is not accessible, just use a loop. */ + if (imx_gpt_sc == NULL) { + while (usec-- > 0) + for (ticks = 0; ticks < imx_gpt_delay_count; ++ticks) cpufunc_nullop(); return; } - /* At least 1 count */ - usec = MAX(1, usec / 100); - - last = READ4(imx_gpt_sc, IMX_GPT_CNT) + usec; - while (READ4(imx_gpt_sc, IMX_GPT_CNT) < last) { - /* Prevent optimizing out the loop */ - cpufunc_nullop(); + /* + * Calculate the tick count with 64-bit values so that it works for any + * clock frequency. Loop until the hardware count reaches start+ticks. + * If the 32-bit hardware count rolls over while we're looping, just + * manually do a carry into the high bits after each read; don't worry + * that doing this on each loop iteration is inefficient -- we're trying + * to waste time here. + */ + ticks = 1 + ((uint64_t)usec * imx_gpt_sc->clkfreq) / 1000000; + curcnt = startcnt = READ4(imx_gpt_sc, IMX_GPT_CNT); + endcnt = startcnt + ticks; + while (curcnt < endcnt) { + curcnt = READ4(imx_gpt_sc, IMX_GPT_CNT); + if (curcnt < startcnt) + curcnt += 1ULL << 32; } - /* TODO: use interrupt on OCR2 */ } Modified: head/sys/arm/freescale/imx/imx_gptreg.h ============================================================================== --- head/sys/arm/freescale/imx/imx_gptreg.h Tue Aug 13 10:24:42 2013 (r254280) +++ head/sys/arm/freescale/imx/imx_gptreg.h Tue Aug 13 13:14:13 2013 (r254281) @@ -55,13 +55,16 @@ #define GPT_CR_IMX_FEDGE 2 #define GPT_CR_IMX_BOTH 3 #define GPT_CR_SWR (1 << 15) +#define GPT_CR_24MEN (1 << 10) #define GPT_CR_FRR (1 << 9) -#define GPT_CR_CLKSRC_NONE 0x00000000 -#define GPT_CR_CLKSRC_IPG 0x00000040 -#define GPT_CR_CLKSRC_IPG_HIGH 0x00000080 -#define GPT_CR_CLKSRC_EXT 0x000000c0 -#define GPT_CR_CLKSRC_32K 0x00000100 +#define GPT_CR_CLKSRC_NONE (0 << 6) +#define GPT_CR_CLKSRC_IPG (1 << 6) +#define GPT_CR_CLKSRC_IPG_HIGH (2 << 6) +#define GPT_CR_CLKSRC_EXT (3 << 6) +#define GPT_CR_CLKSRC_32K (4 << 6) +#define GPT_CR_CLKSRC_24M (5 << 6) #define GPT_CR_STOPEN (1 << 5) +#define GPT_CR_DOZEEN (1 << 4) #define GPT_CR_WAITEN (1 << 3) #define GPT_CR_DBGEN (1 << 2) #define GPT_CR_ENMOD (1 << 1) @@ -70,6 +73,8 @@ #define IMX_GPT_PR 0x0004 /* Prescaler Register R/W */ #define GPT_PR_VALUE_SHIFT 0 #define GPT_PR_VALUE_MASK 0x00000fff +#define GPT_PR_VALUE_SHIFT_24M 12 +#define GPT_PR_VALUE_MASK_24M 0x0000f000 /* Same map for SR and IR */ #define IMX_GPT_SR 0x0008 /* Status Register R/W */ From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 13:40:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 89067487; Tue, 13 Aug 2013 13:40:32 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 770BC27ED; Tue, 13 Aug 2013 13:40:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DDeWrN024324; Tue, 13 Aug 2013 13:40:32 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DDeWmv024323; Tue, 13 Aug 2013 13:40:32 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201308131340.r7DDeWmv024323@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 13 Aug 2013 13:40:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254282 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 13:40:32 -0000 Author: glebius Date: Tue Aug 13 13:40:31 2013 New Revision: 254282 URL: http://svnweb.freebsd.org/changeset/base/254282 Log: - Minor style(9) fix. - Bring a comment up to date. Modified: head/sys/kern/uipc_syscalls.c Modified: head/sys/kern/uipc_syscalls.c ============================================================================== --- head/sys/kern/uipc_syscalls.c Tue Aug 13 13:14:13 2013 (r254281) +++ head/sys/kern/uipc_syscalls.c Tue Aug 13 13:40:31 2013 (r254282) @@ -109,15 +109,17 @@ static int recvit(struct thread *td, int static int accept1(struct thread *td, int s, struct sockaddr *uname, socklen_t *anamelen, int flags); -static int do_sendfile(struct thread *td, struct sendfile_args *uap, int compat); +static int do_sendfile(struct thread *td, struct sendfile_args *uap, + int compat); static int getsockname1(struct thread *td, struct getsockname_args *uap, int compat); static int getpeername1(struct thread *td, struct getpeername_args *uap, int compat); counter_u64_t sfstat[sizeof(struct sfstat) / sizeof(uint64_t)]; + /* - * NSFBUFS-related variables and associated sysctls + * sendfile(2)-related variables and associated sysctls */ int nsfbufs; int nsfbufspeak; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 14:22:34 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CF7CCEA9; Tue, 13 Aug 2013 14:22:34 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4E0592A69; Tue, 13 Aug 2013 14:22:34 +0000 (UTC) Received: from localhost (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by acme.spoerlein.net (8.14.7/8.14.7) with ESMTP id r7DEMVdL042341 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 13 Aug 2013 16:22:31 +0200 (CEST) (envelope-from uqs@FreeBSD.org) Date: Tue, 13 Aug 2013 16:22:31 +0200 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: Attilio Rao Subject: Re: svn commit: r254138 - in head: share/man/man9 sys/amd64/amd64 sys/arm/arm sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/agp sys/dev/drm2/i915 sys/dev/drm2/ttm sys/dev/md sys/fs/fuse sys/fs... Message-ID: <20130813142230.GE54133@acme.spoerlein.net> Mail-Followup-To: Ulrich =?utf-8?B?U3DDtnJsZWlu?= , Attilio Rao , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201308091111.r79BBCbY095386@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201308091111.r79BBCbY095386@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 14:22:34 -0000 On Fri, 2013-08-09 at 11:11:12 +0000, Attilio Rao wrote: > Author: attilio > Date: Fri Aug 9 11:11:11 2013 > New Revision: 254138 > URL: http://svnweb.freebsd.org/changeset/base/254138 > > Log: > The soft and hard busy mechanism rely on the vm object lock to work. > Unify the 2 concept into a real, minimal, sxlock where the shared > acquisition represent the soft busy and the exclusive acquisition > represent the hard busy. > The old VPO_WANTED mechanism becames the hard-path for this new lock > and it becomes per-page rather than per-object. > The vm_object lock becames an interlock for this functionality: > it can be held in both read or write mode. > However, if the vm_object lock is held in read mode while acquiring > or releasing the busy state, the thread owner cannot make any > assumption on the busy state unless it is also busying it. > > Also: > - Add a new flag to directly shared busy pages while vm_page_alloc > and vm_page_grab are being executed. This will be very helpful > once these functions happen under a read object lock. > - Move the swapping sleep into its own per-object flag > > The KPI is heavilly changed this is why the version is bumped. > It is very likely that some VM ports users will need to change > their own code. > > Sponsored by: EMC / Isilon storage division > Discussed with: alc > Reviewed by: jeff, kib > Tested by: gavin, bapt (older version) > Tested by: pho, scottl The changes to sys/vm/vm_fault.c introduce a call to vm_page_sleep_if_busy() where the return code is not checked. The other 5 places in the tree check the return code, please fix this here too. It's CID 1062398, and I would encourage folks to get an account with scan.coverity.com and have an eye on newly found defects. Thanks! Uli From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 14:25:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9C77E74; Tue, 13 Aug 2013 14:25:32 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 34B9D2A7F; Tue, 13 Aug 2013 14:25:32 +0000 (UTC) Received: from localhost (acme.spoerlein.net [IPv6:2a01:4f8:131:23c2::1]) by acme.spoerlein.net (8.14.7/8.14.7) with ESMTP id r7DEPU5H042444 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 13 Aug 2013 16:25:30 +0200 (CEST) (envelope-from uqs@FreeBSD.org) Date: Tue, 13 Aug 2013 16:25:30 +0200 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: Peter Wemm Subject: Re: svn commit: r254225 - in head: . contrib/nvi contrib/nvi/build contrib/nvi/catalog contrib/nvi/cl contrib/nvi/clib contrib/nvi/common contrib/nvi/docs/USD.doc/vi.man contrib/nvi/ex contrib/nvi/incl... Message-ID: <20130813142530.GF54133@acme.spoerlein.net> Mail-Followup-To: Ulrich =?utf-8?B?U3DDtnJsZWlu?= , Peter Wemm , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201308112003.r7BK3Dqt006856@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201308112003.r7BK3Dqt006856@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 14:25:32 -0000 On Sun, 2013-08-11 at 20:03:13 +0000, Peter Wemm wrote: > Author: peter > Date: Sun Aug 11 20:03:12 2013 > New Revision: 254225 > URL: http://svnweb.freebsd.org/changeset/base/254225 > > Log: > Update nvi-1.79 to 2.1.1-4334a8297f Cool beans! Please get an account at scan.coverity.com and have a look at the fallout this causes. There are ton's of new issues within this code. Thanks Uli From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 14:59:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6E5BB78B; Tue, 13 Aug 2013 14:59:26 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-wg0-x232.google.com (mail-wg0-x232.google.com [IPv6:2a00:1450:400c:c00::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5AC2E2C81; Tue, 13 Aug 2013 14:59:25 +0000 (UTC) Received: by mail-wg0-f50.google.com with SMTP id m15so6752822wgh.29 for ; Tue, 13 Aug 2013 07:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date:message-id :subject:from:to:content-type:content-transfer-encoding; bh=yuVUJgACz6oE6bRPG326uGUrLvVZmTiLEDRargwsumM=; b=k1fzU6X/+yjZWDZmVJSObYWnFvcqcBFpclFXbY/sy0Yd25e37whyaVy0xei1HyyTEU 4eJKtFPCMZ/wZt9zBBL1glRdaUZSxHh8J3yFrJhi83O+kIh/h2uHLFQXW/it48QvtQ7+ TZlcU9Bl6RnuBbs1ti21JAXVHPneEcrJgOG8ibkqJaShvnmlwBvNkEZu8dpSskL8TiYd dN9zByR3TfT0pNAwtYJ/enoBRC29qLMknqgrCdK0LYnqwWhfy2JwewBPQvqu0eci9o1S 9MTqOAMjBGlkNUMOplm2pm9M2iyJKWd0PRJYOrpKXWYUQJur0z/0KDZhbWlVd0Zk49ev LAuA== MIME-Version: 1.0 X-Received: by 10.194.48.116 with SMTP id k20mr3336245wjn.23.1376405963290; Tue, 13 Aug 2013 07:59:23 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.217.142.76 with HTTP; Tue, 13 Aug 2013 07:59:23 -0700 (PDT) In-Reply-To: <20130813142230.GE54133@acme.spoerlein.net> References: <201308091111.r79BBCbY095386@svn.freebsd.org> <20130813142230.GE54133@acme.spoerlein.net> Date: Tue, 13 Aug 2013 16:59:23 +0200 X-Google-Sender-Auth: MvG3P6DbMeckjRlapB-VU6HbKzs Message-ID: Subject: Re: svn commit: r254138 - in head: share/man/man9 sys/amd64/amd64 sys/arm/arm sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/agp sys/dev/drm2/i915 sys/dev/drm2/ttm sys/dev/md sys/fs/fuse sys/fs... From: Attilio Rao To: =?UTF-8?Q?Ulrich_Sp=C3=B6rlein?= , Attilio Rao , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 14:59:26 -0000 On Tue, Aug 13, 2013 at 4:22 PM, Ulrich Sp=C3=B6rlein wro= te: > On Fri, 2013-08-09 at 11:11:12 +0000, Attilio Rao wrote: >> Author: attilio >> Date: Fri Aug 9 11:11:11 2013 >> New Revision: 254138 >> URL: http://svnweb.freebsd.org/changeset/base/254138 >> >> Log: >> The soft and hard busy mechanism rely on the vm object lock to work. >> Unify the 2 concept into a real, minimal, sxlock where the shared >> acquisition represent the soft busy and the exclusive acquisition >> represent the hard busy. >> The old VPO_WANTED mechanism becames the hard-path for this new lock >> and it becomes per-page rather than per-object. >> The vm_object lock becames an interlock for this functionality: >> it can be held in both read or write mode. >> However, if the vm_object lock is held in read mode while acquiring >> or releasing the busy state, the thread owner cannot make any >> assumption on the busy state unless it is also busying it. >> >> Also: >> - Add a new flag to directly shared busy pages while vm_page_alloc >> and vm_page_grab are being executed. This will be very helpful >> once these functions happen under a read object lock. >> - Move the swapping sleep into its own per-object flag >> >> The KPI is heavilly changed this is why the version is bumped. >> It is very likely that some VM ports users will need to change >> their own code. >> >> Sponsored by: EMC / Isilon storage division >> Discussed with: alc >> Reviewed by: jeff, kib >> Tested by: gavin, bapt (older version) >> Tested by: pho, scottl > > The changes to sys/vm/vm_fault.c introduce a call to > vm_page_sleep_if_busy() where the return code is not checked. The other > 5 places in the tree check the return code, please fix this here too. > It's CID 1062398, and I would encourage folks to get an account with > scan.coverity.com and have an eye on newly found defects. Not true. The same call existed also before with exactly the same semantic. The trick there is that it is not important to check for the return value because we are going to retry the operation anyway. The code looks ok to me. Attilio --=20 Peace can only be achieved by understanding - A. Einstein From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 15:23:19 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0D552EE4; Tue, 13 Aug 2013 15:23:19 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D6D1A2E55; Tue, 13 Aug 2013 15:23:18 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1V9GRE-000IRM-Df; Tue, 13 Aug 2013 15:23:12 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r7DFN96M035935; Tue, 13 Aug 2013 09:23:09 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1+W/QUsdM6Sw/hVGChEHodD Subject: Re: svn commit: r254217 - head/sys/conf From: Ian Lepore To: Glen Barber In-Reply-To: <201308111357.r7BDvF7H065442@svn.freebsd.org> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> Content-Type: text/plain; charset="us-ascii" Date: Tue, 13 Aug 2013 09:23:09 -0600 Message-ID: <1376407389.3320.209.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 15:23:19 -0000 On Sun, 2013-08-11 at 13:57 +0000, Glen Barber wrote: > Author: gjb > Date: Sun Aug 11 13:57:14 2013 > New Revision: 254217 > URL: http://svnweb.freebsd.org/changeset/base/254217 > > Log: > Use realpath(1) to determine the location of the newvers.sh script, > since the current working directory might not be what is expected, > causing svn{,lite}version to fail to find ${0} (itself). > > Submitted by: Dan Mack > > Modified: > head/sys/conf/newvers.sh > > Modified: head/sys/conf/newvers.sh > ============================================================================== > --- head/sys/conf/newvers.sh Sun Aug 11 11:33:48 2013 (r254216) > +++ head/sys/conf/newvers.sh Sun Aug 11 13:57:14 2013 (r254217) > @@ -96,7 +96,7 @@ for dir in /usr/bin /usr/local/bin; do > # Run svnversion from ${dir} on this script; if return code > # is not zero, the checkout might not be compatible with the > # svnversion being used. > - ${dir}/svnversion $(basename ${0}) >/dev/null 2>&1 > + ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 > if [ $? -eq 0 ]; then > svnversion=${dir}/svnversion > break > @@ -105,7 +105,7 @@ for dir in /usr/bin /usr/local/bin; do > done > > if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then > - /usr/bin/svnliteversion $(basename ${0}) >/dev/null 2>&1 > + /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 > if [ $? -eq 0 ]; then > svnversion=/usr/bin/svnliteversion > else This is still not working for me. I don't see how it could be working properly for anyone. The newvers.sh isn't run from the make rules, it's sourced into the rules. In that context, ${0} appears to resolve to simply "sh" or "/bin/sh" (depending on host OS version) not the name of the script that was sourced. Here's a minimal example: root@wand:/tmp # cat /tmp/foo #!/bin/sh - echo ${0} root@wand:/tmp # cat /tmp/Makefile all: @echo "Sourcing /tmp/foo..."; \ . /tmp/foo root@wand:/tmp # make Sourcing /tmp/foo... /bin/sh There are other references to $0 within newvers.sh, and if you add a 'set -x' to the beginning of the script you can see that they all resolve to /bin/sh, which seems to imply that there's some stuff that's working by accident in that script when it's sourced in. -- Ian From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 15:28:26 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2303619B; Tue, 13 Aug 2013 15:28:26 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) by mx1.freebsd.org (Postfix) with ESMTP id D60322ED2; Tue, 13 Aug 2013 15:28:25 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.69 (FreeBSD)) (envelope-from ) id 1V9GYH-000CFS-2n; Tue, 13 Aug 2013 19:30:29 +0400 Date: Tue, 13 Aug 2013 19:30:29 +0400 From: Slawa Olhovchenkov To: "Kenneth D. Merry" Subject: Re: svn commit: r253550 - head/sys/dev/mps Message-ID: <20130813153029.GD3796@zxy.spb.ru> References: <201307221841.r6MIfsoQ075667@svn.freebsd.org> <20130810181454.GA47115@zxy.spb.ru> <20130812155647.GA11414@nargothrond.kdm.org> <20130812174545.GA3796@zxy.spb.ru> <20130812190229.GA24478@nargothrond.kdm.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130812190229.GA24478@nargothrond.kdm.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 15:28:26 -0000 On Mon, Aug 12, 2013 at 01:02:29PM -0600, Kenneth D. Merry wrote: > If you really want one now, I've attached a patch from stable/9 on June > 27th. It may or may not apply now. Its apply witch litle edit. > > > Now that it's done, I hope to merge that change to stable/9 this week. > > > > Also, I see strange behaviour of LSI 9211-8i -- after some activity > > got timeout and HBA put in looped reset. > > That's not good. Try with the newer driver and see whether if affects the > behavior. Witch this driver I got same behavior: after intesive i/o got timeout, driver try re-init controller without success. On all HDD activity LED ON w/o blinking at this moment. From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 15:32:26 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 877653D0; Tue, 13 Aug 2013 15:32:26 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [208.86.227.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3F0FF2F54; Tue, 13 Aug 2013 15:32:25 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 2E2C8DE99; Tue, 13 Aug 2013 15:32:24 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 2E2C8DE99 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 13 Aug 2013 11:32:22 -0400 From: Glen Barber To: Ian Lepore Subject: Re: svn commit: r254217 - head/sys/conf Message-ID: <20130813153222.GL2432@glenbarber.us> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> <1376407389.3320.209.camel@revolution.hippie.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="eUGqGfkt69yEwRle" Content-Disposition: inline In-Reply-To: <1376407389.3320.209.camel@revolution.hippie.lan> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 15:32:26 -0000 --eUGqGfkt69yEwRle Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Aug 13, 2013 at 09:23:09AM -0600, Ian Lepore wrote: > On Sun, 2013-08-11 at 13:57 +0000, Glen Barber wrote: > > Author: gjb > > Date: Sun Aug 11 13:57:14 2013 > > New Revision: 254217 > > URL: http://svnweb.freebsd.org/changeset/base/254217 > >=20 > > Log: > > Use realpath(1) to determine the location of the newvers.sh script, > > since the current working directory might not be what is expected, > > causing svn{,lite}version to fail to find ${0} (itself). > > =20 > > Submitted by: Dan Mack > >=20 > > Modified: > > head/sys/conf/newvers.sh > >=20 > > Modified: head/sys/conf/newvers.sh > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D > > --- head/sys/conf/newvers.sh Sun Aug 11 11:33:48 2013 (r254216) > > +++ head/sys/conf/newvers.sh Sun Aug 11 13:57:14 2013 (r254217) > > @@ -96,7 +96,7 @@ for dir in /usr/bin /usr/local/bin; do > > # Run svnversion from ${dir} on this script; if return code > > # is not zero, the checkout might not be compatible with the > > # svnversion being used. > > - ${dir}/svnversion $(basename ${0}) >/dev/null 2>&1 > > + ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 > > if [ $? -eq 0 ]; then > > svnversion=3D${dir}/svnversion > > break > > @@ -105,7 +105,7 @@ for dir in /usr/bin /usr/local/bin; do > > done > > =20 > > if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then > > - /usr/bin/svnliteversion $(basename ${0}) >/dev/null 2>&1 > > + /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 > > if [ $? -eq 0 ]; then > > svnversion=3D/usr/bin/svnliteversion > > else >=20 > This is still not working for me. I don't see how it could be working > properly for anyone. >=20 > The newvers.sh isn't run from the make rules, it's sourced into the > rules. In that context, ${0} appears to resolve to simply "sh" or > "/bin/sh" (depending on host OS version) not the name of the script that > was sourced. Here's a minimal example: >=20 > root@wand:/tmp # cat /tmp/foo > #!/bin/sh - > echo ${0} > =20 > root@wand:/tmp # cat /tmp/Makefile=20 > all: > @echo "Sourcing /tmp/foo..."; \ > . /tmp/foo > =20 > root@wand:/tmp # make > Sourcing /tmp/foo... > /bin/sh >=20 > There are other references to $0 within newvers.sh, and if you add a > 'set -x' to the beginning of the script you can see that they all > resolve to /bin/sh, which seems to imply that there's some stuff that's > working by accident in that script when it's sourced in. >=20 I tested this with a 'buildkernel', not running the script directly. In my tests, I did add 'set -x' so I could verify the right thing was being done, which in my case, it was. Can you 'set -x' in the script, and provide the output of 'make -s builkdkernel' ? Glen --eUGqGfkt69yEwRle Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSClGGAAoJEFJPDDeguUajgjcH/3+cjWxs/3n3VXeMC0Spe+kD 6/fj7AxND6dwZnEYdHcexlIx3CePyNRBtqitr2izrmmg+ya+q60uPUMKc7qbTkFJ GVJeBfZQ04WSe1r5u13mFeYaxST29fHXGp+RxGrCVngRWD6zvzTox29RzCfxx0kx N2c030GMwXg0sdmqfE5jIFlG6BLfRDqAm+/d3B5eU9SQMCacamKKJw/enhdeHzWm GjuhmkHfQ/OqklTpT6v7oJSjwpWZhxVqKD9QAkB5K8CIjHVDCbokt8hs3vP4sjoz aKfF+S+8EYsam1AfHMKN84SptmBsXXq3JHQeQS5ALd9aZLESVkDKEg04jM+7D1M= =B/gZ -----END PGP SIGNATURE----- --eUGqGfkt69yEwRle-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 15:40:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 43EA968C; Tue, 13 Aug 2013 15:40:45 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 30A462FF2; Tue, 13 Aug 2013 15:40:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DFejG2071131; Tue, 13 Aug 2013 15:40:45 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DFehRl071120; Tue, 13 Aug 2013 15:40:43 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201308131540.r7DFehRl071120@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Tue, 13 Aug 2013 15:40:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254283 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 15:40:45 -0000 Author: pfg Date: Tue Aug 13 15:40:43 2013 New Revision: 254283 URL: http://svnweb.freebsd.org/changeset/base/254283 Log: Define ext2fs local types and use them. Add definitions for e2fs_daddr_t, e4fs_daddr_t in addition to the already existing e2fs_lbn_t and adjust them for ext4. Other than making the code more readable these changes should fix problems related to big filesystems. Setting the proper types can be tricky so the process was helped by looking at UFS. In our implementation, logical block numbers can be negative and the code depends on it. In ext2, block numbers are unsigned so it is convenient to keep e2fs_daddr_t unsigned and use the complete 32 bits. In the case of e4fs_daddr_t, while the value should be unsigned, for ext4 we only need to support 48 bits so preserving an extra bit from the sign is not an issue. While here also drop the ext2_setblock() prototype that was never used. Discussed with: mckusick, bde MFC after: 3 weeks Modified: head/sys/fs/ext2fs/ext2_alloc.c head/sys/fs/ext2fs/ext2_balloc.c head/sys/fs/ext2fs/ext2_bmap.c head/sys/fs/ext2fs/ext2_extern.h head/sys/fs/ext2fs/ext2_inode.c head/sys/fs/ext2fs/ext2_subr.c head/sys/fs/ext2fs/ext2_vnops.c head/sys/fs/ext2fs/inode.h Modified: head/sys/fs/ext2fs/ext2_alloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_alloc.c Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_alloc.c Tue Aug 13 15:40:43 2013 (r254283) @@ -80,8 +80,8 @@ static daddr_t ext2_mapsearch(struct m_ * available block is located. */ int -ext2_alloc(struct inode *ip, int32_t lbn, int32_t bpref, int size, - struct ucred *cred, int32_t *bnp) +ext2_alloc(struct inode *ip, daddr_t lbn, e4fs_daddr_t bpref, int size, + struct ucred *cred, e4fs_daddr_t *bnp) { struct m_ext2fs *fs; struct ext2mount *ump; @@ -166,7 +166,8 @@ ext2_reallocblks(struct vop_reallocblks_ struct cluster_save *buflist; struct indir start_ap[NIADDR + 1], end_ap[NIADDR + 1], *idp; e2fs_lbn_t start_lbn, end_lbn; - int32_t soff, newblk, blkno; + int soff; + e2fs_daddr_t newblk, blkno; int i, len, start_lvl, end_lvl, pref, ssize; if (doreallocblks == 0) @@ -250,7 +251,7 @@ ext2_reallocblks(struct vop_reallocblks_ /* * Search the block map looking for an allocation of the desired size. */ - if ((newblk = (int32_t)ext2_hashalloc(ip, dtog(fs, pref), pref, + if ((newblk = (e2fs_daddr_t)ext2_hashalloc(ip, dtog(fs, pref), pref, len, ext2_clusteralloc)) == 0){ EXT2_UNLOCK(ump); goto fail; @@ -550,9 +551,9 @@ ext2_dirpref(struct inode *pip) * of the above. Then, blocknr tells us the number of the block * that will hold the pointer */ -int32_t -ext2_blkpref(struct inode *ip, e2fs_lbn_t lbn, int indx, int32_t *bap, - int32_t blocknr) +e4fs_daddr_t +ext2_blkpref(struct inode *ip, e2fs_lbn_t lbn, int indx, e2fs_daddr_t *bap, + e2fs_daddr_t blocknr) { int tmp; mtx_assert(EXT2_MTX(ip->i_ump), MA_OWNED); @@ -575,7 +576,7 @@ ext2_blkpref(struct inode *ip, e2fs_lbn_ follow the rule that a block should be allocated near its inode */ return blocknr ? blocknr : - (int32_t)(ip->i_block_group * + (e2fs_daddr_t)(ip->i_block_group * EXT2_BLOCKS_PER_GROUP(ip->i_e2fs)) + ip->i_e2fs->e2fs->e2fs_first_dblock; } @@ -955,7 +956,7 @@ gotit: * */ void -ext2_blkfree(struct inode *ip, int32_t bno, long size) +ext2_blkfree(struct inode *ip, e4fs_daddr_t bno, long size) { struct m_ext2fs *fs; struct buf *bp; Modified: head/sys/fs/ext2fs/ext2_balloc.c ============================================================================== --- head/sys/fs/ext2fs/ext2_balloc.c Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_balloc.c Tue Aug 13 15:40:43 2013 (r254283) @@ -65,8 +65,8 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t struct buf *bp, *nbp; struct vnode *vp = ITOV(ip); struct indir indirs[NIADDR + 2]; - uint32_t nb, newb; - int32_t *bap, pref; + e4fs_daddr_t nb, newb; + e2fs_daddr_t *bap, pref; int osize, nsize, num, i, error; *bpp = NULL; @@ -195,7 +195,7 @@ ext2_balloc(struct inode *ip, e2fs_lbn_t brelse(bp); return (error); } - bap = (int32_t *)bp->b_data; + bap = (e2fs_daddr_t *)bp->b_data; nb = bap[indirs[i].in_off]; if (i == num) break; Modified: head/sys/fs/ext2fs/ext2_bmap.c ============================================================================== --- head/sys/fs/ext2fs/ext2_bmap.c Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_bmap.c Tue Aug 13 15:40:43 2013 (r254283) @@ -62,7 +62,7 @@ static int ext4_bmapext(struct vnode *, int ext2_bmap(struct vop_bmap_args *ap) { - int64_t blkno; + daddr_t blkno; int error; /* @@ -139,7 +139,7 @@ ext4_bmapext(struct vnode *vp, int32_t b */ int -ext2_bmaparray(struct vnode *vp, int32_t bn, int64_t *bnp, int *runp, int *runb) +ext2_bmaparray(struct vnode *vp, daddr_t bn, daddr_t *bnp, int *runp, int *runb) { struct inode *ip; struct buf *bp; @@ -182,7 +182,7 @@ ext2_bmaparray(struct vnode *vp, int32_t if (*bnp == 0) { *bnp = -1; } else if (runp) { - int32_t bnb = bn; + daddr_t bnb = bn; for (++bn; bn < NDADDR && *runp < maxrun && is_sequential(ump, ip->i_db[bn - 1], ip->i_db[bn]); ++bn, ++*runp); @@ -190,7 +190,7 @@ ext2_bmaparray(struct vnode *vp, int32_t if (runb && (bn > 0)) { for (--bn; (bn >= 0) && (*runb < maxrun) && is_sequential(ump, ip->i_db[bn], - ip->i_db[bn+1]); + ip->i_db[bn + 1]); --bn, ++*runb); } } @@ -239,19 +239,20 @@ ext2_bmaparray(struct vnode *vp, int32_t } } - daddr = ((int32_t *)bp->b_data)[ap->in_off]; + daddr = ((e2fs_daddr_t *)bp->b_data)[ap->in_off]; if (num == 1 && daddr && runp) { for (bn = ap->in_off + 1; bn < MNINDIR(ump) && *runp < maxrun && is_sequential(ump, - ((int32_t *)bp->b_data)[bn - 1], - ((int32_t *)bp->b_data)[bn]); + ((e2fs_daddr_t *)bp->b_data)[bn - 1], + ((e2fs_daddr_t *)bp->b_data)[bn]); ++bn, ++*runp); bn = ap->in_off; if (runb && bn) { for (--bn; bn >= 0 && *runb < maxrun && - is_sequential(ump, ((int32_t *)bp->b_data)[bn], - ((int32_t *)bp->b_data)[bn+1]); + is_sequential(ump, + ((e2fs_daddr_t *)bp->b_data)[bn], + ((e2fs_daddr_t *)bp->b_data)[bn + 1]); --bn, ++*runb); } } @@ -287,7 +288,7 @@ ext2_bmaparray(struct vnode *vp, int32_t * once with the offset into the page itself. */ int -ext2_getlbns(struct vnode *vp, int32_t bn, struct indir *ap, int *nump) +ext2_getlbns(struct vnode *vp, daddr_t bn, struct indir *ap, int *nump) { long blockcnt; e2fs_lbn_t metalbn, realbn; Modified: head/sys/fs/ext2fs/ext2_extern.h ============================================================================== --- head/sys/fs/ext2fs/ext2_extern.h Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_extern.h Tue Aug 13 15:40:43 2013 (r254283) @@ -49,24 +49,24 @@ struct vfsconf; struct vnode; int ext2_add_entry(struct vnode *, struct ext2fs_direct_2 *); -int ext2_alloc(struct inode *, - int32_t, int32_t, int, struct ucred *, int32_t *); +int ext2_alloc(struct inode *, daddr_t, e4fs_daddr_t, int, + struct ucred *, e4fs_daddr_t *); int ext2_balloc(struct inode *, e2fs_lbn_t, int, struct ucred *, struct buf **, int); int ext2_blkatoff(struct vnode *, off_t, char **, struct buf **); -void ext2_blkfree(struct inode *, int32_t, long); -int32_t ext2_blkpref(struct inode *, e2fs_lbn_t, int, int32_t *, int32_t); +void ext2_blkfree(struct inode *, e4fs_daddr_t, long); +e4fs_daddr_t ext2_blkpref(struct inode *, e2fs_lbn_t, int, e2fs_daddr_t *, + e2fs_daddr_t); int ext2_bmap(struct vop_bmap_args *); -int ext2_bmaparray(struct vnode *, int32_t, int64_t *, int *, int *); +int ext2_bmaparray(struct vnode *, daddr_t, daddr_t *, int *, int *); void ext2_clusteracct(struct m_ext2fs *, char *, int, daddr_t, int); void ext2_dirbad(struct inode *ip, doff_t offset, char *how); void ext2_ei2i(struct ext2fs_dinode *, struct inode *); -int ext2_getlbns(struct vnode *, int32_t, struct indir *, int *); +int ext2_getlbns(struct vnode *, daddr_t, struct indir *, int *); void ext2_i2ei(struct inode *, struct ext2fs_dinode *); void ext2_itimes(struct vnode *vp); int ext2_reallocblks(struct vop_reallocblks_args *); int ext2_reclaim(struct vop_reclaim_args *); -void ext2_setblock(struct m_ext2fs *, u_char *, int32_t); int ext2_truncate(struct vnode *, off_t, int, struct ucred *, struct thread *); int ext2_update(struct vnode *, int); int ext2_valloc(struct vnode *, int, struct ucred *, struct vnode **); Modified: head/sys/fs/ext2fs/ext2_inode.c ============================================================================== --- head/sys/fs/ext2fs/ext2_inode.c Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_inode.c Tue Aug 13 15:40:43 2013 (r254283) @@ -54,8 +54,8 @@ #include #include -static int ext2_indirtrunc(struct inode *, int32_t, int32_t, int32_t, int, - long *); +static int ext2_indirtrunc(struct inode *, daddr_t, daddr_t, + daddr_t, int, e4fs_daddr_t *); /* * Update the access, modified, and inode change times as specified by the @@ -119,7 +119,7 @@ ext2_truncate(struct vnode *vp, off_t le struct m_ext2fs *fs; struct buf *bp; int offset, size, level; - long count, nblocks, blocksreleased = 0; + e4fs_daddr_t count, nblocks, blocksreleased = 0; int error, i, allerror; off_t osize; @@ -356,16 +356,16 @@ done: */ static int -ext2_indirtrunc(struct inode *ip, int32_t lbn, int32_t dbn, int32_t lastbn, - int level, long *countp) +ext2_indirtrunc(struct inode *ip, daddr_t lbn, daddr_t dbn, + daddr_t lastbn, int level, e4fs_daddr_t *countp) { struct buf *bp; struct m_ext2fs *fs = ip->i_e2fs; struct vnode *vp; - int32_t *bap, *copy, nb, nlbn, last; - long blkcount, factor; - int i, nblocks, blocksreleased = 0; - int error = 0, allerror = 0; + e2fs_daddr_t *bap, *copy; + int i, nblocks, error = 0, allerror = 0; + e2fs_lbn_t nb, nlbn, last; + e4fs_daddr_t blkcount, factor, blocksreleased = 0; /* * Calculate index in current block of last @@ -405,11 +405,11 @@ ext2_indirtrunc(struct inode *ip, int32_ return (error); } - bap = (int32_t *)bp->b_data; + bap = (e2fs_daddr_t *)bp->b_data; copy = malloc(fs->e2fs_bsize, M_TEMP, M_WAITOK); bcopy((caddr_t)bap, (caddr_t)copy, (u_int)fs->e2fs_bsize); bzero((caddr_t)&bap[last + 1], - (u_int)(NINDIR(fs) - (last + 1)) * sizeof(int32_t)); + (NINDIR(fs) - (last + 1)) * sizeof(e2fs_daddr_t)); if (last == -1) bp->b_flags |= B_INVAL; if (DOINGASYNC(vp)) { Modified: head/sys/fs/ext2fs/ext2_subr.c ============================================================================== --- head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 15:40:43 2013 (r254283) @@ -135,7 +135,7 @@ void ext2_checkoverlap(struct buf *bp, struct inode *ip) { struct buf *ebp, *ep; - int32_t start, last; + e4fs_daddr_t start, last; struct vnode *vp; ebp = &buf[nbuf]; Modified: head/sys/fs/ext2fs/ext2_vnops.c ============================================================================== --- head/sys/fs/ext2fs/ext2_vnops.c Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/ext2_vnops.c Tue Aug 13 15:40:43 2013 (r254283) @@ -1329,7 +1329,7 @@ ext2_strategy(struct vop_strategy_args * struct vnode *vp = ap->a_vp; struct inode *ip; struct bufobj *bo; - int64_t blkno; + daddr_t blkno; int error; ip = VTOI(vp); Modified: head/sys/fs/ext2fs/inode.h ============================================================================== --- head/sys/fs/ext2fs/inode.h Tue Aug 13 13:40:31 2013 (r254282) +++ head/sys/fs/ext2fs/inode.h Tue Aug 13 15:40:43 2013 (r254283) @@ -54,9 +54,11 @@ #define NIADDR 3 /* Indirect addresses in inode. */ /* - * The size of physical and logical block numbers and time fields in UFS. + * The size of physical and logical block numbers in EXT2FS. */ -typedef int32_t e2fs_lbn_t; +typedef uint32_t e2fs_daddr_t; +typedef int64_t e2fs_lbn_t; +typedef int64_t e4fs_daddr_t; /* * The inode is used to describe each active (or recently active) file in the From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 16:29:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 69C20837; Tue, 13 Aug 2013 16:29:55 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from mail-ob0-x22a.google.com (mail-ob0-x22a.google.com [IPv6:2607:f8b0:4003:c01::22a]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0C56722F9; Tue, 13 Aug 2013 16:29:54 +0000 (UTC) Received: by mail-ob0-f170.google.com with SMTP id eh20so5643034obb.1 for ; Tue, 13 Aug 2013 09:29:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=iqQO9FTxzkUxjKOulMeStoukIXCzcDlUq7VU6t4kyPg=; b=o/3dN2oLLotmJM7hlknVkdk4OX9JTY1jeWpah/C+lkPi8EmvUsdiosqD8GgnwWPI6M G1w6gfOI69xVILas/CQAilyiCSxJLFEkp/eeAn2JYBv0KM+E2jkuB+2z1G+KZilyyjd1 5fgXJnYbxVSPofFEkjd99xmAvkJrGldtww5AczvFyeAPPgylbOql/hHkHjYuB4tlt3dH hNNfyeXpKkGlEhQqDXdpsHwfn9+OpfMjmTflKON39CK14RMqUMlAcKHK2OZv/AsFgB23 r4Gii2f7PlDpzYIxdbp1YG9q/PuY0jz1q4h4xMnQFXaV0gIPhwTdNgKmpeRw5z4qOexp FVLg== MIME-Version: 1.0 X-Received: by 10.182.27.74 with SMTP id r10mr1597871obg.63.1376411394323; Tue, 13 Aug 2013 09:29:54 -0700 (PDT) Sender: uspoerlein@gmail.com Received: by 10.76.27.135 with HTTP; Tue, 13 Aug 2013 09:29:54 -0700 (PDT) In-Reply-To: References: <201308091111.r79BBCbY095386@svn.freebsd.org> <20130813142230.GE54133@acme.spoerlein.net> Date: Tue, 13 Aug 2013 18:29:54 +0200 X-Google-Sender-Auth: n6TTzJ0H05PYKW4zzWXYuMzh8PM Message-ID: Subject: Re: svn commit: r254138 - in head: share/man/man9 sys/amd64/amd64 sys/arm/arm sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/dev/agp sys/dev/drm2/i915 sys/dev/drm2/ttm sys/dev/md sys/fs/fuse sys/fs... From: =?UTF-8?Q?Ulrich_Sp=C3=B6rlein?= To: attilio@freebsd.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 16:29:55 -0000 2013/8/13 Attilio Rao : > On Tue, Aug 13, 2013 at 4:22 PM, Ulrich Sp=C3=B6rlein w= rote: >> On Fri, 2013-08-09 at 11:11:12 +0000, Attilio Rao wrote: >>> Author: attilio >>> Date: Fri Aug 9 11:11:11 2013 >>> New Revision: 254138 >>> URL: http://svnweb.freebsd.org/changeset/base/254138 >>> >>> Log: >>> The soft and hard busy mechanism rely on the vm object lock to work. >>> Unify the 2 concept into a real, minimal, sxlock where the shared >>> acquisition represent the soft busy and the exclusive acquisition >>> represent the hard busy. >>> The old VPO_WANTED mechanism becames the hard-path for this new lock >>> and it becomes per-page rather than per-object. >>> The vm_object lock becames an interlock for this functionality: >>> it can be held in both read or write mode. >>> However, if the vm_object lock is held in read mode while acquiring >>> or releasing the busy state, the thread owner cannot make any >>> assumption on the busy state unless it is also busying it. >>> >>> Also: >>> - Add a new flag to directly shared busy pages while vm_page_alloc >>> and vm_page_grab are being executed. This will be very helpful >>> once these functions happen under a read object lock. >>> - Move the swapping sleep into its own per-object flag >>> >>> The KPI is heavilly changed this is why the version is bumped. >>> It is very likely that some VM ports users will need to change >>> their own code. >>> >>> Sponsored by: EMC / Isilon storage division >>> Discussed with: alc >>> Reviewed by: jeff, kib >>> Tested by: gavin, bapt (older version) >>> Tested by: pho, scottl >> >> The changes to sys/vm/vm_fault.c introduce a call to >> vm_page_sleep_if_busy() where the return code is not checked. The other >> 5 places in the tree check the return code, please fix this here too. >> It's CID 1062398, and I would encourage folks to get an account with >> scan.coverity.com and have an eye on newly found defects. > > Not true. > The same call existed also before with exactly the same semantic. > The trick there is that it is not important to check for the return > value because we are going to retry the operation anyway. > The code looks ok to me. Thanks for the explanation. The code shuffling meant that Coverity saw it as new code, that's what prompted me to email you. Cheers, Uli From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 17:02:22 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8818B479; Tue, 13 Aug 2013 17:02:22 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 49B1F2520; Tue, 13 Aug 2013 17:02:21 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1V9HzA-000Aoj-Qe; Tue, 13 Aug 2013 17:02:21 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r7DH2IhS035999; Tue, 13 Aug 2013 11:02:18 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX185kQTvWIYby9fkR0k4cMI1 Subject: Re: svn commit: r254217 - head/sys/conf From: Ian Lepore To: Glen Barber In-Reply-To: <20130813153222.GL2432@glenbarber.us> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> <1376407389.3320.209.camel@revolution.hippie.lan> <20130813153222.GL2432@glenbarber.us> Content-Type: text/plain; charset="us-ascii" Date: Tue, 13 Aug 2013 11:02:17 -0600 Message-ID: <1376413337.3320.224.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 17:02:22 -0000 On Tue, 2013-08-13 at 11:32 -0400, Glen Barber wrote: > On Tue, Aug 13, 2013 at 09:23:09AM -0600, Ian Lepore wrote: > > On Sun, 2013-08-11 at 13:57 +0000, Glen Barber wrote: > > > Author: gjb > > > Date: Sun Aug 11 13:57:14 2013 > > > New Revision: 254217 > > > URL: http://svnweb.freebsd.org/changeset/base/254217 > > > > > > Log: > > > Use realpath(1) to determine the location of the newvers.sh script, > > > since the current working directory might not be what is expected, > > > causing svn{,lite}version to fail to find ${0} (itself). > > > > > > Submitted by: Dan Mack > > > > > > Modified: > > > head/sys/conf/newvers.sh > > > > > > Modified: head/sys/conf/newvers.sh > > > ============================================================================== > > > --- head/sys/conf/newvers.sh Sun Aug 11 11:33:48 2013 (r254216) > > > +++ head/sys/conf/newvers.sh Sun Aug 11 13:57:14 2013 (r254217) > > > @@ -96,7 +96,7 @@ for dir in /usr/bin /usr/local/bin; do > > > # Run svnversion from ${dir} on this script; if return code > > > # is not zero, the checkout might not be compatible with the > > > # svnversion being used. > > > - ${dir}/svnversion $(basename ${0}) >/dev/null 2>&1 > > > + ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 > > > if [ $? -eq 0 ]; then > > > svnversion=${dir}/svnversion > > > break > > > @@ -105,7 +105,7 @@ for dir in /usr/bin /usr/local/bin; do > > > done > > > > > > if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then > > > - /usr/bin/svnliteversion $(basename ${0}) >/dev/null 2>&1 > > > + /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 > > > if [ $? -eq 0 ]; then > > > svnversion=/usr/bin/svnliteversion > > > else > > > > This is still not working for me. I don't see how it could be working > > properly for anyone. > > > > The newvers.sh isn't run from the make rules, it's sourced into the > > rules. In that context, ${0} appears to resolve to simply "sh" or > > "/bin/sh" (depending on host OS version) not the name of the script that > > was sourced. Here's a minimal example: > > > > root@wand:/tmp # cat /tmp/foo > > #!/bin/sh - > > echo ${0} > > > > root@wand:/tmp # cat /tmp/Makefile > > all: > > @echo "Sourcing /tmp/foo..."; \ > > . /tmp/foo > > > > root@wand:/tmp # make > > Sourcing /tmp/foo... > > /bin/sh > > > > There are other references to $0 within newvers.sh, and if you add a > > 'set -x' to the beginning of the script you can see that they all > > resolve to /bin/sh, which seems to imply that there's some stuff that's > > working by accident in that script when it's sourced in. > > > > I tested this with a 'buildkernel', not running the script directly. In > my tests, I did add 'set -x' so I could verify the right thing was being > done, which in my case, it was. > > Can you 'set -x' in the script, and provide the output of 'make -s > builkdkernel' ? > > Glen > It fails for me during buildworld (I haven't gotten to buildkernel yet). This is a cross-build of armv6 from i386, if that matters. When I use "make -s" the build fails immediately in "building an up to date make" because it somehow has $DESTDIR/usr/lib/libc.a as a dependency for bmake/unit-tests, and clearly that isn't going to exist before installworld has created it (when DESTDIR is other than / which is always is for me). For some reason I can't even begin to figure out, I don't get that error with the -s left off. Hrm, I just noticed I get the same bmake build error at the beginning with and without the -s, the difference is that without -s it ignores the error and keeps building. Seems like a different bug. So, leaving the make -s problems aside, a regular "make buildworld" results in http://people.freebsd.org/~ian/make.buildworld.log (the failure is around line 6178). I don't know what's different between make with and without -s but perhaps it somehow toggles this problem. BTW, I'm seeing this problem at r254281, and did not see it at r253965. -- Ian From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 17:12:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 24B78655; Tue, 13 Aug 2013 17:12:24 +0000 (UTC) (envelope-from sfourman@gmail.com) Received: from mail-vb0-x235.google.com (mail-vb0-x235.google.com [IPv6:2607:f8b0:400c:c02::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A0F2A2593; Tue, 13 Aug 2013 17:12:23 +0000 (UTC) Received: by mail-vb0-f53.google.com with SMTP id i3so6857013vbh.12 for ; Tue, 13 Aug 2013 10:12:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=EOQlYQLRcedVDkw3RUlB6m4G92gVDXVl3/w3sDtjhMY=; b=O/ExjfqUcYKNPktQWv1X+YiaL/OV42HDTblxnKAgyy4pSj3GgkHf2jpPeTz3Gub8Ma KVqsof1zxtjSJciIK+JfablCfw0WgCIZwCTPN1KGGZjedAAbknpROAcpREzI3i3goe/T GHVxRNHOqw9Xa7MV5Y3hp+qy60q3xW3IbZSPByzMEK8Ga1cSHklKpjwWqG3IxWHiQAYv uUtlHBRjTVHVUYOFKnYjIgAyfNJ5XXeEnBj6o9Cz8SRa1eFrhQzVL6MuirX9eA4bTQy7 jye8/o6V1K1eSN5CKvtNZxD32Wmmhe0cRwcUKFVxJbSSHv9+y+GvKNLVCMMnQOBqxFIK rJjw== MIME-Version: 1.0 X-Received: by 10.58.208.130 with SMTP id me2mr5319412vec.13.1376413941622; Tue, 13 Aug 2013 10:12:21 -0700 (PDT) Received: by 10.220.96.78 with HTTP; Tue, 13 Aug 2013 10:12:21 -0700 (PDT) In-Reply-To: <201308131540.r7DFehRl071120@svn.freebsd.org> References: <201308131540.r7DFehRl071120@svn.freebsd.org> Date: Tue, 13 Aug 2013 13:12:21 -0400 Message-ID: Subject: Re: svn commit: r254283 - head/sys/fs/ext2fs From: "Sam Fourman Jr." To: "Pedro F. Giffuni" Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 17:12:24 -0000 On Tue, Aug 13, 2013 at 11:40 AM, Pedro F. Giffuni wrote: > Author: pfg > Date: Tue Aug 13 15:40:43 2013 > New Revision: 254283 > URL: http://svnweb.freebsd.org/changeset/base/254283 > > Log: > Define ext2fs local types and use them. > > Add definitions for e2fs_daddr_t, e4fs_daddr_t in addition > to the already existing e2fs_lbn_t and adjust them for ext4. > Other than making the code more readable these changes should > fix problems related to big filesystems. > > Setting the proper types can be tricky so the process was > helped by looking at UFS. In our implementation, logical block > numbers can be negative and the code depends on it. In ext2, > block numbers are unsigned so it is convenient to keep > e2fs_daddr_t unsigned and use the complete 32 bits. In the > case of e4fs_daddr_t, while the value should be unsigned, for > ext4 we only need to support 48 bits so preserving an extra > bit from the sign is not an issue. > > While here also drop the ext2_setblock() prototype that was > never used. > > Discussed with: mckusick, bde > MFC after: 3 weeks > I think this change broke the build..... root@Border:/usr/src # svnlite info Path: . Working Copy Root Path: /usr/src URL: http://svn0.us-west.freebsd.org/base/head Relative URL: ^/head Repository Root: http://svn0.us-west.freebsd.org/base Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f Revision: 254284 Node Kind: directory Schedule: normal Last Changed Author: pfg Last Changed Rev: 254283 Last Changed Date: 2013-08-13 15:40:43 +0000 (Tue, 13 Aug 2013) ssing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -c /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_inode_cnv.c --- ext2_extents.o --- ctfconvert -L VERSION -g ext2_extents.o --- ext2_lookup.o --- --- ext2_subr.o --- --- ext2_htree.o --- ctfconvert -L VERSION -g ext2_htree.o --- ext2_lookup.o --- cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/BORDER/opt_global.h -I. -I@ -I@/contrib/altq -fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/obj/usr/src/sys/BORDER -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -c /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_lookup.c --- ext2_subr.o --- cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/BORDER/opt_global.h -I. -I@ -I@/contrib/altq -fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/obj/usr/src/sys/BORDER -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -c /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_subr.c --- ext2_vfsops.o --- cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/BORDER/opt_global.h -I. -I@ -I@/contrib/altq -fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/obj/usr/src/sys/BORDER -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -c /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_vfsops.c --- ext2_subr.o --- /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_subr.c:154:4: error: format specifies type 'int' but the argument has type 'e4fs_daddr_t' (aka 'long') [-Werror,-Wformat] start, last, (long long)ep->b_blkno, ^~~~~ /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_subr.c:154:11: error: format specifies type 'int' but the argument has type 'e4fs_daddr_t' (aka 'long') [-Werror,-Wformat] start, last, (long long)ep->b_blkno, ^~~~ 2 errors generated. *** [ext2_subr.o] Error code 1 make[4]: stopped in /usr/src/sys/modules/ext2fs --- ext2_inode_cnv.o --- ctfconvert -L VERSION -g ext2_inode_cnv.o --- ext2_inode.o --- ctfconvert -L VERSION -g ext2_inode.o --- ext2_alloc.o --- ctfconvert -L VERSION -g ext2_alloc.o --- ext2_lookup.o --- ctfconvert -L VERSION -g ext2_lookup.o --- ext2_vfsops.o --- ctfconvert -L VERSION -g ext2_vfsops.o 1 error make[4]: stopped in /usr/src/sys/modules/ext2fs *** Error code 2 Stop. make[3]: stopped in /usr/src/sys/modules *** [modules-all] Error code 1 make[2]: stopped in /usr/obj/usr/src/sys/BORDER 1 error make[2]: stopped in /usr/obj/usr/src/sys/BORDER *** [buildkernel] Error code 2 make[1]: stopped in /usr/src 1 error make[1]: stopped in /usr/src *** [buildkernel] Error code 2 make: stopped in /usr/src 1 error make: stopped in /usr/src root@Border:/usr/src # -- Sam Fourman Jr. From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 17:13:12 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5FB78794; Tue, 13 Aug 2013 17:13:12 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [208.86.227.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3255F259B; Tue, 13 Aug 2013 17:13:11 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 7A48FD93F; Tue, 13 Aug 2013 17:13:04 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 7A48FD93F Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 13 Aug 2013 13:13:02 -0400 From: Glen Barber To: Ian Lepore Subject: Re: svn commit: r254217 - head/sys/conf Message-ID: <20130813171302.GQ2432@glenbarber.us> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> <1376407389.3320.209.camel@revolution.hippie.lan> <20130813153222.GL2432@glenbarber.us> <1376413337.3320.224.camel@revolution.hippie.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="X1pyOwMoA9G3DWfK" Content-Disposition: inline In-Reply-To: <1376413337.3320.224.camel@revolution.hippie.lan> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 17:13:12 -0000 --X1pyOwMoA9G3DWfK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Aug 13, 2013 at 11:02:17AM -0600, Ian Lepore wrote: > It fails for me during buildworld (I haven't gotten to buildkernel yet). > This is a cross-build of armv6 from i386, if that matters. =20 >=20 It looks like the build is failing in sys/boot/fdt. =3D=3D=3D> sys/boot/fdt (installincludes) 1 error *** Error code 2 1 error *** Error code 2 > When I use "make -s" the build fails immediately in "building an up to > date make" because it somehow has $DESTDIR/usr/lib/libc.a as a > dependency for bmake/unit-tests, and clearly that isn't going to exist > before installworld has created it (when DESTDIR is other than / which > is always is for me). For some reason I can't even begin to figure out, > I don't get that error with the -s left off. >=20 Odd. '-s' should suppress build output (similar to adding "@" to the beginning of the Makefile command lines). > Hrm, I just noticed I get the same bmake build error at the beginning > with and without the -s, the difference is that without -s it ignores > the error and keeps building. Seems like a different bug. >=20 Yes, that is strange. > So, leaving the make -s problems aside, a regular "make buildworld" > results in http://people.freebsd.org/~ian/make.buildworld.log (the > failure is around line 6178). >=20 > I don't know what's different between make with and without -s but > perhaps it somehow toggles this problem. >=20 > BTW, I'm seeing this problem at r254281, and did not see it at r253965. >=20 At this point, I am just ready to revert all of the changes that allow use of svnliteversion from base to determine the svn version. In my buildkernel, newvers.sh does correctly expand '$(realpath ${0})' to $SYSBASE/sys/conf/newvers.sh. I do not know why it is not the same for the cross build. Although, I could just call svn{,lite}version on $SYSBASE/Makefile. root@nucleus:/usr/src # make -j8 -s buildkernel -------------------------------------------------------------- >>> Kernel build for NUCLEUS started on Tue Aug 13 13:09:53 EDT 2013 -------------------------------------------------------------- =3D=3D=3D> NUCLEUS -------------------------------------------------------------- >>> stage 1: configuring the kernel -------------------------------------------------------------- Kernel build directory is /usr/obj/usr/src/sys/NUCLEUS Don't forget to do ``make cleandepend && make depend'' -------------------------------------------------------------- >>> stage 2.1: cleaning up the object tree -------------------------------------------------------------- -------------------------------------------------------------- >>> stage 2.2: rebuilding the object tree -------------------------------------------------------------- -------------------------------------------------------------- >>> stage 2.3: build tools -------------------------------------------------------------- -------------------------------------------------------------- >>> stage 3.1: making dependencies -------------------------------------------------------------- -------------------------------------------------------------- >>> stage 3.2: building everything -------------------------------------------------------------- + [ ! -z '' ] + [ -x /usr/bin/svnversion ] + [ ! -z '' ] + [ -x /usr/local/bin/svnversion ] + [ -z ] + realpath /usr/src/sys/conf/newvers.sh + /usr/local/bin/svnversion /usr/src/sys/conf/newvers.sh + [ 0 -eq 0 ] + svnversion=3D/usr/local/bin/svnversion + break + [ -z /usr/local/bin/svnversion ] + [ -x /usr/bin/p4 ] + [ -x /usr/local/bin/p4 ] + [ -d /usr/src/sys/conf/../../.git ] + [ -n /usr/local/bin/svnversion ] + cd /usr/src/sys/conf/.. + /usr/local/bin/svnversion + svn=3D253815:254284M + svn=3D' r253815:254284M' + [ -n '' ] + [ -n '' ] + cat + echo 159 linking kernel.debug text data bss dec hex filename 9082608 1113780 1035592 11231980 ab62ec kernel.debug -------------------------------------------------------------- >>> Kernel build for NUCLEUS completed on Tue Aug 13 13:11:49 EDT 2013 -------------------------------------------------------------- Glen --X1pyOwMoA9G3DWfK Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSCmkeAAoJEFJPDDeguUajJ+kH/0ipzS67zLkxXdSHZ8w6S6NO CyoFnOlrTFKhoEROqfad4PMC4Uq9fhNHZiIIpMKS+C4BgNsLwd7GWn7Fq2UUlSnc gtXVqMm+pqc6oSOrtXinKQETdLWXGsg6dbj+PNVAG37e69vjvg0g37BAO6LWdaHr Fde+sW2p+G0bRidy9WbVcCElaLN6I23QekxfcW8WU+juxVNmvdUpV9u4wZ1kG87d qC+6ovvUgKu82Kvutd/qrP54FalYk/DACGtXqCa6qBULhI3KO2eXnEu3u+Fitt8k q0yxBORoEPddJ3viSIBmFtse920vwYyFhghXe+E4wpDKcU0W9qX4eXCGXphpP10= =cL5V -----END PGP SIGNATURE----- --X1pyOwMoA9G3DWfK-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 17:31:57 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3E19117A; Tue, 13 Aug 2013 17:31:57 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F330326D4; Tue, 13 Aug 2013 17:31:56 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1V9IRn-0004Vi-N3; Tue, 13 Aug 2013 17:31:55 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r7DHVqCC036024; Tue, 13 Aug 2013 11:31:52 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1/0LEOfLUzfUA3xlo5T5qwT Subject: Re: svn commit: r254217 - head/sys/conf From: Ian Lepore To: Glen Barber In-Reply-To: <20130813171302.GQ2432@glenbarber.us> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> <1376407389.3320.209.camel@revolution.hippie.lan> <20130813153222.GL2432@glenbarber.us> <1376413337.3320.224.camel@revolution.hippie.lan> <20130813171302.GQ2432@glenbarber.us> Content-Type: text/plain; charset="us-ascii" Date: Tue, 13 Aug 2013 11:31:52 -0600 Message-ID: <1376415112.3320.229.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 17:31:57 -0000 On Tue, 2013-08-13 at 13:13 -0400, Glen Barber wrote: > On Tue, Aug 13, 2013 at 11:02:17AM -0600, Ian Lepore wrote: > > It fails for me during buildworld (I haven't gotten to buildkernel yet). > > This is a cross-build of armv6 from i386, if that matters. > > > > It looks like the build is failing in sys/boot/fdt. > > ===> sys/boot/fdt (installincludes) > 1 error > *** Error code 2 > 1 error > *** Error code 2 > > > When I use "make -s" the build fails immediately in "building an up to > > date make" because it somehow has $DESTDIR/usr/lib/libc.a as a > > dependency for bmake/unit-tests, and clearly that isn't going to exist > > before installworld has created it (when DESTDIR is other than / which > > is always is for me). For some reason I can't even begin to figure out, > > I don't get that error with the -s left off. > > > > Odd. '-s' should suppress build output (similar to adding "@" to the > beginning of the Makefile command lines). > > > Hrm, I just noticed I get the same bmake build error at the beginning > > with and without the -s, the difference is that without -s it ignores > > the error and keeps building. Seems like a different bug. > > > > Yes, that is strange. > > > So, leaving the make -s problems aside, a regular "make buildworld" > > results in http://people.freebsd.org/~ian/make.buildworld.log (the > > failure is around line 6178). > > > > I don't know what's different between make with and without -s but > > perhaps it somehow toggles this problem. > > > > BTW, I'm seeing this problem at r254281, and did not see it at r253965. > > > > At this point, I am just ready to revert all of the changes that allow > use of svnliteversion from base to determine the svn version. In my > buildkernel, newvers.sh does correctly expand '$(realpath ${0})' to > $SYSBASE/sys/conf/newvers.sh. I do not know why it is not the same for > the cross build. Although, I could just call svn{,lite}version on > $SYSBASE/Makefile. > > root@nucleus:/usr/src # make -j8 -s buildkernel > -------------------------------------------------------------- > >>> Kernel build for NUCLEUS started on Tue Aug 13 13:09:53 EDT 2013 > -------------------------------------------------------------- > ===> NUCLEUS > -------------------------------------------------------------- > >>> stage 1: configuring the kernel > -------------------------------------------------------------- > Kernel build directory is /usr/obj/usr/src/sys/NUCLEUS > Don't forget to do ``make cleandepend && make depend'' > -------------------------------------------------------------- > >>> stage 2.1: cleaning up the object tree > -------------------------------------------------------------- > -------------------------------------------------------------- > >>> stage 2.2: rebuilding the object tree > -------------------------------------------------------------- > -------------------------------------------------------------- > >>> stage 2.3: build tools > -------------------------------------------------------------- > -------------------------------------------------------------- > >>> stage 3.1: making dependencies > -------------------------------------------------------------- > -------------------------------------------------------------- > >>> stage 3.2: building everything > -------------------------------------------------------------- > + [ ! -z '' ] > + [ -x /usr/bin/svnversion ] > + [ ! -z '' ] > + [ -x /usr/local/bin/svnversion ] > + [ -z ] > + realpath /usr/src/sys/conf/newvers.sh > + /usr/local/bin/svnversion /usr/src/sys/conf/newvers.sh > + [ 0 -eq 0 ] > + svnversion=/usr/local/bin/svnversion > + break > + [ -z /usr/local/bin/svnversion ] > + [ -x /usr/bin/p4 ] > + [ -x /usr/local/bin/p4 ] > + [ -d /usr/src/sys/conf/../../.git ] > + [ -n /usr/local/bin/svnversion ] > + cd /usr/src/sys/conf/.. > + /usr/local/bin/svnversion > + svn=253815:254284M > + svn=' r253815:254284M' > + [ -n '' ] > + [ -n '' ] > + cat > + echo 159 > linking kernel.debug > text data bss dec hex filename > 9082608 1113780 1035592 11231980 ab62ec kernel.debug > -------------------------------------------------------------- > >>> Kernel build for NUCLEUS completed on Tue Aug 13 13:11:49 EDT 2013 > -------------------------------------------------------------- > > Glen > I'm not even sure what $0 *should* expand to in a script that was sourced in. The manpage doesn't say anything meaningful to me about it. Maybe it's a kind of "indeterminate results" thing which is pretty much what we're seeing. I was thinking that $(realpath ${PARAMFILE}) might be a good way to tap dance around the problem, but PARAMFILE can be set by default from $SYSDIR and it's not clear to me that that'll always be right either. -- Ian From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 17:53:39 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 53C94BE8; Tue, 13 Aug 2013 17:53:39 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [208.86.227.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0C48A292C; Tue, 13 Aug 2013 17:53:38 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 7DC85DD66; Tue, 13 Aug 2013 17:53:37 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 7DC85DD66 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 13 Aug 2013 13:53:35 -0400 From: Glen Barber To: Ian Lepore Subject: Re: svn commit: r254217 - head/sys/conf Message-ID: <20130813175335.GR2432@glenbarber.us> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> <1376407389.3320.209.camel@revolution.hippie.lan> <20130813153222.GL2432@glenbarber.us> <1376413337.3320.224.camel@revolution.hippie.lan> <20130813171302.GQ2432@glenbarber.us> <1376415112.3320.229.camel@revolution.hippie.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="QgvTbcZPsSS/HkXe" Content-Disposition: inline In-Reply-To: <1376415112.3320.229.camel@revolution.hippie.lan> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 17:53:39 -0000 --QgvTbcZPsSS/HkXe Content-Type: multipart/mixed; boundary="HKLejDDV6gCqJAZ/" Content-Disposition: inline --HKLejDDV6gCqJAZ/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Aug 13, 2013 at 11:31:52AM -0600, Ian Lepore wrote: > I'm not even sure what $0 *should* expand to in a script that was > sourced in. The manpage doesn't say anything meaningful to me about it. > Maybe it's a kind of "indeterminate results" thing which is pretty much > what we're seeing. >=20 When the file is sourced, it should expand to the name of the file sourcing the file.=20 gjb@nucleus:~ % cat foo1.sh foo2.sh #!/bin/sh echo ${0} =2E foo2.sh #!/bin/sh echo ${0} gjb@nucleus:~ % sh ./foo1.sh =2E/foo1.sh =2E/foo1.sh > I was thinking that $(realpath ${PARAMFILE}) might be a good way to tap > dance around the problem, but PARAMFILE can be set by default from > $SYSDIR and it's not clear to me that that'll always be right either. >=20 Can you please try the attached patch? As with my prior tests, this works for me... Glen --HKLejDDV6gCqJAZ/ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="newvers.sh.diff.txt" Content-Transfer-Encoding: quoted-printable Index: head/sys/conf/newvers.sh =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- head/sys/conf/newvers.sh (revision 254284) +++ head/sys/conf/newvers.sh (working copy) @@ -96,7 +96,7 @@ # Run svnversion from ${dir} on this script; if return code # is not zero, the checkout might not be compatible with the # svnversion being used. - ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 + ${dir}/svnversion ${SYSDIR}/Makefile >/dev/null 2>&1 if [ $? -eq 0 ]; then svnversion=3D${dir}/svnversion break @@ -105,7 +105,7 @@ done =20 if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then - /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 + /usr/bin/svnliteversion ${SYSDIR}/Makefile >/dev/null 2>&1 if [ $? -eq 0 ]; then svnversion=3D/usr/bin/svnliteversion else --HKLejDDV6gCqJAZ/-- --QgvTbcZPsSS/HkXe Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSCnKfAAoJEFJPDDeguUajm/gIALmklKwCIQ0IYJEsAyYxp3x+ z1wnuYoOCX/dokqM/7eseDFFoxA0g5ovkD62juoJfb7NKoGtjt3ZFLA4E/3i8E6O xwHIgyO8JMjSyTFdklz7Zh3S9I79q8z+evfFvrHTil2vsnzbMmA1tu2ctSaP5E1T QUO4x7tQIBdh+1A4cBO7pz/6THE/nIAWnsGboPxZ54aDQAxRxtXZwP47GJNHXr5P RtfCfTALQLEkXd+KLFtwre4BQdrZ4pbldp0QMFaqXjqoCEEOes86Agh0zAfJJ/uZ VgZeM+gnuX9d3PeNr32ZuKtMVBr9YHcmeNNfprZG2QPdc1ZG6YRUb2m7UfXpzWM= =ppQR -----END PGP SIGNATURE----- --QgvTbcZPsSS/HkXe-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:14:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 402FE5C6; Tue, 13 Aug 2013 18:14:54 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2D5A72A86; Tue, 13 Aug 2013 18:14:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DIEsND029142; Tue, 13 Aug 2013 18:14:54 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DIEsqc029141; Tue, 13 Aug 2013 18:14:54 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308131814.r7DIEsqc029141@svn.freebsd.org> From: Peter Wemm Date: Tue, 13 Aug 2013 18:14:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254285 - head/lib/libc/iconv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:14:54 -0000 Author: peter Date: Tue Aug 13 18:14:53 2013 New Revision: 254285 URL: http://svnweb.freebsd.org/changeset/base/254285 Log: Expose _citrus_bcs_trunc_rws_len for libintl's use. Submitted by: Jan Beich Modified: head/lib/libc/iconv/Symbol.map Modified: head/lib/libc/iconv/Symbol.map ============================================================================== --- head/lib/libc/iconv/Symbol.map Tue Aug 13 16:05:47 2013 (r254284) +++ head/lib/libc/iconv/Symbol.map Tue Aug 13 18:14:53 2013 (r254285) @@ -50,6 +50,7 @@ FBSDprivate_1.0 { _citrus_bcs_strtoul; _citrus_bcs_tolower; _citrus_bcs_toupper; + _citrus_bcs_trunc_rws_len; _citrus_bcs_trunc_ws_len; _citrus_csmapper_open; _citrus_csmapper_close; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:27:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EE5029C4; Tue, 13 Aug 2013 18:27:47 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BAFA52B23; Tue, 13 Aug 2013 18:27:47 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id F390EB91C; Tue, 13 Aug 2013 14:27:43 -0400 (EDT) From: John Baldwin To: Mark Johnston Subject: Re: svn commit: r254266 - in head: share/man/man9 sys/kern sys/sys Date: Tue, 13 Aug 2013 13:37:09 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p28; KDE/4.5.5; amd64; ; ) References: <201308130307.r7D37nZl017329@svn.freebsd.org> In-Reply-To: <201308130307.r7D37nZl017329@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201308131337.09671.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 13 Aug 2013 14:27:44 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:27:48 -0000 On Monday, August 12, 2013 11:07:49 pm Mark Johnston wrote: > Author: markj > Date: Tue Aug 13 03:07:49 2013 > New Revision: 254266 > URL: http://svnweb.freebsd.org/changeset/base/254266 > > Log: > Add event handlers for module load and unload events. The load handlers are > called after the module has been loaded, and the unload handlers are called > before the module is unloaded. Moreover, the module unload handlers may > return an error to prevent the unload from proceeding. > > Reviewed by: avg > MFC after: 2 weeks Please call this something else like kld_load or linker_file_load, etc. Modules (and in particular mod_*) mean something else (subr_module.c, DECLARE_MODULE(), etc.), and a single linker_file main contain zero or more "modules". -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:27:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 053A59CB for ; Tue, 13 Aug 2013 18:27:52 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from nm16.bullet.mail.bf1.yahoo.com (nm16.bullet.mail.bf1.yahoo.com [98.139.212.175]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A34702B27 for ; Tue, 13 Aug 2013 18:27:51 +0000 (UTC) Received: from [98.139.214.32] by nm16.bullet.mail.bf1.yahoo.com with NNFMP; 13 Aug 2013 18:27:43 -0000 Received: from [98.139.211.193] by tm15.bullet.mail.bf1.yahoo.com with NNFMP; 13 Aug 2013 18:27:43 -0000 Received: from [127.0.0.1] by smtp202.mail.bf1.yahoo.com with NNFMP; 13 Aug 2013 18:27:43 -0000 X-Yahoo-Newman-Id: 634037.61247.bm@smtp202.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: cqtUEBgVM1l9JO58cBLXdmrxPPLBPaAHQhk9SIhYxoN06vO dOlDjG2fuWBSCG9zhH_CL2RgEkPAQDeYVAoaVe8juzjvSoSuN0KvLrGhW9_9 D1Ta8drPqFZpYaYTPkTpDrSEQGQRXrTj7wRklmlx96rONUSmgcOQlU67MnhO Q.LPN4btzJfk32rvFbHooSP1rws1wXmRlNpK9HbfAJljW0YfsRf04uUutUl7 4McYKt8fKuv80LH3R4dlnQ0MZymBCh4jhOsWcR9Kz8Em4An.shgE6pX4EO0D wyYU7Ikipv.tI.xCAfpd3xqB97HDVdxvaBRJlsqkI3IAqAtTDobpEPEUPwXy OH4t2b8nHY7oKJaQOs9MGZJBSuzSsdOXdvxCONtrF7TPXURKyOZMfYDbsMqR tJuAwdKWjjkHR6pQi1y3XXuFeHQvA_IxTUmEdis3zOs7K12JF9fueVUfIO1i 9nXPdjmbMIhU2cs.i6PvtWxBUn.znnqOKa91qbk5Co_HpUX.1nAPcrtABOvH .2xgUHuWsgFqDFpYArhaJvVSxxt2Jhoy3wIX0ba0VSgn541gQJkilK7s1mS1 Va0pS9sNL1V7zfncqHgytrRouJgoB1jrBL3yHgzr4bskcnZhhUS4d6iZ3e8T SZ7LPznt72GyX X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf X-Rocket-Received: from [192.168.0.102] (pfg@190.157.126.109 with ) by smtp202.mail.bf1.yahoo.com with SMTP; 13 Aug 2013 11:27:43 -0700 PDT Message-ID: <520A7A9D.2010807@FreeBSD.org> Date: Tue, 13 Aug 2013 13:27:41 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130630 Thunderbird/17.0.7 MIME-Version: 1.0 To: "Sam Fourman Jr." Subject: Re: svn commit: r254283 - head/sys/fs/ext2fs References: <201308131540.r7DFehRl071120@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:27:52 -0000 On 13.08.2013 12:12, Sam Fourman Jr. wrote: > I think this change broke the build..... Thank you Sam! It's very strange it builds fine here. Can anyone confirm? Pedro. > root@Border:/usr/src # svnlite info > Path: . > Working Copy Root Path: /usr/src > URL: http://svn0.us-west.freebsd.org/base/head > Relative URL: ^/head > Repository Root: http://svn0.us-west.freebsd.org/base > Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f > Revision: 254284 > Node Kind: directory > Schedule: normal > Last Changed Author: pfg > Last Changed Rev: 254283 > Last Changed Date: 2013-08-13 15:40:43 +0000 (Tue, 13 Aug 2013) > > > > ssing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs > -fdiagnostics-show-option -Wno-error-tautological-compare > -Wno-error-empty-body -Wno-error-parentheses-equality -c > /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_inode_cnv.c > --- ext2_extents.o --- > ctfconvert -L VERSION -g ext2_extents.o > --- ext2_lookup.o --- > --- ext2_subr.o --- > --- ext2_htree.o --- > ctfconvert -L VERSION -g ext2_htree.o > --- ext2_lookup.o --- > cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE > -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/BORDER/opt_global.h -I. -I@ -I@/contrib/altq > -fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > -I/usr/obj/usr/src/sys/BORDER -mno-aes -mno-avx -mcmodel=kernel > -mno-red-zone -mno-mmx -mno-sse -msoft-float > -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector > -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs > -fdiagnostics-show-option -Wno-error-tautological-compare > -Wno-error-empty-body -Wno-error-parentheses-equality -c > /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_lookup.c > --- ext2_subr.o --- > cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE > -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/BORDER/opt_global.h -I. -I@ -I@/contrib/altq > -fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > -I/usr/obj/usr/src/sys/BORDER -mno-aes -mno-avx -mcmodel=kernel > -mno-red-zone -mno-mmx -mno-sse -msoft-float > -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector > -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs > -fdiagnostics-show-option -Wno-error-tautological-compare > -Wno-error-empty-body -Wno-error-parentheses-equality -c > /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_subr.c > --- ext2_vfsops.o --- > cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE > -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/BORDER/opt_global.h -I. -I@ -I@/contrib/altq > -fno-common -g -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer > -I/usr/obj/usr/src/sys/BORDER -mno-aes -mno-avx -mcmodel=kernel > -mno-red-zone -mno-mmx -mno-sse -msoft-float > -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector > -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs > -fdiagnostics-show-option -Wno-error-tautological-compare > -Wno-error-empty-body -Wno-error-parentheses-equality -c > /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_vfsops.c > --- ext2_subr.o --- > /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_subr.c:154:4: error: > format specifies type 'int' but the argument has type 'e4fs_daddr_t' > (aka 'long') [-Werror,-Wformat] > start, last, (long long)ep->b_blkno, > ^~~~~ > /usr/src/sys/modules/ext2fs/../../fs/ext2fs/ext2_subr.c:154:11: error: > format specifies type 'int' but the argument has type 'e4fs_daddr_t' > (aka 'long') [-Werror,-Wformat] > start, last, (long long)ep->b_blkno, > ^~~~ > 2 errors generated. > *** [ext2_subr.o] Error code 1 > > make[4]: stopped in /usr/src/sys/modules/ext2fs > --- ext2_inode_cnv.o --- > ctfconvert -L VERSION -g ext2_inode_cnv.o > --- ext2_inode.o --- > ctfconvert -L VERSION -g ext2_inode.o > --- ext2_alloc.o --- > ctfconvert -L VERSION -g ext2_alloc.o > --- ext2_lookup.o --- > ctfconvert -L VERSION -g ext2_lookup.o > --- ext2_vfsops.o --- > ctfconvert -L VERSION -g ext2_vfsops.o > 1 error > > make[4]: stopped in /usr/src/sys/modules/ext2fs > *** Error code 2 > > Stop. > make[3]: stopped in /usr/src/sys/modules > *** [modules-all] Error code 1 > > make[2]: stopped in /usr/obj/usr/src/sys/BORDER > 1 error > > make[2]: stopped in /usr/obj/usr/src/sys/BORDER > *** [buildkernel] Error code 2 > > make[1]: stopped in /usr/src > 1 error > > make[1]: stopped in /usr/src > *** [buildkernel] Error code 2 > > make: stopped in /usr/src > 1 error > > make: stopped in /usr/src > root@Border:/usr/src # > From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:39:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 00949E93; Tue, 13 Aug 2013 18:39:36 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E15E92BC9; Tue, 13 Aug 2013 18:39:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DIdaMZ037278; Tue, 13 Aug 2013 18:39:36 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DIdaLD037277; Tue, 13 Aug 2013 18:39:36 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201308131839.r7DIdaLD037277@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Tue, 13 Aug 2013 18:39:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254286 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:39:37 -0000 Author: pfg Date: Tue Aug 13 18:39:36 2013 New Revision: 254286 URL: http://svnweb.freebsd.org/changeset/base/254286 Log: ext2fs: update format specifiers for ext4 type. Reported by: Sam Fourman Jr. MFC after: 3 weeks Modified: head/sys/fs/ext2fs/ext2_subr.c Modified: head/sys/fs/ext2fs/ext2_subr.c ============================================================================== --- head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 18:14:53 2013 (r254285) +++ head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 18:39:36 2013 (r254286) @@ -150,7 +150,7 @@ ext2_checkoverlap(struct buf *bp, struct ep->b_blkno + btodb(ep->b_bcount) <= start) continue; vprint("Disk overlap", vp); - (void)printf("\tstart %d, end %d overlap start %lld, end %ld\n", + (void)printf("\tstart %ld, end %ld overlap start %lld, end %ld\n", start, last, (long long)ep->b_blkno, (long)(ep->b_blkno + btodb(ep->b_bcount) - 1)); panic("Disk buffer overlap"); From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:40:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 00F2BFDD for ; Tue, 13 Aug 2013 18:40:43 +0000 (UTC) (envelope-from giffunip@yahoo.com) Received: from nm50-vm3.bullet.mail.bf1.yahoo.com (nm50-vm3.bullet.mail.bf1.yahoo.com [216.109.115.222]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7EFAC2BFC for ; Tue, 13 Aug 2013 18:40:43 +0000 (UTC) Received: from [98.139.212.150] by nm50.bullet.mail.bf1.yahoo.com with NNFMP; 13 Aug 2013 18:34:54 -0000 Received: from [68.142.230.75] by tm7.bullet.mail.bf1.yahoo.com with NNFMP; 13 Aug 2013 18:34:54 -0000 Received: from [127.0.0.1] by smtp232.mail.bf1.yahoo.com with NNFMP; 13 Aug 2013 18:34:53 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1376418893; bh=eEGTJWwFubQZE7jhgYaFhTLZ+yyl+6yIzlyeoKzQARg=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:X-Rocket-Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:References:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=Rz+vL2F9H+Vq8uznEp2CYlYMB05A8J22SbKrHQNY7a6P8LcOcAG3eXVhT5RnIff94OELPAtcctCuyWDkgJb5mYnRgKc8T4ZUlbbSSUL3xDBiLAGH7bO5OQNAYQmFyyenifNj9LPNPeNOAF6MzewXpSU+KbmJoifXtVYFFos4ag0= X-Yahoo-Newman-Id: 983947.11958.bm@smtp232.mail.bf1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: nmE6pXQVM1msiYcTZNNLOKZSvpTadt_5RD1giXNSY.AsZjf UJYVaYuOcINmHV1Aap8nWllq6wkm2TjrKacIEQWerQptnuLeI879TEsybJd5 wcvEOUtPgk6uXNUgWccOcPi6UKatH7oaK1o9y3Q_.9Ul9xDhd8mFhvN62_nG mrVFUtWaUaKcVQMSSW8_N3GYfmI8eI2SseFREDxq35agkkeZCppsQbbRrEQq hAzrpoxRdwfusVcg0PZ_uV_6gnDOJDFC6Wd1G7aw_P2yBtCInNtEhB5X9lvc M9bSiLKPfa.7mKxQ6rXOjkHYq14VyZTRkKZTkOR_7SfC3npa1wsHP0MJIrdd rvTYNbOtbU81DCuJBfvG6P29r82U5lplbce9vmIwuWtzxe9mqRe02Up1lu16 12LTqF0c1GgD0wOVLQpObU4zdYmRb_nCC89L28gcKNefoz5JOsv7vaWbMjoK eEkoto6qjjC5ZWLQWsoFuTxe780sKiftPgy2eZOfFuzcfoEkzMfrSCKKeExX S_2FLFQH7nU.T5Hok.3TiWl461opvN2dMDVsr8hUErguDmKuseg-- X-Yahoo-SMTP: xcjD0guswBAZaPPIbxpWwLcp9Unf X-Rocket-Received: from [192.168.0.102] (giffunip@190.157.126.109 with ) by smtp232.mail.bf1.yahoo.com with SMTP; 13 Aug 2013 18:34:53 +0000 UTC Message-ID: <520A7C3C.5030506@yahoo.com> Date: Tue, 13 Aug 2013 13:34:36 -0500 From: Pedro Giffuni User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130630 Thunderbird/17.0.7 MIME-Version: 1.0 To: "Sam Fourman Jr." Subject: Re: svn commit: r254283 - head/sys/fs/ext2fs References: <201308131540.r7DFehRl071120@svn.freebsd.org> <520A7A9D.2010807@FreeBSD.org> In-Reply-To: <520A7A9D.2010807@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:40:44 -0000 On 13.08.2013 13:27, Pedro Giffuni wrote: > On 13.08.2013 12:12, Sam Fourman Jr. wrote: > > >> I think this change broke the build..... > > Thank you Sam! > It's very strange it builds fine here. Can anyone confirm? > > Nevermind.. it's a format specifier issue I will fix. Thank you again! Pedro. From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:45:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3E3854B8; Tue, 13 Aug 2013 18:45:59 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2BF332C3B; Tue, 13 Aug 2013 18:45:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DIjxH1040446; Tue, 13 Aug 2013 18:45:59 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DIjxjS040445; Tue, 13 Aug 2013 18:45:59 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201308131845.r7DIjxjS040445@svn.freebsd.org> From: John Baldwin Date: Tue, 13 Aug 2013 18:45:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254287 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:45:59 -0000 Author: jhb Date: Tue Aug 13 18:45:58 2013 New Revision: 254287 URL: http://svnweb.freebsd.org/changeset/base/254287 Log: Some small cleanups to the fixes in r180340: - Set NOTE_TRACKERR before running filt_proc(). If the knote did not have NOTE_FORK set in fflags when registered, then the TRACKERR event could miss being posted. - Don't pass the pid in to filt_proc() for NOTE_FORK events. The special handling for pids is done knote_fork() directly and no longer in filt_proc(). MFC after: 2 weeks Modified: head/sys/kern/kern_event.c Modified: head/sys/kern/kern_event.c ============================================================================== --- head/sys/kern/kern_event.c Tue Aug 13 18:39:36 2013 (r254286) +++ head/sys/kern/kern_event.c Tue Aug 13 18:45:58 2013 (r254287) @@ -477,7 +477,7 @@ knote_fork(struct knlist *list, int pid) */ if ((kn->kn_sfflags & NOTE_TRACK) == 0) { kn->kn_status |= KN_HASKQLOCK; - if (kn->kn_fop->f_event(kn, NOTE_FORK | pid)) + if (kn->kn_fop->f_event(kn, NOTE_FORK)) KNOTE_ACTIVATE(kn, 1); kn->kn_status &= ~KN_HASKQLOCK; KQ_UNLOCK(kq); @@ -505,10 +505,10 @@ knote_fork(struct knlist *list, int pid) kev.data = kn->kn_id; /* parent */ kev.udata = kn->kn_kevent.udata;/* preserve udata */ error = kqueue_register(kq, &kev, NULL, 0); - if (kn->kn_fop->f_event(kn, NOTE_FORK | pid)) - KNOTE_ACTIVATE(kn, 0); if (error) kn->kn_fflags |= NOTE_TRACKERR; + if (kn->kn_fop->f_event(kn, NOTE_FORK)) + KNOTE_ACTIVATE(kn, 0); KQ_LOCK(kq); kn->kn_status &= ~KN_INFLUX; KQ_UNLOCK_FLUX(kq); From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 18:51:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 84F568C0; Tue, 13 Aug 2013 18:51:27 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 733D62CAF; Tue, 13 Aug 2013 18:51:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DIpR3J043292; Tue, 13 Aug 2013 18:51:27 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DIpRwO043291; Tue, 13 Aug 2013 18:51:27 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308131851.r7DIpRwO043291@svn.freebsd.org> From: Jilles Tjoelker Date: Tue, 13 Aug 2013 18:51:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254288 - head/sbin/init X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 18:51:27 -0000 Author: jilles Date: Tue Aug 13 18:51:26 2013 New Revision: 254288 URL: http://svnweb.freebsd.org/changeset/base/254288 Log: init: Set kernel login class and CPU mask on new processes. In particular, this makes the kernel login class on processes started from /etc/rc "daemon" instead of "default". Reviewed by: trasz Modified: head/sbin/init/init.c Modified: head/sbin/init/init.c ============================================================================== --- head/sbin/init/init.c Tue Aug 13 18:45:58 2013 (r254287) +++ head/sbin/init/init.c Tue Aug 13 18:51:26 2013 (r254288) @@ -1729,7 +1729,8 @@ setprocresources(const char *cname) login_cap_t *lc; if ((lc = login_getclassbyname(cname, NULL)) != NULL) { setusercontext(lc, (struct passwd*)NULL, 0, - LOGIN_SETPRIORITY | LOGIN_SETRESOURCES); + LOGIN_SETPRIORITY | LOGIN_SETRESOURCES | + LOGIN_SETLOGINCLASS | LOGIN_SETCPUMASK); login_close(lc); } } From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:20:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9EF7335D; Tue, 13 Aug 2013 19:20:51 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8C2BD2E82; Tue, 13 Aug 2013 19:20:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DJKpsT054757; Tue, 13 Aug 2013 19:20:51 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DJKpA7054755; Tue, 13 Aug 2013 19:20:51 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308131920.r7DJKpA7054755@svn.freebsd.org> From: Jilles Tjoelker Date: Tue, 13 Aug 2013 19:20:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254289 - in head/lib/libc/db: btree hash X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:20:51 -0000 Author: jilles Date: Tue Aug 13 19:20:50 2013 New Revision: 254289 URL: http://svnweb.freebsd.org/changeset/base/254289 Log: db: Use O_CLOEXEC instead of separate fcntl() call. Modified: head/lib/libc/db/btree/bt_open.c head/lib/libc/db/hash/hash_page.c Modified: head/lib/libc/db/btree/bt_open.c ============================================================================== --- head/lib/libc/db/btree/bt_open.c Tue Aug 13 18:51:26 2013 (r254288) +++ head/lib/libc/db/btree/bt_open.c Tue Aug 13 19:20:50 2013 (r254289) @@ -196,7 +196,7 @@ __bt_open(const char *fname, int flags, goto einval; } - if ((t->bt_fd = _open(fname, flags, mode)) < 0) + if ((t->bt_fd = _open(fname, flags | O_CLOEXEC, mode)) < 0) goto err; } else { @@ -207,9 +207,6 @@ __bt_open(const char *fname, int flags, F_SET(t, B_INMEM); } - if (_fcntl(t->bt_fd, F_SETFD, 1) == -1) - goto err; - if (_fstat(t->bt_fd, &sb)) goto err; if (sb.st_size) { @@ -405,7 +402,7 @@ tmp(void) (void)sigfillset(&set); (void)_sigprocmask(SIG_BLOCK, &set, &oset); - if ((fd = mkstemp(path)) != -1) + if ((fd = mkostemp(path, O_CLOEXEC)) != -1) (void)unlink(path); (void)_sigprocmask(SIG_SETMASK, &oset, NULL); return(fd); Modified: head/lib/libc/db/hash/hash_page.c ============================================================================== --- head/lib/libc/db/hash/hash_page.c Tue Aug 13 18:51:26 2013 (r254288) +++ head/lib/libc/db/hash/hash_page.c Tue Aug 13 19:20:50 2013 (r254289) @@ -862,10 +862,8 @@ open_temp(HTAB *hashp) /* Block signals; make sure file goes away at process exit. */ (void)sigfillset(&set); (void)_sigprocmask(SIG_BLOCK, &set, &oset); - if ((hashp->fp = mkstemp(path)) != -1) { + if ((hashp->fp = mkostemp(path, O_CLOEXEC)) != -1) (void)unlink(path); - (void)_fcntl(hashp->fp, F_SETFD, 1); - } (void)_sigprocmask(SIG_SETMASK, &oset, (sigset_t *)NULL); return (hashp->fp != -1 ? 0 : -1); } From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:37:53 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 25F356D7; Tue, 13 Aug 2013 19:37:53 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CA8132F77; Tue, 13 Aug 2013 19:37:51 +0000 (UTC) Received: from alph.d.allbsd.org (p2049-ipbf1102funabasi.chiba.ocn.ne.jp [122.26.101.49]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r7DJbT1K083053 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 14 Aug 2013 04:37:39 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.5/8.14.5) with ESMTP id r7DJbSpF018203; Wed, 14 Aug 2013 04:37:29 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Wed, 14 Aug 2013 04:36:25 +0900 (JST) Message-Id: <20130814.043625.854344935412527199.hrs@allbsd.org> To: gjb@FreeBSD.org Subject: Re: svn commit: r254217 - head/sys/conf From: Hiroki Sato In-Reply-To: <20130813175335.GR2432@glenbarber.us> References: <20130813171302.GQ2432@glenbarber.us> <1376415112.3320.229.camel@revolution.hippie.lan> <20130813175335.GR2432@glenbarber.us> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Wed_Aug_14_04_36_25_2013_914)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Wed, 14 Aug 2013 04:37:39 +0900 (JST) X-Spam-Status: No, score=-90.6 required=13.0 tests=CONTENT_TYPE_PRESENT, DIRECTOCNDYN,DYN_PBL,RCVD_IN_PBL,SPF_SOFTFAIL,USER_IN_WHITELIST autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, ian@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:37:53 -0000 ----Security_Multipart(Wed_Aug_14_04_36_25_2013_914)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Glen Barber wrote in <20130813175335.GR2432@glenbarber.us>: gj> On Tue, Aug 13, 2013 at 11:31:52AM -0600, Ian Lepore wrote: gj> > I'm not even sure what $0 *should* expand to in a script that was gj> > sourced in. The manpage doesn't say anything meaningful to me about it. gj> > Maybe it's a kind of "indeterminate results" thing which is pretty much gj> > what we're seeing. gj> > gj> gj> When the file is sourced, it should expand to the name of the file gj> sourcing the file. It is sourced in the osreldate.h target in Makefile, so $0 will be /bin/sh. Why $0 is used here in the first place? The previous version used $SYSDIR and it looks more reasonable to me. -- Hiroki ----Security_Multipart(Wed_Aug_14_04_36_25_2013_914)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlIKirkACgkQTyzT2CeTzy2WAQCgjFEeNN3Gh2QLjYaRlyZU2/Qw jaIAnjqWuSDq0Ptq9HgolvBV6IlqmnF4 =quWS -----END PGP SIGNATURE----- ----Security_Multipart(Wed_Aug_14_04_36_25_2013_914)---- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:37:59 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 203D574E; Tue, 13 Aug 2013 19:37:59 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F2F922F78; Tue, 13 Aug 2013 19:37:55 +0000 (UTC) Received: from alph.d.allbsd.org (p2049-ipbf1102funabasi.chiba.ocn.ne.jp [122.26.101.49]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r7DJbTp4083052 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 14 Aug 2013 04:37:39 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.5/8.14.5) with ESMTP id r7DJbSpE018203; Wed, 14 Aug 2013 04:37:29 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Wed, 14 Aug 2013 04:25:57 +0900 (JST) Message-Id: <20130814.042557.877689080765344354.hrs@allbsd.org> To: gjb@FreeBSD.org Subject: Re: svn commit: r254224 - head/share/man/man7 From: Hiroki Sato In-Reply-To: <201308111857.r7BIvRSq080970@svn.freebsd.org> References: <201308111857.r7BIvRSq080970@svn.freebsd.org> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Wed_Aug_14_04_25_58_2013_043)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Wed, 14 Aug 2013 04:37:39 +0900 (JST) X-Spam-Status: No, score=-90.6 required=13.0 tests=CONTENT_TYPE_PRESENT, DIRECTOCNDYN,DYN_PBL,RCVD_IN_PBL,SPF_SOFTFAIL,USER_IN_WHITELIST autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:37:59 -0000 ----Security_Multipart(Wed_Aug_14_04_25_58_2013_043)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Glen Barber wrote in <201308111857.r7BIvRSq080970@svn.freebsd.org>: gj> +.It Va SVNROOT gj> +The gj> +.Xr svn 1 gj> +host used to check out the various trees. gj> Defaults to gj> -.Pa svn://svn.freebsd.org . gj> -.It Ev SVNROOTSRC gj> -The URL of the FreeBSD SVN source repository. gj> +.Pa svn://svn.FreeeBSD.org . gj> +.It Va SRCBRANCH gj> +The gj> +.Li src/ gj> +branch to use. gj> Defaults to gj> -.Pa ${SVNROOTBASE}/base . gj> -.It Ev SVNROOTDOC gj> -The URL of the FreeBSD SVN doc repository. gj> +.Va head/ . gj> +.It Va DOCBRANCH gj> +The gj> +.Li doc/ gj> +branch to use. gj> Defaults to gj> -.Pa ${SVNROOTBASE}/doc . gj> -.It Ev SVNROOTPORTS gj> -The URL of the FreeBSD SVN ports repository. gj> +.Va head/ . gj> +.It Va PORTBRANCH gj> +The gj> +.Li ports/ gj> +branch to use. gj> Defaults to gj> -.Pa ${SVNROOTBASE}/ports . gj> -.It Ev BRANCHDOC gj> -The branch name of the FreeBSD SVN doc repository. gj> +.Va head/ . gj> +.It Va SRCREVISION gj> +The revision of the gj> +.Li src/ gj> +tree to use. gj> +Defaults to the current top of tree revision. gj> +.It Va DOCREVISION gj> +The revision of the gj> +.Li doc/ gj> +tree to use. gj> +Defaults to the current top of tree revision. gj> +.It Va PORTREVISION Why separation between revision and branch is needed? I intentionally dropped this part from your old patch to generate-release.sh because branch and revision number can be specified like releng/9.2@NNN in a single variable. An incorrect configuration of the two variables do not always cause a fatal error, so specification in fewer number of variables is more foolproof. gj> +.It Va TARGET gj> +The target machine type for the release. gj> +Defaults to the current machine type. gj> +.It Va TARGET_ARCH gj> +The target machine architecture for the release. gj> +Defaults to the value of gj> +.Va TARGET . gj> +.Pp Please remove default configuration of these variables from release.sh. The reasonable defaults are already set in src/Makefile and setting TARGET_ARCH=$TARGET by default is simply wrong. Also, get_rev_branch() is redundant. gj> +Defaults to setting the number of gj> +.Xr make 1 gj> +jobs gj> +.Pq Ar -j gj> +to half the number of CPUs available on the system. Did you try this on a uniprocessor machine? -- Hiroki ----Security_Multipart(Wed_Aug_14_04_25_58_2013_043)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlIKiEYACgkQTyzT2CeTzy1jZwCgoWVFE2/vrFBSTDCdcsnTDWgu 97sAn3ka5P4LaQsvp7706Z5k4yUIpLBh =4PJo -----END PGP SIGNATURE----- ----Security_Multipart(Wed_Aug_14_04_25_58_2013_043)---- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:53:01 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5FA39ABA; Tue, 13 Aug 2013 19:53:01 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 33002208B; Tue, 13 Aug 2013 19:53:01 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 5A3F4DA19; Tue, 13 Aug 2013 19:52:59 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 5A3F4DA19 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 13 Aug 2013 15:52:57 -0400 From: Glen Barber To: Hiroki Sato Subject: Re: svn commit: r254224 - head/share/man/man7 Message-ID: <20130813195257.GA2241@glenbarber.us> References: <201308111857.r7BIvRSq080970@svn.freebsd.org> <20130814.042557.877689080765344354.hrs@allbsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="+HP7ph2BbKc20aGI" Content-Disposition: inline In-Reply-To: <20130814.042557.877689080765344354.hrs@allbsd.org> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:53:01 -0000 --+HP7ph2BbKc20aGI Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 14, 2013 at 04:25:57AM +0900, Hiroki Sato wrote: > gj> +.It Va SRCREVISION > gj> +The revision of the > gj> +.Li src/ > gj> +tree to use. > gj> +Defaults to the current top of tree revision. > gj> +.It Va DOCREVISION > gj> +The revision of the > gj> +.Li doc/ > gj> +tree to use. > gj> +Defaults to the current top of tree revision. > gj> +.It Va PORTREVISION >=20 > Why separation between revision and branch is needed? I > intentionally dropped this part from your old patch to > generate-release.sh because branch and revision number can be > specified like releng/9.2@NNN in a single variable. An incorrect > configuration of the two variables do not always cause a fatal error, > so specification in fewer number of variables is more foolproof. >=20 I personally do not like using branch@rNNNNNN, but will update to remove the {SRC,DOC,PORT}REVISION variables. > gj> +.It Va TARGET > gj> +The target machine type for the release. > gj> +Defaults to the current machine type. > gj> +.It Va TARGET_ARCH > gj> +The target machine architecture for the release. > gj> +Defaults to the value of > gj> +.Va TARGET . > gj> +.Pp >=20 > Please remove default configuration of these variables from > release.sh. The reasonable defaults are already set in src/Makefile > and setting TARGET_ARCH=3D$TARGET by default is simply wrong. Also, > get_rev_branch() is redundant. >=20 Will be changed shortly. Why is get_rev_branch() redundant? > gj> +Defaults to setting the number of > gj> +.Xr make 1 > gj> +jobs > gj> +.Pq Ar -j > gj> +to half the number of CPUs available on the system. >=20 > Did you try this on a uniprocessor machine? Ugh. No, and now I see why it will not work. Glen --+HP7ph2BbKc20aGI Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSCo6ZAAoJEFJPDDeguUajw+gH+gNP9lSjyHpTB//5nLeCx50k KYp2vnYU6ZM56oqSpKIasj4vbFpsS5AULorisFcAKZ/qSBjigurgWg16QMnU6lnA FH4Z0OvOt+NEZpj7UlOSkkIWYBkrwLIIwo2kcM9NOuketI+AIYxDKZ6d0n3/Iiw7 dGssaCmrqVaUTozTQswcanNurvTWWltemikMD/TC+TJ4jZIvojCHGTbq+V/aoknm QqqGZ4ceUfiGFY9DK3JHqVWylE4GIVbqlvPvt05e+qKwk16kbhNQ1mF1XgnkbvHV BxkbnEpsFQkoO5vhjpbY/roOG1bJB6+TZ9Ua2qufW6loKfD77HomrFI3odJgKgE= =u7x3 -----END PGP SIGNATURE----- --+HP7ph2BbKc20aGI-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:54:59 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D7C6ECE9; Tue, 13 Aug 2013 19:54:59 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AA0EF20D7; Tue, 13 Aug 2013 19:54:59 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 91E4FDA4E; Tue, 13 Aug 2013 19:54:58 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 91E4FDA4E Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 13 Aug 2013 15:54:56 -0400 From: Glen Barber To: Hiroki Sato Subject: Re: svn commit: r254217 - head/sys/conf Message-ID: <20130813195456.GB2241@glenbarber.us> References: <20130813171302.GQ2432@glenbarber.us> <1376415112.3320.229.camel@revolution.hippie.lan> <20130813175335.GR2432@glenbarber.us> <20130814.043625.854344935412527199.hrs@allbsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="0ntfKIWw70PvrIHh" Content-Disposition: inline In-Reply-To: <20130814.043625.854344935412527199.hrs@allbsd.org> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, ian@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:54:59 -0000 --0ntfKIWw70PvrIHh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 14, 2013 at 04:36:25AM +0900, Hiroki Sato wrote: > Glen Barber wrote > in <20130813175335.GR2432@glenbarber.us>: >=20 > gj> On Tue, Aug 13, 2013 at 11:31:52AM -0600, Ian Lepore wrote: > gj> > I'm not even sure what $0 *should* expand to in a script that was > gj> > sourced in. The manpage doesn't say anything meaningful to me abou= t it. > gj> > Maybe it's a kind of "indeterminate results" thing which is pretty = much > gj> > what we're seeing. > gj> > > gj> > gj> When the file is sourced, it should expand to the name of the file > gj> sourcing the file. >=20 > It is sourced in the osreldate.h target in Makefile, so $0 will be > /bin/sh. Why $0 is used here in the first place? The previous > version used $SYSDIR and it looks more reasonable to me. >=20 $0 is used to speed up execution of svnversion when evaluating if the ${svnversion} is compatible with the tree. Rather than running on the entire tree, $0 should only be run on a single file. But, I am at the point now of being ready to revert all these changes back to the original newvers.sh before I added svnliteversion... Glen --0ntfKIWw70PvrIHh Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSCo8QAAoJEFJPDDeguUaj4n8H/1sircn9bfJmYCCRuOXySSpV 9Riyz4Xo2gup38FM6tSFiHqmNhDQD8jJ//D/4bIVav6T1KXaZXdTy7lP1JznjnYJ WSl0uthuVaqL1oNdv7PgGIqTNDQikdN0F4jzhn0bOaU3hxZdTXSgkLpyH/dwj0kg VMJacAWtjFrvxPk4lB0CTDO1IVHBrEyFm5VZ2dUjaeUSiUPEeWDXoYGquAHthi35 d4+DOhJFMl36k+ofAVI9SGF3Y4xNGNPOUEG5Y+I/PEybjqRlQFZrz20PplDQ6MH6 rkqhTcI+BJ6u1amowwbbsA+IGtHNFzZZOfgE0zPk5m5fiPlP/XUv38ZDldK5U/I= =GsUn -----END PGP SIGNATURE----- --0ntfKIWw70PvrIHh-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:57:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B15F414E; Tue, 13 Aug 2013 19:57:36 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9065E20F5; Tue, 13 Aug 2013 19:57:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DJva8h066832; Tue, 13 Aug 2013 19:57:36 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DJvawn066830; Tue, 13 Aug 2013 19:57:36 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308131957.r7DJvawn066830@svn.freebsd.org> From: Jilles Tjoelker Date: Tue, 13 Aug 2013 19:57:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254291 - head/usr.bin/kdump X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:57:36 -0000 Author: jilles Date: Tue Aug 13 19:57:35 2013 New Revision: 254291 URL: http://svnweb.freebsd.org/changeset/base/254291 Log: kdump: Improve decoding of various *at calls: * Write AT_FDCWD where appropriate. * Decode the remaining arguments of openat() etc like open() etc. Modified: head/usr.bin/kdump/kdump.c head/usr.bin/kdump/mksubr Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Tue Aug 13 19:55:12 2013 (r254290) +++ head/usr.bin/kdump/kdump.c Tue Aug 13 19:57:35 2013 (r254291) @@ -606,6 +606,27 @@ ktrsyscall(struct ktr_syscall *ktr, u_in if (fancy && (flags == 0 || (flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) { switch (ktr->ktr_code) { + case SYS_faccessat: + case SYS_fchmodat: + case SYS_fchownat: + case SYS_fstatat: + case SYS_futimesat: + case SYS_linkat: + case SYS_mkdirat: + case SYS_mkfifoat: + case SYS_mknodat: + case SYS_openat: + case SYS_readlinkat: + case SYS_renameat: + case SYS_unlinkat: + putchar('('); + atfdname(*ip, decimal); + c = ','; + ip++; + narg--; + break; + } + switch (ktr->ktr_code) { case SYS_ioctl: { print_number(ip, narg, c); putchar(c); @@ -624,6 +645,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_in break; case SYS_access: case SYS_eaccess: + case SYS_faccessat: print_number(ip, narg, c); putchar(','); accessmodename(*ip); @@ -631,6 +653,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_in narg--; break; case SYS_open: + case SYS_openat: print_number(ip, narg, c); putchar(','); flagsandmodename(ip[0], ip[1], decimal); @@ -655,6 +678,7 @@ ktrsyscall(struct ktr_syscall *ktr, u_in narg--; break; case SYS_mknod: + case SYS_mknodat: print_number(ip, narg, c); putchar(','); modename(*ip); @@ -860,7 +884,9 @@ ktrsyscall(struct ktr_syscall *ktr, u_in narg--; break; case SYS_mkfifo: + case SYS_mkfifoat: case SYS_mkdir: + case SYS_mkdirat: print_number(ip, narg, c); putchar(','); modename(*ip); @@ -1083,6 +1109,15 @@ ktrsyscall(struct ktr_syscall *ktr, u_in ip++; narg--; break; + case SYS_linkat: + case SYS_renameat: + case SYS_symlinkat: + print_number(ip, narg, c); + putchar(','); + atfdname(*ip, decimal); + ip++; + narg--; + break; case SYS_cap_new: case SYS_cap_rights_limit: print_number(ip, narg, c); Modified: head/usr.bin/kdump/mksubr ============================================================================== --- head/usr.bin/kdump/mksubr Tue Aug 13 19:55:12 2013 (r254290) +++ head/usr.bin/kdump/mksubr Tue Aug 13 19:57:35 2013 (r254291) @@ -209,6 +209,18 @@ cat <<_EOF_ while (0) /* MANUAL */ +void +atfdname(int fd, int decimal) +{ + if (fd == AT_FDCWD) + printf("AT_FDCWD"); + else if (decimal) + printf("%d", fd); + else + printf("%#x", fd); +} + +/* MANUAL */ extern char *signames[]; /* from kdump.c */ void signame(int sig) From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 19:59:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B94992BA; Tue, 13 Aug 2013 19:59:49 +0000 (UTC) (envelope-from trociny@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A4E732115; Tue, 13 Aug 2013 19:59:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DJxnOj067212; Tue, 13 Aug 2013 19:59:49 GMT (envelope-from trociny@svn.freebsd.org) Received: (from trociny@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DJxn4X067211; Tue, 13 Aug 2013 19:59:49 GMT (envelope-from trociny@svn.freebsd.org) Message-Id: <201308131959.r7DJxn4X067211@svn.freebsd.org> From: Mikolaj Golub Date: Tue, 13 Aug 2013 19:59:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254292 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 19:59:49 -0000 Author: trociny Date: Tue Aug 13 19:59:49 2013 New Revision: 254292 URL: http://svnweb.freebsd.org/changeset/base/254292 Log: Virtualize carp(4) variables to have per vnet control. Reviewed by: ae, glebius Modified: head/sys/netinet/ip_carp.c Modified: head/sys/netinet/ip_carp.c ============================================================================== --- head/sys/netinet/ip_carp.c Tue Aug 13 19:57:35 2013 (r254291) +++ head/sys/netinet/ip_carp.c Tue Aug 13 19:59:49 2013 (r254292) @@ -187,48 +187,59 @@ static int proto_reg[] = {-1, -1}; * dereferencing our function pointers. */ -static int carp_allow = 1; /* Accept incoming CARP packets. */ -static int carp_preempt = 0; /* Preempt slower nodes. */ -static int carp_log = 1; /* Log level. */ -static int carp_demotion = 0; /* Global advskew demotion. */ -static int carp_senderr_adj = CARP_MAXSKEW; /* Send error demotion factor */ -static int carp_ifdown_adj = CARP_MAXSKEW; /* Iface down demotion factor */ +/* Accept incoming CARP packets. */ +static VNET_DEFINE(int, carp_allow) = 1; +#define V_carp_allow VNET(carp_allow) + +/* Preempt slower nodes. */ +static VNET_DEFINE(int, carp_preempt) = 0; +#define V_carp_preempt VNET(carp_preempt) + +/* Log level. */ +static VNET_DEFINE(int, carp_log) = 1; +#define V_carp_log VNET(carp_log) + +/* Global advskew demotion. */ +static VNET_DEFINE(int, carp_demotion) = 0; +#define V_carp_demotion VNET(carp_demotion) + +/* Send error demotion factor. */ +static VNET_DEFINE(int, carp_senderr_adj) = CARP_MAXSKEW; +#define V_carp_senderr_adj VNET(carp_senderr_adj) + +/* Iface down demotion factor. */ +static VNET_DEFINE(int, carp_ifdown_adj) = CARP_MAXSKEW; +#define V_carp_ifdown_adj VNET(carp_ifdown_adj) + static int carp_demote_adj_sysctl(SYSCTL_HANDLER_ARGS); SYSCTL_NODE(_net_inet, IPPROTO_CARP, carp, CTLFLAG_RW, 0, "CARP"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, allow, CTLFLAG_RW, &carp_allow, 0, - "Accept incoming CARP packets"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, preempt, CTLFLAG_RW, &carp_preempt, 0, - "High-priority backup preemption mode"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, log, CTLFLAG_RW, &carp_log, 0, - "CARP log level"); -SYSCTL_PROC(_net_inet_carp, OID_AUTO, demotion, CTLTYPE_INT|CTLFLAG_RW, +SYSCTL_VNET_INT(_net_inet_carp, OID_AUTO, allow, CTLFLAG_RW, + &VNET_NAME(carp_allow), 0, "Accept incoming CARP packets"); +SYSCTL_VNET_INT(_net_inet_carp, OID_AUTO, preempt, CTLFLAG_RW, + &VNET_NAME(carp_preempt), 0, "High-priority backup preemption mode"); +SYSCTL_VNET_INT(_net_inet_carp, OID_AUTO, log, CTLFLAG_RW, + &VNET_NAME(carp_log), 0, "CARP log level"); +SYSCTL_VNET_PROC(_net_inet_carp, OID_AUTO, demotion, CTLTYPE_INT|CTLFLAG_RW, 0, 0, carp_demote_adj_sysctl, "I", "Adjust demotion factor (skew of advskew)"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, senderr_demotion_factor, CTLFLAG_RW, - &carp_senderr_adj, 0, "Send error demotion factor adjustment"); -SYSCTL_INT(_net_inet_carp, OID_AUTO, ifdown_demotion_factor, CTLFLAG_RW, - &carp_ifdown_adj, 0, "Interface down demotion factor adjustment"); +SYSCTL_VNET_INT(_net_inet_carp, OID_AUTO, senderr_demotion_factor, CTLFLAG_RW, + &VNET_NAME(carp_senderr_adj), 0, "Send error demotion factor adjustment"); +SYSCTL_VNET_INT(_net_inet_carp, OID_AUTO, ifdown_demotion_factor, CTLFLAG_RW, + &VNET_NAME(carp_ifdown_adj), 0, + "Interface down demotion factor adjustment"); + +VNET_PCPUSTAT_DEFINE(struct carpstats, carpstats); +VNET_PCPUSTAT_SYSINIT(carpstats); +VNET_PCPUSTAT_SYSUNINIT(carpstats); -static counter_u64_t carpstats[sizeof(struct carpstats) / sizeof(uint64_t)]; #define CARPSTATS_ADD(name, val) \ - counter_u64_add(carpstats[offsetof(struct carpstats, name) / \ + counter_u64_add(VNET(carpstats)[offsetof(struct carpstats, name) / \ sizeof(uint64_t)], (val)) #define CARPSTATS_INC(name) CARPSTATS_ADD(name, 1) -static int -carpstats_sysctl(SYSCTL_HANDLER_ARGS) -{ - struct carpstats s; - - COUNTER_ARRAY_COPY(carpstats, &s, sizeof(s) / sizeof(uint64_t)); - if (req->newptr) - COUNTER_ARRAY_ZERO(carpstats, sizeof(s) / sizeof(uint64_t)); - return (SYSCTL_OUT(req, &s, sizeof(s))); -} -SYSCTL_PROC(_net_inet_carp, OID_AUTO, stats, CTLTYPE_OPAQUE | CTLFLAG_RW, - NULL, 0, carpstats_sysctl, "I", - "CARP statistics (struct carpstats, netinet/ip_carp.h)"); +SYSCTL_VNET_PCPUSTAT(_net_inet_carp, OID_AUTO, stats, struct carpstats, + carpstats, "CARP statistics (struct carpstats, netinet/ip_carp.h)"); #define CARP_LOCK_INIT(sc) mtx_init(&(sc)->sc_mtx, "carp_softc", \ NULL, MTX_DEF) @@ -251,12 +262,12 @@ SYSCTL_PROC(_net_inet_carp, OID_AUTO, st } while (0) #define CARP_LOG(...) do { \ - if (carp_log > 0) \ + if (V_carp_log > 0) \ log(LOG_INFO, "carp: " __VA_ARGS__); \ } while (0) #define CARP_DEBUG(...) do { \ - if (carp_log > 1) \ + if (V_carp_log > 1) \ log(LOG_DEBUG, __VA_ARGS__); \ } while (0) @@ -277,8 +288,8 @@ SYSCTL_PROC(_net_inet_carp, OID_AUTO, st TAILQ_FOREACH((sc), &(ifp)->if_carp->cif_vrs, sc_list) #define DEMOTE_ADVSKEW(sc) \ - (((sc)->sc_advskew + carp_demotion > CARP_MAXSKEW) ? \ - CARP_MAXSKEW : ((sc)->sc_advskew + carp_demotion)) + (((sc)->sc_advskew + V_carp_demotion > CARP_MAXSKEW) ? \ + CARP_MAXSKEW : ((sc)->sc_advskew + V_carp_demotion)) static void carp_input_c(struct mbuf *, struct carp_header *, sa_family_t); static struct carp_softc @@ -430,7 +441,7 @@ carp_input(struct mbuf *m, int hlen) CARPSTATS_INC(carps_ipackets); - if (!carp_allow) { + if (!V_carp_allow) { m_freem(m); return; } @@ -513,7 +524,7 @@ carp6_input(struct mbuf **mp, int *offp, CARPSTATS_INC(carps_ipackets6); - if (!carp_allow) { + if (!V_carp_allow) { m_freem(m); return (IPPROTO_DONE); } @@ -647,7 +658,7 @@ carp_input_c(struct mbuf *m, struct carp * If we're pre-empting masters who advertise slower than us, * and this one claims to be slower, treat him as down. */ - if (carp_preempt && timevalcmp(&sc_tv, &ch_tv, <)) { + if (V_carp_preempt && timevalcmp(&sc_tv, &ch_tv, <)) { CARP_LOG("VHID %u@%s: BACKUP -> MASTER " "(preempting a slower master)\n", sc->sc_vhid, @@ -830,13 +841,14 @@ carp_send_ad_locked(struct carp_softc *s if (sc->sc_sendad_errors < INT_MAX) sc->sc_sendad_errors++; if (sc->sc_sendad_errors == CARP_SENDAD_MAX_ERRORS) - carp_demote_adj(carp_senderr_adj, "send error"); + carp_demote_adj(V_carp_senderr_adj, + "send error"); sc->sc_sendad_success = 0; } else { if (sc->sc_sendad_errors >= CARP_SENDAD_MAX_ERRORS) { if (++sc->sc_sendad_success >= CARP_SENDAD_MIN_SUCCESS) { - carp_demote_adj(-carp_senderr_adj, + carp_demote_adj(-V_carp_senderr_adj, "send ok"); sc->sc_sendad_errors = 0; } @@ -903,14 +915,14 @@ carp_send_ad_locked(struct carp_softc *s if (sc->sc_sendad_errors < INT_MAX) sc->sc_sendad_errors++; if (sc->sc_sendad_errors == CARP_SENDAD_MAX_ERRORS) - carp_demote_adj(carp_senderr_adj, + carp_demote_adj(V_carp_senderr_adj, "send6 error"); sc->sc_sendad_success = 0; } else { if (sc->sc_sendad_errors >= CARP_SENDAD_MAX_ERRORS) { if (++sc->sc_sendad_success >= CARP_SENDAD_MIN_SUCCESS) { - carp_demote_adj(-carp_senderr_adj, + carp_demote_adj(-V_carp_senderr_adj, "send6 ok"); sc->sc_sendad_errors = 0; } @@ -1541,7 +1553,7 @@ carp_destroy(struct carp_softc *sc) CARP_LOCK(sc); if (sc->sc_suppress) - carp_demote_adj(-carp_ifdown_adj, "vhid removed"); + carp_demote_adj(-V_carp_ifdown_adj, "vhid removed"); callout_drain(&sc->sc_ad_tmo); #ifdef INET callout_drain(&sc->sc_md_tmo); @@ -2006,13 +2018,13 @@ carp_sc_state(struct carp_softc *sc) carp_set_state(sc, INIT); carp_setrun(sc, 0); if (!sc->sc_suppress) - carp_demote_adj(carp_ifdown_adj, "interface down"); + carp_demote_adj(V_carp_ifdown_adj, "interface down"); sc->sc_suppress = 1; } else { carp_set_state(sc, INIT); carp_setrun(sc, 0); if (sc->sc_suppress) - carp_demote_adj(-carp_ifdown_adj, "interface up"); + carp_demote_adj(-V_carp_ifdown_adj, "interface up"); sc->sc_suppress = 0; } } @@ -2020,8 +2032,8 @@ carp_sc_state(struct carp_softc *sc) static void carp_demote_adj(int adj, char *reason) { - atomic_add_int(&carp_demotion, adj); - CARP_LOG("demoted by %d to %d (%s)\n", adj, carp_demotion, reason); + atomic_add_int(&V_carp_demotion, adj); + CARP_LOG("demoted by %d to %d (%s)\n", adj, V_carp_demotion, reason); taskqueue_enqueue(taskqueue_swi, &carp_sendall_task); } @@ -2030,7 +2042,7 @@ carp_demote_adj_sysctl(SYSCTL_HANDLER_AR { int new, error; - new = carp_demotion; + new = V_carp_demotion; error = sysctl_handle_int(oidp, &new, 0, req); if (error || !req->newptr) return (error); @@ -2101,8 +2113,6 @@ carp_mod_cleanup(void) mtx_unlock(&carp_mtx); taskqueue_drain(taskqueue_swi, &carp_sendall_task); mtx_destroy(&carp_mtx); - COUNTER_ARRAY_FREE(carpstats, - sizeof(struct carpstats) / sizeof(uint64_t)); } static int @@ -2112,8 +2122,6 @@ carp_mod_load(void) mtx_init(&carp_mtx, "carp_mtx", NULL, MTX_DEF); LIST_INIT(&carp_list); - COUNTER_ARRAY_ALLOC(carpstats, - sizeof(struct carpstats) / sizeof(uint64_t), M_WAITOK); carp_get_vhid_p = carp_get_vhid; carp_forus_p = carp_forus; carp_output_p = carp_output; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:10:00 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6696C6CA; Tue, 13 Aug 2013 20:10:00 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3715421C1; Tue, 13 Aug 2013 20:09:59 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1V9Kuk-000Pqu-To; Tue, 13 Aug 2013 20:09:59 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r7DK9uUt036166; Tue, 13 Aug 2013 14:09:56 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX1+5vrxczughjg8GeSjABh7O Subject: Re: svn commit: r254217 - head/sys/conf From: Ian Lepore To: Glen Barber In-Reply-To: <20130813175335.GR2432@glenbarber.us> References: <201308111357.r7BDvF7H065442@svn.freebsd.org> <1376407389.3320.209.camel@revolution.hippie.lan> <20130813153222.GL2432@glenbarber.us> <1376413337.3320.224.camel@revolution.hippie.lan> <20130813171302.GQ2432@glenbarber.us> <1376415112.3320.229.camel@revolution.hippie.lan> <20130813175335.GR2432@glenbarber.us> Content-Type: multipart/mixed; boundary="=-dS1c8vzyNz4qYYQw5eOu" Date: Tue, 13 Aug 2013 14:09:56 -0600 Message-ID: <1376424596.3320.242.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:10:00 -0000 --=-dS1c8vzyNz4qYYQw5eOu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Tue, 2013-08-13 at 13:53 -0400, Glen Barber wrote: > On Tue, Aug 13, 2013 at 11:31:52AM -0600, Ian Lepore wrote: > > I'm not even sure what $0 *should* expand to in a script that was > > sourced in. The manpage doesn't say anything meaningful to me about it. > > Maybe it's a kind of "indeterminate results" thing which is pretty much > > what we're seeing. > > > > When the file is sourced, it should expand to the name of the file > sourcing the file. > > gjb@nucleus:~ % cat foo1.sh foo2.sh > #!/bin/sh > echo ${0} > . foo2.sh > #!/bin/sh > echo ${0} > gjb@nucleus:~ % sh ./foo1.sh > ./foo1.sh > ./foo1.sh > > > I was thinking that $(realpath ${PARAMFILE}) might be a good way to tap > > dance around the problem, but PARAMFILE can be set by default from > > $SYSDIR and it's not clear to me that that'll always be right either. > > > > Can you please try the attached patch? As with my prior tests, this > works for me... > > Glen > That didn't work, because $SYSDIR is derived from $0 which is the root of the problem. The attached works, and seems reasonable to me (it's your changes + passing in SYSDIR from the one place where newvers.sh is sourced rather than running it by name). -- Ian --=-dS1c8vzyNz4qYYQw5eOu Content-Disposition: inline; filename="newvers.sh.diff2.txt" Content-Type: text/plain; name="newvers.sh.diff2.txt"; charset="us-ascii" Content-Transfer-Encoding: 7bit Index: include/Makefile =================================================================== --- include/Makefile (revision 254281) +++ include/Makefile (working copy) @@ -108,6 +108,7 @@ osreldate.h: ${.CURDIR}/../sys/conf/newvers.sh ${. ${.CURDIR}/Makefile @${ECHO} creating osreldate.h from newvers.sh @MAKE=${MAKE}; \ + SYSDIR=${.CURDIR}/../sys; \ PARAMFILE=${.CURDIR}/../sys/sys/param.h; \ . ${.CURDIR}/../sys/conf/newvers.sh; \ echo "$$COPYRIGHT" > osreldate.h; \ Index: sys/conf/newvers.sh =================================================================== --- sys/conf/newvers.sh (revision 254281) +++ sys/conf/newvers.sh (working copy) @@ -38,8 +38,11 @@ if [ "X${BRANCH_OVERRIDE}" != "X" ]; then fi RELEASE="${REVISION}-${BRANCH}" VERSION="${TYPE} ${RELEASE}" -SYSDIR=$(dirname $0)/.. +if [ "X${SYSDIR}" = "X" ] ;then + SYSDIR=$(dirname $0)/.. +fi + if [ "X${PARAMFILE}" != "X" ]; then RELDATE=$(awk '/__FreeBSD_version.*propagated to newvers/ {print $3}' \ ${PARAMFILE}) @@ -96,7 +99,7 @@ for dir in /usr/bin /usr/local/bin; do # Run svnversion from ${dir} on this script; if return code # is not zero, the checkout might not be compatible with the # svnversion being used. - ${dir}/svnversion $(realpath ${0}) >/dev/null 2>&1 + ${dir}/svnversion ${SYSDIR}/Makefile >/dev/null 2>&1 if [ $? -eq 0 ]; then svnversion=${dir}/svnversion break @@ -105,7 +108,7 @@ for dir in /usr/bin /usr/local/bin; do done if [ -z "${svnversion}" ] && [ -x /usr/bin/svnliteversion ] ; then - /usr/bin/svnliteversion $(realpath ${0}) >/dev/null 2>&1 + /usr/bin/svnliteversion ${SYSDIR}/Makefile >/dev/null 2>&1 if [ $? -eq 0 ]; then svnversion=/usr/bin/svnliteversion else --=-dS1c8vzyNz4qYYQw5eOu-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:16:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 068A889E; Tue, 13 Aug 2013 20:16:15 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E84292231; Tue, 13 Aug 2013 20:16:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DKGE5V074588; Tue, 13 Aug 2013 20:16:14 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DKGEoR074586; Tue, 13 Aug 2013 20:16:14 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308132016.r7DKGEoR074586@svn.freebsd.org> From: Glen Barber Date: Tue, 13 Aug 2013 20:16:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254293 - head/release X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:16:15 -0000 Author: gjb Date: Tue Aug 13 20:16:14 2013 New Revision: 254293 URL: http://svnweb.freebsd.org/changeset/base/254293 Log: - Only set ARCH_FLAGS (TARGET/TARGET_ARCH) if specified, otherwise allow the toolchain to detect the correct values. - Remove {SRC,DOC,PORT}REVISION variables, and use 'branch@rNNNNNN' as the {SRC,DOC,PORT}BRANCH variables. - Only set default KERNEL_FLAGS and WORLD_FLAGS make(1) jobs if the number of CPUs is greater than 1. Submitted by: hrs Modified: head/release/release.conf.sample head/release/release.sh Modified: head/release/release.conf.sample ============================================================================== --- head/release/release.conf.sample Tue Aug 13 19:59:49 2013 (r254292) +++ head/release/release.conf.sample Tue Aug 13 20:16:14 2013 (r254293) @@ -10,18 +10,13 @@ CHROOTDIR="/scratch" SVNROOT="svn://svn.FreeBSD.org" ## Set the src/, ports/, and doc/ branches or tags. -SRCBRANCH="base/head" -DOCBRANCH="doc/head" -PORTBRANCH="ports/head" +SRCBRANCH="base/head@rHEAD" +DOCBRANCH="doc/head@rHEAD" +PORTBRANCH="ports/head@rHEAD" ## Run svn co --force for src checkout. #SRC_FORCE_CHECKOUT=yes -## Set the src/, ports/, and doc/ revisions. -SRCREVISION="-rHEAD" -DOCREVISION="-rHEAD" -PORTREVISION="-rHEAD" - ## Set to override the default target architecture. #TARGET="amd64" #TARGET_ARCH="amd64" Modified: head/release/release.sh ============================================================================== --- head/release/release.sh Tue Aug 13 19:59:49 2013 (r254292) +++ head/release/release.sh Tue Aug 13 20:16:14 2013 (r254293) @@ -41,19 +41,14 @@ CHROOTDIR="/scratch" # The default svn checkout server, and svn branches for src/, doc/, # and ports/. SVNROOT="svn://svn.freebsd.org" -SRCBRANCH="base/head" -DOCBRANCH="doc/head" -PORTBRANCH="ports/head" +SRCBRANCH="base/head@rHEAD" +DOCBRANCH="doc/head@rHEAD" +PORTBRANCH="ports/head@rHEAD" # Sometimes one needs to checkout src with --force svn option. # If custom kernel configs copied to src tree before checkout, e.g. SRC_FORCE_CHECKOUT= -# The default src/, doc/, and ports/ revisions. -SRCREVISION="-rHEAD" -DOCREVISION="-rHEAD" -PORTREVISION="-rHEAD" - # The default make.conf and src.conf to use. Set to /dev/null # by default to avoid polluting the chroot(8) environment with # non-default settings. @@ -62,17 +57,16 @@ SRC_CONF="/dev/null" # The number of make(1) jobs, defaults to the number of CPUs available for # buildworld, and half of number of CPUs available for buildkernel. -WORLD_FLAGS="-j$(sysctl -n hw.ncpu)" -KERNEL_FLAGS="-j$(expr $(sysctl -n hw.ncpu) / 2)" +NCPU=$(sysctl -n hw.ncpu) +if [ ${NCPU} -gt 1 ]; then + WORLD_FLAGS="-j${NCPU}" + KERNEL_FLAGS="-j$(expr ${NCPU} / 2)" +fi MAKE_FLAGS="-s" # The name of the kernel to build, defaults to GENERIC. KERNEL="GENERIC" -# The TARGET and TARGET_ARCH to build, defaults to the running system. -TARGET="$(uname -p)" -TARGET_ARCH="${TARGET}" - # Set to non-empty value to disable checkout of doc/ and/or ports/. Disabling # ports/ checkout also forces NODOC to be set. NODOC= @@ -136,7 +130,11 @@ fi # this file, unless overridden by release.conf. In most cases, these # will not need to be changed. CONF_FILES="__MAKE_CONF=${MAKE_CONF} SRCCONF=${SRC_CONF}" -ARCH_FLAGS="TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH}" +if [ "x${TARGET}" != "x" ] && [ "x${TARGET_ARCH}" != "x" ]; then + ARCH_FLAGS="TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH}" +else + ARCH_FLAGS= +fi CHROOT_WMAKEFLAGS="${MAKE_FLAGS} ${WORLD_FLAGS} ${CONF_FILES}" CHROOT_IMAKEFLAGS="${CONF_FILES}" CHROOT_DMAKEFLAGS="${CONF_FILES}" @@ -165,12 +163,12 @@ set -e # Everything must succeed mkdir -p ${CHROOTDIR}/usr -svn co ${FORCE_SRC_KEY} ${SVNROOT}/${SRCBRANCH} ${CHROOTDIR}/usr/src $SRCREVISION +svn co ${FORCE_SRC_KEY} ${SVNROOT}/${SRCBRANCH} ${CHROOTDIR}/usr/src if [ "x${NODOC}" = "x" ]; then - svn co ${SVNROOT}/${DOCBRANCH} ${CHROOTDIR}/usr/doc $DOCREVISION + svn co ${SVNROOT}/${DOCBRANCH} ${CHROOTDIR}/usr/doc fi if [ "x${NOPORTS}" = "x" ]; then - svn co ${SVNROOT}/${PORTBRANCH} ${CHROOTDIR}/usr/ports $PORTREVISION + svn co ${SVNROOT}/${PORTBRANCH} ${CHROOTDIR}/usr/ports fi get_rev_branch From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:22:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 81437A91; Tue, 13 Aug 2013 20:22:58 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6F40E22C3; Tue, 13 Aug 2013 20:22:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DKMwSe077765; Tue, 13 Aug 2013 20:22:58 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DKMwEI077764; Tue, 13 Aug 2013 20:22:58 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308132022.r7DKMwEI077764@svn.freebsd.org> From: Glen Barber Date: Tue, 13 Aug 2013 20:22:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254294 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:22:58 -0000 Author: gjb Date: Tue Aug 13 20:22:57 2013 New Revision: 254294 URL: http://svnweb.freebsd.org/changeset/base/254294 Log: - Remove the defaults for TARGET/TARGET_ARCH. - Note that WORLD_FLAGS and KERNEL_FLAGS set the number of make(1) jobs only on SMP-capable systems. MFC after: 3 days X-MFC-With: r254224 X-MFC-To: stable/9, releng/9.2 Modified: head/share/man/man7/release.7 Modified: head/share/man/man7/release.7 ============================================================================== --- head/share/man/man7/release.7 Tue Aug 13 20:16:14 2013 (r254293) +++ head/share/man/man7/release.7 Tue Aug 13 20:22:57 2013 (r254294) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 11, 2013 +.Dd August 13, 2013 .Dt RELEASE 7 .Os .Sh NAME @@ -178,12 +178,9 @@ The revision of the tree to use. Defaults to the current top of tree revision. .It Va TARGET -The target machine type for the release. -Defaults to the current machine type. +The target machine type for cross-building a release. .It Va TARGET_ARCH -The target machine architecture for the release. -Defaults to the value of -.Va TARGET . +The target machine architecture for cross-building a release. .Pp For the supported list of .Va TARGET @@ -227,7 +224,7 @@ Defaults to setting the number of .Xr make 1 jobs .Pq Ar -j -to the number of CPUs available on the system. +to the number of CPUs available on a SMP-capable system. .It Va KERNEL_FLAGS Additional flags to pass to .Xr make 1 @@ -238,7 +235,7 @@ Defaults to setting the number of .Xr make 1 jobs .Pq Ar -j -to half the number of CPUs available on the system. +to half the number of CPUs available on a SMP-capable system. .It Va NODOC Set to a non-empty value to skip the .Li doc/ From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:28:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F2BC1DDE; Tue, 13 Aug 2013 20:28:21 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E055F2303; Tue, 13 Aug 2013 20:28:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DKSLgV078768; Tue, 13 Aug 2013 20:28:21 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DKSLBJ078767; Tue, 13 Aug 2013 20:28:21 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201308132028.r7DKSLBJ078767@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Tue, 13 Aug 2013 20:28:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254295 - head/gnu/lib/libstdc++ X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:28:22 -0000 Author: pfg Date: Tue Aug 13 20:28:21 2013 New Revision: 254295 URL: http://svnweb.freebsd.org/changeset/base/254295 Log: Teach libstdc++ about logl(3). The logl(3) family of functions were implemented in r251292. Define them in libstdc++'s configuration so they can be used. Reviewed by: dim Modified: head/gnu/lib/libstdc++/config.h Modified: head/gnu/lib/libstdc++/config.h ============================================================================== --- head/gnu/lib/libstdc++/config.h Tue Aug 13 20:22:57 2013 (r254294) +++ head/gnu/lib/libstdc++/config.h Tue Aug 13 20:28:21 2013 (r254295) @@ -212,13 +212,13 @@ #define HAVE_LOG10F 1 /* Define to 1 if you have the `log10l' function. */ -/* #undef HAVE_LOG10L */ +#define HAVE_LOG10L 1 /* Define to 1 if you have the `logf' function. */ #define HAVE_LOGF 1 /* Define to 1 if you have the `logl' function. */ -/* #undef HAVE_LOGL */ +#define HAVE_LOGL 1 /* Define to 1 if you have the header file. */ #define HAVE_MACHINE_ENDIAN_H 1 From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:33:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7C568346; Tue, 13 Aug 2013 20:33:51 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 69C53237A; Tue, 13 Aug 2013 20:33:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DKXp4M081716; Tue, 13 Aug 2013 20:33:51 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DKXpS4081715; Tue, 13 Aug 2013 20:33:51 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308132033.r7DKXpS4081715@svn.freebsd.org> From: Jilles Tjoelker Date: Tue, 13 Aug 2013 20:33:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254296 - head/usr.bin/kdump X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:33:51 -0000 Author: jilles Date: Tue Aug 13 20:33:50 2013 New Revision: 254296 URL: http://svnweb.freebsd.org/changeset/base/254296 Log: kdump: Decode AT_FDCWD in first argument of bindat() and connectat(). Modified: head/usr.bin/kdump/kdump.c Modified: head/usr.bin/kdump/kdump.c ============================================================================== --- head/usr.bin/kdump/kdump.c Tue Aug 13 20:28:21 2013 (r254295) +++ head/usr.bin/kdump/kdump.c Tue Aug 13 20:33:50 2013 (r254296) @@ -606,6 +606,8 @@ ktrsyscall(struct ktr_syscall *ktr, u_in if (fancy && (flags == 0 || (flags & SV_ABI_MASK) == SV_ABI_FREEBSD)) { switch (ktr->ktr_code) { + case SYS_bindat: + case SYS_connectat: case SYS_faccessat: case SYS_fchmodat: case SYS_fchownat: From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:38:56 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9E4BF70A; Tue, 13 Aug 2013 20:38:56 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7285A23B4; Tue, 13 Aug 2013 20:38:56 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DKcutt082571; Tue, 13 Aug 2013 20:38:56 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DKcuH7082570; Tue, 13 Aug 2013 20:38:56 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201308132038.r7DKcuH7082570@svn.freebsd.org> From: Peter Wemm Date: Tue, 13 Aug 2013 20:38:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254297 - head/lib/libc/stdlib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:38:56 -0000 Author: peter Date: Tue Aug 13 20:38:55 2013 New Revision: 254297 URL: http://svnweb.freebsd.org/changeset/base/254297 Log: vfork(2) was listed as deprecated in 1994 (r1573) and was the false reports of its impending demise were removed in 2009 (r199257). However, in 1996 (r16117) system(3) was switched from vfork(2) to fork(2) based partly on this. Switch back to vfork(2). This has a dramatic effect in cases of extreme mmap use - such as excessive abuse (500+) of shared libraries. popen(3) has used vfork(2) for a while. vfork(2) isn't going anywhere. Modified: head/lib/libc/stdlib/system.c Modified: head/lib/libc/stdlib/system.c ============================================================================== --- head/lib/libc/stdlib/system.c Tue Aug 13 20:33:50 2013 (r254296) +++ head/lib/libc/stdlib/system.c Tue Aug 13 20:38:55 2013 (r254297) @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -56,37 +57,36 @@ __system(const char *command) if (!command) /* just checking... */ return(1); - /* - * Ignore SIGINT and SIGQUIT, block SIGCHLD. Remember to save - * existing signal dispositions. - */ - ign.sa_handler = SIG_IGN; - (void)sigemptyset(&ign.sa_mask); - ign.sa_flags = 0; - (void)_sigaction(SIGINT, &ign, &intact); - (void)_sigaction(SIGQUIT, &ign, &quitact); (void)sigemptyset(&newsigblock); (void)sigaddset(&newsigblock, SIGCHLD); (void)_sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock); - switch(pid = fork()) { + switch(pid = vfork()) { case -1: /* error */ - break; + (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); + return (-1); case 0: /* child */ /* * Restore original signal dispositions and exec the command. */ - (void)_sigaction(SIGINT, &intact, NULL); - (void)_sigaction(SIGQUIT, &quitact, NULL); (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); execl(_PATH_BSHELL, "sh", "-c", command, (char *)NULL); _exit(127); - default: /* parent */ - savedpid = pid; - do { - pid = _wait4(savedpid, &pstat, 0, (struct rusage *)0); - } while (pid == -1 && errno == EINTR); - break; } + /* + * If we are running means that the child has either completed + * its execve, or has failed. + * Block SIGINT/QUIT because sh -c handles it and wait for + * it to clean up. + */ + memset(&ign, 0, sizeof(ign)); + ign.sa_handler = SIG_IGN; + (void)sigemptyset(&ign.sa_mask); + (void)_sigaction(SIGINT, &ign, &intact); + (void)_sigaction(SIGQUIT, &ign, &quitact); + savedpid = pid; + do { + pid = _wait4(savedpid, &pstat, 0, (struct rusage *)0); + } while (pid == -1 && errno == EINTR); (void)_sigaction(SIGINT, &intact, NULL); (void)_sigaction(SIGQUIT, &quitact, NULL); (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:40:13 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 68091854; Tue, 13 Aug 2013 20:40:13 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 229D923C1; Tue, 13 Aug 2013 20:40:11 +0000 (UTC) Received: from alph.d.allbsd.org (p2049-ipbf1102funabasi.chiba.ocn.ne.jp [122.26.101.49]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r7DKdsbC089882 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 14 Aug 2013 05:40:04 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.5/8.14.5) with ESMTP id r7DKdqQ7018805; Wed, 14 Aug 2013 05:39:54 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Wed, 14 Aug 2013 05:35:54 +0900 (JST) Message-Id: <20130814.053554.1333869805065914360.hrs@allbsd.org> To: gjb@FreeBSD.org Subject: Re: svn commit: r254224 - head/share/man/man7 From: Hiroki Sato In-Reply-To: <20130813195257.GA2241@glenbarber.us> References: <201308111857.r7BIvRSq080970@svn.freebsd.org> <20130814.042557.877689080765344354.hrs@allbsd.org> <20130813195257.GA2241@glenbarber.us> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Wed_Aug_14_05_35_54_2013_192)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Wed, 14 Aug 2013 05:40:04 +0900 (JST) X-Spam-Status: No, score=-90.6 required=13.0 tests=CONTENT_TYPE_PRESENT, DIRECTOCNDYN,DYN_PBL,RCVD_IN_PBL,SPF_SOFTFAIL,USER_IN_WHITELIST autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:40:13 -0000 ----Security_Multipart(Wed_Aug_14_05_35_54_2013_192)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Glen Barber wrote in <20130813195257.GA2241@glenbarber.us>: gj> On Wed, Aug 14, 2013 at 04:25:57AM +0900, Hiroki Sato wrote: gj> > gj> +.It Va SRCREVISION gj> > gj> +The revision of the gj> > gj> +.Li src/ gj> > gj> +tree to use. gj> > gj> +Defaults to the current top of tree revision. gj> > gj> +.It Va DOCREVISION gj> > gj> +The revision of the gj> > gj> +.Li doc/ gj> > gj> +tree to use. gj> > gj> +Defaults to the current top of tree revision. gj> > gj> +.It Va PORTREVISION gj> > gj> > Why separation between revision and branch is needed? I gj> > intentionally dropped this part from your old patch to gj> > generate-release.sh because branch and revision number can be gj> > specified like releng/9.2@NNN in a single variable. An incorrect gj> > configuration of the two variables do not always cause a fatal error, gj> > so specification in fewer number of variables is more foolproof. gj> > gj> gj> I personally do not like using branch@rNNNNNN, but will update to remove gj> the {SRC,DOC,PORT}REVISION variables. Thank you. I don't like it either, honestly... gj> > gj> +.It Va TARGET gj> > gj> +The target machine type for the release. gj> > gj> +Defaults to the current machine type. gj> > gj> +.It Va TARGET_ARCH gj> > gj> +The target machine architecture for the release. gj> > gj> +Defaults to the value of gj> > gj> +.Va TARGET . gj> > gj> +.Pp gj> > gj> > Please remove default configuration of these variables from gj> > release.sh. The reasonable defaults are already set in src/Makefile gj> > and setting TARGET_ARCH=$TARGET by default is simply wrong. Also, gj> > get_rev_branch() is redundant. gj> > gj> gj> Will be changed shortly. gj> gj> Why is get_rev_branch() redundant? Because variables in get_rev_branch() are already defined in src/release/Makefile, too. If one wants to use them in release.sh for some reason, "make -VBRANCH" is preferable instead of duplicating the same logic in Makefile to extract them from newvers.sh. This script should not do the same job which Makefile does. IMO, the default value of OSRELEASE is not needed here. It seems used in RELSTRING, but it does not work (and even if it works, it just generates the same default value). If we always need to override the default value, Makefile should be fixed instead. -- Hiroki ----Security_Multipart(Wed_Aug_14_05_35_54_2013_192)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlIKmKoACgkQTyzT2CeTzy3K3ACg0ggV0UJjWdkMB8//wZMOLnMo i18AnA+E0Au/N175GwCp+WMHWn7KAAD9 =gWnC -----END PGP SIGNATURE----- ----Security_Multipart(Wed_Aug_14_05_35_54_2013_192)---- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:42:28 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4C574A35; Tue, 13 Aug 2013 20:42:28 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id 0FD8D240C; Tue, 13 Aug 2013 20:42:28 +0000 (UTC) Received: from critter.freebsd.dk (critter.freebsd.dk [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id 880813EBB6; Tue, 13 Aug 2013 20:32:21 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.7/8.14.7) with ESMTP id r7DAxTUl011786; Tue, 13 Aug 2013 10:59:29 GMT (envelope-from phk@phk.freebsd.dk) To: Alexander Motin Subject: Re: svn commit: r254275 - head/sys/geom/raid In-reply-to: <5209F968.4090301@FreeBSD.org> From: "Poul-Henning Kamp" References: <201308130756.r7D7uf9o086164@svn.freebsd.org> <5209F2E0.9000901@FreeBSD.org> <5209F968.4090301@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1 Date: Tue, 13 Aug 2013 10:59:29 +0000 Message-ID: <11785.1376391569@critter.freebsd.dk> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Andriy Gapon X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:42:28 -0000 In message <5209F968.4090301@FreeBSD.org>, Alexander Motin writes: >On 13.08.2013 11:48, Andriy Gapon wrote: >> I'd like to stir a small (hopefully) discussion (again, hopefully): is EROFS >> appropriate here or would ENODEV be better? >> >> EROFS Read-only filesystem >> ENODEV Operation not supported by device EPERM ? -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:54:52 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4548820D; Tue, 13 Aug 2013 20:54:52 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 197D824B3; Tue, 13 Aug 2013 20:54:52 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 2BE00D09A; Tue, 13 Aug 2013 20:54:50 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 2BE00D09A Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 13 Aug 2013 16:54:48 -0400 From: Glen Barber To: Hiroki Sato Subject: Re: svn commit: r254224 - head/share/man/man7 Message-ID: <20130813205448.GC2241@glenbarber.us> References: <201308111857.r7BIvRSq080970@svn.freebsd.org> <20130814.042557.877689080765344354.hrs@allbsd.org> <20130813195257.GA2241@glenbarber.us> <20130814.053554.1333869805065914360.hrs@allbsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="MnLPg7ZWsaic7Fhd" Content-Disposition: inline In-Reply-To: <20130814.053554.1333869805065914360.hrs@allbsd.org> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:54:52 -0000 --MnLPg7ZWsaic7Fhd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 14, 2013 at 05:35:54AM +0900, Hiroki Sato wrote: > gj> Why is get_rev_branch() redundant? >=20 > Because variables in get_rev_branch() are already defined in > src/release/Makefile, too. If one wants to use them in release.sh > for some reason, "make -VBRANCH" is preferable instead of duplicating > the same logic in Makefile to extract them from newvers.sh. This > script should not do the same job which Makefile does. >=20 > IMO, the default value of OSRELEASE is not needed here. It seems > used in RELSTRING, but it does not work (and even if it works, it > just generates the same default value). If we always need to > override the default value, Makefile should be fixed instead. >=20 Got it. I think (based on my local revision history) that this was added before the changes to Makefile to set the RELSTRING, when it was done in generate-release.sh. I'll remove it. Glen --MnLPg7ZWsaic7Fhd Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSCp0YAAoJEFJPDDeguUajpEoH/3jRw6GTgnRXKviG/GkTzMPc bNEHPymTdGVQyvRKCCVJM3Bx7p4R9Ky0nrpEju9RuewtZ+7sjn6jzayJO02QQyp2 zEx5bRpYNbkrA47Qyltp4KsWZg2V8wvBmVoDH17zP3yYpvnYS6K39coCkfjEOF3N evZFs7dvVRBHHDNfDdM+VjtIyPAG/twXhAKGOn+kUjY/PjcppJ3tL9BZtGA6oBlg DJLq9Uk+YFP9ckEHv1gam+amrPTyL8O1SqeMsfbBFbi6VbeL3CPcieF+4i7+cVt2 8m43X+l0f50bZiVwoCCe84H43vv+z7Z9ra27mBfNK8N4biu45wSIurTIfWB5lIM= =6fme -----END PGP SIGNATURE----- --MnLPg7ZWsaic7Fhd-- From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 20:57:39 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E01633B1; Tue, 13 Aug 2013 20:57:39 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9E6D624D3; Tue, 13 Aug 2013 20:57:39 +0000 (UTC) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mx1.stack.nl (Postfix) with ESMTP id B4472358C67; Tue, 13 Aug 2013 22:57:36 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id 90B3828494; Tue, 13 Aug 2013 22:57:36 +0200 (CEST) Date: Tue, 13 Aug 2013 22:57:36 +0200 From: Jilles Tjoelker To: David Chisnall Subject: Re: svn commit: r253802 - head/contrib/llvm/tools/clang/lib/Headers Message-ID: <20130813205736.GA68244@stack.nl> References: <201307301233.r6UCXLT8012177@svn.freebsd.org> <2DE35C45-B110-4D93-BFA7-542A3D1EE902@freebsd.org> <20130807205653.GB4918@stack.nl> <46BC9A7E-4AF1-4BE9-9902-3578BDE0CD56@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <46BC9A7E-4AF1-4BE9-9902-3578BDE0CD56@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "svn-src-head@FreeBSD.org" , Matthew Fleming , "svn-src-all@FreeBSD.org" , "src-committers@FreeBSD.org" , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 20:57:40 -0000 On Thu, Aug 08, 2013 at 09:37:02AM +0100, David Chisnall wrote: > On 7 Aug 2013, at 21:56, Jilles Tjoelker wrote: > > The code_model stuff is not for x32 support but for PIC/PIE code where > > code+data exceed 2GB so relative addressing cannot always be used. The > > ABI then prescribes that %r15 be loaded with the GOT pointer when > > invoking a large model (code>2GB) PLT entry; otherwise (medium model or > > no PLT entry used), much like i386, any register can be used for the GOT > > pointer. > Does our rtld provide support for this? We recently encountered a > problem with the new LLVM JIT because FreeBSD's mmap() does not > provide a way of requesting memory that is below the 2GB line and so > we can't use the small code model. Our rtld does not seem to support the large PLT layout, but the regular layout may (should) be used if the PLT can reach the GOT via relative (<=2GB) addressing. This should be the case unless very many symbols are used. I think it is more likely to encounter problems with ld. Support for the larger models may have been added later. Given that JIT is for performance and larger addresses increase code size and register pressure, the mmap() flag is probably useful. Alternatively, all the JITted code could be placed in one block and use relative addressing. -- Jilles Tjoelker From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:00:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 182F76DA; Tue, 13 Aug 2013 21:00:48 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9A051252A; Tue, 13 Aug 2013 21:00:47 +0000 (UTC) Received: from snail.stack.nl (snail.stack.nl [IPv6:2001:610:1108:5010::131]) by mx1.stack.nl (Postfix) with ESMTP id 332DE358C67; Tue, 13 Aug 2013 23:00:46 +0200 (CEST) Received: by snail.stack.nl (Postfix, from userid 1677) id F1AC028494; Tue, 13 Aug 2013 23:00:45 +0200 (CEST) Date: Tue, 13 Aug 2013 23:00:45 +0200 From: Jilles Tjoelker To: Peter Wemm Subject: Re: svn commit: r254297 - head/lib/libc/stdlib Message-ID: <20130813210045.GB68244@stack.nl> References: <201308132038.r7DKcuH7082570@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201308132038.r7DKcuH7082570@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:00:48 -0000 On Tue, Aug 13, 2013 at 08:38:56PM +0000, Peter Wemm wrote: > Author: peter > Date: Tue Aug 13 20:38:55 2013 > New Revision: 254297 > URL: http://svnweb.freebsd.org/changeset/base/254297 > Log: > vfork(2) was listed as deprecated in 1994 (r1573) and was the false > reports of its impending demise were removed in 2009 (r199257). > However, in 1996 (r16117) system(3) was switched from vfork(2) to > fork(2) based partly on this. Switch back to vfork(2). This has a > dramatic effect in cases of extreme mmap use - such as excessive > abuse (500+) of shared libraries. > popen(3) has used vfork(2) for a while. vfork(2) isn't going anywhere. > Modified: > head/lib/libc/stdlib/system.c > Modified: head/lib/libc/stdlib/system.c > ============================================================================== > --- head/lib/libc/stdlib/system.c Tue Aug 13 20:33:50 2013 (r254296) > +++ head/lib/libc/stdlib/system.c Tue Aug 13 20:38:55 2013 (r254297) > @@ -39,6 +39,7 @@ __FBSDID("$FreeBSD$"); > #include > #include > #include > +#include > #include > #include > #include > @@ -56,37 +57,36 @@ __system(const char *command) > if (!command) /* just checking... */ > return(1); > > - /* > - * Ignore SIGINT and SIGQUIT, block SIGCHLD. Remember to save > - * existing signal dispositions. > - */ > - ign.sa_handler = SIG_IGN; > - (void)sigemptyset(&ign.sa_mask); > - ign.sa_flags = 0; > - (void)_sigaction(SIGINT, &ign, &intact); > - (void)_sigaction(SIGQUIT, &ign, &quitact); > (void)sigemptyset(&newsigblock); > (void)sigaddset(&newsigblock, SIGCHLD); > (void)_sigprocmask(SIG_BLOCK, &newsigblock, &oldsigblock); > - switch(pid = fork()) { > + switch(pid = vfork()) { > case -1: /* error */ > - break; > + (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); > + return (-1); > case 0: /* child */ > /* > * Restore original signal dispositions and exec the command. > */ > - (void)_sigaction(SIGINT, &intact, NULL); > - (void)_sigaction(SIGQUIT, &quitact, NULL); > (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); > execl(_PATH_BSHELL, "sh", "-c", command, (char *)NULL); > _exit(127); > - default: /* parent */ > - savedpid = pid; > - do { > - pid = _wait4(savedpid, &pstat, 0, (struct rusage *)0); > - } while (pid == -1 && errno == EINTR); > - break; > } > + /* > + * If we are running means that the child has either completed > + * its execve, or has failed. > + * Block SIGINT/QUIT because sh -c handles it and wait for > + * it to clean up. > + */ > + memset(&ign, 0, sizeof(ign)); > + ign.sa_handler = SIG_IGN; > + (void)sigemptyset(&ign.sa_mask); > + (void)_sigaction(SIGINT, &ign, &intact); > + (void)_sigaction(SIGQUIT, &ign, &quitact); > + savedpid = pid; > + do { > + pid = _wait4(savedpid, &pstat, 0, (struct rusage *)0); > + } while (pid == -1 && errno == EINTR); > (void)_sigaction(SIGINT, &intact, NULL); > (void)_sigaction(SIGQUIT, &quitact, NULL); > (void)_sigprocmask(SIG_SETMASK, &oldsigblock, NULL); This is definitely good, but I think ignoring SIGINT/SIGQUIT only after the vfork() puts back an old bug. The ignore was deliberately moved to before fork(). You can avoid it more simply by adding SIGINT and SIGQUIT to the signal mask above. The kernel then keeps any SIGINT/SIGQUIT pending until the signal is ignored after vfork(). -- Jilles Tjoelker From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:01:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3C598817; Tue, 13 Aug 2013 21:01:24 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2A50B2531; Tue, 13 Aug 2013 21:01:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DL1O14092467; Tue, 13 Aug 2013 21:01:24 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DL1OnR092466; Tue, 13 Aug 2013 21:01:24 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308132101.r7DL1OnR092466@svn.freebsd.org> From: Glen Barber Date: Tue, 13 Aug 2013 21:01:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254298 - head/release X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:01:24 -0000 Author: gjb Date: Tue Aug 13 21:01:23 2013 New Revision: 254298 URL: http://svnweb.freebsd.org/changeset/base/254298 Log: Remove get_rev_branch(), functionality exists in the release/Makefile. Submitted by: hrs Modified: head/release/release.sh Modified: head/release/release.sh ============================================================================== --- head/release/release.sh Tue Aug 13 20:38:55 2013 (r254297) +++ head/release/release.sh Tue Aug 13 21:01:23 2013 (r254298) @@ -73,17 +73,6 @@ NODOC= NOPORTS= MAKE_FLAGS="${MAKE_FLAGS}" -get_rev_branch () { - # Set up the OSVERSION, BRANCH, and REVISION based on the src/ tree - # checked out. - OSVERSION=$(grep '#define __FreeBSD_version' ${CHROOTDIR}/usr/src/sys/sys/param.h | awk '{print $3}') - BRANCH=$(grep '^BRANCH=' ${CHROOTDIR}/usr/src/sys/conf/newvers.sh \ - | awk -F\= '{print $2}' | sed -e 's,",,g') - REVISION=$(grep '^REVISION=' ${CHROOTDIR}/usr/src/sys/conf/newvers.sh \ - | awk -F\= '{print $2}' | sed -e 's,",,g') - OSRELEASE="${REVISION}-${BRANCH}" -} - usage() { echo "Usage: $0 [-c release.conf]" exit 1 @@ -171,8 +160,6 @@ if [ "x${NOPORTS}" = "x" ]; then svn co ${SVNROOT}/${PORTBRANCH} ${CHROOTDIR}/usr/ports fi -get_rev_branch - cd ${CHROOTDIR}/usr/src make ${CHROOT_WMAKEFLAGS} buildworld make ${CHROOT_IMAKEFLAGS} installworld DESTDIR=${CHROOTDIR} From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:12:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 10777C12; Tue, 13 Aug 2013 21:12:29 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E23EA25E5; Tue, 13 Aug 2013 21:12:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DLCSxg096649; Tue, 13 Aug 2013 21:12:28 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DLCSJt096646; Tue, 13 Aug 2013 21:12:28 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201308132112.r7DLCSJt096646@svn.freebsd.org> From: Ian Lepore Date: Tue, 13 Aug 2013 21:12:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254299 - head/sys/arm/freescale/imx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:12:29 -0000 Author: ian Date: Tue Aug 13 21:12:28 2013 New Revision: 254299 URL: http://svnweb.freebsd.org/changeset/base/254299 Log: Rename imx_machdep.c to imx51_machdep.c, because it contains hardware addresses which are specific to the imx51 chips. Added: head/sys/arm/freescale/imx/imx51_machdep.c - copied unchanged from r254281, head/sys/arm/freescale/imx/imx_machdep.c Deleted: head/sys/arm/freescale/imx/imx_machdep.c Modified: head/sys/arm/freescale/imx/files.imx51 Modified: head/sys/arm/freescale/imx/files.imx51 ============================================================================== --- head/sys/arm/freescale/imx/files.imx51 Tue Aug 13 21:01:23 2013 (r254298) +++ head/sys/arm/freescale/imx/files.imx51 Tue Aug 13 21:12:28 2013 (r254299) @@ -8,7 +8,7 @@ arm/arm/irq_dispatch.S standard kern/kern_clocksource.c standard # Init -arm/freescale/imx/imx_machdep.c standard +arm/freescale/imx/imx51_machdep.c standard arm/freescale/imx/common.c standard arm/freescale/imx/bus_space.c standard Copied: head/sys/arm/freescale/imx/imx51_machdep.c (from r254281, head/sys/arm/freescale/imx/imx_machdep.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/arm/freescale/imx/imx51_machdep.c Tue Aug 13 21:12:28 2013 (r254299, copy of r254281, head/sys/arm/freescale/imx/imx_machdep.c) @@ -0,0 +1,142 @@ +/*- + * Copyright (c) 1994-1998 Mark Brinicombe. + * Copyright (c) 1994 Brini. + * Copyright (c) 2012, 2013 The FreeBSD Foundation + * All rights reserved. + * + * + * This code is derived from software written for Brini by Mark Brinicombe + * Portions of this software were developed by Oleksandr Rybalko + * under sponsorship from the FreeBSD Foundation. + * + * 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 Brini. + * 4. The name of the company nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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: //depot/projects/arm/src/sys/arm/at91/kb920x_machdep.c, rev 45 + */ + +#include "opt_platform.h" + +#include +__FBSDID("$FreeBSD$"); + +#define _ARM32_BUS_DMA_PRIVATE +#include +#include +#include +#include + +#include +#include + +#include +#include /* For trapframe_t, used in */ +#include +#include + +#include + +#define IMX51_DEV_VIRT_BASE 0xe0000000 +vm_offset_t +initarm_lastaddr(void) +{ + + boothowto |= RB_VERBOSE|RB_MULTIPLE; + bootverbose = 1; + + if (fdt_immr_addr(IMX51_DEV_VIRT_BASE) != 0) + while (1); + + /* Platform-specific initialisation */ + return (fdt_immr_va - ARM_NOCACHE_KVA_SIZE); +} + +/* + * Set initial values of GPIO output ports + */ +void +initarm_gpio_init(void) +{ + +} + +void +initarm_late_init(void) +{ + +} + +#define FDT_DEVMAP_MAX 2 +static struct pmap_devmap fdt_devmap[FDT_DEVMAP_MAX] = { + { 0, 0, 0, 0, 0, }, + { 0, 0, 0, 0, 0, } +}; + +/* + * Construct pmap_devmap[] with DT-derived config data. + */ +int +platform_devmap_init(void) +{ + + /* + * Map segment where UART1 and UART2 located. + */ + fdt_devmap[0].pd_va = IMX51_DEV_VIRT_BASE + 0x03f00000; + fdt_devmap[0].pd_pa = 0x73f00000; + fdt_devmap[0].pd_size = 0x00100000; + fdt_devmap[0].pd_prot = VM_PROT_READ | VM_PROT_WRITE; + fdt_devmap[0].pd_cache = PTE_NOCACHE; + + pmap_devmap_bootstrap_table = &fdt_devmap[0]; + return (0); +} + +struct arm32_dma_range * +bus_dma_get_range(void) +{ + + return (NULL); +} + +int +bus_dma_get_range_nb(void) +{ + + return (0); +} + +void +cpu_reset(void) +{ + + printf("Reset ...\n"); + /* Clear n_reset flag */ + *((volatile u_int16_t *)(IMX51_DEV_VIRT_BASE + 0x03f98000)) = + (u_int16_t)0; + while (1); +} From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:34:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1B9CE35E; Tue, 13 Aug 2013 21:34:06 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 072592751; Tue, 13 Aug 2013 21:34:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DLY5e2073127; Tue, 13 Aug 2013 21:34:05 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DLY4Iw072825; Tue, 13 Aug 2013 21:34:04 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201308132134.r7DLY4Iw072825@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 13 Aug 2013 21:34:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254300 - in head/sys: amd64/include dev/acpica/Osd i386/include ia64/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:34:06 -0000 Author: jkim Date: Tue Aug 13 21:34:03 2013 New Revision: 254300 URL: http://svnweb.freebsd.org/changeset/base/254300 Log: Tidy up global locks for ACPICA. There is no functional change. Modified: head/sys/amd64/include/acpica_machdep.h head/sys/dev/acpica/Osd/OsdSynch.c head/sys/i386/include/acpica_machdep.h head/sys/ia64/include/acpica_machdep.h Modified: head/sys/amd64/include/acpica_machdep.h ============================================================================== --- head/sys/amd64/include/acpica_machdep.h Tue Aug 13 21:12:28 2013 (r254299) +++ head/sys/amd64/include/acpica_machdep.h Tue Aug 13 21:34:03 2013 (r254300) @@ -59,9 +59,9 @@ #define ACPI_FLUSH_CPU_CACHE() wbinvd() -/* Section 5.2.9.1: global lock acquire/release functions */ -extern int acpi_acquire_global_lock(uint32_t *lock); -extern int acpi_release_global_lock(uint32_t *lock); +/* Section 5.2.10.1: global lock acquire/release functions */ +int acpi_acquire_global_lock(volatile uint32_t *); +int acpi_release_global_lock(volatile uint32_t *); #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ (Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \ } while (0) Modified: head/sys/dev/acpica/Osd/OsdSynch.c ============================================================================== --- head/sys/dev/acpica/Osd/OsdSynch.c Tue Aug 13 21:12:28 2013 (r254299) +++ head/sys/dev/acpica/Osd/OsdSynch.c Tue Aug 13 21:34:03 2013 (r254300) @@ -566,8 +566,6 @@ AcpiOsReleaseLock(ACPI_SPINLOCK Handle, } /* Section 5.2.10.1: global lock acquire/release functions */ -#define GL_BIT_PENDING 0x01 -#define GL_BIT_OWNED 0x02 /* * Acquire the global lock. If busy, set the pending bit. The caller @@ -575,18 +573,18 @@ AcpiOsReleaseLock(ACPI_SPINLOCK Handle, * and then attempt to acquire it again. */ int -acpi_acquire_global_lock(uint32_t *lock) +acpi_acquire_global_lock(volatile uint32_t *lock) { uint32_t new, old; do { old = *lock; - new = (old & ~GL_BIT_PENDING) | GL_BIT_OWNED; - if ((old & GL_BIT_OWNED) != 0) - new |= GL_BIT_PENDING; - } while (atomic_cmpset_acq_int(lock, old, new) == 0); + new = (old & ~ACPI_GLOCK_PENDING) | ACPI_GLOCK_OWNED; + if ((old & ACPI_GLOCK_OWNED) != 0) + new |= ACPI_GLOCK_PENDING; + } while (atomic_cmpset_32(lock, old, new) == 0); - return ((new & GL_BIT_PENDING) == 0); + return ((new & ACPI_GLOCK_PENDING) == 0); } /* @@ -595,14 +593,14 @@ acpi_acquire_global_lock(uint32_t *lock) * releases the lock. */ int -acpi_release_global_lock(uint32_t *lock) +acpi_release_global_lock(volatile uint32_t *lock) { uint32_t new, old; do { old = *lock; - new = old & ~(GL_BIT_PENDING | GL_BIT_OWNED); - } while (atomic_cmpset_rel_int(lock, old, new) == 0); + new = old & ~(ACPI_GLOCK_PENDING | ACPI_GLOCK_OWNED); + } while (atomic_cmpset_32(lock, old, new) == 0); - return ((old & GL_BIT_PENDING) != 0); + return ((old & ACPI_GLOCK_PENDING) != 0); } Modified: head/sys/i386/include/acpica_machdep.h ============================================================================== --- head/sys/i386/include/acpica_machdep.h Tue Aug 13 21:12:28 2013 (r254299) +++ head/sys/i386/include/acpica_machdep.h Tue Aug 13 21:34:03 2013 (r254300) @@ -59,9 +59,9 @@ #define ACPI_FLUSH_CPU_CACHE() wbinvd() -/* Section 5.2.9.1: global lock acquire/release functions */ -extern int acpi_acquire_global_lock(uint32_t *lock); -extern int acpi_release_global_lock(uint32_t *lock); +/* Section 5.2.10.1: global lock acquire/release functions */ +int acpi_acquire_global_lock(volatile uint32_t *); +int acpi_release_global_lock(volatile uint32_t *); #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ (Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \ } while (0) Modified: head/sys/ia64/include/acpica_machdep.h ============================================================================== --- head/sys/ia64/include/acpica_machdep.h Tue Aug 13 21:12:28 2013 (r254299) +++ head/sys/ia64/include/acpica_machdep.h Tue Aug 13 21:34:03 2013 (r254300) @@ -60,9 +60,9 @@ #define ACPI_FLUSH_CPU_CACHE() /* XXX ia64_fc()? */ -/* Section 5.2.9.1: global lock acquire/release functions */ -extern int acpi_acquire_global_lock(uint32_t *lock); -extern int acpi_release_global_lock(uint32_t *lock); +/* Section 5.2.10.1: global lock acquire/release functions */ +int acpi_acquire_global_lock(volatile uint32_t *); +int acpi_release_global_lock(volatile uint32_t *); #define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ (Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \ } while (0) From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:45:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1B5A3744; Tue, 13 Aug 2013 21:45:49 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 08B6C2825; Tue, 13 Aug 2013 21:45:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DLjmCX006847; Tue, 13 Aug 2013 21:45:48 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DLjmB7006846; Tue, 13 Aug 2013 21:45:48 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308132145.r7DLjmB7006846@svn.freebsd.org> From: Jilles Tjoelker Date: Tue, 13 Aug 2013 21:45:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254301 - head/lib/libc/gmon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:45:49 -0000 Author: jilles Date: Tue Aug 13 21:45:48 2013 New Revision: 254301 URL: http://svnweb.freebsd.org/changeset/base/254301 Log: libc: Use O_CLOEXEC when writing gmon files (cc -pg). Modified: head/lib/libc/gmon/gmon.c Modified: head/lib/libc/gmon/gmon.c ============================================================================== --- head/lib/libc/gmon/gmon.c Tue Aug 13 21:34:03 2013 (r254300) +++ head/lib/libc/gmon/gmon.c Tue Aug 13 21:45:48 2013 (r254301) @@ -163,13 +163,13 @@ _mcleanup(void) else snprintf(outname, sizeof(outname), "%s.gmon", _getprogname()); - fd = _open(outname, O_CREAT|O_TRUNC|O_WRONLY, 0666); + fd = _open(outname, O_CREAT|O_TRUNC|O_WRONLY|O_CLOEXEC, 0666); if (fd < 0) { _warn("_mcleanup: %s", outname); return; } #ifdef DEBUG - log = _open("gmon.log", O_CREAT|O_TRUNC|O_WRONLY, 0664); + log = _open("gmon.log", O_CREAT|O_TRUNC|O_WRONLY|O_CLOEXEC, 0664); if (log < 0) { _warn("_mcleanup: gmon.log"); return; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:47:10 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F32B989E; Tue, 13 Aug 2013 21:47:09 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D18362837; Tue, 13 Aug 2013 21:47:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DLl9f8009343; Tue, 13 Aug 2013 21:47:09 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DLl8E3008759; Tue, 13 Aug 2013 21:47:08 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201308132147.r7DLl8E3008759@svn.freebsd.org> From: Jim Harris Date: Tue, 13 Aug 2013 21:47:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254302 - head/sys/dev/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:47:10 -0000 Author: jimharris Date: Tue Aug 13 21:47:08 2013 New Revision: 254302 URL: http://svnweb.freebsd.org/changeset/base/254302 Log: Send a shutdown notification in the driver unload path, to ensure notification gets sent in cases where system shuts down with driver unloaded. Sponsored by: Intel Reviewed by: carl MFC after: 3 days Modified: head/sys/dev/nvme/nvme.c head/sys/dev/nvme/nvme.h head/sys/dev/nvme/nvme_ctrlr.c head/sys/dev/nvme/nvme_private.h Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Tue Aug 13 21:45:48 2013 (r254301) +++ head/sys/dev/nvme/nvme.c Tue Aug 13 21:47:08 2013 (r254302) @@ -157,30 +157,14 @@ nvme_shutdown(void) { device_t *devlist; struct nvme_controller *ctrlr; - union cc_register cc; - union csts_register csts; int dev, devcount; if (devclass_get_devices(nvme_devclass, &devlist, &devcount)) return; for (dev = 0; dev < devcount; dev++) { - /* - * Only notify controller of shutdown when a real shutdown is - * in process, not when a module unload occurs. It seems at - * least some controllers (Chatham at least) don't let you - * re-enable the controller after shutdown notification has - * been received. - */ ctrlr = DEVICE2SOFTC(devlist[dev]); - cc.raw = nvme_mmio_read_4(ctrlr, cc); - cc.bits.shn = NVME_SHN_NORMAL; - nvme_mmio_write_4(ctrlr, cc, cc.raw); - csts.raw = nvme_mmio_read_4(ctrlr, csts); - while (csts.bits.shst != NVME_SHST_COMPLETE) { - DELAY(5); - csts.raw = nvme_mmio_read_4(ctrlr, csts); - } + nvme_ctrlr_shutdown(ctrlr); } free(devlist, M_TEMP); Modified: head/sys/dev/nvme/nvme.h ============================================================================== --- head/sys/dev/nvme/nvme.h Tue Aug 13 21:45:48 2013 (r254301) +++ head/sys/dev/nvme/nvme.h Tue Aug 13 21:47:08 2013 (r254302) @@ -170,27 +170,30 @@ struct nvme_registers union cap_lo_register cap_lo; union cap_hi_register cap_hi; - uint32_t vs; /* version */ - uint32_t intms; /* interrupt mask set */ - uint32_t intmc; /* interrupt mask clear */ + uint32_t vs; /* version */ + uint32_t intms; /* interrupt mask set */ + uint32_t intmc; /* interrupt mask clear */ /** controller configuration */ union cc_register cc; - uint32_t reserved1; - uint32_t csts; /* controller status */ - uint32_t reserved2; + uint32_t reserved1; + + /** controller status */ + union csts_register csts; + + uint32_t reserved2; /** admin queue attributes */ union aqa_register aqa; - uint64_t asq; /* admin submission queue base addr */ - uint64_t acq; /* admin completion queue base addr */ - uint32_t reserved3[0x3f2]; + uint64_t asq; /* admin submission queue base addr */ + uint64_t acq; /* admin completion queue base addr */ + uint32_t reserved3[0x3f2]; struct { - uint32_t sq_tdbl; /* submission queue tail doorbell */ - uint32_t cq_hdbl; /* completion queue head doorbell */ + uint32_t sq_tdbl; /* submission queue tail doorbell */ + uint32_t cq_hdbl; /* completion queue head doorbell */ } doorbell[1] __packed; } __packed; Modified: head/sys/dev/nvme/nvme_ctrlr.c ============================================================================== --- head/sys/dev/nvme/nvme_ctrlr.c Tue Aug 13 21:45:48 2013 (r254301) +++ head/sys/dev/nvme/nvme_ctrlr.c Tue Aug 13 21:47:08 2013 (r254302) @@ -1117,6 +1117,21 @@ nvme_ctrlr_destruct(struct nvme_controll { int i; + /* + * Notify the controller of a shutdown, even though this is due to + * a driver unload, not a system shutdown (this path is not invoked + * during shutdown). This ensures the controller receives a + * shutdown notification in case the system is shutdown before + * reloading the driver. + * + * Chatham does not let you re-enable the controller after shutdown + * notification has been received, so do not send it in this case. + * This is OK because Chatham does not depend on the shutdown + * notification anyways. + */ + if (pci_get_devid(ctrlr->dev) != CHATHAM_PCI_ID) + nvme_ctrlr_shutdown(ctrlr); + nvme_ctrlr_disable(ctrlr); taskqueue_free(ctrlr->taskqueue); @@ -1163,6 +1178,26 @@ nvme_ctrlr_destruct(struct nvme_controll } void +nvme_ctrlr_shutdown(struct nvme_controller *ctrlr) +{ + union cc_register cc; + union csts_register csts; + int ticks = 0; + + cc.raw = nvme_mmio_read_4(ctrlr, cc); + cc.bits.shn = NVME_SHN_NORMAL; + nvme_mmio_write_4(ctrlr, cc, cc.raw); + csts.raw = nvme_mmio_read_4(ctrlr, csts); + while ((csts.bits.shst != NVME_SHST_COMPLETE) && (ticks++ < 5*hz)) { + pause("nvme shn", 1); + csts.raw = nvme_mmio_read_4(ctrlr, csts); + } + if (csts.bits.shst != NVME_SHST_COMPLETE) + nvme_printf(ctrlr, "did not complete shutdown within 5 seconds " + "of notification\n"); +} + +void nvme_ctrlr_submit_admin_request(struct nvme_controller *ctrlr, struct nvme_request *req) { Modified: head/sys/dev/nvme/nvme_private.h ============================================================================== --- head/sys/dev/nvme/nvme_private.h Tue Aug 13 21:45:48 2013 (r254301) +++ head/sys/dev/nvme/nvme_private.h Tue Aug 13 21:47:08 2013 (r254302) @@ -433,6 +433,7 @@ void nvme_completion_poll_cb(void *arg, int nvme_ctrlr_construct(struct nvme_controller *ctrlr, device_t dev); void nvme_ctrlr_destruct(struct nvme_controller *ctrlr, device_t dev); +void nvme_ctrlr_shutdown(struct nvme_controller *ctrlr); int nvme_ctrlr_hw_reset(struct nvme_controller *ctrlr); void nvme_ctrlr_reset(struct nvme_controller *ctrlr); /* ctrlr defined as void * to allow use with config_intrhook. */ From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:49:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2EDD9A89; Tue, 13 Aug 2013 21:49:33 +0000 (UTC) (envelope-from jimharris@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1C07D2852; Tue, 13 Aug 2013 21:49:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DLnWu5059088; Tue, 13 Aug 2013 21:49:32 GMT (envelope-from jimharris@svn.freebsd.org) Received: (from jimharris@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DLnWDB059058; Tue, 13 Aug 2013 21:49:32 GMT (envelope-from jimharris@svn.freebsd.org) Message-Id: <201308132149.r7DLnWDB059058@svn.freebsd.org> From: Jim Harris Date: Tue, 13 Aug 2013 21:49:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254303 - head/sys/dev/nvme X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:49:33 -0000 Author: jimharris Date: Tue Aug 13 21:49:32 2013 New Revision: 254303 URL: http://svnweb.freebsd.org/changeset/base/254303 Log: If a controller fails to initialize, do not notify consumers (nvd) of its namespaces. Sponsoredy by: Intel Reviewed by: carl MFC after: 3 days Modified: head/sys/dev/nvme/nvme.c Modified: head/sys/dev/nvme/nvme.c ============================================================================== --- head/sys/dev/nvme/nvme.c Tue Aug 13 21:47:08 2013 (r254302) +++ head/sys/dev/nvme/nvme.c Tue Aug 13 21:49:32 2013 (r254303) @@ -278,6 +278,15 @@ nvme_notify_consumer(struct nvme_consume else ctrlr_cookie = NULL; ctrlr->cons_cookie[cons->id] = ctrlr_cookie; + if (ctrlr->is_failed) { + if (cons->fail_fn != NULL) + (*cons->fail_fn)(ctrlr_cookie); + /* + * Do not notify consumers about the namespaces of a + * failed controller. + */ + continue; + } for (ns_idx = 0; ns_idx < ctrlr->cdata.nn; ns_idx++) { ns = &ctrlr->ns[ns_idx]; if (cons->ns_fn != NULL) From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 21:56:17 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 72715C99; Tue, 13 Aug 2013 21:56:17 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5F1E428C7; Tue, 13 Aug 2013 21:56:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DLuHNE088847; Tue, 13 Aug 2013 21:56:17 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DLuGSL088842; Tue, 13 Aug 2013 21:56:16 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201308132156.r7DLuGSL088842@svn.freebsd.org> From: Jeff Roberson Date: Tue, 13 Aug 2013 21:56:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254304 - in head/sys: sys vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 21:56:17 -0000 Author: jeff Date: Tue Aug 13 21:56:16 2013 New Revision: 254304 URL: http://svnweb.freebsd.org/changeset/base/254304 Log: Improve pageout flow control to wakeup more frequently and do less work while maintaining better LRU of active pages. - Change v_free_target to include the quantity previously represented by v_cache_min so we don't need to add them together everywhere we use them. - Add a pageout_wakeup_thresh that sets the free page count trigger for waking the page daemon. Set this 10% above v_free_min so we wakeup before any phase transitions in vm users. - Adjust down v_free_target now that we're willing to accept more pagedaemon wakeups. This means we process fewer pages in one iteration as well, leading to shorter lock hold times and less overall disruption. - Eliminate vm_pageout_page_stats(). This was a minor variation on the PQ_ACTIVE segment of the normal pageout daemon. Instead we now process 1 / vm_pageout_update_period pages every second. This causes us to visit the whole active list every 60 seconds. Previously we would only maintain the active LRU when we were short on pages which would mean it could be woefully out of date. Reviewed by: alc (slight variant of this) Discussed with: alc, kib, jhb Sponsored by: EMC / Isilon Storage Division Modified: head/sys/sys/vmmeter.h head/sys/vm/vm_page.c head/sys/vm/vm_page.h head/sys/vm/vm_pageout.c Modified: head/sys/sys/vmmeter.h ============================================================================== --- head/sys/sys/vmmeter.h Tue Aug 13 21:49:32 2013 (r254303) +++ head/sys/sys/vmmeter.h Tue Aug 13 21:56:16 2013 (r254304) @@ -98,7 +98,7 @@ struct vmmeter { u_int v_inactive_count; /* (q) pages inactive */ u_int v_cache_count; /* (f) pages on cache queue */ u_int v_cache_min; /* (c) min pages desired on cache queue */ - u_int v_cache_max; /* (c) max pages in cached obj */ + u_int v_cache_max; /* (c) max pages in cached obj (unused) */ u_int v_pageout_free_min; /* (c) min pages reserved for kernel */ u_int v_interrupt_free_min; /* (c) reserved pages for int code */ u_int v_free_severe; /* (c) severe page depletion point */ @@ -118,6 +118,8 @@ struct vmmeter { extern struct vmmeter cnt; +extern int vm_pageout_wakeup_thresh; + /* * Return TRUE if we are under our severe low-free-pages threshold * @@ -170,10 +172,7 @@ static __inline int vm_paging_target(void) { - return ( - (cnt.v_free_target + cnt.v_cache_min) - - (cnt.v_free_count + cnt.v_cache_count) - ); + return (cnt.v_free_target - (cnt.v_free_count + cnt.v_cache_count)); } /* @@ -184,10 +183,7 @@ static __inline int vm_paging_needed(void) { - return ( - (cnt.v_free_reserved + cnt.v_cache_min) > - (cnt.v_free_count + cnt.v_cache_count) - ); + return (cnt.v_free_count + cnt.v_cache_count < vm_pageout_wakeup_thresh); } #endif Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Tue Aug 13 21:49:32 2013 (r254303) +++ head/sys/vm/vm_page.c Tue Aug 13 21:56:16 2013 (r254304) @@ -259,7 +259,6 @@ vm_page_domain_init(struct vm_domain *vm "vm active pagequeue"; *__DECONST(int **, &vmd->vmd_pagequeues[PQ_ACTIVE].pq_vcnt) = &cnt.v_active_count; - vmd->vmd_fullintervalcount = 0; vmd->vmd_page_count = 0; vmd->vmd_free_count = 0; vmd->vmd_segs = 0; Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Tue Aug 13 21:49:32 2013 (r254303) +++ head/sys/vm/vm_page.h Tue Aug 13 21:56:16 2013 (r254304) @@ -223,7 +223,6 @@ struct vm_pagequeue { struct vm_domain { struct vm_pagequeue vmd_pagequeues[PQ_COUNT]; - int vmd_fullintervalcount; u_int vmd_page_count; u_int vmd_free_count; long vmd_segs; /* bitmask of the segments */ Modified: head/sys/vm/vm_pageout.c ============================================================================== --- head/sys/vm/vm_pageout.c Tue Aug 13 21:49:32 2013 (r254303) +++ head/sys/vm/vm_pageout.c Tue Aug 13 21:56:16 2013 (r254304) @@ -146,6 +146,7 @@ SYSINIT(vmdaemon, SI_SUB_KTHREAD_VM, SI_ int vm_pages_needed; /* Event on which pageout daemon sleeps */ int vm_pageout_deficit; /* Estimated number of pages deficit */ int vm_pageout_pages_needed; /* flag saying that the pageout daemon needs pages */ +int vm_pageout_wakeup_thresh; #if !defined(NO_SWAPPING) static int vm_pageout_req_swapout; /* XXX */ @@ -155,11 +156,7 @@ static struct mtx vm_daemon_mtx; MTX_SYSINIT(vm_daemon, &vm_daemon_mtx, "vm daemon", MTX_DEF); #endif static int vm_max_launder = 32; -static int vm_pageout_stats_max; -static int vm_pageout_stats; -static int vm_pageout_stats_interval; -static int vm_pageout_full_stats; -static int vm_pageout_full_stats_interval; +static int vm_pageout_update_period; static int defer_swap_pageouts; static int disable_swap_pageouts; @@ -171,24 +168,17 @@ static int vm_swap_enabled = 1; static int vm_swap_idle_enabled = 0; #endif +SYSCTL_INT(_vm, OID_AUTO, pageout_wakeup_thresh, + CTLFLAG_RW, &vm_pageout_wakeup_thresh, 0, + "free page threshold for waking up the pageout daemon"); + SYSCTL_INT(_vm, OID_AUTO, max_launder, CTLFLAG_RW, &vm_max_launder, 0, "Limit dirty flushes in pageout"); -SYSCTL_INT(_vm, OID_AUTO, pageout_stats_max, - CTLFLAG_RW, &vm_pageout_stats_max, 0, "Max pageout stats scan length"); - -SYSCTL_INT(_vm, OID_AUTO, pageout_stats, - CTLFLAG_RD, &vm_pageout_stats, 0, "Number of partial stats scans"); - -SYSCTL_INT(_vm, OID_AUTO, pageout_stats_interval, - CTLFLAG_RW, &vm_pageout_stats_interval, 0, "Interval for partial stats scan"); - -SYSCTL_INT(_vm, OID_AUTO, pageout_full_stats, - CTLFLAG_RD, &vm_pageout_full_stats, 0, "Number of full stats scans"); - -SYSCTL_INT(_vm, OID_AUTO, pageout_full_stats_interval, - CTLFLAG_RW, &vm_pageout_full_stats_interval, 0, "Interval for full stats scan"); - +SYSCTL_INT(_vm, OID_AUTO, pageout_update_period, + CTLFLAG_RW, &vm_pageout_update_period, 0, + "Maximum active LRU update period"); + #if defined(NO_SWAPPING) SYSCTL_INT(_vm, VM_SWAPPING_ENABLED, swap_enabled, CTLFLAG_RD, &vm_swap_enabled, 0, "Enable entire process swapout"); @@ -227,7 +217,6 @@ static void vm_pageout_object_deactivate static void vm_req_vmdaemon(int req); #endif static boolean_t vm_pageout_page_lock(vm_page_t, vm_page_t *); -static void vm_pageout_page_stats(struct vm_domain *vmd); /* * Initialize a dummy page for marking the caller's place in the specified @@ -892,6 +881,10 @@ vm_pageout_map_deactivate_pages(map, des /* * vm_pageout_scan does the dirty work for the pageout daemon. + * + * pass 0 - Update active LRU/deactivate pages + * pass 1 - Move inactive to cache or free + * pass 2 - Launder dirty pages */ static void vm_pageout_scan(struct vm_domain *vmd, int pass) @@ -907,13 +900,20 @@ vm_pageout_scan(struct vm_domain *vmd, i boolean_t queues_locked; /* - * Decrease registered cache sizes. + * If we need to reclaim memory ask kernel caches to return + * some. */ - EVENTHANDLER_INVOKE(vm_lowmem, 0); - /* - * We do this explicitly after the caches have been drained above. - */ - uma_reclaim(); + if (pass > 0) { + /* + * Decrease registered cache sizes. + */ + EVENTHANDLER_INVOKE(vm_lowmem, 0); + /* + * We do this explicitly after the caches have been + * drained above. + */ + uma_reclaim(); + } /* * The addl_page_shortage is the number of temporarily @@ -941,7 +941,7 @@ vm_pageout_scan(struct vm_domain *vmd, i */ if ((maxlaunder = vm_max_launder) <= 1) maxlaunder = 1; - if (pass) + if (pass > 1) maxlaunder = 10000; /* @@ -1097,7 +1097,7 @@ vm_pageout_scan(struct vm_domain *vmd, i */ vm_page_cache(m); --page_shortage; - } else if ((m->flags & PG_WINATCFLS) == 0 && pass == 0) { + } else if ((m->flags & PG_WINATCFLS) == 0 && pass < 2) { /* * Dirty pages need to be paged out, but flushing * a page is extremely expensive verses freeing @@ -1286,9 +1286,18 @@ relock_queues: * Compute the number of pages we want to try to move from the * active queue to the inactive queue. */ + pcount = pq->pq_cnt; page_shortage = vm_paging_target() + cnt.v_inactive_target - cnt.v_inactive_count; page_shortage += addl_page_shortage; + /* + * If we're just idle polling attempt to visit every + * active page within 'update_period' seconds. + */ + if (pass == 0 && vm_pageout_update_period != 0) { + pcount /= vm_pageout_update_period; + page_shortage = pcount; + } /* * Scan the active queue for things we can deactivate. We nominally @@ -1296,7 +1305,6 @@ relock_queues: * deactivation candidates. */ pq = &vmd->vmd_pagequeues[PQ_ACTIVE]; - pcount = pq->pq_cnt; vm_pagequeue_lock(pq); m = TAILQ_FIRST(&pq->pq_pl); while ((m != NULL) && (pcount-- > 0) && (page_shortage > 0)) { @@ -1435,7 +1443,7 @@ vm_pageout_mightbe_oom(struct vm_domain { int old_vote; - if (pass == 0 || !((swap_pager_avail < 64 && vm_page_count_min()) || + if (pass <= 1 || !((swap_pager_avail < 64 && vm_page_count_min()) || (swap_pager_full && vm_paging_target() > 0))) { if (vmd->vmd_oom) { vmd->vmd_oom = FALSE; @@ -1563,131 +1571,12 @@ vm_pageout_oom(int shortage) } } -/* - * This routine tries to maintain the pseudo LRU active queue, - * so that during long periods of time where there is no paging, - * that some statistic accumulation still occurs. This code - * helps the situation where paging just starts to occur. - */ -static void -vm_pageout_page_stats(struct vm_domain *vmd) -{ - struct vm_pagequeue *pq; - vm_object_t object; - vm_page_t m, next; - int pcount, tpcount; /* Number of pages to check */ - int actcount, page_shortage; - - page_shortage = - (cnt.v_inactive_target + cnt.v_cache_max + cnt.v_free_min) - - (cnt.v_free_count + cnt.v_inactive_count + cnt.v_cache_count); - - if (page_shortage <= 0) - return; - - pq = &vmd->vmd_pagequeues[PQ_ACTIVE]; - - /* - * pcount limits the depth of the queue scan. In particular, - * for the full scan, it prevents the iteration from looking - * into the requeued pages. The limit is not exact since the - * page queue lock is dropped during the iteration. - */ - pcount = pq->pq_cnt; - vmd->vmd_fullintervalcount += vm_pageout_stats_interval; - if (vmd->vmd_fullintervalcount < vm_pageout_full_stats_interval) { - atomic_add_int(&vm_pageout_stats, 1); - tpcount = (int64_t)vm_pageout_stats_max * pcount / - vmd->vmd_page_count; - if (pcount > tpcount) - pcount = tpcount; - } else { - atomic_add_int(&vm_pageout_full_stats, 1); - vmd->vmd_fullintervalcount = 0; - } - - vm_pagequeue_lock(pq); - m = TAILQ_FIRST(&pq->pq_pl); - while (m != NULL && pcount-- > 0) { - KASSERT(m->queue == PQ_ACTIVE, - ("vm_pageout_page_stats: page %p isn't active", m)); - - next = TAILQ_NEXT(m, plinks.q); - if ((m->flags & PG_MARKER) != 0) { - m = next; - continue; - } - vm_page_lock_assert(m, MA_NOTOWNED); - if (!vm_pageout_page_lock(m, &next)) { - vm_page_unlock(m); - m = next; - continue; - } - object = m->object; - if (!VM_OBJECT_TRYWLOCK(object) && - !vm_pageout_fallback_object_lock(m, &next)) { - VM_OBJECT_WUNLOCK(object); - vm_page_unlock(m); - m = next; - continue; - } - - /* - * Don't deactivate pages that are busy or held. - */ - if (vm_page_busied(m) || m->hold_count != 0) { - vm_page_unlock(m); - VM_OBJECT_WUNLOCK(object); - vm_page_requeue_locked(m); - m = next; - continue; - } - - actcount = 0; - if (m->aflags & PGA_REFERENCED) { - vm_page_aflag_clear(m, PGA_REFERENCED); - actcount += 1; - } - - actcount += pmap_ts_referenced(m); - if (actcount != 0) { - m->act_count += ACT_ADVANCE + actcount; - if (m->act_count > ACT_MAX) - m->act_count = ACT_MAX; - vm_page_requeue_locked(m); - } else { - if (m->act_count == 0) { - /* - * We turn off page access, so that we have - * more accurate RSS stats. We don't do this - * in the normal page deactivation when the - * system is loaded VM wise, because the - * cost of the large number of page protect - * operations would be higher than the value - * of doing the operation. - */ - pmap_remove_all(m); - /* Dequeue to avoid later lock recursion. */ - vm_page_dequeue_locked(m); - vm_page_deactivate(m); - } else { - m->act_count -= min(m->act_count, ACT_DECLINE); - vm_page_requeue_locked(m); - } - } - vm_page_unlock(m); - VM_OBJECT_WUNLOCK(object); - m = next; - } - vm_pagequeue_unlock(pq); -} - static void vm_pageout_worker(void *arg) { struct vm_domain *domain; struct pcpu *pc; - int cpu, error, domidx; + int cpu, domidx; domidx = (uintptr_t)arg; domain = &vm_dom[domidx]; @@ -1741,32 +1630,24 @@ vm_pageout_worker(void *arg) * (unlimited dirty cleaning), otherwise sleep a bit * and try again. */ - ++(domain->vmd_pass); if (domain->vmd_pass > 1) msleep(&vm_pages_needed, &vm_page_queue_free_mtx, PVM, "psleep", hz / 2); } else { /* - * Good enough, sleep & handle stats. Prime the pass - * for the next run. + * Good enough, sleep until required to refresh + * stats. */ - if (domain->vmd_pass > 1) - domain->vmd_pass = 1; - else - domain->vmd_pass = 0; - error = msleep(&vm_pages_needed, - &vm_page_queue_free_mtx, PVM, "psleep", - vm_pageout_stats_interval * hz); - if (error && !vm_pages_needed) { - mtx_unlock(&vm_page_queue_free_mtx); - domain->vmd_pass = 0; - vm_pageout_page_stats(domain); - continue; - } + domain->vmd_pass = 0; + msleep(&vm_pages_needed, &vm_page_queue_free_mtx, + PVM, "psleep", hz); + } - if (vm_pages_needed) + if (vm_pages_needed) { cnt.v_pdwakeups++; + domain->vmd_pass++; + } mtx_unlock(&vm_page_queue_free_mtx); vm_pageout_scan(domain, domain->vmd_pass); } @@ -1803,52 +1684,30 @@ vm_pageout(void) cnt.v_free_reserved = vm_pageout_page_count + cnt.v_pageout_free_min + (cnt.v_page_count / 768); cnt.v_free_severe = cnt.v_free_min / 2; + cnt.v_free_target = 4 * cnt.v_free_min + cnt.v_free_reserved; cnt.v_free_min += cnt.v_free_reserved; cnt.v_free_severe += cnt.v_free_reserved; + cnt.v_inactive_target = (3 * cnt.v_free_target) / 2; + if (cnt.v_inactive_target > cnt.v_free_count / 3) + cnt.v_inactive_target = cnt.v_free_count / 3; /* - * v_free_target and v_cache_min control pageout hysteresis. Note - * that these are more a measure of the VM cache queue hysteresis - * then the VM free queue. Specifically, v_free_target is the - * high water mark (free+cache pages). - * - * v_free_reserved + v_cache_min (mostly means v_cache_min) is the - * low water mark, while v_free_min is the stop. v_cache_min must - * be big enough to handle memory needs while the pageout daemon - * is signalled and run to free more pages. + * Set the default wakeup threshold to be 10% above the minimum + * page limit. This keeps the steady state out of shortfall. */ - if (cnt.v_free_count > 6144) - cnt.v_free_target = 4 * cnt.v_free_min + cnt.v_free_reserved; - else - cnt.v_free_target = 2 * cnt.v_free_min + cnt.v_free_reserved; + vm_pageout_wakeup_thresh = (cnt.v_free_min / 10) * 11; - if (cnt.v_free_count > 2048) { - cnt.v_cache_min = cnt.v_free_target; - cnt.v_cache_max = 2 * cnt.v_cache_min; - cnt.v_inactive_target = (3 * cnt.v_free_target) / 2; - } else { - cnt.v_cache_min = 0; - cnt.v_cache_max = 0; - cnt.v_inactive_target = cnt.v_free_count / 4; - } - if (cnt.v_inactive_target > cnt.v_free_count / 3) - cnt.v_inactive_target = cnt.v_free_count / 3; + /* + * Set interval in seconds for active scan. We want to visit each + * page at least once a minute. + */ + if (vm_pageout_update_period == 0) + vm_pageout_update_period = 60; /* XXX does not really belong here */ if (vm_page_max_wired == 0) vm_page_max_wired = cnt.v_free_count / 3; - if (vm_pageout_stats_max == 0) - vm_pageout_stats_max = cnt.v_free_target; - - /* - * Set interval in seconds for stats scan. - */ - if (vm_pageout_stats_interval == 0) - vm_pageout_stats_interval = 5; - if (vm_pageout_full_stats_interval == 0) - vm_pageout_full_stats_interval = vm_pageout_stats_interval * 4; - swap_pager_swap_init(); #if MAXMEMDOM > 1 for (i = 1; i < vm_ndomains; i++) { From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 22:05:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 58E3CF98; Tue, 13 Aug 2013 22:05:11 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 37231294A; Tue, 13 Aug 2013 22:05:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DM5BKL092714; Tue, 13 Aug 2013 22:05:11 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DM5AjE092710; Tue, 13 Aug 2013 22:05:10 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201308132205.r7DM5AjE092710@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 13 Aug 2013 22:05:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254305 - in head/sys: amd64/include i386/include x86/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 22:05:11 -0000 Author: jkim Date: Tue Aug 13 22:05:10 2013 New Revision: 254305 URL: http://svnweb.freebsd.org/changeset/base/254305 Log: Merge acpica_machdep.h for amd64 and i386 and move to x86. In fact, these two files were functionally identical. Added: - copied unchanged from r254304, head/sys/amd64/include/acpica_machdep.h Directory Properties: head/sys/x86/include/acpica_machdep.h (props changed) Modified: head/sys/amd64/include/acpica_machdep.h head/sys/i386/include/acpica_machdep.h Modified: head/sys/amd64/include/acpica_machdep.h ============================================================================== --- head/sys/amd64/include/acpica_machdep.h Tue Aug 13 21:56:16 2013 (r254304) +++ head/sys/amd64/include/acpica_machdep.h Tue Aug 13 22:05:10 2013 (r254305) @@ -1,80 +1,6 @@ /*- - * Copyright (c) 2002 Mitsuru IWASAKI - * 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$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -/****************************************************************************** - * - * Name: acpica_machdep.h - arch-specific defines, etc. - * $Revision$ - * - *****************************************************************************/ - -#ifndef __ACPICA_MACHDEP_H__ -#define __ACPICA_MACHDEP_H__ - -#ifdef _KERNEL -/* - * Calling conventions: - * - * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) - * ACPI_EXTERNAL_XFACE - External ACPI interfaces - * ACPI_INTERNAL_XFACE - Internal ACPI interfaces - * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces - */ -#define ACPI_SYSTEM_XFACE -#define ACPI_EXTERNAL_XFACE -#define ACPI_INTERNAL_XFACE -#define ACPI_INTERNAL_VAR_XFACE - -/* Asm macros */ - -#define ACPI_ASM_MACROS -#define BREAKPOINT3 -#define ACPI_DISABLE_IRQS() disable_intr() -#define ACPI_ENABLE_IRQS() enable_intr() - -#define ACPI_FLUSH_CPU_CACHE() wbinvd() - -/* Section 5.2.10.1: global lock acquire/release functions */ -int acpi_acquire_global_lock(volatile uint32_t *); -int acpi_release_global_lock(volatile uint32_t *); -#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ - (Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \ -} while (0) -#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) do { \ - (Acq) = acpi_release_global_lock(&((GLptr)->GlobalLock)); \ -} while (0) - -void acpi_SetDefaultIntrModel(int model); -void acpi_cpu_c1(void); -void *acpi_map_table(vm_paddr_t pa, const char *sig); -void acpi_unmap_table(void *table); -vm_paddr_t acpi_find_table(const char *sig); - -#endif /* _KERNEL */ - -#endif /* __ACPICA_MACHDEP_H__ */ +#include Modified: head/sys/i386/include/acpica_machdep.h ============================================================================== --- head/sys/i386/include/acpica_machdep.h Tue Aug 13 21:56:16 2013 (r254304) +++ head/sys/i386/include/acpica_machdep.h Tue Aug 13 22:05:10 2013 (r254305) @@ -1,100 +1,6 @@ /*- - * Copyright (c) 2002 Mitsuru IWASAKI - * 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$ + * This file is in the public domain. */ +/* $FreeBSD$ */ -/****************************************************************************** - * - * Name: acpica_machdep.h - arch-specific defines, etc. - * $Revision$ - * - *****************************************************************************/ - -#ifndef __ACPICA_MACHDEP_H__ -#define __ACPICA_MACHDEP_H__ - -#ifdef _KERNEL -/* - * Calling conventions: - * - * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) - * ACPI_EXTERNAL_XFACE - External ACPI interfaces - * ACPI_INTERNAL_XFACE - Internal ACPI interfaces - * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces - */ -#define ACPI_SYSTEM_XFACE -#define ACPI_EXTERNAL_XFACE -#define ACPI_INTERNAL_XFACE -#define ACPI_INTERNAL_VAR_XFACE - -/* Asm macros */ - -#define ACPI_ASM_MACROS -#define BREAKPOINT3 -#define ACPI_DISABLE_IRQS() disable_intr() -#define ACPI_ENABLE_IRQS() enable_intr() - -#define ACPI_FLUSH_CPU_CACHE() wbinvd() - -/* Section 5.2.10.1: global lock acquire/release functions */ -int acpi_acquire_global_lock(volatile uint32_t *); -int acpi_release_global_lock(volatile uint32_t *); -#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ - (Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \ -} while (0) -#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) do { \ - (Acq) = acpi_release_global_lock(&((GLptr)->GlobalLock)); \ -} while (0) - -/*! [Begin] no source code translation - * - * Math helper asm macros - */ -#define asm __asm -#define ACPI_DIV_64_BY_32(n_hi, n_lo, d32, q32, r32) \ - asm("divl %2;" \ - :"=a"(q32), "=d"(r32) \ - :"r"(d32), \ - "0"(n_lo), "1"(n_hi)) - - -#define ACPI_SHIFT_RIGHT_64(n_hi, n_lo) \ - asm("shrl $1,%2;" \ - "rcrl $1,%3;" \ - :"=r"(n_hi), "=r"(n_lo) \ - :"0"(n_hi), "1"(n_lo)) - -/*! [End] no source code translation !*/ - -void acpi_SetDefaultIntrModel(int model); -void acpi_cpu_c1(void); -void *acpi_map_table(vm_paddr_t pa, const char *sig); -void acpi_unmap_table(void *table); -vm_paddr_t acpi_find_table(const char *sig); - -#endif /* _KERNEL */ - -#endif /* __ACPICA_MACHDEP_H__ */ +#include Copied: head/sys/x86/include/acpica_machdep.h (from r254304, head/sys/amd64/include/acpica_machdep.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/x86/include/acpica_machdep.h Tue Aug 13 22:05:10 2013 (r254305, copy of r254304, head/sys/amd64/include/acpica_machdep.h) @@ -0,0 +1,80 @@ +/*- + * Copyright (c) 2002 Mitsuru IWASAKI + * 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$ + */ + +/****************************************************************************** + * + * Name: acpica_machdep.h - arch-specific defines, etc. + * $Revision$ + * + *****************************************************************************/ + +#ifndef __ACPICA_MACHDEP_H__ +#define __ACPICA_MACHDEP_H__ + +#ifdef _KERNEL +/* + * Calling conventions: + * + * ACPI_SYSTEM_XFACE - Interfaces to host OS (handlers, threads) + * ACPI_EXTERNAL_XFACE - External ACPI interfaces + * ACPI_INTERNAL_XFACE - Internal ACPI interfaces + * ACPI_INTERNAL_VAR_XFACE - Internal variable-parameter list interfaces + */ +#define ACPI_SYSTEM_XFACE +#define ACPI_EXTERNAL_XFACE +#define ACPI_INTERNAL_XFACE +#define ACPI_INTERNAL_VAR_XFACE + +/* Asm macros */ + +#define ACPI_ASM_MACROS +#define BREAKPOINT3 +#define ACPI_DISABLE_IRQS() disable_intr() +#define ACPI_ENABLE_IRQS() enable_intr() + +#define ACPI_FLUSH_CPU_CACHE() wbinvd() + +/* Section 5.2.10.1: global lock acquire/release functions */ +int acpi_acquire_global_lock(volatile uint32_t *); +int acpi_release_global_lock(volatile uint32_t *); +#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \ + (Acq) = acpi_acquire_global_lock(&((GLptr)->GlobalLock)); \ +} while (0) +#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) do { \ + (Acq) = acpi_release_global_lock(&((GLptr)->GlobalLock)); \ +} while (0) + +void acpi_SetDefaultIntrModel(int model); +void acpi_cpu_c1(void); +void *acpi_map_table(vm_paddr_t pa, const char *sig); +void acpi_unmap_table(void *table); +vm_paddr_t acpi_find_table(const char *sig); + +#endif /* _KERNEL */ + +#endif /* __ACPICA_MACHDEP_H__ */ From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 22:05:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 33077160; Tue, 13 Aug 2013 22:05:59 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1CDC32952; Tue, 13 Aug 2013 22:05:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DM5xgO092939; Tue, 13 Aug 2013 22:05:59 GMT (envelope-from scottl@svn.freebsd.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DM5pwi092877; Tue, 13 Aug 2013 22:05:51 GMT (envelope-from scottl@svn.freebsd.org) Message-Id: <201308132205.r7DM5pwi092877@svn.freebsd.org> From: Scott Long Date: Tue, 13 Aug 2013 22:05:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254306 - in stable/9/sys: dev/aacraid dev/advansys dev/aic7xxx dev/amr dev/an dev/arcmsr dev/asr dev/ata dev/bktr dev/buslogic dev/dpt dev/e1000 dev/fatm dev/firewire dev/fxp dev/hatm ... X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 22:05:59 -0000 Author: scottl Date: Tue Aug 13 22:05:50 2013 New Revision: 254306 URL: http://svnweb.freebsd.org/changeset/base/254306 Log: Merge r254263: Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI command register. The lazy BAR allocation code in FreeBSD sometimes disables this bit when it detects a range conflict, and will re-enable it on demand when a driver allocates the BAR. Thus, the bit is no longer a reliable indication of capability, and should not be checked. This results in the elimination of a lot of code from drivers, and also gives the opportunity to simplify a lot of drivers to use a helper API to set the busmaster enable bit. This changes fixes some recent reports of disk controllers and their associated drives/enclosures disappearing during boot. Candidate for 9.2 Submitted by: jhb Reviewed by: jfv, marius, adrian, achim Modified: stable/9/sys/dev/aacraid/aacraid_pci.c stable/9/sys/dev/advansys/adw_pci.c stable/9/sys/dev/aic7xxx/ahc_pci.c stable/9/sys/dev/aic7xxx/ahd_pci.c stable/9/sys/dev/amr/amr_pci.c stable/9/sys/dev/an/if_an_pci.c stable/9/sys/dev/arcmsr/arcmsr.c stable/9/sys/dev/asr/asr.c stable/9/sys/dev/ata/ata-pci.c stable/9/sys/dev/bktr/bktr_os.c stable/9/sys/dev/buslogic/bt_pci.c stable/9/sys/dev/dpt/dpt_pci.c stable/9/sys/dev/e1000/if_em.c stable/9/sys/dev/e1000/if_igb.c stable/9/sys/dev/e1000/if_lem.c stable/9/sys/dev/fatm/if_fatm.c stable/9/sys/dev/firewire/fwohci_pci.c stable/9/sys/dev/fxp/if_fxp.c stable/9/sys/dev/hatm/if_hatm.c stable/9/sys/dev/ida/ida_pci.c stable/9/sys/dev/ips/ips_pci.c stable/9/sys/dev/isp/isp_pci.c stable/9/sys/dev/iwn/if_iwn.c stable/9/sys/dev/ixgb/if_ixgb.c stable/9/sys/dev/ixgbe/ixv.c stable/9/sys/dev/mfi/mfi_pci.c stable/9/sys/dev/mlx/mlx_pci.c stable/9/sys/dev/mly/mly.c stable/9/sys/dev/mn/if_mn.c stable/9/sys/dev/mps/mps_pci.c stable/9/sys/dev/mpt/mpt_pci.c stable/9/sys/dev/mwl/if_mwl_pci.c stable/9/sys/dev/mxge/if_mxge.c stable/9/sys/dev/pccbb/pccbb_pci.c stable/9/sys/dev/pst/pst-pci.c stable/9/sys/dev/rp/rp_pci.c stable/9/sys/dev/safe/safe.c stable/9/sys/dev/sound/pci/als4000.c stable/9/sys/dev/sound/pci/aureal.c stable/9/sys/dev/sound/pci/cmi.c stable/9/sys/dev/sound/pci/cs4281.c stable/9/sys/dev/sound/pci/csa.c stable/9/sys/dev/sound/pci/ds1.c stable/9/sys/dev/sound/pci/emu10k1.c stable/9/sys/dev/sound/pci/emu10kx.c stable/9/sys/dev/sound/pci/envy24.c stable/9/sys/dev/sound/pci/envy24ht.c stable/9/sys/dev/sound/pci/es137x.c stable/9/sys/dev/sound/pci/fm801.c stable/9/sys/dev/sound/pci/hdspe.c stable/9/sys/dev/sound/pci/maestro.c stable/9/sys/dev/sound/pci/maestro3.c stable/9/sys/dev/sound/pci/neomagic.c stable/9/sys/dev/sound/pci/solo.c stable/9/sys/dev/sound/pci/t4dwave.c stable/9/sys/dev/sound/pci/via82c686.c stable/9/sys/dev/sound/pci/vibes.c stable/9/sys/dev/stge/if_stge.c stable/9/sys/dev/sym/sym_hipd.c stable/9/sys/dev/tdfx/tdfx_pci.c stable/9/sys/dev/twa/tw_osl_freebsd.c stable/9/sys/dev/tws/tws.c stable/9/sys/dev/ubsec/ubsec.c stable/9/sys/dev/wi/if_wi_pci.c stable/9/sys/pci/ncr.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/dev/e1000/ (props changed) stable/9/sys/dev/isp/ (props changed) stable/9/sys/dev/ixgbe/ (props changed) Modified: stable/9/sys/dev/aacraid/aacraid_pci.c ============================================================================== --- stable/9/sys/dev/aacraid/aacraid_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/aacraid/aacraid_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -169,18 +169,12 @@ aacraid_pci_attach(device_t dev) /* * Verify that the adapter is correctly set up in PCI space. */ - command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); + pci_enable_busmaster(dev); command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); if (!(command & PCIM_CMD_BUSMASTEREN)) { device_printf(sc->aac_dev, "can't enable bus-master feature\n"); goto out; } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(sc->aac_dev, "memory window not available\n"); - goto out; - } /* * Detect the hardware interface version, set up the bus interface Modified: stable/9/sys/dev/advansys/adw_pci.c ============================================================================== --- stable/9/sys/dev/advansys/adw_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/advansys/adw_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -199,14 +199,13 @@ adw_pci_attach(device_t dev) { struct adw_softc *adw; struct adw_pci_identity *entry; - u_int32_t command; + u_int16_t command; struct resource *regs; int regs_type; int regs_id; int error; int zero; - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); entry = adw_find_pci_device(dev); if (entry == NULL) return (ENXIO); @@ -214,14 +213,11 @@ adw_pci_attach(device_t dev) regs_type = 0; regs_id = 0; #ifdef ADW_ALLOW_MEMIO - if ((command & PCIM_CMD_MEMEN) != 0) { - regs_type = SYS_RES_MEMORY; - regs_id = ADW_PCI_MEMBASE; - regs = bus_alloc_resource_any(dev, regs_type, - ®s_id, RF_ACTIVE); - } + regs_type = SYS_RES_MEMORY; + regs_id = ADW_PCI_MEMBASE; + regs = bus_alloc_resource_any(dev, regs_type, ®s_id, RF_ACTIVE); #endif - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = ADW_PCI_IOBASE; regs = bus_alloc_resource_any(dev, regs_type, @@ -296,6 +292,7 @@ adw_pci_attach(device_t dev) * 'control_flag' CONTROL_FLAG_IGNORE_PERR flag to tell the microcode * to ignore DMA parity errors. */ + command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/2); if ((command & PCIM_CMD_PERRESPEN) == 0) adw_lram_write_16(adw, ADW_MC_CONTROL_FLAG, adw_lram_read_16(adw, ADW_MC_CONTROL_FLAG) Modified: stable/9/sys/dev/aic7xxx/ahc_pci.c ============================================================================== --- stable/9/sys/dev/aic7xxx/ahc_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/aic7xxx/ahc_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -139,12 +139,10 @@ int ahc_pci_map_registers(struct ahc_softc *ahc) { struct resource *regs; - u_int command; int regs_type; int regs_id; int allow_memio; - command = aic_pci_read_config(ahc->dev_softc, PCIR_COMMAND, /*bytes*/1); regs = NULL; regs_type = 0; regs_id = 0; @@ -166,7 +164,7 @@ ahc_pci_map_registers(struct ahc_softc * #endif } - if ((allow_memio != 0) && (command & PCIM_CMD_MEMEN) != 0) { + if (allow_memio != 0) { regs_type = SYS_RES_MEMORY; regs_id = AHC_PCI_MEMADDR; @@ -190,16 +188,11 @@ ahc_pci_map_registers(struct ahc_softc * bus_release_resource(ahc->dev_softc, regs_type, regs_id, regs); regs = NULL; - } else { - command &= ~PCIM_CMD_PORTEN; - aic_pci_write_config(ahc->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = AHC_PCI_IOADDR; regs = bus_alloc_resource_any(ahc->dev_softc, regs_type, @@ -217,11 +210,6 @@ ahc_pci_map_registers(struct ahc_softc * bus_release_resource(ahc->dev_softc, regs_type, regs_id, regs); regs = NULL; - } else { - command &= ~PCIM_CMD_MEMEN; - aic_pci_write_config(ahc->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } Modified: stable/9/sys/dev/aic7xxx/ahd_pci.c ============================================================================== --- stable/9/sys/dev/aic7xxx/ahd_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/aic7xxx/ahd_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -143,13 +143,11 @@ ahd_pci_map_registers(struct ahd_softc * { struct resource *regs; struct resource *regs2; - u_int command; int regs_type; int regs_id; int regs_id2; int allow_memio; - command = aic_pci_read_config(ahd->dev_softc, PCIR_COMMAND, /*bytes*/1); regs = NULL; regs2 = NULL; regs_type = 0; @@ -165,8 +163,7 @@ ahd_pci_map_registers(struct ahd_softc * allow_memio = 1; } - if ((command & PCIM_CMD_MEMEN) != 0 - && (ahd->bugs & AHD_PCIX_MMAPIO_BUG) == 0 + if ((ahd->bugs & AHD_PCIX_MMAPIO_BUG) == 0 && allow_memio != 0) { regs_type = SYS_RES_MEMORY; @@ -199,15 +196,10 @@ ahd_pci_map_registers(struct ahd_softc * regs_id, regs); regs = NULL; AHD_CORRECTABLE_ERROR(ahd); - } else { - command &= ~PCIM_CMD_PORTEN; - aic_pci_write_config(ahd->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = AHD_PCI_IOADDR0; regs = bus_alloc_resource_any(ahd->dev_softc, regs_type, @@ -233,9 +225,6 @@ ahd_pci_map_registers(struct ahd_softc * } ahd->tags[1] = rman_get_bustag(regs2); ahd->bshs[1] = rman_get_bushandle(regs2); - command &= ~PCIM_CMD_MEMEN; - aic_pci_write_config(ahd->dev_softc, PCIR_COMMAND, - command, /*bytes*/1); ahd->platform_data->regs_res_type[1] = regs_type; ahd->platform_data->regs_res_id[1] = regs_id2; ahd->platform_data->regs[1] = regs2; Modified: stable/9/sys/dev/amr/amr_pci.c ============================================================================== --- stable/9/sys/dev/amr/amr_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/amr/amr_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -184,7 +184,6 @@ amr_pci_attach(device_t dev) struct amr_softc *sc; struct amr_ident *id; int rid, rtype, error; - u_int32_t command; debug_called(1); @@ -204,24 +203,8 @@ amr_pci_attach(device_t dev) if ((id = amr_find_ident(dev)) == NULL) return (ENXIO); - command = pci_read_config(dev, PCIR_COMMAND, 1); if (id->flags & AMR_ID_QUARTZ) { - /* - * Make sure we are going to be able to talk to this board. - */ - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "memory window not available\n"); - return (ENXIO); - } sc->amr_type |= AMR_TYPE_QUARTZ; - } else { - /* - * Make sure we are going to be able to talk to this board. - */ - if ((command & PCIM_CMD_PORTEN) == 0) { - device_printf(dev, "I/O window not available\n"); - return (ENXIO); - } } if ((amr_force_sg32 == 0) && (id->flags & AMR_ID_DO_SG64) && @@ -231,11 +214,7 @@ amr_pci_attach(device_t dev) } /* force the busmaster enable bit on */ - if (!(command & PCIM_CMD_BUSMASTEREN)) { - device_printf(dev, "busmaster bit not set, enabling\n"); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - } + pci_enable_busmaster(dev); /* * Allocate the PCI register window. Modified: stable/9/sys/dev/an/if_an_pci.c ============================================================================== --- stable/9/sys/dev/an/if_an_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/an/if_an_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -141,7 +141,6 @@ static int an_attach_pci(dev) device_t dev; { - u_int32_t command; struct an_softc *sc; int flags, error = 0; @@ -153,19 +152,6 @@ an_attach_pci(dev) sc->mpi350 = 1; sc->port_rid = PCIR_BAR(0); } else { - /* - * Map control/status registers. - */ - command = pci_read_config(dev, PCIR_COMMAND, 4); - command |= PCIM_CMD_PORTEN; - pci_write_config(dev, PCIR_COMMAND, command, 4); - command = pci_read_config(dev, PCIR_COMMAND, 4); - - if (!(command & PCIM_CMD_PORTEN)) { - device_printf(dev, "failed to enable I/O ports!\n"); - error = ENXIO; - goto fail; - } sc->port_rid = AN_PCI_LOIO; } error = an_alloc_port(dev, sc->port_rid, 1); Modified: stable/9/sys/dev/arcmsr/arcmsr.c ============================================================================== --- stable/9/sys/dev/arcmsr/arcmsr.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/arcmsr/arcmsr.c Tue Aug 13 22:05:50 2013 (r254306) @@ -4102,8 +4102,7 @@ static u_int32_t arcmsr_initialize(devic pci_command |= PCIM_CMD_BUSMASTEREN; pci_command |= PCIM_CMD_PERRESPEN; pci_command |= PCIM_CMD_MWRICEN; - /* Enable Busmaster/Mem */ - pci_command |= PCIM_CMD_MEMEN; + /* Enable Busmaster */ pci_write_config(dev, PCIR_COMMAND, pci_command, 2); switch(acb->adapter_type) { case ACB_ADAPTER_TYPE_A: { Modified: stable/9/sys/dev/asr/asr.c ============================================================================== --- stable/9/sys/dev/asr/asr.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/asr/asr.c Tue Aug 13 22:05:50 2013 (r254306) @@ -2428,9 +2428,7 @@ asr_attach(device_t dev) return(ENXIO); } /* Enable if not formerly enabled */ - pci_write_config(dev, PCIR_COMMAND, - pci_read_config(dev, PCIR_COMMAND, sizeof(char)) | - PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, sizeof(char)); + pci_enable_busmaster(dev); sc->ha_pciBusNum = pci_get_bus(dev); sc->ha_pciDeviceNum = (pci_get_slot(dev) << 3) | pci_get_function(dev); Modified: stable/9/sys/dev/ata/ata-pci.c ============================================================================== --- stable/9/sys/dev/ata/ata-pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/ata/ata-pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -99,11 +99,8 @@ ata_pci_attach(device_t dev) ctlr->dev = dev; /* if needed try to enable busmastering */ + pci_enable_busmaster(dev); cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(cmd & PCIM_CMD_BUSMASTEREN)) { - pci_write_config(dev, PCIR_COMMAND, cmd | PCIM_CMD_BUSMASTEREN, 2); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - } /* if busmastering mode "stuck" use it */ if ((cmd & PCIM_CMD_BUSMASTEREN) == PCIM_CMD_BUSMASTEREN) { Modified: stable/9/sys/dev/bktr/bktr_os.c ============================================================================== --- stable/9/sys/dev/bktr/bktr_os.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/bktr/bktr_os.c Tue Aug 13 22:05:50 2013 (r254306) @@ -318,7 +318,6 @@ bktr_attach( device_t dev ) { u_long latency; u_long fun; - u_long val; unsigned int rev; unsigned int unit; int error = 0; @@ -336,9 +335,7 @@ bktr_attach( device_t dev ) /* * Enable bus mastering and Memory Mapped device */ - val = pci_read_config(dev, PCIR_COMMAND, 4); - val |= (PCIM_CMD_MEMEN|PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, val, 4); + pci_enable_busmaster(dev); /* * Map control/status registers. Modified: stable/9/sys/dev/buslogic/bt_pci.c ============================================================================== --- stable/9/sys/dev/buslogic/bt_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/buslogic/bt_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -57,24 +57,19 @@ __FBSDID("$FreeBSD$"); static int bt_pci_alloc_resources(device_t dev) { - int command, type = 0, rid, zero; + int type = 0, rid, zero; struct resource *regs = 0; struct resource *irq = 0; - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); #if 0 /* XXX Memory Mapped I/O seems to cause problems */ - if (command & PCIM_CMD_MEMEN) { - type = SYS_RES_MEMORY; - rid = BT_PCI_MEMADDR; - regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); - } + type = SYS_RES_MEMORY; + rid = BT_PCI_MEMADDR; + regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); #else - if (!regs && (command & PCIM_CMD_PORTEN)) { - type = SYS_RES_IOPORT; - rid = BT_PCI_IOADDR; - regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); - } + type = SYS_RES_IOPORT; + rid = BT_PCI_IOADDR; + regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); #endif if (!regs) return (ENOMEM); Modified: stable/9/sys/dev/dpt/dpt_pci.c ============================================================================== --- stable/9/sys/dev/dpt/dpt_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/dpt/dpt_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -77,23 +77,17 @@ dpt_pci_attach (device_t dev) dpt_softc_t * dpt; int error = 0; - u_int32_t command; - dpt = device_get_softc(dev); dpt->dev = dev; dpt_alloc(dev); - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); - #ifdef DPT_ALLOW_MMIO - if ((command & PCIM_CMD_MEMEN) != 0) { - dpt->io_rid = DPT_PCI_MEMADDR; - dpt->io_type = SYS_RES_MEMORY; - dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, - &dpt->io_rid, RF_ACTIVE); - } + dpt->io_rid = DPT_PCI_MEMADDR; + dpt->io_type = SYS_RES_MEMORY; + dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, + &dpt->io_rid, RF_ACTIVE); #endif - if (dpt->io_res == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (dpt->io_res == NULL) { dpt->io_rid = DPT_PCI_IOADDR; dpt->io_type = SYS_RES_IOPORT; dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, Modified: stable/9/sys/dev/e1000/if_em.c ============================================================================== --- stable/9/sys/dev/e1000/if_em.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/e1000/if_em.c Tue Aug 13 22:05:50 2013 (r254306) @@ -2442,16 +2442,8 @@ em_identify_hardware(struct adapter *ada device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, "Memory Access and/or Bus Master bits " - "were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: stable/9/sys/dev/e1000/if_igb.c ============================================================================== --- stable/9/sys/dev/e1000/if_igb.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/e1000/if_igb.c Tue Aug 13 22:05:50 2013 (r254306) @@ -2410,16 +2410,8 @@ igb_identify_hardware(struct adapter *ad device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - INIT_DEBUGOUT("Memory Access and/or Bus Master " - "bits were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: stable/9/sys/dev/e1000/if_lem.c ============================================================================== --- stable/9/sys/dev/e1000/if_lem.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/e1000/if_lem.c Tue Aug 13 22:05:50 2013 (r254306) @@ -2119,16 +2119,8 @@ lem_identify_hardware(struct adapter *ad device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, "Memory Access and/or Bus Master bits " - "were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: stable/9/sys/dev/fatm/if_fatm.c ============================================================================== --- stable/9/sys/dev/fatm/if_fatm.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/fatm/if_fatm.c Tue Aug 13 22:05:50 2013 (r254306) @@ -2829,21 +2829,13 @@ fatm_attach(device_t dev) ifp->if_linkmiblen = sizeof(IFP2IFATM(sc->ifp)->mib); /* - * Enable memory and bustmaster + * Enable busmaster */ - cfg = pci_read_config(dev, PCIR_COMMAND, 2); - cfg |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cfg, 2); + pci_enable_busmaster(dev); /* * Map memory */ - cfg = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(cfg & PCIM_CMD_MEMEN)) { - if_printf(ifp, "failed to enable memory mapping\n"); - error = ENXIO; - goto fail; - } sc->memid = 0x10; sc->memres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->memid, RF_ACTIVE); Modified: stable/9/sys/dev/firewire/fwohci_pci.c ============================================================================== --- stable/9/sys/dev/firewire/fwohci_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/firewire/fwohci_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -242,7 +242,7 @@ fwohci_pci_init(device_t self) uint16_t cmd; cmd = pci_read_config(self, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; + cmd |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; #if 1 /* for broken hardware */ cmd &= ~PCIM_CMD_MWRICEN; #endif Modified: stable/9/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/9/sys/dev/fxp/if_fxp.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/fxp/if_fxp.c Tue Aug 13 22:05:50 2013 (r254306) @@ -452,7 +452,6 @@ fxp_attach(device_t dev) * Enable bus mastering. */ pci_enable_busmaster(dev); - val = pci_read_config(dev, PCIR_COMMAND, 2); /* * Figure out which we should try first - memory mapping or i/o mapping? @@ -610,6 +609,7 @@ fxp_attach(device_t dev) * is a valid cacheline size (8 or 16 dwords), then tell * the board to turn on MWI. */ + val = pci_read_config(dev, PCIR_COMMAND, 2); if (val & PCIM_CMD_MWRICEN && pci_read_config(dev, PCIR_CACHELNSZ, 1) != 0) sc->flags |= FXP_FLAG_MWI_ENABLE; Modified: stable/9/sys/dev/hatm/if_hatm.c ============================================================================== --- stable/9/sys/dev/hatm/if_hatm.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/hatm/if_hatm.c Tue Aug 13 22:05:50 2013 (r254306) @@ -1686,7 +1686,7 @@ hatm_attach(device_t dev) * 4.2 BIOS Configuration */ v = pci_read_config(dev, PCIR_COMMAND, 2); - v |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; + v |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; pci_write_config(dev, PCIR_COMMAND, v, 2); /* @@ -1702,12 +1702,6 @@ hatm_attach(device_t dev) /* * Map memory */ - v = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(v & PCIM_CMD_MEMEN)) { - device_printf(dev, "failed to enable memory\n"); - error = ENXIO; - goto failed; - } sc->memid = PCIR_BAR(0); sc->memres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->memid, RF_ACTIVE); Modified: stable/9/sys/dev/ida/ida_pci.c ============================================================================== --- stable/9/sys/dev/ida/ida_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/ida/ida_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -236,19 +236,8 @@ ida_pci_attach(device_t dev) struct ida_board *board = ida_pci_match(dev); u_int32_t id = pci_get_devid(dev); struct ida_softc *ida; - u_int command; int error, rid; - command = pci_read_config(dev, PCIR_COMMAND, 1); - - /* - * it appears that this board only does MEMIO access. - */ - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "Only memory mapped I/O is supported\n"); - return (ENXIO); - } - ida = (struct ida_softc *)device_get_softc(dev); ida->dev = dev; ida->cmd = *board->accessor; Modified: stable/9/sys/dev/ips/ips_pci.c ============================================================================== --- stable/9/sys/dev/ips/ips_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/ips/ips_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -59,7 +59,6 @@ static int ips_pci_probe(device_t dev) static int ips_pci_attach(device_t dev) { - u_int32_t command; ips_softc_t *sc; @@ -95,22 +94,18 @@ static int ips_pci_attach(device_t dev) } else goto error; /* make sure busmastering is on */ - command = pci_read_config(dev, PCIR_COMMAND, 1); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 1); + pci_enable_busmaster(dev); /* seting up io space */ sc->iores = NULL; - if(command & PCIM_CMD_MEMEN){ - PRINTF(10, "trying MEMIO\n"); - if(pci_get_device(dev) == IPS_COPPERHEAD_DEVICE_ID) - sc->rid = PCIR_BAR(1); - else - sc->rid = PCIR_BAR(0); - sc->iotype = SYS_RES_MEMORY; - sc->iores = bus_alloc_resource_any(dev, sc->iotype, - &sc->rid, RF_ACTIVE); - } - if(!sc->iores && command & PCIM_CMD_PORTEN){ + PRINTF(10, "trying MEMIO\n"); + if(pci_get_device(dev) == IPS_COPPERHEAD_DEVICE_ID) + sc->rid = PCIR_BAR(1); + else + sc->rid = PCIR_BAR(0); + sc->iotype = SYS_RES_MEMORY; + sc->iores = bus_alloc_resource_any(dev, sc->iotype, &sc->rid, + RF_ACTIVE); + if(!sc->iores){ PRINTF(10, "trying PORTIO\n"); sc->rid = PCIR_BAR(0); sc->iotype = SYS_RES_IOPORT; Modified: stable/9/sys/dev/isp/isp_pci.c ============================================================================== --- stable/9/sys/dev/isp/isp_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/isp/isp_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -706,13 +706,10 @@ isp_pci_attach(device_t dev) pcs->irq = pcs->regs = NULL; pcs->rgd = pcs->rtp = pcs->iqd = 0; - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if (cmd & m1) { - pcs->rtp = (m1 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; - pcs->rgd = (m1 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; - pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); - } - if (pcs->regs == NULL && (cmd & m2)) { + pcs->rtp = (m1 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; + pcs->rgd = (m1 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; + pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); + if (pcs->regs == NULL) { pcs->rtp = (m2 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; pcs->rgd = (m2 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); @@ -891,6 +888,7 @@ isp_pci_attach(device_t dev) /* * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ + cmd = pci_read_config(dev, PCIR_COMMAND, 2); cmd |= PCIM_CMD_SEREN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_INVEN; if (IS_2300(isp)) { /* per QLogic errata */ cmd &= ~PCIM_CMD_INVEN; Modified: stable/9/sys/dev/iwn/if_iwn.c ============================================================================== --- stable/9/sys/dev/iwn/if_iwn.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/iwn/if_iwn.c Tue Aug 13 22:05:50 2013 (r254306) @@ -455,12 +455,12 @@ iwn_attach(device_t dev) pci_write_config(dev, 0x41, 0, 1); /* Hardware bug workaround. */ - reg = pci_read_config(dev, PCIR_COMMAND, 1); + reg = pci_read_config(dev, PCIR_COMMAND, 2); if (reg & PCIM_CMD_INTxDIS) { DPRINTF(sc, IWN_DEBUG_RESET, "%s: PCIe INTx Disable set\n", __func__); reg &= ~PCIM_CMD_INTxDIS; - pci_write_config(dev, PCIR_COMMAND, reg, 1); + pci_write_config(dev, PCIR_COMMAND, reg, 2); } /* Enable bus-mastering. */ Modified: stable/9/sys/dev/ixgb/if_ixgb.c ============================================================================== --- stable/9/sys/dev/ixgb/if_ixgb.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/ixgb/if_ixgb.c Tue Aug 13 22:05:50 2013 (r254306) @@ -1209,15 +1209,9 @@ ixgb_identify_hardware(struct adapter * device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, - "Memory Access and/or Bus Master bits were not set!\n"); - adapter->hw.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, adapter->hw.pci_cmd_word, 2); - } + /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); adapter->hw.device_id = pci_get_device(dev); Modified: stable/9/sys/dev/ixgbe/ixv.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixv.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/ixgbe/ixv.c Tue Aug 13 22:05:50 2013 (r254306) @@ -1561,14 +1561,8 @@ ixv_identify_hardware(struct adapter *ad ** Make sure BUSMASTER is set, on a VM under ** KVM it may not be and will break things. */ + pci_enable_busmaster(dev); pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (pci_cmd_word & PCIM_CMD_MEMEN))) { - INIT_DEBUGOUT("Memory Access and/or Bus Master " - "bits were not set!\n"); - pci_cmd_word |= (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: stable/9/sys/dev/mfi/mfi_pci.c ============================================================================== --- stable/9/sys/dev/mfi/mfi_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mfi/mfi_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -187,7 +187,6 @@ mfi_pci_attach(device_t dev) { struct mfi_softc *sc; struct mfi_ident *m; - uint32_t command; int count, error; sc = device_get_softc(dev); @@ -196,19 +195,8 @@ mfi_pci_attach(device_t dev) m = mfi_find_ident(dev); sc->mfi_flags = m->flags; - /* Verify that the adapter can be set up in PCI space */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "Can't enable PCI busmaster\n"); - return (ENXIO); - } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "PCI memory window not available\n"); - return (ENXIO); - } + /* Ensure busmastering is enabled */ + pci_enable_busmaster(dev); /* Allocate PCI registers */ if ((sc->mfi_flags & MFI_FLAGS_1064R) || Modified: stable/9/sys/dev/mlx/mlx_pci.c ============================================================================== --- stable/9/sys/dev/mlx/mlx_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mlx/mlx_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -113,21 +113,11 @@ mlx_pci_attach(device_t dev) { struct mlx_softc *sc; int i, error; - u_int32_t command; debug_called(1); - /* - * Make sure we are going to be able to talk to this board. - */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "memory window not available\n"); - return(ENXIO); - } /* force the busmaster enable bit on */ - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); + pci_enable_busmaster(dev); /* * Initialise softc. Modified: stable/9/sys/dev/mly/mly.c ============================================================================== --- stable/9/sys/dev/mly/mly.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mly/mly.c Tue Aug 13 22:05:50 2013 (r254306) @@ -333,7 +333,6 @@ static int mly_pci_attach(struct mly_softc *sc) { int i, error; - u_int32_t command; debug_called(1); @@ -342,21 +341,8 @@ mly_pci_attach(struct mly_softc *sc) /* * Verify that the adapter is correctly set up in PCI space. - * - * XXX we shouldn't do this; the PCI code should. */ - command = pci_read_config(sc->mly_dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(sc->mly_dev, PCIR_COMMAND, command, 2); - command = pci_read_config(sc->mly_dev, PCIR_COMMAND, 2); - if (!(command & PCIM_CMD_BUSMASTEREN)) { - mly_printf(sc, "can't enable busmaster feature\n"); - goto fail; - } - if ((command & PCIM_CMD_MEMEN) == 0) { - mly_printf(sc, "memory window not available\n"); - goto fail; - } + pci_enable_busmaster(sc->mly_dev); /* * Allocate the PCI register window. Modified: stable/9/sys/dev/mn/if_mn.c ============================================================================== --- stable/9/sys/dev/mn/if_mn.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mn/if_mn.c Tue Aug 13 22:05:50 2013 (r254306) @@ -1364,9 +1364,9 @@ mn_attach (device_t self) return(ENXIO); } - u = pci_read_config(self, PCIR_COMMAND, 1); + u = pci_read_config(self, PCIR_COMMAND, 2); printf("%x\n", u); - pci_write_config(self, PCIR_COMMAND, u | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN, 1); + pci_write_config(self, PCIR_COMMAND, u | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN, 2); #if 0 pci_write_config(self, PCIR_COMMAND, 0x02800046, 4); #endif Modified: stable/9/sys/dev/mps/mps_pci.c ============================================================================== --- stable/9/sys/dev/mps/mps_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mps/mps_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -183,7 +183,6 @@ mps_pci_attach(device_t dev) { struct mps_softc *sc; struct mps_ident *m; - uint16_t command; int error; sc = device_get_softc(dev); @@ -193,18 +192,7 @@ mps_pci_attach(device_t dev) sc->mps_flags = m->flags; /* Twiddle basic PCI config bits for a sanity check */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "Cannot enable PCI busmaster\n"); - return (ENXIO); - } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "PCI memory window not available\n"); - return (ENXIO); - } + pci_enable_busmaster(dev); /* Allocate the System Interface Register Set */ sc->mps_regs_rid = PCIR_BAR(1); Modified: stable/9/sys/dev/mpt/mpt_pci.c ============================================================================== --- stable/9/sys/dev/mpt/mpt_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mpt/mpt_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -394,16 +394,11 @@ mpt_pci_attach(device_t dev) /* Print INFO level (if any) if bootverbose is set */ mpt->verbose += (bootverbose != 0)? 1 : 0; } - /* Make sure memory access decoders are enabled */ - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if ((cmd & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "Memory accesses disabled"); - return (ENXIO); - } /* * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ + cmd = pci_read_config(dev, PCIR_COMMAND, 2); cmd |= PCIM_CMD_SERRESPEN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; Modified: stable/9/sys/dev/mwl/if_mwl_pci.c ============================================================================== --- stable/9/sys/dev/mwl/if_mwl_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mwl/if_mwl_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -120,29 +120,6 @@ mwl_pci_probe(device_t dev) return ENXIO; } -static u_int32_t -mwl_pci_setup(device_t dev) -{ - u_int32_t cmd; - - /* - * Enable memory mapping and bus mastering. - */ - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cmd, 4); - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - if ((cmd & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "failed to enable memory mapping\n"); - return 0; - } - if ((cmd & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "failed to enable bus mastering\n"); - return 0; - } - return 1; -} - static int mwl_pci_attach(device_t dev) { @@ -152,11 +129,8 @@ mwl_pci_attach(device_t dev) sc->sc_dev = dev; - /* - * Enable memory mapping and bus mastering. - */ - if (!mwl_pci_setup(dev)) - return 0; + pci_enable_busmaster(dev); + /* * Setup memory-mapping of PCI registers. */ @@ -285,8 +259,7 @@ mwl_pci_resume(device_t dev) { struct mwl_pci_softc *psc = device_get_softc(dev); - if (!mwl_pci_setup(dev)) - return ENXIO; + pci_enable_busmaster(dev); mwl_resume(&psc->sc_sc); Modified: stable/9/sys/dev/mxge/if_mxge.c ============================================================================== --- stable/9/sys/dev/mxge/if_mxge.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/mxge/if_mxge.c Tue Aug 13 22:05:50 2013 (r254306) @@ -3826,7 +3826,7 @@ mxge_setup_cfg_space(mxge_softc_t *sc) { device_t dev = sc->dev; int reg; - uint16_t cmd, lnk, pectl; + uint16_t lnk, pectl; /* find the PCIe link width and set max read request to 4KB*/ if (pci_find_cap(dev, PCIY_EXPRESS, ®) == 0) { @@ -3846,9 +3846,6 @@ mxge_setup_cfg_space(mxge_softc_t *sc) /* Enable DMA and Memory space access */ pci_enable_busmaster(dev); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN; - pci_write_config(dev, PCIR_COMMAND, cmd, 2); } static uint32_t Modified: stable/9/sys/dev/pccbb/pccbb_pci.c ============================================================================== --- stable/9/sys/dev/pccbb/pccbb_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/pccbb/pccbb_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -471,10 +471,7 @@ cbb_chipinit(struct cbb_softc *sc) pci_write_config(sc->dev, PCIR_SUBBUS_2, sc->subbus, 1); /* Enable memory access */ - PCI_MASK_CONFIG(sc->dev, PCIR_COMMAND, - | PCIM_CMD_MEMEN - | PCIM_CMD_PORTEN - | PCIM_CMD_BUSMASTEREN, 2); + pci_enable_busmaster(sc->dev); /* disable Legacy IO */ switch (sc->chipset) { Modified: stable/9/sys/dev/pst/pst-pci.c ============================================================================== --- stable/9/sys/dev/pst/pst-pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/pst/pst-pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -88,9 +88,7 @@ iop_pci_attach(device_t dev) RF_SHAREABLE | RF_ACTIVE); /* now setup the infrastructure to talk to the device */ - pci_write_config(dev, PCIR_COMMAND, - pci_read_config(dev, PCIR_COMMAND, 1) | - PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, 1); + pci_enable_busmaster(dev); sc->ibase = rman_get_virtual(sc->r_mem); sc->reg = (struct i2o_registers *)sc->ibase; Modified: stable/9/sys/dev/rp/rp_pci.c ============================================================================== --- stable/9/sys/dev/rp/rp_pci.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/rp/rp_pci.c Tue Aug 13 22:05:50 2013 (r254306) @@ -151,7 +151,6 @@ rp_pciattach(device_t dev) CONTROLLER_t *ctlp; int unit; int retval; - u_int32_t stcmd; ctlp = device_get_softc(dev); bzero(ctlp, sizeof(*ctlp)); @@ -161,13 +160,6 @@ rp_pciattach(device_t dev) ctlp->aiop2off = rp_pci_aiop2off; ctlp->ctlmask = rp_pci_ctlmask; - /* Wake up the device. */ - stcmd = pci_read_config(dev, PCIR_COMMAND, 4); - if ((stcmd & PCIM_CMD_PORTEN) == 0) { - stcmd |= (PCIM_CMD_PORTEN); - pci_write_config(dev, PCIR_COMMAND, 4, stcmd); - } - /* The IO ports of AIOPs for a PCI controller are continuous. */ ctlp->io_num = 1; ctlp->io_rid = malloc(sizeof(*(ctlp->io_rid)) * ctlp->io_num, M_DEVBUF, M_NOWAIT | M_ZERO); Modified: stable/9/sys/dev/safe/safe.c ============================================================================== --- stable/9/sys/dev/safe/safe.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/safe/safe.c Tue Aug 13 22:05:50 2013 (r254306) @@ -220,28 +220,15 @@ safe_attach(device_t dev) { struct safe_softc *sc = device_get_softc(dev); u_int32_t raddr; - u_int32_t cmd, i, devinfo; + u_int32_t i, devinfo; int rid; bzero(sc, sizeof (*sc)); sc->sc_dev = dev; /* XXX handle power management */ - - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cmd, 4); - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - if (!(cmd & PCIM_CMD_MEMEN)) { - device_printf(dev, "failed to enable memory mapping\n"); - goto bad; - } - - if (!(cmd & PCIM_CMD_BUSMASTEREN)) { - device_printf(dev, "failed to enable bus mastering\n"); - goto bad; - } + pci_enable_busmaster(dev); /* * Setup memory-mapping of PCI registers. Modified: stable/9/sys/dev/sound/pci/als4000.c ============================================================================== --- stable/9/sys/dev/sound/pci/als4000.c Tue Aug 13 22:05:10 2013 (r254305) +++ stable/9/sys/dev/sound/pci/als4000.c Tue Aug 13 22:05:50 2013 (r254306) @@ -806,16 +806,13 @@ static int als_pci_attach(device_t dev) { struct sc_info *sc; - u_int32_t data; char status[SND_STATUSLEN]; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_als4000 softc"); sc->dev = dev; - data = pci_read_config(dev, PCIR_COMMAND, 2); - data |= (PCIM_CMD_PORTEN | PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, data, 2); + pci_enable_busmaster(dev); /* * By default the power to the various components on the * ALS4000 is entirely controlled by the pci powerstate. We *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 22:40:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 711BECA4; Tue, 13 Aug 2013 22:40:44 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5E08B2B64; Tue, 13 Aug 2013 22:40:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DMeiRS006382; Tue, 13 Aug 2013 22:40:44 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DMehSc006378; Tue, 13 Aug 2013 22:40:43 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201308132240.r7DMehSc006378@svn.freebsd.org> From: Jeff Roberson Date: Tue, 13 Aug 2013 22:40:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254307 - in head/sys: kern vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 22:40:44 -0000 Author: jeff Date: Tue Aug 13 22:40:43 2013 New Revision: 254307 URL: http://svnweb.freebsd.org/changeset/base/254307 Log: - Add a statically allocated memguard arena since it is needed very early on. - Pass the appropriate flags to vmem_xalloc() when allocating space for the arena from kmem_arena. Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/subr_vmem.c head/sys/vm/memguard.c head/sys/vm/vm_kern.h Modified: head/sys/kern/subr_vmem.c ============================================================================== --- head/sys/kern/subr_vmem.c Tue Aug 13 22:05:50 2013 (r254306) +++ head/sys/kern/subr_vmem.c Tue Aug 13 22:40:43 2013 (r254307) @@ -57,6 +57,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include "opt_vm.h" + #include #include #include @@ -223,6 +225,11 @@ vmem_t *kmem_arena = &kmem_arena_storage vmem_t *buffer_arena = &buffer_arena_storage; vmem_t *transient_arena = &transient_arena_storage; +#ifdef DEBUG_MEMGUARD +static struct vmem memguard_arena_storage; +vmem_t *memguard_arena = &memguard_arena_storage; +#endif + /* * Fill the vmem's boundary tag cache. We guarantee that boundary tag * allocation will not fail once bt_fill() passes. To do so we cache Modified: head/sys/vm/memguard.c ============================================================================== --- head/sys/vm/memguard.c Tue Aug 13 22:05:50 2013 (r254306) +++ head/sys/vm/memguard.c Tue Aug 13 22:40:43 2013 (r254307) @@ -56,6 +56,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -100,7 +101,6 @@ SYSCTL_PROC(_vm_memguard, OID_AUTO, desc CTLTYPE_STRING | CTLFLAG_RW | CTLFLAG_MPSAFE, 0, 0, memguard_sysctl_desc, "A", "Short description of memory type to monitor"); -static vmem_t *memguard_map = NULL; static vm_offset_t memguard_cursor; static vm_offset_t memguard_base; static vm_size_t memguard_mapsize; @@ -206,8 +206,8 @@ memguard_init(vmem_t *parent) { vm_offset_t base; - vmem_alloc(parent, memguard_mapsize, M_WAITOK, &base); - memguard_map = vmem_create("memguard arena", base, memguard_mapsize, + vmem_alloc(parent, memguard_mapsize, M_BESTFIT | M_WAITOK, &base); + vmem_init(memguard_arena, "memguard arena", base, memguard_mapsize, PAGE_SIZE, 0, M_WAITOK); memguard_cursor = base; memguard_base = base; @@ -311,7 +311,7 @@ memguard_alloc(unsigned long req_size, i * of physical memory whether we allocate or hand off to * uma_large_alloc(), so keep those. */ - if (vmem_size(memguard_map, VMEM_ALLOC) >= memguard_physlimit && + if (vmem_size(memguard_arena, VMEM_ALLOC) >= memguard_physlimit && req_size < PAGE_SIZE) { addr = (vm_offset_t)NULL; memguard_fail_pgs++; @@ -328,8 +328,9 @@ memguard_alloc(unsigned long req_size, i * map, unless vm_map_findspace() is tweaked. */ for (;;) { - if (vmem_xalloc(memguard_map, size_v, 0, 0, 0, memguard_cursor, - VMEM_ADDR_MAX, M_BESTFIT | M_NOWAIT, &addr) == 0) + if (vmem_xalloc(memguard_arena, size_v, 0, 0, 0, + memguard_cursor, VMEM_ADDR_MAX, + M_BESTFIT | M_NOWAIT, &addr) == 0) break; /* * The map has no space. This may be due to @@ -348,7 +349,7 @@ memguard_alloc(unsigned long req_size, i addr += PAGE_SIZE; rv = kmem_back(kmem_object, addr, size_p, flags); if (rv != KERN_SUCCESS) { - vmem_xfree(memguard_map, addr, size_v); + vmem_xfree(memguard_arena, addr, size_v); memguard_fail_pgs++; addr = (vm_offset_t)NULL; goto out; @@ -419,7 +420,7 @@ memguard_free(void *ptr) kmem_unback(kmem_object, addr, size); if (sizev > size) addr -= PAGE_SIZE; - vmem_xfree(memguard_map, addr, sizev); + vmem_xfree(memguard_arena, addr, sizev); if (req_size < PAGE_SIZE) memguard_wasted -= (PAGE_SIZE - req_size); } Modified: head/sys/vm/vm_kern.h ============================================================================== --- head/sys/vm/vm_kern.h Tue Aug 13 22:05:50 2013 (r254306) +++ head/sys/vm/vm_kern.h Tue Aug 13 22:40:43 2013 (r254307) @@ -71,6 +71,7 @@ extern struct vmem *kernel_arena; extern struct vmem *kmem_arena; extern struct vmem *buffer_arena; extern struct vmem *transient_arena; +extern struct vmem *memguard_arena; extern vm_offset_t swapbkva; extern u_long vm_kmem_size; From owner-svn-src-all@FreeBSD.ORG Tue Aug 13 22:41:25 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7063FE75; Tue, 13 Aug 2013 22:41:25 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5E2912B7D; Tue, 13 Aug 2013 22:41:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7DMfPu5007028; Tue, 13 Aug 2013 22:41:25 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7DMfPec007027; Tue, 13 Aug 2013 22:41:25 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201308132241.r7DMfPec007027@svn.freebsd.org> From: Jeff Roberson Date: Tue, 13 Aug 2013 22:41:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254308 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Aug 2013 22:41:25 -0000 Author: jeff Date: Tue Aug 13 22:41:24 2013 New Revision: 254308 URL: http://svnweb.freebsd.org/changeset/base/254308 Log: - Disable quantum caches on the kmem_arena. This can make fragmentation worse on small KVA systems. I had intended to only enable it for debugging. Sponsored by: EMC / Isilon Storage Division Modified: head/sys/kern/kern_malloc.c Modified: head/sys/kern/kern_malloc.c ============================================================================== --- head/sys/kern/kern_malloc.c Tue Aug 13 22:40:43 2013 (r254307) +++ head/sys/kern/kern_malloc.c Tue Aug 13 22:41:24 2013 (r254308) @@ -747,7 +747,7 @@ kmeminit(void) tmp = vm_kmem_size; #endif vmem_init(kmem_arena, "kmem arena", kva_alloc(tmp), tmp, PAGE_SIZE, - PAGE_SIZE * 16, 0); + 0, 0); vmem_set_reclaim(kmem_arena, kmem_reclaim); #ifdef DEBUG_MEMGUARD From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 00:42:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9D7CBB42; Wed, 14 Aug 2013 00:42:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8919821AC; Wed, 14 Aug 2013 00:42:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E0gNu0054557; Wed, 14 Aug 2013 00:42:23 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E0gMtf054550; Wed, 14 Aug 2013 00:42:22 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308140042.r7E0gMtf054550@svn.freebsd.org> From: Mark Johnston Date: Wed, 14 Aug 2013 00:42:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254309 - in head: share/man/man9 sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/dev/dtrace sys/cddl/dev/sdt sys/kern sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 00:42:23 -0000 Author: markj Date: Wed Aug 14 00:42:21 2013 New Revision: 254309 URL: http://svnweb.freebsd.org/changeset/base/254309 Log: Use kld_{load,unload} instead of mod_{load,unload} for the linker file load and unload event handlers added in r254266. Reported by: jhb X-MFC with: r254266 Modified: head/share/man/man9/EVENTHANDLER.9 head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c head/sys/cddl/dev/dtrace/dtrace_load.c head/sys/cddl/dev/dtrace/dtrace_unload.c head/sys/cddl/dev/sdt/sdt.c head/sys/kern/kern_linker.c head/sys/sys/eventhandler.h Modified: head/share/man/man9/EVENTHANDLER.9 ============================================================================== --- head/share/man/man9/EVENTHANDLER.9 Tue Aug 13 22:41:24 2013 (r254308) +++ head/share/man/man9/EVENTHANDLER.9 Wed Aug 14 00:42:21 2013 (r254309) @@ -199,10 +199,10 @@ Callbacks invoked when a new network int Callbacks invoked when a network interface is taken down. .It Vt bpf_track Callbacks invoked when a BPF listener attaches to/detaches from network interface. -.It Vt mod_load -Callbacks invoked after a module has been loaded. -.It Vt mod_unload -Callbacks invoked before a module is about to be unloaded. +.It Vt kld_load +Callbacks invoked after a linker file has been loaded. +.It Vt kld_unload +Callbacks invoked before a linker file is about to be unloaded. These callbacks may be used to return an error and prevent the unload from proceeding. .It Vt power_profile_change Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Tue Aug 13 22:41:24 2013 (r254308) +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Wed Aug 14 00:42:21 2013 (r254309) @@ -241,8 +241,8 @@ int dtrace_in_probe; /* non-zero if exe #if defined(__i386__) || defined(__amd64__) || defined(__mips__) || defined(__powerpc__) uintptr_t dtrace_in_probe_addr; /* Address of invop when already in probe */ #endif -static eventhandler_tag dtrace_modload_tag; -static eventhandler_tag dtrace_modunload_tag; +static eventhandler_tag dtrace_kld_load_tag; +static eventhandler_tag dtrace_kld_unload_tag; #endif /* @@ -15344,14 +15344,14 @@ dtrace_module_unloaded(modctl_t *ctl, in #if !defined(sun) static void -dtrace_mod_load(void *arg __unused, linker_file_t lf) +dtrace_kld_load(void *arg __unused, linker_file_t lf) { dtrace_module_loaded(lf); } static void -dtrace_mod_unload(void *arg __unused, linker_file_t lf, int *error) +dtrace_kld_unload(void *arg __unused, linker_file_t lf, int *error) { if (*error != 0) Modified: head/sys/cddl/dev/dtrace/dtrace_load.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_load.c Tue Aug 13 22:41:24 2013 (r254308) +++ head/sys/cddl/dev/dtrace/dtrace_load.c Wed Aug 14 00:42:21 2013 (r254309) @@ -56,11 +56,11 @@ dtrace_load(void *dummy) /* Hang our hook for exceptions. */ dtrace_invop_init(); - /* Register callbacks for module load and unload events. */ - dtrace_modload_tag = EVENTHANDLER_REGISTER(mod_load, - dtrace_mod_load, NULL, EVENTHANDLER_PRI_ANY); - dtrace_modunload_tag = EVENTHANDLER_REGISTER(mod_unload, - dtrace_mod_unload, NULL, EVENTHANDLER_PRI_ANY); + /* Register callbacks for linker file load and unload events. */ + dtrace_kld_load_tag = EVENTHANDLER_REGISTER(kld_load, + dtrace_kld_load, NULL, EVENTHANDLER_PRI_ANY); + dtrace_kld_unload_tag = EVENTHANDLER_REGISTER(kld_unload, + dtrace_kld_unload, NULL, EVENTHANDLER_PRI_ANY); /* * Initialise the mutexes without 'witness' because the dtrace Modified: head/sys/cddl/dev/dtrace/dtrace_unload.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_unload.c Tue Aug 13 22:41:24 2013 (r254308) +++ head/sys/cddl/dev/dtrace/dtrace_unload.c Wed Aug 14 00:42:21 2013 (r254309) @@ -67,8 +67,8 @@ dtrace_unload() } dtrace_provider = NULL; - EVENTHANDLER_DEREGISTER(mod_load, dtrace_modload_tag); - EVENTHANDLER_DEREGISTER(mod_unload, dtrace_modunload_tag); + EVENTHANDLER_DEREGISTER(kld_load, dtrace_kld_load_tag); + EVENTHANDLER_DEREGISTER(kld_unload, dtrace_kld_unload_tag); if ((state = dtrace_anon_grab()) != NULL) { /* Modified: head/sys/cddl/dev/sdt/sdt.c ============================================================================== --- head/sys/cddl/dev/sdt/sdt.c Tue Aug 13 22:41:24 2013 (r254308) +++ head/sys/cddl/dev/sdt/sdt.c Wed Aug 14 00:42:21 2013 (r254309) @@ -58,8 +58,8 @@ static void sdt_load(void *); static int sdt_unload(void *); static void sdt_create_provider(struct sdt_provider *); static void sdt_create_probe(struct sdt_probe *); -static void sdt_modload(void *, struct linker_file *); -static void sdt_modunload(void *, struct linker_file *, int *); +static void sdt_kld_load(void *, struct linker_file *); +static void sdt_kld_unload(void *, struct linker_file *, int *); static MALLOC_DEFINE(M_SDT, "SDT", "DTrace SDT providers"); @@ -94,8 +94,8 @@ static struct cdev *sdt_cdev; static TAILQ_HEAD(, sdt_provider) sdt_prov_list; -eventhandler_tag modload_tag; -eventhandler_tag modunload_tag; +eventhandler_tag sdt_kld_load_tag; +eventhandler_tag sdt_kld_unload_tag; static void sdt_create_provider(struct sdt_provider *prov) @@ -229,7 +229,7 @@ sdt_destroy(void *arg, dtrace_id_t id, v * and dtrace_register() will try to acquire it again. */ static void -sdt_modload(void *arg __unused, struct linker_file *lf) +sdt_kld_load(void *arg __unused, struct linker_file *lf) { struct sdt_provider **prov, **begin, **end; struct sdt_probe **probe, **p_begin, **p_end; @@ -260,7 +260,7 @@ sdt_modload(void *arg __unused, struct l } static void -sdt_modunload(void *arg __unused, struct linker_file *lf, int *error __unused) +sdt_kld_unload(void *arg __unused, struct linker_file *lf, int *error __unused) { struct sdt_provider *prov, **curr, **begin, **end, *tmp; @@ -268,12 +268,12 @@ sdt_modunload(void *arg __unused, struct /* We already have an error, so don't do anything. */ return; else if (linker_file_lookup_set(lf, "sdt_providers_set", &begin, &end, NULL)) - /* No DTrace providers are declared in this module. */ + /* No DTrace providers are declared in this file. */ return; /* - * Go through all the providers declared in this module and unregister - * any that aren't declared in another loaded module. + * Go through all the providers declared in this linker file and + * unregister any that aren't declared in another loaded file. */ for (curr = begin; curr < end; curr++) { TAILQ_FOREACH_SAFE(prov, &sdt_prov_list, prov_entry, tmp) { @@ -296,7 +296,7 @@ static int sdt_linker_file_cb(linker_file_t lf, void *arg __unused) { - sdt_modload(NULL, lf); + sdt_kld_load(NULL, lf); return (0); } @@ -313,12 +313,12 @@ sdt_load(void *arg __unused) sdt_probe_func = dtrace_probe; - modload_tag = EVENTHANDLER_REGISTER(mod_load, sdt_modload, NULL, - EVENTHANDLER_PRI_ANY); - modunload_tag = EVENTHANDLER_REGISTER(mod_unload, sdt_modunload, NULL, + sdt_kld_load_tag = EVENTHANDLER_REGISTER(kld_load, sdt_kld_load, NULL, EVENTHANDLER_PRI_ANY); + sdt_kld_unload_tag = EVENTHANDLER_REGISTER(kld_unload, sdt_kld_unload, + NULL, EVENTHANDLER_PRI_ANY); - /* Pick up probes from the kernel and already-loaded modules. */ + /* Pick up probes from the kernel and already-loaded linker files. */ linker_file_foreach(sdt_linker_file_cb, NULL); } @@ -327,8 +327,8 @@ sdt_unload(void *arg __unused) { struct sdt_provider *prov, *tmp; - EVENTHANDLER_DEREGISTER(mod_load, modload_tag); - EVENTHANDLER_DEREGISTER(mod_unload, modunload_tag); + EVENTHANDLER_DEREGISTER(kld_load, sdt_kld_load_tag); + EVENTHANDLER_DEREGISTER(kld_unload, sdt_kld_unload_tag); sdt_probe_func = sdt_probe_stub; Modified: head/sys/kern/kern_linker.c ============================================================================== --- head/sys/kern/kern_linker.c Tue Aug 13 22:41:24 2013 (r254308) +++ head/sys/kern/kern_linker.c Wed Aug 14 00:42:21 2013 (r254309) @@ -1046,7 +1046,7 @@ kern_kldload(struct thread *td, const ch if (fileid != NULL) *fileid = lf->id; - EVENTHANDLER_INVOKE(mod_load, lf); + EVENTHANDLER_INVOKE(kld_load, lf); #ifdef HWPMC_HOOKS KLD_DOWNGRADE(); @@ -1103,7 +1103,7 @@ kern_kldunload(struct thread *td, int fi if (lf) { KLD_DPF(FILE, ("kldunload: lf->userrefs=%d\n", lf->userrefs)); - EVENTHANDLER_INVOKE(mod_unload, lf, &error); + EVENTHANDLER_INVOKE(kld_unload, lf, &error); if (error != 0) error = EBUSY; else if (lf->userrefs == 0) { Modified: head/sys/sys/eventhandler.h ============================================================================== --- head/sys/sys/eventhandler.h Tue Aug 13 22:41:24 2013 (r254308) +++ head/sys/sys/eventhandler.h Wed Aug 14 00:42:21 2013 (r254309) @@ -266,11 +266,11 @@ EVENTHANDLER_DECLARE(nmbclusters_change, EVENTHANDLER_DECLARE(nmbufs_change, uma_zone_chfn); EVENTHANDLER_DECLARE(maxsockets_change, uma_zone_chfn); -/* Module load and unload events */ +/* Kernel linker file load and unload events */ struct linker_file; -typedef void (*mod_load_fn)(void *, struct linker_file *); -typedef void (*mod_unload_fn)(void *, struct linker_file *, int *); -EVENTHANDLER_DECLARE(mod_load, mod_load_fn); -EVENTHANDLER_DECLARE(mod_unload, mod_unload_fn); +typedef void (*kld_load_fn)(void *, struct linker_file *); +typedef void (*kld_unload_fn)(void *, struct linker_file *, int *); +EVENTHANDLER_DECLARE(kld_load, kld_load_fn); +EVENTHANDLER_DECLARE(kld_unload, kld_unload_fn); #endif /* SYS_EVENTHANDLER_H */ From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 01:55:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C7F0386D; Wed, 14 Aug 2013 01:55:01 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B430F2549; Wed, 14 Aug 2013 01:55:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E1t1xY025221; Wed, 14 Aug 2013 01:55:01 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E1t1kZ025220; Wed, 14 Aug 2013 01:55:01 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308140155.r7E1t1kZ025220@svn.freebsd.org> From: Mark Johnston Date: Wed, 14 Aug 2013 01:55:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254310 - stable/9/sys/net X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 01:55:01 -0000 Author: markj Date: Wed Aug 14 01:55:01 2013 New Revision: 254310 URL: http://svnweb.freebsd.org/changeset/base/254310 Log: MFC r254020: Add a missing module version declaration to if_tun(4). Modified: stable/9/sys/net/if_tun.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/net/ (props changed) Modified: stable/9/sys/net/if_tun.c ============================================================================== --- stable/9/sys/net/if_tun.c Wed Aug 14 00:42:21 2013 (r254309) +++ stable/9/sys/net/if_tun.c Wed Aug 14 01:55:01 2013 (r254310) @@ -322,6 +322,7 @@ static moduledata_t tun_mod = { }; DECLARE_MODULE(if_tun, tun_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); +MODULE_VERSION(if_tun, 1); static void tunstart(struct ifnet *ifp) From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 01:55:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6E2CC9A3; Wed, 14 Aug 2013 01:55:45 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5B30B2554; Wed, 14 Aug 2013 01:55:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E1tjVd025357; Wed, 14 Aug 2013 01:55:45 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E1tjgI025356; Wed, 14 Aug 2013 01:55:45 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308140155.r7E1tjgI025356@svn.freebsd.org> From: Mark Johnston Date: Wed, 14 Aug 2013 01:55:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r254311 - stable/8/sys/net X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 01:55:45 -0000 Author: markj Date: Wed Aug 14 01:55:44 2013 New Revision: 254311 URL: http://svnweb.freebsd.org/changeset/base/254311 Log: MFC r254020: Add a missing module version declaration to if_tun(4). Modified: stable/8/sys/net/if_tun.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/net/ (props changed) Modified: stable/8/sys/net/if_tun.c ============================================================================== --- stable/8/sys/net/if_tun.c Wed Aug 14 01:55:01 2013 (r254310) +++ stable/8/sys/net/if_tun.c Wed Aug 14 01:55:44 2013 (r254311) @@ -322,6 +322,7 @@ static moduledata_t tun_mod = { }; DECLARE_MODULE(if_tun, tun_mod, SI_SUB_PSEUDO, SI_ORDER_ANY); +MODULE_VERSION(if_tun, 1); static void tunstart(struct ifnet *ifp) From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 02:00:38 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 55586B04; Wed, 14 Aug 2013 02:00:38 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 42C88259A; Wed, 14 Aug 2013 02:00:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E20c1u028213; Wed, 14 Aug 2013 02:00:38 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E20cJb028212; Wed, 14 Aug 2013 02:00:38 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308140200.r7E20cJb028212@svn.freebsd.org> From: Mark Johnston Date: Wed, 14 Aug 2013 02:00:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254312 - stable/9/sys/vm X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 02:00:38 -0000 Author: markj Date: Wed Aug 14 02:00:37 2013 New Revision: 254312 URL: http://svnweb.freebsd.org/changeset/base/254312 Log: MFC r254017: Fill in the description fields for M_FICT_PAGES. Modified: stable/9/sys/vm/vm_phys.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/vm/vm_phys.c ============================================================================== --- stable/9/sys/vm/vm_phys.c Wed Aug 14 01:55:44 2013 (r254311) +++ stable/9/sys/vm/vm_phys.c Wed Aug 14 02:00:37 2013 (r254312) @@ -90,7 +90,7 @@ static struct vm_phys_fictitious_seg { vm_page_t first_page; } vm_phys_fictitious_segs[VM_PHYS_FICTITIOUS_NSEGS]; static struct mtx vm_phys_fictitious_reg_mtx; -MALLOC_DEFINE(M_FICT_PAGES, "", ""); +MALLOC_DEFINE(M_FICT_PAGES, "vm_fictitious", "Fictitious VM pages"); static struct vm_freelist vm_phys_free_queues[VM_RAW_NFREELIST][VM_NFREEPOOL][VM_NFREEORDER]; From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 02:36:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DE93640C; Wed, 14 Aug 2013 02:36:21 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B240D276E; Wed, 14 Aug 2013 02:36:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E2aLOx041014; Wed, 14 Aug 2013 02:36:21 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E2aLg3041009; Wed, 14 Aug 2013 02:36:21 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308140236.r7E2aLg3041009@svn.freebsd.org> From: Mark Johnston Date: Wed, 14 Aug 2013 02:36:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254313 - stable/9/usr.bin/truss X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 02:36:22 -0000 Author: markj Date: Wed Aug 14 02:36:21 2013 New Revision: 254313 URL: http://svnweb.freebsd.org/changeset/base/254313 Log: MFC r253850: Properly print arguments to vfork(2) and rfork(2). Modified: stable/9/usr.bin/truss/syscall.h stable/9/usr.bin/truss/syscalls.c Directory Properties: stable/9/usr.bin/truss/ (props changed) Modified: stable/9/usr.bin/truss/syscall.h ============================================================================== --- stable/9/usr.bin/truss/syscall.h Wed Aug 14 02:00:37 2013 (r254312) +++ stable/9/usr.bin/truss/syscall.h Wed Aug 14 02:36:21 2013 (r254313) @@ -40,7 +40,7 @@ enum Argtype { None = 1, Hex, Octal, Int Fd_set, Sigaction, Fcntl, Mprot, Mmapflags, Whence, Readlinkres, Umtx, Sigset, Sigprocmask, Kevent, Sockdomain, Socktype, Open, Fcntlflag, Rusage, BinString, Shutdown, Resource, Rlimit, Timeval2, - Pathconf }; + Pathconf, Rforkflags }; #define ARG_MASK 0xff #define OUT 0x100 Modified: stable/9/usr.bin/truss/syscalls.c ============================================================================== --- stable/9/usr.bin/truss/syscalls.c Wed Aug 14 02:00:37 2013 (r254312) +++ stable/9/usr.bin/truss/syscalls.c Wed Aug 14 02:36:21 2013 (r254313) @@ -93,6 +93,9 @@ struct syscall syscalls[] = { { .name = "fcntl", .ret_type = 1, .nargs = 3, .args = { { Int, 0 } , { Fcntl, 1 }, { Fcntlflag | OUT, 2 } } }, { .name = "fork", .ret_type = 1, .nargs = 0 }, + { .name = "vfork", .ret_type = 1, .nargs = 0 }, + { .name = "rfork", .ret_type = 1, .nargs = 1, + .args = { { Rforkflags, 0 } } }, { .name = "getegid", .ret_type = 1, .nargs = 0 }, { .name = "geteuid", .ret_type = 1, .nargs = 0 }, { .name = "getgid", .ret_type = 1, .nargs = 0 }, @@ -369,6 +372,11 @@ static struct xlat pathconf_arg[] = { XEND }; +static struct xlat rfork_flags[] = { + X(RFPROC) X(RFNOWAIT) X(RFFDG) X(RFCFDG) X(RFTHREAD) X(RFMEM) + X(RFSIGSHARE) X(RFTSIGZMB) X(RFLINUXTHPN) XEND +}; + #undef X #undef XEND @@ -906,6 +914,9 @@ print_arg(struct syscall_args *sc, unsig case Pathconf: tmp = strdup(xlookup(pathconf_arg, args[sc->offset])); break; + case Rforkflags: + tmp = strdup(xlookup_bits(rfork_flags, args[sc->offset])); + break; case Sockaddr: { struct sockaddr_storage ss; char addr[64]; From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 02:37:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 69F6C541; Wed, 14 Aug 2013 02:37:08 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3D00E2777; Wed, 14 Aug 2013 02:37:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E2b8B2041207; Wed, 14 Aug 2013 02:37:08 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E2b7OG041200; Wed, 14 Aug 2013 02:37:07 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308140237.r7E2b7OG041200@svn.freebsd.org> From: Mark Johnston Date: Wed, 14 Aug 2013 02:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r254314 - stable/8/usr.bin/truss X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 02:37:08 -0000 Author: markj Date: Wed Aug 14 02:37:07 2013 New Revision: 254314 URL: http://svnweb.freebsd.org/changeset/base/254314 Log: MFC r253850: Properly print arguments to vfork(2) and rfork(2). Modified: stable/8/usr.bin/truss/syscall.h stable/8/usr.bin/truss/syscalls.c Directory Properties: stable/8/usr.bin/truss/ (props changed) Modified: stable/8/usr.bin/truss/syscall.h ============================================================================== --- stable/8/usr.bin/truss/syscall.h Wed Aug 14 02:36:21 2013 (r254313) +++ stable/8/usr.bin/truss/syscall.h Wed Aug 14 02:37:07 2013 (r254314) @@ -40,7 +40,7 @@ enum Argtype { None = 1, Hex, Octal, Int Fd_set, Sigaction, Fcntl, Mprot, Mmapflags, Whence, Readlinkres, Umtx, Sigset, Sigprocmask, Kevent, Sockdomain, Socktype, Open, Fcntlflag, Rusage, BinString, Shutdown, Resource, Rlimit, Timeval2, - Pathconf }; + Pathconf, Rforkflags }; #define ARG_MASK 0xff #define OUT 0x100 Modified: stable/8/usr.bin/truss/syscalls.c ============================================================================== --- stable/8/usr.bin/truss/syscalls.c Wed Aug 14 02:36:21 2013 (r254313) +++ stable/8/usr.bin/truss/syscalls.c Wed Aug 14 02:37:07 2013 (r254314) @@ -93,6 +93,9 @@ struct syscall syscalls[] = { { .name = "fcntl", .ret_type = 1, .nargs = 3, .args = { { Int, 0 } , { Fcntl, 1 }, { Fcntlflag | OUT, 2 } } }, { .name = "fork", .ret_type = 1, .nargs = 0 }, + { .name = "vfork", .ret_type = 1, .nargs = 0 }, + { .name = "rfork", .ret_type = 1, .nargs = 1, + .args = { { Rforkflags, 0 } } }, { .name = "getegid", .ret_type = 1, .nargs = 0 }, { .name = "geteuid", .ret_type = 1, .nargs = 0 }, { .name = "getgid", .ret_type = 1, .nargs = 0 }, @@ -367,6 +370,11 @@ static struct xlat pathconf_arg[] = { XEND }; +static struct xlat rfork_flags[] = { + X(RFPROC) X(RFNOWAIT) X(RFFDG) X(RFCFDG) X(RFTHREAD) X(RFMEM) + X(RFSIGSHARE) X(RFTSIGZMB) X(RFLINUXTHPN) XEND +}; + #undef X #undef XEND @@ -882,6 +890,9 @@ print_arg(struct syscall_args *sc, unsig case Pathconf: tmp = strdup(xlookup(pathconf_arg, args[sc->offset])); break; + case Rforkflags: + tmp = strdup(xlookup_bits(rfork_flags, args[sc->offset])); + break; case Sockaddr: { struct sockaddr_storage ss; char addr[64]; From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 04:24:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 884FEB98; Wed, 14 Aug 2013 04:24:27 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 745A12CA5; Wed, 14 Aug 2013 04:24:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E4ORbi083065; Wed, 14 Aug 2013 04:24:27 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E4OQ1c083056; Wed, 14 Aug 2013 04:24:26 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201308140424.r7E4OQ1c083056@svn.freebsd.org> From: Rui Paulo Date: Wed, 14 Aug 2013 04:24:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254315 - head/sys/net80211 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 04:24:27 -0000 Author: rpaulo Date: Wed Aug 14 04:24:25 2013 New Revision: 254315 URL: http://svnweb.freebsd.org/changeset/base/254315 Log: Replace the homegrown implementation of nitems() with calls to nitems() (param.h). Operating systems that don't have nitems() can easily define it on their own net80211 OS-specific header file. Discussed with: adrian Modified: head/sys/net80211/ieee80211.c head/sys/net80211/ieee80211_action.c head/sys/net80211/ieee80211_node.c head/sys/net80211/ieee80211_phy.c head/sys/net80211/ieee80211_proto.c head/sys/net80211/ieee80211_scan_sta.c Modified: head/sys/net80211/ieee80211.c ============================================================================== --- head/sys/net80211/ieee80211.c Wed Aug 14 02:37:07 2013 (r254314) +++ head/sys/net80211/ieee80211.c Wed Aug 14 04:24:25 2013 (r254315) @@ -1518,7 +1518,6 @@ findmedia(const struct ratemedia rates[] int ieee80211_rate2media(struct ieee80211com *ic, int rate, enum ieee80211_phymode mode) { -#define N(a) (sizeof(a) / sizeof(a[0])) static const struct ratemedia rates[] = { { 2 | IFM_IEEE80211_FH, IFM_IEEE80211_FH1 }, { 4 | IFM_IEEE80211_FH, IFM_IEEE80211_FH2 }, @@ -1639,7 +1638,7 @@ ieee80211_rate2media(struct ieee80211com if (mode == IEEE80211_MODE_11NA) { if (rate & IEEE80211_RATE_MCS) { rate &= ~IEEE80211_RATE_MCS; - m = findmedia(htrates, N(htrates), rate); + m = findmedia(htrates, nitems(htrates), rate); if (m != IFM_AUTO) return m | IFM_IEEE80211_11NA; } @@ -1647,7 +1646,7 @@ ieee80211_rate2media(struct ieee80211com /* NB: 12 is ambiguous, it will be treated as an MCS */ if (rate & IEEE80211_RATE_MCS) { rate &= ~IEEE80211_RATE_MCS; - m = findmedia(htrates, N(htrates), rate); + m = findmedia(htrates, nitems(htrates), rate); if (m != IFM_AUTO) return m | IFM_IEEE80211_11NG; } @@ -1660,31 +1659,32 @@ ieee80211_rate2media(struct ieee80211com case IEEE80211_MODE_11NA: case IEEE80211_MODE_TURBO_A: case IEEE80211_MODE_STURBO_A: - return findmedia(rates, N(rates), rate | IFM_IEEE80211_11A); + return findmedia(rates, nitems(rates), + rate | IFM_IEEE80211_11A); case IEEE80211_MODE_11B: - return findmedia(rates, N(rates), rate | IFM_IEEE80211_11B); + return findmedia(rates, nitems(rates), + rate | IFM_IEEE80211_11B); case IEEE80211_MODE_FH: - return findmedia(rates, N(rates), rate | IFM_IEEE80211_FH); + return findmedia(rates, nitems(rates), + rate | IFM_IEEE80211_FH); case IEEE80211_MODE_AUTO: /* NB: ic may be NULL for some drivers */ if (ic != NULL && ic->ic_phytype == IEEE80211_T_FH) - return findmedia(rates, N(rates), + return findmedia(rates, nitems(rates), rate | IFM_IEEE80211_FH); /* NB: hack, 11g matches both 11b+11a rates */ /* fall thru... */ case IEEE80211_MODE_11G: case IEEE80211_MODE_11NG: case IEEE80211_MODE_TURBO_G: - return findmedia(rates, N(rates), rate | IFM_IEEE80211_11G); + return findmedia(rates, nitems(rates), rate | IFM_IEEE80211_11G); } return IFM_AUTO; -#undef N } int ieee80211_media2rate(int mword) { -#define N(a) (sizeof(a) / sizeof(a[0])) static const int ieeerates[] = { -1, /* IFM_AUTO */ 0, /* IFM_MANUAL */ @@ -1712,9 +1712,8 @@ ieee80211_media2rate(int mword) 54, /* IFM_IEEE80211_OFDM27 */ -1, /* IFM_IEEE80211_MCS */ }; - return IFM_SUBTYPE(mword) < N(ieeerates) ? + return IFM_SUBTYPE(mword) < nitems(ieeerates) ? ieeerates[IFM_SUBTYPE(mword)] : 0; -#undef N } /* Modified: head/sys/net80211/ieee80211_action.c ============================================================================== --- head/sys/net80211/ieee80211_action.c Wed Aug 14 02:37:07 2013 (r254314) +++ head/sys/net80211/ieee80211_action.c Wed Aug 14 04:24:25 2013 (r254315) @@ -80,37 +80,35 @@ static ieee80211_send_action_func *vendo int ieee80211_send_action_register(int cat, int act, ieee80211_send_action_func *f) { -#define N(a) (sizeof(a) / sizeof(a[0])) switch (cat) { case IEEE80211_ACTION_CAT_BA: - if (act >= N(ba_send_action)) + if (act >= nitems(ba_send_action)) break; ba_send_action[act] = f; return 0; case IEEE80211_ACTION_CAT_HT: - if (act >= N(ht_send_action)) + if (act >= nitems(ht_send_action)) break; ht_send_action[act] = f; return 0; case IEEE80211_ACTION_CAT_SELF_PROT: - if (act >= N(meshpl_send_action)) + if (act >= nitems(meshpl_send_action)) break; meshpl_send_action[act] = f; return 0; case IEEE80211_ACTION_CAT_MESH: - if (act >= N(meshaction_send_action)) + if (act >= nitems(meshaction_send_action)) break; meshaction_send_action[act] = f; return 0; break; case IEEE80211_ACTION_CAT_VENDOR: - if (act >= N(vendor_send_action)) + if (act >= nitems(vendor_send_action)) break; vendor_send_action[act] = f; return 0; } return EINVAL; -#undef N } void @@ -122,33 +120,31 @@ ieee80211_send_action_unregister(int cat int ieee80211_send_action(struct ieee80211_node *ni, int cat, int act, void *sa) { -#define N(a) (sizeof(a) / sizeof(a[0])) ieee80211_send_action_func *f = send_inval; switch (cat) { case IEEE80211_ACTION_CAT_BA: - if (act < N(ba_send_action)) + if (act < nitems(ba_send_action)) f = ba_send_action[act]; break; case IEEE80211_ACTION_CAT_HT: - if (act < N(ht_send_action)) + if (act < nitems(ht_send_action)) f = ht_send_action[act]; break; case IEEE80211_ACTION_CAT_SELF_PROT: - if (act < N(meshpl_send_action)) + if (act < nitems(meshpl_send_action)) f = meshpl_send_action[act]; break; case IEEE80211_ACTION_CAT_MESH: - if (act < N(meshaction_send_action)) + if (act < nitems(meshaction_send_action)) f = meshaction_send_action[act]; break; case IEEE80211_ACTION_CAT_VENDOR: - if (act < N(vendor_send_action)) + if (act < nitems(vendor_send_action)) f = vendor_send_action[act]; break; } return f(ni, cat, act, sa); -#undef N } static int @@ -183,36 +179,34 @@ static ieee80211_recv_action_func *vendo int ieee80211_recv_action_register(int cat, int act, ieee80211_recv_action_func *f) { -#define N(a) (sizeof(a) / sizeof(a[0])) switch (cat) { case IEEE80211_ACTION_CAT_BA: - if (act >= N(ba_recv_action)) + if (act >= nitems(ba_recv_action)) break; ba_recv_action[act] = f; return 0; case IEEE80211_ACTION_CAT_HT: - if (act >= N(ht_recv_action)) + if (act >= nitems(ht_recv_action)) break; ht_recv_action[act] = f; return 0; case IEEE80211_ACTION_CAT_SELF_PROT: - if (act >= N(meshpl_recv_action)) + if (act >= nitems(meshpl_recv_action)) break; meshpl_recv_action[act] = f; return 0; case IEEE80211_ACTION_CAT_MESH: - if (act >= N(meshaction_recv_action)) + if (act >= nitems(meshaction_recv_action)) break; meshaction_recv_action[act] = f; return 0; case IEEE80211_ACTION_CAT_VENDOR: - if (act >= N(vendor_recv_action)) + if (act >= nitems(vendor_recv_action)) break; vendor_recv_action[act] = f; return 0; } return EINVAL; -#undef N } void @@ -226,7 +220,6 @@ ieee80211_recv_action(struct ieee80211_n const struct ieee80211_frame *wh, const uint8_t *frm, const uint8_t *efrm) { -#define N(a) (sizeof(a) / sizeof(a[0])) ieee80211_recv_action_func *f = recv_inval; struct ieee80211vap *vap = ni->ni_vap; const struct ieee80211_action *ia = @@ -234,15 +227,15 @@ ieee80211_recv_action(struct ieee80211_n switch (ia->ia_category) { case IEEE80211_ACTION_CAT_BA: - if (ia->ia_action < N(ba_recv_action)) + if (ia->ia_action < nitems(ba_recv_action)) f = ba_recv_action[ia->ia_action]; break; case IEEE80211_ACTION_CAT_HT: - if (ia->ia_action < N(ht_recv_action)) + if (ia->ia_action < nitems(ht_recv_action)) f = ht_recv_action[ia->ia_action]; break; case IEEE80211_ACTION_CAT_SELF_PROT: - if (ia->ia_action < N(meshpl_recv_action)) + if (ia->ia_action < nitems(meshpl_recv_action)) f = meshpl_recv_action[ia->ia_action]; break; case IEEE80211_ACTION_CAT_MESH: @@ -255,14 +248,13 @@ ieee80211_recv_action(struct ieee80211_n vap->iv_stats.is_mesh_nolink++; break; } - if (ia->ia_action < N(meshaction_recv_action)) + if (ia->ia_action < nitems(meshaction_recv_action)) f = meshaction_recv_action[ia->ia_action]; break; case IEEE80211_ACTION_CAT_VENDOR: - if (ia->ia_action < N(vendor_recv_action)) + if (ia->ia_action < nitems(vendor_recv_action)) f = vendor_recv_action[ia->ia_action]; break; } return f(ni, wh, frm, efrm); -#undef N } Modified: head/sys/net80211/ieee80211_node.c ============================================================================== --- head/sys/net80211/ieee80211_node.c Wed Aug 14 02:37:07 2013 (r254314) +++ head/sys/net80211/ieee80211_node.c Wed Aug 14 04:24:25 2013 (r254315) @@ -985,7 +985,6 @@ ieee80211_ies_expand(struct ieee80211_ie static void node_cleanup(struct ieee80211_node *ni) { -#define N(a) (sizeof(a)/sizeof(a[0])) struct ieee80211vap *vap = ni->ni_vap; struct ieee80211com *ic = ni->ni_ic; int i; @@ -1052,7 +1051,7 @@ node_cleanup(struct ieee80211_node *ni) * * XXX does this leave us open to inheriting old state? */ - for (i = 0; i < N(ni->ni_rxfrag); i++) + for (i = 0; i < nitems(ni->ni_rxfrag); i++) if (ni->ni_rxfrag[i] != NULL) { m_freem(ni->ni_rxfrag[i]); ni->ni_rxfrag[i] = NULL; @@ -1061,7 +1060,6 @@ node_cleanup(struct ieee80211_node *ni) * Must be careful here to remove any key map entry w/o a LOR. */ ieee80211_node_delucastkey(ni); -#undef N } static void Modified: head/sys/net80211/ieee80211_phy.c ============================================================================== --- head/sys/net80211/ieee80211_phy.c Wed Aug 14 02:37:07 2013 (r254314) +++ head/sys/net80211/ieee80211_phy.c Wed Aug 14 04:24:25 2013 (r254315) @@ -294,13 +294,12 @@ static struct ieee80211_rate_table ieee8 static void ieee80211_setup_ratetable(struct ieee80211_rate_table *rt) { -#define N(a) (sizeof(a)/sizeof(a[0])) #define WLAN_CTRL_FRAME_SIZE \ (sizeof(struct ieee80211_frame_ack) + IEEE80211_CRC_LEN) int i; - for (i = 0; i < N(rt->rateCodeToIndex); i++) + for (i = 0; i < nitems(rt->rateCodeToIndex); i++) rt->rateCodeToIndex[i] = (uint8_t) -1; for (i = 0; i < rt->rateCount; i++) { uint8_t code = rt->info[i].dot11Rate; @@ -341,14 +340,12 @@ ieee80211_setup_ratetable(struct ieee802 } #undef WLAN_CTRL_FRAME_SIZE -#undef N } /* Setup all rate tables */ static void ieee80211_phy_init(void) { -#define N(arr) (int)(sizeof(arr) / sizeof(arr[0])) static struct ieee80211_rate_table * const ratetables[] = { &ieee80211_half_table, &ieee80211_quarter_table, @@ -362,10 +359,9 @@ ieee80211_phy_init(void) }; int i; - for (i = 0; i < N(ratetables); ++i) + for (i = 0; i < nitems(ratetables); ++i) ieee80211_setup_ratetable(ratetables[i]); -#undef N } SYSINIT(wlan_phy, SI_SUB_DRIVERS, SI_ORDER_FIRST, ieee80211_phy_init, NULL); Modified: head/sys/net80211/ieee80211_proto.c ============================================================================== --- head/sys/net80211/ieee80211_proto.c Wed Aug 14 02:37:07 2013 (r254314) +++ head/sys/net80211/ieee80211_proto.c Wed Aug 14 04:24:25 2013 (r254315) @@ -662,13 +662,12 @@ ieee80211_set_shortslottime(struct ieee8 int ieee80211_iserp_rateset(const struct ieee80211_rateset *rs) { -#define N(a) (sizeof(a) / sizeof(a[0])) static const int rates[] = { 2, 4, 11, 22, 12, 24, 48 }; int i, j; - if (rs->rs_nrates < N(rates)) + if (rs->rs_nrates < nitems(rates)) return 0; - for (i = 0; i < N(rates); i++) { + for (i = 0; i < nitems(rates); i++) { for (j = 0; j < rs->rs_nrates; j++) { int r = rs->rs_rates[j] & IEEE80211_RATE_VAL; if (rates[i] == r) @@ -681,7 +680,6 @@ ieee80211_iserp_rateset(const struct iee ; } return 1; -#undef N } /* Modified: head/sys/net80211/ieee80211_scan_sta.c ============================================================================== --- head/sys/net80211/ieee80211_scan_sta.c Wed Aug 14 02:37:07 2013 (r254314) +++ head/sys/net80211/ieee80211_scan_sta.c Wed Aug 14 04:24:25 2013 (r254315) @@ -450,13 +450,12 @@ add_channels(struct ieee80211vap *vap, struct ieee80211_scan_state *ss, enum ieee80211_phymode mode, const uint16_t freq[], int nfreq) { -#define N(a) (sizeof(a) / sizeof(a[0])) struct ieee80211com *ic = vap->iv_ic; struct ieee80211_channel *c, *cg; u_int modeflags; int i; - KASSERT(mode < N(chanflags), ("Unexpected mode %u", mode)); + KASSERT(mode < nitems(chanflags), ("Unexpected mode %u", mode)); modeflags = chanflags[mode]; for (i = 0; i < nfreq; i++) { if (ss->ss_last >= IEEE80211_SCAN_MAX) @@ -476,7 +475,6 @@ add_channels(struct ieee80211vap *vap, } ss->ss_chans[ss->ss_last++] = c; } -#undef N } struct scanlist { From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 06:06:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1AFB25AE; Wed, 14 Aug 2013 06:06:40 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 05CA920E4; Wed, 14 Aug 2013 06:06:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E66d8v020114; Wed, 14 Aug 2013 06:06:39 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E66dh7020113; Wed, 14 Aug 2013 06:06:39 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308140606.r7E66dh7020113@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 06:06:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254316 - releng/9.2/etc/namedb X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 06:06:40 -0000 Author: erwin Date: Wed Aug 14 06:06:39 2013 New Revision: 254316 URL: http://svnweb.freebsd.org/changeset/base/254316 Log: MFC 254132, 254270: Add empty zones for Shared Address Space (RFC 6598) Approved by: re (glebius), delphij (mentor) Sponsored by: DK Hostmaster A/S Modified: releng/9.2/etc/namedb/named.conf Directory Properties: releng/9.2/etc/ (props changed) Modified: releng/9.2/etc/namedb/named.conf ============================================================================== --- releng/9.2/etc/namedb/named.conf Wed Aug 14 04:24:25 2013 (r254315) +++ releng/9.2/etc/namedb/named.conf Wed Aug 14 06:06:39 2013 (r254316) @@ -153,6 +153,72 @@ zone "30.172.in-addr.arpa" { type master zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +// Shared Address Space (RFC 6598) +zone "64.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "65.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "66.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "67.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "68.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "69.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "70.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "71.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "72.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "73.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "74.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "75.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "76.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "77.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "78.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "79.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "80.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "81.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "82.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "83.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "84.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "85.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "86.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "87.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "88.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "89.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "90.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "91.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "92.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "93.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "94.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "95.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "96.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "97.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "98.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "99.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "100.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "101.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "102.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "103.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "104.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "105.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "106.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "107.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "108.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "109.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "110.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "111.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "112.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "113.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "114.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "115.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "116.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "117.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "118.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "119.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "120.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "121.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "122.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "123.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "124.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "125.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "126.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; +zone "127.100.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; + // Link-local/APIPA (RFCs 3927, 5735 and 6303) zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }; From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 07:12:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 99DACF5E; Wed, 14 Aug 2013 07:12:01 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from tensor.andric.com (unknown [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5F85123AB; Wed, 14 Aug 2013 07:12:01 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::64a4:45e2:b359:2420] (unknown [IPv6:2001:7b8:3a7:0:64a4:45e2:b359:2420]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id D0C2D5C43; Wed, 14 Aug 2013 09:11:51 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r254286 - head/sys/fs/ext2fs From: Dimitry Andric In-Reply-To: <201308131839.r7DIdaLD037277@svn.freebsd.org> Date: Wed, 14 Aug 2013 09:11:50 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <9B5BBD34-F953-40BF-8C10-0EF466ED3350@FreeBSD.org> References: <201308131839.r7DIdaLD037277@svn.freebsd.org> To: Pedro F. Giffuni X-Mailer: Apple Mail (2.1508) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 07:12:01 -0000 On Aug 13, 2013, at 20:39, Pedro F. Giffuni wrote: > Author: pfg > Date: Tue Aug 13 18:39:36 2013 > New Revision: 254286 > URL: http://svnweb.freebsd.org/changeset/base/254286 >=20 > Log: > ext2fs: update format specifiers for ext4 type. >=20 > Reported by: Sam Fourman Jr. > MFC after: 3 weeks >=20 > Modified: > head/sys/fs/ext2fs/ext2_subr.c >=20 > Modified: head/sys/fs/ext2fs/ext2_subr.c > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D > --- head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 18:14:53 2013 = (r254285) > +++ head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 18:39:36 2013 = (r254286) > @@ -150,7 +150,7 @@ ext2_checkoverlap(struct buf *bp, struct > ep->b_blkno + btodb(ep->b_bcount) <=3D start) > continue; > vprint("Disk overlap", vp); > - (void)printf("\tstart %d, end %d overlap start %lld, end = %ld\n", > + (void)printf("\tstart %ld, end %ld overlap start %lld, = end %ld\n", > start, last, (long long)ep->b_blkno, > (long)(ep->b_blkno + btodb(ep->b_bcount) - 1)); > panic("Disk buffer overlap"); This still fails on arches where int64_t is aliased to long long (basically, the 32-bit arches). Since using PRId64 is apparently frowned upon, the easiest solution is to cast the 'start' and 'last' variables to long long, and print them using %lld. -Dimitry From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 07:14:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 536E814C for ; Wed, 14 Aug 2013 07:14:37 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-lb0-f176.google.com (mail-lb0-f176.google.com [209.85.217.176]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CC8D723C4 for ; Wed, 14 Aug 2013 07:14:36 +0000 (UTC) Received: by mail-lb0-f176.google.com with SMTP id w10so6420250lbi.7 for ; Wed, 14 Aug 2013 00:14:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=RlapbIItV7lklYkIM5hY3b2KIDxFw2+PZsfISGUSAYI=; b=FOt2tgg59AgVOOCI1z/CBMT1GQgxt8nwvnKctHg3AQWdcMTXYr4eSNoNtwBtnbZRHy 0WudN3jMRIFWL5sVl7SMvLj2SbeTCOPTDWfEzVmJWK2urOtoYIBUJS7lybUSI3o+A7k7 tqygl0jpMvOX/6NMGgbNPlJnuZTxuO5tzOtJU0Rl+OWMpfHXhPZM9Rgxu7Y6gPZ3iU0z p33MC7iatiFdvuHFSBozmGAHZ8vWCGVyQe7xxBHiS60h1d4zgJCk3Yp+exLtVyQYFZCy Uor/iOiVoEotASBsvK4WPivnhpnttnPcCxFLXt8kNso/c/Bn8vIdksgIAhMf7O2Vf5Ze MbKQ== X-Gm-Message-State: ALoCoQkJPWLmKPfCVbz5jTXuypIy+9tpUU4BLFhaCG7xgxdU9dmbVUy/jeX9DOaG11tocFOf+zwG X-Received: by 10.112.172.137 with SMTP id bc9mr1452173lbc.21.1376464469116; Wed, 14 Aug 2013 00:14:29 -0700 (PDT) MIME-Version: 1.0 Sender: juli@clockworksquid.com Received: by 10.152.23.101 with HTTP; Wed, 14 Aug 2013 00:14:09 -0700 (PDT) In-Reply-To: <9B5BBD34-F953-40BF-8C10-0EF466ED3350@FreeBSD.org> References: <201308131839.r7DIdaLD037277@svn.freebsd.org> <9B5BBD34-F953-40BF-8C10-0EF466ED3350@FreeBSD.org> From: Juli Mallett Date: Wed, 14 Aug 2013 00:14:09 -0700 X-Google-Sender-Auth: kQpMfV5V-TA1TLBMDhi2B9pjuHU Message-ID: Subject: Re: svn commit: r254286 - head/sys/fs/ext2fs To: Dimitry Andric Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, "Pedro F. Giffuni" , src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 07:14:37 -0000 On Wed, Aug 14, 2013 at 12:11 AM, Dimitry Andric wrote: > This still fails on arches where int64_t is aliased to long long > (basically, the 32-bit arches). Since using PRId64 is apparently > frowned upon, the easiest solution is to cast the 'start' and 'last' > variables to long long, and print them using %lld. > That can't be the easiest solution, it's not even that easy :) It seems like intmax_t or uintmax_t as appropriate and cast to %jd or %ju respectively would be better. Juli. From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 07:25:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E2D08428; Wed, 14 Aug 2013 07:25:18 +0000 (UTC) (envelope-from dim@freebsd.org) Received: from tensor.andric.com (unknown [IPv6:2001:7b8:3a7:1:2d0:b7ff:fea0:8c26]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A5CA92452; Wed, 14 Aug 2013 07:25:18 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7::64a4:45e2:b359:2420] (unknown [IPv6:2001:7b8:3a7:0:64a4:45e2:b359:2420]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id AC38F5C43; Wed, 14 Aug 2013 09:25:15 +0200 (CEST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r254286 - head/sys/fs/ext2fs From: Dimitry Andric In-Reply-To: Date: Wed, 14 Aug 2013 09:25:15 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <201308131839.r7DIdaLD037277@svn.freebsd.org> <9B5BBD34-F953-40BF-8C10-0EF466ED3350@FreeBSD.org> To: Juli Mallett X-Mailer: Apple Mail (2.1508) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, "Pedro F. Giffuni" , src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 07:25:19 -0000 On Aug 14, 2013, at 09:14, Juli Mallett wrote: > On Wed, Aug 14, 2013 at 12:11 AM, Dimitry Andric = wrote: > This still fails on arches where int64_t is aliased to long long > (basically, the 32-bit arches). Since using PRId64 is apparently > frowned upon, the easiest solution is to cast the 'start' and 'last' > variables to long long, and print them using %lld. >=20 > That can't be the easiest solution, it's not even that easy :) It = seems like intmax_t or uintmax_t as appropriate and cast to %jd or %ju = respectively would be better. I was simply looking at the surrounding code, and that already casts several items to long long. So I wanted to keep the style there. :-) -Dimitry From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 08:03:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 17E6EA2D; Wed, 14 Aug 2013 08:03:58 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 061F225C9; Wed, 14 Aug 2013 08:03:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E83v8t040511; Wed, 14 Aug 2013 08:03:57 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E83vJs040510; Wed, 14 Aug 2013 08:03:57 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201308140803.r7E83vJs040510@svn.freebsd.org> From: Ulrich Spoerlein Date: Wed, 14 Aug 2013 08:03:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254319 - head/sys/modules/dtrace/sdt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 08:03:58 -0000 Author: uqs Date: Wed Aug 14 08:03:57 2013 New Revision: 254319 URL: http://svnweb.freebsd.org/changeset/base/254319 Log: Fix make depend Modified: head/sys/modules/dtrace/sdt/Makefile Modified: head/sys/modules/dtrace/sdt/Makefile ============================================================================== --- head/sys/modules/dtrace/sdt/Makefile Wed Aug 14 06:36:32 2013 (r254318) +++ head/sys/modules/dtrace/sdt/Makefile Wed Aug 14 08:03:57 2013 (r254319) @@ -4,7 +4,7 @@ KMOD= sdt SRCS= sdt.c -SRCS+= vnode_if.h +SRCS+= vnode_if.h opt_kdtrace.h CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris \ -I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/common \ From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 08:10:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 96BD7CA9; Wed, 14 Aug 2013 08:10:54 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 847BC261E; Wed, 14 Aug 2013 08:10:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7E8As0u043966; Wed, 14 Aug 2013 08:10:54 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7E8Aswo043965; Wed, 14 Aug 2013 08:10:54 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201308140810.r7E8Aswo043965@svn.freebsd.org> From: Ulrich Spoerlein Date: Wed, 14 Aug 2013 08:10:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254320 - head/usr.bin/calendar/calendars X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 08:10:54 -0000 Author: uqs Date: Wed Aug 14 08:10:54 2013 New Revision: 254320 URL: http://svnweb.freebsd.org/changeset/base/254320 Log: Belatedly add my birthday and fix a typo. Modified: head/usr.bin/calendar/calendars/calendar.freebsd Modified: head/usr.bin/calendar/calendars/calendar.freebsd ============================================================================== --- head/usr.bin/calendar/calendars/calendar.freebsd Wed Aug 14 08:03:57 2013 (r254319) +++ head/usr.bin/calendar/calendars/calendar.freebsd Wed Aug 14 08:10:54 2013 (r254320) @@ -152,6 +152,7 @@ 05/10 Markus Brueffer born in Gronau, Nordrhein-Westfalen, Germany, 1977 05/11 Jesus Rodriguez born in Barcelona, Spain, 1972 05/11 Roman Kurakin born in Moscow, USSR, 1979 +05/11 Ulrich Spoerlein born in Schesslitz, Bayern, Germany, 1981 05/13 Pete Fritchman born in Lansdale, Pennsylvania, United States, 1983 05/14 Tatsumi Hosokawa born in Tokyo, Japan, 1968 05/14 Shigeyuku Fukushima born in Osaka, Japan, 1974 @@ -194,7 +195,7 @@ 06/07 Jimmy Olgeni born in Milano, Italy, 1976 06/07 Benjamin Close born in Adelaide, Australia, 1978 06/14 Josh Paetzel born in Minneapolis, Minnesota, United States, 1973 -06/17 Tilman Linneweh born in Weinheim, Baden-Wuertemberg, Germany, 1978 +06/17 Tilman Linneweh born in Weinheim, Baden-Wuerttemberg, Germany, 1978 06/18 Li-Wen Hsu born in Taipei, Taiwan, Republic of China, 1984 06/18 Roman Bogorodskiy born in Saratov, Russian Federation, 1986 06/19 Charlie Root born in Portland, Oregon, United States, 1993 From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 08:23:16 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 421DE240; Wed, 14 Aug 2013 08:23:16 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0B3AE26BA; Wed, 14 Aug 2013 08:23:15 +0000 (UTC) Received: from dhcp-172-17-154-34.eduroam.lapwing.private.cam.ac.uk (global-1-26.nat.csx.cam.ac.uk [131.111.184.26]) (authenticated bits=0) by theravensnest.org (8.14.5/8.14.5) with ESMTP id r7E8NCWR016716 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Wed, 14 Aug 2013 08:23:14 GMT (envelope-from theraven@FreeBSD.org) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r253802 - head/contrib/llvm/tools/clang/lib/Headers From: David Chisnall In-Reply-To: <20130813205736.GA68244@stack.nl> Date: Wed, 14 Aug 2013 09:23:11 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <2A4F32C7-939D-4C4D-A136-D99FC06C486E@FreeBSD.org> References: <201307301233.r6UCXLT8012177@svn.freebsd.org> <2DE35C45-B110-4D93-BFA7-542A3D1EE902@freebsd.org> <20130807205653.GB4918@stack.nl> <46BC9A7E-4AF1-4BE9-9902-3578BDE0CD56@FreeBSD.org> <20130813205736.GA68244@stack.nl> To: Jilles Tjoelker X-Mailer: Apple Mail (2.1508) Cc: "svn-src-head@FreeBSD.org" , Matthew Fleming , "svn-src-all@FreeBSD.org" , "src-committers@FreeBSD.org" , Dimitry Andric X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 08:23:16 -0000 On 13 Aug 2013, at 21:57, Jilles Tjoelker wrote: > Given that JIT is for performance and larger addresses increase code > size and register pressure, the mmap() flag is probably useful. > Alternatively, all the JITted code could be placed in one block and = use > relative addressing. This would be a good thing to have in for 10.0, as the LLVM 3.4 JIT will = require it unless someone wants to contribute support for the large code = model... David From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 09:31:45 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 80DB7C8D; Wed, 14 Aug 2013 09:31:45 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id 111CE2B0C; Wed, 14 Aug 2013 09:31:44 +0000 (UTC) Received: from c122-106-156-23.carlnfd1.nsw.optusnet.com.au (c122-106-156-23.carlnfd1.nsw.optusnet.com.au [122.106.156.23]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id E42737812C4; Wed, 14 Aug 2013 19:10:53 +1000 (EST) Date: Wed, 14 Aug 2013 19:10:51 +1000 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Dimitry Andric Subject: Re: svn commit: r254286 - head/sys/fs/ext2fs In-Reply-To: <9B5BBD34-F953-40BF-8C10-0EF466ED3350@FreeBSD.org> Message-ID: <20130814182851.A1065@besplex.bde.org> References: <201308131839.r7DIdaLD037277@svn.freebsd.org> <9B5BBD34-F953-40BF-8C10-0EF466ED3350@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=YYGEuWhf c=1 sm=1 tr=0 a=ebeQFi2P/qHVC0Yw9JDJ4g==:117 a=PO7r1zJSAAAA:8 a=Eygb-0caP3YA:10 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=AD96D3NyImQA:10 a=6I5d2MoRAAAA:8 a=JCPPM7_Sc5d9gZvzo44A:9 a=AD96TLpiGArUWDxL:21 a=9KybAjeJlIn2ttJd:21 a=CjuIK1q_8ugA:10 a=SV7veod9ZcQA:10 Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, "Pedro F. Giffuni" , src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 09:31:45 -0000 On Wed, 14 Aug 2013, Dimitry Andric wrote: > On Aug 13, 2013, at 20:39, Pedro F. Giffuni wrote: >> Log: >> ext2fs: update format specifiers for ext4 type. This is still quite broken. >> Modified: head/sys/fs/ext2fs/ext2_subr.c >> ============================================================================== >> --- head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 18:14:53 2013 (r254285) >> +++ head/sys/fs/ext2fs/ext2_subr.c Tue Aug 13 18:39:36 2013 (r254286) >> @@ -150,7 +150,7 @@ ext2_checkoverlap(struct buf *bp, struct >> ep->b_blkno + btodb(ep->b_bcount) <= start) >> continue; >> vprint("Disk overlap", vp); >> - (void)printf("\tstart %d, end %d overlap start %lld, end %ld\n", >> + (void)printf("\tstart %ld, end %ld overlap start %lld, end %ld\n", >> start, last, (long long)ep->b_blkno, >> (long)(ep->b_blkno + btodb(ep->b_bcount) - 1)); >> panic("Disk buffer overlap"); > > > This still fails on arches where int64_t is aliased to long long > (basically, the 32-bit arches). Since using PRId64 is apparently > frowned upon, the easiest solution is to cast the 'start' and 'last' > variables to long long, and print them using %lld. Gak. Later you said that this is to match the surrounding style. But the surrounding style is bad, and has lots of type errors that become bugs after changes like the recent ones: - (void)'ing printf() is a style bug - the above change breaks the lexical style by blindly expanding the line beyond 80 columns. (void)ing printf() helps give such style bugs by wastin6 6 columns - the continuation indent for the printf() is 8 columns, unlike the KNF continuation indent of 5 columns which is used a few lines earlier - it is nonsense to cast the overlap-starting block numer to a wider type than the overlap-ending block number, since the latter is at least as large. At least after recent changes, the cast to long became a type error on arches with 32-bit longs, since the block number type is now wider. I think it is now 64 bits. I disapprove of any changes to make block number types unsigned. If the block number type was actually changed to uint32_t for ext2, then printing it it using long is still a type error on arches with 32-bit longs. The cast to long is bogus and mainly breaks compile-time detection of the error. - the long long abomination is used. The cast to long long is bogus, but doesn't hide any error provided the block number type remains at most 64 bits signed. - since (apparently) no printf error is detected for the non-overlap start and end, these variables must have type long to match their printf format. But they actually have type e4fs_daddr_r, which is int64_t, at least now. int64_t happens to be the same as long on 64-bit arches. On 32-bit arches, it is very far from matches. So the non-detection of printf format errors from this just shows null testing on 32-bit arches. This function is a sanity check under KDB. Hopefully it is more insane than what it checks. Until recently it used int32_t for start and end. The hard-coded printf format of %d for them only assumed 32-bit ints. The bogus cast to long was defense against an old printf format error in one of the args (the overlap-ending block number) in 2000. Versions before that were broken on 64-bit arches. The bogus cast to long long was defense in 2002 against the expansion of the system-wide block number type daddr_t a little earlier. A previous buggy change changed the out of data format %d to %lld. %d matched daddr_t == int32_t accidentally on all arches. %lld matched daddr_t == int64_t accidentally only on 32-bit arches. It shouldn't take 4 commits per arg to get printf formats right. Bruce From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 10:20:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 91AB9827; Wed, 14 Aug 2013 10:20:26 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6688A2E2A; Wed, 14 Aug 2013 10:20:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EAKQVc090921; Wed, 14 Aug 2013 10:20:26 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EAKQuH090920; Wed, 14 Aug 2013 10:20:26 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308141020.r7EAKQuH090920@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 10:20:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254321 - vendor/bind9/dist-9.8 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 10:20:26 -0000 Author: erwin Date: Wed Aug 14 10:20:25 2013 New Revision: 254321 URL: http://svnweb.freebsd.org/changeset/base/254321 Log: Fork the vendor branch to allow for continued support of BIND 9.8.x for release up to 9.2 Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S Added: vendor/bind9/dist-9.8/ - copied from r254320, vendor/bind9/dist/ From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 11:10:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C43885B8; Wed, 14 Aug 2013 11:10:03 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 67F432136; Wed, 14 Aug 2013 11:10:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EBA3iX009519; Wed, 14 Aug 2013 11:10:03 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EBA33B009517; Wed, 14 Aug 2013 11:10:03 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308141110.r7EBA33B009517@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 11:10:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254322 - in vendor/bind9/dist: . bin bin/check bin/confgen bin/dig bin/dig/include/dig bin/dnssec bin/named bin/named/include/dlz bin/named/include/named bin/named/unix bin/nsupdate bi... X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 11:10:03 -0000 Author: erwin Date: Wed Aug 14 11:10:02 2013 New Revision: 254322 URL: http://svnweb.freebsd.org/changeset/base/254322 Log: Vendor import of Bind 9.9.3-P2 Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S Added: vendor/bind9/dist/bin/dnssec/dnssec-verify.8 vendor/bind9/dist/bin/dnssec/dnssec-verify.c vendor/bind9/dist/bin/dnssec/dnssec-verify.docbook vendor/bind9/dist/bin/dnssec/dnssec-verify.html vendor/bind9/dist/bin/named/bind9.ver3.xsl (contents, props changed) vendor/bind9/dist/bin/named/bind9.ver3.xsl.h vendor/bind9/dist/doc/arm/man.dnssec-verify.html vendor/bind9/dist/lib/dns/clientinfo.c vendor/bind9/dist/lib/dns/include/dns/clientinfo.h vendor/bind9/dist/lib/dns/include/dns/update.h vendor/bind9/dist/lib/dns/rdata/generic/naptr_35.c vendor/bind9/dist/lib/dns/rdata/generic/naptr_35.h vendor/bind9/dist/lib/dns/update.c vendor/bind9/dist/lib/isc/include/isc/pool.h vendor/bind9/dist/lib/isc/include/isc/queue.h vendor/bind9/dist/lib/isc/pool.c Deleted: vendor/bind9/dist/lib/dns/rdata/in_1/naptr_35.c vendor/bind9/dist/lib/dns/rdata/in_1/naptr_35.h Modified: vendor/bind9/dist/CHANGES vendor/bind9/dist/COPYRIGHT vendor/bind9/dist/FREEBSD-Upgrade vendor/bind9/dist/FREEBSD-Xlist vendor/bind9/dist/HISTORY vendor/bind9/dist/Makefile.in vendor/bind9/dist/README vendor/bind9/dist/bin/Makefile.in vendor/bind9/dist/bin/check/check-tool.c vendor/bind9/dist/bin/check/check-tool.h vendor/bind9/dist/bin/check/named-checkconf.c vendor/bind9/dist/bin/check/named-checkzone.8 vendor/bind9/dist/bin/check/named-checkzone.c vendor/bind9/dist/bin/check/named-checkzone.docbook vendor/bind9/dist/bin/check/named-checkzone.html vendor/bind9/dist/bin/confgen/ddns-confgen.c vendor/bind9/dist/bin/confgen/rndc-confgen.c vendor/bind9/dist/bin/dig/Makefile.in vendor/bind9/dist/bin/dig/dig.1 vendor/bind9/dist/bin/dig/dig.c vendor/bind9/dist/bin/dig/dig.docbook vendor/bind9/dist/bin/dig/dig.html vendor/bind9/dist/bin/dig/dighost.c vendor/bind9/dist/bin/dig/host.c vendor/bind9/dist/bin/dig/include/dig/dig.h vendor/bind9/dist/bin/dig/nslookup.c vendor/bind9/dist/bin/dnssec/Makefile.in vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.8 vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.c vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.docbook vendor/bind9/dist/bin/dnssec/dnssec-dsfromkey.html vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.8 vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.c vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.docbook vendor/bind9/dist/bin/dnssec/dnssec-keyfromlabel.html vendor/bind9/dist/bin/dnssec/dnssec-keygen.8 vendor/bind9/dist/bin/dnssec/dnssec-keygen.c vendor/bind9/dist/bin/dnssec/dnssec-keygen.docbook vendor/bind9/dist/bin/dnssec/dnssec-keygen.html vendor/bind9/dist/bin/dnssec/dnssec-revoke.c vendor/bind9/dist/bin/dnssec/dnssec-revoke.docbook vendor/bind9/dist/bin/dnssec/dnssec-settime.8 vendor/bind9/dist/bin/dnssec/dnssec-settime.c vendor/bind9/dist/bin/dnssec/dnssec-settime.docbook vendor/bind9/dist/bin/dnssec/dnssec-settime.html vendor/bind9/dist/bin/dnssec/dnssec-signzone.8 vendor/bind9/dist/bin/dnssec/dnssec-signzone.c vendor/bind9/dist/bin/dnssec/dnssec-signzone.docbook vendor/bind9/dist/bin/dnssec/dnssec-signzone.html vendor/bind9/dist/bin/dnssec/dnssectool.c vendor/bind9/dist/bin/dnssec/dnssectool.h vendor/bind9/dist/bin/named/Makefile.in vendor/bind9/dist/bin/named/builtin.c vendor/bind9/dist/bin/named/client.c vendor/bind9/dist/bin/named/config.c vendor/bind9/dist/bin/named/control.c vendor/bind9/dist/bin/named/controlconf.c vendor/bind9/dist/bin/named/include/dlz/dlz_dlopen_driver.h vendor/bind9/dist/bin/named/include/named/client.h vendor/bind9/dist/bin/named/include/named/control.h vendor/bind9/dist/bin/named/include/named/globals.h vendor/bind9/dist/bin/named/include/named/interfacemgr.h vendor/bind9/dist/bin/named/include/named/server.h vendor/bind9/dist/bin/named/include/named/zoneconf.h vendor/bind9/dist/bin/named/interfacemgr.c vendor/bind9/dist/bin/named/logconf.c vendor/bind9/dist/bin/named/main.c vendor/bind9/dist/bin/named/named.8 vendor/bind9/dist/bin/named/named.conf.5 vendor/bind9/dist/bin/named/named.conf.docbook vendor/bind9/dist/bin/named/named.conf.html vendor/bind9/dist/bin/named/named.docbook vendor/bind9/dist/bin/named/named.html vendor/bind9/dist/bin/named/query.c vendor/bind9/dist/bin/named/server.c vendor/bind9/dist/bin/named/statschannel.c vendor/bind9/dist/bin/named/unix/Makefile.in vendor/bind9/dist/bin/named/unix/dlz_dlopen_driver.c vendor/bind9/dist/bin/named/unix/os.c vendor/bind9/dist/bin/named/update.c vendor/bind9/dist/bin/named/xfrout.c vendor/bind9/dist/bin/named/zoneconf.c vendor/bind9/dist/bin/nsupdate/Makefile.in vendor/bind9/dist/bin/nsupdate/nsupdate.1 vendor/bind9/dist/bin/nsupdate/nsupdate.c vendor/bind9/dist/bin/nsupdate/nsupdate.docbook vendor/bind9/dist/bin/nsupdate/nsupdate.html vendor/bind9/dist/bin/rndc/rndc.c vendor/bind9/dist/bin/tools/genrandom.8 vendor/bind9/dist/bin/tools/genrandom.docbook vendor/bind9/dist/bin/tools/genrandom.html vendor/bind9/dist/bin/tools/nsec3hash.c vendor/bind9/dist/config.h.in vendor/bind9/dist/config.threads.in vendor/bind9/dist/configure.in vendor/bind9/dist/doc/arm/Bv9ARM-book.xml vendor/bind9/dist/doc/arm/Bv9ARM.ch01.html vendor/bind9/dist/doc/arm/Bv9ARM.ch03.html vendor/bind9/dist/doc/arm/Bv9ARM.ch04.html vendor/bind9/dist/doc/arm/Bv9ARM.ch05.html vendor/bind9/dist/doc/arm/Bv9ARM.ch06.html vendor/bind9/dist/doc/arm/Bv9ARM.ch07.html vendor/bind9/dist/doc/arm/Bv9ARM.ch08.html vendor/bind9/dist/doc/arm/Bv9ARM.ch09.html vendor/bind9/dist/doc/arm/Bv9ARM.ch10.html vendor/bind9/dist/doc/arm/Bv9ARM.html vendor/bind9/dist/doc/arm/Bv9ARM.pdf vendor/bind9/dist/doc/arm/dnssec.xml vendor/bind9/dist/doc/arm/man.arpaname.html vendor/bind9/dist/doc/arm/man.ddns-confgen.html vendor/bind9/dist/doc/arm/man.dig.html vendor/bind9/dist/doc/arm/man.dnssec-dsfromkey.html vendor/bind9/dist/doc/arm/man.dnssec-keyfromlabel.html vendor/bind9/dist/doc/arm/man.dnssec-keygen.html vendor/bind9/dist/doc/arm/man.dnssec-revoke.html vendor/bind9/dist/doc/arm/man.dnssec-settime.html vendor/bind9/dist/doc/arm/man.dnssec-signzone.html vendor/bind9/dist/doc/arm/man.genrandom.html vendor/bind9/dist/doc/arm/man.host.html vendor/bind9/dist/doc/arm/man.isc-hmac-fixup.html vendor/bind9/dist/doc/arm/man.named-checkconf.html vendor/bind9/dist/doc/arm/man.named-checkzone.html vendor/bind9/dist/doc/arm/man.named-journalprint.html vendor/bind9/dist/doc/arm/man.named.html vendor/bind9/dist/doc/arm/man.nsec3hash.html vendor/bind9/dist/doc/arm/man.nsupdate.html vendor/bind9/dist/doc/arm/man.rndc-confgen.html vendor/bind9/dist/doc/arm/man.rndc.conf.html vendor/bind9/dist/doc/arm/man.rndc.html vendor/bind9/dist/doc/arm/pkcs11.xml vendor/bind9/dist/doc/misc/options vendor/bind9/dist/lib/bind9/api vendor/bind9/dist/lib/bind9/check.c vendor/bind9/dist/lib/dns/Makefile.in vendor/bind9/dist/lib/dns/acache.c vendor/bind9/dist/lib/dns/acl.c vendor/bind9/dist/lib/dns/adb.c vendor/bind9/dist/lib/dns/api vendor/bind9/dist/lib/dns/byaddr.c vendor/bind9/dist/lib/dns/cache.c vendor/bind9/dist/lib/dns/callbacks.c vendor/bind9/dist/lib/dns/client.c vendor/bind9/dist/lib/dns/db.c vendor/bind9/dist/lib/dns/dbtable.c vendor/bind9/dist/lib/dns/diff.c vendor/bind9/dist/lib/dns/dispatch.c vendor/bind9/dist/lib/dns/dns64.c vendor/bind9/dist/lib/dns/dnssec.c vendor/bind9/dist/lib/dns/dst_api.c vendor/bind9/dist/lib/dns/dst_internal.h vendor/bind9/dist/lib/dns/dst_openssl.h vendor/bind9/dist/lib/dns/dst_parse.c vendor/bind9/dist/lib/dns/ecdb.c vendor/bind9/dist/lib/dns/gssapi_link.c vendor/bind9/dist/lib/dns/gssapictx.c vendor/bind9/dist/lib/dns/hmac_link.c vendor/bind9/dist/lib/dns/include/dns/Makefile.in vendor/bind9/dist/lib/dns/include/dns/acache.h vendor/bind9/dist/lib/dns/include/dns/acl.h vendor/bind9/dist/lib/dns/include/dns/adb.h vendor/bind9/dist/lib/dns/include/dns/cache.h vendor/bind9/dist/lib/dns/include/dns/callbacks.h vendor/bind9/dist/lib/dns/include/dns/db.h vendor/bind9/dist/lib/dns/include/dns/dispatch.h vendor/bind9/dist/lib/dns/include/dns/dlz_dlopen.h vendor/bind9/dist/lib/dns/include/dns/dnssec.h vendor/bind9/dist/lib/dns/include/dns/events.h vendor/bind9/dist/lib/dns/include/dns/journal.h vendor/bind9/dist/lib/dns/include/dns/log.h vendor/bind9/dist/lib/dns/include/dns/master.h vendor/bind9/dist/lib/dns/include/dns/masterdump.h vendor/bind9/dist/lib/dns/include/dns/nsec.h vendor/bind9/dist/lib/dns/include/dns/nsec3.h vendor/bind9/dist/lib/dns/include/dns/private.h vendor/bind9/dist/lib/dns/include/dns/rdata.h vendor/bind9/dist/lib/dns/include/dns/rdataset.h vendor/bind9/dist/lib/dns/include/dns/resolver.h vendor/bind9/dist/lib/dns/include/dns/result.h vendor/bind9/dist/lib/dns/include/dns/rpz.h vendor/bind9/dist/lib/dns/include/dns/rriterator.h vendor/bind9/dist/lib/dns/include/dns/sdb.h vendor/bind9/dist/lib/dns/include/dns/sdlz.h vendor/bind9/dist/lib/dns/include/dns/time.h vendor/bind9/dist/lib/dns/include/dns/types.h vendor/bind9/dist/lib/dns/include/dns/view.h vendor/bind9/dist/lib/dns/include/dns/zone.h vendor/bind9/dist/lib/dns/include/dns/zt.h vendor/bind9/dist/lib/dns/include/dst/dst.h vendor/bind9/dist/lib/dns/iptable.c vendor/bind9/dist/lib/dns/journal.c vendor/bind9/dist/lib/dns/key.c vendor/bind9/dist/lib/dns/keytable.c vendor/bind9/dist/lib/dns/log.c vendor/bind9/dist/lib/dns/lookup.c vendor/bind9/dist/lib/dns/master.c vendor/bind9/dist/lib/dns/masterdump.c vendor/bind9/dist/lib/dns/message.c vendor/bind9/dist/lib/dns/nsec.c vendor/bind9/dist/lib/dns/nsec3.c vendor/bind9/dist/lib/dns/openssldh_link.c vendor/bind9/dist/lib/dns/openssldsa_link.c vendor/bind9/dist/lib/dns/opensslecdsa_link.c vendor/bind9/dist/lib/dns/opensslgost_link.c vendor/bind9/dist/lib/dns/opensslrsa_link.c vendor/bind9/dist/lib/dns/private.c vendor/bind9/dist/lib/dns/rbt.c vendor/bind9/dist/lib/dns/rbtdb.c vendor/bind9/dist/lib/dns/rdata.c vendor/bind9/dist/lib/dns/rdata/any_255/tsig_250.c vendor/bind9/dist/lib/dns/rdata/generic/cert_37.c vendor/bind9/dist/lib/dns/rdata/generic/dlv_32769.c vendor/bind9/dist/lib/dns/rdata/generic/dnskey_48.c vendor/bind9/dist/lib/dns/rdata/generic/ds_43.c vendor/bind9/dist/lib/dns/rdata/generic/ipseckey_45.c vendor/bind9/dist/lib/dns/rdata/generic/key_25.c vendor/bind9/dist/lib/dns/rdata/generic/keydata_65533.c vendor/bind9/dist/lib/dns/rdata/generic/nsec3_50.c vendor/bind9/dist/lib/dns/rdata/generic/nsec3_50.h vendor/bind9/dist/lib/dns/rdata/generic/opt_41.c vendor/bind9/dist/lib/dns/rdata/generic/rrsig_46.c vendor/bind9/dist/lib/dns/rdata/generic/sig_24.c vendor/bind9/dist/lib/dns/rdata/generic/soa_6.c vendor/bind9/dist/lib/dns/rdata/generic/sshfp_44.c vendor/bind9/dist/lib/dns/rdata/generic/tkey_249.c vendor/bind9/dist/lib/dns/rdata/generic/uri_256.c vendor/bind9/dist/lib/dns/rdata/generic/uri_256.h vendor/bind9/dist/lib/dns/rdata/in_1/dhcid_49.c vendor/bind9/dist/lib/dns/resolver.c vendor/bind9/dist/lib/dns/sdb.c vendor/bind9/dist/lib/dns/sdlz.c vendor/bind9/dist/lib/dns/validator.c vendor/bind9/dist/lib/dns/view.c vendor/bind9/dist/lib/dns/xfrin.c vendor/bind9/dist/lib/dns/zone.c vendor/bind9/dist/lib/dns/zt.c vendor/bind9/dist/lib/irs/api vendor/bind9/dist/lib/isc/Makefile.in vendor/bind9/dist/lib/isc/api vendor/bind9/dist/lib/isc/include/isc/heap.h vendor/bind9/dist/lib/isc/include/isc/list.h vendor/bind9/dist/lib/isc/include/isc/mem.h vendor/bind9/dist/lib/isc/include/isc/namespace.h vendor/bind9/dist/lib/isc/include/isc/radix.h vendor/bind9/dist/lib/isc/include/isc/socket.h vendor/bind9/dist/lib/isc/include/isc/task.h vendor/bind9/dist/lib/isc/include/isc/taskpool.h vendor/bind9/dist/lib/isc/log.c vendor/bind9/dist/lib/isc/radix.c vendor/bind9/dist/lib/isc/socket_api.c vendor/bind9/dist/lib/isc/task.c vendor/bind9/dist/lib/isc/task_api.c vendor/bind9/dist/lib/isc/task_p.h vendor/bind9/dist/lib/isc/taskpool.c vendor/bind9/dist/lib/isc/unix/socket.c vendor/bind9/dist/lib/isccc/api vendor/bind9/dist/lib/isccfg/api vendor/bind9/dist/lib/isccfg/namedconf.c vendor/bind9/dist/lib/lwres/api vendor/bind9/dist/lib/lwres/man/lwres_config.3 vendor/bind9/dist/lib/lwres/man/lwres_config.docbook vendor/bind9/dist/lib/lwres/man/lwres_config.html vendor/bind9/dist/lib/lwres/man/lwres_context.3 vendor/bind9/dist/lib/lwres/man/lwres_context.docbook vendor/bind9/dist/lib/lwres/man/lwres_context.html vendor/bind9/dist/lib/lwres/man/lwres_gabn.3 vendor/bind9/dist/lib/lwres/man/lwres_gabn.docbook vendor/bind9/dist/lib/lwres/man/lwres_gabn.html vendor/bind9/dist/lib/lwres/man/lwres_gai_strerror.3 vendor/bind9/dist/lib/lwres/man/lwres_gai_strerror.docbook vendor/bind9/dist/lib/lwres/man/lwres_gai_strerror.html vendor/bind9/dist/lib/lwres/man/lwres_getaddrinfo.3 vendor/bind9/dist/lib/lwres/man/lwres_getaddrinfo.docbook vendor/bind9/dist/lib/lwres/man/lwres_getaddrinfo.html vendor/bind9/dist/lib/lwres/man/lwres_gethostent.3 vendor/bind9/dist/lib/lwres/man/lwres_gethostent.docbook vendor/bind9/dist/lib/lwres/man/lwres_gethostent.html vendor/bind9/dist/lib/lwres/man/lwres_getipnode.3 vendor/bind9/dist/lib/lwres/man/lwres_getipnode.docbook vendor/bind9/dist/lib/lwres/man/lwres_getipnode.html vendor/bind9/dist/lib/lwres/man/lwres_getnameinfo.3 vendor/bind9/dist/lib/lwres/man/lwres_getnameinfo.docbook vendor/bind9/dist/lib/lwres/man/lwres_getnameinfo.html vendor/bind9/dist/lib/lwres/man/lwres_getrrsetbyname.3 vendor/bind9/dist/lib/lwres/man/lwres_getrrsetbyname.docbook vendor/bind9/dist/lib/lwres/man/lwres_getrrsetbyname.html vendor/bind9/dist/lib/lwres/man/lwres_gnba.3 vendor/bind9/dist/lib/lwres/man/lwres_gnba.docbook vendor/bind9/dist/lib/lwres/man/lwres_gnba.html vendor/bind9/dist/lib/lwres/man/lwres_hstrerror.3 vendor/bind9/dist/lib/lwres/man/lwres_hstrerror.docbook vendor/bind9/dist/lib/lwres/man/lwres_hstrerror.html vendor/bind9/dist/lib/lwres/man/lwres_inetntop.3 vendor/bind9/dist/lib/lwres/man/lwres_inetntop.docbook vendor/bind9/dist/lib/lwres/man/lwres_inetntop.html vendor/bind9/dist/lib/lwres/man/lwres_noop.3 vendor/bind9/dist/lib/lwres/man/lwres_noop.docbook vendor/bind9/dist/lib/lwres/man/lwres_noop.html vendor/bind9/dist/lib/lwres/man/lwres_packet.3 vendor/bind9/dist/lib/lwres/man/lwres_packet.docbook vendor/bind9/dist/lib/lwres/man/lwres_packet.html vendor/bind9/dist/lib/lwres/man/lwres_resutil.3 vendor/bind9/dist/lib/lwres/man/lwres_resutil.docbook vendor/bind9/dist/lib/lwres/man/lwres_resutil.html vendor/bind9/dist/lib/lwres/print_p.h vendor/bind9/dist/lib/lwres/strtoul.c vendor/bind9/dist/lib/lwres/unix/Makefile.in vendor/bind9/dist/lib/lwres/unix/include/Makefile.in vendor/bind9/dist/lib/lwres/unix/include/lwres/Makefile.in vendor/bind9/dist/lib/lwres/unix/include/lwres/net.h vendor/bind9/dist/lib/lwres/version.c vendor/bind9/dist/make/Makefile.in vendor/bind9/dist/make/includes.in vendor/bind9/dist/make/rules.in vendor/bind9/dist/mkinstalldirs vendor/bind9/dist/version Modified: vendor/bind9/dist/CHANGES ============================================================================== --- vendor/bind9/dist/CHANGES Wed Aug 14 10:20:25 2013 (r254321) +++ vendor/bind9/dist/CHANGES Wed Aug 14 11:10:02 2013 (r254322) @@ -1,15 +1,15 @@ - --- 9.8.5-P2 released --- + --- 9.9.3-P2 released --- 3621. [security] Incorrect bounds checking on private type 'keydata' can lead to a remotely triggerable REQUIRE failure (CVE-2013-4854). [RT #34238] - --- 9.8.5-P1 released --- + --- 9.9.3-P1 released --- 3584. [security] Caching data from an incompletely signed zone could trigger an assertion failure in resolver.c [RT #33690] - --- 9.8.5 released --- + --- 9.9.3 released --- 3568. [cleanup] Add a product description line to the version file, to be reported by named -v/-V. [RT #33366] @@ -21,7 +21,7 @@ 3561. [bug] dig: issue a warning if an EDNS query returns FORMERR or NOTIMP. Adjust usage message. [RT #33363] - --- 9.8.5rc1 released --- + --- 9.9.3rc2 released --- 3560. [bug] isc-config.sh did not honor includedir and libdir when set via configure. [RT #33345] @@ -31,6 +31,8 @@ 3558. [bug] IXFR of a DLZ stored zone was broken. [RT #33331] +3557. [bug] Reloading redirect zones was broken. [RT #33292] + 3556. [maint] Added AAAA for D.ROOT-SERVERS.NET. 3555. [bug] Address theoretical race conditions in acache.c @@ -51,9 +53,7 @@ 3547. [bug] Some malformed unknown rdata records were not properly detected and rejected. [RT #33129] -3056. [func] Added support for URI resource record. [RT #23386] - - --- 9.8.5rc1 released --- + --- 9.9.3rc1 released --- 3546. [func] Add EUI48 and EUI64 types. [RT #33082] @@ -64,8 +64,6 @@ 3543. [bug] Update socket structure before attaching to socket manager after accept. [RT #33084] -3542. [bug] masterformat system test was broken. [RT #33086] - 3541. [bug] Parts of libdns were not properly initialized when built in libexport mode. [RT #33028] @@ -94,6 +92,17 @@ 3530. [contrib] Better RTT tracking in queryperf. [RT #30128] +3528. [func] New "dnssec-coverage" command scans the timing + metadata for a set of DNSSEC keys and reports if a + lapse in signing coverage has been scheduled + inadvertently. (Note: This tool depends on python; + it will not be built or installed on systems that + do not have a python interpreter.) [RT #28098] + +3527. [compat] Add a URI to allow applications to explicitly + request a particular XML schema from the statistics + channel, returning 404 if not supported. [RT #32481] + 3526. [cleanup] Set up dependencies for unit tests correctly during build. [RT #32803] @@ -102,7 +111,7 @@ 3520. [bug] 'mctx' was not being referenced counted in some places where it should have been. [RT #32794] - --- 9.8.5b2 released --- + --- 9.9.3b2 released --- 3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777] @@ -114,6 +123,8 @@ to 1024 bits for hmac-sha384 and hmac-sha512. [RT #32753] +3511. [doc] Improve documentation of redirect zones. [RT #32756] + 3509. [cleanup] Added a product line to version file to allow for easy naming of different products (BIND vs BIND ESV, for example). [RT #32755] @@ -121,8 +132,24 @@ 3508. [contrib] queryperf was incorrectly rejecting the -T option. [RT #32338] +3507. [bug] Statistics channel XSL (when built with + --enable-newstats) had a glitch when attempting + to chart query data before any queries had been + received. [RT #32620] + +3505. [bug] When setting "max-cache-size" and "max-acache-size", + larger values than 4 gigabytes could not be set + explicitly, though larger sizes were available + when setting cache size to 0. This has been + corrected; the full range is now available. + [RT #32358] + 3503. [doc] Clarify size_spec syntax. [RT #32449] +3501. [func] zone-statistics now takes three options: full, + terse, and none. "yes" and "no" are retained as + synonyms for full and terse, respectively. [RT #29165] + 3500. [security] Support NAPTR regular expression validation on all platforms without using libregex, which can be vulnerable to memory exhaustion attack @@ -141,6 +168,15 @@ NSIP and NSDNAME checking. --enable-rpz-nsip and --enable-rpz-nsdname are now the default. [RT #32251] +3493. [contrib] Added BDBHPT dynamically-lodable DLZ module, + contributed by Mark Goldfinch. [RT #32549] + +3492. [bug] Fixed a regression in zone loading performance + due to lock contention. [RT #30399] + +3491. [bug] Slave zones using inline-signing must specify a + file name. [RT #31946] + 3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT. When cloning a rdataset do not copy the link contents. [RT #32651] @@ -156,8 +192,14 @@ 3485. [cleanup] Only compile openssl_gostlink.c if we support GOST. +3483. [bug] Corrected XSL code in use with --enable-newstats. + [RT #32587] + 3481. [cleanup] Removed use of const const in atf. +3480. [bug] Silence logging noise when setting up zone + statistics. [RT #32525] + 3479. [bug] Address potential memory leaks in gssapi support code. [RT #32405] @@ -167,10 +209,18 @@ 3474. [bug] nsupdate could assert when the local and remote address families didn't match. [RT #22897] +3473. [bug] dnssec-signzone/verify could incorrectly report + an error condition due to an empty node above an + opt-out delegation lacking an NSEC3. [RT #32072] + +3471. [bug] The number of UDP dispatches now defaults to + the number of CPUs even if -n has been set to + a higher value. [RT #30964] + 3470. [bug] Slave zones could fail to dump when successfully refreshing after an initial failure. [RT #31276] - --- 9.8.5b1 released --- + --- 9.9.3b1 released --- 3468. [security] RPZ rules to generate A records (but not AAAA records) could trigger an assertion failure when used in @@ -179,6 +229,9 @@ 3467. [bug] Added checks in dnssec-keygen and dnssec-settime to check for delete date < inactive date. [RT #31719] +3466. [contrib] Corrected the DNS_CLIENTINFOMETHODS_VERSION check + in DLZ example driver. [RT #32275] + 3465. [bug] Handle isolated reserved ports. [RT #31778] 3464. [maint] Updates to PKCS#11 openssl patches, supporting @@ -192,6 +245,8 @@ 3461. [bug] Negative responses could incorrectly have AD=1 set. [RT #32237] +3460. [bug] Only link against readline where needed. [RT #29810] + 3458. [bug] Return FORMERR when presented with a overly long domain named in a request. [RT #29682] @@ -203,6 +258,9 @@ 3454. [port] sparc64: improve atomic support. [RT #25182] +3453. [bug] 'rndc addzone' of a zone with 'inline-signing yes;' + failed. [RT #31960] + 3452. [bug] Accept duplicate singleton records. [RT #32329] 3451. [port] Increase per thread stack size from 64K to 1M. @@ -266,9 +324,19 @@ 3427. [bug] dig +trace incorrectly displayed name server addresses instead of names. [RT #31641] +3426. [bug] dnssec-checkds: Clearer output when records are not + found. [RT #31968] + 3425. [bug] "acacheentry" reference counting was broken resulting in use after free. [RT #31908] +3424. [func] dnssec-dsfromkey now emits the hash without spaces. + [RT #31951] + +3423. [bug] "rndc signing -nsec3param" didn't accept the full + range of possible values. Address portability issues. + [RT #31938] + 3422. [bug] Added a clear error message for when the SOA does not match the referral. [RT #31281] @@ -279,9 +347,22 @@ 3419. [bug] Memory leak on validation cancel. [RT #31869] +3417. [func] Optional new XML schema (version 3.0) for the + statistics channel adds query type statistics at the + zone level, and flattens the XML tree and uses + compressed format to optimize parsing. Includes new XSL + that permits charting via the Google Charts API on + browsers that support javascript in XSL. To enable, + build with "configure --enable-newstats". [RT #30023] + +3416. [bug] Named could die on shutdown if running with 128 UDP + dispatches per interface. [RT #31743] + 3415. [bug] named could die with a REQUIRE failure if a validation was canceled. [RT #31804] +3414. [bug] Address locking issues found by Coverity. [RT #31626] + 3412. [bug] Copy timeval structure from control message data. [RT #31548] @@ -295,6 +376,11 @@ (DNS-based Authentication of Named Entities). [RT #30513] +3408. [bug] Some DNSSEC-related options (update-check-ksk, + dnssec-loadkeys-interval, dnssec-dnskey-kskonly) + are now legal in slave zones as long as + inline-signing is in use. [RT #31078] + 3406. [bug] mem.c: Fix compilation errors when building with ISC_MEM_TRACKLINES or ISC_MEMPOOL_NAMES disabled. Also, ISC_MEM_DEBUG is no longer optional. [RT #31559] @@ -316,6 +402,13 @@ in the "srcid" file in the build tree and normally set to the most recent git hash. [RT #31494] +3399. [port] netbsd: rename 'bool' parameter to avoid namespace + clash. [RT #31515] + +3398. [bug] SOA parameters were not being updated with inline + signed zones if the zone was modified while the + server was offline. [RT #29272] + 3397. [bug] dig crashed when using +nssearch with +tcp. [RT #25298] 3396. [bug] OPT records were incorrectly removed from signed, @@ -348,11 +441,10 @@ 3386. [bug] Address locking violation when generating new NSEC / NSEC3 chains. [RT #31224] -3384. [bug] Improved logging of crypto errors. [RT #30963] +3385. [bug] named-checkconf didn't detect missing master lists + in also-notify clauses. [RT #30810] -3383. [security] A certain combination of records in the RBT could - cause named to hang while populating the additional - section of a response. [RT #31090] +3384. [bug] Improved logging of crypto errors. [RT #30963] 3382. [bug] SOA query from slave used use-v6-udp-ports range, if set, regardless of the address family in use. @@ -370,6 +462,9 @@ 3378. [bug] Handle missing 'managed-keys-directory' better. [RT #30625] +3377. [bug] Removed spurious newline from NSEC3 multiline + output. [RT #31044] + 3376. [bug] Lack of EDNS support was being recorded without a successful response. [RT #30811] @@ -386,19 +481,34 @@ add NS RRsets to the additional section or not. [RT #30479] - --- 9.8.4 released --- +3316. [tuning] Improved locking performance when recursing. + [RT #28836] + +3315. [tuning] Use multiple dispatch objects for sending upstream + queries; this can improve performance on busy + multiprocessor systems by reducing lock contention. + [RT #28605] + + --- 9.9.2 released --- + +3383. [security] A certain combination of records in the RBT could + cause named to hang while populating the additional + section of a response. [RT #31090] 3373. [bug] win32: open raw files in binary mode. [RT #30944] 3364. [security] Named could die on specially crafted record. [RT #30416] - --- 9.8.4rc1 released --- + --- 9.9.2rc1 released --- + +3370. [bug] Address use after free while shutting down. [RT #30241] 3369. [bug] nsupdate terminated unexpectedly in interactive mode if built with readline support. [RT #29550] -3368. [bug] and were not C++ safe. +3368. [bug] , and + were not C++ safe. 3367. [bug] dns_dnsseckey_create() result was not being checked. [RT #30685] @@ -417,6 +527,9 @@ could trigger an assertion failure on startup. [RT #27730] +3361. [bug] "rndc signing -nsec3param" didn't work correctly + when salt was set to '-' (no salt). [RT #30099] + 3360. [bug] 'host -w' could die. [RT #18723] 3359. [bug] An improperly-formed TSIG secret could cause a @@ -428,10 +541,12 @@ approaching their expiry, so they don't remain in caches after expiry. [RT #26429] - --- 9.8.4b1 released --- +3355. [port] Use more portable awk in verify system test. 3354. [func] Improve OpenSSL error logging. [RT #29932] + --- 9.9.2b1 released --- + 3353. [bug] Use a single task for task exclusive operations. [RT #29872] @@ -446,6 +561,8 @@ ISC_MEM_DEBUGCTX memory debugging flag is set. [RT #30240] +3349. [bug] Change #3345 was incomplete. [RT #30233] + 3348. [bug] Prevent RRSIG data from being cached if a negative record matching the covering type exists at a higher trust level. Such data already can't be retrieved from @@ -459,16 +576,42 @@ 3346. [security] Bad-cache data could be used before it was initialized, causing an assert. [RT #30025] +3345. [bug] Addressed race condition when removing the last item + or inserting the first item in an ISC_QUEUE. + [RT #29539] + +3344. [func] New "dnssec-checkds" command checks a zone to + determine which DS records should be published + in the parent zone, or which DLV records should be + published in a DLV zone, and queries the DNS to + ensure that it exists. (Note: This tool depends + on python; it will not be built or installed on + systems that do not have a python interpreter.) + [RT #28099] + 3342. [bug] Change #3314 broke saving of stub zones to disk resulting in excessive cpu usage in some cases. [RT #29952] +3341. [func] New "dnssec-verify" command checks a signed zone + to ensure correctness of signatures and of NSEC/NSEC3 + chains. [RT #23673] + +3339. [func] Allow the maximum supported rsa exponent size to be + specified: "max-rsa-exponent-size ;" [RT #29228] + +3338. [bug] Address race condition in units tests: asyncload_zone + and asyncload_zt. [RT #26100] + 3337. [bug] Change #3294 broke support for the multiple keys in controls. [RT #29694] 3335. [func] nslookup: return a nonzero exit code when unable to get an answer. [RT #29492] +3334. [bug] Hold a zone table reference while performing a + asynchronous load of a zone. [RT #28326] + 3333. [bug] Setting resolver-query-timeout too low can cause named to not recover if it loses connectivity. [RT #29623] @@ -504,7 +647,7 @@ 3317. [func] Add ECDSA support (RFC 6605). [RT #21918] - --- 9.8.3 released --- + --- 9.9.1 released --- 3318. [tuning] Reduce the amount of work performed while holding a bucket lock when finished with a fetch context. @@ -536,6 +679,8 @@ 3304. [bug] Use hmctx, not mctx when freeing rbtdb->heaps. [RT #28571] +3303. [bug] named could die when reloading. [RT #28606] + 3302. [bug] dns_dnssec_findmatchingkeys could fail to find keys if the zone name contained character that required special mappings. [RT #28600] @@ -549,22 +694,15 @@ 3299. [bug] Make SDB handle errors from database drivers better. [RT #28534] -3232. [bug] Zero zone->curmaster before return in - dns_zone_setmasterswithkeys(). [RT #26732] - -3183. [bug] Added RTLD_GLOBAL flag to dlopen call. [RT #26301] - -3197. [bug] Don't try to log the filename and line number when - the config parser can't open a file. [RT #22263] - - --- 9.8.2 released --- - 3298. [bug] Named could dereference a NULL pointer in zmgr_start_xfrin_ifquota if the zone was being removed. [RT #28419] 3297. [bug] Named could die on a malformed master file. [RT #28467] +3296. [bug] Named could die with a INSIST failure in + client.c:exit_check. [RT #28346] + 3295. [bug] Adjust isc_time_secondsastimet range check to be more portable. [RT # 26542] @@ -576,6 +714,16 @@ 3290. [bug] was not being installed. [RT #28169] +3273. [bug] AAAA responses could be returned in the additional + section even when filter-aaaa-on-v4 was in use. + [RT #27292] + + --- 9.9.0 released --- + + --- 9.9.0rc4 released --- + +3289. [bug] 'rndc retransfer' failed for inline zones. [RT #28036] + 3288. [bug] dlz_destroy() function wasn't correctly registered by the DLZ dlopen driver. [RT #28056] @@ -584,7 +732,7 @@ 3286. [bug] Managed key maintenance timer could fail to start after 'rndc reconfig'. [RT #26786] - --- 9.8.2rc2 released --- + --- 9.9.0rc3 released --- 3285. [bug] val-frdataset was incorrectly disassociated in proveunsecure after calling startfinddlvsep. @@ -607,24 +755,34 @@ 3280. [bug] Potential double free of a rdataset on out of memory with DNS64. [RT #27762] +3279. [bug] Hold a internal reference to the zone while performing + a asynchronous load. Address potential memory leak + if the asynchronous is cancelled. [RT #27750] + 3278. [bug] Make sure automatic key maintenance is started when "auto-dnssec maintain" is turned on during "rndc reconfig". [RT #26805] +3277. [bug] win32: isc_socket_dup is not implemented. [RT #27696] + 3276. [bug] win32: ns_os_openfile failed to return NULL on safe_open failure. [RT #27696] -3274. [bug] Log when a zone is not reusable. Only set loadtime - on successful loads. [RT #27650] - -3273. [bug] AAAA responses could be returned in the additional - section even when filter-aaaa-on-v4 was in use. - [RT #27292] +3275. [bug] Corrected rndc -h output; the 'rndc sync -clean' + option had been misspelled as '-clear'. (To avoid + future confusion, both options now work.) [RT #27173] 3271. [port] darwin: mksymtbl is not always stable, loop several times before giving up. mksymtbl was using non portable perl to covert 64 bit hex strings. [RT #27653] + --- 9.9.0rc2 released --- + +3270. [bug] "rndc reload" didn't reuse existing zones correctly + when inline-signing was in use. [RT #27650] + +3269. [port] darwin 11 and later now built threaded by default. + 3268. [bug] Convert RRSIG expiry times to 64 timestamps to work out the earliest expiry time. [RT #23311] @@ -636,14 +794,26 @@ DNSKEY RRset was not being properly computed. [RT #26543] +3265. [bug] Corrected a problem with lock ordering in the + inline-signing code. [RT #27557] + +3264. [bug] Automatic regeneration of signatures in an + inline-signing zone could stall when the server + was restarted. [RT #27344] + +3263. [bug] "rndc sync" did not affect the unsigned side of an + inline-signing zone. [RT #27337] + 3262. [bug] Signed responses were handled incorrectly by RPZ. [RT #27316] - --- 9.8.2rc1 released --- +3261. [func] RRset ordering now defaults to random. [RT #27174] 3260. [bug] "rrset-order cyclic" could appear not to rotate for some query patterns. [RT #27170/27185] + --- 9.9.0rc1 released --- + 3259. [bug] named-compilezone: Suppress "dump zone to " message when writing to stdout. [RT #27109] @@ -655,12 +825,21 @@ 3256. [bug] Disable empty zones for lwresd -C. [RT #27139] +3255. [func] No longer require that a empty zones be explicitly + enabled or that a empty zone is disabled for + RFC 1918 empty zones to be configured. [RT #27139] + 3254. [bug] Set isc_socket_ipv6only() on the IPv6 control channels. [RT #22249] 3253. [bug] Return DNS_R_SYNTAX when the input to a text field is too long. [RT #26956] +3252. [bug] When master zones using inline-signing were + updated while the server was offline, the source + zone could fall out of sync with the signed + copy. They can now resynchronize. [RT #26676] + 3251. [bug] Enforce a upper bound (65535 bytes) on the amount of memory dns_sdlz_putrr() can allocate per record to prevent run away memory consumption on ISC_R_NOSPACE. @@ -680,8 +859,34 @@ 3247. [bug] 'raw' format zones failed to preserve load order breaking 'fixed' sort order. [RT #27087] -3243. [port] netbsd,bsdi: the thread defaults were not being - properly set. +3246. [bug] Named failed to start with a empty also-notify list. + [RT #27087] + +3245. [bug] Don't report a error unchanged serials unless there + were other changes when thawing a zone with + ixfr-fromdifferences. [RT #26845] + +3244. [func] Added readline support to nslookup and nsupdate. + Also simplified nsupdate syntax to make "update" + and "prereq" optional. [RT #24659] + +3243. [port] freebsd,netbsd,bsdi: the thread defaults were not + being properly set. + +3242. [func] Extended the header of raw-format master files to + include the serial number of the zone from which + they were generated, if different (as in the case + of inline-signing zones). This is to be used in + inline-signing zones, to track changes between the + unsigned and signed versions of the zone, which may + have different serial numbers. + + (Note: raw zonefiles generated by this version of + BIND are no longer compatible with prior versions. + To generate a backward-compatible raw zonefile + using dnssec-signzone or named-compilezone, specify + output format "raw=0" instead of simply "raw".) + [RT #26587] 3241. [bug] Address race conditions in the resolver code. [RT #26889] @@ -696,10 +901,21 @@ 3237. [bug] dig -6 didn't work with +trace. [RT #26906] - --- 9.8.2b1 released --- +3236. [bug] Backed out changes #3182 and #3202, related to + EDNS(0) fallback behavior. [RT #26416] + +3235. [func] dns_db_diffx, a extended dns_db_diff which returns + the generated diff and optionally writes it to a + journal. [RT #26386] 3234. [bug] 'make depend' produced invalid makefiles. [RT #26830] +3233. [bug] 'rndc freeze/thaw' didn't work for inline zones. + [RT #26632] + +3232. [bug] Zero zone->curmaster before return in + dns_zone_setmasterswithkeys(). [RT #26732] + 3231. [bug] named could fail to send a incompressible zone. [RT #26796] @@ -717,14 +933,29 @@ 3226. [bug] Address minor resource leakages. [RT #26624] +3225. [bug] Silence spurious "setsockopt(517, IPV6_V6ONLY) failed" + messages. [RT #26507] + +3224. [bug] 'rndc signing' argument parsing was broken. [RT #26684] + +3223. [bug] 'task_test privilege_drop' generated false positives. + [RT #26766] + +3222. [cleanup] Replace dns_journal_{get,set}_bitws with + dns_journal_{get,set}_sourceserial. [RT #26634] + 3221. [bug] Fixed a potential core dump on shutdown due to referencing fetch context after it's been freed. [RT #26720] + --- 9.9.0b2 released --- + 3220. [bug] Change #3186 was incomplete; dns_db_rpz_findips() could fail to set the database version correctly, causing an assertion failure. [RT #26180] +3219. [bug] Disable NOEDNS caching following a timeout. + 3218. [security] Cache lookup could return RRSIG data associated with nonexistent records, leading to an assertion failure. [RT #26590] @@ -733,12 +964,24 @@ 3216. [bug] resolver.c:validated() was not thread-safe. [RT #26478] +3215. [bug] 'rndc recursing' could cause a core dump. [RT #26495] + +3214. [func] Add 'named -U' option to set the number of UDP + listener threads per interface. [RT #26485] + 3213. [doc] Clarify ixfr-from-differences behavior. [RT #25188] 3212. [bug] rbtdb.c: failed to remove a node from the deadnodes list prior to adding a reference to it leading a possible assertion failure. [RT #23219] +3211. [func] dnssec-signzone: "-f -" prints to stdout; "-O full" + option prints in single-line-per-record format. + [RT #20287] + +3210. [bug] Canceling the oldest query due to recursive-client + overload could trigger an assertion failure. [RT #26463] + 3209. [func] Add "dnssec-lookaside 'no'". [RT #24858] 3208. [bug] 'dig -y' handle unknown tsig algorithm better. @@ -748,6 +991,11 @@ 3206. [cleanup] Add ISC information to log at start time. [RT #25484] +3205. [func] Upgrade dig's defaults to better reflect modern + nameserver behavior. Enable "dig +adflag" and + "dig +edns=0" by default. Enable "+dnssec" when + running "dig +trace". [RT #23497] + 3204. [bug] When a master server that has been marked as unreachable sends a NOTIFY, mark it reachable again. [RT #25960] @@ -755,12 +1003,24 @@ 3203. [bug] Increase log level to 'info' for validation failures from expired or not-yet-valid RRSIGs. [RT #21796] +3202. [bug] NOEDNS caching on timeout was too aggressive. + [RT #26416] + +3201. [func] 'rndc querylog' can now be given an on/off parameter + instead of only being used as a toggle. [RT #18351] + 3200. [doc] Some rndc functions were undocumented or were missing from 'rndc -h' output. [RT #25555] +3199. [func] When logging client information, include the name + being queried. [RT #25944] + 3198. [doc] Clarified that dnssec-settime can alter keyfile permissions. [RT #24866] +3197. [bug] Don't try to log the filename and line number when + the config parser can't open a file. [RT #22263] + 3196. [bug] nsupdate: return nonzero exit code when target zone doesn't exist. [RT #25783] @@ -789,10 +1049,50 @@ 3187. [port] win32: support for Visual Studio 2008. [RT #26356] + --- 9.9.0b1 released --- + 3186. [bug] Version/db mis-match in rpz code. [RT #26180] +3185. [func] New 'rndc signing' option for auto-dnssec zones: + - 'rndc signing -list' displays the current + state of signing operations + - 'rndc signing -clear' clears the signing state + records for keys that have fully signed the zone + - 'rndc signing -nsec3param' sets the NSEC3 + parameters for the zone + The 'rndc keydone' syntax is removed. [RT #23729] + +3184. [bug] named had excessive cpu usage when a redirect zone was + configured. [RT #26013] + +3183. [bug] Added RTLD_GLOBAL flag to dlopen call. [RT #26301] + +3182. [bug] Auth servers behind firewalls which block packets + greater than 512 bytes may cause other servers to + perform poorly. Now, adb retains edns information + and caches noedns servers. [RT #23392/24964] + +3181. [func] Inline-signing is now supported for master zones. + [RT #26224] + +3180. [func] Local copies of slave zones are now saved in raw + format by default, to improve startup performance. + 'masterfile-format text;' can be used to override + the default, if desired. [RT #25867] + 3179. [port] kfreebsd: build issues. [RT #26273] +3178. [bug] A race condition introduced by change #3163 could + cause an assertion failure on shutdown. [RT #26271] + +3177. [func] 'rndc keydone', remove the indicator record that + named has finished signing the zone with the + corresponding key. [RT #26206] + +3176. [doc] Corrected example code and added a README to the + sample external DLZ module in contrib/dlz/example. + [RT #26215] + 3175. [bug] Fix how DNSSEC positive wildcard responses from a NSEC3 signed zone are validated. Stop sending a unnecessary NSEC3 record when generating such @@ -803,9 +1103,14 @@ 3173. [port] Correctly validate root DS responses. [RT #25726] +3172. [port] darwin 10.* and freebsd [89] are now built threaded by + default. + 3171. [bug] Exclusively lock the task when adding a zone using 'rndc addzone'. [RT #25600] + --- 9.9.0a3 released --- + 3170. [func] RPZ update: - fix precedence among competing rules - improve ARM text including documenting rule precedence @@ -820,10 +1125,28 @@ 3169. [func] Catch db/version mis-matches when calling dns_db_*(). [RT #26017] +3168. [bug] Nxdomain redirection could trigger an assert with + a ANY query. [RT #26017] + 3167. [bug] Negative answers from forwarders were not being correctly tagged making them appear to not be cached. [RT #25380] +3166. [bug] Upgrading a zone to support inline-signing failed. + [RT #26014] + +3165. [bug] dnssec-signzone could generate new signatures when + resigning, even when valid signatures were already + present. [RT #26025] + +3164. [func] Enable DLZ modules to retrieve client information, + so that responses can be changed depending on the + source address of the query. [RT #25768] + +3163. [bug] Use finer-grained locking in client.c to address + concurrency problems with large numbers of threads. + [RT #26044] + 3162. [test] start.pl: modified to allow for "named.args" in ns*/ subdirectory to override stock arguments to named. Largely from RT#26044, but no separate ticket. @@ -831,24 +1154,52 @@ 3161. [bug] zone.c:del_sigs failed to always reset rdata leading assertion failures. [RT #25880] +3160. [bug] When printing out a NSEC3 record in multiline form + the newline was not being printed causing type codes + to be run together. [RT #25873] + +3159. [bug] On some platforms, named could assert on startup + when running in a chrooted environment without + /proc. [RT #25863] + +3158. [bug] Recursive servers would prefer a particular UDP + socket instead of using all available sockets. + [RT #26038] + 3157. [tuning] Reduce the time spent in "rndc reconfig" by parsing the config file before pausing the server. [RT #21373] +3156. [placeholder] + + --- 9.9.0a2 released --- + 3155. [bug] Fixed a build failure when using contrib DLZ drivers (e.g., mysql, postgresql, etc). [RT #25710] 3154. [bug] Attempting to print an empty rdataset could trigger an assert. [RT #25452] +3153. [func] Extend request-ixfr to zone level and remove the + side effect of forcing an AXFR. [RT #25156] + 3152. [cleanup] Some versions of gcc and clang failed due to incorrect use of __builtin_expect. [RT #25183] 3151. [bug] Queries for type RRSIG or SIG could be handled incorrectly. [RT #21050] +3150. [func] Improved startup and reconfiguration time by + enabling zones to load in multiple threads. [RT #25333] + +3149. [placeholder] + 3148. [bug] Processing of normal queries could be stalled when forwarding a UPDATE message. [RT #24711] +3147. [func] Initial inline signing support. [RT #23657] + + --- 9.9.0a1 released --- + 3146. [test] Fixed gcc4.6.0 errors in ATF. [RT #25598] 3145. [test] Capture output of ATF unit tests in "./atf.out" if @@ -859,29 +1210,31 @@ 3143. [bug] Silence clang compiler warnings. [RT #25174] -3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321 - for the hashing algorithms (md5, sha1 - sha512, and - their hmac counterparts). [RT #25067] - - --- 9.8.1 released --- - - --- 9.8.1rc1 released --- +3142. [bug] NAPTR is class agnostic. [RT #25429] 3141. [bug] Silence spurious "zone serial (0) unchanged" messages associated with empty zones. [RT #25079] +3140. [func] New command "rndc flushtree " clears the + specified name from the server cache along with + all names under it. [RT #19970] + +3139. [test] Added tests from RFC 6234, RFC 2202, and RFC 1321 + for the hashing algorithms (md5, sha1 - sha512, and + their hmac counterparts). [RT #25067] + 3138. [bug] Address memory leaks and out-of-order operations when shutting named down. [RT #25210] +3137. [func] Improve hardware scalability by allowing multiple + worker threads to process incoming UDP packets. + This can significantly increase query throughput + on some systems. [RT #22992] + 3136. [func] Add RFC 1918 reverse zones to the list of built-in empty zones switched on by the 'empty-zones-enable' option. [RT #24990] - Note: empty-zones-enable must be "yes;" or a empty - zone needs to be disabled in named.conf for RFC 1918 - zones to be activated. This requirement may be - removed in future releases. - 3135. [port] FreeBSD: workaround broken IPV6_USE_MIN_MTU processing. See http://www.freebsd.org/cgi/query-pr.cgi?pr=158307 [RT #24950] @@ -889,19 +1242,34 @@ 3134. [bug] Improve the accuracy of dnssec-signzone's signing statistics. [RT #16030] - --- 9.8.1b3 released --- - 3133. [bug] Change #3114 was incomplete. [RT #24577] +3132. [placeholder] + 3131. [tuning] Improve scalability by allocating one zone task per 100 zones at startup time, rather than using a fixed-size task table. [RT #24406] +3130. [func] Support alternate methods for managing a dynamic + zone's serial number. Two methods are currently + defined using serial-update-method, "increment" + (default) and "unixtime". [RT #23849] + 3129. [bug] Named could crash on 'rndc reconfig' when allow-new-zones was set to yes and named ACLs were used. [RT #22739] - --- 9.8.1b2 released --- +3128. [func] Inserting an NSEC3PARAM via dynamic update in an + auto-dnssec zone that has not been signed yet + will cause it to be signed with the specified NSEC3 + parameters when keys are activated. The + NSEC3PARAM record will not appear in the zone until + it is signed, but the parameters will be stored. + [RT #23684] + +3127. [bug] 'rndc thaw' will now remove a zone's journal file + if the zone serial number has been changed and + ixfr-from-differences is not in use. [RT #24687] 3126. [security] Using DNAME record to generate replacements caused RPZ to exit with a assertion failure. [RT #24766] @@ -941,6 +1309,12 @@ never-implemented 'auto-dnssec create' option. [RT #24533] +3116. [func] New 'dnssec-update-mode' option controls updates + of DNSSEC records in signed dynamic zones. Set to + 'no-resign' to disable automatic RRSIG regeneration + while retaining the ability to sign new or changed + data. [RT #24533] + 3115. [bug] Named could fail to return requested data when following a CNAME that points into the same zone. [RT #24455] @@ -951,8 +1325,6 @@ 3113. [doc] Document the relationship between serial-query-rate and NOTIFY messages. - --- 9.8.1b1 released --- - 3112. [doc] Add missing descriptions of the update policy name types "ms-self", "ms-subdomain", "krb5-self" and "krb5-subdomain", which allow machines to update @@ -965,9 +1337,23 @@ 3110. [bug] dnssec-signzone: Wrong error message could appear when attempting to sign with no KSK. [RT #24369] +3109. [func] The also-notify option now uses the same syntax + as a zone's masters clause. This means it is + now possible to specify a TSIG key to use when + sending notifies to a given server, or to include + an explicit named masters list in an also-notfiy + statement. [RT #23508] + +3108. [cleanup] dnssec-signzone: Clarified some error and + warning messages; removed #ifdef ALLOW_KSKLESS_ZONES + code (use -P instead). [RT #20852] + 3107. [bug] dnssec-signzone: Report the correct number of ZSKs when using -x. [RT #20852] +3106. [func] When logging client requests, include the name of + the TSIG key if any. [RT #23619] + 3105. [bug] GOST support can be suppressed by "configure --without-gost" [RT #24367] @@ -977,6 +1363,12 @@ instead of in the options statement could trigger an assertion failure in named-checkconf. [RT #24382] *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 11:11:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B7A0970C; Wed, 14 Aug 2013 11:11:49 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8CF252168; Wed, 14 Aug 2013 11:11:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EBBnEN011873; Wed, 14 Aug 2013 11:11:49 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EBBnwp011872; Wed, 14 Aug 2013 11:11:49 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308141111.r7EBBnwp011872@svn.freebsd.org> From: Erwin Lansing Date: Wed, 14 Aug 2013 11:11:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254323 - vendor/bind9/9.9.3-P2 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 11:11:49 -0000 Author: erwin Date: Wed Aug 14 11:11:49 2013 New Revision: 254323 URL: http://svnweb.freebsd.org/changeset/base/254323 Log: Tag the Bind 9.9.3-P2 import Approved by: delphij (mentor, implicit) Sponsored by: DK Hostmaster A/S Added: vendor/bind9/9.9.3-P2/ - copied from r254322, vendor/bind9/dist/ From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 13:57:25 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1D717D19; Wed, 14 Aug 2013 13:57:25 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E72A52CA2; Wed, 14 Aug 2013 13:57:24 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 0AC3DB91C; Wed, 14 Aug 2013 09:57:23 -0400 (EDT) From: John Baldwin To: Mark Johnston Subject: Re: svn commit: r254309 - in head: share/man/man9 sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/dev/dtrace sys/cddl/dev/sdt sys/kern sys/sys Date: Wed, 14 Aug 2013 08:19:13 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p28; KDE/4.5.5; amd64; ; ) References: <201308140042.r7E0gMtf054550@svn.freebsd.org> In-Reply-To: <201308140042.r7E0gMtf054550@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201308140819.13854.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 14 Aug 2013 09:57:23 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 13:57:25 -0000 On Tuesday, August 13, 2013 8:42:22 pm Mark Johnston wrote: > Author: markj > Date: Wed Aug 14 00:42:21 2013 > New Revision: 254309 > URL: http://svnweb.freebsd.org/changeset/base/254309 > > Log: > Use kld_{load,unload} instead of mod_{load,unload} for the linker file load > and unload event handlers added in r254266. > > Reported by: jhb > X-MFC with: r254266 Thanks! BTW, it would be really nice to replace HWPMC_HOOKS in kern_linker.c with EVENTHANDLER calls. I think kld_load would just work (though you might need to downgrade the lock before you run it). For kld_unload it seems you want two events, a kld_unload_try for your newly added event (since it can reject a kld_unload), and perhaps kld_unload at the end where the current HWPMC_HOOK is. Just an idea if someone is looking for something to do. I know there are other modules that need to hook into linker events like this, and making HWPMC_HOOKS more generic would be a big help. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 13:57:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6334BD1B; Wed, 14 Aug 2013 13:57:27 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 356172CA3; Wed, 14 Aug 2013 13:57:27 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 16CDDB95B; Wed, 14 Aug 2013 09:57:26 -0400 (EDT) From: John Baldwin To: David Chisnall Subject: Re: svn commit: r253802 - head/contrib/llvm/tools/clang/lib/Headers Date: Wed, 14 Aug 2013 08:21:50 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p28; KDE/4.5.5; amd64; ; ) References: <201307301233.r6UCXLT8012177@svn.freebsd.org> <20130813205736.GA68244@stack.nl> <2A4F32C7-939D-4C4D-A136-D99FC06C486E@FreeBSD.org> In-Reply-To: <2A4F32C7-939D-4C4D-A136-D99FC06C486E@FreeBSD.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201308140821.50565.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 14 Aug 2013 09:57:26 -0400 (EDT) Cc: Matthew Fleming , "src-committers@FreeBSD.org" , Jilles Tjoelker , "svn-src-all@FreeBSD.org" , Dimitry Andric , "svn-src-head@FreeBSD.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 13:57:27 -0000 On Wednesday, August 14, 2013 4:23:11 am David Chisnall wrote: > On 13 Aug 2013, at 21:57, Jilles Tjoelker wrote: > > > Given that JIT is for performance and larger addresses increase code > > size and register pressure, the mmap() flag is probably useful. > > Alternatively, all the JITted code could be placed in one block and use > > relative addressing. > > This would be a good thing to have in for 10.0, as the LLVM 3.4 JIT will > require it unless someone wants to contribute support for the large code > model... So you just need a flag to cap the virtual address at 2GB? Do you think we need an arbitrary address flag for this, or is a hardcoded 2GB flag ok? Linux has a MAP_32BIT that does what you want I think. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 13:59:18 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3E5DC164; Wed, 14 Aug 2013 13:59:18 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from theravensnest.org (theraven.freebsd.your.org [216.14.102.27]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 09AD12CB9; Wed, 14 Aug 2013 13:59:17 +0000 (UTC) Received: from dhcp-172-17-154-34.eduroam.lapwing.private.cam.ac.uk (global-1-26.nat.csx.cam.ac.uk [131.111.184.26]) (authenticated bits=0) by theravensnest.org (8.14.5/8.14.5) with ESMTP id r7EDxEZe021168 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Wed, 14 Aug 2013 13:59:15 GMT (envelope-from theraven@FreeBSD.org) Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\)) Subject: Re: svn commit: r253802 - head/contrib/llvm/tools/clang/lib/Headers From: David Chisnall In-Reply-To: <201308140821.50565.jhb@freebsd.org> Date: Wed, 14 Aug 2013 14:59:09 +0100 Content-Transfer-Encoding: 7bit Message-Id: <32EA01FA-4E66-4764-9928-E1435ADEAE1C@FreeBSD.org> References: <201307301233.r6UCXLT8012177@svn.freebsd.org> <20130813205736.GA68244@stack.nl> <2A4F32C7-939D-4C4D-A136-D99FC06C486E@FreeBSD.org> <201308140821.50565.jhb@freebsd.org> To: John Baldwin X-Mailer: Apple Mail (2.1508) Cc: Matthew Fleming , "src-committers@FreeBSD.org" , Jilles Tjoelker , "svn-src-all@FreeBSD.org" , Dimitry Andric , "svn-src-head@FreeBSD.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 13:59:18 -0000 On 14 Aug 2013, at 13:21, John Baldwin wrote: > On Wednesday, August 14, 2013 4:23:11 am David Chisnall wrote: >> On 13 Aug 2013, at 21:57, Jilles Tjoelker wrote: >> >>> Given that JIT is for performance and larger addresses increase code >>> size and register pressure, the mmap() flag is probably useful. >>> Alternatively, all the JITted code could be placed in one block and use >>> relative addressing. >> >> This would be a good thing to have in for 10.0, as the LLVM 3.4 JIT will >> require it unless someone wants to contribute support for the large code >> model... > > So you just need a flag to cap the virtual address at 2GB? Do you think we > need an arbitrary address flag for this, or is a hardcoded 2GB flag ok? > > Linux has a MAP_32BIT that does what you want I think. Yes, MAP_32BIT is used on Linux to solve this. David From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 14:22:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 34273D05; Wed, 14 Aug 2013 14:22:47 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 20F4F2E5C; Wed, 14 Aug 2013 14:22:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EEMkc5084265; Wed, 14 Aug 2013 14:22:47 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EEMk30084264; Wed, 14 Aug 2013 14:22:46 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201308141422.r7EEMk30084264@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Wed, 14 Aug 2013 14:22:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254326 - head/sys/fs/ext2fs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 14:22:47 -0000 Author: pfg Date: Wed Aug 14 14:22:46 2013 New Revision: 254326 URL: http://svnweb.freebsd.org/changeset/base/254326 Log: ext2fs: update format specifiers for ext4 type. Previous bandaid was not appropriate and didn't really work for all platforms. While here, cleanup the surrounding code to match ffs_checkoverlap() Reported by: dim, jmallet and bde MFC after: 3 weeks Modified: head/sys/fs/ext2fs/ext2_subr.c Modified: head/sys/fs/ext2fs/ext2_subr.c ============================================================================== --- head/sys/fs/ext2fs/ext2_subr.c Wed Aug 14 12:43:01 2013 (r254325) +++ head/sys/fs/ext2fs/ext2_subr.c Wed Aug 14 14:22:46 2013 (r254326) @@ -150,10 +150,10 @@ ext2_checkoverlap(struct buf *bp, struct ep->b_blkno + btodb(ep->b_bcount) <= start) continue; vprint("Disk overlap", vp); - (void)printf("\tstart %ld, end %ld overlap start %lld, end %ld\n", - start, last, (long long)ep->b_blkno, - (long)(ep->b_blkno + btodb(ep->b_bcount) - 1)); - panic("Disk buffer overlap"); + printf("\tstart %jd, end %jd overlap start %jd, end %jd\n", + (intmax_t)start, (intmax_t)last, (intmax_t)ep->b_blkno, + (intmax_t)(ep->b_blkno + btodb(ep->b_bcount) - 1)); + panic("ext2_checkoverlap: Disk buffer overlap"); } } #endif /* KDB */ From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 14:34:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2469F113; Wed, 14 Aug 2013 14:34:03 +0000 (UTC) (envelope-from theraven@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 124552EF5; Wed, 14 Aug 2013 14:34:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EEY2CK088064; Wed, 14 Aug 2013 14:34:02 GMT (envelope-from theraven@svn.freebsd.org) Received: (from theraven@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EEY2PH088063; Wed, 14 Aug 2013 14:34:02 GMT (envelope-from theraven@svn.freebsd.org) Message-Id: <201308141434.r7EEY2PH088063@svn.freebsd.org> From: David Chisnall Date: Wed, 14 Aug 2013 14:34:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254327 - head/usr.bin/dtc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 14:34:03 -0000 Author: theraven Date: Wed Aug 14 14:34:02 2013 New Revision: 254327 URL: http://svnweb.freebsd.org/changeset/base/254327 Log: Make carets line up in dtc diagnostics if the line starts with a tab. Modified: head/usr.bin/dtc/input_buffer.cc Modified: head/usr.bin/dtc/input_buffer.cc ============================================================================== --- head/usr.bin/dtc/input_buffer.cc Wed Aug 14 14:22:46 2013 (r254326) +++ head/usr.bin/dtc/input_buffer.cc Wed Aug 14 14:34:02 2013 (r254327) @@ -216,7 +216,8 @@ input_buffer::parse_error(const char *ms putc('\n', stderr); for (int i=0 ; i<(cursor-line_start) ; ++i) { - putc(' ', stderr); + char c = (buffer[i+line_start] == '\t') ? '\t' : ' '; + putc(c, stderr); } putc('^', stderr); putc('\n', stderr); From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 14:38:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 88B1C29F; Wed, 14 Aug 2013 14:38:11 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from smtpauth2.wiscmail.wisc.edu (wmauth2.doit.wisc.edu [144.92.197.222]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5DF422F1E; Wed, 14 Aug 2013 14:38:10 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from avs-daemon.smtpauth2.wiscmail.wisc.edu by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) id <0MRI00I00ZBCXR00@smtpauth2.wiscmail.wisc.edu>; Wed, 14 Aug 2013 09:38:04 -0500 (CDT) X-Spam-PmxInfo: Server=avs-2, Version=6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2013.8.14.134024, SenderIP=0.0.0.0 X-Spam-Report: AuthenticatedSender=yes, SenderIP=0.0.0.0 Received: from wanderer.tachypleus.net (college9-20-110.resnet.ucsc.edu [169.233.20.110]) by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) with ESMTPSA id <0MRI00I7SZBE5400@smtpauth2.wiscmail.wisc.edu>; Wed, 14 Aug 2013 09:38:03 -0500 (CDT) Message-id: <520B964A.1080200@freebsd.org> Date: Wed, 14 Aug 2013 07:38:02 -0700 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130811 Thunderbird/17.0.8 To: Glen Barber Subject: Re: svn commit: r254293 - head/release References: <201308132016.r7DKGEoR074586@svn.freebsd.org> In-reply-to: <201308132016.r7DKGEoR074586@svn.freebsd.org> X-Enigmail-Version: 1.5.1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 14:38:11 -0000 On 08/13/13 13:16, Glen Barber wrote: > Author: gjb > Date: Tue Aug 13 20:16:14 2013 > New Revision: 254293 > URL: http://svnweb.freebsd.org/changeset/base/254293 > > Log: > - Only set ARCH_FLAGS (TARGET/TARGET_ARCH) if specified, otherwise > allow the toolchain to detect the correct values. > > - Remove {SRC,DOC,PORT}REVISION variables, and use 'branch@rNNNNNN' > as the {SRC,DOC,PORT}BRANCH variables. > > - Only set default KERNEL_FLAGS and WORLD_FLAGS make(1) jobs if the > number of CPUs is greater than 1. > Could you update the "Clean Release Generation" section of release(7) as you make changes like this? -Nathan From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 14:42:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A432F962; Wed, 14 Aug 2013 14:42:18 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 778972F95; Wed, 14 Aug 2013 14:42:18 +0000 (UTC) Received: from glenbarber.us (nucleus.glenbarber.us [IPv6:2001:470:8:1205:2:2:ff:29]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 046A0E7B0; Wed, 14 Aug 2013 14:42:14 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 046A0E7B0 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Wed, 14 Aug 2013 10:42:13 -0400 From: Glen Barber To: Nathan Whitehorn Subject: Re: svn commit: r254293 - head/release Message-ID: <20130814144213.GH2241@glenbarber.us> References: <201308132016.r7DKGEoR074586@svn.freebsd.org> <520B964A.1080200@freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="KrHCbChajFcK0yQE" Content-Disposition: inline In-Reply-To: <520B964A.1080200@freebsd.org> X-Operating-System: FreeBSD 10.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 14:42:18 -0000 --KrHCbChajFcK0yQE Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 14, 2013 at 07:38:02AM -0700, Nathan Whitehorn wrote: > On 08/13/13 13:16, Glen Barber wrote: > > Author: gjb > > Date: Tue Aug 13 20:16:14 2013 > > New Revision: 254293 > > URL: http://svnweb.freebsd.org/changeset/base/254293 > > > > Log: > > - Only set ARCH_FLAGS (TARGET/TARGET_ARCH) if specified, otherwise > > allow the toolchain to detect the correct values. > > =20 > > - Remove {SRC,DOC,PORT}REVISION variables, and use 'branch@rNNNNNN' > > as the {SRC,DOC,PORT}BRANCH variables. > > =20 > > - Only set default KERNEL_FLAGS and WORLD_FLAGS make(1) jobs if the > > number of CPUs is greater than 1. > > =20 >=20 > Could you update the "Clean Release Generation" section of release(7) as > you make changes like this? Oops, I forgot to remove the *REVISION entries. Thanks. Glen --KrHCbChajFcK0yQE Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) iQEcBAEBCAAGBQJSC5dFAAoJEFJPDDeguUajZ0cH/AmUBzcccOU6L41Anw8wWU2/ CpC7iq4SKa3VP3/lpVOTLrO9LzE0rXgQP0yONqv75nbuP5j11vJpJMPHRDTfDriZ l76LMj1iUBXlAw00BflkdsF69BSoz7//n1bIsajcwpPjuqAIe1JYDa6oyB7Ugm/N uASKTsh4DTNRZZ898Wt66plDl1XAupGw+pCsOEvixJ4gt38URByMTdyGOh8LxUwD TUyyHVrSHWN4K888qbGFBxyE2YosI3N4IvTHPrhJnm9T43W8aUI2jreQljQJ+eQJ KBjL3JRaGvmaJGMM8bkYpNurU6UW/pp83AYsS+xUo9odU7RMbbseayfbiqhepXk= =Mf5G -----END PGP SIGNATURE----- --KrHCbChajFcK0yQE-- From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 14:45:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2BFC5AF5; Wed, 14 Aug 2013 14:45:48 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 198E12FBF; Wed, 14 Aug 2013 14:45:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EEjlUr092349; Wed, 14 Aug 2013 14:45:47 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EEjlgq092348; Wed, 14 Aug 2013 14:45:47 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308141445.r7EEjlgq092348@svn.freebsd.org> From: Glen Barber Date: Wed, 14 Aug 2013 14:45:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254328 - head/share/man/man7 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 14:45:48 -0000 Author: gjb Date: Wed Aug 14 14:45:47 2013 New Revision: 254328 URL: http://svnweb.freebsd.org/changeset/base/254328 Log: Remove the {SRC,DOC,PORT}REVISION variables from release(7), and update the default {SRC,DOC,PORT}BRANCH defaults. Submitted by: nwhitehorn X-MFC-With: r254224, r254294 X-MFC-To: stable/9, releng/9.2 Modified: head/share/man/man7/release.7 Modified: head/share/man/man7/release.7 ============================================================================== --- head/share/man/man7/release.7 Wed Aug 14 14:34:02 2013 (r254327) +++ head/share/man/man7/release.7 Wed Aug 14 14:45:47 2013 (r254328) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 13, 2013 +.Dd August 14, 2013 .Dt RELEASE 7 .Os .Sh NAME @@ -149,34 +149,19 @@ The .Li src/ branch to use. Defaults to -.Va head/ . +.Va head/@rHEAD . .It Va DOCBRANCH The .Li doc/ branch to use. Defaults to -.Va head/ . +.Va head/@rHEAD . .It Va PORTBRANCH The .Li ports/ branch to use. Defaults to -.Va head/ . -.It Va SRCREVISION -The revision of the -.Li src/ -tree to use. -Defaults to the current top of tree revision. -.It Va DOCREVISION -The revision of the -.Li doc/ -tree to use. -Defaults to the current top of tree revision. -.It Va PORTREVISION -The revision of the -.Li ports/ -tree to use. -Defaults to the current top of tree revision. +.Va head/@rHEAD . .It Va TARGET The target machine type for cross-building a release. .It Va TARGET_ARCH From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 14:50:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 86162D19; Wed, 14 Aug 2013 14:50:36 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from smtpauth2.wiscmail.wisc.edu (wmauth2.doit.wisc.edu [144.92.197.222]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5BAD72FE2; Wed, 14 Aug 2013 14:50:35 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII Received: from avs-daemon.smtpauth2.wiscmail.wisc.edu by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) id <0MRI00L00ZNS8100@smtpauth2.wiscmail.wisc.edu>; Wed, 14 Aug 2013 09:50:35 -0500 (CDT) X-Spam-PmxInfo: Server=avs-2, Version=6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2013.8.14.134024, SenderIP=0.0.0.0 X-Spam-Report: AuthenticatedSender=yes, SenderIP=0.0.0.0 Received: from wanderer.tachypleus.net (college9-20-110.resnet.ucsc.edu [169.233.20.110]) by smtpauth2.wiscmail.wisc.edu (Oracle Communications Messaging Server 7u4-27.01(7.0.4.27.0) 64bit (built Aug 30 2012)) with ESMTPSA id <0MRI00M0IZW9MV00@smtpauth2.wiscmail.wisc.edu>; Wed, 14 Aug 2013 09:50:34 -0500 (CDT) Message-id: <520B9939.5060101@freebsd.org> Date: Wed, 14 Aug 2013 07:50:33 -0700 From: Nathan Whitehorn User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130811 Thunderbird/17.0.8 To: Glen Barber Subject: Re: svn commit: r254293 - head/release References: <201308132016.r7DKGEoR074586@svn.freebsd.org> <520B964A.1080200@freebsd.org> <20130814144213.GH2241@glenbarber.us> In-reply-to: <20130814144213.GH2241@glenbarber.us> X-Enigmail-Version: 1.5.1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 14:50:36 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 08/14/13 07:42, Glen Barber wrote: > On Wed, Aug 14, 2013 at 07:38:02AM -0700, Nathan Whitehorn wrote: >> On 08/13/13 13:16, Glen Barber wrote: >>> Author: gjb >>> Date: Tue Aug 13 20:16:14 2013 >>> New Revision: 254293 >>> URL: http://svnweb.freebsd.org/changeset/base/254293 >>> >>> Log: >>> - Only set ARCH_FLAGS (TARGET/TARGET_ARCH) if specified, otherwise >>> allow the toolchain to detect the correct values. >>> >>> - Remove {SRC,DOC,PORT}REVISION variables, and use 'branch@rNNNNNN' >>> as the {SRC,DOC,PORT}BRANCH variables. >>> >>> - Only set default KERNEL_FLAGS and WORLD_FLAGS make(1) jobs if the >>> number of CPUs is greater than 1. >>> >> >> Could you update the "Clean Release Generation" section of release(7) as >> you make changes like this? > > Oops, I forgot to remove the *REVISION entries. Thanks. > > Glen > Thanks! - -Nathan -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.20 (FreeBSD) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlILmTkACgkQhRNblvwRglj2uACeNC1hui65qC1siJUnqNItNrLi SR8AnijIk10l+stMqJhGMN9MyZmbxFVA =RUpk -----END PGP SIGNATURE----- From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 15:18:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DD0B47DE; Wed, 14 Aug 2013 15:18:29 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AFE19219E; Wed, 14 Aug 2013 15:18:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EFITI7004658; Wed, 14 Aug 2013 15:18:29 GMT (envelope-from smh@svn.freebsd.org) Received: (from smh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EFITt1004656; Wed, 14 Aug 2013 15:18:29 GMT (envelope-from smh@svn.freebsd.org) Message-Id: <201308141518.r7EFITt1004656@svn.freebsd.org> From: Steven Hartland Date: Wed, 14 Aug 2013 15:18:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254329 - in head/sys/cam: ata scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 15:18:29 -0000 Author: smh Date: Wed Aug 14 15:18:28 2013 New Revision: 254329 URL: http://svnweb.freebsd.org/changeset/base/254329 Log: Added 4K quirks for:- * OCZ Agility 2 SSDs * Marvell SSDs * Intel X25-M Series SSDs Modified: head/sys/cam/ata/ata_da.c head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Wed Aug 14 14:45:47 2013 (r254328) +++ head/sys/cam/ata/ata_da.c Wed Aug 14 15:18:28 2013 (r254329) @@ -349,6 +349,14 @@ static struct ada_quirk_entry ada_quirk_ }, { /* + * Intel X25-M Series SSDs + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "*", "INTEL SSDSA2M*", "*" }, + /*quirks*/ADA_Q_4K + }, + { + /* * Kingston E100 Series SSDs * 4k optimised & trim only works in 4k requests + 4k aligned */ @@ -365,6 +373,22 @@ static struct ada_quirk_entry ada_quirk_ }, { /* + * Marvell SSDs (entry taken from OpenSolaris) + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "*", "MARVELL SD88SA02*", "*" }, + /*quirks*/ADA_Q_4K + }, + { + /* + * OCZ Agility 2 SSDs + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "*", "OCZ-AGILITY2*", "*" }, + /*quirks*/ADA_Q_4K + }, + { + /* * OCZ Agility 3 SSDs * 4k optimised & trim only works in 4k requests + 4k aligned */ Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Wed Aug 14 14:45:47 2013 (r254328) +++ head/sys/cam/scsi/scsi_da.c Wed Aug 14 15:18:28 2013 (r254329) @@ -1008,6 +1008,14 @@ static struct da_quirk_entry da_quirk_ta }, { /* + * Intel X25-M Series SSDs + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "INTEL SSDSA2M*", "*" }, + /*quirks*/DA_Q_4K + }, + { + /* * Kingston E100 Series SSDs * 4k optimised & trim only works in 4k requests + 4k aligned */ @@ -1024,6 +1032,22 @@ static struct da_quirk_entry da_quirk_ta }, { /* + * Marvell SSDs (entry taken from OpenSolaris) + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "MARVELL SD88SA02*", "*" }, + /*quirks*/DA_Q_4K + }, + { + /* + * OCZ Agility 2 SSDs + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "*", "OCZ-AGILITY2*", "*" }, + /*quirks*/DA_Q_4K + }, + { + /* * OCZ Agility 3 SSDs * 4k optimised & trim only works in 4k requests + 4k aligned */ From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 15:50:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 03EB063A; Wed, 14 Aug 2013 15:50:35 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E4F5923C0; Wed, 14 Aug 2013 15:50:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EFoYTi018214; Wed, 14 Aug 2013 15:50:34 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EFoYhk018213; Wed, 14 Aug 2013 15:50:34 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <201308141550.r7EFoYhk018213@svn.freebsd.org> From: Sean Bruno Date: Wed, 14 Aug 2013 15:50:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254330 - head/sys/dev/mfi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 15:50:35 -0000 Author: sbruno Date: Wed Aug 14 15:50:34 2013 New Revision: 254330 URL: http://svnweb.freebsd.org/changeset/base/254330 Log: If sys/param.h MAXPHYS has been tuned to exceed MFI_MAXPHYS, the mfi(4) real JBOD mode (SYS PD) would fail fairly reliably during I/O. Steal the mfi_disk.c check for this condition (indirectly) when establishing d_maxsize. Reviewed by: ambrisko@ MFC after: 4 weeks Sponsored by: Yahoo! Inc. Modified: head/sys/dev/mfi/mfi_syspd.c Modified: head/sys/dev/mfi/mfi_syspd.c ============================================================================== --- head/sys/dev/mfi/mfi_syspd.c Wed Aug 14 15:18:28 2013 (r254329) +++ head/sys/dev/mfi/mfi_syspd.c Wed Aug 14 15:50:34 2013 (r254330) @@ -126,7 +126,8 @@ mfi_syspd_attach(device_t dev) sectors / (1024 * 1024 / secsize), sectors, sc->pd_id); sc->pd_disk = disk_alloc(); sc->pd_disk->d_drv1 = sc; - sc->pd_disk->d_maxsize = sc->pd_controller->mfi_max_io * secsize; + sc->pd_disk->d_maxsize = min(sc->pd_controller->mfi_max_io * secsize, + (sc->pd_controller->mfi_max_sge - 1) * PAGE_SIZE); sc->pd_disk->d_name = "mfisyspd"; sc->pd_disk->d_open = mfi_syspd_open; sc->pd_disk->d_close = mfi_syspd_close; From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 16:15:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D24F0C0F; Wed, 14 Aug 2013 16:15:14 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AFDBE24DE; Wed, 14 Aug 2013 16:15:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EGFEkb027210; Wed, 14 Aug 2013 16:15:14 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EGFErK027209; Wed, 14 Aug 2013 16:15:14 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201308141615.r7EGFErK027209@svn.freebsd.org> From: Devin Teske Date: Wed, 14 Aug 2013 16:15:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254331 - stable/9/sys/boot/forth X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 16:15:14 -0000 Author: dteske Date: Wed Aug 14 16:15:14 2013 New Revision: 254331 URL: http://svnweb.freebsd.org/changeset/base/254331 Log: MFC r254237: Add optional support for default override of standard setup; but only if corresponding functions are provided. If override function does not exist, boot remains unmodified. This patch should not result in any changes. Modified: stable/9/sys/boot/forth/beastie.4th Directory Properties: stable/9/sys/ (props changed) stable/9/sys/boot/ (props changed) stable/9/sys/boot/forth/ (props changed) Modified: stable/9/sys/boot/forth/beastie.4th ============================================================================== --- stable/9/sys/boot/forth/beastie.4th Wed Aug 14 15:50:34 2013 (r254330) +++ stable/9/sys/boot/forth/beastie.4th Wed Aug 14 16:15:14 2013 (r254331) @@ -123,6 +123,76 @@ variable logoY 0 25 at-xy ; +: tribute-art ( x y -- ) \ see tribute[bw]-logo + + \ Disable the brand art (we're going to use that space) + s" set loader_brand=none" evaluate + + \ Blank out the frame of the menu and move the title to left + s" set loader_menu_title=" evaluate + s" set loader_menu_frame=none" evaluate + + \ Move the menu to the center of the screen + s" set loader_menu_x=26" evaluate + s" set loader_menu_y=13" evaluate + s" set loader_menu_timeout_x=21" evaluate + s" set loader_menu_timeout_y=24" evaluate + + 2 - swap 39 - swap \ top-left (see `fbsdbw-logo' comments above) + + 2dup at-xy 11 spaces ." ,d b." 1+ + 2dup at-xy ." ,d88] [88b." 1+ + 2dup at-xy ." ,d888P" 34 emit ." ,d88b. " 34 emit ." Y888b." 1+ + 2dup at-xy ." , <888P" 34 emit ." ,dP" 34 emit ." ,db." 34 emit + ." Yb. " 34 emit ." Y888> ," 1+ + 2dup at-xy ." <88b.~ ,d888 " 34 emit ." YP" 34 emit + ." 888b. ~,d88>" 1+ + 2dup at-xy ." ," 34 emit ." Y888888P" 34 emit ." ,db.,db." 34 emit + ." Y888888P" 34 emit ." ," 1+ + 2dup at-xy ." <88b." 34 emit ." YP" 34 emit ." _ " 34 emit + ." YP" 34 emit 34 emit ." YP" 34 emit ." _ " 34 emit + ." YP" 34 emit ." ,d88>" 1+ + 2dup at-xy ." " 34 emit ." Y88b.,dP Yb.,d88P" 34 emit 1+ + at-xy ." " 34 emit ." YP" 34 emit ." " 34 emit + ." YP" 34 emit ." " +; + +: tribute-text ( x y -- ) \ see tribute[bw]-logo + + swap 2 - swap \ beastie adjustment (see `fbsdbw-logo' comments above) + + 2dup at-xy ." CEO Workstation" 1+ + 1+ + 2dup at-xy ." Nakatomi Socrates FreeBSD 9.2" 1+ + 2dup at-xy ." Z-Level Central Core" 1+ + 1+ + at-xy ." Preliminary Clearance Approved." +; + +: tribute-logo ( x y -- ) \ color Socrates tribute (16 rows x 32 columns) + + \ Produce the tribute art in bright green + 2dup at-xy ." " 2dup tribute-art ." " + + \ Produce the tribute text in regular green + 2dup at-xy ." " 2dup tribute-text ." " + + \ Distinguish the ``Free'' in tribute-text + 2 + swap 16 + swap at-xy ." Free" + + \ Put the cursor back at the bottom + 0 25 at-xy +; + +: tributebw-logo ( x y -- ) \ Socrates tribute (16 rows x 32 columns) + + \ Produce the tribute art and text + 2dup tribute-art tribute-text + + \ Put the cursor back at the bottom + 0 25 at-xy +; + : orb-logo ( x y -- ) \ color Orb mascot (15 rows x 30 columns) 3 + \ beastie adjustment (see `fbsdbw-logo' comments above) @@ -181,8 +251,10 @@ variable logoY \ beastie Color ``Helper Daemon'' mascot (19 rows x 34 columns) \ beastiebw B/W ``Helper Daemon'' mascot (19 rows x 34 columns) \ fbsdbw "FreeBSD" logo in B/W (13 rows x 21 columns) -\ orb Color ``Orb'' mascot (15 rows x 30 columns) (default) +\ orb Color ``Orb'' mascot (15 rows x 30 columns) (2nd default) \ orbbw B/W ``Orb'' mascot (15 rows x 32 columns) +\ tribute Color ``Tribute'' (must fit 19 rows x 34 columns) (default) +\ tributebw B/W ``Tribute'' (must fit 19 rows x 34 columns) \ \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will \ prevent beastie from being drawn. @@ -203,9 +275,21 @@ variable logoY s" loader_logo" getenv dup -1 = if logoX @ logoY @ loader_color? if - orb-logo + s" tribute-logo" + sfind if + execute + else + drop + orb-logo + then else - orbbw-logo + s" tributebw-logo" + sfind if + execute + else + drop + orbbw-logo + then then drop exit then @@ -230,6 +314,24 @@ variable logoY logoX @ logoY @ orbbw-logo 2drop exit then + 2dup s" tribute" compare-insensitive 0= if + logoX @ logoY @ + s" tribute-logo" sfind if + execute + else + orb-logo + then + 2drop exit + then + 2dup s" tributebw" compare-insensitive 0= if + logoX @ logoY @ + s" tributebw-logo" sfind if + execute + else + orbbw-logo + then + 2drop exit + then 2drop ; From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 17:49:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 27393474; Wed, 14 Aug 2013 17:49:09 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 146902A65; Wed, 14 Aug 2013 17:49:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EHn86q061458; Wed, 14 Aug 2013 17:49:08 GMT (envelope-from jlh@svn.freebsd.org) Received: (from jlh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EHn8Gq061456; Wed, 14 Aug 2013 17:49:08 GMT (envelope-from jlh@svn.freebsd.org) Message-Id: <201308141749.r7EHn8Gq061456@svn.freebsd.org> From: Jeremie Le Hen Date: Wed, 14 Aug 2013 17:49:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254332 - stable/9/etc X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 17:49:09 -0000 Author: jlh Date: Wed Aug 14 17:49:08 2013 New Revision: 254332 URL: http://svnweb.freebsd.org/changeset/base/254332 Log: MFC r253853: Include /usr/local/etc/libmap.d/ by default. PR: 180568 Reviewed by: bapt Obtained from: kib Added: stable/9/etc/libmap.conf - copied unchanged from r253853, head/etc/libmap.conf Modified: stable/9/etc/Makefile Directory Properties: stable/9/etc/ (props changed) Modified: stable/9/etc/Makefile ============================================================================== --- stable/9/etc/Makefile Wed Aug 14 16:15:14 2013 (r254331) +++ stable/9/etc/Makefile Wed Aug 14 17:49:08 2013 (r254332) @@ -22,6 +22,7 @@ BIN1= crontab \ hosts.equiv \ inetd.conf \ libalias.conf \ + libmap.conf \ login.access \ login.conf \ mac.conf \ Copied: stable/9/etc/libmap.conf (from r253853, head/etc/libmap.conf) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/etc/libmap.conf Wed Aug 14 17:49:08 2013 (r254332, copy of r253853, head/etc/libmap.conf) @@ -0,0 +1,2 @@ +# $FreeBSD$ +includedir /usr/local/etc/libmap.d From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 18:14:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 69D7AC69; Wed, 14 Aug 2013 18:14:55 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-vc0-x22d.google.com (mail-vc0-x22d.google.com [IPv6:2607:f8b0:400c:c03::22d]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E41B62BFC; Wed, 14 Aug 2013 18:14:54 +0000 (UTC) Received: by mail-vc0-f173.google.com with SMTP id id13so5368688vcb.4 for ; Wed, 14 Aug 2013 11:14:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=/MN+s0ON/M7nubbRoO1nmZTDLFnPJRGTTjqzv4zKVXI=; b=hHXT6jwEZKuHY6a2Ul7W//DFVbkmePcbVNYJ44bfANoc2RNihh84uvC43lqqRI2S2O kZnaXoKiI7IeV7MgZiH8ikuFCJrXdCqb6b5zdgM/mIDlE68GXiiDOSSKtQu3FE167yfE eJ3tMW0zyQUtZ236PYp2kIySW02pKybv+piwrXwaq5ocsut3Wz2uhCysK75oVKPDXBLN gmDAE6hGc9UAkvqeBcqDs7iaK84a1IH/8dHvICewZ3Xeco+A2zEsgwSY6lj9UAEXOkcI n05GnAid2i7wVGHULr6Ys2H4hkzijJqJkm9MFvwgMa6i8pEeupR2zTftID9YM/dm9q0Z /jLA== MIME-Version: 1.0 X-Received: by 10.52.34.209 with SMTP id b17mr9837vdj.111.1376504094037; Wed, 14 Aug 2013 11:14:54 -0700 (PDT) Sender: markjdb@gmail.com Received: by 10.220.65.4 with HTTP; Wed, 14 Aug 2013 11:14:53 -0700 (PDT) In-Reply-To: <201308140819.13854.jhb@freebsd.org> References: <201308140042.r7E0gMtf054550@svn.freebsd.org> <201308140819.13854.jhb@freebsd.org> Date: Wed, 14 Aug 2013 14:14:53 -0400 X-Google-Sender-Auth: v7L2t5m7b3MQeKZAMLEG-wvP-Fg Message-ID: Subject: Re: svn commit: r254309 - in head: share/man/man9 sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/dev/dtrace sys/cddl/dev/sdt sys/kern sys/sys From: Mark Johnston To: John Baldwin Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 18:14:55 -0000 On Wed, Aug 14, 2013 at 8:19 AM, John Baldwin wrote: > On Tuesday, August 13, 2013 8:42:22 pm Mark Johnston wrote: > > Author: markj > > Date: Wed Aug 14 00:42:21 2013 > > New Revision: 254309 > > URL: http://svnweb.freebsd.org/changeset/base/254309 > > > > Log: > > Use kld_{load,unload} instead of mod_{load,unload} for the linker file > load > > and unload event handlers added in r254266. > > > > Reported by: jhb > > X-MFC with: r254266 > > Thanks! BTW, it would be really nice to replace HWPMC_HOOKS in > kern_linker.c with > EVENTHANDLER calls. I think kld_load would just work (though you might > need to > downgrade the lock before you run it). For kld_unload it seems you want > two events, > a kld_unload_try for your newly added event (since it can reject a > kld_unload), and > perhaps kld_unload at the end where the current HWPMC_HOOK is. Just an > idea if > someone is looking for something to do. I know there are other modules > that need > to hook into linker events like this, and making HWPMC_HOOKS more generic > would be > a big help. > I will look into doing this. The DTrace SDT kld_load handler will not work properly if the linker lock is downgraded first because of the following code in linker_file_lookup_set(): locked = KLD_LOCK(); if (!locked) KLD_LOCK(); In particular, it checks to see if the kld lock is exclusively held and locks it if not, which obviously causes problems if the thread holds the shared lock. The answer might be to just run the hwpmc handler with the exclusive lock held. Or perhaps we just need a linker_file_lookup_set_locked(), assuming that it's ok to look up a linker set with the shared lock held. -Mark From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 18:33:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 78E75596; Wed, 14 Aug 2013 18:33:40 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 664932D7A; Wed, 14 Aug 2013 18:33:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EIXeeZ079487; Wed, 14 Aug 2013 18:33:40 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EIXeJG079486; Wed, 14 Aug 2013 18:33:40 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201308141833.r7EIXeJG079486@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Wed, 14 Aug 2013 18:33:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254333 - stable/9/tools/tools/bootparttest X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 18:33:40 -0000 Author: ae Date: Wed Aug 14 18:33:39 2013 New Revision: 254333 URL: http://svnweb.freebsd.org/changeset/base/254333 Log: MFC r253986: Fix formatting warning. Modified: stable/9/tools/tools/bootparttest/bootparttest.c Directory Properties: stable/9/tools/tools/bootparttest/ (props changed) Modified: stable/9/tools/tools/bootparttest/bootparttest.c ============================================================================== --- stable/9/tools/tools/bootparttest/bootparttest.c Wed Aug 14 17:49:08 2013 (r254332) +++ stable/9/tools/tools/bootparttest/bootparttest.c Wed Aug 14 18:33:39 2013 (r254333) @@ -54,7 +54,7 @@ diskread(void *arg, void *buf, size_t bl struct disk *dp; dp = (struct disk *)arg; - printf("%s: read %d blocks from the offset %jd [+%jd]\n", dp->name, + printf("%s: read %lu blocks from the offset %jd [+%jd]\n", dp->name, blocks, offset, dp->offset); if (offset >= dp->mediasize / dp->sectorsize) return (-1); From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 19:34:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EE165AED; Wed, 14 Aug 2013 19:34:14 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C286D2140; Wed, 14 Aug 2013 19:34:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EJYEvi002511; Wed, 14 Aug 2013 19:34:14 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EJYDvl002507; Wed, 14 Aug 2013 19:34:13 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308141934.r7EJYDvl002507@svn.freebsd.org> From: Jilles Tjoelker Date: Wed, 14 Aug 2013 19:34:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254335 - in head: bin/sh tools/regression/bin/sh/parser X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 19:34:15 -0000 Author: jilles Date: Wed Aug 14 19:34:13 2013 New Revision: 254335 URL: http://svnweb.freebsd.org/changeset/base/254335 Log: sh: Allow a lone redirection before '|', ';;' or ';&'. Example: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F38ECFAC; Wed, 14 Aug 2013 19:49:15 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BF172223C; Wed, 14 Aug 2013 19:49:15 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 6482BB922; Wed, 14 Aug 2013 15:49:14 -0400 (EDT) From: John Baldwin To: Mark Johnston Subject: Re: svn commit: r254309 - in head: share/man/man9 sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/dev/dtrace sys/cddl/dev/sdt sys/kern sys/sys Date: Wed, 14 Aug 2013 15:48:11 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p28; KDE/4.5.5; amd64; ; ) References: <201308140042.r7E0gMtf054550@svn.freebsd.org> <201308140819.13854.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201308141548.11407.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 14 Aug 2013 15:49:14 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 19:49:16 -0000 On Wednesday, August 14, 2013 2:14:53 pm Mark Johnston wrote: > On Wed, Aug 14, 2013 at 8:19 AM, John Baldwin wrote: > > > On Tuesday, August 13, 2013 8:42:22 pm Mark Johnston wrote: > > > Author: markj > > > Date: Wed Aug 14 00:42:21 2013 > > > New Revision: 254309 > > > URL: http://svnweb.freebsd.org/changeset/base/254309 > > > > > > Log: > > > Use kld_{load,unload} instead of mod_{load,unload} for the linker file > > load > > > and unload event handlers added in r254266. > > > > > > Reported by: jhb > > > X-MFC with: r254266 > > > > Thanks! BTW, it would be really nice to replace HWPMC_HOOKS in > > kern_linker.c with > > EVENTHANDLER calls. I think kld_load would just work (though you might > > need to > > downgrade the lock before you run it). For kld_unload it seems you want > > two events, > > a kld_unload_try for your newly added event (since it can reject a > > kld_unload), and > > perhaps kld_unload at the end where the current HWPMC_HOOK is. Just an > > idea if > > someone is looking for something to do. I know there are other modules > > that need > > to hook into linker events like this, and making HWPMC_HOOKS more generic > > would be > > a big help. > > > > I will look into doing this. The DTrace SDT kld_load handler will not work > properly if the > linker lock is downgraded first because of the following code in > linker_file_lookup_set(): > > locked = KLD_LOCK(); > if (!locked) > KLD_LOCK(); > > In particular, it checks to see if the kld lock is exclusively held and > locks it if not, which > obviously causes problems if the thread holds the shared lock. > > The answer might be to just run the hwpmc handler with the exclusive lock > held. Or perhaps > we just need a linker_file_lookup_set_locked(), assuming that it's ok to > look up a linker set > with the shared lock held. It is probably fine to do a lookup with a shared lock. We could also fix the linker code to only lock if there is not an existing shared or exclusive lock. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 21:06:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 87ACBF9B; Wed, 14 Aug 2013 21:06:07 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-vb0-x235.google.com (mail-vb0-x235.google.com [IPv6:2607:f8b0:400c:c02::235]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EF44A2726; Wed, 14 Aug 2013 21:06:06 +0000 (UTC) Received: by mail-vb0-f53.google.com with SMTP id i3so8119002vbh.12 for ; Wed, 14 Aug 2013 14:06:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=4ZBJjWItfFa81V8V486u6jQAFJn3Bl/osg4jh1eNPDI=; b=Xf6grCLnXSZQobqPEDFlG+hhoBA+SyhgfWOn7UojT/c+7WAZ3xkiCaOr18Sq+1/sXR lgsKN9yLt7Gxm+ewRLGJQcAExAwCxBHJMGFSzEN9nOLMiIh48fVelcLIi9FBENQBndHa lftifzdkrzVeDVBFgsF6ltZfV9iJdoGrohJ8lN1plFvIQAr7cYVEc2psAO7c3bFghO0a waaOWjnJiJaRMzlzaNEtINsoq7fDl2b9HanouO7tpNE+m3CDJkDgqiKxA8Drd1Pc0h1g uE3wn6NbGyntcXV7RkKRUeIRV82NafLpcVxicuRMYer8h4jdrcjgN56mWkWloJlJDIeW F9rg== MIME-Version: 1.0 X-Received: by 10.220.48.194 with SMTP id s2mr1796305vcf.43.1376514366101; Wed, 14 Aug 2013 14:06:06 -0700 (PDT) Sender: markjdb@gmail.com Received: by 10.220.65.4 with HTTP; Wed, 14 Aug 2013 14:06:06 -0700 (PDT) In-Reply-To: <201308141548.11407.jhb@freebsd.org> References: <201308140042.r7E0gMtf054550@svn.freebsd.org> <201308140819.13854.jhb@freebsd.org> <201308141548.11407.jhb@freebsd.org> Date: Wed, 14 Aug 2013 17:06:06 -0400 X-Google-Sender-Auth: yGRqgJ6RSSIHfUfKAQs5x8REa0Y Message-ID: Subject: Re: svn commit: r254309 - in head: share/man/man9 sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/dev/dtrace sys/cddl/dev/sdt sys/kern sys/sys From: Mark Johnston To: John Baldwin Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, Mark Johnston , src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 21:06:07 -0000 On Wed, Aug 14, 2013 at 3:48 PM, John Baldwin wrote: > On Wednesday, August 14, 2013 2:14:53 pm Mark Johnston wrote: > > On Wed, Aug 14, 2013 at 8:19 AM, John Baldwin wrote: > > > > > On Tuesday, August 13, 2013 8:42:22 pm Mark Johnston wrote: > > > > Author: markj > > > > Date: Wed Aug 14 00:42:21 2013 > > > > New Revision: 254309 > > > > URL: http://svnweb.freebsd.org/changeset/base/254309 > > > > > > > > Log: > > > > Use kld_{load,unload} instead of mod_{load,unload} for the linker > file > > > load > > > > and unload event handlers added in r254266. > > > > > > > > Reported by: jhb > > > > X-MFC with: r254266 > > > > > > Thanks! BTW, it would be really nice to replace HWPMC_HOOKS in > > > kern_linker.c with > > > EVENTHANDLER calls. I think kld_load would just work (though you might > > > need to > > > downgrade the lock before you run it). For kld_unload it seems you > want > > > two events, > > > a kld_unload_try for your newly added event (since it can reject a > > > kld_unload), and > > > perhaps kld_unload at the end where the current HWPMC_HOOK is. Just an > > > idea if > > > someone is looking for something to do. I know there are other modules > > > that need > > > to hook into linker events like this, and making HWPMC_HOOKS more > generic > > > would be > > > a big help. > > > > > > > I will look into doing this. The DTrace SDT kld_load handler will not > work > > properly if the > > linker lock is downgraded first because of the following code in > > linker_file_lookup_set(): > > > > locked = KLD_LOCK(); > > if (!locked) > > KLD_LOCK(); > > > > In particular, it checks to see if the kld lock is exclusively held and > > locks it if not, which > > obviously causes problems if the thread holds the shared lock. > > > > The answer might be to just run the hwpmc handler with the exclusive lock > > held. Or perhaps > > we just need a linker_file_lookup_set_locked(), assuming that it's ok to > > look up a linker set > > with the shared lock held. > > It is probably fine to do a lookup with a shared lock. We could also fix > the > linker code to only lock if there is not an existing shared or exclusive > lock. > Sorry if I'm being dense, but I thought it wasn't generally possible to determine whether curthread holds a given shared lock. From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 21:11:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 987471CF; Wed, 14 Aug 2013 21:11:27 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 771742781; Wed, 14 Aug 2013 21:11:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7ELBRZ5044558; Wed, 14 Aug 2013 21:11:27 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7ELBQfC044549; Wed, 14 Aug 2013 21:11:26 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201308142111.r7ELBQfC044549@svn.freebsd.org> From: Rick Macklem Date: Wed, 14 Aug 2013 21:11:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254337 - in head/sys/fs: nfs nfsserver X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 21:11:27 -0000 Author: rmacklem Date: Wed Aug 14 21:11:26 2013 New Revision: 254337 URL: http://svnweb.freebsd.org/changeset/base/254337 Log: Fix several performance related issues in the new NFS server's DRC for NFS over TCP. - Increase the size of the hash tables. - Create a separate mutex for each hash list of the TCP hash table. - Single thread the code that deletes stale cache entries. - Add a tunable called vfs.nfsd.tcphighwater, which can be increased to allow the cache to grow larger, avoiding the overhead of frequent scans to delete stale cache entries. (The default value will result in frequent scans to delete stale cache entries, analagous to what the pre-patched code does.) - Add a tunable called vfs.nfsd.cachetcp that can be used to disable DRC caching for NFS over TCP, since the old NFS server didn't DRC cache TCP. It also adjusts the size of nfsrc_floodlevel dynamically, so that it is always greater than vfs.nfsd.tcphighwater. For UDP the algorithm remains the same as the pre-patched code, but the tunable vfs.nfsd.udphighwater can be used to allow the cache to grow larger and reduce the overhead caused by frequent scans for stale entries. UDP also uses a larger hash table size than the pre-patched code. Reported by: wollman Tested by: wollman (earlier version of patch) Submitted by: ivoras (earlier patch) Reviewed by: jhb (earlier version of patch) MFC after: 1 month Modified: head/sys/fs/nfs/nfsport.h head/sys/fs/nfs/nfsrvcache.h head/sys/fs/nfsserver/nfs_nfsdcache.c head/sys/fs/nfsserver/nfs_nfsdport.c Modified: head/sys/fs/nfs/nfsport.h ============================================================================== --- head/sys/fs/nfs/nfsport.h Wed Aug 14 20:20:42 2013 (r254336) +++ head/sys/fs/nfs/nfsport.h Wed Aug 14 21:11:26 2013 (r254337) @@ -603,11 +603,6 @@ void nfsrvd_rcv(struct socket *, void *, #define NFSREQSPINLOCK extern struct mtx nfs_req_mutex #define NFSLOCKREQ() mtx_lock(&nfs_req_mutex) #define NFSUNLOCKREQ() mtx_unlock(&nfs_req_mutex) -#define NFSCACHEMUTEX extern struct mtx nfs_cache_mutex -#define NFSCACHEMUTEXPTR (&nfs_cache_mutex) -#define NFSLOCKCACHE() mtx_lock(&nfs_cache_mutex) -#define NFSUNLOCKCACHE() mtx_unlock(&nfs_cache_mutex) -#define NFSCACHELOCKREQUIRED() mtx_assert(&nfs_cache_mutex, MA_OWNED) #define NFSSOCKMUTEX extern struct mtx nfs_slock_mutex #define NFSSOCKMUTEXPTR (&nfs_slock_mutex) #define NFSLOCKSOCK() mtx_lock(&nfs_slock_mutex) Modified: head/sys/fs/nfs/nfsrvcache.h ============================================================================== --- head/sys/fs/nfs/nfsrvcache.h Wed Aug 14 20:20:42 2013 (r254336) +++ head/sys/fs/nfs/nfsrvcache.h Wed Aug 14 21:11:26 2013 (r254337) @@ -41,8 +41,9 @@ #define NFSRVCACHE_MAX_SIZE 2048 #define NFSRVCACHE_MIN_SIZE 64 -#define NFSRVCACHE_HASHSIZE 20 +#define NFSRVCACHE_HASHSIZE 500 +/* Cache table entry. */ struct nfsrvcache { LIST_ENTRY(nfsrvcache) rc_hash; /* Hash chain */ TAILQ_ENTRY(nfsrvcache) rc_lru; /* UDP lru chain */ @@ -104,4 +105,11 @@ struct nfsrvcache { LIST_HEAD(nfsrvhashhead, nfsrvcache); +/* The fine-grained locked cache hash table for TCP. */ +struct nfsrchash_bucket { + struct mtx mtx; + char lock_name[16]; + struct nfsrvhashhead tbl; +}; + #endif /* _NFS_NFSRVCACHE_H_ */ Modified: head/sys/fs/nfsserver/nfs_nfsdcache.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdcache.c Wed Aug 14 20:20:42 2013 (r254336) +++ head/sys/fs/nfsserver/nfs_nfsdcache.c Wed Aug 14 21:11:26 2013 (r254337) @@ -160,15 +160,51 @@ __FBSDID("$FreeBSD$"); #include extern struct nfsstats newnfsstats; -NFSCACHEMUTEX; +extern struct mtx nfsrc_udpmtx; +extern struct nfsrchash_bucket nfsrchash_table[NFSRVCACHE_HASHSIZE]; int nfsrc_floodlevel = NFSRVCACHE_FLOODLEVEL, nfsrc_tcpsavedreplies = 0; #endif /* !APPLEKEXT */ -static int nfsrc_tcpnonidempotent = 1; -static int nfsrc_udphighwater = NFSRVCACHE_UDPHIGHWATER, nfsrc_udpcachesize = 0; +SYSCTL_DECL(_vfs_nfsd); + +static u_int nfsrc_tcphighwater = 0; +static int +sysctl_tcphighwater(SYSCTL_HANDLER_ARGS) +{ + int error, newhighwater; + + newhighwater = nfsrc_tcphighwater; + error = sysctl_handle_int(oidp, &newhighwater, 0, req); + if (error != 0 || req->newptr == NULL) + return (error); + if (newhighwater < 0) + return (EINVAL); + if (newhighwater >= nfsrc_floodlevel) + nfsrc_floodlevel = newhighwater + newhighwater / 5; + nfsrc_tcphighwater = newhighwater; + return (0); +} +SYSCTL_PROC(_vfs_nfsd, OID_AUTO, tcphighwater, CTLTYPE_UINT | CTLFLAG_RW, 0, + sizeof(nfsrc_tcphighwater), sysctl_tcphighwater, "IU", + "High water mark for TCP cache entries"); + +static u_int nfsrc_udphighwater = NFSRVCACHE_UDPHIGHWATER; +SYSCTL_UINT(_vfs_nfsd, OID_AUTO, udphighwater, CTLFLAG_RW, + &nfsrc_udphighwater, 0, + "High water mark for UDP cache entries"); +static u_int nfsrc_tcptimeout = NFSRVCACHE_TCPTIMEOUT; +SYSCTL_UINT(_vfs_nfsd, OID_AUTO, tcpcachetimeo, CTLFLAG_RW, + &nfsrc_tcptimeout, 0, + "Timeout for TCP entries in the DRC"); +static u_int nfsrc_tcpnonidempotent = 1; +SYSCTL_UINT(_vfs_nfsd, OID_AUTO, cachetcp, CTLFLAG_RW, + &nfsrc_tcpnonidempotent, 0, + "Enable the DRC for NFS over TCP"); + +static int nfsrc_udpcachesize = 0; static TAILQ_HEAD(, nfsrvcache) nfsrvudplru; -static struct nfsrvhashhead nfsrvhashtbl[NFSRVCACHE_HASHSIZE], - nfsrvudphashtbl[NFSRVCACHE_HASHSIZE]; +static struct nfsrvhashhead nfsrvudphashtbl[NFSRVCACHE_HASHSIZE]; + /* * and the reverse mapping from generic to Version 2 procedure numbers */ @@ -197,10 +233,11 @@ static int newnfsv2_procid[NFS_V3NPROCS] NFSV2PROC_NOOP, }; +#define nfsrc_hash(xid) (((xid) + ((xid) >> 24)) % NFSRVCACHE_HASHSIZE) #define NFSRCUDPHASH(xid) \ - (&nfsrvudphashtbl[((xid) + ((xid) >> 24)) % NFSRVCACHE_HASHSIZE]) + (&nfsrvudphashtbl[nfsrc_hash(xid)]) #define NFSRCHASH(xid) \ - (&nfsrvhashtbl[((xid) + ((xid) >> 24)) % NFSRVCACHE_HASHSIZE]) + (&nfsrchash_table[nfsrc_hash(xid)].tbl) #define TRUE 1 #define FALSE 0 #define NFSRVCACHE_CHECKLEN 100 @@ -251,6 +288,18 @@ static int nfsrc_getlenandcksum(mbuf_t m static void nfsrc_marksametcpconn(u_int64_t); /* + * Return the correct mutex for this cache entry. + */ +static __inline struct mtx * +nfsrc_cachemutex(struct nfsrvcache *rp) +{ + + if ((rp->rc_flag & RC_UDP) != 0) + return (&nfsrc_udpmtx); + return (&nfsrchash_table[nfsrc_hash(rp->rc_xid)].mtx); +} + +/* * Initialize the server request cache list */ APPLESTATIC void @@ -264,7 +313,7 @@ nfsrvd_initcache(void) inited = 1; for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { LIST_INIT(&nfsrvudphashtbl[i]); - LIST_INIT(&nfsrvhashtbl[i]); + LIST_INIT(&nfsrchash_table[i].tbl); } TAILQ_INIT(&nfsrvudplru); nfsrc_tcpsavedreplies = 0; @@ -325,10 +374,12 @@ nfsrc_getudp(struct nfsrv_descript *nd, struct sockaddr_in6 *saddr6; struct nfsrvhashhead *hp; int ret = 0; + struct mtx *mutex; + mutex = nfsrc_cachemutex(newrp); hp = NFSRCUDPHASH(newrp->rc_xid); loop: - NFSLOCKCACHE(); + mtx_lock(mutex); LIST_FOREACH(rp, hp, rc_hash) { if (newrp->rc_xid == rp->rc_xid && newrp->rc_proc == rp->rc_proc && @@ -336,8 +387,8 @@ loop: nfsaddr_match(NETFAMILY(rp), &rp->rc_haddr, nd->nd_nam)) { if ((rp->rc_flag & RC_LOCKED) != 0) { rp->rc_flag |= RC_WANTED; - (void)mtx_sleep(rp, NFSCACHEMUTEXPTR, - (PZERO - 1) | PDROP, "nfsrc", 10 * hz); + (void)mtx_sleep(rp, mutex, (PZERO - 1) | PDROP, + "nfsrc", 10 * hz); goto loop; } if (rp->rc_flag == 0) @@ -347,14 +398,14 @@ loop: TAILQ_INSERT_TAIL(&nfsrvudplru, rp, rc_lru); if (rp->rc_flag & RC_INPROG) { newnfsstats.srvcache_inproghits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); ret = RC_DROPIT; } else if (rp->rc_flag & RC_REPSTATUS) { /* * V2 only. */ newnfsstats.srvcache_nonidemdonehits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); nfsrvd_rephead(nd); *(nd->nd_errp) = rp->rc_status; ret = RC_REPLY; @@ -362,7 +413,7 @@ loop: NFSRVCACHE_UDPTIMEOUT; } else if (rp->rc_flag & RC_REPMBUF) { newnfsstats.srvcache_nonidemdonehits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); nd->nd_mreq = m_copym(rp->rc_reply, 0, M_COPYALL, M_WAITOK); ret = RC_REPLY; @@ -377,7 +428,7 @@ loop: } } newnfsstats.srvcache_misses++; - newnfsstats.srvcache_size++; + atomic_add_int(&newnfsstats.srvcache_size, 1); nfsrc_udpcachesize++; newrp->rc_flag |= RC_INPROG; @@ -392,7 +443,7 @@ loop: } LIST_INSERT_HEAD(hp, newrp, rc_hash); TAILQ_INSERT_TAIL(&nfsrvudplru, newrp, rc_lru); - NFSUNLOCKCACHE(); + mtx_unlock(mutex); nd->nd_rp = newrp; ret = RC_DOIT; @@ -410,12 +461,14 @@ nfsrvd_updatecache(struct nfsrv_descript struct nfsrvcache *rp; struct nfsrvcache *retrp = NULL; mbuf_t m; + struct mtx *mutex; rp = nd->nd_rp; if (!rp) panic("nfsrvd_updatecache null rp"); nd->nd_rp = NULL; - NFSLOCKCACHE(); + mutex = nfsrc_cachemutex(rp); + mtx_lock(mutex); nfsrc_lock(rp); if (!(rp->rc_flag & RC_INPROG)) panic("nfsrvd_updatecache not inprog"); @@ -430,7 +483,7 @@ nfsrvd_updatecache(struct nfsrv_descript */ if (nd->nd_repstat == NFSERR_REPLYFROMCACHE) { newnfsstats.srvcache_nonidemdonehits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); nd->nd_repstat = 0; if (nd->nd_mreq) mbuf_freem(nd->nd_mreq); @@ -438,7 +491,7 @@ nfsrvd_updatecache(struct nfsrv_descript panic("reply from cache"); nd->nd_mreq = m_copym(rp->rc_reply, 0, M_COPYALL, M_WAITOK); - rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_TCPTIMEOUT; + rp->rc_timestamp = NFSD_MONOSEC + nfsrc_tcptimeout; nfsrc_unlock(rp); goto out; } @@ -463,29 +516,28 @@ nfsrvd_updatecache(struct nfsrv_descript nfsv2_repstat[newnfsv2_procid[nd->nd_procnum]]) { rp->rc_status = nd->nd_repstat; rp->rc_flag |= RC_REPSTATUS; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } else { if (!(rp->rc_flag & RC_UDP)) { - nfsrc_tcpsavedreplies++; + atomic_add_int(&nfsrc_tcpsavedreplies, 1); if (nfsrc_tcpsavedreplies > newnfsstats.srvcache_tcppeak) newnfsstats.srvcache_tcppeak = nfsrc_tcpsavedreplies; } - NFSUNLOCKCACHE(); + mtx_unlock(mutex); m = m_copym(nd->nd_mreq, 0, M_COPYALL, M_WAITOK); - NFSLOCKCACHE(); + mtx_lock(mutex); rp->rc_reply = m; rp->rc_flag |= RC_REPMBUF; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } if (rp->rc_flag & RC_UDP) { rp->rc_timestamp = NFSD_MONOSEC + NFSRVCACHE_UDPTIMEOUT; nfsrc_unlock(rp); } else { - rp->rc_timestamp = NFSD_MONOSEC + - NFSRVCACHE_TCPTIMEOUT; + rp->rc_timestamp = NFSD_MONOSEC + nfsrc_tcptimeout; if (rp->rc_refcnt > 0) nfsrc_unlock(rp); else @@ -493,7 +545,7 @@ nfsrvd_updatecache(struct nfsrv_descript } } else { nfsrc_freecache(rp); - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } out: @@ -509,14 +561,16 @@ out: APPLESTATIC void nfsrvd_delcache(struct nfsrvcache *rp) { + struct mtx *mutex; + mutex = nfsrc_cachemutex(rp); if (!(rp->rc_flag & RC_INPROG)) panic("nfsrvd_delcache not in prog"); - NFSLOCKCACHE(); + mtx_lock(mutex); rp->rc_flag &= ~RC_INPROG; if (rp->rc_refcnt == 0 && !(rp->rc_flag & RC_LOCKED)) nfsrc_freecache(rp); - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } /* @@ -528,7 +582,9 @@ APPLESTATIC void nfsrvd_sentcache(struct nfsrvcache *rp, struct socket *so, int err) { tcp_seq tmp_seq; + struct mtx *mutex; + mutex = nfsrc_cachemutex(rp); if (!(rp->rc_flag & RC_LOCKED)) panic("nfsrvd_sentcache not locked"); if (!err) { @@ -537,10 +593,10 @@ nfsrvd_sentcache(struct nfsrvcache *rp, so->so_proto->pr_protocol != IPPROTO_TCP) panic("nfs sent cache"); if (nfsrv_getsockseqnum(so, &tmp_seq)) { - NFSLOCKCACHE(); + mtx_lock(mutex); rp->rc_tcpseq = tmp_seq; rp->rc_flag |= RC_TCPSEQ; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } } nfsrc_unlock(rp); @@ -559,11 +615,13 @@ nfsrc_gettcp(struct nfsrv_descript *nd, struct nfsrvcache *hitrp; struct nfsrvhashhead *hp, nfsrc_templist; int hit, ret = 0; + struct mtx *mutex; + mutex = nfsrc_cachemutex(newrp); hp = NFSRCHASH(newrp->rc_xid); newrp->rc_reqlen = nfsrc_getlenandcksum(nd->nd_mrep, &newrp->rc_cksum); tryagain: - NFSLOCKCACHE(); + mtx_lock(mutex); hit = 1; LIST_INIT(&nfsrc_templist); /* @@ -621,8 +679,8 @@ tryagain: rp = hitrp; if ((rp->rc_flag & RC_LOCKED) != 0) { rp->rc_flag |= RC_WANTED; - (void)mtx_sleep(rp, NFSCACHEMUTEXPTR, - (PZERO - 1) | PDROP, "nfsrc", 10 * hz); + (void)mtx_sleep(rp, mutex, (PZERO - 1) | PDROP, + "nfsrc", 10 * hz); goto tryagain; } if (rp->rc_flag == 0) @@ -630,7 +688,7 @@ tryagain: rp->rc_flag |= RC_LOCKED; if (rp->rc_flag & RC_INPROG) { newnfsstats.srvcache_inproghits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); ret = RC_DROPIT; @@ -639,24 +697,22 @@ tryagain: * V2 only. */ newnfsstats.srvcache_nonidemdonehits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); ret = RC_REPLY; nfsrvd_rephead(nd); *(nd->nd_errp) = rp->rc_status; - rp->rc_timestamp = NFSD_MONOSEC + - NFSRVCACHE_TCPTIMEOUT; + rp->rc_timestamp = NFSD_MONOSEC + nfsrc_tcptimeout; } else if (rp->rc_flag & RC_REPMBUF) { newnfsstats.srvcache_nonidemdonehits++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); if (newrp->rc_sockref == rp->rc_sockref) nfsrc_marksametcpconn(rp->rc_sockref); ret = RC_REPLY; nd->nd_mreq = m_copym(rp->rc_reply, 0, M_COPYALL, M_WAITOK); - rp->rc_timestamp = NFSD_MONOSEC + - NFSRVCACHE_TCPTIMEOUT; + rp->rc_timestamp = NFSD_MONOSEC + nfsrc_tcptimeout; } else { panic("nfs tcp cache1"); } @@ -665,7 +721,7 @@ tryagain: goto out; } newnfsstats.srvcache_misses++; - newnfsstats.srvcache_size++; + atomic_add_int(&newnfsstats.srvcache_size, 1); /* * For TCP, multiple entries for a key are allowed, so don't @@ -674,7 +730,7 @@ tryagain: newrp->rc_cachetime = NFSD_MONOSEC; newrp->rc_flag |= RC_INPROG; LIST_INSERT_HEAD(hp, newrp, rc_hash); - NFSUNLOCKCACHE(); + mtx_unlock(mutex); nd->nd_rp = newrp; ret = RC_DOIT; @@ -685,16 +741,17 @@ out: /* * Lock a cache entry. - * Also puts a mutex lock on the cache list. */ static void nfsrc_lock(struct nfsrvcache *rp) { - NFSCACHELOCKREQUIRED(); + struct mtx *mutex; + + mutex = nfsrc_cachemutex(rp); + mtx_assert(mutex, MA_OWNED); while ((rp->rc_flag & RC_LOCKED) != 0) { rp->rc_flag |= RC_WANTED; - (void)mtx_sleep(rp, NFSCACHEMUTEXPTR, PZERO - 1, - "nfsrc", 0); + (void)mtx_sleep(rp, mutex, PZERO - 1, "nfsrc", 0); } rp->rc_flag |= RC_LOCKED; } @@ -705,11 +762,13 @@ nfsrc_lock(struct nfsrvcache *rp) static void nfsrc_unlock(struct nfsrvcache *rp) { + struct mtx *mutex; - NFSLOCKCACHE(); + mutex = nfsrc_cachemutex(rp); + mtx_lock(mutex); rp->rc_flag &= ~RC_LOCKED; nfsrc_wanted(rp); - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } /* @@ -732,7 +791,6 @@ static void nfsrc_freecache(struct nfsrvcache *rp) { - NFSCACHELOCKREQUIRED(); LIST_REMOVE(rp, rc_hash); if (rp->rc_flag & RC_UDP) { TAILQ_REMOVE(&nfsrvudplru, rp, rc_lru); @@ -742,10 +800,10 @@ nfsrc_freecache(struct nfsrvcache *rp) if (rp->rc_flag & RC_REPMBUF) { mbuf_freem(rp->rc_reply); if (!(rp->rc_flag & RC_UDP)) - nfsrc_tcpsavedreplies--; + atomic_add_int(&nfsrc_tcpsavedreplies, -1); } FREE((caddr_t)rp, M_NFSRVCACHE); - newnfsstats.srvcache_size--; + atomic_add_int(&newnfsstats.srvcache_size, -1); } /* @@ -757,20 +815,21 @@ nfsrvd_cleancache(void) struct nfsrvcache *rp, *nextrp; int i; - NFSLOCKCACHE(); for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - LIST_FOREACH_SAFE(rp, &nfsrvhashtbl[i], rc_hash, nextrp) { + mtx_lock(&nfsrchash_table[i].mtx); + LIST_FOREACH_SAFE(rp, &nfsrchash_table[i].tbl, rc_hash, nextrp) nfsrc_freecache(rp); - } + mtx_unlock(&nfsrchash_table[i].mtx); } + mtx_lock(&nfsrc_udpmtx); for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { LIST_FOREACH_SAFE(rp, &nfsrvudphashtbl[i], rc_hash, nextrp) { nfsrc_freecache(rp); } } newnfsstats.srvcache_size = 0; + mtx_unlock(&nfsrc_udpmtx); nfsrc_tcpsavedreplies = 0; - NFSUNLOCKCACHE(); } /* @@ -780,28 +839,97 @@ static void nfsrc_trimcache(u_int64_t sockref, struct socket *so) { struct nfsrvcache *rp, *nextrp; - int i; + int i, j, k, time_histo[10]; + time_t thisstamp; + static time_t udp_lasttrim = 0, tcp_lasttrim = 0; + static int onethread = 0; - NFSLOCKCACHE(); - TAILQ_FOREACH_SAFE(rp, &nfsrvudplru, rc_lru, nextrp) { - if (!(rp->rc_flag & (RC_INPROG|RC_LOCKED|RC_WANTED)) - && rp->rc_refcnt == 0 - && ((rp->rc_flag & RC_REFCNT) || - NFSD_MONOSEC > rp->rc_timestamp || - nfsrc_udpcachesize > nfsrc_udphighwater)) - nfsrc_freecache(rp); - } - for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { - LIST_FOREACH_SAFE(rp, &nfsrvhashtbl[i], rc_hash, nextrp) { + if (atomic_cmpset_acq_int(&onethread, 0, 1) == 0) + return; + if (NFSD_MONOSEC != udp_lasttrim || + nfsrc_udpcachesize >= (nfsrc_udphighwater + + nfsrc_udphighwater / 2)) { + mtx_lock(&nfsrc_udpmtx); + udp_lasttrim = NFSD_MONOSEC; + TAILQ_FOREACH_SAFE(rp, &nfsrvudplru, rc_lru, nextrp) { if (!(rp->rc_flag & (RC_INPROG|RC_LOCKED|RC_WANTED)) && rp->rc_refcnt == 0 && ((rp->rc_flag & RC_REFCNT) || - NFSD_MONOSEC > rp->rc_timestamp || - nfsrc_activesocket(rp, sockref, so))) + udp_lasttrim > rp->rc_timestamp || + nfsrc_udpcachesize > nfsrc_udphighwater)) nfsrc_freecache(rp); } + mtx_unlock(&nfsrc_udpmtx); + } + if (NFSD_MONOSEC != tcp_lasttrim || + nfsrc_tcpsavedreplies >= nfsrc_tcphighwater) { + for (i = 0; i < 10; i++) + time_histo[i] = 0; + for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { + mtx_lock(&nfsrchash_table[i].mtx); + if (i == 0) + tcp_lasttrim = NFSD_MONOSEC; + LIST_FOREACH_SAFE(rp, &nfsrchash_table[i].tbl, rc_hash, + nextrp) { + if (!(rp->rc_flag & + (RC_INPROG|RC_LOCKED|RC_WANTED)) + && rp->rc_refcnt == 0) { + /* + * The timestamps range from roughly the + * present (tcp_lasttrim) to the present + * + nfsrc_tcptimeout. Generate a simple + * histogram of where the timeouts fall. + */ + j = rp->rc_timestamp - tcp_lasttrim; + if (j >= nfsrc_tcptimeout) + j = nfsrc_tcptimeout - 1; + if (j < 0) + j = 0; + j = (j * 10 / nfsrc_tcptimeout) % 10; + time_histo[j]++; + if ((rp->rc_flag & RC_REFCNT) || + tcp_lasttrim > rp->rc_timestamp || + nfsrc_activesocket(rp, sockref, so)) + nfsrc_freecache(rp); + } + } + mtx_unlock(&nfsrchash_table[i].mtx); + } + j = nfsrc_tcphighwater / 5; /* 20% of it */ + if (j > 0 && (nfsrc_tcpsavedreplies + j) > nfsrc_tcphighwater) { + /* + * Trim some more with a smaller timeout of as little + * as 20% of nfsrc_tcptimeout to try and get below + * 80% of the nfsrc_tcphighwater. + */ + k = 0; + for (i = 0; i < 8; i++) { + k += time_histo[i]; + if (k > j) + break; + } + k = nfsrc_tcptimeout * (i + 1) / 10; + if (k < 1) + k = 1; + thisstamp = tcp_lasttrim + k; + for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { + mtx_lock(&nfsrchash_table[i].mtx); + LIST_FOREACH_SAFE(rp, &nfsrchash_table[i].tbl, + rc_hash, nextrp) { + if (!(rp->rc_flag & + (RC_INPROG|RC_LOCKED|RC_WANTED)) + && rp->rc_refcnt == 0 + && ((rp->rc_flag & RC_REFCNT) || + thisstamp > rp->rc_timestamp || + nfsrc_activesocket(rp, sockref, + so))) + nfsrc_freecache(rp); + } + mtx_unlock(&nfsrchash_table[i].mtx); + } + } } - NFSUNLOCKCACHE(); + atomic_store_rel_int(&onethread, 0); } /* @@ -810,12 +938,14 @@ nfsrc_trimcache(u_int64_t sockref, struc APPLESTATIC void nfsrvd_refcache(struct nfsrvcache *rp) { + struct mtx *mutex; - NFSLOCKCACHE(); + mutex = nfsrc_cachemutex(rp); + mtx_lock(mutex); if (rp->rc_refcnt < 0) panic("nfs cache refcnt"); rp->rc_refcnt++; - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } /* @@ -824,14 +954,16 @@ nfsrvd_refcache(struct nfsrvcache *rp) APPLESTATIC void nfsrvd_derefcache(struct nfsrvcache *rp) { + struct mtx *mutex; - NFSLOCKCACHE(); + mutex = nfsrc_cachemutex(rp); + mtx_lock(mutex); if (rp->rc_refcnt <= 0) panic("nfs cache derefcnt"); rp->rc_refcnt--; if (rp->rc_refcnt == 0 && !(rp->rc_flag & (RC_LOCKED | RC_INPROG))) nfsrc_freecache(rp); - NFSUNLOCKCACHE(); + mtx_unlock(mutex); } /* Modified: head/sys/fs/nfsserver/nfs_nfsdport.c ============================================================================== --- head/sys/fs/nfsserver/nfs_nfsdport.c Wed Aug 14 20:20:42 2013 (r254336) +++ head/sys/fs/nfsserver/nfs_nfsdport.c Wed Aug 14 21:11:26 2013 (r254337) @@ -60,7 +60,8 @@ extern SVCPOOL *nfsrvd_pool; extern struct nfsv4lock nfsd_suspend_lock; struct vfsoptlist nfsv4root_opt, nfsv4root_newopt; NFSDLOCKMUTEX; -struct mtx nfs_cache_mutex; +struct nfsrchash_bucket nfsrchash_table[NFSRVCACHE_HASHSIZE]; +struct mtx nfsrc_udpmtx; struct mtx nfs_v4root_mutex; struct nfsrvfh nfs_rootfh, nfs_pubfh; int nfs_pubfhset = 0, nfs_rootfhset = 0; @@ -3278,7 +3279,7 @@ extern int (*nfsd_call_nfsd)(struct thre static int nfsd_modevent(module_t mod, int type, void *data) { - int error = 0; + int error = 0, i; static int loaded = 0; switch (type) { @@ -3286,7 +3287,14 @@ nfsd_modevent(module_t mod, int type, vo if (loaded) goto out; newnfs_portinit(); - mtx_init(&nfs_cache_mutex, "nfs_cache_mutex", NULL, MTX_DEF); + for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) { + snprintf(nfsrchash_table[i].lock_name, + sizeof(nfsrchash_table[i].lock_name), "nfsrc_tcp%d", + i); + mtx_init(&nfsrchash_table[i].mtx, + nfsrchash_table[i].lock_name, NULL, MTX_DEF); + } + mtx_init(&nfsrc_udpmtx, "nfs_udpcache_mutex", NULL, MTX_DEF); mtx_init(&nfs_v4root_mutex, "nfs_v4root_mutex", NULL, MTX_DEF); mtx_init(&nfsv4root_mnt.mnt_mtx, "struct mount mtx", NULL, MTX_DEF); @@ -3330,7 +3338,9 @@ nfsd_modevent(module_t mod, int type, vo svcpool_destroy(nfsrvd_pool); /* and get rid of the locks */ - mtx_destroy(&nfs_cache_mutex); + for (i = 0; i < NFSRVCACHE_HASHSIZE; i++) + mtx_destroy(&nfsrchash_table[i].mtx); + mtx_destroy(&nfsrc_udpmtx); mtx_destroy(&nfs_v4root_mutex); mtx_destroy(&nfsv4root_mnt.mnt_mtx); lockdestroy(&nfsv4root_mnt.mnt_explock); From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 21:11:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 061C41D0; Wed, 14 Aug 2013 21:11:29 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C0FEE2782; Wed, 14 Aug 2013 21:11:28 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 46530B924; Wed, 14 Aug 2013 17:11:27 -0400 (EDT) From: John Baldwin To: Mark Johnston Subject: Re: svn commit: r254309 - in head: share/man/man9 sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/dev/dtrace sys/cddl/dev/sdt sys/kern sys/sys Date: Wed, 14 Aug 2013 17:11:17 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.2-CBSD-20110714-p28; KDE/4.5.5; amd64; ; ) References: <201308140042.r7E0gMtf054550@svn.freebsd.org> <201308141548.11407.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201308141711.17660.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 14 Aug 2013 17:11:27 -0400 (EDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 21:11:29 -0000 On Wednesday, August 14, 2013 5:06:06 pm Mark Johnston wrote: > On Wed, Aug 14, 2013 at 3:48 PM, John Baldwin wrote: > > > On Wednesday, August 14, 2013 2:14:53 pm Mark Johnston wrote: > > > On Wed, Aug 14, 2013 at 8:19 AM, John Baldwin wrote: > > > > > > > On Tuesday, August 13, 2013 8:42:22 pm Mark Johnston wrote: > > > > > Author: markj > > > > > Date: Wed Aug 14 00:42:21 2013 > > > > > New Revision: 254309 > > > > > URL: http://svnweb.freebsd.org/changeset/base/254309 > > > > > > > > > > Log: > > > > > Use kld_{load,unload} instead of mod_{load,unload} for the linker > > file > > > > load > > > > > and unload event handlers added in r254266. > > > > > > > > > > Reported by: jhb > > > > > X-MFC with: r254266 > > > > > > > > Thanks! BTW, it would be really nice to replace HWPMC_HOOKS in > > > > kern_linker.c with > > > > EVENTHANDLER calls. I think kld_load would just work (though you might > > > > need to > > > > downgrade the lock before you run it). For kld_unload it seems you > > want > > > > two events, > > > > a kld_unload_try for your newly added event (since it can reject a > > > > kld_unload), and > > > > perhaps kld_unload at the end where the current HWPMC_HOOK is. Just an > > > > idea if > > > > someone is looking for something to do. I know there are other modules > > > > that need > > > > to hook into linker events like this, and making HWPMC_HOOKS more > > generic > > > > would be > > > > a big help. > > > > > > > > > > I will look into doing this. The DTrace SDT kld_load handler will not > > work > > > properly if the > > > linker lock is downgraded first because of the following code in > > > linker_file_lookup_set(): > > > > > > locked = KLD_LOCK(); > > > if (!locked) > > > KLD_LOCK(); > > > > > > In particular, it checks to see if the kld lock is exclusively held and > > > locks it if not, which > > > obviously causes problems if the thread holds the shared lock. > > > > > > The answer might be to just run the hwpmc handler with the exclusive lock > > > held. Or perhaps > > > we just need a linker_file_lookup_set_locked(), assuming that it's ok to > > > look up a linker set > > > with the shared lock held. > > > > It is probably fine to do a lookup with a shared lock. We could also fix > > the > > linker code to only lock if there is not an existing shared or exclusive > > lock. > > > > Sorry if I'm being dense, but I thought it wasn't generally possible to > determine > whether curthread holds a given shared lock. Fair enough. We could probably either add _locked variant that asserts either one (you can do an assert for a shared lock), or just require all callers to get the lock and make the non _locked variant basically be the _locked variant. I would prefer the latter if it is not too invasive. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 21:51:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 01DAEABE; Wed, 14 Aug 2013 21:51:33 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E339E2A06; Wed, 14 Aug 2013 21:51:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7ELpWRY061673; Wed, 14 Aug 2013 21:51:32 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7ELpWVX061672; Wed, 14 Aug 2013 21:51:32 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201308142151.r7ELpWVX061672@svn.freebsd.org> From: Michael Tuexen Date: Wed, 14 Aug 2013 21:51:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254338 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 21:51:33 -0000 Author: tuexen Date: Wed Aug 14 21:51:32 2013 New Revision: 254338 URL: http://svnweb.freebsd.org/changeset/base/254338 Log: Don't send uninitialized memory (two instances of 4 bytes) in every cookie on the wire. This bug was reported in https://bugzilla.mozilla.org/show_bug.cgi?id=905080 MFC after: 3 days Modified: head/sys/netinet/sctp_output.c Modified: head/sys/netinet/sctp_output.c ============================================================================== --- head/sys/netinet/sctp_output.c Wed Aug 14 21:11:26 2013 (r254337) +++ head/sys/netinet/sctp_output.c Wed Aug 14 21:51:32 2013 (r254338) @@ -5406,6 +5406,14 @@ do_a_abort: } SCTP_BUF_LEN(m) = sizeof(struct sctp_init_chunk); + /* + * We might not overwrite the identification[] completely and on + * some platforms time_entered will contain some padding. Therefore + * zero out the cookie to avoid putting uninitialized memory on the + * wire. + */ + memset(&stc, 0, sizeof(struct sctp_state_cookie)); + /* the time I built cookie */ (void)SCTP_GETTIME_TIMEVAL(&stc.time_entered); From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 21:59:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D3118DC1; Wed, 14 Aug 2013 21:59:48 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BFBCD2A68; Wed, 14 Aug 2013 21:59:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7ELxmYl063418; Wed, 14 Aug 2013 21:59:48 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7ELxmhi063416; Wed, 14 Aug 2013 21:59:48 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308142159.r7ELxmhi063416@svn.freebsd.org> From: Jilles Tjoelker Date: Wed, 14 Aug 2013 21:59:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254339 - in head: bin/sh tools/regression/bin/sh/builtins X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 21:59:48 -0000 Author: jilles Date: Wed Aug 14 21:59:48 2013 New Revision: 254339 URL: http://svnweb.freebsd.org/changeset/base/254339 Log: sh: Recognize "--" as end of options in local builtin. Added: head/tools/regression/bin/sh/builtins/local4.0 (contents, props changed) Modified: head/bin/sh/var.c Modified: head/bin/sh/var.c ============================================================================== --- head/bin/sh/var.c Wed Aug 14 21:51:32 2013 (r254338) +++ head/bin/sh/var.c Wed Aug 14 21:59:48 2013 (r254339) @@ -710,6 +710,7 @@ localcmd(int argc __unused, char **argv { char *name; + nextopt(""); if (! in_function()) error("Not in a function"); while ((name = *argptr++) != NULL) { Added: head/tools/regression/bin/sh/builtins/local4.0 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/regression/bin/sh/builtins/local4.0 Wed Aug 14 21:59:48 2013 (r254339) @@ -0,0 +1,12 @@ +# $FreeBSD$ + +f() { + local -- x + x=2 + [ "$x" = 2 ] +} +x=1 +f || exit 3 +[ "$x" = 1 ] || exit 3 +f || exit 3 +[ "$x" = 1 ] || exit 3 From owner-svn-src-all@FreeBSD.ORG Wed Aug 14 22:19:30 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2A6E3135; Wed, 14 Aug 2013 22:19:30 +0000 (UTC) (envelope-from sjg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 180C12B5E; Wed, 14 Aug 2013 22:19:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7EMJTcG071953; Wed, 14 Aug 2013 22:19:29 GMT (envelope-from sjg@svn.freebsd.org) Received: (from sjg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7EMJTWT071952; Wed, 14 Aug 2013 22:19:29 GMT (envelope-from sjg@svn.freebsd.org) Message-Id: <201308142219.r7EMJTWT071952@svn.freebsd.org> From: "Simon J. Gerraty" Date: Wed, 14 Aug 2013 22:19:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254340 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Aug 2013 22:19:30 -0000 Author: sjg Date: Wed Aug 14 22:19:29 2013 New Revision: 254340 URL: http://svnweb.freebsd.org/changeset/base/254340 Log: Some objects - such as *_genassym.o are not hooked into SRCS OBJS or anything else, yet have a dependency on symlinks such as machine/ Reviewed by: obrien Modified: head/sys/conf/kern.post.mk Modified: head/sys/conf/kern.post.mk ============================================================================== --- head/sys/conf/kern.post.mk Wed Aug 14 21:59:48 2013 (r254339) +++ head/sys/conf/kern.post.mk Wed Aug 14 22:19:29 2013 (r254340) @@ -219,7 +219,7 @@ _ILINKS+= x86 # Ensure that the link exists without depending on it when it exists. .for _link in ${_ILINKS} .if !exists(${.OBJDIR}/${_link}) -${SRCS}: ${_link} +${SRCS} ${CLEAN:M*.o}: ${_link} .endif .endfor From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 01:31:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5722A6A9; Thu, 15 Aug 2013 01:31:32 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 449EE291E; Thu, 15 Aug 2013 01:31:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F1VW2k067090; Thu, 15 Aug 2013 01:31:32 GMT (envelope-from gshapiro@svn.freebsd.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F1VWKZ067089; Thu, 15 Aug 2013 01:31:32 GMT (envelope-from gshapiro@svn.freebsd.org) Message-Id: <201308150131.r7F1VWKZ067089@svn.freebsd.org> From: Gregory Neil Shapiro Date: Thu, 15 Aug 2013 01:31:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254346 - releng/9.2/contrib/sendmail/include/sm/os X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 01:31:32 -0000 Author: gshapiro Date: Thu Aug 15 01:31:31 2013 New Revision: 254346 URL: http://svnweb.freebsd.org/changeset/base/254346 Log: MFC: Temporarily revert sendmail 8.14.7 change to getipnodebyname() flags to prevent problems between the resolver and Microsoft DNS servers with AAAA lookups. The upstream open source project will work on a more permanent fix for the next release. Issue noted by Pavel Timofeev. Approved by: re (glebius) Modified: releng/9.2/contrib/sendmail/include/sm/os/sm_os_freebsd.h Directory Properties: releng/9.2/contrib/sendmail/ (props changed) Modified: releng/9.2/contrib/sendmail/include/sm/os/sm_os_freebsd.h ============================================================================== --- releng/9.2/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 00:17:31 2013 (r254345) +++ releng/9.2/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:31:31 2013 (r254346) @@ -39,3 +39,7 @@ #ifndef SM_CONF_MSG # define SM_CONF_MSG 1 #endif /* SM_CONF_MSG */ + +#ifndef SM_IPNODEBYNAME_FLAGS +# define SM_IPNODEBYNAME_FLAGS AI_DEFAULT|AI_ALL +#endif /* SM_IPNODEBYNAME_FLAGS */ From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 01:32:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2598B78F; Thu, 15 Aug 2013 01:32:49 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 12DD1292D; Thu, 15 Aug 2013 01:32:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F1WmTe067367; Thu, 15 Aug 2013 01:32:48 GMT (envelope-from gshapiro@svn.freebsd.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F1WmSh067366; Thu, 15 Aug 2013 01:32:48 GMT (envelope-from gshapiro@svn.freebsd.org) Message-Id: <201308150132.r7F1WmSh067366@svn.freebsd.org> From: Gregory Neil Shapiro Date: Thu, 15 Aug 2013 01:32:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254347 - stable/9/contrib/sendmail/include/sm/os X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 01:32:49 -0000 Author: gshapiro Date: Thu Aug 15 01:32:48 2013 New Revision: 254347 URL: http://svnweb.freebsd.org/changeset/base/254347 Log: MFC: Temporarily revert sendmail 8.14.7 change to getipnodebyname() flags to prevent problems between the resolver and Microsoft DNS servers with AAAA lookups. The upstream open source project will work on a more permanent fix for the next release. Issue noted by Pavel Timofeev. Modified: stable/9/contrib/sendmail/include/sm/os/sm_os_freebsd.h Directory Properties: stable/9/contrib/sendmail/ (props changed) Modified: stable/9/contrib/sendmail/include/sm/os/sm_os_freebsd.h ============================================================================== --- stable/9/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:31:31 2013 (r254346) +++ stable/9/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:32:48 2013 (r254347) @@ -39,3 +39,7 @@ #ifndef SM_CONF_MSG # define SM_CONF_MSG 1 #endif /* SM_CONF_MSG */ + +#ifndef SM_IPNODEBYNAME_FLAGS +# define SM_IPNODEBYNAME_FLAGS AI_DEFAULT|AI_ALL +#endif /* SM_IPNODEBYNAME_FLAGS */ From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 01:40:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D3C1FA48; Thu, 15 Aug 2013 01:40:55 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C0DD1299C; Thu, 15 Aug 2013 01:40:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F1etoj070080; Thu, 15 Aug 2013 01:40:55 GMT (envelope-from gshapiro@svn.freebsd.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F1etJQ070055; Thu, 15 Aug 2013 01:40:55 GMT (envelope-from gshapiro@svn.freebsd.org) Message-Id: <201308150140.r7F1etJQ070055@svn.freebsd.org> From: Gregory Neil Shapiro Date: Thu, 15 Aug 2013 01:40:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r254348 - stable/8/contrib/sendmail/include/sm/os X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 01:40:55 -0000 Author: gshapiro Date: Thu Aug 15 01:40:55 2013 New Revision: 254348 URL: http://svnweb.freebsd.org/changeset/base/254348 Log: MFC: Temporarily revert sendmail 8.14.7 change to getipnodebyname() flags to prevent problems between the resolver and Microsoft DNS servers with AAAA lookups. The upstream open source project will work on a more permanent fix for the next release. Issue noted by Pavel Timofeev. Modified: stable/8/contrib/sendmail/include/sm/os/sm_os_freebsd.h Directory Properties: stable/8/contrib/sendmail/ (props changed) Modified: stable/8/contrib/sendmail/include/sm/os/sm_os_freebsd.h ============================================================================== --- stable/8/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:32:48 2013 (r254347) +++ stable/8/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:40:55 2013 (r254348) @@ -39,3 +39,7 @@ #ifndef SM_CONF_MSG # define SM_CONF_MSG 1 #endif /* SM_CONF_MSG */ + +#ifndef SM_IPNODEBYNAME_FLAGS +# define SM_IPNODEBYNAME_FLAGS AI_DEFAULT|AI_ALL +#endif /* SM_IPNODEBYNAME_FLAGS */ From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 01:42:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 18C7FB26; Thu, 15 Aug 2013 01:42:47 +0000 (UTC) (envelope-from gshapiro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 05E2D29A6; Thu, 15 Aug 2013 01:42:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F1gkWd071337; Thu, 15 Aug 2013 01:42:46 GMT (envelope-from gshapiro@svn.freebsd.org) Received: (from gshapiro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F1gkCP071336; Thu, 15 Aug 2013 01:42:46 GMT (envelope-from gshapiro@svn.freebsd.org) Message-Id: <201308150142.r7F1gkCP071336@svn.freebsd.org> From: Gregory Neil Shapiro Date: Thu, 15 Aug 2013 01:42:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r254349 - stable/7/contrib/sendmail/include/sm/os X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 01:42:47 -0000 Author: gshapiro Date: Thu Aug 15 01:42:46 2013 New Revision: 254349 URL: http://svnweb.freebsd.org/changeset/base/254349 Log: MFC: Temporarily revert sendmail 8.14.7 change to getipnodebyname() flags to prevent problems between the resolver and Microsoft DNS servers with AAAA lookups. The upstream open source project will work on a more permanent fix for the next release. Issue noted by Pavel Timofeev. Modified: stable/7/contrib/sendmail/include/sm/os/sm_os_freebsd.h Directory Properties: stable/7/contrib/sendmail/ (props changed) Modified: stable/7/contrib/sendmail/include/sm/os/sm_os_freebsd.h ============================================================================== --- stable/7/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:40:55 2013 (r254348) +++ stable/7/contrib/sendmail/include/sm/os/sm_os_freebsd.h Thu Aug 15 01:42:46 2013 (r254349) @@ -39,3 +39,7 @@ #ifndef SM_CONF_MSG # define SM_CONF_MSG 1 #endif /* SM_CONF_MSG */ + +#ifndef SM_IPNODEBYNAME_FLAGS +# define SM_IPNODEBYNAME_FLAGS AI_DEFAULT|AI_ALL +#endif /* SM_IPNODEBYNAME_FLAGS */ From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 04:08:57 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 85A841A4; Thu, 15 Aug 2013 04:08:57 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 640FC204D; Thu, 15 Aug 2013 04:08:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F48vkG026718; Thu, 15 Aug 2013 04:08:57 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F48tZH026709; Thu, 15 Aug 2013 04:08:55 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308150408.r7F48tZH026709@svn.freebsd.org> From: Mark Johnston Date: Thu, 15 Aug 2013 04:08:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254350 - in head/sys: kern netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 04:08:57 -0000 Author: markj Date: Thu Aug 15 04:08:55 2013 New Revision: 254350 URL: http://svnweb.freebsd.org/changeset/base/254350 Log: Specify SDT probe argument types in the probe definition itself rather than using SDT_PROBE_ARGTYPE(). This will make it easy to extend the SDT(9) API to allow probes with dynamically-translated types. There is no functional change. MFC after: 2 weeks Modified: head/sys/kern/kern_exec.c head/sys/kern/kern_exit.c head/sys/kern/kern_fork.c head/sys/kern/kern_proc.c head/sys/kern/kern_sig.c head/sys/kern/kern_timeout.c head/sys/kern/vfs_syscalls.c head/sys/netinet/sctp_dtrace_define.h Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/kern_exec.c Thu Aug 15 04:08:55 2013 (r254350) @@ -96,12 +96,9 @@ dtrace_execexit_func_t dtrace_fasttrap_e #endif SDT_PROVIDER_DECLARE(proc); -SDT_PROBE_DEFINE(proc, kernel, , exec, exec); -SDT_PROBE_ARGTYPE(proc, kernel, , exec, 0, "char *"); -SDT_PROBE_DEFINE(proc, kernel, , exec_failure, exec-failure); -SDT_PROBE_ARGTYPE(proc, kernel, , exec_failure, 0, "int"); -SDT_PROBE_DEFINE(proc, kernel, , exec_success, exec-success); -SDT_PROBE_ARGTYPE(proc, kernel, , exec_success, 0, "char *"); +SDT_PROBE_DEFINE1(proc, kernel, , exec, exec, "char *"); +SDT_PROBE_DEFINE1(proc, kernel, , exec_failure, exec-failure, "int"); +SDT_PROBE_DEFINE1(proc, kernel, , exec_success, exec-success, "char *"); MALLOC_DEFINE(M_PARGS, "proc-args", "Process arguments"); Modified: head/sys/kern/kern_exit.c ============================================================================== --- head/sys/kern/kern_exit.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/kern_exit.c Thu Aug 15 04:08:55 2013 (r254350) @@ -94,8 +94,7 @@ dtrace_execexit_func_t dtrace_fasttrap_e #endif SDT_PROVIDER_DECLARE(proc); -SDT_PROBE_DEFINE(proc, kernel, , exit, exit); -SDT_PROBE_ARGTYPE(proc, kernel, , exit, 0, "int"); +SDT_PROBE_DEFINE1(proc, kernel, , exit, exit, "int"); /* Hook for NFS teardown procedure. */ void (*nlminfo_release_p)(struct proc *p); Modified: head/sys/kern/kern_fork.c ============================================================================== --- head/sys/kern/kern_fork.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/kern_fork.c Thu Aug 15 04:08:55 2013 (r254350) @@ -89,10 +89,8 @@ dtrace_fork_func_t dtrace_fasttrap_fork; #endif SDT_PROVIDER_DECLARE(proc); -SDT_PROBE_DEFINE(proc, kernel, , create, create); -SDT_PROBE_ARGTYPE(proc, kernel, , create, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, , create, 1, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, , create, 2, "int"); +SDT_PROBE_DEFINE3(proc, kernel, , create, create, "struct proc *", + "struct proc *", "int"); #ifndef _SYS_SYSPROTO_H_ struct fork_args { Modified: head/sys/kern/kern_proc.c ============================================================================== --- head/sys/kern/kern_proc.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/kern_proc.c Thu Aug 15 04:08:55 2013 (r254350) @@ -92,33 +92,18 @@ __FBSDID("$FreeBSD$"); #endif SDT_PROVIDER_DEFINE(proc); -SDT_PROBE_DEFINE(proc, kernel, ctor, entry, entry); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 1, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 2, "void *"); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, entry, 3, "int"); -SDT_PROBE_DEFINE(proc, kernel, ctor, return, return); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 1, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 2, "void *"); -SDT_PROBE_ARGTYPE(proc, kernel, ctor, return, 3, "int"); -SDT_PROBE_DEFINE(proc, kernel, dtor, entry, entry); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 1, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 2, "void *"); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, entry, 3, "struct thread *"); -SDT_PROBE_DEFINE(proc, kernel, dtor, return, return); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, return, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, return, 1, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, dtor, return, 2, "void *"); -SDT_PROBE_DEFINE(proc, kernel, init, entry, entry); -SDT_PROBE_ARGTYPE(proc, kernel, init, entry, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, init, entry, 1, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, init, entry, 2, "int"); -SDT_PROBE_DEFINE(proc, kernel, init, return, return); -SDT_PROBE_ARGTYPE(proc, kernel, init, return, 0, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, init, return, 1, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, init, return, 2, "int"); +SDT_PROBE_DEFINE4(proc, kernel, ctor, entry, entry, "struct proc *", "int", + "void *", "int"); +SDT_PROBE_DEFINE4(proc, kernel, ctor, return, return, "struct proc *", "int", + "void *", "int"); +SDT_PROBE_DEFINE4(proc, kernel, dtor, entry, entry, "struct proc *", "int", + "void *", "struct thread *"); +SDT_PROBE_DEFINE3(proc, kernel, dtor, return, return, "struct proc *", "int", + "void *"); +SDT_PROBE_DEFINE3(proc, kernel, init, entry, entry, "struct proc *", "int", + "int"); +SDT_PROBE_DEFINE3(proc, kernel, init, return, return, "struct proc *", "int", + "int"); MALLOC_DEFINE(M_PGRP, "pgrp", "process group header"); MALLOC_DEFINE(M_SESSION, "session", "session header"); Modified: head/sys/kern/kern_sig.c ============================================================================== --- head/sys/kern/kern_sig.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/kern_sig.c Thu Aug 15 04:08:55 2013 (r254350) @@ -93,17 +93,12 @@ __FBSDID("$FreeBSD$"); #define ONSIG 32 /* NSIG for osig* syscalls. XXX. */ SDT_PROVIDER_DECLARE(proc); -SDT_PROBE_DEFINE(proc, kernel, , signal_send, signal-send); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_send, 0, "struct thread *"); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_send, 1, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_send, 2, "int"); -SDT_PROBE_DEFINE(proc, kernel, , signal_clear, signal-clear); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_clear, 0, "int"); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_clear, 1, "ksiginfo_t *"); -SDT_PROBE_DEFINE(proc, kernel, , signal_discard, signal-discard); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 0, "struct thread *"); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 1, "struct proc *"); -SDT_PROBE_ARGTYPE(proc, kernel, , signal_discard, 2, "int"); +SDT_PROBE_DEFINE3(proc, kernel, , signal_send, signal-send, "struct thread *", + "struct proc *", "int"); +SDT_PROBE_DEFINE2(proc, kernel, , signal_clear, signal-clear, "int", + "ksiginfo_t *"); +SDT_PROBE_DEFINE3(proc, kernel, , signal_discard, signal-discard, + "struct thread *", "struct proc *", "int"); static int coredump(struct thread *); static int killpg1(struct thread *td, int sig, int pgid, int all, Modified: head/sys/kern/kern_timeout.c ============================================================================== --- head/sys/kern/kern_timeout.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/kern_timeout.c Thu Aug 15 04:08:55 2013 (r254350) @@ -69,11 +69,9 @@ DPCPU_DECLARE(sbintime_t, hardclocktime) #endif SDT_PROVIDER_DEFINE(callout_execute); -SDT_PROBE_DEFINE(callout_execute, kernel, , callout_start, callout-start); -SDT_PROBE_ARGTYPE(callout_execute, kernel, , callout_start, 0, +SDT_PROBE_DEFINE1(callout_execute, kernel, , callout_start, callout-start, "struct callout *"); -SDT_PROBE_DEFINE(callout_execute, kernel, , callout_end, callout-end); -SDT_PROBE_ARGTYPE(callout_execute, kernel, , callout_end, 0, +SDT_PROBE_DEFINE1(callout_execute, kernel, , callout_end, callout-end, "struct callout *"); #ifdef CALLOUT_PROFILING Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/kern/vfs_syscalls.c Thu Aug 15 04:08:55 2013 (r254350) @@ -92,12 +92,8 @@ __FBSDID("$FreeBSD$"); MALLOC_DEFINE(M_FADVISE, "fadvise", "posix_fadvise(2) information"); SDT_PROVIDER_DEFINE(vfs); -SDT_PROBE_DEFINE(vfs, , stat, mode, mode); -SDT_PROBE_ARGTYPE(vfs, , stat, mode, 0, "char *"); -SDT_PROBE_ARGTYPE(vfs, , stat, mode, 1, "int"); -SDT_PROBE_DEFINE(vfs, , stat, reg, reg); -SDT_PROBE_ARGTYPE(vfs, , stat, reg, 0, "char *"); -SDT_PROBE_ARGTYPE(vfs, , stat, reg, 1, "int"); +SDT_PROBE_DEFINE2(vfs, , stat, mode, mode, "char *", "int"); +SDT_PROBE_DEFINE2(vfs, , stat, reg, reg, "char *", "int"); static int chroot_refuse_vdir_fds(struct filedesc *fdp); static int getutimes(const struct timeval *, enum uio_seg, struct timespec *); Modified: head/sys/netinet/sctp_dtrace_define.h ============================================================================== --- head/sys/netinet/sctp_dtrace_define.h Thu Aug 15 01:42:46 2013 (r254349) +++ head/sys/netinet/sctp_dtrace_define.h Thu Aug 15 04:08:55 2013 (r254350) @@ -45,189 +45,132 @@ SDT_PROVIDER_DEFINE(sctp); /* Cwnd probe - tracks changes in the congestion window on a netp */ /********************************************************/ /* Initial */ -SDT_PROBE_DEFINE(sctp, cwnd, net, init, init); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, init, 4, "int"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, init, init, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /* ACK-INCREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, ack, ack); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ack, 4, "int"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, ack, ack, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /* ACK-INCREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, rttvar, rttvar); -/* The Vtag << 32 | localport << 16 | remoteport */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 0, "uint64_t"); -/* obw | nbw */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 1, "uint64_t"); -/* bwrtt | newrtt */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 2, "uint64_t"); -/* flight */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 3, "uint64_t"); -/* (cwnd << 32) | point << 16 | retval(0/1) */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttvar, 4, "uint64_t"); - - -SDT_PROBE_DEFINE(sctp, cwnd, net, rttstep, rttstep); -/* The Vtag << 32 | localport << 16 | remoteport */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 0, "uint64_t"); -/* obw | nbw */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 1, "uint64_t"); -/* bwrtt | nrtt */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 2, "uint64_t"); -/* cwnd_saved | stepcnt << 16 | oldstep */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 3, "uint64_t"); -/* (cwnd << 32) | point << 16 | retval(0/1) */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, rttstep, 4, "uint64_t"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, rttvar, rttvar, + "uint64_t", /* The Vtag << 32 | localport << 16 | remoteport */ + "uint64_t", /* obw | nbw */ + "uint64_t", /* bwrtt | newrtt */ + "uint64_t", /* flight */ + "uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */ + +SDT_PROBE_DEFINE5(sctp, cwnd, net, rttstep, rttstep, + "uint64_t", /* The Vtag << 32 | localport << 16 | remoteport */ + "uint64_t", /* obw | nbw */ + "uint64_t", /* bwrtt | newrtt */ + "uint64_t", /* flight */ + "uint64_t"); /* (cwnd << 32) | point << 16 | retval(0/1) */ /* FastRetransmit-DECREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, fr, fr); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, fr, 4, "int"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, fr, fr, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /* TimeOut-DECREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, to, to); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, to, 4, "int"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, to, to, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /* BurstLimit-DECREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, bl, bl); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, bl, 4, "int"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, bl, bl, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /* ECN-DECREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, ecn, ecn); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, ecn, 4, "int"); - +SDT_PROBE_DEFINE5(sctp, cwnd, net, ecn, ecn, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /* PacketDrop-DECREASE */ -SDT_PROBE_DEFINE(sctp, cwnd, net, pd, pd); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 2, "uintptr_t"); -/* The old value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, cwnd, net, pd, 4, "int"); - - +SDT_PROBE_DEFINE5(sctp, cwnd, net, pd, pd, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The old value of the cwnd */ + "int"); /* The new value of the cwnd */ /********************************************************/ /* Rwnd probe - tracks changes in the receiver window for an assoc */ /********************************************************/ -SDT_PROBE_DEFINE(sctp, rwnd, assoc, val, val); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 1, "uint32_t"); -/* The up/down amount */ -SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 2, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, rwnd, assoc, val, 3, "int"); +SDT_PROBE_DEFINE4(sctp, rwnd, assoc, val, val, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "int", /* The up/down amount */ + "int"); /* The new value of the cwnd */ /********************************************************/ /* flight probe - tracks changes in the flight size on a net or assoc */ /********************************************************/ -SDT_PROBE_DEFINE(sctp, flightsize, net, val, val); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 1, "uint32_t"); -/* The pointer to the struct sctp_nets * changing */ -SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 2, "uintptr_t"); -/* The up/down amount */ -SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 3, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, flightsize, net, val, 4, "int"); +SDT_PROBE_DEFINE5(sctp, flightsize, net, val, val, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "uintptr_t", /* The pointer to the struct sctp_nets * changing */ + "int", /* The up/down amount */ + "int"); /* The new value of the cwnd */ + /********************************************************/ /* The total flight version */ /********************************************************/ -SDT_PROBE_DEFINE(sctp, flightsize, assoc, val, val); -/* The Vtag for this end */ -SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 0, "uint32_t"); -/* The port number of the local side << 16 | port number of remote - * in network byte order. - */ -SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 1, "uint32_t"); -/* The up/down amount */ -SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 2, "int"); -/* The new value of the cwnd */ -SDT_PROBE_ARGTYPE(sctp, flightsize, assoc, val, 3, "int"); +SDT_PROBE_DEFINE4(sctp, flightsize, assoc, val, val, + "uint32_t", /* The Vtag for this end */ + "uint32_t", /* + * The port number of the local side << 16 | port number + * of remote in network byte order. + */ + "int", /* The up/down amount */ + "int"); /* The new value of the cwnd */ #endif From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 04:10:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A4410281; Thu, 15 Aug 2013 04:10:15 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 909C5204F; Thu, 15 Aug 2013 04:10:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F4AFI9027207; Thu, 15 Aug 2013 04:10:15 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F4AFQf027206; Thu, 15 Aug 2013 04:10:15 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308150410.r7F4AFQf027206@svn.freebsd.org> From: Mark Johnston Date: Thu, 15 Aug 2013 04:10:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254351 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 04:10:15 -0000 Author: markj Date: Thu Aug 15 04:10:15 2013 New Revision: 254351 URL: http://svnweb.freebsd.org/changeset/base/254351 Log: Fix a typo. MFC after: 3 days Modified: head/share/man/man9/netisr.9 Modified: head/share/man/man9/netisr.9 ============================================================================== --- head/share/man/man9/netisr.9 Thu Aug 15 04:08:55 2013 (r254350) +++ head/share/man/man9/netisr.9 Thu Aug 15 04:10:15 2013 (r254351) @@ -83,7 +83,7 @@ and .Nm supports multi-processor execution of handlers, and relies on a combination of source ordering and protocol-specific ordering and work-placement -policies to decide how do distribute work across one or more worker +policies to decide how to distribute work across one or more worker threads. Registering protocols will declare one of three policies: .Bl -tag -width NETISR_POLICY_SOURCE From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 04:25:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A4480986; Thu, 15 Aug 2013 04:25:16 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 919A520E9; Thu, 15 Aug 2013 04:25:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F4PGGb033675; Thu, 15 Aug 2013 04:25:16 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F4PGMp033674; Thu, 15 Aug 2013 04:25:16 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201308150425.r7F4PGMp033674@svn.freebsd.org> From: Michael Tuexen Date: Thu, 15 Aug 2013 04:25:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254352 - stable/9/sys/netinet X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 04:25:16 -0000 Author: tuexen Date: Thu Aug 15 04:25:16 2013 New Revision: 254352 URL: http://svnweb.freebsd.org/changeset/base/254352 Log: MFC r254338: Don't send uninitialized memory (two instances of 4 bytes) in every cookie on the wire. This bug was reported in https://bugzilla.mozilla.org/show_bug.cgi?id=905080 Modified: stable/9/sys/netinet/sctp_output.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/netinet/sctp_output.c ============================================================================== --- stable/9/sys/netinet/sctp_output.c Thu Aug 15 04:10:15 2013 (r254351) +++ stable/9/sys/netinet/sctp_output.c Thu Aug 15 04:25:16 2013 (r254352) @@ -5410,6 +5410,14 @@ do_a_abort: } SCTP_BUF_LEN(m) = sizeof(struct sctp_init_chunk); + /* + * We might not overwrite the identification[] completely and on + * some platforms time_entered will contain some padding. Therefore + * zero out the cookie to avoid putting uninitialized memory on the + * wire. + */ + memset(&stc, 0, sizeof(struct sctp_state_cookie)); + /* the time I built cookie */ (void)SCTP_GETTIME_TIMEVAL(&stc.time_entered); From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 04:27:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 207A8AA6; Thu, 15 Aug 2013 04:27:11 +0000 (UTC) (envelope-from ache@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0C97520F1; Thu, 15 Aug 2013 04:27:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F4RAAP033993; Thu, 15 Aug 2013 04:27:10 GMT (envelope-from ache@svn.freebsd.org) Received: (from ache@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F4RA1j033992; Thu, 15 Aug 2013 04:27:10 GMT (envelope-from ache@svn.freebsd.org) Message-Id: <201308150427.r7F4RA1j033992@svn.freebsd.org> From: "Andrey A. Chernov" Date: Thu, 15 Aug 2013 04:27:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254353 - stable/9/lib/libc/gen X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 04:27:11 -0000 Author: ache Date: Thu Aug 15 04:27:10 2013 New Revision: 254353 URL: http://svnweb.freebsd.org/changeset/base/254353 Log: MFC: r254091 According to POSIX \ in the fnmatch(3) pattern should escape any character including '\0', but our version replace escaped '\0' with '\\'. I.e. fnmatch("\\", "\\", 0) should not match while fnmatch("\\", "", 0) should (Linux and NetBSD does the same). Was vice versa. PR: 181129 Modified: stable/9/lib/libc/gen/fnmatch.c Directory Properties: stable/9/lib/libc/ (props changed) Modified: stable/9/lib/libc/gen/fnmatch.c ============================================================================== --- stable/9/lib/libc/gen/fnmatch.c Thu Aug 15 04:25:16 2013 (r254352) +++ stable/9/lib/libc/gen/fnmatch.c Thu Aug 15 04:27:10 2013 (r254353) @@ -194,8 +194,6 @@ fnmatch1(pattern, string, stringstart, f &patmbs); if (pclen == (size_t)-1 || pclen == (size_t)-2) return (FNM_NOMATCH); - if (pclen == 0) - pc = '\\'; pattern += pclen; } /* FALLTHROUGH */ From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 04:35:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5D502C57; Thu, 15 Aug 2013 04:35:26 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 48E4D2139; Thu, 15 Aug 2013 04:35:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F4ZQZC037359; Thu, 15 Aug 2013 04:35:26 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F4ZQGL037358; Thu, 15 Aug 2013 04:35:26 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201308150435.r7F4ZQGL037358@svn.freebsd.org> From: Michael Tuexen Date: Thu, 15 Aug 2013 04:35:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r254354 - stable/8/sys/netinet X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 04:35:26 -0000 Author: tuexen Date: Thu Aug 15 04:35:25 2013 New Revision: 254354 URL: http://svnweb.freebsd.org/changeset/base/254354 Log: MFC r254338: Don't send uninitialized memory (two instances of 4 bytes) in every cookie on the wire. This bug was reported in https://bugzilla.mozilla.org/show_bug.cgi?id=905080 Modified: stable/8/sys/netinet/sctp_output.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/netinet/ (props changed) Modified: stable/8/sys/netinet/sctp_output.c ============================================================================== --- stable/8/sys/netinet/sctp_output.c Thu Aug 15 04:27:10 2013 (r254353) +++ stable/8/sys/netinet/sctp_output.c Thu Aug 15 04:35:25 2013 (r254354) @@ -5415,6 +5415,14 @@ do_a_abort: } SCTP_BUF_LEN(m) = sizeof(struct sctp_init_chunk); + /* + * We might not overwrite the identification[] completely and on + * some platforms time_entered will contain some padding. Therefore + * zero out the cookie to avoid putting uninitialized memory on the + * wire. + */ + memset(&stc, 0, sizeof(struct sctp_state_cookie)); + /* the time I built cookie */ (void)SCTP_GETTIME_TIMEVAL(&stc.time_entered); From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 05:14:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 15C5FF26; Thu, 15 Aug 2013 05:14:21 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 03B262327; Thu, 15 Aug 2013 05:14:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F5EK8A052364; Thu, 15 Aug 2013 05:14:20 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F5EKbK052363; Thu, 15 Aug 2013 05:14:20 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201308150514.r7F5EKbK052363@svn.freebsd.org> From: Michael Tuexen Date: Thu, 15 Aug 2013 05:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254355 - releng/9.2/sys/netinet X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 05:14:21 -0000 Author: tuexen Date: Thu Aug 15 05:14:20 2013 New Revision: 254355 URL: http://svnweb.freebsd.org/changeset/base/254355 Log: MFC r254352: Don't send uninitialized memory (two instances of 4 bytes) in every cookie on the wire. This bug was reported in https://bugzilla.mozilla.org/show_bug.cgi?id=905080 Approved by: re@ Modified: releng/9.2/sys/netinet/sctp_output.c Directory Properties: releng/9.2/sys/ (props changed) Modified: releng/9.2/sys/netinet/sctp_output.c ============================================================================== --- releng/9.2/sys/netinet/sctp_output.c Thu Aug 15 04:35:25 2013 (r254354) +++ releng/9.2/sys/netinet/sctp_output.c Thu Aug 15 05:14:20 2013 (r254355) @@ -5410,6 +5410,14 @@ do_a_abort: } SCTP_BUF_LEN(m) = sizeof(struct sctp_init_chunk); + /* + * We might not overwrite the identification[] completely and on + * some platforms time_entered will contain some padding. Therefore + * zero out the cookie to avoid putting uninitialized memory on the + * wire. + */ + memset(&stc, 0, sizeof(struct sctp_state_cookie)); + /* the time I built cookie */ (void)SCTP_GETTIME_TIMEVAL(&stc.time_entered); From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 07:54:34 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 983C5344; Thu, 15 Aug 2013 07:54:34 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 759692D7E; Thu, 15 Aug 2013 07:54:34 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F7sYV0012972; Thu, 15 Aug 2013 07:54:34 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F7sVbF012950; Thu, 15 Aug 2013 07:54:31 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201308150754.r7F7sVbF012950@svn.freebsd.org> From: Gleb Smirnoff Date: Thu, 15 Aug 2013 07:54:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254356 - in head/sys: compat/freebsd32 kern ofed/include/linux opencrypto sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 07:54:34 -0000 Author: glebius Date: Thu Aug 15 07:54:31 2013 New Revision: 254356 URL: http://svnweb.freebsd.org/changeset/base/254356 Log: Make sendfile() a method in the struct fileops. Currently only vnode backed file descriptors have this method implemented. Reviewed by: kib Sponsored by: Nginx, Inc. Sponsored by: Netflix Modified: head/sys/compat/freebsd32/freebsd32_misc.c head/sys/kern/kern_descrip.c head/sys/kern/kern_event.c head/sys/kern/sys_pipe.c head/sys/kern/sys_socket.c head/sys/kern/tty_pts.c head/sys/kern/uipc_mqueue.c head/sys/kern/uipc_sem.c head/sys/kern/uipc_shm.c head/sys/kern/uipc_syscalls.c head/sys/kern/vfs_vnops.c head/sys/ofed/include/linux/linux_compat.c head/sys/opencrypto/cryptodev.c head/sys/sys/file.h head/sys/sys/socket.h Modified: head/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_misc.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/compat/freebsd32/freebsd32_misc.c Thu Aug 15 07:54:31 2013 (r254356) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -1653,22 +1654,19 @@ static int freebsd32_do_sendfile(struct thread *td, struct freebsd32_sendfile_args *uap, int compat) { - struct sendfile_args ap; struct sf_hdtr32 hdtr32; struct sf_hdtr hdtr; struct uio *hdr_uio, *trl_uio; struct iovec32 *iov32; + struct file *fp; + off_t offset; int error; - hdr_uio = trl_uio = NULL; + offset = PAIR32TO64(off_t, uap->offset); + if (offset < 0) + return (EINVAL); - ap.fd = uap->fd; - ap.s = uap->s; - ap.offset = PAIR32TO64(off_t,uap->offset); - ap.nbytes = uap->nbytes; - ap.hdtr = (struct sf_hdtr *)uap->hdtr; /* XXX not used */ - ap.sbytes = uap->sbytes; - ap.flags = uap->flags; + hdr_uio = trl_uio = NULL; if (uap->hdtr != NULL) { error = copyin(uap->hdtr, &hdtr32, sizeof(hdtr32)); @@ -1695,7 +1693,15 @@ freebsd32_do_sendfile(struct thread *td, } } - error = kern_sendfile(td, &ap, hdr_uio, trl_uio, compat); + AUDIT_ARG_FD(uap->fd); + + if ((error = fget_read(td, uap->fd, CAP_PREAD, &fp)) != 0) + goto out; + + error = fo_sendfile(fp, uap->s, hdr_uio, trl_uio, offset, + uap->nbytes, uap->sbytes, uap->flags, compat ? SFK_COMPAT : 0, td); + fdrop(fp, td); + out: if (hdr_uio) free(hdr_uio, M_IOV); Modified: head/sys/kern/kern_descrip.c ============================================================================== --- head/sys/kern/kern_descrip.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/kern_descrip.c Thu Aug 15 07:54:31 2013 (r254356) @@ -3887,6 +3887,15 @@ badfo_chown(struct file *fp, uid_t uid, return (EBADF); } +static int +badfo_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, + struct uio *trl_uio, off_t offset, size_t nbytes, off_t *sent, int flags, + int kflags, struct thread *td) +{ + + return (EBADF); +} + struct fileops badfileops = { .fo_read = badfo_readwrite, .fo_write = badfo_readwrite, @@ -3898,6 +3907,7 @@ struct fileops badfileops = { .fo_close = badfo_close, .fo_chmod = badfo_chmod, .fo_chown = badfo_chown, + .fo_sendfile = badfo_sendfile, }; int @@ -3916,6 +3926,15 @@ invfo_chown(struct file *fp, uid_t uid, return (EINVAL); } +int +invfo_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, + struct uio *trl_uio, off_t offset, size_t nbytes, off_t *sent, int flags, + int kflags, struct thread *td) +{ + + return (EINVAL); +} + /*-------------------------------------------------------------------*/ /* Modified: head/sys/kern/kern_event.c ============================================================================== --- head/sys/kern/kern_event.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/kern_event.c Thu Aug 15 07:54:31 2013 (r254356) @@ -127,6 +127,7 @@ static struct fileops kqueueops = { .fo_close = kqueue_close, .fo_chmod = invfo_chmod, .fo_chown = invfo_chown, + .fo_sendfile = invfo_sendfile, }; static int knote_attach(struct knote *kn, struct kqueue *kq); Modified: head/sys/kern/sys_pipe.c ============================================================================== --- head/sys/kern/sys_pipe.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/sys_pipe.c Thu Aug 15 07:54:31 2013 (r254356) @@ -164,6 +164,7 @@ struct fileops pipeops = { .fo_close = pipe_close, .fo_chmod = pipe_chmod, .fo_chown = pipe_chown, + .fo_sendfile = invfo_sendfile, .fo_flags = DFLAG_PASSABLE }; Modified: head/sys/kern/sys_socket.c ============================================================================== --- head/sys/kern/sys_socket.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/sys_socket.c Thu Aug 15 07:54:31 2013 (r254356) @@ -66,6 +66,7 @@ struct fileops socketops = { .fo_close = soo_close, .fo_chmod = invfo_chmod, .fo_chown = invfo_chown, + .fo_sendfile = invfo_sendfile, .fo_flags = DFLAG_PASSABLE }; Modified: head/sys/kern/tty_pts.c ============================================================================== --- head/sys/kern/tty_pts.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/tty_pts.c Thu Aug 15 07:54:31 2013 (r254356) @@ -599,6 +599,7 @@ static struct fileops ptsdev_ops = { .fo_close = ptsdev_close, .fo_chmod = invfo_chmod, .fo_chown = invfo_chown, + .fo_sendfile = invfo_sendfile, .fo_flags = DFLAG_PASSABLE, }; Modified: head/sys/kern/uipc_mqueue.c ============================================================================== --- head/sys/kern/uipc_mqueue.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/uipc_mqueue.c Thu Aug 15 07:54:31 2013 (r254356) @@ -2597,7 +2597,8 @@ static struct fileops mqueueops = { .fo_stat = mqf_stat, .fo_chmod = mqf_chmod, .fo_chown = mqf_chown, - .fo_close = mqf_close + .fo_close = mqf_close, + .fo_sendfile = invfo_sendfile, }; static struct vop_vector mqfs_vnodeops = { Modified: head/sys/kern/uipc_sem.c ============================================================================== --- head/sys/kern/uipc_sem.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/uipc_sem.c Thu Aug 15 07:54:31 2013 (r254356) @@ -149,6 +149,7 @@ static struct fileops ksem_ops = { .fo_close = ksem_closef, .fo_chmod = ksem_chmod, .fo_chown = ksem_chown, + .fo_sendfile = invfo_sendfile, .fo_flags = DFLAG_PASSABLE }; Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/uipc_shm.c Thu Aug 15 07:54:31 2013 (r254356) @@ -132,6 +132,7 @@ static struct fileops shm_ops = { .fo_close = shm_close, .fo_chmod = shm_chmod, .fo_chown = shm_chown, + .fo_sendfile = invfo_sendfile, .fo_flags = DFLAG_PASSABLE }; Modified: head/sys/kern/uipc_syscalls.c ============================================================================== --- head/sys/kern/uipc_syscalls.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/uipc_syscalls.c Thu Aug 15 07:54:31 2013 (r254356) @@ -157,6 +157,9 @@ sfstat_sysctl(SYSCTL_HANDLER_ARGS) } SYSCTL_PROC(_kern_ipc, OID_AUTO, sfstat, CTLTYPE_OPAQUE | CTLFLAG_RW, NULL, 0, sfstat_sysctl, "I", "sendfile statistics"); + +fo_sendfile_t vn_sendfile; + /* * Convert a user file descriptor to a kernel file entry and check if required * capability rights are present. @@ -1904,8 +1907,12 @@ do_sendfile(struct thread *td, struct se { struct sf_hdtr hdtr; struct uio *hdr_uio, *trl_uio; + struct file *fp; int error; + if (uap->offset < 0) + return (EINVAL); + hdr_uio = trl_uio = NULL; if (uap->hdtr != NULL) { @@ -1925,7 +1932,19 @@ do_sendfile(struct thread *td, struct se } } - error = kern_sendfile(td, uap, hdr_uio, trl_uio, compat); + AUDIT_ARG_FD(uap->fd); + + /* + * sendfile(2) can start at any offset within a file so we require + * CAP_READ+CAP_SEEK = CAP_PREAD. + */ + if ((error = fget_read(td, uap->fd, CAP_PREAD, &fp)) != 0) + goto out; + + error = fo_sendfile(fp, uap->s, hdr_uio, trl_uio, uap->offset, + uap->nbytes, uap->sbytes, uap->flags, compat ? SFK_COMPAT : 0, td); + fdrop(fp, td); + out: if (hdr_uio) free(hdr_uio, M_IOV); @@ -1953,11 +1972,12 @@ freebsd4_sendfile(struct thread *td, str #endif /* COMPAT_FREEBSD4 */ int -kern_sendfile(struct thread *td, struct sendfile_args *uap, - struct uio *hdr_uio, struct uio *trl_uio, int compat) +vn_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, + struct uio *trl_uio, off_t offset, size_t nbytes, off_t *sent, int flags, + int kflags, struct thread *td) { + struct vnode *vp = fp->f_vnode; struct file *sock_fp; - struct vnode *vp; struct vm_object *obj = NULL; struct socket *so = NULL; struct mbuf *m = NULL; @@ -1969,23 +1989,10 @@ kern_sendfile(struct thread *td, struct int bsize; struct sendfile_sync *sfs = NULL; - /* - * The file descriptor must be a regular file and have a - * backing VM object. - * File offset must be positive. If it goes beyond EOF - * we send only the header/trailer and no payload data. - */ - AUDIT_ARG_FD(uap->fd); - /* - * sendfile(2) can start at any offset within a file so we require - * CAP_READ+CAP_SEEK = CAP_PREAD. - */ - if ((error = fgetvp_read(td, uap->fd, CAP_PREAD, &vp)) != 0) - goto out; vn_lock(vp, LK_SHARED | LK_RETRY); if (vp->v_type == VREG) { bsize = vp->v_mount->mnt_stat.f_iosize; - if (uap->nbytes == 0) { + if (nbytes == 0) { error = VOP_GETATTR(vp, &va, td->td_ucred); if (error != 0) { VOP_UNLOCK(vp, 0); @@ -1994,7 +2001,7 @@ kern_sendfile(struct thread *td, struct } rem = va.va_size; } else - rem = uap->nbytes; + rem = nbytes; obj = vp->v_object; if (obj != NULL) { /* @@ -2019,16 +2026,12 @@ kern_sendfile(struct thread *td, struct error = EINVAL; goto out; } - if (uap->offset < 0) { - error = EINVAL; - goto out; - } /* * The socket must be a stream socket and connected. * Remember if it a blocking or non-blocking socket. */ - if ((error = getsock_cap(td->td_proc->p_fd, uap->s, CAP_SEND, + if ((error = getsock_cap(td->td_proc->p_fd, sockfd, CAP_SEND, &sock_fp, NULL)) != 0) goto out; so = sock_fp->f_data; @@ -2045,10 +2048,10 @@ kern_sendfile(struct thread *td, struct * caller to retry later. * XXX: Experimental. */ - if (uap->flags & SF_MNOWAIT) + if (flags & SF_MNOWAIT) mnw = 1; - if (uap->flags & SF_SYNC) { + if (flags & SF_SYNC) { sfs = malloc(sizeof *sfs, M_TEMP, M_WAITOK | M_ZERO); mtx_init(&sfs->mtx, "sendfile", NULL, MTX_DEF); cv_init(&sfs->cv, "sendfile"); @@ -2070,11 +2073,11 @@ kern_sendfile(struct thread *td, struct * the header. If compat is specified subtract the * header size from nbytes. */ - if (compat) { - if (uap->nbytes > hdr_uio->uio_resid) - uap->nbytes -= hdr_uio->uio_resid; + if (kflags & SFK_COMPAT) { + if (nbytes > hdr_uio->uio_resid) + nbytes -= hdr_uio->uio_resid; else - uap->nbytes = 0; + nbytes = 0; } m = m_uiotombuf(hdr_uio, (mnw ? M_NOWAIT : M_WAITOK), 0, 0, 0); @@ -2105,14 +2108,14 @@ kern_sendfile(struct thread *td, struct * The outer loop checks the state and available space of the socket * and takes care of the overall progress. */ - for (off = uap->offset; ; ) { + for (off = offset; ; ) { struct mbuf *mtail; int loopbytes; int space; int done; - if ((uap->nbytes != 0 && uap->nbytes == fsbytes) || - (uap->nbytes == 0 && va.va_size == fsbytes)) + if ((nbytes != 0 && nbytes == fsbytes) || + (nbytes == 0 && va.va_size == fsbytes)) break; mtail = NULL; @@ -2210,11 +2213,11 @@ retry_space: * or the passed in nbytes. */ pgoff = (vm_offset_t)(off & PAGE_MASK); - if (uap->nbytes) - rem = (uap->nbytes - fsbytes - loopbytes); + if (nbytes) + rem = (nbytes - fsbytes - loopbytes); else rem = va.va_size - - uap->offset - fsbytes - loopbytes; + offset - fsbytes - loopbytes; xfsize = omin(PAGE_SIZE - pgoff, rem); xfsize = omin(space - loopbytes, xfsize); if (xfsize <= 0) { @@ -2242,7 +2245,7 @@ retry_space: VM_OBJECT_WUNLOCK(obj); else if (m != NULL) error = EAGAIN; /* send what we already got */ - else if (uap->flags & SF_NODISKIO) + else if (flags & SF_NODISKIO) error = EBUSY; else { ssize_t resid; @@ -2299,7 +2302,7 @@ retry_space: vm_page_lock(pg); vm_page_unwire(pg, 0); KASSERT(pg->object != NULL, - ("kern_sendfile: object disappeared")); + ("%s: object disappeared", __func__)); vm_page_unlock(pg); if (m == NULL) error = (mnw ? EAGAIN : EINTR); @@ -2399,7 +2402,7 @@ retry_space: */ if (trl_uio != NULL) { sbunlock(&so->so_snd); - error = kern_writev(td, uap->s, trl_uio); + error = kern_writev(td, sockfd, trl_uio); if (error == 0) sbytes += td->td_retval[0]; goto out; @@ -2415,13 +2418,11 @@ out: if (error == 0) { td->td_retval[0] = 0; } - if (uap->sbytes != NULL) { - copyout(&sbytes, uap->sbytes, sizeof(off_t)); + if (sent != NULL) { + copyout(&sbytes, sent, sizeof(off_t)); } if (obj != NULL) vm_object_deallocate(obj); - if (vp != NULL) - vrele(vp); if (so) fdrop(sock_fp, td); if (m) Modified: head/sys/kern/vfs_vnops.c ============================================================================== --- head/sys/kern/vfs_vnops.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/kern/vfs_vnops.c Thu Aug 15 07:54:31 2013 (r254356) @@ -88,6 +88,7 @@ static fo_poll_t vn_poll; static fo_kqfilter_t vn_kqfilter; static fo_stat_t vn_statfile; static fo_close_t vn_closefile; +extern fo_sendfile_t vn_sendfile; struct fileops vnops = { .fo_read = vn_io_fault, @@ -100,6 +101,7 @@ struct fileops vnops = { .fo_close = vn_closefile, .fo_chmod = vn_chmod, .fo_chown = vn_chown, + .fo_sendfile = vn_sendfile, .fo_flags = DFLAG_PASSABLE | DFLAG_SEEKABLE }; Modified: head/sys/ofed/include/linux/linux_compat.c ============================================================================== --- head/sys/ofed/include/linux/linux_compat.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/ofed/include/linux/linux_compat.c Thu Aug 15 07:54:31 2013 (r254356) @@ -565,6 +565,7 @@ struct fileops linuxfileops = { .fo_ioctl = linux_file_ioctl, .fo_chmod = invfo_chmod, .fo_chown = invfo_chown, + .fo_sendfile = invfo_sendfile, }; /* Modified: head/sys/opencrypto/cryptodev.c ============================================================================== --- head/sys/opencrypto/cryptodev.c Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/opencrypto/cryptodev.c Thu Aug 15 07:54:31 2013 (r254356) @@ -304,6 +304,7 @@ static struct fileops cryptofops = { .fo_close = cryptof_close, .fo_chmod = invfo_chmod, .fo_chown = invfo_chown, + .fo_sendfile = invfo_sendfile, }; static struct csession *csefind(struct fcrypt *, u_int); Modified: head/sys/sys/file.h ============================================================================== --- head/sys/sys/file.h Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/sys/file.h Thu Aug 15 07:54:31 2013 (r254356) @@ -105,6 +105,9 @@ typedef int fo_chmod_t(struct file *fp, struct ucred *active_cred, struct thread *td); typedef int fo_chown_t(struct file *fp, uid_t uid, gid_t gid, struct ucred *active_cred, struct thread *td); +typedef int fo_sendfile_t(struct file *fp, int sockfd, struct uio *hdr_uio, + struct uio *trl_uio, off_t offset, size_t nbytes, + off_t *sent, int flags, int kflags, struct thread *td); typedef int fo_flags_t; struct fileops { @@ -118,6 +121,7 @@ struct fileops { fo_close_t *fo_close; fo_chmod_t *fo_chmod; fo_chown_t *fo_chown; + fo_sendfile_t *fo_sendfile; fo_flags_t fo_flags; /* DFLAG_* below */ }; @@ -235,6 +239,7 @@ fo_close_t soo_close; fo_chmod_t invfo_chmod; fo_chown_t invfo_chown; +fo_sendfile_t invfo_sendfile; void finit(struct file *, u_int, short, void *, struct fileops *); int fgetvp(struct thread *td, int fd, cap_rights_t rights, struct vnode **vpp); @@ -273,6 +278,7 @@ static __inline fo_stat_t fo_stat; static __inline fo_close_t fo_close; static __inline fo_chmod_t fo_chmod; static __inline fo_chown_t fo_chown; +static __inline fo_sendfile_t fo_sendfile; static __inline int fo_read(struct file *fp, struct uio *uio, struct ucred *active_cred, @@ -352,6 +358,16 @@ fo_chown(struct file *fp, uid_t uid, gid return ((*fp->f_ops->fo_chown)(fp, uid, gid, active_cred, td)); } +static __inline int +fo_sendfile(struct file *fp, int sockfd, struct uio *hdr_uio, + struct uio *trl_uio, off_t offset, size_t nbytes, off_t *sent, int flags, + int kflags, struct thread *td) +{ + + return ((*fp->f_ops->fo_sendfile)(fp, sockfd, hdr_uio, trl_uio, offset, + nbytes, sent, flags, kflags, td)); +} + #endif /* _KERNEL */ #endif /* !SYS_FILE_H */ Modified: head/sys/sys/socket.h ============================================================================== --- head/sys/sys/socket.h Thu Aug 15 05:14:20 2013 (r254355) +++ head/sys/sys/socket.h Thu Aug 15 07:54:31 2013 (r254356) @@ -628,7 +628,11 @@ struct sf_hdtr { #define SF_NODISKIO 0x00000001 #define SF_MNOWAIT 0x00000002 #define SF_SYNC 0x00000004 -#endif + +#ifdef _KERNEL +#define SFK_COMPAT 0x00000001 +#endif /* _KERNEL */ +#endif /* __BSD_VISIBLE */ #ifndef _KERNEL From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 08:12:17 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6EE5E5DC; Thu, 15 Aug 2013 08:12:17 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5C1F42E5E; Thu, 15 Aug 2013 08:12:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F8CHNn020526; Thu, 15 Aug 2013 08:12:17 GMT (envelope-from jlh@svn.freebsd.org) Received: (from jlh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F8CHUl020520; Thu, 15 Aug 2013 08:12:17 GMT (envelope-from jlh@svn.freebsd.org) Message-Id: <201308150812.r7F8CHUl020520@svn.freebsd.org> From: Jeremie Le Hen Date: Thu, 15 Aug 2013 08:12:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254357 - releng/9.2/etc X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 08:12:17 -0000 Author: jlh Date: Thu Aug 15 08:12:16 2013 New Revision: 254357 URL: http://svnweb.freebsd.org/changeset/base/254357 Log: MFC r253853: Include /usr/local/etc/libmap.d/ by default. PR: 180568 Reviewed by: bapt Obtained from: kib Approved by: re (delphij) Added: releng/9.2/etc/libmap.conf - copied unchanged from r254332, stable/9/etc/libmap.conf Modified: releng/9.2/etc/Makefile Directory Properties: releng/9.2/etc/ (props changed) Modified: releng/9.2/etc/Makefile ============================================================================== --- releng/9.2/etc/Makefile Thu Aug 15 07:54:31 2013 (r254356) +++ releng/9.2/etc/Makefile Thu Aug 15 08:12:16 2013 (r254357) @@ -22,6 +22,7 @@ BIN1= crontab \ hosts.equiv \ inetd.conf \ libalias.conf \ + libmap.conf \ login.access \ login.conf \ mac.conf \ Copied: releng/9.2/etc/libmap.conf (from r254332, stable/9/etc/libmap.conf) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ releng/9.2/etc/libmap.conf Thu Aug 15 08:12:16 2013 (r254357, copy of r254332, stable/9/etc/libmap.conf) @@ -0,0 +1,2 @@ +# $FreeBSD$ +includedir /usr/local/etc/libmap.d From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 08:21:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 07C7D7B6; Thu, 15 Aug 2013 08:21:01 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E93502ECF; Thu, 15 Aug 2013 08:21:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7F8L0rN023940; Thu, 15 Aug 2013 08:21:00 GMT (envelope-from jlh@svn.freebsd.org) Received: (from jlh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7F8L03R023939; Thu, 15 Aug 2013 08:21:00 GMT (envelope-from jlh@svn.freebsd.org) Message-Id: <201308150821.r7F8L03R023939@svn.freebsd.org> From: Jeremie Le Hen Date: Thu, 15 Aug 2013 08:21:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254358 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 08:21:01 -0000 Author: jlh Date: Thu Aug 15 08:21:00 2013 New Revision: 254358 URL: http://svnweb.freebsd.org/changeset/base/254358 Log: Belatedly bump __FreeBSD_version for libc being an ld script. This should have been done in r251668, on June 12, 2013. This will have no practical consequences, besides having -lssp_nonshared appearing twice on the command-line for systems built in this time frame. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Thu Aug 15 08:12:16 2013 (r254357) +++ head/sys/sys/param.h Thu Aug 15 08:21:00 2013 (r254358) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1000043 /* Master, propagated to newvers */ +#define __FreeBSD_version 1000044 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 08:25:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 50135A79; Thu, 15 Aug 2013 08:25:08 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CB5C52F24; Thu, 15 Aug 2013 08:25:07 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r7F8P5Qm004973; Thu, 15 Aug 2013 12:25:05 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r7F8P5vN004972; Thu, 15 Aug 2013 12:25:05 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 15 Aug 2013 12:25:05 +0400 From: Gleb Smirnoff To: Jeremie Le Hen Subject: Re: svn commit: r254358 - head/sys/sys Message-ID: <20130815082505.GD4574@FreeBSD.org> References: <201308150821.r7F8L03R023939@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201308150821.r7F8L03R023939@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 08:25:08 -0000 On Thu, Aug 15, 2013 at 08:21:00AM +0000, Jeremie Le Hen wrote: J> Author: jlh J> Date: Thu Aug 15 08:21:00 2013 J> New Revision: 254358 J> URL: http://svnweb.freebsd.org/changeset/base/254358 J> J> Log: J> Belatedly bump __FreeBSD_version for libc being an ld script. J> This should have been done in r251668, on June 12, 2013. J> This will have no practical consequences, besides having -lssp_nonshared J> appearing twice on the command-line for systems built in this time frame. It has been bumped several times since June 12. You could use __FreeBSD_version 1000036 from r253049, which happened on July 7. -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 08:54:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C0BD8433; Thu, 15 Aug 2013 08:54:06 +0000 (UTC) (envelope-from jlh@FreeBSD.org) Received: from caravan.chchile.org (caravan.chchile.org [178.32.125.136]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 870B6209D; Thu, 15 Aug 2013 08:54:06 +0000 (UTC) Received: by caravan.chchile.org (Postfix, from userid 1000) id A2C41B7D21; Thu, 15 Aug 2013 08:54:04 +0000 (UTC) Date: Thu, 15 Aug 2013 10:54:04 +0200 From: Jeremie Le Hen To: Gleb Smirnoff Subject: Re: svn commit: r254358 - head/sys/sys Message-ID: <20130815085404.GD76693@caravan.chchile.org> Mail-Followup-To: Gleb Smirnoff , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201308150821.r7F8L03R023939@svn.freebsd.org> <20130815082505.GD4574@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130815082505.GD4574@FreeBSD.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Jeremie Le Hen , svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 08:54:06 -0000 On Thu, Aug 15, 2013 at 12:25:05PM +0400, Gleb Smirnoff wrote: > On Thu, Aug 15, 2013 at 08:21:00AM +0000, Jeremie Le Hen wrote: > J> Author: jlh > J> Date: Thu Aug 15 08:21:00 2013 > J> New Revision: 254358 > J> URL: http://svnweb.freebsd.org/changeset/base/254358 > J> > J> Log: > J> Belatedly bump __FreeBSD_version for libc being an ld script. > J> This should have been done in r251668, on June 12, 2013. > J> This will have no practical consequences, besides having -lssp_nonshared > J> appearing twice on the command-line for systems built in this time frame. > > It has been bumped several times since June 12. > > You could use __FreeBSD_version 1000036 from r253049, which > happened on July 7. That's right, but I didn't know if it was accepted to overload a version. Should I back this out? -- Jeremie Le Hen Scientists say the world is made up of Protons, Neutrons and Electrons. They forgot to mention Morons. From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 10:18:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7BEE2186; Thu, 15 Aug 2013 10:18:27 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DE5EC24E4; Thu, 15 Aug 2013 10:18:25 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r7FAINte005749; Thu, 15 Aug 2013 14:18:23 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r7FAINdR005748; Thu, 15 Aug 2013 14:18:23 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 15 Aug 2013 14:18:23 +0400 From: Gleb Smirnoff To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r254358 - head/sys/sys Message-ID: <20130815101823.GH4574@FreeBSD.org> References: <201308150821.r7F8L03R023939@svn.freebsd.org> <20130815082505.GD4574@FreeBSD.org> <20130815085404.GD76693@caravan.chchile.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20130815085404.GD76693@caravan.chchile.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 10:18:27 -0000 On Thu, Aug 15, 2013 at 10:54:04AM +0200, Jeremie Le Hen wrote: J> On Thu, Aug 15, 2013 at 12:25:05PM +0400, Gleb Smirnoff wrote: J> > On Thu, Aug 15, 2013 at 08:21:00AM +0000, Jeremie Le Hen wrote: J> > J> Author: jlh J> > J> Date: Thu Aug 15 08:21:00 2013 J> > J> New Revision: 254358 J> > J> URL: http://svnweb.freebsd.org/changeset/base/254358 J> > J> J> > J> Log: J> > J> Belatedly bump __FreeBSD_version for libc being an ld script. J> > J> This should have been done in r251668, on June 12, 2013. J> > J> This will have no practical consequences, besides having -lssp_nonshared J> > J> appearing twice on the command-line for systems built in this time frame. J> > J> > It has been bumped several times since June 12. J> > J> > You could use __FreeBSD_version 1000036 from r253049, which J> > happened on July 7. J> J> That's right, but I didn't know if it was accepted to overload a J> version. Should I back this out? IMO, version should never go backwards. So please do not back out. But the code that depends on libc being an ld script should better use 1000036 as __FreeBSD_version, making time frame of non-bumped version much smaller. -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 10:31:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B6179397; Thu, 15 Aug 2013 10:31:31 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A2C89258B; Thu, 15 Aug 2013 10:31:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FAVVft072565; Thu, 15 Aug 2013 10:31:31 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FAVVgg072564; Thu, 15 Aug 2013 10:31:31 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308151031.r7FAVVgg072564@svn.freebsd.org> From: Glen Barber Date: Thu, 15 Aug 2013 10:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254360 - stable/9/usr.sbin/bsdinstall/scripts X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 10:31:31 -0000 Author: gjb Date: Thu Aug 15 10:31:31 2013 New Revision: 254360 URL: http://svnweb.freebsd.org/changeset/base/254360 Log: MFC r254265: Make sure bootonly.iso for -BETAs and -RCs use the releases/ directory on the FTP mirrors to fetch distributions, since these are always pushed to releases/ during the release cycle. Modified: stable/9/usr.sbin/bsdinstall/scripts/mirrorselect Directory Properties: stable/9/usr.sbin/bsdinstall/scripts/ (props changed) Modified: stable/9/usr.sbin/bsdinstall/scripts/mirrorselect ============================================================================== --- stable/9/usr.sbin/bsdinstall/scripts/mirrorselect Thu Aug 15 10:17:20 2013 (r254359) +++ stable/9/usr.sbin/bsdinstall/scripts/mirrorselect Thu Aug 15 10:31:31 2013 (r254360) @@ -162,7 +162,7 @@ exec 3>&- _UNAME_R=`uname -r` case ${_UNAME_R} in - *-CURRENT|*-STABLE|*-BETA*|*-PRERELEASE|*-RC*) + *-CURRENT|*-STABLE|*-PRERELEASE) RELDIR="snapshots" ;; *) From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 10:38:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 83DC3617; Thu, 15 Aug 2013 10:38:11 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 713D425C6; Thu, 15 Aug 2013 10:38:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FAcB14073813; Thu, 15 Aug 2013 10:38:11 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FAcBoE073812; Thu, 15 Aug 2013 10:38:11 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308151038.r7FAcBoE073812@svn.freebsd.org> From: Glen Barber Date: Thu, 15 Aug 2013 10:38:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254361 - releng/9.2/usr.sbin/bsdinstall/scripts X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 10:38:11 -0000 Author: gjb Date: Thu Aug 15 10:38:10 2013 New Revision: 254361 URL: http://svnweb.freebsd.org/changeset/base/254361 Log: MFC r254265: Make sure bootonly.iso for -BETAs and -RCs use the releases/ directory on the FTP mirrors to fetch distributions, since these are always pushed to releases/ during the release cycle. Approved by: re (marius) Modified: releng/9.2/usr.sbin/bsdinstall/scripts/mirrorselect Directory Properties: releng/9.2/usr.sbin/bsdinstall/scripts/ (props changed) Modified: releng/9.2/usr.sbin/bsdinstall/scripts/mirrorselect ============================================================================== --- releng/9.2/usr.sbin/bsdinstall/scripts/mirrorselect Thu Aug 15 10:31:31 2013 (r254360) +++ releng/9.2/usr.sbin/bsdinstall/scripts/mirrorselect Thu Aug 15 10:38:10 2013 (r254361) @@ -162,7 +162,7 @@ exec 3>&- _UNAME_R=`uname -r` case ${_UNAME_R} in - *-CURRENT|*-STABLE|*-BETA*|*-PRERELEASE|*-RC*) + *-CURRENT|*-STABLE|*-PRERELEASE) RELDIR="snapshots" ;; *) From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 11:01:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 764089E5; Thu, 15 Aug 2013 11:01:26 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6302426F4; Thu, 15 Aug 2013 11:01:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FB1QIV083790; Thu, 15 Aug 2013 11:01:26 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FB1QjP083789; Thu, 15 Aug 2013 11:01:26 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201308151101.r7FB1QjP083789@svn.freebsd.org> From: Attilio Rao Date: Thu, 15 Aug 2013 11:01:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254362 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 11:01:26 -0000 Author: attilio Date: Thu Aug 15 11:01:25 2013 New Revision: 254362 URL: http://svnweb.freebsd.org/changeset/base/254362 Log: On the recovery path for vm_page_alloc(), if a page had been requested wired, unwind back the wiring bits otherwise we can end up freeing a page that is considered wired. Sponsored by: EMC / Isilon storage division Reported by: alc Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Thu Aug 15 10:38:10 2013 (r254361) +++ head/sys/vm/vm_page.c Thu Aug 15 11:01:25 2013 (r254362) @@ -1611,6 +1611,10 @@ vm_page_alloc(vm_object_t object, vm_pin if (vp != NULL) vdrop(vp); pagedaemon_wakeup(); + if (req & VM_ALLOC_WIRED) { + atomic_subtract_int(&cnt.v_wire_count, 1); + m->wire_count = 0; + } m->object = NULL; vm_page_free(m); return (NULL); @@ -1806,8 +1810,13 @@ retry: &deferred_vdrop_list); if (vm_paging_needed()) pagedaemon_wakeup(); + if ((req & VM_ALLOC_WIRED) != 0) + atomic_subtract_int(&cnt.v_wire_count, + npages); for (m_tmp = m, m = m_ret; m < &m_ret[npages]; m++) { + if ((req & VM_ALLOC_WIRED) != 0) + m->wire_count = 0; if (m >= m_tmp) m->object = NULL; vm_page_free(m); From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 12:19:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C2C2B687; Thu, 15 Aug 2013 12:19:24 +0000 (UTC) (envelope-from scottl@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AD1FA2BC6; Thu, 15 Aug 2013 12:19:24 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FCJOkZ012772; Thu, 15 Aug 2013 12:19:24 GMT (envelope-from scottl@svn.freebsd.org) Received: (from scottl@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FCJGpI012717; Thu, 15 Aug 2013 12:19:16 GMT (envelope-from scottl@svn.freebsd.org) Message-Id: <201308151219.r7FCJGpI012717@svn.freebsd.org> From: Scott Long Date: Thu, 15 Aug 2013 12:19:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254364 - in releng/9.2/sys: dev/aacraid dev/advansys dev/aic7xxx dev/amr dev/an dev/arcmsr dev/asr dev/ata dev/bktr dev/buslogic dev/dpt dev/e1000 dev/fatm dev/firewire dev/fxp dev/hat... X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 12:19:24 -0000 Author: scottl Date: Thu Aug 15 12:19:16 2013 New Revision: 254364 URL: http://svnweb.freebsd.org/changeset/base/254364 Log: Merge r254306: Update PCI drivers to no longer look at the MEMIO-enabled bit in the PCI command register. The lazy BAR allocation code in FreeBSD sometimes disables this bit when it detects a range conflict, and will re-enable it on demand when a driver allocates the BAR. Thus, the bit is no longer a reliable indication of capability, and should not be checked. This results in the elimination of a lot of code from drivers, and also gives the opportunity to simplify a lot of drivers to use a helper API to set the busmaster enable bit. This changes fixes some recent reports of disk controllers and their associated drives/enclosures disappearing during boot. Submitted by: jhb Reviewed by: jfv, marius, adrian, achim Approved by: re Modified: releng/9.2/sys/dev/aacraid/aacraid_pci.c releng/9.2/sys/dev/advansys/adw_pci.c releng/9.2/sys/dev/aic7xxx/ahc_pci.c releng/9.2/sys/dev/aic7xxx/ahd_pci.c releng/9.2/sys/dev/amr/amr_pci.c releng/9.2/sys/dev/an/if_an_pci.c releng/9.2/sys/dev/arcmsr/arcmsr.c releng/9.2/sys/dev/asr/asr.c releng/9.2/sys/dev/ata/ata-pci.c releng/9.2/sys/dev/bktr/bktr_os.c releng/9.2/sys/dev/buslogic/bt_pci.c releng/9.2/sys/dev/dpt/dpt_pci.c releng/9.2/sys/dev/e1000/if_em.c releng/9.2/sys/dev/e1000/if_igb.c releng/9.2/sys/dev/e1000/if_lem.c releng/9.2/sys/dev/fatm/if_fatm.c releng/9.2/sys/dev/firewire/fwohci_pci.c releng/9.2/sys/dev/fxp/if_fxp.c releng/9.2/sys/dev/hatm/if_hatm.c releng/9.2/sys/dev/ida/ida_pci.c releng/9.2/sys/dev/ips/ips_pci.c releng/9.2/sys/dev/isp/isp_pci.c releng/9.2/sys/dev/iwn/if_iwn.c releng/9.2/sys/dev/ixgb/if_ixgb.c releng/9.2/sys/dev/ixgbe/ixv.c releng/9.2/sys/dev/mfi/mfi_pci.c releng/9.2/sys/dev/mlx/mlx_pci.c releng/9.2/sys/dev/mly/mly.c releng/9.2/sys/dev/mn/if_mn.c releng/9.2/sys/dev/mps/mps_pci.c releng/9.2/sys/dev/mpt/mpt_pci.c releng/9.2/sys/dev/mwl/if_mwl_pci.c releng/9.2/sys/dev/mxge/if_mxge.c releng/9.2/sys/dev/pccbb/pccbb_pci.c releng/9.2/sys/dev/pst/pst-pci.c releng/9.2/sys/dev/rp/rp_pci.c releng/9.2/sys/dev/safe/safe.c releng/9.2/sys/dev/sound/pci/als4000.c releng/9.2/sys/dev/sound/pci/aureal.c releng/9.2/sys/dev/sound/pci/cmi.c releng/9.2/sys/dev/sound/pci/cs4281.c releng/9.2/sys/dev/sound/pci/csa.c releng/9.2/sys/dev/sound/pci/ds1.c releng/9.2/sys/dev/sound/pci/emu10k1.c releng/9.2/sys/dev/sound/pci/emu10kx.c releng/9.2/sys/dev/sound/pci/envy24.c releng/9.2/sys/dev/sound/pci/envy24ht.c releng/9.2/sys/dev/sound/pci/es137x.c releng/9.2/sys/dev/sound/pci/fm801.c releng/9.2/sys/dev/sound/pci/hdspe.c releng/9.2/sys/dev/sound/pci/maestro.c releng/9.2/sys/dev/sound/pci/maestro3.c releng/9.2/sys/dev/sound/pci/neomagic.c releng/9.2/sys/dev/sound/pci/solo.c releng/9.2/sys/dev/sound/pci/t4dwave.c releng/9.2/sys/dev/sound/pci/via82c686.c releng/9.2/sys/dev/sound/pci/vibes.c releng/9.2/sys/dev/stge/if_stge.c releng/9.2/sys/dev/sym/sym_hipd.c releng/9.2/sys/dev/tdfx/tdfx_pci.c releng/9.2/sys/dev/twa/tw_osl_freebsd.c releng/9.2/sys/dev/tws/tws.c releng/9.2/sys/dev/ubsec/ubsec.c releng/9.2/sys/dev/wi/if_wi_pci.c releng/9.2/sys/pci/ncr.c Directory Properties: releng/9.2/sys/ (props changed) releng/9.2/sys/dev/ (props changed) releng/9.2/sys/dev/e1000/ (props changed) releng/9.2/sys/dev/isp/ (props changed) releng/9.2/sys/dev/ixgbe/ (props changed) Modified: releng/9.2/sys/dev/aacraid/aacraid_pci.c ============================================================================== --- releng/9.2/sys/dev/aacraid/aacraid_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/aacraid/aacraid_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -169,18 +169,12 @@ aacraid_pci_attach(device_t dev) /* * Verify that the adapter is correctly set up in PCI space. */ - command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); + pci_enable_busmaster(dev); command = pci_read_config(sc->aac_dev, PCIR_COMMAND, 2); if (!(command & PCIM_CMD_BUSMASTEREN)) { device_printf(sc->aac_dev, "can't enable bus-master feature\n"); goto out; } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(sc->aac_dev, "memory window not available\n"); - goto out; - } /* * Detect the hardware interface version, set up the bus interface Modified: releng/9.2/sys/dev/advansys/adw_pci.c ============================================================================== --- releng/9.2/sys/dev/advansys/adw_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/advansys/adw_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -199,14 +199,13 @@ adw_pci_attach(device_t dev) { struct adw_softc *adw; struct adw_pci_identity *entry; - u_int32_t command; + u_int16_t command; struct resource *regs; int regs_type; int regs_id; int error; int zero; - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); entry = adw_find_pci_device(dev); if (entry == NULL) return (ENXIO); @@ -214,14 +213,11 @@ adw_pci_attach(device_t dev) regs_type = 0; regs_id = 0; #ifdef ADW_ALLOW_MEMIO - if ((command & PCIM_CMD_MEMEN) != 0) { - regs_type = SYS_RES_MEMORY; - regs_id = ADW_PCI_MEMBASE; - regs = bus_alloc_resource_any(dev, regs_type, - ®s_id, RF_ACTIVE); - } + regs_type = SYS_RES_MEMORY; + regs_id = ADW_PCI_MEMBASE; + regs = bus_alloc_resource_any(dev, regs_type, ®s_id, RF_ACTIVE); #endif - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = ADW_PCI_IOBASE; regs = bus_alloc_resource_any(dev, regs_type, @@ -296,6 +292,7 @@ adw_pci_attach(device_t dev) * 'control_flag' CONTROL_FLAG_IGNORE_PERR flag to tell the microcode * to ignore DMA parity errors. */ + command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/2); if ((command & PCIM_CMD_PERRESPEN) == 0) adw_lram_write_16(adw, ADW_MC_CONTROL_FLAG, adw_lram_read_16(adw, ADW_MC_CONTROL_FLAG) Modified: releng/9.2/sys/dev/aic7xxx/ahc_pci.c ============================================================================== --- releng/9.2/sys/dev/aic7xxx/ahc_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/aic7xxx/ahc_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -139,12 +139,10 @@ int ahc_pci_map_registers(struct ahc_softc *ahc) { struct resource *regs; - u_int command; int regs_type; int regs_id; int allow_memio; - command = aic_pci_read_config(ahc->dev_softc, PCIR_COMMAND, /*bytes*/1); regs = NULL; regs_type = 0; regs_id = 0; @@ -166,7 +164,7 @@ ahc_pci_map_registers(struct ahc_softc * #endif } - if ((allow_memio != 0) && (command & PCIM_CMD_MEMEN) != 0) { + if (allow_memio != 0) { regs_type = SYS_RES_MEMORY; regs_id = AHC_PCI_MEMADDR; @@ -190,16 +188,11 @@ ahc_pci_map_registers(struct ahc_softc * bus_release_resource(ahc->dev_softc, regs_type, regs_id, regs); regs = NULL; - } else { - command &= ~PCIM_CMD_PORTEN; - aic_pci_write_config(ahc->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = AHC_PCI_IOADDR; regs = bus_alloc_resource_any(ahc->dev_softc, regs_type, @@ -217,11 +210,6 @@ ahc_pci_map_registers(struct ahc_softc * bus_release_resource(ahc->dev_softc, regs_type, regs_id, regs); regs = NULL; - } else { - command &= ~PCIM_CMD_MEMEN; - aic_pci_write_config(ahc->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } Modified: releng/9.2/sys/dev/aic7xxx/ahd_pci.c ============================================================================== --- releng/9.2/sys/dev/aic7xxx/ahd_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/aic7xxx/ahd_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -143,13 +143,11 @@ ahd_pci_map_registers(struct ahd_softc * { struct resource *regs; struct resource *regs2; - u_int command; int regs_type; int regs_id; int regs_id2; int allow_memio; - command = aic_pci_read_config(ahd->dev_softc, PCIR_COMMAND, /*bytes*/1); regs = NULL; regs2 = NULL; regs_type = 0; @@ -165,8 +163,7 @@ ahd_pci_map_registers(struct ahd_softc * allow_memio = 1; } - if ((command & PCIM_CMD_MEMEN) != 0 - && (ahd->bugs & AHD_PCIX_MMAPIO_BUG) == 0 + if ((ahd->bugs & AHD_PCIX_MMAPIO_BUG) == 0 && allow_memio != 0) { regs_type = SYS_RES_MEMORY; @@ -199,15 +196,10 @@ ahd_pci_map_registers(struct ahd_softc * regs_id, regs); regs = NULL; AHD_CORRECTABLE_ERROR(ahd); - } else { - command &= ~PCIM_CMD_PORTEN; - aic_pci_write_config(ahd->dev_softc, - PCIR_COMMAND, - command, /*bytes*/1); } } } - if (regs == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (regs == NULL) { regs_type = SYS_RES_IOPORT; regs_id = AHD_PCI_IOADDR0; regs = bus_alloc_resource_any(ahd->dev_softc, regs_type, @@ -233,9 +225,6 @@ ahd_pci_map_registers(struct ahd_softc * } ahd->tags[1] = rman_get_bustag(regs2); ahd->bshs[1] = rman_get_bushandle(regs2); - command &= ~PCIM_CMD_MEMEN; - aic_pci_write_config(ahd->dev_softc, PCIR_COMMAND, - command, /*bytes*/1); ahd->platform_data->regs_res_type[1] = regs_type; ahd->platform_data->regs_res_id[1] = regs_id2; ahd->platform_data->regs[1] = regs2; Modified: releng/9.2/sys/dev/amr/amr_pci.c ============================================================================== --- releng/9.2/sys/dev/amr/amr_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/amr/amr_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -184,7 +184,6 @@ amr_pci_attach(device_t dev) struct amr_softc *sc; struct amr_ident *id; int rid, rtype, error; - u_int32_t command; debug_called(1); @@ -204,24 +203,8 @@ amr_pci_attach(device_t dev) if ((id = amr_find_ident(dev)) == NULL) return (ENXIO); - command = pci_read_config(dev, PCIR_COMMAND, 1); if (id->flags & AMR_ID_QUARTZ) { - /* - * Make sure we are going to be able to talk to this board. - */ - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "memory window not available\n"); - return (ENXIO); - } sc->amr_type |= AMR_TYPE_QUARTZ; - } else { - /* - * Make sure we are going to be able to talk to this board. - */ - if ((command & PCIM_CMD_PORTEN) == 0) { - device_printf(dev, "I/O window not available\n"); - return (ENXIO); - } } if ((amr_force_sg32 == 0) && (id->flags & AMR_ID_DO_SG64) && @@ -231,11 +214,7 @@ amr_pci_attach(device_t dev) } /* force the busmaster enable bit on */ - if (!(command & PCIM_CMD_BUSMASTEREN)) { - device_printf(dev, "busmaster bit not set, enabling\n"); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - } + pci_enable_busmaster(dev); /* * Allocate the PCI register window. Modified: releng/9.2/sys/dev/an/if_an_pci.c ============================================================================== --- releng/9.2/sys/dev/an/if_an_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/an/if_an_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -141,7 +141,6 @@ static int an_attach_pci(dev) device_t dev; { - u_int32_t command; struct an_softc *sc; int flags, error = 0; @@ -153,19 +152,6 @@ an_attach_pci(dev) sc->mpi350 = 1; sc->port_rid = PCIR_BAR(0); } else { - /* - * Map control/status registers. - */ - command = pci_read_config(dev, PCIR_COMMAND, 4); - command |= PCIM_CMD_PORTEN; - pci_write_config(dev, PCIR_COMMAND, command, 4); - command = pci_read_config(dev, PCIR_COMMAND, 4); - - if (!(command & PCIM_CMD_PORTEN)) { - device_printf(dev, "failed to enable I/O ports!\n"); - error = ENXIO; - goto fail; - } sc->port_rid = AN_PCI_LOIO; } error = an_alloc_port(dev, sc->port_rid, 1); Modified: releng/9.2/sys/dev/arcmsr/arcmsr.c ============================================================================== --- releng/9.2/sys/dev/arcmsr/arcmsr.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/arcmsr/arcmsr.c Thu Aug 15 12:19:16 2013 (r254364) @@ -4102,8 +4102,7 @@ static u_int32_t arcmsr_initialize(devic pci_command |= PCIM_CMD_BUSMASTEREN; pci_command |= PCIM_CMD_PERRESPEN; pci_command |= PCIM_CMD_MWRICEN; - /* Enable Busmaster/Mem */ - pci_command |= PCIM_CMD_MEMEN; + /* Enable Busmaster */ pci_write_config(dev, PCIR_COMMAND, pci_command, 2); switch(acb->adapter_type) { case ACB_ADAPTER_TYPE_A: { Modified: releng/9.2/sys/dev/asr/asr.c ============================================================================== --- releng/9.2/sys/dev/asr/asr.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/asr/asr.c Thu Aug 15 12:19:16 2013 (r254364) @@ -2428,9 +2428,7 @@ asr_attach(device_t dev) return(ENXIO); } /* Enable if not formerly enabled */ - pci_write_config(dev, PCIR_COMMAND, - pci_read_config(dev, PCIR_COMMAND, sizeof(char)) | - PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, sizeof(char)); + pci_enable_busmaster(dev); sc->ha_pciBusNum = pci_get_bus(dev); sc->ha_pciDeviceNum = (pci_get_slot(dev) << 3) | pci_get_function(dev); Modified: releng/9.2/sys/dev/ata/ata-pci.c ============================================================================== --- releng/9.2/sys/dev/ata/ata-pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/ata/ata-pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -99,11 +99,8 @@ ata_pci_attach(device_t dev) ctlr->dev = dev; /* if needed try to enable busmastering */ + pci_enable_busmaster(dev); cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(cmd & PCIM_CMD_BUSMASTEREN)) { - pci_write_config(dev, PCIR_COMMAND, cmd | PCIM_CMD_BUSMASTEREN, 2); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - } /* if busmastering mode "stuck" use it */ if ((cmd & PCIM_CMD_BUSMASTEREN) == PCIM_CMD_BUSMASTEREN) { Modified: releng/9.2/sys/dev/bktr/bktr_os.c ============================================================================== --- releng/9.2/sys/dev/bktr/bktr_os.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/bktr/bktr_os.c Thu Aug 15 12:19:16 2013 (r254364) @@ -318,7 +318,6 @@ bktr_attach( device_t dev ) { u_long latency; u_long fun; - u_long val; unsigned int rev; unsigned int unit; int error = 0; @@ -336,9 +335,7 @@ bktr_attach( device_t dev ) /* * Enable bus mastering and Memory Mapped device */ - val = pci_read_config(dev, PCIR_COMMAND, 4); - val |= (PCIM_CMD_MEMEN|PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, val, 4); + pci_enable_busmaster(dev); /* * Map control/status registers. Modified: releng/9.2/sys/dev/buslogic/bt_pci.c ============================================================================== --- releng/9.2/sys/dev/buslogic/bt_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/buslogic/bt_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -57,24 +57,19 @@ __FBSDID("$FreeBSD$"); static int bt_pci_alloc_resources(device_t dev) { - int command, type = 0, rid, zero; + int type = 0, rid, zero; struct resource *regs = 0; struct resource *irq = 0; - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); #if 0 /* XXX Memory Mapped I/O seems to cause problems */ - if (command & PCIM_CMD_MEMEN) { - type = SYS_RES_MEMORY; - rid = BT_PCI_MEMADDR; - regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); - } + type = SYS_RES_MEMORY; + rid = BT_PCI_MEMADDR; + regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); #else - if (!regs && (command & PCIM_CMD_PORTEN)) { - type = SYS_RES_IOPORT; - rid = BT_PCI_IOADDR; - regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); - } + type = SYS_RES_IOPORT; + rid = BT_PCI_IOADDR; + regs = bus_alloc_resource_any(dev, type, &rid, RF_ACTIVE); #endif if (!regs) return (ENOMEM); Modified: releng/9.2/sys/dev/dpt/dpt_pci.c ============================================================================== --- releng/9.2/sys/dev/dpt/dpt_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/dpt/dpt_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -77,23 +77,17 @@ dpt_pci_attach (device_t dev) dpt_softc_t * dpt; int error = 0; - u_int32_t command; - dpt = device_get_softc(dev); dpt->dev = dev; dpt_alloc(dev); - command = pci_read_config(dev, PCIR_COMMAND, /*bytes*/1); - #ifdef DPT_ALLOW_MMIO - if ((command & PCIM_CMD_MEMEN) != 0) { - dpt->io_rid = DPT_PCI_MEMADDR; - dpt->io_type = SYS_RES_MEMORY; - dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, - &dpt->io_rid, RF_ACTIVE); - } + dpt->io_rid = DPT_PCI_MEMADDR; + dpt->io_type = SYS_RES_MEMORY; + dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, + &dpt->io_rid, RF_ACTIVE); #endif - if (dpt->io_res == NULL && (command & PCIM_CMD_PORTEN) != 0) { + if (dpt->io_res == NULL) { dpt->io_rid = DPT_PCI_IOADDR; dpt->io_type = SYS_RES_IOPORT; dpt->io_res = bus_alloc_resource_any(dev, dpt->io_type, Modified: releng/9.2/sys/dev/e1000/if_em.c ============================================================================== --- releng/9.2/sys/dev/e1000/if_em.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/e1000/if_em.c Thu Aug 15 12:19:16 2013 (r254364) @@ -2442,16 +2442,8 @@ em_identify_hardware(struct adapter *ada device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, "Memory Access and/or Bus Master bits " - "were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: releng/9.2/sys/dev/e1000/if_igb.c ============================================================================== --- releng/9.2/sys/dev/e1000/if_igb.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/e1000/if_igb.c Thu Aug 15 12:19:16 2013 (r254364) @@ -2410,16 +2410,8 @@ igb_identify_hardware(struct adapter *ad device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - INIT_DEBUGOUT("Memory Access and/or Bus Master " - "bits were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: releng/9.2/sys/dev/e1000/if_lem.c ============================================================================== --- releng/9.2/sys/dev/e1000/if_lem.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/e1000/if_lem.c Thu Aug 15 12:19:16 2013 (r254364) @@ -2119,16 +2119,8 @@ lem_identify_hardware(struct adapter *ad device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.bus.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.bus.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.bus.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, "Memory Access and/or Bus Master bits " - "were not set!\n"); - adapter->hw.bus.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, - adapter->hw.bus.pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: releng/9.2/sys/dev/fatm/if_fatm.c ============================================================================== --- releng/9.2/sys/dev/fatm/if_fatm.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/fatm/if_fatm.c Thu Aug 15 12:19:16 2013 (r254364) @@ -2829,21 +2829,13 @@ fatm_attach(device_t dev) ifp->if_linkmiblen = sizeof(IFP2IFATM(sc->ifp)->mib); /* - * Enable memory and bustmaster + * Enable busmaster */ - cfg = pci_read_config(dev, PCIR_COMMAND, 2); - cfg |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cfg, 2); + pci_enable_busmaster(dev); /* * Map memory */ - cfg = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(cfg & PCIM_CMD_MEMEN)) { - if_printf(ifp, "failed to enable memory mapping\n"); - error = ENXIO; - goto fail; - } sc->memid = 0x10; sc->memres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->memid, RF_ACTIVE); Modified: releng/9.2/sys/dev/firewire/fwohci_pci.c ============================================================================== --- releng/9.2/sys/dev/firewire/fwohci_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/firewire/fwohci_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -242,7 +242,7 @@ fwohci_pci_init(device_t self) uint16_t cmd; cmd = pci_read_config(self, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; + cmd |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; #if 1 /* for broken hardware */ cmd &= ~PCIM_CMD_MWRICEN; #endif Modified: releng/9.2/sys/dev/fxp/if_fxp.c ============================================================================== --- releng/9.2/sys/dev/fxp/if_fxp.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/fxp/if_fxp.c Thu Aug 15 12:19:16 2013 (r254364) @@ -452,7 +452,6 @@ fxp_attach(device_t dev) * Enable bus mastering. */ pci_enable_busmaster(dev); - val = pci_read_config(dev, PCIR_COMMAND, 2); /* * Figure out which we should try first - memory mapping or i/o mapping? @@ -610,6 +609,7 @@ fxp_attach(device_t dev) * is a valid cacheline size (8 or 16 dwords), then tell * the board to turn on MWI. */ + val = pci_read_config(dev, PCIR_COMMAND, 2); if (val & PCIM_CMD_MWRICEN && pci_read_config(dev, PCIR_CACHELNSZ, 1) != 0) sc->flags |= FXP_FLAG_MWI_ENABLE; Modified: releng/9.2/sys/dev/hatm/if_hatm.c ============================================================================== --- releng/9.2/sys/dev/hatm/if_hatm.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/hatm/if_hatm.c Thu Aug 15 12:19:16 2013 (r254364) @@ -1686,7 +1686,7 @@ hatm_attach(device_t dev) * 4.2 BIOS Configuration */ v = pci_read_config(dev, PCIR_COMMAND, 2); - v |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; + v |= PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; pci_write_config(dev, PCIR_COMMAND, v, 2); /* @@ -1702,12 +1702,6 @@ hatm_attach(device_t dev) /* * Map memory */ - v = pci_read_config(dev, PCIR_COMMAND, 2); - if (!(v & PCIM_CMD_MEMEN)) { - device_printf(dev, "failed to enable memory\n"); - error = ENXIO; - goto failed; - } sc->memid = PCIR_BAR(0); sc->memres = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->memid, RF_ACTIVE); Modified: releng/9.2/sys/dev/ida/ida_pci.c ============================================================================== --- releng/9.2/sys/dev/ida/ida_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/ida/ida_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -236,19 +236,8 @@ ida_pci_attach(device_t dev) struct ida_board *board = ida_pci_match(dev); u_int32_t id = pci_get_devid(dev); struct ida_softc *ida; - u_int command; int error, rid; - command = pci_read_config(dev, PCIR_COMMAND, 1); - - /* - * it appears that this board only does MEMIO access. - */ - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "Only memory mapped I/O is supported\n"); - return (ENXIO); - } - ida = (struct ida_softc *)device_get_softc(dev); ida->dev = dev; ida->cmd = *board->accessor; Modified: releng/9.2/sys/dev/ips/ips_pci.c ============================================================================== --- releng/9.2/sys/dev/ips/ips_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/ips/ips_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -59,7 +59,6 @@ static int ips_pci_probe(device_t dev) static int ips_pci_attach(device_t dev) { - u_int32_t command; ips_softc_t *sc; @@ -95,22 +94,18 @@ static int ips_pci_attach(device_t dev) } else goto error; /* make sure busmastering is on */ - command = pci_read_config(dev, PCIR_COMMAND, 1); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 1); + pci_enable_busmaster(dev); /* seting up io space */ sc->iores = NULL; - if(command & PCIM_CMD_MEMEN){ - PRINTF(10, "trying MEMIO\n"); - if(pci_get_device(dev) == IPS_COPPERHEAD_DEVICE_ID) - sc->rid = PCIR_BAR(1); - else - sc->rid = PCIR_BAR(0); - sc->iotype = SYS_RES_MEMORY; - sc->iores = bus_alloc_resource_any(dev, sc->iotype, - &sc->rid, RF_ACTIVE); - } - if(!sc->iores && command & PCIM_CMD_PORTEN){ + PRINTF(10, "trying MEMIO\n"); + if(pci_get_device(dev) == IPS_COPPERHEAD_DEVICE_ID) + sc->rid = PCIR_BAR(1); + else + sc->rid = PCIR_BAR(0); + sc->iotype = SYS_RES_MEMORY; + sc->iores = bus_alloc_resource_any(dev, sc->iotype, &sc->rid, + RF_ACTIVE); + if(!sc->iores){ PRINTF(10, "trying PORTIO\n"); sc->rid = PCIR_BAR(0); sc->iotype = SYS_RES_IOPORT; Modified: releng/9.2/sys/dev/isp/isp_pci.c ============================================================================== --- releng/9.2/sys/dev/isp/isp_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/isp/isp_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -706,13 +706,10 @@ isp_pci_attach(device_t dev) pcs->irq = pcs->regs = NULL; pcs->rgd = pcs->rtp = pcs->iqd = 0; - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if (cmd & m1) { - pcs->rtp = (m1 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; - pcs->rgd = (m1 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; - pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); - } - if (pcs->regs == NULL && (cmd & m2)) { + pcs->rtp = (m1 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; + pcs->rgd = (m1 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; + pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); + if (pcs->regs == NULL) { pcs->rtp = (m2 == PCIM_CMD_MEMEN)? SYS_RES_MEMORY : SYS_RES_IOPORT; pcs->rgd = (m2 == PCIM_CMD_MEMEN)? MEM_MAP_REG : IO_MAP_REG; pcs->regs = bus_alloc_resource_any(dev, pcs->rtp, &pcs->rgd, RF_ACTIVE); @@ -891,6 +888,7 @@ isp_pci_attach(device_t dev) /* * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ + cmd = pci_read_config(dev, PCIR_COMMAND, 2); cmd |= PCIM_CMD_SEREN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_INVEN; if (IS_2300(isp)) { /* per QLogic errata */ cmd &= ~PCIM_CMD_INVEN; Modified: releng/9.2/sys/dev/iwn/if_iwn.c ============================================================================== --- releng/9.2/sys/dev/iwn/if_iwn.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/iwn/if_iwn.c Thu Aug 15 12:19:16 2013 (r254364) @@ -455,12 +455,12 @@ iwn_attach(device_t dev) pci_write_config(dev, 0x41, 0, 1); /* Hardware bug workaround. */ - reg = pci_read_config(dev, PCIR_COMMAND, 1); + reg = pci_read_config(dev, PCIR_COMMAND, 2); if (reg & PCIM_CMD_INTxDIS) { DPRINTF(sc, IWN_DEBUG_RESET, "%s: PCIe INTx Disable set\n", __func__); reg &= ~PCIM_CMD_INTxDIS; - pci_write_config(dev, PCIR_COMMAND, reg, 1); + pci_write_config(dev, PCIR_COMMAND, reg, 2); } /* Enable bus-mastering. */ Modified: releng/9.2/sys/dev/ixgb/if_ixgb.c ============================================================================== --- releng/9.2/sys/dev/ixgb/if_ixgb.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/ixgb/if_ixgb.c Thu Aug 15 12:19:16 2013 (r254364) @@ -1209,15 +1209,9 @@ ixgb_identify_hardware(struct adapter * device_t dev = adapter->dev; /* Make sure our PCI config space has the necessary stuff set */ + pci_enable_busmaster(dev); adapter->hw.pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((adapter->hw.pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (adapter->hw.pci_cmd_word & PCIM_CMD_MEMEN))) { - device_printf(dev, - "Memory Access and/or Bus Master bits were not set!\n"); - adapter->hw.pci_cmd_word |= - (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, adapter->hw.pci_cmd_word, 2); - } + /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); adapter->hw.device_id = pci_get_device(dev); Modified: releng/9.2/sys/dev/ixgbe/ixv.c ============================================================================== --- releng/9.2/sys/dev/ixgbe/ixv.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/ixgbe/ixv.c Thu Aug 15 12:19:16 2013 (r254364) @@ -1561,14 +1561,8 @@ ixv_identify_hardware(struct adapter *ad ** Make sure BUSMASTER is set, on a VM under ** KVM it may not be and will break things. */ + pci_enable_busmaster(dev); pci_cmd_word = pci_read_config(dev, PCIR_COMMAND, 2); - if (!((pci_cmd_word & PCIM_CMD_BUSMASTEREN) && - (pci_cmd_word & PCIM_CMD_MEMEN))) { - INIT_DEBUGOUT("Memory Access and/or Bus Master " - "bits were not set!\n"); - pci_cmd_word |= (PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN); - pci_write_config(dev, PCIR_COMMAND, pci_cmd_word, 2); - } /* Save off the information about this board */ adapter->hw.vendor_id = pci_get_vendor(dev); Modified: releng/9.2/sys/dev/mfi/mfi_pci.c ============================================================================== --- releng/9.2/sys/dev/mfi/mfi_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mfi/mfi_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -187,7 +187,6 @@ mfi_pci_attach(device_t dev) { struct mfi_softc *sc; struct mfi_ident *m; - uint32_t command; int count, error; sc = device_get_softc(dev); @@ -196,19 +195,8 @@ mfi_pci_attach(device_t dev) m = mfi_find_ident(dev); sc->mfi_flags = m->flags; - /* Verify that the adapter can be set up in PCI space */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "Can't enable PCI busmaster\n"); - return (ENXIO); - } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "PCI memory window not available\n"); - return (ENXIO); - } + /* Ensure busmastering is enabled */ + pci_enable_busmaster(dev); /* Allocate PCI registers */ if ((sc->mfi_flags & MFI_FLAGS_1064R) || Modified: releng/9.2/sys/dev/mlx/mlx_pci.c ============================================================================== --- releng/9.2/sys/dev/mlx/mlx_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mlx/mlx_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -113,21 +113,11 @@ mlx_pci_attach(device_t dev) { struct mlx_softc *sc; int i, error; - u_int32_t command; debug_called(1); - /* - * Make sure we are going to be able to talk to this board. - */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "memory window not available\n"); - return(ENXIO); - } /* force the busmaster enable bit on */ - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); + pci_enable_busmaster(dev); /* * Initialise softc. Modified: releng/9.2/sys/dev/mly/mly.c ============================================================================== --- releng/9.2/sys/dev/mly/mly.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mly/mly.c Thu Aug 15 12:19:16 2013 (r254364) @@ -333,7 +333,6 @@ static int mly_pci_attach(struct mly_softc *sc) { int i, error; - u_int32_t command; debug_called(1); @@ -342,21 +341,8 @@ mly_pci_attach(struct mly_softc *sc) /* * Verify that the adapter is correctly set up in PCI space. - * - * XXX we shouldn't do this; the PCI code should. */ - command = pci_read_config(sc->mly_dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(sc->mly_dev, PCIR_COMMAND, command, 2); - command = pci_read_config(sc->mly_dev, PCIR_COMMAND, 2); - if (!(command & PCIM_CMD_BUSMASTEREN)) { - mly_printf(sc, "can't enable busmaster feature\n"); - goto fail; - } - if ((command & PCIM_CMD_MEMEN) == 0) { - mly_printf(sc, "memory window not available\n"); - goto fail; - } + pci_enable_busmaster(sc->mly_dev); /* * Allocate the PCI register window. Modified: releng/9.2/sys/dev/mn/if_mn.c ============================================================================== --- releng/9.2/sys/dev/mn/if_mn.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mn/if_mn.c Thu Aug 15 12:19:16 2013 (r254364) @@ -1364,9 +1364,9 @@ mn_attach (device_t self) return(ENXIO); } - u = pci_read_config(self, PCIR_COMMAND, 1); + u = pci_read_config(self, PCIR_COMMAND, 2); printf("%x\n", u); - pci_write_config(self, PCIR_COMMAND, u | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MEMEN, 1); + pci_write_config(self, PCIR_COMMAND, u | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN, 2); #if 0 pci_write_config(self, PCIR_COMMAND, 0x02800046, 4); #endif Modified: releng/9.2/sys/dev/mps/mps_pci.c ============================================================================== --- releng/9.2/sys/dev/mps/mps_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mps/mps_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -183,7 +183,6 @@ mps_pci_attach(device_t dev) { struct mps_softc *sc; struct mps_ident *m; - uint16_t command; int error; sc = device_get_softc(dev); @@ -193,18 +192,7 @@ mps_pci_attach(device_t dev) sc->mps_flags = m->flags; /* Twiddle basic PCI config bits for a sanity check */ - command = pci_read_config(dev, PCIR_COMMAND, 2); - command |= PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, command, 2); - command = pci_read_config(dev, PCIR_COMMAND, 2); - if ((command & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "Cannot enable PCI busmaster\n"); - return (ENXIO); - } - if ((command & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "PCI memory window not available\n"); - return (ENXIO); - } + pci_enable_busmaster(dev); /* Allocate the System Interface Register Set */ sc->mps_regs_rid = PCIR_BAR(1); Modified: releng/9.2/sys/dev/mpt/mpt_pci.c ============================================================================== --- releng/9.2/sys/dev/mpt/mpt_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mpt/mpt_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -394,16 +394,11 @@ mpt_pci_attach(device_t dev) /* Print INFO level (if any) if bootverbose is set */ mpt->verbose += (bootverbose != 0)? 1 : 0; } - /* Make sure memory access decoders are enabled */ - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - if ((cmd & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "Memory accesses disabled"); - return (ENXIO); - } /* * Make sure that SERR, PERR, WRITE INVALIDATE and BUSMASTER are set. */ + cmd = pci_read_config(dev, PCIR_COMMAND, 2); cmd |= PCIM_CMD_SERRESPEN | PCIM_CMD_PERRESPEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN; Modified: releng/9.2/sys/dev/mwl/if_mwl_pci.c ============================================================================== --- releng/9.2/sys/dev/mwl/if_mwl_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mwl/if_mwl_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -120,29 +120,6 @@ mwl_pci_probe(device_t dev) return ENXIO; } -static u_int32_t -mwl_pci_setup(device_t dev) -{ - u_int32_t cmd; - - /* - * Enable memory mapping and bus mastering. - */ - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cmd, 4); - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - if ((cmd & PCIM_CMD_MEMEN) == 0) { - device_printf(dev, "failed to enable memory mapping\n"); - return 0; - } - if ((cmd & PCIM_CMD_BUSMASTEREN) == 0) { - device_printf(dev, "failed to enable bus mastering\n"); - return 0; - } - return 1; -} - static int mwl_pci_attach(device_t dev) { @@ -152,11 +129,8 @@ mwl_pci_attach(device_t dev) sc->sc_dev = dev; - /* - * Enable memory mapping and bus mastering. - */ - if (!mwl_pci_setup(dev)) - return 0; + pci_enable_busmaster(dev); + /* * Setup memory-mapping of PCI registers. */ @@ -285,8 +259,7 @@ mwl_pci_resume(device_t dev) { struct mwl_pci_softc *psc = device_get_softc(dev); - if (!mwl_pci_setup(dev)) - return ENXIO; + pci_enable_busmaster(dev); mwl_resume(&psc->sc_sc); Modified: releng/9.2/sys/dev/mxge/if_mxge.c ============================================================================== --- releng/9.2/sys/dev/mxge/if_mxge.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/mxge/if_mxge.c Thu Aug 15 12:19:16 2013 (r254364) @@ -3826,7 +3826,7 @@ mxge_setup_cfg_space(mxge_softc_t *sc) { device_t dev = sc->dev; int reg; - uint16_t cmd, lnk, pectl; + uint16_t lnk, pectl; /* find the PCIe link width and set max read request to 4KB*/ if (pci_find_cap(dev, PCIY_EXPRESS, ®) == 0) { @@ -3846,9 +3846,6 @@ mxge_setup_cfg_space(mxge_softc_t *sc) /* Enable DMA and Memory space access */ pci_enable_busmaster(dev); - cmd = pci_read_config(dev, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN; - pci_write_config(dev, PCIR_COMMAND, cmd, 2); } static uint32_t Modified: releng/9.2/sys/dev/pccbb/pccbb_pci.c ============================================================================== --- releng/9.2/sys/dev/pccbb/pccbb_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/pccbb/pccbb_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -471,10 +471,7 @@ cbb_chipinit(struct cbb_softc *sc) pci_write_config(sc->dev, PCIR_SUBBUS_2, sc->subbus, 1); /* Enable memory access */ - PCI_MASK_CONFIG(sc->dev, PCIR_COMMAND, - | PCIM_CMD_MEMEN - | PCIM_CMD_PORTEN - | PCIM_CMD_BUSMASTEREN, 2); + pci_enable_busmaster(sc->dev); /* disable Legacy IO */ switch (sc->chipset) { Modified: releng/9.2/sys/dev/pst/pst-pci.c ============================================================================== --- releng/9.2/sys/dev/pst/pst-pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/pst/pst-pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -88,9 +88,7 @@ iop_pci_attach(device_t dev) RF_SHAREABLE | RF_ACTIVE); /* now setup the infrastructure to talk to the device */ - pci_write_config(dev, PCIR_COMMAND, - pci_read_config(dev, PCIR_COMMAND, 1) | - PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN, 1); + pci_enable_busmaster(dev); sc->ibase = rman_get_virtual(sc->r_mem); sc->reg = (struct i2o_registers *)sc->ibase; Modified: releng/9.2/sys/dev/rp/rp_pci.c ============================================================================== --- releng/9.2/sys/dev/rp/rp_pci.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/rp/rp_pci.c Thu Aug 15 12:19:16 2013 (r254364) @@ -151,7 +151,6 @@ rp_pciattach(device_t dev) CONTROLLER_t *ctlp; int unit; int retval; - u_int32_t stcmd; ctlp = device_get_softc(dev); bzero(ctlp, sizeof(*ctlp)); @@ -161,13 +160,6 @@ rp_pciattach(device_t dev) ctlp->aiop2off = rp_pci_aiop2off; ctlp->ctlmask = rp_pci_ctlmask; - /* Wake up the device. */ - stcmd = pci_read_config(dev, PCIR_COMMAND, 4); - if ((stcmd & PCIM_CMD_PORTEN) == 0) { - stcmd |= (PCIM_CMD_PORTEN); - pci_write_config(dev, PCIR_COMMAND, 4, stcmd); - } - /* The IO ports of AIOPs for a PCI controller are continuous. */ ctlp->io_num = 1; ctlp->io_rid = malloc(sizeof(*(ctlp->io_rid)) * ctlp->io_num, M_DEVBUF, M_NOWAIT | M_ZERO); Modified: releng/9.2/sys/dev/safe/safe.c ============================================================================== --- releng/9.2/sys/dev/safe/safe.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/safe/safe.c Thu Aug 15 12:19:16 2013 (r254364) @@ -220,28 +220,15 @@ safe_attach(device_t dev) { struct safe_softc *sc = device_get_softc(dev); u_int32_t raddr; - u_int32_t cmd, i, devinfo; + u_int32_t i, devinfo; int rid; bzero(sc, sizeof (*sc)); sc->sc_dev = dev; /* XXX handle power management */ - - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; - pci_write_config(dev, PCIR_COMMAND, cmd, 4); - cmd = pci_read_config(dev, PCIR_COMMAND, 4); - if (!(cmd & PCIM_CMD_MEMEN)) { - device_printf(dev, "failed to enable memory mapping\n"); - goto bad; - } - - if (!(cmd & PCIM_CMD_BUSMASTEREN)) { - device_printf(dev, "failed to enable bus mastering\n"); - goto bad; - } + pci_enable_busmaster(dev); /* * Setup memory-mapping of PCI registers. Modified: releng/9.2/sys/dev/sound/pci/als4000.c ============================================================================== --- releng/9.2/sys/dev/sound/pci/als4000.c Thu Aug 15 11:41:53 2013 (r254363) +++ releng/9.2/sys/dev/sound/pci/als4000.c Thu Aug 15 12:19:16 2013 (r254364) @@ -806,16 +806,13 @@ static int als_pci_attach(device_t dev) { struct sc_info *sc; - u_int32_t data; char status[SND_STATUSLEN]; sc = malloc(sizeof(*sc), M_DEVBUF, M_WAITOK | M_ZERO); sc->lock = snd_mtxcreate(device_get_nameunit(dev), "snd_als4000 softc"); sc->dev = dev; - data = pci_read_config(dev, PCIR_COMMAND, 2); - data |= (PCIM_CMD_PORTEN | PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN); - pci_write_config(dev, PCIR_COMMAND, data, 2); + pci_enable_busmaster(dev); /* * By default the power to the various components on the * ALS4000 is entirely controlled by the pci powerstate. We *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 13:09:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8552058E; Thu, 15 Aug 2013 13:09:59 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 725942EEE; Thu, 15 Aug 2013 13:09:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FD9x7d031491; Thu, 15 Aug 2013 13:09:59 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FD9x13031489; Thu, 15 Aug 2013 13:09:59 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201308151309.r7FD9x13031489@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 15 Aug 2013 13:09:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254366 - stable/9/sys/boot/common X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 13:09:59 -0000 Author: ae Date: Thu Aug 15 13:09:58 2013 New Revision: 254366 URL: http://svnweb.freebsd.org/changeset/base/254366 Log: MFC r254092: Make the check for number of entries less strict. Some partitioning tools can create GPT with number of entries less than 128. Modified: stable/9/sys/boot/common/part.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/boot/ (props changed) Modified: stable/9/sys/boot/common/part.c ============================================================================== --- stable/9/sys/boot/common/part.c Thu Aug 15 12:55:57 2013 (r254365) +++ stable/9/sys/boot/common/part.c Thu Aug 15 13:09:58 2013 (r254366) @@ -181,7 +181,7 @@ gpt_checkhdr(struct gpt_hdr *hdr, uint64 } hdr->hdr_entries = le32toh(hdr->hdr_entries); hdr->hdr_entsz = le32toh(hdr->hdr_entsz); - if (hdr->hdr_entries < 128 || + if (hdr->hdr_entries == 0 || hdr->hdr_entsz < sizeof(struct gpt_ent) || sectorsize % hdr->hdr_entsz != 0) { DEBUG("invalid entry size or number of entries"); @@ -203,11 +203,14 @@ gpt_checktbl(const struct gpt_hdr *hdr, int i, cnt; cnt = size / hdr->hdr_entsz; - /* Check CRC only when buffer size is enough for table. */ - if (hdr->hdr_entries <= cnt && - crc32(tbl, size) != hdr->hdr_crc_table) { - DEBUG("GPT table's CRC doesn't match"); - return (-1); + if (hdr->hdr_entries <= cnt) { + cnt = hdr->hdr_entries; + /* Check CRC only when buffer size is enough for table. */ + if (hdr->hdr_crc_table != + crc32(tbl, hdr->hdr_entries * hdr->hdr_entsz)) { + DEBUG("GPT table's CRC doesn't match"); + return (-1); + } } ent = (struct gpt_ent *)tbl; for (i = 0; i < cnt; i++, ent++) { From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 14:33:10 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 30D9D524; Thu, 15 Aug 2013 14:33:10 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1E1672401; Thu, 15 Aug 2013 14:33:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FEX93Z064123; Thu, 15 Aug 2013 14:33:09 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FEX9A9064122; Thu, 15 Aug 2013 14:33:09 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201308151433.r7FEX9A9064122@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 15 Aug 2013 14:33:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254367 - releng/9.2/sys/boot/common X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 14:33:10 -0000 Author: ae Date: Thu Aug 15 14:33:09 2013 New Revision: 254367 URL: http://svnweb.freebsd.org/changeset/base/254367 Log: Merge r254366: Make the check for number of entries less strict. Some partitioning tools can create GPT with number of entries less than 128. Approved by: re (marius) Modified: releng/9.2/sys/boot/common/part.c Directory Properties: releng/9.2/sys/ (props changed) releng/9.2/sys/boot/ (props changed) Modified: releng/9.2/sys/boot/common/part.c ============================================================================== --- releng/9.2/sys/boot/common/part.c Thu Aug 15 13:09:58 2013 (r254366) +++ releng/9.2/sys/boot/common/part.c Thu Aug 15 14:33:09 2013 (r254367) @@ -181,7 +181,7 @@ gpt_checkhdr(struct gpt_hdr *hdr, uint64 } hdr->hdr_entries = le32toh(hdr->hdr_entries); hdr->hdr_entsz = le32toh(hdr->hdr_entsz); - if (hdr->hdr_entries < 128 || + if (hdr->hdr_entries == 0 || hdr->hdr_entsz < sizeof(struct gpt_ent) || sectorsize % hdr->hdr_entsz != 0) { DEBUG("invalid entry size or number of entries"); @@ -203,11 +203,14 @@ gpt_checktbl(const struct gpt_hdr *hdr, int i, cnt; cnt = size / hdr->hdr_entsz; - /* Check CRC only when buffer size is enough for table. */ - if (hdr->hdr_entries <= cnt && - crc32(tbl, size) != hdr->hdr_crc_table) { - DEBUG("GPT table's CRC doesn't match"); - return (-1); + if (hdr->hdr_entries <= cnt) { + cnt = hdr->hdr_entries; + /* Check CRC only when buffer size is enough for table. */ + if (hdr->hdr_crc_table != + crc32(tbl, hdr->hdr_entries * hdr->hdr_entsz)) { + DEBUG("GPT table's CRC doesn't match"); + return (-1); + } } ent = (struct gpt_ent *)tbl; for (i = 0; i < cnt; i++, ent++) { From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 14:41:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0B49997E; Thu, 15 Aug 2013 14:41:40 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ECA9C2495; Thu, 15 Aug 2013 14:41:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FEfdPv067527; Thu, 15 Aug 2013 14:41:39 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FEfdMD067525; Thu, 15 Aug 2013 14:41:39 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308151441.r7FEfdMD067525@svn.freebsd.org> From: Glen Barber Date: Thu, 15 Aug 2013 14:41:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254368 - in releng/9.2: release sys/conf X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 14:41:40 -0000 Author: gjb Date: Thu Aug 15 14:41:39 2013 New Revision: 254368 URL: http://svnweb.freebsd.org/changeset/base/254368 Log: Update releng/9.2 to -RC2. Approved by: re (implicit) Modified: releng/9.2/release/Makefile.sysinstall releng/9.2/sys/conf/newvers.sh Modified: releng/9.2/release/Makefile.sysinstall ============================================================================== --- releng/9.2/release/Makefile.sysinstall Thu Aug 15 14:33:09 2013 (r254367) +++ releng/9.2/release/Makefile.sysinstall Thu Aug 15 14:41:39 2013 (r254368) @@ -24,7 +24,7 @@ # Set these, release builder! # # Fixed version: -#BUILDNAME=9.2-RC1 +#BUILDNAME=9.2-RC2 # # Automatic SNAP versioning: DATE != date +%Y%m%d Modified: releng/9.2/sys/conf/newvers.sh ============================================================================== --- releng/9.2/sys/conf/newvers.sh Thu Aug 15 14:33:09 2013 (r254367) +++ releng/9.2/sys/conf/newvers.sh Thu Aug 15 14:41:39 2013 (r254368) @@ -32,7 +32,7 @@ TYPE="FreeBSD" REVISION="9.2" -BRANCH="RC1" +BRANCH="RC2" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 15:34:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C9F777B5; Thu, 15 Aug 2013 15:34:26 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A7FDA27A4; Thu, 15 Aug 2013 15:34:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FFYQZc086842; Thu, 15 Aug 2013 15:34:26 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FFYQHK086841; Thu, 15 Aug 2013 15:34:26 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201308151534.r7FFYQHK086841@svn.freebsd.org> From: Devin Teske Date: Thu, 15 Aug 2013 15:34:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-releng@freebsd.org Subject: svn commit: r254370 - releng/9.2/sys/boot/forth X-SVN-Group: releng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 15:34:26 -0000 Author: dteske Date: Thu Aug 15 15:34:26 2013 New Revision: 254370 URL: http://svnweb.freebsd.org/changeset/base/254370 Log: MFS9 SVN r254331: Add optional support for default override of standard setup; but only if corresponding functions are provided. If override function does not exist, boot remains unmodified. This patch should not result in any changes. This includes changes to take advantage of the new functionality. Approved by: re (marius) Modified: releng/9.2/sys/boot/forth/beastie.4th Directory Properties: releng/9.2/sys/ (props changed) releng/9.2/sys/boot/ (props changed) releng/9.2/sys/boot/forth/ (props changed) Modified: releng/9.2/sys/boot/forth/beastie.4th ============================================================================== --- releng/9.2/sys/boot/forth/beastie.4th Thu Aug 15 15:12:14 2013 (r254369) +++ releng/9.2/sys/boot/forth/beastie.4th Thu Aug 15 15:34:26 2013 (r254370) @@ -123,6 +123,76 @@ variable logoY 0 25 at-xy ; +: tribute-art ( x y -- ) \ see tribute[bw]-logo + + \ Disable the brand art (we're going to use that space) + s" set loader_brand=none" evaluate + + \ Blank out the frame of the menu and move the title to left + s" set loader_menu_title=" evaluate + s" set loader_menu_frame=none" evaluate + + \ Move the menu to the center of the screen + s" set loader_menu_x=26" evaluate + s" set loader_menu_y=13" evaluate + s" set loader_menu_timeout_x=21" evaluate + s" set loader_menu_timeout_y=24" evaluate + + 2 - swap 39 - swap \ top-left (see `fbsdbw-logo' comments above) + + 2dup at-xy 11 spaces ." ,d b." 1+ + 2dup at-xy ." ,d88] [88b." 1+ + 2dup at-xy ." ,d888P" 34 emit ." ,d88b. " 34 emit ." Y888b." 1+ + 2dup at-xy ." , <888P" 34 emit ." ,dP" 34 emit ." ,db." 34 emit + ." Yb. " 34 emit ." Y888> ," 1+ + 2dup at-xy ." <88b.~ ,d888 " 34 emit ." YP" 34 emit + ." 888b. ~,d88>" 1+ + 2dup at-xy ." ," 34 emit ." Y888888P" 34 emit ." ,db.,db." 34 emit + ." Y888888P" 34 emit ." ," 1+ + 2dup at-xy ." <88b." 34 emit ." YP" 34 emit ." _ " 34 emit + ." YP" 34 emit 34 emit ." YP" 34 emit ." _ " 34 emit + ." YP" 34 emit ." ,d88>" 1+ + 2dup at-xy ." " 34 emit ." Y88b.,dP Yb.,d88P" 34 emit 1+ + at-xy ." " 34 emit ." YP" 34 emit ." " 34 emit + ." YP" 34 emit ." " +; + +: tribute-text ( x y -- ) \ see tribute[bw]-logo + + swap 2 - swap \ beastie adjustment (see `fbsdbw-logo' comments above) + + 2dup at-xy ." CEO Workstation" 1+ + 1+ + 2dup at-xy ." Nakatomi Socrates FreeBSD 9.2" 1+ + 2dup at-xy ." Z-Level Central Core" 1+ + 1+ + at-xy ." Preliminary Clearance Approved." +; + +: tribute-logo ( x y -- ) \ color Socrates tribute (16 rows x 32 columns) + + \ Produce the tribute art in bright green + 2dup at-xy ." " 2dup tribute-art ." " + + \ Produce the tribute text in regular green + 2dup at-xy ." " 2dup tribute-text ." " + + \ Distinguish the ``Free'' in tribute-text + 2 + swap 16 + swap at-xy ." Free" + + \ Put the cursor back at the bottom + 0 25 at-xy +; + +: tributebw-logo ( x y -- ) \ Socrates tribute (16 rows x 32 columns) + + \ Produce the tribute art and text + 2dup tribute-art tribute-text + + \ Put the cursor back at the bottom + 0 25 at-xy +; + : orb-logo ( x y -- ) \ color Orb mascot (15 rows x 30 columns) 3 + \ beastie adjustment (see `fbsdbw-logo' comments above) @@ -181,8 +251,10 @@ variable logoY \ beastie Color ``Helper Daemon'' mascot (19 rows x 34 columns) \ beastiebw B/W ``Helper Daemon'' mascot (19 rows x 34 columns) \ fbsdbw "FreeBSD" logo in B/W (13 rows x 21 columns) -\ orb Color ``Orb'' mascot (15 rows x 30 columns) (default) +\ orb Color ``Orb'' mascot (15 rows x 30 columns) (2nd default) \ orbbw B/W ``Orb'' mascot (15 rows x 32 columns) +\ tribute Color ``Tribute'' (must fit 19 rows x 34 columns) (default) +\ tributebw B/W ``Tribute'' (must fit 19 rows x 34 columns) \ \ NOTE: Setting `loader_logo' to an undefined value (such as "none") will \ prevent beastie from being drawn. @@ -203,9 +275,21 @@ variable logoY s" loader_logo" getenv dup -1 = if logoX @ logoY @ loader_color? if - orb-logo + s" tribute-logo" + sfind if + execute + else + drop + orb-logo + then else - orbbw-logo + s" tributebw-logo" + sfind if + execute + else + drop + orbbw-logo + then then drop exit then @@ -230,6 +314,24 @@ variable logoY logoX @ logoY @ orbbw-logo 2drop exit then + 2dup s" tribute" compare-insensitive 0= if + logoX @ logoY @ + s" tribute-logo" sfind if + execute + else + orb-logo + then + 2drop exit + then + 2dup s" tributebw" compare-insensitive 0= if + logoX @ logoY @ + s" tributebw-logo" sfind if + execute + else + orbbw-logo + then + 2drop exit + then 2drop ; From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 16:03:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B983FE5B; Thu, 15 Aug 2013 16:03:09 +0000 (UTC) (envelope-from nemysis@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A5B91295F; Thu, 15 Aug 2013 16:03:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FG399E097885; Thu, 15 Aug 2013 16:03:09 GMT (envelope-from nemysis@svn.freebsd.org) Received: (from nemysis@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FG392h097884; Thu, 15 Aug 2013 16:03:09 GMT (envelope-from nemysis@svn.freebsd.org) Message-Id: <201308151603.r7FG392h097884@svn.freebsd.org> From: Rusmir Dusko Date: Thu, 15 Aug 2013 16:03:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254371 - head/share/misc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 16:03:09 -0000 Author: nemysis (ports committer) Date: Thu Aug 15 16:03:09 2013 New Revision: 254371 URL: http://svnweb.freebsd.org/changeset/base/254371 Log: - Add myself in committers-ports.dot Approved by: miwi/wxs/wg (mentors) Modified: head/share/misc/committers-ports.dot Modified: head/share/misc/committers-ports.dot ============================================================================== --- head/share/misc/committers-ports.dot Thu Aug 15 15:34:26 2013 (r254370) +++ head/share/misc/committers-ports.dot Thu Aug 15 16:03:09 2013 (r254371) @@ -155,6 +155,7 @@ miwi [label="Martin Wilke\nmiwi@FreeBSD. mm [label="Martin Matuska\nmm@FreeBSD.org\n2007/04/04"] mnag [label="Marcus Alves Grando\nmnag@FreeBSD.org\n2005/09/15"] mva [label="Marcus von Appen\nmva@FreeBSD.org\n2009/02/16"] +nemysis [label="Rusmir Dusko\nnemysis@FreeBSD.org\n2013/07/31"] nemoliu [label="Tong Liu\nnemoliu@FreeBSD.org\n2007/04/25"] netchild [label="Alexander Leidinger\nnetchild@FreeBSD.org\n2002/03/19"] nobutaka [label="Nobutaka Mantani\nnobutaka@FreeBSD.org\n2001/11/02"] @@ -421,6 +422,7 @@ miwi -> lme miwi -> makc miwi -> mandree miwi -> mva +miwi -> nemysis miwi -> nox miwi -> olivierd miwi -> pawel @@ -456,6 +458,8 @@ pav -> josef pav -> kwm pav -> mnag +pawel -> nemysis + pgj -> ashish pgj -> jacula @@ -525,9 +529,12 @@ wen -> cs wen -> culot wen -> pawel +wg -> nemysis + will -> lioux wxs -> jsa +wxs -> nemysis wxs -> sahil wxs -> skreuzer wxs -> swills From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 16:41:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C6FBA87B; Thu, 15 Aug 2013 16:41:27 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B01802BD2; Thu, 15 Aug 2013 16:41:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FGfRAI012817; Thu, 15 Aug 2013 16:41:27 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FGfRSc012816; Thu, 15 Aug 2013 16:41:27 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308151641.r7FGfRSc012816@svn.freebsd.org> From: "Kenneth D. Merry" Date: Thu, 15 Aug 2013 16:41:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254372 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 16:41:27 -0000 Author: ken Date: Thu Aug 15 16:41:27 2013 New Revision: 254372 URL: http://svnweb.freebsd.org/changeset/base/254372 Log: Export the maxio field in the CAM XPT_PATH_INQ CCB in the isp(4) driver. This tells consumers up the stack the maximum I/O size that the controller can handle. The I/O size is bounded by the number of scatter/gather segments the controller can handle and the page size. For an amd64 system, it works out to around 5MB. Reviewed by: mjacob MFC after: 3 days Sponsored by: Spectra Logic Modified: head/sys/dev/isp/isp_freebsd.c Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Thu Aug 15 16:03:09 2013 (r254371) +++ head/sys/dev/isp/isp_freebsd.c Thu Aug 15 16:41:27 2013 (r254372) @@ -5445,6 +5445,11 @@ isp_action(struct cam_sim *sim, union cc cpi->max_target = ISP_MAX_TARGETS(isp) - 1; cpi->max_lun = ISP_MAX_LUNS(isp) - 1; cpi->bus_id = cam_sim_bus(sim); + if (isp->isp_osinfo.sixtyfourbit) + cpi->maxio = (ISP_NSEG64_MAX - 1) * PAGE_SIZE; + else + cpi->maxio = (ISP_NSEG_MAX - 1) * PAGE_SIZE; + bus = cam_sim_bus(xpt_path_sim(cpi->ccb_h.path)); if (IS_FC(isp)) { fcparam *fcp = FCPARAM(isp, bus); From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 17:21:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B54ACDE6; Thu, 15 Aug 2013 17:21:07 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A21622DA5; Thu, 15 Aug 2013 17:21:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FHL7Fe028019; Thu, 15 Aug 2013 17:21:07 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FHL7S5028018; Thu, 15 Aug 2013 17:21:07 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201308151721.r7FHL7S5028018@svn.freebsd.org> From: Brooks Davis Date: Thu, 15 Aug 2013 17:21:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254373 - head/sys/x86/isa X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 17:21:07 -0000 Author: brooks Date: Thu Aug 15 17:21:06 2013 New Revision: 254373 URL: http://svnweb.freebsd.org/changeset/base/254373 Log: Call set_i8254_freq with MODE_STOP (0) rather than a magic number of 0. Modified: head/sys/x86/isa/clock.c Modified: head/sys/x86/isa/clock.c ============================================================================== --- head/sys/x86/isa/clock.c Thu Aug 15 16:41:27 2013 (r254372) +++ head/sys/x86/isa/clock.c Thu Aug 15 17:21:06 2013 (r254373) @@ -469,7 +469,7 @@ i8254_restore(void) if (attimer_sc != NULL) set_i8254_freq(attimer_sc->mode, attimer_sc->period); else - set_i8254_freq(0, 0); + set_i8254_freq(MODE_STOP, 0); } #ifndef __amd64__ @@ -504,7 +504,7 @@ i8254_init(void) if (pc98_machine_type & M_8M) i8254_freq = 1996800L; /* 1.9968 MHz */ #endif - set_i8254_freq(0, 0); + set_i8254_freq(MODE_STOP, 0); } void @@ -539,7 +539,7 @@ sysctl_machdep_i8254_freq(SYSCTL_HANDLER set_i8254_freq(attimer_sc->mode, attimer_sc->period); attimer_sc->tc.tc_frequency = freq; } else { - set_i8254_freq(0, 0); + set_i8254_freq(MODE_STOP, 0); } } return (error); @@ -715,7 +715,7 @@ attimer_attach(device_t dev) i8254_pending = i8254_intsrc->is_pic->pic_source_pending; resource_int_value(device_get_name(dev), device_get_unit(dev), "timecounter", &i8254_timecounter); - set_i8254_freq(0, 0); + set_i8254_freq(MODE_STOP, 0); if (i8254_timecounter) { sc->tc.tc_get_timecount = i8254_get_timecount; sc->tc.tc_counter_mask = 0xffff; From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 17:44:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 83CA360E; Thu, 15 Aug 2013 17:44:45 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 711822ED8; Thu, 15 Aug 2013 17:44:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FHiini036285; Thu, 15 Aug 2013 17:44:44 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FHiirt036284; Thu, 15 Aug 2013 17:44:44 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201308151744.r7FHiirt036284@svn.freebsd.org> From: Brooks Davis Date: Thu, 15 Aug 2013 17:44:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254374 - head/sys/amd64/amd64 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 17:44:45 -0000 Author: brooks Date: Thu Aug 15 17:44:44 2013 New Revision: 254374 URL: http://svnweb.freebsd.org/changeset/base/254374 Log: Use an ANSI C definition of initializecpucache() to match the declaration and the rest of the file. Modified: head/sys/amd64/amd64/initcpu.c Modified: head/sys/amd64/amd64/initcpu.c ============================================================================== --- head/sys/amd64/amd64/initcpu.c Thu Aug 15 17:21:06 2013 (r254373) +++ head/sys/amd64/amd64/initcpu.c Thu Aug 15 17:44:44 2013 (r254374) @@ -192,7 +192,7 @@ initializecpu(void) } void -initializecpucache() +initializecpucache(void) { /* From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 20:00:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 364EB759; Thu, 15 Aug 2013 20:00:33 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 148A8265B; Thu, 15 Aug 2013 20:00:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FK0W1D088017; Thu, 15 Aug 2013 20:00:32 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FK0WQ6088016; Thu, 15 Aug 2013 20:00:32 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201308152000.r7FK0WQ6088016@svn.freebsd.org> From: Edward Tomasz Napierala Date: Thu, 15 Aug 2013 20:00:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254378 - head/sys/cam/ctl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 20:00:33 -0000 Author: trasz Date: Thu Aug 15 20:00:32 2013 New Revision: 254378 URL: http://svnweb.freebsd.org/changeset/base/254378 Log: Turn comments about locking into actual lock assertions. Reviewed by: ken Tested by: ken MFC after: 1 month Modified: head/sys/cam/ctl/ctl.c Modified: head/sys/cam/ctl/ctl.c ============================================================================== --- head/sys/cam/ctl/ctl.c Thu Aug 15 19:46:31 2013 (r254377) +++ head/sys/cam/ctl/ctl.c Thu Aug 15 20:00:32 2013 (r254378) @@ -1070,9 +1070,11 @@ ctl_init(void) softc->emergency_pool = emergency_pool; softc->othersc_pool = other_pool; + mtx_lock(&softc->ctl_lock); ctl_pool_acquire(internal_pool); ctl_pool_acquire(emergency_pool); ctl_pool_acquire(other_pool); + mtx_unlock(&softc->ctl_lock); /* * We used to allocate a processor LUN here. The new scheme is to @@ -1088,10 +1090,12 @@ ctl_init(void) "ctl_thrd"); if (error != 0) { printf("error creating CTL work thread!\n"); + mtx_lock(&softc->ctl_lock); ctl_free_lun(lun); ctl_pool_free(softc, internal_pool); ctl_pool_free(softc, emergency_pool); ctl_pool_free(softc, other_pool); + mtx_unlock(&softc->ctl_lock); return (error); } printf("ctl: CAM Target Layer loaded\n"); @@ -1372,7 +1376,6 @@ ctl_ioctl_offline(void *arg) /* * Remove an initiator by port number and initiator ID. * Returns 0 for success, 1 for failure. - * Assumes the caller does NOT hold the CTL lock. */ int ctl_remove_initiator(int32_t targ_port, uint32_t iid) @@ -1381,6 +1384,8 @@ ctl_remove_initiator(int32_t targ_port, softc = control_softc; + mtx_assert(&softc->ctl_lock, MA_NOTOWNED); + if ((targ_port < 0) || (targ_port > CTL_MAX_PORTS)) { printf("%s: invalid port number %d\n", __func__, targ_port); @@ -1404,7 +1409,6 @@ ctl_remove_initiator(int32_t targ_port, /* * Add an initiator to the initiator map. * Returns 0 for success, 1 for failure. - * Assumes the caller does NOT hold the CTL lock. */ int ctl_add_initiator(uint64_t wwpn, int32_t targ_port, uint32_t iid) @@ -1414,6 +1418,8 @@ ctl_add_initiator(uint64_t wwpn, int32_t softc = control_softc; + mtx_assert(&softc->ctl_lock, MA_NOTOWNED); + retval = 0; if ((targ_port < 0) @@ -1970,7 +1976,6 @@ ctl_ioctl_bbrread_callback(void *arg, st } /* - * Must be called with the ctl_lock held. * Returns 0 for success, errno for failure. */ static int @@ -1982,6 +1987,8 @@ ctl_ioctl_fill_ooa(struct ctl_lun *lun, retval = 0; + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + for (io = (union ctl_io *)TAILQ_FIRST(&lun->ooa_queue); (io != NULL); (*cur_fill_num)++, io = (union ctl_io *)TAILQ_NEXT(&io->io_hdr, ooa_links)) { @@ -3395,12 +3402,12 @@ bailout: return (retval); } -/* - * Caller must hold ctl_softc->ctl_lock. - */ int ctl_pool_acquire(struct ctl_io_pool *pool) { + + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + if (pool == NULL) return (-EINVAL); @@ -3412,12 +3419,12 @@ ctl_pool_acquire(struct ctl_io_pool *poo return (0); } -/* - * Caller must hold ctl_softc->ctl_lock. - */ int ctl_pool_invalidate(struct ctl_io_pool *pool) { + + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + if (pool == NULL) return (-EINVAL); @@ -3426,12 +3433,12 @@ ctl_pool_invalidate(struct ctl_io_pool * return (0); } -/* - * Caller must hold ctl_softc->ctl_lock. - */ int ctl_pool_release(struct ctl_io_pool *pool) { + + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + if (pool == NULL) return (-EINVAL); @@ -3443,14 +3450,13 @@ ctl_pool_release(struct ctl_io_pool *poo return (0); } -/* - * Must be called with ctl_softc->ctl_lock held. - */ void ctl_pool_free(struct ctl_softc *ctl_softc, struct ctl_io_pool *pool) { union ctl_io *cur_io, *next_io; + mtx_assert(&ctl_softc->ctl_lock, MA_OWNED); + for (cur_io = (union ctl_io *)STAILQ_FIRST(&pool->free_queue); cur_io != NULL; cur_io = next_io) { next_io = (union ctl_io *)STAILQ_NEXT(&cur_io->io_hdr, @@ -4392,7 +4398,6 @@ ctl_alloc_lun(struct ctl_softc *ctl_soft /* * Delete a LUN. * Assumptions: - * - caller holds ctl_softc->ctl_lock. * - LUN has already been marked invalid and any pending I/O has been taken * care of. */ @@ -4409,6 +4414,8 @@ ctl_free_lun(struct ctl_lun *lun) softc = lun->ctl_softc; + mtx_assert(&softc->ctl_lock, MA_OWNED); + STAILQ_REMOVE(&softc->lun_list, lun, ctl_lun, links); ctl_clear_mask(softc->ctl_lun_mask, lun->lun); @@ -9772,7 +9779,6 @@ ctl_check_for_blockage(union ctl_io *pen /* * Check for blockage or overlaps against the OOA (Order Of Arrival) queue. * Assumptions: - * - caller holds ctl_lock * - pending_io is generally either incoming, or on the blocked queue * - starting I/O is the I/O we want to start the check with. */ @@ -9783,6 +9789,8 @@ ctl_check_ooa(struct ctl_lun *lun, union union ctl_io *ooa_io; ctl_action action; + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + /* * Run back along the OOA queue, starting with the current * blocked I/O and going through every I/O before it on the @@ -9823,13 +9831,14 @@ ctl_check_ooa(struct ctl_lun *lun, union * Assumptions: * - An I/O has just completed, and has been removed from the per-LUN OOA * queue, so some items on the blocked queue may now be unblocked. - * - The caller holds ctl_softc->ctl_lock */ static int ctl_check_blocked(struct ctl_lun *lun) { union ctl_io *cur_blocked, *next_blocked; + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + /* * Run forward from the head of the blocked queue, checking each * entry against the I/Os prior to it on the OOA queue to see if @@ -10893,8 +10902,6 @@ bailout: } /* - * Assumptions: caller holds ctl_softc->ctl_lock - * * This routine cannot block! It must be callable from an interrupt * handler as well as from the work thread. */ @@ -10903,6 +10910,8 @@ ctl_run_task_queue(struct ctl_softc *ctl { union ctl_io *io, *next_io; + mtx_assert(&ctl_softc->ctl_lock, MA_OWNED); + CTL_DEBUG_PRINT(("ctl_run_task_queue\n")); for (io = (union ctl_io *)STAILQ_FIRST(&ctl_softc->task_queue); @@ -11204,14 +11213,13 @@ ctl_cmd_pattern_match(struct ctl_scsiio return (filtered_pattern); } -/* - * Called with the CTL lock held. - */ static void ctl_inject_error(struct ctl_lun *lun, union ctl_io *io) { struct ctl_error_desc *desc, *desc2; + mtx_assert(&control_softc->ctl_lock, MA_OWNED); + STAILQ_FOREACH_SAFE(desc, &lun->error_list, links, desc2) { ctl_lun_error_pattern pattern; /* @@ -11281,14 +11289,13 @@ ctl_datamove_timer_wakeup(void *arg) } #endif /* CTL_IO_DELAY */ -/* - * Assumption: caller does NOT hold ctl_lock - */ void ctl_datamove(union ctl_io *io) { void (*fe_datamove)(union ctl_io *io); + mtx_assert(&control_softc->ctl_lock, MA_NOTOWNED); + CTL_DEBUG_PRINT(("ctl_datamove\n")); #ifdef CTL_TIME_IO @@ -12134,8 +12141,6 @@ ctl_datamove_remote_read(union ctl_io *i * first. Once that is complete, the data gets DMAed into the remote * controller's memory. For reads, we DMA from the remote controller's * memory into our memory first, and then move it out to the FETD. - * - * Should be called without the ctl_lock held. */ static void ctl_datamove_remote(union ctl_io *io) @@ -12144,6 +12149,8 @@ ctl_datamove_remote(union ctl_io *io) softc = control_softc; + mtx_assert(&softc->ctl_lock, MA_NOTOWNED); + /* * Note that we look for an aborted I/O here, but don't do some of * the other checks that ctl_datamove() normally does. We don't From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 20:03:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C76B6948; Thu, 15 Aug 2013 20:03:23 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 945EC26A1; Thu, 15 Aug 2013 20:03:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FK3NCH090411; Thu, 15 Aug 2013 20:03:23 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FK3M9e090406; Thu, 15 Aug 2013 20:03:22 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201308152003.r7FK3M9e090406@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 15 Aug 2013 20:03:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254379 - head/sys/dev/iir X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 20:03:24 -0000 Author: jkim Date: Thu Aug 15 20:03:22 2013 New Revision: 254379 URL: http://svnweb.freebsd.org/changeset/base/254379 Log: Avoid potential redefinition of the macro. Modified: head/sys/dev/iir/iir.c head/sys/dev/iir/iir.h head/sys/dev/iir/iir_ctrl.c head/sys/dev/iir/iir_pci.c Modified: head/sys/dev/iir/iir.c ============================================================================== --- head/sys/dev/iir/iir.c Thu Aug 15 20:00:32 2013 (r254378) +++ head/sys/dev/iir/iir.c Thu Aug 15 20:03:22 2013 (r254379) @@ -399,7 +399,7 @@ iir_init(struct gdt_softc *gdt) gdt->oem_name[7]='\0'; } else { /* Old method, based on PCI ID */ - if (gdt->sc_vendor == INTEL_VENDOR_ID) + if (gdt->sc_vendor == INTEL_VENDOR_ID_IIR) strcpy(gdt->oem_name,"Intel "); else strcpy(gdt->oem_name,"ICP "); @@ -1374,7 +1374,7 @@ iir_action( struct cam_sim *sim, union c (bus == gdt->sc_virt_bus ? 127 : gdt->sc_bus_id[bus]); cpi->base_transfer_speed = 3300; strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN); - if (gdt->sc_vendor == INTEL_VENDOR_ID) + if (gdt->sc_vendor == INTEL_VENDOR_ID_IIR) strncpy(cpi->hba_vid, "Intel Corp.", HBA_IDLEN); else strncpy(cpi->hba_vid, "ICP vortex ", HBA_IDLEN); Modified: head/sys/dev/iir/iir.h ============================================================================== --- head/sys/dev/iir/iir.h Thu Aug 15 20:00:32 2013 (r254378) +++ head/sys/dev/iir/iir.h Thu Aug 15 20:03:22 2013 (r254379) @@ -63,7 +63,7 @@ #define GDT_DEVICE_ID_MAX 0x2ff #define GDT_DEVICE_ID_NEWRX 0x300 -#define INTEL_VENDOR_ID 0x8086 +#define INTEL_VENDOR_ID_IIR 0x8086 #define INTEL_DEVICE_ID_IIR 0x600 #define GDT_MAXBUS 6 /* XXX Why not 5? */ Modified: head/sys/dev/iir/iir_ctrl.c ============================================================================== --- head/sys/dev/iir/iir_ctrl.c Thu Aug 15 20:00:32 2013 (r254378) +++ head/sys/dev/iir/iir_ctrl.c Thu Aug 15 20:03:22 2013 (r254379) @@ -273,7 +273,7 @@ iir_ioctl(struct cdev *dev, u_long cmd, return (ENXIO); /* only RP controllers */ p->ext_type = 0x6000 | gdt->sc_device; - if (gdt->sc_vendor == INTEL_VENDOR_ID) { + if (gdt->sc_vendor == INTEL_VENDOR_ID_IIR) { p->oem_id = OEM_ID_INTEL; p->type = 0xfd; /* new -> subdevice into ext_type */ Modified: head/sys/dev/iir/iir_pci.c ============================================================================== --- head/sys/dev/iir/iir_pci.c Thu Aug 15 20:00:32 2013 (r254378) +++ head/sys/dev/iir/iir_pci.c Thu Aug 15 20:03:22 2013 (r254379) @@ -163,7 +163,7 @@ MODULE_DEPEND(iir, cam, 1, 1, 1); static int iir_pci_probe(device_t dev) { - if (pci_get_vendor(dev) == INTEL_VENDOR_ID && + if (pci_get_vendor(dev) == INTEL_VENDOR_ID_IIR && pci_get_device(dev) == INTEL_DEVICE_ID_IIR) { device_set_desc(dev, "Intel Integrated RAID Controller"); return (BUS_PROBE_DEFAULT); From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 20:19:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B3338C12; Thu, 15 Aug 2013 20:19:18 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 914882747; Thu, 15 Aug 2013 20:19:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FKJIFE095442; Thu, 15 Aug 2013 20:19:18 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FKJI0H095440; Thu, 15 Aug 2013 20:19:18 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <201308152019.r7FKJI0H095440@svn.freebsd.org> From: Colin Percival Date: Thu, 15 Aug 2013 20:19:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254380 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 20:19:18 -0000 Author: cperciva Date: Thu Aug 15 20:19:17 2013 New Revision: 254380 URL: http://svnweb.freebsd.org/changeset/base/254380 Log: Change the queue of locks in kern_rangelock.c from holding lock requests in the order that they arrive, to holding (a) granted write lock requests, followed by (b) granted read lock requests, followed by (c) ungranted requests, in order of arrival. This changes the stopping condition for iterating through granted locks to see if a new request can be granted: When considering a read lock request, we can stop iterating as soon as we see a read lock request, since anything after that point is either a granted read lock request or a request which has not yet been granted. (For write lock requests, we must still compare against all granted lock requests.) For workloads with R parallel reads and W parallel writes, this improves the time spent from O((R+W)^2) to O(W*(R+W)); i.e., heavy parallel-read workloads become significantly more scalable. No statistically significant change in buildworld time has been measured, but synthetic tests of parallel 'dd > /dev/null' and 'openssl enc >/dev/null' with the input file cached yield dramatic (up to 10x) improvement with high (up to 128 processes) levels of parallelism. Reviewed by: kib Modified: head/sys/kern/kern_rangelock.c head/sys/sys/rangelock.h Modified: head/sys/kern/kern_rangelock.c ============================================================================== --- head/sys/kern/kern_rangelock.c Thu Aug 15 20:03:22 2013 (r254379) +++ head/sys/kern/kern_rangelock.c Thu Aug 15 20:19:17 2013 (r254380) @@ -84,20 +84,14 @@ rangelock_destroy(struct rangelock *lock } /* - * Verifies the supplied rl_q_entries for compatibility. Returns true - * if the rangelock queue entries are not compatible, false if they are. - * * Two entries are compatible if their ranges do not overlap, or both * entries are for read. */ static int -rangelock_incompatible(const struct rl_q_entry *e1, +ranges_overlap(const struct rl_q_entry *e1, const struct rl_q_entry *e2) { - if ((e1->rl_q_flags & RL_LOCK_TYPE_MASK) == RL_LOCK_READ && - (e2->rl_q_flags & RL_LOCK_TYPE_MASK) == RL_LOCK_READ) - return (0); if (e1->rl_q_start < e2->rl_q_end && e1->rl_q_end > e2->rl_q_start) return (1); return (0); @@ -109,30 +103,38 @@ rangelock_incompatible(const struct rl_q static void rangelock_calc_block(struct rangelock *lock) { - struct rl_q_entry *entry, *entry1, *whead; + struct rl_q_entry *entry, *nextentry, *entry1; - if (lock->rl_currdep == TAILQ_FIRST(&lock->rl_waiters) && - lock->rl_currdep != NULL) - lock->rl_currdep = TAILQ_NEXT(lock->rl_currdep, rl_q_link); - for (entry = lock->rl_currdep; entry != NULL; - entry = TAILQ_NEXT(entry, rl_q_link)) { - TAILQ_FOREACH(entry1, &lock->rl_waiters, rl_q_link) { - if (rangelock_incompatible(entry, entry1)) - goto out; - if (entry1 == entry) - break; + for (entry = lock->rl_currdep; entry != NULL; entry = nextentry) { + nextentry = TAILQ_NEXT(entry, rl_q_link); + if (entry->rl_q_flags & RL_LOCK_READ) { + /* Reads must not overlap with granted writes. */ + for (entry1 = TAILQ_FIRST(&lock->rl_waiters); + !(entry1->rl_q_flags & RL_LOCK_READ); + entry1 = TAILQ_NEXT(entry1, rl_q_link)) { + if (ranges_overlap(entry, entry1)) + goto out; + } + } else { + /* Write must not overlap with any granted locks. */ + for (entry1 = TAILQ_FIRST(&lock->rl_waiters); + entry1 != entry; + entry1 = TAILQ_NEXT(entry1, rl_q_link)) { + if (ranges_overlap(entry, entry1)) + goto out; + } + + /* Move grantable write locks to the front. */ + TAILQ_REMOVE(&lock->rl_waiters, entry, rl_q_link); + TAILQ_INSERT_HEAD(&lock->rl_waiters, entry, rl_q_link); } + + /* Grant this lock. */ + entry->rl_q_flags |= RL_LOCK_GRANTED; + wakeup(entry); } out: lock->rl_currdep = entry; - TAILQ_FOREACH(whead, &lock->rl_waiters, rl_q_link) { - if (whead == lock->rl_currdep) - break; - if (!(whead->rl_q_flags & RL_LOCK_GRANTED)) { - whead->rl_q_flags |= RL_LOCK_GRANTED; - wakeup(whead); - } - } } static void Modified: head/sys/sys/rangelock.h ============================================================================== --- head/sys/sys/rangelock.h Thu Aug 15 20:03:22 2013 (r254379) +++ head/sys/sys/rangelock.h Thu Aug 15 20:19:17 2013 (r254380) @@ -48,9 +48,13 @@ struct rl_q_entry; * Access to the structure itself is synchronized with the externally * supplied mutex. * - * rl_waiters is the queue of lock requests in the order of arrival. + * rl_waiters is the queue containing in order (a) granted write lock + * requests, (b) granted read lock requests, and (c) in order of arrival, + * lock requests which cannot be granted yet. + * * rl_currdep is the first lock request that cannot be granted now due - * to the preceding requests conflicting with it. + * to the preceding requests conflicting with it (i.e., it points to + * position (c) in the list above). */ struct rangelock { TAILQ_HEAD(, rl_q_entry) rl_waiters; From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 20:30:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 84652FD6; Thu, 15 Aug 2013 20:30:06 +0000 (UTC) (envelope-from ivoras@gmail.com) Received: from mail-vc0-x22b.google.com (mail-vc0-x22b.google.com [IPv6:2607:f8b0:400c:c03::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0955827D4; Thu, 15 Aug 2013 20:30:05 +0000 (UTC) Received: by mail-vc0-f171.google.com with SMTP id ij15so863265vcb.30 for ; Thu, 15 Aug 2013 13:30:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=cH02tUUHi1JGh6eTDeNx9QQq6c/evyhwRuWkxk+PMyA=; b=f4AlFFQu4xRJpPcgC+EIgmhbQmZJPESSygNoANp7mUJ1v3Rz5NouASya9yQYs1Tg62 p+MSxRsaZm97PHBNhmLLu4fnSHls4oSyjkc3cBmULJ5nXcxczJD+LAhNby8jkz/uDxiN L2LYtojQMVb5D0qFwmxLktp3F53VC5J+Xw5VfadY4RUhcP3gFE/zieJhdHg9VQWaDjMI JNF5JUV6qTj0LOINJcT80r2jKeH5rfwOVVyvyHUKM/8WXGDImQIp9g1oqmyOj9jqgkat j342m6uDRxKF5GIcpo/Jyqt8s09NxBasQ8m504ql3g2Bzivn9U3yrrn4uB0p0NWJYdlh GdeQ== X-Received: by 10.220.206.195 with SMTP id fv3mr15985977vcb.15.1376598604659; Thu, 15 Aug 2013 13:30:04 -0700 (PDT) MIME-Version: 1.0 Sender: ivoras@gmail.com Received: by 10.58.229.167 with HTTP; Thu, 15 Aug 2013 13:29:24 -0700 (PDT) In-Reply-To: <201308152019.r7FKJI0H095440@svn.freebsd.org> References: <201308152019.r7FKJI0H095440@svn.freebsd.org> From: Ivan Voras Date: Thu, 15 Aug 2013 22:29:24 +0200 X-Google-Sender-Auth: xLOPVDoKZZwiwfP6uzEL0AN4t7Y Message-ID: Subject: Re: svn commit: r254380 - in head/sys: kern sys To: Colin Percival Content-Type: text/plain; charset=UTF-8 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 20:30:06 -0000 On 15 August 2013 22:19, Colin Percival wrote: > For workloads with R parallel reads and W parallel writes, this improves > the time spent from O((R+W)^2) to O(W*(R+W)); i.e., heavy parallel-read > workloads become significantly more scalable. > > No statistically significant change in buildworld time has been measured, > but synthetic tests of parallel 'dd > /dev/null' and 'openssl enc >/dev/null' > with the input file cached yield dramatic (up to 10x) improvement with high > (up to 128 processes) levels of parallelism. That's interesting. Have you tried running the "blogbench" benchmark before & after? From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 20:33:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id ECBE51F8; Thu, 15 Aug 2013 20:33:18 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CB6E02815; Thu, 15 Aug 2013 20:33:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FKXInP002117; Thu, 15 Aug 2013 20:33:18 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FKXICF002113; Thu, 15 Aug 2013 20:33:18 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201308152033.r7FKXICF002113@svn.freebsd.org> From: Jack F Vogel Date: Thu, 15 Aug 2013 20:33:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254382 - in stable/9/sys/dev: e1000 ixgbe X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 20:33:19 -0000 Author: jfv Date: Thu Aug 15 20:33:17 2013 New Revision: 254382 URL: http://svnweb.freebsd.org/changeset/base/254382 Log: MFC r254008 Make the fallback from MSIX to MSI interrupt usage more graceful. Modified: stable/9/sys/dev/e1000/if_em.c stable/9/sys/dev/e1000/if_igb.c stable/9/sys/dev/ixgbe/ixgbe.c stable/9/sys/dev/ixgbe/ixv.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/dev/e1000/ (props changed) stable/9/sys/dev/ixgbe/ (props changed) Modified: stable/9/sys/dev/e1000/if_em.c ============================================================================== --- stable/9/sys/dev/e1000/if_em.c Thu Aug 15 20:28:13 2013 (r254381) +++ stable/9/sys/dev/e1000/if_em.c Thu Aug 15 20:33:17 2013 (r254382) @@ -2742,7 +2742,7 @@ static int em_setup_msix(struct adapter *adapter) { device_t dev = adapter->dev; - int val = 0; + int val; /* ** Setup MSI/X for Hartwell: tests have shown @@ -2756,17 +2756,17 @@ em_setup_msix(struct adapter *adapter) int rid = PCIR_BAR(EM_MSIX_BAR); adapter->msix_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (!adapter->msix_mem) { + if (adapter->msix_mem == NULL) { /* May not be enabled */ device_printf(adapter->dev, "Unable to map MSIX table \n"); goto msi; } val = pci_msix_count(dev); - /* We only need 3 vectors */ - if (val > 3) + /* We only need/want 3 vectors */ + if (val >= 3) val = 3; - if ((val != 3) && (val != 5)) { + else { bus_release_resource(dev, SYS_RES_MEMORY, PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem); adapter->msix_mem = NULL; @@ -2779,14 +2779,13 @@ em_setup_msix(struct adapter *adapter) device_printf(adapter->dev, "Using MSIX interrupts " "with %d vectors\n", val); + return (val); } - - return (val); + /* Fall through to MSI */ } msi: - val = pci_msi_count(dev); - if (val == 1 && pci_alloc_msi(dev, &val) == 0) { - adapter->msix = 1; + val = 1; + if (pci_alloc_msi(dev, &val) == 0) { device_printf(adapter->dev,"Using an MSI interrupt\n"); return (val); } Modified: stable/9/sys/dev/e1000/if_igb.c ============================================================================== --- stable/9/sys/dev/e1000/if_igb.c Thu Aug 15 20:28:13 2013 (r254381) +++ stable/9/sys/dev/e1000/if_igb.c Thu Aug 15 20:33:17 2013 (r254382) @@ -2834,24 +2834,19 @@ igb_setup_msix(struct adapter *adapter) goto msi; /* First try MSI/X */ + msgs = pci_msix_count(dev); + if (msgs == 0) + goto msi; rid = PCIR_BAR(IGB_MSIX_BAR); adapter->msix_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (!adapter->msix_mem) { + if (adapter->msix_mem == NULL) { /* May not be enabled */ device_printf(adapter->dev, "Unable to map MSIX table \n"); goto msi; } - msgs = pci_msix_count(dev); - if (msgs == 0) { /* system has msix disabled */ - bus_release_resource(dev, SYS_RES_MEMORY, - PCIR_BAR(IGB_MSIX_BAR), adapter->msix_mem); - adapter->msix_mem = NULL; - goto msi; - } - /* Figure out a reasonable auto config value */ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; @@ -2894,20 +2889,27 @@ igb_setup_msix(struct adapter *adapter) "MSIX Configuration Problem, " "%d vectors configured, but %d queues wanted!\n", msgs, want); - return (0); + goto msi; } - if ((msgs) && pci_alloc_msix(dev, &msgs) == 0) { + if (pci_alloc_msix(dev, &msgs) == 0) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); adapter->num_queues = queues; return (msgs); } + /* Fallback to MSI configuration */ msi: - msgs = pci_msi_count(dev); - if (msgs == 1 && pci_alloc_msi(dev, &msgs) == 0) { + if (adapter->msix_mem != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + PCIR_BAR(IGB_MSIX_BAR), adapter->msix_mem); + adapter->msix_mem = NULL; + } + msgs = 1; + if (pci_alloc_msi(dev, &msgs) == 0) { device_printf(adapter->dev," Using MSI interrupt\n"); return (msgs); } + /* Default to a legacy interrupt */ return (0); } Modified: stable/9/sys/dev/ixgbe/ixgbe.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixgbe.c Thu Aug 15 20:28:13 2013 (r254381) +++ stable/9/sys/dev/ixgbe/ixgbe.c Thu Aug 15 20:33:17 2013 (r254382) @@ -2415,29 +2415,24 @@ ixgbe_setup_msix(struct adapter *adapter goto msi; /* First try MSI/X */ + msgs = pci_msix_count(dev); + if (msgs == 0) + goto msi; rid = PCIR_BAR(MSIX_82598_BAR); adapter->msix_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (!adapter->msix_mem) { + if (adapter->msix_mem == NULL) { rid += 4; /* 82599 maps in higher BAR */ adapter->msix_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); } - if (!adapter->msix_mem) { + if (adapter->msix_mem == NULL) { /* May not be enabled */ device_printf(adapter->dev, "Unable to map MSIX table \n"); goto msi; } - msgs = pci_msix_count(dev); - if (msgs == 0) { /* system has msix disabled */ - bus_release_resource(dev, SYS_RES_MEMORY, - rid, adapter->msix_mem); - adapter->msix_mem = NULL; - goto msi; - } - /* Figure out a reasonable auto config value */ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; @@ -2459,21 +2454,27 @@ ixgbe_setup_msix(struct adapter *adapter "MSIX Configuration Problem, " "%d vectors but %d queues wanted!\n", msgs, want); - return (0); /* Will go to Legacy setup */ + goto msi; } - if ((msgs) && pci_alloc_msix(dev, &msgs) == 0) { + if (pci_alloc_msix(dev, &msgs) == 0) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); adapter->num_queues = queues; return (msgs); } msi: - msgs = pci_msi_count(dev); - if (msgs == 1 && pci_alloc_msi(dev, &msgs) == 0) + if (adapter->msix_mem != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + rid, adapter->msix_mem); + adapter->msix_mem = NULL; + } + msgs = 1; + if (pci_alloc_msi(dev, &msgs) == 0) { device_printf(adapter->dev,"Using an MSI interrupt\n"); - else - device_printf(adapter->dev,"Using a Legacy interrupt\n"); - return (msgs); + return (msgs); + } + device_printf(adapter->dev,"Using a Legacy interrupt\n"); + return (0); } Modified: stable/9/sys/dev/ixgbe/ixv.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixv.c Thu Aug 15 20:28:13 2013 (r254381) +++ stable/9/sys/dev/ixgbe/ixv.c Thu Aug 15 20:33:17 2013 (r254382) @@ -1680,37 +1680,35 @@ static int ixv_setup_msix(struct adapter *adapter) { device_t dev = adapter->dev; - int rid, vectors, want = 2; + int rid, want; /* First try MSI/X */ rid = PCIR_BAR(3); adapter->msix_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); - if (!adapter->msix_mem) { + if (adapter->msix_mem == NULL) { device_printf(adapter->dev, "Unable to map MSIX table \n"); goto out; } - vectors = pci_msix_count(dev); - if (vectors < 2) { - bus_release_resource(dev, SYS_RES_MEMORY, - rid, adapter->msix_mem); - adapter->msix_mem = NULL; - goto out; - } - /* ** Want two vectors: one for a queue, ** plus an additional for mailbox. */ + want = 2; if (pci_alloc_msix(dev, &want) == 0) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", want); return (want); } out: + if (adapter->msix_mem != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + rid, adapter->msix_mem); + adapter->msix_mem = NULL; + } device_printf(adapter->dev,"MSIX config error\n"); return (ENXIO); } From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 20:35:30 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6A92D4C7 for ; Thu, 15 Aug 2013 20:35:30 +0000 (UTC) (envelope-from bounces+73574-8822-svn-src-all=freebsd.org@sendgrid.me) Received: from o3.shared.sendgrid.net (o3.shared.sendgrid.net [208.117.48.85]) by mx1.freebsd.org (Postfix) with SMTP id E54C52824 for ; Thu, 15 Aug 2013 20:35:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=from :mime-version:to:cc:subject:references:in-reply-to:content-type :content-transfer-encoding; s=smtpapi; bh=KQuckAyVSUmDD8TDoqIKjO AE1/E=; b=NGyEA81IuzS1Tp+4VDcLnNX01DldnwgZ4GEV+0BxAruJvAHd5O5c+7 T/WzDuCSZ/gbuOPJJMMFNXwsgES/blwoSK1Rq7hwKn3ipg/sRXSNFiXhRvHm8k34 wojS8rDEJ1+5YomOJa/tUyEFB+0SM50v28fxddW7RbXhB4MLIsJBs= Received: by 10.42.83.83 with SMTP id filter-169.27486.520D3B90B Thu, 15 Aug 2013 20:35:28 +0000 (GMT) Received: from mail.tarsnap.com (unknown [10.60.208.13]) by mi22 (SG) with ESMTP id 14083b0aae3.6f75.8f33b9 for ; Thu, 15 Aug 2013 20:35:28 +0000 (UTC) Received: (qmail 32112 invoked from network); 15 Aug 2013 20:35:27 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 15 Aug 2013 20:35:27 -0000 Received: (qmail 52355 invoked from network); 15 Aug 2013 20:32:24 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 15 Aug 2013 20:32:24 -0000 Message-ID: <520D3AD8.4090207@freebsd.org> Date: Thu, 15 Aug 2013 13:32:24 -0700 From: Colin Percival User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130722 Thunderbird/17.0.7 MIME-Version: 1.0 To: Ivan Voras Subject: Re: svn commit: r254380 - in head/sys: kern sys References: <201308152019.r7FKJI0H095440@svn.freebsd.org> In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SG-EID: A6W2xSVPHetogaU8rnzccWwgBYtN+QvIzXyjfe/10PFt7odERcTzFE6iBL5iSTO1m7sv21SKYZQTYn2G6njnecnA3U8KTYp9i76ZGpYhJ147i4zqw6b9YJDb+OV4eOUwUl1a8augvKIip6Ru0Iefhw== Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 20:35:30 -0000 On 08/15/13 13:29, Ivan Voras wrote: > On 15 August 2013 22:19, Colin Percival wrote: >> For workloads with R parallel reads and W parallel writes, this improves >> the time spent from O((R+W)^2) to O(W*(R+W)); i.e., heavy parallel-read >> workloads become significantly more scalable. >> >> No statistically significant change in buildworld time has been measured, >> but synthetic tests of parallel 'dd > /dev/null' and 'openssl enc >/dev/null' >> with the input file cached yield dramatic (up to 10x) improvement with high >> (up to 128 processes) levels of parallelism. > > That's interesting. Have you tried running the "blogbench" benchmark > before & after? No, I wasn't aware that it existed. Given that this change applies only to parallel operations *on the same vnode* and blogbench seems to have traffic randomly spread between many files, I doubt there would be any difference. -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 21:06:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 96084CEE; Thu, 15 Aug 2013 21:06:39 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 73B4529CC; Thu, 15 Aug 2013 21:06:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FL6d5M014276; Thu, 15 Aug 2013 21:06:39 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FL6c2x014271; Thu, 15 Aug 2013 21:06:38 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201308152106.r7FL6c2x014271@svn.freebsd.org> From: Jack F Vogel Date: Thu, 15 Aug 2013 21:06:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254383 - in stable/9/sys/dev: e1000 ixgbe X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 21:06:39 -0000 Author: jfv Date: Thu Aug 15 21:06:38 2013 New Revision: 254383 URL: http://svnweb.freebsd.org/changeset/base/254383 Log: MFC r254262 Further improve the msix setup, make sure pci_alloc_msix() gives us the vectors we requested, and fall back to MSI when not, also release any allocated resources before the fallback. Modified: stable/9/sys/dev/e1000/if_em.c stable/9/sys/dev/e1000/if_igb.c stable/9/sys/dev/ixgbe/ixgbe.c stable/9/sys/dev/ixgbe/ixv.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/dev/e1000/ (props changed) stable/9/sys/dev/ixgbe/ (props changed) Modified: stable/9/sys/dev/e1000/if_em.c ============================================================================== --- stable/9/sys/dev/e1000/if_em.c Thu Aug 15 20:33:17 2013 (r254382) +++ stable/9/sys/dev/e1000/if_em.c Thu Aug 15 21:06:38 2013 (r254383) @@ -2277,7 +2277,7 @@ em_local_timer(void *arg) /* Mask to use in the irq trigger */ if (adapter->msix_mem) - trigger = rxr->ims; /* RX for 82574 */ + trigger = rxr->ims; else trigger = E1000_ICS_RXDMT0; @@ -2767,23 +2767,30 @@ em_setup_msix(struct adapter *adapter) if (val >= 3) val = 3; else { - bus_release_resource(dev, SYS_RES_MEMORY, - PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem); - adapter->msix_mem = NULL; device_printf(adapter->dev, - "MSIX: incorrect vectors, using MSI\n"); + "MSIX: insufficient vectors, using MSI\n"); goto msi; } - if (pci_alloc_msix(dev, &val) == 0) { + if ((pci_alloc_msix(dev, &val) == 0) && (val == 3)) { device_printf(adapter->dev, "Using MSIX interrupts " "with %d vectors\n", val); return (val); } - /* Fall through to MSI */ + + /* + ** If MSIX alloc failed or provided us with + ** less than needed, free and fall through to MSI + */ + pci_release_msi(dev); } msi: + if (adapter->msix_mem != NULL) { + bus_release_resource(dev, SYS_RES_MEMORY, + PCIR_BAR(EM_MSIX_BAR), adapter->msix_mem); + adapter->msix_mem = NULL; + } val = 1; if (pci_alloc_msi(dev, &val) == 0) { device_printf(adapter->dev,"Using an MSI interrupt\n"); Modified: stable/9/sys/dev/e1000/if_igb.c ============================================================================== --- stable/9/sys/dev/e1000/if_igb.c Thu Aug 15 20:33:17 2013 (r254382) +++ stable/9/sys/dev/e1000/if_igb.c Thu Aug 15 21:06:38 2013 (r254383) @@ -2891,13 +2891,18 @@ igb_setup_msix(struct adapter *adapter) msgs, want); goto msi; } - if (pci_alloc_msix(dev, &msgs) == 0) { + if ((pci_alloc_msix(dev, &msgs) == 0) && (msgs == want)) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); adapter->num_queues = queues; return (msgs); } - /* Fallback to MSI configuration */ + /* + ** If MSIX alloc failed or provided us with + ** less than needed, free and fall through to MSI + */ + pci_release_msi(dev); + msi: if (adapter->msix_mem != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, @@ -2906,10 +2911,10 @@ msi: } msgs = 1; if (pci_alloc_msi(dev, &msgs) == 0) { - device_printf(adapter->dev," Using MSI interrupt\n"); + device_printf(adapter->dev," Using an MSI interrupt\n"); return (msgs); } - /* Default to a legacy interrupt */ + device_printf(adapter->dev," Using a Legacy interrupt\n"); return (0); } Modified: stable/9/sys/dev/ixgbe/ixgbe.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixgbe.c Thu Aug 15 20:33:17 2013 (r254382) +++ stable/9/sys/dev/ixgbe/ixgbe.c Thu Aug 15 21:06:38 2013 (r254383) @@ -2456,12 +2456,18 @@ ixgbe_setup_msix(struct adapter *adapter msgs, want); goto msi; } - if (pci_alloc_msix(dev, &msgs) == 0) { + if ((pci_alloc_msix(dev, &msgs) == 0) && (msgs == want)) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); adapter->num_queues = queues; return (msgs); } + /* + ** If MSIX alloc failed or provided us with + ** less than needed, free and fall through to MSI + */ + pci_release_msi(dev); + msi: if (adapter->msix_mem != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, Modified: stable/9/sys/dev/ixgbe/ixv.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixv.c Thu Aug 15 20:33:17 2013 (r254382) +++ stable/9/sys/dev/ixgbe/ixv.c Thu Aug 15 21:06:38 2013 (r254383) @@ -1698,11 +1698,13 @@ ixv_setup_msix(struct adapter *adapter) ** plus an additional for mailbox. */ want = 2; - if (pci_alloc_msix(dev, &want) == 0) { + if ((pci_alloc_msix(dev, &want) == 0) && (want == 2)) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", want); return (want); } + /* Release in case alloc was insufficient */ + pci_release_msi(dev); out: if (adapter->msix_mem != NULL) { bus_release_resource(dev, SYS_RES_MEMORY, From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 21:09:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 60793E4E; Thu, 15 Aug 2013 21:09:06 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4D60929E6; Thu, 15 Aug 2013 21:09:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FL96bC014846; Thu, 15 Aug 2013 21:09:06 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FL95Ik014843; Thu, 15 Aug 2013 21:09:05 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201308152109.r7FL95Ik014843@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 15 Aug 2013 21:09:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254384 - head/sys/i386/i386 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 21:09:06 -0000 Author: jkim Date: Thu Aug 15 21:09:05 2013 New Revision: 254384 URL: http://svnweb.freebsd.org/changeset/base/254384 Log: Simplify check for CMPXCHG8B instruction. Note CMPXCHG8B instruction is always available for Rise mP6 processors although it is not set by CPUID. Modified: head/sys/i386/i386/initcpu.c head/sys/i386/i386/machdep.c Modified: head/sys/i386/i386/initcpu.c ============================================================================== --- head/sys/i386/i386/initcpu.c Thu Aug 15 21:06:38 2013 (r254383) +++ head/sys/i386/i386/initcpu.c Thu Aug 15 21:09:05 2013 (r254384) @@ -424,6 +424,19 @@ init_6x86(void) #ifdef I586_CPU /* + * Rise mP6 + */ +static void +init_rise(void) +{ + + /* + * The CMPXCHG8B instruction is always available but hidden. + */ + cpu_feature |= CPUID_CX8; +} + +/* * IDT WinChip C6/2/2A/2B/3 * * http://www.centtech.com/winchip_bios_writers_guide_v4_0.pdf @@ -690,6 +703,9 @@ initializecpu(void) case CPU_VENDOR_TRANSMETA: init_transmeta(); break; + case CPU_VENDOR_RISE: + init_rise(); + break; } break; #endif Modified: head/sys/i386/i386/machdep.c ============================================================================== --- head/sys/i386/i386/machdep.c Thu Aug 15 21:06:38 2013 (r254383) +++ head/sys/i386/i386/machdep.c Thu Aug 15 21:09:05 2013 (r254384) @@ -1557,8 +1557,7 @@ static void cpu_probe_cmpxchg8b(void) { - if ((cpu_feature & CPUID_CX8) != 0 || - cpu_vendor_id == CPU_VENDOR_RISE) { + if ((cpu_feature & CPUID_CX8) != 0) { atomic_load_acq_64 = atomic_load_acq_64_i586; atomic_store_rel_64 = atomic_store_rel_64_i586; } From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 21:24:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 64ADD385; Thu, 15 Aug 2013 21:24:44 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 518B72AC5; Thu, 15 Aug 2013 21:24:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FLOih6021560; Thu, 15 Aug 2013 21:24:44 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FLOiQs021559; Thu, 15 Aug 2013 21:24:44 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201308152124.r7FLOiQs021559@svn.freebsd.org> From: Jack F Vogel Date: Thu, 15 Aug 2013 21:24:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254385 - stable/9/sys/dev/e1000 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 21:24:44 -0000 Author: jfv Date: Thu Aug 15 21:24:43 2013 New Revision: 254385 URL: http://svnweb.freebsd.org/changeset/base/254385 Log: MFC r254264 Make the igb_mq_start() routine use TRYLOCK rather than simple queuing, there were latency and other problems with the latter. Modified: stable/9/sys/dev/e1000/if_igb.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) stable/9/sys/dev/e1000/ (props changed) Modified: stable/9/sys/dev/e1000/if_igb.c ============================================================================== --- stable/9/sys/dev/e1000/if_igb.c Thu Aug 15 21:09:05 2013 (r254384) +++ stable/9/sys/dev/e1000/if_igb.c Thu Aug 15 21:24:43 2013 (r254385) @@ -972,7 +972,13 @@ igb_mq_start(struct ifnet *ifp, struct m que = &adapter->queues[i]; err = drbr_enqueue(ifp, txr->br, m); - taskqueue_enqueue(que->tq, &txr->txq_task); + if (err) + return (err); + if (IGB_TX_TRYLOCK(txr)) { + err = igb_mq_start_locked(ifp, txr); + IGB_TX_UNLOCK(txr); + } else + taskqueue_enqueue(que->tq, &txr->txq_task); return (err); } From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 21:35:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1C9F26E3; Thu, 15 Aug 2013 21:35:31 +0000 (UTC) (envelope-from ivoras@gmail.com) Received: from mail-vb0-x232.google.com (mail-vb0-x232.google.com [IPv6:2607:f8b0:400c:c02::232]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 92AA32B32; Thu, 15 Aug 2013 21:35:30 +0000 (UTC) Received: by mail-vb0-f50.google.com with SMTP id x14so1093683vbb.9 for ; Thu, 15 Aug 2013 14:35:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=85ng4UucbrYoflogl3fXgkSCcUqDmXMYqr5uOKssY5I=; b=rTSfA2IPHfIVkXEUc/OsxrVo6eoi9F+3itIlVZBBgNu+3yoj5NyVrIydne6k6nNWfO A6iD2mw9zs5OBfmOHz5lIjfipCcXUp93Ju/0LlGhm7Jy9IShjIDA8m1ZslhcBiKGuFs+ gWynpsfRF0RkhkAZkIrd8YbJlFaxg62iMpuivnvXeeKrwgLCOcOpu+/rrlv1cx9EKDxP oBM26qKSgxWh9le1tGb2O11Gc/Wyyu0hUNnB6b0y5t7CLHGlrX+aGDEvItvsHuTRUoxV cwSzllyaQDflKAZT24p1hVfqhwn6eeLMAtf7PEYJu2lCLV833TMJkST9hgDOZRymAfZT OssQ== X-Received: by 10.58.106.82 with SMTP id gs18mr14829541veb.18.1376602529213; Thu, 15 Aug 2013 14:35:29 -0700 (PDT) MIME-Version: 1.0 Sender: ivoras@gmail.com Received: by 10.58.229.167 with HTTP; Thu, 15 Aug 2013 14:34:49 -0700 (PDT) In-Reply-To: <520D3AD8.4090207@freebsd.org> References: <201308152019.r7FKJI0H095440@svn.freebsd.org> <520D3AD8.4090207@freebsd.org> From: Ivan Voras Date: Thu, 15 Aug 2013 23:34:49 +0200 X-Google-Sender-Auth: EsQcFbJbQNab15Ezxf0OfazzodU Message-ID: Subject: Re: svn commit: r254380 - in head/sys: kern sys To: Colin Percival Content-Type: text/plain; charset=UTF-8 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 21:35:31 -0000 On 15 August 2013 22:32, Colin Percival wrote: > No, I wasn't aware that it existed. Given that this change applies only to > parallel operations *on the same vnode* and blogbench seems to have traffic > randomly spread between many files, I doubt there would be any difference. Maybe it could help a bit on the directories? Whatever the problem may be (does FreeBSD still have single-writer + multiple readers lock for processes accessing the same vnode?), there is a huge difference in performance with blogbench between FreeBSD and Linux. From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 21:39:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 00FE8A62 for ; Thu, 15 Aug 2013 21:39:48 +0000 (UTC) (envelope-from bounces+73574-8822-svn-src-all=freebsd.org@sendgrid.me) Received: from o3.shared.sendgrid.net (o3.shared.sendgrid.net [208.117.48.85]) by mx1.freebsd.org (Postfix) with SMTP id 7E71E2B6A for ; Thu, 15 Aug 2013 21:39:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=from :mime-version:to:cc:subject:references:in-reply-to:content-type :content-transfer-encoding; s=smtpapi; bh=keEAWpDO7Ukl9Hx32n0GoR l0IQs=; b=kCs+vD64pOVQThSemgw/iEyvVlx6tTMBVZbDGtWsGYDUaRfEaT29Oj ARZ8tgpbppI6dAMO8orCNtLrB/yhggBfglU3azHQXzKBnVpSa9EMXiN+IIOp5QCu EFLciMfUbf2f2g/u7LWsu8Le4hP4bBpieUnboU1ltOEhY7f+2UDYM= Received: by 10.42.83.92 with SMTP id filter-178.27190.520D4AA28 Thu, 15 Aug 2013 21:39:46 +0000 (GMT) Received: from mail.tarsnap.com (unknown [10.60.208.13]) by mi15 (SG) with ESMTP id 14083eb8ba2.7ad6.9989e4 for ; Thu, 15 Aug 2013 21:39:46 +0000 (UTC) Received: (qmail 34089 invoked from network); 15 Aug 2013 21:39:45 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 15 Aug 2013 21:39:45 -0000 Received: (qmail 52803 invoked from network); 15 Aug 2013 21:36:43 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 15 Aug 2013 21:36:43 -0000 Message-ID: <520D49EB.9060308@freebsd.org> Date: Thu, 15 Aug 2013 14:36:43 -0700 From: Colin Percival User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:17.0) Gecko/20130722 Thunderbird/17.0.7 MIME-Version: 1.0 To: Ivan Voras Subject: Re: svn commit: r254380 - in head/sys: kern sys References: <201308152019.r7FKJI0H095440@svn.freebsd.org> <520D3AD8.4090207@freebsd.org> In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SG-EID: A6W2xSVPHetogaU8rnzccWwgBYtN+QvIzXyjfe/10PFt7odERcTzFE6iBL5iSTO1EUAyycTNRxH4F28Dhkv0D9BKwg5sFV2cDA34IDrtChDG10ZDpmvq8CaVcoojEGDSRdl9nJr+fLZ0irp9k81/gA== Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 21:39:49 -0000 On 08/15/13 14:34, Ivan Voras wrote: > On 15 August 2013 22:32, Colin Percival wrote: >> No, I wasn't aware that it existed. Given that this change applies only to >> parallel operations *on the same vnode* and blogbench seems to have traffic >> randomly spread between many files, I doubt there would be any difference. > > Maybe it could help a bit on the directories? > > Whatever the problem may be (does FreeBSD still have single-writer + > multiple readers lock for processes accessing the same vnode?), there > is a huge difference in performance with blogbench between FreeBSD and > Linux. We have a single-writer / multiple-readers lock on *any particular byte* of a vnode. The rangelock code is what keeps track of this, and the locking contention I was reducing was in the rangelock bookkeeping. -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 22:29:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 37A062A3; Thu, 15 Aug 2013 22:29:50 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 231AA2D83; Thu, 15 Aug 2013 22:29:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FMToPl044889; Thu, 15 Aug 2013 22:29:50 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FMTnNL044888; Thu, 15 Aug 2013 22:29:49 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201308152229.r7FMTnNL044888@svn.freebsd.org> From: Jeff Roberson Date: Thu, 15 Aug 2013 22:29:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254387 - head/sys/vm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 22:29:50 -0000 Author: jeff Date: Thu Aug 15 22:29:49 2013 New Revision: 254387 URL: http://svnweb.freebsd.org/changeset/base/254387 Log: - Fix bug in r254304. Use the ACTIVE pq count for the active list processing, not inactive. This was the result of a bad merge. Reported by: pho Sponsored by: EMC / Isilon Storage Division Modified: head/sys/vm/vm_pageout.c Modified: head/sys/vm/vm_pageout.c ============================================================================== --- head/sys/vm/vm_pageout.c Thu Aug 15 21:48:29 2013 (r254386) +++ head/sys/vm/vm_pageout.c Thu Aug 15 22:29:49 2013 (r254387) @@ -1286,6 +1286,8 @@ relock_queues: * Compute the number of pages we want to try to move from the * active queue to the inactive queue. */ + pq = &vmd->vmd_pagequeues[PQ_ACTIVE]; + vm_pagequeue_lock(pq); pcount = pq->pq_cnt; page_shortage = vm_paging_target() + cnt.v_inactive_target - cnt.v_inactive_count; @@ -1304,8 +1306,6 @@ relock_queues: * track the per-page activity counter and use it to locate * deactivation candidates. */ - pq = &vmd->vmd_pagequeues[PQ_ACTIVE]; - vm_pagequeue_lock(pq); m = TAILQ_FIRST(&pq->pq_pl); while ((m != NULL) && (pcount-- > 0) && (page_shortage > 0)) { From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 22:33:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 32C6740F; Thu, 15 Aug 2013 22:33:28 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1F5772DC9; Thu, 15 Aug 2013 22:33:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FMXRM5047571; Thu, 15 Aug 2013 22:33:27 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FMXRYD047569; Thu, 15 Aug 2013 22:33:27 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201308152233.r7FMXRYD047569@svn.freebsd.org> From: Jilles Tjoelker Date: Thu, 15 Aug 2013 22:33:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254388 - head/lib/libc/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 22:33:28 -0000 Author: jilles Date: Thu Aug 15 22:33:27 2013 New Revision: 254388 URL: http://svnweb.freebsd.org/changeset/base/254388 Log: sigsuspend(2): Add xrefs to pselect(2) and sigwait-alikes. Modified: head/lib/libc/sys/sigsuspend.2 Modified: head/lib/libc/sys/sigsuspend.2 ============================================================================== --- head/lib/libc/sys/sigsuspend.2 Thu Aug 15 22:29:49 2013 (r254387) +++ head/lib/libc/sys/sigsuspend.2 Thu Aug 15 22:33:27 2013 (r254388) @@ -28,7 +28,7 @@ .\" @(#)sigsuspend.2 8.2 (Berkeley) 5/16/95 .\" $FreeBSD$ .\" -.Dd May 16, 1995 +.Dd August 16, 2013 .Dt SIGSUSPEND 2 .Os .Sh NAME @@ -70,9 +70,13 @@ always terminates by being interrupted, set to .Er EINTR . .Sh SEE ALSO +.Xr pselect 2 , .Xr sigaction 2 , .Xr sigpending 2 , .Xr sigprocmask 2 , +.Xr sigtimedwait 2 , +.Xr sigwait 2 , +.Xr sigwaitinfo 2 , .Xr sigsetops 3 .Sh STANDARDS The From owner-svn-src-all@FreeBSD.ORG Thu Aug 15 22:52:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5F3917D9; Thu, 15 Aug 2013 22:52:41 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3B1242E98; Thu, 15 Aug 2013 22:52:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7FMqfNj054715; Thu, 15 Aug 2013 22:52:41 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7FMqeTf054707; Thu, 15 Aug 2013 22:52:40 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201308152252.r7FMqeTf054707@svn.freebsd.org> From: "Kenneth D. Merry" Date: Thu, 15 Aug 2013 22:52:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254389 - in head/sys: dev/nvme geom kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Aug 2013 22:52:41 -0000 Author: ken Date: Thu Aug 15 22:52:39 2013 New Revision: 254389 URL: http://svnweb.freebsd.org/changeset/base/254389 Log: Change the way that unmapped I/O capability is advertised. The previous method was to set the D_UNMAPPED_IO flag in the cdevsw for the driver. The problem with this is that in many cases (e.g. sa(4)) there may be some instances of the driver that can handle unmapped I/O and some that can't. The isp(4) driver can handle unmapped I/O, but the esp(4) driver currently cannot. The cdevsw is shared among all driver instances. So instead of setting a flag on the cdevsw, set a flag on the cdev. This allows drivers to indicate support for unmapped I/O on a per-instance basis. sys/conf.h: Remove the D_UNMAPPED_IO cdevsw flag and replace it with an SI_UNMAPPED cdev flag. kern_physio.c: Look at the cdev SI_UNMAPPED flag to determine whether or not a particular driver can handle unmapped I/O. geom_dev.c: Set the SI_UNMAPPED flag for all GEOM cdevs. Since GEOM will create a temporary mapping when needed, setting SI_UNMAPPED unconditionally will work. Remove the D_UNMAPPED_IO flag. nvme_ns.c: Set the SI_UNMAPPED flag on cdevs created here if NVME_UNMAPPED_BIO_SUPPORT is enabled. vfs_aio.c: In aio_qphysio(), check the SI_UNMAPPED flag on a cdev instead of the D_UNMAPPED_IO flag on the cdevsw. sys/param.h: Bump __FreeBSD_version to 1000045 for the switch from setting the D_UNMAPPED_IO flag in the cdevsw to setting SI_UNMAPPED in the cdev. Reviewed by: kib, jimharris MFC after: 1 week Sponsored by: Spectra Logic Modified: head/sys/dev/nvme/nvme_ns.c head/sys/geom/geom_dev.c head/sys/kern/kern_physio.c head/sys/kern/vfs_aio.c head/sys/sys/conf.h head/sys/sys/param.h Modified: head/sys/dev/nvme/nvme_ns.c ============================================================================== --- head/sys/dev/nvme/nvme_ns.c Thu Aug 15 22:33:27 2013 (r254388) +++ head/sys/dev/nvme/nvme_ns.c Thu Aug 15 22:52:39 2013 (r254389) @@ -133,11 +133,7 @@ nvme_ns_strategy(struct bio *bp) static struct cdevsw nvme_ns_cdevsw = { .d_version = D_VERSION, -#ifdef NVME_UNMAPPED_BIO_SUPPORT - .d_flags = D_DISK | D_UNMAPPED_IO, -#else .d_flags = D_DISK, -#endif .d_read = physread, .d_write = physwrite, .d_open = nvme_ns_open, @@ -348,6 +344,9 @@ nvme_ns_construct(struct nvme_namespace NULL, UID_ROOT, GID_WHEEL, 0600, "nvme%dns%d", device_get_unit(ctrlr->dev), ns->id); #endif +#ifdef NVME_UNMAPPED_BIO_SUPPORT + ns->cdev->si_flags |= SI_UNMAPPED; +#endif if (ns->cdev != NULL) ns->cdev->si_drv1 = ns; Modified: head/sys/geom/geom_dev.c ============================================================================== --- head/sys/geom/geom_dev.c Thu Aug 15 22:33:27 2013 (r254388) +++ head/sys/geom/geom_dev.c Thu Aug 15 22:52:39 2013 (r254389) @@ -79,7 +79,7 @@ static struct cdevsw g_dev_cdevsw = { .d_ioctl = g_dev_ioctl, .d_strategy = g_dev_strategy, .d_name = "g_dev", - .d_flags = D_DISK | D_TRACKCLOSE | D_UNMAPPED_IO, + .d_flags = D_DISK | D_TRACKCLOSE, }; static g_taste_t g_dev_taste; @@ -237,6 +237,7 @@ g_dev_taste(struct g_class *mp, struct g g_free(sc); return (NULL); } + dev->si_flags |= SI_UNMAPPED; sc->sc_dev = dev; /* Search for device alias name and create it if found. */ @@ -251,6 +252,7 @@ g_dev_taste(struct g_class *mp, struct g freeenv(val); make_dev_alias_p(MAKEDEV_CHECKNAME | MAKEDEV_WAITOK, &adev, dev, "%s", buf); + adev->si_flags |= SI_UNMAPPED; break; } } Modified: head/sys/kern/kern_physio.c ============================================================================== --- head/sys/kern/kern_physio.c Thu Aug 15 22:33:27 2013 (r254388) +++ head/sys/kern/kern_physio.c Thu Aug 15 22:52:39 2013 (r254389) @@ -93,8 +93,7 @@ physio(struct cdev *dev, struct uio *uio csw = dev->si_devsw; if (uio->uio_segflg == UIO_USERSPACE) { - if (csw != NULL && - (csw->d_flags & D_UNMAPPED_IO) != 0) + if (dev->si_flags & SI_UNMAPPED) mapped = 0; else mapped = 1; Modified: head/sys/kern/vfs_aio.c ============================================================================== --- head/sys/kern/vfs_aio.c Thu Aug 15 22:33:27 2013 (r254388) +++ head/sys/kern/vfs_aio.c Thu Aug 15 22:52:39 2013 (r254389) @@ -1375,7 +1375,7 @@ aio_qphysio(struct proc *p, struct aiocb /* * Bring buffer into kernel space. */ - if (vmapbuf(bp, (csw->d_flags & D_UNMAPPED_IO) == 0) < 0) { + if (vmapbuf(bp, (dev->si_flags & SI_UNMAPPED) == 0) < 0) { error = EFAULT; goto doerror; } Modified: head/sys/sys/conf.h ============================================================================== --- head/sys/sys/conf.h Thu Aug 15 22:33:27 2013 (r254388) +++ head/sys/sys/conf.h Thu Aug 15 22:52:39 2013 (r254389) @@ -61,6 +61,7 @@ struct cdev { #define SI_CHILD 0x0010 /* child of another struct cdev **/ #define SI_DUMPDEV 0x0080 /* is kernel dumpdev */ #define SI_CLONELIST 0x0200 /* on a clone list */ +#define SI_UNMAPPED 0x0400 /* can handle unmapped I/O */ struct timespec si_atime; struct timespec si_ctime; struct timespec si_mtime; @@ -167,7 +168,6 @@ typedef int dumper_t( #define D_MMAP_ANON 0x00100000 /* special treatment in vm_mmap.c */ #define D_NEEDGIANT 0x00400000 /* driver want Giant */ #define D_NEEDMINOR 0x00800000 /* driver uses clone_create() */ -#define D_UNMAPPED_IO 0x01000000 /* d_strategy can accept unmapped IO */ /* * Version numbers. Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Thu Aug 15 22:33:27 2013 (r254388) +++ head/sys/sys/param.h Thu Aug 15 22:52:39 2013 (r254389) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1000044 /* Master, propagated to newvers */ +#define __FreeBSD_version 1000045 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 00:35:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6EAFB881; Fri, 16 Aug 2013 00:35:21 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5C56A22EA; Fri, 16 Aug 2013 00:35:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G0ZLX3093031; Fri, 16 Aug 2013 00:35:21 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G0ZL63093030; Fri, 16 Aug 2013 00:35:21 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201308160035.r7G0ZL63093030@svn.freebsd.org> From: Peter Grehan Date: Fri, 16 Aug 2013 00:35:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254395 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 00:35:21 -0000 Author: grehan Date: Fri Aug 16 00:35:20 2013 New Revision: 254395 URL: http://svnweb.freebsd.org/changeset/base/254395 Log: Fix ordering of legacy IRQ reservations. Submitted by: Jeremiah Lott jlott at averesystems dot com Modified: head/usr.sbin/bhyve/pci_emul.c Modified: head/usr.sbin/bhyve/pci_emul.c ============================================================================== --- head/usr.sbin/bhyve/pci_emul.c Fri Aug 16 00:24:34 2013 (r254394) +++ head/usr.sbin/bhyve/pci_emul.c Fri Aug 16 00:35:20 2013 (r254395) @@ -1008,6 +1008,16 @@ init_pci(struct vmctx *ctx) pci_emul_membase32 = vm_get_lowmem_limit(ctx); pci_emul_membase64 = PCI_EMUL_MEMBASE64; + /* + * Allow ISA IRQs 5,10,11,12, and 15 to be available for + * generic use + */ + lirq[5].li_generic = 1; + lirq[10].li_generic = 1; + lirq[11].li_generic = 1; + lirq[12].li_generic = 1; + lirq[15].li_generic = 1; + for (slot = 0; slot < MAXSLOTS; slot++) { for (func = 0; func < MAXFUNCS; func++) { si = &pci_slotinfo[slot][func]; @@ -1023,16 +1033,6 @@ init_pci(struct vmctx *ctx) } /* - * Allow ISA IRQs 5,10,11,12, and 15 to be available for - * generic use - */ - lirq[5].li_generic = 1; - lirq[10].li_generic = 1; - lirq[11].li_generic = 1; - lirq[12].li_generic = 1; - lirq[15].li_generic = 1; - - /* * The guest physical memory map looks like the following: * [0, lowmem) guest system memory * [lowmem, lowmem_limit) memory hole (may be absent) From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 03:41:42 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 530A0832; Fri, 16 Aug 2013 03:41:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 40E6B2C17; Fri, 16 Aug 2013 03:41:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G3fgnq065234; Fri, 16 Aug 2013 03:41:42 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G3fgH3065233; Fri, 16 Aug 2013 03:41:42 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201308160341.r7G3fgH3065233@svn.freebsd.org> From: Mark Johnston Date: Fri, 16 Aug 2013 03:41:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254396 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 03:41:42 -0000 Author: markj Date: Fri Aug 16 03:41:41 2013 New Revision: 254396 URL: http://svnweb.freebsd.org/changeset/base/254396 Log: Use strdup(9) instead of reimplementing it. Modified: head/sys/kern/kern_linker.c Modified: head/sys/kern/kern_linker.c ============================================================================== --- head/sys/kern/kern_linker.c Fri Aug 16 00:35:20 2013 (r254395) +++ head/sys/kern/kern_linker.c Fri Aug 16 03:41:41 2013 (r254396) @@ -153,16 +153,6 @@ static int linker_load_module(const char struct mod_depend *verinfo, struct linker_file **lfpp); static modlist_t modlist_lookup2(const char *name, struct mod_depend *verinfo); -static char * -linker_strdup(const char *str) -{ - char *result; - - if ((result = malloc((strlen(str) + 1), M_LINKER, M_WAITOK)) != NULL) - strcpy(result, str); - return (result); -} - static void linker_init(void *arg) { @@ -577,8 +567,8 @@ linker_make_file(const char *pathname, l lf->refs = 1; lf->userrefs = 0; lf->flags = 0; - lf->filename = linker_strdup(filename); - lf->pathname = linker_strdup(pathname); + lf->filename = strdup(filename, M_LINKER); + lf->pathname = strdup(pathname, M_LINKER); LINKER_GET_NEXT_FILE_ID(lf->id); lf->ndeps = 0; lf->deps = NULL; @@ -1918,7 +1908,7 @@ linker_search_kld(const char *name) /* qualified at all? */ if (strchr(name, '/')) - return (linker_strdup(name)); + return (strdup(name, M_LINKER)); /* traverse the linker path */ len = strlen(name); @@ -2011,7 +2001,7 @@ linker_load_module(const char *kldname, if (modlist_lookup2(modname, verinfo) != NULL) return (EEXIST); if (kldname != NULL) - pathname = linker_strdup(kldname); + pathname = strdup(kldname, M_LINKER); else if (rootvnode == NULL) pathname = NULL; else From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 05:30:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9229B94; Fri, 16 Aug 2013 05:30:14 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 667292FBE; Fri, 16 Aug 2013 05:30:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G5UE9d004660; Fri, 16 Aug 2013 05:30:14 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G5UEcB004658; Fri, 16 Aug 2013 05:30:14 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201308160530.r7G5UEcB004658@svn.freebsd.org> From: Glen Barber Date: Fri, 16 Aug 2013 05:30:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254397 - head/usr.sbin/makefs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 05:30:14 -0000 Author: gjb Date: Fri Aug 16 05:30:13 2013 New Revision: 254397 URL: http://svnweb.freebsd.org/changeset/base/254397 Log: Mark the makefs(8) '-p' flag as deprecated in preference for the '-Z' flag for compatibility with NetBSD. Submitted by: Eric van Gyzen (via stable@) MFC after: 3 days Modified: head/usr.sbin/makefs/makefs.8 head/usr.sbin/makefs/makefs.c Modified: head/usr.sbin/makefs/makefs.8 ============================================================================== --- head/usr.sbin/makefs/makefs.8 Fri Aug 16 03:41:41 2013 (r254396) +++ head/usr.sbin/makefs/makefs.8 Fri Aug 16 05:30:13 2013 (r254397) @@ -35,7 +35,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 22, 2012 +.Dd August 16, 2013 .Dt MAKEFS 8 .Os .Sh NAME @@ -43,7 +43,7 @@ .Nd create a file system image from a directory tree or a mtree manifest .Sh SYNOPSIS .Nm -.Op Fl Dpx +.Op Fl DxZ .Op Fl B Ar byte-order .Op Fl b Ar free-blocks .Op Fl d Ar debug-mask @@ -191,7 +191,10 @@ Set file system specific options. is a comma separated list of options. Valid file system specific options are detailed below. .It Fl p -Create the image as a sparse file. +Deprecated. +See the +.Fl Z +flag. .It Fl S Ar sector-size Set the file system sector size to .Ar sector-size . @@ -213,6 +216,8 @@ ISO 9660 file system. .El .It Fl x Exclude file system nodes not explicitly listed in the specfile. +.It Fl Z +Create the image as a sparse file. .El .Pp Where sizes are specified, a decimal number of bytes is expected. Modified: head/usr.sbin/makefs/makefs.c ============================================================================== --- head/usr.sbin/makefs/makefs.c Fri Aug 16 03:41:41 2013 (r254396) +++ head/usr.sbin/makefs/makefs.c Fri Aug 16 05:30:13 2013 (r254397) @@ -113,7 +113,7 @@ main(int argc, char *argv[]) start_time.tv_sec = start.tv_sec; start_time.tv_nsec = start.tv_usec * 1000; - while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:ps:S:t:x")) != -1) { + while ((ch = getopt(argc, argv, "B:b:Dd:f:F:M:m:N:o:ps:S:t:xZ")) != -1) { switch (ch) { case 'B': @@ -205,6 +205,7 @@ main(int argc, char *argv[]) break; } case 'p': + /* Deprecated in favor of 'Z' */ fsoptions.sparse = 1; break; @@ -233,6 +234,11 @@ main(int argc, char *argv[]) fsoptions.onlyspec = 1; break; + case 'Z': + /* Superscedes 'p' for compatibility with NetBSD makefs(8) */ + fsoptions.sparse = 1; + break; + case '?': default: usage(); @@ -354,7 +360,7 @@ usage(void) fprintf(stderr, "usage: %s [-t fs-type] [-o fs-options] [-d debug-mask] [-B endian]\n" "\t[-S sector-size] [-M minimum-size] [-m maximum-size] [-s image-size]\n" -"\t[-b free-blocks] [-f free-files] [-F mtree-specfile] [-px]\n" +"\t[-b free-blocks] [-f free-files] [-F mtree-specfile] [-xZ]\n" "\t[-N userdb-dir] image-file directory | manifest [extra-directory ...]\n", prog); exit(1); From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 06:40:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1301CB1A; Fri, 16 Aug 2013 06:40:18 +0000 (UTC) (envelope-from davidxu@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E351022E6; Fri, 16 Aug 2013 06:40:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G6eHLv030933; Fri, 16 Aug 2013 06:40:17 GMT (envelope-from davidxu@svn.freebsd.org) Received: (from davidxu@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G6eD6p030905; Fri, 16 Aug 2013 06:40:13 GMT (envelope-from davidxu@svn.freebsd.org) Message-Id: <201308160640.r7G6eD6p030905@svn.freebsd.org> From: David Xu Date: Fri, 16 Aug 2013 06:40:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254398 - in stable/9: include lib/libc/gen lib/libc/sys lib/libthr/thread sys/compat/freebsd32 sys/kern sys/sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 06:40:18 -0000 Author: davidxu Date: Fri Aug 16 06:40:12 2013 New Revision: 254398 URL: http://svnweb.freebsd.org/changeset/base/254398 Log: MFC r239347, 240295, 240296 and 253325: r239347 | davidxu | 2012-08-17 10:26:31 +0800 (Fri, 17 Aug 2012) | 7 lines Implement syscall clock_getcpuclockid2, so we can get a clock id for process, thread or others we want to support. Use the syscall to implement POSIX API clock_getcpuclock and pthread_getcpuclockid. PR: 168417 ------------------------------------------------------------------------ r240295 | davidxu | 2012-09-10 13:00:29 +0800 (Mon, 10 Sep 2012) | 2 lines Add missing prototype for clock_getcpuclockid. ------------------------------------------------------------------------ r240296 | davidxu | 2012-09-10 13:09:39 +0800 (Mon, 10 Sep 2012) | 2 lines Process CPU-Time Clocks option is supported, define _POSIX_CPUTIME. ------------------------------------------------------------------------ r253325 | kib | 2013-07-14 03:32:50 +0800 (Sun, 14 Jul 2013) | 6 lines Allow to call clock_gettime() on the clock id for zombie process. Reported by: Petr Salinger PR: threads/180496 Sponsored by: The FreeBSD Foundation Added: stable/9/lib/libc/gen/clock_getcpuclockid.c - copied unchanged from r239347, head/lib/libc/gen/clock_getcpuclockid.c Modified: stable/9/include/time.h stable/9/include/unistd.h stable/9/lib/libc/gen/Makefile.inc stable/9/lib/libc/gen/Symbol.map stable/9/lib/libc/gen/sysconf.c stable/9/lib/libc/sys/Symbol.map stable/9/lib/libthr/thread/thr_getcpuclockid.c stable/9/sys/compat/freebsd32/freebsd32_syscall.h stable/9/sys/compat/freebsd32/freebsd32_syscalls.c stable/9/sys/compat/freebsd32/freebsd32_sysent.c stable/9/sys/compat/freebsd32/freebsd32_systrace_args.c stable/9/sys/compat/freebsd32/syscalls.master stable/9/sys/kern/init_sysent.c stable/9/sys/kern/kern_time.c stable/9/sys/kern/syscalls.c stable/9/sys/kern/syscalls.master stable/9/sys/kern/systrace_args.c stable/9/sys/sys/syscall.h stable/9/sys/sys/syscall.mk stable/9/sys/sys/sysproto.h stable/9/sys/sys/time.h stable/9/sys/sys/unistd.h Directory Properties: stable/9/ (props changed) stable/9/include/ (props changed) stable/9/lib/ (props changed) stable/9/lib/libc/ (props changed) stable/9/lib/libc/sys/ (props changed) stable/9/lib/libthr/ (props changed) stable/9/sys/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/include/time.h ============================================================================== --- stable/9/include/time.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/include/time.h Fri Aug 16 06:40:12 2013 (r254398) @@ -88,6 +88,13 @@ typedef __timer_t timer_t; #include #endif /* __POSIX_VISIBLE >= 199309 */ +#if __POSIX_VISIBLE >= 200112 +#ifndef _PID_T_DECLARED +typedef __pid_t pid_t; +#define _PID_T_DECLARED +#endif +#endif + /* These macros are also in sys/time.h. */ #if !defined(CLOCK_REALTIME) && __POSIX_VISIBLE >= 200112 #define CLOCK_REALTIME 0 @@ -165,6 +172,10 @@ int clock_settime(clockid_t, const struc int nanosleep(const struct timespec *, struct timespec *); #endif /* __POSIX_VISIBLE >= 199309 */ +#if __POSIX_VISIBLE >= 200112 +int clock_getcpuclockid(pid_t, clockid_t *); +#endif + #if __POSIX_VISIBLE >= 199506 char *asctime_r(const struct tm *, char *); char *ctime_r(const time_t *, char *); Modified: stable/9/include/unistd.h ============================================================================== --- stable/9/include/unistd.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/include/unistd.h Fri Aug 16 06:40:12 2013 (r254398) @@ -100,6 +100,7 @@ typedef __useconds_t useconds_t; * returns -1, the functions may be stubbed out. */ #define _POSIX_BARRIERS 200112L +#define _POSIX_CPUTIME 200112L #define _POSIX_READER_WRITER_LOCKS 200112L #define _POSIX_REGEXP 1 #define _POSIX_SHELL 1 Modified: stable/9/lib/libc/gen/Makefile.inc ============================================================================== --- stable/9/lib/libc/gen/Makefile.inc Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/lib/libc/gen/Makefile.inc Fri Aug 16 06:40:12 2013 (r254398) @@ -8,7 +8,7 @@ SRCS+= __getosreldate.c __xuname.c \ _once_stub.c _pthread_stubs.c _rand48.c _spinlock_stub.c \ _thread_init.c \ alarm.c arc4random.c assert.c aux.c basename.c check_utility_compat.c \ - clock.c closedir.c confstr.c \ + clock.c clock_getcpuclockid.c closedir.c confstr.c \ crypt.c ctermid.c daemon.c devname.c dirname.c disklabel.c \ dlfcn.c drand48.c elf_utils.c erand48.c err.c errlst.c errno.c \ exec.c fdevname.c feature_present.c fmtcheck.c fmtmsg.c fnmatch.c \ Modified: stable/9/lib/libc/gen/Symbol.map ============================================================================== --- stable/9/lib/libc/gen/Symbol.map Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/lib/libc/gen/Symbol.map Fri Aug 16 06:40:12 2013 (r254398) @@ -380,6 +380,8 @@ FBSD_1.2 { }; FBSD_1.3 { + clock_getcpuclockid; + dirfd; fdlopen; __FreeBSD_libc_enter_restricted_mode; getcontextx; Copied: stable/9/lib/libc/gen/clock_getcpuclockid.c (from r239347, head/lib/libc/gen/clock_getcpuclockid.c) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/9/lib/libc/gen/clock_getcpuclockid.c Fri Aug 16 06:40:12 2013 (r254398, copy of r239347, head/lib/libc/gen/clock_getcpuclockid.c) @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2012 David Xu . + * 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 DANIEL EISCHEN 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 + +clockid_t +clock_getcpuclockid(pid_t pid, clockid_t *clock_id) +{ + return clock_getcpuclockid2(pid, CPUCLOCK_WHICH_PID, clock_id); +} Modified: stable/9/lib/libc/gen/sysconf.c ============================================================================== --- stable/9/lib/libc/gen/sysconf.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/lib/libc/gen/sysconf.c Fri Aug 16 06:40:12 2013 (r254398) @@ -359,11 +359,7 @@ yesno: return (_POSIX_CLOCK_SELECTION); #endif case _SC_CPUTIME: -#if _POSIX_CPUTIME == 0 -#error "_POSIX_CPUTIME" -#else return (_POSIX_CPUTIME); -#endif #ifdef notdef case _SC_FILE_LOCKING: /* Modified: stable/9/lib/libc/sys/Symbol.map ============================================================================== --- stable/9/lib/libc/sys/Symbol.map Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/lib/libc/sys/Symbol.map Fri Aug 16 06:40:12 2013 (r254398) @@ -379,6 +379,7 @@ FBSD_1.2 { }; FBSD_1.3 { + clock_getcpuclockid2; posix_fadvise; wait6; }; @@ -488,6 +489,8 @@ FBSDprivate_1.0 { __sys_chown; _chroot; __sys_chroot; + _clock_getcpuclockid2; + __sys_clock_getcpuclockid2; _clock_getres; __sys_clock_getres; _clock_gettime; Modified: stable/9/lib/libthr/thread/thr_getcpuclockid.c ============================================================================== --- stable/9/lib/libthr/thread/thr_getcpuclockid.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/lib/libthr/thread/thr_getcpuclockid.c Fri Aug 16 06:40:12 2013 (r254398) @@ -39,9 +39,11 @@ __weak_reference(_pthread_getcpuclockid, int _pthread_getcpuclockid(pthread_t pthread, clockid_t *clock_id) { + if (pthread == NULL) return (EINVAL); - *clock_id = CLOCK_THREAD_CPUTIME_ID; + if (clock_getcpuclockid2(TID(pthread), CPUCLOCK_WHICH_TID, clock_id)) + return (errno); return (0); } Modified: stable/9/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_syscall.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/compat/freebsd32/freebsd32_syscall.h Fri Aug 16 06:40:12 2013 (r254398) @@ -212,6 +212,7 @@ #define FREEBSD32_SYS_freebsd32_ktimer_gettime 238 #define FREEBSD32_SYS_ktimer_getoverrun 239 #define FREEBSD32_SYS_freebsd32_nanosleep 240 +#define FREEBSD32_SYS_clock_getcpuclockid2 247 #define FREEBSD32_SYS_minherit 250 #define FREEBSD32_SYS_rfork 251 #define FREEBSD32_SYS_openbsd_poll 252 Modified: stable/9/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_syscalls.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/compat/freebsd32/freebsd32_syscalls.c Fri Aug 16 06:40:12 2013 (r254398) @@ -257,7 +257,7 @@ const char *freebsd32_syscallnames[] = { "#244", /* 244 = nosys */ "#245", /* 245 = nosys */ "#246", /* 246 = nosys */ - "#247", /* 247 = nosys */ + "clock_getcpuclockid2", /* 247 = clock_getcpuclockid2 */ "#248", /* 248 = ntp_gettime */ "#249", /* 249 = nosys */ "minherit", /* 250 = minherit */ Modified: stable/9/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_sysent.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/compat/freebsd32/freebsd32_sysent.c Fri Aug 16 06:40:12 2013 (r254398) @@ -294,7 +294,7 @@ struct sysent freebsd32_sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 244 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 245 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 246 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 247 = nosys */ + { AS(clock_getcpuclockid2_args), (sy_call_t *)sys_clock_getcpuclockid2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 247 = clock_getcpuclockid2 */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 248 = ntp_gettime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 249 = nosys */ { AS(minherit_args), (sy_call_t *)sys_minherit, AUE_MINHERIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 250 = minherit */ Modified: stable/9/sys/compat/freebsd32/freebsd32_systrace_args.c ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_systrace_args.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/compat/freebsd32/freebsd32_systrace_args.c Fri Aug 16 06:40:12 2013 (r254398) @@ -1244,6 +1244,15 @@ systrace_args(int sysnum, void *params, *n_args = 2; break; } + /* clock_getcpuclockid2 */ + case 247: { + struct clock_getcpuclockid2_args *p = params; + iarg[0] = p->id; /* id_t */ + iarg[1] = p->which; /* int */ + uarg[2] = (intptr_t) p->clock_id; /* clockid_t * */ + *n_args = 3; + break; + } /* minherit */ case 250: { struct minherit_args *p = params; @@ -5104,6 +5113,22 @@ systrace_setargdesc(int sysnum, int ndx, break; }; break; + /* clock_getcpuclockid2 */ + case 247: + switch(ndx) { + case 0: + p = "id_t"; + break; + case 1: + p = "int"; + break; + case 2: + p = "clockid_t *"; + break; + default: + break; + }; + break; /* minherit */ case 250: switch(ndx) { Modified: stable/9/sys/compat/freebsd32/syscalls.master ============================================================================== --- stable/9/sys/compat/freebsd32/syscalls.master Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/compat/freebsd32/syscalls.master Fri Aug 16 06:40:12 2013 (r254398) @@ -461,7 +461,8 @@ 244 AUE_NULL UNIMPL nosys 245 AUE_NULL UNIMPL nosys 246 AUE_NULL UNIMPL nosys -247 AUE_NULL UNIMPL nosys +247 AUE_NULL NOPROTO { int clock_getcpuclockid2(id_t id,\ + int which, clockid_t *clock_id); } 248 AUE_NULL UNIMPL ntp_gettime 249 AUE_NULL UNIMPL nosys ; syscall numbers initially used in OpenBSD Modified: stable/9/sys/kern/init_sysent.c ============================================================================== --- stable/9/sys/kern/init_sysent.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/kern/init_sysent.c Fri Aug 16 06:40:12 2013 (r254398) @@ -281,7 +281,7 @@ struct sysent sysent[] = { { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 244 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 245 = nosys */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 246 = nosys */ - { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 247 = nosys */ + { AS(clock_getcpuclockid2_args), (sy_call_t *)sys_clock_getcpuclockid2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 247 = clock_getcpuclockid2 */ { AS(ntp_gettime_args), (sy_call_t *)sys_ntp_gettime, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 248 = ntp_gettime */ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 249 = nosys */ { AS(minherit_args), (sy_call_t *)sys_minherit, AUE_MINHERIT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 250 = minherit */ Modified: stable/9/sys/kern/kern_time.c ============================================================================== --- stable/9/sys/kern/kern_time.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/kern/kern_time.c Fri Aug 16 06:40:12 2013 (r254398) @@ -58,6 +58,12 @@ __FBSDID("$FreeBSD$"); #include #define MAX_CLOCKS (CLOCK_MONOTONIC+1) +#define CPUCLOCK_BIT 0x80000000 +#define CPUCLOCK_PROCESS_BIT 0x40000000 +#define CPUCLOCK_ID_MASK (~(CPUCLOCK_BIT|CPUCLOCK_PROCESS_BIT)) +#define MAKE_THREAD_CPUCLOCK(tid) (CPUCLOCK_BIT|(tid)) +#define MAKE_PROCESS_CPUCLOCK(pid) \ + (CPUCLOCK_BIT|CPUCLOCK_PROCESS_BIT|(pid)) static struct kclock posix_clocks[MAX_CLOCKS]; static uma_zone_t itimer_zone = NULL; @@ -162,6 +168,52 @@ settime(struct thread *td, struct timeva } #ifndef _SYS_SYSPROTO_H_ +struct clock_getcpuclockid2_args { + id_t id; + int which, + clockid_t *clock_id; +}; +#endif +/* ARGSUSED */ +int +sys_clock_getcpuclockid2(struct thread *td, struct clock_getcpuclockid2_args *uap) +{ + clockid_t clk_id; + struct proc *p; + pid_t pid; + lwpid_t tid; + int error; + + switch(uap->which) { + case CPUCLOCK_WHICH_PID: + if (uap->id != 0) { + p = pfind(uap->id); + if (p == NULL) + return (ESRCH); + error = p_cansee(td, p); + PROC_UNLOCK(p); + if (error) + return (error); + pid = uap->id; + } else { + pid = td->td_proc->p_pid; + } + clk_id = MAKE_PROCESS_CPUCLOCK(pid); + break; + case CPUCLOCK_WHICH_TID: + if (uap->id == 0) + tid = td->td_tid; + else + tid = uap->id; + clk_id = MAKE_THREAD_CPUCLOCK(tid); + break; + default: + return (EINVAL); + } + return (copyout(&clk_id, uap->clock_id, sizeof(clockid_t))); +} + +#ifndef _SYS_SYSPROTO_H_ struct clock_gettime_args { clockid_t clock_id; struct timespec *tp; @@ -181,12 +233,80 @@ sys_clock_gettime(struct thread *td, str return (error); } +static inline void +cputick2timespec(uint64_t runtime, struct timespec *ats) +{ + runtime = cputick2usec(runtime); + ats->tv_sec = runtime / 1000000; + ats->tv_nsec = runtime % 1000000 * 1000; +} + +static void +get_thread_cputime(struct thread *targettd, struct timespec *ats) +{ + uint64_t runtime, curtime, switchtime; + + if (targettd == NULL) { /* current thread */ + critical_enter(); + switchtime = PCPU_GET(switchtime); + curtime = cpu_ticks(); + runtime = curthread->td_runtime; + critical_exit(); + runtime += curtime - switchtime; + } else { + thread_lock(targettd); + runtime = targettd->td_runtime; + thread_unlock(targettd); + } + cputick2timespec(runtime, ats); +} + +static void +get_process_cputime(struct proc *targetp, struct timespec *ats) +{ + uint64_t runtime; + struct rusage ru; + + PROC_SLOCK(targetp); + rufetch(targetp, &ru); + runtime = targetp->p_rux.rux_runtime; + PROC_SUNLOCK(targetp); + cputick2timespec(runtime, ats); +} + +static int +get_cputime(struct thread *td, clockid_t clock_id, struct timespec *ats) +{ + struct proc *p, *p2; + struct thread *td2; + lwpid_t tid; + pid_t pid; + int error; + + p = td->td_proc; + if ((clock_id & CPUCLOCK_PROCESS_BIT) == 0) { + tid = clock_id & CPUCLOCK_ID_MASK; + td2 = tdfind(tid, p->p_pid); + if (td2 == NULL) + return (EINVAL); + get_thread_cputime(td2, ats); + PROC_UNLOCK(td2->td_proc); + } else { + pid = clock_id & CPUCLOCK_ID_MASK; + error = pget(pid, PGET_CANSEE, &p2); + if (error != 0) + return (EINVAL); + get_process_cputime(p2, ats); + PROC_UNLOCK(p2); + } + return (0); +} + int kern_clock_gettime(struct thread *td, clockid_t clock_id, struct timespec *ats) { struct timeval sys, user; struct proc *p; - uint64_t runtime, curtime, switchtime; p = td->td_proc; switch (clock_id) { @@ -229,17 +349,17 @@ kern_clock_gettime(struct thread *td, cl ats->tv_nsec = 0; break; case CLOCK_THREAD_CPUTIME_ID: - critical_enter(); - switchtime = PCPU_GET(switchtime); - curtime = cpu_ticks(); - runtime = td->td_runtime; - critical_exit(); - runtime = cputick2usec(runtime + curtime - switchtime); - ats->tv_sec = runtime / 1000000; - ats->tv_nsec = runtime % 1000000 * 1000; + get_thread_cputime(NULL, ats); + break; + case CLOCK_PROCESS_CPUTIME_ID: + PROC_LOCK(p); + get_process_cputime(p, ats); + PROC_UNLOCK(p); break; default: - return (EINVAL); + if ((int)clock_id >= 0) + return (EINVAL); + return (get_cputime(td, clock_id, ats)); } return (0); } @@ -333,12 +453,16 @@ kern_clock_getres(struct thread *td, clo ts->tv_nsec = 0; break; case CLOCK_THREAD_CPUTIME_ID: + case CLOCK_PROCESS_CPUTIME_ID: + cputime: /* sync with cputick2usec */ ts->tv_nsec = 1000000 / cpu_tickrate(); if (ts->tv_nsec == 0) ts->tv_nsec = 1000; break; default: + if ((int)clock_id < 0) + goto cputime; return (EINVAL); } return (0); Modified: stable/9/sys/kern/syscalls.c ============================================================================== --- stable/9/sys/kern/syscalls.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/kern/syscalls.c Fri Aug 16 06:40:12 2013 (r254398) @@ -254,7 +254,7 @@ const char *syscallnames[] = { "#244", /* 244 = nosys */ "#245", /* 245 = nosys */ "#246", /* 246 = nosys */ - "#247", /* 247 = nosys */ + "clock_getcpuclockid2", /* 247 = clock_getcpuclockid2 */ "ntp_gettime", /* 248 = ntp_gettime */ "#249", /* 249 = nosys */ "minherit", /* 250 = minherit */ Modified: stable/9/sys/kern/syscalls.master ============================================================================== --- stable/9/sys/kern/syscalls.master Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/kern/syscalls.master Fri Aug 16 06:40:12 2013 (r254398) @@ -461,7 +461,8 @@ 244 AUE_NULL UNIMPL nosys 245 AUE_NULL UNIMPL nosys 246 AUE_NULL UNIMPL nosys -247 AUE_NULL UNIMPL nosys +247 AUE_NULL STD { int clock_getcpuclockid2(id_t id,\ + int which, clockid_t *clock_id); } 248 AUE_NULL STD { int ntp_gettime(struct ntptimeval *ntvp); } 249 AUE_NULL UNIMPL nosys ; syscall numbers initially used in OpenBSD Modified: stable/9/sys/kern/systrace_args.c ============================================================================== --- stable/9/sys/kern/systrace_args.c Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/kern/systrace_args.c Fri Aug 16 06:40:12 2013 (r254398) @@ -1337,6 +1337,15 @@ systrace_args(int sysnum, void *params, *n_args = 2; break; } + /* clock_getcpuclockid2 */ + case 247: { + struct clock_getcpuclockid2_args *p = params; + iarg[0] = p->id; /* id_t */ + iarg[1] = p->which; /* int */ + uarg[2] = (intptr_t) p->clock_id; /* clockid_t * */ + *n_args = 3; + break; + } /* ntp_gettime */ case 248: { struct ntp_gettime_args *p = params; @@ -5393,6 +5402,22 @@ systrace_setargdesc(int sysnum, int ndx, break; }; break; + /* clock_getcpuclockid2 */ + case 247: + switch(ndx) { + case 0: + p = "id_t"; + break; + case 1: + p = "int"; + break; + case 2: + p = "clockid_t *"; + break; + default: + break; + }; + break; /* ntp_gettime */ case 248: switch(ndx) { Modified: stable/9/sys/sys/syscall.h ============================================================================== --- stable/9/sys/sys/syscall.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/sys/syscall.h Fri Aug 16 06:40:12 2013 (r254398) @@ -216,6 +216,7 @@ #define SYS_ktimer_gettime 238 #define SYS_ktimer_getoverrun 239 #define SYS_nanosleep 240 +#define SYS_clock_getcpuclockid2 247 #define SYS_ntp_gettime 248 #define SYS_minherit 250 #define SYS_rfork 251 Modified: stable/9/sys/sys/syscall.mk ============================================================================== --- stable/9/sys/sys/syscall.mk Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/sys/syscall.mk Fri Aug 16 06:40:12 2013 (r254398) @@ -168,6 +168,7 @@ MIASM = \ ktimer_gettime.o \ ktimer_getoverrun.o \ nanosleep.o \ + clock_getcpuclockid2.o \ ntp_gettime.o \ minherit.o \ rfork.o \ Modified: stable/9/sys/sys/sysproto.h ============================================================================== --- stable/9/sys/sys/sysproto.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/sys/sysproto.h Fri Aug 16 06:40:12 2013 (r254398) @@ -726,6 +726,11 @@ struct nanosleep_args { char rqtp_l_[PADL_(const struct timespec *)]; const struct timespec * rqtp; char rqtp_r_[PADR_(const struct timespec *)]; char rmtp_l_[PADL_(struct timespec *)]; struct timespec * rmtp; char rmtp_r_[PADR_(struct timespec *)]; }; +struct clock_getcpuclockid2_args { + char id_l_[PADL_(id_t)]; id_t id; char id_r_[PADR_(id_t)]; + char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)]; + char clock_id_l_[PADL_(clockid_t *)]; clockid_t * clock_id; char clock_id_r_[PADR_(clockid_t *)]; +}; struct ntp_gettime_args { char ntvp_l_[PADL_(struct ntptimeval *)]; struct ntptimeval * ntvp; char ntvp_r_[PADR_(struct ntptimeval *)]; }; @@ -1902,6 +1907,7 @@ int sys_ktimer_settime(struct thread *, int sys_ktimer_gettime(struct thread *, struct ktimer_gettime_args *); int sys_ktimer_getoverrun(struct thread *, struct ktimer_getoverrun_args *); int sys_nanosleep(struct thread *, struct nanosleep_args *); +int sys_clock_getcpuclockid2(struct thread *, struct clock_getcpuclockid2_args *); int sys_ntp_gettime(struct thread *, struct ntp_gettime_args *); int sys_minherit(struct thread *, struct minherit_args *); int sys_rfork(struct thread *, struct rfork_args *); @@ -2590,6 +2596,7 @@ int freebsd7_shmctl(struct thread *, str #define SYS_AUE_ktimer_gettime AUE_NULL #define SYS_AUE_ktimer_getoverrun AUE_NULL #define SYS_AUE_nanosleep AUE_NULL +#define SYS_AUE_clock_getcpuclockid2 AUE_NULL #define SYS_AUE_ntp_gettime AUE_NULL #define SYS_AUE_minherit AUE_MINHERIT #define SYS_AUE_rfork AUE_RFORK Modified: stable/9/sys/sys/time.h ============================================================================== --- stable/9/sys/sys/time.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/sys/time.h Fri Aug 16 06:40:12 2013 (r254398) @@ -266,6 +266,7 @@ struct clockinfo { #define CLOCK_MONOTONIC_FAST 12 /* FreeBSD-specific. */ #define CLOCK_SECOND 13 /* FreeBSD-specific. */ #define CLOCK_THREAD_CPUTIME_ID 14 +#define CLOCK_PROCESS_CPUTIME_ID 15 #endif #ifndef TIMER_ABSTIME @@ -273,6 +274,11 @@ struct clockinfo { #define TIMER_ABSTIME 0x1 /* absolute timer */ #endif +#if __BSD_VISIBLE +#define CPUCLOCK_WHICH_PID 0 +#define CPUCLOCK_WHICH_TID 1 +#endif + #ifdef _KERNEL /* @@ -344,6 +350,7 @@ int utimes(const char *, const struct ti #if __BSD_VISIBLE int adjtime(const struct timeval *, struct timeval *); +int clock_getcpuclockid2(id_t, int, clockid_t *); int futimes(int, const struct timeval *); int futimesat(int, const char *, const struct timeval [2]); int lutimes(const char *, const struct timeval *); Modified: stable/9/sys/sys/unistd.h ============================================================================== --- stable/9/sys/sys/unistd.h Fri Aug 16 05:30:13 2013 (r254397) +++ stable/9/sys/sys/unistd.h Fri Aug 16 06:40:12 2013 (r254398) @@ -53,7 +53,7 @@ #define _POSIX_ASYNCHRONOUS_IO 0 #define _POSIX_CHOWN_RESTRICTED 1 #define _POSIX_CLOCK_SELECTION (-1) -#define _POSIX_CPUTIME (-1) +#define _POSIX_CPUTIME 200112L #define _POSIX_FSYNC 200112L #define _POSIX_IPV6 0 #define _POSIX_JOB_CONTROL 1 From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 06:42:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 116BFC71; Fri, 16 Aug 2013 06:42:27 +0000 (UTC) (envelope-from davidxu@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E3CB52320; Fri, 16 Aug 2013 06:42:26 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G6gQOg032928; Fri, 16 Aug 2013 06:42:26 GMT (envelope-from davidxu@svn.freebsd.org) Received: (from davidxu@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G6gPdw032918; Fri, 16 Aug 2013 06:42:25 GMT (envelope-from davidxu@svn.freebsd.org) Message-Id: <201308160642.r7G6gPdw032918@svn.freebsd.org> From: David Xu Date: Fri, 16 Aug 2013 06:42:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254399 - in stable/9/sys: compat/freebsd32 kern sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 06:42:27 -0000 Author: davidxu Date: Fri Aug 16 06:42:24 2013 New Revision: 254399 URL: http://svnweb.freebsd.org/changeset/base/254399 Log: Regen. Modified: stable/9/sys/compat/freebsd32/freebsd32_proto.h stable/9/sys/compat/freebsd32/freebsd32_syscall.h stable/9/sys/compat/freebsd32/freebsd32_syscalls.c stable/9/sys/compat/freebsd32/freebsd32_sysent.c stable/9/sys/kern/init_sysent.c stable/9/sys/kern/syscalls.c stable/9/sys/sys/syscall.h stable/9/sys/sys/syscall.mk stable/9/sys/sys/sysproto.h Modified: stable/9/sys/compat/freebsd32/freebsd32_proto.h ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_proto.h Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/compat/freebsd32/freebsd32_proto.h Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254130 2013-08-09 06:51:34Z kib + * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ #ifndef _FREEBSD32_SYSPROTO_H_ Modified: stable/9/sys/compat/freebsd32/freebsd32_syscall.h ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_syscall.h Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/compat/freebsd32/freebsd32_syscall.h Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254130 2013-08-09 06:51:34Z kib + * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ #define FREEBSD32_SYS_syscall 0 Modified: stable/9/sys/compat/freebsd32/freebsd32_syscalls.c ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_syscalls.c Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/compat/freebsd32/freebsd32_syscalls.c Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254130 2013-08-09 06:51:34Z kib + * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ const char *freebsd32_syscallnames[] = { Modified: stable/9/sys/compat/freebsd32/freebsd32_sysent.c ============================================================================== --- stable/9/sys/compat/freebsd32/freebsd32_sysent.c Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/compat/freebsd32/freebsd32_sysent.c Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254130 2013-08-09 06:51:34Z kib + * created from FreeBSD: stable/9/sys/compat/freebsd32/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ #include "opt_compat.h" Modified: stable/9/sys/kern/init_sysent.c ============================================================================== --- stable/9/sys/kern/init_sysent.c Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/kern/init_sysent.c Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/kern/syscalls.master 251051 2013-05-28 05:51:00Z kib + * created from FreeBSD: stable/9/sys/kern/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ #include "opt_compat.h" Modified: stable/9/sys/kern/syscalls.c ============================================================================== --- stable/9/sys/kern/syscalls.c Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/kern/syscalls.c Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/kern/syscalls.master 251051 2013-05-28 05:51:00Z kib + * created from FreeBSD: stable/9/sys/kern/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ const char *syscallnames[] = { Modified: stable/9/sys/sys/syscall.h ============================================================================== --- stable/9/sys/sys/syscall.h Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/sys/syscall.h Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/kern/syscalls.master 251051 2013-05-28 05:51:00Z kib + * created from FreeBSD: stable/9/sys/kern/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ #define SYS_syscall 0 Modified: stable/9/sys/sys/syscall.mk ============================================================================== --- stable/9/sys/sys/syscall.mk Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/sys/syscall.mk Fri Aug 16 06:42:24 2013 (r254399) @@ -1,7 +1,7 @@ # FreeBSD system call names. # DO NOT EDIT-- this file is automatically generated. # $FreeBSD$ -# created from FreeBSD: stable/9/sys/kern/syscalls.master 251051 2013-05-28 05:51:00Z kib +# created from FreeBSD: stable/9/sys/kern/syscalls.master 254398 2013-08-16 06:40:12Z davidxu MIASM = \ syscall.o \ exit.o \ Modified: stable/9/sys/sys/sysproto.h ============================================================================== --- stable/9/sys/sys/sysproto.h Fri Aug 16 06:40:12 2013 (r254398) +++ stable/9/sys/sys/sysproto.h Fri Aug 16 06:42:24 2013 (r254399) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: stable/9/sys/kern/syscalls.master 251051 2013-05-28 05:51:00Z kib + * created from FreeBSD: stable/9/sys/kern/syscalls.master 254398 2013-08-16 06:40:12Z davidxu */ #ifndef _SYS_SYSPROTO_H_ From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 07:02:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CFAB52D5; Fri, 16 Aug 2013 07:02:18 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BCDC22455; Fri, 16 Aug 2013 07:02:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G72IrF040410; Fri, 16 Aug 2013 07:02:18 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G72HEK040403; Fri, 16 Aug 2013 07:02:17 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201308160702.r7G72HEK040403@svn.freebsd.org> From: Gleb Smirnoff Date: Fri, 16 Aug 2013 07:02:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r254400 - in head/usr.bin/calendar: . calendars/ru_RU.UTF-8 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 07:02:18 -0000 Author: glebius Date: Fri Aug 16 07:02:17 2013 New Revision: 254400 URL: http://svnweb.freebsd.org/changeset/base/254400 Log: Provide UTF-8 version of russian calendars. Added: head/usr.bin/calendar/calendars/ru_RU.UTF-8/ - copied from r254399, head/usr.bin/calendar/calendars/ru_RU.KOI8-R/ Modified: head/usr.bin/calendar/Makefile head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.all (contents, props changed) head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.common head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.holiday (contents, props changed) head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.military head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.orthodox head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan Modified: head/usr.bin/calendar/Makefile ============================================================================== --- head/usr.bin/calendar/Makefile Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/Makefile Fri Aug 16 07:02:17 2013 (r254400) @@ -8,7 +8,7 @@ DPADD= ${LIBM} LDADD= -lm INTER= de_AT.ISO_8859-15 de_DE.ISO8859-1 fr_FR.ISO8859-1 \ hr_HR.ISO8859-2 hu_HU.ISO8859-2 pt_BR.ISO8859-1 \ - pt_BR.UTF-8 ru_RU.KOI8-R uk_UA.KOI8-U + pt_BR.UTF-8 ru_RU.KOI8-R ru_RU.UTF-8 uk_UA.KOI8-U DE_LINKS= de_DE.ISO8859-15 FR_LINKS= fr_FR.ISO8859-15 TEXTMODE?= 444 Modified: head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.all ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.all Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.all Fri Aug 16 07:02:17 2013 (r254400) @@ -1,16 +1,16 @@ /* - * òÕÓÓËÉÊ ËÁÌÅÎÄÁÒØ + * РуÑÑкий календарь * * $FreeBSD$ */ -#ifndef _ru_RU_KOI8_R_all_ -#define _ru_RU_KOI8_R_all_ +#ifndef _ru_RU_UTF_8_all_ +#define _ru_RU_UTF_8_all_ -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include -#endif /* !_ru_RU_KOI8_R_all_ */ +#endif /* !_ru_RU_UTF_8_all_ */ Modified: head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.common ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.common Fri Aug 16 07:02:17 2013 (r254400) @@ -1,105 +1,105 @@ /* - * òÏÓÓÉÊÓËÉÅ ÐÒÁÚÄÎÉËÉ + * РоÑÑийÑкие праздники * * $FreeBSD$ */ -#ifndef _ru_RU_KOI8_R_common_ -#define _ru_RU_KOI8_R_common_ +#ifndef _ru_RU_UTF_8_common_ +#define _ru_RU_UTF_8_common_ -LANG=ru_RU.KOI8-R +LANG=ru_RU.UTF-8 -12 ÑÎ× äÅÎØ ÒÁÂÏÔÎÉËÁ ÐÒÏËÕÒÁÔÕÒÙ -13 ÑÎ× äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÅÞÁÔÉ -14 ÑÎ× óÔÁÒÙÊ îÏ×ÙÊ ÇÏÄ -21 ÑÎ× äÅÎØ ÉÎÖÅÎÅÒÎÙÈ ×ÏÊÓË -25 ÑÎ× ôÁÔØÑÎÉÎ ÄÅÎØ. óÔÕÄÅÎÞÅÓËÉÊ ÐÒÁÚÄÎÉË - 8 ÆÅ× äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÎÁÕËÉ -10 ÆÅ× äÅÎØ ÄÉÐÌÏÍÁÔÉÞÅÓËÏÇÏ ÒÁÂÏÔÎÉËÁ - 1 ÍÁÒ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÇÒÁÖÄÁÎÓËÏÊ ÏÂÏÒÏÎÙ -03/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÇÅÏÄÅÚÉÉ É ËÁÒÔÏÇÒÁÆÉÉ -11 ÍÁÒ äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÎÁÒËÏËÏÎÔÒÏÌÑ -18 ÍÁÒ äÅÎØ ÎÁÌÏÇÏ×ÏÊ ÐÏÌÉÃÉÉ -03/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÔÏÒÇÏ×ÌÉ, ÂÙÔÏ×ÏÇÏ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÎÁÓÅÌÅÎÉÑ É ÖÉÌÉÝÎÏ-ËÏÍÍÕÎÁÌØÎÏÇÏ ÈÏÚÑÊÓÔ×Á -27 ÍÁÒ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÁÔÒÁ -27 ÍÁÒ äÅÎØ ×ÎÕÔÒÅÎÎÉÈ ×ÏÊÓË - 1 ÁÐÒ äÅÎØ ÓÍÅÈÁ - 2 ÁÐÒ äÅÎØ ÅÄÉÎÅÎÉÑ ÎÁÒÏÄÏ× -04/SunFirst äÅÎØ ÇÅÏÌÏÇÁ -12 ÁÐÒ äÅÎØ ËÏÓÍÏÎÁ×ÔÉËÉ -04/SunSecond äÅÎØ ×ÏÊÓË ÐÒÏÔÉ×Ï×ÏÚÄÕÛÎÏÊ ÏÂÏÒÏÎÙ -26 ÁÐÒ äÅÎØ ÐÁÍÑÔÉ ÐÏÇÉÂÛÉÈ × ÒÁÄÉÁÃÉÏÎÎÙÈ Á×ÁÒÉÑÈ É ËÁÔÁÓÔÒÏÆÁÈ -30 ÁÐÒ äÅÎØ ÐÏÖÁÒÎÏÊ ÏÈÒÁÎÙ - 7 ÍÁÊ äÅÎØ ÒÁÄÉÏ -17 ÍÁÊ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÌÅËÏÍÍÕÎÉËÁÃÉÊ -18 ÍÁÊ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÍÕÚÅÅ× -24 ÍÁÊ äÅÎØ ÓÌÁ×ÑÎÓËÏÊ ÐÉÓØÍÅÎÎÏÓÔÉ É ËÕÌØÔÕÒÙ -26 ÍÁÊ äÅÎØ ÒÏÓÓÉÊÓËÏÇÏ ÐÒÅÄÐÒÉÎÉÍÁÔÅÌØÓÔ×Á -27 ÍÁÊ ïÂÝÅÒÏÓÓÉÊÓËÉÊ ÄÅÎØ ÂÉÂÌÉÏÔÅË -28 ÍÁÊ äÅÎØ ÐÏÇÒÁÎÉÞÎÉËÁ -30 ÍÁÊ äÅÎØ ÐÏÖÁÒÎÏÊ ÏÈÒÁÎÙ -31 ÍÁÊ äÅÎØ òÏÓÓÉÊÓËÏÊ áÄ×ÏËÁÔÕÒÙ -05/SunLast äÅÎØ ÈÉÍÉËÁ - 1 ÉÀÎ äÅÎØ ÚÁÝÉÔÙ ÄÅÔÅÊ - 5 ÉÀÎ äÅÎØ ÜËÏÌÏÇÁ - 6 ÉÀÎ ðÕÛËÉÎÓËÉÊ ÄÅÎØ - 8 ÉÀÎ äÅÎØ ÓÏÃÉÁÌØÎÏÇÏ ÒÁÂÏÔÎÉËÁ -06/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÇËÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ -06/SunThird äÅÎØ ÍÅÄÉÃÉÎÓËÏÇÏ ÒÁÂÏÔÎÉËÁ -22 ÉÀÎ äÅÎØ ÐÁÍÑÔÉ É ÓËÏÒÂÉ (îÁÞÁÌÏ ÷ÅÌÉËÏÊ ïÔÅÞÅÓÔ×ÅÎÎÏÊ ÷ÏÊÎÙ, 1941 ÇÏÄ) -27 ÉÀÎ äÅÎØ ÍÏÌÏÄÅÖÉ -29 ÉÀÎ äÅÎØ ÐÁÒÔÉÚÁÎ É ÐÏÄÐÏÌØÝÉËÏ× -06/SatLast äÅÎØ ÉÚÏÂÒÅÔÁÔÅÌÑ É ÒÁÃÉÏÎÁÌÉÚÁÔÏÒÁ -07/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÍÏÒÓËÏÇÏ É ÒÅÞÎÏÇÏ ÆÌÏÔÁ -07/SunSecond äÅÎØ ÒÙÂÁËÁ -07/SunSecond äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÏÞÔÙ -07/SunThird äÅÎØ ÍÅÔÁÌÌÕÒÇÁ -07/SunLast äÅÎØ ÷ÏÅÎÎÏ-íÏÒÓËÏÇÏ æÌÏÔÁ -28 ÉÀÌ äÅÎØ ËÒÅÝÅÎÉÑ òÕÓÉ - 6 Á×Ç äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÙÈ ×ÏÊÓË -08/SunFirst äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÉËÁ -12 Á×Ç äÅÎØ ×ÏÅÎÎÏ-×ÏÚÄÕÛÎÙÈ ÓÉÌ -08/SunSecond äÅÎØ ÓÔÒÏÉÔÅÌÑ -08/SunThird äÅÎØ ÷ÏÚÄÕÛÎÏÇÏ æÌÏÔÁ -22 Á×Ç äÅÎØ ÇÏÓÕÄÁÒÓÔ×ÅÎÎÏÇÏ ÆÌÁÇÁ -27 Á×Ç äÅÎØ ËÉÎÏ -08/SunLast äÅÎØ ÛÁÈÔÅÒÁ - 1 ÓÅÎ äÅÎØ ÚÎÁÎÉÊ - 2 ÓÅÎ äÅÎØ ÒÏÓÓÉÊÓËÏÊ Ç×ÁÒÄÉÉ - 3 ÓÅÎ äÅÎØ ÓÏÌÉÄÁÒÎÏÓÔÉ × ÂÏÒØÂÅ Ó ÔÅÒÒÏÒÉÚÍÏÍ - 4 ÓÅÎ äÅÎØ ÓÐÅÃÉÁÌÉÓÔÁ ÐÏ ÑÄÅÒÎÏÍÕ ÏÂÅÓÐÅÞÅÎÉÀ -09/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÅÆÔÑÎÏÊ É ÇÁÚÏ×ÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ -09/SunSecond äÅÎØ ÔÁÎËÉÓÔÁ -09/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÓÁ -28 ÓÅÎ äÅÎØ ÒÁÂÏÔÎÉËÁ ÁÔÏÍÎÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ -09/SunLast äÅÎØ ÍÁÛÉÎÏÓÔÒÏÉÔÅÌÑ - 1 ÏËÔ äÅÎØ ÐÏÖÉÌÙÈ ÌÀÄÅÊ - 1 ÏËÔ äÅÎØ ÓÕÈÏÐÕÔÎÙÈ ×ÏÊÓË - 4 ÏËÔ äÅÎØ ËÏÓÍÉÞÅÓËÉÈ ×ÏÊÓË - 5 ÏËÔ äÅÎØ ÕÞÉÔÅÌÑ -14 ÏËÔ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ -10/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÓÅÌØÓËÏÇÏ ÈÏÚÑÊÓÔ×Á É ÐÅÒÅÒÁÂÁÔÙ×ÁÀÝÅÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ -10/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÄÏÒÏÖÎÏÇÏ ÈÏÚÑÊÓÔ×Á -24 ÏËÔ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ïïî -25 ÏËÔ äÅÎØ ÔÁÍÏÖÅÎÎÉËÁ -30 ÏËÔ äÅÎØ ÐÁÍÑÔÉ ÖÅÒÔ× ÐÏÌÉÔÉÞÅÓËÉÈ ÒÅÐÒÅÓÓÉÊ -10/SunLast äÅÎØ ÒÁÂÏÔÎÉËÏ× Á×ÔÏÍÏÂÉÌØÎÏÇÏ ÔÒÁÎÓÐÏÒÔÁ - 7 ÎÏÑ äÅÎØ ÏËÔÑÂÒØÓËÏÊ ÒÅ×ÏÌÀÃÉÉ 1917 ÇÏÄÁ - 9 ÎÏÑ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ËÁÞÅÓÔ×Á -10 ÎÏÑ äÅÎØ ÍÉÌÉÃÉÉ -16 ÎÏÑ äÅÎØ ÍÏÒÓËÏÊ ÐÅÈÏÔÙ -17 ÎÏÑ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÕÄÅÎÔÏ× -19 ÎÏÑ äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË É ÁÒÔÉÌÌÅÒÉÉ -21 ÎÏÑ äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÁÌÏÇÏ×ÙÈ ÏÒÇÁÎÏ× -26 ÎÏÑ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÉÎÆÏÒÍÁÃÉÉ -11/SunLast äÅÎØ ÍÁÔÅÒÉ - 1 ÄÅË ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÂÏÒØÂÙ ÓÏ óðéäÏÍ - 3 ÄÅË äÅÎØ ÀÒÉÓÔÁ - 9 ÄÅË äÅÎØ çÅÒÏÅ× ïÔÅÞÅÓÔ×Á -12 ÄÅË äÅÎØ ëÏÎÓÔÉÔÕÃÉÉ -17 ÄÅË äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË ÓÔÒÁÔÅÇÉÞÅÓËÏÇÏ ÎÁÚÎÁÞÅÎÉÑ -20 ÄÅË äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÂÅÚÏÐÁÓÎÏÓÔÉ -22 ÄÅË äÅÎØ ÜÎÅÒÇÅÔÉËÁ -27 ÄÅË äÅÎØ ÓÐÁÓÁÔÅÌÑ +12 Ñнв День работника прокуратуры +13 Ñнв День роÑÑийÑкой печати +14 Ñнв Старый Ðовый год +21 Ñнв День инженерных войÑк +25 Ñнв ТатьÑнин день. СтуденчеÑкий праздник + 8 фев День роÑÑийÑкой науки +10 фев День дипломатичеÑкого работника + 1 мар Ð’Ñемирный день гражданÑкой обороны +03/SunSecond День работников геодезии и картографии +11 мар День работника органов Ð½Ð°Ñ€ÐºÐ¾ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»Ñ +18 мар День налоговой полиции +03/SunThird День работников торговли, бытового обÑÐ»ÑƒÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð½Ð°ÑÐµÐ»ÐµÐ½Ð¸Ñ Ð¸ жилищно-коммунального хозÑйÑтва +27 мар Международный день театра +27 мар День внутренних войÑк + 1 апр День Ñмеха + 2 апр День ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½Ð°Ñ€Ð¾Ð´Ð¾Ð² +04/SunFirst День геолога +12 апр День коÑмонавтики +04/SunSecond День войÑк противовоздушной обороны +26 апр День памÑти погибших в радиационных авариÑÑ… и катаÑтрофах +30 апр День пожарной охраны + 7 май День радио +17 май Международный день телекоммуникаций +18 май Международный день музеев +24 май День ÑлавÑнÑкой пиÑьменноÑти и культуры +26 май День роÑÑийÑкого предпринимательÑтва +27 май ОбщероÑÑийÑкий день библиотек +28 май День пограничника +30 май День пожарной охраны +31 май День РоÑÑийÑкой Ðдвокатуры +05/SunLast День химика + 1 июн День защиты детей + 5 июн День Ñколога + 6 июн ПушкинÑкий день + 8 июн День Ñоциального работника +06/SunSecond День работников легкой промышленноÑти +06/SunThird День медицинÑкого работника +22 июн День памÑти и Ñкорби (Ðачало Великой ОтечеÑтвенной Войны, 1941 год) +27 июн День молодежи +29 июн День партизан и подпольщиков +06/SatLast День Ð¸Ð·Ð¾Ð±Ñ€ÐµÑ‚Ð°Ñ‚ÐµÐ»Ñ Ð¸ рационализатора +07/SunFirst День работников морÑкого и речного флота +07/SunSecond День рыбака +07/SunSecond День роÑÑийÑкой почты +07/SunThird День металлурга +07/SunLast День Военно-МорÑкого Флота +28 июл День ÐºÑ€ÐµÑ‰ÐµÐ½Ð¸Ñ Ð ÑƒÑи + 6 авг День железнодорожных войÑк +08/SunFirst День железнодорожника +12 авг День военно-воздушных Ñил +08/SunSecond День ÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÐµÐ»Ñ +08/SunThird День Воздушного Флота +22 авг День гоÑударÑтвенного флага +27 авг День кино +08/SunLast День шахтера + 1 Ñен День знаний + 2 Ñен День роÑÑийÑкой гвардии + 3 Ñен День ÑолидарноÑти в борьбе Ñ Ñ‚ÐµÑ€Ñ€Ð¾Ñ€Ð¸Ð·Ð¼Ð¾Ð¼ + 4 Ñен День ÑпециалиÑта по Ñдерному обеÑпечению +09/SunFirst День работников нефтÑной и газовой промышленноÑти +09/SunSecond День танкиÑта +09/SunThird День работников леÑа +28 Ñен День работника атомной промышленноÑти +09/SunLast День машиноÑÑ‚Ñ€Ð¾Ð¸Ñ‚ÐµÐ»Ñ + 1 окт День пожилых людей + 1 окт День Ñухопутных войÑк + 4 окт День коÑмичеÑких войÑк + 5 окт День ÑƒÑ‡Ð¸Ñ‚ÐµÐ»Ñ +14 окт Международный день Ñтандартизации +10/SunSecond День работников ÑельÑкого хозÑйÑтва и перерабатывающей промышленноÑти +10/SunThird День работников дорожного хозÑйÑтва +24 окт Международный день ООР+25 окт День таможенника +30 окт День памÑти жертв политичеÑких репреÑÑий +10/SunLast День работников автомобильного транÑпорта + 7 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ октÑбрьÑкой революции 1917 года + 9 Ð½Ð¾Ñ Ð’Ñемирный день качеÑтва +10 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ милиции +16 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ морÑкой пехоты +17 Ð½Ð¾Ñ ÐœÐµÐ¶Ð´ÑƒÐ½Ð°Ñ€Ð¾Ð´Ð½Ñ‹Ð¹ день Ñтудентов +19 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ ракетных войÑк и артиллерии +21 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ работников налоговых органов +26 Ð½Ð¾Ñ Ð’Ñемирный день информации +11/SunLast День матери + 1 дек Ð’Ñемирный день борьбы Ñо СПИДом + 3 дек День юриÑта + 9 дек День Героев ОтечеÑтва +12 дек День КонÑтитуции +17 дек День ракетных войÑк ÑтратегичеÑкого Ð½Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ +20 дек День работника органов безопаÑноÑти +22 дек День Ñнергетика +27 дек День ÑпаÑÐ°Ñ‚ÐµÐ»Ñ -#endif /* !_ru_RU_KOI8_R_common_ */ +#endif /* !_ru_RU_UTF_8_common_ */ Modified: head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.holiday ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.holiday Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.holiday Fri Aug 16 07:02:17 2013 (r254400) @@ -1,25 +1,25 @@ /* - * òÏÓÓÉÊÓËÉÅ ÐÒÁÚÄÎÉËÉ (ÎÅÒÁÂÏÞÉÅ "ËÒÁÓÎÙÅ" ÄÎÉ) + * РоÑÑийÑкие праздники (нерабочие "краÑные" дни) * * $FreeBSD$ */ -#ifndef _ru_RU_KOI8_R_holiday_ -#define _ru_RU_KOI8_R_holiday_ +#ifndef _ru_RU_UTF_8_holiday_ +#define _ru_RU_UTF_8_holiday_ -LANG=ru_RU.KOI8-R +LANG=ru_RU.UTF-8 - 1 ÑÎ× îÏ×ÙÊ ÇÏÄ - 2 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ - 3 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ - 4 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ - 5 ÑÎ× îÏ×ÏÇÏÄÎÉÅ ËÁÎÉËÕÌÙ - 7 ÑÎ× òÏÖÄÅÓÔ×Ï èÒÉÓÔÏ×Ï -23 ÆÅ× äÅÎØ ÚÁÝÉÔÎÉËÁ ïÔÅÞÅÓÔ×Á - 8 ÍÁÒ íÅÖÄÕÎÁÒÏÄÎÙÊ ÖÅÎÓËÉÊ ÄÅÎØ - 1 ÍÁÊ ðÒÁÚÄÎÉË ÷ÅÓÎÙ É ôÒÕÄÁ - 9 ÍÁÊ äÅÎØ ðÏÂÅÄÙ -12 ÉÀÎ äÅÎØ òÏÓÓÉÉ - 4 ÎÏÑ äÅÎØ ÎÁÒÏÄÎÏÇÏ ÅÄÉÎÓÔ×Á + 1 Ñнв Ðовый год + 2 Ñнв Ðовогодние каникулы + 3 Ñнв Ðовогодние каникулы + 4 Ñнв Ðовогодние каникулы + 5 Ñнв Ðовогодние каникулы + 7 Ñнв РождеÑтво ХриÑтово +23 фев День защитника ОтечеÑтва + 8 мар Международный женÑкий день + 1 май Праздник ВеÑны и Труда + 9 май День Победы +12 июн День РоÑÑии + 4 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ народного единÑтва -#endif /* !_ru_RU_KOI8_R_holiday_ */ +#endif /* !_ru_RU_UTF_8_holiday_ */ Modified: head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.military ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.military Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.military Fri Aug 16 07:02:17 2013 (r254400) @@ -1,28 +1,28 @@ /* - * äÎÉ ×ÏÉÎÓËÏÊ ÓÌÁ×Ù òÏÓÓÉÉ + * Дни воинÑкой Ñлавы РоÑÑии * * $FreeBSD$ */ -#ifndef _ru_RU_KOI8_R_military_ -#define _ru_RU_KOI8_R_military_ +#ifndef _ru_RU_UTF_8_military_ +#define _ru_RU_UTF_8_military_ -LANG=ru_RU.KOI8-R +LANG=ru_RU.UTF-8 -27 ÑÎ× äÅÎØ ÓÎÑÔÉÑ ÂÌÏËÁÄÙ ÇÏÒÏÄÁ ìÅÎÉÎÇÒÁÄÁ (1944 ÇÏÄ) - 2 ÆÅ× äÅÎØ ÒÁÚÇÒÏÍÁ ÓÏ×ÅÔÓËÉÍÉ ×ÏÊÓËÁÍÉ ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × óÔÁÌÉÎÇÒÁÄÓËÏÊ ÂÉÔ×Å (1943 ÇÏÄ) -23 ÆÅ× äÅÎØ ÐÏÂÅÄÙ ëÒÁÓÎÏÊ áÒÍÉÉ ÎÁÄ ËÁÊÚÅÒÏ×ÓËÉÍÉ ×ÏÊÓËÁÍÉ çÅÒÍÁÎÉÉ (1918 ÇÏÄ) -18 ÁÐÒ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÉÈ ×ÏÉÎÏ× ËÎÑÚÑ áÌÅËÓÁÎÄÒÁ îÅ×ÓËÏÇÏ ÎÁÄ ÎÅÍÅÃËÉÍÉ ÒÙÃÁÒÑÍÉ ÎÁ þÕÄÓËÏÍ ÏÚÅÒÅ (ìÅÄÏ×ÏÅ ÐÏÂÏÉÝÅ, 1242 ÇÏÄ) -10 ÉÀÌ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÁÒÍÉÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ðÅÔÒÁ ðÅÒ×ÏÇÏ ÎÁÄ Û×ÅÄÁÍÉ × ðÏÌÔÁ×ÓËÏÍ ÓÒÁÖÅÎÉÉ (1709 ÇÏÄ) - 9 Á×Ç äÅÎØ ÐÅÒ×ÏÊ × ÒÏÓÓÉÊÓËÏÊ ÉÓÔÏÒÉÉ ÍÏÒÓËÏÊ ÐÏÂÅÄÙ ÒÕÓÓËÏÇÏ ÆÌÏÔÁ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ðÅÔÒÁ ðÅÒ×ÏÇÏ ÎÁÄ Û×ÅÄÁÍÉ Õ ÍÙÓÁ çÁÎÇÕÔ (1714 ÇÏÄ) -23 Á×Ç äÅÎØ ÒÁÚÇÒÏÍÁ ÓÏ×ÅÔÓËÉÍÉ ×ÏÊÓËÁÍÉ ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × ëÕÒÓËÏÊ ÂÉÔ×Å (1943 ÇÏÄ) - 2 ÓÅÎ äÅÎØ ÏËÏÎÞÁÎÉÑ ÷ÔÏÒÏÊ ÍÉÒÏ×ÏÊ ×ÏÊÎÙ (1945 ÇÏÄ) - 8 ÓÅÎ äÅÎØ âÏÒÏÄÉÎÓËÏÇÏ ÓÒÁÖÅÎÉÑ ÒÕÓÓËÏÊ ÁÒÍÉÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ í.é. ëÕÔÕÚÏ×Á Ó ÆÒÁÎÃÕÚÓËÏÊ ÁÒÍÉÅÊ (1812 ÇÏÄ) -11 ÓÅÎ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÜÓËÁÄÒÙ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ æ.æ. õÛÁËÏ×Á ÎÁÄ ÔÕÒÅÃËÏÊ ÜÓËÁÄÒÏÊ Õ ÍÙÓÁ ôÅÎÄÒÁ (1790 ÇÏÄ) -21 ÓÅÎ äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÉÈ ÐÏÌËÏ× ×Ï ÇÌÁ×Å Ó ×ÅÌÉËÉÍ ËÎÑÚÅÍ äÍÉÔÒÉÅÍ äÏÎÓËÉÍ ÎÁÄ ÍÏÎÇÏÌÏ-ÔÁÔÁÒÓËÉÍÉ ×ÏÊÓËÁÍÉ × ëÕÌÉËÏ×ÓËÏÊ ÂÉÔ×Å (1380 ÇÏÄ) - 7 ÎÏÑ äÅÎØ ÏÓ×ÏÂÏÖÄÅÎÉÑ íÏÓË×Ù ÓÉÌÁÍÉ ÎÁÒÏÄÎÏÇÏ ÏÐÏÌÞÅÎÉÑ ÐÏÄ ÒÕËÏ×ÏÄÓÔ×ÏÍ ëÕÚØÍÙ íÉÎÉÎÁ É äÍÉÔÒÉÑ ðÏÖÁÒÓËÏÇÏ ÏÔ ÐÏÌØÓËÉÈ ÉÎÔÅÒ×ÅÎÔÏ× (1612 ÇÏÄ) - 1 ÄÅË äÅÎØ ÐÏÂÅÄÙ ÒÕÓÓËÏÊ ÜÓËÁÄÒÙ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ ð.ó. îÁÈÉÍÏ×Á ÎÁÄ ÔÕÒÅÃËÏÊ ÜÓËÁÄÒÏÊ Õ ÍÙÓÁ óÉÎÏÐ (1853 ÇÏÄ) - 5 ÄÅË äÅÎØ ÎÁÞÁÌÁ ËÏÎÔÒÎÁÓÔÕÐÌÅÎÉÑ ÓÏ×ÅÔÓËÉÈ ×ÏÊÓË ÐÒÏÔÉ× ÎÅÍÅÃËÏ-ÆÁÛÉÓÔÓËÉÈ ×ÏÊÓË × ÂÉÔ×Å ÐÏÄ íÏÓË×ÏÊ (1941 ÇÏÄ) -24 ÄÅË äÅÎØ ×ÚÑÔÉÑ ÔÕÒÅÃËÏÊ ËÒÅÐÏÓÔÉ éÚÍÁÉÌ ÒÕÓÓËÉÍÉ ×ÏÊÓËÁÍÉ ÐÏÄ ËÏÍÁÎÄÏ×ÁÎÉÅÍ á.÷. óÕ×ÏÒÏ×Á (1790 ÇÏÄ) +27 Ñнв День ÑнÑÑ‚Ð¸Ñ Ð±Ð»Ð¾ÐºÐ°Ð´Ñ‹ города Ленинграда (1944 год) + 2 фев День разгрома ÑоветÑкими войÑками немецко-фашиÑÑ‚Ñких войÑк в СталинградÑкой битве (1943 год) +23 фев День победы КраÑной Ðрмии над кайзеровÑкими войÑками Германии (1918 год) +18 апр День победы руÑÑких воинов кнÑÐ·Ñ ÐлекÑандра ÐевÑкого над немецкими рыцарÑми на ЧудÑком озере (Ледовое побоище, 1242 год) +10 июл День победы руÑÑкой армии под командованием Петра Первого над шведами в ПолтавÑком Ñражении (1709 год) + 9 авг День первой в роÑÑийÑкой иÑтории морÑкой победы руÑÑкого флота под командованием Петра Первого над шведами у мыÑа Гангут (1714 год) +23 авг День разгрома ÑоветÑкими войÑками немецко-фашиÑÑ‚Ñких войÑк в КурÑкой битве (1943 год) + 2 Ñен День Ð¾ÐºÐ¾Ð½Ñ‡Ð°Ð½Ð¸Ñ Ð’Ñ‚Ð¾Ñ€Ð¾Ð¹ мировой войны (1945 год) + 8 Ñен День БородинÑкого ÑÑ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ñ€ÑƒÑÑкой армии под командованием Ðœ.И. Кутузова Ñ Ñ„Ñ€Ð°Ð½Ñ†ÑƒÐ·Ñкой армией (1812 год) +11 Ñен День победы руÑÑкой ÑÑкадры под командованием Ф.Ф. Ушакова над турецкой ÑÑкадрой у мыÑа Тендра (1790 год) +21 Ñен День победы руÑÑких полков во главе Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ð¼ кнÑзем Дмитрием ДонÑким над монголо-татарÑкими войÑками в КуликовÑкой битве (1380 год) + 7 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ ÐœÐ¾Ñквы Ñилами народного Ð¾Ð¿Ð¾Ð»Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ руководÑтвом Кузьмы Минина и Ð”Ð¼Ð¸Ñ‚Ñ€Ð¸Ñ ÐŸÐ¾Ð¶Ð°Ñ€Ñкого от польÑких интервентов (1612 год) + 1 дек День победы руÑÑкой ÑÑкадры под командованием П.С. Ðахимова над турецкой ÑÑкадрой у мыÑа Синоп (1853 год) + 5 дек День начала контрнаÑÑ‚ÑƒÐ¿Ð»ÐµÐ½Ð¸Ñ ÑоветÑких войÑк против немецко-фашиÑÑ‚Ñких войÑк в битве под МоÑквой (1941 год) +24 дек День взÑÑ‚Ð¸Ñ Ñ‚ÑƒÑ€ÐµÑ†ÐºÐ¾Ð¹ крепоÑти Измаил руÑÑкими войÑками под командованием Ð.Ð’. Суворова (1790 год) -#endif /* !_ru_RU_KOI8_R_military_ */ +#endif /* !_ru_RU_UTF_8_military_ */ Modified: head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.orthodox ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.orthodox Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.orthodox Fri Aug 16 07:02:17 2013 (r254400) @@ -1,36 +1,36 @@ /* - * ðÒÁ×ÏÓÌÁ×ÎÙÅ ÐÒÁÚÄÎÉËÉ + * ПравоÑлавные праздники * * $FreeBSD$ */ -#ifndef _ru_RU_KOI8_R_orthodox_ -#define _ru_RU_KOI8_R_orthodox_ +#ifndef _ru_RU_UTF_8_orthodox_ +#define _ru_RU_UTF_8_orthodox_ -LANG=ru_RU.KOI8-R -Paskha=ðÁÓÈÁ +LANG=ru_RU.UTF-8 +Paskha=ПаÑха -21 ÓÅÎ òÏÖÄÅÓÔ×Ï ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ -27 ÓÅÎ ÷ÏÚÄ×ÉÖÅÎÉÅ ëÒÅÓÔÁ çÏÓÐÏÄÎÑ -14 ÏËÔ ðÏËÒÏ× ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ - 4 ÄÅË ÷×ÅÄÅÎÉÅ ×Ï ÈÒÁÍ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ - 7 ÑÎ× òÏÖÄÅÓÔ×Ï èÒÉÓÔÏ×Ï -14 ÑÎ× ïÂÒÅÚÁÎÉÅ çÏÓÐÏÄÎÅ -19 ÑÎ× âÏÇÏÑ×ÌÅÎÉÅ ÉÌÉ ëÒÅÝÅÎÉÅ çÏÓÐÏÄÎÅ -15 ÆÅ× óÒÅÔÅÎÉÅ çÏÓÐÏÄÎÅ -ðÁÓÈÁ-48 ÷ÅÌÉËÉÊ ðÏÓÔ -ðÁÓÈÁ-7 ÷ÈÏÄ çÏÓÐÏÄÅÎØ × éÅÒÕÓÁÌÉÍ. ÷ÅÒÂÎÏÅ ÷ÏÓËÒÅÓÅÎØÅ -ðÁÓÈÁ-3 ÷ÅÌÉËÉÊ þÅÔ×ÅÒÇ -ðÁÓÈÁ-2 óÔÒÁÓÔÎÁÑ ðÑÔÎÉÃÁ -ðÁÓÈÁ ÷ÏÓËÒÅÓÅÎÉÅ èÒÉÓÔÏ×Ï -ðÁÓÈÁ+39 ÷ÏÚÎÅÓÅÎÉÅ -ðÁÓÈÁ+49 äÅÎØ ó×ÑÔÏÊ ôÒÏÉÃÙ. ðÑÔÉÄÅÓÑÔÎÉÃÁ - 7 ÁÐÒ âÌÁÇÏ×ÅÝÅÎÉÅ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ - 7 ÉÀÌ òÏÖÄÅÓÔ×Ï éÏÁÎÎÁ ðÒÅÄÔÅÞÉ -12 ÉÀÌ äÅÎØ Ó×ÑÔÙÈ ÐÅÒ×Ï×ÅÒÈÏ×ÎÙÈ ÁÐÏÓÔÏÌÏ× ðÅÔÒÁ É ðÁ×ÌÁ -19 Á×Ç ðÒÅÏÂÒÁÖÅÎÉÅ çÏÓÐÏÄÎÅ -28 Á×Ç õÓÐÅÎÉÅ ðÒÅÓ×ÑÔÏÊ âÏÇÏÒÏÄÉÃÙ -11 ÓÅÎ õÓÅËÎÏ×ÅÎÉÅ ÇÌÁ×Ù éÏÁÎÎÁ ðÒÅÄÔÅÞÉ +21 Ñен РождеÑтво ПреÑвÑтой Богородицы +27 Ñен Воздвижение КреÑта ГоÑÐ¿Ð¾Ð´Ð½Ñ +14 окт Покров ПреÑвÑтой Богородицы + 4 дек Введение во храм ПреÑвÑтой Богородицы + 7 Ñнв РождеÑтво ХриÑтово +14 Ñнв Обрезание ГоÑподне +19 Ñнв БогоÑвление или Крещение ГоÑподне +15 фев Сретение ГоÑподне +ПаÑха-48 Великий ПоÑÑ‚ +ПаÑха-7 Вход ГоÑподень в ИеруÑалим. Вербное ВоÑкреÑенье +ПаÑха-3 Великий Четверг +ПаÑха-2 СтраÑÑ‚Ð½Ð°Ñ ÐŸÑтница +ПаÑха ВоÑкреÑение ХриÑтово +ПаÑха+39 ВознеÑение +ПаÑха+49 День СвÑтой Троицы. ПÑтидеÑÑтница + 7 апр Благовещение ПреÑвÑтой Богородицы + 7 июл РождеÑтво Иоанна Предтечи +12 июл День ÑвÑÑ‚Ñ‹Ñ… первоверховных апоÑтолов Петра и Павла +19 авг Преображение ГоÑподне +28 авг УÑпение ПреÑвÑтой Богородицы +11 Ñен УÑекновение главы Иоанна Предтечи -#endif /* !_ru_RU_KOI8_R_orthodox_ */ +#endif /* !_ru_RU_UTF_8_orthodox_ */ Modified: head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.pagan Fri Aug 16 06:42:24 2013 (r254399) +++ head/usr.bin/calendar/calendars/ru_RU.UTF-8/calendar.pagan Fri Aug 16 07:02:17 2013 (r254400) @@ -1,42 +1,42 @@ /* - * ñÚÙÞÅÓËÉÅ ÐÒÁÚÄÎÉËÉ + * ЯзычеÑкие праздники * * $FreeBSD$ */ -#ifndef _ru_RU_KOI8_R_pagan_ -#define _ru_RU_KOI8_R_pagan_ +#ifndef _ru_RU_UTF_8_pagan_ +#define _ru_RU_UTF_8_pagan_ -LANG=ru_RU.KOI8-R -Paskha=ðÁÓÈÁ +LANG=ru_RU.UTF-8 +Paskha=ПаÑха -21 ÄÅË* úÉÍÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ -25 ÄÅË ëÏÌÑÄÁ (ÓÄ×ÉÎÕÔÏÅ ÚÉÍÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ) - 6 ÑÎ× äÅÎØ ëÁÝÅÑ É ÷ÅÌÅÓÁ -24 ÆÅ× äÅÎØ ÷ÅÌÅÓÁ -29 ÆÅ× äÅÎØ ëÁÝÅÑ - 1 ÍÁÒ äÅÎØ íÁÒÅÎÙ -14 ÍÁÒ îÏ×ÙÊ çÏÄ, ï×ÓÅÎØ ÍÁÌÙÊ -ðÁÓÈÁ-55 íÁÓÌÅÎÉÃÁ -ðÁÓÈÁ+7 ëÒÁÓÎÁÑ çÏÒËÁ -ðÁÓÈÁ+16 òÁÄÕÎÉÃÁ -20 ÍÁÒ* ÷ÅÓÅÎÎÉÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ - 7 ÁÐÒ äÅÎØ íÁÒÅÎÙ (ÓÄ×ÉÎÕÔÏÅ ×ÅÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ) - 6 ÍÁÊ äÅÎØ äÁÖØÂÏÇÁ, ï×ÓÅÎØ ÂÏÌØÛÏÊ -22 ÍÁÊ ñÒÉÌÉÎ äÅÎØ -15 ÉÀÎ äÅÎØ ôÒÉÇÌÁ×Á -21 ÉÀÎ* ìÅÔÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ - 1 ÉÀÌ òÕÓÁÌØÎÁÑ îÅÄÅÌÑ - 7 ÉÀÌ ëÕÐÁÌÁ (ÓÄ×ÉÎÕÔÏÅ ÌÅÔÎÅÅ ÓÏÌÎÃÅÓÔÏÑÎÉÅ) -27 ÉÀÌ ïÔÂÏÒ ÖÅÒÔ× ðÅÒÕÎÕ, ÒÕÓÁÌÉÉ - 2 Á×Ç ðÅÒÕÎÏ× äÅÎØ -21 Á×Ç äÅÎØ óÔÒÉÂÏÇÁ -28 Á×Ç õÓÐÅÎÉÅ úÌÁÔÏÇÏÒËÉ -14 ÓÅÎ äÅÎØ ÷ÏÌÈÁ úÍÅÅ×ÉÞÁ -22 ÓÅÎ* ðÏ×ÏÒÏÔ Ë ÚÉÍÅ (ÏÓÅÎÎÅÅ ÒÁ×ÎÏÄÅÎÓÔ×ÉÅ) -10 ÎÏÑ äÅÎØ íÁËÏÛÉ -21 ÎÏÑ äÅÎØ ó×ÁÒÏÇÁ É óÅÍÁÒÇÌÁ - 9 ÄÅË äÅÎØ äÁÖØÂÏÇÁ É íÁÒÅÎÙ +21 дек* Зимнее ÑолнцеÑтоÑние +25 дек КолÑда (Ñдвинутое зимнее ÑолнцеÑтоÑние) + 6 Ñнв День ÐšÐ°Ñ‰ÐµÑ Ð¸ ВелеÑа +24 фев День ВелеÑа +29 фев День ÐšÐ°Ñ‰ÐµÑ + 1 мар День Марены +14 мар Ðовый Год, ОвÑень малый +ПаÑха-55 МаÑленица +ПаÑха+7 КраÑÐ½Ð°Ñ Ð“Ð¾Ñ€ÐºÐ° +ПаÑха+16 Радуница +20 мар* ВеÑенние равноденÑтвие + 7 апр День Марены (Ñдвинутое веÑеннее равноденÑтвие) + 6 май День Дажьбога, ОвÑень большой +22 май Ярилин День +15 июн День Триглава +21 июн* Летнее ÑолнцеÑтоÑние + 1 июл РуÑÐ°Ð»ÑŒÐ½Ð°Ñ ÐÐµÐ´ÐµÐ»Ñ + 7 июл Купала (Ñдвинутое летнее ÑолнцеÑтоÑние) +27 июл Отбор жертв Перуну, руÑалии + 2 авг Перунов День +21 авг День Стрибога +28 авг УÑпение Златогорки +14 Ñен День Волха Змеевича +22 Ñен* Поворот к зиме (оÑеннее равноденÑтвие) +10 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ Макоши +21 Ð½Ð¾Ñ Ð”ÐµÐ½ÑŒ Сварога и Семаргла + 9 дек День Дажьбога и Марены -#endif /* !_ru_RU_KOI8_R_pagan_ */ +#endif /* !_ru_RU_UTF_8_pagan_ */ From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 07:03:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 52A59422; Fri, 16 Aug 2013 07:03:29 +0000 (UTC) (envelope-from cy@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3EB2C2462; Fri, 16 Aug 2013 07:03:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G73TvE040727; Fri, 16 Aug 2013 07:03:29 GMT (envelope-from cy@svn.freebsd.org) Received: (from cy@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G73Tvb040724; Fri, 16 Aug 2013 07:03:29 GMT (envelope-from cy@svn.freebsd.org) Message-Id: <201308160703.r7G73Tvb040724@svn.freebsd.org> From: Cy Schubert Date: Fri, 16 Aug 2013 07:03:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r254401 - vendor-sys/ipfilter/dist/netinet X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 07:03:29 -0000 Author: cy Date: Fri Aug 16 07:03:28 2013 New Revision: 254401 URL: http://svnweb.freebsd.org/changeset/base/254401 Log: Include three new files that should be in vendor-sys branch too. Approved by: glebius (Mentor) Added: vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c vendor-sys/ipfilter/dist/netinet/ip_nat6.c vendor-sys/ipfilter/dist/netinet/ip_tftp_pxy.c Added: vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/ipfilter/dist/netinet/ip_dns_pxy.c Fri Aug 16 07:03:28 2013 (r254401) @@ -0,0 +1,402 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + * + * $Id: ip_dns_pxy.c,v 1.1.2.10 2012/07/22 08:04:23 darren_r Exp $ + */ + +#define IPF_DNS_PROXY + +/* + * map ... proxy port dns/udp 53 { block .cnn.com; } + */ +typedef struct ipf_dns_filter { + struct ipf_dns_filter *idns_next; + char *idns_name; + int idns_namelen; + int idns_pass; +} ipf_dns_filter_t; + + +typedef struct ipf_dns_softc_s { + ipf_dns_filter_t *ipf_p_dns_list; + ipfrwlock_t ipf_p_dns_rwlock; + u_long ipf_p_dns_compress; + u_long ipf_p_dns_toolong; + u_long ipf_p_dns_nospace; +} ipf_dns_softc_t; + +int ipf_p_dns_allow_query __P((ipf_dns_softc_t *, dnsinfo_t *)); +int ipf_p_dns_ctl __P((ipf_main_softc_t *, void *, ap_ctl_t *)); +int ipf_p_dns_del __P((ipf_main_softc_t *, ap_session_t *)); +int ipf_p_dns_get_name __P((ipf_dns_softc_t *, char *, int, char *, int)); +int ipf_p_dns_inout __P((void *, fr_info_t *, ap_session_t *, nat_t *)); +int ipf_p_dns_match __P((fr_info_t *, ap_session_t *, nat_t *)); +int ipf_p_dns_match_names __P((ipf_dns_filter_t *, char *, int)); +int ipf_p_dns_new __P((void *, fr_info_t *, ap_session_t *, nat_t *)); +void *ipf_p_dns_soft_create __P((ipf_main_softc_t *)); +void ipf_p_dns_soft_destroy __P((ipf_main_softc_t *, void *)); + +typedef struct { + u_char dns_id[2]; + u_short dns_ctlword; + u_short dns_qdcount; + u_short dns_ancount; + u_short dns_nscount; + u_short dns_arcount; +} ipf_dns_hdr_t; + +#define DNS_QR(x) ((ntohs(x) & 0x8000) >> 15) +#define DNS_OPCODE(x) ((ntohs(x) & 0x7800) >> 11) +#define DNS_AA(x) ((ntohs(x) & 0x0400) >> 10) +#define DNS_TC(x) ((ntohs(x) & 0x0200) >> 9) +#define DNS_RD(x) ((ntohs(x) & 0x0100) >> 8) +#define DNS_RA(x) ((ntohs(x) & 0x0080) >> 7) +#define DNS_Z(x) ((ntohs(x) & 0x0070) >> 4) +#define DNS_RCODE(x) ((ntohs(x) & 0x000f) >> 0) + + +void * +ipf_p_dns_soft_create(softc) + ipf_main_softc_t *softc; +{ + ipf_dns_softc_t *softd; + + KMALLOC(softd, ipf_dns_softc_t *); + if (softd == NULL) + return NULL; + + bzero((char *)softd, sizeof(*softd)); + RWLOCK_INIT(&softd->ipf_p_dns_rwlock, "ipf dns rwlock"); + + return softd; +} + + +void +ipf_p_dns_soft_destroy(softc, arg) + ipf_main_softc_t *softc; + void *arg; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_filter_t *idns; + + while ((idns = softd->ipf_p_dns_list) != NULL) { + KFREES(idns->idns_name, idns->idns_namelen); + idns->idns_name = NULL; + idns->idns_namelen = 0; + softd->ipf_p_dns_list = idns->idns_next; + KFREE(idns); + } + RW_DESTROY(&softd->ipf_p_dns_rwlock); + + KFREE(softd); +} + + +int +ipf_p_dns_ctl(softc, arg, ctl) + ipf_main_softc_t *softc; + void *arg; + ap_ctl_t *ctl; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_filter_t *tmp, *idns, **idnsp; + int error = 0; + + /* + * To make locking easier. + */ + KMALLOC(tmp, ipf_dns_filter_t *); + + WRITE_ENTER(&softd->ipf_p_dns_rwlock); + for (idnsp = &softd->ipf_p_dns_list; (idns = *idnsp) != NULL; + idnsp = &idns->idns_next) { + if (idns->idns_namelen != ctl->apc_dsize) + continue; + if (!strncmp(ctl->apc_data, idns->idns_name, + idns->idns_namelen)) + break; + } + + switch (ctl->apc_cmd) + { + case APC_CMD_DEL : + if (idns == NULL) { + IPFERROR(80006); + error = ESRCH; + break; + } + *idnsp = idns->idns_next; + idns->idns_next = NULL; + KFREES(idns->idns_name, idns->idns_namelen); + idns->idns_name = NULL; + idns->idns_namelen = 0; + KFREE(idns); + break; + case APC_CMD_ADD : + if (idns != NULL) { + IPFERROR(80007); + error = EEXIST; + break; + } + if (tmp == NULL) { + IPFERROR(80008); + error = ENOMEM; + break; + } + idns = tmp; + tmp = NULL; + idns->idns_namelen = ctl->apc_dsize; + idns->idns_name = ctl->apc_data; + idns->idns_pass = ctl->apc_arg; + idns->idns_next = NULL; + *idnsp = idns; + ctl->apc_data = NULL; + ctl->apc_dsize = 0; + break; + default : + IPFERROR(80009); + error = EINVAL; + break; + } + RWLOCK_EXIT(&softd->ipf_p_dns_rwlock); + + if (tmp != NULL) { + KFREE(tmp); + tmp = NULL; + } + + return error; +} + + +/* ARGSUSED */ +int +ipf_p_dns_new(arg, fin, aps, nat) + void *arg; + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + dnsinfo_t *di; + int dlen; + + if (fin->fin_v != 4) + return -1; + + dlen = fin->fin_dlen - sizeof(udphdr_t); + if (dlen < sizeof(ipf_dns_hdr_t)) { + /* + * No real DNS packet is smaller than that. + */ + return -1; + } + + aps->aps_psiz = sizeof(dnsinfo_t); + KMALLOCS(di, dnsinfo_t *, sizeof(dnsinfo_t)); + if (di == NULL) { + printf("ipf_dns_new:KMALLOCS(%d) failed\n", sizeof(*di)); + return -1; + } + + MUTEX_INIT(&di->dnsi_lock, "dns lock"); + + aps->aps_data = di; + + dlen = fin->fin_dlen - sizeof(udphdr_t); + COPYDATA(fin->fin_m, fin->fin_hlen + sizeof(udphdr_t), + MIN(dlen, sizeof(di->dnsi_buffer)), di->dnsi_buffer); + di->dnsi_id = (di->dnsi_buffer[0] << 8) | di->dnsi_buffer[1]; + return 0; +} + + +/* ARGSUSED */ +int +ipf_p_dns_del(softc, aps) + ipf_main_softc_t *softc; + ap_session_t *aps; +{ +#ifdef USE_MUTEXES + dnsinfo_t *di = aps->aps_data; + + MUTEX_DESTROY(&di->dnsi_lock); +#endif + KFREES(aps->aps_data, aps->aps_psiz); + aps->aps_data = NULL; + aps->aps_psiz = 0; + return 0; +} + + +/* + * Tries to match the base string (in our ACL) with the query from a packet. + */ +int +ipf_p_dns_match_names(idns, query, qlen) + ipf_dns_filter_t *idns; + char *query; + int qlen; +{ + int blen; + char *base; + + blen = idns->idns_namelen; + base = idns->idns_name; + + if (blen > qlen) + return 1; + + if (blen == qlen) + return strncasecmp(base, query, qlen); + + /* + * If the base string string is shorter than the query, allow the + * tail of the base to match the same length tail of the query *if*: + * - the base string starts with a '*' (*cnn.com) + * - the base string represents a domain (.cnn.com) + * as otherwise it would not be possible to block just "cnn.com" + * without also impacting "foocnn.com", etc. + */ + if (*base == '*') { + base++; + blen--; + } else if (*base != '.') + return 1; + + return strncasecmp(base, query + qlen - blen, blen); +} + + +int +ipf_p_dns_get_name(softd, start, len, buffer, buflen) + ipf_dns_softc_t *softd; + char *start; + int len; + char *buffer; + int buflen; +{ + char *s, *t, clen; + int slen, blen; + + s = start; + t = buffer; + slen = len; + blen = buflen - 1; /* Always make room for trailing \0 */ + + while (*s != '\0') { + clen = *s; + if ((clen & 0xc0) == 0xc0) { /* Doesn't do compression */ + softd->ipf_p_dns_compress++; + return 0; + } + if (clen > slen) { + softd->ipf_p_dns_toolong++; + return 0; /* Does the name run off the end? */ + } + if ((clen + 1) > blen) { + softd->ipf_p_dns_nospace++; + return 0; /* Enough room for name+.? */ + } + s++; + bcopy(s, t, clen); + t += clen; + s += clen; + *t++ = '.'; + slen -= clen; + blen -= (clen + 1); + } + + *(t - 1) = '\0'; + return s - start; +} + + +int +ipf_p_dns_allow_query(softd, dnsi) + ipf_dns_softc_t *softd; + dnsinfo_t *dnsi; +{ + ipf_dns_filter_t *idns; + int len; + + len = strlen(dnsi->dnsi_buffer); + + for (idns = softd->ipf_p_dns_list; idns != NULL; idns = idns->idns_next) + if (ipf_p_dns_match_names(idns, dnsi->dnsi_buffer, len) == 0) + return idns->idns_pass; + return 0; +} + + +/* ARGSUSED */ +int +ipf_p_dns_inout(arg, fin, aps, nat) + void *arg; + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + ipf_dns_softc_t *softd = arg; + ipf_dns_hdr_t *dns; + dnsinfo_t *di; + char *data; + int dlen, q, rc = 0; + + if (fin->fin_dlen < sizeof(*dns)) + return APR_ERR(1); + + dns = (ipf_dns_hdr_t *)((char *)fin->fin_dp + sizeof(udphdr_t)); + + q = dns->dns_qdcount; + + data = (char *)(dns + 1); + dlen = fin->fin_dlen - sizeof(*dns) - sizeof(udphdr_t); + + di = aps->aps_data; + + READ_ENTER(&softd->ipf_p_dns_rwlock); + MUTEX_ENTER(&di->dnsi_lock); + + for (; (dlen > 0) && (q > 0); q--) { + int len; + + len = ipf_p_dns_get_name(softd, data, dlen, di->dnsi_buffer, + sizeof(di->dnsi_buffer)); + if (len == 0) { + rc = 1; + break; + } + rc = ipf_p_dns_allow_query(softd, di); + if (rc != 0) + break; + data += len; + dlen -= len; + } + MUTEX_EXIT(&di->dnsi_lock); + RWLOCK_EXIT(&softd->ipf_p_dns_rwlock); + + return APR_ERR(rc); +} + + +/* ARGSUSED */ +int +ipf_p_dns_match(fin, aps, nat) + fr_info_t *fin; + ap_session_t *aps; + nat_t *nat; +{ + dnsinfo_t *di = aps->aps_data; + ipf_dns_hdr_t *dnh; + + if ((fin->fin_dlen < sizeof(u_short)) || (fin->fin_flx & FI_FRAG)) + return -1; + + dnh = (ipf_dns_hdr_t *)((char *)fin->fin_dp + sizeof(udphdr_t)); + if (((dnh->dns_id[0] << 8) | dnh->dns_id[1]) != di->dnsi_id) + return -1; + return 0; +} Added: vendor-sys/ipfilter/dist/netinet/ip_nat6.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/ipfilter/dist/netinet/ip_nat6.c Fri Aug 16 07:03:28 2013 (r254401) @@ -0,0 +1,4098 @@ +/* + * Copyright (C) 2012 by Darren Reed. + * + * See the IPFILTER.LICENCE file for details on licencing. + */ +#if defined(KERNEL) || defined(_KERNEL) +# undef KERNEL +# undef ipf_nat6_KERNEL +# define KERNEL 1 +# define ipf_nat6_KERNEL 1 +#endif +#include +#include +#include +#include +#include +#if defined(_KERNEL) && defined(__NetBSD_Version__) && \ + (__NetBSD_Version__ >= 399002000) +# include +#endif +#if !defined(_KERNEL) +# include +# include +# include +# define ipf_nat6_KERNEL +# ifdef ipf_nat6__OpenBSD__ +struct file; +# endif +# include +# undef ipf_nat6_KERNEL +#endif +#if defined(_KERNEL) && (__FreeBSD_version >= 220000) +# include +# include +#else +# include +#endif +#if !defined(AIX) +# include +#endif +#if !defined(linux) +# include +#endif +#include +#if defined(_KERNEL) +# include +# if !defined(__SVR4) && !defined(__svr4__) +# include +# endif +#endif +#if defined(__SVR4) || defined(__svr4__) +# include +# include +# ifdef ipf_nat6_KERNEL +# include +# endif +# include +# include +#endif +#if ipf_nat6__FreeBSD_version >= 300000 +# include +#endif +#include +#if ipf_nat6__FreeBSD_version >= 300000 +# include +#endif +#ifdef sun +# include +#endif +#include +#include +#include +#include + +#ifdef RFC1825 +# include +# include +extern struct ifnet vpnif; +#endif + +#if !defined(linux) +# include +#endif +#include +#include +#include +#include "netinet/ip_compat.h" +#include +#include "netinet/ip_fil.h" +#include "netinet/ip_nat.h" +#include "netinet/ip_frag.h" +#include "netinet/ip_state.h" +#include "netinet/ip_proxy.h" +#include "netinet/ip_lookup.h" +#include "netinet/ip_dstlist.h" +#include "netinet/ip_sync.h" +#if (__FreeBSD_version >= 300000) +# include +#endif +#ifdef HAS_SYS_MD5_H +# include +#else +# include "md5.h" +#endif +/* END OF INCLUDES */ + +#undef SOCKADDR_IN +#define SOCKADDR_IN struct sockaddr_in + +#if !defined(lint) +static const char rcsid[] = "@(#)$Id: ip_nat6.c,v 1.22.2.20 2012/07/22 08:04:23 darren_r Exp $"; +#endif + +#ifdef USE_INET6 +static struct hostmap *ipf_nat6_hostmap __P((ipf_nat_softc_t *, ipnat_t *, + i6addr_t *, i6addr_t *, + i6addr_t *, u_32_t)); +static int ipf_nat6_match __P((fr_info_t *, ipnat_t *)); +static void ipf_nat6_tabmove __P((ipf_nat_softc_t *, nat_t *)); +static int ipf_nat6_decap __P((fr_info_t *, nat_t *)); +static int ipf_nat6_nextaddr __P((fr_info_t *, nat_addr_t *, i6addr_t *, + i6addr_t *)); +static int ipf_nat6_icmpquerytype __P((int)); +static int ipf_nat6_out __P((fr_info_t *, nat_t *, int, u_32_t)); +static int ipf_nat6_in __P((fr_info_t *, nat_t *, int, u_32_t)); +static int ipf_nat6_builddivertmp __P((ipf_nat_softc_t *, ipnat_t *)); +static int ipf_nat6_nextaddrinit __P((ipf_main_softc_t *, char *, + nat_addr_t *, int, void *)); +static int ipf_nat6_insert __P((ipf_main_softc_t *, ipf_nat_softc_t *, + nat_t *)); + + +#define NINCLSIDE6(y,x) ATOMIC_INCL(softn->ipf_nat_stats.ns_side6[y].x) +#define NBUMPSIDE(y,x) softn->ipf_nat_stats.ns_side[y].x++ +#define NBUMPSIDE6(y,x) softn->ipf_nat_stats.ns_side6[y].x++ +#define NBUMPSIDE6D(y,x) \ + do { \ + softn->ipf_nat_stats.ns_side6[y].x++; \ + DT(x); \ + } while (0) +#define NBUMPSIDE6DX(y,x,z) \ + do { \ + softn->ipf_nat_stats.ns_side6[y].x++; \ + DT(z); \ + } while (0) + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_ruleaddrinit */ +/* Returns: int - 0 == success, else failure */ +/* Parameters: in(I) - NAT rule that requires address fields to be init'd */ +/* */ +/* For each of the source/destination address fields in a NAT rule, call */ +/* ipf_nat6_nextaddrinit() to prepare the structure for active duty. Other */ +/* IPv6 specific actions can also be taken care of here. */ +/* ------------------------------------------------------------------------ */ +int +ipf_nat6_ruleaddrinit(softc, softn, n) + ipf_main_softc_t *softc; + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + int idx, error; + + if (n->in_redir == NAT_BIMAP) { + n->in_ndstip6 = n->in_osrcip6; + n->in_ndstmsk6 = n->in_osrcmsk6; + n->in_odstip6 = n->in_nsrcip6; + n->in_odstmsk6 = n->in_nsrcmsk6; + + } + + if (n->in_redir & NAT_REDIRECT) + idx = 1; + else + idx = 0; + /* + * Initialise all of the address fields. + */ + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_osrc, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_odst, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_nsrc, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + error = ipf_nat6_nextaddrinit(softc, n->in_names, &n->in_ndst, 1, + n->in_ifps[idx]); + if (error != 0) + return error; + + if (n->in_redir & NAT_DIVERTUDP) + ipf_nat6_builddivertmp(softn, n); + return 0; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_addrdr */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to add */ +/* */ +/* Adds a redirect rule to the hash table of redirect rules and the list of */ +/* loaded NAT rules. Updates the bitmask indicating which netmasks are in */ +/* use by redirect rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_addrdr(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + ipnat_t **np; + i6addr_t j; + u_int hv; + int k; + + if ((n->in_redir & NAT_BIMAP) == NAT_BIMAP) { + k = count6bits(n->in_nsrcmsk6.i6); + mask = &n->in_nsrcmsk6; + IP6_AND(&n->in_odstip6, &n->in_odstmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_rdrrules_sz); + + } else if (n->in_odstatype == FRI_NORMAL) { + k = count6bits(n->in_odstmsk6.i6); + mask = &n->in_odstmsk6; + IP6_AND(&n->in_odstip6, &n->in_odstmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_rdrrules_sz); + } else { + k = 0; + hv = 0; + mask = NULL; + } + ipf_inet6_mask_add(k, mask, &softn->ipf_nat6_rdr_mask); + + np = softn->ipf_nat_rdr_rules + hv; + while (*np != NULL) + np = &(*np)->in_rnext; + n->in_rnext = NULL; + n->in_prnext = np; + n->in_hv[0] = hv; + n->in_use++; + *np = n; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_addmap */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to add */ +/* */ +/* Adds a NAT map rule to the hash table of rules and the list of loaded */ +/* NAT rules. Updates the bitmask indicating which netmasks are in use by */ +/* redirect rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_addmap(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + ipnat_t **np; + i6addr_t j; + u_int hv; + int k; + + if (n->in_osrcatype == FRI_NORMAL) { + k = count6bits(n->in_osrcmsk6.i6); + mask = &n->in_osrcmsk6; + IP6_AND(&n->in_osrcip6, &n->in_osrcmsk6, &j); + hv = NAT_HASH_FN6(&j, 0, softn->ipf_nat_maprules_sz); + } else { + k = 0; + hv = 0; + mask = NULL; + } + ipf_inet6_mask_add(k, mask, &softn->ipf_nat6_map_mask); + + np = softn->ipf_nat_map_rules + hv; + while (*np != NULL) + np = &(*np)->in_mnext; + n->in_mnext = NULL; + n->in_pmnext = np; + n->in_hv[1] = hv; + n->in_use++; + *np = n; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_del_rdr */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to delete */ +/* */ +/* Removes a NAT rdr rule from the hash table of NAT rdr rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_delrdr(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + int k; + + if ((n->in_redir & NAT_BIMAP) == NAT_BIMAP) { + k = count6bits(n->in_nsrcmsk6.i6); + mask = &n->in_nsrcmsk6; + } else if (n->in_odstatype == FRI_NORMAL) { + k = count6bits(n->in_odstmsk6.i6); + mask = &n->in_odstmsk6; + } else { + k = 0; + mask = NULL; + } + ipf_inet6_mask_del(k, mask, &softn->ipf_nat6_rdr_mask); + + if (n->in_rnext != NULL) + n->in_rnext->in_prnext = n->in_prnext; + *n->in_prnext = n->in_rnext; + n->in_use--; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_delmap */ +/* Returns: Nil */ +/* Parameters: n(I) - pointer to NAT rule to delete */ +/* */ +/* Removes a NAT map rule from the hash table of NAT map rules. */ +/* ------------------------------------------------------------------------ */ +void +ipf_nat6_delmap(softn, n) + ipf_nat_softc_t *softn; + ipnat_t *n; +{ + i6addr_t *mask; + int k; + + if (n->in_osrcatype == FRI_NORMAL) { + k = count6bits(n->in_osrcmsk6.i6); + mask = &n->in_osrcmsk6; + } else { + k = 0; + mask = NULL; + } + ipf_inet6_mask_del(k, mask, &softn->ipf_nat6_map_mask); + + if (n->in_mnext != NULL) + n->in_mnext->in_pmnext = n->in_pmnext; + *n->in_pmnext = n->in_mnext; + n->in_use--; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_hostmap */ +/* Returns: struct hostmap* - NULL if no hostmap could be created, */ +/* else a pointer to the hostmapping to use */ +/* Parameters: np(I) - pointer to NAT rule */ +/* real(I) - real IP address */ +/* map(I) - mapped IP address */ +/* port(I) - destination port number */ +/* Write Locks: ipf_nat */ +/* */ +/* Check if an ip address has already been allocated for a given mapping */ +/* that is not doing port based translation. If is not yet allocated, then */ +/* create a new entry if a non-NULL NAT rule pointer has been supplied. */ +/* ------------------------------------------------------------------------ */ +static struct hostmap * +ipf_nat6_hostmap(softn, np, src, dst, map, port) + ipf_nat_softc_t *softn; + ipnat_t *np; + i6addr_t *src, *dst, *map; + u_32_t port; +{ + hostmap_t *hm; + u_int hv; + + hv = (src->i6[3] ^ dst->i6[3]); + hv += (src->i6[2] ^ dst->i6[2]); + hv += (src->i6[1] ^ dst->i6[1]); + hv += (src->i6[0] ^ dst->i6[0]); + hv += src->i6[3]; + hv += src->i6[2]; + hv += src->i6[1]; + hv += src->i6[0]; + hv += dst->i6[3]; + hv += dst->i6[2]; + hv += dst->i6[1]; + hv += dst->i6[0]; + hv %= HOSTMAP_SIZE; + for (hm = softn->ipf_hm_maptable[hv]; hm; hm = hm->hm_next) + if (IP6_EQ(&hm->hm_osrc6, src) && + IP6_EQ(&hm->hm_odst6, dst) && + ((np == NULL) || (np == hm->hm_ipnat)) && + ((port == 0) || (port == hm->hm_port))) { + softn->ipf_nat_stats.ns_hm_addref++; + hm->hm_ref++; + return hm; + } + + if (np == NULL) { + softn->ipf_nat_stats.ns_hm_nullnp++; + return NULL; + } + + KMALLOC(hm, hostmap_t *); + if (hm) { + hm->hm_next = softn->ipf_hm_maplist; + hm->hm_pnext = &softn->ipf_hm_maplist; + if (softn->ipf_hm_maplist != NULL) + softn->ipf_hm_maplist->hm_pnext = &hm->hm_next; + softn->ipf_hm_maplist = hm; + hm->hm_hnext = softn->ipf_hm_maptable[hv]; + hm->hm_phnext = softn->ipf_hm_maptable + hv; + if (softn->ipf_hm_maptable[hv] != NULL) + softn->ipf_hm_maptable[hv]->hm_phnext = &hm->hm_hnext; + softn->ipf_hm_maptable[hv] = hm; + hm->hm_ipnat = np; + np->in_use++; + hm->hm_osrcip6 = *src; + hm->hm_odstip6 = *dst; + hm->hm_nsrcip6 = *map; + hm->hm_ndstip6.i6[0] = 0; + hm->hm_ndstip6.i6[1] = 0; + hm->hm_ndstip6.i6[2] = 0; + hm->hm_ndstip6.i6[3] = 0; + hm->hm_ref = 1; + hm->hm_port = port; + hm->hm_hv = hv; + hm->hm_v = 6; + softn->ipf_nat_stats.ns_hm_new++; + } else { + softn->ipf_nat_stats.ns_hm_newfail++; + } + return hm; +} + + +/* ------------------------------------------------------------------------ */ +/* Function: ipf_nat6_newmap */ +/* Returns: int - -1 == error, 0 == success */ +/* Parameters: fin(I) - pointer to packet information */ +/* nat(I) - pointer to NAT entry */ +/* ni(I) - pointer to structure with misc. information needed */ +/* to create new NAT entry. */ +/* */ +/* Given an empty NAT structure, populate it with new information about a */ +/* new NAT session, as defined by the matching NAT rule. */ +/* ni.nai_ip is passed in uninitialised and must be set, in host byte order,*/ +/* to the new IP address for the translation. */ +/* ------------------------------------------------------------------------ */ +int +ipf_nat6_newmap(fin, nat, ni) + fr_info_t *fin; + nat_t *nat; + natinfo_t *ni; +{ + ipf_main_softc_t *softc = fin->fin_main_soft; + ipf_nat_softc_t *softn = softc->ipf_nat_soft; + u_short st_port, dport, sport, port, sp, dp; + i6addr_t in, st_ip; + hostmap_t *hm; + u_32_t flags; + ipnat_t *np; + nat_t *natl; + int l; + + /* + * If it's an outbound packet which doesn't match any existing + * record, then create a new port + */ + l = 0; + hm = NULL; + np = ni->nai_np; + st_ip = np->in_snip6; + st_port = np->in_spnext; + flags = nat->nat_flags; + + if (flags & IPN_ICMPQUERY) { + sport = fin->fin_data[1]; + dport = 0; + } else { + sport = htons(fin->fin_data[0]); + dport = htons(fin->fin_data[1]); + } + + /* + * Do a loop until we either run out of entries to try or we find + * a NAT mapping that isn't currently being used. This is done + * because the change to the source is not (usually) being fixed. + */ + do { + port = 0; + in = np->in_nsrc.na_nextaddr; + if (l == 0) { + /* + * Check to see if there is an existing NAT + * setup for this IP address pair. + */ + hm = ipf_nat6_hostmap(softn, np, &fin->fin_src6, + &fin->fin_dst6, &in, 0); + if (hm != NULL) + in = hm->hm_nsrcip6; + } else if ((l == 1) && (hm != NULL)) { + ipf_nat_hostmapdel(softc, &hm); + } + + nat->nat_hm = hm; + + if (IP6_ISONES(&np->in_nsrcmsk6) && (np->in_spnext == 0)) { + if (l > 0) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_1); + return -1; + } + } + + if ((np->in_redir == NAT_BIMAP) && + IP6_EQ(&np->in_osrcmsk6, &np->in_nsrcmsk6)) { + i6addr_t temp; + /* + * map the address block in a 1:1 fashion + */ + temp.i6[0] = fin->fin_src6.i6[0] & + ~np->in_osrcmsk6.i6[0]; + temp.i6[1] = fin->fin_src6.i6[1] & + ~np->in_osrcmsk6.i6[1]; + temp.i6[2] = fin->fin_src6.i6[2] & + ~np->in_osrcmsk6.i6[0]; + temp.i6[3] = fin->fin_src6.i6[3] & + ~np->in_osrcmsk6.i6[3]; + in = np->in_nsrcip6; + IP6_MERGE(&in, &temp, &np->in_osrc); + +#ifdef NEED_128BIT_MATH + } else if (np->in_redir & NAT_MAPBLK) { + if ((l >= np->in_ppip) || ((l > 0) && + !(flags & IPN_TCPUDP))) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_2); + return -1; + } + /* + * map-block - Calculate destination address. + */ + IP6_MASK(&in, &fin->fin_src6, &np->in_osrcmsk6); + in = ntohl(in); + inb = in; + in.s_addr /= np->in_ippip; + in.s_addr &= ntohl(~np->in_nsrcmsk6); + in.s_addr += ntohl(np->in_nsrcaddr6); + /* + * Calculate destination port. + */ + if ((flags & IPN_TCPUDP) && + (np->in_ppip != 0)) { + port = ntohs(sport) + l; + port %= np->in_ppip; + port += np->in_ppip * + (inb.s_addr % np->in_ippip); + port += MAPBLK_MINPORT; + port = htons(port); + } +#endif + + } else if (IP6_ISZERO(&np->in_nsrcaddr) && + IP6_ISONES(&np->in_nsrcmsk)) { + /* + * 0/32 - use the interface's IP address. + */ + if ((l > 0) || + ipf_ifpaddr(softc, 6, FRI_NORMAL, fin->fin_ifp, + &in, NULL) == -1) { + NBUMPSIDE6DX(1, ns_new_ifpaddr, + ns_new_ifpaddr_1); + return -1; + } + + } else if (IP6_ISZERO(&np->in_nsrcip6) && + IP6_ISZERO(&np->in_nsrcmsk6)) { + /* + * 0/0 - use the original source address/port. + */ + if (l > 0) { + NBUMPSIDE6DX(1, ns_exhausted, ns_exhausted_3); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Aug 16 07:11:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D2AB05DC; Fri, 16 Aug 2013 07:11:16 +0000 (UTC) (envelope-from erwin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BAC9824C6; Fri, 16 Aug 2013 07:11:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7G7BGXS044414; Fri, 16 Aug 2013 07:11:16 GMT (envelope-from erwin@svn.freebsd.org) Received: (from erwin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7G7BDmV044390; Fri, 16 Aug 2013 07:11:13 GMT (envelope-from erwin@svn.freebsd.org) Message-Id: <201308160711.r7G7BDmV044390@svn.freebsd.org> From: Erwin Lansing Date: Fri, 16 Aug 2013 07:11:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r254402 - in stable/9: contrib/bind9 contrib/bind9/bin contrib/bind9/bin/check contrib/bind9/bin/confgen contrib/bind9/bin/dig contrib/bind9/bin/dig/include/dig contrib/bind9/bin/dnssec... X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2013 07:11:16 -0000 Author: erwin Date: Fri Aug 16 07:11:13 2013 New Revision: 254402 URL: http://svnweb.freebsd.org/changeset/base/254402 Log: MFC 253983, 253984: Update Bind to 9.8.5-P2 New Features Adds a new configuration option, "check-spf"; valid values are "warn" (default) and "ignore". When set to "warn", checks SPF and TXT records in spf format, warning if either resource record type occurs without a corresponding record of the other resource record type. [RT #33355] Adds support for Uniform Resource Identifier (URI) resource records. [RT #23386] Adds support for the EUI48 and EUI64 RR types. [RT #33082] Adds support for the RFC 6742 ILNP record types (NID, LP, L32, and L64). [RT #31836] Feature Changes Changes timing of when slave zones send NOTIFY messages after loading a new copy of the zone. They now send the NOTIFY before writing the zone data to disk. This will result in quicker propagation of updates in multi-level server structures. [RT #27242] "named -V" can now report a source ID string. (This is will be of most interest to developers and troubleshooters). The source ID for ISC's production versions of BIND is defined in the "srcid" file in the build tree and is normally set to the most recent git hash. [RT #31494] Response Policy Zone performance enhancements. New "response-policy" option "min-ns-dots". "nsip" and "nsdname" now enabled by default with RPZ. [RT #32251] Approved by: delphij (mentor) Sponsored by: DK Hostmaster A/S Added: stable/9/contrib/bind9/lib/dns/rdata/generic/eui48_108.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/eui48_108.c stable/9/contrib/bind9/lib/dns/rdata/generic/eui48_108.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/eui48_108.h stable/9/contrib/bind9/lib/dns/rdata/generic/eui64_109.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/eui64_109.c stable/9/contrib/bind9/lib/dns/rdata/generic/eui64_109.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/eui64_109.h stable/9/contrib/bind9/lib/dns/rdata/generic/l32_105.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/l32_105.c stable/9/contrib/bind9/lib/dns/rdata/generic/l32_105.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/l32_105.h stable/9/contrib/bind9/lib/dns/rdata/generic/l64_106.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/l64_106.c stable/9/contrib/bind9/lib/dns/rdata/generic/l64_106.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/l64_106.h stable/9/contrib/bind9/lib/dns/rdata/generic/lp_107.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/lp_107.c stable/9/contrib/bind9/lib/dns/rdata/generic/lp_107.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/lp_107.h stable/9/contrib/bind9/lib/dns/rdata/generic/nid_104.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/nid_104.c stable/9/contrib/bind9/lib/dns/rdata/generic/nid_104.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/nid_104.h stable/9/contrib/bind9/lib/dns/rdata/generic/uri_256.c - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/uri_256.c stable/9/contrib/bind9/lib/dns/rdata/generic/uri_256.h - copied unchanged from r253983, head/contrib/bind9/lib/dns/rdata/generic/uri_256.h stable/9/contrib/bind9/lib/isc/include/isc/regex.h - copied unchanged from r253983, head/contrib/bind9/lib/isc/include/isc/regex.h stable/9/contrib/bind9/lib/isc/regex.c - copied unchanged from r253983, head/contrib/bind9/lib/isc/regex.c Replaced: stable/9/contrib/bind9/libtool.m4/ - copied from r253983, head/contrib/bind9/libtool.m4/ Deleted: stable/9/contrib/bind9/libtool.m4/lt~obsolete.m4 Modified: stable/9/contrib/bind9/CHANGES stable/9/contrib/bind9/COPYRIGHT stable/9/contrib/bind9/FAQ stable/9/contrib/bind9/FAQ.xml stable/9/contrib/bind9/Makefile.in stable/9/contrib/bind9/README stable/9/contrib/bind9/aclocal.m4 stable/9/contrib/bind9/bin/Makefile.in stable/9/contrib/bind9/bin/check/check-tool.c stable/9/contrib/bind9/bin/check/named-checkconf.c stable/9/contrib/bind9/bin/check/named-checkzone.8 stable/9/contrib/bind9/bin/check/named-checkzone.c stable/9/contrib/bind9/bin/check/named-checkzone.docbook stable/9/contrib/bind9/bin/check/named-checkzone.html stable/9/contrib/bind9/bin/confgen/keygen.c stable/9/contrib/bind9/bin/confgen/rndc-confgen.c stable/9/contrib/bind9/bin/dig/dig.1 stable/9/contrib/bind9/bin/dig/dig.c stable/9/contrib/bind9/bin/dig/dig.docbook stable/9/contrib/bind9/bin/dig/dig.html stable/9/contrib/bind9/bin/dig/dighost.c stable/9/contrib/bind9/bin/dig/host.c stable/9/contrib/bind9/bin/dig/include/dig/dig.h stable/9/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.c stable/9/contrib/bind9/bin/dnssec/dnssec-keygen.c stable/9/contrib/bind9/bin/dnssec/dnssec-revoke.c stable/9/contrib/bind9/bin/dnssec/dnssec-settime.c stable/9/contrib/bind9/bin/dnssec/dnssec-signzone.c stable/9/contrib/bind9/bin/named/Makefile.in stable/9/contrib/bind9/bin/named/client.c stable/9/contrib/bind9/bin/named/config.c stable/9/contrib/bind9/bin/named/control.c stable/9/contrib/bind9/bin/named/controlconf.c stable/9/contrib/bind9/bin/named/include/named/client.h stable/9/contrib/bind9/bin/named/include/named/globals.h stable/9/contrib/bind9/bin/named/include/named/server.h stable/9/contrib/bind9/bin/named/interfacemgr.c stable/9/contrib/bind9/bin/named/log.c stable/9/contrib/bind9/bin/named/logconf.c stable/9/contrib/bind9/bin/named/lwresd.c stable/9/contrib/bind9/bin/named/main.c stable/9/contrib/bind9/bin/named/named.conf.5 stable/9/contrib/bind9/bin/named/named.conf.docbook stable/9/contrib/bind9/bin/named/named.conf.html stable/9/contrib/bind9/bin/named/query.c stable/9/contrib/bind9/bin/named/server.c stable/9/contrib/bind9/bin/named/statschannel.c stable/9/contrib/bind9/bin/named/tkeyconf.c stable/9/contrib/bind9/bin/named/tsigconf.c stable/9/contrib/bind9/bin/named/unix/dlz_dlopen_driver.c stable/9/contrib/bind9/bin/named/update.c stable/9/contrib/bind9/bin/named/xfrout.c stable/9/contrib/bind9/bin/named/zoneconf.c stable/9/contrib/bind9/bin/nsupdate/nsupdate.c stable/9/contrib/bind9/bin/rndc/rndc.c stable/9/contrib/bind9/bin/tools/genrandom.c stable/9/contrib/bind9/bin/tools/isc-hmac-fixup.8 stable/9/contrib/bind9/bin/tools/isc-hmac-fixup.docbook stable/9/contrib/bind9/bin/tools/isc-hmac-fixup.html stable/9/contrib/bind9/config.h.in stable/9/contrib/bind9/config.threads.in stable/9/contrib/bind9/configure.in stable/9/contrib/bind9/doc/arm/Bv9ARM-book.xml stable/9/contrib/bind9/doc/arm/Bv9ARM.ch01.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch02.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch03.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch04.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch05.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch06.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch07.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch08.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch09.html stable/9/contrib/bind9/doc/arm/Bv9ARM.ch10.html stable/9/contrib/bind9/doc/arm/Bv9ARM.html stable/9/contrib/bind9/doc/arm/Bv9ARM.pdf stable/9/contrib/bind9/doc/arm/man.arpaname.html stable/9/contrib/bind9/doc/arm/man.ddns-confgen.html stable/9/contrib/bind9/doc/arm/man.dig.html stable/9/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html stable/9/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html stable/9/contrib/bind9/doc/arm/man.dnssec-keygen.html stable/9/contrib/bind9/doc/arm/man.dnssec-revoke.html stable/9/contrib/bind9/doc/arm/man.dnssec-settime.html stable/9/contrib/bind9/doc/arm/man.dnssec-signzone.html stable/9/contrib/bind9/doc/arm/man.genrandom.html stable/9/contrib/bind9/doc/arm/man.host.html stable/9/contrib/bind9/doc/arm/man.isc-hmac-fixup.html stable/9/contrib/bind9/doc/arm/man.named-checkconf.html stable/9/contrib/bind9/doc/arm/man.named-checkzone.html stable/9/contrib/bind9/doc/arm/man.named-journalprint.html stable/9/contrib/bind9/doc/arm/man.named.html stable/9/contrib/bind9/doc/arm/man.nsec3hash.html stable/9/contrib/bind9/doc/arm/man.nsupdate.html stable/9/contrib/bind9/doc/arm/man.rndc-confgen.html stable/9/contrib/bind9/doc/arm/man.rndc.conf.html stable/9/contrib/bind9/doc/arm/man.rndc.html stable/9/contrib/bind9/doc/arm/pkcs11.xml stable/9/contrib/bind9/doc/misc/options stable/9/contrib/bind9/isc-config.sh.in stable/9/contrib/bind9/lib/Makefile.in stable/9/contrib/bind9/lib/bind9/Makefile.in stable/9/contrib/bind9/lib/bind9/api stable/9/contrib/bind9/lib/bind9/check.c stable/9/contrib/bind9/lib/dns/Makefile.in stable/9/contrib/bind9/lib/dns/acache.c stable/9/contrib/bind9/lib/dns/adb.c stable/9/contrib/bind9/lib/dns/api stable/9/contrib/bind9/lib/dns/cache.c stable/9/contrib/bind9/lib/dns/client.c stable/9/contrib/bind9/lib/dns/db.c stable/9/contrib/bind9/lib/dns/dispatch.c stable/9/contrib/bind9/lib/dns/dlz.c stable/9/contrib/bind9/lib/dns/dnssec.c stable/9/contrib/bind9/lib/dns/dst_api.c stable/9/contrib/bind9/lib/dns/dst_internal.h stable/9/contrib/bind9/lib/dns/dst_openssl.h stable/9/contrib/bind9/lib/dns/ecdb.c stable/9/contrib/bind9/lib/dns/gen.c stable/9/contrib/bind9/lib/dns/gssapictx.c stable/9/contrib/bind9/lib/dns/include/dns/acache.h stable/9/contrib/bind9/lib/dns/include/dns/db.h stable/9/contrib/bind9/lib/dns/include/dns/message.h stable/9/contrib/bind9/lib/dns/include/dns/name.h stable/9/contrib/bind9/lib/dns/include/dns/ncache.h stable/9/contrib/bind9/lib/dns/include/dns/nsec.h stable/9/contrib/bind9/lib/dns/include/dns/nsec3.h stable/9/contrib/bind9/lib/dns/include/dns/rdata.h stable/9/contrib/bind9/lib/dns/include/dns/result.h stable/9/contrib/bind9/lib/dns/include/dns/rpz.h stable/9/contrib/bind9/lib/dns/include/dns/types.h stable/9/contrib/bind9/lib/dns/include/dns/validator.h stable/9/contrib/bind9/lib/dns/include/dns/view.h stable/9/contrib/bind9/lib/dns/include/dns/zone.h stable/9/contrib/bind9/lib/dns/include/dst/dst.h stable/9/contrib/bind9/lib/dns/master.c stable/9/contrib/bind9/lib/dns/message.c stable/9/contrib/bind9/lib/dns/name.c stable/9/contrib/bind9/lib/dns/ncache.c stable/9/contrib/bind9/lib/dns/nsec.c stable/9/contrib/bind9/lib/dns/nsec3.c stable/9/contrib/bind9/lib/dns/openssl_link.c stable/9/contrib/bind9/lib/dns/openssldsa_link.c stable/9/contrib/bind9/lib/dns/opensslecdsa_link.c stable/9/contrib/bind9/lib/dns/opensslgost_link.c stable/9/contrib/bind9/lib/dns/opensslrsa_link.c stable/9/contrib/bind9/lib/dns/peer.c stable/9/contrib/bind9/lib/dns/rbt.c stable/9/contrib/bind9/lib/dns/rbtdb.c stable/9/contrib/bind9/lib/dns/rdata.c stable/9/contrib/bind9/lib/dns/rdata/any_255/tsig_250.c stable/9/contrib/bind9/lib/dns/rdata/generic/dlv_32769.c stable/9/contrib/bind9/lib/dns/rdata/generic/mx_15.c stable/9/contrib/bind9/lib/dns/rdata/generic/sshfp_44.c stable/9/contrib/bind9/lib/dns/rdata/generic/txt_16.c stable/9/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c stable/9/contrib/bind9/lib/dns/rdata/in_1/nsap_22.c stable/9/contrib/bind9/lib/dns/request.c stable/9/contrib/bind9/lib/dns/resolver.c stable/9/contrib/bind9/lib/dns/result.c stable/9/contrib/bind9/lib/dns/rootns.c stable/9/contrib/bind9/lib/dns/rpz.c stable/9/contrib/bind9/lib/dns/sdb.c stable/9/contrib/bind9/lib/dns/sdlz.c stable/9/contrib/bind9/lib/dns/spnego.c stable/9/contrib/bind9/lib/dns/spnego_asn1.c stable/9/contrib/bind9/lib/dns/ssu.c stable/9/contrib/bind9/lib/dns/ssu_external.c stable/9/contrib/bind9/lib/dns/tkey.c stable/9/contrib/bind9/lib/dns/tsig.c stable/9/contrib/bind9/lib/dns/validator.c stable/9/contrib/bind9/lib/dns/view.c stable/9/contrib/bind9/lib/dns/xfrin.c stable/9/contrib/bind9/lib/dns/zone.c stable/9/contrib/bind9/lib/export/dns/Makefile.in stable/9/contrib/bind9/lib/export/irs/Makefile.in stable/9/contrib/bind9/lib/export/isc/Makefile.in stable/9/contrib/bind9/lib/export/isc/include/isc/Makefile.in stable/9/contrib/bind9/lib/export/isc/nls/Makefile.in stable/9/contrib/bind9/lib/export/isc/nothreads/Makefile.in stable/9/contrib/bind9/lib/export/isc/pthreads/Makefile.in stable/9/contrib/bind9/lib/export/isc/unix/Makefile.in stable/9/contrib/bind9/lib/export/isccfg/Makefile.in stable/9/contrib/bind9/lib/export/samples/Makefile.in stable/9/contrib/bind9/lib/export/samples/nsprobe.c stable/9/contrib/bind9/lib/export/samples/sample-async.c stable/9/contrib/bind9/lib/export/samples/sample-gai.c stable/9/contrib/bind9/lib/export/samples/sample-request.c stable/9/contrib/bind9/lib/export/samples/sample-update.c stable/9/contrib/bind9/lib/export/samples/sample.c stable/9/contrib/bind9/lib/irs/api stable/9/contrib/bind9/lib/irs/dnsconf.c stable/9/contrib/bind9/lib/irs/getaddrinfo.c stable/9/contrib/bind9/lib/irs/getnameinfo.c stable/9/contrib/bind9/lib/irs/resconf.c stable/9/contrib/bind9/lib/isc/Makefile.in stable/9/contrib/bind9/lib/isc/api stable/9/contrib/bind9/lib/isc/buffer.c stable/9/contrib/bind9/lib/isc/include/isc/Makefile.in stable/9/contrib/bind9/lib/isc/include/isc/buffer.h stable/9/contrib/bind9/lib/isc/include/isc/file.h stable/9/contrib/bind9/lib/isc/include/isc/list.h stable/9/contrib/bind9/lib/isc/include/isc/mem.h stable/9/contrib/bind9/lib/isc/include/isc/namespace.h stable/9/contrib/bind9/lib/isc/include/isc/region.h stable/9/contrib/bind9/lib/isc/include/isc/sockaddr.h stable/9/contrib/bind9/lib/isc/include/isc/socket.h stable/9/contrib/bind9/lib/isc/include/isc/task.h stable/9/contrib/bind9/lib/isc/include/isc/timer.h stable/9/contrib/bind9/lib/isc/inet_aton.c stable/9/contrib/bind9/lib/isc/mem.c stable/9/contrib/bind9/lib/isc/nothreads/Makefile.in stable/9/contrib/bind9/lib/isc/parseint.c stable/9/contrib/bind9/lib/isc/pthreads/thread.c stable/9/contrib/bind9/lib/isc/ratelimiter.c stable/9/contrib/bind9/lib/isc/sockaddr.c stable/9/contrib/bind9/lib/isc/sparc64/include/isc/atomic.h stable/9/contrib/bind9/lib/isc/symtab.c stable/9/contrib/bind9/lib/isc/task.c stable/9/contrib/bind9/lib/isc/taskpool.c stable/9/contrib/bind9/lib/isc/timer.c stable/9/contrib/bind9/lib/isc/timer_api.c stable/9/contrib/bind9/lib/isc/unix/entropy.c stable/9/contrib/bind9/lib/isc/unix/file.c stable/9/contrib/bind9/lib/isc/unix/include/isc/time.h stable/9/contrib/bind9/lib/isc/unix/net.c stable/9/contrib/bind9/lib/isc/unix/socket.c stable/9/contrib/bind9/lib/isc/unix/time.c stable/9/contrib/bind9/lib/isccc/api stable/9/contrib/bind9/lib/isccc/cc.c stable/9/contrib/bind9/lib/isccfg/Makefile.in stable/9/contrib/bind9/lib/isccfg/aclconf.c stable/9/contrib/bind9/lib/isccfg/api stable/9/contrib/bind9/lib/isccfg/include/isccfg/cfg.h stable/9/contrib/bind9/lib/isccfg/namedconf.c stable/9/contrib/bind9/lib/isccfg/parser.c stable/9/contrib/bind9/lib/lwres/api stable/9/contrib/bind9/lib/lwres/context.c stable/9/contrib/bind9/lib/lwres/getaddrinfo.c stable/9/contrib/bind9/lib/lwres/getipnode.c stable/9/contrib/bind9/lib/lwres/getnameinfo.c stable/9/contrib/bind9/lib/lwres/getrrset.c stable/9/contrib/bind9/lib/lwres/lwinetaton.c stable/9/contrib/bind9/lib/lwres/print.c stable/9/contrib/bind9/ltmain.sh stable/9/contrib/bind9/make/rules.in stable/9/contrib/bind9/version stable/9/lib/bind/config.h stable/9/lib/bind/dns/code.h stable/9/lib/bind/dns/dns/enumtype.h stable/9/lib/bind/dns/dns/rdatastruct.h stable/9/lib/bind/isc/Makefile stable/9/usr.sbin/named/Makefile Directory Properties: stable/9/contrib/bind9/ (props changed) stable/9/lib/bind/ (props changed) stable/9/usr.sbin/named/ (props changed) Modified: stable/9/contrib/bind9/CHANGES ============================================================================== --- stable/9/contrib/bind9/CHANGES Fri Aug 16 07:03:28 2013 (r254401) +++ stable/9/contrib/bind9/CHANGES Fri Aug 16 07:11:13 2013 (r254402) @@ -1,20 +1,392 @@ - --- 9.8.4-P2 released --- + --- 9.8.5-P2 released --- -3516. [security] Removed the check for regex.h in configure in order - to disable regex syntax checking, as it exposes - BIND to a critical flaw in libregex on some - platforms. [RT #32688] +3621. [security] Incorrect bounds checking on private type 'keydata' + can lead to a remotely triggerable REQUIRE failure + (CVE-2013-4854). [RT #34238] - --- 9.8.4-P1 released --- + --- 9.8.5-P1 released --- -3407. [security] Named could die on specific queries with dns64 enabled. - [Addressed in change #3388 for BIND 9.8.5 and 9.9.3.] +3584. [security] Caching data from an incompletely signed zone could + trigger an assertion failure in resolver.c [RT #33690] - --- 9.8.4 released --- + --- 9.8.5 released --- + +3568. [cleanup] Add a product description line to the version file, + to be reported by named -v/-V. [RT #33366] + +3567. [bug] Silence clang static analyzer warnings. [RT #33365] + +3563. [contrib] zone2sqlite failed with some table names. [RT #33375] + +3561. [bug] dig: issue a warning if an EDNS query returns FORMERR + or NOTIMP. Adjust usage message. [RT #33363] + + --- 9.8.5rc1 released --- + +3560. [bug] isc-config.sh did not honor includedir and libdir + when set via configure. [RT #33345] + +3559. [func] Check that both forms of Sender Policy Framework + records exist or do not exist. [RT #33355] + +3558. [bug] IXFR of a DLZ stored zone was broken. [RT #33331] + +3556. [maint] Added AAAA for D.ROOT-SERVERS.NET. + +3555. [bug] Address theoretical race conditions in acache.c + (change #3553 was incomplete). [RT #33252] + +3553. [bug] Address suspected double free in acache. [RT #33252] + +3552. [bug] Wrong getopt option string for 'nsupdate -r'. + [RT #33280] + +3549. [doc] Documentation for "request-nsid" was missing. + [RT #33153] + +3548. [bug] The NSID request code in resolver.c was broken + resulting in invalid EDNS options being sent. + [RT #33153] + +3547. [bug] Some malformed unknown rdata records were not properly + detected and rejected. [RT #33129] + +3056. [func] Added support for URI resource record. [RT #23386] + + --- 9.8.5rc1 released --- + +3546. [func] Add EUI48 and EUI64 types. [RT #33082] + +3544. [contrib] check5011.pl: Script to report the status of + managed keys as recorded in managed-keys.bind. + Contributed by Tony Finch + +3543. [bug] Update socket structure before attaching to socket + manager after accept. [RT #33084] + +3542. [bug] masterformat system test was broken. [RT #33086] + +3541. [bug] Parts of libdns were not properly initialized when + built in libexport mode. [RT #33028] + +3540. [test] libt_api: t_info and t_assert were not thread safe. + +3539. [port] win32: timestamp format didn't match other platforms. + +3538. [test] Running "make test" now requires loopback interfaces + to be set up. [RT #32452] + +3537. [tuning] Slave zones, when updated, now send NOTIFY messages + to peers before being dumped to disk rather than + after. [RT #27242] + +3535. [bug] Minor win32 cleanups. [RT #32962] + +3534. [bug] Extra text after an embedded NULL was ignored when + parsing zone files. [RT #32699] + +3533. [contrib] query-loc-0.4.0: memory leaks. [RT #32960] + +3532. [contrib] zkt: fixed buffer overrun, resource leaks. [RT #32960] + +3531. [bug] win32: A uninitialized value could be returned on out + of memory. [RT #32960] + +3530. [contrib] Better RTT tracking in queryperf. [RT #30128] + +3526. [cleanup] Set up dependencies for unit tests correctly during + build. [RT #32803] + +3521. [bug] Address memory leak in opensslecdsa_link.c. [RT #32249] + +3520. [bug] 'mctx' was not being referenced counted in some places + where it should have been. [RT #32794] + + --- 9.8.5b2 released --- + +3517. [bug] Reorder destruction to avoid shutdown race. [RT #32777] + +3515. [port] '%T' is not portable in strftime(). [RT #32763] + +3514. [bug] The ranges for valid key sizes in ddns-confgen and + rndc-confgen were too constrained. Keys up to 512 + bits are now allowed for most algorithms, and up + to 1024 bits for hmac-sha384 and hmac-sha512. + [RT #32753] + +3509. [cleanup] Added a product line to version file to allow for + easy naming of different products (BIND + vs BIND ESV, for example). [RT #32755] + +3508. [contrib] queryperf was incorrectly rejecting the -T option. + [RT #32338] + +3503. [doc] Clarify size_spec syntax. [RT #32449] + +3500. [security] Support NAPTR regular expression validation on + all platforms without using libregex, which + can be vulnerable to memory exhaustion attack + (CVE-2013-2266). [RT #32688] + +3499. [doc] Corrected ARM documentation of built-in zones. + [RT #32694] + +3498. [bug] zone statistics for zones which matched a potential + empty zone could have their zone-statistics setting + overridden. + +3496. [func] Improvements to RPZ performance. The "response-policy" + syntax now includes a "min-ns-dots" clause, with + default 1, to exclude top-level domains from + NSIP and NSDNAME checking. --enable-rpz-nsip and + --enable-rpz-nsdname are now the default. [RT #32251] + +3489. [bug] --enable-developer now turns on ISC_LIST_CHECKINIT. + When cloning a rdataset do not copy the link contents. + [RT #32651] + +3488. [bug] Use after free error with DH generated keys. [RT #32649] + +3487. [bug] Change 3444 was not complete. There was a additional + place where the NOQNAME proof needed to be saved. + [RT #32629] + +3486. [bug] named could crash when using TKEY-negotiated keys + that had been deleted and then recreated. [RT #32506] + +3485. [cleanup] Only compile openssl_gostlink.c if we support GOST. + +3481. [cleanup] Removed use of const const in atf. + +3479. [bug] Address potential memory leaks in gssapi support + code. [RT #32405] + +3478. [port] Fix a build failure in strict C99 environments + [RT #32475] + +3474. [bug] nsupdate could assert when the local and remote + address families didn't match. [RT #22897] + +3470. [bug] Slave zones could fail to dump when successfully + refreshing after an initial failure. [RT #31276] + + --- 9.8.5b1 released --- + +3468. [security] RPZ rules to generate A records (but not AAAA records) + could trigger an assertion failure when used in + conjunction with DNS64 (CVE-2012-5689). [RT #32141] + +3467. [bug] Added checks in dnssec-keygen and dnssec-settime + to check for delete date < inactive date. [RT #31719] + +3465. [bug] Handle isolated reserved ports. [RT #31778] + +3464. [maint] Updates to PKCS#11 openssl patches, supporting + versions 0.9.8x, 1.0.0j, 1.0.1c [RT #29749] + +3463. [doc] Clarify managed-keys syntax in ARM. [RT #32232] + +3462. [doc] Clarify server selection behavior of dig when using + -4 or -6 options. [RT #32181] + +3461. [bug] Negative responses could incorrectly have AD=1 + set. [RT #32237] + +3458. [bug] Return FORMERR when presented with a overly long + domain named in a request. [RT #29682] + +3457. [protocol] Add ILNP records (NID, LP, L32, L64). [RT #31836] + +3456. [port] g++47: ATF failed to compile. [RT #32012] + +3455. [contrib] queryperf: fix getopt option list. [RT #32338] + +3454. [port] sparc64: improve atomic support. [RT #25182] + +3452. [bug] Accept duplicate singleton records. [RT #32329] + +3451. [port] Increase per thread stack size from 64K to 1M. + [RT #32230] + +3450. [bug] Stop logfileconfig system test spam system logs. + [RT #32315] + +3449. [bug] gen.c: use the pre-processor to construct format + strings so that compiler can perform sanity checks; + check the snprintf results. [RT #17576] + +3448. [bug] The allow-query-on ACL was not processed correctly. + [RT #29486] + +3447. [port] Add support for libxml2-2.9.x [RT #32231] + +3446. [port] win32: Add source ID (see change #3400) to build. + [RT #31683] + +3445. [bug] Warn about zone files with blank owner names + immediately after $ORIGIN directives. [RT #31848] + +3444. [bug] The NOQNAME proof was not being returned from cached + insecure responses. [RT #21409] + +3443. [bug] ddns-confgen: Some TSIG algorithms were incorrectly + rejected when generating keys. [RT #31927] + +3442. [port] Net::DNS 0.69 introduced a non backwards compatible + change. [RT #32216] + +3441. [maint] D.ROOT-SERVERS.NET is now 199.7.91.13. + +3440. [bug] Reorder get_key_struct to not trigger a assertion when + cleaning up due to out of memory error. [RT #32131] + +3439. [bug] contrib/dlz error checking fixes. [RT #32102] + +3438. [bug] Don't accept unknown data escape in quotes. [RT #32031] + +3437. [bug] isc_buffer_init -> isc_buffer_constinit to initialize + buffers with constant data. [RT #32064] + +3436. [bug] Check malloc/calloc return values. [RT #32088] + +3435. [bug] Cross compilation support in configure was broken. + [RT #32078] + +3431. [bug] ddns-confgen: Some valid key algorithms were + not accepted. [RT #31927] + +3430. [bug] win32: isc_time_formatISO8601 was missing the + 'T' between the date and time. [RT #32044] + +3429. [bug] dns_zone_getserial2 could a return success without + returning a valid serial. [RT #32007] + +3428. [cleanup] dig: Add timezone to date output. [RT #2269] + +3427. [bug] dig +trace incorrectly displayed name server + addresses instead of names. [RT #31641] + +3425. [bug] "acacheentry" reference counting was broken resulting + in use after free. [RT #31908] + +3422. [bug] Added a clear error message for when the SOA does not + match the referral. [RT #31281] + +3421. [bug] Named loops when re-signing if all keys are offline. + [RT #31916] + +3420. [bug] Address VPATH compilation issues. [RT #31879] + +3419. [bug] Memory leak on validation cancel. [RT #31869] + +3415. [bug] named could die with a REQUIRE failure if a validation + was canceled. [RT #31804] + +3412. [bug] Copy timeval structure from control message data. + [RT #31548] + +3411. [tuning] Use IPV6_USE_MIN_MTU or equivalent with TCP in addition + to UDP. [RT #31690] + +3410. [bug] Addressed Coverity warnings. [RT #31626] + +3409. [contrib] contrib/dane/mkdane.sh: Tool to generate TLSA RR's + from X.509 certificates, for use with DANE + (DNS-based Authentication of Named Entities). + [RT #30513] + +3406. [bug] mem.c: Fix compilation errors when building with + ISC_MEM_TRACKLINES or ISC_MEMPOOL_NAMES disabled. + Also, ISC_MEM_DEBUG is no longer optional. [RT #31559] + +3405. [bug] Handle time going backwards in acache. [RT #31253] + +3404. [bug] dnssec-signzone: When re-signing a zone, remove + RRSIG and NSEC records from nodes that used to be + in-zone but are now below a zone cut. [RT #31556] + +3403. [bug] Silence noisy OpenSSL logging. [RT #31497] + +3402. [test] The IPv6 interface numbers used for system + tests were incorrect on some platforms. [RT #25085] + +3401. [bug] Addressed Coverity warnings. [RT #31484] + +3400. [cleanup] "named -V" can now report a source ID string, defined + in the "srcid" file in the build tree and normally set + to the most recent git hash. [RT #31494] + +3397. [bug] dig crashed when using +nssearch with +tcp. [RT #25298] + +3396. [bug] OPT records were incorrectly removed from signed, + truncated responses. [RT #31439] + +3395. [protocol] Add RFC 6598 reverse zones to built in empty zones + list, 64.100.IN-ADDR.ARPA ... 127.100.IN-ADDR.ARPA. + [RT #31336] + +3394. [bug] Adjust 'successfully validated after lower casing + signer' log level and category. [RT #31414] + +3393. [bug] 'host -C' could core dump if REFUSED was received. + [RT #31381] + +3391. [bug] A DNSKEY lookup that encountered a CNAME failed. + [RT #31262] + +3390. [bug] Silence clang compiler warnings. [RT #30417] + +3389. [bug] Always return NOERROR (not 0) in TSIG. [RT #31275] + +3388. [bug] Fixed several Coverity warnings. + Note: This change includes a fix for a bug that + was subsequently determined to be an exploitable + security vulnerability, CVE-2012-5688: named could + die on specific queries with dns64 enabled. + [RT #30996] + +3386. [bug] Address locking violation when generating new NSEC / + NSEC3 chains. [RT #31224] + +3384. [bug] Improved logging of crypto errors. [RT #30963] 3383. [security] A certain combination of records in the RBT could - cause named to hang while populating the additional - section of a response. [RT #31090] + cause named to hang while populating the additional + section of a response. [RT #31090] + +3382. [bug] SOA query from slave used use-v6-udp-ports range, + if set, regardless of the address family in use. + [RT #24173] + +3381. [contrib] Update queryperf to support more RR types. + [RT #30762] + +3380. [bug] named could die if a nonexistent master list was + referenced in a also-notify. [RT #31004] + +3379. [bug] isc_interval_zero and isc_time_epoch should be + "const (type)* const". [RT #31069] + +3378. [bug] Handle missing 'managed-keys-directory' better. + [RT #30625] + +3376. [bug] Lack of EDNS support was being recorded without a + successful response. [RT #30811] + +3375. [func] Check that 'rndc dumpdb' works on a empty cache. + [RT #30808] + +3374. [bug] isc_parse_uint32 failed to return a range error on + systems with 64 bit longs. [RT #30232] + +3372. [bug] Silence spurious "deleted from unreachable cache" + messages. [RT #30501] + +3371. [bug] AD=1 should behave like DO=1 when deciding whether to + add NS RRsets to the additional section or not. + [RT #30479] + + --- 9.8.4 released --- 3373. [bug] win32: open raw files in binary mode. [RT #30944] @@ -135,11 +507,11 @@ --- 9.8.3 released --- 3318. [tuning] Reduce the amount of work performed while holding a - bucket lock when finshed with a fetch context. + bucket lock when finished with a fetch context. [RT #29239] -3314. [bug] The masters list could be updated while refesh_callback - and stub_callback were using it. [RT #26732] +3314. [bug] The masters list could be updated while stub_callback + or refresh_callback were using it. [RT #26732] 3313. [protocol] Add TLSA record type. [RT #28989] @@ -151,7 +523,7 @@ 3310. [test] Increase table size for mutex profiling. [RT #28809] -3309. [bug] resolver.c:fctx_finddone() was not threadsafe. +3309. [bug] resolver.c:fctx_finddone() was not thread safe. [RT #27995] 3307. [bug] Add missing ISC_LANG_BEGINDECLS and ISC_LANG_ENDDECLS. @@ -328,7 +700,7 @@ 3234. [bug] 'make depend' produced invalid makefiles. [RT #26830] -3231. [bug] named could fail to send a uncompressable zone. +3231. [bug] named could fail to send a incompressible zone. [RT #26796] 3230. [bug] 'dig axfr' failed to properly handle a multi-message @@ -345,7 +717,7 @@ 3226. [bug] Address minor resource leakages. [RT #26624] -3221. [bug] Fixed a potential coredump on shutdown due to +3221. [bug] Fixed a potential core dump on shutdown due to referencing fetch context after it's been freed. [RT #26720] @@ -369,7 +741,7 @@ 3209. [func] Add "dnssec-lookaside 'no'". [RT #24858] -3208. [bug] 'dig -y' handle unknown tsig alorithm better. +3208. [bug] 'dig -y' handle unknown tsig algorithm better. [RT #25522] 3207. [contrib] Fixed build error in Berkeley DB DLZ module. [RT #26444] @@ -672,7 +1044,7 @@ 3077. [bug] zone.c:zone_refreshkeys() incorrectly called dns_zone_attach(), use zone->irefs instead. [RT #23303] -3075. [bug] dns_dnssec_findzonekeys{2} used a inconsistant +3075. [bug] dns_dnssec_findzonekeys{2} used a inconsistent timestamp when determining which keys are active. [RT #23642] @@ -686,7 +1058,7 @@ 3072. [bug] dns_dns64_aaaaok() potential NULL pointer dereference. [RT #20256] -3071. [bug] has_nsec could be used unintialised in +3071. [bug] has_nsec could be used uninitialized in update.c:next_active. [RT #20256] 3070. [bug] dnssec-signzone potential NULL pointer dereference. @@ -732,7 +1104,7 @@ 3052. [test] Fixed last autosign test report. [RT #23256] -3051. [bug] NS records obsure DNAME records at the bottom of the +3051. [bug] NS records obscure DNAME records at the bottom of the zone if both are present. [RT #23035] 3050. [bug] The autosign system test was timing dependent. @@ -742,7 +1114,7 @@ 3049. [bug] Save and restore the gid when creating creating named.pid at startup. [RT #23290] -3048. [bug] Fully separate view key mangement. [RT #23419] +3048. [bug] Fully separate view key management. [RT #23419] 3047. [bug] DNSKEY NODATA responses not cached fixed in validator.c. Tests added to dnssec system test. @@ -1079,7 +1451,7 @@ no data response. [RT #21744] 2952. [port] win32: named-checkzone and named-checkconf failed - to initialise winsock. [RT #21932] + to initialize winsock. [RT #21932] 2951. [bug] named failed to generate a correct signed response in a optout, delegation only zone with no secure @@ -1125,7 +1497,7 @@ in use. [RT# 21868] 2938. [bug] When generating signed responses, from a signed zone - that uses NSEC3, named would use a uninitialised + that uses NSEC3, named would use a uninitialized pointer if it needed to skip a NSEC3 record because it didn't match the selected NSEC3PARAM record for zone. [RT# 21868] @@ -1179,7 +1551,7 @@ revisit the issue and complete the fix later. [RT #21710] -2930. [experimental] New "rndc addzone" and "rndc delzone" commads +2930. [experimental] New "rndc addzone" and "rndc delzone" commands allow dynamic addition and deletion of zones. To enable this feature, specify a "new-zone-file" option at the view or options level in named.conf. @@ -1355,7 +1727,7 @@ successfully responds to the query using plain DNS. [RT #20930] -2873. [bug] Cancelling a dynamic update via the dns/client module +2873. [bug] Canceling a dynamic update via the dns/client module could trigger an assertion failure. [RT #21133] 2872. [bug] Modify dns/client.c:dns_client_createx() to only @@ -1397,7 +1769,7 @@ 2860. [bug] named-checkconf's usage was out of date. [RT #21039] -2859. [bug] When cancelling validation it was possible to leak +2859. [bug] When canceling validation it was possible to leak memory. [RT #20800] 2858. [bug] RTT estimates were not being adjusted on ICMP errors. @@ -1950,7 +2322,7 @@ 2695. [func] DHCP/DDNS - update fdwatch code for use by DHCP. Modify the api to isc_sockfdwatch_t (the - callback functon for isc_socket_fdwatchcreate) + callback function for isc_socket_fdwatchcreate) to include information about the direction (read or write) and add isc_socket_fdwatchpoke. [RT #20253] @@ -2015,7 +2387,7 @@ sets the time when a key is no longer used for signing but is still published. - The "unpublished" date (-U) is deprecated in - favour of "deleted" (-D). + favor of "deleted" (-D). [RT #20247] 2676. [bug] --with-export-installdir should have been @@ -2461,7 +2833,7 @@ 2553. [bug] Reference leak on DNSSEC validation errors. [RT #19291] -2552. [bug] zero-no-soa-ttl-cache was not being honoured. +2552. [bug] zero-no-soa-ttl-cache was not being honored. [RT #19340] 2551. [bug] Potential Reference leak on return. [RT #19341] @@ -2514,7 +2886,7 @@ 2534. [func] Check NAPTR records regular expressions and replacement strings to ensure they are syntactically - valid and consistant. [RT #18168] + valid and consistent. [RT #18168] 2533. [doc] ARM: document @ (at-sign). [RT #17144] Modified: stable/9/contrib/bind9/COPYRIGHT ============================================================================== --- stable/9/contrib/bind9/COPYRIGHT Fri Aug 16 07:03:28 2013 (r254401) +++ stable/9/contrib/bind9/COPYRIGHT Fri Aug 16 07:11:13 2013 (r254402) @@ -1,4 +1,4 @@ -Copyright (C) 2004-2012 Internet Systems Consortium, Inc. ("ISC") +Copyright (C) 2004-2013 Internet Systems Consortium, Inc. ("ISC") Copyright (C) 1996-2003 Internet Software Consortium. Permission to use, copy, modify, and/or distribute this software for any Modified: stable/9/contrib/bind9/FAQ ============================================================================== --- stable/9/contrib/bind9/FAQ Fri Aug 16 07:03:28 2013 (r254401) +++ stable/9/contrib/bind9/FAQ Fri Aug 16 07:11:13 2013 (r254402) @@ -1,6 +1,6 @@ Frequently Asked Questions about BIND 9 -Copyright © 2004-2010 Internet Systems Consortium, Inc. ("ISC") +Copyright © 2004-2010, 2013 Internet Systems Consortium, Inc. ("ISC") Copyright © 2000-2003 Internet Software Consortium. @@ -869,7 +869,7 @@ A: If you run Tiger(Mac OS 10.4) or late Copy the key statement from /etc/rndc.conf into /etc/rndc.key, e.g.: key "rndc-key" { - algorithm hmac-md5; + algorithm hmac-sha256; secret "uvceheVuqf17ZwIcTydddw=="; }; Modified: stable/9/contrib/bind9/FAQ.xml ============================================================================== --- stable/9/contrib/bind9/FAQ.xml Fri Aug 16 07:03:28 2013 (r254401) +++ stable/9/contrib/bind9/FAQ.xml Fri Aug 16 07:11:13 2013 (r254402) @@ -1,7 +1,7 @@