From owner-p4-projects@FreeBSD.ORG Sun Jul 20 08:24:05 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9FCDD106567C; Sun, 20 Jul 2008 08:24:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 640611065671 for ; Sun, 20 Jul 2008 08:24:05 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 519E38FC0C for ; Sun, 20 Jul 2008 08:24:05 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6K8O544050079 for ; Sun, 20 Jul 2008 08:24:05 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6K8O4d8050077 for perforce@freebsd.org; Sun, 20 Jul 2008 08:24:04 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 20 Jul 2008 08:24:04 GMT Message-Id: <200807200824.m6K8O4d8050077@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 145492 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 08:24:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=145492 Change 145492 by pgj@disznohal on 2008/07/20 08:23:47 MFen: 1.227 -> 1.228 hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml 1.185 -> 1.186 hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml 1.83 -> 1.84 hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml 1.444 -> 1.447 hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml 1.104 -> 1.105 hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml 1.114 -> 1.116 hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml 1.321 -> 1.324 hu_HU.ISO8859-2/books/handbook/security/chapter.sgml 1.128 -> 1.129 hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml 1.59 -> 1.60 hu_HU.ISO8859-2/share/sgml/mailing-lists.ent Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#4 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml#9 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml#10 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml#6 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml#4 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml#4 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#5 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml#6 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent#8 edit Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#4 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -2512,8 +2512,9 @@ keresztül. Végül gyõzödjünk meg róla, - hogy az /etc/make.conf tartalma a - fordítási csoport mindegyik + hogy az /etc/make.conf és a + /etc/src.conf állományok + tartalma a fordítási csoport mindegyik gépénél megegyezik a fordító gépével. Ez azt jelenti, hogy a fordító gépnek az alaprendszer ugyanazon ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml#9 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -716,6 +716,12 @@ + &a.wip-status.name; + A &os;-vel kapcsolatos folyamatban levõ + fejlesztések helyzetjelentései + + + &a.www.name; A www.FreeBSD.org @@ -2011,6 +2017,48 @@ + + &a.wip-status.name; + + + A &os;-vel kapcsolatos folyamatban levõ + fejlesztések + helyzetjelentése + + Ezen a levelezési listán kerülnek + bejelentésre a &os; + továbbfejlesztéséhez + fûzõdõ különbözõ + munkák és azok haladásának + menete. Az ide befutó üzeneteket + moderálják. Javasoljuk, hogy + elsõdlegesen az adott témához + tartozó tematikus &os; listára + küldjük a bejelentésünket és + csak egy másolatot erre a listára. Ennek + köszönhetõen a munkánk az adott + témaspecifikus listán rögtön meg + is vitatható, mivel ezen a listán semmi + ilyen nem engedélyezett. + + A lista archívumába tekintve + tájékozódhatunk arról, hogy pontosan + milyen formai követelmények illene megfelelnie a + beküldenõ üzenetünknek. + + A listára beérkezõ üzenetekbõl + egy szerkesztett válogatás jelenik meg + néhány havonta a &os; honlapján a Projekt + helyzetjelentésének részeként + + + . A korábban beküldött + jelentések mellett itt még találhatunk + további példákat. + + + ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml#10 (text+ko) ==== @@ -7,7 +7,7 @@ ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml#6 (text+ko) ==== @@ -7,7 +7,7 @@ The FreeBSD Hungarian Documentation Project Translated by: PALI, Gabor %SOURCE% en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml - %SRCID% 1.444 + %SRCID% 1.447 --> @@ -389,23 +389,12 @@ - Ausztria: - :pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs (a - cvs login használatával - tetszõleges jelszó megadható) - - Franciaország: :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs (pserver (a jelszó anoncvs), ssh (nincs jelszó)) - Németország: - :pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs (rsh, - pserver, ssh, ssh/2022) - - Japán: :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs (a cvs login @@ -4026,6 +4015,22 @@ + Oroszország + + + rsync://cvsup4.ru.FreeBSD.org + + Elérhetõ gyûjtemények: + + + FreeBSD-gnats: A GNATS + hibanyilvántartó + adatbázis. + + + + + Tajvan ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml#4 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -1132,7 +1132,8 @@ A következõ módon indíthatjuk el: - &prompt.root; /etc/rc.d/nfslocking start + &prompt.root; /etc/rc.d/lockd start +&prompt.root; /etc/rc.d/statd start Ha nincs szükségünk valódi zárolásra az NFS kliensek ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml#4 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -1615,18 +1615,20 @@ A nyomtatóeszköz azonosítása - A portok beállításával - foglalkozó szakaszban már + A Hardveres beállítás + címû szakaszban már beazonosítottuk, hogy a &os; a /dev könyvtárban melyik eszközleírón keresztül fogja megszólítani a nyomtatót. Most ideje - ugyanezt tudatni az LPD-vel is. - Így amikor a nyomtatási rendszer ki szeretne - nyomtatni egy munkát, a szûrõprogram - nevében ezt az eszközt nyitja meg (ahol a - szûrõn keresztül továbbítjuk az - adatokat a nyomtató felé). + ugyanezt tudatni az LPD + démonnal is. Így amikor a nyomtatási + rendszer ki szeretne nyomtatni egy munkát, a + szûrõprogram nevében ezt az eszközt + nyitja meg (ahol a szûrõn keresztül + továbbítjuk az adatokat a nyomtató + felé). Az lp tulajdonság segítségével a @@ -2726,11 +2728,11 @@ :if=/usr/local/libexec/ifhp: Készen is vagyunk! Most már nyugodtan - beírhatjuk, hogy lpr - sima.szöveg vagy - lpr - akármi.ps, mind a - kettõnek ki kell tudnia nyomtatódnia. + beírhatjuk, hogy + lpr sima.szöveg vagy + lpr akármi.ps, + mind a kettõnek ki kell tudnia + nyomtatódnia. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#5 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -1996,21 +1996,21 @@ egyetlen tûzfal nem képes például szövegesen válaszolni a kapcsolatok kezdeményezõinek. Ellenben bármelyik - TCP szoftver képes erre, sõt - még többre is. A következõ + TCP-wrapper szoftver képes erre, + sõt még többre is. A következõ néhány szakaszban szemügyre vesszük a - TCP burkolók számos + TCP wrapperek számos lehetõségét, és ahol lehetséges, ott konfigurációs állományokkal is illusztráljuk ezek használatát. A TCP burkoló szoftverek - kiterjesztik az inetd képességeit - minden alatta dolgozó szerverdémon - támogatására. Ezzel a módszerrel meg - lehet oldani a naplózást, üzenetek - küldését a kapcsolatokhoz, a démonok - elérhetõségének + kiterjesztik az inetd + képességeit minden alatta dolgozó + szerverdémon támogatására. Ezzel a + módszerrel meg lehet oldani a naplózást, + üzenetek küldését a kapcsolatokhoz, a + démonok elérhetõségének korlátozását stb. Noha ezen lehetõségek közül néhány tûzfallal is megvalósítható, ezzel nem @@ -2029,13 +2029,13 @@ rendszerünk biztonságában egy újabb remek védelmi vonalat képvisel. - Mivel lényegében ez az inetd + Mivel lényegében ez az + inetd beállításának kibõvítése, ezért a szakasz elolvasásához feltételezzük az inetd - beállításával kapcsolatos - tudnivalók ismeretét. + linkend="network-inetd">inetd beállításával + kapcsolatos tudnivalók ismeretét. Bár az &man.inetd.8; által indított @@ -2051,10 +2051,10 @@ &os; alatt a TCP burkolók használatának egyetlen feltétele - csupán annyi, hogy az inetd parancsot - a paraméterrel indítsuk az - rc.conf állományból. - Az egyébként az + csupán annyi, hogy az inetd + parancsot a paraméterrel + indítsuk az rc.conf + állományból. Az egyébként az alapbeállítás. Természetesen nem árt, ha helyesen állítjuk be az /etc/hosts.allow állományt @@ -2080,8 +2080,8 @@ /etc/hosts.allow állományban szereplõ beállításokkal. A &os; alapértelmezett beállításai szerint - minden inetd által indított - démonhoz lehet kapcsolódni. Ennek + minden inetd által + indított démonhoz lehet kapcsolódni. Ennek megváltoztatásával az alapkonfiguráció áttekintése után foglalkozunk. @@ -2095,10 +2095,10 @@ IP-cím vagy szögletes zárójelek ([ ]) között megadott IPv6 formátumú cím. A cselekvést - tartalmazó mezõ lehet allow vagy - deny annak megfelelõen, hogy - engedélyezzük vagy tiltjuk a megadott - címrõl a csatlakozást. Nem szabad + tartalmazó mezõ (action) lehet + allow vagy deny annak + megfelelõen, hogy engedélyezzük vagy tiltjuk a + megadott címrõl a csatlakozást. Nem szabad elfelejtenünk, hogy az így megadott beállítások közül mindig az elsõként illeszkedõ @@ -2126,7 +2126,7 @@ qpopper : ALL : allow Miután hozzáadtuk ezt a sort, az - inetd szervert újra kell + inetd szervert újra kell indítanunk. Ezt vagy a &man.kill.1; paranccsal, vagy pedig az /etc/rc.d/inetd szkript restart paraméterével @@ -2240,9 +2240,10 @@ A korábban már kifejtett helyettesítõ karakterek túl, mint - például az %a, még léteznek - továbbiak is. Róluk a &man.hosts.access.5; man - oldalon találhatjuk meg a teljes listát. + például az %a, még + léteznek továbbiak is. Róluk a + &man.hosts.access.5; man oldalon találhatjuk meg a + teljes listát. @@ -4413,54 +4414,6 @@ egyaránt támogatja az IPv4 és IPv6 protokollcsaládokat. - - A &os;-ben Fast IPsec néven - találunk egy hardvergyorsítással - támogatott IPsec protokollkészletet is, - amelyet még az OpenBSD-bõl vettek át. Ez - (amikor lehetséges) a &man.crypto.4; alrendszeren - keresztül egy kriptográfiai célhardver - bevonásával igyekszik növelni az IPsec - teljesítményét. Ez az alrendszer - még új, és még nem is ismeri az - IPsec KAME változata által - felkínált összes lehetõséget. - A hardvergyorsítással kisegített IPsec - engedélyezéséhez a következõ - opciót kell hozzátennünk a rendszermag - beállításait tartalmazó - állományhoz: - - - a rendszermag - beállításai - FAST_IPSEC - - - -options FAST_IPSEC # az új IPsec (nem megy az IPSEC-kel együtt) - - - Vegyük észre, hogy jelen pillanatban a - Fast IPsec alrendszer nem - használható az IPsec KAME változata - helyett. Ennek részleteirõl a &man.fast.ipsec.4; - man oldalon tájékozódhatunk. - - - - A rendszermag beállításai - között az - opcióra is szükségünk lesz ahhoz, hogy - a tûzfalak megfelelõ módon követni - tudják a &man.gif.4; tunnelek - állapotát. - - -options IPSEC_FILTERGIF # a tunnelekbõl érkezõ IPsec csomagok szûrése - - - IPsec ESP @@ -4592,9 +4545,12 @@ - A forgatókönyv: két, interneten - keresztül összekötött hálózat, - melyeket egyként akarunk használni + A forgatókönyv: adott egy otthoni és egy + vállalati hálózat, amelyek + külön-külön csatlakoznak az internetre, + és <acronym>VPN</acronym> használatával + ezeket egyetlen hálózatként + szeretnénk használni VPN @@ -4626,1084 +4582,359 @@ a hálózatok belsõ címei lehetnek publikus vagy privát IP-címek, nem - számít. Az átjárón - igény szerint végezhetünk - címfordítást (NAT) is; - - - a két hálózat belsõ - IP-címei nem fedik át - egymást. Habár elméletben - lehetséges a VPN és NAT - technológiák elegyítése, ezt a - típusú felállást itt most nem - preferáljuk. + számít. Fontos viszont, hogy ezek ne + ütközzenek, vagyis ne használja egyszerre + mind a kettõ a 192.168.1.x + címtartományt. + - Ha belül mind a két hálózat - ugyanolyan tartományú IP-címeket - használ (például 192.168.1.x), akkor az egyiküket - át kell számozni. + + + + + Tom + Rhodes + +
trhodes@FreeBSD.org
+
+ Írta: +
+
+
- A hálózat felépítése - tehát valahogy így nézhet ki: + Az IPsec beállítása &os; alatt - - - - + Kezdésképpen a + Portgyûjteménybõl telepítenünk kell a + security/ipsec-tools portot. + Ez a programcsomag rengeteg olyan alkalmazást tartalmaz, + amely segítségünkre lehet a + beállítások elvégzése + során. - - 1. hálózat [ Belsõ gépek ] Privát hálózat: 192.168.1.2-254 - [ Win9x/NT/2K ] - [ UNIX ] - | - | - .---[fxp1]---. Privát IP: 192.168.1.1 - | FreeBSD | - `---[fxp0]---' Publikus IP: A.B.C.D - | - | - -=-=- Internet -=-=- - | - | - .---[fxp0]---. Publikus IP: W.X.Y.Z - | FreeBSD | - `---[fxp1]---' Privát IP: 192.168.2.1 - | - | -2. hálózat [ Belsõ gépek ] - [ Win9x/NT/2K ] Privát hálózat: 192.168.2.2-254 - [ UNIX ] - - + A következõ lépésben létre + kell hoznunk két &man.gif.4; típusú + pszeudoeszközt, melyeken keresztül a két + hálózat között egy tunnel + segítségével ki tudjuk + építeni a szükséges kapcsolatot. + Ehhez root + felhasználóként futtassuk a + következõ parancsokat (a + belsõ és + külsõ + megnevezésû paramétereket + cseréljük ki a valós belsõ és + külsõ átjárók + címeire): - Figyeljük meg a két publikus IP-címet. A - leírás további részében - betûkkel hivatkozunk rájuk, tehát ahol ezek - szerepelnek, oda kell behelyettesíteni a saját - publikus címeinket. A két - átjáró címében .1 az - utolsó szám, és hogy két - hálózat privát IP-címei - eltérnek (192.168.1.x - és 192.168.2.x). A - privát hálózatokon belül minden - számítógépet úgy - állítottunk be, hogy alapértelmezés - szerint a .1 számú - gépet használják - átjárónak. + &prompt.root; ifconfig gif0 create + &prompt.root; ifconfig gif0 belsõ1 belsõ2 + &prompt.root; ifconfig gif0 tunnel külsõ1 külsõ2 - Hálózati szemszögbõl ez azért - fontos, mert így az egyes hálózatok - úgy látják egymás gépeit, - mintha közvetlenül ugyanahhoz az - útválasztóhoz csatlakoznának — - jóllehet ez egy kicsit lassúcska - útválasztó, ami idõnként - hajlamos eldobni a csomagokat. + Tekintsük például, hogy a + vállalati LAN publikus + IP-címe 172.16.5.4, valamint a privát + IP-címe 10.246.38.1. Az otthoni + LAN publikus + IP-címe legyen most 192.168.1.12, valamint a belsõ + privát IP-címe pedig 10.0.0.5. - Ez tehát azt jelenti (például), hogy a - 192.168.1.20 címû - számítógépnek gond - nélküli megy a + Elsõre ez talán még nem teljesen + érthetõ, ezért az &man.ifconfig.8; parancs + használatával is nézzük meg a + példában szereplõ hálózatok + konfigurációját: - ping 192.168.2.34 + Az elsõ átjáró: - parancs. Ugyanígy a &windows;-os gépek is - képesek látni a másik - hálózaton levõ - számítógépeket, belépni - egymás megosztásaiba és így - tovább, pontosan úgy, mint a helyi - hálózaton levõ gépek - esetében. +gif0: flags=8051 mtu 1280 +tunnel inet 172.16.5.4 --> 192.168.1.12 +inet6 fe80::2e0::81ff:fe02:5881%gif0 prefixlen 64 scopeid 0x6 +inet 10.246.38.1 --> 10.0.0.5 netmask 0xffffff00 - Ne feledjük, hogy mindennek egyszerre - biztonságosnak is kell lennie. Vagyis a két - hálózat közti forgalmat titkosítanunk - kell. +A második átjáró: - A VPN létrehozása a két - hálózat között egy - többlépcsõs folyamat. Ezek a - lépcsõk az alábbiak: +gif0: flags=8051 mtu 1280 +tunnel inet 192.168.1.12 --> 172.16.5.4 +inet 10.0.0.5 --> 10.246.38.1 netmask 0xffffff00 +inet6 fe80::250:bfff:fe3a:c1f%gif0 prefixlen 64 scopeid 0x4 - - - Az interneten keresztül hozzunk létre egy - virtuális hálózati - összeköttetést a két - hálózat között. A &man.ping.8; - és hasonló segédprogramok - segítségével gyõzõdjünk - meg a - mûködõképességérõl. - + Miután elvégeztük az iménti + beállításokat, a &man.ping.8; paranccsal + már mind a két privát + IP-tartománynak + elérhetõnek kell lennie, ahogy azt az alábbi + példa is érzékeltetni + kívánja: - - A hálózatok között zajló - forgalom akadálymentes - titkosításához szükség - esetén alkalmazzuk valamilyen biztonsági - házirendet. A &man.tcpdump.1; és - hasonló segédprogramok - használatával ellenõrizzük a - hálózati forgalom - titkosítását. - + otthoni-halo# ping 10.0.0.5 +PING 10.0.0.5 (10.0.0.5): 56 data bytes +64 bytes from 10.0.0.5: icmp_seq=0 ttl=64 time=42.786 ms +64 bytes from 10.0.0.5: icmp_seq=1 ttl=64 time=19.255 ms +64 bytes from 10.0.0.5: icmp_seq=2 ttl=64 time=20.440 ms +64 bytes from 10.0.0.5: icmp_seq=3 ttl=64 time=21.036 ms +--- 10.0.0.5 ping statistics --- +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max/stddev = 19.255/25.879/42.786/9.782 ms - - A &os; átjárókon - állítsunk be olyan szoftvereket, amelyekkel a - &windows;-os számítógépek is - képesek látni egymást a - virtuális magánhálózaton - keresztül. - - +vallalati-halo# ping 10.246.38.1 +PING 10.246.38.1 (10.246.38.1): 56 data bytes +64 bytes from 10.246.38.1: icmp_seq=0 ttl=64 time=28.106 ms +64 bytes from 10.246.38.1: icmp_seq=1 ttl=64 time=42.917 ms +64 bytes from 10.246.38.1: icmp_seq=2 ttl=64 time=127.525 ms +64 bytes from 10.246.38.1: icmp_seq=3 ttl=64 time=119.896 ms +64 bytes from 10.246.38.1: icmp_seq=4 ttl=64 time=154.524 ms +--- 10.246.38.1 ping statistics --- +5 packets transmitted, 5 packets received, 0% packet loss +round-trip min/avg/max/stddev = 28.106/94.594/154.524/49.814 ms - - Az elsõ lépés: a - <quote>virtuális</quote> hálózati - összeköttetés kialakítása - és kipróbálása + Az elvárásainknak megfelelõen + tehát a privát címeken mind a két + oldalnak képesnek kell lennie ICMP + csomagokat küldenie és fogadnia. A + következõ lépésben meg kell mondanunk az + átjáróknak hogyan + irányítsák a csomagokat a két + hálózat közti forgalom megfelelõ + áramlásához. Ezt az alábbi + paranccsal elérhetjük el: - Tegyük fel, hogy a bejelentkeztünk az elsõ - hálózat átjárójára - (amelynek a publikus IP-címe A.B.C.D, a privát IP-címe - 192.168.1.1), és - kiadtunk a W.X.Y.Z - címû gép privát - IP-címére egy ping - 192.168.2.1 parancsot. Hogyan is - valósítható meg ez? + &prompt.root; vallalati-halo# route add 10.0.0.0 10.0.0.5 255.255.255.0 + &prompt.root; vallalati-halo# route add net 10.0.0.0: gateway 10.0.0.5 - - - Az átjárónak el kell tudnia - érnie valahogy a 192.168.2.1 címet. Vagy - úgy is mondhatjuk, hogy a 192.168.2.1 felé ismeri az - utat. - - - A privát IP-címek tartományainak, - amilyen például a 192.168.x, nem szabadna - megjelenniük az interneten. Ehelyett minden olyan - csomagot, amelyet a 192.168.2.1 címre - küldünk, be kell csomagolnunk egy másik - csomagba. Ezt a csomagot úgy kell - beállítani, mintha az A.B.C.D címrõl - küldtük volna a W.X.Y.Z címre. Ennek - folyamatát hívják - becsomagolásnak - (encapsulation). - - - Amikor ez a csomag megérkezik a W.X.Y.Z címre, ki - kell bontani és kézbesíteni a - 192.168.2.1 - címre. - - + &prompt.root; otthoni-halo# route add 10.246.38.0 10.246.38.1 255.255.255.0 + &prompt.root; otthoni-halo# route add host 10.246.38.0: gateway 10.246.38.1 - Erre úgy is gondolhatunk, mint egy - járatra a két - hálózat között. A járat - két szája lesz az A.B.C.D és W.X.Y.Z cím, és a - járatnak ismernie kell azokat a privát - IP-címeket, amiket átereszthet. Ezen a - járaton keresztül fog mozogni a privát - IP-címek között az adat az interneten. + Itt már a belsõ gépeket az + átjárókról és az + átjárók mögül egyaránt + el tudjuk érni. A következõ példa + alapján errõl könnyedén meg is + tudunk gyõzõdni: - Ezt a járatot egy általános - felület (generic interface, avagy a - gif eszközök) - használatával hozzuk létre a &os;-k - között. Ahogy számíthattunk is - rá, az egyes átjárókon levõ - gif felületekhez négy - IP-címet kell beállítani: kettõt a - publikus címeknek, kettõt pedig a privát - címeknek. + vallalati-halo# ping 10.0.0.8 +PING 10.0.0.8 (10.0.0.8): 56 data bytes +64 bytes from 10.0.0.8: icmp_seq=0 ttl=63 time=92.391 ms +64 bytes from 10.0.0.8: icmp_seq=1 ttl=63 time=21.870 ms +64 bytes from 10.0.0.8: icmp_seq=2 ttl=63 time=198.022 ms +64 bytes from 10.0.0.8: icmp_seq=3 ttl=63 time=22.241 ms +64 bytes from 10.0.0.8: icmp_seq=4 ttl=63 time=174.705 ms +--- 10.0.0.8 ping statistics --- +5 packets transmitted, 5 packets received, 0% packet loss +round-trip min/avg/max/stddev = 21.870/101.846/198.022/74.001 ms - A gif eszköz támogatását be kell - építeni mind a két &os; gép - rendszermagjába. Ehhez mind a két gépen - a következõ sort kell hozzáadnunk a - rendszermag beállításait - tartalmazó állományhoz: +otthoni-halo# ping 10.246.38.107 +PING 10.246.38.1 (10.246.38.107): 56 data bytes +64 bytes from 10.246.38.107: icmp_seq=0 ttl=64 time=53.491 ms +64 bytes from 10.246.38.107: icmp_seq=1 ttl=64 time=23.395 ms +64 bytes from 10.246.38.107: icmp_seq=2 ttl=64 time=23.865 ms +64 bytes from 10.246.38.107: icmp_seq=3 ttl=64 time=21.145 ms +64 bytes from 10.246.38.107: icmp_seq=4 ttl=64 time=36.708 ms +--- 10.246.38.107 ping statistics --- +5 packets transmitted, 5 packets received, 0% packet loss +round-trip min/avg/max/stddev = 21.145/31.721/53.491/12.179 ms - device gif + A tunnelek beállítása volt + igazából a könnyebb rész, egy + biztonságos összeköttetés + kialakítása azonban már valamivel komolyabb + folyamatot rejt magában. A most következõ + konfigurációban erre elõre + ismert (vagyis pre-shared, PSK) + RSA-kulcsokat fogunk használni. A + konkrét IP-címektõl + eltekintve az átjárókon a + /usr/local/etc/racoon/racoon.conf + állományok hasonlóan fognak kinézni, + nagyjából valahogy így: - Ezután a megszokott menetben fordítani, - telepíteni és újraindítani a - rendszereiket. + path pre_shared_key "/usr/local/etc/racoon/psk.txt"; # az ismert kulcsot tartalmazó állomány helye +log debug; # a naplózás részletességének beállítása: ha végeztünk a teszteléssel és a hibakereséssel, akkor állítsuk át a 'notify' értékre - A járat beállítása két - lépésbõl áll. Elõször is - az &man.ifconfig.8; használatával a tunnelnek - meg kell mondanunk, hogy mik a külsõ (avagy - publikus) IP-címek. Ezután adjuk meg - ugyanígy a privát IP-címeket. +padding # ezeket ne nagyon változtassuk meg +{ + maximum_length 20; + randomize off; + strict_check off; + exclusive_tail off; +} - Az elsõ hálózat - átjáróján az alábbi - parancsokat kell kiadni a tunnel - beállításához. +timer # idõzítési beállítások, állítsuk be igény szerint +{ + counter 5; + interval 20 sec; + persend 1; +# natt_keepalive 15 sec; + phase1 30 sec; + phase2 15 sec; +} - &prompt.root; ifconfig gif0 create -&prompt.root; ifconfig gif0 tunnel A.B.C.D W.X.Y.Z -&prompt.root; ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff - +listen # cím [port], ahol a racoon majd válaszolni fog +{ + isakmp 172.16.5.4 [500]; + isakmp_natt 172.16.5.4 [4500]; +} - A másik átjárón is futtassuk - le ugyanezeket a parancsokat, de az IP-címek - sorrendjét ezúttal cseréljük - fel. +remote 192.168.1.12 [500] +{ + exchange_mode main,aggressive; + doi ipsec_doi; + situation identity_only; + my_identifier address 172.16.5.4; + peers_identifier address 192.168.1.12; + lifetime time 8 hour; + passive off; + proposal_check obey; +# nat_traversal off; + generate_policy off; - &prompt.root; ifconfig gif0 create -&prompt.root; ifconfig gif0 tunnel W.X.Y.Z A.B.C.D -&prompt.root; ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff - + proposal { + encryption_algorithm blowfish; + hash_algorithm md5; + authentication_method pre_shared_key; + lifetime time 30 sec; + dh_group 1; + } +} - Ezután már jöhet ez a parancs: +sainfo (address 10.246.38.0/24 any address 10.0.0.0/24 any) # address $hálózat/$hálózati_maszk $típus address $hálózat/$hálózati_maszk $típus + # (a $típus lehet "any" vagy "esp") +{ # a $hálózat a két összekapcsolni kívánt belsõ hálózat legyen + pfs_group 1; + lifetime time 36000 sec; + encryption_algorithm blowfish,3des,des; + authentication_algorithm hmac_md5,hmac_sha1; + compression_algorithm deflate; +} - ifconfig gif0 + A példában szereplõ összes + opció részletes kifejtése jóval + meghaladná ezen leírás kereteit, + ezért a bõvebb információkkal + kapcsolatban inkább a racoon + beállításaihoz tartozó man oldal + elolvasását javasoljuk. - Ezzel elénk tárulnak az iménti - beállításaink. Például az - elsõ hálózat - átjáróján nagyjából - ezt fogjuk látni: + A gépek közti hálózati forgalom + titkosításához be kell még + állítanunk egy SPD + házirendet is, így a &os; és a + racoon képes kódolni + és dekódolni a csomagokat. - &prompt.root; ifconfig gif0 -gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280 - tunnel inet A.B.C.D --> W.X.Y.Z - inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff - + Ezt a most következő, a vállalati átjárón találhatóhoz + hasonló egyszerű shell szkripttel tudjuk elvégezni. Ezt az + állományt a rendszer indításakor fogjuk felhasználni, melyet + /usr/local/etc/racoon/setkey.conf néven + mentsünk el: - Remekül látszik, hogy létrejött - egy tunnel az A.B.C.D és - W.X.Y.Z fizikai címek - között, illetve hogy ezen a járaton - keresztül a 192.168.1.1 - és 192.168.2.1 - címek között engedélyezett a - kommunikáció. + #!/bin/sh +/usr/local/sbin/setkey -FP +/usr/local/sbin/setkey -F +# Az otthoni hálózati felé +/usr/local/sbin/setkey -c spdadd 10.246.38.0/24 10.0.0.0/24 any -P out ipsec esp/tunnel/172.16.5.4-192.168.1.12/use; +/usr/local/sbin/setkey -c spdadd 10.0.0.0/24 10.246.38.0/24 any -P in ipsec esp/tunnel/192.168.1.12-172.16.5.4/use; - Ezzel együtt ki kell egészítenünk - mind a két gép útválasztási - táblázatát, amit a netstat - -rn paranccsal meg is tudunk vizsgálni. Most - az elsõ hálózat - átjáróján vagyunk. + Ahogy ezzel megvagyunk, a racoon + az egyes átjárókon a következõ + paranccsal indítható el: - &prompt.root; netstat -rn -Routing tables + &prompt.root; /usr/local/sbin/racoon -F -f /usr/local/etc/racoon/racoon.conf -l /var/log/racoon.log -Internet: -Destination Gateway Flags Refs Use Netif Expire -... -192.168.2.1 192.168.1.1 UH 0 0 gif0 -... - >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jul 20 12:16:01 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EACF41065688; Sun, 20 Jul 2008 12:16:00 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 927D71065683 for ; Sun, 20 Jul 2008 12:16:00 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 428368FC13 for ; Sun, 20 Jul 2008 12:16:00 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6KCG0cm083869 for ; Sun, 20 Jul 2008 12:16:00 GMT (envelope-from ed@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6KCG0OY083867 for perforce@freebsd.org; Sun, 20 Jul 2008 12:16:00 GMT (envelope-from ed@FreeBSD.org) Date: Sun, 20 Jul 2008 12:16:00 GMT Message-Id: <200807201216.m6KCG0OY083867@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ed@FreeBSD.org using -f From: Ed Schouten To: Perforce Change Reviews Cc: Subject: PERFORCE change 145498 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 12:16:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=145498 Change 145498 by ed@ed_dull on 2008/07/20 12:15:53 IFC. Affected files ... .. //depot/projects/mpsafetty/ObsoleteFiles.inc#3 integrate .. //depot/projects/mpsafetty/etc/ppp/ppp.conf#2 integrate .. //depot/projects/mpsafetty/etc/rc.d/bluetooth#2 integrate .. //depot/projects/mpsafetty/etc/rc.d/serial#2 integrate .. //depot/projects/mpsafetty/etc/rc.suspend#2 integrate .. //depot/projects/mpsafetty/etc/remote#2 integrate .. //depot/projects/mpsafetty/share/man/man8/rc.subr.8#2 integrate .. //depot/projects/mpsafetty/sys/Makefile#3 integrate .. //depot/projects/mpsafetty/sys/amd64/include/param.h#2 integrate .. //depot/projects/mpsafetty/sys/crypto/via/padlock.c#2 integrate .. //depot/projects/mpsafetty/sys/kern/subr_autoconf.c#3 integrate .. //depot/projects/mpsafetty/sys/kern/vfs_bio.c#2 integrate .. //depot/projects/mpsafetty/sys/netinet/toedev.h#2 integrate .. //depot/projects/mpsafetty/sys/sys/vmmeter.h#2 integrate .. //depot/projects/mpsafetty/sys/ufs/ffs/ffs_vfsops.c#2 integrate .. //depot/projects/mpsafetty/usr.sbin/Makefile#2 integrate Differences ... ==== //depot/projects/mpsafetty/ObsoleteFiles.inc#3 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.152 2008/07/13 17:17:35 antoine Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.153 2008/07/19 18:21:52 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20080719: sade(8) removed on all but amd64, i386 and sparc64 +.if ${TARGET_ARCH} != "amd64" && ${TARGET_ARCH} != "i386" && \ + ${TARGET_ARCH} != "sparc64" +OLD_FILES+=usr/sbin/sade +OLD_FILES+=usr/share/man/man8/sade.8.gz +.endif # 20080706: bsdlabel(8) removed on powerpc .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=sbin/bsdlabel ==== //depot/projects/mpsafetty/etc/ppp/ppp.conf#2 (text+ko) ==== @@ -5,7 +5,7 @@ # # See /usr/share/examples/ppp/ for some examples # -# $FreeBSD: src/etc/ppp/ppp.conf,v 1.10 2004/11/19 17:12:56 obrien Exp $ +# $FreeBSD: src/etc/ppp/ppp.conf,v 1.11 2008/07/19 20:00:18 marcel Exp $ ################################################################# default: @@ -13,9 +13,9 @@ ident user-ppp VERSION (built COMPILATIONDATE) # Ensure that "device" references the correct serial port - # for your modem. (cuad0 = COM1, cuad1 = COM2) + # for your modem. (cuau0 = COM1, cuau1 = COM2) # - set device /dev/cuad1 + set device /dev/cuau1 set speed 115200 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ ==== //depot/projects/mpsafetty/etc/rc.d/bluetooth#2 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.d/bluetooth,v 1.3 2006/12/31 10:37:18 yar Exp $ +# $FreeBSD: src/etc/rc.d/bluetooth,v 1.4 2008/07/19 20:11:33 marcel Exp $ # PROVIDE: bluetooth # REQUIRE: DAEMON @@ -234,19 +234,19 @@ # Try to figure out device type by looking at device name case "${dev}" in - # sioX - serial/UART Bluetooth device - sio*) + # uartX - serial/UART Bluetooth device + uart*) load_kld ng_h4 || return 1 hook="hook" # Obtain unit number from device. - unit=`expr ${dev} : 'sio\([0-9]\{1,\}\)'` + unit=`expr ${dev} : 'uart\([0-9]\{1,\}\)'` if [ -z "${unit}" ]; then - err 1 "Unable to get sio unit number: ${dev}" + err 1 "Unable to get uart unit number: ${dev}" fi - ${hcseriald} -f /dev/cuad${unit} -n ${dev} + ${hcseriald} -f /dev/cuau${unit} -n ${dev} sleep 1 # wait a little bit if [ ! -f "/var/run/hcseriald.${dev}.pid" ]; then @@ -326,8 +326,8 @@ # Try to figure out device type by looking at device name case "${dev}" in - # sioX - serial/UART Bluetooth device - sio*) + # uartX - serial/UART Bluetooth device + uart*) if [ -f "/var/run/hcseriald.${dev}.pid" ]; then kill `cat /var/run/hcseriald.${dev}.pid` sleep 1 # wait a little bit ==== //depot/projects/mpsafetty/etc/rc.d/serial#2 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.d/serial,v 1.25 2006/03/23 08:48:38 ru Exp $ +# $FreeBSD: src/etc/rc.d/serial,v 1.26 2008/07/19 20:12:02 marcel Exp $ # # PROVIDE: serial @@ -151,12 +151,12 @@ # $1 is the device identifier, and the remainder of the line # lists the device numbers. -# Initialize assorted 8250-16550 (sio) ports. -# maybe d 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v -# mouse d 2 -# modem d 1 -# terminal d 0 -# 3wire d 0 +# Initialize assorted 8250-16550 (uart) ports. +# maybe u 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v +# mouse u 2 +# modem u 1 +# terminal u 0 +# 3wire u 0 # Initialize all ports on a Cyclades-8yo. # modem c 00 01 02 03 04 05 06 07 ==== //depot/projects/mpsafetty/etc/rc.suspend#2 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.suspend,v 1.7 2007/06/21 22:50:36 njl Exp $ +# $FreeBSD: src/etc/rc.suspend,v 1.8 2008/07/19 20:12:33 marcel Exp $ # # sample run command file for APM Suspend Event @@ -45,7 +45,7 @@ # If you have troubles on suspending with PC-CARD modem, try this. # See also contrib/pccardq.c (Only for PAO users). -# pccardq | awk -F '~' '$5 == "filled" && $4 ~ /sio/ \ +# pccardq | awk -F '~' '$5 == "filled" && $4 ~ /uart/ \ # { printf("pccardc power %d 0", $1); }' | sh # If a device driver has problems suspending, try unloading it before ==== //depot/projects/mpsafetty/etc/remote#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/remote,v 1.16 2004/10/13 08:32:34 phk Exp $ +# $FreeBSD: src/etc/remote,v 1.17 2008/07/19 19:08:22 marcel Exp $ # # @(#)remote 5.2 (Berkeley) 6/30/90 # @@ -52,17 +52,17 @@ dial14400|14400 Baud Hayes attributes:\ br#57600:tc=dial: dial|Generic dialing parameters:\ - :dv=/dev/cuad0:cu=/dev/cuad0:at=hayes:du:pa=none: + :dv=/dev/cuau0:cu=/dev/cuau0:at=hayes:du:pa=none: # Hardwired line -cuad0c|cua0c:dv=/dev/cuad0:br#9600:pa=none: +cuau0c|cua0c:dv=/dev/cuau0:br#9600:pa=none: # Finger friendly shortcuts -sio0|com1:dv=/dev/cuad0:br#9600:pa=none: -sio1|com2:dv=/dev/cuad1:br#9600:pa=none: -sio2|com3:dv=/dev/cuad2:br#9600:pa=none: -sio3|com4:dv=/dev/cuad3:br#9600:pa=none: -sio4|com5:dv=/dev/cuad4:br#9600:pa=none: -sio5|com6:dv=/dev/cuad5:br#9600:pa=none: -sio6|com7:dv=/dev/cuad6:br#9600:pa=none: -sio7|com8:dv=/dev/cuad7:br#9600:pa=none: +uart0|sio0|com1:dv=/dev/cuau0:br#9600:pa=none: +uart1|sio1|com2:dv=/dev/cuau1:br#9600:pa=none: +uart2|sio2|com3:dv=/dev/cuau2:br#9600:pa=none: +uart3|sio3|com4:dv=/dev/cuau3:br#9600:pa=none: +uart4|sio4|com5:dv=/dev/cuau4:br#9600:pa=none: +uart5|sio5|com6:dv=/dev/cuau5:br#9600:pa=none: +uart6|sio6|com7:dv=/dev/cuau6:br#9600:pa=none: +uart7|sio7|com8:dv=/dev/cuau7:br#9600:pa=none: ==== //depot/projects/mpsafetty/share/man/man8/rc.subr.8#2 (text+ko) ==== @@ -34,7 +34,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man8/rc.subr.8,v 1.20 2008/03/31 14:11:37 skv Exp $ +.\" $FreeBSD: src/share/man/man8/rc.subr.8,v 1.21 2008/07/20 10:06:14 lme Exp $ .\" .Dd May 18, 2007 .Dt RC.SUBR 8 @@ -288,7 +288,7 @@ .Dq Li ": ERROR: " , and then .Ar message . -.It Ic force_depend name +.It Ic force_depend Ar name Output an advisory message and force the .Ar name service to start. ==== //depot/projects/mpsafetty/sys/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.50 2008/07/10 16:03:24 obrien Exp $ +# $FreeBSD: src/sys/Makefile,v 1.51 2008/07/20 09:16:00 maxim Exp $ .include @@ -8,13 +8,13 @@ .endif # Directories to include in cscope name file and TAGS. -CSCOPEDIRS= boot bsm cam compat conf contrib crypto ddb dev fs gdb geom \ - gnu isa kern libkern modules net net80211 netatalk \ +CSCOPEDIRS= boot bsm cam cddl compat conf contrib crypto ddb dev fs gdb \ + geom gnu isa kern libkern modules net net80211 netatalk \ netgraph netinet netinet6 netipsec netipx netnatm netncp \ - netsmb nfs nfs4client nfsclient nfsserver opencrypto pccard \ - pci rpc security sys ufs vm ${CSCOPE_ARCHDIR} + netsmb nfs nfs4client nfsclient nfsserver nlm opencrypto \ + pccard pci rpc security sys ufs vm xdr ${CSCOPE_ARCHDIR} .if defined(ALL_ARCH) -CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips powerpc sparc64 +CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips pc98 powerpc sparc64 sun4v .else CSCOPE_ARCHDIR ?= ${MACHINE} .endif ==== //depot/projects/mpsafetty/sys/amd64/include/param.h#2 (text+ko) ==== @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)param.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/amd64/include/param.h,v 1.21 2008/03/27 05:03:24 jb Exp $ + * $FreeBSD: src/sys/amd64/include/param.h,v 1.22 2008/07/19 23:42:38 alc Exp $ */ /* @@ -136,7 +136,7 @@ * the kern.maxbcache /boot/loader.conf variable. */ #ifndef VM_BCACHE_SIZE_MAX -#define VM_BCACHE_SIZE_MAX (400 * 1024 * 1024) +#define VM_BCACHE_SIZE_MAX (1024 * 1024 * 1024) #endif /* ==== //depot/projects/mpsafetty/sys/crypto/via/padlock.c#2 (text+ko) ==== @@ -25,14 +25,14 @@ */ #include -__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.13 2007/07/03 12:13:43 gnn Exp $"); +__FBSDID("$FreeBSD: src/sys/crypto/via/padlock.c,v 1.14 2008/07/20 07:34:00 pjd Exp $"); #include #include #include #include #include -#include +#include #include #include #if defined(__i386__) && !defined(PC98) @@ -60,7 +60,7 @@ int32_t sc_cid; uint32_t sc_sid; TAILQ_HEAD(, padlock_session) sc_sessions; - struct mtx sc_sessions_mtx; + struct rwlock sc_sessions_lock; }; static int padlock_newsession(device_t, uint32_t *sidp, struct cryptoini *cri); @@ -126,7 +126,7 @@ return (ENOMEM); } - mtx_init(&sc->sc_sessions_mtx, "padlock_mtx", NULL, MTX_DEF); + rw_init(&sc->sc_sessions_lock, "padlock_lock"); crypto_register(sc->sc_cid, CRYPTO_AES_CBC, 0, 0); crypto_register(sc->sc_cid, CRYPTO_MD5_HMAC, 0, 0); crypto_register(sc->sc_cid, CRYPTO_SHA1_HMAC, 0, 0); @@ -143,10 +143,10 @@ struct padlock_softc *sc = device_get_softc(dev); struct padlock_session *ses; - mtx_lock(&sc->sc_sessions_mtx); + rw_wlock(&sc->sc_sessions_lock); TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) { if (ses->ses_used) { - mtx_unlock(&sc->sc_sessions_mtx); + rw_wunlock(&sc->sc_sessions_lock); device_printf(dev, "Cannot detach, sessions still active.\n"); return (EBUSY); @@ -157,7 +157,7 @@ TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next); free(ses, M_PADLOCK); } - mtx_destroy(&sc->sc_sessions_mtx); + rw_destroy(&sc->sc_sessions_lock); crypto_unregister_all(sc->sc_cid); return (0); } @@ -208,7 +208,7 @@ /* * Let's look for a free session structure. */ - mtx_lock(&sc->sc_sessions_mtx); + rw_wlock(&sc->sc_sessions_lock); /* * Free sessions goes first, so if first session is used, we need to * allocate one. @@ -221,16 +221,16 @@ ses->ses_used = 1; TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); } - mtx_unlock(&sc->sc_sessions_mtx); + rw_wunlock(&sc->sc_sessions_lock); if (ses == NULL) { ses = malloc(sizeof(*ses), M_PADLOCK, M_NOWAIT | M_ZERO); if (ses == NULL) return (ENOMEM); ses->ses_used = 1; - mtx_lock(&sc->sc_sessions_mtx); + rw_wlock(&sc->sc_sessions_lock); ses->ses_id = sc->sc_sid++; TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); - mtx_unlock(&sc->sc_sessions_mtx); + rw_wunlock(&sc->sc_sessions_lock); } error = padlock_cipher_setup(ses, encini); @@ -258,21 +258,21 @@ struct padlock_session *ses; uint32_t sid = ((uint32_t)tid) & 0xffffffff; - mtx_lock(&sc->sc_sessions_mtx); + rw_wlock(&sc->sc_sessions_lock); TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) { if (ses->ses_id == sid) break; } if (ses == NULL) { - mtx_unlock(&sc->sc_sessions_mtx); + rw_wunlock(&sc->sc_sessions_lock); return (EINVAL); } TAILQ_REMOVE(&sc->sc_sessions, ses, ses_next); padlock_hash_free(ses); bzero(ses, sizeof(*ses)); ses->ses_used = 0; - TAILQ_INSERT_TAIL(&sc->sc_sessions, ses, ses_next); - mtx_unlock(&sc->sc_sessions_mtx); + TAILQ_INSERT_HEAD(&sc->sc_sessions, ses, ses_next); + rw_wunlock(&sc->sc_sessions_lock); return (0); } @@ -322,12 +322,12 @@ goto out; } - mtx_lock(&sc->sc_sessions_mtx); + rw_rlock(&sc->sc_sessions_lock); TAILQ_FOREACH(ses, &sc->sc_sessions, ses_next) { if (ses->ses_id == (crp->crp_sid & 0xffffffff)) break; } - mtx_unlock(&sc->sc_sessions_mtx); + rw_runlock(&sc->sc_sessions_lock); if (ses == NULL) { error = EINVAL; goto out; ==== //depot/projects/mpsafetty/sys/kern/subr_autoconf.c#3 (text+ko) ==== @@ -35,12 +35,13 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/subr_autoconf.c,v 1.26 2008/07/19 12:12:54 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/subr_autoconf.c,v 1.27 2008/07/19 19:08:35 rwatson Exp $"); #include "opt_ddb.h" #include #include +#include #include #include #include @@ -60,11 +61,36 @@ /* ARGSUSED */ static void run_interrupt_driven_config_hooks(void *dummy); +/* + * If we wait too long for an interrupt-driven config hook to return, print + * a diagnostic. + */ +#define WARNING_INTERVAL_SECS 60 +static void +run_interrupt_driven_config_hooks_warning(int warned) +{ + struct intr_config_hook *hook_entry; + char namebuf[64]; + long offset; + + printf("run_interrupt_driven_hooks: still waiting after %d seconds " + "for", warned * WARNING_INTERVAL_SECS); + TAILQ_FOREACH(hook_entry, &intr_config_hook_list, ich_links) { + if (linker_search_symbol_name((caddr_t)hook_entry->ich_func, + namebuf, sizeof(namebuf), &offset) == 0) + printf(" %s", namebuf); + else + printf(" %p", hook_entry->ich_func); + } + printf("\n"); +} + static void run_interrupt_driven_config_hooks(dummy) void *dummy; { struct intr_config_hook *hook_entry, *next_entry; + int warned; mtx_lock(&intr_config_hook_lock); TAILQ_FOREACH_SAFE(hook_entry, &intr_config_hook_list, ich_links, @@ -74,9 +100,16 @@ mtx_lock(&intr_config_hook_lock); } + warned = 0; while (!TAILQ_EMPTY(&intr_config_hook_list)) { - msleep(&intr_config_hook_list, &intr_config_hook_lock, PCONFIG, - "conifhk", 0); + if (msleep(&intr_config_hook_list, &intr_config_hook_lock, + PCONFIG, "conifhk", WARNING_INTERVAL_SECS * hz) == + EWOULDBLOCK && warned < 5) { + mtx_unlock(&intr_config_hook_lock); + warned++; + run_interrupt_driven_config_hooks_warning(warned); + mtx_lock(&intr_config_hook_lock); + } } mtx_unlock(&intr_config_hook_lock); } @@ -135,7 +168,6 @@ #ifdef DDB #include -#include DB_SHOW_COMMAND(conifhk, db_show_conifhk) { ==== //depot/projects/mpsafetty/sys/kern/vfs_bio.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/vfs_bio.c,v 1.542 2008/03/28 12:30:11 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/vfs_bio.c,v 1.543 2008/07/20 04:13:51 alc Exp $"); #include #include @@ -481,19 +481,6 @@ nbuf = maxbuf; } -#if 0 - /* - * Do not allow the buffer_map to be more then 1/2 the size of the - * kernel_map. - */ - if (nbuf > (kernel_map->max_offset - kernel_map->min_offset) / - (BKVASIZE * 2)) { - nbuf = (kernel_map->max_offset - kernel_map->min_offset) / - (BKVASIZE * 2); - printf("Warning: nbufs capped at %d\n", nbuf); - } -#endif - /* * swbufs are used as temporary holders for I/O, such as paging I/O. * We have no less then 16 and no more then 256. ==== //depot/projects/mpsafetty/sys/netinet/toedev.h#2 (text+ko) ==== @@ -24,7 +24,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/netinet/toedev.h,v 1.4 2007/12/16 05:30:21 kmacy Exp $ + * $FreeBSD: src/sys/netinet/toedev.h,v 1.5 2008/07/20 02:02:50 kmacy Exp $ */ #ifndef _NETINET_TOEDEV_H_ @@ -78,15 +78,35 @@ struct ifnet *tod_lldev; /* first interface */ const struct tom_info *tod_offload_mod; /* TCP offload module */ - int (*tod_open)(struct toedev *dev); - int (*tod_close)(struct toedev *dev); + /* + * This TOE device is capable of offloading the connection for socket so + */ int (*tod_can_offload)(struct toedev *dev, struct socket *so); + + /* + * Establish a connection to nam using the TOE device dev + */ int (*tod_connect)(struct toedev *dev, struct socket *so, struct rtentry *rt, struct sockaddr *nam); + /* + * Send an mbuf down to the toe device + */ int (*tod_send)(struct toedev *dev, struct mbuf *m); + /* + * Receive an array of mbufs from the TOE device dev + */ int (*tod_recv)(struct toedev *dev, struct mbuf **m, int n); + /* + * Device specific ioctl interface + */ int (*tod_ctl)(struct toedev *dev, unsigned int req, void *data); + /* + * Update L2 entry in toedev + */ void (*tod_arp_update)(struct toedev *dev, struct rtentry *neigh); + /* + * Failover from one toe device to another + */ void (*tod_failover)(struct toedev *dev, struct ifnet *bond_ifp, struct ifnet *ndev, int event); void *tod_priv; /* driver private data */ ==== //depot/projects/mpsafetty/sys/sys/vmmeter.h#2 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)vmmeter.h 8.2 (Berkeley) 7/10/94 - * $FreeBSD: src/sys/sys/vmmeter.h,v 1.34 2007/09/25 06:25:06 alc Exp $ + * $FreeBSD: src/sys/sys/vmmeter.h,v 1.35 2008/07/19 22:35:13 alc Exp $ */ #ifndef _SYS_VMMETER_H_ @@ -89,7 +89,7 @@ u_int v_active_count; /* (q) pages active */ u_int v_inactive_target; /* (c) pages desired inactive */ u_int v_inactive_count; /* (q) pages inactive */ - u_int v_cache_count; /* (f) pages on buffer cache queue */ + 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_pageout_free_min; /* (c) min pages reserved for kernel */ @@ -112,17 +112,6 @@ extern struct vmmeter cnt; /* - * Return TRUE if we are under our reserved low-free-pages threshold - */ - -static __inline -int -vm_page_count_reserved(void) -{ - return (cnt.v_free_reserved > (cnt.v_free_count + cnt.v_cache_count)); -} - -/* * Return TRUE if we are under our severe low-free-pages threshold * * This routine is typically used at the user<->system interface to determine ==== //depot/projects/mpsafetty/sys/ufs/ffs/ffs_vfsops.c#2 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.342 2008/05/24 00:41:32 rodrigc Exp $"); +__FBSDID("$FreeBSD: src/sys/ufs/ffs/ffs_vfsops.c,v 1.343 2008/07/19 22:29:44 pjd Exp $"); #include "opt_mac.h" #include "opt_quota.h" @@ -1303,7 +1303,6 @@ struct vnode *vp; struct cdev *dev; int error; - struct thread *td; error = vfs_hash_get(mp, ino, flags, curthread, vpp, NULL, NULL); if (error || *vpp != NULL) @@ -1368,7 +1367,6 @@ } #endif - td = curthread; lockmgr(vp->v_vnlock, LK_EXCLUSIVE, NULL); error = insmntque(vp, mp); if (error != 0) { @@ -1376,7 +1374,7 @@ *vpp = NULL; return (error); } - error = vfs_hash_insert(vp, ino, flags, td, vpp, NULL, NULL); + error = vfs_hash_insert(vp, ino, flags, curthread, vpp, NULL, NULL); if (error || *vpp != NULL) return (error); ==== //depot/projects/mpsafetty/usr.sbin/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # From: @(#)Makefile 5.20 (Berkeley) 6/12/93 -# $FreeBSD: src/usr.sbin/Makefile,v 1.388 2008/07/04 18:15:36 jhb Exp $ +# $FreeBSD: src/usr.sbin/Makefile,v 1.389 2008/07/19 18:21:52 marcel Exp $ .include @@ -154,7 +154,7 @@ ${_rtsold} \ rwhod \ sa \ - sade \ + ${_sade} \ ${_sendmail} \ setfib \ setfmac \ @@ -309,6 +309,7 @@ _mptable= mptable _ndiscvt= ndiscvt _pnpinfo= pnpinfo +_sade= sade _sicontrol= sicontrol _spkrtest= spkrtest _zzz= zzz @@ -341,6 +342,7 @@ _mount_smbfs= mount_smbfs _mptable= mptable _ndiscvt= ndiscvt +_sade= sade _sicontrol= sicontrol _spkrtest= spkrtest _zzz= zzz @@ -364,6 +366,7 @@ .if ${MACHINE_ARCH} == "sparc64" _eeprom= eeprom _ofwdump= ofwdump +_sade= sade .endif .include From owner-p4-projects@FreeBSD.ORG Sun Jul 20 19:41:07 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4DD011065676; Sun, 20 Jul 2008 19:41:07 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 106871065674 for ; Sun, 20 Jul 2008 19:41:07 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0A07F8FC0C for ; Sun, 20 Jul 2008 19:41:07 +0000 (UTC) (envelope-from ed@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6KJf68l055587 for ; Sun, 20 Jul 2008 19:41:06 GMT (envelope-from ed@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6KJf61Y055585 for perforce@freebsd.org; Sun, 20 Jul 2008 19:41:06 GMT (envelope-from ed@FreeBSD.org) Date: Sun, 20 Jul 2008 19:41:06 GMT Message-Id: <200807201941.m6KJf61Y055585@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to ed@FreeBSD.org using -f From: Ed Schouten To: Perforce Change Reviews Cc: Subject: PERFORCE change 145509 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 19:41:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=145509 Change 145509 by ed@ed_dull on 2008/07/20 19:40:38 Don't use the symlink-approach for the ptycompat(4) driver. I'm not sure, but I can imagine older binaries break here. Affected files ... .. //depot/projects/mpsafetty/share/man/man4/ptycompat.4#2 edit .. //depot/projects/mpsafetty/sys/dev/pts/pts.c#3 edit .. //depot/projects/mpsafetty/sys/dev/pts/pts.h#2 edit .. //depot/projects/mpsafetty/sys/dev/ptycompat/ptycompat.c#3 edit Differences ... ==== //depot/projects/mpsafetty/share/man/man4/ptycompat.4#2 (text+ko) ==== @@ -56,7 +56,7 @@ is being opened, a new terminal shall be created with the .Xr pts 4 driver. -A symlink to this terminal shall be created, which has the name +A device node for this terminal shall be created, which has the name .Pa /dev/ttyXX . .Pp New code should not try to allocate pseudo-terminals using this @@ -73,7 +73,7 @@ .It Pa /dev/pty[l-sL-S][0-9a-v] Pseudo-terminal master devices. .It Pa /dev/tty[l-sL-S][0-9a-v] -Pseudo-terminal slave device symlinks. +Pseudo-terminal slave devices. .El .Sh DIAGNOSTICS None. ==== //depot/projects/mpsafetty/sys/dev/pts/pts.c#3 (text+ko) ==== @@ -90,7 +90,7 @@ * (c) const until freeing */ struct pts_softc { - unsigned int pts_unit; /* (c) Device unit number */ + int pts_unit; /* (c) Device unit number */ struct cv pts_inwait; /* (t) Blocking write() on master */ struct selinfo pts_inpoll; /* (t) Select queue for write() */ @@ -296,6 +296,8 @@ /* * Get the device unit number. */ + if (psc->pts_unit < 0) + return (ENOTTY); *(unsigned int *)data = psc->pts_unit; return (0); #endif /* PTS_COMPAT || PTS_LINUX */ @@ -482,10 +484,12 @@ struct pts_softc *psc = softc; /* Make device number available again */ - free_unr(pts_pool, psc->pts_unit); - mtx_lock(&pts_lock); - pts_ndevs--; - mtx_unlock(&pts_lock); + if (psc->pts_unit >= 0) { + free_unr(pts_pool, psc->pts_unit); + mtx_lock(&pts_lock); + pts_ndevs--; + mtx_unlock(&pts_lock); + } #ifdef PTS_EXTERNAL /* Call shutdown hook */ @@ -504,7 +508,7 @@ .tsw_free = ptsdrv_free, }; -static struct tty * +static int pts_alloc(int fflags, struct thread *td, struct file *fp) { int unit; @@ -516,16 +520,18 @@ unit = alloc_unrl(pts_pool); if (unit < 0) { mtx_unlock(&pts_lock); - return (NULL); + return (EAGAIN); } pts_ndevs++; mtx_unlock(&pts_lock); /* Allocate TTY and softc */ psc = malloc(sizeof(struct pts_softc), M_PTS, M_WAITOK|M_ZERO); - psc->pts_unit = unit; cv_init(&psc->pts_inwait, "pts inwait"); cv_init(&psc->pts_outwait, "pts outwait"); + + psc->pts_unit = unit; + tp = tty_alloc(&pts_class, psc, NULL); finit(fp, fflags, DTYPE_PTS, tp, &ptsdev_ops); @@ -533,30 +539,32 @@ /* Expose the slave device as well */ tty_makedev(tp, td->td_ucred, "pts/%u", psc->pts_unit); - return (tp); + return (0); } #ifdef PTS_EXTERNAL -int +void pts_alloc_external(int fflags, struct thread *td, struct file *fp, pts_external_free_t freefunc, void *softc, const char *name) { struct tty *tp; struct pts_softc *psc; - tp = pts_alloc(fflags, td, fp); - if (tp == NULL) - return (EAGAIN); - psc = tty_softc(tp); + /* Allocate TTY and softc */ + psc = malloc(sizeof(struct pts_softc), M_PTS, M_WAITOK|M_ZERO); + cv_init(&psc->pts_inwait, "pts inwait"); + cv_init(&psc->pts_outwait, "pts outwait"); - /* Add destructor routine */ + psc->pts_unit = -1; psc->pts_external_free = freefunc; psc->pts_external_softc = softc; - /* Create device alias */ - tty_makealias(tp, name); + tp = tty_alloc(&pts_class, psc, NULL); + + finit(fp, fflags, DTYPE_PTS, tp, &ptsdev_ops); - return (0); + /* Expose the slave device as well */ + tty_makedev(tp, td->td_ucred, "%s", name); } #endif /* PTS_EXTERNAL */ @@ -578,7 +586,8 @@ return (error); /* Allocate the actual pseudo-TTY */ - if (pts_alloc(FFLAGS(uap->flags & O_ACCMODE), td, fp) == NULL) { + error = pts_alloc(FFLAGS(uap->flags & O_ACCMODE), td, fp); + if (error != 0) { fdclose(td->td_proc->p_fd, fp, fd, td); return (EAGAIN); } @@ -596,8 +605,11 @@ static int ptmx_fdopen(struct cdev *dev, int fflags, struct thread *td, struct file *fp) { - if (pts_alloc(fflags & (FREAD|FWRITE), td, fp) == NULL) - return (EAGAIN); + int error; + + error = pts_alloc(fflags & (FREAD|FWRITE), td, fp); + if (error != 0) + return (error); /* Raise a warning when a legacy PTY has been allocated */ if (pts_warningcnt > 0) { ==== //depot/projects/mpsafetty/sys/dev/pts/pts.h#2 (text+ko) ==== @@ -41,7 +41,7 @@ typedef void pts_external_free_t(void *softc); -int pts_alloc_external(int, struct thread *, struct file *, +void pts_alloc_external(int, struct thread *, struct file *, pts_external_free_t, void *, const char *); #endif /* _PTS_H_ */ ==== //depot/projects/mpsafetty/sys/dev/ptycompat/ptycompat.c#3 (text+ko) ==== @@ -64,7 +64,7 @@ static int ptydev_fdopen(struct cdev *dev, int fflags, struct thread *td, struct file *fp) { - int u, error; + int u; char name[] = "ttyXX"; if (!atomic_cmpset_ptr((uintptr_t *)&dev->si_drv1, 0, 1)) @@ -74,15 +74,9 @@ u = minor2unit(minor(dev)); name[3] = u >> 8; name[4] = u; - error = pts_alloc_external(fflags & (FREAD|FWRITE), td, fp, + pts_alloc_external(fflags & (FREAD|FWRITE), td, fp, ptydev_free, dev, name); - if (error) { - /* There is no need for the master device anymore */ - destroy_dev_sched(dev); - return (error); - } - /* Raise a warning when a legacy PTY has been allocated */ if (pty_warningcnt > 0) { pty_warningcnt--; From owner-p4-projects@FreeBSD.ORG Sun Jul 20 20:48:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6F9D31065683; Sun, 20 Jul 2008 20:48:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30A4D1065674 for ; Sun, 20 Jul 2008 20:48:50 +0000 (UTC) (envelope-from konrad@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2A0108FC1B for ; Sun, 20 Jul 2008 20:48:50 +0000 (UTC) (envelope-from konrad@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6KKmoKv071359 for ; Sun, 20 Jul 2008 20:48:50 GMT (envelope-from konrad@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6KKjCVl061831 for perforce@freebsd.org; Sun, 20 Jul 2008 20:45:12 GMT (envelope-from konrad@FreeBSD.org) Date: Sun, 20 Jul 2008 20:45:12 GMT Message-Id: <200807202045.m6KKjCVl061831@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to konrad@FreeBSD.org using -f From: Konrad Jankowski To: Perforce Change Reviews Cc: Subject: PERFORCE change 145512 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 20:48:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=145512 Change 145512 by konrad@vspredator on 2008/07/20 20:44:12 CLDR version 1.6 data. Affected files ... .. //depot/projects/soc2008/konrad_collation/colldef.apple/parse.y#4 edit .. //depot/projects/soc2008/konrad_collation/posix/README#2 edit .. //depot/projects/soc2008/konrad_collation/posix/UTF-8.cm#3 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_DJ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_ER.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_ER_SAAHO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/af_NA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/af_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ak_GH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/am_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_AE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_BH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_DZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_EG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_IQ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_JO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_KW.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_LB.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_LY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_MA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_OM.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_QA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_SA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_SD.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_SY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_TN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_YE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/as_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/az_Cyrl_AZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/az_Latn_AZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/be_BY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/bg_BG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/bn_BD.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/bn_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/bs_BA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/byn_ER.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ca_ES.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/cch_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/cs_CZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/cy_GB.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/da_DK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/de_AT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/de_BE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/de_CH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/de_DE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/de_LI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/de_LU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/dv_MV.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/dz_BT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ee_GH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ee_TG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/el_CY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/el_GR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_AS.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_AU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_BE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_BW.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_BZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_CA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_GB.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_GU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_HK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_IE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_JM.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_MH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_MP.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_MT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_NA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_NZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_PH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_PK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_SG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_TT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_UM.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_US.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_US_POSIX.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_VI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/en_ZW.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_AR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_BO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_CL.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_CO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_CR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_DO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_EC.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_ES.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_GT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_HN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_MX.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_NI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_SV.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_US.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_UY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/es_VE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/et_EE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/eu_ES.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fa_AF.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fa_IR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fi_FI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fil_PH.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/fo_FO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_BE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_CA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_CH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_FR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_LU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_MC.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_SN.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/fur_IT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ga_IE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/gaa_GH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/gez_ER.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/gez_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/gl_ES.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/gu_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/gv_GB.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Arab_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Arab_SD.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/ha_Latn_GH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Latn_NE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Latn_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/haw_US.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/he_IL.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/hi_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/hr_HR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/hu_HU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/hy_AM.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/hy_AM_REVISED.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/id_ID.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ig_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ii_CN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/is_IS.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/it_CH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/it_IT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ja_JP.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ka_GE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kaj_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kam_KE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kcg_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kfo_CI.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/kk_Cyrl_KZ.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/kl_GL.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/km_KH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kn_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ko_KR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kok_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kpe_GN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kpe_LR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ku_Latn_TR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kw_GB.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ky_KG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ln_CD.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ln_CG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/lo_LA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/lt_LT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/lv_LV.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/mk_MK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ml_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/mn_Cyrl_MN.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/mn_Mong_CN.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/mr_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ms_BN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ms_MY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/mt_MT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/nb_NO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ne_IN.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/ne_NP.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/nl_BE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/nl_NL.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/nn_NO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/nr_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/nso_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ny_MW.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/om_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/om_KE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/or_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/pa_Arab_PK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/pa_Guru_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/pl_PL.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ps_AF.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/pt_BR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/pt_PT.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ro_MD.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/ro_RO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ru_RU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ru_UA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/rw_RW.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sa_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/se_FI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/se_NO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/si_LK.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/sid_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sk_SK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sl_SI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/so_DJ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/so_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/so_KE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/so_SO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sq_AL.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Cyrl_BA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Cyrl_ME.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Cyrl_RS.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Latn_BA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Latn_ME.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Latn_RS.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ss_SZ.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/ss_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/st_LS.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/st_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sv_FI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sv_SE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sw_KE.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sw_TZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/syr_SY.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ta_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/te_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/th_TH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ti_ER.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ti_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/tig_ER.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/tn_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/to_TO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/tr_TR.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ts_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/tt_RU.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/uk_UA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ur_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ur_PK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/uz_Arab_AF.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/uz_Cyrl_UZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/uz_Latn_UZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ve_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/vi_VN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/wal_ET.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/wo_SN.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/xh_ZA.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/yo_NG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_CN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_HK.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_MO.UTF-8.src#1 add .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_SG.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hant_HK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hant_MO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hant_TW.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zu_ZA.UTF-8.src#2 edit Differences ... ==== //depot/projects/soc2008/konrad_collation/colldef.apple/parse.y#4 (text+ko) ==== @@ -826,9 +826,11 @@ yyerror("More weights than specified by order_start (%d >= %d, %s)", weight_index, directive_count, showwcs($1, CHARMAP_SYMBOL_LEN)); s = getsymbol($1, EXISTS); - if (order_pass && s->val == PRI_UNDEFINED) + if (order_pass && s->val == PRI_UNDEFINED) { printf("<%s> is undefined\n", showwcs($1, CHARMAP_SYMBOL_LEN)); - weight_table[weight_index] = s; + weight_table[weight_index] = 0; + } else + weight_table[weight_index] = s; } ; order_end : ORDER_END '\n' ==== //depot/projects/soc2008/konrad_collation/posix/README#2 (text+ko) ==== @@ -1,12 +1,12 @@ -The POSIX data contained in this directory contains locale source files that -can be used as the basis for a POSIX locale implementation using CLDR data. -The directory provides UTF-8 locale sources ( BMP characters only ) for all -locales supported by CLDR. Individual operating systems provide certain -extensions to the POSIX requirements, some of which are supported by the -tools ( Solaris, AIX ). In most cases, the data here is a good starting -point for a POSIX locale implementation, but may need to be modified -depending in platform considerations. The tools also support generation -of locale sources for character sets other than UTF-8. - -Refer to the tools in tools/java/org/unicode/cldr/posix for more -information. +The POSIX data contained in this directory contains locale source files that +can be used as the basis for a POSIX locale implementation using CLDR data. +The directory provides UTF-8 locale sources ( BMP characters only ) for all +locales supported by CLDR. Individual operating systems provide certain +extensions to the POSIX requirements, some of which are supported by the +tools ( Solaris, AIX ). In most cases, the data here is a good starting +point for a POSIX locale implementation, but may need to be modified +depending in platform considerations. The tools also support generation +of locale sources for character sets other than UTF-8. + +Refer to the tools in tools/java/org/unicode/cldr/posix for more +information. ==== //depot/projects/soc2008/konrad_collation/posix/UTF-8.cm#3 (text+ko) ==== @@ -59893,7 +59893,3 @@ \xEF\xBF\xBB \xEF\xBF\xBC \xEF\xBF\xBD - - -###################### - ==== //depot/projects/soc2008/konrad_collation/posix/aa_DJ.UTF-8.src#2 (text+ko) ==== @@ -1,4600 +1,5279 @@ -comment_char * -escape_char / - -************************************************************************************************* -* POSIX Locale * -* Generated automatically from the Unicode Character Database and Common Locale Data Repository * -* see http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html * -* Locale Name : aa_DJ Codeset : UTF-8 -************************************************************************************************* - -************* -LC_CTYPE -************* - -upper ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ -

;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jul 20 20:57:59 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C5818106566C; Sun, 20 Jul 2008 20:57:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89BD01065678 for ; Sun, 20 Jul 2008 20:57:59 +0000 (UTC) (envelope-from konrad@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 85C668FC14 for ; Sun, 20 Jul 2008 20:57:59 +0000 (UTC) (envelope-from konrad@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6KKvxXL072294 for ; Sun, 20 Jul 2008 20:57:59 GMT (envelope-from konrad@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6KKvx0n072292 for perforce@freebsd.org; Sun, 20 Jul 2008 20:57:59 GMT (envelope-from konrad@FreeBSD.org) Date: Sun, 20 Jul 2008 20:57:59 GMT Message-Id: <200807202057.m6KKvx0n072292@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to konrad@FreeBSD.org using -f From: Konrad Jankowski To: Perforce Change Reviews Cc: Subject: PERFORCE change 145514 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 20:58:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=145514 Change 145514 by konrad@vspredator on 2008/07/20 20:57:52 Fixed a regression introduced in previous commit. Affected files ... .. //depot/projects/soc2008/konrad_collation/colldef.apple/Makefile#3 edit .. //depot/projects/soc2008/konrad_collation/colldef.apple/parse.y#5 edit Differences ... ==== //depot/projects/soc2008/konrad_collation/colldef.apple/Makefile#3 (text+ko) ==== @@ -4,7 +4,7 @@ SRCS= parse.y scan.l y.tab.h LFLAGS= -8 -i CFLAGS+=-I. -CFLAGS+=-DCOLLATE_DEBUG -DYY_NO_UNPUT -Wall -W -ansi -pedantic -Werror +CFLAGS+=-DCOLLATE_DEBUG -DYY_NO_UNPUT -Wall -W -ansi -pedantic -Werror -g LDADD= -ll DPADD= ${LIBL} ==== //depot/projects/soc2008/konrad_collation/colldef.apple/parse.y#5 (text+ko) ==== @@ -826,11 +826,9 @@ yyerror("More weights than specified by order_start (%d >= %d, %s)", weight_index, directive_count, showwcs($1, CHARMAP_SYMBOL_LEN)); s = getsymbol($1, EXISTS); - if (order_pass && s->val == PRI_UNDEFINED) { + if (order_pass && s->val == PRI_UNDEFINED) printf("<%s> is undefined\n", showwcs($1, CHARMAP_SYMBOL_LEN)); - weight_table[weight_index] = 0; - } else - weight_table[weight_index] = s; + weight_table[weight_index] = s; } ; order_end : ORDER_END '\n' From owner-p4-projects@FreeBSD.ORG Sun Jul 20 21:06:09 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC3B01065673; Sun, 20 Jul 2008 21:06:08 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A933B106566C for ; Sun, 20 Jul 2008 21:06:08 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A2C018FC0C for ; Sun, 20 Jul 2008 21:06:08 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6KL68Td075344 for ; Sun, 20 Jul 2008 21:06:08 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6KL679x075341 for perforce@freebsd.org; Sun, 20 Jul 2008 21:06:07 GMT (envelope-from trasz@freebsd.org) Date: Sun, 20 Jul 2008 21:06:07 GMT Message-Id: <200807202106.m6KL679x075341@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Cc: Subject: PERFORCE change 145515 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 21:06:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=145515 Change 145515 by trasz@trasz_traszkan on 2008/07/20 21:05:40 IFC. Affected files ... .. //depot/projects/soc2008/trasz_nfs4acl/ObsoleteFiles.inc#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/UPDATING#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/mv/mv.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/ps/ps.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/bin/stty/print.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/CHANGES#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/FREEBSD-Upgrade#2 delete .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/FREEBSD-Xlist#2 delete .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/bin/named/client.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/bin/named/server.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/doc/arm/Bv9ARM-book.xml#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/doc/arm/Bv9ARM.ch06.html#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/doc/arm/Bv9ARM.pdf#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/bind/aclocal.m4#2 delete .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/bind/config.h.in#2 delete .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/bind/configure#2 delete .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/bind9/check.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/dns/api#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/dns/dispatch.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/dns/include/dns/dispatch.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/lib/dns/resolver.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/version#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/contrib/tcsh/tc.func.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/etc.amd64/ttys#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/etc.i386/ttys#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/namedb/named.conf#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/ppp/ppp.conf#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/amd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/apmd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/bluetooth#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/bsnmpd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/bthidd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/devd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ftp-proxy#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ftpd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/hcsecd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/idmapd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/keyserv#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/lockd#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/lpd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/mountd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/moused#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/nfsd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/nscd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ntpd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/pf#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/powerd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/rpcbind#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/rtadvd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/rwho#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/sdpd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/sendmail#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/serial#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/sshd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/statd#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/timed#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ugidfw#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/watchdogd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ypbind#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/yppasswdd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ypserv#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ypset#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ypupdated#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.d/ypxfrd#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.firewall#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/rc.suspend#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/etc/remote#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/games/fortune/datfiles/fortunes#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/gen/signal.3#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/posix1e/acl_support.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/stdlib/malloc.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sys/Symbol.map#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sys/ktrace.2#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/libc/sys/modstat.2#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/lib/msun/Makefile#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/Makefile#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/ahc.4#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man4/et.4#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man8/rc.subr.8#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/Makefile#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/accept_filter.9#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/accf_data.9#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/share/man/man9/accf_dns.9#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/share/mk/bsd.sys.mk#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/Makefile#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/amd64/pmap.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/conf/GENERIC#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/conf/GENERIC.hints#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/amd64/include/param.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/at91/if_atereg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/i80321/ep80219_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/i80321/iq31244_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/i8134x/crb_machdep.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/ixp425/avila_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/arm/xscale/pxa/pxa_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/boot/forth/loader.conf#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/NOTES#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/files#6 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/newvers.sh#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/conf/options#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/crypto/via/padlock.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/age/if_age.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/amr/amr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ciss/cissio.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ciss/cissreg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_ael1002.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_common.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_mc5.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_t3_hw.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_tn1010.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_vsc8211.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/common/cxgb_xgmac.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_adapter.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/cxgb_sge.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/et/if_et.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/jme/if_jme.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/mxge/if_mxge.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/sound/pci/hda/hdac.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/usb/ohci.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/vr/if_vr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/dev/vr/if_vrreg.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/eli/g_eli.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/vinum/geom_vinum_rename.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/conf/GENERIC#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/conf/GENERIC.hints#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/busdma_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/i386/i386/pmap.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/ia64/ia64/busdma_machdep.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_conf.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_exec.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_intr.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/kern_timeout.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/link_elf_obj.c#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/sched_ule.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_autoconf.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_stack.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_taskqueue.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/subr_witness.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_bio.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/kern/vfs_mount.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/libkern/memset.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/Makefile#5 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/accf_dns/Makefile#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/modules/cxgb/cxgb/Makefile#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/bpf.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/net/if_vlan.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/bluetooth/common/ng_bluetooth.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/bluetooth/drivers/ubt/TODO#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/accf_dns.c#1 branch .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/in_pcb.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/in_pcb.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/ip_carp.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/raw_ip.c#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_output.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/tcp_timer.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/toedev.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netinet/udp_usrreq.c#8 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netipsec/ipsec.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netipsec/ipsec6.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/ipx_input.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/netipx/ipx_usrreq.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/_task.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/eventhandler.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/imgact.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/interrupt.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/ioctl_compat.h#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/libkern.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/taskqueue.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/termios.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/ttycom.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/sys/vmmeter.h#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/ufs/ffs/ffs_vfsops.c#7 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/vm/swap_pager.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/sys/vm/vm_kern.c#3 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/gcore/elfcore.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.bin/yacc/skeleton.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/Makefile#4 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cdcontrol/cdcontrol.1#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/cdcontrol/cdcontrol.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/extattr/rmextattr.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/pstat/pstat.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/pw/pwupd.c#2 integrate .. //depot/projects/soc2008/trasz_nfs4acl/usr.sbin/sysinstall/package.c#2 integrate Differences ... ==== //depot/projects/soc2008/trasz_nfs4acl/ObsoleteFiles.inc#6 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.151 2008/07/06 20:57:35 marcel Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.153 2008/07/19 18:21:52 marcel Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,12 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20080719: sade(8) removed on all but amd64, i386 and sparc64 +.if ${TARGET_ARCH} != "amd64" && ${TARGET_ARCH} != "i386" && \ + ${TARGET_ARCH} != "sparc64" +OLD_FILES+=usr/sbin/sade +OLD_FILES+=usr/share/man/man8/sade.8.gz +.endif # 20080706: bsdlabel(8) removed on powerpc .if ${TARGET_ARCH} == "powerpc" OLD_FILES+=sbin/bsdlabel @@ -57,6 +63,10 @@ # 20080701: wpa_supplicant.conf moved to share/examples/etc/ OLD_FILES+=usr/share/examples/wpa_supplicant/wpa_supplicant.conf OLD_DIRS+=usr/share/examples/wpa_supplicant +# 20080614: pecoff image activator removed +.if ${TARGET_ARCH} == "i386" +OLD_FILES+=usr/include/machine/pecoff_machdep.h +.endif # 20080614: sgtty removed OLD_FILES+=usr/include/sys/ttychars.h OLD_FILES+=usr/include/sys/ttydev.h ==== //depot/projects/soc2008/trasz_nfs4acl/UPDATING#4 (text+ko) ==== @@ -22,6 +22,17 @@ to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20080713: + The sio(4) driver has been removed from the i386 and amd64 + kernel configuration files. This means uart(4) is now the + default serial port driver on those platforms as well. + + To prevent collisions with the sio(4) driver, the uart(4) driver + uses different names for its device nodes. This means the + onboard serial port will now most likely be called "ttyu0" + instead of "ttyd0". You may need to reconfigure applications to + use the new device names. + 20080609: The gpt(8) utility has been removed. Use gpart(8) to partition disks instead. @@ -1067,4 +1078,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.534 2008/07/07 13:08:30 remko Exp $ +$FreeBSD: src/UPDATING,v 1.535 2008/07/13 07:20:14 ed Exp $ ==== //depot/projects/soc2008/trasz_nfs4acl/bin/mv/mv.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/mv/mv.c,v 1.50 2007/12/27 11:33:42 dds Exp $"); +__FBSDID("$FreeBSD: src/bin/mv/mv.c,v 1.51 2008/07/19 00:13:26 delphij Exp $"); #include #include @@ -70,10 +70,10 @@ int fflg, iflg, nflg, vflg; -int copy(char *, char *); -int do_move(char *, char *); -int fastcopy(char *, char *, struct stat *); -void usage(void); +static int copy(const char *, const char *); +static int do_move(const char *, const char *); +static int fastcopy(const char *, const char *, struct stat *); +static void usage(void); int main(int argc, char *argv[]) @@ -154,8 +154,8 @@ exit(rval); } -int -do_move(char *from, char *to) +static int +do_move(const char *from, const char *to) { struct stat sb; int ask, ch, first; @@ -254,8 +254,8 @@ fastcopy(from, to, &sb) : copy(from, to)); } -int -fastcopy(char *from, char *to, struct stat *sbp) +static int +fastcopy(const char *from, const char *to, struct stat *sbp) { struct timeval tval[2]; static u_int blen; @@ -360,8 +360,8 @@ return (0); } -int -copy(char *from, char *to) +static int +copy(const char *from, const char *to) { struct stat sb; int pid, status; @@ -438,7 +438,7 @@ return (0); } -void +static void usage(void) { ==== //depot/projects/soc2008/trasz_nfs4acl/bin/ps/ps.c#2 (text+ko) ==== @@ -47,7 +47,7 @@ #endif #include -__FBSDID("$FreeBSD: src/bin/ps/ps.c,v 1.113 2007/11/08 22:31:28 jhb Exp $"); +__FBSDID("$FreeBSD: src/bin/ps/ps.c,v 1.114 2008/07/18 14:55:22 kevlo Exp $"); #include #include @@ -213,7 +213,7 @@ init_list(&uidlist, addelem_uid, sizeof(uid_t), "user"); memf = nlistf = _PATH_DEVNULL; while ((ch = getopt(argc, argv, PS_ARGS)) != -1) - switch ((char)ch) { + switch (ch) { case 'A': /* * Exactly the same as `-ax'. This has been ==== //depot/projects/soc2008/trasz_nfs4acl/bin/stty/print.c#2 (text+ko) ==== @@ -33,7 +33,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/stty/print.c,v 1.20 2005/05/26 06:57:57 ache Exp $"); +__FBSDID("$FreeBSD: src/bin/stty/print.c,v 1.21 2008/07/16 11:20:04 ed Exp $"); #include @@ -44,8 +44,6 @@ #include "stty.h" #include "extern.h" -#include /* XXX NTTYDISC is too well hidden */ - static void binit(const char *); static void bput(const char *); static const char *ccval(struct cchar *, int); @@ -64,9 +62,6 @@ /* Line discipline. */ if (ldisc != TTYDISC) { switch(ldisc) { - case NTTYDISC: - cnt += printf("new tty disc; "); - break; case SLIPDISC: cnt += printf("slip disc; "); break; ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/CHANGES#2 (text+ko) ==== @@ -1,3 +1,7 @@ + --- 9.4.2-P1 released --- + +2375. [security] Fully randomize UDP query ports to improve + forgery resilience. [RT #17949] --- 9.4.2 released --- --- 9.4.2rc2 released --- ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/bin/named/client.c#2 (text+ko) ==== @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: client.c,v 1.219.18.28 2007/08/28 07:20:00 tbox Exp $ */ +/* $Id: client.c,v 1.219.18.28.10.1 2008/05/22 21:28:04 each Exp $ */ #include @@ -1440,14 +1440,6 @@ } /* - * Hash the incoming request here as it is after - * dns_dispatch_importrecv(). - */ - dns_dispatch_hash(&client->now, sizeof(client->now)); - dns_dispatch_hash(isc_buffer_base(buffer), - isc_buffer_usedlength(buffer)); - - /* * It's a request. Parse it. */ result = dns_message_parse(client->message, buffer, 0); ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/bin/named/server.c#2 (text+ko) ==== @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: server.c,v 1.419.18.57 2007/08/28 07:20:01 tbox Exp $ */ +/* $Id: server.c,v 1.419.18.57.10.1 2008/05/22 21:28:04 each Exp $ */ /*! \file */ @@ -540,6 +540,14 @@ attrs |= DNS_DISPATCHATTR_IPV6; break; } + + if (isc_sockaddr_getport(&sa) != 0) { + INSIST(obj != NULL); + cfg_obj_log(obj, ns_g_lctx, ISC_LOG_INFO, + "using specific query-source port suppresses port " + "randomization and can be insecure."); + } + attrmask = 0; attrmask |= DNS_DISPATCHATTR_UDP; attrmask |= DNS_DISPATCHATTR_TCP; @@ -549,7 +557,7 @@ disp = NULL; result = dns_dispatch_getudp(ns_g_dispatchmgr, ns_g_socketmgr, ns_g_taskmgr, &sa, 4096, - 1000, 32768, 16411, 16433, + 1024, 32768, 16411, 16433, attrs, attrmask, &disp); if (result != ISC_R_SUCCESS) { isc_sockaddr_t any; @@ -2369,7 +2377,9 @@ } static isc_result_t -add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr) { +add_listenelt(isc_mem_t *mctx, ns_listenlist_t *list, isc_sockaddr_t *addr, + isc_boolean_t wcardport_ok) +{ ns_listenelt_t *lelt = NULL; dns_acl_t *src_acl = NULL; dns_aclelement_t aelt; @@ -2379,7 +2389,8 @@ REQUIRE(isc_sockaddr_pf(addr) == AF_INET6); isc_sockaddr_any6(&any_sa6); - if (!isc_sockaddr_equal(&any_sa6, addr)) { + if (!isc_sockaddr_equal(&any_sa6, addr) && + (wcardport_ok || isc_sockaddr_getport(addr) != 0)) { aelt.type = dns_aclelementtype_ipprefix; aelt.negative = ISC_FALSE; aelt.u.ip_prefix.prefixlen = 128; @@ -2438,7 +2449,16 @@ result = dns_dispatch_getlocaladdress(dispatch6, &addr); if (result != ISC_R_SUCCESS) goto fail; - result = add_listenelt(mctx, list, &addr); + + /* + * We always add non-wildcard address regardless of whether + * the port is 'any' (the fourth arg is TRUE): if the port is + * specific, we need to add it since it may conflict with a + * listening interface; if it's zero, we'll dynamically open + * query ports, and some of them may override an existing + * wildcard IPv6 port. + */ + result = add_listenelt(mctx, list, &addr, ISC_TRUE); if (result != ISC_R_SUCCESS) goto fail; } @@ -2468,12 +2488,12 @@ continue; addrp = dns_zone_getnotifysrc6(zone); - result = add_listenelt(mctx, list, addrp); + result = add_listenelt(mctx, list, addrp, ISC_FALSE); if (result != ISC_R_SUCCESS) goto fail; addrp = dns_zone_getxfrsource6(zone); - result = add_listenelt(mctx, list, addrp); + result = add_listenelt(mctx, list, addrp, ISC_FALSE); if (result != ISC_R_SUCCESS) goto fail; } ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/doc/arm/Bv9ARM-book.xml#2 (text+ko) ==== @@ -18,7 +18,7 @@ - PERFORMANCE OF THIS SOFTWARE. --> - + BIND 9 Administrator Reference Manual @@ -6067,7 +6067,15 @@ a wildcard IP address (INADDR_ANY) will be used. If port is * or is omitted, - a random unprivileged port will be used. The avoid-v4-udp-ports + a random unprivileged port number is picked up and will be + used for each query. + It is generally strongly discouraged to + specify a particular port for the + query-source or + query-source-v6 options; + it implicitly disables the use of randomized port numbers + and leads to insecure operation. + The avoid-v4-udp-ports and avoid-v6-udp-ports options can be used to prevent named from selecting certain ports. The defaults are: ==== //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/doc/arm/Bv9ARM.ch06.html#2 (text+ko) ==== @@ -14,7 +14,7 @@ - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - PERFORMANCE OF THIS SOFTWARE. --> - + @@ -3078,10 +3078,18 @@ a wildcard IP address (INADDR_ANY) will be used. If port is * or is omitted, - a random unprivileged port will be used. The avoid-v4-udp-ports - and avoid-v6-udp-ports options can be used - to prevent named - from selecting certain ports. The defaults are: + a random unprivileged port number is picked up and will be + used for each query. + It is generally strongly discouraged to + specify a particular port for the + query-source or + query-source-v6 + options; it implicitly disables the use of randomized port numbers + and leads to insecure operation. + The avoid-v4-udp-ports + and avoid-v6-udp-ports options can be used + to prevent named + from selecting certain ports. The defaults are:

query-source address * port *;
 query-source-v6 address * port *;

==== //depot/projects/soc2008/trasz_nfs4acl/contrib/bind9/doc/arm/Bv9ARM.pdf#2 (text+ko) ====

@@ -1583,19 +1583,26 @@
 /ProcSet [ /PDF /Text ]
 >> endobj
 743 0 obj <<
-/Length 3152      
+/Length 3153      
 /Filter /FlateDecode
 >>
 stream
-xÚí[wŰĆÇßő)ř(=pť÷ËŁŻ9I[۱՗Śy€)Xć	I¨$×ýô]Ř݁¸jŰČľD&'‘la0Łů˙¸łłX-
÷ŐÚ?Ť×{qősq`Ź Ţ+ŇMŠŽŹđž•óëUeűšîžů{łňߪOĠĄŹ1b j1™80bPˆŇÖEbDŐfőJůőí:róĄ^˙^ŻŰ1†‰cEe”‘ÇbF€!Ćԉ›qF2q`Œ Ţ
óCŽöĺ‘űŞ&ď!qęyřńÝďş'ăöćŚYoť?ĚWÝ×ç?žyŮ}ç
gwů&-&ŒŸ{LĄ¸ŒrrYĚ	0Ä8ZaœdâŔ8A˝NŒl7`GLÔALćŤŮâöŞÎQ˘‰qěĐdÇ2~Tóäábx’ĆĐOŒďˆÍ‘ƒšŕh_“´NsýPä_žőőü?xłFLe1"ŔcJ…A’‰Łő0Q”:)s“ßꯚŠŻ/AΊƒ‹ö´ęs^Ě0Äx‚šbN‡GEŸ^'R[LM˛Ă ÂaĚě!ƒšÄpωa	w™Es}Ýî$Ë*ă‡<§­ç(yTť
cŠ‹Ń†;PB1~OG.ŒÔ{Ŕ‡I¸Ói)>?÷˜čüvYýa
wČe1'Ŕăj…q’‰ăőŻ2IĘ	§ĆRÚ둶߶źŚžŤ–aÖ;ű\­VunŐĎrR)Ý÷îóşÚx´ŕÇ5Ť	é-†bđ@ůÄřÍš80xPďá<,´Sí	
-ŕńÉułÎÍt$%ښ;đHjŞBĹô–Â
xňI:
-O.Ü{_Ą„ą„I	*ÔáŤU‹/ë:ˇĐÇ}}Š°ŒMo¸ŇG|Ý3Śť%`ˆĄĺ”ăŰzsq`(ĄŢJZ{z8(aüAP:<ӑĚ=ĄŃ'¤ľ`ˆ!eÐÉā!ƒzČ(I¨eŹeăĺmľ˜nśŐěˇ;Oßß-KßbˆŠ*b @)Ôxœ‹őž@ЎXĺCv <›Íâ­Đ/Ú
víxŃ,Ú˘qşď9%Ž`ˆa…Á°ČāazOX(C,7ƒÚĄ:,~\ůöSĺٸ˜jĘNˇ/ćń	,Ćbx@Ôx?’‹ĂőžđŠ§ÄCwxü|[ˇ/Ú=Đ
>PAs˘"歘
-`ˆQuQă÷ŠĺâŔ¨@˝'*„ FťÓQŃ=…ś…âňÂŃóuľÚ|ÚM*”a',b⊱-‹/ßußź‹íšbš:.BśŠY-‡ëXx{3xŇů‡Ż›m˝LBťÝ•’Y|†ŢržŁCŞÇľNP,/0Ää…	VăKš80yQďQ^ćŃÚÉÁúőĹ?ö‘‡5L?ńĆ!樔+xÚí[wˇÇßő)ř(=ĹýňčkNŇÖvlőĽiÖÔZć	ÉUI*Žűé‹ĺ.€Y;ÚČľD&'‘líěŒć˙#ě…M¨˙—M”&Úq71NE™šĚ–gtríöĂ동†ƒŚđ¨ç—gz-Ěħšž\~šHĽWť“YB­e“ËŤ_Î_ź}sůęÍ凋_/:{uĎ
+=3*ÚSţóě—_éäĘđÓ%ÂY5ůâ˙@	sŽO–gR	˘¤áogÎ~Ž'?ݙfF	šg~.ŔŻŇţPą‰QŽháŇţ"’XÂ.ŚŒSzţC˝Ş×Ővžşž˜rEĎ˙\Ý\L­ćçäbŞüď‹tî;Ů]ŠŠĎş:ĺsO›őő¤űć=T+ŘMĄážZűçoőâz/Ž ~.ŒÔ{`E˘)ՑŢłňa~˝Š l?×Ý7oVţ;Cő‰”˜Őbb€!FT
#&Fę=#QÚşHŒč‰yŃŹţA)żž]Gn>Ôëßëu;Ć0qŹ¨Œ2ňXĚ0ā:q3ÎH&ŒÔťa~ČŃžŸĺďe	fč[Y’V
+y'ËÝö‰ďńrçĽÍžŒÄ˙LjSŠ˙ďŻ
No7–ííeväĘ,n)qíš„ŸëŠţŽL䶖ÝA ň˙ endobj
 742 0 obj <<
 /Type /Page
@@ -1972,7 +1979,7 @@
 800 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 112.292 511.2325 121.3978]
+/Rect [499.2773 112.292 511.2325 121.2483]
 /Subtype /Link
 /A << /S /GoTo /D (subsubsection.6.2.16.17) >>
 >> endobj
@@ -1993,7 +2000,7 @@
 803 0 obj <<
 /Type /Annot
 /Border[0 0 0]/H/I/C[1 0 0]
-/Rect [499.2773 76.197 511.2325 85.3027]
+/Rect [499.2773 76.197 511.2325 85.1533]
 /Subtype /Link
 /A << /S /GoTo /D (subsection.6.2.17) >>
 >> endobj
@@ -2016,23 +2023,19 @@
 /Filter /FlateDecode
 >>
 stream
-xÚíKs7€ďú<¤jĽƒ°x€ÝÖ^v”rdŻ$Wś6Ɂ&ÇËâPáÎ÷×/†`š"Ś%8~ȝJ‘’Ś§›Ýß4ş̐ő¨űőŒ"TXŮÓVE™ę
&;´7r{žĂü1űá }xÔáĺÎߟ	ݳğč]žç2„Ăz—Ă_w^ž]žœ]^ěý~ůÓÎÉe<)T̨¨ĎřÇÎŻżÓŢĐé˙i‡aę}p?PÂŹĺ˝ÉŽT‚()DřÍőÎĹÎżă	Á_W˘Š˘„!Ępř$\€OÂ8'Ćjg˛¤îoőG)wŠëâgŕpÁˆ1T:őa‹Ůrž(‡űďʏs0<ˇ2ÄrSřƒ/ýE9)ŤĹŢ>Wt÷ůŹ?™ôg{űFŇ]˛ˇŻčx‘Ö~ŠÜ­€+nHÁ)k}şĄŮ¨×ź9‡1rűPp3f›ç_ĹŹŘ°#0˛#ŐŢ#5)´f‘Nż(1Çĺo”ňjźOŤć7ýjŘźy=ďĘú­x˜œt\˜
Ä-[|ětBܚ

Ä Y›î†&a
Ş˝…†9+ZhĝĐüoZ•ih¨śúŽdĚcN=wÁܝ
Ä`Z§é†)aŞ=ÂTXKŒ*d“ü"0ݝ´bg؊nͅ
-"ĐŹ…MÓNhRv Đŕڙ’Dkm{…ŃÄR&-PíqP֕”ĘÚH÷ƒŔńx>X&Âýó	B~ÓđëšöčĂ\B  BČZŒt÷ôhĘ„\{KˆĄDPi"!ÂrQ.ăjäGőË+äśžĚç'x8› ˆń#¨m7?	;0~Pí-?…!BÚŘËÔí늟Óę}9UáĎý››ÓŘçœÓWďÝÁ܈m+˝˜ÍāQÂI؁1‚joQ+ŰVDyF^.ŽĘYĂíćwľ¤2nʒÁbüžnW„dOy
-^ĚfbŒŔ(aŒ$ěŔAľÇzUII¤°źe$ś/ŽĽLŹŘŽf2,ĆýđňüôůéYbŃNj"‰ţ¸5¤öö­bu[th6.@ĂĚtŻż¤ěŔpAľˇ¸N¤‘ŕÂsp9=;zńúř$ľ™MZˆ.^¸x|y%¸2 ˆC…’°ŐނÂ)qŚX-"xŹČt/ń§ě@đŘÔÎ÷”HíJ}^Żč­ĽŰź\”ƒĺlźřŘüt4uůaXÎúÍş§ßŠ÷óŘ´xóź+‰nÓa~ÚКZű”'Z*߉Žjüzíó`0(çóč–Ĺ*ŻMýőb<_Źţ&ˇkžůW]pxöUąŤŁ(aFŞ=Ҥ(іúž•¤ö–ťôm™d~Ä<şšM§‹ÄŔ*$Ą’‡Ăę•ÎÄXm‰pEŘ˙Y.–ăaęT†8T?쉯ŕ
-ą!¨ŮÄAŒXéŢű‘˛#ŐޖNŔ%˛íş|˛>TĚqisƒN|ᚇşđ¤zßT†ÓŞŮ ,
-ńtb'WÁóŮ\AŒ+YŒŤ„W¨ö–Ťş'5”EŽÂRßëyœyOˇ Ž1–…Ô7ďLkoăgËjĐlu—ú)śPˇgC1¨`X1¨v`PĄÚăđĘ$ą\úĽÉ¸Q­skb[ŢjU<ńĹÁN`‚Oł‚00f0	;0`6´§ş aëů	çŞń]Đĺclw6]žš.çWnüŞóQ—{âîŰě@¤ŮYˇŹ{<âŽM­ŠëG7z+?E{Łédö]źj†iç™I=M 圾ɞ˘‚—s/( ‡\Ok1D¸Ů4ĂS‡tQXB­żÓř
}ŤľőĹß|Ż\MýígŚłwîşúgóÓŐôCófĐ‹íÍK}Ú¨ŮčsötÎpՏ§ýŕŤÇŃż\*g捷Ń'ŮŃ‚X¸×|ŽÄ;apT{ĚJ׍ú^zUÁŐ	ă´4Ť‹ůXĚĹݸGWýj´VăůÁx6S’gËɛz†Ú™ń
-ůčŚl€ ĆŔZv` Ú#Rfü&Ö\żÔ;%ÚŤöčÖuýźôWńĺőťhĽÜŽ÷B)x;% ˆĄ´MĽ„JړŐ„~BüŔerÎwnnĘj8”ÝóÍQěŢ%ŔJ0hŽéŢ`O‡ů`CkňrbŒ&TăƒzŐÚyađŽš~¸.‡Ł:ĽÖ{ŕšÝV^ůWOpnöŐąŤ#&aFŞ=–_ÜÖó˝Ftjxl}	5™öp6.ýŽéÇóĹtöq}+uˆĎ.nŘÍşPAŮăA!:+(ˆ °…”
-¸öD¸ŃDRÁ<	źI"ĎËŞœ…
-+ůź|ëGę*ÜmsZ˝]-ŻŚË
-ű´ÖŸ˘ď˛Á- Ó=kVŮîűßáé0WlhM\Ě
-˘•lâp¸V…ÝŽG*i~?7żĆxä^wPšîÖâ@–˛
×a3Œhk™‡7°]MëNé-m_6A
-atűŇćĺöĄ`ŠśŰçŻÎhw‘˜2Ă
Uq+,1ţţĚĂŐ`_§śj>/ő“ŮGő3y¤T[Ś>LŢÝŮ,ľrJ ˜Œv?w.aŚ;r¤41îŸIŽ4ŞŐăoJbËĐ_e(¸:" ˆQCÉhwݙ2ăUA’ŠX!
-’j@Şú“r¸?¸*ďÓęí^ýPź-AŸLPđq6A@#ƐŃîę”!A¨úHÄjă;—úÖĘ[ůT¤ś9čÓ	
->Î&bÁ2Úý+xÚíKs7€ďú<¤jĽƒ°x€ÝÖ^v”rdŻ$Wś6Ɂ&ÇËâPáÎ÷×/†`š"Ś%8~ȝJ‘’Ś§›Ýß4ş̐ő¨űőŒ"TXŮÓVE™ę
&;´7r{žĂü1űá }xÔáĺÎߟ	ݳğč]žç2„Ăz—Ă_w^ž]žœ]^ěý~ůÓÎÉe<)T̨¨ĎřÇÎŻżÓŢĐé˙i‡aę}p?PÂŹĺ˝ÉŽT‚()DřÍőÎĹÎżă	Á_W˘Š˘„!Ępř$\€OÂ8'Ćjg˛¤îoőG)wŠëâgŕpÁˆ1T:őa‹Ůrž(‡űďʏs0<ˇ2ÄrSřƒ/ýE9)ŤĹŢ>Wt÷ůŹ?™ôg{űFŇ]˛ˇŻčx‘Ö~ŠÜ­€+nHÁ)k}şĄŮ¨×ź9‡1rűPp3f›ç_ĹŹŘ°#0˛#ŐŢ#5)´f‘Nż(1Çĺo”ňjźOŤć7ýjŘźy=ďĘú­x˜œt\˜
Ä+"ĐŹ…MÓNhRv Đŕڙ’Dkm{…ŃÄR&+âf芍ćýŤéőx0ŽGŠÔŁ
{pLv؁ včx-ťĂž°;ŞÝŐÖŃ+$%ÔĐĐ߸DŔčZ&x6žvßýň K؆lƀ ĆłV݌%ěŔCľˇ}3ƒqúQׯŒÓľ˛ľfmúśy=/çÓĺl™ÝA~3˜Ž~1œßjh~š*}ł˜†'ĹWĺÄľ:Z<źiŰč‘ěxA,ŢĐăXźv`ńFľˇC	+ÓT´ń^E\ÜZ#ؓŹ,‚òq+"xŹČt/ĺŚě@đŘÔÎ÷”HíJ}^Żč­ĽŰź\”ƒĺlźřŘüt4uůaXÎúÍş§ßŠ÷óŘ´xóź+‰nÓa~ÚКZű”'Z*߉Žjüzíó`0(çóč–Ĺ*ŻMýőb<_Źţ&ˇkžůW]pxöUąŤŁ(aFŞ=Ҥ(іú%7’Ú[îҡe’ůóčj6.Ť„JŤW:cľ%Â
a˙gšXŽ‡ŠSâP5ţ°'ž‚˙)Ć f1b!4Ś{ďGĘŒXT{[F8#”ČśëňÉúP1ÇĽ	Ě
:ńe„kę“ę}SNŤfƒ˛(ÄÓIˆ\Ďgs1Ž`d1Žv`\ĄÚ[ŽęžÔPš
+K}Żçqć=݂¸ÄXRßź3­9źilŒŸ-ŤAłŐ]ę§0ŘvBܞ
Ä ‚aĹ J؁A…jĂ+“Äré—&ăFľÎ­‰myŤUńÄ;	>ÍbŔŔ˜aŔ$ěŔ€ŮОꂄ­ç'üŤĆwA—{ŒąÝŮtů溜_šńŤÎG]î‰g¸ołfgݲî;ÚŕéwljM]?¸Ń[ů)ňŘëM'“°ďâU3L;ĎLęi)ˇ­Möźœ{A9äzZ‹!ÂÍŚ>˜ę8¤‹Âjý]˜Ćoč[­­/ţć{ĺjęo?ű0˝s×Ő?›ŸŽŚš7ƒ~Xlo^ę{ÔFÍ^@Ÿł§Ëp†Ť~<í_=ŽţĺR93hź>Ɏ6Ľćs$Ţ	;°€ŁÚcžPš¸^Ő÷ŇŤ
+ŽN§Ő ‰X]ĚÇb.îĆ=şęWŁľĎĆłq˜’<[NŢÔ3ÔΌGPČG7e3+Ę
+ŃYš(@A…ľ` (¤ě@PŔľ‡$&’
+ćIŕMy^Vĺ,TX1Čçĺ[?RWán›Óęíj!x5]Vاľţ}—
ÄŔ€ąąÝۋRv`` ÚŰĄ‘~ďőA3™_§ˆÓWď͇áޚpÇÝoŽž;p˙ÜŤ;źzť5 ¸1›‘VC	#dÓLuL… ŇňŔ‡hÇářÍőx:šőoŽ>śHÄŃáb9•őóöBBé]w×Đ"8"i#x.	 ˆ1#ƒA‘°ŁŐŢŚ
ňş\„źq^ţątĄo!bâËÔŔĘůłŁy„üiԚŃeŮ@+ÍýńŹ˙śĆŔZžmLîĂLđj63@cFÍvŻľ¤ěŔ˜AľˇĚp]?QDfDĂ¸Ťćx:X‚Ôqđ&Îö6-ˆbO%{_e“+Śhť}ţ:ŕŒv‰)C0ÜPőˇÂăďĎ<\
öujŤćórP?™}T?“GJľeę3ÁäݝÍR+‡Ą‚Éh÷Í
+	+00ݑ#Ľ‰q˙
> >> endobj @@ -2136,7 +2139,7 @@ 822 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 603.1591 539.579 612.0157] +/Rect [527.6238 603.0594 539.579 612.0157] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.1.2) >> >> endobj @@ -2185,21 +2188,21 @@ 829 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 519.3733 539.579 528.3296] +/Rect [527.6238 519.3733 539.579 528.479] /Subtype /Link /A << /S /GoTo /D (subsubsection.6.3.5.3) >> >> endobj 830 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 507.4181 539.579 516.3744] +/Rect [527.6238 507.4181 539.579 516.5239] /Subtype /Link /A << /S /GoTo /D (subsection.6.3.6) >> >> endobj 831 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [527.6238 495.4629 539.579 504.5687] +/Rect [527.6238 495.4629 539.579 504.4192] /Subtype /Link /A << /S /GoTo /D (subsection.6.3.7) >> >> endobj @@ -4820,22 +4823,20 @@ /ProcSet [ /PDF /Text ] >> endobj 1244 0 obj << -/Length 2446 +/Length 2371 /Filter /FlateDecode >> stream -xÚÍ]sŰFîÝżBoĽnÂÍ~“›<šąsçꤎúĐkű@Kk‹c‰TEÉžôćţű‹%EI´“Žs37š—X,ŔX-O,¸¸üÇ9Ţ_Ÿţřăéőř÷É'ç“N–žź‚+䏓_çŁˆýĂ gĘĺfô/œ çähy˘bF+ŐB'ŸN~ęöfĂŇ!ý•3“Ël@R )Đ8fLĄËĹbœ*n_7 cl枀UąŒ ĆŻüš uE°U˝ŢÄ(‚ÜÖĽ¨>Óŕňーšb6[EžřŚń MţĆ ,7óˆ@ŔŚŹîZF€˝Ů´ËfqśžŢű ,Ż-\ĹZč\ŢślG\ŃՒĺ`đüxÇcşĆ˛LX‘ëŐŚl…ĆăZZůi‰GěgŻžQ yÔ Uɤ÷fVp -Ќk—N1h ËЎ9č짭_G§@H ëPŚ 7U+Žę‰Ł (ÎjßTßmh➪p‹Şy$\-°š3eLđ-Q -řĺ~ěšůŰbťŘĘü׿ůrząw„d˘ŚFn?#‚5`?ĘěĚkÔnޛhíw$C?=^ǞeŚżćm -bOŽzűěen`UŕĎö˝}ŞrŃ$™–_Uş@Čq!"E.8‘\1Ťá˜ž¤Eë8ЊĂvĹAěJDĺ t)ŞŹÚ -§Sm0íL@i¨­‚{CĺAÖŤžŤEŒ,FÉ6–€#-ć!őĆA֝ŕőĺRŽÎjhÔŞ%œö)Ąŕč{.áÄŃpŸ:!H(ôp ÝŮ ź¨~ŠJłčrřÜ´Ëö#€D҂Ţ{IŚ‘ çXň¤ÍŚö8˛ƒRJ¤ĘaťČE„ÜŽ_njŹ~pôóŮGŒQ R.XĽîžŤLŢá-ë–7Hƒ {‚Ç+Š?7Čä6ŁXŽ!ň*lů(Á‹Őj’.œŤŤĹçˆ^$đ‚€Ă=0‚|`˜˘źxDÄ…ü7ˆĺĎa†yH–'Á0gWžăD4ť{ÁěĐ!ď€cěťÂËź ýŘ8¨}Ň]—áĹž!6Wö›Đ‚˜d3i˙‚¤íŠ§âˆ„‹ŘeĆ~!Ž(Xdß4Ž(HčdŽţq¤Oů™8˘¤`R;XţT/Šh€˜5ĺ<[`‚†TôŔŔGpŁ5A°,¤Q¨rqĐlW=Ç żĄ@e.ÖVˇrŘĄ^řŇĹ -|AŻčv4ő]ţ˙°aÜô)éŸňË ç˙ßEłj­ż i\ń”‹€I1śňźŒeVÉoé"XjYéġw‘>ĺg\D -…GC–OŢSP.M=p‹jŞśJŮ@ŃÜb”÷á}ţ*…ŠAí*œ.ĹßżĽĄfČŰ: ź­źýŇý śÂU[~=íý~™Ń|{÷čŰ!Rv¸ěmŃöďxĚncO,‹=ąÖUěÓMĆBˆ$œ_EgŒž$`ťe^ÄöËŇOçEU6ËřŽVč -ŠÔ°‹„m0 Q1-Ç‚ć&ôyôg`% u\ě÷— fŇ`QBůgëjŻ?čËz[EDěf‡u1Ł]Bëz xööDmD–ű]É]GósłńK̀Ŕ’'-ôś^,ęGŞępUW>bqYVěW„ľ]×PƘbˇ`W&—żĐx ;wž‰I8„éôA˙gî+”œÚ"Vűž™tZŻ>ӈŹQ´ŚĘ;“çąƒ)‚ĄR[&ĎŁ˙„L ¤BßȅzTv˛ÚŘOŸFť~ożďâNWŸ†Rqb}ZS70t"v"BŃńdîŤ8 – O_5ŰV­p}Dmă HNĺ€#ŮĂŞyDC^â\ü,ŕ°ë]N„ĺŐľyď|$RŃZąX`˝„ŔŽXĽŚŰPůŽ ĂŻ…ŚĚťËűĹ%wąYgp5ĺrŘ)ÜľštY˪ިŁŽiűőň˜ő˙ԖF{endstream +xÚÍY_sŰF÷§ĐŰQ7áf˙/™<šą“s§uRG}¸kű@K”ÍąD*"eŸsÓď^`ą¤H›rŇąnëë§ÓV†ô#őä¤71TĎĽ#Ťź~śżčíĄŚXkˆuaž+%jČfŠOścIn$”y*ťŇ2˘ÂĐ/€{}^ťÇeEč~ďÜYÖ;ˇ 4ä2a*Ą›8Z„œeTŽát_ą•ŃéCť€H-@3•hČ7ž|Kr¸UE<˝ą?éŢ+pu˘9Ś)ę|p+?ťä`ű8 ”†{NűĽ96'ůĺTbp†e}…,”-Jë ˜ß.čA ”ĺTqŸďńËe…=5Ž~=ůDœÓ Íá‚%FŤa”ĚŢaí—čV7€_€~řŔš1ąŃ%*šC`OB“Ěż!¤D˘gH!>cŔ\UúL‚ěQź.Hx¸âT™ă:äŐ2fxČű°AhŞ5˙0ë’Ŕ ;1_ŮŕwŹlHfWŢ š;{č‹:ûZ“~> endobj 370 0 obj << -/D [1243 0 R /XYZ 85.0394 650.4851 null] +/D [1243 0 R /XYZ 85.0394 644.6312 null] >> endobj 1246 0 obj << -/D [1243 0 R /XYZ 85.0394 625.2941 null] +/D [1243 0 R /XYZ 85.0394 617.8313 null] >> endobj 374 0 obj << -/D [1243 0 R /XYZ 85.0394 171.1138 null] +/D [1243 0 R /XYZ 85.0394 131.6963 null] >> endobj 1006 0 obj << -/D [1243 0 R /XYZ 85.0394 149.3849 null] +/D [1243 0 R /XYZ 85.0394 108.3585 null] >> endobj 1242 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F39 863 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> @@ -4865,26 +4866,25 @@ /ProcSet [ /PDF /Text ] >> endobj 1249 0 obj << -/Length 3623 +/Length 3641 /Filter /FlateDecode >> stream -xÚÝ[Ýsă6Ď_áˇsfÖ<~ˆů¸Ýf{é\w÷śétîÚ>(śœhjKŽeošűë @}YvŇš›š™NL‘ ?€-㝝=ÁƒĘ{=Ű^%Ö›{6Wß_ýŁ°7^”Ÿ’B›TOP›ž-=Dť)›Č(Őó˛Á_5(żwńo>ądŚD–¤)Oóďş*&ÖŇ UŸZ&jůĄŘŐá NkçĺV|*7Z¨ţRě÷媠§Ăc1šWpJ‚SťšCősŠ…´,\žá}´hš$É-G g‡–}äőâŽqv=eˇ}ŽČęY-ŒfI:dă_!XPŢö^|\⁀{']a‹•^zŞŠą‚čvÂjIic͛ŠłËdÂů$ž^ŔÇx‚ & -’ (Ůśőr°˜)ťNzÍ4só|“Faá¨i‚+Ęě`t[LĂ΃żl:ŁË1Š;ńąÖńą–… „zâېëBB ‹ÁR ¨éwU„Ä´br2Î@ÍüĐBü ş\5bŞ@ŽP)Ž§tu;”ÍY}APŹńz†ŚĄфmĄŚžţđ=őp-˜zC€€˝ě!9ÁƲč÷.ÉIŽč•(z[MíIƒý˙É+‘áE˘ÚÚ÷._ţĘźç ­˛9Ş}§ŮdTJ:ĺ]ŤlÄ{C9˙îęŚ)ď7L -XÍăôĂ2“8ÔÂ9őZÔ;!U{ýQňęŰş‹Nłyě8”ÇKžúŃf~’ dŽ_ŞŤˇ@Ť9îvőR> R ˛jtŚ?S‚I+mňǛc ˙Dƒœ„&e=x˘Î;°?(AĆ0{| irsâw&ŚúŁě% Kuő”ł60с$cÚԍ÷ŕ+×1ëŸFü”QL‰ßx!] ­Ö.%ßĺIşÖéI5  üđ—aԆÔߕK*B4őšť~źś0´ŞŸšŞĘ@$Ď^Čhťŕš˜˜Ř=¨3K}ňňîŐKťĎ„ĚdÖwšăsRŘĚ˙aŸšxĽZîř(Ţ?ńýäŞŕ[žxۓÓώ§ď*źš71˸~e˘ÁßŰÝTŇt"BĽ§×ŤgƒȚ…Éä šLŸę|đŃRő…ŰLÝH8ŰĚWoŠ&–^m&xwn‡ë-~Şl ˜Ď,jŸZ°ąŇě6˛z• ŸAĄňpJeŠ˝ŒÂ>ŐyśTCƓŹ:-Li'’ĨË\´Tl˜ŃÇ< d>C>¸ŒŮż6€‡Ž2ČĽ!%;wŽ\¨VƒË–đH_‚HĆ"vÝ3ĺ öďďŮią:=ÍÖ+!ž‚- -r* a1Ž8äœÄN¸Őp:°1ăç$ăşN83׃Ňg†˘Z0śA˝ęÎ ń™ŐĺŃŃé€=tN)=:zK*>¨ŽFÜô•ˆ¤ÄŔJO‰§2đ^+D8bm/<ťhţŞĹ PěŻů7§áq-,óvŁaSk"‰__Ęą1Rš†ë|şÍďz - -ÓÁůŕĹÎÔĺčpÜl#Đ3hFča“ŕ­csdairxaGn qŠ5ߥ{šVĄŘ¤M¸lÜŻó%żółÖÉrS7‹áîxER<üĘé°ÍËaçŔëĂ@î­Ć;ÖŕNľ˛„DŰcœ3ßíŠ|O˝ámâÜŁ`îżLÖJT*ŹJ}űíŚ~ę>t™(Çe"‘z\ĆSgž|7VŕçęJśńčýU|÷/I& F8óńƒÎ jtxAALá6lręâůóůSÖ˙!Ĺ^ßendstream +xÚÝ[Ýsˇ×_ĄˇP3&ŠŻťGN•il×V'Ó&y8‘GńĆäÂ#-Ť}wą‹űâ‘RÚĚ´ÓŃqŔX,~ťŘ]@ęRŸşLR‘zí/3oE"UršŘ^ČË{hűţB1Í<ÍűTßŢ^üé­É.˝đŠN/oW˝ąœÎŠËŰĺĎłThq#Čٛ÷ďŢŢ|˙ˇŻŻ2;ť˝y˙îjŽ9{{ó—k*}˙ńő?žţx5W.Qł7~ýáöú#5Ľ<ơ7O?'ýxýöúăőť7×WżŢţpq}ŰŽĽż^% .䷋Ÿ•—KXöRď’ËGřByŻ/ˇ61"ąĆĚÍŧ‹żśöZC×)ůŮĉDŰôrnŹp0˙´”•Č”˘,ń"5Ú´RÖjJʑ +Ľœošz^Őűrő4^ą’‰đ6Ë.űĂMŢRMĚnzł+%ĹŃěßżHŠŤ˘ššíf9ţdłűM}—o¨jS6{*Ő+j˝ůŔÄËĺîJšYŃ4Ô?c7ŤňmAĽŚŘ})vÜź_çÔyNZŞ V†hŇ"óĘ yéФZ4Š!š˘ă3! ʨŠřűxŻďŁ­ŁÚŕO¨YŞE–JPčWjĆŕ‚o—bpŠ¸œqztlź\é)lŠ[˙5h%Î +蒜‡VŸę4´ZŞÓFŞ>쏭T*”ňę<+-Ő/lĽ°Y08`ćýaĎŕBo„OqôJ;págßTá÷@ÂÖ*PkEĽčKŚBŠÝޞãč`Ă.}@y3Ľ˙wő?n­ Ť2V=ŠŐHEŞÓÖjRŕ,[˙ +-Ő/Csĺ„1rÄL)##¤Œ”{%UgŻ ěüNŘ+č알آžÁ^IÂÖbˆ[Ř^I‚WčĹ"a€Ľ"+6 ň˙ałŹ÷Óě<ŔúT§ÖRo˝Ř•ůfţŰĄŘ=Íw Ź#`”çy˜fbţ¨L +XjŔŔ§Mţ%ft'kӚ¨~+Ü@cŕŕŕjM<;?[€źł:]ç‹5Ő7‡XŠĚBń@1 ”rúĄ­çŞ-čňç(Ľ‚uäşăp›vFZĺŐ<łłox´ŞŘ?ÖťĎôq—WËÇrš_‹Š@űöĘCD +”pŕoĘmˆVÁ ‰ Žĺʁ tâˆD ŤŔˆÖ*&ď€Ć÷†lFcXŃč<ÝăşÝ^đ€(!ĘC I›Ş€&D˛L9Ö7 &›HvĺŠüŽÄŤŁNĄ~×,şň) ÇU+5 G˘ÄLžŔ“v‚[‚ÎKNý IgdÄQDfťľK#A0ŤuľÁŢŇĘ0ˇg„K’Ńq:iÖ´ňœ J˜vÍóĹUc{˝šÔŰ>G¤ő,€#Ű 9:÷UÍŽDgk&ň9śÖˇiĽ—l­’:l-›Ÿ› +sšd÷4%ůć.Ś—€—ąšłhîŔÖQ–ÚzˆŹ2?´ĘmŠŚ[.|tŚp%ʛčĹPŽ~IŸ‡†ČŸ idN$ ’ßg3›š‘@N˜“X‘ťtޜôŠN›“–*H§ď+XÍíôĂ2“8ÔÂ9őRÔ;!U{ RňěŰşóNłYô8$ÉKž+¤Â/iĎ+PŸę´ľTCÁOĽ­ó™‡húěô-ŐÄüCœx‘eI6d hU˝h?˘YMo_°ŽnÜřE*„Ľž +!9Š6ÂÂSöUIO¨żÍ*KŐpç)Č{­zř˘! XköMßę]„„zŘ˙Őx˙9ŗ´xz&ŸĆ\Ą+}6C>Ljk°I „Ů­gő">…BĐĂT=BöˆÎ`‰†ŒÇXuœ•ŇNXkÔYZ˘cĚč5… gŔ'0űđŃĺ9)¤dgČńƒSÔjpÍ>é%ˆdbŐSĄnĐÇć2HÔéą[BŻăę-=ŢĘé'žŸň5ŰzĎožčM_÷Đ ÓĄ!îyÉž'ßÁɟ€“ś íŠŠ†[OYkáł,íFžč< endobj 1248 0 obj << /Type /Page @@ -4897,181 +4897,193 @@ /D [1248 0 R /XYZ 56.6929 794.5015 null] >> endobj 1247 0 obj << -/Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F39 863 0 R >> +/Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1253 0 obj << -/Length 2665 +/Length 2555 /Filter /FlateDecode >> stream -xÚÝ]oŰ8ň=żÂo§-{vO@"-Uď~łÎ۲Ť8ł(Ň}S폁ŠTI0źgŘŞĚźëÉĆm•šÔXĄÓ˘} hv˜=RÓČÝ$˜ZclߤťˇBj˛˛ă8h>ź$ĘčŞ'Em'ëOľQÔΧ†'7đżH.DDĽĐŮÄŔ;3Ť>ů2MRÎIÂęÁţś;)ř‰Ÿ.—bňś†;Mú׊”§}Ňţ^`‡=˝ĐpŌ૘bÖ3ý{˝ČÁ¤Ŕ:źń—ˆT§œŔźšPœEYŹif^żŞ[šÍj…ćŠ@{ÂLŃśd}0đĺgÉŹč„ů|]4ŇÝšdA§ńáűćsóć#hžÍ`óě\°ä3ţ‡ž˜:PCĺ,8c#'ý‡ţ1ݑt}Śť ńcš=.ĹEpĄŠ qí0Œł”ů—e2UÚî^v`ń1BvXG<ŮôѨĽ1 ! Ö?ဍk„‘A4Çh•Üăä&ş’&_(oF—6)Ž—'6„ŚJ{^őâ_łbŐLńÁ{´@° ,PđĽDˆkËbNĂMCĄŔˏć@ÁčYřD[Č$Œs'Ţs‰ÖńÇë°đ"ů˘Ŕđőŕú 'ůˆH#| ß"ˇď3`ä5Ćck‘Ąb]AœĂĄŮ=Ž_DćKoÔ0ĆDżdń€N1feÓ˘=V5˘‚ƒ›}o862nšËËE˜÷5g!r*:íMSLQÚ!vC˛—9Š‡ÎçŮi’´]Ü-ƒš <&ľ„-˜{‰0™ÉÔ@ĚýWw “J/Ě2ń­0ŠáÍ8ăöEäutĆÚ˙@˜ě“>&Dg]ëUšąä ăN˝ĄÁźĆ/&śeó@Š>-‡OŐ řśá~î6فĄý× -H#Ź S†)™•C^00 Ëú ‡ťŔ„Ł~`–S…mcq-Ō€÷yů"śOúD+0p\ü˙÷zűý?ÝëĺŇ–ŠÓŮL‡uŕśĆĘ1°QÁŔoői&4k„…AŞg@§2ž yřľü\Œ6ôRŰŏoşW­|ŘÍőaĹwlW+ĐÉ]Śęż!xz8&ą¸ŠÚ!.örŠ]ƁůȈ§ć†§Bc'PŠTe d Íć&…<–3™mĆ>}Bŕ#¤Oý -eŐ\°ƒ2‚ţc]׏jş™ŻŚ˜nĽ!;ƒ]”Ż9¤†Gٲćdťř……ˆžă>ä:*„i˘žŁš -(č"”Ą)ş8-aöTPŐÇý}›@€Tâ‘ôÖŞ|Ůšókő’fu~"čąZîŢťŸ#Bů8÷ľňŹIj´’Óg7¤HT­ ŠÜô… Ÿ˘ŸńÍ-ƒ-¤g)ýäíkŃyls…Ű`"Š7Ŕ†›Íěa°qȸeˆóîr (šˇE¨+xÚÝZ_sŰ8ϧđŰ)3ľ–˙I=vŰ´—Ý´—unśű ŘrŁŠlš–œlúé HE˛e7fçćn:S$H‚ ˆ+G&źšüő‚¨ˇ×/űíĺőůŸł_Î.fÝYúçĺLâAžœýń'›,ŕŘżœąTfNOîĄÁRžeb˛:SZŚZI{ŞłßĎţŐ-ŘőSÇô§ĽKľvDBöČĐĘLŹÎR#a˜Żx"“Ô›śŹ×yU=Pť˝-°É‡×ďŠgSoŰÔˇkŠQËz;ŕ7Éöœť¤XҧšĽÎ/ťb[ 5ş=aň}îq˝ĹĂ:_•sßmy[4p)R¸ärI,ëşE˝Ă᧜§™ÖŸ¤)źtŔXśř°č2ßUmC­śŚoNŸćĄi‹ŃózÝz1ęŞň‚@ß]^í +"ďoËům ËŞ"j×삲 q8I ¸ÉbvŻQx!“öœ'Ä$“rÝŰe>s> +ĄćUÝLÇNW4-j¨‘é°vŇ^Ťş-h X/ВAłŰ˛!žHČ´ÚĹ5óÍŚ€{đ˝ĺ:ěsÖŽ-qí4("˜ä&ŐÜd š7ŹŞŞď§í6_7ËbřűćhlŞô;™í€6…*˜J'ӌãŞ 7OJ–2ůZƒ2ץqS”ëOH‚ZÂŚ$ů­Bš¤\cM3ठu4›b^~dL¨4ÉTPškÁ+7/‚BŹH0bh7;źGŽ“yŽäĆŰ#vÔw …rą(ÖĄĆsjn‚lweqśÄGžzmáČMŢxKBň˜ĘőźÚ-źÚą;5 +đHâ{5ÂS&Œ +sŻ ؄č˛Ą +îËö-}óřŐ(›Z͢šý‰w +ŽĎFiëíČ:°Ť3: +çő3şł™ L7U=˙L˛őeô¸4˝OťmN+í&†é”+îĄwňe–¤˛LWö§}Ԃďřér%&Żk8Ó¤Ź¸ň´ż´?źĂž]h8˘c ˇ€ý–|Őďu…Ž^‡<&KŕęRN¤ÇA$ŠŔS•Ĺ–zuří<Ńě6|ž +Ź'ômKŻ䯹—ží+Ţě㤑iDŽáÝrKđ>A^"[‹ŰuîC,k/Ǣp(ĽÔĐĆ@żô⁝0zŞbÚEŕZŘ€+ €ˆ„ô8$1—rŢĺżÇŐ°'˝SŠâJ aÉ >Kŕ%-ł=X˘gĄŔ;aŐđYœöĹ+ŻNG5}ŽVš]ĐéČŻŢŕ՟Śă‘f`H؛rf(·MŔE/ᲁIa˙ŁIšŹgR ×a+ÄţzÄBŚđj,z` ëzäŇš“śTĂůś endobj 1252 0 obj << /Type /Page /Contents 1253 0 R /Resources 1251 0 R /MediaBox [0 0 595.2756 841.8898] -/Parent 1256 0 R +/Parent 1255 0 R >> endobj 1254 0 obj << /D [1252 0 R /XYZ 85.0394 794.5015 null] >> endobj -378 0 obj << -/D [1252 0 R /XYZ 85.0394 141.2512 null] ->> endobj -1255 0 obj << -/D [1252 0 R /XYZ 85.0394 118.94 null] ->> endobj 1251 0 obj << /Font << /F37 747 0 R /F23 682 0 R /F21 658 0 R /F62 995 0 R /F63 998 0 R >> /XObject << /Im2 984 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1259 0 obj << -/Length 3339 +1258 0 obj << +/Length 3193 /Filter /FlateDecode >> stream -xÚ­ZÝsă6Ď_áˇ*3ľNü5÷´ťÍîm§Ýí%žš‡^d[ItkKŽ%'›ţő >lŮš˝Ţd2‚Hˆ-J\07ónÄůpČS€SŇĹF&Ś—ěuŁŘ#)c˜`á´äŁiX-óŠŕŔ4!xhĘhŔ™=ź Öă<" Ş Í?szŹę.#@ ővçŤUąó§U˙V­šűĄâLŒ{|!-QÁkŹÁ]áńBű%ĂG‡×řBŠ$Rd@š/Š-.+ąĂߝó÷Ô4]üsĹĞT*ÎW#Ň)™Ş$ʟˇP§ąÉ_C ‚|姲˘uÍŠD†“⼐ÎCV™qCi‚ľƒë’ŕőƒĹ=ëí˜XKuŮŮLç}=0ůmZíÎ:9Ä÷4lö’äŽéTôřČěbëR3’˝eÖAiŢö4Ő„íą‡CKgĆ@/ŢýuU]4Ďş`_ŇMG%ÝžZL‡žŠ”)ŢŠŒÍů‚ś•x<6˝Oýž"38Mž­…PąĐâ•p=äş°ëkşB8Úy X§!qž(żăšP`4W™ĹŠtvŹóľŚß}Í;ź×#C¨JCż÷Eí¨ŠgéáĐŻO~ńƒM~Śˆ/ŠňŰ<ć+xÚ­ZKs㸞űWčśtՊ+§yx&Ţڝ™ŘŢĘałŠ˘mf(R+Rö8ż>Ýč%ď$)—‹x4ť@ăë%ţä"6ĄIŁt‘¤:Œ…ŒůćB,`îă…dšĽ'ZŽŠŢŢ]üĺƒJi˜šČ,îîGźl(Ź•‹ťőo Łđ8ˆŕÝçOŽ?ţzóć2ŃÁÝőçO—Ë(Á‡ëŸŻ¨őńćÍ/żźšš\JËŕÝßŢ|šťşĄ)Ă<Ţ^zO#)=N0˝šúpusőéÝŐĺďw?]\ÝőkŻW +… ůăâˇßĹb ËţéB„*ľńâ:"”i-6:VaŹ•ň#ŐĹíĹß{†ŁY÷ęěţIFĘD3Éš ŒÓШHő(Mha[„€ČÖ´Ä_ߥƗf×Qëç˛íZ\1ˆ]FI¨Œ%ŮSSŽ—Ozš_o—[ wT ]¤§°ebx×˝RŻ™fŹĄLĂÄHëiˆ­ůl5żŇn‹źź}SdřAjÓ@sO#×_ž4“Ôë~ČĐ-$ŃÍvłx.ŤŠĆꆇV…Ű“e$D¨•NK)Ă4ŽÉ@÷m"Ź2dfeĐž´]ąńcmůPĚ4űÝĽ´A^ĐŹ×+0şőPa°¨\v§ +nš}ľý؎ł‡ę…ú`v÷{ÄnŁ\žŒc=ž3Śqţ°› Ě7Ţ{ 9߀1Š?"ą&+8ÚjžđźMdšĐ7 V{Ž.)Ţ4œ4A™Ô䪄âíę]Vś<éé'>=ůtăď+´bÇ!ŽéC\CîƒŢŚaú eŔ¨Ď Íń%t.Ý ˝ĎœÝKłb[٢=i9ÍaÄËĹ!g<0ÖcŒŕLĆúK Ź_?ŒŽ^^n¨Lv ™ !˘JTę‘ n™gůcąô{+5ú_ńj˛Łgłęľ0CTŻéˆę̑z*‡D]–3’Đ€ĎÄ!ĽźŮlá8VeUv=–&€˝wáWD+‡@<9ť™+Ľd¨D4vÚ˙‚ű–tŇmŰĐĆ=sđŮN’ĘîC•ąIÝďëQ§äçčăi[!œˇĽŐ[ňT§VyhF"~EO4ŁŔĄ p^S n ‡Úm>zźĆ…’Ř";€F‘š’ +´XqęoöíX´ĹqQRŰPBŠ>YÍšjž§eaÇ|'Ő<ÔH#.×óTab|vw{ŞW´8ćFA˜Çĺ2ś"ř‡+Ł6„Č'vâÉH‚S‰ÓéŐÉś\nĂ` =ńa4ÜwäáÂh€łĂxŮ*ŽŁá sşăךj]¸ą8¸Ëę6Ë}0 +#É{ąĂé%´V<íťf ;üŸÉ[6ÍS_˙˙-E‚0˜ţ˙"/Š!Œ:ąÇT§/vO…›ś[Bdӕ-ěFť„[utˇľ“ÄŘóJôT3ZLnˇŽĂ$śrŞĆ5žŸąäLX4‰$™KK$tÄĐ63 +Ă gmđÄľŃě°@š°zWĒAĂáůüMH‰ó§Ś#;7:ˇOÍźÄouŕĺkŠßŐRČPZóJÉnLućD=Ő4ĺĽuSŹfŃYzŞŚhm TzŞÄ\T-‡CGŐ0]uY]4ű–¨čęń"¸HÝ4_÷ŰvgÉ駍ŇŠ;@Ňđ׹Xc)ŇNĎoU> endobj 1262 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [361.118 694.3759 409.8647 706.4356] +/Rect [361.118 590.715 409.8647 602.7746] /Subtype /Link /A << /S /GoTo /D (configuration_file_elements) >> >> endobj 1264 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [347.1258 314.3269 404.2417 326.3865] +/Rect [347.1258 196.3262 404.2417 208.3859] /Subtype /Link /A << /S /GoTo /D (journal) >> >> endobj +1259 0 obj << +/D [1257 0 R /XYZ 56.6929 794.5015 null] +>> endobj +378 0 obj << +/D [1257 0 R /XYZ 56.6929 769.5949 null] +>> endobj 1260 0 obj << -/D [1258 0 R /XYZ 56.6929 794.5015 null] +/D [1257 0 R /XYZ 56.6929 751.6696 null] >> endobj 382 0 obj << -/D [1258 0 R /XYZ 56.6929 769.5949 null] +/D [1257 0 R /XYZ 56.6929 674.5298 null] >> endobj 1261 0 obj << -/D [1258 0 R /XYZ 56.6929 749.7681 null] +/D [1257 0 R /XYZ 56.6929 647.321 null] >> endobj 386 0 obj << -/D [1258 0 R /XYZ 56.6929 443.842 null] +/D [1257 0 R /XYZ 56.6929 331.2658 null] >> endobj 1263 0 obj << -/D [1258 0 R /XYZ 56.6929 420.887 null] +/D [1257 0 R /XYZ 56.6929 306.5278 null] >> endobj -1257 0 obj << +1256 0 obj << /Font << /F37 747 0 R /F21 658 0 R /F23 682 0 R /F39 863 0 R >> /ProcSet [ /PDF /Text ] >> endobj 1267 0 obj << -/Length 2860 +/Length 3155 /Filter /FlateDecode >> stream -xÚ­]s۸ńÝżB}Łg"ß'Ožœ“úŚ—¤ŽŰ—ë=ĐeqB‘ŠHŰńÝôżw P D)餓ńpąX,vý„Âg ţń™Ő)“ššešJ5ăzśŘ\°ŮĚ˝żŕžfˆć1ŐOwŻßÉl–§šfvˇŠxٔYËgwËߒˇ˝útw}{9š%&˝œkҟn>üL˜œ>o?~xwóţŸˇW—™Jîn>~ ôíőťëŰëoŻ/çÜjë…çpbÁť›ż]ôţöę×_Żn/żűĺâúnĐ%֗3‰Š|šříw6[‚Úż\°TćVϞaŔRžçbśšPZŚZI0őĹ?.ţ>0ŒfÝŇŠóSÚŚZ(3›k‘Zkěô)ł”i8ľyŚxj¸Ę†S|ꔞrżŘÎëŞëËfţĺą|,Őć:OyĆňYĚűH‚jB‰Ŕ žÔH†ťuy9—*OH‚Išš„Y–Ű~ ×g˜ÝÓ.ËUńX÷4(š%›ŞŠ6ZWu„”~í͊Ć}ŕńšÜ5eMp÷¸ÝśťžŁĽH'çŽRÁŒyšk-œŔĹb"ĽÍ’3&ęžÜů‘jYôĹî’ۤ,–/ˆ Š~í䨨ť– EŰôŽ´­ýÜş}&`S4/Ý˝ý4P7墯ڌ , /ĹsU×ÝŁnÖŇů- W5N´  Ú Î“n[,JŸ‹ŞŻšŹÚ'h7~ŐCHŔV8ŠŇĚ}9ŹŰ]‡ť#ܡôĽSƒťy–üë2peG“uŮy”j’^ §m腩ę˛é뗱Vt7ť˘‚Sœ:°˙šPiÎ 8“”ŠbÜ:zŒ ܤœC¤`Œ%ŸĘ]Ő.ŤƒťKŽ’wŸixÓŔM?ÁýEď‚FęT -#ĎűiLuÚO*sQ—EÇ;ŻźGŽjDX+ϋ0PMČ0vÔ,U67c!œó)i’D¸ä Z=é†"sŘ´OŽP'ĺ×mE¸eLĐľXx2Â.Ț–‘ŽČ36D҇˝Ĺb¸?•ť—‰›–"O™â¨őčěČĽĽ5Šś{FvŸëÁaČ#žöÜ Ä<öe‡1%c>e,ŠG™<đ5Œž'ÖlŠŻ>ZÁŕ ˝aź\XĎťxqŃF3Ťó,O˝r^֑§cŕCóíʞ-^,ŻwV˝´ÄܞŔy-|ëśXbŃ7WÂ&W+WŽ8Ą\ ´d,ÂÓÁÍŮîˇĘďäű˘)uYQB â\¨ˇw•‹dR%(+"Š† )Ÿk.ŤnŃâĆž*BÜ`OńjśTţŘąeß{)č`ě‘38"e sPĐFA˝őŻEčoĚZ;ýZńJQÌ>͋Ö1ŕĺÁ°bĚj¤›KŻJBĹ&8Ü -X&\’„kÚzŒĚ@Ĺ%dG |Č >BŠÇĄuž‘\ džň"­ßś`óٗ’ĘsITě´ÝŸ‚CźžŮˆŮĎ-č4‹Ő -œç1k§—ąĄƒ!䖁JAëˇăÔj]őf“—KÁ’ŇŞÍś.7%8ŔŇ#úú‡H€ňŁŰWy– =s|ž?vePĂŚ&gСď_ Ě ĆV-HSŘřpmGóĐÚ?$!şüňXÔŕ–Js_!qI”CČĹşmťŇł(čÓ¸€‰ł{Jz‘BćěBE aľđuĄtEÇo˘ î–9O*l…Ŕř)…—+˜A„ô/0ăra -O\:Ćjyý…Ś5*ևyOßwe˝ÂśJ ĺaşg`5:Ď˝_ö§/<É(ň;›÷űA‘W|.˝tE3ą˜†2Yp˙béZ>FčěŕńtšĂ§ž‰€Š0+iÓ\čďz_ŕĆgÍŰqœÇ,í›s°~7šLVô‹ő‘ŠĽĆ2ń2pü– -:%“óąÎ<ď’gi&Exü˘§q™Q­ĺ-Ň=s#Žsř5h÷8ěśĺ˘r}? öE×\g<š.ŕ`Ü˜Óź†j˘Śľä,8QÖÁ|ľßŞčşęĄ)˝0~#¨…{l‚ýăUfR(ěŘ^>´Íź) -‚AŻŔůB¤~ŔPč‚Ɓ%!ď‹.,s5špőľ#Ôśí*j,p‚ŕŢI­čŃŇ5'CÉ-X á䙻$ŤnŞr.,­_ěAä]O8Œ4ˆňsvÂ°ˆ~Ýîč7‡˜K¤şôď0kŔţštżŞ-Ď!ŽCW;JfžiBWôjĘȌCKD7čĂ>*ŘÖ)†13ϸďÂűQůľŔćE HńŁ”Ě]‹ĄÇšan Ÿ˙é”2Íń§Î‘ęœ˝śoŚÎä/P#ŚňľPoŚLţOb 4ŻšyC‰œôZ3ŸÜ‘&+ŠXüĐżó(çŇŘgfz‰s}' ÷A0ŕŒžţa@$›ÖyžŹÚĐ\#6×ř]ÁYŽpĐlŇ+xÚ­Ëră6ňîŻĐmĺŞƒ'GgâÉ:•8YŻw÷Í–(›5Š)kœŻO7şA‚%g+[:°Ńh4@?ə€ŸœĽ6:3ł$3‘ŇΖ›+1{†žďŻ$Ó,<Ń"¤úöńę›O:™eQŤxö¸xĽ‘HS9{\ý:˙ř÷›_oŽʊy]/l,ćßŢÝG˜Œ>ž˙t÷ýżnŽ3źűůžĐˇŸnnď?Ţ^/dj%ŒWĚá̀Ow?ŢôýĂÍO?Ý<\˙öřĂŐícż–p˝Rh\ȗŤ_ł,ű‡+é,ľł4D$łLÍ6WĆęČ­=ŚşúçŐ?z†AŻ:ľĆŚ‘U&ž-€XYiŚwYDÂÂŽ-#JČ~—•œÚeO…ťÜ-ˇ‹eUuׯXj|U2 ٞLŢSMĚŽƒŮĽN`úŁŮ_ +Řô,žoňŻĺfżĄF˝ß<;‚›5}[莺ź.š}K’šŕǏż0˛ŠëbٕMÍTÝKŢyČ͕ĚŰb÷ęŮĘŞ"(_.‹má&Ě*A=„ĹÉ(łV˛‚‚ŹŠu˛PŁtŰúœkUdScaƒp ‚hĆű‘D™†m#ščDÝřLc0‰Ě&ńĺƒŠÎ|O…3Ž/–ůňĽX´ĺďĹÉكž‰ Œôâü=Մ+,qaËĘ řŢÚą1iíŇđŕƛňžv⍠Ł{§™őQf Ýy]ÖĎ4íŁcw ž Öc“N!‡ÍŤ#´k[…mC.vÉd'>Iˇ‹$Ÿ›Łă‘üm⤾Ę"a¤äxĐď™´NcL#“ąŢ„űz´:ĂĘħŕböœŕ$‚ýQdŻŘp–ßXĐ÷̘!AƒĆ+ZĂx¸J™wţć0źFh5ć XÉś—uäŻĐńĄúśg×Î$á+>Сćöv¤ü~ß8ˆ‘Ô,—p|ž WŽžé;eUHuŢ z*\ÉK‘ﺧ"ď.ŘAéT§—ečŠ&„W2Ňą•c)ČĐá]0baÁ1ný{S3ń&G™ëźvZ]ř•–úœŸE\î™ŕ¸–p›|÷ŮŮ óvJߥÔP첆ŽJPĽí„"ƒv¤`Íi6VLO +ˇ¤>N%Ů`?˜˛ÓăĚçrĐč~:÷ŁI÷ÓP÷aĚC‘ˇM?U<ô•c+MŰdrˆ LnŠwL֕Äl]@⏠ÎşREÖxRě Uab5u) iš:f}ř_-Qg*‚dőÄ1¤:o‰=Uď/א5\°DĹŇ\ÁMˆ0ŽG`~™Őcřę Šşaw+Ô;ŕËꍼQ˝ąÇŠ7¨ŢČŢŠ7¸',`‡ÄÜx8&Ja>ž4óőQćŐŘ!šTJý™+bČ?Ü ‡íž$„ž'ŚŽšgžÓHĎş8™Ů|ŹwXgV|ęă F>MMŞý…ϐ$ÇƒĚŞä8gˆzH)†ťá!lŰ>Sćkb÷uaŰúLĄ0l[qś÷ŸNŠĂköKA{˘RŔ™xŚŔ˝›X˜?óśö&Ň4~Ű+`ˇÔa ⛻š}×Ŕ‚fáš<ăEŔŮ­)VŁ›EX^*`~{ZB‹rwŽjž]+1/¸QnśUą)ęÎ]g ˘Ś/?™”œźÉ’(Ö1ěc°ˇí¸ ‹â D] ďZM™Ć`Ź}§ĂťƒŘ‚™‡×&ŠŻM袤Ů6` o.4WáS%żqeŽ€…ĽÄŰeˆ -Ąů* Ńŗ}^I+9; â‚(ű Ë—Śi f‘Ó§vÎ{Jş“BĆë7B× ~´âœĐ ş&Œă7‘ wźbיœăľşŢÖЃÍwřĘQ“3qéihË%Äô7ęZV¸°Î÷3}×Ő +Ó'“ÇĄ^€ÖŘ,cŤěΐ1pʁ×w:ĎóA‚—.Xşźž˜”Óĉ7ţ|ĹW-Ż#lrt1žÚáe߄ł4$XŽ42ů3 +ŽŔŒ/Şˇá3°<Őo)Ud$X\OFďxÝňĺDH#˘8ę˙(¤çřžę¤8“c!zNž&Zůë/ş× ĺYŹ‘î˘qďĂoŒzÍv[,KWůCcH¸6‘ó[zہP§E™DEcÉX°Ł¨źú kž*oŰňš.XžňŕË`žžJâҢŁâűŚ^ÔĹsî\°ĆG1b|ÁS?ŁŤFtNmϒOy뇹|\ő0ˆÚ6mIEv¸MđsˆŔĄEkW˜ôéśžD’e¤<¤§­coáLX§<؃ȝŽpî Műg +@x)bĐż4;zušK×|Ł1˙ë…{W’’ga­Śa˙čnŕ íü†đĂÖľ_ŕ9ÁÔX-MUzÁyŤ~šđŇS†VđĐŽ fř!‡(†3Éx˝”¸aŰÉú!|ódžZń-Só2 ‹)#Ý iâ+f\ĂÔž"zóůd Ćžâ@RčăĘëÖ9†!3fÁÉí'ƒT|Í1ůpîo7ÚFFëÉÇ1ó§ů—˙“3üaÉ$d%jşÜŃ"ŽR•%˝T¸Ó69–Ýę4˛ŠJŚ„˙1VONendstream endobj 1266 0 obj << /Type /Page /Contents 1267 0 R /Resources 1265 0 R /MediaBox [0 0 595.2756 841.8898] >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Jul 20 21:30:37 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BFA0E1065673; Sun, 20 Jul 2008 21:30:37 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 825CC106564A for ; Sun, 20 Jul 2008 21:30:37 +0000 (UTC) (envelope-from konrad@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C8008FC14 for ; Sun, 20 Jul 2008 21:30:37 +0000 (UTC) (envelope-from konrad@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6KLUbiU077457 for ; Sun, 20 Jul 2008 21:30:37 GMT (envelope-from konrad@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6KLUXXL077451 for perforce@freebsd.org; Sun, 20 Jul 2008 21:30:33 GMT (envelope-from konrad@FreeBSD.org) Date: Sun, 20 Jul 2008 21:30:33 GMT Message-Id: <200807202130.m6KLUXXL077451@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to konrad@FreeBSD.org using -f From: Konrad Jankowski To: Perforce Change Reviews Cc: Subject: PERFORCE change 145516 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 Jul 2008 21:30:38 -0000 http://perforce.freebsd.org/chv.cgi?CH=145516 Change 145516 by konrad@vspredator on 2008/07/20 21:29:53 Fixed a bug in CLDR data. It was missing COMBINING_RING_ABOVE symbol weight assignment. Affected files ... .. //depot/projects/soc2008/konrad_collation/posix/README#3 edit .. //depot/projects/soc2008/konrad_collation/posix/UTF-8.cm#4 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_DJ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_ER.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_ER_SAAHO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/aa_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/af_NA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/af_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ak_GH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/am_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_AE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_BH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_DZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_EG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_IQ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_JO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_KW.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_LB.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_LY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_MA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_OM.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_QA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_SA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_SD.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_SY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_TN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ar_YE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/as_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/az_Cyrl_AZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/az_Latn_AZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/be_BY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/bg_BG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/bn_BD.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/bn_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/bs_BA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/byn_ER.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ca_ES.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/cch_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/cs_CZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/cy_GB.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/da_DK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/de_AT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/de_BE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/de_CH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/de_DE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/de_LI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/de_LU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/dv_MV.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/dz_BT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ee_GH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ee_TG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/el_CY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/el_GR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_AS.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_AU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_BE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_BW.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_BZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_CA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_GB.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_GU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_HK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_IE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_JM.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_MH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_MP.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_MT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_NA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_NZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_PH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_PK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_SG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_TT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_UM.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_US.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_US_POSIX.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_VI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/en_ZW.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_AR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_BO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_CL.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_CO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_CR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_DO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_EC.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_ES.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_GT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_HN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_MX.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_NI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_PY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_SV.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_US.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_UY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/es_VE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/et_EE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/eu_ES.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fa_AF.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fa_IR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fi_FI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fil_PH.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fo_FO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_BE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_CA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_CH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_FR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_LU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_MC.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/fr_SN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/fur_IT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ga_IE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/gaa_GH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/gez_ER.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/gez_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/gl_ES.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/gu_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/gv_GB.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Arab_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Arab_SD.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Latn_GH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Latn_NE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ha_Latn_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/haw_US.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/he_IL.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/hi_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/hr_HR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/hu_HU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/hy_AM.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/hy_AM_REVISED.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/id_ID.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ig_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ii_CN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/is_IS.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/it_CH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/it_IT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ja_JP.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ka_GE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kaj_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kam_KE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kcg_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kfo_CI.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kk_Cyrl_KZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/kl_GL.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/km_KH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kn_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ko_KR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kok_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kpe_GN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kpe_LR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ku_Latn_TR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/kw_GB.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ky_KG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ln_CD.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ln_CG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/lo_LA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/lt_LT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/lv_LV.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/mk_MK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ml_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/mn_Cyrl_MN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/mn_Mong_CN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/mr_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ms_BN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ms_MY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/mt_MT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/nb_NO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ne_IN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ne_NP.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/nl_BE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/nl_NL.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/nn_NO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/nr_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/nso_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ny_MW.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/om_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/om_KE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/or_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/pa_Arab_PK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/pa_Guru_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/pl_PL.UTF-8.src#4 edit .. //depot/projects/soc2008/konrad_collation/posix/ps_AF.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/pt_BR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/pt_PT.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ro_MD.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ro_RO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ru_RU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ru_UA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/rw_RW.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sa_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/se_FI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/se_NO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/si_LK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/sid_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sk_SK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sl_SI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/so_DJ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/so_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/so_KE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/so_SO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sq_AL.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Cyrl_BA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Cyrl_ME.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Cyrl_RS.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Latn_BA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Latn_ME.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sr_Latn_RS.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ss_SZ.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/ss_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/st_LS.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/st_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sv_FI.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sv_SE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sw_KE.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/sw_TZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/syr_SY.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ta_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/te_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/th_TH.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ti_ER.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ti_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/tig_ER.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/tn_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/to_TO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/tr_TR.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ts_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/tt_RU.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/uk_UA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ur_IN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ur_PK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/uz_Arab_AF.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/uz_Cyrl_UZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/uz_Latn_UZ.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/ve_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/vi_VN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/wal_ET.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/wo_SN.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/xh_ZA.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/yo_NG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_CN.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_HK.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_MO.UTF-8.src#2 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hans_SG.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hant_HK.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hant_MO.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/zh_Hant_TW.UTF-8.src#3 edit .. //depot/projects/soc2008/konrad_collation/posix/zu_ZA.UTF-8.src#3 edit Differences ... ==== //depot/projects/soc2008/konrad_collation/posix/README#3 (text+ko) ==== ==== //depot/projects/soc2008/konrad_collation/posix/UTF-8.cm#4 (text+ko) ==== ==== //depot/projects/soc2008/konrad_collation/posix/aa_DJ.UTF-8.src#3 (text+ko) ==== @@ -5028,6 +5028,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/aa_ER.UTF-8.src#3 (text+ko) ==== @@ -5028,6 +5028,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/aa_ER_SAAHO.UTF-8.src#3 (text+ko) ==== @@ -5028,6 +5028,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/aa_ET.UTF-8.src#3 (text+ko) ==== @@ -5028,6 +5028,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/af_NA.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/af_ZA.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ak_GH.UTF-8.src#3 (text+ko) ==== @@ -5028,6 +5028,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/am_ET.UTF-8.src#3 (text+ko) ==== @@ -7290,6 +7290,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_AE.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_BH.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_DZ.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_EG.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_IQ.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_JO.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_KW.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_LB.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_LY.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_MA.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_OM.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_QA.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_SA.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_SD.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_SY.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_TN.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ar_YE.UTF-8.src#3 (text+ko) ==== @@ -4077,6 +4077,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/as_IN.UTF-8.src#3 (text+ko) ==== @@ -1019,6 +1019,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/az_Cyrl_AZ.UTF-8.src#3 (text+ko) ==== @@ -6958,6 +6958,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/az_Latn_AZ.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/be_BY.UTF-8.src#3 (text+ko) ==== @@ -6958,6 +6958,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/bg_BG.UTF-8.src#3 (text+ko) ==== @@ -6958,6 +6958,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/bn_BD.UTF-8.src#3 (text+ko) ==== @@ -987,6 +987,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/bn_IN.UTF-8.src#3 (text+ko) ==== @@ -1016,6 +1016,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/bs_BA.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/byn_ER.UTF-8.src#3 (text+ko) ==== @@ -7290,6 +7290,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ca_ES.UTF-8.src#3 (text+ko) ==== @@ -5720,6 +5720,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/cch_NG.UTF-8.src#3 (text+ko) ==== @@ -5028,6 +5028,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/cs_CZ.UTF-8.src#3 (text+ko) ==== @@ -5724,6 +5724,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/cy_GB.UTF-8.src#3 (text+ko) ==== @@ -5756,6 +5756,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/da_DK.UTF-8.src#3 (text+ko) ==== @@ -5719,6 +5719,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/de_AT.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/de_BE.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/de_CH.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/de_DE.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/de_LI.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/de_LU.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/dv_MV.UTF-8.src#3 (text+ko) ==== @@ -5278,6 +5278,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/dz_BT.UTF-8.src#3 (text+ko) ==== @@ -1855,6 +1855,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ee_GH.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/ee_TG.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/el_CY.UTF-8.src#3 (text+ko) ==== @@ -2102,6 +2102,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/el_GR.UTF-8.src#3 (text+ko) ==== @@ -2102,6 +2102,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_AS.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_AU.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_BE.UTF-8.src#3 (text+ko) ==== @@ -5702,6 +5702,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_BW.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_BZ.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_CA.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_GB.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_GU.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_HK.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_IE.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_IN.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_JM.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_MH.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_MP.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_MT.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + * assignment of characters to weights ==== //depot/projects/soc2008/konrad_collation/posix/en_NA.UTF-8.src#3 (text+ko) ==== @@ -5706,6 +5706,7 @@ + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jul 21 03:48:09 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4611E1065670; Mon, 21 Jul 2008 03:48:09 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F0725106564A for ; Mon, 21 Jul 2008 03:48:08 +0000 (UTC) (envelope-from bilouro@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D81178FC12 for ; Mon, 21 Jul 2008 03:48:08 +0000 (UTC) (envelope-from bilouro@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L3m8nR024390 for ; Mon, 21 Jul 2008 03:48:08 GMT (envelope-from bilouro@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L3m8Q1024388 for perforce@freebsd.org; Mon, 21 Jul 2008 03:48:08 GMT (envelope-from bilouro@FreeBSD.org) Date: Mon, 21 Jul 2008 03:48:08 GMT Message-Id: <200807210348.m6L3m8Q1024388@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bilouro@FreeBSD.org using -f From: Victor Hugo Bilouro To: Perforce Change Reviews Cc: Subject: PERFORCE change 145531 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 03:48:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=145531 Change 145531 by bilouro@bilouro_tcptest on 2008/07/21 03:47:47 Testing Reset Generation added: -assertions messages -some refactoring -assertReset almost done -several RFC and personal comments Help Needed: (a)About Reset segment generation, RFC says: when no ack at incoming segment, seq will be 0 and ack to sum of segment length and sequence(incoming segment). My value is exactly 19 less then RESET I receive. Any suggestions? Affected files ... .. //depot/projects/soc2008/bilouro_tcptest/src/scripts/tests/cresetfromclosedstate.py#3 edit .. //depot/projects/soc2008/bilouro_tcptest/src/scripts/tests/tcptest.py#4 edit Differences ... ==== //depot/projects/soc2008/bilouro_tcptest/src/scripts/tests/cresetfromclosedstate.py#3 (text+ko) ==== @@ -46,15 +46,17 @@ class TestResetFromClosedState(unittest.TestCase): """ - RFC 793 - Section 3.4 Establishing a Connection - Reset Generation + RFC 793 - Section 3.4 Establishing a Connection + Page 36 - Reset Generation - 1) Sends a segment to a closed state with ACK bit set and check - if the answer is conformant with protocol specification. + As a general rule, reset (RST) must be sent whenever a segment arrives + which apparently is not intended for the current connection. A reset + must not be sent if it is not clear that this is the case. [PREPARATION] - ==DEVICE UNDER TEST + ==at DEVICE UNDER TEST(DUT) inetd with descard server running (port 9) - possibility to kill -TERM inet process and /etc/rc.d/inetd stop + you must have access DUT's shell with kill -TERM inetd process and /etc/rc.d/inetd stop privileges [TESTS] (a)SYN with and without ACK [80%] @@ -97,40 +99,75 @@ self.tcb.output = { self.thisside : pcs.PcapConnector("ed0") , \ self.thatside : pcs.PcapConnector("ed0") } - - - def testResetFromClosedStateWithACKSYN(self): """ - RFC 793 - Section 3.4 Establishing a Connection - Reset Generation + RFC 793 - Section 3.4 Establishing a Connection + Page 36 + + 1. If the connection does not exist (CLOSED) then a reset is sent + in response to any incoming segment except another reset. In + particular, SYNs addressed to a non-existent connection are rejected + by this means. - 1) Sends a segment to a closed state with ACK bit set and check - if the answer is conformant with protocol specification. + If the incoming segment has an ACK field, the reset takes its + sequence number from the ACK field of the segment, otherwise the + reset has sequence number zero and the ACK field is set to the sum + of the sequence number and segment length of the incoming segment. + The connection remains in the CLOSED state. """ tcptest.threewayhandshakenoopt(self, self.tcb, self.thisside, self.thatside) - ################ - # IMPORTANT NOTE - ################ - # - # At this time you shoud (a)kill -TERM the inetd server of the - # connection priviously set and stop inetd superserver at - # Device Under Test(DUT), this will cause: - # --> DUT to start active close - # --> avoid new connection at new socket - # + + print "################" + print "# IMPORTANT NOTE" + print "################" + print "#" + print "# At this moment you shoud do the following in the device under test(DUT):" + print '# > socket -4 | grep "\:9"' + print "# > kill -TERM " + print "# > /etc/rc.d/inetd stop" + print "# " tcptest.passivecloseconnection(self, self.tcb, self.thisside, self.thatside) + print "# " + print "# Waiting for a couple of MSL(Maximun Segment Lifetime)" time.sleep(60) #2MSL(freebsd7) + # #--->Sending SYN (ipsyn, tcpsyn) = tcptest.createsyn(self, self.tcb, self.thisside, self.thatside) + #createsyn set ack bit to 0 + tcpsyn.ack = 1 tcptest.createwritepacket(self, self.tcb, ipsyn, tcpsyn, self.thisside, self.thatside) - # write code here to receive the segment - # and assert that it is with RST flag set + # assert RST flag is set + (ipfinack, tcpfinack) = tcptest.receive(self,self.tcb, self.thisside, self.thatside) + tcptest.assertReset(self, self.tcb, tcpfinack, self.thisside, self.thatside, tcpsyn) + + def testResetFromNonExistentConnection(self): + """ + RFC 793 - Section 3.4 Establishing a Connection + Page 36 + + 1. If the connection does not exist (CLOSED) then a reset is sent + in response to any incoming segment except another reset. In + particular, SYNs addressed to a non-existent connection are rejected + by this means. - #.....code here + If the incoming segment has an ACK field, the reset takes its + sequence number from the ACK field of the segment, otherwise the + reset has sequence number zero and the ACK field is set to the sum + of the sequence number and segment length of the incoming segment. + The connection remains in the CLOSED state. + """ + (ipsyn, tcpsyn) = tcptest.createsyn(self, self.tcb, self.thisside, self.thatside) + tcptest.createwritepacket(self, self.tcb, ipsyn, tcpsyn, self.thisside, self.thatside) + (ipfinack, tcpfinack) = tcptest.receive(self,self.tcb, self.thisside, self.thatside) + tcptest.assertReset(self, self.tcb, tcpfinack, self.thisside, self.thatside, tcpsyn) + + # + # HELP NEEDED + # My calc of segment length + sequence number is less 19 of the incoming segment. Always 19. any idea?! if __name__ == '__main__': unittest.main() ==== //depot/projects/soc2008/bilouro_tcptest/src/scripts/tests/tcptest.py#4 (text+ko) ==== @@ -42,14 +42,14 @@ """RFC?? ...ack must be present in every packet since step #2 of 3wayhand """ - self.failIf(tcp.ack < 1) - self.assertNotEqual(tcp.ack_number, 0) - self.assertNotEqual(tcp.ack_number, None) + self.failUnless(tcp.ack_number != None and tcp.ack_number > 0, \ + 'ack number must be present and greater then 0') def assertSynPresent(self, tcp): """ """ - self.failIf(tcp.syn < 1) + self.failIf(tcp.syn < 1, \ + "we expect the segment must have SYN bit set") assertSequencePresent(self, tcp) def assertSequencePresent(self, tcp): @@ -57,20 +57,22 @@ A fundamental notion in the design is that every octet of data sent over a TCP connection has a sequence number. """ - self.assertNotEqual(tcp.sequence, 0) - self.assertNotEqual(tcp.sequence, None) + self.failUnless(tcp.sequence != None and tcp.sequence > 0, \ + 'sequence must be present and greater then 0') def assertExpectedSequence(self, tcb, tcp, from_, to): """RFC?? """ - self.assertEqual(tcp.sequence, tcb.tcpsequence[ to ]) + self.assertEqual(tcp.sequence, tcb.tcpsequence[ to ], \ + 'sequence: ' + str(tcp.sequence) + ' , but we expect: ' + str(tcb.tcpsequence[ to ]) ) def assertExpectedAcknowledgment(self, tcb, tcp, from_, to): """RFC793-P16-p2 Acknowledgment Number, value of the next sequence number the sender of the segment is expecting to receive """ - self.assertEqual(tcp.ack_number, tcb.tcpsequence[ from_ ]) + self.assertEqual(tcp.ack_number, tcb.tcpsequence[ from_ ], \ + 'ack number: ' + str(tcp.ack_number) + ' , but we expect: ' + str(tcb.tcpsequence[ from_ ]) ) def assertSequenceAcknowledgmentOK(self, tcb, tcp, from_, to): #RFC793-P24-p1 @@ -83,7 +85,7 @@ assertExpectedSequence(self, tcb, tcp, from_, to) -def assertReset(self, tcb, tcp, from_, to): +def assertReset(self, tcb, tcp, from_, to, tcp_sent): """ RFC 793 - Section 3.4 Establishing a Connection Page 36 @@ -95,26 +97,29 @@ The connection remains in the CLOSED state. """ #it must be a reset - self.failIf(tcp.rst <1, 'rst bit must be set') + self.failIf(tcp.reset <1, 'reset bit must be set') - #"*If* the incoming segment has..." - if (tcb.sequence[ to ] == Null or tcb.tcpsequence[ to ] <= 0): - #the only moment a segment has no ack is at syn where - #we don't know the receiver sequence, in other words, we only get the - #receiver sequence number at the first segment received back(syn+ack of - #3way handshake) + if (tcp_sent.ack_number == None or tcp_sent.ack_number == 0): #Assuming that "incoming segment" has *NO* ACK Field we need assert that: #(1)has sequence number zero + self.assertEqual(tcp.sequence, 0, \ + 'The incoming segment has no ack, then the reset segment we expect must have sequence equal to zero') + #(2)ACK field set to the sum of the sequence number and segment length + expected_sum = len(tcp_sent.getbytes()) + tcp_sent.sequence + self.assertEqual(tcp.ack_number, expected_sum, \ + "The incoming segment has no ack, then the reset segment we expect must have ack_number equal to sum of the sequence number and segment length of the incoming segment. Expected ack_number: " + str(tcp.ack_number) + " given: " + str(expected_sum) ) - else: #(tcb.sequence[ to ] > 0): + else: #(tcp.sent.ack_number > 0): #Assuming that "incoming segment" has ACK Field we need assert that: - #(1)sequence number set to the ACK sent + #(1)sequence number set to the ACK sent (Reset use sequence that receiver waits for) + assertExpectedSequence(self, tcb, tcp, from_, to) def assertFin(self, tcp): """is fin flag on? """ - self.failIf(tcp.fin<1) + self.failIf(tcp.fin<1, \ + "we expect the segment must have FIN bit set") def createsyn(self, tcb, from_, to): From owner-p4-projects@FreeBSD.ORG Mon Jul 21 04:53:14 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C882C106567A; Mon, 21 Jul 2008 04:53:14 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8BD591065673 for ; Mon, 21 Jul 2008 04:53:14 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 73BA68FC08 for ; Mon, 21 Jul 2008 04:53:14 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L4rEtJ040708 for ; Mon, 21 Jul 2008 04:53:14 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L4rEJj040706 for perforce@freebsd.org; Mon, 21 Jul 2008 04:53:14 GMT (envelope-from jb@freebsd.org) Date: Mon, 21 Jul 2008 04:53:14 GMT Message-Id: <200807210453.m6L4rEJj040706@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 145532 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 04:53:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=145532 Change 145532 by jb@freebsd3 on 2008/07/21 04:52:32 Add a couple of probes for convenient stat() access when the call returns no error. One fires for all modes, if enabled. The other is more restrictive and only fires for regular files, if enabled. Affected files ... .. //depot/projects/dtrace/src/sys/kern/vfs_syscalls.c#25 edit Differences ... ==== //depot/projects/dtrace/src/sys/kern/vfs_syscalls.c#25 (text+ko) ==== @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.454 2008/06/22 21:51:32 rwatson Exp $"); #include "opt_compat.h" +#include "opt_kdtrace.h" #include "opt_ktrace.h" #include "opt_mac.h" @@ -58,6 +59,7 @@ #include #include #include +#include #include #include #include @@ -82,6 +84,13 @@ #include #include +SDT_PROVIDER_DEFINE(vfs); +SDT_PROBE_DEFINE(vfs, , stat, mode); +SDT_PROBE_ARGTYPE(vfs, , stat, mode, 0, "char *"); +SDT_PROBE_ARGTYPE(vfs, , stat, mode, 1, "int"); +SDT_PROBE_DEFINE(vfs, , stat, reg); +SDT_PROBE_ARGTYPE(vfs, , stat, reg, 0, "char *"); + static int chroot_refuse_vdir_fds(struct filedesc *fdp); static int getutimes(const struct timeval *, enum uio_seg, struct timespec *); static int setfown(struct thread *td, struct vnode *, uid_t, gid_t); @@ -2344,6 +2353,10 @@ if (KTRPOINT(td, KTR_STRUCT)) ktrstat(&sb); #endif + SDT_PROBE(vfs, , stat, mode, path, sb.st_mode, 0, 0, 0); + if (S_ISREG(sb.st_mode)) { + SDT_PROBE(vfs, , stat, reg, path, 0, 0, 0, 0); + } return (0); } From owner-p4-projects@FreeBSD.ORG Mon Jul 21 04:55:17 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2FBF81065673; Mon, 21 Jul 2008 04:55:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE3821065671 for ; Mon, 21 Jul 2008 04:55:16 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A63FD8FC1F for ; Mon, 21 Jul 2008 04:55:16 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L4tGuE040913 for ; Mon, 21 Jul 2008 04:55:16 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L4tGdI040911 for perforce@freebsd.org; Mon, 21 Jul 2008 04:55:16 GMT (envelope-from jb@freebsd.org) Date: Mon, 21 Jul 2008 04:55:16 GMT Message-Id: <200807210455.m6L4tGdI040911@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 145533 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 04:55:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=145533 Change 145533 by jb@freebsd3 on 2008/07/21 04:54:34 For FreeBSD8 onward, use the per file data hooks instead of the buggy device clone implementation (which needs some lock love). Affected files ... .. //depot/projects/dtrace/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#11 edit .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#25 edit .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_load.c#33 edit .. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_unload.c#29 edit Differences ... ==== //depot/projects/dtrace/src/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c#11 (text) ==== @@ -3007,6 +3007,9 @@ case DIF_VAR_EXECARGS: { struct pargs *p_args = curthread->td_proc->p_args; + if (p_args == NULL) + return(0); + return (dtrace_dif_varstrz( (uintptr_t) p_args->ar_args, p_args->ar_length, state, mstate)); } @@ -15235,6 +15238,15 @@ } #endif +#if !defined(sun) +#if __FreeBSD_version >= 800039 +static void +dtrace_dtr(void *data __unused) +{ +} +#endif +#endif + /*ARGSUSED*/ static int #if defined(sun) @@ -15260,6 +15272,7 @@ #else cred_t *cred_p = NULL; +#if __FreeBSD_version < 800039 /* * The first minor device is the one that is cloned so there is * nothing more to do here. @@ -15275,6 +15288,7 @@ */ if (dev->si_drv1 != NULL) return (EBUSY); +#endif cred_p = dev->si_cred; #endif @@ -15286,9 +15300,11 @@ dtrace_cred2priv(cred_p, &priv, &uid, &zoneid); if (priv == DTRACE_PRIV_NONE) { #if !defined(sun) +#if __FreeBSD_version < 800039 /* Destroy the cloned device. */ destroy_dev(dev); #endif +#endif return (EACCES); } @@ -15320,8 +15336,12 @@ state = dtrace_state_create(devp, cred_p); #else state = dtrace_state_create(dev); +#if __FreeBSD_version < 800039 dev->si_drv1 = state; +#else + devfs_set_cdevpriv(state, dtrace_dtr); #endif +#endif mutex_exit(&cpu_lock); @@ -15334,9 +15354,11 @@ #endif mutex_exit(&dtrace_lock); #if !defined(sun) +#if __FreeBSD_version < 800039 /* Destroy the cloned device. */ destroy_dev(dev); #endif +#endif return (EAGAIN); } @@ -15362,11 +15384,16 @@ state = ddi_get_soft_state(dtrace_softstate, minor); #else +#if __FreeBSD_version < 800039 dtrace_state_t *state = dev->si_drv1; /* Check if this is not a cloned device. */ if (minor(dev) == 0) return (0); +#else + dtrace_state_t *state; + devfs_get_cdevpriv((void **) &state); +#endif #endif @@ -15386,7 +15413,11 @@ #if !defined(sun) kmem_free(state, 0); +#if __FreeBSD_version < 800039 dev->si_drv1 = NULL; +#else + devfs_clear_cdevpriv(); +#endif #endif } @@ -15401,8 +15432,10 @@ mutex_exit(&dtrace_lock); mutex_exit(&cpu_lock); +#if __FreeBSD_version < 800039 /* Schedule this cloned device to be destroyed. */ destroy_dev_sched(dev); +#endif return (0); } @@ -16436,16 +16469,20 @@ static d_ioctl_t dtrace_ioctl; static void dtrace_load(void *); static int dtrace_unload(void); +#if __FreeBSD_version < 800039 static void dtrace_clone(void *, struct ucred *, char *, int , struct cdev **); static struct clonedevs *dtrace_clones; /* Ptr to the array of cloned devices. */ static eventhandler_tag eh_tag; /* Event handler tag. */ +#else +static struct cdev *dtrace_dev; +#endif void dtrace_invop_init(void); void dtrace_invop_uninit(void); static struct cdevsw dtrace_cdevsw = { .d_version = D_VERSION, - .d_flags = D_NEEDMINOR, + .d_flags = D_TRACKCLOSE | D_NEEDMINOR, .d_close = dtrace_close, .d_ioctl = dtrace_ioctl, .d_open = dtrace_open, @@ -16453,7 +16490,9 @@ }; #include +#if __FreeBSD_version < 800039 #include +#endif #include #include #include ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#25 (text+ko) ==== @@ -32,7 +32,12 @@ dtrace_ioctl(struct cdev *dev, u_long cmd, caddr_t addr, int flags __unused, struct thread *td) { +#if __FreeBSD_version < 800039 dtrace_state_t *state = dev->si_drv1; +#else + dtrace_state_t *state; + devfs_get_cdevpriv((void **) &state); +#endif int error = 0; if (state == NULL) return (EINVAL); ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_load.c#33 (text+ko) ==== @@ -154,11 +154,15 @@ mutex_exit(&cpu_lock); +#if __FreeBSD_version < 800039 /* Enable device cloning. */ clone_setup(&dtrace_clones); /* Setup device cloning events. */ eh_tag = EVENTHANDLER_REGISTER(dev_clone, dtrace_clone, 0, 1000); +#else + dtrace_dev = make_dev(&dtrace_cdevsw, 0, UID_ROOT, GID_WHEEL, 0600, "dtrace/dtrace"); +#endif return; } ==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_unload.c#29 (text+ko) ==== @@ -28,6 +28,7 @@ dtrace_state_t *state; int error = 0; +#if __FreeBSD_version < 800039 /* * Check if there is still an event handler callback * registered. @@ -40,6 +41,9 @@ /* Stop device cloning. */ clone_cleanup(&dtrace_clones); } +#else + destroy_dev(dtrace_dev); +#endif mutex_enter(&dtrace_provider_lock); mutex_enter(&dtrace_lock); From owner-p4-projects@FreeBSD.ORG Mon Jul 21 04:57:19 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32FC3106566C; Mon, 21 Jul 2008 04:57:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB1121065673 for ; Mon, 21 Jul 2008 04:57:18 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D33228FC17 for ; Mon, 21 Jul 2008 04:57:18 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L4vIeV041044 for ; Mon, 21 Jul 2008 04:57:18 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L4vIBg041042 for perforce@freebsd.org; Mon, 21 Jul 2008 04:57:18 GMT (envelope-from jb@freebsd.org) Date: Mon, 21 Jul 2008 04:57:18 GMT Message-Id: <200807210457.m6L4vIBg041042@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 145534 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 04:57:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=145534 Change 145534 by jb@freebsd3 on 2008/07/21 04:56:23 The ZFS hacks in the compatibility does bite into the usability of the FreeBSD headers for other things. We don't seem to make much choice but to add knobs to tweak what the headers whack. Affected files ... .. //depot/projects/dtrace/src/cddl/Makefile.inc#10 edit .. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/types.h#3 edit .. //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/uio.h#3 edit .. //depot/projects/dtrace/src/sys/modules/zfs/Makefile#8 edit .. //depot/projects/dtrace/src/usr.bin/fstat/zfs/Makefile#5 edit Differences ... ==== //depot/projects/dtrace/src/cddl/Makefile.inc#10 (text+ko) ==== @@ -4,3 +4,5 @@ OPENSOLARIS_SYS_DISTDIR= ${.CURDIR}/../../../sys/cddl/contrib/opensolaris IGNORE_PRAGMA= YES + +CFLAGS+= -DNEED_SOLARIS_BOOLEAN ==== //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/types.h#3 (text+ko) ==== @@ -64,12 +64,13 @@ typedef int64_t rlim64_t; #else - +#ifdef NEED_SOLARIS_BOOLEAN #if defined(__XOPEN_OR_POSIX) typedef enum { _B_FALSE, _B_TRUE } boolean_t; #else typedef enum { B_FALSE, B_TRUE } boolean_t; #endif /* defined(__XOPEN_OR_POSIX) */ +#endif typedef longlong_t offset_t; typedef u_longlong_t u_offset_t; ==== //depot/projects/dtrace/src/sys/cddl/compat/opensolaris/sys/uio.h#3 (text+ko) ==== @@ -51,6 +51,7 @@ #define uio_loffset uio_offset +#ifdef BUILDING_ZFS static __inline int zfs_uiomove(void *cp, size_t n, enum uio_rw dir, uio_t *uio) { @@ -59,5 +60,6 @@ return (uiomove(cp, (int)n, uio)); } #define uiomove(cp, n, dir, uio) zfs_uiomove((cp), (n), (dir), (uio)) +#endif #endif /* !_OPENSOLARIS_SYS_UIO_H_ */ ==== //depot/projects/dtrace/src/sys/modules/zfs/Makefile#8 (text+ko) ==== @@ -78,6 +78,7 @@ CFLAGS+=-I${SUNW}/common/zfs CFLAGS+=-I${SUNW}/common CFLAGS+=-I${.CURDIR}/../../../include +CFLAGS+=-DBUILDING_ZFS #CFLAGS+=-DDEBUG=1 #DEBUG_FLAGS=-g ==== //depot/projects/dtrace/src/usr.bin/fstat/zfs/Makefile#5 (text+ko) ==== @@ -15,6 +15,7 @@ CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common/sys CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/head CFLAGS+= -I${.CURDIR}/.. +CFLAGS+= -DNEED_SOLARIS_BOOLEAN all: ${OBJS} CLEANFILES= ${OBJS} From owner-p4-projects@FreeBSD.ORG Mon Jul 21 05:26:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DF4FA1065673; Mon, 21 Jul 2008 05:26:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A2DDC1065670 for ; Mon, 21 Jul 2008 05:26:49 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 89B698FC14 for ; Mon, 21 Jul 2008 05:26:49 +0000 (UTC) (envelope-from sam@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L5QnjH044448 for ; Mon, 21 Jul 2008 05:26:49 GMT (envelope-from sam@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L5Qng0044446 for perforce@freebsd.org; Mon, 21 Jul 2008 05:26:49 GMT (envelope-from sam@freebsd.org) Date: Mon, 21 Jul 2008 05:26:49 GMT Message-Id: <200807210526.m6L5Qng0044446@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sam@freebsd.org using -f From: Sam Leffler To: Perforce Change Reviews Cc: Subject: PERFORCE change 145536 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 05:26:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=145536 Change 145536 by sam@sam_ebb on 2008/07/21 05:26:48 don't use the key index to identify when the driver has been asked to allocate a key slot, use an explicit flag; allows drivers to force s/w fallback for entries in the global table Affected files ... .. //depot/projects/vap/sys/net80211/ieee80211_crypto.c#18 edit .. //depot/projects/vap/sys/net80211/ieee80211_crypto.h#18 edit Differences ... ==== //depot/projects/vap/sys/net80211/ieee80211_crypto.c#18 (text+ko) ==== @@ -372,7 +372,7 @@ * cipher template. Note also that when using software * crypto we also call the driver to give us a key index. */ - if (key->wk_keyix == IEEE80211_KEYIX_NONE) { + if ((key->wk_flags & IEEE80211_KEY_DEVKEY) == 0) { if (!dev_key_alloc(vap, key, &keyix, &rxkeyix)) { /* * Driver has no room; fallback to doing crypto @@ -402,6 +402,7 @@ } key->wk_keyix = keyix; key->wk_rxkeyix = rxkeyix; + key->wk_flags |= IEEE80211_KEY_DEVKEY; } return 1; } @@ -412,8 +413,6 @@ static int _ieee80211_crypto_delkey(struct ieee80211vap *vap, struct ieee80211_key *key) { - ieee80211_keyix keyix; - KASSERT(key->wk_cipher != NULL, ("No cipher!")); IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, @@ -423,8 +422,7 @@ key->wk_keyrsc[IEEE80211_NONQOS_TID], key->wk_keytsc, key->wk_keylen); - keyix = key->wk_keyix; - if (keyix != IEEE80211_KEYIX_NONE) { + if (key->wk_flags & IEEE80211_KEY_DEVKEY) { /* * Remove hardware entry. */ @@ -432,7 +430,7 @@ if (!dev_key_delete(vap, key)) { IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, "%s: driver did not delete key index %u\n", - __func__, keyix); + __func__, key->wk_keyix); vap->iv_stats.is_crypto_delkey++; /* XXX recovery? */ } @@ -492,6 +490,14 @@ key->wk_keyrsc[IEEE80211_NONQOS_TID], key->wk_keytsc, key->wk_keylen); + if ((key->wk_flags & IEEE80211_KEY_DEVKEY) == 0) { + /* XXX nothing allocated, should not happen */ + IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, + "%s: no device key setup done; should not happen!\n", + __func__); + vap->iv_stats.is_crypto_setkey_nokey++; + return 0; + } /* * Give cipher a chance to validate key contents. * XXX should happen before modifying state. @@ -504,13 +510,6 @@ vap->iv_stats.is_crypto_setkey_cipher++; return 0; } - if (key->wk_keyix == IEEE80211_KEYIX_NONE) { - /* XXX nothing allocated, should not happen */ - IEEE80211_DPRINTF(vap, IEEE80211_MSG_CRYPTO, - "%s: no key index; should not happen!\n", __func__); - vap->iv_stats.is_crypto_setkey_nokey++; - return 0; - } return dev_key_set(vap, key); } @@ -619,7 +618,7 @@ if (vap->iv_state != IEEE80211_S_RUN) return; k = &ni->ni_ucastkey; - if (k->wk_keyix != IEEE80211_KEYIX_NONE) + if (k->wk_flags & IEEE80211_KEY_DEVKEY) dev_key_set(vap, k); } @@ -643,7 +642,7 @@ continue; for (i = 0; i < IEEE80211_WEP_NKID; i++) { const struct ieee80211_key *k = &vap->iv_nw_keys[i]; - if (k->wk_keyix != IEEE80211_KEYIX_NONE) + if (k->wk_flags & IEEE80211_KEY_DEVKEY) dev_key_set(vap, k); } } ==== //depot/projects/vap/sys/net80211/ieee80211_crypto.h#18 (text+ko) ==== @@ -75,13 +75,14 @@ uint8_t wk_keylen; /* key length in bytes */ uint8_t wk_pad; uint16_t wk_flags; -#define IEEE80211_KEY_XMIT 0x01 /* key used for xmit */ -#define IEEE80211_KEY_RECV 0x02 /* key used for recv */ -#define IEEE80211_KEY_GROUP 0x04 /* key used for WPA group operation */ -#define IEEE80211_KEY_SWENCRYPT 0x10 /* host-based encrypt */ -#define IEEE80211_KEY_SWDECRYPT 0x20 /* host-based decrypt */ -#define IEEE80211_KEY_SWENMIC 0x40 /* host-based enmic */ -#define IEEE80211_KEY_SWDEMIC 0x80 /* host-based demic */ +#define IEEE80211_KEY_XMIT 0x0001 /* key used for xmit */ +#define IEEE80211_KEY_RECV 0x0002 /* key used for recv */ +#define IEEE80211_KEY_GROUP 0x0004 /* key used for WPA group operation */ +#define IEEE80211_KEY_SWENCRYPT 0x0010 /* host-based encrypt */ +#define IEEE80211_KEY_SWDECRYPT 0x0020 /* host-based decrypt */ +#define IEEE80211_KEY_SWENMIC 0x0040 /* host-based enmic */ +#define IEEE80211_KEY_SWDEMIC 0x0080 /* host-based demic */ +#define IEEE80211_KEY_DEVKEY 0x0100 /* device key request completed */ ieee80211_keyix wk_keyix; /* h/w key index */ ieee80211_keyix wk_rxkeyix; /* optional h/w rx key index */ uint8_t wk_key[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE]; From owner-p4-projects@FreeBSD.ORG Mon Jul 21 05:27:51 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2DC39106568A; Mon, 21 Jul 2008 05:27:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E4B641065688 for ; Mon, 21 Jul 2008 05:27:50 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C9A3F8FC0C for ; Mon, 21 Jul 2008 05:27:50 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L5RoUb044526 for ; Mon, 21 Jul 2008 05:27:50 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L5RocY044524 for perforce@freebsd.org; Mon, 21 Jul 2008 05:27:50 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 21 Jul 2008 05:27:50 GMT Message-Id: <200807210527.m6L5RocY044524@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 145538 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 05:27:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=145538 Change 145538 by pgj@disznohal on 2008/07/21 05:26:56 IFC Affected files ... .. //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#9 integrate .. //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/mailing-lists.ent#4 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#5 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/eresources/chapter.sgml#10 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/firewalls/chapter.sgml#11 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/mirrors/chapter.sgml#7 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/network-servers/chapter.sgml#5 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/printing/chapter.sgml#5 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#6 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/serialcomms/chapter.sgml#7 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/mailing-lists.ent#9 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/beech.key#2 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/glarkin.key#1 branch .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#7 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#7 integrate .. //depot/projects/docproj_hu/www/en/developers.sgml#8 integrate .. //depot/projects/docproj_hu/www/en/docproj/current.sgml#2 integrate .. //depot/projects/docproj_hu/www/en/donations/donors.sgml#4 integrate .. //depot/projects/docproj_hu/www/share/sgml/advisories.xml#2 integrate .. //depot/projects/docproj_hu/www/share/sgml/news.xml#10 integrate .. //depot/projects/docproj_hu/www/share/sgml/press.xml#6 integrate Differences ... ==== //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/authors.ent#9 (text+ko) ==== @@ -13,7 +13,7 @@ builds for the other languages, and we will poke fun of you in public. - $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.454 2008/07/08 05:18:13 sson Exp $ + $FreeBSD: doc/en_US.ISO8859-1/share/sgml/authors.ent,v 1.455 2008/07/18 19:33:29 glarkin Exp $ --> aaron@FreeBSD.org"> @@ -366,6 +366,8 @@ gj@FreeBSD.org"> +glarkin@FreeBSD.org"> + glebius@FreeBSD.org"> glewis@FreeBSD.org"> ==== //depot/projects/docproj_hu/doc/en_US.ISO8859-1/share/sgml/mailing-lists.ent#4 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -432,6 +432,10 @@ infrastructure"> freebsd-vuxml"> + +FreeBSD Work-In-Progress Status"> +freebsd-wip-status"> + FreeBSD Webmaster mailing list"> freebsd-www"> ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#5 (text+ko) ==== @@ -1,7 +1,7 @@ + -sub 1024g/018C35E9 2007-06-09 +sub 1024g/5D7681A3 2007-06-08 ]]> ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys-developers.sgml#7 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -594,6 +594,11 @@ &pgpkey.erwin; + + &a.glarkin; + &pgpkey.glarkin; + + &a.laszlof; &pgpkey.laszlof; ==== //depot/projects/docproj_hu/doc/share/pgpkeys/pgpkeys.ent#7 (text+ko) ==== @@ -1,5 +1,5 @@ - + @@ -93,6 +93,7 @@ + ==== //depot/projects/docproj_hu/www/en/developers.sgml#8 (text+ko) ==== @@ -6,7 +6,7 @@ us to update author names, or the representation of those names (such as adding email addresses), by just editing a single file. -$FreeBSD: www/en/developers.sgml,v 1.199 2008/07/08 05:31:18 sson Exp $ +$FreeBSD: www/en/developers.sgml,v 1.200 2008/07/18 19:34:32 glarkin Exp $ --> @@ -184,6 +184,7 @@ + ==== //depot/projects/docproj_hu/www/en/docproj/current.sgml#2 (text+ko) ==== @@ -1,6 +1,6 @@ - + %developers; @@ -34,7 +34,6 @@
  • Open documentation problem reports
  • Improve Handbook Index
  • Contribute Advocacy Slides/Presentations
  • -
  • FreeBSD for Linux users
  • Write a section in the Handbook and/or FAQ
  • Write some new Papers
  • CGI Scripts
  • @@ -116,16 +115,6 @@ improved as the default DocBook Slides XSL-FO stylesheets produce very spartan slides.

    - -

    FreeBSD for Linux users

    - -

    Responsible: FreeBSD-doc - <FreeBSD-doc@FreeBSD.org>

    - -

    Synopsis: Linux users coming to FreeBSD can be confused by - some of the differences between the systems (the different default - shells, how boot time configuration is performed, and so on).

    -

    Write a section in the Handbook and/or FAQ

    ==== //depot/projects/docproj_hu/www/en/donations/donors.sgml#4 (text+ko) ==== @@ -1,6 +1,6 @@ - + %developers; @@ -2460,6 +2460,34 @@ rink Received + + + Daniel Austin <me@dan.me.uk> + DIMMs plus ATA disks + wilko + Received + + + + Daniel Austin <me@dan.me.uk> + DIMMs plus ATA disks + rink + Received + + + + Daniel Austin <me@dan.me.uk> + ATA disks + joel + Received + + + + Daniel Austin <me@dan.me.uk> + WinTV PCI Tuner card + gavin + Received + &footer; ==== //depot/projects/docproj_hu/www/share/sgml/advisories.xml#2 (text+ko) ==== @@ -2,7 +2,7 @@ - $FreeBSD: www/share/sgml/advisories.xml,v 1.219 2008/04/17 00:16:47 cperciva Exp $ + $FreeBSD: www/share/sgml/advisories.xml,v 1.220 2008/07/13 19:10:59 cperciva Exp $ @@ -10,6 +10,18 @@ 2008 + 7 + + + 13 + + + FreeBSD-SA-08:06.bind + + + + + 4 ==== //depot/projects/docproj_hu/www/share/sgml/news.xml#10 (text+ko) ==== @@ -20,7 +20,7 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.173 2008/07/08 15:17:19 sson Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.175 2008/07/18 19:34:32 glarkin Exp $ @@ -31,8 +31,26 @@ 7 + 17 + +

    New committer: Greg Larkin + (ports)

    +
    +
    + + 8 + iXsystems Announces Professional &os; and PC-BSD Support + Offering +

    A press + release announcing the launch of iXsystems' Professional + Services Division which will provide Professional Enterprise + Grade support, consulting, and development for &os; and PC-BSD.

    +
    + +

    New committer: Stacey Son (src)

    ==== //depot/projects/docproj_hu/www/share/sgml/press.xml#6 (text+ko) ==== @@ -9,7 +9,7 @@ - $FreeBSD: www/share/sgml/press.xml,v 1.66 2008/07/07 18:10:23 danger Exp $ + $FreeBSD: www/share/sgml/press.xml,v 1.67 2008/07/17 18:45:11 jkois Exp $ @@ -25,7 +25,7 @@ http://www.freesoftwaremagazine.com/ 7 July 2008 Ken Leyba -

    A review of the book Building a Server with FreeBSD 7 by Bryan J. +

    A review of the book "Building a Server with FreeBSD 7" by Bryan J. Hong.

    @@ -36,7 +36,7 @@ http://www.osnews.com/ 2 July 2008 Peter Hummers -

    A review of the book The Best of FreeBSD Basics.

    +

    A review of the book "The Best of FreeBSD Basics".

    From owner-p4-projects@FreeBSD.ORG Mon Jul 21 08:46:12 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 873CC1065679; Mon, 21 Jul 2008 08:46:12 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 497641065677 for ; Mon, 21 Jul 2008 08:46:12 +0000 (UTC) (envelope-from zec@tel.fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 28D308FC18 for ; Mon, 21 Jul 2008 08:46:12 +0000 (UTC) (envelope-from zec@tel.fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L8kCt3066932 for ; Mon, 21 Jul 2008 08:46:12 GMT (envelope-from zec@tel.fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L8kBoO066930 for perforce@freebsd.org; Mon, 21 Jul 2008 08:46:11 GMT (envelope-from zec@tel.fer.hr) Date: Mon, 21 Jul 2008 08:46:11 GMT Message-Id: <200807210846.m6L8kBoO066930@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@tel.fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 145546 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 08:46:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=145546 Change 145546 by zec@zec_tpx32 on 2008/07/21 08:46:10 IFC @ 145420 Affected files ... .. //depot/projects/vimage-devel/src/sys/Makefile#2 integrate .. //depot/projects/vimage-devel/src/sys/amd64/amd64/busdma_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/amd64/amd64/machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/amd64/amd64/minidump_machdep.c#6 integrate .. //depot/projects/vimage-devel/src/sys/amd64/amd64/mp_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/amd64/amd64/pmap.c#4 integrate .. //depot/projects/vimage-devel/src/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/vimage-devel/src/sys/amd64/conf/GENERIC.hints#2 integrate .. //depot/projects/vimage-devel/src/sys/amd64/include/pmap.h#3 integrate .. //depot/projects/vimage-devel/src/sys/amd64/include/vmparam.h#3 integrate .. //depot/projects/vimage-devel/src/sys/arm/at91/if_atereg.h#2 integrate .. //depot/projects/vimage-devel/src/sys/arm/xscale/i80321/ep80219_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/arm/xscale/i80321/iq31244_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/arm/xscale/i8134x/crb_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/arm/xscale/ixp425/avila_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/arm/xscale/pxa/pxa_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/boot/forth/loader.conf#2 integrate .. //depot/projects/vimage-devel/src/sys/boot/i386/boot2/boot2.c#2 integrate .. //depot/projects/vimage-devel/src/sys/boot/pc98/boot2/README.serial.98#2 delete .. //depot/projects/vimage-devel/src/sys/cam/scsi/scsi_da.c#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/freebsd32/freebsd32_misc.c#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/freebsd32/freebsd32_proto.h#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/freebsd32/freebsd32_syscall.h#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/freebsd32/freebsd32_syscalls.c#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/freebsd32/freebsd32_sysent.c#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/freebsd32/syscalls.master#2 integrate .. //depot/projects/vimage-devel/src/sys/compat/linux/linux_misc.c#4 integrate .. //depot/projects/vimage-devel/src/sys/compat/pecoff/imgact_pecoff.c#2 delete .. //depot/projects/vimage-devel/src/sys/compat/pecoff/imgact_pecoff.h#2 delete .. //depot/projects/vimage-devel/src/sys/compat/svr4/svr4_stat.c#3 integrate .. //depot/projects/vimage-devel/src/sys/conf/NOTES#3 integrate .. //depot/projects/vimage-devel/src/sys/conf/files#5 integrate .. //depot/projects/vimage-devel/src/sys/conf/files.i386#3 integrate .. //depot/projects/vimage-devel/src/sys/conf/files.pc98#3 integrate .. //depot/projects/vimage-devel/src/sys/conf/kern.post.mk#2 integrate .. //depot/projects/vimage-devel/src/sys/conf/newvers.sh#2 integrate .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/COPYRIGHT#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/i386-elf.trlld.o.uu#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/if_oltr.c#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/if_oltr_isa.c#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/if_oltr_pci.c#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/if_oltrvar.h#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/trlld.h#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/trlldbm.c#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/trlldhm.c#2 delete .. //depot/projects/vimage-devel/src/sys/contrib/dev/oltr/trlldmac.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/acpi_support/acpi_asus.c#3 integrate .. //depot/projects/vimage-devel/src/sys/dev/age/if_age.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/arl/if_arl.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/arl/if_arl_isa.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/arl/if_arlreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/dev/ata/ata-chipset.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ata/ata-pci.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/bm/if_bm.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/bm/if_bmreg.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/bm/if_bmvar.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ce/ceddk.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ce/if_ce.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ciss/ciss.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ciss/cissio.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ciss/cissreg.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cnw/if_cnw.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/cnw/if_cnwioctl.h#2 delete .. //depot/projects/vimage-devel/src/sys/dev/cnw/if_cnwreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/dev/cp/cpddk.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cp/if_cp.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cs/if_cs.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cs/if_csreg.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ctau/ctddk.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/ctau/if_ct.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cx/cxddk.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cx/if_cx.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_ael1002.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_common.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_mc5.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_mv88e1xxx.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_t3_cpl.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_t3_hw.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_tn1010.c#1 branch .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_vsc8211.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/common/cxgb_xgmac.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/cxgb_adapter.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/cxgb_main.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/cxgb_osdep.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/cxgb_sge.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#3 integrate .. //depot/projects/vimage-devel/src/sys/dev/ed/if_ed_pccard.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/et/if_et.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/if_ndis/if_ndis.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/jme/if_jme.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/k8temp/k8temp.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/lmc/if_lmc.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/lmc/if_lmc.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/mii/rgephy.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/mii/rgephyreg.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/mpt/mpt_user.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/mxge/if_mxge.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/pccard/pccarddevs#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/re/if_re.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/sbni/if_sbni.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sbni/if_sbni_isa.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sbni/if_sbni_pci.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sbni/if_sbnireg.h#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sbni/if_sbnivar.h#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sbsh/if_sbsh.c#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sbsh/if_sbshreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/dev/sound/pci/atiixp.h#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/sound/pci/hda/hdac.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/syscons/daemon/daemon_saver.c#3 integrate .. //depot/projects/vimage-devel/src/sys/dev/usb/ohci.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/usb/usb_ethersubr.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/vr/if_vr.c#2 integrate .. //depot/projects/vimage-devel/src/sys/dev/vr/if_vrreg.h#2 integrate .. //depot/projects/vimage-devel/src/sys/fs/cd9660/cd9660_rrip.c#3 integrate .. //depot/projects/vimage-devel/src/sys/fs/msdosfs/msdosfs_vnops.c#2 integrate .. //depot/projects/vimage-devel/src/sys/fs/smbfs/smbfs_node.c#2 integrate .. //depot/projects/vimage-devel/src/sys/geom/vinum/geom_vinum_drive.c#2 integrate .. //depot/projects/vimage-devel/src/sys/geom/vinum/geom_vinum_subr.c#2 integrate .. //depot/projects/vimage-devel/src/sys/geom/virstor/g_virstor.c#2 integrate .. //depot/projects/vimage-devel/src/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/vimage-devel/src/sys/i386/conf/GENERIC.hints#2 integrate .. //depot/projects/vimage-devel/src/sys/i386/conf/NOTES#4 integrate .. //depot/projects/vimage-devel/src/sys/i386/i386/busdma_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/i386/i386/mp_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/i386/i386/pmap.c#2 integrate .. //depot/projects/vimage-devel/src/sys/i386/ibcs2/ibcs2_socksys.c#3 integrate .. //depot/projects/vimage-devel/src/sys/ia64/conf/GENERIC#2 integrate .. //depot/projects/vimage-devel/src/sys/ia64/ia64/busdma_machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/ia64/ia64/machdep.c#2 integrate .. //depot/projects/vimage-devel/src/sys/ia64/include/ia64_cpu.h#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_alq.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_conf.c#4 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_cpuset.c#3 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_event.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_exec.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_fork.c#4 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_intr.c#3 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_jail.c#4 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_malloc.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_mib.c#3 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_poll.c#3 integrate .. //depot/projects/vimage-devel/src/sys/kern/kern_xxx.c#7 integrate .. //depot/projects/vimage-devel/src/sys/kern/link_elf.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/link_elf_obj.c#3 integrate .. //depot/projects/vimage-devel/src/sys/kern/subr_param.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/subr_stack.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/subr_taskqueue.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/uipc_debug.c#2 integrate .. //depot/projects/vimage-devel/src/sys/kern/uipc_socket.c#4 integrate .. //depot/projects/vimage-devel/src/sys/kern/uipc_usrreq.c#3 integrate .. //depot/projects/vimage-devel/src/sys/kern/vfs_mount.c#2 integrate .. //depot/projects/vimage-devel/src/sys/libkern/memset.c#2 integrate .. //depot/projects/vimage-devel/src/sys/mips/adm5120/adm5120_machdep.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/adm5120reg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/admpci.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/console.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/files.adm5120#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/if_admsw.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/if_admswreg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/if_admswvar.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/obio.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/obiovar.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/std.adm5120#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/uart_bus_adm5120.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/uart_cpu_adm5120.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/uart_dev_adm5120.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/adm5120/uart_dev_adm5120.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/files.idt#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/idt_machdep.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/idtpci.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/idtreg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/if_kr.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/if_krreg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/obio.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/obiovar.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/std.idt#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/uart_bus_rc32434.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/idt/uart_cpu_rc32434.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/files.malta#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/gt.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/gt_pci.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/gtreg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/gtvar.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/malta_machdep.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/maltareg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/obio.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/obiovar.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/std.malta#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/uart_bus_maltausart.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/uart_cpu_maltausart.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/yamon.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/malta/yamon.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/mips/pmap.c#2 integrate .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/adm5120_machdep.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/adm5120reg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/admpci.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/console.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/files.adm5120#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/if_admsw.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/if_admswreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/if_admswvar.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/obio.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/obiovar.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/std.adm5120#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/uart_bus_adm5120.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/uart_cpu_adm5120.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/uart_dev_adm5120.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/adm5120/uart_dev_adm5120.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/files.idt#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/idt_machdep.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/idtpci.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/idtreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/if_kr.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/if_krreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/obio.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/obiovar.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/std.idt#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/uart_bus_rc32434.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/idt/uart_cpu_rc32434.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/files.malta#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/gt.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/gt_pci.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/gtreg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/gtvar.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/malta_machdep.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/maltareg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/obio.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/obiovar.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/std.malta#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/uart_bus_maltausart.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/uart_cpu_maltausart.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/yamon.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/malta/yamon.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/files.sentry5#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/obio.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/obiovar.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/s5_machdep.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/s5reg.h#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/siba_cc.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/siba_mips.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/siba_sdram.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/uart_bus_sbusart.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/mips32/sentry5/uart_cpu_sbusart.c#2 delete .. //depot/projects/vimage-devel/src/sys/mips/sentry5/files.sentry5#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/obio.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/obiovar.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/s5_machdep.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/s5reg.h#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/siba_cc.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/siba_mips.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/siba_sdram.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/uart_bus_sbusart.c#1 branch .. //depot/projects/vimage-devel/src/sys/mips/sentry5/uart_cpu_sbusart.c#1 branch .. //depot/projects/vimage-devel/src/sys/modules/Makefile#5 integrate .. //depot/projects/vimage-devel/src/sys/modules/arl/Makefile#2 delete .. //depot/projects/vimage-devel/src/sys/modules/cnw/Makefile#2 delete .. //depot/projects/vimage-devel/src/sys/modules/cxgb/cxgb/Makefile#2 integrate .. //depot/projects/vimage-devel/src/sys/modules/oltr/Makefile#2 delete .. //depot/projects/vimage-devel/src/sys/modules/pecoff/Makefile#2 delete .. //depot/projects/vimage-devel/src/sys/modules/sbni/Makefile#2 delete .. //depot/projects/vimage-devel/src/sys/modules/sbsh/Makefile#2 delete .. //depot/projects/vimage-devel/src/sys/net/bpf.c#5 integrate .. //depot/projects/vimage-devel/src/sys/net/bpf.h#3 integrate .. //depot/projects/vimage-devel/src/sys/net/bpf_zerocopy.c#2 integrate .. //depot/projects/vimage-devel/src/sys/net/bpf_zerocopy.h#2 integrate .. //depot/projects/vimage-devel/src/sys/net/if_bridge.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net/if_lagg.c#2 integrate .. //depot/projects/vimage-devel/src/sys/net/if_ppp.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net/if_vlan.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net/netisr.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net/netisr.h#2 integrate .. //depot/projects/vimage-devel/src/sys/net/raw_cb.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net/raw_cb.h#3 integrate .. //depot/projects/vimage-devel/src/sys/net/raw_usrreq.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net/rtsock.c#3 integrate .. //depot/projects/vimage-devel/src/sys/net80211/ieee80211_ht.c#2 integrate .. //depot/projects/vimage-devel/src/sys/net80211/ieee80211_output.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netatalk/ddp_usrreq.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/bluetooth/common/ng_bluetooth.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/bluetooth/drivers/ubt/TODO#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/bluetooth/include/ng_bluetooth.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/bluetooth/include/ng_btsocket.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/ng_base.c#5 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/ng_iface.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netgraph/ng_ip_input.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/if_ether.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/in_pcb.c#5 integrate .. //depot/projects/vimage-devel/src/sys/netinet/in_pcb.h#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/ip_carp.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/ip_gre.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/ip_input.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet/raw_ip.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_asconf.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_asconf.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_bsd_addr.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_bsd_addr.h#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_cc_functions.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_constants.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_crc32.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_indata.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_indata.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_input.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_input.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_os_bsd.h#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_output.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_output.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_pcb.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_pcb.h#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_sysctl.h#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_timer.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_timer.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_uio.h#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_usrreq.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctp_var.h#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctputil.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/sctputil.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet/tcp_output.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet/udp_usrreq.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/frag6.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/icmp6.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/in6.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/in6_ifattach.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/in6_pcb.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/in6_pcb.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/in6_src.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/ip6_forward.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/ip6_input.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/ip6_var.h#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/raw_ip6.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/sctp6_usrreq.c#4 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/sctp6_var.h#2 integrate .. //depot/projects/vimage-devel/src/sys/netinet6/udp6_usrreq.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netipsec/keysock.c#3 integrate .. //depot/projects/vimage-devel/src/sys/netipx/ipx_input.c#2 integrate .. //depot/projects/vimage-devel/src/sys/netnatm/natm_proto.c#2 integrate .. //depot/projects/vimage-devel/src/sys/nfsclient/bootp_subr.c#3 integrate .. //depot/projects/vimage-devel/src/sys/nfsclient/nfs_vfsops.c#4 integrate .. //depot/projects/vimage-devel/src/sys/nfsserver/nfs_syscalls.c#2 integrate .. //depot/projects/vimage-devel/src/sys/nlm/nlm_advlock.c#3 integrate .. //depot/projects/vimage-devel/src/sys/nlm/nlm_prot_impl.c#3 integrate .. //depot/projects/vimage-devel/src/sys/pc98/conf/GENERIC#2 integrate .. //depot/projects/vimage-devel/src/sys/pc98/conf/NOTES#3 integrate .. //depot/projects/vimage-devel/src/sys/pc98/include/bus.h#2 integrate .. //depot/projects/vimage-devel/src/sys/pc98/pc98/busiosubr.c#2 integrate .. //depot/projects/vimage-devel/src/sys/pci/if_rlreg.h#3 integrate .. //depot/projects/vimage-devel/src/sys/powerpc/conf/GENERIC#2 integrate .. //depot/projects/vimage-devel/src/sys/rpc/authunix_prot.c#5 integrate .. //depot/projects/vimage-devel/src/sys/sparc64/conf/GENERIC#2 integrate .. //depot/projects/vimage-devel/src/sys/sparc64/include/in_cksum.h#3 integrate .. //depot/projects/vimage-devel/src/sys/sparc64/sparc64/in_cksum.c#2 integrate .. //depot/projects/vimage-devel/src/sys/sun4v/conf/GENERIC#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/_task.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/event.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/eventhandler.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/imgact.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/interrupt.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/ioctl_compat.h#3 integrate .. //depot/projects/vimage-devel/src/sys/sys/kernel.h#3 integrate .. //depot/projects/vimage-devel/src/sys/sys/libkern.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/link_elf.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/socketvar.h#3 integrate .. //depot/projects/vimage-devel/src/sys/sys/taskqueue.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/termios.h#2 integrate .. //depot/projects/vimage-devel/src/sys/sys/ttycom.h#2 integrate .. //depot/projects/vimage-devel/src/sys/vm/swap_pager.c#2 integrate .. //depot/projects/vimage-devel/src/sys/vm/vm_kern.h#2 integrate Differences ... ==== //depot/projects/vimage-devel/src/sys/Makefile#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/Makefile,v 1.49 2008/05/26 10:39:52 bz Exp $ +# $FreeBSD: src/sys/Makefile,v 1.50 2008/07/10 16:03:24 obrien Exp $ .include @@ -12,9 +12,12 @@ gnu isa kern libkern modules net net80211 netatalk \ netgraph netinet netinet6 netipsec netipx netnatm netncp \ netsmb nfs nfs4client nfsclient nfsserver opencrypto pccard \ - pci rpc security sys ufs vm ${ARCHDIR} - -ARCHDIR ?= ${MACHINE} + pci rpc security sys ufs vm ${CSCOPE_ARCHDIR} +.if defined(ALL_ARCH) +CSCOPE_ARCHDIR ?= amd64 arm i386 ia64 mips powerpc sparc64 +.else +CSCOPE_ARCHDIR ?= ${MACHINE} +.endif # Loadable kernel modules ==== //depot/projects/vimage-devel/src/sys/amd64/amd64/busdma_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.85 2008/02/12 16:24:30 scottl Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.86 2008/07/15 03:34:49 alc Exp $"); #include #include @@ -480,8 +480,6 @@ mflags = M_NOWAIT; else mflags = M_WAITOK; - if (flags & BUS_DMA_ZERO) - mflags |= M_ZERO; /* If we succeed, no mapping/bouncing will be required */ *mapp = NULL; @@ -489,13 +487,15 @@ if (dmat->segments == NULL) { dmat->segments = (bus_dma_segment_t *)malloc( sizeof(bus_dma_segment_t) * dmat->nsegments, M_DEVBUF, - M_NOWAIT); + mflags); if (dmat->segments == NULL) { CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", __func__, dmat, dmat->flags, ENOMEM); return (ENOMEM); } } + if (flags & BUS_DMA_ZERO) + mflags |= M_ZERO; /* * XXX: @@ -531,7 +531,7 @@ pmap_change_attr((vm_offset_t)*vaddr, dmat->maxsize, PAT_UNCACHEABLE); CTR4(KTR_BUSDMA, "%s: tag %p tag flags 0x%x error %d", - __func__, dmat, dmat->flags, ENOMEM); + __func__, dmat, dmat->flags, 0); return (0); } ==== //depot/projects/vimage-devel/src/sys/amd64/amd64/machdep.c#2 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.686 2008/04/25 05:18:47 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.687 2008/07/09 19:44:37 peter Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -1466,6 +1466,10 @@ _udatasel = GSEL(GUDATA_SEL, SEL_UPL); _ucode32sel = GSEL(GUCODE32_SEL, SEL_UPL); + load_ds(_udatasel); + load_es(_udatasel); + load_fs(_udatasel); + /* setup proc 0's pcb */ thread0.td_pcb->pcb_flags = 0; thread0.td_pcb->pcb_cr3 = KPML4phys; ==== //depot/projects/vimage-devel/src/sys/amd64/amd64/minidump_machdep.c#6 (text) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.5 2008/06/20 20:59:31 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/minidump_machdep.c,v 1.6 2008/07/08 04:00:22 alc Exp $"); #include "opt_vimage.h" @@ -209,7 +209,8 @@ /* Walk page table pages, set bits in vm_page_dump */ ptesize = 0; pdp = (uint64_t *)PHYS_TO_DMAP(KPDPphys); - for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += NBPDR) { + for (va = VM_MIN_KERNEL_ADDRESS; va < MAX(KERNBASE + NKPT * NBPDR, + kernel_vm_end); va += NBPDR) { i = (va >> PDPSHIFT) & ((1ul << NPDPEPGSHIFT) - 1); /* * We always write a page, even if it is zero. Each @@ -315,7 +316,8 @@ /* Dump kernel page table pages */ pdp = (uint64_t *)PHYS_TO_DMAP(KPDPphys); - for (va = VM_MIN_KERNEL_ADDRESS; va < kernel_vm_end; va += NBPDR) { + for (va = VM_MIN_KERNEL_ADDRESS; va < MAX(KERNBASE + NKPT * NBPDR, + kernel_vm_end); va += NBPDR) { i = (va >> PDPSHIFT) & ((1ul << NPDPEPGSHIFT) - 1); /* We always write a page, even if it is zero */ if ((pdp[i] & PG_V) == 0) { ==== //depot/projects/vimage-devel/src/sys/amd64/amd64/mp_machdep.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.289 2008/03/10 01:32:48 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.291 2008/07/09 19:44:37 peter Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -79,7 +79,6 @@ int mp_naps; /* # of Applications processors */ int boot_cpu_id = -1; /* designated BSP */ -extern int nkpt; extern struct pcpu __pcpu[]; @@ -99,6 +98,8 @@ /* SMP page table page */ extern pt_entry_t *SMPpt; +extern int _udatasel; + struct pcb stoppcbs[MAXCPU]; /* Variables needed for SMP tlb shootdown. */ @@ -565,7 +566,9 @@ */ load_cr4(rcr4() | CR4_PGE); - + load_ds(_udatasel); + load_es(_udatasel); + load_fs(_udatasel); mtx_unlock_spin(&ap_boot_mtx); /* wait until all the AP's are up */ ==== //depot/projects/vimage-devel/src/sys/amd64/amd64/pmap.c#4 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.623 2008/06/21 19:19:09 alc Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.632 2008/07/13 18:19:53 alc Exp $"); /* * Manages physical address maps. @@ -173,10 +173,9 @@ vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ -static int nkpt; static int ndmpdp; static vm_paddr_t dmaplimit; -vm_offset_t kernel_vm_end; +vm_offset_t kernel_vm_end = VM_MIN_KERNEL_ADDRESS; pt_entry_t pg_nx; SYSCTL_NODE(_vm, OID_AUTO, pmap, CTLFLAG_RD, 0, "VM/pmap parameters"); @@ -227,6 +226,7 @@ vm_prot_t prot); static vm_page_t pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, vm_page_t mpte); +static void pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte); static void pmap_insert_pt_page(pmap_t pmap, vm_page_t mpte); static boolean_t pmap_is_modified_pvh(struct md_page *pvh); static vm_page_t pmap_lookup_pt_page(pmap_t pmap, vm_offset_t va); @@ -441,10 +441,8 @@ /* Read-only from zero to physfree */ /* XXX not fully used, underneath 2M pages */ for (i = 0; (i << PAGE_SHIFT) < *firstaddr; i++) { - ((pt_entry_t *)KPTphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) / - PAGE_SIZE + i] = i << PAGE_SHIFT; - ((pt_entry_t *)KPTphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) / - PAGE_SIZE + i] |= PG_RW | PG_V | PG_G; + ((pt_entry_t *)KPTphys)[i] = i << PAGE_SHIFT; + ((pt_entry_t *)KPTphys)[i] |= PG_RW | PG_V | PG_G; } /* Now map the page tables at their location within PTmap */ @@ -456,10 +454,8 @@ /* Map from zero to end of allocations under 2M pages */ /* This replaces some of the KPTphys entries above */ for (i = 0; (i << PDRSHIFT) < *firstaddr; i++) { - ((pd_entry_t *)KPDphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) / - NBPDR + i] = i << PDRSHIFT; - ((pd_entry_t *)KPDphys)[(KERNBASE - VM_MIN_KERNEL_ADDRESS) / - NBPDR + i] |= PG_RW | PG_V | PG_PS | PG_G; + ((pd_entry_t *)KPDphys)[i] = i << PDRSHIFT; + ((pd_entry_t *)KPDphys)[i] |= PG_RW | PG_V | PG_PS | PG_G; } /* And connect up the PD to the PDP */ @@ -470,11 +466,12 @@ } /* Now set up the direct map space using either 2MB or 1GB pages */ + /* Preset PG_M and PG_A because demotion expects it */ if ((amd_feature & AMDID_PAGE1GB) == 0) { for (i = 0; i < NPDEPG * ndmpdp; i++) { ((pd_entry_t *)DMPDphys)[i] = (vm_paddr_t)i << PDRSHIFT; ((pd_entry_t *)DMPDphys)[i] |= PG_RW | PG_V | PG_PS | - PG_G; + PG_G | PG_M | PG_A; } /* And the direct map space's PDP */ for (i = 0; i < ndmpdp; i++) { @@ -487,7 +484,7 @@ ((pdp_entry_t *)DMPDPphys)[i] = (vm_paddr_t)i << PDPSHIFT; ((pdp_entry_t *)DMPDPphys)[i] |= PG_RW | PG_V | PG_PS | - PG_G; + PG_G | PG_M | PG_A; } } @@ -543,7 +540,6 @@ kernel_pmap->pm_root = NULL; kernel_pmap->pm_active = -1; /* don't allow deactivation */ TAILQ_INIT(&kernel_pmap->pm_pvchunk); - nkpt = NKPT; /* * Reserve some special page table entries/VA space for temporary @@ -649,15 +645,17 @@ * Initialize the vm page array entries for the kernel pmap's * page table pages. */ - pd = pmap_pde(kernel_pmap, VM_MIN_KERNEL_ADDRESS); - for (i = 0; i < nkpt; i++) { + pd = pmap_pde(kernel_pmap, KERNBASE); + for (i = 0; i < NKPT; i++) { if ((pd[i] & (PG_PS | PG_V)) == (PG_PS | PG_V)) continue; + KASSERT((pd[i] & PG_V) != 0, + ("pmap_init: page table page is missing")); mpte = PHYS_TO_VM_PAGE(pd[i] & PG_FRAME); KASSERT(mpte >= vm_page_array && mpte < &vm_page_array[vm_page_array_size], ("pmap_init: page table page is out of range")); - mpte->pindex = pmap_pde_pindex(VM_MIN_KERNEL_ADDRESS) + i; + mpte->pindex = pmap_pde_pindex(KERNBASE) + i; mpte->phys_addr = pd[i] & PG_FRAME; } @@ -1043,17 +1041,25 @@ vm_paddr_t pmap_kextract(vm_offset_t va) { - pd_entry_t *pde; + pd_entry_t pde; vm_paddr_t pa; if (va >= DMAP_MIN_ADDRESS && va < DMAP_MAX_ADDRESS) { pa = DMAP_TO_PHYS(va); } else { - pde = vtopde(va); - if (*pde & PG_PS) { - pa = (*pde & PG_PS_FRAME) | (va & PDRMASK); + pde = *vtopde(va); + if (pde & PG_PS) { + pa = (pde & PG_PS_FRAME) | (va & PDRMASK); } else { - pa = *vtopte(va); + /* + * Beware of a concurrent promotion that changes the + * PDE at this point! For example, vtopte() must not + * be used to access the PTE because it would use the + * new PDE. It is, however, safe to use the old PDE + * because the page table page is preserved by the + * promotion. + */ + pa = *pmap_pde_to_pte(&pde, va); pa = (pa & PG_FRAME) | (va & PAGE_MASK); } } @@ -1703,41 +1709,50 @@ vm_paddr_t paddr; vm_page_t nkpg; pd_entry_t *pde, newpdir; - pdp_entry_t newpdp; + pdp_entry_t *pdpe; mtx_assert(&kernel_map->system_mtx, MA_OWNED); - if (kernel_vm_end == 0) { - kernel_vm_end = VM_MIN_KERNEL_ADDRESS; - nkpt = 0; - while ((*pmap_pde(kernel_pmap, kernel_vm_end) & PG_V) != 0) { - kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1); - nkpt++; - if (kernel_vm_end - 1 >= kernel_map->max_offset) { - kernel_vm_end = kernel_map->max_offset; - break; - } - } - } - addr = roundup2(addr, PAGE_SIZE * NPTEPG); + + /* + * Return if "addr" is within the range of kernel page table pages + * that were preallocated during pmap bootstrap. Moreover, leave + * "kernel_vm_end" and the kernel page table as they were. + * + * The correctness of this action is based on the following + * argument: vm_map_findspace() allocates contiguous ranges of the + * kernel virtual address space. It calls this function if a range + * ends after "kernel_vm_end". If the kernel is mapped between + * "kernel_vm_end" and "addr", then the range cannot begin at + * "kernel_vm_end". In fact, its beginning address cannot be less + * than the kernel. Thus, there is no immediate need to allocate + * any new kernel page table pages between "kernel_vm_end" and + * "KERNBASE". + */ + if (KERNBASE < addr && addr <= KERNBASE + NKPT * NBPDR) + return; + + addr = roundup2(addr, NBPDR); if (addr - 1 >= kernel_map->max_offset) addr = kernel_map->max_offset; while (kernel_vm_end < addr) { - pde = pmap_pde(kernel_pmap, kernel_vm_end); - if (pde == NULL) { + pdpe = pmap_pdpe(kernel_pmap, kernel_vm_end); + if ((*pdpe & PG_V) == 0) { /* We need a new PDP entry */ - nkpg = vm_page_alloc(NULL, nkpt, - VM_ALLOC_NOOBJ | VM_ALLOC_SYSTEM | VM_ALLOC_WIRED); + nkpg = vm_page_alloc(NULL, kernel_vm_end >> PDPSHIFT, + VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | + VM_ALLOC_WIRED | VM_ALLOC_ZERO); if (nkpg == NULL) panic("pmap_growkernel: no memory to grow kernel"); - pmap_zero_page(nkpg); + if ((nkpg->flags & PG_ZERO) == 0) + pmap_zero_page(nkpg); paddr = VM_PAGE_TO_PHYS(nkpg); - newpdp = (pdp_entry_t) + *pdpe = (pdp_entry_t) (paddr | PG_V | PG_RW | PG_A | PG_M); - *pmap_pdpe(kernel_pmap, kernel_vm_end) = newpdp; continue; /* try again */ } + pde = pmap_pdpe_to_pde(pdpe, kernel_vm_end); if ((*pde & PG_V) != 0) { - kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1); + kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK; if (kernel_vm_end - 1 >= kernel_map->max_offset) { kernel_vm_end = kernel_map->max_offset; break; @@ -1746,18 +1761,17 @@ } nkpg = vm_page_alloc(NULL, pmap_pde_pindex(kernel_vm_end), - VM_ALLOC_NOOBJ | VM_ALLOC_SYSTEM | VM_ALLOC_WIRED); + VM_ALLOC_INTERRUPT | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | + VM_ALLOC_ZERO); if (nkpg == NULL) panic("pmap_growkernel: no memory to grow kernel"); - - nkpt++; - - pmap_zero_page(nkpg); + if ((nkpg->flags & PG_ZERO) == 0) + pmap_zero_page(nkpg); paddr = VM_PAGE_TO_PHYS(nkpg); newpdir = (pd_entry_t) (paddr | PG_V | PG_RW | PG_A | PG_M); - *pmap_pde(kernel_pmap, kernel_vm_end) = newpdir; + pde_store(pde, newpdir); - kernel_vm_end = (kernel_vm_end + PAGE_SIZE * NPTEPG) & ~(PAGE_SIZE * NPTEPG - 1); + kernel_vm_end = (kernel_vm_end + NBPDR) & ~PDRMASK; if (kernel_vm_end - 1 >= kernel_map->max_offset) { kernel_vm_end = kernel_map->max_offset; break; @@ -2193,58 +2207,88 @@ } /* - * Tries to demote a 2MB page mapping. + * Fills a page table page with mappings to consecutive physical pages. + */ +static void +pmap_fill_ptp(pt_entry_t *firstpte, pt_entry_t newpte) +{ + pt_entry_t *pte; + + for (pte = firstpte; pte < firstpte + NPTEPG; pte++) { + *pte = newpte; + newpte += PAGE_SIZE; + } +} + +/* + * Tries to demote a 2MB page mapping. If demotion fails, the 2MB page + * mapping is invalidated. */ static boolean_t pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va) { pd_entry_t newpde, oldpde; - pt_entry_t *firstpte, newpte, *pte; + pt_entry_t *firstpte, newpte; vm_paddr_t mptepa; vm_page_t free, mpte; PMAP_LOCK_ASSERT(pmap, MA_OWNED); + oldpde = *pde; + KASSERT((oldpde & (PG_PS | PG_V)) == (PG_PS | PG_V), + ("pmap_demote_pde: oldpde is missing PG_PS and/or PG_V")); mpte = pmap_lookup_pt_page(pmap, va); if (mpte != NULL) pmap_remove_pt_page(pmap, mpte); else { - KASSERT((*pde & PG_W) == 0, + KASSERT((oldpde & PG_W) == 0, ("pmap_demote_pde: page table page for a wired mapping" " is missing")); - free = NULL; - pmap_remove_pde(pmap, pde, trunc_2mpage(va), &free); - pmap_invalidate_page(pmap, trunc_2mpage(va)); - pmap_free_zero_pages(free); - CTR2(KTR_PMAP, "pmap_demote_pde: failure for va %#lx" - " in pmap %p", va, pmap); - return (FALSE); + + /* + * Invalidate the 2MB page mapping and return "failure" if the + * mapping was never accessed or the allocation of the new + * page table page fails. + */ + if ((oldpde & PG_A) == 0 || (mpte = vm_page_alloc(NULL, + pmap_pde_pindex(va), VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | + VM_ALLOC_WIRED)) == NULL) { + free = NULL; + pmap_remove_pde(pmap, pde, trunc_2mpage(va), &free); + pmap_invalidate_page(pmap, trunc_2mpage(va)); + pmap_free_zero_pages(free); + CTR2(KTR_PMAP, "pmap_demote_pde: failure for va %#lx" + " in pmap %p", va, pmap); + return (FALSE); + } } mptepa = VM_PAGE_TO_PHYS(mpte); firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa); - oldpde = *pde; newpde = mptepa | PG_M | PG_A | (oldpde & PG_U) | PG_RW | PG_V; - KASSERT((oldpde & (PG_A | PG_V)) == (PG_A | PG_V), - ("pmap_demote_pde: oldpde is missing PG_A and/or PG_V")); + KASSERT((oldpde & PG_A) != 0, + ("pmap_demote_pde: oldpde is missing PG_A")); KASSERT((oldpde & (PG_M | PG_RW)) != PG_RW, ("pmap_demote_pde: oldpde is missing PG_M")); - KASSERT((oldpde & PG_PS) != 0, - ("pmap_demote_pde: oldpde is missing PG_PS")); newpte = oldpde & ~PG_PS; if ((newpte & PG_PDE_PAT) != 0) newpte ^= PG_PDE_PAT | PG_PTE_PAT; /* - * If the mapping has changed attributes, update the page table - * entries. + * If the page table page is new, initialize it. */ + if (mpte->wire_count == 1) { + mpte->wire_count = NPTEPG; + pmap_fill_ptp(firstpte, newpte); + } KASSERT((*firstpte & PG_FRAME) == (newpte & PG_FRAME), ("pmap_demote_pde: firstpte and newpte map different physical" " addresses")); + + /* + * If the mapping has changed attributes, update the page table + * entries. + */ if ((*firstpte & PG_PTE_PROMOTE) != (newpte & PG_PTE_PROMOTE)) - for (pte = firstpte; pte < firstpte + NPTEPG; pte++) { - *pte = newpte; - newpte += PAGE_SIZE; - } + pmap_fill_ptp(firstpte, newpte); /* * Demote the mapping. This pmap is locked. The old PDE has ==== //depot/projects/vimage-devel/src/sys/amd64/conf/GENERIC#3 (text+ko) ==== @@ -16,7 +16,7 @@ # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # -# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.502 2008/06/20 19:28:33 delphij Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.504 2008/07/13 07:20:14 ed Exp $ cpu HAMMER ident GENERIC @@ -64,6 +64,7 @@ options KBD_INSTALL_CDEV # install a CDEV entry in /dev options STOP_NMI # Stop CPUS using NMI instead of IPI options AUDIT # Security event auditing +options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) # Debugging for use in -current options KDB # Enable kernel debugger support. @@ -171,7 +172,6 @@ device cardbus # CardBus (32-bit) bus # Serial (COM) ports -device sio # 8250, 16[45]50 based serial ports device uart # Generic UART driver # Parallel port ==== //depot/projects/vimage-devel/src/sys/amd64/conf/GENERIC.hints#2 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.18 2007/10/15 20:00:20 netchild Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC.hints,v 1.19 2008/07/13 07:20:14 ed Exp $ hint.fdc.0.at="isa" hint.fdc.0.port="0x3F0" hint.fdc.0.irq="6" @@ -16,20 +16,20 @@ hint.vga.0.at="isa" hint.sc.0.at="isa" hint.sc.0.flags="0x100" -hint.sio.0.at="isa" -hint.sio.0.port="0x3F8" -hint.sio.0.flags="0x10" -hint.sio.0.irq="4" -hint.sio.1.at="isa" -hint.sio.1.port="0x2F8" -hint.sio.1.irq="3" -hint.sio.2.at="isa" -hint.sio.2.disabled="1" -hint.sio.2.port="0x3E8" -hint.sio.2.irq="5" -hint.sio.3.at="isa" -hint.sio.3.disabled="1" -hint.sio.3.port="0x2E8" -hint.sio.3.irq="9" +hint.uart.0.at="isa" +hint.uart.0.port="0x3F8" +hint.uart.0.flags="0x10" +hint.uart.0.irq="4" +hint.uart.1.at="isa" +hint.uart.1.port="0x2F8" +hint.uart.1.irq="3" +hint.uart.2.at="isa" +hint.uart.2.disabled="1" +hint.uart.2.port="0x3E8" +hint.uart.2.irq="5" +hint.uart.3.at="isa" +hint.uart.3.disabled="1" +hint.uart.3.port="0x2E8" +hint.uart.3.irq="9" hint.ppc.0.at="isa" hint.ppc.0.irq="7" ==== //depot/projects/vimage-devel/src/sys/amd64/include/pmap.h#3 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.142 2008/06/29 19:13:27 alc Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.146 2008/07/08 22:59:17 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -111,11 +111,11 @@ /* Initial number of kernel page tables. */ #ifndef NKPT -#define NKPT 2288 +#define NKPT 32 #endif #define NKPML4E 1 /* number of kernel PML4 slots */ -#define NKPDPE 5 /* number of kernel PDP slots */ +#define NKPDPE howmany(NKPT, NPDEPG)/* number of kernel PDP slots */ #define NUPML4E (NPML4EPG/2) /* number of userland PML4 pages */ #define NUPDPE (NUPML4E*NPDPEPG)/* number of userland PDP pages */ @@ -131,7 +131,7 @@ #define KPML4I (NPML4EPG-1) /* Top 512GB for KVM */ #define DMPML4I (KPML4I-1) /* Next 512GB down for direct map */ -#define KPDPI (NPDPEPG-6) /* kernel map starts at -6GB */ +#define KPDPI (NPDPEPG-2) /* kernbase at -2GB */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jul 21 09:58:25 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7C9AA106567C; Mon, 21 Jul 2008 09:58:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 407751065678 for ; Mon, 21 Jul 2008 09:58:25 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 209348FC15 for ; Mon, 21 Jul 2008 09:58:25 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6L9wPaH084444 for ; Mon, 21 Jul 2008 09:58:25 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6L9wPGU084442 for perforce@freebsd.org; Mon, 21 Jul 2008 09:58:25 GMT (envelope-from gk@FreeBSD.org) Date: Mon, 21 Jul 2008 09:58:25 GMT Message-Id: <200807210958.m6L9wPGU084442@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 145550 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 09:58:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=145550 Change 145550 by gk@gk_h1 on 2008/07/21 09:57:25 add src_ether and dst_ether to struct pf_pdesc use pf_addr_ether to compare addresses in pf_match_addr_ether Affected files ... .. //depot/projects/soc2008/gk_l2filter/sys-pf/net/pf.c#3 edit .. //depot/projects/soc2008/gk_l2filter/sys-pf/net/pfvar.h#3 edit Differences ... ==== //depot/projects/soc2008/gk_l2filter/sys-pf/net/pf.c#3 (text+ko) ==== @@ -335,7 +335,7 @@ kif, &key, PF_LAN_EXT); \ if (*state == NULL || (*state)->timeout == PFTM_PURGE) \ return (PF_DROP); \ - if (!pf_state_check_ether(*state, pd, direction)) \ + if (!pf_state_match_addr_ether(*state, pd, direction)) \ return (PF_DROP); \ if (direction == PF_OUT && \ (((*state)->rule.ptr->rt == PF_ROUTETO && \ @@ -702,7 +702,7 @@ } static __inline int -pf_addr_ether_pass(struct pf_addr_ether *want, u_int8_t *ea) +pf_match_addr_ether(struct pf_addr_ether *want, struct pf_addr_ether *a, int match_empty) { static struct pf_addr_ether mask = { .octet = { 0xff, 0xff, 0xff, 0xff, 0xff,0xff }, @@ -710,41 +710,33 @@ }; if ((want->flags & PFAE_CHECK) == 0) return (1); + if ((a->flags & PFAE_CHECK) == 0) + return (match_empty); if (want->flags & PFAE_MULTICAST) { - return (ETHER_IS_MULTICAST(ea)); + return (ETHER_IS_MULTICAST(a->octet)); } -#define EA_CMP(a) (*((u_int64_t*)(a)) & *((u_int64_t*)&mask)) - return (EA_CMP(want) == EA_CMP(ea)); +#define EA_CMP(x) (*((u_int64_t*)(x)) & *((u_int64_t*)&mask)) + return (EA_CMP(want) == EA_CMP(a)); #undef EA_CMP } static __inline int -pf_rule_check_ether(struct pf_rule *r, struct pf_pdesc *pd) +pf_rule_match_addr_ether(struct pf_rule *r, struct pf_pdesc *pd) { - if (!pd->eh) { - if ((r->src.addr_ether.flags & PFAE_CHECK) || - (r->dst.addr_ether.flags & PFAE_CHECK)) - return (0); - return (1); - } - - if (pf_addr_ether_pass(&r->src.addr_ether, pd->eh->ether_shost) && - pf_addr_ether_pass(&r->dst.addr_ether, pd->eh->ether_dhost)) + if (pf_match_addr_ether(&r->src.addr_ether, &pd->src_ether, 0) && + pf_match_addr_ether(&r->dst.addr_ether, &pd->dst_ether, 0)) return (1); return (0); } static __inline int -pf_state_check_ether(struct pf_state *state, struct pf_pdesc *pd, int direction) +pf_state_match_addr_ether(struct pf_state *state, struct pf_pdesc *pd, int direction) { struct pf_rule *r; struct pf_addr_ether *src, *dst; - if (!pd->eh) - return (1); - r = state->rule.ptr; if (direction == state->direction) { @@ -755,8 +747,8 @@ dst = &r->src.addr_ether; } - if (pf_addr_ether_pass(src, pd->eh->ether_shost) && - pf_addr_ether_pass(dst, pd->eh->ether_dhost)) + if (pf_match_addr_ether(src, &pd->src_ether, 1) && + pf_match_addr_ether(dst, &pd->dst_ether, 1)) return (1); return (0); @@ -3419,7 +3411,7 @@ else if (r->os_fingerprint != PF_OSFP_ANY && !pf_osfp_match( pf_osfp_fingerprint(pd, m, off, th), r->os_fingerprint)) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_check_ether(r, pd)) + else if (!pf_rule_match_addr_ether(r, pd)) r = TAILQ_NEXT(r, entries); else { if (r->tag) @@ -3840,7 +3832,7 @@ r = TAILQ_NEXT(r, entries); else if (r->os_fingerprint != PF_OSFP_ANY) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_check_ether(r, pd)) + else if (!pf_rule_match_addr_ether(r, pd)) r = TAILQ_NEXT(r, entries); else { if (r->tag) @@ -4179,7 +4171,7 @@ r = TAILQ_NEXT(r, entries); else if (r->os_fingerprint != PF_OSFP_ANY) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_check_ether(r, pd)) + else if (!pf_rule_match_addr_ether(r, pd)) r = TAILQ_NEXT(r, entries); else { if (r->tag) @@ -4440,7 +4432,7 @@ r = TAILQ_NEXT(r, entries); else if (r->os_fingerprint != PF_OSFP_ANY) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_check_ether(r, pd)) + else if (!pf_rule_match_addr_ether(r, pd)) r = TAILQ_NEXT(r, entries); else { if (r->tag) @@ -4667,7 +4659,7 @@ r = TAILQ_NEXT(r, entries); else if (r->match_tag && !pf_match_tag(m, r, pd->pf_mtag, &tag)) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_check_ether(r, pd)) + else if (!pf_rule_match_addr_ether(r, pd)) r = TAILQ_NEXT(r, entries); else { if (r->anchor == NULL) { @@ -6921,6 +6913,12 @@ pd.tos = h->ip_tos; pd.tot_len = ntohs(h->ip_len); pd.eh = eh; + if (eh) { + memcpy(pd.src_ether.octet, eh->ether_shost, ETHER_ADDR_LEN); + pd.src_ether.flags = PFAE_CHECK; + memcpy(pd.dst_ether.octet, eh->ether_dhost, ETHER_ADDR_LEN); + pd.dst_ether.flags = PFAE_CHECK; + } /* handle fragments that didn't get reassembled by normalization */ if (h->ip_off & htons(IP_MF | IP_OFFMASK)) { ==== //depot/projects/soc2008/gk_l2filter/sys-pf/net/pfvar.h#3 (text+ko) ==== @@ -1063,6 +1063,10 @@ struct pf_addr *dst; struct ether_header *eh; + struct pf_addr_ether + src_ether; + struct pf_addr_ether + dst_ether; struct pf_mtag *pf_mtag; u_int16_t *ip_sum; u_int32_t p_len; /* total length of payload */ From owner-p4-projects@FreeBSD.ORG Mon Jul 21 10:11:39 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EDCDA1065671; Mon, 21 Jul 2008 10:11:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1D33106566C for ; Mon, 21 Jul 2008 10:11:38 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 904EE8FC18 for ; Mon, 21 Jul 2008 10:11:38 +0000 (UTC) (envelope-from gk@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6LABclF086739 for ; Mon, 21 Jul 2008 10:11:38 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6LABc1g086737 for perforce@freebsd.org; Mon, 21 Jul 2008 10:11:38 GMT (envelope-from gk@FreeBSD.org) Date: Mon, 21 Jul 2008 10:11:38 GMT Message-Id: <200807211011.m6LABc1g086737@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gk@FreeBSD.org using -f From: Gleb Kurtsou To: Perforce Change Reviews Cc: Subject: PERFORCE change 145552 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 10:11:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=145552 Change 145552 by gk@gk_h1 on 2008/07/21 10:11:02 save ethernet address in pf_addr_wrap. improve stateful filtering: check against ether addresses from packet but not from rule created the state. extend PF_MISMATCHAW to support ethernet addresses: PF_MISMATCHAW_L2. nuke now unused pf_rule_match_addr_ether. Affected files ... .. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/parse.y#3 edit .. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pf_print_state.c#3 edit .. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl.h#3 edit .. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl_parser.c#3 edit .. //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl_parser.h#3 edit .. //depot/projects/soc2008/gk_l2filter/sys-pf/net/pf.c#4 edit .. //depot/projects/soc2008/gk_l2filter/sys-pf/net/pfvar.h#4 edit Differences ... ==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/parse.y#3 (text+ko) ==== @@ -2483,7 +2483,7 @@ n->not = $1; $$ = $2; if ($3) { - $$->addr_ether = $3->addr_ether; + $$->addr.v.a.addr_ether = $3->addr.v.a.addr_ether; free($3); } } @@ -4732,13 +4732,11 @@ r->ifnot = interface->not; r->proto = proto->proto; r->src.addr = src_host->addr; - r->src.addr_ether = src_host->addr_ether; r->src.neg = src_host->not; r->src.port[0] = src_port->port[0]; r->src.port[1] = src_port->port[1]; r->src.port_op = src_port->op; r->dst.addr = dst_host->addr; - r->dst.addr_ether = dst_host->addr_ether; r->dst.neg = dst_host->not; r->dst.port[0] = dst_port->port[0]; r->dst.port[1] = dst_port->port[1]; ==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pf_print_state.c#3 (text+ko) ==== @@ -50,6 +50,7 @@ #include "pfctl.h" void print_name(struct pf_addr *, sa_family_t); +static void print_addr_ether(struct pf_addr_ether *, int ); void print_addr(struct pf_addr_wrap *addr, sa_family_t af, int verbose) @@ -119,9 +120,11 @@ if (bits != (af == AF_INET ? 32 : 128)) printf("/%d", bits); } + + print_addr_ether(&addr->v.a.addr_ether, verbose); } -void +static void print_addr_ether(struct pf_addr_ether *addr, int verbose) { if ((addr->flags & PFAE_CHECK) == 0) ==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl.h#3 (text+ko) ==== @@ -117,7 +117,6 @@ char *rate2str(double); void print_addr(struct pf_addr_wrap *, sa_family_t, int); -void print_addr_ether(struct pf_addr_ether *, int); void print_host(struct pf_state_host *, sa_family_t, int); void print_seq(struct pf_state_peer *); void print_state(struct pf_state *, int); ==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl_parser.c#3 (text+ko) ==== @@ -382,7 +382,6 @@ if (src->neg) printf("! "); print_addr(&src->addr, af, verbose); - print_addr_ether(&src->addr_ether, verbose); if (src->port_op) print_port(src->port_op, src->port[0], src->port[1], @@ -395,7 +394,6 @@ if (dst->neg) printf("! "); print_addr(&dst->addr, af, verbose); - print_addr_ether(&dst->addr_ether, verbose); if (dst->port_op) print_port(dst->port_op, dst->port[0], dst->port[1], @@ -1424,24 +1422,24 @@ struct node_host * host_ether(const char *s) { - struct ether_addr addr; + struct pf_addr_ether *addr; struct node_host *h = NULL; h = calloc(1, sizeof(*h)); if (h == NULL) err(1, "host_ether: malloc"); + addr = &h->addr.v.a.addr_ether; if (strcmp(s, "multicast") == 0) { - h->addr_ether.flags = PFAE_CHECK | PFAE_MULTICAST; + addr->flags = PFAE_CHECK | PFAE_MULTICAST; return (h); } - if (!ether_aton_r(s, &addr)) { + if (!ether_aton_r(s, (struct ether_addr*)addr->octet)) { fprintf(stderr, "can't parse ethernet address: %s\n", s); free(h); return (NULL); } - memcpy(h->addr_ether.octet, addr.octet, ETHER_ADDR_LEN); - h->addr_ether.flags = PFAE_CHECK; + addr->flags = PFAE_CHECK; return (h); } ==== //depot/projects/soc2008/gk_l2filter/sbin-pfctl/pfctl_parser.h#3 (text+ko) ==== @@ -112,7 +112,6 @@ struct node_host { struct pf_addr_wrap addr; - struct pf_addr_ether addr_ether; struct pf_addr bcast; struct pf_addr peer; sa_family_t af; ==== //depot/projects/soc2008/gk_l2filter/sys-pf/net/pf.c#4 (text+ko) ==== @@ -702,49 +702,16 @@ } static __inline int -pf_match_addr_ether(struct pf_addr_ether *want, struct pf_addr_ether *a, int match_empty) -{ - static struct pf_addr_ether mask = { - .octet = { 0xff, 0xff, 0xff, 0xff, 0xff,0xff }, - .flags = 0 - }; - if ((want->flags & PFAE_CHECK) == 0) - return (1); - if ((a->flags & PFAE_CHECK) == 0) - return (match_empty); - if (want->flags & PFAE_MULTICAST) { - return (ETHER_IS_MULTICAST(a->octet)); - } - -#define EA_CMP(x) (*((u_int64_t*)(x)) & *((u_int64_t*)&mask)) - return (EA_CMP(want) == EA_CMP(a)); -#undef EA_CMP -} - -static __inline int -pf_rule_match_addr_ether(struct pf_rule *r, struct pf_pdesc *pd) -{ - if (pf_match_addr_ether(&r->src.addr_ether, &pd->src_ether, 0) && - pf_match_addr_ether(&r->dst.addr_ether, &pd->dst_ether, 0)) - return (1); - - return (0); -} - -static __inline int pf_state_match_addr_ether(struct pf_state *state, struct pf_pdesc *pd, int direction) { - struct pf_rule *r; struct pf_addr_ether *src, *dst; - r = state->rule.ptr; - - if (direction == state->direction) { - src = &r->src.addr_ether; - dst = &r->dst.addr_ether; + if (state->direction == PF_OUT) { + src = &state->gwy.addr_ether; + dst = &state->ext.addr_ether; } else { - src = &r->dst.addr_ether; - dst = &r->src.addr_ether; + dst = &state->lan.addr_ether; + src = &state->ext.addr_ether; } if (pf_match_addr_ether(src, &pd->src_ether, 1) && @@ -2161,6 +2128,26 @@ } int +pf_match_addr_ether(struct pf_addr_ether *want, struct pf_addr_ether *a, int match_empty) +{ + static struct pf_addr_ether mask = { + .octet = { 0xff, 0xff, 0xff, 0xff, 0xff,0xff }, + .flags = 0 + }; + if (want == NULL || (want->flags & PFAE_CHECK) == 0) + return (1); + if (a == NULL || (a->flags & PFAE_CHECK) == 0) + return (match_empty); + + if (want->flags & PFAE_MULTICAST) { + return (ETHER_IS_MULTICAST(a->octet)); + } +#define EA_CMP(x) (*((u_int64_t*)(x)) & *((u_int64_t*)&mask)) + return (EA_CMP(want) == EA_CMP(a)); +#undef EA_CMP +} + +int pf_match(u_int8_t op, u_int32_t a1, u_int32_t a2, u_int32_t p) { switch (op) { @@ -3368,14 +3355,14 @@ r = r->skip[PF_SKIP_AF].ptr; else if (r->proto && r->proto != IPPROTO_TCP) r = r->skip[PF_SKIP_PROTO].ptr; - else if (PF_MISMATCHAW(&r->src.addr, saddr, af, - r->src.neg, kif)) + else if (PF_MISMATCHAW_L2(&r->src.addr, saddr, &pd->src_ether, + af, r->src.neg, kif)) r = r->skip[PF_SKIP_SRC_ADDR].ptr; else if (r->src.port_op && !pf_match_port(r->src.port_op, r->src.port[0], r->src.port[1], th->th_sport)) r = r->skip[PF_SKIP_SRC_PORT].ptr; - else if (PF_MISMATCHAW(&r->dst.addr, daddr, af, - r->dst.neg, NULL)) + else if (PF_MISMATCHAW_L2(&r->dst.addr, daddr, &pd->dst_ether, + af, r->dst.neg, NULL)) r = r->skip[PF_SKIP_DST_ADDR].ptr; else if (r->dst.port_op && !pf_match_port(r->dst.port_op, r->dst.port[0], r->dst.port[1], th->th_dport)) @@ -3411,8 +3398,6 @@ else if (r->os_fingerprint != PF_OSFP_ANY && !pf_osfp_match( pf_osfp_fingerprint(pd, m, off, th), r->os_fingerprint)) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_match_addr_ether(r, pd)) - r = TAILQ_NEXT(r, entries); else { if (r->tag) tag = r->tag; @@ -3564,8 +3549,10 @@ if (direction == PF_OUT) { PF_ACPY(&s->gwy.addr, saddr, af); s->gwy.port = th->th_sport; /* sport */ + s->gwy.addr_ether = pd->src_ether; PF_ACPY(&s->ext.addr, daddr, af); s->ext.port = th->th_dport; + s->ext.addr_ether = pd->dst_ether; if (nr != NULL) { PF_ACPY(&s->lan.addr, &pd->baddr, af); s->lan.port = bport; @@ -3576,8 +3563,10 @@ } else { PF_ACPY(&s->lan.addr, daddr, af); s->lan.port = th->th_dport; + s->lan.addr_ether = pd->dst_ether; PF_ACPY(&s->ext.addr, saddr, af); s->ext.port = th->th_sport; + s->ext.addr_ether = pd->src_ether; if (nr != NULL) { PF_ACPY(&s->gwy.addr, &pd->baddr, af); s->gwy.port = bport; @@ -3792,14 +3781,14 @@ r = r->skip[PF_SKIP_AF].ptr; else if (r->proto && r->proto != IPPROTO_UDP) r = r->skip[PF_SKIP_PROTO].ptr; - else if (PF_MISMATCHAW(&r->src.addr, saddr, af, - r->src.neg, kif)) + else if (PF_MISMATCHAW_L2(&r->src.addr, saddr, &pd->src_ether, + af, r->src.neg, kif)) r = r->skip[PF_SKIP_SRC_ADDR].ptr; else if (r->src.port_op && !pf_match_port(r->src.port_op, r->src.port[0], r->src.port[1], uh->uh_sport)) r = r->skip[PF_SKIP_SRC_PORT].ptr; - else if (PF_MISMATCHAW(&r->dst.addr, daddr, af, - r->dst.neg, NULL)) + else if (PF_MISMATCHAW_L2(&r->dst.addr, daddr, &pd->dst_ether, + af, r->dst.neg, NULL)) r = r->skip[PF_SKIP_DST_ADDR].ptr; else if (r->dst.port_op && !pf_match_port(r->dst.port_op, r->dst.port[0], r->dst.port[1], uh->uh_dport)) @@ -3832,8 +3821,6 @@ r = TAILQ_NEXT(r, entries); else if (r->os_fingerprint != PF_OSFP_ANY) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_match_addr_ether(r, pd)) - r = TAILQ_NEXT(r, entries); else { if (r->tag) tag = r->tag; @@ -3963,8 +3950,10 @@ if (direction == PF_OUT) { PF_ACPY(&s->gwy.addr, saddr, af); s->gwy.port = uh->uh_sport; + s->gwy.addr_ether = pd->src_ether; PF_ACPY(&s->ext.addr, daddr, af); s->ext.port = uh->uh_dport; + s->ext.addr_ether = pd->dst_ether; if (nr != NULL) { PF_ACPY(&s->lan.addr, &pd->baddr, af); s->lan.port = bport; @@ -3975,8 +3964,10 @@ } else { PF_ACPY(&s->lan.addr, daddr, af); s->lan.port = uh->uh_dport; + s->lan.addr_ether = pd->dst_ether; PF_ACPY(&s->ext.addr, saddr, af); s->ext.port = uh->uh_sport; + s->ext.addr_ether = pd->src_ether; if (nr != NULL) { PF_ACPY(&s->gwy.addr, &pd->baddr, af); s->gwy.port = bport; @@ -4151,11 +4142,11 @@ r = r->skip[PF_SKIP_AF].ptr; else if (r->proto && r->proto != pd->proto) r = r->skip[PF_SKIP_PROTO].ptr; - else if (PF_MISMATCHAW(&r->src.addr, saddr, af, - r->src.neg, kif)) + else if (PF_MISMATCHAW_L2(&r->src.addr, saddr, &pd->src_ether, + af, r->src.neg, kif)) r = r->skip[PF_SKIP_SRC_ADDR].ptr; - else if (PF_MISMATCHAW(&r->dst.addr, daddr, af, - r->dst.neg, NULL)) + else if (PF_MISMATCHAW_L2(&r->dst.addr, daddr, &pd->dst_ether, + af, r->dst.neg, NULL)) r = r->skip[PF_SKIP_DST_ADDR].ptr; else if (r->type && r->type != icmptype + 1) r = TAILQ_NEXT(r, entries); @@ -4171,8 +4162,6 @@ r = TAILQ_NEXT(r, entries); else if (r->os_fingerprint != PF_OSFP_ANY) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_match_addr_ether(r, pd)) - r = TAILQ_NEXT(r, entries); else { if (r->tag) tag = r->tag; @@ -4278,8 +4267,10 @@ if (direction == PF_OUT) { PF_ACPY(&s->gwy.addr, saddr, af); s->gwy.port = nport; + s->gwy.addr_ether = pd->src_ether; PF_ACPY(&s->ext.addr, daddr, af); s->ext.port = 0; + s->ext.addr_ether = pd->dst_ether; if (nr != NULL) { PF_ACPY(&s->lan.addr, &pd->baddr, af); s->lan.port = bport; @@ -4290,8 +4281,10 @@ } else { PF_ACPY(&s->lan.addr, daddr, af); s->lan.port = nport; + s->lan.addr_ether = pd->dst_ether; PF_ACPY(&s->ext.addr, saddr, af); s->ext.port = 0; + s->ext.addr_ether = pd->src_ether; if (nr != NULL) { PF_ACPY(&s->gwy.addr, &pd->baddr, af); s->gwy.port = bport; @@ -4416,11 +4409,11 @@ r = r->skip[PF_SKIP_AF].ptr; else if (r->proto && r->proto != pd->proto) r = r->skip[PF_SKIP_PROTO].ptr; - else if (PF_MISMATCHAW(&r->src.addr, pd->src, af, - r->src.neg, kif)) + else if (PF_MISMATCHAW_L2(&r->src.addr, pd->src, &pd->src_ether, + af, r->src.neg, kif)) r = r->skip[PF_SKIP_SRC_ADDR].ptr; - else if (PF_MISMATCHAW(&r->dst.addr, pd->dst, af, - r->dst.neg, NULL)) + else if (PF_MISMATCHAW_L2(&r->dst.addr, pd->dst, &pd->dst_ether, + af, r->dst.neg, NULL)) r = r->skip[PF_SKIP_DST_ADDR].ptr; else if (r->tos && !(r->tos == pd->tos)) r = TAILQ_NEXT(r, entries); @@ -4432,8 +4425,6 @@ r = TAILQ_NEXT(r, entries); else if (r->os_fingerprint != PF_OSFP_ANY) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_match_addr_ether(r, pd)) - r = TAILQ_NEXT(r, entries); else { if (r->tag) tag = r->tag; @@ -4566,14 +4557,18 @@ s->af = af; if (direction == PF_OUT) { PF_ACPY(&s->gwy.addr, saddr, af); + s->gwy.addr_ether = pd->src_ether; PF_ACPY(&s->ext.addr, daddr, af); + s->ext.addr_ether = pd->dst_ether; if (nr != NULL) PF_ACPY(&s->lan.addr, &pd->baddr, af); else PF_ACPY(&s->lan.addr, &s->gwy.addr, af); } else { PF_ACPY(&s->lan.addr, daddr, af); + s->lan.addr_ether = pd->dst_ether; PF_ACPY(&s->ext.addr, saddr, af); + s->ext.addr_ether = pd->src_ether; if (nr != NULL) PF_ACPY(&s->gwy.addr, &pd->baddr, af); else @@ -4635,11 +4630,11 @@ r = r->skip[PF_SKIP_AF].ptr; else if (r->proto && r->proto != pd->proto) r = r->skip[PF_SKIP_PROTO].ptr; - else if (PF_MISMATCHAW(&r->src.addr, pd->src, af, - r->src.neg, kif)) + else if (PF_MISMATCHAW_L2(&r->src.addr, pd->src, &pd->src_ether, + af, r->src.neg, kif)) r = r->skip[PF_SKIP_SRC_ADDR].ptr; - else if (PF_MISMATCHAW(&r->dst.addr, pd->dst, af, - r->dst.neg, NULL)) + else if (PF_MISMATCHAW_L2(&r->dst.addr, pd->dst, &pd->dst_ether, + af, r->dst.neg, NULL)) r = r->skip[PF_SKIP_DST_ADDR].ptr; else if (r->tos && !(r->tos == pd->tos)) r = TAILQ_NEXT(r, entries); @@ -4659,8 +4654,6 @@ r = TAILQ_NEXT(r, entries); else if (r->match_tag && !pf_match_tag(m, r, pd->pf_mtag, &tag)) r = TAILQ_NEXT(r, entries); - else if (!pf_rule_match_addr_ether(r, pd)) - r = TAILQ_NEXT(r, entries); else { if (r->anchor == NULL) { match = 1; ==== //depot/projects/soc2008/gk_l2filter/sys-pf/net/pfvar.h#4 (text+ko) ==== @@ -178,6 +178,7 @@ struct { struct pf_addr addr; struct pf_addr mask; + struct pf_addr_ether addr_ether; } a; char ifname[IFNAMSIZ]; char tblname[PF_TABLE_NAME_SIZE]; @@ -409,7 +410,7 @@ #endif /* PF_INET6_ONLY */ #endif /* PF_INET_INET6 */ -#define PF_MISMATCHAW(aw, x, af, neg, ifp) \ +#define PF_MISMATCHAW_L2(aw, x, xl2, af, neg, ifp) \ ( \ (((aw)->type == PF_ADDR_NOROUTE && \ pf_routable((x), (af), NULL)) || \ @@ -424,11 +425,16 @@ ((aw)->type == PF_ADDR_ADDRMASK && \ !PF_AZERO(&(aw)->v.a.mask, (af)) && \ !PF_MATCHA(0, &(aw)->v.a.addr, \ - &(aw)->v.a.mask, (x), (af))))) != \ + &(aw)->v.a.mask, (x), (af)) && \ + !pf_match_addr_ether(&(aw)->v.a.addr_ether, \ + xl2, 0)))) != \ (neg) \ ) +#define PF_MISMATCHAW(aw, x, af, neg, ifp) \ + PF_MISMATCHAW_L2(aw, x, NULL, af, neg, ifp) + struct pf_rule_uid { uid_t uid[2]; u_int8_t op; @@ -444,7 +450,6 @@ u_int16_t port[2]; u_int8_t neg; u_int8_t port_op; - struct pf_addr_ether addr_ether; }; struct pf_pooladdr { @@ -761,6 +766,8 @@ struct pf_state_host { struct pf_addr addr; + struct pf_addr_ether + addr_ether; u_int16_t port; u_int16_t pad; }; @@ -1663,6 +1670,7 @@ struct pf_pdesc *); int pf_match_addr(u_int8_t, struct pf_addr *, struct pf_addr *, struct pf_addr *, sa_family_t); +int pf_match_addr_ether(struct pf_addr_ether *, struct pf_addr_ether *, int); int pf_match(u_int8_t, u_int32_t, u_int32_t, u_int32_t); int pf_match_port(u_int8_t, u_int16_t, u_int16_t, u_int16_t); int pf_match_uid(u_int8_t, uid_t, uid_t, uid_t); From owner-p4-projects@FreeBSD.ORG Mon Jul 21 11:52:29 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E30681065685; Mon, 21 Jul 2008 11:52:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F2861065678 for ; Mon, 21 Jul 2008 11:52:25 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2CD718FC26 for ; Mon, 21 Jul 2008 11:52:25 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6LBqOgm096053 for ; Mon, 21 Jul 2008 11:52:24 GMT (envelope-from andenore@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6LBqOwp096051 for perforce@freebsd.org; Mon, 21 Jul 2008 11:52:24 GMT (envelope-from andenore@FreeBSD.org) Date: Mon, 21 Jul 2008 11:52:24 GMT Message-Id: <200807211152.m6LBqOwp096051@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andenore@FreeBSD.org using -f From: Anders Nore To: Perforce Change Reviews Cc: Subject: PERFORCE change 145556 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 11:52:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=145556 Change 145556 by andenore@andenore_laptop on 2008/07/21 11:51:24 Fixed some functionality in pkg_convert and updated man-page. The -e and -p options now support more than one key as argument. Affected files ... .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/converter.h#3 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/main.c#4 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/perform.c#7 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/pkg_convert.1#4 edit Differences ... ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/converter.h#3 (text+ko) ==== ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/main.c#4 (text+ko) ==== @@ -1,19 +1,30 @@ #include #include - -static char Options[] = "vthepk:"; +#include char *Key = NULL; Boolean CheckExists = FALSE; Boolean Print = FALSE; -Boolean Textual = TRUE; +Boolean Textual = FALSE; + +void usage(void); + +static char opts[] = "vthep"; + +static struct option longopts[] = { + { "verbose", no_argument, NULL, 'v' }, + { "textual", no_argument, NULL, 't' }, + { "help", no_argument, NULL, 'h' }, + { "exist", no_argument, NULL, 'e' }, + { NULL, 0, NULL, 0 } +}; + int main(int argc, char **argv) { char **pkgs; /* null terminated array of installed pkgnames */ int retval, ch, flags; - signal(SIGHUP, cleanup); signal(SIGINT, cleanup); @@ -22,7 +33,8 @@ else flags = O_RDONLY; - while ((ch = getopt(argc, argv, Options)) != -1) { + pkgs = argv; + while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1) { switch(ch) { case 'v': Verbose++; @@ -31,18 +43,15 @@ CheckExists = TRUE; break; case 't': - Textual = FALSE; + Textual = TRUE; break; case 'p': Print = TRUE; break; case '?': - case 'k': - Key = optarg; - break; case 'h': default: - usage(); + usage(); break; } } @@ -52,25 +61,37 @@ } atexit(closeDatabase); - char **dumb; - dumb = malloc(sizeof(char **) * 2); - *dumb = NULL; - pkgs = matchinstalled(MATCH_ALL, dumb, &retval); + /* If we want to convert the whole database */ + if (!CheckExists && !Print) { + char **dumb; + dumb = malloc(sizeof(char **) * 2); + *dumb = NULL; + pkgs = matchinstalled(MATCH_ALL, dumb, &retval); + + if (pkgs != NULL || retval != 0) { + return pkg_perform(pkgs); + } else { + printf("No packages to convert\n"); + return 0; + } + } + + argc -= optind; + argv += optind; - if (pkgs != NULL || retval != 0) { - return pkg_perform(pkgs); - } else { - printf("No packages to convert\n"); - } + pkgs = argv; - return 0; + if (argc == NULL) + return pkg_perform(NULL); + else + return pkg_perform(pkgs); } void usage() { fprintf(stderr, "usage:\t%s\n\t%s\n", - "pkg_convert [-vtep] [-k key]", - "pkg_convert"); + "pkg_convert [-vtep] [keys ...]", + "pkg_convert [-v]"); exit(1); } ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/perform.c#7 (text+ko) ==== @@ -12,49 +12,65 @@ int pkg_perform(char **pkgs) { - int i, error; - error = 0; - DBT data; + int i, error; + error = 0; + DBT data; - if (CheckExists) { - if (!Key) { - warnx("You must specify a key with -k\n"); - usage(); - exit(1); - } - Boolean exists = dbKeyExists(Key, &data); - if (Textual) { - if (Verbose) - printf("%s exists:\t", Key); - printf("%s\n", exists ? "TRUE" : "FALSE"); - } else { - printf("%s\n", exists ? "1" : "0"); - } - - return 0; + if (CheckExists) { + if (pkgs == NULL) { + warnx("You must specify one or more keys...\n"); + usage(); + exit(1); } - if (Print) { - if (Key != NULL) { - if (dbKeyExists(Key, &data)) - printf("%s -> %s\n", Key, (char *)data.data); - else - printf("%s: does not exist\n", Key); - } else { - DBT key; - while (dbscan(database, &key, &data) == 0) { - printf("%s -> %s\n", (char *)key.data, (char *)data.data); - } - } + if (Verbose) + printf("Exists:\n"); + + while (*pkgs) { + Boolean exists = dbKeyExists(*pkgs, &data); + if (Verbose) + printf("%-12s : ", *pkgs); - return 0; + if (Textual) + printf("%s\n", exists ? "TRUE" : "FALSE"); + else + printf("%s\n", exists ? "1" : "0"); + + *pkgs++; } - for (i=0; pkgs[i] != NULL; i++) { - error += pkg_do(pkgs[i]); + return 0; + } + + if (Print) { + if (pkgs != NULL) { + if (Verbose) + printf("Printing keys:\n"); + while (*pkgs) { + if (dbKeyExists(*pkgs, &data)) + printf("%-18s: %s\n", *pkgs, (char *)data.data); + else + printf("%-18s: (null) does not exist\n", *pkgs); + + *pkgs++; + } + + } else { + if (Verbose) + printf("Printing the whole database\n"); + DBT key; + while (dbscan(database, &key, &data) == 0) { + printf("%-18s : %s\n", (char *)key.data, (char *)data.data); + } } + return 0; + } + + for (i=0; pkgs[i] != NULL; i++) { + error += pkg_do(pkgs[i]); + } - return error; + return error; } ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/pkg_convert.1#4 (text+ko) ==== @@ -24,6 +24,9 @@ .Sh SYNOPSIS .Nm .Op Fl v +.Op Fl et Ar key +.Op Fl p Ar key + .Sh DESCRIPTION The .Nm @@ -36,8 +39,12 @@ Turn on verbose output. .It Fl e Ar key Checks if key is in database. +.It Fl p Ar key +Prints the data at the key. If a key is not specified, the whole database is +printed. .It Fl t -Turns off textual output for key-check (outputs 1 if key exists 0 if not). +Turns on textual output for key-check (outputs 'true' if key exists 'false' if +not). .El .Sh FILES .Bl -tag -width /var/db/pkg -compact From owner-p4-projects@FreeBSD.ORG Mon Jul 21 17:22:02 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF5C91065671; Mon, 21 Jul 2008 17:22:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 72F4A1065679 for ; Mon, 21 Jul 2008 17:22:02 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 504DD8FC2F for ; Mon, 21 Jul 2008 17:22:02 +0000 (UTC) (envelope-from andenore@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6LHM2fk055301 for ; Mon, 21 Jul 2008 17:22:02 GMT (envelope-from andenore@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6LHM2Jn055299 for perforce@freebsd.org; Mon, 21 Jul 2008 17:22:02 GMT (envelope-from andenore@FreeBSD.org) Date: Mon, 21 Jul 2008 17:22:02 GMT Message-Id: <200807211722.m6LHM2Jn055299@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andenore@FreeBSD.org using -f From: Anders Nore To: Perforce Change Reviews Cc: Subject: PERFORCE change 145566 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 17:22:02 -0000 http://perforce.freebsd.org/chv.cgi?CH=145566 Change 145566 by andenore@andenore_laptop on 2008/07/21 17:21:09 Various changes and bugfixes. Affected files ... .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/CHANGES#8 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/Makefile#4 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/add/Makefile#3 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/add/perform.c#7 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/Makefile#3 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/main.c#5 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/perform.c#8 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/info.h#4 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/main.c#8 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/pkg_info.1#5 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/show.c#6 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/Makefile#3 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/database.c#8 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/lib.h#11 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/match.c#6 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/plist.c#7 edit .. //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/test.sh#1 add Differences ... ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/CHANGES#8 (text+ko) ==== @@ -1,5 +1,5 @@ Changes made to pkg_install during SoC2008 by Anders Nore (andenore@FreeBSD.org) -Last modified: 2008 07 15 +Last modified: 2008 07 21 Converter: @@ -13,6 +13,7 @@ significantly. - Uses human readable output for -s (size option) I'm not sure if this breaks things, but it looks Ok. (The old output is available via the -b option) + - Check installation date with -n (human readable) or -N (seconds since epoch) Add: - Indexes information to dbcache according to the add ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/Makefile#4 (text+ko) ==== @@ -18,3 +18,5 @@ rm -rf pkg_install-${DATE}) +test: + ./test.sh zip.tbz ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/add/Makefile#3 (text+ko) ==== @@ -11,4 +11,7 @@ DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD} LDADD= ${LIBINSTALL} -lfetch -lmd +test: + ./test.sh + .include ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/add/perform.c#7 (text+ko) ==== ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/Makefile#3 (text+ko) ==== @@ -2,7 +2,7 @@ PROG= pkg_convert SRCS= perform.c main.c -CFLAGS+= -I${.CURDIR}/../lib +CFLAGS+= -I${.CURDIR}/../lib -g WARNS?= 3 #WFORMAT?= 1 ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/main.c#5 (text+ko) ==== @@ -2,7 +2,6 @@ #include #include -char *Key = NULL; Boolean CheckExists = FALSE; Boolean Print = FALSE; Boolean Textual = FALSE; @@ -12,11 +11,11 @@ static char opts[] = "vthep"; static struct option longopts[] = { - { "verbose", no_argument, NULL, 'v' }, - { "textual", no_argument, NULL, 't' }, - { "help", no_argument, NULL, 'h' }, - { "exist", no_argument, NULL, 'e' }, - { NULL, 0, NULL, 0 } + { "verbose", no_argument, NULL, 'v' }, + { "textual", no_argument, NULL, 't' }, + { "help", no_argument, NULL, 'h' }, + { "exist", no_argument, NULL, 'e' }, + { NULL, 0, NULL, 0 } }; @@ -28,11 +27,6 @@ signal(SIGHUP, cleanup); signal(SIGINT, cleanup); - if (argc == 1) - flags = O_CREAT | O_RDWR; - else - flags = O_RDONLY; - pkgs = argv; while ((ch = getopt_long(argc, argv, opts, longopts, NULL)) != -1) { switch(ch) { @@ -56,7 +50,12 @@ } } - if(openDatabase(flags)) { + if (!CheckExists && !Print) + flags = O_CREAT | O_RDWR; + else + flags = O_RDONLY; + + if (openDatabase(flags)) { err(1, "Could not open database: %s", DBCACHE_FILE); } atexit(closeDatabase); @@ -81,7 +80,7 @@ pkgs = argv; - if (argc == NULL) + if (argc == 0) return pkg_perform(NULL); else return pkg_perform(pkgs); ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/convert/perform.c#8 (text+ko) ==== @@ -59,7 +59,7 @@ if (Verbose) printf("Printing the whole database\n"); DBT key; - while (dbscan(database, &key, &data) == 0) { + while (dbScan(&key, &data) == 0) { printf("%-18s : %s\n", (char *)key.data, (char *)data.data); } } ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/info.h#4 (text+ko) ==== @@ -66,6 +66,7 @@ extern Boolean QUIET; extern Boolean UseBlkSz; extern Boolean KeepPackage; +extern Boolean TimeEpoch; extern char *InfoPrefix; extern char PlayPen[]; extern char *CheckPkg; ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/main.c#8 (text+ko) ==== @@ -32,6 +32,7 @@ match_t MatchType = MATCH_GLOB; Boolean QUIET = FALSE; Boolean UseBlkSz = FALSE; +Boolean TimeEpoch = FALSE; char *InfoPrefix = (char *)(uintptr_t)""; char PlayPen[FILENAME_MAX]; char *CheckPkg = NULL; @@ -41,7 +42,7 @@ static void usage(void); -static char opts[] = "abcdDe:EfgGhiIjkKl:LmoO:pPqQrRst:TvVW:xX"; +static char opts[] = "abcdDe:EfgGhiIjkKl:LmnNoO:pPqQrRst:TvVW:xX"; static struct option longopts[] = { { "all", no_argument, NULL, 'a' }, { "blocksize", no_argument, NULL, 'b' }, @@ -57,7 +58,8 @@ { "template", required_argument, NULL, 't' }, { "verbose", no_argument, NULL, 'v' }, { "version", no_argument, NULL, 'P' }, - { "time", no_argument, NULL, 'T' }, + { "time", no_argument, NULL, 'n' }, + { "time-epoch", no_argument, NULL, 'N' }, { "which", required_argument, NULL, 'W' }, }; @@ -200,8 +202,14 @@ strlcpy(PlayPen, optarg, sizeof(PlayPen)); break; - case 'T': + case 'n': + Flags |= SHOW_DATE; + break; + + case 'N': Flags |= SHOW_DATE; + TimeEpoch = TRUE; + break; case 'x': MatchType = MATCH_REGEX; ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/pkg_info.1#5 (text+ko) ==== @@ -31,7 +31,7 @@ .Nd a utility for displaying information on software packages .Sh SYNOPSIS .Nm -.Op Fl bcdDEfghGiIjkKLmopPqQrRsvVxX +.Op Fl bcdDEfghGiIjkKLmnNopPqQrRsvVxX .Op Fl e Ar package .Op Fl l Ar prefix .Op Fl t Ar template @@ -143,8 +143,10 @@ .Fx .Em "Ports Collection" of the underlying port from which the package was generated. -.It Fl T +.It Fl n Shows the time and date of installation +.It Fl N +Shows the time in seconds-since-epoch of the installalation .It Fl G , -no-glob Do not try to expand shell glob patterns in the .Ar pkg-name ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/info/show.c#6 (text+ko) ==== @@ -411,7 +411,13 @@ if (!Quiet) printf("%s%s", InfoPrefix, title); - printf("%s\n", datetime ? ctime(&datetime) : "No recorded installation time"); - + if (datetime) { + if (TimeEpoch) + printf("%d\n", (int)(datetime)); + else + printf("%s\n", ctime(&datetime)); + } + else + printf("No recorder installation time\n"); } ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/Makefile#3 (text+ko) ==== @@ -4,7 +4,7 @@ INTERNALLIB= SRCS= file.c msg.c plist.c str.c exec.c global.c pen.c database.c match.c \ deps.c version.c pkgwrap.c url.c -CFLAGS= -g +CFLAGS= WARNS?= 3 WFORMAT?= 1 ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/database.c#8 (text+ko) ==== @@ -184,13 +184,18 @@ /* * Scans the database, returning a new key/data pair for each call - * Returns 1 when finished + * Returns 1 when finished, -1 on error, 0 on success */ int dbscan(const DB *db, DBT *key, DBT *data) { return db->seq(db, key, data, R_NEXT); } +int +dbScan(DBT *key, DBT *data) { + return database->seq(database, key, data, R_NEXT); +} + /* * Close the database file @@ -215,57 +220,59 @@ /* * cache_plist + * Caches the information about the package pkg into the database */ int cache_plist(Package *pkg, Boolean showmsg) { - PackingList itr = NULL; - Boolean skip = FALSE; - char *cwd; - DBT key, data; + PackingList itr = NULL; + Boolean skip = FALSE; + char *cwd; + DBT key, data; - if (pkg->name == NULL || pkg->origin == NULL) { - if(showmsg) - warnx("%s does not appear to be a valid package!", pkg->name); - return 1; - } + if (pkg->name == NULL || pkg->origin == NULL) { + if(showmsg) + warnx("%s does not appear to be a valid package!", pkg->name); + return 1; + } - key.size = strlen(pkg->name) + 1; - key.data = (char *)pkg->name; - data.size = strlen(pkg->origin) + 1; - data.data = (char *)pkg->origin; + key.size = strlen(pkg->name) + 1; + key.data = (char *)pkg->name; + data.size = strlen(pkg->origin) + 1; + data.data = (char *)pkg->origin; - if(showmsg) - printf("Saving package: %s\n", (char *)key.data); - dbsave(&key, &data); + if(showmsg) + printf("Saving package: %s\n", (char *)key.data); + dbsave(&key, &data); - for (itr = pkg->head; itr != pkg->tail; itr = itr->next) { - if (itr->type == PLIST_CWD && skip == FALSE) { - cwd = itr->name; - } - else if (itr->type == PLIST_IGNORE) { - skip = TRUE; - if(Verbose && showmsg && itr->next) - printf("\tIgnored: %s\n", (char *)itr->next->name); + for (itr = pkg->head; itr != pkg->tail; itr = itr->next) { + if (itr->type == PLIST_CWD && skip == FALSE) { + cwd = itr->name; + } + else if (itr->type == PLIST_IGNORE) { + skip = TRUE; + if(Verbose && showmsg && itr->next) + printf("\tIgnored: %s\n", (char *)itr->next->name); - continue; - } - else if (itr->type == PLIST_FILE && skip == FALSE) { - /* Save abspath of file installed in key, and pkgname in data */ - char *entry = NULL; - asprintf(&entry, "%s/%s", cwd, (char *)itr->name); + continue; + } + else if (itr->type == PLIST_FILE && skip == FALSE) { + /* Save abspath of file installed in key, and pkgname in data */ + char *entry = NULL; + asprintf(&entry, "%s/%s", cwd, (char *)itr->name); - key.size = strlen(entry) + 1; - key.data = entry; - data.size = strlen(pkg->name) + 1; - data.data = (char *)pkg->name; + key.size = strlen(entry) + 1; + key.data = entry; + data.size = strlen(pkg->name) + 1; + data.data = (char *)pkg->name; - if(Verbose && showmsg) - printf("\tSaving entry %s -> %s\n", (char *)key.data, (char *)data.data); - dbsave(&key, &data); - free(entry); - } - skip = FALSE; + if(Verbose && showmsg) + printf("\tSaving entry %s -> %s\n", (char *)key.data, + (char *)data.data); + dbsave(&key, &data); + free(entry); } - return 0; + skip = FALSE; + } + return 0; } ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/lib.h#11 (text+ko) ==== @@ -116,7 +116,7 @@ #define PKG_INSTALL_VERSION 20080708 #define PKG_WRAPCONF_FNAME "/var/db/pkg_install.conf" -#define main(argc, argv) real_main(argc, argv) +// #define main(argc, argv) real_main(argc, argv) /* Version numbers to assist with changes in package file format */ #define PLIST_FMT_VER_MAJOR 1 @@ -257,13 +257,12 @@ int openDatabase(int flags); int dbsave(const DBT *key, const DBT *data); int dbAddPackage(const char *pkgname, const char *pkgdata); -int dbget(const DB *db, DBT *key, DBT *data); char **dbgetdata(const char *aKey); int dbRemove(const char *aKey); Boolean dbKeyExists(const char *aKey, DBT *data); Boolean dbPackageExists(const char *portname); void closeDatabase(void); -int dbscan(const DB *db, DBT *key, DBT *data); +int dbScan(DBT *key, DBT *data); int cache_plist(Package *pkg, Boolean showmsg); /* Externs */ ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/match.c#6 (text+ko) ==== @@ -245,85 +245,90 @@ char **installed, **allorigins = NULL; char ***matches = NULL; int i, j; + Boolean CorruptPrinted = FALSE; - if (retval != NULL) - *retval = 0; + if (retval != NULL) + *retval = 0; - installed = matchinstalled(MATCH_ALL, NULL, retval); - if (installed == NULL) - return NULL; + installed = matchinstalled(MATCH_ALL, NULL, retval); + if (installed == NULL) + return NULL; - /* Gather origins for all installed packages */ - for (i = 0; installed[i] != NULL; i++) { - FILE *fp; - char *buf, *cp, tmp[PATH_MAX]; - int cmd; + /* Gather origins for all installed packages */ + for (i = 0; installed[i] != NULL; i++) { + FILE *fp; + char *buf, *cp, tmp[PATH_MAX]; + int cmd; - allorigins = realloc(allorigins, (i + 1) * sizeof(*allorigins)); - allorigins[i] = NULL; + allorigins = realloc(allorigins, (i + 1) * sizeof(*allorigins)); + allorigins[i] = NULL; - /* - * Use the cache to lookup origin, if we don't find a key we check in - * LOG_DIR and reading in the +CONTENTS file. - */ - if (CacheExists) { - DBT data; + /* + * Use the cache to lookup origin, if we don't find a key we check in + * LOG_DIR and reading in the +CONTENTS file. + */ + if (CacheExists) { + DBT data; - if(dbKeyExists(installed[i], &data)) { - asprintf(&buf, "%s", (char *)data.data); - allorigins[i] = buf; - continue; - } else { - if(Verbose) - warnx("Could not locate key %s in cache, checking in %s\n", - installed[i], LOG_DIR); - DEBUG("matchallbyorigin(): Could not locate key\n"); - } + if(dbKeyExists(installed[i], &data)) { + asprintf(&buf, "%s", (char *)data.data); + allorigins[i] = buf; + continue; + } else { + if (Verbose) + warnx("Could not locate key %s in cache, checking in %s\n", + installed[i], LOG_DIR); + if (!CorruptPrinted) { + warnx("matchallbyorigin(): Your database-cache is probably corrupt; running " + "pkg_convert should fix it.\n"); + CorruptPrinted = TRUE; } + } + } - snprintf(tmp, PATH_MAX, "%s/%s", LOG_DIR, installed[i]); - /* - * SPECIAL CASE: ignore empty dirs, since we can can see them - * during port installation. - */ - if (isemptydir(tmp)) - continue; + snprintf(tmp, PATH_MAX, "%s/%s", LOG_DIR, installed[i]); + /* + * SPECIAL CASE: ignore empty dirs, since we can can see them + * during port installation. + */ + if (isemptydir(tmp)) + continue; - snprintf(tmp, PATH_MAX, "%s/%s", tmp, CONTENTS_FNAME); - fp = fopen(tmp, "r"); - if (fp == NULL) { - warnx("the package info for package '%s' is corrupt", installed[i]); - continue; - } + snprintf(tmp, PATH_MAX, "%s/%s", tmp, CONTENTS_FNAME); + fp = fopen(tmp, "r"); + if (fp == NULL) { + warnx("the package info for package '%s' is corrupt", installed[i]); + continue; + } - cmd = -1; - while (fgets(tmp, sizeof(tmp), fp)) { - int len = strlen(tmp); + cmd = -1; + while (fgets(tmp, sizeof(tmp), fp)) { + int len = strlen(tmp); - while (len && isspace(tmp[len - 1])) - tmp[--len] = '\0'; + while (len && isspace(tmp[len - 1])) + tmp[--len] = '\0'; - if (!len) - continue; + if (!len) + continue; - cp = tmp; - if (tmp[0] != CMD_CHAR) - continue; + cp = tmp; + if (tmp[0] != CMD_CHAR) + continue; - cmd = plist_cmd(tmp + 1, &cp); - if (cmd == PLIST_ORIGIN) { - asprintf(&buf, "%s", cp); - allorigins[i] = buf; - break; - } - } - if (cmd != PLIST_ORIGIN && ( Verbose || 0 != strncmp("bsdpan-", installed[i], 7 ) ) ) - warnx("package %s has no origin recorded", installed[i]); + cmd = plist_cmd(tmp + 1, &cp); + if (cmd == PLIST_ORIGIN) { + asprintf(&buf, "%s", cp); + allorigins[i] = buf; + break; + } + } + if (cmd != PLIST_ORIGIN && ( Verbose || 0 != strncmp("bsdpan-", installed[i], 7 ) ) ) + warnx("package %s has no origin recorded", installed[i]); - fclose(fp); - } + fclose(fp); + } /* Resolve origins into package names, retaining the sequence */ @@ -364,14 +369,12 @@ char ** matchbyorigin(const char *origin, int *retval) { - const char *origins[2]; char ***tmp; origins[0] = origin; origins[1] = NULL; - tmp = matchallbyorigin(origins, retval); if (tmp && tmp[0]) { return tmp[0]; ==== //depot/projects/soc2008/andenore_pkginstall/src/usr.sbin/pkg_install/lib/plist.c#7 (text+ko) ==== @@ -430,6 +430,7 @@ const char *Where = ".", *last_file = ""; Boolean fail = SUCCESS; Boolean preserve; + Boolean CorruptPrinted = FALSE; char tmp[FILENAME_MAX], *name = NULL; char *prefix = NULL; @@ -439,7 +440,7 @@ case PLIST_NAME: name = p->name; if (dbRemove(name) == -1) - warnx("%s: Failed to remove entry %s from db\n", __func__, name); + warnx("%s: Failed to remove entry %s from db", __func__, name); break; case PLIST_IGNORE: @@ -510,8 +511,15 @@ if (delete_hierarchy(tmp, ign_err, nukedirs)) fail = FAIL; - if (dbRemove(tmp) != 0) - warnx("%s: Failed to remove entry %s from db\n", __func__, tmp); + if (dbRemove(tmp) != 0) { +// warnx("%s: Failed to remove entry %s from db", __func__, tmp); + if (!CorruptPrinted) { + warnx("The database-cache is probably corrupt; " + "Please run pkg_convert after delete to " + "fix it."); + CorruptPrinted = TRUE; + } + } if (preserve && name) { /* XXX: Unsure if something should be done with dbcache here? */ From owner-p4-projects@FreeBSD.ORG Mon Jul 21 22:23:11 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 64D211065682; Mon, 21 Jul 2008 22:23:11 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27337106567E for ; Mon, 21 Jul 2008 22:23:11 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0C5598FC18 for ; Mon, 21 Jul 2008 22:23:11 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6LMNAqF099300 for ; Mon, 21 Jul 2008 22:23:10 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6LMNATt099298 for perforce@freebsd.org; Mon, 21 Jul 2008 22:23:10 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 21 Jul 2008 22:23:10 GMT Message-Id: <200807212223.m6LMNATt099298@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 145579 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Jul 2008 22:23:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=145579 Change 145579 by pgj@disznohal on 2008/07/21 22:23:00 Still a bit of rework in www/hu Affected files ... .. //depot/projects/docproj_hu/www/hu/about.sgml#6 edit .. //depot/projects/docproj_hu/www/hu/administration.sgml#4 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/about.sgml#6 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -14,125 +14,128 @@ &header; -

    Mi az a FreeBSD?

    +

    Mi az a &os;?

    -

    A FreeBSD egy fejlett operációs rendszer x86 +

    A &os; egy fejlett operációs rendszer x86 kompatibilis (Pentium® és Athlon™), amd64 kompatibilis (Opteron™, Athlon™64, és EM64T), ARM, IA-64, PowerPC, PC-98 és UltraSPARC® - számitógép-architektúrákra. - A BSD rendszer leszármazottja, amely a &unix egy olyan - verziója, amelyet a california-i Berkeley egyetemen - fejlesztettek ki. A FreeBSD-t önkéntesek egy - - nagy csoportja fejleszti és tartja karban. - Egyéb platformok - is elérhetõek a fejlesztés - különbözõ szintjein.

    + számitógép-architektúrákra. A + &os; kaliforniai Berkeley Egyetemen kifejlesztett BSD + típusú &unix; rendszer egyik leszármazottja, + amelyet önkéntesek egy nagyobb csoportja + fejleszt és tart karban. Az említetteken felül + további platformok is + elérhetõek, különbözõ + fejlesztési szintjeken.

    Élvonalbeli lehetõségek

    -

    A FreeBSD fejlett hálózatkezelési, - teljesítményi, biztonsági - és kompatibilitási - adottságokkal - rendelkezik, amelyek még manapság is - hiányoznak más operációs - rendszerekbõl, néha még a legjobb - kereskedelmi rendszerekbõl is.

    +

    A &os; olyan fejlett hálózatkezelési, + teljesítménybeli, biztonsági és + kompatibilitási adottságokkal rendelkezik, + amelyek még manapság is hiányoznak más, + néha a legjobb kereskedelmi operációs + rendszerekbõl.

    -

    Hatékony Internetes megoldások

    +

    Hatékony internetes megoldások

    -

    A FreeBSD ideális - Internet vagy Intranet +

    A &os; ideális internet vagy intranet kiszolgálónak. Stabil hálózati - szolgáltatásokat nyújt még a - legnagyobb terhelés mellet is, és - hatékony memória-kezelésével - jó válaszidõt biztosít - akár egyidõben futó folyamatok - ezreinek is.

    + szolgáltatásokat nyújt még a nagyobb + terhelés mellett is, és hatékony + memóriakezelésével jó + válaszidõt biztosít akár egyidõben + futó folyamatok ezreinek.

    Fejlett beágyazott rendszer

    -

    A FreeBSD a fejlett hálózati operációs +

    A &os; a fejlett hálózati operációs rendszerek adottságait nyújtja a beágyazott - rendszerek számára, a nagyteljesítményû - Intel-alapú készülékektõl kezdve az - Arm, PowerPC és hamarosan a MIPS rendszerek számára - is. Levelezõ és webes alkalmazásoktól kezdve az - útválasztókon és idõszervereken át - a vezetéknélküli elérési pontokig, - a világ számos gyártója választja a - FreeBSD beépített build és cross-build - környezeteit, illetve a fejlett adottságait a beágyazott - termékeik alapjául. A Berkeley nyílt - forrású licensze lehetõvé teszi számukra, - hogy eldöntsék, hogy a fejlesztésik mekkora - részét juttatják vissza a közösség - számára.

    + rendszerek számára, a + nagyteljesítményû Intel-alapú + készülékektõl kezdve az Arm, PowerPC + és hamarosan a MIPS rendszerek számára is. + Levelezõ és webes alkalmazásoktól kezdve + az útválasztókon és idõszervereken + át a vezeték nélküli + hozzáférési pontokig, a világ + számos gyártója választja a &os; + beépített build és cross-build + környezeteit, illetve fejlett adottságait a + beágyazott termékeik alapjául. A Berkeley + nyílt forrású licence lehetõvé + teszi számukra, hogy eldöntsék, a + fejlesztésik mekkora részét juttatják + vissza a közösség számára.

    Rengeteg alkalmazást futtat

    -

    Több, mint 17000 portolt könyvtárral és Több, mint 17 000 portolt könyvtárral + és alkalmazással - együt a FreeBSD támogatja az asztali-, szerver- - és beágyazott rendszereket.

    + támogatja a &os; az asztali-, szerver- és + beágyazott rendszereket.

    Könnyen telepíthetõ

    -

    A FreeBSD telepíthetõ CD-ROM-ról, - DVD-ROM-ról, vagy ha közvetlenül - a hálózatról, FTP vagy NFS - használatával. Mindössze - erre - az útmutatóra van szüksége.

    +

    A &os; telepíthetõ CD-ROM-ról, + DVD-ROM-ról vagy közvetlenül a + hálózatról, FTP vagy NFS + használatával. Ehhez mindössze erre + az útmutatóra van szükségünk.

    -

    A FreeBSD ingyenes

    +

    A &os; ingyenes

    - A BSD Démon + A BSD Démon -

    Azt gondolná, hogy egy ilyen tulajdonsággal - rendelkezõ operációs rendszer rengeteg - pénzbe kerül, azonban a FreeBSD - ingyenesen - letölthetõ a teljes - forráskódjával együtt. Ha meg - szeretné megvásárolni, vagy - letölteni a saját - példányát további - információt találhat - itt.

    +

    Nyilván azt gondolnánk, hogy egy ilyen + adottságokkal rendelkezõ operációs rendszer + rengeteg pénzbe kerül, azonban a &os; ingyenesen + letölthetõ a teljes forráskódjával + együtt. Ha meg szeretnénk megvásárolni, + vagy le szeretnénk tölteni egy saját + példányt, akkor errõl további + információt ezen a helyen + találhatunk.

    -

    Hozzájárulás a FreeBSD Projekthez

    +

    Hozzájárulás a &os; Projekthez

    -

    Könnyen hozzájárulhat a FreeBSD - fejlesztéséhez. Csak találnia kell - egy olyan területet, amelyen Ön szerint a - FreeBSD továbbfejleszthetõ lenne, és - végrehajtania ezeket a módosításokat - (figyelmesen és gondosan), majd elküldeni ezeket a - változtatásokat a FreeBSD Projektnek a - send-pr program segítségével, vagy egy - fejlesztõn keresztül, ha ismer egyet. A fejlesztés +

    Könnyen hozzájárulhatunk a &os; + fejlesztéséhez. Ehhez csupán találnunk + kell egy olyan területet, ahol véleményünk + szerint a &os; továbbfejleszthetõ lenne, majd + (figyelmesen és gondosan) hajtsuk végre ezeket a + módosításokat és küldjük el + ezeket a a &os; Projektnek a send-pr + segítségével, vagy ha ismerünk egy + fejlesztõt, akkor rajta keresztül. A fejlesztés bármi lehet, a dokumentációtól kezdve az - illusztrációkon át a forráskódig. - A Hozzájárulás - a FreeBSD Projekthez cikk tartalmaz bõvebb - információt a témával kapcsolatban.

    + illusztrációkon át a forráskódig + szinte bármi. A témával kapcsolatban Hozzájárulás a &os; Projekthez + címû cikk tartalmaz bõvebb + információt.

    -

    Nem kell programozónak lennie, vannak más - módok is, hogy hozzájáruljon a - FreeBSD fejlesztéséhez. - A FreeBSD - Alapítvány egy non-profit szervezet. - A FreeBSD Alapítványnak juttatott - közvetlen adományok az adóból - teljes mértékben leírhatóak. - Kérem vegye fel a kapcsolatot a - board@FreeBSDFoundation.org - e-mail címen, vagy írjon ide: The FreeBSD - Foundation, P.O. Box 20247, Boulder, CO 80308, USA.

    +

    Ehhez nem kell feltétlenül programozónak + lennünk, vannak más módok is, hogy + hozzájárulhassunk a &os; fejlesztéséhez. + A &os; Alapítvány + egy non-profit szervezet, és a + nkei juttatott közvetlen adományok az + adóból teljes mértékben + leírhatóak. Amennyiben errõl többet + szeretnénk megtudni, vegyük fel a kapcsolatot a board@FreeBSDFoundation.org + e-mail címen, vagy írjunk ide: The &os; Foundation, + P.O. Box 20247, Boulder, CO 80308, USA.

    &footer; ==== //depot/projects/docproj_hu/www/hu/administration.sgml#4 (text+ko) ==== @@ -1,7 +1,7 @@ - + %developers; ]> @@ -15,93 +15,157 @@ &header; -

    Bevezetés

    +

    Bevezetés

    -

    Ez az oldal tartalmazza a kiemelt szereppel és - felelõsséggel bíró csoportokat - és személyeket, illetve a FreeBSD - Projekten belül betöltött szerepük rövid - leírását és - elérhetõségüket.

    +

    Ez az oldal tartalmazza a &os; Projektben kiemelt szereppel + és felelõsséggel bíró csoportokat + és személyeket, illetve az azon belül + betöltött szerepük rövid + leírását, valamint + elérhetõségeiket.


    -

    FreeBSD Core Team +

    &os; Core Team <core@FreeBSD.org>

    -

    A FreeBSD Core Team képezi a projekt - "Igazgatótanácsát". Felelõs a projekt +

    A &os; Core Team képezi a Projekt + ,,igazgatótanácsát''. A Projekt általános céljainak - meghatározásában és a FreeBSD - egyes területeinek menedzselésében. A Core Team - tagjait projekt aktív fejlesztõi választják.

    + meghatározásáért és a &os; egyes + területeinek kézbentartásáért + felelõs. A Core Team tagjait a Projekt aktív + fejlesztõi választják.

    -

    FreeBSD Documentation Engineering Team +

    &os; Documentation Engineering Team <doceng@FreeBSD.org>

    -

    A FreeBSD Documentation Engineering Team a Dokumentációs +

    A &os; Documentation Engineering Team a Dokumentációs Projekt résztvevõi számára jelöli ki - a dokumentációval kapcsolatos célokat. - A doceng team charter + a dokumentációval kapcsolatos célokat. A doceng szabadalomlevele nagy részletességgel ismerteti a Documentation - Engineering Team feladatait és kötelezettségeit.

    + Engineering Team feladatait és + kötelezettségeit.

    -

    FreeBSD Port Management Team +

    &os; Port Management Team <portmgr@FreeBSD.org>

    -

    A FreeBSD Port Management Team elsõdleges feladata, hogy - biztosítsa, hogy a portokon dolgozó fejlesztõi - közösség egy mûködõ, stabil és - naprakész Ports Collectiont biztosít a - felhasználók számára. A másodlagos - feladata a committerek és a Ports Collectionön dolgozó - fejlesztõk közti koordináció. - A portmgr team charter - részleteiben bemutatja a Port Management Team +

    A &os; Port Management Team elsõdleges feladata gondoskodni + arról, hogy a portokon dolgozó fejlesztõi + közösség egy mûködõ, stabil + és naprakész Portgyûjteményt + nyújtson a felhasználók számára. + A másodlagos feladata a committerek és a + Portgyûjteményen dolgozó fejlesztõk + közti koordináció. A portmgr szabadalomlevele + részleteiben mutatja be a Port Management Team kötelességeit és felelõsségeit.

    -

    FreeBSD/amd64 Release Engineering Team +

    &os;/amd64 Release Engineering Team <re-amd64@FreeBSD.org>

    -

    A FreeBSD/amd64 Release Engineering Team a FreeBSD/amd64 platform +

    A &os;/amd64 Release Engineering Team a &os;/amd64 platform egyéni kiadási problémáiért felelõs.

    @@ -204,10 +270,10 @@
  • &a.obrien; <obrien@FreeBSD.org>
  • -

    FreeBSD/ia64 Release Engineering Team +

    &os;/ia64 Release Engineering Team <re-ia64@FreeBSD.org>

    -

    A FreeBSD/ia64 Release Engineering Team a FreeBSD/ia64 platform +

    A &os;/ia64 Release Engineering Team a &os;/ia64 platform egyéni kiadási problémáiért felelõs.

    @@ -215,10 +281,10 @@
  • &a.marcel; <marcel@FreeBSD.org>
  • -

    FreeBSD/i386 Release Engineering Team +

    &os;/i386 Release Engineering Team <re-x86@FreeBSD.org>

    -

    A FreeBSD/i386 Release Engineering Team a FreeBSD/i386 platform +

    A &os;/i386 Release Engineering Team a &os;/i386 platform egyéni kiadási problémáiért felelõs.

    @@ -227,10 +293,10 @@
  • &a.rwatson; <rwatson@FreeBSD.org>
  • -

    FreeBSD/pc98 Release Engineering Team +

    &os;/pc98 Release Engineering Team <re-pc98@FreeBSD.org>

    -

    A FreeBSD/pc98 Release Engineering Team a FreeBSD/pc98 platform +

    A &os;/pc98 Release Engineering Team a &os;/pc98 platform egyéni kiadási problémáiért felelõs.

    @@ -238,10 +304,10 @@
  • &a.nyan; <nyan@FreeBSD.org>
  • -

    FreeBSD/ppc Release Engineering Team +

    &os;/ppc Release Engineering Team <re-ppc@FreeBSD.org>

    -

    A FreeBSD/ppc Release Engineering Team a FreeBSD/ppc platform +

    A &os;/ppc Release Engineering Team a &os;/ppc platform egyéni kiadási problémáiért felelõs.

    @@ -250,10 +316,10 @@
  • &a.marcel; <marcel@FreeBSD.org>
  • -

    FreeBSD/sparc64 Release Engineering Team +

    &os;/sparc64 Release Engineering Team <re-sparc64@FreeBSD.org>

    -

    A FreeBSD/sparc64 Release Engineering Team a FreeBSD/sparc64 platform +

    A &os;/sparc64 Release Engineering Team a &os;/sparc64 platform egyéni kiadási problémáiért felelõs.

    @@ -272,14 +338,16 @@

    Donations Team <donations@FreeBSD.org>

    -

    A FreeBSD Donations Team köteles a felajánlott - adományokra válaszolni, kiépíteni - az adományozási irányelveket és - módszereket és koordinálni az érkezõ - adományokat a FreeBSD közösségen belül. - Egy részletesebb leírás elérhetõ a - Donations Team munkájáról a FreeBSD Donations Liaison oldalon.

    +

    A &os; Donations Team köteles a felajánlott + adományokra válaszolni, kiépíteni az + adományozási irányelveket és + módszereket és koordinálni az + érkezõ adományokat a &os; + közösségén belül. A Donations Team + munkájáról részletesebb + leírást a &os; Donations Liaison oldalon + találhatunk.

    ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - - -lower ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ - ;/ -