From owner-p4-projects@FreeBSD.ORG Sun Aug 16 00:18:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DE24E106568F; Sun, 16 Aug 2009 00:18: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 A2373106568D for ; Sun, 16 Aug 2009 00:18:25 +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 908518FC45 for ; Sun, 16 Aug 2009 00:18:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7G0IPxW049429 for ; Sun, 16 Aug 2009 00:18:25 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7G0IP6q049427 for perforce@freebsd.org; Sun, 16 Aug 2009 00:18:25 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 16 Aug 2009 00:18:25 GMT Message-Id: <200908160018.n7G0IP6q049427@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 167390 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, 16 Aug 2009 00:18:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167390 Change 167390 by pgj@beehive on 2009/08/16 00:18:16 MFen (doc): 1.424 -> 1.425 hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml 1.156 -> 1.157 hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml 1.243 -> 1.244 hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml 1.132 -> 1.134 hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml 1.191 -> 1.192 hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml 1.5 -> 1.8 hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#35 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml#10 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#23 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml#9 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml#10 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml#12 edit Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#35 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -583,7 +583,7 @@ engedélyezni az &man.rc.conf.5; állományban: - gateway_enable=YES # Ez legyen YES, ha átjáróként akarunk üzemelni + gateway_enable="YES" # Ez legyen YES, ha átjáróként akarunk üzemelni Ezzel lényegében a net.inet.ip.forwarding &man.sysctl.8; ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml#10 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -1333,7 +1333,7 @@ /usr/ports + class="directory">/usr/ports/ A &os; Portgyûjtemény (választható). @@ -1411,7 +1411,7 @@ állományrendszer. - /var/yp + /var/yp A NIS állományai. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#23 (text+ko) ==== @@ -7,7 +7,7 @@ ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml#9 (text+ko) ==== @@ -6,7 +6,7 @@ @@ -142,7 +142,7 @@ - A Z állományrendszer + A Z állományrendszer (ZFS) A &sun; Z állományrendszere egy új, közös tárolási módszeren @@ -212,7 +212,7 @@ állományon keresztül minden gond nélkül betölthetõek. - Az i386 architektúránál + Az &i386; architektúránál szükségünk lesz az alábbi konfigurációs beállítás megadására, majd a rendszermag @@ -277,11 +277,12 @@ A leírás fennmaradó részében feltételezzük, hogy - két SCSI-lemezünk van, + három SCSI-lemezünk van, amelyeket rendre a - da0 + da0, + da1 és - da1 + da2 eszközök formájában tudunk elérni. Az IDE lemezek tulajdonosainak értelemszerûen itt majd az @@ -295,8 +296,9 @@ használata A zpool kiadásával - egyetlen lemezen is létre tudunk hozni - ZFS partíciót: + egyetlen lemezen is létre tudunk hozni egy + egyszerû, nem redundáns ZFS + partíciót: &prompt.root; zpool create minta /dev/da0 @@ -463,16 +465,37 @@ <acronym>RAID</acronym>-Z tömbök Korábban már utaltunk rá, hogy ebben - a szakaszban két SCSI-lemez, vagyis a - da0 és - da1 eszközök - használatát feltételezzük. Egy - RAID-Z formátumú + a szakaszban három SCSI-lemez, + vagyis a da0, + da1 és + da2 eszközök + használatát feltételezzük (vagy + természetesen ad0 és + így tovább, ha IDE-lemezeket használunk). + Egy RAID-Z formátumú közös tároló készítéséhez a következõ parancsot kell kiadni: - &prompt.root; zpool create tarolo raidz da0 da1 + &prompt.root; zpool create tarolo raidz da0 da1 da2 + + + A &sun; ajánlása szerint egy + RAID-Z konfigurációban + legalább három, legfeljebb kilenc lemezt + javasolt alkalmazni. Ha egyetlen közös + tárolóban esetleg tíznél + több lemezt szeretnénk felhasználni, + akkor érdemes inkább kisebb + RAID-Z csoportokra felosztani ezeket. Ha + viszont csak két lemezünk van, de + továbbra is redundanciára lenne + szükségünk, hozzunk helyette létre + egy ZFS tükrözést. + Ezzel kapcsolatban részletesebben a &man.zpool.8; man + oldalon keresztül + tájékozódhatunk. + Ennek hatására tehát keletkezik egy tarolo nevû Z-tároló. @@ -588,8 +611,8 @@ /dev/ad0s1a 2026030 235240 1628708 13% / devfs 1 1 0 100% /dev /dev/ad0s1d 54098308 1032826 48737618 2% /usr -tarolo 17547008 0 17547008 0% /tarolo -tarolo/felhasznalok 17547008 0 17547008 0% /home +tarolo 26320512 0 26320512 0% /tarolo +tarolo/felhasznalok 26320512 0 26320512 0% /home Ezzel lényegében befejeztük a RAID-Z tömb @@ -642,6 +665,7 @@ raidz1 DEGRADED 0 0 0 da0 ONLINE 0 0 0 da1 OFFLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors @@ -677,6 +701,7 @@ raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors @@ -737,6 +762,7 @@ raidz1 ONLINE 0 0 0 da0 ONLINE 0 0 0 da1 ONLINE 0 0 0 + da2 ONLINE 0 0 0 errors: No known data errors ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml#10 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -2049,9 +2049,10 @@ ismert eszközök felsorolásában ellenõrizhetjük a lapolvasónk támogatottságának állapotát. - Ezenkívül még a &man.uscanner.4; man oldalon - is láthatjuk az ismert USB-s lapolvasók - listáját. + A &os; 8.X elõtti + kiadásaiban ezenkívül még a + &man.uscanner.4; man oldalon is láthatjuk az ismert USB-s + lapolvasók listáját. @@ -2081,45 +2082,44 @@ device usb device uhci device ohci -device uscanner +device ehci - Az alaplapon levõ USB chipkészletnek - megfelelõen a device uhci vagy - device ohci sorok közül csak az - egyikre lesz szükség, habár az sem okoz - különösebben gondot, ha mind a kettõt - benne hagyjuk. + A &os; 8.X elõtti + kiadásaiban még a következõ sorra is + szükségünk lesz: - Ha nem GENERIC rendszermagunk van, de - nem akarjuk újrafordítani, akkor a - &man.kldload.8; parancs segítségével a - &man.uscanner.4; eszközmeghajtó modulját - akár közvetlenül is - betöltethetjük: + device uscanner - &prompt.root; kldload uscanner + A &os; ezen változataiban a &man.uscanner.4; + eszközmeghajtón keresztül tudjuk + használni az USB csatolóval rendelkezõ + lapolvasókat. A &os; 8.0 + változatától kezdõdõen pedig + ehhez a &man.libusb.3; + függvénykönyvtár nyújt + közvetlen támogatást. - Ezt a modult a rendszerindítás során - úgy tudjuk automatikusan betöltetni, ha a - /boot/loader.conf - állományhoz hozzávesszük a - következõ sort: + A megfelelõen elõkészített + rendszermag elindítása után csatlakoztassuk + az USB-s lapolvasónkat. Ez sor fog megjelenni a + rendszer üzenetpufferében (&man.dmesg.8;): - uscanner_load="YES" + ugen0.2: <EPSON> at usbus0 - A megfelelõen felépített rendszermag - elindítása vagy a szükséges modul - betöltése után csatlakoztassuk az USB-s - lapolvasónkat. Ez sor fog megjelenni a rendszer - üzenetpufferében (&man.dmesg.8;): + Vagy &os; 7.X rendszerek + esetében: uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2 - Ez az üzenet elárulja nekünk, hogy a - lapolvasóhoz mostantól a + Ezek az üzenetek elárulják nekünk, + hogy a lapolvasóhoz mostantól a használt + &os; verziótól függõen a + /dev/ugen0.2 vagy a /dev/uscanner0 - eszközleíró tartozik. - + eszközleíró tartozik. A fenti + példában egy &epson.perfection; 1650 + típusú USB lapolvasót + láthatunk. @@ -2250,95 +2250,115 @@ &prompt.root; scanimage -L device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner - Ha ennek eredményeképpen semmi sem jelenik - meg, vagy a &man.scanimage.1; látszólag nem - talált semmilyen eszközt, akkor a lapolvasó - azonosítása nem sikerült. Ilyen esetekben - valószínûleg módosítanunk kell - a backend beállításait tartalmazó - állományt a használni kívánt - lapolvasó eszköz szerint. A backendek - beállításait a /usr/local/etc/sane.d/ - könyvtárban találjuk. Ez a probléma - bizonyos USB-s lapolvasók esetében - jelentkezik. + Vagy ha a ban + szereplõ USB lapolvasóval nézzük: + + &prompt.root; scanimage -L +device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner + + Ezt a kimenetet egy &os; 8.X + rendszeren kaptuk, ahol a + epson2:libusb:/dev/usb:/dev/ugen0.2 az + eszközhöz tartozó backendet és + eszközleírót + (/dev/ugen0.2) adja meg. + + + Ha ennek eredményeképpen semmi sem jelenik + meg, vagy a &man.scanimage.1; látszólag nem + talált semmilyen eszközt, akkor a lapolvasó + azonosítása nem sikerült. Ilyen esetekben + valószínûleg módosítanunk + kell a backend beállításait + tartalmazó állományt a használni + kívánt lapolvasó eszköz szerint. A + backendek beállításait a /usr/local/etc/sane.d/ + könyvtárban találjuk. Ez a probléma + bizonyos USB-s lapolvasók esetében + jelentkezik. - Például, ha ban használt USB-s - lapolvasónkra a sane-find-scanner - parancs a következõket adja vissza: + Például, ha ban használt USB-s + lapolvasónkat &os; 8.X + alatt tökéletesen felismeri a rendszer, de a &os; + korábbi változatai esetén (ahol a + &man.uscanner.4; eszközmeghajtót + használják) a + sane-find-scanner parancs a + következõket adja vissza: - &prompt.root; sane-find-scanner -q + &prompt.root; sane-find-scanner -q found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0 - Akkor a lapolvasót sikerült megtalálni, - és láthatjuk, hogy USB-n keresztül - csatlakozik és a /dev/uscanner0 - eszközleíró tartozik hozzá. Most - már ellenõrizhetjük a lapolvasó helyes - beazonosítását is: + Akkor a lapolvasót sikerült megtalálni, + és láthatjuk, hogy USB-n keresztül + csatlakozik és a /dev/uscanner0 + eszközleíró tartozik hozzá. Most + már ellenõrizhetjük a lapolvasó helyes + beazonosítását is: - &prompt.root; scanimage -L + &prompt.root; scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages). - Az üzenet fordítása: + Az üzenet fordítása: - + Nincs azonosítható lapolvasó. Ha nem erre számítottunk, akkor ellenõrizzük, hogy az eszközt tényleg bekapcsoltuk, csatlakoztattuk és észlelte a sane-find-scanner segédprogram (amennyiben szükséges). Kérjük, olvassa el a szoftverhez tartozó dokumentumtációt (README, FAQ, man oldalak)! - Mivel a lapolvasót nem sikerült - azonosítani, át kell írnunk a - /usr/local/etc/sane.d/epson.conf - állományt. A használt lapolvasó - típusa &epson.perfection; 1650, ezért hozzá - az epson backendet fogjuk használni. - Ehhez feltétlenül olvassuk el a - konfigurációs állományban - található megjegyzéseket is. A sorokat - igen könnyû átírni: tegyük - megjegyzésbe az összes olyat, ahol a - lapolvasónk számára nem megfelelõ - felületek találhatóak (a mi esetünkben - tehát megjegyzésbe fogjuk tenni az összes - scsi szóval kezdõdõ sort, - hiszen a nekünk USB-s eszközünk van), majd az - állomány végére írjuk be a - használni kívánt felületet és - eszközleírót. Ez ebben a konkrét - esetben ennyi lenne: + Mivel a lapolvasót nem sikerült + azonosítani, át kell írnunk a + /usr/local/etc/sane.d/epson2.conf + állományt. A használt lapolvasó + típusa &epson.perfection; 1650, ezért + hozzá az epson2 backendet fogjuk + használni. Ehhez feltétlenül olvassuk el a + konfigurációs állományban + található megjegyzéseket is. A sorokat + igen könnyû átírni: tegyük + megjegyzésbe az összes olyat, ahol a + lapolvasónk számára nem megfelelõ + felületek találhatóak (a mi esetünkben + tehát megjegyzésbe fogjuk tenni az összes + scsi szóval kezdõdõ sort, + hiszen a nekünk USB-s eszközünk van), majd az + állomány végére írjuk be a + használni kívánt felületet és + eszközleírót. Ez ebben a konkrét + esetben ennyi lenne: - usb /dev/uscanner0 + usb /dev/uscanner0 - A megfelelõ formátum és a további - részletek leírásához ne - felejtsük el azonban elolvasni a backend - konfigurációs állományában - felbukkanó megjegyzéseket és az ide - tartozó man oldalt sem. Most már - megpróbálkozhatunk újra a lapolvasó - azonosításával: + A megfelelõ formátum és a + további részletek leírásához + ne felejtsük el azonban elolvasni a backend + konfigurációs állományában + felbukkanó megjegyzéseket és az ide + tartozó man oldalt sem. Most már + megpróbálkozhatunk újra a + lapolvasó azonosításával: - &prompt.root; scanimage -L + &prompt.root; scanimage -L device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner - Láthatjuk, hogy az USB-s lapolvasónkat - sikerült azonosítani. Nem számít, ha - esetleg nem egyezne a valósággal a - gyártó vagy a típus - megjelölése. Itt a valóban lényeges - elem az `epson:/dev/uscanner0' mezõ - lesz, melynek a backend és az - eszközleíró nevét kell helyesen - tartalmaznia. + Láthatjuk, hogy az USB-s lapolvasónkat + sikerült azonosítani. Nem számít, + ha esetleg nem egyezne a valósággal a + gyártó vagy a típus + megjelölése. Itt a valóban lényeges + elem az `epson:/dev/uscanner0' mezõ + lesz, melynek a backend és az + eszközleíró nevét kell helyesen + tartalmaznia. + A beállítást akkor zárhatjuk le, miután a scanimage -L parancs @@ -2368,7 +2388,6 @@ stb. Mind a két említett alkalmazás elérhetõ a The GIMP bõvítményeként is. - @@ -2388,29 +2407,69 @@ eszközleíróhoz olvasási és írás joggal kell rendelkezniük. Például az USB-s lapolvasónk a - /dev/uscanner0 - eszközleírót használja, amely az - operator csoport tulajdonában van. - Például a - pgj nevû - felhasználó úgy fog tudni - hozzáférni, ha felvesszük ebbe a - csoportba: + /dev/ugen0.2 + eszközleírót használja, amely + valójában csak a + /dev/usb/0.2.0 + eszközleíróra mutató szimbolikus link + (ezt gyorsan le tudjuk ellenõrizni, ha + megnézzük a /dev könyvtár + tartalmát). Az eszközleíró és + a rá mutató szimbolikus link rendre a + wheel és + operator csoportok birtokában van. + Ha a pgj + nevû felhasználót felvesszük ezekbe a + csoportokba, akkor ezáltal hozzá tud majd + férni a lapolvasóhoz. Nyilvánvaló + biztonsági megfontolásokból azonban + kétszer is javasolt meggondolni, mely + felhasználókat mely csoportokba vesszük fel, + különösen, ha wheel + csoportról van szó. Ennél valamivel jobb + megoldást kínál, ha létrehozunk + külön az USB eszközök + használatára vonatkozó csoportot és + a lapolvasót ezen csoport tagjainak számára + elérhetõvé tesszük. + + Tehát erre a célra például + megalkotjuk a + usb + csoportot. Ehhez elsõ lépésként a + &man.pw.8; parancs segítségével hozzuk + létre magát a csoportot: + + &prompt.root; pw groupadd usb + + Ezután a /dev/usb/0.2.0 + eszközleírót és a rá + mutató /dev/ugen0.2 szimbolikus + linket kell az usb csoport + részére elérhetõvé + tennünk, a megfelelõ írási + engedélyekkel (0660 vagy + 0664) együtt, mivel + alapértelmezetten csak a tulajdonosuk + (root) tudja írni ezeket. Mindezt + úgy tudjuk megtenni, ha az + /etc/devfs.rules + állományhoz hozzáadjuk a megfelelõ + sorokat: - &prompt.root; pw groupmod operator -m pgj + [system=5] +add path ugen0.2 mode 0660 group usb +add path usb/0.2.0 mode 0660 group usb - A parancs részleteít a &man.pw.8; man - oldalán olvashatjuk. Ezenkívül még a - /dev/uscanner0 esetén be kell - állítanunk a megfelelõ írási - jogokat is (0660 vagy 0664), mivel az - operator csoport alapból csak - olvasni tudja. Ezt pedig úgy tehetjük meg, ha az - /etc/devfs.rules állományhoz - hozzáadjuk a következõ sort: + A &os; 7.X változatok + esetén a következõ sorokra lesz + szükségünk (legtöbb esetben a + /dev/uscanner0 + eszközleíróhoz): [system=5] -add path uscanner0 mode 660 +add path uscanner0 mode 0660 group usb Ezt követõen az /etc/rc.conf állományba írjuk be az alábbi sort @@ -2424,16 +2483,16 @@ oldaláról tájékozódhatunk. - - Természetesen biztonsági - megfontolásokból azonban érdemes - kétszer is meggondolni, hogy mely - felhasználókat vesszük fel a ebbe - csoportba, különösen akkor, ha az - operator csoportról van - szó! - + Ezután már csak fel kell vennünk azokat a + felhasználókat a + usb csoportba, + amelyeknek engedélyezzük a lapolvasó + használatát: + + &prompt.root; pw groupmod usb -m pgj + A további részletekrõl a &man.pw.8; man + oldalon olvashatunk. ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml#12 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -624,7 +624,7 @@ A különbözõ munkakörnyezetek, mint például a GNOME, a KDE vagy éppen az - XFce általában + Xfce általában tartalmaznak olyan segédprogramokat, amelyekkel a felhasználó könnyedén be tudja állítani a megjelenítés @@ -2298,12 +2298,12 @@ - Az XFce + Az Xfce - Röviden az XFce-rõl + Röviden az Xfce-rõl - Az XFce a + Az Xfce a GNOME által használt GTK+-ra épülõ munkakörnyezet, amely azonban sokkal könnyedebb és azoknak @@ -2314,7 +2314,7 @@ szempontjából leginkább a kereskedelmi rendszereken megtalálható CDE-hez hasonlítható. - Íme az XFce + Íme az Xfce néhány jellemzõje: @@ -2357,16 +2357,16 @@ - Az XFce-rõl - részletesebben az XFce + Az Xfce-rõl + részletesebben az Xfce honlapján olvashatunk. - Az XFce telepítése + Az Xfce telepítése - Az XFce-hez tartozik + Az Xfce-hez tartozik bináris csomag (legalább is az leírás készítésének pillanatában). Ezt a következõ módon @@ -2384,14 +2384,14 @@ Ezután világosítsuk fel az X szervert, hogy a következõ indulása során mi már az - XFce-t kívánjuk + Xfce-t kívánjuk használni. Ehhez csak ennyit kell tennünk: &prompt.user; echo "/usr/local/bin/startxfce4" > ~/.xinitrc Így az X következõ indításakor már az - XFce lesz a + Xfce lesz a munkakörnyezetünk. Ahogy azt már korábban is jeleztük, az XDM használata során From owner-p4-projects@FreeBSD.ORG Sun Aug 16 09:24:23 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E79C106568D; Sun, 16 Aug 2009 09:24:22 +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 7EDAC106568B for ; Sun, 16 Aug 2009 09:24:22 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6E6698FC3D for ; Sun, 16 Aug 2009 09:24:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7G9OMBc032155 for ; Sun, 16 Aug 2009 09:24:22 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7G9OLHA032153 for perforce@freebsd.org; Sun, 16 Aug 2009 09:24:21 GMT (envelope-from zec@fer.hr) Date: Sun, 16 Aug 2009 09:24:21 GMT Message-Id: <200908160924.n7G9OLHA032153@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167395 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, 16 Aug 2009 09:24:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=167395 Change 167395 by zec@zec_tpx32 on 2009/08/16 09:24:12 Further simplify the ipdivert V_ patch - there's no real need to iterate over all vnets in div_zone_change() when maxsockets get increased. Given that maxsockets is a global variable, it cannot be changed by any of the non-default vnets anyhow, so div_zone_change() will be always called from the context of vnet0. Given that maxsockets cannot shrink but only grow, and that ipdivert will have only a single or exceptionally a few socket consumers anyhow, there's no need to increase UMA zone limits in non-default vnets. Affected files ... .. //depot/projects/vimage-commit2/src/sys/netinet/ip_divert.c#41 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/netinet/ip_divert.c#41 (text+ko) ==== @@ -133,15 +133,8 @@ static void div_zone_change(void *tag) { - VNET_ITERATOR_DECL(vnet_iter); - VNET_LIST_RLOCK_NOSLEEP(); - VNET_FOREACH(vnet_iter) { - CURVNET_SET(vnet_iter); - uma_zone_set_max(V_divcbinfo.ipi_zone, maxsockets); - CURVNET_RESTORE(); - } - VNET_LIST_RUNLOCK_NOSLEEP(); + uma_zone_set_max(V_divcbinfo.ipi_zone, maxsockets); } static int From owner-p4-projects@FreeBSD.ORG Sun Aug 16 10:02:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 01E0C106568F; Sun, 16 Aug 2009 10:02:04 +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 BAC4C106568D for ; Sun, 16 Aug 2009 10:02:03 +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 A9FCF8FC43 for ; Sun, 16 Aug 2009 10:02:03 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GA23Bi037623 for ; Sun, 16 Aug 2009 10:02:03 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GA23VV037621 for perforce@freebsd.org; Sun, 16 Aug 2009 10:02:03 GMT (envelope-from gk@FreeBSD.org) Date: Sun, 16 Aug 2009 10:02:03 GMT Message-Id: <200908161002.n7GA23VV037621@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 167396 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, 16 Aug 2009 10:02:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=167396 Change 167396 by gk@gk_h1 on 2009/08/16 10:01:07 License Affected files ... .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#9 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#11 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#9 (text+ko) ==== @@ -1,6 +1,7 @@ /*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 1992, 1993 The Regents of the University of California. + * Copyright (c) 2009 Gleb Kurtsou + * All rights reserved. * * This code is derived from software donated to Berkeley by * Jan-Simon Pendry. ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#11 (text+ko) ==== @@ -1,6 +1,7 @@ /*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. + * Copyright (c) 1992, 1993 The Regents of the University of California. + * Copyright (c) 2009 Gleb Kurtsou + * All rights reserved. * * This code is derived from software contributed to Berkeley by * John Heidemann of the UCLA Ficus project. From owner-p4-projects@FreeBSD.ORG Sun Aug 16 10:17:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2591E106568F; Sun, 16 Aug 2009 10:17:22 +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 DDC31106568D for ; Sun, 16 Aug 2009 10:17:21 +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 CAF738FC55 for ; Sun, 16 Aug 2009 10:17:21 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GAHKZh039706 for ; Sun, 16 Aug 2009 10:17:20 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GAHKif039704 for perforce@freebsd.org; Sun, 16 Aug 2009 10:17:20 GMT (envelope-from trasz@freebsd.org) Date: Sun, 16 Aug 2009 10:17:20 GMT Message-Id: <200908161017.n7GAHKif039704@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 167397 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, 16 Aug 2009 10:17:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=167397 Change 167397 by trasz@trasz_anger on 2009/08/16 10:16:36 IFC. Affected files ... .. //depot/projects/soc2009/trasz_limits/share/man/man4/mfi.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/mpt.4#2 integrate .. //depot/projects/soc2009/trasz_limits/share/man/man4/polling.4#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/arm/at91/uart_dev_at91usart.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/i386/xen/mp_machdep.c#7 integrate .. //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/genassym.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/mp_machdep.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_poll.c#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/net/if_var.h#8 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_indata.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_input.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_output.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_pcb.c#3 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_timer.c#2 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.c#4 integrate .. //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.h#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.bin/calendar/calendars/calendar.freebsd#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/iostat/iostat.c#3 integrate .. //depot/projects/soc2009/trasz_limits/usr.sbin/pstat/pstat.c#3 integrate Differences ... ==== //depot/projects/soc2009/trasz_limits/share/man/man4/mfi.4#2 (text) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mfi.4,v 1.7 2008/01/17 19:36:13 ambrisko Exp $ +.\" $FreeBSD: src/share/man/man4/mfi.4,v 1.8 2009/08/15 11:47:05 trasz Exp $ .\" -.Dd January 17, 2008 +.Dd August 15, 2009 .Dt MFI 4 .Os .Sh NAME @@ -102,6 +102,7 @@ An attempt was made to remove a mounted volume. .El .Sh SEE ALSO +.Xr mfiutil 1 , .Xr amr 4 , .Xr pci 4 .Sh HISTORY ==== //depot/projects/soc2009/trasz_limits/share/man/man4/mpt.4#2 (text+ko) ==== @@ -33,9 +33,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mpt.4,v 1.16 2009/05/05 13:48:53 trasz Exp $ +.\" $FreeBSD: src/share/man/man4/mpt.4,v 1.17 2009/08/15 11:47:05 trasz Exp $ .\" -.Dd April 6, 2007 +.Dd August 15, 2009 .Dt MPT 4 .Os .Sh NAME @@ -155,6 +155,7 @@ .Xr sa 4 , .Xr scsi 4 , .Xr targ 4 , +.Xr mptutil 8 , .Xr gmultipath 8 .Rs .%T "LSI Logic Website" ==== //depot/projects/soc2009/trasz_limits/share/man/man4/polling.4#2 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/polling.4,v 1.27 2007/04/06 14:25:14 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/polling.4,v 1.28 2009/08/15 23:07:43 rwatson Exp $ .\" .Dd April 6, 2007 .Dt POLLING 4 @@ -87,6 +87,16 @@ It is turned on and off with help of .Xr ifconfig 8 command. +.Pp +The historic +.Va kern.polling.enable , +which enabled polling for all interfaces, can be replaced with the following +code: +.Bd -literal +for i in `ifconfig -l` ; + do ifconfig $i polling; # use -polling to disable +done +.Ed .Ss MIB Variables The operation of .Nm @@ -156,15 +166,6 @@ How many active devices have registered for .Nm . .Pp -.It Va kern.polling.enable -Legacy MIB, that was used to enable or disable polling globally. -Currently if set to 1, -.Nm -is enabled on all capable interfaces. -If set to 0, -.Nm -is disabled on all interfaces. -.Pp .It Va kern.polling.short_ticks .It Va kern.polling.lost_polls .It Va kern.polling.pending_polls ==== //depot/projects/soc2009/trasz_limits/sys/arm/at91/uart_dev_at91usart.c#2 (text) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.19 2009/01/22 21:56:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.20 2009/08/15 15:15:20 stas Exp $"); #include "opt_comconsole.h" @@ -307,6 +307,10 @@ int at91_usart_bus_probe(struct uart_softc *sc) { + + sc->sc_txfifosz = USART_BUFFER_SIZE; + sc->sc_rxfifosz = USART_BUFFER_SIZE; + sc->sc_hwiflow = 0; return (0); } @@ -344,10 +348,6 @@ atsc->flags |= HAS_TIMEOUT; WR4(&sc->sc_bas, USART_IDR, 0xffffffff); - sc->sc_txfifosz = USART_BUFFER_SIZE; - sc->sc_rxfifosz = USART_BUFFER_SIZE; - sc->sc_hwiflow = 0; - #ifndef SKYEYE_WORKAROUNDS /* * Allocate DMA tags and maps ==== //depot/projects/soc2009/trasz_limits/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#3 (text+ko) ==== @@ -2523,14 +2523,15 @@ { if (nvs->nvs_op == NVS_OP_ENCODE) { nvs_native_t *native = (nvs_native_t *)nvs->nvs_private; - nvlist_t *packed = (void *) + char *packed = (void *) (native->n_curr - nvp->nvp_size + NVP_VALOFF(nvp)); /* * Null out the pointer that is meaningless in the packed * structure. The address may not be aligned, so we have * to use bzero. */ - bzero(&packed->nvl_priv, sizeof (packed->nvl_priv)); + bzero(packed + offsetof(nvlist_t, nvl_priv), + sizeof(((nvlist_t *)NULL)->nvl_priv)); } return (nvs_embedded(nvs, EMBEDDED_NVL(nvp))); ==== //depot/projects/soc2009/trasz_limits/sys/i386/xen/mp_machdep.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/xen/mp_machdep.c,v 1.22 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/xen/mp_machdep.c,v 1.23 2009/08/15 18:37:06 attilio Exp $"); #include "opt_apic.h" #include "opt_cpu.h" @@ -118,6 +118,7 @@ typedef void call_data_func_t(uintptr_t , uintptr_t); static u_int logical_cpus; +static volatile cpumask_t ipi_nmi_pending; /* used to hold the AP's until we are ready to release them */ static struct mtx ap_boot_mtx; @@ -1109,6 +1110,14 @@ ipi = IPI_BITMAP_VECTOR; } + /* + * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit + * of help in order to understand what is the source. + * Set the mask of receiving CPUs for this purpose. + */ + if (ipi == IPI_STOP_HARD) + atomic_set_int(&ipi_nmi_pending, cpus); + CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); while ((cpu = ffs(cpus)) != 0) { cpu--; @@ -1140,10 +1149,39 @@ void ipi_all_but_self(u_int ipi) { + + /* + * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit + * of help in order to understand what is the source. + * Set the mask of receiving CPUs for this purpose. + */ + if (ipi == IPI_STOP_HARD) + atomic_set_int(&ipi_nmi_pending, PCPU_GET(other_cpus)); + CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); ipi_selected(PCPU_GET(other_cpus), ipi); } +int +ipi_nmi_handler() +{ + cpumask_t cpumask; + + /* + * As long as there is not a simple way to know about a NMI's + * source, if the bitmask for the current CPU is present in + * the global pending bitword an IPI_STOP_HARD has been issued + * and should be handled. + */ + cpumask = PCPU_GET(cpumask); + if ((ipi_nmi_pending & cpumask) == 0) + return (1); + + atomic_clear_int(&ipi_nmi_pending, cpumask); + cpustop_handler(); + return (0); +} + /* * Handle an IPI_STOP by saving our current context and spinning until we * are resumed. ==== //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/genassym.c#2 (text+ko) ==== @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/ia64/ia64/genassym.c,v 1.44 2006/11/18 21:48:13 marcel Exp $ + * $FreeBSD: src/sys/ia64/ia64/genassym.c,v 1.45 2009/08/16 01:43:08 marcel Exp $ */ #include "opt_compat.h" @@ -91,7 +91,6 @@ ASSYM(PAGE_SHIFT, PAGE_SHIFT); ASSYM(PAGE_SIZE, PAGE_SIZE); -ASSYM(PC_CPUID, offsetof(struct pcpu, pc_cpuid)); ASSYM(PC_CURRENT_PMAP, offsetof(struct pcpu, pc_current_pmap)); ASSYM(PC_CURTHREAD, offsetof(struct pcpu, pc_curthread)); ASSYM(PC_IDLETHREAD, offsetof(struct pcpu, pc_idlethread)); ==== //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/machdep.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.245 2009/06/23 22:42:39 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/machdep.c,v 1.246 2009/08/16 01:43:08 marcel Exp $"); #include "opt_compat.h" #include "opt_ddb.h" @@ -424,7 +424,11 @@ cpu_pcpu_init(struct pcpu *pcpu, int cpuid, size_t size) { - pcpu->pc_acpi_id = cpuid; + /* + * Set pc_acpi_id to "uninitialized". + * See sys/dev/acpica/acpi_cpu.c + */ + pcpu->pc_acpi_id = 0xffffffff; } void ==== //depot/projects/soc2009/trasz_limits/sys/ia64/ia64/mp_machdep.c#4 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/ia64/ia64/mp_machdep.c,v 1.74 2009/06/23 22:42:39 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/ia64/ia64/mp_machdep.c,v 1.75 2009/08/16 01:43:08 marcel Exp $"); #include "opt_kstack_pages.h" @@ -208,31 +208,25 @@ struct pcpu *pc; u_int64_t lid; void *dpcpu; + u_int cpuid; - /* Ignore any processor numbers outside our range */ - if (acpiid > mp_maxid) - return; + lid = LID_SAPIC_SET(apicid, apiceid); + cpuid = ((ia64_get_lid() & LID_SAPIC_MASK) == lid) ? 0 : smp_cpus++; - KASSERT((all_cpus & (1UL << acpiid)) == 0, + KASSERT((all_cpus & (1UL << cpuid)) == 0, ("%s: cpu%d already in CPU map", __func__, acpiid)); - lid = LID_SAPIC_SET(apicid, apiceid); - - if ((ia64_get_lid() & LID_SAPIC_MASK) == lid) { - KASSERT(acpiid == 0, - ("%s: the BSP must be cpu0", __func__)); - } - - if (acpiid != 0) { + if (cpuid != 0) { pc = (struct pcpu *)malloc(sizeof(*pc), M_SMP, M_WAITOK); + pcpu_init(pc, cpuid, sizeof(*pc)); dpcpu = (void *)kmem_alloc(kernel_map, DPCPU_SIZE); - pcpu_init(pc, acpiid, sizeof(*pc)); - dpcpu_init(dpcpu, acpiid); + dpcpu_init(dpcpu, cpuid); } else pc = pcpup; + pc->pc_acpi_id = acpiid; pc->pc_lid = lid; - all_cpus |= (1UL << acpiid); + all_cpus |= (1UL << cpuid); } void @@ -244,8 +238,8 @@ for (i = 0; i <= mp_maxid; i++) { pc = pcpu_find(i); if (pc != NULL) { - printf("cpu%d: SAPIC Id=%x, SAPIC Eid=%x", i, - LID_SAPIC_ID(pc->pc_lid), + printf("cpu%d: ACPI Id=%x, SAPIC Id=%x, SAPIC Eid=%x", + i, pc->pc_acpi_id, LID_SAPIC_ID(pc->pc_lid), LID_SAPIC_EID(pc->pc_lid)); if (i == 0) printf(" (BSP)\n"); @@ -305,7 +299,9 @@ SLIST_FOREACH(pc, &cpuhead, pc_allcpu) { cpus++; if (pc->pc_awake) { - kproc_create(ia64_store_mca_state, (void*)((uintptr_t)pc->pc_cpuid), NULL, 0, 0, "mca %u", pc->pc_cpuid); + kproc_create(ia64_store_mca_state, + (void*)((uintptr_t)pc->pc_cpuid), NULL, 0, 0, + "mca %u", pc->pc_cpuid); smp_cpus++; } } ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_poll.c#8 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/kern/kern_poll.c,v 1.45 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/kern/kern_poll.c,v 1.46 2009/08/15 23:07:43 rwatson Exp $"); #include "opt_device_polling.h" @@ -46,8 +46,6 @@ #include /* for NETISR_POLL */ #include -static int poll_switch(SYSCTL_HANDLER_ARGS); - void hardclock_device_poll(void); /* hook from hardclock */ static struct mtx poll_mtx; @@ -230,10 +228,6 @@ SYSCTL_UINT(_kern_polling, OID_AUTO, handlers, CTLFLAG_RD, &poll_handlers, 0, "Number of registered poll handlers"); -static int polling = 0; -SYSCTL_PROC(_kern_polling, OID_AUTO, enable, CTLTYPE_UINT | CTLFLAG_RW, - 0, sizeof(int), poll_switch, "I", "Switch polling for all interfaces"); - static uint32_t phase; SYSCTL_UINT(_kern_polling, OID_AUTO, phase, CTLFLAG_RD, &phase, 0, "Polling phase"); @@ -538,49 +532,6 @@ return (0); } -/* - * Legacy interface for turning polling on all interfaces at one time. - */ -static int -poll_switch(SYSCTL_HANDLER_ARGS) -{ - struct ifnet *ifp; - int error; - int val = polling; - - error = sysctl_handle_int(oidp, &val, 0, req); - if (error || !req->newptr ) - return (error); - - if (val == polling) - return (0); - - if (val < 0 || val > 1) - return (EINVAL); - - polling = val; - - IFNET_RLOCK(); - TAILQ_FOREACH(ifp, &V_ifnet, if_link) { - if (ifp->if_capabilities & IFCAP_POLLING) { - struct ifreq ifr; - - if (val == 1) - ifr.ifr_reqcap = - ifp->if_capenable | IFCAP_POLLING; - else - ifr.ifr_reqcap = - ifp->if_capenable & ~IFCAP_POLLING; - (void) (*ifp->if_ioctl)(ifp, SIOCSIFCAP, (caddr_t)&ifr); - } - } - IFNET_RUNLOCK(); - - log(LOG_ERR, "kern.polling.enable is deprecated. Use ifconfig(8)"); - - return (0); -} - static void poll_idle(void) { ==== //depot/projects/soc2009/trasz_limits/sys/net/if_var.h#8 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * From: @(#)if.h 8.1 (Berkeley) 6/10/93 - * $FreeBSD: src/sys/net/if_var.h,v 1.152 2009/07/27 17:08:06 qingli Exp $ + * $FreeBSD: src/sys/net/if_var.h,v 1.153 2009/08/15 22:26:26 rwatson Exp $ */ #ifndef _NET_IF_VAR_H_ @@ -235,7 +235,6 @@ #define if_iqdrops if_data.ifi_iqdrops #define if_noproto if_data.ifi_noproto #define if_lastchange if_data.ifi_lastchange -#define if_rawoutput(if, m, sa) if_output(if, m, sa, (struct rtentry *)NULL) /* for compatibility with other BSDs */ #define if_addrlist if_addrhead ==== //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_indata.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_indata.c,v 1.36 2005/03/06 16:04:17 itojun Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/sctp_indata.c,v 1.64 2009/07/28 14:09:06 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_indata.c,v 1.65 2009/08/15 21:10:52 tuexen Exp $"); #include #include @@ -900,7 +900,7 @@ { struct sctp_tmit_chunk *chk; uint16_t nxt_todel; - uint32_t tsize; + uint32_t tsize, pd_point; doit_again: chk = TAILQ_FIRST(&asoc->reasmqueue); @@ -920,8 +920,13 @@ * Yep the first one is here and its ok to deliver * but should we? */ - if ((sctp_is_all_msg_on_reasm(asoc, &tsize) || - (tsize >= stcb->sctp_ep->partial_delivery_point))) { + if (stcb->sctp_socket) { + pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT, + stcb->sctp_ep->partial_delivery_point); + } else { + pd_point = stcb->sctp_ep->partial_delivery_point; + } + if (sctp_is_all_msg_on_reasm(asoc, &tsize) || (tsize >= pd_point)) { /* * Yes, we setup to start reception, by @@ -2824,7 +2829,7 @@ sctp_service_queues(struct sctp_tcb *stcb, struct sctp_association *asoc) { struct sctp_tmit_chunk *chk; - uint32_t tsize; + uint32_t tsize, pd_point; uint16_t nxt_todel; if (asoc->fragmented_delivery_inprogress) { @@ -2860,8 +2865,13 @@ * be here or 1/4 the socket buffer max or nothing on the * delivery queue and something can be delivered. */ - if ((sctp_is_all_msg_on_reasm(asoc, &tsize) || - (tsize >= stcb->sctp_ep->partial_delivery_point))) { + if (stcb->sctp_socket) { + pd_point = min(SCTP_SB_LIMIT_RCV(stcb->sctp_socket) >> SCTP_PARTIAL_DELIVERY_SHIFT, + stcb->sctp_ep->partial_delivery_point); + } else { + pd_point = stcb->sctp_ep->partial_delivery_point; + } + if (sctp_is_all_msg_on_reasm(asoc, &tsize) || (tsize >= pd_point)) { asoc->fragmented_delivery_inprogress = 1; asoc->tsn_last_delivered = chk->rec.data.TSN_seq - 1; asoc->str_of_pdapi = chk->rec.data.stream_number; @@ -5192,7 +5202,7 @@ /* sa_ignore NO_NULL_CHK */ sctp_free_bufspace(stcb, asoc, tp1, 1); sctp_m_freem(tp1->data); - if (PR_SCTP_BUF_ENABLED(tp1->flags)) { + if (asoc->peer_supports_prsctp && PR_SCTP_BUF_ENABLED(tp1->flags)) { asoc->sent_queue_cnt_removeable--; } } @@ -6289,10 +6299,11 @@ ctl->pdapi_aborted = 1; sv = stcb->asoc.control_pdapi; stcb->asoc.control_pdapi = ctl; - sctp_notify_partial_delivery_indication(stcb, + sctp_ulp_notify(SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION, + stcb, SCTP_PARTIAL_DELIVERY_ABORTED, - SCTP_HOLDS_LOCK, - str_seq); + (void *)&str_seq, + SCTP_SO_NOT_LOCKED); stcb->asoc.control_pdapi = sv; break; } else if ((ctl->sinfo_stream == stseq->stream) && @@ -7786,7 +7797,7 @@ /* sa_ignore NO_NULL_CHK */ sctp_free_bufspace(stcb, asoc, tp1, 1); sctp_m_freem(tp1->data); - if (PR_SCTP_BUF_ENABLED(tp1->flags)) { + if (asoc->peer_supports_prsctp && PR_SCTP_BUF_ENABLED(tp1->flags)) { asoc->sent_queue_cnt_removeable--; } } ==== //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_input.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_input.c,v 1.27 2005/03/06 16:04:17 itojun Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/sctp_input.c,v 1.82 2009/06/17 12:34:56 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_input.c,v 1.83 2009/08/15 21:10:52 tuexen Exp $"); #include #include @@ -278,18 +278,38 @@ unsigned int newcnt; struct sctp_stream_out *outs; struct sctp_stream_queue_pending *sp; + struct sctp_tmit_chunk *chk, *chk_next; - /* cut back on number of streams */ + /* abandon the upper streams */ newcnt = ntohs(init->num_inbound_streams); - /* This if is probably not needed but I am cautious */ + if (!TAILQ_EMPTY(&asoc->send_queue)) { + chk = TAILQ_FIRST(&asoc->send_queue); + while (chk) { + chk_next = TAILQ_NEXT(chk, sctp_next); + if (chk->rec.data.stream_number >= newcnt) { + TAILQ_REMOVE(&asoc->send_queue, chk, sctp_next); + asoc->send_queue_cnt--; + if (chk->data != NULL) { + sctp_free_bufspace(stcb, asoc, chk, 1); + sctp_ulp_notify(SCTP_NOTIFY_DG_FAIL, stcb, + SCTP_NOTIFY_DATAGRAM_UNSENT, chk, SCTP_SO_NOT_LOCKED); + if (chk->data) { + sctp_m_freem(chk->data); + chk->data = NULL; + } + } + sctp_free_a_chunk(stcb, chk); + /* sa_ignore FREED_MEMORY */ + } + chk = chk_next; + } + } if (asoc->strmout) { - /* First make sure no data chunks are trapped */ for (i = newcnt; i < asoc->pre_open_streams; i++) { outs = &asoc->strmout[i]; sp = TAILQ_FIRST(&outs->outqueue); while (sp) { - TAILQ_REMOVE(&outs->outqueue, sp, - next); + TAILQ_REMOVE(&outs->outqueue, sp, next); asoc->stream_queue_cnt--; sctp_ulp_notify(SCTP_NOTIFY_SPECIAL_SP_FAIL, stcb, SCTP_NOTIFY_DATAGRAM_UNSENT, @@ -301,16 +321,13 @@ sctp_free_remote_addr(sp->net); sp->net = NULL; /* Free the chunk */ - SCTP_PRINTF("sp:%p tcb:%p weird free case\n", - sp, stcb); - sctp_free_a_strmoq(stcb, sp); /* sa_ignore FREED_MEMORY */ sp = TAILQ_FIRST(&outs->outqueue); } } } - /* cut back the count and abandon the upper streams */ + /* cut back the count */ asoc->pre_open_streams = newcnt; } SCTP_TCB_SEND_UNLOCK(stcb); ==== //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_output.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_output.c,v 1.46 2005/03/06 16:04:17 itojun Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/sctp_output.c,v 1.88 2009/06/17 12:34:56 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_output.c,v 1.89 2009/08/15 21:10:52 tuexen Exp $"); #include #include @@ -4200,7 +4200,7 @@ /* place in my tag */ init->init.initiate_tag = htonl(stcb->asoc.my_vtag); /* set up some of the credits. */ - init->init.a_rwnd = htonl(max(SCTP_SB_LIMIT_RCV(inp->sctp_socket), + init->init.a_rwnd = htonl(max(inp->sctp_socket ? SCTP_SB_LIMIT_RCV(inp->sctp_socket) : 0, SCTP_MINIMAL_RWND)); init->init.num_outbound_streams = htons(stcb->asoc.pre_open_streams); @@ -4411,7 +4411,6 @@ net->port, so_locked, NULL); SCTPDBG(SCTP_DEBUG_OUTPUT4, "lowlevel_output - %d\n", ret); SCTP_STAT_INCR_COUNTER64(sctps_outcontrolchunks); - sctp_timer_start(SCTP_TIMER_TYPE_INIT, inp, stcb, net); (void)SCTP_GETTIME_TIMEVAL(&net->last_sent_time); } @@ -5786,61 +5785,58 @@ } static void -sctp_set_prsctp_policy(struct sctp_tcb *stcb, - struct sctp_stream_queue_pending *sp) +sctp_set_prsctp_policy(struct sctp_stream_queue_pending *sp) { sp->pr_sctp_on = 0; - if (stcb->asoc.peer_supports_prsctp) { + /* + * We assume that the user wants PR_SCTP_TTL if the user provides a + * positive lifetime but does not specify any PR_SCTP policy. This + * is a BAD assumption and causes problems at least with the + * U-Vancovers MPI folks. I will change this to be no policy means + * NO PR-SCTP. + */ + if (PR_SCTP_ENABLED(sp->sinfo_flags)) { + sp->act_flags |= PR_SCTP_POLICY(sp->sinfo_flags); + sp->pr_sctp_on = 1; + } else { + return; + } + switch (PR_SCTP_POLICY(sp->sinfo_flags)) { + case CHUNK_FLAGS_PR_SCTP_BUF: /* - * We assume that the user wants PR_SCTP_TTL if the user - * provides a positive lifetime but does not specify any - * PR_SCTP policy. This is a BAD assumption and causes - * problems at least with the U-Vancovers MPI folks. I will - * change this to be no policy means NO PR-SCTP. + * Time to live is a priority stored in tv_sec when doing + * the buffer drop thing. */ - if (PR_SCTP_ENABLED(sp->sinfo_flags)) { - sp->act_flags |= PR_SCTP_POLICY(sp->sinfo_flags); - sp->pr_sctp_on = 1; - } else { - return; - } - switch (PR_SCTP_POLICY(sp->sinfo_flags)) { - case CHUNK_FLAGS_PR_SCTP_BUF: - /* - * Time to live is a priority stored in tv_sec when - * doing the buffer drop thing. - */ - sp->ts.tv_sec = sp->timetolive; - sp->ts.tv_usec = 0; - break; - case CHUNK_FLAGS_PR_SCTP_TTL: - { - struct timeval tv; + sp->ts.tv_sec = sp->timetolive; + sp->ts.tv_usec = 0; + break; + case CHUNK_FLAGS_PR_SCTP_TTL: + { + struct timeval tv; - (void)SCTP_GETTIME_TIMEVAL(&sp->ts); - tv.tv_sec = sp->timetolive / 1000; - tv.tv_usec = (sp->timetolive * 1000) % 1000000; - /* - * TODO sctp_constants.h needs alternative - * time macros when _KERNEL is undefined. - */ - timevaladd(&sp->ts, &tv); - } - break; - case CHUNK_FLAGS_PR_SCTP_RTX: + (void)SCTP_GETTIME_TIMEVAL(&sp->ts); + tv.tv_sec = sp->timetolive / 1000; + tv.tv_usec = (sp->timetolive * 1000) % 1000000; /* - * Time to live is a the number or retransmissions - * stored in tv_sec. + * TODO sctp_constants.h needs alternative time + * macros when _KERNEL is undefined. */ - sp->ts.tv_sec = sp->timetolive; - sp->ts.tv_usec = 0; - break; - default: - SCTPDBG(SCTP_DEBUG_USRREQ1, - "Unknown PR_SCTP policy %u.\n", - PR_SCTP_POLICY(sp->sinfo_flags)); - break; + timevaladd(&sp->ts, &tv); } + break; + case CHUNK_FLAGS_PR_SCTP_RTX: + /* + * Time to live is a the number or retransmissions stored in + * tv_sec. + */ + sp->ts.tv_sec = sp->timetolive; + sp->ts.tv_usec = 0; + break; + default: + SCTPDBG(SCTP_DEBUG_USRREQ1, + "Unknown PR_SCTP policy %u.\n", + PR_SCTP_POLICY(sp->sinfo_flags)); + break; } } @@ -5911,7 +5907,7 @@ sp->tail_mbuf = NULL; sp->length = 0; at = m; - sctp_set_prsctp_policy(stcb, sp); + sctp_set_prsctp_policy(sp); /* * We could in theory (for sendall) sifa the length in, but we would * still have to hunt through the chain since we need to setup the @@ -7138,7 +7134,7 @@ } /* We only re-set the policy if it is on */ if (sp->pr_sctp_on) { - sctp_set_prsctp_policy(stcb, sp); + sctp_set_prsctp_policy(sp); asoc->pr_sctp_cnt++; chk->pr_sctp_on = 1; } else { @@ -12285,7 +12281,7 @@ sp->addr_over = 0; } atomic_add_int(&sp->net->ref_count, 1); - sctp_set_prsctp_policy(stcb, sp); + sctp_set_prsctp_policy(sp); } out_now: return (sp); ==== //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_pcb.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_pcb.c,v 1.38 2005/03/06 16:04:18 itojun Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/sctp_pcb.c,v 1.85 2009/05/30 11:14:41 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_pcb.c,v 1.86 2009/08/15 21:10:52 tuexen Exp $"); #include #include @@ -4547,8 +4547,11 @@ stcb->asoc.control_pdapi = sq; strseq = (sq->sinfo_stream << 16) | sq->sinfo_ssn; - sctp_notify_partial_delivery_indication(stcb, - SCTP_PARTIAL_DELIVERY_ABORTED, 1, strseq); + sctp_ulp_notify(SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION, + stcb, + SCTP_PARTIAL_DELIVERY_ABORTED, + (void *)&strseq, + SCTP_SO_LOCKED); stcb->asoc.control_pdapi = NULL; } } ==== //depot/projects/soc2009/trasz_limits/sys/netinet/sctp_timer.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctp_timer.c,v 1.29 2005/03/06 16:04:18 itojun Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/sctp_timer.c,v 1.43 2009/03/14 13:42:13 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctp_timer.c,v 1.44 2009/08/15 21:10:52 tuexen Exp $"); #define _IP_VHL #include @@ -588,7 +588,7 @@ /* sa_ignore NO_NULL_CHK */ sctp_free_bufspace(stcb, asoc, chk, 1); sctp_m_freem(chk->data); - if (PR_SCTP_BUF_ENABLED(chk->flags)) { + if (asoc->peer_supports_prsctp && PR_SCTP_BUF_ENABLED(chk->flags)) { asoc->sent_queue_cnt_removeable--; } } @@ -757,7 +757,7 @@ continue; } } - if (PR_SCTP_TTL_ENABLED(chk->flags)) { + if (stcb->asoc.peer_supports_prsctp && PR_SCTP_TTL_ENABLED(chk->flags)) { /* Is it expired? */ if ((now.tv_sec > chk->rec.data.timetodrop.tv_sec) || ((chk->rec.data.timetodrop.tv_sec == now.tv_sec) && @@ -772,7 +772,7 @@ continue; } } - if (PR_SCTP_RTX_ENABLED(chk->flags)) { + if (stcb->asoc.peer_supports_prsctp && PR_SCTP_RTX_ENABLED(chk->flags)) { /* Has it been retransmitted tv_sec times? */ if (chk->snd_count > chk->rec.data.timetodrop.tv_sec) { if (chk->data) { ==== //depot/projects/soc2009/trasz_limits/sys/netinet/sctputil.c#4 (text+ko) ==== @@ -31,7 +31,7 @@ /* $KAME: sctputil.c,v 1.37 2005/03/07 23:26:09 itojun Exp $ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/sctputil.c,v 1.93 2009/07/28 14:09:06 rrs Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/sctputil.c,v 1.94 2009/08/15 21:10:52 tuexen Exp $"); #include #include @@ -1484,6 +1484,7 @@ SCTP_INP_INCR_REF(inp); if ((inp->sctp_socket == 0) && ((tmr->type != SCTP_TIMER_TYPE_INPKILL) && + (tmr->type != SCTP_TIMER_TYPE_INIT) && (tmr->type != SCTP_TIMER_TYPE_SEND) && (tmr->type != SCTP_TIMER_TYPE_RECV) && (tmr->type != SCTP_TIMER_TYPE_HEARTBEAT) && @@ -2984,8 +2985,6 @@ ssf->ssf_info.sinfo_assoc_id = sctp_get_associd(stcb); ssf->ssf_assoc_id = sctp_get_associd(stcb); - SCTP_BUF_NEXT(m_notify) = chk->data; - SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_send_failed); if (chk->data) { /* * trim off the sctp chunk header(it should be there) @@ -2996,6 +2995,8 @@ chk->send_size -= sizeof(struct sctp_data_chunk); } } + SCTP_BUF_NEXT(m_notify) = chk->data; + SCTP_BUF_LEN(m_notify) = sizeof(struct sctp_send_failed); /* Steal off the mbuf */ chk->data = NULL; /* @@ -3146,9 +3147,13 @@ } /* This always must be called with the read-queue LOCKED in the INP */ -void +static void sctp_notify_partial_delivery_indication(struct sctp_tcb *stcb, uint32_t error, - int nolock, uint32_t val) + uint32_t val, int so_locked +#if !defined(__APPLE__) && !defined(SCTP_SO_LOCK_TESTING) + SCTP_UNUSED +#endif +) { struct mbuf *m_notify; struct sctp_pdapi_event *pdapi; @@ -3189,9 +3194,6 @@ control->tail_mbuf = m_notify; control->held_length = 0; control->length = 0; - if (nolock == 0) { - SCTP_INP_READ_LOCK(stcb->sctp_ep); - } sb = &stcb->sctp_socket->so_rcv; if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_SB_LOGGING_ENABLE) { sctp_sblog(sb, control->do_not_ref_stcb ? NULL : stcb, SCTP_LOG_SBALLOC, SCTP_BUF_LEN(m_notify)); @@ -3208,12 +3210,30 @@ /* we really should not see this case */ TAILQ_INSERT_TAIL(&stcb->sctp_ep->read_queue, control, next); } - if (nolock == 0) { - SCTP_INP_READ_UNLOCK(stcb->sctp_ep); - } if (stcb->sctp_ep && stcb->sctp_socket) { /* This should always be the case */ +#if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) + struct socket *so; + + so = SCTP_INP_SO(stcb->sctp_ep); + if (!so_locked) { + atomic_add_int(&stcb->asoc.refcnt, 1); + SCTP_TCB_UNLOCK(stcb); + SCTP_SOCKET_LOCK(so, 1); + SCTP_TCB_LOCK(stcb); + atomic_subtract_int(&stcb->asoc.refcnt, 1); + if (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) { + SCTP_SOCKET_UNLOCK(so, 1); + return; + } + } +#endif sctp_sorwakeup(stcb->sctp_ep, stcb->sctp_socket); +#if defined (__APPLE__) || defined(SCTP_SO_LOCK_TESTING) + if (!so_locked) { + SCTP_SOCKET_UNLOCK(so, 1); + } +#endif } } @@ -3540,9 +3560,9 @@ val = *((uint32_t *) data); - sctp_notify_partial_delivery_indication(stcb, error, 0, val); + sctp_notify_partial_delivery_indication(stcb, error, val, so_locked); + break; } - break; case SCTP_NOTIFY_STRDATA_ERR: break; case SCTP_NOTIFY_ASSOC_ABORTED: @@ -3585,11 +3605,9 @@ case SCTP_NOTIFY_STR_RESET_FAILED_OUT: sctp_notify_stream_reset(stcb, error, ((uint16_t *) data), (SCTP_STRRESET_OUTBOUND_STR | SCTP_STRRESET_FAILED)); break; - case SCTP_NOTIFY_STR_RESET_FAILED_IN: sctp_notify_stream_reset(stcb, error, ((uint16_t *) data), (SCTP_STRRESET_INBOUND_STR | SCTP_STRRESET_FAILED)); break; - case SCTP_NOTIFY_ASCONF_ADD_IP: sctp_notify_peer_addr_change(stcb, SCTP_ADDR_ADDED, data, error); @@ -3671,8 +3689,10 @@ sctp_free_bufspace(stcb, asoc, chk, 1); sctp_ulp_notify(SCTP_NOTIFY_DG_FAIL, stcb, SCTP_NOTIFY_DATAGRAM_SENT, chk, so_locked); - sctp_m_freem(chk->data); - chk->data = NULL; + if (chk->data) { + sctp_m_freem(chk->data); + chk->data = NULL; + } >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 16 13:18:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 368401065691; Sun, 16 Aug 2009 13:18:39 +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 ED5DD106568B for ; Sun, 16 Aug 2009 13:18:38 +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 DC31E8FC4B for ; Sun, 16 Aug 2009 13:18:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GDIcon066047 for ; Sun, 16 Aug 2009 13:18:38 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GDIcqo066045 for perforce@freebsd.org; Sun, 16 Aug 2009 13:18:38 GMT (envelope-from trasz@freebsd.org) Date: Sun, 16 Aug 2009 13:18:38 GMT Message-Id: <200908161318.n7GDIcqo066045@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 167402 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, 16 Aug 2009 13:18:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=167402 Change 167402 by trasz@trasz_anger on 2009/08/16 13:18:36 Enable some KASSERTs. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#59 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#59 (text+ko) ==== @@ -120,14 +120,6 @@ MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits"); -#if 0 -#undef KASSERT -#define KASSERT(exp,msg) do { \ - if (__predict_false(!(exp))) \ - printf msg; \ -} while (0) -#endif - #ifdef INVARIANTS /* * Go through the resource usage info and verify that it makes sense. @@ -647,17 +639,13 @@ mtx_lock(&hrl_lock); for (i = 0; i < HRL_RESOURCE_MAX; i++) { -#ifdef notyet KASSERT(dest->hu_resources[i] >= 0, ("resource usage propagation meltdown")); KASSERT(src->hu_resources[i] >= 0, ("resource usage propagation meltdown")); -#endif dest->hu_resources[i] += src->hu_resources[i]; -#ifdef notyet KASSERT(dest->hu_resources[i] >= 0, ("resource usage propagation meltdown")); -#endif } mtx_unlock(&hrl_lock); } @@ -669,19 +657,15 @@ mtx_lock(&hrl_lock); for (i = 0; i < HRL_RESOURCE_MAX; i++) { -#ifdef notyet KASSERT(dest->hu_resources[i] >= 0, ("resource usage propagation meltdown")); KASSERT(src->hu_resources[i] >= 0, ("resource usage propagation meltdown")); KASSERT(src->hu_resources[i] <= dest->hu_resources[i], ("resource usage propagation meltdown")); -#endif dest->hu_resources[i] -= src->hu_resources[i]; -#ifdef notyet KASSERT(dest->hu_resources[i] >= 0, ("resource usage propagation meltdown")); -#endif } mtx_unlock(&hrl_lock); } From owner-p4-projects@FreeBSD.ORG Sun Aug 16 13:28:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 86B02106568E; Sun, 16 Aug 2009 13:28: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 4B5C2106568B for ; Sun, 16 Aug 2009 13:28:50 +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 20C5D8FC15 for ; Sun, 16 Aug 2009 13:28:50 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GDSonW066765 for ; Sun, 16 Aug 2009 13:28:50 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GDSn9J066763 for perforce@freebsd.org; Sun, 16 Aug 2009 13:28:49 GMT (envelope-from trasz@freebsd.org) Date: Sun, 16 Aug 2009 13:28:49 GMT Message-Id: <200908161328.n7GDSn9J066763@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 167403 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, 16 Aug 2009 13:28:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=167403 Change 167403 by trasz@trasz_anger on 2009/08/16 13:27:56 More KASSERTs. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#11 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#23 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#11 (text+ko) ==== @@ -88,11 +88,10 @@ mtx_lock(&loginclasses_lock); if (refcount_release(&lc->lc_refcount)) { for (i = 0; i < HRL_RESOURCE_MAX; i++) { - if (lc->lc_usage.hu_resources[i] != 0) - printf("loginclass_release: freeing " - "loginclass \"%s\", resource %d = %lld\n", - lc->lc_name, i, - lc->lc_usage.hu_resources[i]); + KASSERT(lc->lc_usage.hu_resources[i] == 0, + ("loginclass_release: freeing " + "loginclass \"%s\", resource %d = %lld\n", + lc->lc_name, i, lc->lc_usage.hu_resources[i])); } LIST_REMOVE(lc, lc_next); mtx_unlock(&loginclasses_lock); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#23 (text+ko) ==== @@ -1397,10 +1397,10 @@ uip->ui_uid, (unsigned long long)uip->ui_vmsize); mtx_destroy(&uip->ui_vmsize_mtx); for (i = 0; i < HRL_RESOURCE_MAX; i++) { - if (uip->ui_usage.hu_resources[i] != 0) - printf("uifree: freeing uidinfo: uid = %d, " - "resource %d = %lld \n", uip->ui_uid, i, - uip->ui_usage.hu_resources[i]); + KASSERT(uip->ui_usage.hu_resources[i] == 0, + ("uifree: freeing uidinfo: uid = %d, " + "resource %d = %lld \n", uip->ui_uid, i, + uip->ui_usage.hu_resources[i])); } free(uip, M_UIDINFO); return; @@ -1567,10 +1567,10 @@ LIST_REMOVE(gip, gi_hash); rw_wunlock(&gihashtbl_lock); for (i = 0; i < HRL_RESOURCE_MAX; i++) { - if (gip->gi_usage.hu_resources[i] != 0) - printf("gifree: freeing gidinfo: gid = %d, " - "resource %d = %lld \n", gip->gi_gid, i, - gip->gi_usage.hu_resources[i]); + KASSERT(gip->gi_usage.hu_resources[i] == 0, + ("gifree: freeing gidinfo: gid = %d, " + "resource %d = %lld \n", gip->gi_gid, i, + gip->gi_usage.hu_resources[i])); } free(gip, M_GIDINFO); return; From owner-p4-projects@FreeBSD.ORG Sun Aug 16 13:46:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C72A0106568D; Sun, 16 Aug 2009 13:46: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 8B708106568B for ; Sun, 16 Aug 2009 13:46:09 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7AFEE8FC62 for ; Sun, 16 Aug 2009 13:46:09 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GDk9CY068138 for ; Sun, 16 Aug 2009 13:46:09 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GDk9rK068136 for perforce@freebsd.org; Sun, 16 Aug 2009 13:46:09 GMT (envelope-from zec@fer.hr) Date: Sun, 16 Aug 2009 13:46:09 GMT Message-Id: <200908161346.n7GDk9rK068136@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167404 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, 16 Aug 2009 13:46:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=167404 Change 167404 by zec@zec_tpx32 on 2009/08/16 13:45:51 When moving ifnets from one vnet to another, and the ifnet has ifaddresses of AF_LINK type which thus have an embedded if_index "backpointer", we must update that one to reflect the new if_index that our ifnet just got assigned. Submitted by: bz Affected files ... .. //depot/projects/vimage-commit2/src/sys/net/if.c#83 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/net/if.c#83 (text+ko) ==== @@ -570,6 +570,17 @@ /* Reliably crash if used uninitialized. */ ifp->if_broadcastaddr = NULL; } +#ifdef VIMAGE + else { + for (ifa = ifp->if_addr; ifa != NULL; + ifa = TAILQ_NEXT(ifa, ifa_link)) { + if (ifa->ifa_addr->sa_family == AF_LINK) { + sdl = (struct sockaddr_dl *)ifa->ifa_addr; + sdl->sdl_index = ifp->if_index; + } + } + } +#endif IFNET_WLOCK(); TAILQ_INSERT_TAIL(&V_ifnet, ifp, if_link); From owner-p4-projects@FreeBSD.ORG Sun Aug 16 13:59:24 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 56C71106568D; Sun, 16 Aug 2009 13:59:24 +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 1B8C2106568B for ; Sun, 16 Aug 2009 13:59:24 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0AF148FC43 for ; Sun, 16 Aug 2009 13:59:24 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GDxNCu069011 for ; Sun, 16 Aug 2009 13:59:23 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GDxNZh069009 for perforce@freebsd.org; Sun, 16 Aug 2009 13:59:23 GMT (envelope-from anchie@FreeBSD.org) Date: Sun, 16 Aug 2009 13:59:23 GMT Message-Id: <200908161359.n7GDxNZh069009@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167405 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, 16 Aug 2009 13:59:24 -0000 http://perforce.freebsd.org/chv.cgi?CH=167405 Change 167405 by anchie@anchie_desnimis on 2009/08/16 13:58:46 All mbufs containing ND messages are tagged in nd6_*_output() functions with PACKET_TAG_ND_OUTGOING. On one place nd6_na_input() calls directly nd6_output_lle(), so the packet does not traverse through nd6_*_output() and ends up being untagged. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6_nbr.c#8 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/nd6_nbr.c#8 (text+ko) ==== @@ -897,6 +897,15 @@ * we assume ifp is not a loopback here, so just set * the 2nd argument as the 1st one. */ + + if (send_input_hook != NULL) { + mtag = m_tag_get(PACKET_TAG_ND_OUTGOING, + sizeof(unsigned short), M_NOWAIT); + if (mtag == NULL) + goto bad; + m_tag_prepend(m, mtag); + } + nd6_output_lle(ifp, ifp, m_hold, L3_ADDR_SIN6(ln), NULL, ln, &chain); } } From owner-p4-projects@FreeBSD.ORG Sun Aug 16 14:21:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 43A83106568F; Sun, 16 Aug 2009 14:21: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 EDB56106568D for ; Sun, 16 Aug 2009 14:21:48 +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 C34058FC52 for ; Sun, 16 Aug 2009 14:21:48 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GELmbk072309 for ; Sun, 16 Aug 2009 14:21:48 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GELm1o072307 for perforce@freebsd.org; Sun, 16 Aug 2009 14:21:48 GMT (envelope-from trasz@freebsd.org) Date: Sun, 16 Aug 2009 14:21:48 GMT Message-Id: <200908161421.n7GELm1o072307@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 167408 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, 16 Aug 2009 14:21:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=167408 Change 167408 by trasz@trasz_anger on 2009/08/16 14:20:54 Even more KASSERTs. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#60 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#60 (text+ko) ==== @@ -120,14 +120,13 @@ MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits"); -#ifdef INVARIANTS +#ifdef DIAGNOSTIC /* * Go through the resource usage info and verify that it makes sense. */ static void hrl_assert_proc(const struct proc *p __unused) { -#ifdef notyet int i, resource; struct ucred *cred; struct prison *pr; @@ -139,18 +138,29 @@ ("resource usage propagation meltdown")); KASSERT(cred->cr_ruidinfo->ui_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown")); - for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) + KASSERT(cred->cr_ruidinfo->ui_usage.hu_resources[resource] >= + p->p_usage.hu_resources[resource], + ("resource usage propagation meltdown")); + for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) { KASSERT(pr->pr_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown")); + KASSERT(pr->pr_usage.hu_resources[resource] >= + p->p_usage.hu_resources[resource], + ("resource usage propagation meltdown")); + } if (hrl_group_accounting) { for (i = 0; i < cred->cr_ngroups; i++) { - for (resource = 0; resource < HRL_RESOURCE_MAX; resource++) - KASSERT(cred->cr_gidinfos[i]->gi_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown")); + for (resource = 0; resource < HRL_RESOURCE_MAX; resource++) { + KASSERT(cred->cr_gidinfos[i]->gi_usage.hu_resources[resource] >= 0, + ("resource usage propagation meltdown")); + KASSERT(cred->cr_gidinfos[i]->gi_usage.hu_resources[resource] >= + p->p_usage.hu_resources[resource], + ("resource usage propagation meltdown")); + } } } -#endif } -#endif /* INVARIANTS */ +#endif /* DIAGNOSTIC */ void hrl_proc_exiting(struct proc *p) @@ -507,7 +517,7 @@ continue; } } -#ifdef INVARIANTS +#ifdef DIAGNOSTIC hrl_assert_proc(p); #endif mtx_unlock(&hrl_lock); @@ -571,7 +581,7 @@ continue; } } -#ifdef INVARIANTS +#ifdef DIAGNOSTIC hrl_assert_proc(p); #endif mtx_unlock(&hrl_lock); @@ -626,7 +636,7 @@ continue; } } -#ifdef INVARIANTS +#ifdef DIAGNOSTIC hrl_assert_proc(p); #endif mtx_unlock(&hrl_lock); From owner-p4-projects@FreeBSD.ORG Sun Aug 16 17:44:30 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 540A6106568B; Sun, 16 Aug 2009 17:44:30 +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 08546106564A for ; Sun, 16 Aug 2009 17:44:30 +0000 (UTC) (envelope-from fangwang@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id EA2268FC4D for ; Sun, 16 Aug 2009 17:44:29 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GHiTV8000561 for ; Sun, 16 Aug 2009 17:44:29 GMT (envelope-from fangwang@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GHiTWN000559 for perforce@freebsd.org; Sun, 16 Aug 2009 17:44:29 GMT (envelope-from fangwang@FreeBSD.org) Date: Sun, 16 Aug 2009 17:44:29 GMT Message-Id: <200908161744.n7GHiTWN000559@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fangwang@FreeBSD.org using -f From: Fang Wang To: Perforce Change Reviews Cc: Subject: PERFORCE change 167409 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, 16 Aug 2009 17:44:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=167409 Change 167409 by fangwang@fangwang_utobsd on 2009/08/16 17:44:10 Fix style, copyright, add some comments. Affected files ... .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_input.c#8 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_output.c#10 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_subr.c#6 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_timer.c#9 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_usrreq.c#10 edit .. //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_var.h#15 edit .. //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/README#3 edit .. //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/tcputo.c#8 edit Differences ... ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_input.c#8 (text+ko) ==== @@ -1188,12 +1188,12 @@ /* * If TCP user timeout option is received, because it's an - * optional option, we do nothing at this moment. We will - * process when we need to use it. And we need it in two + * optional option, we do nothing at this moment. We will + * process when we need to use it. And we need it in two * cases: * 1. We need do retransmission. * 2. Users request a UTO value. - */ + */ if (to.to_flags & TOF_UTO) { tp->uto_flags |= TCPUTO_RCVD; tp->rcv_uto = to.to_uto; @@ -2251,10 +2251,10 @@ process_ACK: /* - * If we are sending the UTO option, and we receive a ACK acknowledge the - * segment carrying the UTO option, the UTO was send successfully. So we - * stop sending the UTO option. - */ + * If we are sending the UTO option, and we receive a ACK + * acknowledge the segment carrying the UTO option, the UTO + * was send successfully. So we stop sending the UTO option. + */ if (tp->uto_flags & TCPUTO_SENDING) if (SEQ_GEQ(th->th_ack, tp->uto_carrier)) tp->uto_flags &= ~TCPUTO_SENDING; @@ -2971,7 +2971,7 @@ continue; to->to_flags |= TOF_UTO; bcopy((char *)cp + 2, - (char *)&to->to_uto, sizeof(to->to_uto)); + (char *)&to->to_uto, sizeof(to->to_uto)); to->to_uto = ntohs(to->to_uto); break; default: ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_output.c#10 (text+ko) ==== @@ -711,13 +711,16 @@ hdrlen += optlen = tcp_addoptions(&to, opt); /* - * According to RFC 5482: - * "In addition to exchanging UTO options in the SYN segments, a - * connection that has enabled UTO options SHOULD include a UTO option - * in the first packet that does not have the SYN flag set. This helps to minimize - * the amount of state information TCP must keep for connections in non-synchronized states." - * So even though UTO options is put in SYN segment successfully, we still transmit it. - */ + * According to RFC 5482: + * "In addition to exchanging UTO options in the SYN segments, + * a connection that has enabled UTO options SHOULD include a + * UTO option in the first packet that does not have the SYN + * flag set. This helps to minimize the amount of state + * information TCP must keep for connections in + * non-synchronized states." + * So even though UTO option is put in SYN segment successfully, + * we still transmit it. + */ if (tp->uto_flags & (TCPUTO_NEED | TCPUTO_SENDING) && (to.to_flags & TOF_UTO) == 0) { if ((flags & TH_SYN) == 0) { @@ -1478,7 +1481,7 @@ case TOF_UTO: { if (TCP_MAXOLEN - optlen < TCPOLEN_UTO) - continue; + continue; *optp++ = TCPOPT_UTO; *optp++ = TCPOLEN_UTO; optlen += TCPOLEN_UTO; ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_subr.c#6 (text+ko) ==== @@ -745,9 +745,10 @@ if (tcp_uto_enable) tp->uto_flags |= TCPUTO_ENABLE; /* - * According to RFC 5482, t_uto_adv is UTO option advertised to the remote TCP peer. - * It defaults to the default system-wide USER TIMEOUT. - */ + * According to RFC 5482, t_uto_adv is UTO option advertised to the + * remote TCP peer. It defaults to the default system-wide USER + * TIMEOUT. + */ tp->t_uto_adv = TCPTV_UTO_DEFAULT; /* * IPv4 TTL initialization is necessary for an IPv6 socket as well, ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_timer.c#9 (text+ko) ==== @@ -114,9 +114,11 @@ int tcp_uto_min; SYSCTL_PROC(_net_inet_tcp, OID_AUTO, uto_min, CTLTYPE_INT|CTLFLAG_RW, &tcp_uto_min, 0, sysctl_msec_to_ticks, "I", "Minimun user timeout"); + int tcp_uto_max; SYSCTL_PROC(_net_inet_tcp, OID_AUTO, uto_max, CTLTYPE_INT|CTLFLAG_RW, &tcp_uto_max, 0, sysctl_msec_to_ticks, "I", "Maximum user timeout"); + int tcp_uto_enable = 0; SYSCTL_INT(_net_inet_tcp, OID_AUTO, always_enableuto, CTLFLAG_RW, &tcp_uto_enable , 0, "Enable TCP user timeout option on all TCP connections"); @@ -501,12 +503,13 @@ * been acked within retransmit interval. Back off * to a longer retransmit interval and retransmit one segment. */ - if ((++tp->t_rxtshift > TCP_MAXRXTSHIFT && (tp->uto_flags & TCPUTO_IMPL) == 0) || + if ((++tp->t_rxtshift > TCP_MAXRXTSHIFT && + (tp->uto_flags & TCPUTO_IMPL) == 0) || (tp->t_uto_left == 0 && tp->uto_flags & TCPUTO_IMPL)) { tp->t_rxtshift = TCP_MAXRXTSHIFT; TCPSTAT_INC(tcps_timeoutdrop); tp = tcp_drop(tp, tp->t_softerror ? - tp->t_softerror : ETIMEDOUT); + tp->t_softerror : ETIMEDOUT); goto out; } INP_INFO_WUNLOCK(&V_tcbinfo); @@ -537,19 +540,20 @@ if ((tp->uto_flags & TCPUTO_IMPL) == 0) { rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift]; TCPT_RANGESET(tp->t_rxtcur, rexmt, - tp->t_rttmin, TCPTV_REXMTMAX); + tp->t_rttmin, TCPTV_REXMTMAX); } else { int rxtshift, interval; rxtshift = min(TCP_MAXRXTSHIFT, tp->t_rxtshift); interval = min(TCP_REXMTMAX, tcp_backoff[rxtshift]); rexmt = TCP_REXMTVAL(tp) * tcp_backoff[rxtshift]; TCPT_RANGESET(tp->t_rxtcur, rexmt, - tp->t_rttmin, TCPTV_REXMTMAX); + tp->t_rttmin, TCPTV_REXMTMAX); if (tp->t_uto_left < interval) { - tp->t_rxtcur = (tp->t_rxtcur * tp->t_uto_left) / interval; + tp->t_rxtcur = (tp->t_rxtcur * tp->t_uto_left) + / interval; /* Prevent t_rxtcur to be zero */ TCPT_RANGESET(tp->t_rxtcur, tp->t_rxtcur, - tp->t_rttmin, TCPTV_REXMTMAX); + tp->t_rttmin, TCPTV_REXMTMAX); } tp->t_uto_left -= min(tp->t_uto_left, interval); } ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_usrreq.c#10 (text+ko) ==== @@ -1379,7 +1379,8 @@ return (error); INP_WLOCK_RECHECK(inp); - if (tu.flags & ~(ENABLE_UTO | STORE_UTO | ENABLE_CHANGE)) { + if (tu.flags & ~(ENABLE_UTO | STORE_UTO | + ENABLE_CHANGE)) { error = EINVAL; break; } @@ -1398,10 +1399,12 @@ } if (tp->uto_flags & TCPUTO_ENABLE && tp->uto_flags & TCPUTO_NEED) { - tp->t_uto_impl = min(tcp_uto_max, - max(tu.uto * hz, tcp_uto_min)); + tp->t_uto_impl = min( + tcp_uto_max, max(tu.uto*hz, + tcp_uto_min)); tp->t_uto_adv = tp->t_uto_impl; - tp->uto_flags &= ~TCPUTO_CHANGEABLE; + tp->uto_flags &= + ~TCPUTO_CHANGEABLE; tp->uto_flags |= TCPUTO_IMPL; } } else ==== //depot/projects/soc2009/tcputo/src/sys/netinet/tcp_var.h#15 (text+ko) ==== @@ -254,19 +254,20 @@ /* * Resolve user timeout value(ticks). */ -#define TCPT_RESOLVE_UTO(tp) do { \ - if ((tp)->uto_flags & TCPUTO_ENABLE && \ - (tp)->uto_flags & TCPUTO_RCVD && \ - (tp)->uto_flags & TCPUTO_CHANGEABLE) { \ - (tp)->t_uto_impl = (tp)->rcv_uto >> 1; \ - if ((tp)->rcv_uto & 1) \ - (tp)->t_uto_impl *= 60; \ - (tp)->t_uto_impl *= hz; \ - (tp)->t_uto_impl = min(tcp_uto_max, \ - max((tp)->t_uto_adv, max((tp)->t_uto_impl, tcp_uto_min))); \ - (tp)->uto_flags &= ~TCPUTO_RCVD; \ - (tp)->uto_flags |= TCPUTO_IMPL; \ - } \ +#define TCPT_RESOLVE_UTO(tp) do { \ + if ((tp)->uto_flags & TCPUTO_ENABLE && \ + (tp)->uto_flags & TCPUTO_RCVD && \ + (tp)->uto_flags & TCPUTO_CHANGEABLE) { \ + (tp)->t_uto_impl = (tp)->rcv_uto >> 1; \ + if ((tp)->rcv_uto & 1) \ + (tp)->t_uto_impl *= 60; \ + (tp)->t_uto_impl *= hz; \ + (tp)->t_uto_impl = min(tcp_uto_max, \ + max((tp)->t_uto_adv, \ + max((tp)->t_uto_impl, tcp_uto_min))); \ + (tp)->uto_flags &= ~TCPUTO_RCVD; \ + (tp)->uto_flags |= TCPUTO_IMPL; \ + } \ } while(0) #ifdef TCP_SIGNATURE ==== //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/README#3 (text+ko) ==== @@ -21,4 +21,4 @@ After that, interrupt the connection without detected by operating system, and wait until process exits. -$FreeBSD: src/tools/regression/netinet/tcputo/README,v 1.0 2008/08/15 20:26:52 fw Exp $ +$FreeBSD: src/tools/regression/netinet/tcputo/README,v 1.0 2009/08/17 00:56:31 fw Exp $ ==== //depot/projects/soc2009/tcputo/src/tools/regression/netinet/tcputo/tcputo.c#8 (text+ko) ==== @@ -23,9 +23,16 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/tools/regression/netinet/tcputo/tcputo.c 2009/08/15 20:28:31 fw $ + * $FreeBSD: src/tools/regression/netinet/tcputo/tcputo.c 2009/08/17 00:56:31 fw $ + */ + +/* + * TCP regression test for tcp user timeout; build a TCP connection, interrupt + * it without detected by operating system, and make sure the timeout time and + * retransmission times has been changed appropriately. */ + #include #include @@ -49,22 +56,22 @@ #include #define SIZE_ETHERNET sizeof(struct ether_header) +#define MAX_RXT 200 struct tcprxt { struct timeval ts; - u_int th_off; - tcp_seq th_seq; - tcp_seq th_ack; + u_int th_off; + tcp_seq th_seq; + tcp_seq th_ack; u_short th_win; - u_char th_flags; + u_char th_flags; }; -#define MAX_RXT 200 +static struct tcprxt rxts[MAX_RXT]; -struct tcprxt rxts[MAX_RXT]; - -void -parse_packet(u_char *args, const struct pcap_pkthdr *pkt_header, const u_char *packet) +static void +parse_packet(u_char *args, const struct pcap_pkthdr *pkt_header, + const u_char *packet) { const struct ip *ip; const struct tcphdr *tcp; @@ -108,10 +115,12 @@ uto >>= 1; p = localtime(&pkt_header->ts.tv_sec); printf("uto packet: "); - printf("%02d:%02d:%02d.%-6u ", p->tm_hour, p->tm_min, p->tm_sec, - pkt_header->ts.tv_usec); - printf("%s.%d > ", inet_ntoa(ip->ip_src), htons(tcp->th_sport)); - printf("%s.%d, ", inet_ntoa(ip->ip_dst), htons(tcp->th_dport)); + printf("%02d:%02d:%02d.%-6u ", p->tm_hour, p->tm_min, + p->tm_sec, pkt_header->ts.tv_usec); + printf("%s.%d > ", inet_ntoa(ip->ip_src), + htons(tcp->th_sport)); + printf("%s.%d, ", inet_ntoa(ip->ip_dst), + htons(tcp->th_dport)); printf("flags ["); if (tcp->th_flags & TH_SYN) printf("S"); @@ -124,7 +133,8 @@ if (tcp->th_flags & TH_URG) printf("U"); printf("], "); - printf("uto %u, win %u, length %u\n", uto, htons(tcp->th_win), length); + printf("uto %u, win %u, length %u\n", uto, + htons(tcp->th_win), length); } hlen -= optlen - 1; tcpopt += optlen - 2; @@ -137,12 +147,13 @@ rxt.th_ack = htonl(tcp->th_ack); rxt.th_seq = htonl(tcp->th_seq); rxt.th_flags = tcp->th_flags; - memcpy(&rxts[0], &rxts[1], sizeof(struct tcprxt) * (MAX_RXT - 1)); + memcpy(&rxts[0], &rxts[1], + sizeof(struct tcprxt) * (MAX_RXT - 1)); memcpy(&rxts[MAX_RXT - 1], &rxt, sizeof(rxt)); } } -void * +static void * dump_packet(void *arg) { pcap_t *handle; @@ -160,10 +171,12 @@ int flag; optlen = sizeof(srcaddr); - if (getsockname(*((int *)arg), (struct sockaddr *)&srcaddr, &optlen) == -1) + if (getsockname(*((int *)arg), (struct sockaddr *)&srcaddr, + &optlen) == -1) err(-1, "getsockname"); optlen = sizeof(dstaddr); - if (getpeername(*((int *)arg), (struct sockaddr *)&dstaddr, &optlen) == -1) + if (getpeername(*((int *)arg), (struct sockaddr *)&dstaddr, + &optlen) == -1) err(-1, "getsockname"); if (pcap_findalldevs(&alldevsp, errbuf) == -1) { @@ -177,7 +190,8 @@ addrp = devp->addresses; while (addrp != NULL && flag) { devaddrp = (struct sockaddr_in *)addrp->addr; - if (!memcmp(&devaddrp->sin_addr, &srcaddr.sin_addr, sizeof(srcaddr.sin_addr))) { + if (!memcmp(&devaddrp->sin_addr, &srcaddr.sin_addr, + sizeof(srcaddr.sin_addr))) { flag = 0; break; } @@ -194,48 +208,56 @@ } if (pcap_lookupnet(devp->name, &net, &mask, errbuf) == -1) { - fprintf(stderr, "Couldn't get netmask for device %s: %s\n", devp->name, errbuf); + fprintf(stderr, "Couldn't get netmask for device %s: %s\n", + devp->name, errbuf); net = 0; mask = 0; } handle = pcap_open_live(devp->name, BUFSIZ, 1, 1000, errbuf); if (handle == NULL) { - fprintf(stderr, "Couldn't open device %s: %s\n", devp->name, errbuf); + fprintf(stderr, "Couldn't open device %s: %s\n", + devp->name, errbuf); exit(-1); } pcap_freealldevs(alldevsp); snprintf(filter_exp, sizeof(filter_exp), - "(tcp src port %d and dst port %d) or (tcp src port %d and dst port %d)", - ntohs(srcaddr.sin_port), ntohs(dstaddr.sin_port), - ntohs(dstaddr.sin_port), ntohs(srcaddr.sin_port)); + "(tcp src port %d and dst port %d) or" + "(tcp src port %d and dst port %d)", + ntohs(srcaddr.sin_port), ntohs(dstaddr.sin_port), + ntohs(dstaddr.sin_port), ntohs(srcaddr.sin_port)); if (pcap_compile(handle, &fp, filter_exp, 0, net) == -1) { - fprintf(stderr, "Couldn't parse filter %s: %s\n", filter_exp, pcap_geterr(handle)); + fprintf(stderr, "Couldn't parse filter %s: %s\n", + filter_exp, pcap_geterr(handle)); exit(-1); } if (pcap_setfilter(handle, &fp) == -1) { - fprintf(stderr, "Couldn't install filter %s: %s\n", filter_exp, pcap_geterr(handle)); + fprintf(stderr, "Couldn't install filter %s: %s\n", + filter_exp, pcap_geterr(handle)); exit(-1); } pcap_loop(handle, -1, parse_packet, NULL); pcap_close(handle); - + return NULL; } -void print_result() +static void +print_result() { tcp_seq rxt_seq; int i, last, rxt_nr; struct tm *p; - + + /* Get the retransmit sequence number */ rxt_seq = rxts[MAX_RXT - 2].th_seq; for (last = -1, rxt_nr = 0, i = 0; i < MAX_RXT; i++) { - if (rxts[i].th_seq && (rxts[i].th_seq == rxt_seq || rxts[i].th_flags & TH_RST)) { + if (rxts[i].th_seq && + (rxts[i].th_seq == rxt_seq || rxts[i].th_flags & TH_RST)) { if (rxts[i].th_flags & TH_RST) printf("reset packet, "); else if (rxt_nr) @@ -243,16 +265,25 @@ else if (!rxt_nr) printf("send packet, "); p = localtime(&rxts[i].ts.tv_sec); - printf("%02d:%02d:%02d.%-6u ", p->tm_hour, p->tm_min, p->tm_sec, rxts[i].ts.tv_usec); + printf("%02d:%02d:%02d.%-6u ", p->tm_hour, p->tm_min, + p->tm_sec, rxts[i].ts.tv_usec); if (last != -1) { + /* print interval between two packets */ if (rxts[i].ts.tv_usec < rxts[last].ts.tv_usec) - printf("(%2u.%-6u) ", rxts[i].ts.tv_sec - rxts[last].ts.tv_sec - 1, - 1000000 + rxts[i].ts.tv_usec - rxts[last].ts.tv_usec); + printf("(%2u.%-6u) ", + rxts[i].ts.tv_sec - + rxts[last].ts.tv_sec - 1, + 1000000 + rxts[i].ts.tv_usec - + rxts[last].ts.tv_usec); else - printf("(%2u.%-6u) ", rxts[i].ts.tv_sec - rxts[last].ts.tv_sec, - rxts[i].ts.tv_usec - rxts[last].ts.tv_usec); + printf("(%2u.%-6u) ", + rxts[i].ts.tv_sec - + rxts[last].ts.tv_sec, + rxts[i].ts.tv_usec - + rxts[last].ts.tv_usec); } - printf("seq %u, ack %u, ", rxts[i].th_seq, rxts[i].th_ack); + printf("seq %u, ack %u, ", + rxts[i].th_seq, rxts[i].th_ack); printf("win %u\n", rxts[i].th_win); last = i; rxt_nr++; @@ -260,11 +291,12 @@ } } -int +static int print_uto_status(int sock, int print) { static struct tcputo tu = {0, 0}; - int default_uto = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 64 + 64 + 64 + 64 + 64 + 64; + int default_uto = 1 + 2 + 4 + 8 + 16 + 32 + 64 + + 64 + 64 + 64 + 64 + 64 + 64; int optlen; int utoval; @@ -274,26 +306,29 @@ if (tu.flags & ENABLE_UTO) { printf("tcputo: enabled, "); if (tu.flags & STORE_UTO) { - printf("user timeout(changed): %d seconds\n", tu.uto); + printf("user timeout(changed): %d seconds\n", + tu.uto); utoval = tu.uto; } else { - printf("user timeout(default): %d seconds\n", default_uto); + printf("user timeout(default): %d seconds\n", + default_uto); utoval = default_uto; } } else { - printf("tcputo: disabled, default timeout: %d seconds\n", default_uto); + printf("tcputo: disabled, default timeout: %d " + "seconds\n", default_uto); utoval = default_uto; } } - return utoval; + return (utoval); } static void usage(void) { - fprintf(stderr, "tcpconnect server port [uto [timeout seconds]]\n"); - fprintf(stderr, "tcpconnect client ip port [uto [timeout seconds]]\n"); + fprintf(stderr, "tcpconnect server port [uto [timeout]]\n"); + fprintf(stderr, "tcpconnect client ip port [uto [timeout]]\n"); exit(-1); } @@ -346,7 +381,8 @@ if (listen_sock == -1) err(-1, "socket"); optval = 1; - if (setsockopt(listen_sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) == -1) + if (setsockopt(listen_sock, SOL_SOCKET, SO_REUSEADDR, &optval, + sizeof(optval)) == -1) err(-1, "setsockopt"); if (bind(listen_sock, (struct sockaddr *)&sin, sizeof(sin)) == -1) @@ -365,6 +401,10 @@ if (argc >= 2) { memset(&uto, 0, sizeof(uto)); + /* + * If TCP UTO is enabled but not set, make it changeable, + * otherwise, make it unchangeable. + */ if (!strcmp(argv[1], "uto")) { uto.flags |= ENABLE_UTO; uto.flags |= ENABLE_CHANGE; @@ -377,21 +417,27 @@ uto.flags |= STORE_UTO; uto.flags &= ~ENABLE_CHANGE; } - if (setsockopt(accept_sock, IPPROTO_TCP, TCP_UTO, &uto, sizeof(uto)) == -1) + if (setsockopt(accept_sock, IPPROTO_TCP, TCP_UTO, &uto, + sizeof(uto)) == -1) err(-1, "setsockopt"); } optval = 4*1024; - if (setsockopt(accept_sock, SOL_SOCKET, SO_SNDBUF, &optval, sizeof(optval)) == -1) + if (setsockopt(accept_sock, SOL_SOCKET, SO_SNDBUF, &optval, + sizeof(optval)) == -1) err(-1, "setsockopt"); while(1) { sleep(1); - while(recv(accept_sock, buf, 8*1024, MSG_DONTWAIT) > 0); + while (recv(accept_sock, buf, 8*1024, MSG_DONTWAIT) > 0); (void)tcputo_timer(); + /* + * Send more data than socket send buffer, + * so that data are not buffered. + */ if (send(accept_sock, buf, 8*1024, MSG_NOSIGNAL) >= 0) { (void)tcputo_timer(); - print_uto_status(accept_sock, 0); + (void)print_uto_status(accept_sock, 0); continue; } user_timeout = tcputo_timer(); @@ -400,7 +446,7 @@ } /* wait for the reset packet to be captured */ sleep(1); - pthread_kill(tid, SIGTERM); + (void)pthread_kill(tid, SIGTERM); close(accept_sock); } @@ -436,11 +482,16 @@ err(-1, "socket"); optval = 4*1024; - if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &optval, sizeof(optval)) == -1) + if (setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &optval, + sizeof(optval)) == -1) err(-1, "setsockopt"); if (argc >= 3) { memset(&uto, 0, sizeof(uto)); + /* + * If TCP UTO is enabled but not set, make it changeable, + * otherwise, make it unchangeable. + */ if (!strcmp(argv[2], "uto")) { uto.flags |= ENABLE_UTO; uto.flags |= ENABLE_CHANGE; @@ -453,7 +504,8 @@ uto.flags |= STORE_UTO; uto.flags &= ~ENABLE_CHANGE; } - if (setsockopt(sock, IPPROTO_TCP, TCP_UTO, &uto, sizeof(uto)) == -1) + if (setsockopt(sock, IPPROTO_TCP, TCP_UTO, &uto, + sizeof(uto)) == -1) err(-1, "setsockopt"); } @@ -467,9 +519,13 @@ sleep(1); while(recv(sock, buf, 8*1024, MSG_DONTWAIT) > 0); (void)tcputo_timer(); + /* + * Send more data than socket send buffer, + * so that data are not buffered. + */ if (send(sock, buf, 8*1024, MSG_NOSIGNAL) > 0) { (void)tcputo_timer(); - print_uto_status(sock, 0); + (void)print_uto_status(sock, 0); continue; } user_timeout = tcputo_timer(); @@ -478,7 +534,7 @@ } /* wait for the reset packet to be captured */ sleep(1); - pthread_kill(tid, SIGTERM); + (void)pthread_kill(tid, SIGTERM); close(sock); } @@ -498,7 +554,7 @@ else usage(); - print_uto_status(-1, 1); + (void)print_uto_status(-1, 1); print_result(); exit(0); From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:27:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 735C6106568D; Sun, 16 Aug 2009 19:27:22 +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 3783E1065696 for ; Sun, 16 Aug 2009 19:27:22 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0D9668FC61 for ; Sun, 16 Aug 2009 19:27:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJRLsP011382 for ; Sun, 16 Aug 2009 19:27:21 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJRLwb011380 for perforce@freebsd.org; Sun, 16 Aug 2009 19:27:21 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:27:21 GMT Message-Id: <200908161927.n7GJRLwb011380@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167410 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, 16 Aug 2009 19:27:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=167410 Change 167410 by bz@bz_zoo on 2009/08/16 19:27:05 Hook up the sned module so that it gets build and installed with the kernel. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/modules/Makefile#7 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/modules/Makefile#7 (text+ko) ==== @@ -242,6 +242,7 @@ ${_scsi_low} \ sdhci \ sem \ + send \ sf \ siis \ sis \ From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:32:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 233C5106568E; Sun, 16 Aug 2009 19:32:28 +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 DBEA6106568B for ; Sun, 16 Aug 2009 19:32:27 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B19888FC15 for ; Sun, 16 Aug 2009 19:32:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJWRda011759 for ; Sun, 16 Aug 2009 19:32:27 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJWRaB011757 for perforce@freebsd.org; Sun, 16 Aug 2009 19:32:27 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:32:27 GMT Message-Id: <200908161932.n7GJWRaB011757@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167411 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, 16 Aug 2009 19:32:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=167411 Change 167411 by bz@bz_zoo on 2009/08/16 19:32:08 - Rather than returning directly make a copy of the mbuf and leave the original for the routing socket to possibly loop it back to other listeners. - Only adjust our local copy that we send to send_output_hook, which will be responsible to make sure the mbuf will be freed. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#16 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#16 (text+ko) ==== @@ -526,26 +526,41 @@ printf("RTM_SND!\n"); switch (rtm->rtm_seq) { + struct mbuf *n; + case RTM_SND_IN: ifp = ifnet_byindex(rtm->rtm_index); - if (ifp) { - m_adj(m, sizeof (struct rt_msghdr)); - printf("rtm->rtm_index = %d\n", rtm->rtm_index); - send_output_hook(m, ifp, SND_IN); - } else { - printf("route_output: ifp == NULL"); + if (!ifp) { + printf("%s: RTM_SND_IN ifp == NULL", __func__); + senderr(EINVAL); + } + if ((n = m_dup(m, M_DONTWAIT)) == NULL) { + printf("%s: RTM_SND_IN n == NULL", __func__); + senderr(ENOBUFS); } - return (0); + m_adj(n, sizeof(struct rt_msghdr)); + printf("%s: RTM_SND_IN ifp=%p(%s), mbuf=%p\n", + __func__, ifp, ifp->if_xname, n); + error = send_output_hook(n, ifp, SND_IN); + if (error) + senderr(error); break; case RTM_SND_OUT: ifp = ifnet_byindex(rtm->rtm_index); - if (ifp) { - m_adj(m, sizeof (struct rt_msghdr)); - printf("if_index = %u\n", ifp->if_index); - send_output_hook(m, ifp, SND_OUT); - } else - printf("route_output: ifp == NULL"); - return (0); + if (!ifp) { + printf("%s: RTM_SND_OUT ifp == NULL", __func__); + senderr(EINVAL); + } + if ((n = m_dup(m, M_DONTWAIT)) == NULL) { + printf("%s: RTM_SND_OUT n == NULL", __func__); + senderr(ENOBUFS); + } + m_adj(n, sizeof(struct rt_msghdr)); + printf("%s: RTM_SND_OUT ifp=%p(%s), mbuf=%p\n", + __func__, ifp, ifp->if_xname, n); + error = send_output_hook(n, ifp, SND_OUT); + if (error) + senderr(error); break; } From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:35:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 760921065692; Sun, 16 Aug 2009 19:35:31 +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 3A684106568D for ; Sun, 16 Aug 2009 19:35:31 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 29A328FC3F for ; Sun, 16 Aug 2009 19:35:31 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJZV4C012061 for ; Sun, 16 Aug 2009 19:35:31 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJZVEF012059 for perforce@freebsd.org; Sun, 16 Aug 2009 19:35:31 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:35:31 GMT Message-Id: <200908161935.n7GJZVEF012059@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167412 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, 16 Aug 2009 19:35:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167412 Change 167412 by bz@bz_zoo on 2009/08/16 19:35:30 Use m_copyback() to add the data to the mbuf rather than having an implicit memory assumption that the additional payload will either fit into the mbuf already there or an additional of size MT_DATA (256 bytes). This should solve memory corruptions in the mbuf of the next chunk of memory. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#17 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#17 (text+ko) ==== @@ -1276,6 +1276,8 @@ * NB: we assume m is a single mbuf. */ + m_copyback(m, m->m_len, data_len, data); +#if 0 if (data_len > M_TRAILINGSPACE(m)) { struct mbuf *n = m_get(M_NOWAIT, MT_DATA); if (n == NULL) { @@ -1299,6 +1301,7 @@ } if (m->m_flags & M_PKTHDR) m->m_pkthdr.len += data_len; +#endif printf("prije mtod!\n"); mtod(m, struct if_announcemsghdr *)->ifan_msglen += data_len; printf("prije rt_dispatch\n"); From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:43:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 84F9B106568E; Sun, 16 Aug 2009 19:43:40 +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 4973F106568C for ; Sun, 16 Aug 2009 19:43:40 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 380858FC4B for ; Sun, 16 Aug 2009 19:43:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJhe5s012597 for ; Sun, 16 Aug 2009 19:43:40 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJheCb012595 for perforce@freebsd.org; Sun, 16 Aug 2009 19:43:40 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:43:40 GMT Message-Id: <200908161943.n7GJheCb012595@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167413 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, 16 Aug 2009 19:43:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=167413 Change 167413 by bz@bz_zoo on 2009/08/16 19:43:35 In send_output: - make sure that enough of the ip6 header is there before accessing it (just to be save). - rather than allocating (and not freeing) put dst on the stack for passing it to if_output. - return a proper error in each case rather than 0. In send_input: - allocate contigous memory for the entire payload as rtsock.c:rt_msg3() just copies it from that and cannot handle multiple mbufs as data input. We can free it once we return from rt_securendmsg() as rt_msg3() did another copy. We can later optimize this code path. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#23 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#23 (text+ko) ==== @@ -20,11 +20,13 @@ #include #include +MALLOC_DEFINE(M_SEND, "send", "Secure Neighbour Discovery"); + static int send_output(struct mbuf *m, struct ifnet *ifp, int direction) { struct ip6_hdr *ip6; - struct sockaddr_in6 *dst; + struct sockaddr_in6 dst; struct icmp6_hdr *icmp6; int icmp6len; @@ -51,76 +53,71 @@ } //icmp6_rip6_input(&m, *offp); + /* XXX-BZ TODO */ + return (ENOSYS); - break; case SND_OUT: + m = m_pullup(m, sizeof(struct ip6_hdr)); + if (!m) + return (ENOBUFS); ip6 = mtod(m, struct ip6_hdr *); - if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) m->m_flags |= M_MCAST; { - char ip6buf[INET6_ADDRSTRLEN]; - printf("XXX-AK, send.c: ifp=%p, xname=%s, dst=%s\n", ifp, ifp->if_xname, ip6_sprintf(ip6buf, &ip6->ip6_dst)); + char ip6buf[INET6_ADDRSTRLEN]; + printf("XXX-AK %s: ifp=%p, xname=%s, ip6->ip6_dst=%s\n", __func__, ifp, ifp->if_xname, ip6_sprintf(ip6buf, &ip6->ip6_dst)); } - dst = malloc (sizeof (struct sockaddr_in6), M_TEMP, M_NOWAIT); - bzero(dst, sizeof(*dst)); - dst->sin6_len = sizeof(struct sockaddr_in6); - dst->sin6_family = AF_INET6; - dst->sin6_addr = ip6->ip6_dst; - - { - char ip6buf[INET6_ADDRSTRLEN]; - printf("XXX-BZ, send.c: ifp=%p, xname=%s, dst=%s\n", ifp, ifp->if_xname, ip6_sprintf(ip6buf, &((struct sockaddr_in6 *)dst)->sin6_addr)); - } + bzero(&dst, sizeof(dst)); + dst.sin6_family = AF_INET6; + dst.sin6_len = sizeof(dst); + dst.sin6_addr = ip6->ip6_dst; /* - * From nd6.c: nd6_output_lle(). + * Output the packet as nd6.c:nd6_output_lle() would do. + * The mbuf is always consumed, so we do not have to care + * about that. */ - return (*ifp->if_output)(ifp, m, (struct sockaddr *)dst, NULL); - //return (0); - break; + return ((*ifp->if_output)(ifp, m, (struct sockaddr *)&dst, + NULL)); default: - panic("Must be either SND_IN or SND_OUT."); + panic("%s: direction must be either SND_IN or SND_OUT.", __func__); } - - return (0); } static int send_input(struct mbuf *m, struct ifnet *ifp, int direction, int msglen) { - struct ip6_hdr *ip6; + u_int len; + void *data; if (m->m_flags & M_MCAST) - printf("send_input: M_MCAST packet\n"); + printf("%s: DEBUG %p M_MCAST packet\n", __func__, m); - ip6 = mtod(m, struct ip6_hdr *); + len = m_length(m, NULL); + if (len != msglen) + printf("XXX-BZ %s: (m)len=%u (ip6)msglen=%d", __func__, len, msglen); - struct mbuf *n = m_get(M_NOWAIT, MT_DATA); - if (direction == SND_IN) { - if (msglen > M_TRAILINGSPACE(m)) { - if (n == NULL) { - printf("rtsock.c: rt_msg3(), m_freem!\n"); - panic("n==NULL\n"); - return (1); - } - printf("send.c: bcopy!\n"); - bcopy(ip6, mtod(n, void *), msglen); - printf("send.c: bcopy ok!\n"); - n->m_len = msglen; - printf("send.c: msglen set up: n->m_len = data_len;\n"); - } - - ip6 = mtod(n, struct ip6_hdr *); + /* + * XXX-BZ we can save the alloc/free here if not relying on rtsock.c:rt_msg3() + * but using a version operating on mbuf-to-mbuf copy. + */ + data = malloc(msglen, M_SEND, M_NOWAIT); + if (data == NULL) { + m_freem(m); + return (ENOBUFS); } + + m_copydata(m, 0, msglen, data); /* * Send incoming or outgoing traffic to the user space either to be * protected (outgoing) or validated (incoming) according to rfc3971. */ - rt_securendmsg(ifp, direction, ip6, msglen); + rt_securendmsg(ifp, direction, data, msglen); + + free(data, M_SEND); return (0); } From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:46:44 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1474D106568F; Sun, 16 Aug 2009 19:46:44 +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 B48AC106568D for ; Sun, 16 Aug 2009 19:46:43 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A36788FC41 for ; Sun, 16 Aug 2009 19:46:43 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJkhuQ012833 for ; Sun, 16 Aug 2009 19:46:43 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJkhZJ012831 for perforce@freebsd.org; Sun, 16 Aug 2009 19:46:43 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:46:43 GMT Message-Id: <200908161946.n7GJkhZJ012831@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167414 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, 16 Aug 2009 19:46:44 -0000 http://perforce.freebsd.org/chv.cgi?CH=167414 Change 167414 by bz@bz_zoo on 2009/08/16 19:46:39 - sort includes - make sre functions are defined before use to make the quieten compiler warnings. - save rtm_version, rtm_type and rtm_seq (direction) from the ifan to be able to send it back with the rtm. - remove a bit of dead code and polish debugging messages. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#24 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#24 (text+ko) ==== @@ -30,28 +30,35 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." */ -#include -#include -#include +#include #include +#include #include -#include -#include + #include -#include + +#include #include -#include + #include + #include + +#include +#include +#include +#include + #include "config.h" -#include -#include #include "sendd_local.h" #include "os_specific.h" #include "snd_proto.h" #include "dbg.h" +#include +#include + static int icmp6sock = -1; static int sndsock = -1; @@ -63,6 +70,25 @@ static char abuf[INET6_ADDRSTRLEN]; #endif +/* Per-interface info */ +struct snd_ifinfo { + struct list_head list; + char name[32]; + int ifidx; + int snds; +}; +static DEFINE_LIST_HEAD(ifaces); + +/* Data packet meta data */ +struct snd_packet_info { + struct snd_ifinfo *ifinfo; + u_char rtm_version; + u_char rtm_type; + int rtm_seq; +}; + +void snd_sock_read(struct snd_ifinfo *p); + /* TODO: dynamically size according to MTU */ struct sbuff * snd_get_buf(void) @@ -77,21 +103,6 @@ return (b); } -/* Per-interface info */ -struct snd_ifinfo { - struct list_head list; - char name[32]; - int ifidx; - int snds; -}; -static DEFINE_LIST_HEAD(ifaces); - -/* Data packet meta data */ -struct snd_packet_info { - struct snd_ifinfo *ifinfo; - int in; -}; - void snd_dispatch_fds(fd_set *fds) { @@ -131,14 +142,13 @@ { struct snd_packet_info *pi; struct rt_msghdr *rtm; - struct ip6_hdr *ip6; if (drop) { snd_put_buf(b); return; } pi = (struct snd_packet_info *)(b->head); - DBG(&dbg_snd, "Direction, in = %d", pi->in); + DBG(&dbg_snd, "Direction, %s", (pi->rtm_seq == RTM_SND_OUT) ? "SND_OUT" : "SND_IN"); DBG(&dbg_snd, "rt_msghdr = %d, if_announcemsghdr = %d\n", sizeof (struct rt_msghdr), sizeof (struct if_announcemsghdr)); @@ -156,8 +166,12 @@ /* reusing RTM header received from kernel */ rtm->rtm_msglen = b->len; + rtm->rtm_version = pi->rtm_version; + rtm->rtm_type = pi->rtm_type; + rtm->rtm_index = pi->ifinfo->ifidx; + rtm->rtm_seq = pi->rtm_seq; + rtm->rtm_pid = getpid(); rtm->rtm_addrs = 0; - rtm->rtm_index = pi->ifinfo->ifidx; if (rtm->rtm_flags & M_MCAST) DBG(&dbg_snd, "M_MCAST!"); @@ -279,39 +293,33 @@ DBG(&dbg_snd, "RTM_IFANNOUNCE"); break; case RTM_SND: -#if 0 - ifan = sbuff_data(b); + ifan = (struct if_announcemsghdr *)rtm; + pi->rtm_version = ifan->ifan_version; + pi->rtm_type = ifan->ifan_type; + pi->rtm_seq = ifan->ifan_what; + switch (ifan->ifan_what) { -#endif - switch (rtm->rtm_seq) { case RTM_SND_IN: applog(LOG_ERR, "RTM_SND_IN"); /* n = RTM hdr + SEND message */ - if (sbuff_pull(b, sizeof (struct rt_msghdr)) == NULL) { -#if 0 if (sbuff_pull(b, sizeof (struct if_announcemsghdr)) == NULL) { -#endif - DBG(&dbg_snd, "invalid pkt (not enough for rtm hedaer"); goto done; + DBG(&dbg_snd, "invalid pkt (not enough for rtm hedaer"); + goto done; } pi->ifinfo = p; - pi->in = SND_IN; snd_recv_pkt(b, p->ifidx, SND_IN); break; case RTM_SND_OUT: applog(LOG_ERR, "RTM_SND_OUT"); /* n = RTM hdr + ip6_hdr + icmp6len */ - if (sbuff_pull(b, sizeof (struct rt_msghdr)) == NULL) { -#if 0 if (sbuff_pull(b, sizeof (struct if_announcemsghdr)) == NULL) { -#endif DBG(&dbg_snd, "invalid pkt (not enough for rtm header"); goto done; } pi->ifinfo = p; - pi->in = SND_OUT; snd_recv_pkt(b, p->ifidx, SND_OUT); break; From owner-p4-projects@FreeBSD.ORG Sun Aug 16 19:49:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9CBA31065692; Sun, 16 Aug 2009 19:49:47 +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 60F1B106568E for ; Sun, 16 Aug 2009 19:49:47 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5010F8FC52 for ; Sun, 16 Aug 2009 19:49:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GJnkaV013006 for ; Sun, 16 Aug 2009 19:49:46 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GJnkss013004 for perforce@freebsd.org; Sun, 16 Aug 2009 19:49:46 GMT (envelope-from bz@freebsd.org) Date: Sun, 16 Aug 2009 19:49:46 GMT Message-Id: <200908161949.n7GJnkss013004@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167415 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, 16 Aug 2009 19:49:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167415 Change 167415 by bz@bz_zoo on 2009/08/16 19:49:05 - remove some dead code. - start removing return (IPPROTO_DONE) as we can actually fall through the normal code path and everything will be fine. TODO: finish the last item for all cases. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#22 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/icmp6.c#22 (text+ko) ==== @@ -782,7 +782,6 @@ if (send_input_hook != NULL) { IP6_EXTHDR_CHECK(m, off, icmp6len, IPPROTO_DONE); send_input_hook(m, ifp, SND_IN, ip6len); - return (IPPROTO_DONE); } else { /* give up local */ nd6_rs_input(m, off, icmp6len); @@ -833,16 +832,10 @@ goto badcode; if (icmp6len < sizeof(struct nd_neighbor_solicit)) goto badlen; -#if 0 - if ((n = m_copypacket(m, M_DONTWAIT)) == NULL) { -#endif if ((n = m_copym(m, 0, M_COPYALL, M_DONTWAIT)) == NULL) { -#if 0 - if ((n = m_dup(m, M_DONTWAIT)) == NULL) { -#endif - /* Send incoming SeND/ND packet to user space. */ if (send_input_hook != NULL) { - printf("icmp6.c: send_input_hook 1\n"); + /* Send incoming SeND/ND packet to user space. */ + printf("%s: send_input_hook m=%p\n", __func__, m); send_input_hook(m, ifp, SND_IN, ip6len); } else { /* give up local */ @@ -852,9 +845,9 @@ goto freeit; } if (send_input_hook != NULL) { - printf("icmp6.c: send_input_hook 2\n"); + /* Send incoming SeND/ND packet to user space. */ + printf("%s: send_input_hook n=%p\n", __func__, n); send_input_hook(n, ifp, SND_IN, ip6len); - return (IPPROTO_DONE); } else nd6_ns_input(n, off, icmp6len); /* m stays. */ @@ -879,10 +872,9 @@ m = NULL; goto freeit; } - if (send_input_hook != NULL) { + if (send_input_hook != NULL) send_input_hook(n, ifp, SND_IN, ip6len); - return (IPPROTO_DONE); - } else + else nd6_na_input(n, off, icmp6len); /* m stays. */ break; From owner-p4-projects@FreeBSD.ORG Sun Aug 16 20:07:06 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 95BB71065701; Sun, 16 Aug 2009 20:07:06 +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 5A5EA10656BF for ; Sun, 16 Aug 2009 20:07:06 +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 310F38FC72 for ; Sun, 16 Aug 2009 20:07:06 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GK76Fe015261 for ; Sun, 16 Aug 2009 20:07:06 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GK76jo015259 for perforce@freebsd.org; Sun, 16 Aug 2009 20:07:06 GMT (envelope-from trasz@freebsd.org) Date: Sun, 16 Aug 2009 20:07:06 GMT Message-Id: <200908162007.n7GK76jo015259@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 167417 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, 16 Aug 2009 20:07:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=167417 Change 167417 by trasz@trasz_anger on 2009/08/16 20:06:21 Add regression tests for hrl rules. Affected files ... .. //depot/projects/soc2009/trasz_limits/tools/regression/hrl/00.t#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Aug 16 20:24:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B80581065691; Sun, 16 Aug 2009 20:24: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 647CB106568B for ; Sun, 16 Aug 2009 20:24:25 +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 53AB38FC59 for ; Sun, 16 Aug 2009 20:24:25 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GKOPEV016472 for ; Sun, 16 Aug 2009 20:24:25 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GKOPx3016470 for perforce@freebsd.org; Sun, 16 Aug 2009 20:24:25 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 16 Aug 2009 20:24:25 GMT Message-Id: <200908162024.n7GKOPx3016470@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 167418 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, 16 Aug 2009 20:24:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167418 Change 167418 by pgj@beehive on 2009/08/16 20:23:39 Fix events entries Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#13 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#13 (text+ko) ==== @@ -63,6 +63,36 @@ Németország + München + Messe München + + + A discuss & discover a Systems utódja. A + többi nagyobb BSD terjesztéshez hasonlóan a &os; + is képviselteti magát ezen a rendezvényen, + és igyekszik a korábbi évek sikereit + megismételni. Várható itt nyílt + forráskódról szóló konferencia + különféle elõadásokkal, valamint a + különbözõ projektek + bemutatósátrai. + + + + IT Security Expo 2009 + http://www.it-sa.de/en/ + + 2009 + 9 + 23 + + + 2009 + 9 + 24 + + + Németország Nuremberg @@ -82,25 +112,23 @@ 2009 9 - 17 + 23 2009 9 - 19 + 24 - Egyesült Királyság - Cambridge - Cambridge-i Egyetem + Svájc + Winterthur - A kilencedik évente megrendezett európai - BSD konferenciát ezúttal az angliai Cambridge-ben - tartják 2009 szeptemberében. Tervezett programjai - között szerepel például egy szakmai - jellegû körbetekintése, több bemutató - és egy fejlesztõi gyûlés. + Az OpenExpo célja a nyílt + forráskódú szoftverek + népszerûsítése üzleti + környezetben. Sok más hirdetõ között a + &os; is megjelenik itt. @@ -109,23 +137,25 @@ 2009 9 - 23 + 17 2009 9 - 24 + 19 - Svájc - Winterthur + Egyesült Királyság + Cambridge + Cambridge-i Egyetem - Az OpenExpo célja a nyílt - forráskódú szoftverek - népszerûsítése üzleti - környezetben. Sok más hirdetõ között a - &os; is megjelenik itt. + A kilencedik évente megrendezett európai + BSD konferenciát ezúttal az angliai Cambridge-ben + tartják 2009 szeptemberében. Tervezett programjai + között szerepel például egy szakmai + jellegû körbetekintés, több bemutató + és egy fejlesztõi gyûlés. From owner-p4-projects@FreeBSD.ORG Sun Aug 16 22:06:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 535F21065691; Sun, 16 Aug 2009 22:06: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 F3623106568D for ; Sun, 16 Aug 2009 22:06:16 +0000 (UTC) (envelope-from fabio@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E18AC8FC45 for ; Sun, 16 Aug 2009 22:06:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7GM6GYJ035925 for ; Sun, 16 Aug 2009 22:06:16 GMT (envelope-from fabio@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7GM6GZ6035923 for perforce@freebsd.org; Sun, 16 Aug 2009 22:06:16 GMT (envelope-from fabio@FreeBSD.org) Date: Sun, 16 Aug 2009 22:06:16 GMT Message-Id: <200908162206.n7GM6GZ6035923@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fabio@FreeBSD.org using -f From: Fabio Checconi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167421 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, 16 Aug 2009 22:06:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=167421 Change 167421 by fabio@fabio_granpasso on 2009/08/16 22:05:59 Resync with the private repo: (hopefully) safer proxy insertion/deletion, a new proportional share scheduler, revised heuristics. Affected files ... .. //depot/projects/soc2009/fabio_gsched/geom_sched/geom_sched.c#2 edit .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/g_sched.c#3 edit .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_bfq.c#1 add .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_rr.c#3 edit .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_scheduler.h#3 edit .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/Makefile#2 edit .. //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/gsched_bfq/Makefile#1 add Differences ... ==== //depot/projects/soc2009/fabio_gsched/geom_sched/geom_sched.c#2 (text+ko) ==== @@ -69,7 +69,7 @@ else reqalgo = algo; - snprintf(name, sizeof(name), "gsched_%s", algo); + snprintf(name, sizeof(name), "gsched_%s", reqalgo); /* * Do not complain about errors here, gctl_issue() * will fail anyway. ==== //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/g_sched.c#3 (text+ko) ==== @@ -410,7 +410,8 @@ } static void -g_sched_hash_fini(struct g_geom *gp, struct g_hash *hp, u_long mask) +g_sched_hash_fini(struct g_geom *gp, struct g_hash *hp, u_long mask, + struct g_gsched *gsp, void *data) { struct g_sched_class *cp, *cp2; int i; @@ -418,6 +419,9 @@ if (!hp) return; + if (data && gsp->gs_hash_unref) + gsp->gs_hash_unref(data); + for (i = 0; i < G_SCHED_HASH_SIZE; i++) { LIST_FOREACH_SAFE(cp, &hp[i], gsc_clist, cp2) g_sched_put_class(gp, cp->gsc_priv); @@ -468,58 +472,70 @@ * * Must be called with the gp mutex held and topology locked. */ -static void +static int g_sched_wait_pending(struct g_geom *gp) { struct g_sched_softc *sc = gp->softc; + int endticks = ticks + hz; g_topology_assert(); - while (sc->sc_pending) + while (sc->sc_pending && endticks - ticks >= 0) msleep(gp, &sc->sc_mtx, 0, "sched_wait_pending", hz / 4); + + return (sc->sc_pending ? ETIMEDOUT : 0); } -static void +static int g_sched_remove_locked(struct g_geom *gp, struct g_gsched *gsp) { struct g_sched_softc *sc = gp->softc; + int error; /* Set the flushing flag: new bios will not enter the scheduler. */ sc->sc_flags |= G_SCHED_FLUSHING; g_sched_forced_dispatch(gp); - g_sched_wait_pending(gp); - + error = g_sched_wait_pending(gp); + if (error) + goto failed; + /* No more requests pending or in flight from the old gsp. */ - g_sched_hash_fini(gp, sc->sc_hash, sc->sc_mask); + g_sched_hash_fini(gp, sc->sc_hash, sc->sc_mask, gsp, sc->sc_data); sc->sc_hash = NULL; /* - * XXX avoid deadlock here by releasing the gp mutex and - * reacquiring it once done. - * It should be safe, since no reconfiguration - * or destruction can take place due to the geom topology - * lock; no new request can use the current sc_data since - * we flagged the geom as being flushed. + * Avoid deadlock here by releasing the gp mutex and reacquiring + * it once done. It should be safe, since no reconfiguration or + * destruction can take place due to the geom topology lock; no + * new request can use the current sc_data since we flagged the + * geom as being flushed. */ g_sched_unlock(gp); gsp->gs_fini(sc->sc_data); g_sched_lock(gp); sc->sc_gsched = NULL; + sc->sc_data = NULL; + g_gsched_unref(gsp); + +failed: sc->sc_flags &= ~G_SCHED_FLUSHING; - g_gsched_unref(gsp); + return (error); } -static void +static int g_sched_remove(struct g_geom *gp, struct g_gsched *gsp) { + int error; g_sched_lock(gp); - g_sched_remove_locked(gp, gsp); /* gsp is surely non-null */ + error = g_sched_remove_locked(gp, gsp); /* gsp is surely non-null */ g_sched_unlock(gp); + + return (error); } /* @@ -607,6 +623,7 @@ struct g_gsched *gsp = parm->gup_gsp, *cur, *tmp; struct g_sched_softc *sc; struct g_geom *gp, *gp_tmp; + int error; parm->gup_error = 0; @@ -622,8 +639,11 @@ continue; /* Should not happen. */ sc = gp->softc; - if (sc->sc_gsched == gsp) - g_sched_remove(gp, gsp); + if (sc->sc_gsched == gsp) { + error = g_sched_remove(gp, gsp); + if (error) + goto failed; + } } LIST_FOREACH_SAFE(cur, &me.gs_scheds, glist, tmp) { @@ -647,6 +667,7 @@ parm->gup_error = ENOENT; } +failed: mtx_unlock(&me.gs_mtx); } @@ -878,6 +899,65 @@ mtx_unlock(&me.gs_mtx); } +static void +g_sched_flush_pending(g_start_t *start) +{ + struct bio *bp; + + while ((bp = gs_bioq_takefirst(&me.gs_pending))) + start(bp); +} + +static int +g_insert_proxy(struct g_geom *gp, struct g_provider *newpp, + struct g_geom *dstgp, struct g_provider *pp, struct g_consumer *cp) +{ + struct g_sched_softc *sc = gp->softc; + g_start_t *saved_start, *flush = g_sched_start; + int error = 0, endticks = ticks + hz; + + g_cancel_event(newpp); /* prevent taste() */ + /* copy private fields */ + newpp->private = pp->private; + newpp->index = pp->index; + + /* Queue all the early requests coming for us. */ + me.gs_npending = 0; + saved_start = pp->geom->start; + dstgp->start = g_sched_temporary_start; + + while (pp->nstart - pp->nend != me.gs_npending && + endticks - ticks >= 0) + tsleep(pp, PRIBIO, "-", hz/10); + + if (pp->nstart - pp->nend != me.gs_npending) { + flush = saved_start; + error = ETIMEDOUT; + goto fail; + } + + /* link pp to this geom */ + LIST_REMOVE(pp, provider); + pp->geom = gp; + LIST_INSERT_HEAD(&gp->provider, pp, provider); + + /* + * replicate the counts from the parent in the + * new provider and consumer nodes + */ + cp->acr = newpp->acr = pp->acr; + cp->acw = newpp->acw = pp->acw; + cp->ace = newpp->ace = pp->ace; + sc->sc_flags |= G_SCHED_PROXYING; + +fail: + dstgp->start = saved_start; + + g_sched_flush_pending(flush); + + return (error); +} + /* * Create a geom node for the device passed as *pp. * If successful, add a reference to this gsp. @@ -886,12 +966,10 @@ g_sched_create(struct gctl_req *req, struct g_class *mp, struct g_provider *pp, struct g_gsched *gsp, int proxy) { - struct g_sched_softc *sc; - struct g_geom *gp, *dst_gp; + struct g_sched_softc *sc = NULL; + struct g_geom *gp, *dstgp; struct g_provider *newpp = NULL; struct g_consumer *cp = NULL; - void (*saved_start)(struct bio *bp); - struct bio *bp; char name[64]; int error; @@ -907,7 +985,7 @@ } gp = g_new_geomf(mp, name); - dst_gp = proxy ? pp->geom : gp; /* where do we link the provider */ + dstgp = proxy ? pp->geom : gp; /* where do we link the provider */ if (gp == NULL) { gctl_error(req, "Cannot create geom %s.", name); error = ENOMEM; @@ -937,7 +1015,7 @@ gp->access = g_sched_access; gp->dumpconf = g_sched_dumpconf; - newpp = g_new_providerf(dst_gp, gp->name); + newpp = g_new_providerf(dstgp, gp->name); if (newpp == NULL) { gctl_error(req, "Cannot create provider %s.", name); error = ENOMEM; @@ -962,44 +1040,16 @@ goto fail; } - g_gsched_ref(gsp); - g_error_provider(newpp, 0); if (proxy) { - g_cancel_event(newpp); /* prevent taste() */ - /* copy private fields */ - newpp->private = pp->private; - newpp->index = pp->index; - - /* Queue all the early requests coming for us. */ - me.gs_npending = 0; - saved_start = pp->geom->start; - dst_gp->start = g_sched_temporary_start; - - while (pp->nstart - pp->nend != me.gs_npending) - tsleep(pp, PRIBIO, "-", hz/10); - - /* link pp to this geom */ - LIST_REMOVE(pp, provider); - pp->geom = gp; - LIST_INSERT_HEAD(&gp->provider, pp, provider); - - dst_gp->start = saved_start; - - /* - * replicate the counts from the parent in the - * new provider and consumer nodes - */ - cp->acr = newpp->acr = pp->acr; - cp->acw = newpp->acw = pp->acw; - cp->ace = newpp->ace = pp->ace; - sc->sc_flags |= G_SCHED_PROXYING; - - while ((bp = gs_bioq_takefirst(&me.gs_pending))) - g_sched_start(bp); + error = g_insert_proxy(gp, newpp, dstgp, pp, cp); + if (error) + goto fail; } G_SCHED_DEBUG(0, "Device %s created.", gp->name); + g_gsched_ref(gsp); + return (0); fail: @@ -1012,13 +1062,14 @@ if (newpp != NULL) g_destroy_provider(newpp); - if (pp->geom == gp) { - /* Link pp back to the original geom */ - LIST_REMOVE(pp, provider); - pp->geom = dst_gp; - LIST_INSERT_HEAD(&pp->geom->provider, pp, provider); + if (sc && sc->sc_hash) { + g_sched_hash_fini(gp, sc->sc_hash, sc->sc_mask, + gsp, sc->sc_data); } + if (sc && sc->sc_data) + gsp->gs_fini(sc->sc_data); + if (gp != NULL) { if (gp->softc != NULL) g_free(gp->softc); @@ -1043,6 +1094,7 @@ struct g_hash *newh; void *data; u_long mask; + int error = 0; gp = pp->geom; sc = gp->softc; @@ -1052,14 +1104,18 @@ return (ENOMEM); newh = g_sched_hash_init(gsp, &mask, HASH_WAITOK); - if (gsp->gs_priv_size && newh == NULL) { - gsp->gs_fini(data); - return (ENOMEM); + if (gsp->gs_priv_size && !newh) { + error = ENOMEM; + goto fail; } g_sched_lock(gp); - if (sc->sc_gsched) /* can be NULL in some cases */ - g_sched_remove_locked(gp, sc->sc_gsched); + if (sc->sc_gsched) { /* can be NULL in some cases */ + error = g_sched_remove_locked(gp, sc->sc_gsched); + if (error) + goto fail; + } + g_gsched_ref(gsp); sc->sc_gsched = gsp; sc->sc_data = data; @@ -1069,8 +1125,23 @@ g_sched_unlock(gp); return (0); + +fail: + if (newh) + g_sched_hash_fini(gp, newh, mask, gsp, data); + + if (data) + gsp->gs_fini(data); + + g_sched_unlock(gp); + + return (error); } +/* + * Stop the request flow directed to the proxy, redirecting the new + * requests to the me.gs_pending queue. + */ static struct g_provider * g_detach_proxy(struct g_geom *gp) { @@ -1091,13 +1162,6 @@ me.gs_npending = 0; pp->geom->start = g_sched_temporary_start; - /* Link provider to the original geom. */ - LIST_REMOVE(pp, provider); - pp->private = newpp->private; - pp->index = newpp->index; - pp->geom = newpp->geom; - LIST_INSERT_HEAD(&pp->geom->provider, pp, provider); - return (pp); } while (0); printf("%s error detaching proxy %s\n", __FUNCTION__, gp->name); @@ -1106,11 +1170,51 @@ } static void -g_destroy_proxy(struct g_geom *gp, struct g_provider *old_pp) +g_sched_blackhole(struct bio *bp) +{ + + g_io_deliver(bp, ENXIO); +} + +static inline void +g_reparent_provider(struct g_provider *pp, struct g_geom *gp, + struct g_provider *newpp) +{ + + LIST_REMOVE(pp, provider); + if (newpp) { + pp->private = newpp->private; + pp->index = newpp->index; + } + pp->geom = gp; + LIST_INSERT_HEAD(&gp->provider, pp, provider); +} + +static inline void +g_unproxy_provider(struct g_provider *oldpp, struct g_provider *newpp) +{ + struct g_geom *gp = oldpp->geom; + + g_reparent_provider(oldpp, newpp->geom, newpp); + + /* + * Hackish: let the system destroy the old provider for us, just + * in case someone attached a consumer to it, in which case a + * direct call to g_destroy_provider() would not work. + */ + g_reparent_provider(newpp, gp, NULL); +} + +/* + * Complete the proxy destruction, linking the old provider to its + * original geom, and destroying the proxy provider. Also take care + * of issuing the pending requests collected in me.gs_pending (if any). + */ +static int +g_destroy_proxy(struct g_geom *gp, struct g_provider *oldpp) { struct g_consumer *cp; struct g_provider *newpp; - struct bio *bp; do { cp = LIST_FIRST(&gp->consumer); @@ -1119,52 +1223,58 @@ newpp = cp->provider; if (newpp == NULL) break; - /* detach consumer from provider, and destroy provider. */ + + /* Relink the provider to its original geom. */ + g_unproxy_provider(oldpp, newpp); + + /* Detach consumer from provider, and destroy provider. */ cp->acr = newpp->acr = 0; cp->acw = newpp->acw = 0; cp->ace = newpp->ace = 0; g_detach(cp); - printf("destroying provider %s\n", newpp->name); - g_destroy_provider(newpp); - while ((bp = gs_bioq_takefirst(&me.gs_pending))) - old_pp->geom->start(bp); + /* Send the pending bios through the right start function. */ + g_sched_flush_pending(oldpp->geom->start); - return; + return (0); } while (0); printf("%s error destroying proxy %s\n", __FUNCTION__, gp->name); + + /* We cannot send the pending bios anywhere... */ + g_sched_flush_pending(g_sched_blackhole); + + return (EINVAL); } static int g_sched_destroy(struct g_geom *gp, boolean_t force) { - struct g_provider *pp, *old_pp = NULL; + struct g_provider *pp, *oldpp = NULL; struct g_sched_softc *sc; struct g_gsched *gsp; + int error; g_topology_assert(); sc = gp->softc; if (sc == NULL) return (ENXIO); - if ((sc->sc_flags & G_SCHED_PROXYING)) { - old_pp = g_detach_proxy(gp); - goto flush; - } - pp = LIST_FIRST(&gp->provider); - if (pp && (pp->acr != 0 || pp->acw != 0 || pp->ace != 0)) { - const char *msg = force ? - "but we force removal" : "cannot remove"; + if (!(sc->sc_flags & G_SCHED_PROXYING)) { + pp = LIST_FIRST(&gp->provider); + if (pp && (pp->acr != 0 || pp->acw != 0 || pp->ace != 0)) { + const char *msg = force ? + "but we force removal" : "cannot remove"; - G_SCHED_DEBUG(!force, - "Device %s is still open (r%dw%de%d), %s.", - pp->name, pp->acr, pp->acw, pp->ace, msg); - if (!force) - return (EBUSY); - } else { - G_SCHED_DEBUG(0, "Device %s removed.", gp->name); - } + G_SCHED_DEBUG(!force, + "Device %s is still open (r%dw%de%d), %s.", + pp->name, pp->acr, pp->acw, pp->ace, msg); + if (!force) + return (EBUSY); + } else { + G_SCHED_DEBUG(0, "Device %s removed.", gp->name); + } + } else + oldpp = g_detach_proxy(gp); -flush: gsp = sc->sc_gsched; if (gsp) { /* @@ -1174,26 +1284,69 @@ */ g_sched_lock(gp); /* - * We are dying here, no new request should enter + * We are dying here, no new requests should enter * the scheduler. This is granted by the topolgy, - * either in case we were proxying (the provider we - * stole now returned home) or not (see the access - * check above). + * either in case we were proxying (new bios are + * being redirected) or not (see the access check + * above). */ g_sched_forced_dispatch(gp); - g_sched_wait_pending(gp); + error = g_sched_wait_pending(gp); + + if (error) { + /* + * Not all the requests came home: this might happen + * under heavy load, or if we were waiting for any + * bio which is served in the event path (see + * geom_slice.c for an example of how this can + * happen). Try to restore a working configuration + * if we can fail. + */ + if ((sc->sc_flags & G_SCHED_PROXYING) && oldpp) { + g_sched_flush_pending(force ? + g_sched_blackhole : g_sched_start); + } + + /* + * In the forced destroy case there is not so much + * we can do, we have pending bios that will call + * g_sched_done() somehow, and we don't want them + * to crash the system using freed memory. We tell + * the user that something went wrong, and leak some + * memory here. + * Note: the callers using force = 1 ignore the + * return value. + */ + if (force) { + G_SCHED_DEBUG(0, "Pending requests while " + " destroying geom, some memory leaked."); + } + + return (error); + } + g_sched_unlock(gp); - - g_sched_hash_fini(gp, sc->sc_hash, sc->sc_mask); + g_sched_hash_fini(gp, sc->sc_hash, sc->sc_mask, + gsp, sc->sc_data); sc->sc_hash = NULL; - gsp->gs_fini(sc->sc_data); - g_gsched_unref(gsp); + sc->sc_gsched = NULL; } - if ((sc->sc_flags & G_SCHED_PROXYING) && old_pp) - g_destroy_proxy(gp, old_pp); + if ((sc->sc_flags & G_SCHED_PROXYING) && oldpp) { + error = g_destroy_proxy(gp, oldpp); + + if (error) { + if (force) { + G_SCHED_DEBUG(0, "Unrecoverable error while " + "destroying a proxy geom, leaking some " + " memory."); + } + + return (error); + } + } mtx_destroy(&sc->sc_mtx); @@ -1201,7 +1354,7 @@ gp->softc = NULL; g_wither_geom(gp, ENXIO); - return (0); + return (error); } static int @@ -1372,7 +1525,7 @@ g_ioreq_restore(); } -#else /* !HAVE_BIO_CLASSIFIER */ +#else /* HAVE_BIO_CLASSIFIER */ static int g_sched_tag(void *arg, struct bio *bp) { ==== //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_rr.c#3 (text+ko) ==== @@ -96,6 +96,8 @@ struct g_savg q_thinktime; /* Thinktime average. */ struct g_savg q_seekdist; /* Seek distance average. */ + int q_bionum; /* Number of requests. */ + off_t q_lastoff; /* Last submitted req. offset. */ int q_lastsub; /* Last submitted req. time. */ @@ -182,7 +184,7 @@ .sc_head = LIST_HEAD_INITIALIZER(&me.sc_head), .w_anticipate = 1, .queue_depth = { 1, 1, 50 }, - .wait_ms = { 1, 5, 30 }, + .wait_ms = { 1, 10, 30 }, .quantum_ms = { 1, 100, 500 }, .quantum_kb = { 16, 8192, 65536 }, }; @@ -375,14 +377,14 @@ return (0); if (g_savg_valid(&qp->q_seekdist) && - g_savg_read(&qp->q_seekdist) > 2048) + g_savg_read(&qp->q_seekdist) > 8192) return (0); return (1); } /* - * called on a request arrival, timeout or completion. + * Called on a request arrival, timeout or completion. * Try to serve a request among those queued. */ static struct bio * @@ -468,7 +470,7 @@ sc->sc_active = NULL; } } - /* if sc_active != NULL, its q_status is always correct */ + /* If sc_active != NULL, its q_status is always correct. */ sc->sc_in_flight++; @@ -480,9 +482,13 @@ { int delta = ticks - qp->q_lastsub, wait = get_bounded(&me.wait_ms, 2); + if (qp->q_sc->sc_active != qp) + return; + qp->q_lastsub = ticks; delta = (delta > 2 * wait) ? 2 * wait : delta; - g_savg_add_sample(&qp->q_thinktime, delta); + if (qp->q_bionum > 7) + g_savg_add_sample(&qp->q_thinktime, delta); } static inline void @@ -495,8 +501,13 @@ else dist = bp->bio_offset - qp->q_lastoff; + if (dist > (8192 * 8)) + dist = 8192 * 8; + qp->q_lastoff = bp->bio_offset + bp->bio_length; - g_savg_add_sample(&qp->q_seekdist, qp->q_seekdist.gs_smpl ? dist : 0); + + if (qp->q_bionum > 7) + g_savg_add_sample(&qp->q_seekdist, dist); } /* @@ -536,6 +547,8 @@ } } + qp->q_bionum = 1 + qp->q_bionum - (qp->q_bionum >> 3); + g_rr_update_thinktime(qp); g_rr_update_seekdist(qp, bp); ==== //depot/projects/soc2009/fabio_gsched/geom_sched/sys/geom/sched/gs_scheduler.h#3 (text+ko) ==== @@ -79,6 +79,10 @@ * * gs_init_class() is called when a new client (as determined by * the classifier) starts being used. + * + * gs_hash_unref() is called right before the class hashtable is + * destroyed; after this call, the scheduler is supposed to hold no + * more references to the elements in the table. */ /* Forward declarations for prototypes. */ @@ -92,6 +96,7 @@ typedef struct bio *gs_next_t (void *data, int force); typedef int gs_init_class_t (void *data, void *priv); typedef void gs_fini_class_t (void *data, void *priv); +typedef void gs_hash_unref_t (void *data); struct g_gsched { const char *gs_name; @@ -107,6 +112,7 @@ gs_init_class_t *gs_init_class; gs_fini_class_t *gs_fini_class; + gs_hash_unref_t *gs_hash_unref; LIST_ENTRY(g_gsched) glist; }; ==== //depot/projects/soc2009/fabio_gsched/geom_sched/sys/modules/geom/geom_sched/Makefile#2 (text+ko) ==== @@ -1,6 +1,6 @@ # $FreeBSD: $ -SUBDIR= gs_sched gsched_as gsched_rr +SUBDIR= gs_sched gsched_as gsched_rr gsched_bfq .if defined(WITH_SSD) SUBDIR += gsched_ssd .endif From owner-p4-projects@FreeBSD.ORG Mon Aug 17 06:50:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B399B1065690; Mon, 17 Aug 2009 06:50:57 +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 5F2B7106568F for ; Mon, 17 Aug 2009 06:50:57 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4CF298FC5B for ; Mon, 17 Aug 2009 06:50:57 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7H6ovH8003068 for ; Mon, 17 Aug 2009 06:50:57 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7H6ovNw003066 for perforce@freebsd.org; Mon, 17 Aug 2009 06:50:57 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 17 Aug 2009 06:50:57 GMT Message-Id: <200908170650.n7H6ovNw003066@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 167424 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, 17 Aug 2009 06:50:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167424 Change 167424 by zjriggl@zjriggl_tcpregression on 2009/08/17 06:50:01 Final commit for SoC. Everything should work after this. I'm gonna download it all into my FreeBSD VM and make sure the tests run. Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/CHANGES#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/LICENSE#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/Makefile#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/README#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/pcap.pyx#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/pcap_ex.c#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/pcap_ex.h#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/setup.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/tests/__init__.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/tests/packetFilterTest.pcap#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/tests/test.pcap#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/tests/testPcap.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/pcap/testsniff.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/echoServer.py#6 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/CHANGES#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/README#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/StringField.py#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.py#10 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/backup.tar#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/hwAddress.py#5 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/hwaddress.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/ipAddress.py#7 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/ipaddress.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/networkPort.py#6 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/networkport.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/payload.py#5 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/pseudoipv4.py#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/segmentBuffer.py#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/segmentbuffer.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/sequence.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/sniffLocalhost.py#6 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpConstructor.py#7 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpFilter.py#8 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpconstructor.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpfilter.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#10 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/test.html#6 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/test.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/__init__.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/echoclient.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/echoserver.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/logging.conf#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/segmentBufferTest.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/tcpFilterTest.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/test.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/testSequence.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/testStates.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/testTcpConstructor.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/testTcpHandshake.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tests/testTcpStateMachine.py#1 add Differences ... ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.py#10 (text+ko) ==== @@ -4,6 +4,7 @@ import socket import sys import re +import binascii from pcs.packets.ipv4 import ipv4 from pcs.packets.tcp import tcp from pcs.packets.tcpv6 import tcpv6 @@ -37,4 +38,3 @@ x = re.sub( octet, r"\1 ", x ) x = re.sub( twoBytes, r"\1\n", x ) return x - ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/sequence.py#2 (text+ko) ==== @@ -5,55 +5,69 @@ ''' from pcsextension import findTcpLayer -def seq(x): +def seq( x ): # It is essential to remember that the actual sequence number space is # finite, though very large. This space ranges from 0 to 2**32 - 1. # Since the space is finite, all arithmetic dealing with sequence # numbers must be performed modulo 2**32. This unsigned arithmetic # preserves the relationship of sequence numbers as they cycle from # 2**32 - 1 to 0 again. - return x % (2**32) + return x % ( 2 ** 32 ) -class sequenced(str): +class Sequenced( str ): ''' This class exists to encapsulate sequenced items in the TCP stream. Each byte (octet) is assigned a sequence number, as is the original SYN and final - FIN. + FIN. + + Raw data CAN be encapsulated in a Sequenced object, but doing so will use + additional memory and is not necessary. The Sequenced class should only + be used to denote special sequences that have either the SYN or FIN bits + set (each of which can have the ACK bits set). + + For example, a data stream may look like the following... + + Client + [SYN] datadatadatadata + [SYN\ACK] + Server ''' syn = False fin = False ack = False - - def __new__(cls, data='', syn=False, fin=False, ack=True): - # New has to be used, because the str type is immutable. - if len(data) == 0: - if syn: - data += "[SYN]" - if fin: - data += "[FIN]" - if ack: - data += "[ACK]" - - obj = super( sequenced, cls).__new__( sequenced, data or "" ) + + # New has to be used, because the str type is immutable. + def __new__( cls, syn = False, fin = False, ack = False ): + + # Don't overwrite any user-provided data. + data = '' + if syn and not ack: + data += "[SYN]" + elif fin and not ack: + data += "[FIN]" + elif syn and ack: + data += "[SYN\ACK]" + elif fin and ack: + data += "[FIN\ACK]" + + # Check for invalid flag combos. + if ack and not ( syn or fin ): + raise Warning, "The 'ack' bit should not be set by itself. This is not " \ + "the intended use of the class Sequenced." + if not ( syn or ack or fin ): + raise Warning, "Did not set any flags." + + obj = super( Sequenced, cls ).__new__( Sequenced, data or "" ) + + # The below statements allow us to use True/False or 1/0 or any other + # expression that can be evaluated to a boolean. obj.syn = True if syn else False obj.ack = True if ack else False obj.fin = True if fin else False - return obj - -def makeSequenced(packet): - - t = findTcpLayer(packet) - - if t.syn or t.fin: - return [sequenced(syn=t.syn, ack=t.ack, fin=t.fin)] - elif t.data is not None: - return [sequenced(byte,ack=t.ack) for byte in t.data] - - return [] - + return obj # Special cases defined here for convenience... -seq_syn = sequenced(syn=True,ack=False) -seq_synack = sequenced(syn=True,ack=True) -seq_fin = sequenced(fin=True,ack=False) -seq_finack = sequenced(fin=True,ack=True)+seq_syn = Sequenced( syn = True, ack = False ) +seq_synack = Sequenced( syn = True, ack = True ) +seq_fin = Sequenced( fin = True, ack = False ) +seq_finack = Sequenced( fin = True, ack = True ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstatemachine.py#10 (text+ko) ==== @@ -9,20 +9,20 @@ from pcsextension import findTcpLayer from pcsextension.checksum import tcpChecksum from pcsextension.decorators import prop, validateTypes, uint16, uint32, synchronized -from pcsextension.hwAddress import HwAddress -from pcsextension.ipAddress import IpAddress -from pcsextension.networkPort import NetworkPort -from segmentBuffer import segmentBuffer -from sequence import seq, sequenced, makeSequenced, seq_fin, seq_finack, seq_syn, seq_synack -from tcpConstructor import tcpConstructor -from tcpFilter import tcpFilter +from pcsextension.hwaddress import HwAddress +from pcsextension.ipaddress import IpAddress +from pcsextension.networkport import NetworkPort +from segmentbuffer import SegmentBuffer +from sequence import seq, Sequenced, seq_fin, seq_finack, seq_syn, seq_synack +from tcpconstructor import tcpConstructor +from tcpfilter import TcpFilter from tcprecvdaemon import TcpRecvDaemon from tcpsenddaemon import TcpSendDaemon from tcpstates import CLOSE_WAIT, CLOSED, CLOSING, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, \ LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SENT, TIME_WAIT, TcpState, synchronizedStates, tcpStates from time import time from threading import RLock -import pcap +import pcs.pcap as pcap import pcs import testconfig import time @@ -116,12 +116,59 @@ 3 ''' - __constructor = tcpConstructor() - __connector = tcpFilter( testconfig.interface ) + __constructor = None + __tcpFilter = None __recvThread = None __sendThread = None lock = RLock() + sendLock = RLock() + recvLock = RLock() + + def __init__( self, localhost = ( testconfig.localIP, testconfig.localPort ), + remotehost = ( testconfig.remoteIP, testconfig.remotePort ) ): + ''' + Initialize the TCP State Machine. The information for the local host and the + remote host must be provided as a 2 - tuple, a string and an integer. + + Example: + >>> t = TcpStateMachine( ( "127.0.0.1", 10000 ), ( "192.168.0.1", 80 ) ) + ''' + # Required objects. + # self.lock = RLock() + self.__constructor = tcpConstructor() + self.__tcpFilter = TcpFilter( testconfig.interface ) + self._inboundSequences = SegmentBuffer() + self._outboundSequences = SegmentBuffer() + + # Logger + self.log = tcplog( self ) + self.log.debug( "(%s, %s)" % ( localhost, remotehost ) ) + + # Set IP and host + if validateTypes( {localhost: tuple} ) and len( localhost ) == 2: + self._localIP = IpAddress( localhost[0] ) + self._localPort = NetworkPort( localhost[1] ) + self.log.info( 'Local host: %s:%i' % ( self.localIP.getAscii(), self.localPort.getInteger() ) ) + + if validateTypes( {remotehost: tuple} ) and len( remotehost ) == 2: + self._remoteIP = IpAddress( remotehost[0] ) + self._remotePort = NetworkPort( remotehost[1] ) + self.log.info( 'Remote host: %s:%i' % ( self.remoteIP.getAscii(), self.remotePort.getInteger() ) ) + + # Set loopback mode + if self.remoteIP == self.localIP or \ + testconfig.interface in self.loopbackInterfaces: + + # If the user didn't specify a loopback interface, print a warning. + if testconfig.interface not in self.loopbackInterfaces: + self.log.warn( 'Automatically setting loopback mode to \'True\'' ) + + self.setLoopback( True ) + + # Reset the internal state. + self.reset() + # @uint32 @prop def snd_nxt(): @@ -202,7 +249,7 @@ self.inboundSequences.base = irs self.inboundSequences = [] del self.inboundSequences[:] - # self.inboundSequences = segmentBuffer([], irs, self.inboundSequences.limit) + # self.inboundSequences = SegmentBuffer([], irs, self.inboundSequences.limit) # self.inboundSequences.base = irs # @uint32 @@ -249,20 +296,29 @@ _remoteEthernet = HwAddress( default = testconfig.remoteMAC ) @prop - def localIP(): '''Local IP address.''' - _localIP = IpAddress( default = testconfig.localIP ) + def localIP(): + '''Local IP address.''' + return {'fset': lambda self, x: self.localIP.set( x ) } @prop - def remoteIP(): '''Remote IP address.''' - _remoteIP = IpAddress( default = testconfig.remoteIP ) + def remoteIP(): + '''Remote IP address.''' + return {'fset': lambda self, x: self.remoteIP.set( x ) } @prop - def localPort(): '''Local port.''' - _localPort = NetworkPort( default = testconfig.localPort ) + def localPort(): + '''Local port.''' + return {'fset': lambda self, x: self.localPort.set( x ) } @prop - def remotePort(): '''Remote port.''' - _remotePort = NetworkPort( default = testconfig.remotePort ) + def remotePort(): + '''Remote port.''' + return {'fset': lambda self, x: self.remotePort.set( x ) } + + def setRemotePort( self, x ): + import traceback + traceback.print_stack() + self._remotePort = x @prop def userTimer(): ''' User timeout timer ''' @@ -274,21 +330,21 @@ # Interface is actually a shortcut to the connector's interface field, # which is itself a property. Setting a TcpStateMachine's interface will - # effectively trigger the tcpFilter object to switch interfaces to the + # effectively trigger the TcpFilter object to switch interfaces to the # specified interface. @prop def interface(): '''Interface to use for sending/recving data''' - return {'fget': lambda self: self.__connector.interface, - 'fset': lambda self, x: setattr( self.__connector, 'interface', x )} + return {'fget': lambda self: self.__tcpFilter.interface, + 'fset': lambda self, x: setattr( self.__tcpFilter, 'interface', x )} def getConnector( self ): ''' Retrieves the connector used to send and receive packets. Note: The name 'connector' is simply for consistency. The object that is - returned is actually a tcpFilter object. + returned is actually a TcpFilter object. ''' - return self.__connector + return self.__tcpFilter def setLoopback( self, lb = True ): ''' @@ -346,42 +402,12 @@ tcp.f_window: True, tcp.f_urg_pointer: True } - @prop - def validate(): - ''' - Dictionary of fields to be validated. Non - valid packets are dropped, non - valid - settings throw an error. Accepted Values: - %s - Incoming packet TCP Checksum - %s - Incoming packet TCP Sequence Number - %s - Incoming packet TCP Ack number - %s - TCP State Machine transition - ''' - _validate = { tcp.f_checksum: True, - tcp.f_sequence: True, - tcp.f_ack_number: True, - #tcp.f_sport: True, - #tcp.f_dport: True, - 'transition': True } - def generateISS( self ): ''' Generates a new Initial Sequence Number (ISS). ''' return seq( random.randint( 0, ( 1 << 32 ) - 1 ) ) -# def _updateSegmentBuffer(self, newBuffer, oldBuffer): -# # If it's the same object, just return it. -# if newBuffer is oldBuffer: -# return segmentBuffer -# -# # If it is not of the correct type, make it into a segment buffer, -# # preserving the current base and max. -# if type(newBuffer) is not segmentBuffer: -# return segmentBuffer(newBuffer, base=oldBuffer.base, max=oldBuffer.max) -# -# # If it is the correct type, but is just a new buffer, assign it. -# return newBuffer - @prop def outboundSequences(): ''' @@ -399,7 +425,6 @@ sequence number overflows 2**32. ''' return {'fset': lambda self, x: self.outboundSequences.update( x ) } - _outboundSequences = segmentBuffer() @prop def inboundSequences(): @@ -408,7 +433,6 @@ @see outboundSequences for more information. ''' return { 'fset': lambda self, x: self.inboundSequences.update( x ) } - _inboundSequences = segmentBuffer() @prop def retransmissionQ(): @@ -424,11 +448,24 @@ Note that this buffer will explicitly exclude all SYN and FIN sequences. @see inboundSequences ''' - return {'fget': - lambda self: - [octet for octet in self.inboundSequences[seq( self.recvBufferOffset + self.irs ):] \ - if type( octet ) != sequenced or not ( octet.syn or octet.ack ) ] - } + return {'fget': lambda self: [octet for octet in self.inboundSequences ] } + + # Old version didn't work, because Sequenced objects would go into inboundSequences. + # This would, in turn, cause a single byte to be received twice once the buffer + # was incremented, because the number of bytes that were incremented would not + # take into account the SYN or SYN/ACK at the beginning of the buffer that did not + # get returned by recvBuffer + #[octet for octet in self.inboundSequences[seq( self.recvBufferOffset + self.irs ):] \ + # if type( octet ) != Sequenced or not ( octet.syn or octet.ack ) ] + + + def getRecvBuffer( self ): + print "%i bytes in inboundSequences" % len( self.inboundSequences ) + print "IRS: %i Rcv Offset: %i" % ( self.irs, self.recvBufferOffset ) + return [octet for octet in self.inboundSequences ] + # if type( octet ) != Sequenced or not ( octet.syn or octet.ack ) ] + + @prop def recvBufferOffset(): @@ -491,7 +528,6 @@ def __str__( self ): ''' Prints out the annotated status. - ''' statusNames = ['local socket', 'foreign socket', @@ -559,6 +595,8 @@ Close the socket connection. This is synonymous with the 'close' function used by normal UNIX sockets. ''' + self.log.info( "Closing connection" ) + #CLOSED STATE (i.e., TCB does not exist) if self.state is CLOSED: # If the user does not have access to such a connection, return @@ -587,13 +625,13 @@ # then form a FIN segment and send it, and enter FIN-WAIT-1 state; # otherwise queue for processing after entering ESTABLISHED state. if self.snd_una == self.snd_nxt: - self.outboundSequences += [seq_fin] #sequenced(fin=1)] + self.outboundSequences += [seq_fin] #Sequenced(fin=1)] #ESTABLISHED STATE elif self.state is ESTABLISHED: # Queue this until all preceding SENDs have been segmentized, then # form a FIN segment and send it. In any case, enter FIN-WAIT-1 # state. - self.outboundSequences += [seq_fin]# sequenced(fin=1)] + self.outboundSequences += [seq_fin]# Sequenced(fin=1)] self.state = FIN_WAIT_1 #FIN-WAIT-1 STATE @@ -609,7 +647,7 @@ elif self.state is CLOSE_WAIT: # Queue this request until all preceding SENDs have been # segmentized; then send a FIN segment, enter CLOSING state. - self.outboundSequences += [seq_fin] #sequenced(fin=1)] + self.outboundSequences += [seq_fin] #Sequenced(fin=1)] #CLOSING STATE #LAST-ACK STATE @@ -658,7 +696,7 @@ # snd_una is automatically handled # self.snd_una = self.iss self.state = SYN_SENT - self.outboundSequences = [seq_syn]# sequenced(syn=True)] + self.outboundSequences = [seq_syn]# Sequenced(syn=True)] self.__sendThread.timeout.trigger() # SNX_NXT is automatically incremented @@ -721,11 +759,12 @@ del self.outboundSequences[:] del self.inboundSequences[:] + self.recvBufferOffset = 0 # self.recvBufferOffset = 0 self.state = CLOSED - @synchronized( lock ) +# @synchronized( sendLock ) def sendPacket( self, packet ): ''' Inform the TCP State Machine about packets that have been transmitted. @@ -746,7 +785,7 @@ # Check for a syn if seg.syn: self.iss = seg.sequence - self.outboundSequences += [sequenced( syn = seg.syn, ack = seg.ack )] + self.outboundSequences += [Sequenced( syn = seg.syn, ack = seg.ack )] if self.state is CLOSED or ( self.state is LISTEN and not seg.ack ): self.state = SYN_SENT @@ -755,17 +794,21 @@ # Check for other data if seg.data is not None: - self.outboundSequences += [sequenced( octet ) for octet in seg.data] + # It is unnecessary to use the Sequenced class on raw data. It + # provides no extra utility, and simply causes excess memory usage. + # self.outboundSequences += [Sequenced( octet ) for octet in seg.data] + self.outboundSequences += [octet for octet in seg.data] # Check for a fin if seg.fin: - self.outboundSequences += [sequenced( fin = seg.fin, ack = seg.ack )] + self.outboundSequences += [Sequenced( fin = seg.fin, ack = seg.ack )] if self.state == ESTABLISHED: self.state = FIN_WAIT_1 self.__sendThread.timeout.trigger() +# @synchronized( recvLock ) def recvRawTcp( self, block = True ): ''' Receives a single packet off of the interface that is destined for @@ -773,11 +816,12 @@ @param block: Set to True to block until a packet is available. ''' - rv = self.__connector.readFilteredByTuple( self.localIP, self.localPort, block ) + rv = self.__tcpFilter.read() if rv is not None: return findTcpLayer( rv ) return rv +# @synchronized( sendLock ) def sendRawTcp( self, tcpLayer ): ''' Packages the provided TCP packet and payload inside of the appropriate @@ -788,17 +832,20 @@ ''' # self.log.debug( repr( tcpLayer ) ) + self.log.debug( 'In sendRawTcp()' ) if not validateTypes( {tcpLayer:tcp.tcp} ): + self.log.error( "tcpLayer was incorrect type: %s" % type( tcpLayer ) ) return + # self.__socket.sendto(tcpLayer.chain().bytes, (self.remoteIP().getAscii(),self.remotePort().getAscii())) - # self.__socket.sendto(tcpLayer.chain().bytes, (self.remoteIP().getAscii(),self.remotePort().getAscii())) chain = self.__constructor.generateChain( tcpLayer ) + self.log.debug( 'Built chain' ) self.log.pktsent( repr ( tcpLayer.chain() ) ) - self.__connector.write( chain.bytes ) + self.__tcpFilter.write( chain.bytes ) pass - @synchronized( lock ) +# @synchronized( sendLock ) def send( self, data, async = False ): ''' Sends the specified data. @@ -810,24 +857,28 @@ Optionally send asynchronously. Do not wait for acknowledgement. ''' if not validateTypes( {data:str} ): - return - 1 + self.log.error( 'Can only send strings' ) + return ( -1 ) if self.state == CLOSED: self.log.error( 'connection does not exist' ) - return - 1 + return ( -1 ) if self.state == LISTEN: + self.log.info( 'attempted send() on LISTENing connection.'\ + ' performing active-open' ) self.open() if self.state in ( SYN_RECEIVED, SYN_SENT ): # Queue the data for send if we are not in the connected state. + self.log.debug( 'Added %i bytes to the outboundSequences queue' % len( data ) ) self.outboundSequences += [x for x in data] if self.state in ( ESTABLISHED, CLOSE_WAIT ): # Add the data to the outbound buffer. firstSeq = self.snd_nxt - self.outboundSequences += [sequenced( octet ) for octet in data] + self.outboundSequences += [octet for octet in data] # [Sequenced(octed) for octed in data] lastSeq = self.snd_nxt - 1 # Break the data up into MSS-sized chunks @@ -840,23 +891,29 @@ pkt = self.newPacket( {tcp.f_data: payload.payload( chunk ), tcp.f_sequence: sequence } ) - self.sendPacket( pkt ) + self.sendRawTcp( pkt ) sequence += len( chunk ) + # If packet auto-processing has been disabled and the call is + # blocking, this could lead to a deadlock. + if not async and not self.processPacketsOnArrival: + self.log.warn( 'Performed blocking send with processPacketsOnArrival disabled.' \ + ' This can lead to a deadlock situation because ACKs may not ' \ + 'be received and processed.' ) + # This is a blocking call, we must wait until all of the data has # been acknowledged. if not async: timer( 5.0, lambda: self.snd_una > lastSeq ).wait() - #timeout = timer(timeout=5) - #while (not async) and (self.snd_una <= lastSeq) and not timeout.expired: - # time.sleep(0.01) - return len( pkt.data ) elif self.state in ( FIN_WAIT_1, FIN_WAIT_2, CLOSING, LAST_ACK, TIME_WAIT ): self.log.error( 'connection closing' ) return - 1 + + self.__sendThread.timeout.trigger() + def logGenerated( self, packet = None, fieldname = None ): ''' Helper method to log generated field data. @@ -982,7 +1039,7 @@ tcp.f_ack_number: self.rcv_nxt, tcp.f_ack: 1} - print "Sending ack: {seq: %i, ack: %i, ack#: %i}" % ( self.snd_nxt, 1, self.rcv_nxt ) + self.log.debug( "Sending ack: {seq: %i, ack: %i, ack#: %i}" % ( self.snd_nxt, 1, self.rcv_nxt ) ) if fields is not None: ackFields.update( fields ) @@ -1032,8 +1089,8 @@ return packet - @synchronized( lock ) - def recv( self, numOctets = 4096, delay = 120 ): +# @synchronized( recvLock ) + def recv( self, numOctets = 4096, timeout = 120, fillBuffer = False ): ''' Returns *up to* numOctets octets of data. Returns the octets as a string. @@ -1042,28 +1099,50 @@ @param numOctets: Maximum number of octets to get. (Default 4096) - @param delay: + @param timeout: Maximum amount of time, in seconds, to wait for data to be available. (Default 2 minutes) + @param fillBuffer: + Attempt to fill the buffer within the timeout, instead of returning + immediately when data is available. Return when the timeout expires + or when the numOctets octest have been read. @return: Returns the octets as a string, or None if no octets were available before the operation timed out. ''' - t = timer( delay ) - while len( self.recvBuffer ) == 0 and not t.expired: - time.sleep( 0.05 ) + t = timer( timeout ) + octets = [] + + # Keep looping until [1] we have received data or [2] we have filled the + # buffer, with the condition that looping will stop *immediately* when + # the timer expires. + while ( ( len( octets ) == 0 and len( octets ) < numOctets ) or \ + ( fillBuffer and len( octets ) < numOctets ) ) and \ + not t.expired: + + # Are there any bytes? Append them to octets. + if len( self.recvBuffer ) > 0: + # self.log.debug( 'Recv buffer has %i octets' % len( self.recvBuffer ) ) + # What is our length now? We need to know this for below. + lengthBefore = len( octets ) + + # Append the octets + octets += self.recvBuffer[:numOctets - len( octets )] - if len( self.recvBuffer ) > 0: - octets = self.recvBuffer[:numOctets] - self.recvBufferOffset += len( octets ) + # Increment recvBufferOffset by the number of octets received + # during just this one pass. + self.recvBufferOffset += ( len( octets ) - lengthBefore ) + else: + time.sleep( 0.01 ) + if len( octets ) > 0: return ''.join( octets ) - else: - return None + + return None - @synchronized( lock ) +# @synchronized( recvLock ) def recvPacket( self, packet = None, timeout = None ): ''' Get the next packet that has been received. Packets are guaranteed @@ -1080,7 +1159,7 @@ self.log.error( "Use segmentArrives(packet)" ) raise DeprecationWarning - @synchronized( lock ) +# @synchronized( recvLock ) def segmentArrives( self, packet = None ): ''' Inform the TCP State Machine about packets that have been received. @@ -1092,7 +1171,7 @@ # Make sure that there is TCP data in the packet. seg = findTcpLayer( packet ) - self.log.info( "Segment arrived!" ) + self.log.debug( "Segment arrived" ) if seg is None: self.log.warn( 'Could not find TCP layer in packet' ) @@ -1164,18 +1243,18 @@ # pass # We don't check security/compartment self.debugWithState( "Received SYN" ) + # Set RCV.NXT to SEG.SEQ+1, IRS is set to SEG.SEQ and any other # control or text should be queued for processing later. ISS # should be selected and a SYN segment sent of the form: # self.irs = seg.sequence - # self.rcv_nxt = seg.sequence + 1 # Done automatically by property self.iss = self.generateISS() - # self.snd_nxt = self.iss # Done automatically by property - self.inboundSequences += [sequenced( syn = seg.syn, ack = seg.ack, fin = seg.fin )] # sequenced(syn=1)] + self.inboundSequences += 1 + # self.inboundSequences += [Sequenced( syn = seg.syn, ack = seg.ack, fin = seg.fin )] # pkt = self.newPacket( {tcp.f_sequence:self.iss, tcp.f_ack_number: self.rcv_nxt, tcp.f_ack:1, tcp.f_syn: 1} ) - self.outboundSequences += [seq_synack]#sequenced(syn=1)] + self.outboundSequences += [seq_synack]#Sequenced(syn=1)] pkt = self.newPacket( {tcp.f_syn:1, tcp.f_ack:1, tcp.f_ack_number: seg.sequence} ) self.sendPacket( pkt ) @@ -1267,7 +1346,8 @@ # SEG.SEQ. # self.rcv_nxt = seg.sequence + 1 # Done automagically self.irs = seg.sequence - self.inboundSequences += [sequenced( syn = seg.syn, ack = seg.ack, fin = seg.fin )] # [sequenced(syn=1)] + self.inboundSequences += 1 + # self.inboundSequences += [Sequenced( syn = seg.syn, ack = seg.ack, fin = seg.fin )] # [Sequenced(syn=1)] # SND.UNA should be advanced to equal SEG.ACK (if there # is an ACK), and any segments on the retransmission queue which @@ -1363,6 +1443,7 @@ if seg.data is not None and self.rcv_wnd == 0: acceptable = False # for good measure + if seg.data is not None and self.rcv_wnd > 0 and \ ( ( self.rcv_nxt <= seg.sequence < ( self.rcv_nxt + self.rcv_wnd ) ) or ( self.rcv_nxt <= ( seg.sequence + len( seg.data ) - 1 ) < ( self.rcv_nxt + self.rcv_wnd ) ) ): @@ -1374,6 +1455,7 @@ # # if not acceptable: + self.log.debug( "Ack is unacceptable!" ) if seg.reset: return None @@ -1382,7 +1464,8 @@ # After sending the acknowledgment, drop the unacceptable segment # and return. return None - + else: + self.log.debug( "Processing acceptable ACK" ) # In the following it is assumed that the segment is the idealized # segment that begins at RCV.NXT and does not exceed the window. # One could tailor actual segments to fit this assumption by @@ -1400,6 +1483,7 @@ # came from the LISTEN state), then return this connection to # LISTEN state and return. The user need not be informed. if self._lastState == LISTEN: + self.log.debug( "Received RST, restoring connection to %s state." % LISTEN ) self.state = LISTEN return seg @@ -1416,6 +1500,7 @@ # And in the active OPEN case, enter the CLOSED state and delete the TCB, # and return. if self._lastState == SYN_SENT: + self.log.debug( "Received RST packet, resetting connection state" ) self.reset() return seg @@ -1429,6 +1514,7 @@ # flushed. Users should also receive an unsolicited general # "connection reset" signal. Enter the CLOSED state, delete the # TCB, and return. + self.log.debug( "Received RST packet, resetting connection state" ) self.reset() return seg @@ -1438,6 +1524,7 @@ if self.state in ( CLOSING, LAST_ACK, TIME_WAIT ): # If the RST bit is set then, enter the CLOSED state, delete the # TCB, and return. + self.log.debug( "Received RST packet, resetting connection state" ) self.reset() return seg @@ -1465,6 +1552,7 @@ # If the SYN is not in the window this step would not be reached # and an ack would have been sent in the first step (sequence # number check). + self.log.debug( "Received out-of-place SYN, sending RST and resetting connection state" ) self.sendRst( seg ) self.reset() return seg @@ -1472,6 +1560,7 @@ # fifth check the ACK field, # if the ACK bit is off drop the segment and return if not seg.ack: + self.log.debug( "ACK bit was not set, dropping segment" ) return None # if the ACK bit is on @@ -1489,6 +1578,7 @@ # # and send it. if not acceptable: + self.log.debug( "ACK is not acceptable, sending RST" ) self.sendRst( seg ) # TODO TODO TODO # Might have to return here. RFC doesn't say to. @@ -1511,12 +1601,14 @@ # If the ACK is a duplicate (SEG.ACK < SND.UNA), it can be ignored. elif seg.ack_number < self.snd_una: + self.log.debug( 'Received duplicate ack, ignoring' ) pass # If the ACK acks # something not yet sent (SEG.ACK > SND.NXT) then send an ACK, # drop the segment, and return. elif seg.ack_number > self.snd_nxt: + self.log.debug( 'Received ACK for something not yet sent, sending ACK and dropping the segment' ) self.sendAck() return None @@ -1600,16 +1692,19 @@ # the 2 MSL timeout. if seg.fin: + self.log.debug( 'Acknowledging remote FIN with ACK' ) self.sendAck() - # TODO TODO TODO - # Implement TIme-Wait timeout + self.log.debug( 'Starting 2msl %s timeout' % TIME_WAIT ) + self.restartTimeWaitTimeout( 2 * self.msl ) + # sixth, check the URG bit pass # Not supported # seventh, process the segment text if seg.data is not None: + self.log.debug( 'Segment contains data' ) # ESTABLISHED STATE # FIN-WAIT-1 STATE # FIN-WAIT-2 STATE @@ -1618,11 +1713,17 @@ # Once in the ESTABLISHED state, it is possible to deliver segment # text to user RECEIVE buffers. Text from segments can be moved # into buffers until either the buffer is full or the segment is - # empty. - bytes = seg.data.chain().bytes + # empty. + # byteArray = [byte for byte in bytes[]] + + if seg.sequence == self.rcv_nxt: + self.inboundSequences += [byte for byte in seg.data.chain().bytes] + #self.log.debug( 'Setting inboundSequences[%i:%i] (%s) to recvd bytes' % + # ( seg.sequence, seg.sequence + len( byteArray ), self.inboundSequences ) ) - self.inboundSequences[seg.sequence:seg.sequence + len( bytes )] = \ - [sequenced( byte ) for byte in bytes] + # self.inboundSequences[seg.sequence:( seg.sequence + len( byteArray ) )] = byteArray + self.log.debug( 'Length of inboundSequences is now %i' % len( self.inboundSequences ) ) + # [Sequenced( byte ) for byte in bytes] # Don't really need to use the Sequenced() for raw data. #If the segment empties and carries an PUSH flag, then #the user is informed, when the buffer is returned, that a PUSH @@ -1675,7 +1776,8 @@ # user. self.debugWithState( "connection closing" ) - self.inboundSequences += [sequenced( fin = seg.fin, syn = seg.syn, ack = seg.ack )] + self.inboundSequences += 1 + # self.inboundSequences += [Sequenced( fin = seg.fin, syn = seg.syn, ack = seg.ack )] # self.rcv_nxt = seg.sequence + 1 # Done automatically by above self.debugWithState( "sending ACK of FIN" ) @@ -1725,8 +1827,11 @@ # And return return seg - self.log.error( 'This point should never be reached!' ) - return None + # If we get here, the packet was just an ACK packet that may or + # may not have had data. Otherwise, something interesting happened. + if not seg.ack or ( seg.syn or seg.fin or seg.reset ): + self.log.error( "Should never get here. Something weird happened." ) + return seg def turnOffTimers( self ): ''' @@ -1740,72 +1845,60 @@ self.stopTimeWaitTimeout() def stopUserTimeout( self ): + ''' + Stops the User Timeout. + ''' if self.userTimer is not None: self.userTimer.cancel() self.userTimer = None def restartUserTimeout( self, timeout = 10.0 ): + ''' + Stops, then starts the User Timeout. + ''' self.stopUserTimeout() self.userTimer = threading.Timer( timeout, TcpStateMachine.setState, args = ( self, CLOSED ) ) self.userTimer.start() def stopTimeWaitTimeout( self ): + ''' + Stops the TIME WAIT timeout. + ''' if self.timeWaitTimer is not None: self.timeWaitTimer.cancel() self.timeWaitTimer = None def restartTimeWaitTimeout( self, timeout = 10.0 ): + ''' + Stops, then starts the TIME WAIT timeout. + ''' self.stopTimeWaitTimeout() self.timeWaitTimer = threading.Timer( timeout, TcpStateMachine.setState, args = ( self, CLOSED ) ) self.timeWaitTimer.start() def forceResendUnackedData( self ): - self.resetRetransmitTimer() + ''' + Forces the Send thread to stop waiting and immediately send any perform + a send of pending data. + ''' + self.__sendThread.timeout.trigger() def resetRetransmitTimer( self ): + ''' + Resets the retransmit timer. + ''' self.__sendThread.timeout.reset() def debugWithState( self, x ): + ''' + Prints a DEBUG statement that includes the current TCP state. + ''' self.log.debug( "[%s] %s" % ( self.state, x ) ) - def __init__( self, localhost = ( testconfig.localIP, testconfig.localPort ), remotehost = ( testconfig.remoteIP, testconfig.remotePort ) ): + def unackedFins( self ): ''' - Initialize the TCP State Machine. The information for the local host and the - remote host must be provided as a 2 - tuple, a string and an integer. - - Example: - >>> t = TcpStateMachine( ( "127.0.0.1", 10000 ), ( "192.168.0.1", 80 ) ) + Returns a list of all FIN sequences in the outbound queue that have >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 17 06:58:05 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7EFA01065691; Mon, 17 Aug 2009 06:58: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 2AC38106568F for ; Mon, 17 Aug 2009 06:58:05 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 18BFE8FC60 for ; Mon, 17 Aug 2009 06:58:05 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7H6w5nt003540 for ; Mon, 17 Aug 2009 06:58:05 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7H6w52D003538 for perforce@freebsd.org; Mon, 17 Aug 2009 06:58:05 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 17 Aug 2009 06:58:05 GMT Message-Id: <200908170658.n7H6w52D003538@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 167425 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, 17 Aug 2009 06:58:05 -0000 http://perforce.freebsd.org/chv.cgi?CH=167425 Change 167425 by zjriggl@zjriggl_tcpregression on 2009/08/17 06:57:12 *Sigh* Perforce fail. I think this should fix everything. *Crosses fingers* Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/LICENSE#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/LOGGING#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/Makefile#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/README#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/pcssetup.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/setup.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/__init__.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/__init__.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/arp.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/dhcpv4.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/dns.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/ethernet.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/icmpv4.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/icmpv6.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/ipsec.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/ipv4.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/ipv6.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/localhost.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/nd6.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/payload.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/pseudoipv6.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/tcp.orig.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/tcp.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/tcpv6.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/udp.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/udpv4.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/pcs/packets/udpv6.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/__init__.py#1 add .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#7 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#6 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/StringField.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/__init__.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/checksum.py#3 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/checksum.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/decorators.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/field.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/field.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/hwAddress.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/ipAddress.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/networkPort.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/payload.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/pseudoipv4.pyc#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcprecvdaemon.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#2 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstates.py#4 edit .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/timer.py#1 add Differences ... ==== //depot/projects/soc2009/zjriggl_tcpregression/Makefile#3 (text+ko) ==== @@ -1,7 +1,7 @@ PYTHON=python -PCAP=src/tcpregression/pcs/pcap -PCS=src/tcpregression/pcs +PCAP=src/pcs/pcap +PCS=src/pcs SO=pcap.so all: pcap @@ -22,3 +22,4 @@ cd $(PCAP); make clean rm -f $(PCS)/$(SO) $(PCAP)/$(SO) rm -f `find * | grep "pyc$$"` + rm -f src/pcs/pcap.c ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/loggable.py#7 (text+ko) ==== @@ -1,9 +1,19 @@ import logging import pcsextension import inspect +from os.path import join, dirname, exists, expanduser # -------- Configure logging -------- -logging.config.fileConfig( "logging.conf" ) +if not logging.getLogger( 'tcpregression' ).disabled: + logFiles = ['logging.conf', + join( expanduser( '~' ), 'logging.conf' ), + join( dirname( __file__ ), 'logging.conf' )] + + for logFile in logFiles: + if exists( logFile ): + logging.config.fileConfig( logFile ) + logging.getLogger( 'tcpregression' ).debug( "Using log cofiguration file %s" % logFile ) + break # -------- Set Up New Loglevel Names -------- ( logging.FIELD_CHANGE, @@ -12,8 +22,7 @@ ( logging.PACKET_TRANSMIT, logging.PACKET_RECEIVED, logging.PACKET_SENT, - logging.VALIDATE, - logging.STATE_CHANGE ) = range( logging.INFO - 5, logging.INFO ) + logging.STATE_CHANGE ) = range( logging.INFO - 4, logging.INFO ) # -------- ANSI/VT100 Colors -------- @@ -58,7 +67,6 @@ logging.addLevelName( logging.RESPONSE_GENERATION, colorText( "GENERATE", fgCyan ) ) logging.addLevelName( logging.PACKET_RECEIVED, colorText( "RECVD", fgYellow ) ) logging.addLevelName( logging.PACKET_SENT, colorText( "SENT", fgGreen ) ) -logging.addLevelName( logging.VALIDATE, "VALIDATE" ) logging.addLevelName( logging.STATE_CHANGE, colorText( "STATE", fgBlue ) ) class tcplog( object ): @@ -98,8 +106,7 @@ ''' def __init__( self, parent ): - # self.logger = logging.getLogger(parent.__class__.__module__ + '.' + parent.__class__.__name__) - self.logger = logging.getLogger( parent.__class__.__name__ ) + self.logger = logging.getLogger( parent.__class__.__module__ ) def caller( self ): return inspect.stack()[2][3] @@ -112,7 +119,6 @@ warning = lambda self, x: self.logger.warning( x ) warn = lambda self, x: self.logger.warn( x ) state = lambda self, x: self.logger.log( logging.STATE_CHANGE, x ) - validate = lambda self, x: self.logger.log( logging.VALIDATE, x ) pktsent = lambda self, x: self.logger.log( logging.PACKET_SENT, x ) pktrecv = lambda self, x: self.logger.log( logging.PACKET_RECEIVED, x ) generated = lambda self, x: self.logger.log( logging.RESPONSE_GENERATION, x ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/logging.conf#6 (text+ko) ==== @@ -1,5 +1,5 @@ [loggers] -keys=root +keys=root,tcpregression [handlers] keys=consoleHandler @@ -11,6 +11,12 @@ level=DEBUG handlers=consoleHandler +[logger_tcpregression] +level=DEBUG +propagate=0 +qualname=tcpregression +handlers=consoleHandler + [handler_consoleHandler] class=StreamHandler level=DEBUG @@ -18,5 +24,5 @@ args=(sys.stdout,) [formatter_simpleFormatter] -format=%(asctime)s - %(name)s - %(levelname)s - %(message)s -datefmt=+format=%(name)s - %(levelname)s - %(message)s +datefmt= ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/checksum.py#3 (text+ko) ==== @@ -5,7 +5,7 @@ ''' from decorators import validateTypes -from ipAddress import IpAddress +from ipaddress import IpAddress from pcs.packets.ipv4 import ipv4 from pcs.packets.tcp import tcp from struct import pack, unpack ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcsextension/field.py#4 (text+ko) ==== @@ -20,13 +20,20 @@ def __init__( self, default = 0, width = 8, networkByteOrder = False ): self.width = width self.networkByteOrder = networkByteOrder + self.set( default ) - if isinstance( default, int ): - self.setInteger( default ) - if isinstance( default, str ): - self.setAscii( default ) - if isinstance( default, Field ): - self.setNetworkBytes( default.getNetworkBytes() ) + def set( self, x ): + ''' + Default 'set' tries to infer the correct type. + ''' + if isinstance( x, int ): + self.setInteger( x ) + elif isinstance( x, str ): + self.setAscii( x ) + elif isinstance( x, Field ): + self.setNetworkBytes( x.getNetworkBytes() ) + else: + raise ValueError, "Could not infer type. Please use a specific set* method." def setAscii( self, x ): ''' ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcprecvdaemon.py#4 (text+ko) ==== @@ -39,7 +39,7 @@ def __init__( self, target ): self.log = loggable.tcplog( self ) threading.Thread.__init__( self, None, self.recvThread, None, ( target, ) ) - self.log.info('Starting receive thread for object %s' % repr(target)) + self.log.info( 'Starting receive thread for object %s' % repr( target ) ) self.daemon = True # # List of packets that have been pulled off the interface, but were received out- @@ -51,31 +51,28 @@ # # # List of in-order packets to be processed. # packetsToBeProcessed = [] - def kill(self): - self.__killed= True + def kill( self ): + self.__killed = True def recvThread( self, t ): ''' Takes a TCP State Machine object as an argument. Performs the collection and organization of packets. ''' - + # Only process packets as long as we are told to. while t.state != CLOSED: # If we are not supposed to be processing packets, DON'T PROCESS PACKETS. if not t.processPacketsOnArrival: - time.sleep( 0.05 ) + time.sleep( 0.01 ) continue - - print "##### %s" % t.state - # Get the next packet from PCAP - packet = t.recvRawTcp(block=False) - if packet is not None: + packet = t.recvRawTcp( block = False ) + if packet is not None: # 'Arrive' it - t.segmentArrives(packet) + t.segmentArrives( packet ) else: - time.sleep(0.05) + time.sleep( 0.01 ) # # Iterate over all of the packets in our list. If we find ONE packet # # that is the 'next' packet that the TCP State Machine is expecting, then @@ -107,4 +104,4 @@ # # Remove everything that needs to be removed # for packet in toRemove: # self.packets.remove( packet )) - self.log.debug('Quitting recv thread')+ self.log.debug( 'Quitting recv thread' ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpsenddaemon.py#2 (text+ko) ==== @@ -10,89 +10,94 @@ from pcs.packets import payload import timer from tcpstates import CLOSED, TIME_WAIT -from sequence import sequenced +from sequence import Sequenced -class TcpSendDaemon(threading.Thread): +class TcpSendDaemon( threading.Thread ): ''' This class is responsible for automatically re-sending unacknowledged data after some configured delay. ''' - timeout = timer.timer(1) + timeout = None log = None __killed = False - - def __init__(self, target): + + def __init__( self, target ): ''' @param target TcpStateMachine that this daemon is sending for. ''' - self.log = loggable.tcplog(self) - threading.Thread.__init__(self, None, self.sendThread, None, (target,) ) - self.log.info('Starting send thread for object %s' % repr(target)) + self.log = loggable.tcplog( self ) + self.timeout = timer.timer( 1 ) + threading.Thread.__init__( self, None, self.sendThread, None, ( target, ) ) + self.log.info( 'Starting send thread for object %s' % repr( target ) ) self.daemon = True - - def kill(self): - self.__killed= True - - def sendThread(self, t): - - while t.state not in (CLOSED, TIME_WAIT): - + + def kill( self ): + self.__killed = True + + def sendThread( self, t ): + + while t.state not in ( CLOSED, TIME_WAIT ): + # Restart the timer self.timeout.reset() - + # Sleep as long as we're not supposed to be sending packets, # and as long as the timer hasn't expired. self.timeout.wait() - + # Are we supposed to be sending stuff? if not t.autoResendUnackedSequences: - self.log.debug("Auto-resend disabled") + self.log.debug( "Auto-resend disabled" ) continue - + # Is there anything to send? - if len(t.outboundSequences) == 0: + if len( t.outboundSequences ) == 0: # self.log.debug("Nothing to send") continue - + # Make sure the state didn't change while we were sleeping. if t.state == CLOSED: - self.log.debug("State is CLOSED, not sending anything") + self.log.debug( "State is CLOSED, not sending anything" ) continue - + # Grab all available data, up to MSS. Only send one MSS' worth of data. - sequencesToSend = t.outboundSequences[:t.snd_una+t.mss] - self.log.debug("Sending items %i to %i in %s" % (t.snd_una, t.snd_una+t.mss, sequencesToSend)) - self.log.debug("Sending sequences %i to %i: %s" % - (t.snd_una, t.snd_una + len(sequencesToSend),repr(sequencesToSend))) - + sequencesToSend = t.outboundSequences[:t.snd_una + t.mss] + self.log.debug( "Getting sequences %i to %i in %s" % ( t.snd_una, t.snd_una + t.mss, sequencesToSend ) ) + self.log.debug( "Got sequences %i to %i: %s" % + ( t.snd_una, t.snd_una + len( sequencesToSend ), repr( sequencesToSend ) ) ) + # Len... - if len(sequencesToSend) == 0: - self.log.warn("outboundSequences is not empty, but there is no data to send.") + if len( sequencesToSend ) == 0: + self.log.warn( "outboundSequences is not empty, but there is no data to send." ) continue - + # Check for a SYN or FIN - syn = 1 if (type(sequencesToSend[0]) == sequenced and sequencesToSend[0].syn) else 0 - fin = 1 if (type(sequencesToSend[0]) == sequenced and sequencesToSend[0].fin) else 0 - if syn: self.log.debug("Haz a SYN!") - if fin: self.log.debug("Haz an FIN!") - + syn = 1 if ( type( sequencesToSend[0] ) == Sequenced and sequencesToSend[0].syn ) else 0 + fin = 1 if ( type( sequencesToSend[0] ) == Sequenced and sequencesToSend[0].fin ) else 0 + if syn: self.log.debug( "Sending SYN!" ) + if fin: self.log.debug( "Sending FIN!" ) + bytes = '' if not fin and not syn: - bytes = ''.join(sequencesToSend) - + bytes = ''.join( sequencesToSend ) + + self.log.debug( "Sending %i bytes" % len( bytes ) ) + # TCP Fields - tcpFields = {tcp.f_data: payload.payload(bytes), + tcpFields = {tcp.f_data: payload.payload( bytes ), tcp.f_sequence: t.snd_una, tcp.f_syn: syn, tcp.f_fin: fin } if not syn: tcpFields[tcp.f_ack] = 1 - tcpFields[tcp.f_ack_number] = t.rcv_nxt - + tcpFields[tcp.f_ack_number] = t.rcv_nxt + self.log.debug( "Set outgoing packet ACK to %i" % t.rcv_nxt ) + # Create the packet - tcpPacket = t.newPacket(tcpFields) - + tcpPacket = t.newPacket( tcpFields ) + # Send the packet. Note that we use 'sendRaw' so that it is ALWAYS sent. - t.sendRawTcp(tcpPacket) - self.log.debug('Quitting send thread')+ self.log.debug( "Sending packet." ) + t.sendRawTcp( tcpPacket ) + self.log.debug( 'Quitting send thread' ) ==== //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/tcpstates.py#4 (text+ko) ==== @@ -1,5 +1,28 @@ +# Copyright 1994-2009 The FreeBSD Project. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. Redistributions in binary +# form must reproduce the above copyright notice, this list of conditions and +# the following disclaimer in the documentation and/or other materials provided +# with the distribution. THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS +# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# The views and conclusions contained in the software and documentation are +# those of the authors and should not be interpreted as representing official +# policies, either expressed or implied, of the FreeBSD Project. ''' -Created on May 24, 2009 +Created on May 24, 2009 @author: zach ''' @@ -16,11 +39,14 @@ name = 'Base TCP State class' next = [None] + def __init__( self ): + pass + def __str__( self ): return self.name - - def __repr__(self): - return str(self) + + def __repr__( self ): + return str( self ) class TcpStateClosed( TcpState ): ''' @@ -28,7 +54,7 @@ ''' def initialize( self ): self.name = 'Closed' - self.next = [LISTEN, SYN_SENT] + self.next = ( LISTEN, SYN_SENT ) class TcpStateListen( TcpState ): ''' @@ -36,8 +62,8 @@ TCP and port. ''' def initialize( self ): - self.name = 'Listen' - self.next = [CLOSED, SYN_SENT, SYN_RECEIVED] + self.name = 'Listen' + self.next = ( CLOSED, SYN_SENT, SYN_RECEIVED ) class TcpStateSynSent( TcpState ): ''' @@ -46,7 +72,7 @@ ''' def initialize( self ): self.name = 'Syn-Sent' - self.next = [SYN_RECEIVED, ESTABLISHED, CLOSED] + self.next = ( SYN_RECEIVED, ESTABLISHED, CLOSED ) class TcpStateSynRecvd( TcpState ): ''' @@ -56,7 +82,7 @@ ''' def initialize( self ): self.name = 'Syn-Recvd' - self.next = [ESTABLISHED, FIN_WAIT_1] + self.next = ( ESTABLISHED, FIN_WAIT_1 ) class TcpStateEstablished( TcpState ): ''' @@ -66,7 +92,7 @@ ''' def initialize( self ): self.name = 'Established' - self.next = [FIN_WAIT_1, CLOSE_WAIT] + self.next = ( FIN_WAIT_1, CLOSE_WAIT ) class TcpStateFinWait1( TcpState ): ''' @@ -76,7 +102,7 @@ ''' def initialize( self ): self.name = 'Fin-Wait-1' - self.next = [FIN_WAIT_2, CLOSING] + self.next = ( FIN_WAIT_2, CLOSING ) class TcpStateFinWait2( TcpState ): ''' @@ -85,7 +111,7 @@ ''' def initialize( self ): self.name = 'Fin-Wait-2' - self.next = [TIME_WAIT] + self.next = ( TIME_WAIT, ) class TcpStateClosing( TcpState ): ''' @@ -94,9 +120,8 @@ ''' def initialize( self ): self.name = 'Closing' - self.next = [TIME_WAIT] + self.next = ( TIME_WAIT, ) - class TcpStateCloseWait( TcpState ): ''' represents waiting for a connection termination request @@ -104,7 +129,7 @@ ''' def initialize( self ): self.name = 'Close-Wait' - self.next = [LAST_ACK] + self.next = ( LAST_ACK, ) class TcpStateLastAck( TcpState ): ''' @@ -115,7 +140,7 @@ ''' def initialize( self ): self.name = 'Last-Ack' - self.next = [CLOSED] + self.next = ( CLOSED, ) class TcpStateTimeWait( TcpState ): ''' @@ -125,7 +150,7 @@ ''' def initialize( self ): self.name = 'Time-Wait' - self.next = [CLOSED] + self.next = ( CLOSED, ) CLOSED = TcpStateClosed() TIME_WAIT = TcpStateTimeWait() @@ -151,14 +176,14 @@ SYN_SENT.initialize() LISTEN.initialize() -tcpStates = (CLOSED, TIME_WAIT, LAST_ACK, +tcpStates = ( CLOSED, TIME_WAIT, LAST_ACK, CLOSE_WAIT, CLOSING, FIN_WAIT_1, FIN_WAIT_2, ESTABLISHED, SYN_RECEIVED, SYN_SENT, - LISTEN) + LISTEN ) -synchronizedStates = (ESTABLISHED,FIN_WAIT_1, - FIN_WAIT_2, CLOSE_WAIT, - CLOSING, LAST_ACK, TIME_WAIT) +synchronizedStates = ( ESTABLISHED, FIN_WAIT_1, + FIN_WAIT_2, CLOSE_WAIT, + CLOSING, LAST_ACK, TIME_WAIT ) # # From owner-p4-projects@FreeBSD.ORG Mon Aug 17 07:03:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 307DF1065691; Mon, 17 Aug 2009 07:03: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 D1231106568F for ; Mon, 17 Aug 2009 07:03:10 +0000 (UTC) (envelope-from zjriggl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B74218FC43 for ; Mon, 17 Aug 2009 07:03:10 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7H73ADG004885 for ; Mon, 17 Aug 2009 07:03:10 GMT (envelope-from zjriggl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7H73AQx004883 for perforce@freebsd.org; Mon, 17 Aug 2009 07:03:10 GMT (envelope-from zjriggl@FreeBSD.org) Date: Mon, 17 Aug 2009 07:03:10 GMT Message-Id: <200908170703.n7H73AQx004883@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zjriggl@FreeBSD.org using -f From: Zachariah Riggle To: Perforce Change Reviews Cc: Subject: PERFORCE change 167426 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, 17 Aug 2009 07:03:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=167426 Change 167426 by zjriggl@zjriggl_tcpregression on 2009/08/17 07:02:39 More P4 fail. Getting rid of the ancient src/tcpregression/pcs... directories Affected files ... .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/.project#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/.pydevproject#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/__init__.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/__init__.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/arp.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/dhcpv4.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/dns.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/ethernet.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/icmpv4.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/icmpv6.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/ipsec.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/ipv4.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/ipv6.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/localhost.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/nd6.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/payload.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/pseudoipv6.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/tcp.orig.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/tcp.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/tcpv6.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/udp.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/udpv4.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/packets/udpv6.py#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap.so#2 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/LICENSE#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/Makefile#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/pcap.pyx#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/pcap_ex.c#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/pcap_ex.h#4 delete .. //depot/projects/soc2009/zjriggl_tcpregression/src/tcpregression/pcs/pcap/setup.py#4 delete Differences ... From owner-p4-projects@FreeBSD.ORG Mon Aug 17 08:12:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BA8301065691; Mon, 17 Aug 2009 08:12:26 +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 7E863106568E for ; Mon, 17 Aug 2009 08:12:26 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6D1F68FC62 for ; Mon, 17 Aug 2009 08:12:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7H8CQr2011412 for ; Mon, 17 Aug 2009 08:12:26 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7H8CQlY011410 for perforce@freebsd.org; Mon, 17 Aug 2009 08:12:26 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 17 Aug 2009 08:12:26 GMT Message-Id: <200908170812.n7H8CQlY011410@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 167428 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, 17 Aug 2009 08:12:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=167428 Change 167428 by dforsyth@squirrel on 2009/08/17 08:11:54 Modify manifest add functions to return pointer to newly added entry. Speed up plist parse. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#45 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#40 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#12 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#6 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#18 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#15 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#32 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#45 (text+ko) ==== @@ -96,7 +96,7 @@ } /* Retrieve pkg identity. In hierdb, this is the directory containing the - * plist. This is a client set identifier, so conflict and dependendency + * plist. This is a client set identifier, so conflict and dependency * checks should not rely on it. */ const char * @@ -382,17 +382,15 @@ pkg_add_pkg_file(struct pkg *p, const char *path, const char *cwd, const char *md5, const char *mode, const char *owner, const char *group) { - int status; - pkg_check_magic(p, __func__); /* TODO: Add some sanity checks in here. */ - status = PKG_OK; pkg_parse_manifest(p); - status |= pkg_manifest_add_file(p->pm, path, md5, cwd, mode, owner, group); + if (pkg_manifest_add_file(p->pm, path, md5, cwd, mode, owner, group) == NULL) + return (PKG_NOT_OK); - return (status); + return (PKG_OK); } int @@ -472,7 +470,9 @@ { pkg_check_magic(p, __func__); pkg_parse_manifest(p); - return (pkg_manifest_add_depend(p->pm, name, origin, version)); + if (pkg_manifest_add_depend(p->pm, name, origin, version) == NULL) + return (PKG_NOT_OK); + return (PKG_OK); } #if 0 ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#40 (text+ko) ==== @@ -1,6 +1,8 @@ #ifndef __PKG_H__ #define __PKG_H__ +#include /* For FILE in pkg_dump */ + /* Plist/DB types. Format is 0xXXXXYYYY, where XXXX is manifest type, and YYYY is db type. */ /* HIERDB: Assumes information is stored in files with names with a preceding '+'. ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db.c#12 (text+ko) ==== @@ -132,24 +132,23 @@ char **list; struct pkg *entries; - if (db->pkg_count % 10 == 0) { - entries = db->pkg_entries; - list = db->pkg_list; - db->pkg_entries = realloc(entries, sizeof(*entries) * (db->pkg_count + 11)); - db->pkg_list = realloc(list, sizeof(*list) * (db->pkg_count + 11)); - if (db->pkg_entries == NULL || db->pkg_list == NULL) { - printf("need moar memory\n"); - exit(100); - } + + list = NULL; + entries = NULL; + PARALLEL_ARRAY_LIST_REALLOC(db->pkg_entries, entries, db->pkg_list, list, db->pkg_count, 10); + + if (db->pkg_entries == NULL || db->pkg_list == NULL) { + db->pkg_entries = entries; + db->pkg_list = list; + return (PKG_NOT_OK | PKG_MEMORY_ERR); } - - __pkg_init(&db->pkg_entries[db->pkg_count]); - status = pkg_clone(p, &db->pkg_entries[db->pkg_count]); + + __pkg_init(&db->pkg_entries[db->pkg_count - 1]); + status = pkg_clone(p, &db->pkg_entries[db->pkg_count - 1]); /* reuse entries. */ - entries = &db->pkg_entries[db->pkg_count]; - db->pkg_list[db->pkg_count] = entries->ident; - __pkg_set_in_db_ptr(&db->pkg_entries[db->pkg_count], db); - db->pkg_count++; + entries = &db->pkg_entries[db->pkg_count - 1]; + db->pkg_list[db->pkg_count - 1] = entries->ident; + __pkg_set_in_db_ptr(&db->pkg_entries[db->pkg_count - 1], db); db->pkg_list[db->pkg_count] = NULL; return (status); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#6 (text+ko) ==== @@ -227,23 +227,14 @@ FILE *reqdby_stream; if (!pkg_db_hierdb_file_exists(db, p, REQUIRED_BY_FILE)) - return (PKG_OK); /* REQUIRED_BY doesn't have to exist. */ + return (PKG_OK); /* +REQUIRED_BY doesn't have to exist. */ reqdby_stream = pkg_db_hierdb_open_file_stream_read(db, p, REQUIRED_BY_FILE); - for (count = 0, reqdby = NULL; fgets(line, FILENAME_MAX, reqdby_stream) != NULL; count++) { - if (count % 10 == 0) { - list = reqdby; - reqdby = realloc(list, sizeof(*list) * (count + 11)); - if (reqdby == NULL) { - reqdby = list; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } - } + for (count = 0, reqdby = NULL; fgets(line, FILENAME_MAX, reqdby_stream) != NULL;) { pkg_util_trim_newline(line); - reqdby[count] = strdup(line); + STRING_LIST_APPEND(reqdby, line, list, count, 10); } - reqdby[count] = NULL; - + fclose(reqdby_stream); __pkg_set_required_by_ptr(p, reqdby); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#6 (text+ko) ==== @@ -222,7 +222,7 @@ return ((const char *const *)pm->dirrm_list); } -int +struct pkg_conflict * pkg_manifest_add_conflict(struct pkg_manifest *pm, const char *name, const char *version) { @@ -236,32 +236,29 @@ rage_quit(); } - if (pm->conflict_count % 5 == 0) { - list = pm->conflict_list; - conflicts = pm->conflict_entries; - pm->conflict_list = realloc(list, sizeof(*list) * (pm->conflict_count + 6)); - pm->conflict_entries = realloc(conflicts, sizeof(*conflicts) * (pm->conflict_count + 6)); - if (pm->conflict_list == NULL || pm->conflict_entries == NULL) { - pm->conflict_list = list; - pm->conflict_entries = conflicts; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } + list = NULL; + conflicts = NULL; + PARALLEL_ARRAY_LIST_REALLOC(pm->conflict_entries, conflicts, pm->conflict_list, list, pm->conflict_count, 5); + if (pm->conflict_entries == NULL || pm->conflict_list == NULL) { + pm->conflict_entries = conflicts; + pm->conflict_list = list; + return (NULL); } status = PKG_OK; - pc = &pm->conflict_entries[pm->conflict_count]; + pc = &pm->conflict_entries[pm->conflict_count - 1]; pkg_conflict_init(pc); status |= pkg_conflict_set_name(pc, name); status |= pkg_conflict_set_version(pc, version); - pm->conflict_list[pm->conflict_count++] = pc->name; + pm->conflict_list[pm->conflict_count - 1] = pc->name; pm->conflict_list[pm->conflict_count] = NULL; - return (status); + return (pc); } -int +struct pkg_depend * pkg_manifest_add_depend(struct pkg_manifest *pm, const char *name, const char *version, const char *origin) { @@ -274,36 +271,33 @@ pkg_error_msg("cant insert conflict without name into manifest.\n"); rage_quit(); } - - if (pm->depend_count % 10 == 0) { - list = pm->depend_list; - depends = pm->depend_entries; - pm->depend_list = realloc(list, sizeof(*list) * (pm->depend_count + 11)); - pm->depend_entries = realloc(depends, sizeof(*depends) * (pm->depend_count + 11)); - if (pm->depend_list == NULL || pm->depend_entries == NULL) { - pm->depend_list = list; - pm->depend_entries = depends; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } + + list = NULL; + depends = NULL; + PARALLEL_ARRAY_LIST_REALLOC(pm->depend_entries, depends, pm->depend_list, list, pm->depend_count, 10); + if (pm->depend_entries == NULL || pm->depend_list == NULL) { + pm->depend_entries = depends; + pm->depend_list = list; + return (NULL); } status = PKG_OK; - pd = &pm->depend_entries[pm->depend_count]; + pd = &pm->depend_entries[pm->depend_count - 1]; pkg_depend_init(pd); status |= pkg_depend_set_name(pd, name); status |= pkg_depend_set_origin(pd, origin); status |= pkg_depend_set_version(pd, version); - pm->depend_list[pm->depend_count++] = pd->name; + pm->depend_list[pm->depend_count - 1] = pd->name; pm->depend_list[pm->depend_count] = NULL; - return (status); + return (pd); } /* Add a file to a manifest. */ -int +struct pkg_file * pkg_manifest_add_file(struct pkg_manifest *pm, const char *path, const char *md5, const char *cwd, const char *mode, const char *owner, const char *group) { @@ -313,26 +307,22 @@ struct pkg_file *pf; if (path == NULL) { - /* Everything else has defaults. */ - pkg_error_msg(""); + pkg_error_msg("Cannot add file with empty path to manifest.\n"); rage_quit(); } - - if (pm->file_count % 10 == 0) { - list = pm->file_list; - files = pm->file_entries; - pm->file_list = realloc(list, sizeof(*list) * (pm->file_count + 11)); - pm->file_entries = realloc(files, sizeof(*files) * (pm->file_count + 11)); - if (pm->file_list == NULL || pm->file_entries == NULL) { - pm->file_list = list; - pm->file_entries = files; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } + + list = NULL; + files = NULL; + PARALLEL_ARRAY_LIST_REALLOC(pm->file_entries, files, pm->file_list, list, pm->file_count, 10); + if (pm->file_entries == NULL || pm->file_list == NULL) { + pm->file_entries = files; + pm->file_list = list; + return (NULL); } status = PKG_OK; - pf = &pm->file_entries[pm->file_count]; + pf = &pm->file_entries[pm->file_count - 1]; pkg_file_init(pf); status |= pkg_file_set_path(pf, path); status |= pkg_file_set_md5(pf, md5); @@ -341,10 +331,10 @@ status |= pkg_file_set_owner(pf, owner); status |= pkg_file_set_group(pf, group); - pm->file_list[pm->file_count++] = pf->path; + pm->file_list[pm->file_count - 1] = pf->path; pm->file_list[pm->file_count] = NULL; - return (status); + return (pf); } ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#6 (text+ko) ==== @@ -125,13 +125,13 @@ int pkg_manifest_add_dirrm_cmd(struct pkg_manifest *pm, const char *dir); -int pkg_manifest_add_conflict(struct pkg_manifest *pm, const char *name, +struct pkg_conflict *pkg_manifest_add_conflict(struct pkg_manifest *pm, const char *name, const char *version); -int pkg_manifest_add_depend(struct pkg_manifest *pm, const char *name, +struct pkg_depend *pkg_manifest_add_depend(struct pkg_manifest *pm, const char *name, const char *version, const char *origin); -int pkg_manifest_add_file(struct pkg_manifest *pm, const char *path, const char *md5, +struct pkg_file *pkg_manifest_add_file(struct pkg_manifest *pm, const char *path, const char *md5, const char *cwd, const char *mode, const char *owner, const char *group); void pkg_manifest_remove_conflict(struct pkg_manifest *pm, const char *name); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#7 (text+ko) ==== @@ -63,9 +63,9 @@ char *group; char *mode; - char *last_rel_conflict; - char *last_rel_depend; - char *last_rel_file; + struct pkg_conflict *last_conflict; + struct pkg_depend *last_depend; + struct pkg_file *last_file; }; static void parse_state_set_default(struct plist_parse_state *st); @@ -95,9 +95,9 @@ static void parse_state_reset_last_rel(struct plist_parse_state *st) { - st->last_rel_conflict = NULL; - st->last_rel_depend = NULL; - st->last_rel_file = NULL; + st->last_conflict = NULL; + st->last_depend = NULL; + st->last_file = NULL; } int @@ -212,8 +212,6 @@ char trail[FILENAME_MAX]; /* Last file and depend. */ - struct pkg_file *lpf; - struct pkg_depend *lpd; status = PKG_OK; argc = sscanf(line, "%s %[^\n]", cmd, argument); @@ -343,8 +341,7 @@ status = PKG_NOT_OK; break; } - status = pkg_manifest_add_depend(pm, isolate, NULL, NULL); - status |= pkg_util_strdup(isolate, &st->last_rel_depend); + st->last_depend = pkg_manifest_add_depend(pm, isolate, NULL, NULL); break; case (PM_CONFLICTS): if (strlen(isolate) == 0) { @@ -352,8 +349,7 @@ status = PKG_NOT_OK; break; } - status = pkg_manifest_add_conflict(pm, isolate, NULL); - status |= pkg_util_strdup(isolate, &st->last_rel_conflict); + st->last_conflict = pkg_manifest_add_conflict(pm, isolate, NULL); break; case (PM_COMMENT): if (strchr(argument, (int)':') != NULL) { @@ -363,7 +359,7 @@ } else if (sscanf(argument, "ORIGIN:%s %[^\n]", isolate, trail) >= 1) { status = pkg_util_strdup(isolate, &pm->origin); } else if (sscanf(argument, "DEPORIGIN:%s %[^\n]", isolate, trail) >= 1) { - if (st->last_rel_depend == NULL) { + if (st->last_depend == NULL) { pkg_error_msg("misplaced meta comment: deporigin."); status = PKG_NOT_OK; break; @@ -373,11 +369,10 @@ status = PKG_NOT_OK; break; } - lpd = pkg_manifest_select_depend(pm, st->last_rel_depend); - status = pkg_depend_set_origin(lpd, isolate); + status = pkg_depend_set_origin(st->last_depend, isolate); } else if (sscanf(argument, "MD5:%s %[^\n]", isolate, trail) >= 1) { - if (st->last_rel_file == NULL) { - pkg_error_msg("misplace meta comment: md5."); + if (st->last_file == NULL) { + pkg_error_msg("misplaced meta comment: md5."); status = PKG_NOT_OK; break; } @@ -386,21 +381,23 @@ status = PKG_NOT_OK; break; } - lpf = pkg_manifest_select_file(pm, st->last_rel_file); - status = pkg_file_set_md5(lpf, isolate); + status = pkg_file_set_md5(st->last_file, isolate); break; } /* else { unrecognized comment. } */ } break; case (PM_FILE): pkg_util_trim_newline(line); - status = pkg_manifest_add_file(pm, line, NULL, st->cwd, st->mode, + st->last_file = pkg_manifest_add_file(pm, line, NULL, st->cwd, st->mode, st->owner, st->group); - lpf = pkg_manifest_select_file(pm, line); - if (lpf != NULL) - status |= pkg_file_set_ignored(lpf); - st->ignore_next_file = 0; - status = pkg_util_strdup(line, &st->last_rel_file); + if (st->last_file == NULL) { + pkg_error_msg("plist parse: add file failed.\n"); + return (PKG_NOT_OK); + } + if (st->ignore_next_file != 0) { + status |= pkg_file_set_ignored(st->last_file); + st->ignore_next_file = 0; + } break; case (PM_UNKNOWN): default: ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.c#18 (text+ko) ==== @@ -187,6 +187,8 @@ (group != NULL ? group : BAD_OR_UNKNOWN_VALUE)); fprintf(stream, "\t\t\tMODE: %s\n", (mode != NULL ? mode : BAD_OR_UNKNOWN_VALUE)); + fprintf(stream, "\t\t\tIGNORED: %s\n", + (pkg_pkg_file_ignored(p, file) ? "yes" : "no")); } fprintf(stream, "\tdepends:\n"); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#15 (text+ko) ==== @@ -2,6 +2,8 @@ #define __PKG_UTIL_H__ #include +#include "pkg_error.h" +#include "pkg.h" void pkg_util_trim_newline(char *to_trim); @@ -17,10 +19,33 @@ void rage_quit(void); -#define APPEND_TO_ARRAY_AND_LIST(struct_type, entries, list, tmp_entries, tmp_list, current_count, increase) \ - tmp_list = list; \ - tmp_entries = entries; \ - list = realloc(tmp_list, sizeof(*tmp_list) * (current_count + increase)); \ - entries = realloc(tmp_entries, sizeof(tmp_entries) * (current_count + increase)); +#define STRING_LIST_APPEND(list, append, tmp_list, list_sz, factor) \ + if (list_sz % factor == 0) { \ + tmp_list = list; \ + list = realloc(tmp_list, sizeof(*tmp_list) * (list_sz + factor + 1)); \ + } \ + if (list != NULL) { \ + list[list_sz++] = strdup(append); \ + list[list_sz] = NULL; \ + } + +#define ARRAY_FACTOR_REALLOC(array, tmp_array, array_sz, factor) \ + if (array_sz % factor == 0) { \ + tmp_array = array; \ + array = realloc(tmp_array, sizeof(*tmp_array) * (array_sz + factor + 1)); \ + } \ + if (array != NULL) \ + array_sz++ + +#define PARALLEL_ARRAY_LIST_REALLOC(array, tmp_array, list, tmp_list, sz, factor) \ + if (sz % factor == 0) { \ + tmp_array = array; \ + tmp_list = list; \ + array = realloc(tmp_array, sizeof(*tmp_array) * (sz + factor + 1)); \ + list = realloc(tmp_list, sizeof(*tmp_list) * (sz + factor + 1)); \ + } \ + if (array != NULL && list != NULL) \ + sz++ + #endif ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#32 (text+ko) ==== @@ -74,6 +74,7 @@ pkg_db_close(db); pkg_db_delete(db); + return (EXIT_SUCCESS); } @@ -306,8 +307,9 @@ klist = pkg_required_by(p); if (klist != NULL) { fprintf(out, "Required by:\n"); - for (; *klist != NULL; buff = *klist++) + for (buff = *klist; *klist != NULL; buff = *++klist) { printf("%s\n", buff); + } } printf("\n"); } From owner-p4-projects@FreeBSD.ORG Mon Aug 17 09:19:41 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 22B541065692; Mon, 17 Aug 2009 09:19:41 +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 DB415106568F for ; Mon, 17 Aug 2009 09:19:40 +0000 (UTC) (envelope-from marta@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C98E68FC5B for ; Mon, 17 Aug 2009 09:19:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7H9JeXF027729 for ; Mon, 17 Aug 2009 09:19:40 GMT (envelope-from marta@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7H9JedE027727 for perforce@freebsd.org; Mon, 17 Aug 2009 09:19:40 GMT (envelope-from marta@FreeBSD.org) Date: Mon, 17 Aug 2009 09:19:40 GMT Message-Id: <200908170919.n7H9JedE027727@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marta@FreeBSD.org using -f From: Marta Carbone To: Perforce Change Reviews Cc: Subject: PERFORCE change 167434 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, 17 Aug 2009 09:19:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=167434 Change 167434 by marta@marta_onelab1 on 2009/08/17 09:19:25 Split the rules listing in two separated requests. Affected files ... .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw2.c#3 edit .. //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw2.h#3 edit .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in.h#2 edit .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ipfw/ip_fw2.c#3 edit .. //depot/projects/soc2009/marta_ipfw/src/sys/netinet/raw_ip.c#2 edit Differences ... ==== //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw2.c#3 (text+ko) ==== @@ -357,7 +357,8 @@ if (s < 0) err(EX_UNAVAILABLE, "socket"); - if (optname == IP_FW_GET || optname == IP_DUMMYNET_GET || + if (optname == IP_FW_GET || optname == IP_FW_DYN_GET || + optname == IP_DUMMYNET_GET || optname == IP_FW_ADD || optname == IP_FW_TABLE_LIST || optname == IP_FW_TABLE_GETSIZE || optname == IP_FW_NAT_GET_CONFIG || @@ -1727,19 +1728,17 @@ * * In case of success EX_OK is returned. */ +/* decompile static rules */ int -ipfw_list_decompile(void *data, int nbytes, struct sbuf *out, struct cmdline_opts *co) +decompile_static_rules(void *data, int nbytes, struct sbuf *out, struct cmdline_opts *co) { struct ip_fw *r; - ipfw_dyn_rule *dynrules, *d; int exitval = EX_OK; char *lim; int bcwidth, n, pcwidth, width; int nstat; /* number of static rules */ - int ndyn; /* number of dynamic rules */ int seen = 0; /* flag for rules presence */ - uint8_t set; if (co->do_pipe) { ipfw_list_pipes(data, nbytes, out, co); @@ -1756,15 +1755,6 @@ ++nstat, r = NEXT(r) ) ; /* nothing */ - /* - * Count dynamic rules. This is easier as they have - * fixed size. - */ - r = NEXT(r); - dynrules = (ipfw_dyn_rule *)r ; - n = (char *)r - (char *)data; - ndyn = (nbytes - n) / sizeof *dynrules; - /* if showing stats, figure out column widths ahead of time */ bcwidth = pcwidth = 0; if (co->do_acct) { @@ -1786,27 +1776,7 @@ bcwidth = width; } } - if (co->do_dynamic && ndyn) { - for (n = 0, d = dynrules; n < ndyn; n++, d++) { - if (co->use_set) { - /* skip rules from another set */ - bcopy((char *)&d->rule + sizeof(uint16_t), - &set, sizeof(uint8_t)); - if (set != co->use_set - 1) - continue; - } - width = snprintf(NULL, 0, "%llu", - align_uint64(&d->pcnt)); - if (width > pcwidth) - pcwidth = width; - width = snprintf(NULL, 0, "%llu", - align_uint64(&d->bcnt)); - if (width > bcwidth) - bcwidth = width; - } - } - /* show static rules */ for (n = 0, r = data; n < nstat; n++, r = NEXT(r)) { /* skip boundaries */ @@ -1833,30 +1803,75 @@ warnx("rules %lu-%lu does not exist", co->first, co->last); } - /* show dynamic rules */ - if (co->do_dynamic && ndyn) { - sbuf_printf(out, "## Dynamic rules (%d):\n", ndyn); +#undef NEXT + + return exitval; +} + +/* decompile dynamic rules */ +int +decompile_dynamic_rules(void *data, int nbytes, struct sbuf *out, struct cmdline_opts *co) +{ + struct ip_fw *r = data; + ipfw_dyn_rule *dynrules, *d; + int exitval = EX_OK; + + int bcwidth, n, pcwidth, width; + int ndyn; /* number of dynamic rules */ + uint8_t set; + + /* + * Count dynamic rules. This is easier as they have + * fixed size. + */ + dynrules = (ipfw_dyn_rule *)r ; + ndyn = nbytes / sizeof *dynrules; + + if (ndyn == 0) + return exitval; + + /* if showing stats, figure out column widths ahead of time */ - for (n = 0, d = dynrules; n < ndyn; n++, d++) { - /* skip boundaries */ - if (r->rulenum < co->first) + bcwidth = pcwidth = 0; + for (n = 0, d = dynrules; n < ndyn; n++, d++) { + if (co->use_set) { + /* skip rules from another set */ + bcopy((char *)&d->rule + sizeof(uint16_t), + &set, sizeof(uint8_t)); + if (set != co->use_set - 1) continue; - if (r->rulenum > co->last) - break; + } + width = snprintf(NULL, 0, "%llu", + align_uint64(&d->pcnt)); + if (width > pcwidth) + pcwidth = width; + + width = snprintf(NULL, 0, "%llu", + align_uint64(&d->bcnt)); + if (width > bcwidth) + bcwidth = width; + } + + /* show dynamic rules */ + sbuf_printf(out, "## Dynamic rules (%d):\n", ndyn); - if (co->use_set) { - bcopy((char *)&d->rule + sizeof(uint16_t), - &set, sizeof(uint8_t)); - if (set != co->use_set - 1) - continue; - } + for (n = 0, d = dynrules; n < ndyn; n++, d++) { + /* skip boundaries */ + if (r->rulenum < co->first) + continue; + if (r->rulenum > co->last) + break; - show_dyn_ipfw(d, pcwidth, bcwidth, out, co); + if (co->use_set) { + bcopy((char *)&d->rule + sizeof(uint16_t), + &set, sizeof(uint8_t)); + if (set != co->use_set - 1) + continue; } + + show_dyn_ipfw(d, pcwidth, bcwidth, out, co); } -#undef NEXT - return exitval; } @@ -1867,7 +1882,7 @@ void *data = NULL; int nbytes; - const int ocmd = co->do_pipe ? IP_DUMMYNET_GET : IP_FW_GET; + int ocmd = IP_FW_GET; /* default command is request static rules */ int nalloc = 1024; /* start somewhere... */ if (co->test_only) { @@ -1875,6 +1890,12 @@ return; } + /* get pipes or dynamic rules according command options */ + if (co->do_pipe) + ocmd = IP_DUMMYNET_GET; + else if (co->do_dynamic) + ocmd = IP_FW_DYN_GET; + ac--; av++; @@ -1890,7 +1911,10 @@ co->do_pipe ? "DUMMYNET" : "FW"); } - exitval = ipfw_list_decompile(data, nbytes, out, co); + if (co->do_dynamic) + exitval = decompile_dynamic_rules(data, nbytes, out, co); + else + exitval = decompile_static_rules(data, nbytes, out, co); /* free resources */ free(data); ==== //depot/projects/soc2009/marta_ipfw/src/sbin/ipfw/ipfw2.h#3 (text+ko) ==== @@ -20,6 +20,8 @@ * $FreeBSD: src/sbin/ipfw/ipfw2.h,v 1.9 2009/06/24 22:57:07 oleg Exp $ */ +#include + /* * Options that can be set on the command line. * When reading commands from a file, a subset of the options can also @@ -262,7 +264,8 @@ extern void ipfw_add_compile_str(char *cmdstr, uint32_t *rulebuf, int *rulesize); struct ip_fw; extern void decompile_rule(struct ip_fw *rule, int pcwidth, int bcwidth, struct sbuf *out, struct cmdline_opts *co); -extern int ipfw_list_decompile(void *data, int nbytes, struct sbuf *out, struct cmdline_opts *co); +extern int decompile_static_rules(void *data, int nbytes, struct sbuf *out, struct cmdline_opts *co); +extern int decompile_dynamic_rules(void *data, int nbytes, struct sbuf *out, struct cmdline_opts *co); /* convert a rule in ac, av format, as required by the internal compilation process */ extern char **strtoargs(char *arg, int *ac); ==== //depot/projects/soc2009/marta_ipfw/src/sys/netinet/in.h#2 (text+ko) ==== @@ -443,6 +443,7 @@ #define IP_ONESBCAST 23 /* bool: send all-ones broadcast */ #define IP_BINDANY 24 /* bool: allow bind to any address */ +#define IP_FW_DYN_GET 39 /* get dynamic rule chain */ #define IP_FW_TABLE_ADD 40 /* add entry */ #define IP_FW_TABLE_DEL 41 /* delete entry */ #define IP_FW_TABLE_FLUSH 42 /* flush table */ @@ -453,7 +454,7 @@ #define IP_FW_DEL 51 /* delete a firewall rule from chain */ #define IP_FW_FLUSH 52 /* flush firewall rule chain */ #define IP_FW_ZERO 53 /* clear single/all firewall counter(s) */ -#define IP_FW_GET 54 /* get entire firewall rule chain */ +#define IP_FW_GET 54 /* get static rule chain */ #define IP_FW_RESETLOG 55 /* reset logging counters */ #define IP_FW_NAT_CFG 56 /* add/config a nat rule */ ==== //depot/projects/soc2009/marta_ipfw/src/sys/netinet/ipfw/ip_fw2.c#3 (text+ko) ==== @@ -4644,7 +4644,7 @@ } /* - * Copy the static and dynamic rules to the supplied buffer + * Copy the static rules to the supplied buffer * and return the amount of space actually used. */ static size_t @@ -4683,6 +4683,23 @@ } } IPFW_RUNLOCK(chain); + return (bp - (char *)buf); +} + +/* + * Copy the dynamic rules to the supplied buffer + * and return the amount of space actually used. + */ +static size_t +ipfw_getdynrules(struct ip_fw_chain *chain, void *buf, size_t space) +{ + char *bp = buf; + char *ep = bp + space; + int i; + time_t boot_seconds; + + boot_seconds = boottime.tv_sec; + /* XXX this can take a long time and locking will block packet flow */ if (V_ipfw_dyn_v) { ipfw_dyn_rule *p, *last = NULL; @@ -4724,7 +4741,6 @@ return (bp - (char *)buf); } - /** * {set|get}sockopt parser. */ @@ -4733,7 +4749,7 @@ { #define RULE_MAXSIZE (256*sizeof(u_int32_t)) int error; - size_t size; + size_t size = 0; struct ip_fw *buf, *rule; u_int32_t rulenum[2]; @@ -4757,10 +4773,8 @@ switch (sopt->sopt_name) { case IP_FW_GET: /* - * pass up a copy of the current rules. Static rules - * come first (the last of which has number IPFW_DEFAULT_RULE), - * followed by a possibly empty list of dynamic rule. - * The last dynamic rule has NULL in the "next" field. + * Pass up a copy of the current static rules. + * The last staic rule has number IPFW_DEFAULT_RULE. * * Note that the calculated size is used to bound the * amount of data returned to the user. The rule set may @@ -4768,8 +4782,6 @@ * data in which case we'll just return what fits. */ size = V_static_len; /* size of static rules */ - if (V_ipfw_dyn_v) /* add size of dyn.rules */ - size += (V_dyn_count * sizeof(ipfw_dyn_rule)); if (size >= sopt->sopt_valsize) break; @@ -4784,6 +4796,27 @@ free(buf, M_TEMP); break; + case IP_FW_DYN_GET: + /* + * Pass up a copy of the current dynamic rules. + * The last dynamic rule has NULL in the "next" field. + */ + if (V_ipfw_dyn_v) /* size of dyn. rules */ + size = (V_dyn_count * sizeof(ipfw_dyn_rule)); + + if (size >= sopt->sopt_valsize) + break; + /* + * XXX todo: if the user passes a short length just to know + * how much room is needed, do not bother filling up the + * buffer, just jump to the sooptcopyout. + */ + buf = malloc(size, M_TEMP, M_WAITOK); + error = sooptcopyout(sopt, buf, + ipfw_getdynrules(&V_layer3_chain, buf, size)); + free(buf, M_TEMP); + break; + case IP_FW_FLUSH: /* * Normally we cannot release the lock on each iteration. ==== //depot/projects/soc2009/marta_ipfw/src/sys/netinet/raw_ip.c#2 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/netinet/raw_ip.c,v 1.220 2009/08/01 19:26:27 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/netinet/raw_ip.c,v 1.219 2009/07/16 21:13:04 rwatson Exp $"); #include "opt_inet6.h" #include "opt_ipsec.h" @@ -519,6 +519,7 @@ case IP_FW_ADD: /* ADD actually returns the body... */ case IP_FW_GET: + case IP_FW_DYN_GET: case IP_FW_TABLE_GETSIZE: case IP_FW_TABLE_LIST: case IP_FW_NAT_GET_CONFIG: From owner-p4-projects@FreeBSD.ORG Mon Aug 17 10:30:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 92DC11065690; Mon, 17 Aug 2009 10:30: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 5729A106568C for ; Mon, 17 Aug 2009 10:30:59 +0000 (UTC) (envelope-from syl@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 453758FC3F for ; Mon, 17 Aug 2009 10:30:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7HAUxA5034466 for ; Mon, 17 Aug 2009 10:30:59 GMT (envelope-from syl@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7HAUxci034464 for perforce@freebsd.org; Mon, 17 Aug 2009 10:30:59 GMT (envelope-from syl@FreeBSD.org) Date: Mon, 17 Aug 2009 10:30:59 GMT Message-Id: <200908171030.n7HAUxci034464@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to syl@FreeBSD.org using -f From: Sylvestre Gallon To: Perforce Change Reviews Cc: Subject: PERFORCE change 167440 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, 17 Aug 2009 10:30:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=167440 Change 167440 by syl@syl_atuin on 2009/08/17 10:29:58 Changes requested by Hans Petter Selasky : - Change the fops typedef. - Remove cast in fops initialisation. Affected files ... .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#16 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#14 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#13 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#15 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#22 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#14 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_controller.h#14 edit .. //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_roothub_exec.c#9 edit Differences ... ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/at91dci.c#16 (text+ko) ==== @@ -207,8 +207,10 @@ } static void -at91dci_clocks_on(struct at91dci_softc *sc) +at91dci_clocks_on(void *arg) { + struct at91dci_softc *sc = (struct at91dci_softc *)arg; + if (sc->sc_flags.clocks_off && sc->sc_flags.port_powered) { @@ -225,8 +227,10 @@ } static void -at91dci_clocks_off(struct at91dci_softc *sc) +at91dci_clocks_off(void *arg) { + struct at91dci_softc *sc = (struct at91dci_softc *)arg; + if (!sc->sc_flags.clocks_off) { DPRINTFN(5, "\n"); @@ -242,8 +246,10 @@ } static void -at91dci_pull_up(struct at91dci_softc *sc) +at91dci_pull_up(void *arg) { + struct at91dci_softc *sc = (struct at91dci_softc *)arg; + /* pullup D+, if possible */ if (!sc->sc_flags.d_pulled_up && @@ -254,8 +260,10 @@ } static void -at91dci_pull_down(struct at91dci_softc *sc) +at91dci_pull_down(void *arg) { + struct at91dci_softc *sc = (struct at91dci_softc *)arg; + /* pulldown D+, if possible */ if (sc->sc_flags.d_pulled_up) { @@ -265,8 +273,10 @@ } static void -at91dci_wakeup_peer(struct at91dci_softc *sc) +at91dci_wakeup_peer(void *arg) { + struct at91dci_softc *sc = (struct at91dci_softc *)arg; + if (!(sc->sc_flags.status_suspend)) { return; } @@ -1643,11 +1653,11 @@ static const struct usb_roothub_fops fops = { USB_DEFAULT_ROOTHUB, .handle_get_port_status = &at91dci_get_port_status, - .handle_clocks_on = (usb_clocks_fops_t)&at91dci_clocks_on, - .handle_clocks_off = (usb_clocks_fops_t)&at91dci_clocks_off, - .handle_pull_up = (usb_clocks_fops_t)&at91dci_pull_up, - .handle_pull_down = (usb_clocks_fops_t)&at91dci_pull_down, - .handle_wakeup_peer = (usb_clocks_fops_t)&at91dci_wakeup_peer, + .handle_clocks_on = &at91dci_clocks_on, + .handle_clocks_off = &at91dci_clocks_off, + .handle_pull_up = &at91dci_pull_up, + .handle_pull_down = &at91dci_pull_down, + .handle_wakeup_peer = &at91dci_wakeup_peer, }; return generic_roothub_exec((struct usb_generic_softc *)sc, &fops, req, ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/atmegadci.c#14 (text+ko) ==== @@ -143,8 +143,10 @@ } static void -atmegadci_clocks_on(struct atmegadci_softc *sc) +atmegadci_clocks_on(void *arg) { + struct atmegadci_softc *sc = (struct atmegadci_softc *)arg; + if (sc->sc_flags.clocks_off && sc->sc_flags.port_powered) { @@ -165,8 +167,10 @@ } static void -atmegadci_clocks_off(struct atmegadci_softc *sc) +atmegadci_clocks_off(void *arg) { + struct atmegadci_softc *sc = (struct atmegadci_softc *)arg; + if (!sc->sc_flags.clocks_off) { DPRINTFN(5, "\n"); @@ -187,8 +191,10 @@ } static void -atmegadci_pull_up(struct atmegadci_softc *sc) +atmegadci_pull_up(void *arg) { + struct atmegadci_softc *sc = (struct atmegadci_softc *)arg; + /* pullup D+, if possible */ if (!sc->sc_flags.d_pulled_up && @@ -199,8 +205,10 @@ } static void -atmegadci_pull_down(struct atmegadci_softc *sc) +atmegadci_pull_down(void *arg) { + struct atmegadci_softc *sc = (struct atmegadci_softc *)arg; + /* pulldown D+, if possible */ if (sc->sc_flags.d_pulled_up) { @@ -210,8 +218,9 @@ } static void -atmegadci_wakeup_peer(struct atmegadci_softc *sc) +atmegadci_wakeup_peer(void *arg) { + struct atmegadci_softc *sc = (struct atmegadci_softc *)arg; uint8_t temp; if (!sc->sc_flags.status_suspend) { @@ -1478,7 +1487,7 @@ static usb_error_t atmega_clear_port_feature(struct usb_generic_softc *atsc, - struct usb_roothub_fops *fops, uint16_t *len, uint16_t *value, + const struct usb_roothub_fops *fops, uint16_t *len, uint16_t *value, uint16_t *index) { struct atmegadci_softc *sc = (struct atmegadci_softc *)atsc; @@ -1566,11 +1575,11 @@ static const struct usb_roothub_fops fops = { USB_DEFAULT_ROOTHUB, .handle_clear_port_feature = &atmega_clear_port_feature, - .handle_clocks_on = (usb_clocks_fops_t)&atmegadci_clocks_on, - .handle_clocks_off = (usb_clocks_fops_t)&atmegadci_clocks_off, - .handle_pull_up = (usb_clocks_fops_t)&atmegadci_pull_up, - .handle_pull_down = (usb_clocks_fops_t)&atmegadci_pull_down, - .handle_wakeup_peer = (usb_clocks_fops_t)&atmegadci_wakeup_peer, + .handle_clocks_on = &atmegadci_clocks_on, + .handle_clocks_off = &atmegadci_clocks_off, + .handle_pull_up = &atmegadci_pull_up, + .handle_pull_down = &atmegadci_pull_down, + .handle_wakeup_peer = &atmegadci_wakeup_peer, }; return generic_roothub_exec((struct usb_generic_softc *) sc, &fops, req, pptr, plength); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/avr32dci.c#13 (text+ko) ==== @@ -191,8 +191,10 @@ } static void -avr32dci_clocks_on(struct avr32dci_softc *sc) +avr32dci_clocks_on(void *arg) { + struct avr32dci_softc *sc = (struct avr32dci_softc *)arg; + if (sc->sc_flags.clocks_off && sc->sc_flags.port_powered) { @@ -208,8 +210,10 @@ } static void -avr32dci_clocks_off(struct avr32dci_softc *sc) +avr32dci_clocks_off(void *arg) { + struct avr32dci_softc *sc = (struct avr32dci_softc *)arg; + if (!sc->sc_flags.clocks_off) { DPRINTFN(5, "\n"); @@ -224,8 +228,10 @@ } static void -avr32dci_pull_up(struct avr32dci_softc *sc) +avr32dci_pull_up(void *arg) { + struct avr32dci_softc *sc = (struct avr32dci_softc *)arg; + /* pullup D+, if possible */ if (!sc->sc_flags.d_pulled_up && @@ -236,8 +242,10 @@ } static void -avr32dci_pull_down(struct avr32dci_softc *sc) +avr32dci_pull_down(void *arg) { + struct avr32dci_softc *sc = (struct avr32dci_softc *)arg; + /* pulldown D+, if possible */ if (sc->sc_flags.d_pulled_up) { @@ -247,8 +255,10 @@ } static void -avr32dci_wakeup_peer(struct avr32dci_softc *sc) +avr32dci_wakeup_peer(void *arg) { + struct avr32dci_softc *sc = (struct avr32dci_softc *)arg; + if (!sc->sc_flags.status_suspend) { return; } @@ -1552,11 +1562,11 @@ USB_DEFAULT_ROOTHUB, .handle_clear_port_feature = &avr32dci_clear_port_feature, .handle_get_port_status = &avr32dci_get_port_status, - .handle_clocks_on = (usb_clocks_fops_t)&avr32dci_clocks_on, - .handle_clocks_off = (usb_clocks_fops_t)&avr32dci_clocks_off, - .handle_pull_up = (usb_clocks_fops_t)&avr32dci_pull_up, - .handle_pull_down = (usb_clocks_fops_t)&avr32dci_pull_down, - .handle_wakeup_peer = (usb_clocks_fops_t)&avr32dci_wakeup_peer, + .handle_clocks_on = &avr32dci_clocks_on, + .handle_clocks_off = &avr32dci_clocks_off, + .handle_pull_up = &avr32dci_pull_up, + .handle_pull_down = &avr32dci_pull_down, + .handle_wakeup_peer = &avr32dci_wakeup_peer, }; return generic_roothub_exec((struct usb_generic_softc *) sc, &fops, req, pptr, plength); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/musb_otg.c#15 (text+ko) ==== @@ -140,8 +140,10 @@ } static void -musbotg_clocks_on(struct musbotg_softc *sc) +musbotg_clocks_on(void *arg) { + struct musbotg_softc *sc = (struct musbotg_softc *)arg; + if (sc->sc_flags.clocks_off && sc->sc_flags.port_powered) { @@ -157,8 +159,10 @@ } static void -musbotg_clocks_off(struct musbotg_softc *sc) +musbotg_clocks_off(void *arg) { + struct musbotg_softc *sc = (struct musbotg_softc *)arg; + if (!sc->sc_flags.clocks_off) { DPRINTFN(4, "\n"); @@ -187,8 +191,10 @@ } static void -musbotg_pull_up(struct musbotg_softc *sc) +musbotg_pull_up(void *arg) { + struct musbotg_softc *sc = (struct musbotg_softc *)arg; + /* pullup D+, if possible */ if (!sc->sc_flags.d_pulled_up && @@ -199,8 +205,10 @@ } static void -musbotg_pull_down(struct musbotg_softc *sc) +musbotg_pull_down(void *arg) { + struct musbotg_softc *sc = (struct musbotg_softc *)arg; + /* pulldown D+, if possible */ if (sc->sc_flags.d_pulled_up) { @@ -210,8 +218,9 @@ } static void -musbotg_wakeup_peer(struct musbotg_softc *sc) +musbotg_wakeup_peer(void *arg) { + struct musbotg_softc *sc = (struct musbotg_softc *)arg; uint8_t temp; if (!(sc->sc_flags.status_suspend)) { @@ -2055,11 +2064,11 @@ static const struct usb_roothub_fops fops = { USB_DEFAULT_ROOTHUB, .handle_get_port_status = &musbotg_get_port_status, - .handle_clocks_on = (usb_clocks_fops_t)&musbotg_clocks_on, - .handle_clocks_off = (usb_clocks_fops_t)&musbotg_clocks_off, - .handle_pull_up = (usb_clocks_fops_t)&musbotg_pull_up, - .handle_pull_down = (usb_clocks_fops_t)&musbotg_pull_down, - .handle_wakeup_peer = (usb_clocks_fops_t)&musbotg_wakeup_peer, + .handle_clocks_on = &musbotg_clocks_on, + .handle_clocks_off = &musbotg_clocks_off, + .handle_pull_up = &musbotg_pull_up, + .handle_pull_down = &musbotg_pull_down, + .handle_wakeup_peer = &musbotg_wakeup_peer, }; return generic_roothub_exec((struct usb_generic_softc *)sc, &fops, req, pptr, plength); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/s3c24xxdci.c#22 (text+ko) ==== @@ -150,8 +150,10 @@ } static void -s3c24dci_clocks_on(struct s3c24dci_softc *sc) +s3c24dci_clocks_on(void *arg) { + struct s3c24dci_softc *sc = (struct s3c24dci_softc *)arg; + if (sc->sc_flags.clocks_off && sc->sc_flags.port_powered) { @@ -165,8 +167,10 @@ } static void -s3c24dci_clocks_off(struct s3c24dci_softc *sc) +s3c24dci_clocks_off(void *arg) { + struct s3c24dci_softc *sc = (struct s3c24dci_softc *)arg; + if (!sc->sc_flags.clocks_off) { DPRINTFN(5, "\n"); @@ -179,8 +183,10 @@ } static void -s3c24dci_pull_up(struct s3c24dci_softc *sc) +s3c24dci_pull_up(void *arg) { + struct s3c24dci_softc *sc = (struct s3c24dci_softc *)arg; + /* pullup D+, if possible */ if (!sc->sc_flags.d_pulled_up && @@ -191,8 +197,10 @@ } static void -s3c24dci_pull_down(struct s3c24dci_softc *sc) +s3c24dci_pull_down(void *arg) { + struct s3c24dci_softc *sc = (struct s3c24dci_softc *)arg; + /* pulldown D+, if possible */ if (sc->sc_flags.d_pulled_up) { @@ -202,8 +210,10 @@ } static void -s3c24dci_wakeup_peer(struct s3c24dci_softc *sc) +s3c24dci_wakeup_peer(void *arg) { + struct s3c24dci_softc *sc = (struct s3c24dci_softc *)arg; + if (!(sc->sc_flags.status_suspend)) { return; } @@ -860,11 +870,11 @@ struct s3c24dci_softc *sc = S3C24_DCI_BUS2SC(udev->bus); static const struct usb_roothub_fops fops = { USB_DEFAULT_ROOTHUB, - .handle_clocks_on = (usb_clocks_fops_t)&s3c24dci_clocks_on, - .handle_clocks_off = (usb_clocks_fops_t)&s3c24dci_clocks_off, - .handle_pull_up = (usb_clocks_fops_t)&s3c24dci_pull_up, - .handle_pull_down = (usb_clocks_fops_t)&s3c24dci_pull_down, - .handle_wakeup_peer = (usb_clocks_fops_t)&s3c24dci_wakeup_peer, + .handle_clocks_on = &s3c24dci_clocks_on, + .handle_clocks_off = &s3c24dci_clocks_off, + .handle_pull_up = &s3c24dci_pull_up, + .handle_pull_down = &s3c24dci_pull_down, + .handle_wakeup_peer = &s3c24dci_wakeup_peer, }; return generic_roothub_exec((struct usb_generic_softc *)sc, &fops, req, pptr, plength); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/controller/uss820dci.c#14 (text+ko) ==== @@ -181,8 +181,9 @@ } static void -uss820dci_pull_up(struct uss820dci_softc *sc) +uss820dci_pull_up(void *arg) { + struct uss820dci_softc *sc = (struct uss820dci_softc *)arg; uint8_t temp; /* pullup D+, if possible */ @@ -200,8 +201,9 @@ } static void -uss820dci_pull_down(struct uss820dci_softc *sc) +uss820dci_pull_down(void *arg) { + struct uss820dci_softc *sc = (struct uss820dci_softc *)arg; uint8_t temp; /* pulldown D+, if possible */ @@ -218,8 +220,10 @@ } static void -uss820dci_wakeup_peer(struct uss820dci_softc *sc) +uss820dci_wakeup_peer(void *arg) { + struct uss820dci_softc *sc = (struct uss820dci_softc *)arg; + if (!(sc->sc_flags.status_suspend)) { return; } @@ -1630,9 +1634,9 @@ struct uss820dci_softc *sc = USS820_DCI_BUS2SC(udev->bus); static const struct usb_roothub_fops fops = { USB_DEFAULT_ROOTHUB, - .handle_pull_up = (usb_clocks_fops_t)&uss820dci_pull_up, - .handle_pull_down = (usb_clocks_fops_t)&uss820dci_pull_down, - .handle_wakeup_peer = (usb_clocks_fops_t)&uss820dci_wakeup_peer, + .handle_pull_up = &uss820dci_pull_up, + .handle_pull_down = &uss820dci_pull_down, + .handle_wakeup_peer = &uss820dci_wakeup_peer, }; return generic_roothub_exec((struct usb_generic_softc *)sc, &fops, req, pptr, plength); ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_controller.h#14 (text+ko) ==== @@ -209,34 +209,34 @@ struct usb_port_status ps; }; -typedef usb_error_t (*usb_roothub_fops_t)(struct usb_generic_softc *sc, const struct usb_roothub_fops *fops, uint16_t *len, uint16_t *value, uint16_t *index); -typedef usb_error_t (*usb_clocks_fops_t)(struct usb_generic_softc *sc); +typedef usb_error_t (usb_roothub_fops_t)(struct usb_generic_softc *sc, const struct usb_roothub_fops *fops, uint16_t *len, uint16_t *value, uint16_t *index); +typedef void (usb_clocks_fops_t)(void *arg); struct usb_roothub_fops { - usb_roothub_fops_t handle_get_descriptor; - usb_roothub_fops_t handle_get_config; - usb_roothub_fops_t handle_get_status; - usb_roothub_fops_t handle_set_address; - usb_roothub_fops_t handle_set_config; - usb_roothub_fops_t handle_clear_halt; - usb_roothub_fops_t handle_clear_wakeup; - usb_roothub_fops_t handle_set_halt; - usb_roothub_fops_t handle_set_wakeup; - usb_roothub_fops_t handle_get_ep_status; - usb_roothub_fops_t handle_set_interface; - usb_roothub_fops_t handle_get_interface; - usb_roothub_fops_t handle_get_iface_status; - usb_roothub_fops_t handle_clear_port_feature; - usb_roothub_fops_t handle_set_port_feature; - usb_roothub_fops_t handle_get_tt_state; - usb_roothub_fops_t handle_get_port_status; - usb_roothub_fops_t handle_get_class_descriptor; - usb_roothub_fops_t handle_get_class_status; - usb_clocks_fops_t handle_clocks_on; - usb_clocks_fops_t handle_clocks_off; - usb_clocks_fops_t handle_pull_up; - usb_clocks_fops_t handle_pull_down; - usb_clocks_fops_t handle_wakeup_peer; + usb_roothub_fops_t *handle_get_descriptor; + usb_roothub_fops_t *handle_get_config; + usb_roothub_fops_t *handle_get_status; + usb_roothub_fops_t *handle_set_address; + usb_roothub_fops_t *handle_set_config; + usb_roothub_fops_t *handle_clear_halt; + usb_roothub_fops_t *handle_clear_wakeup; + usb_roothub_fops_t *handle_set_halt; + usb_roothub_fops_t *handle_set_wakeup; + usb_roothub_fops_t *handle_get_ep_status; + usb_roothub_fops_t *handle_set_interface; + usb_roothub_fops_t *handle_get_interface; + usb_roothub_fops_t *handle_get_iface_status; + usb_roothub_fops_t *handle_clear_port_feature; + usb_roothub_fops_t *handle_set_port_feature; + usb_roothub_fops_t *handle_get_tt_state; + usb_roothub_fops_t *handle_get_port_status; + usb_roothub_fops_t *handle_get_class_descriptor; + usb_roothub_fops_t *handle_get_class_status; + usb_clocks_fops_t *handle_clocks_on; + usb_clocks_fops_t *handle_clocks_off; + usb_clocks_fops_t *handle_pull_up; + usb_clocks_fops_t *handle_pull_down; + usb_clocks_fops_t *handle_wakeup_peer; }; /* prototypes */ ==== //depot/projects/soc2009/syl_usb/src/sys/dev/usb/usb_roothub_exec.c#9 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Mon Aug 17 12:22:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7F261065690; Mon, 17 Aug 2009 12:22: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 ACA40106568B for ; Mon, 17 Aug 2009 12:22:00 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B8348FC57 for ; Mon, 17 Aug 2009 12:22:00 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7HCM0Xm045721 for ; Mon, 17 Aug 2009 12:22:00 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7HCM0Oo045719 for perforce@freebsd.org; Mon, 17 Aug 2009 12:22:00 GMT (envelope-from anchie@FreeBSD.org) Date: Mon, 17 Aug 2009 12:22:00 GMT Message-Id: <200908171222.n7HCM0Oo045719@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167442 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, 17 Aug 2009 12:22:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=167442 Change 167442 by anchie@anchie_malimis on 2009/08/17 12:21:47 Set socket options for the packets that are going back to kernel. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#25 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#25 (text+ko) ==== @@ -176,6 +176,8 @@ if (rtm->rtm_flags & M_MCAST) DBG(&dbg_snd, "M_MCAST!"); + DBG_HEXDUMP(&dbg_snd, "Sending back to kernel: ", rtm, rtm->rtm_msglen); + if (send(sndsock, rtm, b->len, 0) < 0) { DBG(&dbg_snd, "Failed to send routing message back to kernel."); perror("Failed"); @@ -274,7 +276,7 @@ applog(LOG_ERR, "%s: read: %s", __FUNCTION__, strerror(errno)); goto done; } else - DBG(&dbg_snd, "%d bytes received on routing socket.", n); + DBG(&dbg_snd, "%d bytes received on routing socket. (%d)", n, b->rem); b->len = n; @@ -396,7 +398,7 @@ int snd_net_init(int *icmp6socket, int *sndsocket) { - int v; + int v, off; struct icmp6_filter filter; #ifdef DEBUG struct dlog_desc *dbgs[] = { @@ -440,7 +442,15 @@ __FUNCTION__, strerror(errno)); return (-1); } - + + /* Tell the kernel to not send us back our own rt messages. */ + off = 0; + if (setsockopt(sndsock, SOL_SOCKET, SO_USELOOPBACK, &off, sizeof(off)) < 0) { + applog(LOG_ERR, "%s: setsock(sndsock, SO_USELOOPBACK, off) " + "failed: %s.", __func__, strerror(errno)); + return(-1); + } + ICMP6_FILTER_SETBLOCKALL(&filter); ICMP6_FILTER_SETPASS(ICMP6_SND_CPS, &filter); ICMP6_FILTER_SETPASS(ICMP6_SND_CPA, &filter); From owner-p4-projects@FreeBSD.ORG Mon Aug 17 18:14:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 97CB4106568D; Mon, 17 Aug 2009 18:14:26 +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 5BD03106568B for ; Mon, 17 Aug 2009 18:14:26 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4AF9D8FC41 for ; Mon, 17 Aug 2009 18:14:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7HIEQkJ000361 for ; Mon, 17 Aug 2009 18:14:26 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7HIEQ6B000359 for perforce@freebsd.org; Mon, 17 Aug 2009 18:14:26 GMT (envelope-from bz@freebsd.org) Date: Mon, 17 Aug 2009 18:14:26 GMT Message-Id: <200908171814.n7HIEQ6B000359@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167452 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, 17 Aug 2009 18:14:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167452 Change 167452 by bz@bz_zoo on 2009/08/17 18:14:02 I missed that we are inside a nested switch, so a single break is not sufficient. Also add a default case to catch unsupported SND messages. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#18 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/net/rtsock.c#18 (text+ko) ==== @@ -544,7 +544,7 @@ error = send_output_hook(n, ifp, SND_IN); if (error) senderr(error); - break; + goto flush; case RTM_SND_OUT: ifp = ifnet_byindex(rtm->rtm_index); if (!ifp) { @@ -561,7 +561,9 @@ error = send_output_hook(n, ifp, SND_OUT); if (error) senderr(error); - break; + goto flush; + default: + senderr(EOPNOTSUPP); } case RTM_ADD: From owner-p4-projects@FreeBSD.ORG Mon Aug 17 18:35:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0E7D7106568D; Mon, 17 Aug 2009 18:35: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 C709C106568B for ; Mon, 17 Aug 2009 18:35:49 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B528A8FC59 for ; Mon, 17 Aug 2009 18:35:49 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7HIZnwG001988 for ; Mon, 17 Aug 2009 18:35:49 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7HIZn8Y001986 for perforce@freebsd.org; Mon, 17 Aug 2009 18:35:49 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 17 Aug 2009 18:35:49 GMT Message-Id: <200908171835.n7HIZn8Y001986@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 167453 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, 17 Aug 2009 18:35:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=167453 Change 167453 by dforsyth@squirrel on 2009/08/17 18:35:47 Macro list realloc Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#16 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_db_hierdb_read.c#7 (text+ko) ==== @@ -228,11 +228,17 @@ if (!pkg_db_hierdb_file_exists(db, p, REQUIRED_BY_FILE)) return (PKG_OK); /* +REQUIRED_BY doesn't have to exist. */ - + + list = NULL; reqdby_stream = pkg_db_hierdb_open_file_stream_read(db, p, REQUIRED_BY_FILE); for (count = 0, reqdby = NULL; fgets(line, FILENAME_MAX, reqdby_stream) != NULL;) { pkg_util_trim_newline(line); - STRING_LIST_APPEND(reqdby, line, list, count, 10); + LIST_FACTOR_REALLOC(reqdby, list, count, 10); + if (reqdby == NULL) { + for (reqdby = list; count; count--) + free(reqdby[count - 1]); + return (PKG_MEMORY_ERR | PKG_NOT_OK); + } } fclose(reqdby_stream); ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#7 (text+ko) ==== @@ -340,82 +340,79 @@ /* Add command strings to a package. Do not sort. */ -/* Add an exec command to a manifest, which will be run at install time. Returns the - * status of the operation. */ +/* Add an exec command to a manifest, which will be run at install time. Returns + * index of new cmd if successful, -1 otherwise. */ int pkg_manifest_add_exec_cmd(struct pkg_manifest *pm, const char *cmd) { - int status; char **list; pkg_error_null_argument("command", cmd, __func__); + + list = NULL; + LIST_FACTOR_REALLOC(pm->exec_list, list, pm->exec_count, 10); + if (pm->exec_list == NULL) { + pm->exec_list = list; + return (-1); + } + if (pkg_util_strdup(cmd, &pm->exec_list[pm->exec_count - 1]) != PKG_OK) + return (-1); - if (pm->exec_count % 10 == 0) { - list = pm->exec_list; - pm->exec_list = realloc(list, sizeof(*list) * (pm->exec_count + 11)); - if (pm->exec_list == NULL) { - pm->exec_list = list; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } - } - - status = pkg_util_strdup(cmd, &pm->exec_list[pm->exec_count++]); pm->exec_list[pm->exec_count] = NULL; - return (status); + return (pm->exec_count - 1); } /* Add an unexec command to a manifest, which will be executed at deinstall time. - * Returns the status of the operation. */ + * Return index of new cmd if successful, -1 otherwise. */ int pkg_manifest_add_unexec_cmd(struct pkg_manifest *pm, const char *cmd) { - int status; char **list; pkg_error_null_argument("command", cmd, __func__); - if (pm->unexec_count % 10 == 0) { - list = pm->unexec_list; - pm->unexec_list = realloc(list, sizeof(*list) * (pm->unexec_count + 11)); - if (pm->unexec_list == NULL) { - pm->unexec_list = list; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } + list = NULL; + LIST_FACTOR_REALLOC(pm->unexec_list, list, pm->unexec_count, 10); + if (pm->unexec_list == NULL) { + pm->unexec_list = list; + return (-1); } - status = pkg_util_strdup(cmd, &pm->unexec_list[pm->unexec_count++]); + if (pkg_util_strdup(cmd, &pm->unexec_list[pm->unexec_count - 1]) != PKG_OK) + return (-1); + pm->unexec_list[pm->unexec_count] = NULL; - return (status); + return (pm->unexec_count - 1); } /* Add a dirrm command to a manifest that will remove the directory dir at deinstall - * time. Returns the status of the operation. */ + * time. Return index of new cmd if successful, -1 otherwise. */ int pkg_manifest_add_dirrm_cmd(struct pkg_manifest *pm, const char *dir) { - int status; char **list; pkg_error_null_argument("directory", dir, __func__); + + list = NULL; + LIST_FACTOR_REALLOC(pm->dirrm_list, list, pm->dirrm_count, 10); + if (pm->dirrm_list == NULL) { + pm->dirrm_list = list; + return (-1); + } - if (pm->dirrm_count % 10 == 0) { - list = pm->dirrm_list; - pm->dirrm_list = realloc(list, sizeof(*list) * (pm->dirrm_count + 11)); - if (pm->dirrm_list == NULL) { - pm->dirrm_list = list; - return (PKG_MEMORY_ERR | PKG_NOT_OK); - } - } + + if (pkg_util_strdup(dir, &pm->dirrm_list[pm->dirrm_count - 1]) != PKG_OK) + return (-1); - status = pkg_util_strdup(dir, &pm->dirrm_list[pm->dirrm_count++]); pm->dirrm_list[pm->dirrm_count] = NULL; - return (status); + return (pm->dirrm_count - 1); } void ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest_plist.c#8 (text+ko) ==== @@ -253,7 +253,7 @@ status = PKG_NOT_OK; break; } - status = pkg_manifest_add_exec_cmd(pm, argument); + pkg_manifest_add_exec_cmd(pm, argument); break; case (PM_UNEXEC): if (strlen(argument) == 0) { @@ -261,7 +261,7 @@ status = PKG_NOT_OK; break; } - status = pkg_manifest_add_unexec_cmd(pm, argument); + pkg_manifest_add_unexec_cmd(pm, argument); break; case (PM_MODE): status = (strlen(isolate) == 0) ? @@ -317,7 +317,7 @@ status = PKG_NOT_OK; break; } - status = pkg_manifest_add_dirrm_cmd(pm, isolate); + pkg_manifest_add_dirrm_cmd(pm, isolate); break; case (PM_MTREE): if (strlen(isolate) == 0) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_util.h#16 (text+ko) ==== @@ -19,15 +19,13 @@ void rage_quit(void); -#define STRING_LIST_APPEND(list, append, tmp_list, list_sz, factor) \ +#define LIST_FACTOR_REALLOC(list, tmp_list, list_sz, factor) \ if (list_sz % factor == 0) { \ tmp_list = list; \ list = realloc(tmp_list, sizeof(*tmp_list) * (list_sz + factor + 1)); \ } \ - if (list != NULL) { \ - list[list_sz++] = strdup(append); \ - list[list_sz] = NULL; \ - } + if (list != NULL) \ + list_sz++ #define ARRAY_FACTOR_REALLOC(array, tmp_array, array_sz, factor) \ if (array_sz % factor == 0) { \ From owner-p4-projects@FreeBSD.ORG Mon Aug 17 23:44:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E27DE1065692; Mon, 17 Aug 2009 23:44:26 +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 A6E48106568B for ; Mon, 17 Aug 2009 23:44:26 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 96C848FC3F for ; Mon, 17 Aug 2009 23:44:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7HNiQ8a042293 for ; Mon, 17 Aug 2009 23:44:26 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7HNiQNv042291 for perforce@freebsd.org; Mon, 17 Aug 2009 23:44:26 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 17 Aug 2009 23:44:26 GMT Message-Id: <200908172344.n7HNiQNv042291@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Cc: Subject: PERFORCE change 167457 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, 17 Aug 2009 23:44:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=167457 Change 167457 by dforsyth@squirrel on 2009/08/17 23:43:29 pkg_info prints deinstall directory remove commands. Affected files ... .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#46 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#41 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_conflict.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#8 edit .. //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#7 edit .. //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#33 edit Differences ... ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.c#46 (text+ko) ==== @@ -375,6 +375,16 @@ return (pkg_manifest_unexec_cmd_list(p->pm)); } +const char *const * +pkg_dirrms(struct pkg *p) +{ + pkg_check_magic(p, __func__); + if (p->pm == NULL && p->in_db != NULL) + pkg_parse_manifest(p); + + return (pkg_manifest_dirrm_cmd_list(p->pm)); +} + /* Add a file to a package. This is fairly useless at this point * because... well, there the hell is the file coming from? */ ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg.h#41 (text+ko) ==== @@ -52,13 +52,13 @@ int pkg_clone(struct pkg *src, struct pkg *dest); int pkg_force_parse_manifest(struct pkg *p); -/* Add mtree_dirs, display, etc, etc. */ - +/* rename a few of these. */ const char *const *pkg_files(struct pkg *p); const char *const *pkg_depends(struct pkg *p); const char *const *pkg_conflicts(struct pkg *p); const char *const *pkg_execs(struct pkg *p); const char *const *pkg_unexecs(struct pkg *p); +const char *const *pkg_dirrms(struct pkg *p); int pkg_add_pkg_file(struct pkg *p, const char *path, const char *cwd, ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_conflict.c#8 (text+ko) ==== @@ -87,7 +87,7 @@ { const struct pkg_conflict *pca; const struct pkg_conflict *pcb; - + pca = a; pcb = b; ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.c#8 (text+ko) ==== @@ -14,6 +14,7 @@ static void pkg_manifest_clear_file_entries(struct pkg_manifest *pm); static void pkg_manifest_clear_exec_list(struct pkg_manifest *pm); static void pkg_manifest_clear_unexec_list(struct pkg_manifest *pm); +static void pkg_manifest_clear_dirrm_list(struct pkg_manifest *pm); static void pkg_manifest_init(struct pkg_manifest *pm); void @@ -90,6 +91,7 @@ pkg_manifest_clear_file_entries(pm); pkg_manifest_clear_exec_list(pm); pkg_manifest_clear_unexec_list(pm); + pkg_manifest_clear_dirrm_list(pm); pkg_manifest_init(pm); } @@ -254,7 +256,7 @@ pm->conflict_list[pm->conflict_count - 1] = pc->name; pm->conflict_list[pm->conflict_count] = NULL; - + return (pc); } @@ -460,6 +462,15 @@ return; } +void +pkg_manifest_remove_dirrm_cmd(struct pkg_manifest *pm, int cmdidx) +{ + pkg_manifest_check_magic(pm, __func__); + if (cmdidx < 0) + return; + return; +} + static void pkg_manifest_clear_conflict_entries(struct pkg_manifest *pm) { @@ -500,6 +511,14 @@ pkg_manifest_remove_unexec_cmd(pm, pm->unexec_count); } +static void +pkg_manifest_clear_dirrm_list(struct pkg_manifest *pm) +{ + pkg_manifest_check_magic(pm, __func__); + while (pm->dirrm_count > 0) + pkg_manifest_remove_dirrm_cmd(pm, pm->dirrm_count); +} + struct pkg_conflict * pkg_manifest_select_conflict(struct pkg_manifest *pm, const char *name) { ==== //depot/projects/soc2009/dforsyth_libpkg/libpkg/pkg_manifest.h#7 (text+ko) ==== @@ -144,6 +144,8 @@ void pkg_manifest_remove_unexec_cmd(struct pkg_manifest *pm, int cmdidx); +void pkg_manifest_remove_dirrm_cmd(struct pkg_manifest *pm, int cmdidx); + const char *const *pkg_manifest_conflict_list(struct pkg_manifest *pm); const char *const *pkg_manifest_depend_list(struct pkg_manifest *pm); ==== //depot/projects/soc2009/dforsyth_libpkg/pkg_info/main.c#33 (text+ko) ==== @@ -349,12 +349,18 @@ buff, pkg_pkg_file_md5(p, buff)); } } - - for (klist = pkg_execs(p); klist != NULL && *klist != NULL; buff = *klist++) + + klist = pkg_execs(p); + while (klist != NULL && (buff = *klist++) != NULL) printf("\tEXEC '%s'\n", buff); - for (klist = pkg_unexecs(p); klist != NULL && *klist != NULL; buff = *klist++) + + klist = pkg_unexecs(p); + while (klist != NULL && (buff = *klist++) != NULL) printf("\tUNEXEC '%s'\n", buff); - + + klist = pkg_dirrms(p); + while (klist != NULL && (buff = *klist++) != NULL) + printf("\tDeinstall directory remove: %s\n", buff); } if (flags & OPT_SHOW_REQUIRE) From owner-p4-projects@FreeBSD.ORG Tue Aug 18 02:54:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0A0361065693; Tue, 18 Aug 2009 02:54:55 +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 A6E801065691 for ; Tue, 18 Aug 2009 02:54:54 +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 8C52C8FC45 for ; Tue, 18 Aug 2009 02:54:54 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7I2ssla069083 for ; Tue, 18 Aug 2009 02:54:54 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7I2ss3D069081 for perforce@freebsd.org; Tue, 18 Aug 2009 02:54:54 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 18 Aug 2009 02:54:54 GMT Message-Id: <200908180254.n7I2ss3D069081@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 167458 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: Tue, 18 Aug 2009 02:54:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=167458 Change 167458 by pgj@petymeg-current on 2009/08/18 02:54:06 Add support for exporting information on IPv4 virtual interfaces in a less ABI-sensitive way via sysctl(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.h#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#4 (text+ko) ==== @@ -85,6 +85,7 @@ #include #include #include +#include #include #include #include @@ -181,6 +182,7 @@ &viftable, sizeof(viftable), "S,vif[MAXVIFS]", "IPv4 Multicast Interfaces (struct vif[MAXVIFS], netinet/ip_mroute.h)"); + static struct mtx vif_mtx; #define VIF_LOCK() mtx_lock(&vif_mtx) #define VIF_UNLOCK() mtx_unlock(&vif_mtx) @@ -797,6 +799,66 @@ return 0; } +static int +export_viftable(SYSCTL_HANDLER_ARGS) +{ + struct vif_stream vs; + struct vif_data vd; + struct sbuf sbuf; + int error, buflen; + char *buffer; + struct vif *v; + vifi_t vifi; + + error = 0; + bzero(&vs, sizeof(vs)); + vs.vs_version = VIF_STREAM_VERSION; + + VIF_LOCK(); + + vs.vs_count = numvifs; + buflen = sizeof(vs) + vs.vs_count * sizeof(vd) + 1; + buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO); + sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN); + + if (sbuf_bcat(&sbuf, &vs, sizeof(vs)) < 0) { + error = ENOMEM; + goto out; + } + + for (vifi = 0; vifi < numvifs; vifi++) { + v = &viftable[vifi]; + + bzero(&vd, sizeof(vd)); + vd.vd_flags = v->v_flags; + vd.vd_threshold = v->v_threshold; + vd.vd_lcl_addr = v->v_lcl_addr.s_addr; + vd.vd_rmt_addr = v->v_rmt_addr.s_addr; + vd.vd_if_index = v->v_ifp->if_index; + vd.vd_pkt_in = v->v_pkt_in; + vd.vd_pkt_out = v->v_pkt_out; + vd.vd_bytes_in = v->v_bytes_in; + vd.vd_bytes_out = v->v_bytes_out; + + if (sbuf_bcat(&sbuf, &vd, sizeof(vd)) < 0) { + error = ENOMEM; + goto out; + } + } + + VIF_UNLOCK(); + + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); +out: + free(buffer, M_TEMP); + return (error); +} + +SYSCTL_PROC(_net_inet_ip, OID_AUTO, sviftable, CTLFLAG_RD|CTLTYPE_STRUCT, + 0, 0, export_viftable, "s,struct vif_data", + "IPv4 Multicast Interfaces (streamed)"); + /* * Set PIM assert processing global */ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.h#3 (text+ko) ==== @@ -267,6 +267,29 @@ struct route v_route; /* cached route */ }; +/* + * Statistics structures to be used by user space monitoring tools. + */ +#define VIF_STREAM_VERSION 0x00000001 + +struct vif_stream { + u_int32_t vs_version; + u_int32_t vs_count; +}; + +struct vif_data { + u_int8_t vd_flags; + u_int8_t vd_threshold; + u_int32_t vd_lcl_addr; + u_int32_t vd_rmt_addr; + u_int16_t vd_if_index; + u_int64_t vd_pkt_in; + u_int64_t vd_pkt_out; + u_int64_t vd_bytes_in; + u_int64_t vd_bytes_out; + u_int8_t _vd_pad[22]; +}; + #ifdef _KERNEL /* * The kernel's multicast forwarding cache entry structure From owner-p4-projects@FreeBSD.ORG Tue Aug 18 02:55:56 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 34231106568F; Tue, 18 Aug 2009 02:55:56 +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 ED2AD106568C for ; Tue, 18 Aug 2009 02:55:55 +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 C3AB68FC61 for ; Tue, 18 Aug 2009 02:55:55 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7I2ttW0069215 for ; Tue, 18 Aug 2009 02:55:55 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7I2ttpF069213 for perforce@freebsd.org; Tue, 18 Aug 2009 02:55:55 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 18 Aug 2009 02:55:55 GMT Message-Id: <200908180255.n7I2ttpF069213@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 167459 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: Tue, 18 Aug 2009 02:55:56 -0000 http://perforce.freebsd.org/chv.cgi?CH=167459 Change 167459 by pgj@petymeg-current on 2009/08/18 02:55:38 Add support for exporting IPv6 multicast interface data in a standardized format via sysctl(3) [net.inet6.ip6.smif6table]. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.c#4 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.h#3 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.c#4 (text+ko) ==== @@ -95,6 +95,7 @@ #include #include #include +#include #include #include #include @@ -541,6 +542,65 @@ } static int +export_mif6table(SYSCTL_HANDLER_ARGS) +{ + struct mif6_stream ms; + struct mif6_data md; + struct sbuf sbuf; + int error, buflen; + char *buffer; + struct mif6* m; + mifi_t mifi; + + error = 0; + bzero(&ms, sizeof(ms)); + ms.ms_version = MIF6_STREAM_VERSION; + + MIF6_LOCK(); + + ms.ms_count = nummifs; + buflen = sizeof(ms) + ms.ms_count * sizeof(md) + 1; + buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO); + sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN); + + if (sbuf_bcat(&sbuf, &ms, sizeof(ms)) < 0) { + error = ENOMEM; + goto out; + } + + for (mifi = 0; mifi < nummifs; mifi++) { + m = &mif6table[mifi]; + + bzero(&md, sizeof(md)); + md.md_flags = m->m6_flags; + md.md_rate_limit = m->m6_rate_limit; + bcopy(&m->m6_lcl_addr, md.md_lcl_addr, sizeof(md.md_lcl_addr)); + md.md_if_index = m->m6_ifp->if_index; + md.md_pkt_in = m->m6_pkt_in; + md.md_pkt_out = m->m6_pkt_out; + md.md_bytes_in = m->m6_bytes_in; + md.md_bytes_out = m->m6_bytes_out; + + if (sbuf_bcat(&sbuf, &md, sizeof(md)) < 0) { + error = ENOMEM; + goto out; + } + } + + MIF6_UNLOCK(); + + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); +out: + free(buffer, M_TEMP); + return (error); +} + +SYSCTL_PROC(_net_inet6_ip6, OID_AUTO, smif6table, CTLFLAG_RD|CTLTYPE_STRUCT, + 0, 0, export_mif6table, "s,struct mif6_data", + "IPv6 Multicast Interfaces (streamed)"); + +static int set_pim6(int *i) { INIT_VNET_INET6(curvnet); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.h#3 (text+ko) ==== @@ -201,6 +201,25 @@ u_quad_t obytes; /* Output byte count on mif */ }; +#define MIF6_STREAM_VERSION 0x00000001 + +struct mif6_stream { + u_int32_t ms_version; + u_int32_t ms_count; +}; + +struct mif6_data { + u_int8_t md_flags; + u_int16_t md_rate_limit; + u_int8_t md_lcl_addr[16]; /* 128-bit IP6 address */ + u_int32_t md_if_index; + u_int64_t md_pkt_in; + u_int64_t md_pkt_out; + u_int64_t md_bytes_in; + u_int64_t md_bytes_out; + u_int8_t _md_pad[9]; +}; + #if defined(_KERNEL) || defined(KERNEL) /* * The kernel's multicast-interface structure. From owner-p4-projects@FreeBSD.ORG Tue Aug 18 03:02:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E19BC1065690; Tue, 18 Aug 2009 03:02: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 A0574106568B for ; Tue, 18 Aug 2009 03:02:02 +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 8EFAF8FC16 for ; Tue, 18 Aug 2009 03:02:02 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7I322JX069740 for ; Tue, 18 Aug 2009 03:02:02 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7I322qY069738 for perforce@freebsd.org; Tue, 18 Aug 2009 03:02:02 GMT (envelope-from pgj@FreeBSD.org) Date: Tue, 18 Aug 2009 03:02:02 GMT Message-Id: <200908180302.n7I322qY069738@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 167460 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: Tue, 18 Aug 2009 03:02:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=167460 Change 167460 by pgj@petymeg-current on 2009/08/18 03:01:07 - Add mcastif_type, an abstraction for multicast (or "virtual") interfaces. This type connects to the previously created routeaddr_type to represent routing addresses. - Add netstat_mif() function that returns active multicast interfaces in the system. - Implement information extraction for both PF_INET and PF_INET6 protocols, and for both sysctl(3) and kvm(3). Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#18 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#63 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#59 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_mroute.c#1 add .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_route.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#68 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/Makefile#18 (text+ko) ==== @@ -4,7 +4,7 @@ LIB= netstat SRCS= netstat_socket.c netstat_mbuf.c netstat_if.c netstat_bpf.c \ - netstat_stat.c netstat_route.c netstat_util.c + netstat_stat.c netstat_route.c netstat_mroute.c netstat_util.c INCS= netstat.h ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#63 (text+ko) ==== @@ -49,6 +49,7 @@ #define IFTYPE_MAXADDRCNT 8 #define BPFTYPE_MAXNAME IFNAMSIZ +#define MIFTYPE_MAXNAME IFNAMSIZ #define NETSTAT_ERROR_UNDEFINED 0 #define NETSTAT_ERROR_NOMEMORY 1 @@ -125,6 +126,11 @@ /* Testing flags for routemask_type: */ #define NETSTAT_RTM_NORMAL 0x01 +/* Testing flags for mcastif_type: */ +#define NETSTAT_MIF_TUNNEL 0x01 +#define NETSTAT_MIF_SRCRT 0x02 +#define NETSTAT_MIF_REGISTER 0x04 + /* Enum for TCP states: */ enum tcp_state { tcps_Closed, @@ -268,6 +274,10 @@ struct route_type_list; struct route_type_iterator; +struct mcastif_type; +struct mcastif_type_list; +struct mcastif_type_iterator; + __BEGIN_DECLS const char *netstat_strerror(int); const char *netstat_kvmerror(const struct session_type *); @@ -1267,4 +1277,30 @@ const char *netstat_rat_get_name(const struct routeaddr_type *, int); size_t netstat_rat_get_address(const struct routeaddr_type *, void *, size_t); int netstat_rat_get_family(const struct routeaddr_type *); + +/* Multicast interfaces: */ +struct mcastif_type_list *netstat_mitl_alloc(void); +void netstat_mitl_free(struct mcastif_type_list *); +int netstat_mitl_geterror(const struct mcastif_type_list *); +int netstat_mitl_length(const struct mcastif_type_list *); + +int netstat_miti_alloc(struct mcastif_type_list *list, + struct mcastif_type_iterator **iterator); +const struct mcastif_type *netstat_miti_first(struct mcastif_type_iterator *); +const struct mcastif_type *netstat_miti_next(struct mcastif_type_iterator *); +void netstat_miti_free(struct mcastif_type_iterator *); + +int netstat_mif(const struct session_type *, int domain, + struct mcastif_type_list *list, int flags); + +u_int32_t netstat_mit_get_index(const struct mcastif_type *); +int netstat_mit_get_flags(const struct mcastif_type *); +u_int32_t netstat_mit_get_limit(const struct mcastif_type *); +const struct routeaddr_type *netstat_mit_get_address(const struct mcastif_type *); +const struct routeaddr_type *netstat_mit_get_remote_address(const struct mcastif_type *); +u_int64_t netstat_mit_get_packets_in(const struct mcastif_type *); +u_int64_t netstat_mit_get_packets_out(const struct mcastif_type *); +u_int64_t netstat_mit_get_bytes_in(const struct mcastif_type *); +u_int64_t netstat_mit_get_bytes_out(const struct mcastif_type *); +const char *netstat_mit_get_ifname(const struct mcastif_type *); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#59 (text+ko) ==== @@ -500,6 +500,34 @@ }; +/* Multicast interface type. */ +struct mcastif_type { + u_int32_t mit_index; + int mit_flags; + u_int32_t mit_limit; /* threshold/rate limit */ + struct routeaddr_type *mit_address; + struct routeaddr_type *mit_remote_address; + u_int64_t mit_pkts_in; + u_int64_t mit_pkts_out; + u_int64_t mit_bytes_in; + u_int64_t mit_bytes_out; + char mit_ifname[MIFTYPE_MAXNAME]; + + TAILQ_ENTRY(mcastif_type) mit_list; +}; + +struct mcastif_type_list { + TAILQ_HEAD(, mcastif_type) mitl_list; + int mitl_length; + int mitl_error; +}; + +struct mcastif_type_iterator { + struct mcastif_type_list *miti_list; + struct mcastif_type *miti_first; + struct mcastif_type *miti_next; +}; + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); @@ -531,6 +559,11 @@ struct route_type *_netstat_rt_allocate(struct route_type_list *); struct routeaddr_type *_netstat_rat_allocate(int, void *, size_t); +void _netstat_mitl_empty(struct mcastif_type_list *); +void _netstat_mit_free(struct mcastif_type *); +struct mcastif_type *_netstat_mit_allocate(struct mcastif_type_list *); + +struct routeaddr_type *extract_address(void *, void *, int); const char *resolve_val2str_name(int, const struct val2str *); /* XXX: merge these into a common address resolution routine. */ const char *routename(in_addr_t in, int numeric); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_route.c#6 (text+ko) ==== @@ -61,7 +61,6 @@ static void process_tree(kvm_t *, struct route_type_list *, struct radix_node *, int, int); static void extract_rtentry_data(struct rtentry *, struct route_type *); -static struct routeaddr_type *extract_address(void *, void *, int); static void extract_node(struct radix_node *, struct routenode_type *, int); int ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#68 (text+ko) ==== @@ -2562,6 +2562,183 @@ } +void +_netstat_mitl_empty(struct mcastif_type_list *list) +{ + struct mcastif_type *mitp; + + while ((mitp = TAILQ_FIRST(&list->mitl_list)) ) { + TAILQ_REMOVE(&list->mitl_list, mitp, mit_list); + _netstat_mit_free(mitp); + } + + list->mitl_length = 0; +} + +void +_netstat_mit_free(struct mcastif_type *mitp) +{ + _netstat_rat_free(mitp->mit_address); + if (mitp->mit_remote_address != NULL) + _netstat_rat_free(mitp->mit_remote_address); + free(mitp); +} + +struct mcastif_type * +_netstat_mit_allocate(struct mcastif_type_list *list) +{ + struct mcastif_type *mitp; + + mitp = malloc(sizeof(*mitp)); + if (mitp == NULL) + return (NULL); + + bzero(mitp, sizeof(*mitp)); + TAILQ_INSERT_TAIL(&list->mitl_list, mitp, mit_list); + list->mitl_length += 1; + return (mitp); +} + +struct mcastif_type_list * +netstat_mitl_alloc(void) +{ + struct mcastif_type_list *mitlp; + + mitlp = malloc(sizeof(*mitlp)); + if (mitlp == NULL) + return (NULL); + + TAILQ_INIT(&mitlp->mitl_list); + mitlp->mitl_error = NETSTAT_ERROR_UNDEFINED; + mitlp->mitl_length = 0; + return (mitlp); +} + +void +netstat_mitl_free(struct mcastif_type_list *mitlp) +{ + _netstat_mitl_empty(mitlp); + free(mitlp); +} + +int +netstat_mitl_geterror(const struct mcastif_type_list *mitlp) +{ + return (mitlp->mitl_error); +} + +int +netstat_mitl_length(const struct mcastif_type_list *mitlp) +{ + return (mitlp->mitl_length); +} + +int +netstat_miti_alloc(struct mcastif_type_list *list, + struct mcastif_type_iterator **iterator) +{ + struct mcastif_type_iterator *mitip; + + mitip = malloc(sizeof(*mitip)); + if (mitip == NULL) + return (-1); + + bzero(mitip, sizeof(*mitip)); + mitip->miti_list = list; + mitip->miti_first = TAILQ_FIRST(&list->mitl_list); + if (mitip->miti_first != NULL) + mitip->miti_next = TAILQ_NEXT(mitip->miti_first, mit_list); + *iterator = mitip; + return (0); +} + +const struct mcastif_type * +netstat_miti_first(struct mcastif_type_iterator *mitip) +{ + if (mitip->miti_first != NULL) + mitip->miti_next = TAILQ_NEXT(mitip->miti_first, mit_list); + return (mitip->miti_first); +} + +const struct mcastif_type * +netstat_miti_next(struct mcastif_type_iterator *mitip) +{ + const struct mcastif_type *mitp; + + mitp = mitip->miti_next; + if (mitip->miti_next != NULL) + mitip->miti_next = TAILQ_NEXT(mitip->miti_next, mit_list); + + return (mitp); +} + +void +netstat_miti_free(struct mcastif_type_iterator *mitip) +{ + free(mitip); +} + +u_int32_t +netstat_mit_get_index(const struct mcastif_type *mitp) +{ + return (mitp->mit_index); +} + +int +netstat_mit_get_flags(const struct mcastif_type *mitp) +{ + return (mitp->mit_flags); +} + +u_int32_t +netstat_mit_get_limit(const struct mcastif_type *mitp) +{ + return (mitp->mit_limit); +} + +const struct routeaddr_type * +netstat_mit_get_address(const struct mcastif_type *mitp) +{ + return (mitp->mit_address); +} + +const struct routeaddr_type * +netstat_mit_get_remote_address(const struct mcastif_type *mitp) +{ + return (mitp->mit_remote_address); +} + +u_int64_t +netstat_mit_get_packets_in(const struct mcastif_type *mitp) +{ + return (mitp->mit_pkts_in); +} + +u_int64_t +netstat_mit_get_packets_out(const struct mcastif_type *mitp) +{ + return (mitp->mit_pkts_out); +} + +u_int64_t +netstat_mit_get_bytes_in(const struct mcastif_type *mitp) +{ + return (mitp->mit_bytes_in); +} + +u_int64_t +netstat_mit_get_bytes_out(const struct mcastif_type *mitp) +{ + return (mitp->mit_bytes_out); +} + +const char * +netstat_mit_get_ifname(const struct mcastif_type *mitp) +{ + return (mitp->mit_ifname); +} + + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ "#1", From owner-p4-projects@FreeBSD.ORG Tue Aug 18 07:03:26 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6D7FD106568E; Tue, 18 Aug 2009 07:03:26 +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 32006106568C for ; Tue, 18 Aug 2009 07:03:26 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 1F11E8FC5B for ; Tue, 18 Aug 2009 07:03:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7I73PGO004972 for ; Tue, 18 Aug 2009 07:03:26 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7I73PAF004970 for perforce@freebsd.org; Tue, 18 Aug 2009 07:03:25 GMT (envelope-from julian@freebsd.org) Date: Tue, 18 Aug 2009 07:03:25 GMT Message-Id: <200908180703.n7I73PAF004970@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 167462 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: Tue, 18 Aug 2009 07:03:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=167462 Change 167462 by julian@julian-mac on 2009/08/18 07:03:06 Wordsmithing. Spelling errors. Affected files ... .. //depot/projects/vimage/porting_to_vimage.txt#16 edit Differences ... ==== //depot/projects/vimage/porting_to_vimage.txt#16 (text+ko) ==== @@ -1,4 +1,4 @@ -July 7 2009 +August 17 2009 Julian Elischer =================== @@ -9,18 +9,18 @@ to operate on multiple independent instances of its state so that it can participate in a virtual machine / virtual environment scenario. It refers to a part of the Jail infrastructure in FreeBSD. For historical reasons -Virtual network stack enabled jails are known a vimage enabled jails or vnet -enabled jails. The currently correct term is the latter, which is a -contraction of the first. In the future other parts of the system may be -virtualized using the same technology and the term to cover all such components -would be VIMAGE enhanced modules. +"Virtual network stack enabled jails"(1) are also known as "vimage enabled +jails"(2) or "vnet enabled jails"(3). The currently correct term is the +latter, which is a contraction of the first. In the future other parts of +the system may be virtualized using the same technology and the term to +cover all such components would be VIMAGE enhanced modules. The implementation approach taken by the vimage framework is a redefinition of selected global state variables to evaluate to constructs that allow for the virtualized state to be stored and resolved in appropriate instances of 'jail' specific container storage regions. The code operating on virtualized -state has to conform to a set of rules described further below, among other -things in order to allow for all the changes to be conditionally compilable, +state has to conform to a set of rules described further below. Among other +things in order to allow for all the changes to be conditionally compilable. i.e. permitting the virtualized code to fall back to operation on global state. The rest of this document will discuss NETWORK virtualization @@ -36,7 +36,7 @@ Prepending of "V_" prefixes to variable references helps in visual discrimination between global and virtualized state. It is also possible to use an alternative syntax, of VNET(foo_bar) to -achieve the same thing. The deveopers felt that V_foo_bar was less +achieve the same thing. The developers felt that V_foo_bar was less visually distracting while still providing enough clues to the reader that the variable is virtualized. In fact the V_foo_bar macro is locally defined near the definition of foo_bar to be an alias for @@ -55,7 +55,7 @@ a jail, usually the default (null) jail, and jails currently hang off of a processes ucred. This relationship defines a process's administrative affinity to a vnet and thus indirectly to all of its state. All network -interfaces and sockets hold pointers back to their parent vnets. +interfaces and sockets hold pointers back to their associated vnets. This relationship is obviously entirely independent from proc->ucred->jail bindings. Hence, when a process opens a socket, the socket will get bound to a vnet instance hanging off of proc->ucred->jail->vnet, but once such a @@ -105,7 +105,7 @@ There are several steps need in virtualisation. -1/ decide whether the module needs to be virtualised. +1/ Decide whether the module needs to be virtualised. If the module is a driver for specific hardware, it makes sense that there be only one instance of the driver as there is only one piece of @@ -148,7 +148,7 @@ * Sometimes an action (timer trigerred or trigerred by module load or unload simply has to check all the vimage or module instances. There are macro (pairs) for this which will iterate through all the - VNET or instances. + VNET or instances. (see sample code below). This covers most of the cases, however in some cases it may still be required for the module to stash away the virtual environment instance @@ -164,14 +164,15 @@ any of these are called. The modevent handler may veto load or teardown. On Shutdown, only the modevent handler is called so it may have to simulate the calling of the other handlers if clean shutdown is a requirement - of your module. (see sample code below). + of your module. (see sample code below). Don't forget to unregister + event handlers, and destroy locks and condition variables. -6/ Add the code described below to the files that make up the module +6/ Add the code described below to the files that make up the module. Details: (VNET implementation details) Firstly the file must be included. Depending on what -code you use you may find you also need one of more of: , +code you use you may find you also need one or more of: , and . These requirements may change slightly as the ABI settles. @@ -187,11 +188,15 @@ static VNET_DEFINE(int, foo) = 3; VNET_DEFINE(struct bar, thebar) = { 1,2,3 }; +extern int foo; +in an include file might become: +VNET_DECLARE(int foo); + Normal rules regarding 'static/extern' apply. The initial values that you -give in this way will be stored and used as teh initial values for +give in this way will be stored and used as the initial values for EACH NEW INSTANCE of these variables as new jails/vnets are created. -As mentioned above, accesses to virtualised symbols are achieved via macros, +As mentioned above, accesses to virtualized symbols are achieved via macros, which generally are of the same name as the original symbol but with a "V_" prepended, thus the head of the interface list, called 'ifnet' is replaced whereever used with "V_ifnet". We do this, by adding the following @@ -314,7 +319,9 @@ case MOD_SHUTDOWN: /* * this is called once but you may want to shut down - * things in each jail. + * things in each jail, or something global. + * In that case it's up to us to simulate the SYSUNINIT() + * or the VNET_SYSUNINIT() */ { VNET_ITERATOR_DECL(vnet_iter); @@ -327,7 +334,7 @@ VNET_LIST_RUNLOCK(); } /* you may need to shutdown something global. */ - mymod_destroy(); + mymod_uninit(); break; default: @@ -343,13 +350,13 @@ 0 }; -#define MYMOD_MAJOR_ORDER SI_SUB_PROTO_IFATTACHDOMAIN /* for example */ +#define MYMOD_MAJOR_ORDER SI_SUB_PROTO_BEGIN /* for example */ #define MYMOD_MODULE_ORDER (SI_ORDER_ANY + 64) /* not fussy */ #define MYMOD_SYSINIT_ORDER (MYMOD_MODULE_ORDER + 1) /* a bit later */ -#define MYMOD_VNET_ORDER (MYMOD_SYSINIT_ORDER + 1 ) /* later still */ +#define MYMOD_VNET_ORDER (MYMOD_MODULE_ORDER + 2) /* later still */ DECLARE_MODULE(mymod, mymodmod, MYMOD_MAJOR_ORDER, MYMOD_MODULE_ORDER); -MODULE_DEPEND(dummynet, ipfw, 2, 2, 2); +MODULE_DEPEND(mymod, ipfw, 2, 2, 2); /* depend on ipfw version (exactly) 2 */ MODULE_VERSION(mymod, 1); SYSINIT(mymod_init, MYMOD_MAJOR_ORDER, MYMOD_SYSINIT_ORDER, @@ -368,12 +375,12 @@ On BOOT, the order of evaluation will be: In a NON-VIMAGE kernel where the module is compiled: MODEVENT, SYSINIT and VNET_SYSINIT both runm with order defined by their - order declarations. {good foot shooting aterial if you get it wrong!} + order declarations. {good foot shooting material if you get it wrong!} - In a VIMAGE kernel where the module is compiled: - MODEVNET, SYSINIT and VNET_SYSINIT both runm with order defined by their - order declarations. AND in addition, the VNET_SYSINIT being - repeated once for every new jail/vnet. + In a VIMAGE kernel where the module is compiled in: + MODEVNET, SYSINIT and VNET_SYSINIT all run with order defined by their + order declarations. AND in addition, the VNET_SYSINIT is + repeated once for every existing or new jail/vnet. On loading a vnet enabled kernel module after boot: MODEVENT("event = load"); @@ -382,12 +389,12 @@ AND in addition, VNET_SYSINIT being called for each new jail created. On unloading of module: - MODEVENT("event = quiesce") - MODEVENT("event = unload") + MODEVENT("event = MOD_QUIESCE") + MODEVENT("event = MOD_UNLOAD") VNET_SYSUNINIT called for every jail/vnet SYSUNINIT -On system shutdown: [check/fix this ] +On system shutdown: MODEVENT(shutdown) NOTICE that while the order of the SYSINIT and VNET_SYSINIT is reversed from @@ -396,14 +403,14 @@ things which are order dependent using MODEVENTs. Or, put another way, -Since MODEVENT is called first during l module load, it would, by the +Since MODEVENT is called first during module load, it would, by the assumption that everything is reversed, be easy to assume that MODEVENT is called AFTER the SYSINITS during unload. This is in fact not the case. (and I have the scars to prove it). It might be make some sense if the "QUIESCE" was called before the SYSINIT/SYSUNINIT and the UNLOAD called after.. with a millisecond -sleep between them, but this is not the case either. +sleep between them, but this is not the case either. Since initial values are copied into the virtualized variables on each new instantiatin, it is quite possible to have modules for which @@ -412,6 +419,7 @@ Sometimes there is a need to iterate through the vnets. See the modevent shutdown handler (above) for an example of how to do this. +Don't forget the locks. In the case where you are loading a new protocol, or domain (protocol family) there are some "shortcuts" that are in place to allow you to maintain a bit @@ -434,9 +442,14 @@ teardown.) In this case one needs to be absolutely sure that both your domain and protocol initializers can be called multiple times, once for each vnet. One can still add SYSINITs for once only initialization, -or use the modevent handler +or use the modevent handler. I prefer to do as much explicitly +in the SYSINITS and VNET_SYSINITS as then you have no surprises. finally: The command to make a new jail with a new vnet: jail -c host.hostname=test path=/ vnet command=/bin/tcsh +jail -c host.hostname=test path=/ children.max=4 vnet command=/bin/tcsh +(children.max allows hierarchical jail creation). +Note that the command must come last. + From owner-p4-projects@FreeBSD.ORG Tue Aug 18 07:04:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BDA111065692; Tue, 18 Aug 2009 07:04:27 +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 825FD106568E for ; Tue, 18 Aug 2009 07:04:27 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5784D8FC74 for ; Tue, 18 Aug 2009 07:04:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7I74RRs005032 for ; Tue, 18 Aug 2009 07:04:27 GMT (envelope-from julian@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7I74Rtq005030 for perforce@freebsd.org; Tue, 18 Aug 2009 07:04:27 GMT (envelope-from julian@freebsd.org) Date: Tue, 18 Aug 2009 07:04:27 GMT Message-Id: <200908180704.n7I74Rtq005030@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to julian@freebsd.org using -f From: Julian Elischer To: Perforce Change Reviews Cc: Subject: PERFORCE change 167463 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: Tue, 18 Aug 2009 07:04:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=167463 Change 167463 by julian@julian-mac on 2009/08/18 07:04:27 Mention kernel.h Affected files ... .. //depot/projects/vimage/porting_to_vimage.txt#17 edit Differences ... ==== //depot/projects/vimage/porting_to_vimage.txt#17 (text+ko) ==== @@ -350,6 +350,7 @@ 0 }; +/* define execution order using constants from /sys/sys/kernel.h */ #define MYMOD_MAJOR_ORDER SI_SUB_PROTO_BEGIN /* for example */ #define MYMOD_MODULE_ORDER (SI_ORDER_ANY + 64) /* not fussy */ #define MYMOD_SYSINIT_ORDER (MYMOD_MODULE_ORDER + 1) /* a bit later */ From owner-p4-projects@FreeBSD.ORG Tue Aug 18 09:37:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DF98A1065697; Tue, 18 Aug 2009 09:37: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 A42581065693 for ; Tue, 18 Aug 2009 09:37:14 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 921D88FC3F for ; Tue, 18 Aug 2009 09:37:14 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7I9bE2i028743 for ; Tue, 18 Aug 2009 09:37:14 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7I9bE6Z028741 for perforce@freebsd.org; Tue, 18 Aug 2009 09:37:14 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 18 Aug 2009 09:37:14 GMT Message-Id: <200908180937.n7I9bE6Z028741@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167467 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: Tue, 18 Aug 2009 09:37:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167467 Change 167467 by anchie@anchie_malimis on 2009/08/18 09:37:09 Clear any possible internally embedded scope before passing the packet to userspace for SeND cryptographic signature validation. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#24 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#24 (text+ko) ==== @@ -17,8 +17,9 @@ #include #include +#include +#include #include -#include MALLOC_DEFINE(M_SEND, "send", "Secure Neighbour Discovery"); @@ -92,9 +93,16 @@ { u_int len; void *data; + struct ip6_hdr *ip6; - if (m->m_flags & M_MCAST) - printf("%s: DEBUG %p M_MCAST packet\n", __func__, m); + /* + * Make sure to clear any possible internally embedded scope before + * passing the packet to userspace for SeND cryptographic signature + * validation to succeed. + */ + ip6 = mtod(m, struct ip6_hdr *); + in6_clearscope(&ip6->ip6_src); + in6_clearscope(&ip6->ip6_dst); len = m_length(m, NULL); if (len != msglen) From owner-p4-projects@FreeBSD.ORG Tue Aug 18 12:52:48 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7B8F61065696; Tue, 18 Aug 2009 12:52:48 +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 3FBEB1065694 for ; Tue, 18 Aug 2009 12:52:48 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 127908FC45 for ; Tue, 18 Aug 2009 12:52:48 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7ICql4D055849 for ; Tue, 18 Aug 2009 12:52:47 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7ICqltb055847 for perforce@freebsd.org; Tue, 18 Aug 2009 12:52:47 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 18 Aug 2009 12:52:47 GMT Message-Id: <200908181252.n7ICqltb055847@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167470 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: Tue, 18 Aug 2009 12:52:48 -0000 http://perforce.freebsd.org/chv.cgi?CH=167470 Change 167470 by anchie@anchie_malimis on 2009/08/18 12:52:38 - Bug fixes in handling the incoming packets coming from the user land into kernel (netinet6/send.c: send_output()). - Added calls of nd6_??_input() functions. - Added call of icmp6_rip6_input() function with appropriate arguments. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#25 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#25 (text+ko) ==== @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -29,7 +30,7 @@ struct ip6_hdr *ip6; struct sockaddr_in6 dst; struct icmp6_hdr *icmp6; - int icmp6len; + int icmp6len, *offp = NULL; printf("send.c: send_output()\n"); @@ -41,26 +42,58 @@ switch (direction) { case SND_IN: - icmp6len = m->m_pkthdr.len - sizeof(struct ip6_hdr); - printf("send_output: m_pkthdr.len = %d\n", m->m_pkthdr.len); + /* XXX-BZ can there be extension headers? */ + if (m->m_len < (sizeof(struct ip6_hdr) + + sizeof(struct icmp6_hdr))) { + m = m_pullup(m, sizeof(struct ip6_hdr) + + sizeof(struct icmp6_hdr)); + if (!m) + return (ENOBUFS); + } + + if (m->m_flags & M_PKTHDR) + icmp6len = m->m_pkthdr.len - sizeof(struct ip6_hdr); + else + panic("Doh! not the first mbuf."); ip6 = mtod(m, struct ip6_hdr *); icmp6 = (struct icmp6_hdr *)(ip6 + 1); - switch (icmp6->icmp6_code) { + + /* + * Output the packet as icmp6.c:incpm6_input() would do. + * The mbuf is always consumed, so we do not have to + * care about that. + */ + switch (icmp6->icmp6_type) { case ND_NEIGHBOR_SOLICIT: - /* From icmp6.c: incpm6_input(). */ - //nd6_ns_input(m, sizeof(struct ip6_hdr), icmp6len); + nd6_ns_input(m, sizeof(struct ip6_hdr), icmp6len); + break; + case ND_NEIGHBOR_ADVERT: + nd6_na_input(m, sizeof(struct ip6_hdr), icmp6len); break; + default: + /* XXX-BZ TODO */ + printf("%s:%d: icmp6_code=%u\n", + __func__, __LINE__, icmp6->icmp6_code); + m_print(m, m->m_pkthdr.len); + return (ENOSYS); } + *offp = sizeof (struct ip6_hdr); //icmp6_rip6_input(&m, *offp); - /* XXX-BZ TODO */ - return (ENOSYS); + + /* + * No error returned from nd6_??_input() so the only thing + * we can do is to pretend that it worked. + */ + return (0); case SND_OUT: - m = m_pullup(m, sizeof(struct ip6_hdr)); - if (!m) - return (ENOBUFS); + if (m->m_len < sizeof(struct ip6_hdr)) { + m = m_pullup(m, sizeof(struct ip6_hdr)); + if (!m) + return (ENOBUFS); + } ip6 = mtod(m, struct ip6_hdr *); if (IN6_IS_ADDR_MULTICAST(&ip6->ip6_dst)) m->m_flags |= M_MCAST; From owner-p4-projects@FreeBSD.ORG Tue Aug 18 12:56:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0B9061065693; Tue, 18 Aug 2009 12:56:53 +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 C3AE2106568B for ; Tue, 18 Aug 2009 12:56:52 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9A12D8FC15 for ; Tue, 18 Aug 2009 12:56:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7ICuqc7056151 for ; Tue, 18 Aug 2009 12:56:52 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7ICuqXZ056149 for perforce@freebsd.org; Tue, 18 Aug 2009 12:56:52 GMT (envelope-from anchie@FreeBSD.org) Date: Tue, 18 Aug 2009 12:56:52 GMT Message-Id: <200908181256.n7ICuqXZ056149@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167471 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: Tue, 18 Aug 2009 12:56:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167471 Change 167471 by anchie@anchie_malimis on 2009/08/18 12:56:32 Set up the proper interface before passing off the mbuf to user land. Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#26 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#26 (text+ko) ==== @@ -51,6 +51,9 @@ return (ENOBUFS); } + /* Before passing off the mbuf record the proper interface. */ + m->m_pkthdr.rcvif = ifp; + if (m->m_flags & M_PKTHDR) icmp6len = m->m_pkthdr.len - sizeof(struct ip6_hdr); else From owner-p4-projects@FreeBSD.ORG Tue Aug 18 15:29:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA7A51065690; Tue, 18 Aug 2009 15:29:40 +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 8E4E4106568F for ; Tue, 18 Aug 2009 15:29:40 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7A2CA8FC43 for ; Tue, 18 Aug 2009 15:29:40 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7IFTeTh070401 for ; Tue, 18 Aug 2009 15:29:40 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7IFTdoV070399 for perforce@freebsd.org; Tue, 18 Aug 2009 15:29:39 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 18 Aug 2009 15:29:39 GMT Message-Id: <200908181529.n7IFTdoV070399@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167476 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: Tue, 18 Aug 2009 15:29:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=167476 Change 167476 by hselasky@hselasky_laptop001 on 2009/08/18 15:29:16 IFC @167475 Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#19 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#24 integrate .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#28 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#15 integrate .. //depot/projects/usb/src/sys/amd64/conf/GENERIC#31 integrate .. //depot/projects/usb/src/sys/amd64/conf/NOTES#20 integrate .. //depot/projects/usb/src/sys/amd64/conf/XENHVM#3 integrate .. //depot/projects/usb/src/sys/amd64/include/apicvar.h#9 integrate .. //depot/projects/usb/src/sys/amd64/include/pmc_mdep.h#7 integrate .. //depot/projects/usb/src/sys/amd64/include/smp.h#10 integrate .. //depot/projects/usb/src/sys/arm/arm/pmap.c#20 integrate .. //depot/projects/usb/src/sys/arm/at91/uart_dev_at91usart.c#12 integrate .. //depot/projects/usb/src/sys/boot/i386/gptboot/gptboot.c#4 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_xpt.c#2 integrate .. //depot/projects/usb/src/sys/cam/cam_ccb.h#7 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#20 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#5 integrate .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/rpc/xdr.h#3 delete .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/taskq.h#3 delete .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 delete .. //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/vnode.h#7 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#7 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#7 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#6 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#13 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/usb/src/sys/conf/options#38 integrate .. //depot/projects/usb/src/sys/conf/options.amd64#9 integrate .. //depot/projects/usb/src/sys/conf/options.i386#10 integrate .. //depot/projects/usb/src/sys/conf/options.pc98#8 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_pciids.h#10 integrate .. //depot/projects/usb/src/sys/dev/drm/r600_cp.c#5 integrate .. //depot/projects/usb/src/sys/dev/drm/radeon_drv.h#8 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_core.c#3 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_piv.c#8 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_ppro.c#7 integrate .. //depot/projects/usb/src/sys/dev/hwpmc/hwpmc_x86.c#8 integrate .. //depot/projects/usb/src/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/usb/src/sys/dev/isp/isp_freebsd.c#11 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi_ioctl.h#6 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfireg.h#8 integrate .. //depot/projects/usb/src/sys/dev/ppbus/vpo.c#8 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_process.c#11 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_process.h#9 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_gpt.c#13 integrate .. //depot/projects/usb/src/sys/i386/conf/GENERIC#30 integrate .. //depot/projects/usb/src/sys/i386/conf/NOTES#24 integrate .. //depot/projects/usb/src/sys/i386/i386/local_apic.c#19 integrate .. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#20 integrate .. //depot/projects/usb/src/sys/i386/i386/trap.c#13 integrate .. //depot/projects/usb/src/sys/i386/include/apicvar.h#11 integrate .. //depot/projects/usb/src/sys/i386/include/pmc_mdep.h#7 integrate .. //depot/projects/usb/src/sys/i386/include/smp.h#10 integrate .. //depot/projects/usb/src/sys/i386/xen/mp_machdep.c#12 integrate .. //depot/projects/usb/src/sys/ia64/ia64/genassym.c#3 integrate .. //depot/projects/usb/src/sys/ia64/ia64/interrupt.c#9 integrate .. //depot/projects/usb/src/sys/ia64/ia64/machdep.c#12 integrate .. //depot/projects/usb/src/sys/ia64/ia64/mp_machdep.c#11 integrate .. //depot/projects/usb/src/sys/ia64/include/smp.h#3 integrate .. //depot/projects/usb/src/sys/kern/kern_jail.c#29 integrate .. //depot/projects/usb/src/sys/kern/kern_lock.c#17 integrate .. //depot/projects/usb/src/sys/kern/kern_mutex.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_poll.c#17 integrate .. //depot/projects/usb/src/sys/kern/kern_rwlock.c#17 integrate .. //depot/projects/usb/src/sys/kern/kern_shutdown.c#13 integrate .. //depot/projects/usb/src/sys/kern/kern_sx.c#17 integrate .. //depot/projects/usb/src/sys/kern/kern_sysctl.c#22 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#26 integrate .. //depot/projects/usb/src/sys/kern/subr_kdb.c#7 integrate .. //depot/projects/usb/src/sys/kern/subr_pcpu.c#7 integrate .. //depot/projects/usb/src/sys/kern/subr_smp.c#13 integrate .. //depot/projects/usb/src/sys/kern/subr_taskqueue.c#9 integrate .. //depot/projects/usb/src/sys/kern/vfs_cache.c#26 integrate .. //depot/projects/usb/src/sys/mips/include/smp.h#3 integrate .. //depot/projects/usb/src/sys/mips/mips/mp_machdep.c#5 integrate .. //depot/projects/usb/src/sys/modules/zfs/Makefile#11 integrate .. //depot/projects/usb/src/sys/net/bpf.c#23 integrate .. //depot/projects/usb/src/sys/net/bpf_buffer.c#3 integrate .. //depot/projects/usb/src/sys/net/bpf_zerocopy.c#4 integrate .. //depot/projects/usb/src/sys/net/bpfdesc.h#8 integrate .. //depot/projects/usb/src/sys/net/flowtable.c#9 integrate .. //depot/projects/usb/src/sys/net/if.c#38 integrate .. //depot/projects/usb/src/sys/net/if_var.h#27 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#31 integrate .. //depot/projects/usb/src/sys/net/vnet.c#4 integrate .. //depot/projects/usb/src/sys/net/vnet.h#18 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211.c#29 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_input.c#20 integrate .. //depot/projects/usb/src/sys/netatalk/at_control.c#7 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#26 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#9 integrate .. //depot/projects/usb/src/sys/netinet/sctp_indata.c#21 integrate .. //depot/projects/usb/src/sys/netinet/sctp_input.c#19 integrate .. //depot/projects/usb/src/sys/netinet/sctp_os_bsd.h#19 integrate .. //depot/projects/usb/src/sys/netinet/sctp_output.c#21 integrate .. //depot/projects/usb/src/sys/netinet/sctp_pcb.c#18 integrate .. //depot/projects/usb/src/sys/netinet/sctp_timer.c#14 integrate .. //depot/projects/usb/src/sys/netinet/sctputil.c#23 integrate .. //depot/projects/usb/src/sys/netinet/sctputil.h#13 integrate .. //depot/projects/usb/src/sys/netinet6/in6.c#31 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_subs.c#12 integrate .. //depot/projects/usb/src/sys/pc98/conf/NOTES#17 integrate .. //depot/projects/usb/src/sys/powerpc/include/smp.h#6 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/mp_machdep.c#9 integrate .. //depot/projects/usb/src/sys/security/audit/audit.h#14 integrate .. //depot/projects/usb/src/sys/sparc64/include/smp.h#7 integrate .. //depot/projects/usb/src/sys/sun4v/include/smp.h#4 integrate .. //depot/projects/usb/src/sys/sys/jail.h#19 integrate .. //depot/projects/usb/src/sys/sys/lock.h#11 integrate .. //depot/projects/usb/src/sys/sys/pcpu.h#14 integrate .. //depot/projects/usb/src/sys/sys/smp.h#7 integrate .. //depot/projects/usb/src/sys/sys/sysctl.h#22 integrate .. //depot/projects/usb/src/sys/sys/systm.h#18 integrate .. //depot/projects/usb/src/sys/sys/taskqueue.h#4 integrate .. //depot/projects/usb/src/sys/ufs/ffs/ffs_softdep.c#14 integrate .. //depot/projects/usb/src/sys/xdr/xdr_mbuf.c#5 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/local_apic.c#19 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.58 2009/07/01 17:20:07 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.60 2009/08/14 21:05:08 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -123,7 +123,7 @@ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ - { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ + { 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; @@ -305,11 +305,9 @@ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); -#ifdef HWPMC_HOOKS /* Program the PMC LVT entry if present. */ if (maxlvt >= LVT_PMC) lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); -#endif /* Program timer LVT and setup handler. */ lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer); @@ -332,6 +330,88 @@ intr_restore(eflags); } +void +lapic_reenable_pmc(void) +{ +#ifdef HWPMC_HOOKS + uint32_t value; + + value = lapic->lvt_pcint; + value &= ~APIC_LVT_M; + lapic->lvt_pcint = value; +#endif +} + +#ifdef HWPMC_HOOKS +static void +lapic_update_pmc(void *dummy) +{ + struct lapic *la; + + la = &lapics[lapic_id()]; + lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); +} +#endif + +int +lapic_enable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return (0); + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return (0); + + lvts[LVT_PMC].lvt_masked = 0; + +#ifdef SMP + /* + * If hwpmc was loaded at boot time then the APs may not be + * started yet. In that case, don't forward the request to + * them as they will program the lvt when they start. + */ + if (smp_started) + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); + else +#endif + lapic_update_pmc(NULL); + return (1); +#else + return (0); +#endif +} + +void +lapic_disable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return; + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return; + + lvts[LVT_PMC].lvt_masked = 1; + +#ifdef SMP + /* The APs should always be started when hwpmc is unloaded. */ + KASSERT(mp_ncpus == 1 || smp_started, ("hwpmc unloaded too early")); +#endif + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); +#endif +} + /* * Called by cpu_initclocks() on the BSP to setup the local APIC timer so * that it can drive hardclock, statclock, and profclock. This function @@ -1238,8 +1318,17 @@ KASSERT((vector & ~APIC_VECTOR_MASK) == 0, ("%s: invalid vector %d", __func__, vector)); - icrlo = vector | APIC_DELMODE_FIXED | APIC_DESTMODE_PHY | - APIC_LEVEL_DEASSERT | APIC_TRIGMOD_EDGE; + icrlo = APIC_DESTMODE_PHY | APIC_TRIGMOD_EDGE; + + /* + * IPI_STOP_HARD is just a "fake" vector used to send a NMI. + * Use special rules regard NMI if passed, otherwise specify + * the vector. + */ + if (vector == IPI_STOP_HARD) + icrlo |= APIC_DELMODE_NMI | APIC_LEVEL_ASSERT; + else + icrlo |= vector | APIC_DELMODE_FIXED | APIC_LEVEL_DEASSERT; destfield = 0; switch (dest) { case APIC_IPI_DEST_SELF: ==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#24 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.309 2009/06/23 22:42:39 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.310 2009/08/13 17:09:45 attilio Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -114,31 +114,12 @@ extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); -#ifdef STOP_NMI -static volatile cpumask_t ipi_nmi_pending; - -static void ipi_nmi_selected(cpumask_t cpus); -#endif - /* * Local data and functions. */ -#ifdef STOP_NMI -/* - * Provide an alternate method of stopping other CPUs. If another CPU has - * disabled interrupts the conventional STOP IPI will be blocked. This - * NMI-based stop should get through in that case. - */ -static int stop_cpus_with_nmi = 1; -SYSCTL_INT(_debug, OID_AUTO, stop_cpus_with_nmi, CTLTYPE_INT | CTLFLAG_RW, - &stop_cpus_with_nmi, 0, ""); -TUNABLE_INT("debug.stop_cpus_with_nmi", &stop_cpus_with_nmi); -#else -#define stop_cpus_with_nmi 0 -#endif - static u_int logical_cpus; +static volatile cpumask_t ipi_nmi_pending; /* used to hold the AP's until we are ready to release them */ static struct mtx ap_boot_mtx; @@ -1158,12 +1139,14 @@ ipi = IPI_BITMAP_VECTOR; } -#ifdef STOP_NMI - if (ipi == IPI_STOP && stop_cpus_with_nmi) { - ipi_nmi_selected(cpus); - return; - } -#endif + /* + * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit + * of help in order to understand what is the source. + * Set the mask of receiving CPUs for this purpose. + */ + if (ipi == IPI_STOP_HARD) + atomic_set_int(&ipi_nmi_pending, cpus); + CTR3(KTR_SMP, "%s: cpus: %x ipi: %x", __func__, cpus, ipi); while ((cpu = ffs(cpus)) != 0) { cpu--; @@ -1194,64 +1177,43 @@ ipi_all_but_self(u_int ipi) { - if (IPI_IS_BITMAPED(ipi) || (ipi == IPI_STOP && stop_cpus_with_nmi)) { + if (IPI_IS_BITMAPED(ipi)) { ipi_selected(PCPU_GET(other_cpus), ipi); return; } + + /* + * IPI_STOP_HARD maps to a NMI and the trap handler needs a bit + * of help in order to understand what is the source. + * Set the mask of receiving CPUs for this purpose. + */ + if (ipi == IPI_STOP_HARD) + atomic_set_int(&ipi_nmi_pending, PCPU_GET(other_cpus)); + CTR2(KTR_SMP, "%s: ipi: %x", __func__, ipi); lapic_ipi_vectored(ipi, APIC_IPI_DEST_OTHERS); } -#ifdef STOP_NMI -/* - * send NMI IPI to selected CPUs - */ - -#define BEFORE_SPIN 1000000 - -static void -ipi_nmi_selected(cpumask_t cpus) -{ - int cpu; - register_t icrlo; - - icrlo = APIC_DELMODE_NMI | APIC_DESTMODE_PHY | APIC_LEVEL_ASSERT - | APIC_TRIGMOD_EDGE; - - CTR2(KTR_SMP, "%s: cpus: %x nmi", __func__, cpus); - - atomic_set_int(&ipi_nmi_pending, cpus); - - while ((cpu = ffs(cpus)) != 0) { - cpu--; - cpus &= ~(1 << cpu); - - KASSERT(cpu_apic_ids[cpu] != -1, - ("IPI NMI to non-existent CPU %d", cpu)); - - /* Wait for an earlier IPI to finish. */ - if (!lapic_ipi_wait(BEFORE_SPIN)) - panic("ipi_nmi_selected: previous IPI has not cleared"); - - lapic_ipi_raw(icrlo, cpu_apic_ids[cpu]); - } -} - int -ipi_nmi_handler(void) +ipi_nmi_handler() { - int cpumask = PCPU_GET(cpumask); + cpumask_t cpumask; - if (!(ipi_nmi_pending & cpumask)) - return 1; + /* + * As long as there is not a simple way to know about a NMI's + * source, if the bitmask for the current CPU is present in + * the global pending bitword an IPI_STOP_HARD has been issued + * and should be handled. + */ + cpumask = PCPU_GET(cpumask); + if ((ipi_nmi_pending & cpumask) == 0) + return (1); atomic_clear_int(&ipi_nmi_pending, cpumask); cpustop_handler(); - return 0; + return (0); } -#endif /* STOP_NMI */ - /* * Handle an IPI_STOP by saving our current context and spinning until we * are resumed. ==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#28 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $"); /* * Manages physical address maps. @@ -2261,6 +2261,8 @@ " in pmap %p", va, pmap); return (FALSE); } + if (va < VM_MAXUSER_ADDRESS) + pmap->pm_stats.resident_count++; } mptepa = VM_PAGE_TO_PHYS(mpte); firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa); ==== //depot/projects/usb/src/sys/amd64/amd64/trap.c#15 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.332 2009/05/13 17:53:04 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.333 2009/08/13 17:09:45 attilio Exp $"); /* * AMD64 Trap and System call handling @@ -239,13 +239,11 @@ type = frame->tf_trapno; #ifdef SMP -#ifdef STOP_NMI /* Handler for NMI IPIs used for stopping CPUs. */ if (type == T_NMI) { if (ipi_nmi_handler() == 0) goto out; } -#endif /* STOP_NMI */ #endif /* SMP */ #ifdef KDB ==== //depot/projects/usb/src/sys/amd64/conf/GENERIC#31 (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.531 2009/07/11 15:02:45 rpaulo Exp $ +# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.532 2009/08/13 17:09:45 attilio Exp $ cpu HAMMER ident GENERIC @@ -69,7 +69,6 @@ options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed. options KBD_INSTALL_CDEV # install a CDEV entry in /dev -options STOP_NMI # Stop CPUS using NMI instead of IPI options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing options MAC # TrustedBSD MAC Framework ==== //depot/projects/usb/src/sys/amd64/conf/NOTES#20 (text+ko) ==== @@ -4,7 +4,7 @@ # This file contains machine dependent kernel configuration notes. For # machine independent notes, look in /sys/conf/NOTES. # -# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.91 2009/06/08 20:07:16 jkim Exp $ +# $FreeBSD: src/sys/amd64/conf/NOTES,v 1.92 2009/08/13 17:09:45 attilio Exp $ # # @@ -30,11 +30,6 @@ # options MP_WATCHDOG -# -# Debugging options. -# -options STOP_NMI # Stop CPUS using NMI instead of IPI - ##################################################################### ==== //depot/projects/usb/src/sys/amd64/conf/XENHVM#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/XENHVM,v 1.3 2009/05/10 00:00:25 kuriyama Exp $ +# $FreeBSD: src/sys/amd64/conf/XENHVM,v 1.4 2009/08/13 17:09:45 attilio Exp $ cpu HAMMER ident GENERIC @@ -68,7 +68,6 @@ options SYSVSEM # SYSV-style semaphores options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions options KBD_INSTALL_CDEV # install a CDEV entry in /dev -options STOP_NMI # Stop CPUS using NMI instead of IPI options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4) options AUDIT # Security event auditing #options KDTRACE_FRAME # Ensure frames are compiled in ==== //depot/projects/usb/src/sys/amd64/include/apicvar.h#9 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.29 2009/05/02 12:20:43 mav Exp $ + * $FreeBSD: src/sys/amd64/include/apicvar.h,v 1.31 2009/08/14 21:05:08 jhb Exp $ */ #ifndef _MACHINE_APICVAR_H_ @@ -102,11 +102,6 @@ * smp_ipi_mtx and waits for the completion of the IPI (Only one IPI user * at a time) The second group uses a single interrupt and a bitmap to avoid * redundant IPI interrupts. - * - * Right now IPI_STOP used by kdb shares the interrupt priority class with - * the two IPI groups mentioned above. As such IPI_STOP may cause a deadlock. - * Eventually IPI_STOP should use NMI IPIs - this would eliminate this and - * other deadlocks caused by IPI_STOP. */ /* Interrupts for local APIC LVT entries other than the timer. */ @@ -134,6 +129,7 @@ #define IPI_STOP (APIC_IPI_INTS + 7) /* Stop CPU until restarted. */ #define IPI_SUSPEND (APIC_IPI_INTS + 8) /* Suspend CPU until restarted. */ +#define IPI_STOP_HARD (APIC_IPI_INTS + 9) /* Stop CPU with a NMI. */ /* * The spurious interrupt can share the priority class with the IPIs since @@ -205,7 +201,9 @@ int ioapic_set_smi(void *cookie, u_int pin); void lapic_create(u_int apic_id, int boot_cpu); void lapic_disable(void); +void lapic_disable_pmc(void); void lapic_dump(const char *str); +int lapic_enable_pmc(void); void lapic_eoi(void); u_int lapic_error(void); int lapic_id(void); @@ -216,6 +214,7 @@ int lapic_ipi_wait(int delay); void lapic_handle_intr(int vector, struct trapframe *frame); void lapic_handle_timer(struct trapframe *frame); +void lapic_reenable_pmc(void); void lapic_set_logical_id(u_int apic_id, u_int cluster, u_int cluster_id); int lapic_set_lvt_mask(u_int apic_id, u_int lvt, u_char masked); int lapic_set_lvt_mode(u_int apic_id, u_int lvt, u_int32_t mode); ==== //depot/projects/usb/src/sys/amd64/include/pmc_mdep.h#7 (text+ko) ==== @@ -27,7 +27,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.8 2008/11/27 09:00:47 jkoshy Exp $ + * $FreeBSD: src/sys/amd64/include/pmc_mdep.h,v 1.9 2009/08/14 21:05:08 jhb Exp $ */ /* Machine dependent interfaces */ @@ -115,7 +115,6 @@ */ void start_exceptions(void), end_exceptions(void); -void pmc_x86_lapic_enable_pmc_interrupt(void); struct pmc_mdep *pmc_amd_initialize(void); void pmc_amd_finalize(struct pmc_mdep *_md); ==== //depot/projects/usb/src/sys/amd64/include/smp.h#10 (text+ko) ==== @@ -6,7 +6,7 @@ * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp * ---------------------------------------------------------------------------- * - * $FreeBSD: src/sys/amd64/include/smp.h,v 1.96 2009/05/14 17:43:00 attilio Exp $ + * $FreeBSD: src/sys/amd64/include/smp.h,v 1.97 2009/08/13 17:09:45 attilio Exp $ * */ @@ -52,6 +52,7 @@ void cpustop_handler(void); void cpususpend_handler(void); void init_secondary(void); +int ipi_nmi_handler(void); void ipi_selected(cpumask_t cpus, u_int ipi); void ipi_all_but_self(u_int ipi); void ipi_bitmap_handler(struct trapframe frame); @@ -66,10 +67,6 @@ void smp_invltlb(void); void smp_masked_invltlb(cpumask_t mask); -#ifdef STOP_NMI -int ipi_nmi_handler(void); -#endif - #endif /* !LOCORE */ #endif /* SMP */ ==== //depot/projects/usb/src/sys/arm/arm/pmap.c#20 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.113 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.114 2009/08/13 15:56:09 raj Exp $"); #include #include #include @@ -1212,7 +1212,7 @@ CTR4(KTR_PMAP, "pmap_l2cache_wbinv_range: pmap %p is_kernel %d " "va 0x%08x len 0x%x ", pm, pm == pmap_kernel(), va, rest); if (pmap_get_pde_pte(pm, va, &pde, &ptep) && l2pte_valid(*ptep)) - cpu_l2cache_wb_range(va, rest); + cpu_l2cache_wbinv_range(va, rest); len -= rest; va += rest; ==== //depot/projects/usb/src/sys/arm/at91/uart_dev_at91usart.c#12 (text) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.19 2009/01/22 21:56:41 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/at91/uart_dev_at91usart.c,v 1.20 2009/08/15 15:15:20 stas Exp $"); #include "opt_comconsole.h" @@ -307,6 +307,10 @@ int at91_usart_bus_probe(struct uart_softc *sc) { + + sc->sc_txfifosz = USART_BUFFER_SIZE; + sc->sc_rxfifosz = USART_BUFFER_SIZE; + sc->sc_hwiflow = 0; return (0); } @@ -344,10 +348,6 @@ atsc->flags |= HAS_TIMEOUT; WR4(&sc->sc_bas, USART_IDR, 0xffffffff); - sc->sc_txfifosz = USART_BUFFER_SIZE; - sc->sc_rxfifosz = USART_BUFFER_SIZE; - sc->sc_hwiflow = 0; - #ifndef SKYEYE_WORKAROUNDS /* * Allocate DMA tags and maps ==== //depot/projects/usb/src/sys/boot/i386/gptboot/gptboot.c#4 (text+ko) ==== @@ -14,7 +14,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.88 2008/08/08 19:41:20 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/boot/i386/gptboot/gptboot.c,v 1.89 2009/08/17 15:19:03 jhay Exp $"); #include #include @@ -466,16 +466,13 @@ dsk.type = i; arg += 3; dsk.unit = *arg - '0'; - if (arg[1] != ',' || dsk.unit > 9) + if (arg[1] != 'p' || dsk.unit > 9) return -1; arg += 2; - dsk.part = -1; - if (arg[1] == ',') { - dsk.part = *arg - '0'; - if (dsk.part < 1 || dsk.part > 9) - return -1; - arg += 2; - } + dsk.part = *arg - '0'; + if (dsk.part < 1 || dsk.part > 9) + return -1; + arg++; if (arg[0] != ')') return -1; arg++; ==== //depot/projects/usb/src/sys/cam/ata/ata_xpt.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.3 2009/07/13 21:21:30 mav Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/ata/ata_xpt.c,v 1.4 2009/08/18 09:27:17 mav Exp $"); #include #include @@ -370,10 +370,10 @@ cam_fill_ataio(ataio, 1, probedone, - /*flags*/CAM_DIR_IN, - MSG_SIMPLE_Q_TAG, - /*data_ptr*/(u_int8_t *)ident_buf, - /*dxfer_len*/sizeof(struct ata_params), + /*flags*/CAM_DIR_NONE, + 0, + /*data_ptr*/NULL, + /*dxfer_len*/0, 30 * 1000); ata_36bit_cmd(ataio, ATA_SETFEATURES, ATA_SF_SETXFER, 0, ata_max_mode(ident_buf, ATA_UDMA6, ATA_UDMA6)); ==== //depot/projects/usb/src/sys/cam/cam_ccb.h#7 (text+ko) ==== @@ -25,7 +25,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.37 2009/08/01 01:04:26 mjacob Exp $ + * $FreeBSD: src/sys/cam/cam_ccb.h,v 1.38 2009/08/18 08:46:54 mav Exp $ */ #ifndef _CAM_CAM_CCB_H @@ -243,6 +243,7 @@ XPORT_ATA, /* AT Attachment */ XPORT_SAS, /* Serial Attached SCSI */ XPORT_SATA, /* Serial AT Attachment */ + XPORT_ISCSI, /* iSCSI */ } cam_xport; #define PROTO_VERSION_UNKNOWN (UINT_MAX - 1) ==== //depot/projects/usb/src/sys/cam/cam_xpt.c#20 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.217 2009/08/01 01:04:26 mjacob Exp $"); +__FBSDID("$FreeBSD: src/sys/cam/cam_xpt.c,v 1.218 2009/08/18 08:46:54 mav Exp $"); #include #include @@ -3803,6 +3803,8 @@ case XPORT_SAS: case XPORT_FC: case XPORT_USB: + case XPORT_ISCSI: + case XPORT_PPB: new_bus->xport = scsi_get_xport(); break; case XPORT_ATA: ==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#5 (text+ko) ==== @@ -22,7 +22,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris.c,v 1.4 2009/06/13 15:39:12 jamie Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/kern/opensolaris.c,v 1.5 2009/08/13 12:28:30 trasz Exp $ * */ @@ -49,10 +49,6 @@ { int i; - printf("This module (opensolaris) contains code covered by the\n"); - printf("Common Development and Distribution License (CDDL)\n"); - printf("see http://opensolaris.org/os/licensing/opensolaris_license/\n"); - /* * "Enable" all CPUs even though they may not exist just so * that the asserts work. On FreeBSD, if a CPU exists, it is ==== //depot/projects/usb/src/sys/cddl/compat/opensolaris/sys/vnode.h#7 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.12 2009/06/21 13:41:32 kib Exp $ + * $FreeBSD: src/sys/cddl/compat/opensolaris/sys/vnode.h,v 1.13 2009/08/17 09:48:34 pjd Exp $ */ #ifndef _OPENSOLARIS_SYS_VNODE_H_ @@ -75,7 +75,6 @@ #define VN_HOLD(v) vref(v) #define VN_RELE(v) vrele(v) #define VN_URELE(v) vput(v) -#define VN_RELE_ASYNC(v, tq) vn_rele_async(v, tq); #define VOP_REALVP(vp, vpp, ct) (*(vpp) = (vp), 0) ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 (text+ko) ==== @@ -2523,14 +2523,15 @@ { if (nvs->nvs_op == NVS_OP_ENCODE) { nvs_native_t *native = (nvs_native_t *)nvs->nvs_private; - nvlist_t *packed = (void *) + char *packed = (void *) (native->n_curr - nvp->nvp_size + NVP_VALOFF(nvp)); /* * Null out the pointer that is meaningless in the packed * structure. The address may not be aligned, so we have * to use bzero. */ - bzero(&packed->nvl_priv, sizeof (packed->nvl_priv)); + bzero(packed + offsetof(nvlist_t, nvl_priv), + sizeof(((nvlist_t *)NULL)->nvl_priv)); } return (nvs_embedded(nvs, EMBEDDED_NVL(nvp))); ==== //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 (text+ko) ==== @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -36,12 +36,10 @@ * contributors. */ - -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include +#include #include /* Extensible attribute (xva) routines. */ @@ -74,15 +72,12 @@ return (xoap); } -static STAILQ_HEAD(, vnode) vn_rele_async_list; -static struct mtx vn_rele_async_lock; -static struct cv vn_rele_async_cv; -static int vn_rele_list_length; -static int vn_rele_async_thread_exit; +static void +vn_rele_inactive(vnode_t *vp) +{ -typedef struct { - struct vnode *stqe_next; -} vnode_link_t; + vrele(vp); +} /* * Like vn_rele() except if we are going to call VOP_INACTIVE() then do it @@ -95,117 +90,16 @@ * This is because taskqs throttle back allocation if too many are created. */ void -vn_rele_async(vnode_t *vp, taskq_t *taskq /* unused */) +vn_rele_async(vnode_t *vp, taskq_t *taskq) { - - KASSERT(vp != NULL, ("vrele: null vp")); - VFS_ASSERT_GIANT(vp->v_mount); + VERIFY(vp->v_count > 0); VI_LOCK(vp); - - if (vp->v_usecount > 1 || ((vp->v_iflag & VI_DOINGINACT) && - vp->v_usecount == 1)) { - vp->v_usecount--; - vdropl(vp); - return; - } - if (vp->v_usecount != 1) { -#ifdef DIAGNOSTIC - vprint("vrele: negative ref count", vp); -#endif + if (vp->v_count == 1 && !(vp->v_iflag & VI_DOINGINACT)) { VI_UNLOCK(vp); - panic("vrele: negative ref cnt"); - } - /* - * We are exiting - */ - if (vn_rele_async_thread_exit != 0) { - vrele(vp); + VERIFY(taskq_dispatch((taskq_t *)taskq, + (task_func_t *)vn_rele_inactive, vp, TQ_SLEEP) != 0); return; } - - mtx_lock(&vn_rele_async_lock); - - /* STAILQ_INSERT_TAIL */ - (*(vnode_link_t *)&vp->v_cstart).stqe_next = NULL; - *vn_rele_async_list.stqh_last = vp; - vn_rele_async_list.stqh_last = - &((vnode_link_t *)&vp->v_cstart)->stqe_next; - - /****************************************/ - vn_rele_list_length++; - if ((vn_rele_list_length % 100) == 0) - cv_signal(&vn_rele_async_cv); - mtx_unlock(&vn_rele_async_lock); - VI_UNLOCK(vp); -} - -static void -vn_rele_async_init(void *arg) -{ - - mtx_init(&vn_rele_async_lock, "valock", NULL, MTX_DEF); - STAILQ_INIT(&vn_rele_async_list); - - /* cv_init(&vn_rele_async_cv, "vacv"); */ - vn_rele_async_cv.cv_description = "vacv"; - vn_rele_async_cv.cv_waiters = 0; -} - -void -vn_rele_async_fini(void) -{ - - mtx_lock(&vn_rele_async_lock); - vn_rele_async_thread_exit = 1; - cv_signal(&vn_rele_async_cv); - while (vn_rele_async_thread_exit != 0) - cv_wait(&vn_rele_async_cv, &vn_rele_async_lock); - mtx_unlock(&vn_rele_async_lock); - mtx_destroy(&vn_rele_async_lock); + vp->v_usecount--; + vdropl(vp); } - - -static void -vn_rele_async_cleaner(void) -{ - STAILQ_HEAD(, vnode) vn_tmp_list; - struct vnode *curvnode; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Aug 18 15:38:50 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CC7C0106568F; Tue, 18 Aug 2009 15:38: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 910BE106568B for ; Tue, 18 Aug 2009 15:38:50 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6567C8FC45 for ; Tue, 18 Aug 2009 15:38:50 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7IFcoxj071110 for ; Tue, 18 Aug 2009 15:38:50 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7IFcoSx071108 for perforce@freebsd.org; Tue, 18 Aug 2009 15:38:50 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 18 Aug 2009 15:38:50 GMT Message-Id: <200908181538.n7IFcoSx071108@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167477 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: Tue, 18 Aug 2009 15:38:51 -0000 http://perforce.freebsd.org/chv.cgi?CH=167477 Change 167477 by hselasky@hselasky_laptop001 on 2009/08/18 15:38:20 USB storage: - add more quirks PR: usb/137789, usb/135372 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#28 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#74 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/storage/umass.c#28 (text+ko) ==== @@ -412,6 +412,10 @@ UMASS_PROTO_DEFAULT, NO_SYNCHRONIZE_CACHE }, + {USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_SDCR_6335, RID_WILDCARD, + UMASS_PROTO_DEFAULT, + NO_TEST_UNIT_READY | NO_SYNCHRONIZE_CACHE + }, {USB_VENDOR_ALCOR, USB_PRODUCT_ALCOR_AU6390, RID_WILDCARD, UMASS_PROTO_DEFAULT, NO_SYNCHRONIZE_CACHE @@ -897,6 +901,10 @@ UMASS_PROTO_UFI | UMASS_PROTO_CBI, NO_QUIRKS }, + {USB_VENDOR_TECLAST, USB_PRODUCT_TECLAST_TLC300, RID_WILDCARD, + UMASS_PROTO_DEFAULT, + NO_TEST_UNIT_READY | NO_SYNCHRONIZE_CACHE + }, {USB_VENDOR_TREK, USB_PRODUCT_TREK_MEMKEY, RID_WILDCARD, UMASS_PROTO_SCSI | UMASS_PROTO_BBB, NO_INQUIRY ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#74 (text+ko) ==== @@ -360,6 +360,7 @@ vendor PUTERCOM 0x0708 Putercom vendor MCT 0x0711 MCT vendor IMATION 0x0718 Imation +vendor TECLAST 0x071b Teclast vendor SONYERICSSON 0x0731 Sony Ericsson vendor EICON 0x0734 Eicon Networks vendor SYNTECH 0x0745 Syntech Information @@ -585,6 +586,7 @@ vendor BALTECH 0x13ad Baltech vendor CISCOLINKSYS 0x13b1 Cisco-Linksys vendor SHARK 0x13d2 Shark +vendor EMTEC 0x13fe Emtec vendor NOVATEL 0x1410 Novatel Wireless vendor MERLIN 0x1416 Merlin vendor WISTRONNEWEB 0x1435 Wistron NeWeb @@ -820,6 +822,7 @@ /* Alcor Micro, Inc. products */ product ALCOR2 KBD_HUB 0x2802 Kbd Hub +product ALCOR SDCR_6335 0x6335 SD/MMC Card Reader product ALCOR TRANSCEND 0x6387 Transcend JetFlash Drive product ALCOR MA_KBD_HUB 0x9213 MacAlly Kbd Hub product ALCOR AU9814 0x9215 AU9814 Hub @@ -2353,6 +2356,9 @@ /* Super Top products */ product SUPERTOP IDE 0x6600 USB-IDE +/* Teclast products */ +product TECLAST TLC300 0x3203 USB Media Player + /* Supra products */ product DIAMOND2 SUPRAEXPRESS56K 0x07da Supra Express 56K modem product DIAMOND2 SUPRA2890 0x0b4a SupraMax 2890 56K Modem From owner-p4-projects@FreeBSD.ORG Tue Aug 18 15:57:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 589D0106568D; Tue, 18 Aug 2009 15:57: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 1CF101065692 for ; Tue, 18 Aug 2009 15:57:11 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B71698FC6C for ; Tue, 18 Aug 2009 15:57:10 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7IFvADx072471 for ; Tue, 18 Aug 2009 15:57:10 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7IFvAAj072469 for perforce@freebsd.org; Tue, 18 Aug 2009 15:57:10 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 18 Aug 2009 15:57:10 GMT Message-Id: <200908181557.n7IFvAAj072469@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167478 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: Tue, 18 Aug 2009 15:57:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=167478 Change 167478 by hselasky@hselasky_laptop001 on 2009/08/18 15:57:09 USB serial: - Fix false positive uipaq probe - Reported by: Alexander Motin Affected files ... .. //depot/projects/usb/src/sys/dev/usb/serial/uipaq.c#13 edit .. //depot/projects/usb/src/sys/dev/usb/usb.h#44 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/serial/uipaq.c#13 (text+ko) ==== @@ -1103,6 +1103,10 @@ if (uaa->info.bIfaceIndex != UIPAQ_IFACE_INDEX) { return (ENXIO); } + if (uaa->info.bInterfaceClass == UICLASS_IAD) { + DPRINTF("IAD detected - not UIPAQ serial device\n"); + return (ENXIO); + } return (usbd_lookup_id_by_uaa(uipaq_devs, sizeof(uipaq_devs), uaa)); } ==== //depot/projects/usb/src/sys/dev/usb/usb.h#44 (text+ko) ==== @@ -484,6 +484,8 @@ #define UISUBCLASS_RF 0x01 #define UIPROTO_BLUETOOTH 0x01 +#define UICLASS_IAD 0xEF /* Interface Association Descriptor */ + #define UICLASS_APPL_SPEC 0xfe #define UISUBCLASS_FIRMWARE_DOWNLOAD 1 #define UISUBCLASS_IRDA 2 From owner-p4-projects@FreeBSD.ORG Tue Aug 18 16:02:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B5663106568E; Tue, 18 Aug 2009 16:02:16 +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 79CA2106568B for ; Tue, 18 Aug 2009 16:02:16 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 665D78FC3D for ; Tue, 18 Aug 2009 16:02:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7IG2GOO072832 for ; Tue, 18 Aug 2009 16:02:16 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7IG2Gop072830 for perforce@freebsd.org; Tue, 18 Aug 2009 16:02:16 GMT (envelope-from gabor@freebsd.org) Date: Tue, 18 Aug 2009 16:02:16 GMT Message-Id: <200908181602.n7IG2Gop072830@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167479 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: Tue, 18 Aug 2009 16:02:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=167479 Change 167479 by gabor@gabor_aspire on 2009/08/18 16:01:25 MFHg: - Link iconv, mkcsmapper, mkesdb to libiconv instead of static binaries - Reduce size of generated data used by regression test - Add reference data for regression test, generated with GNU libc-iconv Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/TESTING-HOWTO#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#4 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/Makefile#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/tablegen.c#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkcsmapper/Makefile#6 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkesdb/Makefile#6 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/TESTING-HOWTO#6 (text+ko) ==== @@ -3,26 +3,34 @@ You have to accomplish the following steps: -1, Install library modules. +1, Install includes. + + cd include + make install + +2, Install the library. + + cd lib/libiconv + make all + make install LIBDIR=/usr/lib + +2, Install library modules. cd lib/libiconv_modules make all mkdir /usr/lib/i18n make install -3, Install the utilities +3, Install the utilities. cd usr.bin make all - make install + make install BINDIR=/usr/bin -2, Install conversion tables +2, Install conversion tables. cd share/i18n make all install -You can now use /usr/bin/iconv to convert files. With these instructions, you -don't get the library, just the on-demand loaded modules, which implement -conversion of different encodings or groups of encodings. If you want to -install the library, you can run "make all install" in lib/libiconv but note -that the library can interfere with GNU iconv, which is required by many ports. +Now, you have the iconv utility installed in /usr/bin, and the library +in /usr/lib. ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#4 (text+ko) ==== @@ -28,23 +28,23 @@ ENCODING+= ISO8859-16 ENCODING+= ARMSCII-8 -ENCODING+= BIG5 -ENCODING+= BIG5HKSCS +#ENCODING+= BIG5 +#ENCODING+= BIG5HKSCS #ENCODING+= CP1131 ENCODING+= CP1251 ENCODING+= CP866 -ENCODING+= CP949 -ENCODING+= GB18030 +#ENCODING+= CP949 +#ENCODING+= GB18030 ENCODING+= GB2312 -ENCODING+= GBK +#ENCODING+= GBK ENCODING+= VISCII -ENCODING+= KOI8-R -ENCODING+= KOI8-U +#ENCODING+= KOI8-R +#ENCODING+= KOI8-U ENCODING+= PT154 ENCODING+= SHIFT_JIS ENCODING+= EUC-CN -ENCODING+= EUC-JP -ENCODING+= EUC-KR +#ENCODING+= EUC-JP +#ENCODING+= EUC-KR GEN_FWD?= ${.CURDIR}/tablegen/tablegen GEN_REV?= ${.CURDIR}/tablegen/tablegen -r ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/Makefile#2 (text+ko) ==== @@ -3,11 +3,8 @@ PROG= tablegen NO_MAN= yes -CFLAGS+= -I/usr/local/include -g -LDFLAGS+= -L/usr/local/lib - LDADD= -liconv -DPADD= /usr/local/lib/libiconv.a +DPADD= /usr/lib/libiconv.a WARNS?= 6 ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/tablegen.c#2 (text+ko) ==== @@ -160,7 +160,7 @@ char *outbuf_; const char *inbuf_; - for (inbuf = 0; inbuf < 0x110000; inbuf += 1) { + for (inbuf = 0; inbuf < 0x10000; inbuf += 1) { inbytesleft = outbytesleft = 4; CONVERT; } ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/Makefile#6 (text+ko) ==== @@ -2,29 +2,13 @@ .include -.PATH: ${.CURDIR}/../../lib/libiconv - PROG= iconv -SRCS= iconv.c \ - _iconv.c \ - citrus_db.c \ - citrus_esdb.c \ - citrus_lookup.c \ - citrus_mmap.c \ - citrus_memstream.c \ - citrus_iconv.c \ - citrus_mapper.c \ - citrus_hash.c \ - citrus_module.c \ - citrus_bcs.c \ - citrus_bcs_strtol.c \ - citrus_db_hash.c -CFLAGS+= -I. -I${.CURDIR} -I${.CURDIR}/../../lib/libiconv +SRCS= iconv.c MAN= iconv.1 WARNS?= 6 -LDADD+= -lcrypt -DPADD+= ${LIBCRYPT} +LDADD+= -lcrypt -liconv +DPADD+= ${LIBCRYPT} /usr/lib/libiconv.a .include ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkcsmapper/Makefile#6 (text+ko) ==== @@ -1,13 +1,12 @@ # $NetBSD: Makefile,v 1.6 2009/04/20 16:05:30 drochner Exp $ -.PATH: ${.CURDIR}/../../lib/libiconv ${.CURDIR}/../../lib/libiconv_modules/mapper_std - PROG= mkcsmapper -SRCS= yacc.y lex.l \ - citrus_db_factory.c citrus_bcs.c citrus_db_hash.c \ - citrus_lookup_factory.c citrus_pivot_factory.c +SRCS= yacc.y lex.l CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../lib/libiconv -I${.CURDIR}/../../lib/libiconv_modules/mapper_std NO_MAN= yes WARNS?= 6 +LDADD+= -liconv +DPADD+= /usr/lib/libiconv.a + .include ==== //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/mkesdb/Makefile#6 (text+ko) ==== @@ -1,13 +1,12 @@ # $NetBSD: Makefile,v 1.6 2009/04/20 16:05:30 drochner Exp $ -.PATH: ${.CURDIR}/../../lib/libiconv - PROG= mkesdb -SRCS= yacc.y lex.l \ - citrus_bcs.c citrus_db_factory.c citrus_db_hash.c \ - citrus_lookup_factory.c +SRCS= yacc.y lex.l CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../../lib/libiconv NO_MAN= yes WARNS?= 6 +LDADD+= -liconv +DPADD+= /usr/lib/libiconv.a + .include From owner-p4-projects@FreeBSD.ORG Tue Aug 18 16:05:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EA4E9106568E; Tue, 18 Aug 2009 16:05: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 AEDED106568C for ; Tue, 18 Aug 2009 16:05:19 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF1F8FC51 for ; Tue, 18 Aug 2009 16:05:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7IG5J48074095 for ; Tue, 18 Aug 2009 16:05:19 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7IG5Jwn074093 for perforce@freebsd.org; Tue, 18 Aug 2009 16:05:19 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 18 Aug 2009 16:05:19 GMT Message-Id: <200908181605.n7IG5Jwn074093@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167481 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: Tue, 18 Aug 2009 16:05:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167481 Change 167481 by hselasky@hselasky_laptop001 on 2009/08/18 16:04:45 USB input: - add temporary tunable quirk sysctl to disable setting of keyboard leds - Reported by: Yoshihiro Ota Affected files ... .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#30 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#30 (text+ko) ==== @@ -96,10 +96,14 @@ #if USB_DEBUG static int ukbd_debug = 0; +static int ukbd_no_leds = 0; SYSCTL_NODE(_hw_usb, OID_AUTO, ukbd, CTLFLAG_RW, 0, "USB ukbd"); SYSCTL_INT(_hw_usb_ukbd, OID_AUTO, debug, CTLFLAG_RW, &ukbd_debug, 0, "Debug level"); +SYSCTL_INT(_hw_usb_ukbd, OID_AUTO, no_leds, CTLFLAG_RW, + &ukbd_no_leds, 0, "Disables setting of keyboard leds"); + #endif #define UPROTO_BOOT_KEYBOARD 1 @@ -647,6 +651,11 @@ uint8_t buf[2]; struct ukbd_softc *sc = usbd_xfer_softc(xfer); +#if USB_DEBUG + if (ukbd_no_leds) + return; +#endif + switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: case USB_ST_SETUP: From owner-p4-projects@FreeBSD.ORG Tue Aug 18 16:40:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5EBD3106568F; Tue, 18 Aug 2009 16:40: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 09812106568D for ; Tue, 18 Aug 2009 16:40:59 +0000 (UTC) (envelope-from gabor@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9D77E8FC65 for ; Tue, 18 Aug 2009 16:40:58 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7IGewRL076668 for ; Tue, 18 Aug 2009 16:40:58 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7IGewpM076666 for perforce@freebsd.org; Tue, 18 Aug 2009 16:40:58 GMT (envelope-from gabor@freebsd.org) Date: Tue, 18 Aug 2009 16:40:58 GMT Message-Id: <200908181640.n7IGewpM076666@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to gabor@freebsd.org using -f From: Gabor Kovesdan To: Perforce Change Reviews Cc: Subject: PERFORCE change 167482 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: Tue, 18 Aug 2009 16:40:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=167482 Change 167482 by gabor@gabor_aspire on 2009/08/18 16:39:59 MFHg Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/include/Makefile#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/include/iconv.h#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.h#6 delete .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ASCII#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ASCII-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5HKSCS#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5HKSCS-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1131#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1131-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1251#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1251-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP866#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP866-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP949#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP949-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-CN#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-CN-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JP#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JP-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-KR#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-KR-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB18030#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB18030-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB2312#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB2312-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GBK#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GBK-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-1#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-1-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-10#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-10-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-11#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-11-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-13#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-13-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-14#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-14-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-15#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-15-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-16#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-16-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-2#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-2-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-3#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-3-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-4#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-4-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-5#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-5-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-6#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-6-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-7#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-7-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-8#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-8-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-9#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-9-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-R#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-R-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-U#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-U-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/PT154#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/PT154-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/SHIFT_JIS#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/SHIFT_JIS-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-16BE#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-16BE-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-16LE#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-16LE-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-32BE#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-32BE-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-32LE#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-32LE-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-7#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-7-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-8#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/UTF-8-rev#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/VISCII#1 add .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/VISCII-rev#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Wed Aug 19 03:06:22 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A33EC106568D; Wed, 19 Aug 2009 03:06:22 +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 5DD19106568B for ; Wed, 19 Aug 2009 03:06:22 +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 34C9F8FC43 for ; Wed, 19 Aug 2009 03:06:22 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7J36M9p066213 for ; Wed, 19 Aug 2009 03:06:22 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7J36M03066211 for perforce@freebsd.org; Wed, 19 Aug 2009 03:06:22 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 19 Aug 2009 03:06:22 GMT Message-Id: <200908190306.n7J36M03066211@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 167491 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: Wed, 19 Aug 2009 03:06:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=167491 Change 167491 by pgj@petymeg-current on 2009/08/19 03:06:13 Add support for exporting IPv4 multicast forwarding table in a streamed manner via sysctl(3) [net.inet.ip.smfctable] Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.h#4 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.c#5 (text+ko) ==== @@ -859,6 +859,73 @@ 0, 0, export_viftable, "s,struct vif_data", "IPv4 Multicast Interfaces (streamed)"); +static int +export_mfctable(SYSCTL_HANDLER_ARGS) +{ + struct mfc_stream ms; + struct mfc_data md; + struct sbuf sbuf; + int error, buflen; + char *buffer; + struct mfc *m; + u_int32_t i; + + error = 0; + bzero(&ms, sizeof(ms)); + ms.ms_version = MFC_STREAM_VERSION; + + MFC_LOCK(); + + /* Count entries. */ + ms.ms_count = 0; + + if (mfchashtbl != NULL) + for (i = 0; i < mfchashsize; i++) { + LIST_FOREACH(m, &mfchashtbl[i], mfc_hash) + ms.ms_count++; + } + + buflen = sizeof(ms) + ms.ms_count * sizeof(md) + 1; + buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO); + sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN); + + if (sbuf_bcat(&sbuf, &ms, sizeof(ms)) < 0) { + error = ENOMEM; + goto out; + } + + if (mfchashtbl != NULL) + for (i = 0; i < mfchashsize; i++) { + LIST_FOREACH(m, &mfchashtbl[i], mfc_hash) { + bzero(&md, sizeof(md)); + md.md_origin = m->mfc_origin.s_addr; + md.md_mcastgrp = m->mfc_mcastgrp.s_addr; + md.md_pkt_cnt = m->mfc_pkt_cnt; + md.md_byte_cnt = m->mfc_byte_cnt; + md.md_nstall = m->mfc_nstall; + md.md_parent = m->mfc_parent; + bcopy(m->mfc_ttls, md.md_ttls, sizeof(md.md_ttls)); + + if (sbuf_bcat(&sbuf, &md, sizeof(md)) < 0) { + error = ENOMEM; + goto out; + } + } + } + + MFC_UNLOCK(); + + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); +out: + free(buffer, M_TEMP); + return (error); +} + +SYSCTL_PROC(_net_inet_ip, OID_AUTO, smfctable, CTLFLAG_RD|CTLTYPE_STRUCT, + 0, 0, export_mfctable, "s,struct mfc_data", + "IPv4 Multicast Forwarding Table (streamed)"); + /* * Set PIM assert processing global */ ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet/ip_mroute.h#4 (text+ko) ==== @@ -313,6 +313,24 @@ }; #endif /* _KERNEL */ +#define MFC_STREAM_VERSION 0x00000001 + +struct mfc_stream { + u_int32_t ms_version; + u_int32_t ms_count; +}; + +struct mfc_data { + u_int32_t md_origin; + u_int32_t md_mcastgrp; + u_int64_t md_pkt_cnt; + u_int64_t md_byte_cnt; + u_int64_t md_nstall; + u_int32_t md_parent; + u_int8_t md_ttls[32]; + u_int8_t _md_pad[60]; +}; + /* * Struct used to communicate from kernel to multicast router * note the convenient similarity to an IP packet From owner-p4-projects@FreeBSD.ORG Wed Aug 19 03:08:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F23C11065691; Wed, 19 Aug 2009 03:08:24 +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 9E609106568D for ; Wed, 19 Aug 2009 03:08:24 +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 843138FC51 for ; Wed, 19 Aug 2009 03:08:24 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7J38O2i066328 for ; Wed, 19 Aug 2009 03:08:24 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7J38OpP066326 for perforce@freebsd.org; Wed, 19 Aug 2009 03:08:24 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 19 Aug 2009 03:08:24 GMT Message-Id: <200908190308.n7J38OpP066326@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 167492 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: Wed, 19 Aug 2009 03:08:25 -0000 http://perforce.freebsd.org/chv.cgi?CH=167492 Change 167492 by pgj@petymeg-current on 2009/08/19 03:07:31 Add support for exporting IPv6 multicast forwarding table as a streamed data flow, via sysctl(3) [net.inet6.ip6.smf6ctable]. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.c#5 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.h#4 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.c#5 (text+ko) ==== @@ -601,6 +601,78 @@ "IPv6 Multicast Interfaces (streamed)"); static int +export_mf6ctable(SYSCTL_HANDLER_ARGS) +{ + struct mf6c_stream ms; + struct mf6c_data md; + struct sbuf sbuf; + int error, buflen; + char *buffer; + struct mf6c *m; + struct rtdetq *r; + u_int32_t i; + + error = 0; + bzero(&ms, sizeof(ms)); + ms.ms_version = MF6C_STREAM_VERSION; + + MFC6_LOCK(); + + /* Count entries. */ + ms.ms_count = 0; + for (i = 0; i < MF6CTBLSIZ; i++) { + for (m = mf6ctable[i]; m != NULL; m = m->mf6c_next) + ms.ms_count++; + } + + buflen = sizeof(ms) + ms.ms_count * sizeof(md) + 1; + buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO); + sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN); + + if (sbuf_bcat(&sbuf, &ms, sizeof(ms)) < 0) { + error = ENOMEM; + goto out; + } + + for (i = 0; i < MF6CTBLSIZ; i++) { + for (m = mf6ctable[i]; m != NULL; m = m->mf6c_next) { + bzero(&md, sizeof(md)); + bcopy(&m->mf6c_origin.sin6_addr, md.md_origin, + sizeof(md.md_origin)); + bcopy(&m->mf6c_mcastgrp.sin6_addr, md.md_mcastgrp, + sizeof(md.md_mcastgrp)); + md.md_pkt_cnt = m->mf6c_pkt_cnt; + md.md_byte_cnt = m->mf6c_byte_cnt; + + md.md_nstall = 0; + for (r = m->mf6c_stall; r != NULL; r = r->next) + md.md_nstall++; + + md.md_parent = m->mf6c_parent; + bcopy(&m->mf6c_ifset, md.md_ifs_bits, + sizeof(md.md_ifs_bits)); + + if (sbuf_bcat(&sbuf, &md, sizeof(md)) < 0) { + error = ENOMEM; + goto out; + } + } + } + + MFC6_UNLOCK(); + + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); +out: + free(buffer, M_TEMP); + return (error); +} + +SYSCTL_PROC(_net_inet6_ip6, OID_AUTO, smf6ctable, CTLFLAG_RD|CTLTYPE_STRUCT, + 0, 0, export_mf6ctable, "s,struct mf6c_data", + "IPv6 Multicast Forwarding Table (streamed)"); + +static int set_pim6(int *i) { INIT_VNET_INET6(curvnet); ==== //depot/projects/soc2009/pgj_libstat/src/sys/netinet6/ip6_mroute.h#4 (text+ko) ==== @@ -260,6 +260,24 @@ #define MF6C_INCOMPLETE_PARENT ((mifi_t)-1) +#define MF6C_STREAM_VERSION 0x00000001 + +struct mf6c_stream { + u_int32_t ms_version; + u_int32_t ms_count; +}; + +struct mf6c_data { + u_int8_t md_origin[16]; /* 128-bit IP6 address */ + u_int8_t md_mcastgrp[16]; /* 128-bit IP6 address */ + u_int64_t md_pkt_cnt; + u_int64_t md_byte_cnt; + u_int64_t md_nstall; + u_int32_t md_parent; + u_int32_t md_ifs_bits[8]; + u_int8_t _md_pad[36]; +}; + /* * Argument structure used for pkt info. while upcall is made */ From owner-p4-projects@FreeBSD.ORG Wed Aug 19 03:11:28 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 535F91065690; Wed, 19 Aug 2009 03:11:28 +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 F360B106568B for ; Wed, 19 Aug 2009 03:11:27 +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 E2D238FC45 for ; Wed, 19 Aug 2009 03:11:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7J3BRUw066589 for ; Wed, 19 Aug 2009 03:11:27 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7J3BRLl066587 for perforce@freebsd.org; Wed, 19 Aug 2009 03:11:27 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 19 Aug 2009 03:11:27 GMT Message-Id: <200908190311.n7J3BRLl066587@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 167493 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: Wed, 19 Aug 2009 03:11:28 -0000 http://perforce.freebsd.org/chv.cgi?CH=167493 Change 167493 by pgj@petymeg-current on 2009/08/19 03:10:40 - Add mroute_type for representing multicast forwarding table entries. - Add netstat_mroute(), a function for collecting multicast forwarding information. - Add code for both PF_INET and PF_INET6. Note that bandwidth meters are not included yet. Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#64 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#60 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_mroute.c#2 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#69 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#64 (text+ko) ==== @@ -50,6 +50,7 @@ #define BPFTYPE_MAXNAME IFNAMSIZ #define MIFTYPE_MAXNAME IFNAMSIZ +#define MRTTYPE_MAXVIFS MAXVIFS #define NETSTAT_ERROR_UNDEFINED 0 #define NETSTAT_ERROR_NOMEMORY 1 @@ -131,6 +132,8 @@ #define NETSTAT_MIF_SRCRT 0x02 #define NETSTAT_MIF_REGISTER 0x04 +#define NETSTAT_MROUTE_INCOMPLETE_PARENT MF6C_INCOMPLETE_PARENT + /* Enum for TCP states: */ enum tcp_state { tcps_Closed, @@ -278,6 +281,10 @@ struct mcastif_type_list; struct mcastif_type_iterator; +struct mroute_type; +struct mroute_type_list; +struct mroute_type_iterator; + __BEGIN_DECLS const char *netstat_strerror(int); const char *netstat_kvmerror(const struct session_type *); @@ -1303,4 +1310,29 @@ u_int64_t netstat_mit_get_bytes_in(const struct mcastif_type *); u_int64_t netstat_mit_get_bytes_out(const struct mcastif_type *); const char *netstat_mit_get_ifname(const struct mcastif_type *); + + +/* Multicast routing: */ +struct mroute_type_list *netstat_mrtl_alloc(void); +void netstat_mrtl_free(struct mroute_type_list *); +int netstat_mrtl_geterror(const struct mroute_type_list *); +int netstat_mrtl_length(const struct mroute_type_list *); + +int netstat_mrti_alloc(struct mroute_type_list *list, + struct mroute_type_iterator **iterator); +const struct mroute_type *netstat_mrti_first(struct mroute_type_iterator *); +const struct mroute_type *netstat_mrti_next(struct mroute_type_iterator *); +void netstat_mrti_free(struct mroute_type_iterator *); + +int netstat_mroute(const struct session_type *, int domain, + struct mroute_type_list *list, int flags); + +const struct routeaddr_type *netstat_mrt_get_origin(const struct mroute_type *); +const struct routeaddr_type *netstat_mrt_get_group(const struct mroute_type *); +u_int64_t netstat_mrt_get_packets(const struct mroute_type *); +u_int64_t netstat_mrt_get_bytes(const struct mroute_type *); +u_int64_t netstat_mrt_get_waitings(const struct mroute_type *); +u_int32_t netstat_mrt_get_parent(const struct mroute_type *); +u_int8_t netstat_mrt_get_ttl(const struct mroute_type *, int); +int netstat_mrt_get_is_mif_set(const struct mroute_type *, u_int32_t); #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#60 (text+ko) ==== @@ -528,6 +528,34 @@ struct mcastif_type *miti_next; }; + +/* Multicast route type. */ +struct mroute_type { + struct routeaddr_type *mrt_origin; + struct routeaddr_type *mrt_group; + u_int64_t mrt_pkt_cnt; + u_int64_t mrt_byte_cnt; + u_int64_t mrt_nstall; + u_int32_t mrt_parent; + u_int8_t mrt_ttls[MRTTYPE_MAXVIFS]; + struct if_set mrt_ifset; + + TAILQ_ENTRY(mroute_type) mrt_list; +}; + +struct mroute_type_list { + TAILQ_HEAD(, mroute_type) mrtl_list; + int mrtl_length; + int mrtl_error; +}; + +struct mroute_type_iterator { + struct mroute_type_list *mrti_list; + struct mroute_type *mrti_first; + struct mroute_type *mrti_next; +}; + + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); @@ -563,6 +591,13 @@ void _netstat_mit_free(struct mcastif_type *); struct mcastif_type *_netstat_mit_allocate(struct mcastif_type_list *); +void _netstat_mrtl_empty(struct mroute_type_list *); +void _netstat_mrt_free(struct mroute_type *); +struct mroute_type *_netstat_mrt_allocate(struct mroute_type_list *); +#ifdef INET6 +int _mrt6_get_nstall_kvm(kvm_t *, struct mf6c *); +#endif /* !INET6 */ + struct routeaddr_type *extract_address(void *, void *, int); const char *resolve_val2str_name(int, const struct val2str *); /* XXX: merge these into a common address resolution routine. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_mroute.c#2 (text+ko) ==== @@ -63,6 +63,15 @@ static const char *const mif_symbol[] = { "_viftable" }; +enum nlMRT { + nlMRT_mfchashtbl = 0, + nlMRT_mfctablesize, + nlMRT_MAX, +}; + +static const char *const mrt_symbol[] = + { "_mfchashtbl", "_mfctablesize" }; + #ifdef INET6 enum nlMIF6 { nlMIF6_mif6table = 0, @@ -71,20 +80,36 @@ static const char *const mif6_symbol[] = { "_mif6table" }; + +enum nlMRT6 { + nlMRT6_mf6ctable = 0, + nlMRT6_MAX, +}; + +static const char *const mrt6_symbol[] = + { "_mf6ctable" }; #endif /* !INET6 */ static int mif_kvm(struct mcastif_type_list *, kvm_t *, struct nlist *); static int mif_sysctl(struct mcastif_type_list *); +static int mrt_kvm(struct mroute_type_list *, kvm_t *, struct nlist *); +static int mrt_sysctl(struct mroute_type_list *); #ifdef INET6 static int mif6_kvm(struct mcastif_type_list *, kvm_t *, struct nlist *); static int mif6_sysctl(struct mcastif_type_list *); +static int mrt6_kvm(struct mroute_type_list *, kvm_t *, struct nlist *); +static int mrt6_sysctl(struct mroute_type_list *); #endif /* !INET6 */ static void extract_vif_data(int, struct vif *, struct mcastif_type *); static void extract_svif_data(int, struct vif_data *, struct mcastif_type *); +static void extract_mfc_data(struct mfc *, struct mroute_type *); +static void extract_smfc_data(struct mfc_data *, struct mroute_type *); #ifdef INET6 static void extract_mif6_data(int, struct mif6 *, struct mcastif_type *); static void extract_smif6_data(int, struct mif6_data *, struct mcastif_type *); +static void extract_mf6c_data(int, struct mf6c *, struct mroute_type *); +static void extract_smf6c_data(struct mf6c_data *, struct mroute_type *); #endif /* !INET6 */ #ifdef INET6 @@ -165,6 +190,7 @@ free(nls[i].n_name); return (result); } +#undef nls_size int mif_kvm(struct mcastif_type_list *list, kvm_t *kvm, struct nlist *nlp) @@ -474,5 +500,341 @@ } #undef CNV_FLAG +#endif /* !INET6 */ + + +#ifdef INET6 +#define nls_size (nlMRT_MAX + nlMRT6_MAX + 1) +#else +#define nls_size (nlMRT_MAX + 1) +#endif /* !INET6 */ + +int +netstat_mroute(const struct session_type *session, int domain, + struct mroute_type_list *list, __unused int flags) +{ + int result, use_kvm, i; + struct nlist nls[nls_size]; + + result = -1; + use_kvm = session->sst_flags & NETSTAT_SESSION_KVM; + bzero(nls, sizeof(nls)); + + if (use_kvm) { + switch (domain) { + case PF_UNSPEC: + for (i = 0; i < nlMRT_MAX; i++) + nls[i].n_name = strdup(mrt_symbol[i]); + for (i = nlMRT_MAX; i < nls_size; i++) + nls[i].n_name = + strdup(mrt6_symbol[i - nlMRT_MAX]); + break; + case PF_INET: + for (i = 0; i < nlMRT_MAX; i++) + nls[i].n_name = strdup(mrt_symbol[i]); + break; +#ifdef INET6 + case PF_INET6: + for (i = 0; i < nlMRT6_MAX; i++) + nls[i].n_name = strdup(mrt6_symbol[i]); + break; +#endif /* !INET6 */ + default: + break; + } + if (kvm_nlist(session->sst_kvm, nls) < 0) { + list->mrtl_error = NETSTAT_ERROR_KVM; + goto end; + } + } + + switch (domain) { + case PF_UNSPEC: + result = use_kvm ? + mrt_kvm(list, session->sst_kvm, nls) : + mrt_sysctl(list); + if (result < 0) + goto end; + result = use_kvm ? + mrt6_kvm(list, session->sst_kvm, &nls[nlMRT_MAX]) : + mrt6_sysctl(list); + break; + case PF_INET: + result = use_kvm ? + mrt_kvm(list, session->sst_kvm, nls) : + mrt_sysctl(list); + break; +#ifdef INET6 + case PF_INET6: + result = use_kvm ? + mrt6_kvm(list, session->sst_kvm, nls) : + mrt6_sysctl(list); + break; +#endif /* !INET6 */ + default: + list->mrtl_error = NETSTAT_ERROR_UNSUPPORTED; + break; + } + +end: + for (i = 0; nls[i].n_name != NULL && i < nls_size; i++) + free(nls[i].n_name); + return (result); +} +#undef nls_size + +int +mrt_kvm(struct mroute_type_list *list, kvm_t *kvm, struct nlist *nlp) +{ + u_long mfctablesize, i; + LIST_HEAD(, mfc) *mfchashtbl; + struct mfc mfc, *m; + struct mroute_type *mrtp; + size_t len; + + if (kread_data(kvm, (uintptr_t)nlp[nlMRT_mfctablesize].n_value, + &mfctablesize, sizeof(mfctablesize)) != 0) { + list->mrtl_error = NETSTAT_ERROR_KVM; + return (-1); + } + + len = sizeof(*mfchashtbl) * mfctablesize; + mfchashtbl = malloc(len); + if (mfchashtbl == NULL) { + list->mrtl_error = NETSTAT_ERROR_NOMEMORY; + return (-1); + } + + if (kread_data(kvm, (uintptr_t)nlp[nlMRT_mfchashtbl].n_value, + mfchashtbl, len) != 0) { + list->mrtl_error = NETSTAT_ERROR_KVM; + return (-1); + } + + for (i = 0; i < mfctablesize; i++) { + LIST_FOREACH(m, &mfchashtbl[i], mfc_hash) { + if (kread_data(kvm, (uintptr_t)m, &mfc, + sizeof(mfc)) != 0) + continue; + mrtp = _netstat_mrt_allocate(list); + extract_mfc_data(&mfc, mrtp); + } + } + + free(mfchashtbl); + return (0); +} + +int +mrt_sysctl(struct mroute_type_list *list) +{ + const char *mibvar = "net.inet.ip.smfctable"; + + struct mfc_stream *msp; + struct mfc_data *mdp; + struct mroute_type *mrtp; + char *buf, *p; + size_t len; + int result; + u_int32_t i; + + result = -1; + len = 0; + if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: %s", mibvar); + goto out2; + } + if ((buf = malloc(len)) == 0) { + warnx("malloc %lu bytes", (u_long)len); + goto out2; + } + if (sysctlbyname(mibvar, buf, &len, 0, 0) < 0) { + warn("sysctl: %s", mibvar); + goto out1; + } + if (len < sizeof(*msp)) { + list->mrtl_error = NETSTAT_ERROR_VERSION; + goto out1; + } + + p = buf; + msp = (struct mfc_stream *)p; + p+= sizeof(*msp); + + if (msp->ms_version != MFC_STREAM_VERSION) { + list->mrtl_error = NETSTAT_ERROR_VERSION; + goto out1; + } + + for (i = 0; i < msp->ms_count; i++) { + mdp = (struct mfc_data *)p; + p += sizeof(*mdp); + mrtp = _netstat_mrt_allocate(list); + extract_smfc_data(mdp, mrtp); + } + + result = 0; + +out1: free(buf); +out2: return (result); +} + +#ifdef INET6 +int +mrt6_kvm(struct mroute_type_list *list, kvm_t *kvm, struct nlist *nlp) +{ + struct mf6c *mf6ctable[MF6CTBLSIZ], *mfcp; + struct mf6c mfc; + struct mroute_type *mrtp; + int i; + if (kread_data(kvm, (uintptr_t)nlp[nlMRT6_mf6ctable].n_value, + mf6ctable, sizeof(mf6ctable)) != 0) { + list->mrtl_error = NETSTAT_ERROR_KVM; + return (-1); + } + + for (i = 0; i < MF6CTBLSIZ; ++i) { + for (mfcp = mf6ctable[i]; mfcp != NULL; mfcp = mfc.mf6c_next) { + kread_data(kvm, (uintptr_t)mfcp, &mfc, sizeof(mfc)); + mrtp = _netstat_mrt_allocate(list); + extract_mf6c_data(_mrt6_get_nstall_kvm(kvm, &mfc), + &mfc, mrtp); + } + } + + return (0); +} + +int +mrt6_sysctl(struct mroute_type_list *list) +{ + const char *mibvar = "net.inet6.ip6.smf6ctable"; + + struct mf6c_stream *msp; + struct mf6c_data *mdp; + struct mroute_type *mrtp; + char *buf, *p; + size_t len; + int result; + u_int32_t i; + + result = -1; + len = 0; + if (sysctlbyname(mibvar, 0, &len, 0, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: %s", mibvar); + goto out2; + } + if ((buf = malloc(len)) == 0) { + warnx("malloc %lu bytes", (u_long)len); + goto out2; + } + if (sysctlbyname(mibvar, buf, &len, 0, 0) < 0) { + warn("sysctl: %s", mibvar); + goto out1; + } + if (len < sizeof(*msp)) { + list->mrtl_error = NETSTAT_ERROR_VERSION; + goto out1; + } + + p = buf; + msp = (struct mf6c_stream *)p; + p+= sizeof(*msp); + + if (msp->ms_version != MF6C_STREAM_VERSION) { + list->mrtl_error = NETSTAT_ERROR_VERSION; + goto out1; + } + + for (i = 0; i < msp->ms_count; i++) { + mdp = (struct mf6c_data *)p; + p += sizeof(*mdp); + mrtp = _netstat_mrt_allocate(list); + extract_smf6c_data(mdp, mrtp); + } + + result = 0; + +out1: free(buf); +out2: return (result); +} +#endif /* !INET6 */ + +void +extract_mfc_data(struct mfc *m, struct mroute_type *mrtp) +{ + int i; + struct sockaddr_in sa_in; + + bzero(&sa_in, sizeof(struct sockaddr_in)); + sa_in.sin_len = sizeof(struct sockaddr_in); + sa_in.sin_family = PF_INET; + sa_in.sin_addr = m->mfc_origin; + + mrtp->mrt_origin = extract_address(&sa_in, NULL, 0); + sa_in.sin_addr = m->mfc_mcastgrp; + mrtp->mrt_group = extract_address(&sa_in, NULL, 0); + mrtp->mrt_pkt_cnt = m->mfc_pkt_cnt; + mrtp->mrt_byte_cnt = m->mfc_byte_cnt; + mrtp->mrt_nstall = m->mfc_nstall; + mrtp->mrt_parent = m->mfc_parent; + for (i = 0; i < MAXVIFS; i++) + mrtp->mrt_ttls[i] = m->mfc_ttls[i]; +} + +void +extract_smfc_data(struct mfc_data *md, struct mroute_type *mrtp) +{ + struct sockaddr_in sa_in; + + bzero(&sa_in, sizeof(struct sockaddr_in)); + sa_in.sin_len = sizeof(struct sockaddr_in); + sa_in.sin_family = PF_INET; + sa_in.sin_addr.s_addr = md->md_origin; + + mrtp->mrt_origin = extract_address(&sa_in, NULL, 0); + sa_in.sin_addr.s_addr = md->md_mcastgrp; + mrtp->mrt_group = extract_address(&sa_in, NULL, 0); + mrtp->mrt_pkt_cnt = md->md_pkt_cnt; + mrtp->mrt_byte_cnt = md->md_byte_cnt; + mrtp->mrt_nstall = md->md_nstall; + mrtp->mrt_parent = md->md_parent; + bcopy(md->md_ttls, mrtp->mrt_ttls, sizeof(md->md_ttls)); +} + +#ifdef INET6 +void +extract_mf6c_data(int nstall, struct mf6c *m, struct mroute_type *mrtp) +{ + mrtp->mrt_origin = extract_address(&m->mf6c_origin, NULL, 0); + mrtp->mrt_group = extract_address(&m->mf6c_mcastgrp, NULL, 0); + mrtp->mrt_pkt_cnt = m->mf6c_pkt_cnt; + mrtp->mrt_byte_cnt = m->mf6c_byte_cnt; + mrtp->mrt_nstall = nstall; + mrtp->mrt_parent = m->mf6c_parent; + mrtp->mrt_ifset = m->mf6c_ifset; +} + +void +extract_smf6c_data(struct mf6c_data *md, struct mroute_type *mrtp) +{ + struct sockaddr_in6 sa_in6; + + bzero(&sa_in6, sizeof(struct sockaddr_in6)); + sa_in6.sin6_len = sizeof(struct sockaddr_in6); + sa_in6.sin6_family = PF_INET6; + sa_in6.sin6_addr = *((struct in6_addr *)md->md_origin); + + mrtp->mrt_origin = extract_address(&sa_in6, NULL, 0); + sa_in6.sin6_addr = *((struct in6_addr *)md->md_mcastgrp); + mrtp->mrt_group = extract_address(&sa_in6, NULL, 0); + mrtp->mrt_pkt_cnt = md->md_pkt_cnt; + mrtp->mrt_byte_cnt = md->md_byte_cnt; + mrtp->mrt_nstall = md->md_nstall; + mrtp->mrt_parent = md->md_parent; + bcopy(&md->md_ifs_bits, &mrtp->mrt_ifset, sizeof(md->md_ifs_bits)); +} #endif /* !INET6 */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#69 (text+ko) ==== @@ -31,11 +31,18 @@ #include #include #include +#include #include #include #include +#ifdef INET6 +#define _KERNEL +#include +#undef _KERNEL +#endif /* !INET6 */ + #include #include #include @@ -130,6 +137,23 @@ return (0); } +#ifdef INET6 +int +_mrt6_get_nstall_kvm(kvm_t *kvm, struct mf6c *m) +{ + int result; + struct rtdetq rte, *rtep; + + result = 0; + for (rtep = m->mf6c_stall; rtep != NULL; rtep = rte.next) { + kread_data(kvm, (uintptr_t)rtep, &rte, sizeof(rte)); + result++; + } + + return (result); +} +#endif /* !INET6 */ + const char * netstat_strerror(int error) { @@ -2739,6 +2763,172 @@ } +void +_netstat_mrtl_empty(struct mroute_type_list *list) +{ + struct mroute_type *mrtp; + + while ((mrtp = TAILQ_FIRST(&list->mrtl_list)) ) { + TAILQ_REMOVE(&list->mrtl_list, mrtp, mrt_list); + _netstat_mrt_free(mrtp); + } + + list->mrtl_length = 0; +} + +void +_netstat_mrt_free(struct mroute_type *mrtp) +{ + _netstat_rat_free(mrtp->mrt_origin); + _netstat_rat_free(mrtp->mrt_group); + free(mrtp); +} + +struct mroute_type * +_netstat_mrt_allocate(struct mroute_type_list *list) +{ + struct mroute_type *mrtp; + + mrtp = malloc(sizeof(*mrtp)); + if (mrtp == NULL) + return (NULL); + + bzero(mrtp, sizeof(*mrtp)); + TAILQ_INSERT_TAIL(&list->mrtl_list, mrtp, mrt_list); + list->mrtl_length += 1; + return (mrtp); +} + +struct mroute_type_list * +netstat_mrtl_alloc(void) +{ + struct mroute_type_list *mrtlp; + + mrtlp = malloc(sizeof(*mrtlp)); + if (mrtlp == NULL) + return (NULL); + + TAILQ_INIT(&mrtlp->mrtl_list); + mrtlp->mrtl_error = NETSTAT_ERROR_UNDEFINED; + mrtlp->mrtl_length = 0; + return (mrtlp); +} + +void +netstat_mrtl_free(struct mroute_type_list *mrtlp) +{ + _netstat_mrtl_empty(mrtlp); + free(mrtlp); +} + +int +netstat_mrtl_geterror(const struct mroute_type_list *mrtlp) +{ + return (mrtlp->mrtl_error); +} + +int +netstat_mrtl_length(const struct mroute_type_list *mrtlp) +{ + return (mrtlp->mrtl_length); +} + +int +netstat_mrti_alloc(struct mroute_type_list *list, + struct mroute_type_iterator **iterator) +{ + struct mroute_type_iterator *mrtip; + + mrtip = malloc(sizeof(*mrtip)); + if (mrtip == NULL) + return (-1); + + bzero(mrtip, sizeof(*mrtip)); + mrtip->mrti_list = list; + mrtip->mrti_first = TAILQ_FIRST(&list->mrtl_list); + if (mrtip->mrti_first != NULL) + mrtip->mrti_next = TAILQ_NEXT(mrtip->mrti_first, mrt_list); + *iterator = mrtip; + return (0); +} + +const struct mroute_type * +netstat_mrti_first(struct mroute_type_iterator *mrtip) +{ + if (mrtip->mrti_first != NULL) + mrtip->mrti_next = TAILQ_NEXT(mrtip->mrti_first, mrt_list); + return (mrtip->mrti_first); +} + +const struct mroute_type * +netstat_mrti_next(struct mroute_type_iterator *mrtip) +{ + const struct mroute_type *mrtp; + + mrtp = mrtip->mrti_next; + if (mrtip->mrti_next != NULL) + mrtip->mrti_next = TAILQ_NEXT(mrtip->mrti_next, mrt_list); + + return (mrtp); +} + +void +netstat_mrti_free(struct mroute_type_iterator *mrtip) +{ + free(mrtip); +} + +const struct routeaddr_type * +netstat_mrt_get_origin(const struct mroute_type *mrtp) +{ + return (mrtp->mrt_origin); +} + +const struct routeaddr_type * +netstat_mrt_get_group(const struct mroute_type *mrtp) +{ + return (mrtp->mrt_group); +} + +u_int64_t +netstat_mrt_get_packets(const struct mroute_type *mrtp) +{ + return (mrtp->mrt_pkt_cnt); +} + +u_int64_t +netstat_mrt_get_bytes(const struct mroute_type *mrtp) +{ + return (mrtp->mrt_byte_cnt); +} + +u_int64_t +netstat_mrt_get_waitings(const struct mroute_type *mrtp) +{ + return (mrtp->mrt_nstall); +} + +u_int32_t +netstat_mrt_get_parent(const struct mroute_type *mrtp) +{ + return (mrtp->mrt_parent); +} + +u_int8_t +netstat_mrt_get_ttl(const struct mroute_type *mrtp, int i) +{ + if (0 <= i && i < MRTTYPE_MAXVIFS) + return (mrtp->mrt_ttls[i]); + return (0); +} + +int +netstat_mrt_get_is_mif_set(const struct mroute_type *mrtp, u_int32_t mifi) +{ + return (IF_ISSET(mifi, &mrtp->mrt_ifset)); +} + + static const char *icmpnames[ICMP_MAXTYPE + 1] = { "echo reply", /* RFC 792 */ "#1", From owner-p4-projects@FreeBSD.ORG Wed Aug 19 09:21:12 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D2C371065693; Wed, 19 Aug 2009 09:21: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 7EC88106568C for ; Wed, 19 Aug 2009 09:21:11 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 642768FC43 for ; Wed, 19 Aug 2009 09:21:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7J9LBaw019711 for ; Wed, 19 Aug 2009 09:21:11 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7J9LBRS019709 for perforce@freebsd.org; Wed, 19 Aug 2009 09:21:11 GMT (envelope-from anchie@FreeBSD.org) Date: Wed, 19 Aug 2009 09:21:11 GMT Message-Id: <200908190921.n7J9LBRS019709@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167496 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: Wed, 19 Aug 2009 09:21:12 -0000 http://perforce.freebsd.org/chv.cgi?CH=167496 Change 167496 by anchie@anchie_desnimis on 2009/08/19 09:20:46 Minor fixes. Affected files ... .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#26 edit .. //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#10 edit Differences ... ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#26 (text+ko) ==== @@ -85,6 +85,7 @@ u_char rtm_version; u_char rtm_type; int rtm_seq; + int in; }; void snd_sock_read(struct snd_ifinfo *p); @@ -150,8 +151,6 @@ pi = (struct snd_packet_info *)(b->head); DBG(&dbg_snd, "Direction, %s", (pi->rtm_seq == RTM_SND_OUT) ? "SND_OUT" : "SND_IN"); - DBG(&dbg_snd, "rt_msghdr = %d, if_announcemsghdr = %d\n", sizeof (struct rt_msghdr), sizeof (struct if_announcemsghdr)); - /* buffer starts with IPv6 hdr, roll back to include rtm header */ b->data -= sizeof (struct rt_msghdr); b->len += sizeof (struct rt_msghdr); @@ -176,9 +175,7 @@ if (rtm->rtm_flags & M_MCAST) DBG(&dbg_snd, "M_MCAST!"); - DBG_HEXDUMP(&dbg_snd, "Sending back to kernel: ", rtm, rtm->rtm_msglen); - - if (send(sndsock, rtm, b->len, 0) < 0) { + if (send(sndsock, b->data, b->len, 0) < 0) { DBG(&dbg_snd, "Failed to send routing message back to kernel."); perror("Failed"); snd_put_buf(b); @@ -286,9 +283,6 @@ goto done; } - DBG(&dbg_snd, "rtm->rtm_addrs = %x", rtm->rtm_addrs); - DBG(&dbg_snd, "rtm->rtm_msglen = %d", rtm->rtm_msglen); - switch (rtm->rtm_type) { case RTM_IFANNOUNCE: /* XXX: Do we need this? */ @@ -308,11 +302,11 @@ DBG(&dbg_snd, "invalid pkt (not enough for rtm hedaer"); goto done; } - pi->ifinfo = p; + pi->in = 1; + snd_recv_pkt(b, p->ifidx, SND_IN, pi); + break; - snd_recv_pkt(b, p->ifidx, SND_IN); - break; case RTM_SND_OUT: applog(LOG_ERR, "RTM_SND_OUT"); /* n = RTM hdr + ip6_hdr + icmp6len */ @@ -320,10 +314,9 @@ DBG(&dbg_snd, "invalid pkt (not enough for rtm header"); goto done; } - pi->ifinfo = p; - - snd_recv_pkt(b, p->ifidx, SND_OUT); + pi->in = 0; + snd_recv_pkt(b, p->ifidx, SND_OUT, pi); break; } break; ==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/proto.c#10 (text+ko) ==== @@ -657,15 +657,18 @@ DBG(&dbg, "%s pkt (%d bytes)", drop ? "dropping" : "delivering", pi->b->len); +#if 0 os_specific_deliver_pkt(pi->os_pkt, pi->b, drop, 1); +#endif + snd_deliver_pkt(pi->os_pkt, pi->b, drop, 1); free(pi); } void +snd_recv_pkt(struct sbuff *b, int ifidx, int in, void *pkt) #if 0 -snd_recv_pkt(struct sbuff *b, int ifidx, int in, void *pkt) +snd_recv_pkt(struct sbuff *b, int ifidx, int in) #endif -snd_recv_pkt(struct sbuff *b, int ifidx, int in) { int tlen, drop = 0; int changed = 0; @@ -699,7 +702,7 @@ } memset(pi, 0, sizeof (*pi)); pi->b = b; - /* XXX: We don't need this anymore!! -> pi->os_pkt = pkt; */ + pi->os_pkt = pkt; pi->ifidx = ifidx; /* Save packet start and len */ @@ -791,6 +794,7 @@ * to kernel through the input hook. */ /* os_specific_deliver_pkt(pkt, b, drop, changed); */ + snd_deliver_pkt(pkt, b, drop, changed); } int From owner-p4-projects@FreeBSD.ORG Wed Aug 19 11:39:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7997C106568C; Wed, 19 Aug 2009 11:39:43 +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 3D2621065672 for ; Wed, 19 Aug 2009 11:39:43 +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 2E5A38FC5B for ; Wed, 19 Aug 2009 11:39:43 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7JBdhPC031757 for ; Wed, 19 Aug 2009 11:39:43 GMT (envelope-from gk@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7JBdhAu031755 for perforce@freebsd.org; Wed, 19 Aug 2009 11:39:43 GMT (envelope-from gk@FreeBSD.org) Date: Wed, 19 Aug 2009 11:39:43 GMT Message-Id: <200908191139.n7JBdhAu031755@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 167498 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: Wed, 19 Aug 2009 11:39:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=167498 Change 167498 by gk@gk_h1 on 2009/08/19 11:39:26 use HMAC-SHA512 and HKDF use VMAC-64 for name checksum change encrypted name layout to: [checksum] [tweak] [name] preinitialize keys. store contexts instead of raw keys in struct pefs_key forbid empty passphrases in pefs util add some KASSERTS, eliminate excessive debugging Affected files ... .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.h#5 edit .. //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#5 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs.h#10 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#8 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#10 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vfsops.c#9 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#12 edit .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/vmac.c#1 add .. //depot/projects/soc2009/gk_pefs/sys/fs/pefs/vmac.h#1 add .. //depot/projects/soc2009/gk_pefs/sys/modules/pefs/Makefile#6 edit Differences ... ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_ctl.h#5 (text+ko) ==== @@ -26,7 +26,7 @@ * $FreeBSD$ */ -#define PEFS_ALG_DEFAULT PEFS_ALG_SALSA20 +#define PEFS_ALG_DEFAULT PEFS_ALG_AES_CTR #define PEFS_ALG_DEFAULT_KEYBITS 256 #define PEFS_KDF_ITERATIONS 50000 ==== //depot/projects/soc2009/gk_pefs/sbin/pefs/pefs_key.c#5 (text+ko) ==== @@ -160,7 +160,7 @@ !i ? "Enter" : "Reenter", prompt); p = readpassphrase(promptbuf, !i ? buf : buf2, BUFSIZ, RPP_ECHO_OFF | RPP_REQUIRE_TTY); - if (p == NULL) { + if (p == NULL || p[0] == '\0') { bzero(buf, sizeof(buf)); bzero(buf2, sizeof(buf2)); errx(EX_DATAERR, "unable to read passphrase"); ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs.h#10 (text+ko) ==== @@ -74,18 +74,20 @@ #define PEFS_NAME_PTON_SIZE(a) (((a) * 3)/4) struct pefs_alg; +struct pefs_ctx; TAILQ_HEAD(pefs_key_head, pefs_key); struct pefs_key { TAILQ_ENTRY(pefs_key) pk_entry; volatile u_int pk_refcnt; + const struct pefs_alg *pk_alg; + struct pefs_ctx *pk_name_csum_ctx; + struct pefs_ctx *pk_name_ctx; + struct pefs_ctx *pk_data_ctx; + struct mtx *pk_entry_lock; int pk_algid; int pk_keybits; - const struct pefs_alg *pk_alg; - struct mtx *pk_entry_lock; - char pk_name[PEFS_KEY_SIZE]; - char pk_data[PEFS_KEY_SIZE]; char pk_keyid[PEFS_KEYID_SIZE]; }; ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_crypto.c#8 (text+ko) ==== @@ -43,6 +43,15 @@ #include #include +#include + +#define PEFS_CTR_BLOCK_SIZE 16 +#define PEFS_CSUM_BLOCK_SIZE 16 +#define PEFS_BLOCK_ROUND(block, a) (((a) + (block) - 1) & ~((block) - 1)) + +CTASSERT(PEFS_KEY_SIZE <= SHA512_DIGEST_LENGTH); +CTASSERT(PEFS_TWEAK_SIZE == 64/8); +CTASSERT(CAMELLIA_BLOCK_SIZE == PEFS_CTR_BLOCK_SIZE); typedef void algop_keysetup_t(struct pefs_ctx *ctx, const uint8_t *key, uint32_t keybits); typedef void algop_ivsetup_t(struct pefs_ctx *ctx, const uint8_t *iv, uint64_t offset); @@ -56,6 +65,24 @@ algop_crypt_t *pa_crypt; }; +struct pefs_ctr { + uint64_t pctr_offset; + uint32_t pctr_pos; + char pctr_tweak[PEFS_TWEAK_SIZE]; + char pctr_block[PEFS_CTR_BLOCK_SIZE]; +} ; + +struct pefs_ctx { + struct pefs_ctr pctx_ctr; + union { + camellia_ctx pctx_camellia; + rijndael_ctx pctx_aes; + salsa20_ctx pctx_salsa; + struct pefs_hmac_ctx pctx_hmac; + vmac_ctx_t pctx_vmac; + } o; +}; + static algop_keysetup_t pefs_salsa20_keysetup; static algop_ivsetup_t pefs_salsa20_ivsetup; static algop_crypt_t pefs_salsa20_crypt; @@ -90,32 +117,22 @@ 0x5c, 0x83, 0xcb, 0x96, 0x2f, 0xaf, 0x3b, 0xb5, }; -#define MAGIC_KEYGEN_ITERATIONS 16 +/* vmac requirement: first bit of the nonce buffer n must be 0 */ +static const char magic_name_csum_nonce[VMAC_NHBYTES] = { + 0x00, 0xb1, 0xad, 0xd5, 0x5b, 0xf9, 0x10, 0xe1, + 0x0a, 0x25, 0x8a, 0xd3, 0x33, 0x91, 0x8a, 0x1a, +}; -static const char magic_tweak_keygen[PEFS_TWEAK_SIZE] = { +static const char magic_ctxinfo_name_key[PEFS_TWEAK_SIZE] = { 0xc8, 0x27, 0xa3, 0x7e, 0xcf, 0x86, 0x3d, 0x0d, }; -#define PEFS_CTR_BLOCK_SIZE 16 +static const char magic_ctxinfo_name_csum_key[PEFS_TWEAK_SIZE] = { + 0x21, 0xe2, 0x71, 0x0a, 0x4a, 0xe6, 0xfd, 0x64, +}; -CTASSERT(PEFS_TWEAK_SIZE == 64/8); -CTASSERT(CAMELLIA_BLOCK_SIZE == PEFS_CTR_BLOCK_SIZE); - -struct pefs_ctr { - uint64_t pctr_offset; - uint32_t pctr_pos; - char pctr_tweak[PEFS_TWEAK_SIZE]; - char pctr_block[PEFS_CTR_BLOCK_SIZE]; -} ; - -struct pefs_ctx { - struct pefs_ctr pctx_ctr; - union { - camellia_ctx pctx_camellia; - rijndael_ctx pctx_aes; - salsa20_ctx pctx_salsa; - struct pefs_hmac_ctx pctx_hmac; - } o; +static const char magic_ctxinfo_data_key[PEFS_TWEAK_SIZE] = { + 0xe3, 0x74, 0xdc, 0x7f, 0x10, 0x23, 0x55, 0x16, }; static uma_zone_t pefs_ctx_zone; @@ -151,31 +168,63 @@ uma_zfree(pefs_ctx_zone, ctx); } +static inline void +pefs_ctx_cpy(struct pefs_ctx *dst, struct pefs_ctx *src) +{ + *dst = *src; +} + /* - * This is not a key derivation function in common sense! - * Key should be cryptographically strong. + * Use HKDF-Expand() to derive keys, key parameter is supposed to be + * cryptographically strong. + * http://tools.ietf.org/html/draft-krawczyk-hkdf-00 */ static void -pefs_key_generate(struct pefs_ctx *ctx, char *key) +pefs_key_generate(struct pefs_key *pk, const char *masterkey) { - char tweak[PEFS_TWEAK_SIZE]; - int i, j; + struct pefs_ctx *ctx; + char key[PEFS_KEY_SIZE]; + char idx; + + /* Properly initialize contexts as they are used to compare keys. */ + bzero(pk->pk_name_ctx, sizeof(struct pefs_ctx)); + bzero(pk->pk_name_csum_ctx, sizeof(struct pefs_ctx)); + bzero(pk->pk_data_ctx, sizeof(struct pefs_ctx)); + + ctx = pefs_ctx_get(); + + idx = 1; + bzero(key, PEFS_KEY_SIZE); + pefs_hmac_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, magic_ctxinfo_data_key, PEFS_TWEAK_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); + pefs_hmac_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + pk->pk_alg->pa_keysetup(pk->pk_data_ctx, key, pk->pk_keybits); + + idx = 2; + pefs_hmac_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, PEFS_TWEAK_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); + pefs_hmac_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + pk->pk_alg->pa_keysetup(pk->pk_name_ctx, key, pk->pk_keybits); + + idx = 3; + pefs_hmac_init(&ctx->o.pctx_hmac, masterkey, PEFS_KEY_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, magic_ctxinfo_name_key, PEFS_TWEAK_SIZE); + pefs_hmac_update(&ctx->o.pctx_hmac, &idx, sizeof(idx)); + pefs_hmac_final(&ctx->o.pctx_hmac, key, PEFS_KEY_SIZE); + vmac_set_key(key, &pk->pk_name_csum_ctx->o.pctx_vmac); - memcpy(tweak, magic_tweak_keygen, PEFS_TWEAK_SIZE); + pefs_ctx_free(ctx); - for (i = 1; i < MAGIC_KEYGEN_ITERATIONS; i++) { - salsa20_keysetup(&ctx->o.pctx_salsa, key, 256); - salsa20_ivsetup(&ctx->o.pctx_salsa, tweak, i * 64); - salsa20_crypt(&ctx->o.pctx_salsa, key, key, PEFS_KEY_SIZE); - for (j = 0; j < PEFS_TWEAK_SIZE; j++) - tweak[j]++; - } } struct pefs_key * pefs_key_get(int alg, int keybits, const char *key, const char *keyid) { - struct pefs_ctx *ctx; struct pefs_key *pk; pk = uma_zalloc(pefs_key_zone, M_WAITOK | M_ZERO); @@ -211,12 +260,11 @@ refcount_init(&pk->pk_refcnt, 1); memcpy(pk->pk_keyid, keyid, PEFS_KEYID_SIZE); - ctx = pefs_ctx_get(); - memcpy(pk->pk_data, key, PEFS_KEY_SIZE); - pefs_key_generate(ctx, pk->pk_data); - memcpy(pk->pk_name, pk->pk_data, PEFS_KEY_SIZE); - pefs_key_generate(ctx, pk->pk_name); - pefs_ctx_free(ctx); + pk->pk_name_ctx = pefs_ctx_get(); + pk->pk_name_csum_ctx = pefs_ctx_get(); + pk->pk_data_ctx = pefs_ctx_get(); + + pefs_key_generate(pk, key); return (pk); } @@ -233,12 +281,11 @@ { if (pk == NULL) return; - if (pk->pk_refcnt == 0) { - PEFSDEBUG("!!!! pefs_key_release: zero reference count\n"); - return; - } if (refcount_release(&pk->pk_refcnt)) { PEFSDEBUG("pefs_key_release: free pk=%p\n", pk); + pefs_ctx_free(pk->pk_name_ctx); + pefs_ctx_free(pk->pk_name_csum_ctx); + pefs_ctx_free(pk->pk_data_ctx); uma_zfree(pefs_key_zone, pk); } } @@ -273,8 +320,7 @@ pos = 0; TAILQ_FOREACH(i, &pm->pm_keys, pk_entry) { if (memcmp(pk->pk_keyid, i->pk_keyid, PEFS_KEYID_SIZE) == 0 || - memcmp(pk->pk_name, i->pk_name, PEFS_KEY_SIZE) == 0 || - memcmp(pk->pk_data, i->pk_data, PEFS_KEY_SIZE) == 0) { + memcmp(pk->pk_data_ctx, i->pk_data_ctx, sizeof(struct pefs_ctx)) == 0) { mtx_unlock(&pm->pm_keys_lock); return (EEXIST); } @@ -331,17 +377,15 @@ struct iovec *iov; int free_ctx = 0; - if (ptk->ptk_key == NULL) { - PEFSDEBUG("!!! %s: NULL ptk_key\n", __func__); - return; - } + KASSERT(ptk->ptk_key != NULL, ("pefs_data_encrypt: key is null")); + if (ctx == NULL) { ctx = pefs_ctx_get(); free_ctx = 1; } alg = ptk->ptk_key->pk_alg; - alg->pa_keysetup(ctx, ptk->ptk_key->pk_data, ptk->ptk_key->pk_keybits); + pefs_ctx_cpy(ctx, ptk->ptk_key->pk_data_ctx); alg->pa_ivsetup(ctx, ptk->ptk_tweak, offset); for (iov = pc->pc_iov; iov < pc->pc_iov + pc->pc_iovcnt; iov++) { alg->pa_crypt(ctx, iov->iov_base, iov->iov_base, @@ -358,33 +402,61 @@ pefs_data_encrypt(ctx, ptk, offset, pc); } +static inline size_t +pefs_name_checksum_psize(size_t namelen) +{ + size_t psize; + + psize = namelen - PEFS_NAME_CSUM_SIZE; + psize = PEFS_NAME_CSUM_SIZE + + PEFS_BLOCK_ROUND(PEFS_CSUM_BLOCK_SIZE, psize); + + return (psize); +} + +/* + * File name layout: [checksum] [tweak] [name] + */ static inline void -pefs_name_checksum(struct pefs_ctx *ctx, struct pefs_key *pk, u_char *csum, const void *mem, size_t count) +pefs_name_checksum(struct pefs_ctx *ctx, struct pefs_key *pk, char *csum, + char *name, size_t size, size_t maxsize) { - pefs_hmac(&ctx->o.pctx_hmac, pk->pk_name, pk->pk_keybits / 8, - mem, count, csum, PEFS_NAME_CSUM_SIZE); + CTASSERT(PEFS_NAME_CSUM_SIZE <= sizeof(uint64_t)); + uint64_t csum_int; + size_t psize; + + psize = pefs_name_checksum_psize(size); + if (psize != size) { + if (maxsize < psize) + panic("pefs_name_checksum: buffer is too small"); + bzero(name + size, psize - size); + } + + pefs_ctx_cpy(ctx, pk->pk_name_csum_ctx); + csum_int = vmac(name + PEFS_NAME_CSUM_SIZE, + size - PEFS_NAME_CSUM_SIZE, + magic_name_csum_nonce, + NULL, &ctx->o.pctx_vmac); + memcpy(csum, &csum_int, PEFS_NAME_CSUM_SIZE); } int pefs_name_encrypt(struct pefs_ctx *ctx, struct pefs_tkey *ptk, const char *plain, size_t plain_len, char *enc, size_t enc_size) { const struct pefs_alg *alg; - char *buf; - size_t size; + char *buf, *buf_name, *buf_tweak; + size_t size, psize; int free_ctx = 0; int r; + KASSERT(ptk->ptk_key != NULL, ("pefs_name_encrypt: key is null")); - if (ptk == NULL || ptk->ptk_key == NULL) { - PEFSDEBUG("!!!! %s: NULL key\n", __func__); - return (-1); - } alg = ptk->ptk_key->pk_alg; size = PEFS_TWEAK_SIZE + plain_len + PEFS_NAME_CSUM_SIZE; if (enc_size < PEFS_NAME_NTOP_SIZE(size)) { - PEFSDEBUG("%s: encname buffer is too short: length=%d; required=%d\n", - __func__, enc_size, PEFS_NAME_NTOP_SIZE(enc_size)); + printf("pefs: name encryption buffer is too small: length %ld, required %ld\n", + enc_size, PEFS_NAME_NTOP_SIZE(size)); return (-1); } @@ -393,25 +465,25 @@ free_ctx = 1; } - buf = malloc(size, M_PEFSBUF, M_WAITOK); + psize = pefs_name_checksum_psize(size); + buf = malloc(psize, M_PEFSBUF, M_WAITOK); - memcpy(buf, ptk->ptk_tweak, PEFS_TWEAK_SIZE); - memcpy(buf + PEFS_TWEAK_SIZE, plain, plain_len); + buf_tweak = buf + PEFS_NAME_CSUM_SIZE; + buf_name = buf + PEFS_NAME_CSUM_SIZE + PEFS_TWEAK_SIZE; + memcpy(buf_tweak, ptk->ptk_tweak, PEFS_TWEAK_SIZE); + memcpy(buf_name, plain, plain_len); - alg->pa_keysetup(ctx, ptk->ptk_key->pk_name, ptk->ptk_key->pk_keybits); + pefs_ctx_cpy(ctx, ptk->ptk_key->pk_name_ctx); alg->pa_ivsetup(ctx, magic_tweak_name, 0); - alg->pa_crypt(ctx, buf, buf, size - PEFS_NAME_CSUM_SIZE); + alg->pa_crypt(ctx, buf_tweak, buf_tweak, size - PEFS_NAME_CSUM_SIZE); - pefs_name_checksum(ctx, ptk->ptk_key, buf + size - PEFS_NAME_CSUM_SIZE, - buf, size - PEFS_NAME_CSUM_SIZE); + pefs_name_checksum(ctx, ptk->ptk_key, buf, buf, size, psize); if (free_ctx) pefs_ctx_free(ctx); r = pefs_name_ntop(buf, size, enc, enc_size); - printf("pefs_name_encrypt: %d; %.*s => %.*s\n", r, plain_len, plain, r, enc); - free(buf, M_PEFSBUF); return (r); @@ -423,25 +495,26 @@ const struct pefs_alg *alg; struct pefs_key *ki; char csum[PEFS_NAME_CSUM_SIZE]; + char *plain_tweak; int free_ctx = 0; int r, ki_rev; - if (pk == NULL) { - PEFSDEBUG("!!!! %s: NULL pk\n", __func__); - return (-1); - } + KASSERT(ptk->ptk_key != NULL, ("pefs_name_decrypt: key is null")); + KASSERT(enc != plain, ("pefs_name_decrypt: ciphertext and plaintext buffers should differ")); + alg = pk->pk_alg; - - if (enc == plain) { - PEFSDEBUG("pefs_name_decrypt: enc == plain\n"); - return (-1); - } r = pefs_name_pton(enc, enc_len, plain, plain_size); if (r < 0 || r <= PEFS_TWEAK_SIZE + PEFS_NAME_CSUM_SIZE) { - PEFSDEBUG("%s: error: r=%d\n", __func__, r); + PEFSDEBUG("pefs_name_decrypt: error: r=%d\n", r); + return (-1); + } + if (plain_size < pefs_name_checksum_psize(r)) { + printf("pefs: name decryption buffer is too small: length %ld, required %ld\n", + plain_size, pefs_name_checksum_psize(r)); return (-1); } + plain_tweak = plain + PEFS_NAME_CSUM_SIZE; if (ctx == NULL) { ctx = pefs_ctx_get(); @@ -451,8 +524,8 @@ ki = pk; ki_rev = 0; do { - pefs_name_checksum(ctx, ki, csum, plain, r - PEFS_NAME_CSUM_SIZE); - if (memcmp(csum, plain + r - PEFS_NAME_CSUM_SIZE, PEFS_NAME_CSUM_SIZE) == 0) + pefs_name_checksum(ctx, ki, csum, plain, r, plain_size); + if (memcmp(csum, plain, PEFS_NAME_CSUM_SIZE) == 0) break; if (!ki_rev) { @@ -473,21 +546,19 @@ if (ki == NULL) return (-1); - alg->pa_keysetup(ctx, ki->pk_name, ki->pk_keybits); + pefs_ctx_cpy(ctx, ki->pk_name_ctx); alg->pa_ivsetup(ctx, magic_tweak_name, 0); - alg->pa_crypt(ctx, plain, plain, r - PEFS_NAME_CSUM_SIZE); + alg->pa_crypt(ctx, plain_tweak, plain_tweak, r - PEFS_NAME_CSUM_SIZE); if (ptk) { ptk->ptk_key = ki; - memcpy(ptk->ptk_tweak, plain, PEFS_TWEAK_SIZE); + memcpy(ptk->ptk_tweak, plain_tweak, PEFS_TWEAK_SIZE); } r -= PEFS_TWEAK_SIZE + PEFS_NAME_CSUM_SIZE; - memcpy(plain, plain + PEFS_TWEAK_SIZE, r); + memcpy(plain, plain + PEFS_NAME_CSUM_SIZE + PEFS_TWEAK_SIZE, r); plain[r] = '\0'; - // PEFSDEBUG("pefs_name_decrypt: %d; %.*s => %.*s\n", r, enc_len, enc, r < 0 ? 0 : r, plain); - return (r); } ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_subr.c#10 (text+ko) ==== @@ -149,16 +149,16 @@ * node found. */ static struct vnode * -pefs_hashins(struct mount *mp, struct pefs_node *xp) +pefs_hashins(struct mount *mp, struct pefs_node *pn) { struct pefs_node_hashhead *hd; struct pefs_node *oxp; struct vnode *ovp; - hd = PEFS_NHASH(xp->pn_lowervp); + hd = PEFS_NHASH(pn->pn_lowervp); mtx_lock(&pefs_hashmtx); LIST_FOREACH(oxp, hd, pn_hash) { - if (oxp->pn_lowervp == xp->pn_lowervp && + if (oxp->pn_lowervp == pn->pn_lowervp && PN_TO_VP(oxp)->v_mount == mp) { /* * See pefs_hashget for a description of this @@ -170,7 +170,7 @@ return (ovp); } } - LIST_INSERT_HEAD(hd, xp, pn_hash); + LIST_INSERT_HEAD(hd, pn, pn_hash); mtx_unlock(&pefs_hashmtx); return (NULLVP); } @@ -183,7 +183,6 @@ PEFSDEBUG("pefs_insmntque_dtr: free node %p\n", pn); vp->v_data = NULL; vp->v_vnlock = &vp->v_lock; - PEFSDEBUG("pefs_insmntque_dtr: pk=%p\n", pn->pn_tkey.ptk_key); pefs_key_release(pn->pn_tkey.ptk_key); uma_zfree(pefs_node_zone, pn); vp->v_op = &dead_vnodeops; @@ -199,7 +198,6 @@ int error, locked, dlocked; int buflen = *encname_len; - PEFSDEBUG("%s: lvp=%p, ldvp=%p, cred=%p\n", __func__, lvp, ldvp, cred); ASSERT_VOP_LOCKED(lvp, "pefs_node_lookup_name"); locked = VOP_ISLOCKED(lvp); if (ldvp) { @@ -214,7 +212,7 @@ VOP_UNLOCK(lvp, 0); nldvp = lvp; error = vn_vptocnp(&nldvp, cred, encname, encname_len); - PEFSDEBUG("%s: vn_vptocnp(dvp) result %d; nldvp=%p; ldvp=%p, len=%d\n", __func__, error, nldvp, ldvp, *encname_len); + PEFSDEBUG("pefs_node_lookup_name: vn_vptocnp(dvp) result %d; nldvp=%p; ldvp=%p, len=%d\n", error, nldvp, ldvp, *encname_len); if (!error) vdrop(nldvp); vrele(lvp); @@ -228,7 +226,6 @@ *encname_len = buflen - *encname_len; if (*encname_len < buflen) encname[*encname_len] = '\0'; - PEFSDEBUG("%s: len=%d %s\n", __func__, *encname_len, encname); return (0); } @@ -250,15 +247,14 @@ return (error); } - PEFSDEBUG("%s: encname_len=%d; encname=%s\n", __func__, encname_len, - encname); + PEFSDEBUG("pefs_node_lookup_key: encname=%.*s\n", encname_len, encname); name_len = pefs_name_decrypt(NULL, pefs_rootkey(pm), ptk, encname, encname_len, namebuf, MAXNAMLEN + 1); if (name_len < 0) { - PEFSDEBUG("%s: not found: %.*s\n", __func__, encname_len, encname); + PEFSDEBUG("pefs_node_lookup_key: not found: %.*s\n", encname_len, encname); error = 0; } else { pefs_key_ref(ptk->ptk_key); @@ -282,7 +278,7 @@ int pefs_node_get(struct mount *mp, struct vnode *lvp, struct vnode *ldvp, struct vnode **vpp, struct ucred *cred, struct pefs_tkey *ptk) { - struct pefs_node *xp; + struct pefs_node *pn; struct vnode *vp; int error; @@ -306,56 +302,54 @@ * might cause a bogus v_data pointer to get dereferenced * elsewhere if MALLOC should block. */ - xp = uma_zalloc(pefs_node_zone, M_WAITOK | M_ZERO); + pn = uma_zalloc(pefs_node_zone, M_WAITOK | M_ZERO); if (ptk != NULL && ptk->ptk_key != NULL) { - xp->pn_tkey = *ptk; - xp->pn_flags = PN_HASKEY; - pefs_key_ref(xp->pn_tkey.ptk_key); + pn->pn_tkey = *ptk; + pn->pn_flags = PN_HASKEY; + pefs_key_ref(pn->pn_tkey.ptk_key); } else if (mp->mnt_data != NULL && pefs_rootkey(VFS_TO_PEFS(mp)) != NULL) { if (cred == NULL) cred = curthread->td_ucred; - error = pefs_node_lookup_key(VFS_TO_PEFS(mp), lvp, ldvp, cred, &xp->pn_tkey); + error = pefs_node_lookup_key(VFS_TO_PEFS(mp), lvp, ldvp, cred, &pn->pn_tkey); if (error) { - uma_zfree(pefs_node_zone, xp); + uma_zfree(pefs_node_zone, pn); return (error); } - if (xp->pn_tkey.ptk_key != NULL) - xp->pn_flags = PN_HASKEY; + if (pn->pn_tkey.ptk_key != NULL) + pn->pn_flags = PN_HASKEY; } - if (xp->pn_tkey.ptk_key != NULL) { - PEFSDEBUG("pefs_node_get: node has key: pk_refcnt=%d\n", xp->pn_tkey.ptk_key->pk_refcnt); - } error = getnewvnode("pefs", mp, &pefs_vnodeops, &vp); if (error) { - pefs_key_release(xp->pn_tkey.ptk_key); - uma_zfree(pefs_node_zone, xp); + pefs_key_release(pn->pn_tkey.ptk_key); + uma_zfree(pefs_node_zone, pn); return (error); } - if (xp->pn_tkey.ptk_key == NULL) - PEFSDEBUG("%s: creating node without key: %p: %p->%p\n", __func__, xp, vp, lvp); + if (pn->pn_tkey.ptk_key == NULL) { + PEFSDEBUG("pefs_node_get: creating node without key: %p: %p->%p\n", pn, vp, lvp); + } - xp->pn_vnode = vp; - xp->pn_lowervp = lvp; + pn->pn_vnode = vp; + pn->pn_lowervp = lvp; vp->v_type = lvp->v_type; - vp->v_data = xp; + vp->v_data = pn; vp->v_vnlock = lvp->v_vnlock; if (vp->v_vnlock == NULL) panic("pefs_node_get: Passed a NULL vnlock.\n"); - error = insmntque1(vp, mp, pefs_insmntque_dtr, xp); + error = insmntque1(vp, mp, pefs_insmntque_dtr, pn); if (error != 0) return (error); /* * Atomically insert our new node into the hash or vget existing * if someone else has beaten us to it. */ - *vpp = pefs_hashins(mp, xp); + *vpp = pefs_hashins(mp, pn); if (*vpp != NULL) { vrele(lvp); vp->v_vnlock = &vp->v_lock; - xp->pn_lowervp = NULL; + pn->pn_lowervp = NULL; vrele(vp); return (0); } @@ -368,14 +362,14 @@ * Remove node from hash and free it. */ void -pefs_node_free(struct pefs_node *xp) +pefs_node_free(struct pefs_node *pn) { - PEFSDEBUG("pefs_node_free: free node %p\n", xp); + PEFSDEBUG("pefs_node_free: free node %p\n", pn); mtx_lock(&pefs_hashmtx); - LIST_REMOVE(xp, pn_hash); + LIST_REMOVE(pn, pn_hash); mtx_unlock(&pefs_hashmtx); - pefs_key_release(xp->pn_tkey.ptk_key); - uma_zfree(pefs_node_zone, xp); + pefs_key_release(pn->pn_tkey.ptk_key); + uma_zfree(pefs_node_zone, pn); } struct pefs_key* @@ -447,7 +441,7 @@ if (pc->pc_iovcnt == 0) panic("pefs_chunk_pullup: chunk is empty"); if (size > pc->pc_size || size > pc->pc_iov[0].iov_len) - panic("pefs_chunk_pullup: size is too large: %u, available %u", + panic("pefs_chunk_pullup: size is too large: %lu, available %u", size, min(pc->pc_size, pc->pc_iov[0].iov_len)); return (pc->pc_iov[0].iov_base); } ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vfsops.c#9 (text+ko) ==== @@ -245,10 +245,6 @@ int error; struct statfs mstat; - PEFSDEBUG("pefs_statfs(mp = %p, vp = %p->%p)\n", (void *)mp, - (void *)VFS_TO_PEFS(mp)->pm_rootvp, - (void *)PEFS_LOWERVP(VFS_TO_PEFS(mp)->pm_rootvp)); - bzero(&mstat, sizeof(mstat)); error = VFS_STATFS(VFS_TO_PEFS(mp)->pm_lowervfs, &mstat); ==== //depot/projects/soc2009/gk_pefs/sys/fs/pefs/pefs_vnops.c#12 (text+ko) ==== @@ -102,7 +102,6 @@ pec->pec_cn.cn_nameptr = pec->pec_buf; pec->pec_cn.cn_namelen = encname_len; pec->pec_cn.cn_consume = 0; - PEFSDEBUG("%s: name=%s len=%d pk=%p\n", __func__, (char*)pec->pec_buf, encname_len, pec->pec_tkey.ptk_key); } static int @@ -122,7 +121,6 @@ else memcpy(pec->pec_tkey.ptk_tweak, tweak, PEFS_TWEAK_SIZE); pec->pec_tkey.ptk_key = pk; - PEFSDEBUG("%s: pk=%p\n", __func__, pk); pec->pec_buf = uma_zalloc(namei_zone, M_WAITOK); r = pefs_name_encrypt(NULL, &pec->pec_tkey, cnp->cn_nameptr, cnp->cn_namelen, pec->pec_buf, MAXPATHLEN); @@ -134,7 +132,6 @@ pec->pec_cn.cn_nameptr = pec->pec_buf; pec->pec_cn.cn_namelen = r; pec->pec_cn.cn_consume = 0; - PEFSDEBUG("%s: cn_flags=%lu\n", __func__, cnp->cn_flags); return (0); } @@ -146,14 +143,15 @@ } static struct dirent* -pefs_enccn_lookup_dirent(struct pefs_key *pk, struct pefs_tkey *ptk, void *mem, size_t sz, char *name, int namelen, char *buf, size_t buf_sz) +pefs_enccn_lookup_dirent(struct pefs_key *pk, struct pefs_tkey *ptk, + void *mem, size_t sz, char *name, int namelen, char *buf, size_t buf_sz) { struct pefs_ctx *ctx; struct dirent *de; int d_namelen; int de_len; - PEFSDEBUG("%s: lookup %.*s (%d)\n", __func__, namelen, name, namelen); + PEFSDEBUG("pefs_enccn_lookup_dirent: lookup %.*s\n", namelen, name); ctx = pefs_ctx_get(); for (de = (struct dirent*) mem; sz > 0; sz -= de_len, @@ -162,13 +160,7 @@ if (pefs_name_skip(de->d_name, de->d_namlen)) continue; d_namelen = pefs_name_decrypt(ctx, pk, ptk, de->d_name, de->d_namlen, buf, buf_sz); -#if 0 - PEFSDEBUG("%s =>; res=%d; %.*s --> %.*s\n", __func__, d_namelen, - de->d_namlen, de->d_name, - d_namelen < 0 ? 0 : d_namelen, buf); -#endif if (d_namelen == namelen && memcmp(name, buf, namelen) == 0) { - PEFSDEBUG("%s: check dirent: %s\n", __func__, name); pefs_ctx_free(ctx); return (de); } @@ -227,7 +219,6 @@ } if (de != NULL) { - PEFSDEBUG("%s: dirent found: %.*s\n", __func__, de->d_namlen, de->d_name); pefs_enccn_init(pec, &ptk, de->d_name, de->d_namlen, cnp); } @@ -246,14 +237,12 @@ int error; error = pefs_enccn_lookup(pec, dvp, cnp); - PEFSDEBUG("%s: lookup error = %d\n", __func__, error); if (error == ENOENT) { struct pefs_key *dpk = pefs_node_key(VP_TO_PN(dvp)); error = pefs_enccn_create(pec, dpk, NULL, cnp); pefs_key_release(dpk); } - PEFSDEBUG("%s: returning = %d\n", __func__, error); return (error); } @@ -265,11 +254,9 @@ MPASS(ptk->ptk_key != NULL); error = pefs_enccn_lookup(pec, dvp, cnp); - PEFSDEBUG("%s: lookup error = %d\n", __func__, error); if (error == ENOENT) { error = pefs_enccn_create(pec, ptk->ptk_key, ptk->ptk_tweak, cnp); } - PEFSDEBUG("%s: returning = %d\n", __func__, error); return (error); } @@ -281,12 +268,11 @@ int error; if (!(pn->pn_flags & PN_HASKEY)) { - PEFSDEBUG("%s: !(pn->pn_flags & PN_HASKEY)\n", __func__); pefs_enccn_init(pec, NULL, cnp->cn_nameptr, cnp->cn_namelen, cnp); return (0); } - PEFSDEBUG("%s: lookup %s\n", __func__, cnp->cn_nameptr); + PEFSDEBUG("pefs_enccn_get: create %s\n", cnp->cn_nameptr); error = pefs_enccn_create(pec, pn->pn_tkey.ptk_key, pn->pn_tkey.ptk_tweak, cnp); return (error); } @@ -306,8 +292,6 @@ struct pefs_node *pn; int error; - PEFSDEBUG("pefs_flushkey: pk=%p flags=%d\n", pk, flags); - vflush(mp, 0, 0, td); MNT_ILOCK(mp); rootvp = VFS_TO_PEFS(mp)->pm_rootvp; @@ -503,9 +487,8 @@ int nokey_lookup = 0; int error; - PEFSDEBUG("%s: cn_nameiop=%lx, cn_pnbuf=%s; cn_nameptr=%.*s; cn_consume=%d, cn_namelen=%d\n", - __func__, cnp->cn_nameiop, cnp->cn_pnbuf, (int) cnp->cn_namelen, cnp->cn_nameptr, - (int) cnp->cn_consume, (int) cnp->cn_namelen); + PEFSDEBUG("pefs_lookup: cn_nameiop=%lx, cn_nameptr=%.*s\n", + cnp->cn_nameiop, (int)cnp->cn_namelen, cnp->cn_nameptr); if ((flags & ISLASTCN) && ((dvp->v_mount->mnt_flag & MNT_RDONLY) || pefs_no_keys(dvp)) && @@ -541,7 +524,8 @@ error = EROFS; if (error == ENOENT && (cnp->cn_flags & MAKEENTRY) && cnp->cn_nameiop != CREATE) { - PEFSDEBUG("%s: cache_enter negative %.*s\n", __func__, (int) cnp->cn_namelen, cnp->cn_nameptr); + PEFSDEBUG("pefs_lookup: cache_enter negative %.*s\n", + (int)cnp->cn_namelen, cnp->cn_nameptr); cache_enter(dvp, NULLVP, cnp); } else if ((error == 0 || error == EJUSTRETURN) && lvp != NULL) { if (ldvp == lvp) { @@ -554,8 +538,10 @@ vput(lvp); } else { *ap->a_vpp = vp; - if ((cnp->cn_flags & MAKEENTRY) && cnp->cn_nameiop != CREATE) { - PEFSDEBUG("%s: cache_enter %.*s\n", __func__, (int) cnp->cn_namelen, cnp->cn_nameptr); + if ((cnp->cn_flags & MAKEENTRY) && + cnp->cn_nameiop != CREATE) { + PEFSDEBUG("pefs_lookup: cache_enter %.*s\n", + (int)cnp->cn_namelen, cnp->cn_nameptr); cache_enter(dvp, vp, cnp); } } @@ -607,7 +593,6 @@ if (vap->va_size <= o_va.va_size) return (0); - PEFSDEBUG("%s: va_size=%ju; original va_size=%ju\n", __func__, (intmax_t) vap->va_size, (intmax_t) o_va.va_size); if (vap->va_size - o_va.va_size >= INT_MAX) return (EINVAL); size = vap->va_size - o_va.va_size; @@ -620,7 +605,7 @@ pefs_chunk_zero(pc); pefs_data_encrypt(ctx, &pn->pn_tkey, off, pc); puio = pefs_chunk_uio_range(pc, 0, inc, off, UIO_WRITE); - PEFSDEBUG("%s: resizing file; filling with zeros: offset=%jd, resid=%d\n", __func__, off, inc); + PEFSDEBUG("pefs_chsize_vreg: resizing file; filling with zeros: offset=%jd, resid=%d\n", off, inc); error = VOP_WRITE(lvp, puio, 0, cred); if (error) { /* try to reset */ @@ -787,9 +772,6 @@ return (error); } - PEFSDEBUG("%s: %.*s -> %.*s\n", - __func__, (int) fcnp->cn_namelen, fcnp->cn_nameptr, - (int) tcnp->cn_namelen, tcnp->cn_nameptr); ap->a_fcnp = &fenccn.pec_cn; ap->a_tcnp = &tenccn.pec_cn; error = pefs_bypass((struct vop_generic_args *)ap, NULL); @@ -1041,11 +1023,6 @@ if (pefs_name_skip(de->d_name, de->d_namlen)) continue; d_namelen = pefs_name_decrypt(ctx, pk, NULL, de->d_name, de->d_namlen, buf, buf_sz); -#if 0 - PEFSDEBUG("%s =>; res=%d; %.*s --> %.*s\n", __func__, d_namelen, - de->d_namlen, de->d_name, - d_namelen < 0 ? 0 : d_namelen, buf); -#endif if (d_namelen > 0) { /* Do not change d_reclen */ strlcpy(de->d_name, buf, de->d_namlen + 1); @@ -1100,12 +1077,9 @@ error = VOP_READDIR(PEFS_LOWERVP(vp), puio, cred, eofflag, a_ncookies, a_cookies); - PEFSDEBUG("%s => %d; ncookies=%d\n", __func__, error, ap->a_ncookies ? *ap->a_ncookies : -1); - if (error) break; - PEFSDEBUG("%s: size = %d\n", __func__, pc->pc_size - puio->uio_resid); /* Nothing was written.. somehow */ if (pc->pc_size == puio->uio_resid) break; @@ -1133,9 +1107,12 @@ r_cookies = malloc(r_ncookies_max * sizeof(u_long), M_TEMP, M_WAITOK); } - PEFSDEBUG("%s: merge cookies %d + %d\n", __func__, r_ncookies, ncookies); - KASSERT(r_ncookies + ncookies <= r_ncookies_max, ("cookies buffer is too small")); - memcpy(r_cookies + r_ncookies, cookies, ncookies * sizeof(u_long)); + PEFSDEBUG("pefs_readdir: merge cookies %d + %d\n", + r_ncookies, ncookies); + KASSERT(r_ncookies + ncookies <= r_ncookies_max, + ("cookies buffer is too small")); + memcpy(r_cookies + r_ncookies, cookies, + ncookies * sizeof(u_long)); r_ncookies += ncookies; ncookies = 0; free(cookies, M_TEMP); @@ -1173,8 +1150,6 @@ struct pefs_enccn enccn; int error; - PEFSDEBUG("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", - __func__, cnp->cn_nameiop, (int) cnp->cn_namelen, cnp->cn_nameptr); if (pefs_no_keys(dvp)) return (EROFS); error = pefs_enccn_lookup_create(&enccn, dvp, cnp); @@ -1204,15 +1179,11 @@ return (EROFS); error = pefs_enccn_get(&enccn, vp, cnp); if (error) { - PEFSDEBUG("%s: pefs_enccn_get failed: %d\n", __func__, error); + PEFSDEBUG("pefs_rmdir: pefs_enccn_get failed: %d\n", error); return (error); } - PEFSDEBUG("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", - __func__, cnp->cn_nameiop, (int) cnp->cn_namelen, cnp->cn_nameptr); ap->a_cnp = &enccn.pec_cn; - PEFSDEBUG("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", - __func__, ap->a_cnp->cn_nameiop, (int) ap->a_cnp->cn_namelen, ap->a_cnp->cn_nameptr); error = pefs_bypass((struct vop_generic_args *)ap, NULL); ap->a_cnp = cnp; @@ -1241,8 +1212,6 @@ return (error); } - PEFSDEBUG("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", - __func__, cnp->cn_nameiop, (int) cnp->cn_namelen, cnp->cn_nameptr); ap->a_cnp = &enccn.pec_cn; error = pefs_bypass((struct vop_generic_args *)ap, &enccn.pec_tkey); ap->a_cnp = cnp; @@ -1268,8 +1237,6 @@ return (error); } - PEFSDEBUG("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", - __func__, cnp->cn_nameiop, (int) cnp->cn_namelen, cnp->cn_nameptr); ap->a_cnp = &enccn.pec_cn; error = pefs_bypass((struct vop_generic_args *)ap, NULL); ap->a_cnp = cnp; @@ -1300,7 +1267,6 @@ return (error); } - PEFSDEBUG("%s: %.*s\n", __func__, (int) cnp->cn_namelen, cnp->cn_nameptr); ap->a_cnp = &enccn.pec_cn; error = pefs_bypass((struct vop_generic_args *)ap, NULL); ap->a_cnp = cnp; @@ -1345,9 +1311,6 @@ pefs_chunk_free(pc); enc_target = NULL; - PEFSDEBUG("%s: %.*s; target=%s penc_target=%s\n", __func__, - (int) cnp->cn_namelen, cnp->cn_nameptr, - target, penc_target); error = VOP_SYMLINK(ldvp, &lvpp, &enccn.pec_cn, ap->a_vap, penc_target); if (!error) { error = pefs_node_get(dvp->v_mount, lvpp, ldvp, &vpp, cnp->cn_cred, &enccn.pec_tkey); @@ -1398,7 +1361,6 @@ } else { pefs_chunk_shrink(pc, target_len); pefs_data_decrypt(NULL, &pn->pn_tkey, 0, pc); - PEFSDEBUG("%s: target=%.*s\n", __func__, target_len, target); uiomove(target, target_len, uio); } pefs_chunk_free(pc); @@ -1423,8 +1385,6 @@ return (error); } - PEFSDEBUG("%s: cn_nameiop=%lx, cn_nameptr=%.*s\n", - __func__, cnp->cn_nameiop, (int) cnp->cn_namelen, cnp->cn_nameptr); ap->a_cnp = &enccn.pec_cn; error = pefs_bypass((struct vop_generic_args *)ap, &enccn.pec_tkey); ap->a_cnp = cnp; @@ -1458,10 +1418,6 @@ if (uio->uio_offset < 0) >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Wed Aug 19 15:15:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 99F47106568F; Wed, 19 Aug 2009 15:15:39 +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 5452E106568D for ; Wed, 19 Aug 2009 15:15:39 +0000 (UTC) (envelope-from anchie@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 43B008FC60 for ; Wed, 19 Aug 2009 15:15:39 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7JFFdC0061955 for ; Wed, 19 Aug 2009 15:15:39 GMT (envelope-from anchie@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7JFFdHX061953 for perforce@freebsd.org; Wed, 19 Aug 2009 15:15:39 GMT (envelope-from anchie@FreeBSD.org) Date: Wed, 19 Aug 2009 15:15:39 GMT Message-Id: <200908191515.n7JFFdHX061953@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to anchie@FreeBSD.org using -f From: Ana Kukec To: Perforce Change Reviews Cc: Subject: PERFORCE change 167503 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: Wed, 19 Aug 2009 15:15:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=167503 Change 167503 by anchie@anchie_malimis on 2009/08/19 15:15:00 Add calls of input functions for Redirect, and RS/RA (even though the processing of the outgoing RS/RA SeND-protected packets is not implemented yet). Affected files ... .. //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#27 edit Differences ... ==== //depot/projects/soc2009/anchie_send/src/sys/netinet6/send.c#27 (text+ko) ==== @@ -30,7 +30,8 @@ struct ip6_hdr *ip6; struct sockaddr_in6 dst; struct icmp6_hdr *icmp6; - int icmp6len, *offp = NULL; + int icmp6len; + //int *offp = NULL; printf("send.c: send_output()\n"); @@ -74,6 +75,20 @@ case ND_NEIGHBOR_ADVERT: nd6_na_input(m, sizeof(struct ip6_hdr), icmp6len); break; + case ND_REDIRECT: + icmp6_redirect_input(m, sizeof(struct ip6_hdr)); + break; + /* + * ToDo: Implement functions the outgoing SeND RA/RS packets. + * Processing routines for outgoing RA/RS packets are implemented + * in rtadvd/rtsol. + */ + case ND_ROUTER_SOLICIT: + nd6_rs_input(m, sizeof(struct ip6_hdr), icmp6len); + break; + case ND_ROUTER_ADVERT: + nd6_ra_input(m, sizeof(struct ip6_hdr), icmp6len); + break; default: /* XXX-BZ TODO */ printf("%s:%d: icmp6_code=%u\n", @@ -82,7 +97,7 @@ return (ENOSYS); } - *offp = sizeof (struct ip6_hdr); + //*offp = sizeof (struct ip6_hdr); //icmp6_rip6_input(&m, *offp); /* From owner-p4-projects@FreeBSD.ORG Wed Aug 19 19:54:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CFF4D1065690; Wed, 19 Aug 2009 19:54:54 +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 91EA7106568D for ; Wed, 19 Aug 2009 19:54:54 +0000 (UTC) (envelope-from peter@wemm.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7E2D88FC52 for ; Wed, 19 Aug 2009 19:54:54 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7JJssLt096874 for ; Wed, 19 Aug 2009 19:54:54 GMT (envelope-from peter@wemm.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7JJsi7W096866 for perforce@freebsd.org; Wed, 19 Aug 2009 19:54:44 GMT (envelope-from peter@wemm.org) Date: Wed, 19 Aug 2009 19:54:44 GMT Message-Id: <200908191954.n7JJsi7W096866@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Cc: Subject: PERFORCE change 167509 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: Wed, 19 Aug 2009 19:54:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=167509 Change 167509 by peter@peter_daintree on 2009/08/19 19:54:13 IFC @167508 Affected files ... .. //depot/projects/hammer/MAINTAINERS#52 integrate .. //depot/projects/hammer/Makefile.inc1#147 integrate .. //depot/projects/hammer/ObsoleteFiles.inc#69 integrate .. //depot/projects/hammer/UPDATING#134 integrate .. //depot/projects/hammer/bin/ln/ln.1#11 integrate .. //depot/projects/hammer/bin/ln/ln.c#9 integrate .. //depot/projects/hammer/bin/ps/ps.1#27 integrate .. //depot/projects/hammer/bin/ps/ps.c#25 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/head/thread.h#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#3 integrate .. //depot/projects/hammer/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#6 integrate .. //depot/projects/hammer/cddl/lib/Makefile.inc#3 integrate .. //depot/projects/hammer/cddl/lib/libctf/Makefile#2 integrate .. //depot/projects/hammer/cddl/lib/libdtrace/Makefile#2 integrate .. //depot/projects/hammer/cddl/lib/libnvpair/Makefile#5 integrate .. //depot/projects/hammer/contrib/amd/amd/get_args.c#5 integrate .. //depot/projects/hammer/contrib/bind9/CHANGES#17 integrate .. //depot/projects/hammer/contrib/bind9/bin/named/update.c#9 integrate .. //depot/projects/hammer/contrib/bind9/version#17 integrate .. //depot/projects/hammer/contrib/bzip2/FREEBSD-vendor#2 integrate .. //depot/projects/hammer/contrib/file/magic2mime#6 branch .. //depot/projects/hammer/contrib/gcc/config/freebsd-spec.h#16 integrate .. //depot/projects/hammer/contrib/gcc/dwarf2out.c#10 integrate .. //depot/projects/hammer/contrib/less/LICENSE#6 integrate .. //depot/projects/hammer/contrib/less/Makefile.aut#4 integrate .. //depot/projects/hammer/contrib/less/Makefile.dsb#2 integrate .. //depot/projects/hammer/contrib/less/Makefile.dsg#3 integrate .. //depot/projects/hammer/contrib/less/Makefile.dsu#2 integrate .. //depot/projects/hammer/contrib/less/Makefile.in#6 integrate .. //depot/projects/hammer/contrib/less/Makefile.o2e#2 integrate .. //depot/projects/hammer/contrib/less/Makefile.o9c#2 integrate .. //depot/projects/hammer/contrib/less/Makefile.o9u#2 integrate .. //depot/projects/hammer/contrib/less/Makefile.wnb#3 integrate .. //depot/projects/hammer/contrib/less/Makefile.wnm#2 integrate .. //depot/projects/hammer/contrib/less/NEWS#9 integrate .. //depot/projects/hammer/contrib/less/README#9 integrate .. //depot/projects/hammer/contrib/less/brac.c#6 integrate .. //depot/projects/hammer/contrib/less/ch.c#8 integrate .. //depot/projects/hammer/contrib/less/charset.c#7 integrate .. //depot/projects/hammer/contrib/less/charset.h#4 integrate .. //depot/projects/hammer/contrib/less/cmd.h#6 integrate .. //depot/projects/hammer/contrib/less/cmdbuf.c#7 integrate .. //depot/projects/hammer/contrib/less/command.c#8 integrate .. //depot/projects/hammer/contrib/less/configure.ac#7 integrate .. //depot/projects/hammer/contrib/less/cvt.c#1 branch .. //depot/projects/hammer/contrib/less/decode.c#7 integrate .. //depot/projects/hammer/contrib/less/defines.ds#7 integrate .. //depot/projects/hammer/contrib/less/defines.o2#7 integrate .. //depot/projects/hammer/contrib/less/defines.o9#6 integrate .. //depot/projects/hammer/contrib/less/defines.wn#7 integrate .. //depot/projects/hammer/contrib/less/edit.c#7 integrate .. //depot/projects/hammer/contrib/less/filename.c#8 integrate .. //depot/projects/hammer/contrib/less/forwback.c#7 integrate .. //depot/projects/hammer/contrib/less/funcs.h#8 integrate .. //depot/projects/hammer/contrib/less/ifile.c#6 integrate .. //depot/projects/hammer/contrib/less/input.c#6 integrate .. //depot/projects/hammer/contrib/less/jump.c#7 integrate .. //depot/projects/hammer/contrib/less/less.h#8 integrate .. //depot/projects/hammer/contrib/less/less.man#9 integrate .. //depot/projects/hammer/contrib/less/less.nro#9 integrate .. //depot/projects/hammer/contrib/less/lessecho.c#6 integrate .. //depot/projects/hammer/contrib/less/lessecho.man#7 integrate .. //depot/projects/hammer/contrib/less/lessecho.nro#7 integrate .. //depot/projects/hammer/contrib/less/lesskey.c#6 integrate .. //depot/projects/hammer/contrib/less/lesskey.h#6 integrate .. //depot/projects/hammer/contrib/less/lesskey.man#9 integrate .. //depot/projects/hammer/contrib/less/lesskey.nro#9 integrate .. //depot/projects/hammer/contrib/less/lglob.h#6 integrate .. //depot/projects/hammer/contrib/less/line.c#10 integrate .. //depot/projects/hammer/contrib/less/linenum.c#6 integrate .. //depot/projects/hammer/contrib/less/lsystem.c#6 integrate .. //depot/projects/hammer/contrib/less/main.c#10 integrate .. //depot/projects/hammer/contrib/less/mark.c#6 integrate .. //depot/projects/hammer/contrib/less/mkhelp.c#6 integrate .. //depot/projects/hammer/contrib/less/optfunc.c#8 integrate .. //depot/projects/hammer/contrib/less/option.c#6 integrate .. //depot/projects/hammer/contrib/less/option.h#6 integrate .. //depot/projects/hammer/contrib/less/opttbl.c#7 integrate .. //depot/projects/hammer/contrib/less/os.c#6 integrate .. //depot/projects/hammer/contrib/less/output.c#6 integrate .. //depot/projects/hammer/contrib/less/pattern.c#1 branch .. //depot/projects/hammer/contrib/less/pattern.h#1 branch .. //depot/projects/hammer/contrib/less/pckeys.h#6 integrate .. //depot/projects/hammer/contrib/less/position.c#6 integrate .. //depot/projects/hammer/contrib/less/position.h#6 integrate .. //depot/projects/hammer/contrib/less/prompt.c#6 integrate .. //depot/projects/hammer/contrib/less/screen.c#9 integrate .. //depot/projects/hammer/contrib/less/scrsize.c#6 integrate .. //depot/projects/hammer/contrib/less/search.c#9 integrate .. //depot/projects/hammer/contrib/less/signal.c#7 integrate .. //depot/projects/hammer/contrib/less/tags.c#7 integrate .. //depot/projects/hammer/contrib/less/ttyin.c#6 integrate .. //depot/projects/hammer/contrib/less/version.c#9 integrate .. //depot/projects/hammer/contrib/netcat/FREEBSD-vendor#3 integrate .. //depot/projects/hammer/contrib/netcat/nc.1#11 integrate .. //depot/projects/hammer/contrib/ntp/scripts/mkver.in#4 integrate .. //depot/projects/hammer/contrib/openbsm/NEWS#5 integrate .. //depot/projects/hammer/contrib/openbsm/README#10 integrate .. //depot/projects/hammer/contrib/openbsm/VERSION#11 integrate .. //depot/projects/hammer/contrib/openbsm/config/config.h#10 integrate .. //depot/projects/hammer/contrib/openbsm/configure#11 integrate .. //depot/projects/hammer/contrib/openbsm/configure.ac#11 integrate .. //depot/projects/hammer/contrib/openbsm/etc/audit_event#12 integrate .. //depot/projects/hammer/contrib/openbsm/libauditd/auditd_lib.c#4 integrate .. //depot/projects/hammer/contrib/openbsm/libbsm/bsm_control.c#7 integrate .. //depot/projects/hammer/contrib/openbsm/libbsm/bsm_errno.c#3 integrate .. //depot/projects/hammer/contrib/openbsm/libbsm/bsm_io.c#11 integrate .. //depot/projects/hammer/contrib/openbsm/libbsm/bsm_token.c#10 integrate .. //depot/projects/hammer/contrib/openbsm/man/audit_control.5#6 integrate .. //depot/projects/hammer/contrib/openbsm/sys/bsm/audit.h#5 integrate .. //depot/projects/hammer/contrib/openbsm/sys/bsm/audit_kevents.h#5 integrate .. //depot/projects/hammer/contrib/openbsm/tools/audump.c#5 integrate .. //depot/projects/hammer/contrib/openpam/FREEBSD-vendor#2 integrate .. //depot/projects/hammer/contrib/sendmail/cf/sh/makeinfo.sh#2 integrate .. //depot/projects/hammer/contrib/tcpdump/ieee802_11.h#6 integrate .. //depot/projects/hammer/contrib/tcpdump/ieee802_11_radio.h#5 integrate .. //depot/projects/hammer/contrib/tcpdump/print-802_11.c#11 integrate .. //depot/projects/hammer/contrib/tcsh/Fixes#5 integrate .. //depot/projects/hammer/contrib/tcsh/Imakefile#5 integrate .. //depot/projects/hammer/contrib/tcsh/Makefile.ADMIN#2 delete .. //depot/projects/hammer/contrib/tcsh/Makefile.in#5 integrate .. //depot/projects/hammer/contrib/tcsh/README#5 integrate .. //depot/projects/hammer/contrib/tcsh/RELEASE-PROCEDURE#2 delete .. //depot/projects/hammer/contrib/tcsh/complete.tcsh#5 integrate .. //depot/projects/hammer/contrib/tcsh/config.guess#2 integrate .. //depot/projects/hammer/contrib/tcsh/config.h.in#4 integrate .. //depot/projects/hammer/contrib/tcsh/config.rpath#1 branch .. //depot/projects/hammer/contrib/tcsh/config.sub#2 integrate .. //depot/projects/hammer/contrib/tcsh/config_f.h#5 integrate .. //depot/projects/hammer/contrib/tcsh/configure#5 integrate .. //depot/projects/hammer/contrib/tcsh/configure.in#5 integrate .. //depot/projects/hammer/contrib/tcsh/ed.chared.c#4 integrate .. //depot/projects/hammer/contrib/tcsh/ed.decls.h#4 integrate .. //depot/projects/hammer/contrib/tcsh/ed.h#4 integrate .. //depot/projects/hammer/contrib/tcsh/ed.inputl.c#4 integrate .. //depot/projects/hammer/contrib/tcsh/ed.screen.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/ed.term.h#4 integrate .. //depot/projects/hammer/contrib/tcsh/ed.xmap.c#4 integrate .. //depot/projects/hammer/contrib/tcsh/glob.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/host.defs#5 integrate .. //depot/projects/hammer/contrib/tcsh/ma.setp.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/patchlevel.h#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.c#7 integrate .. //depot/projects/hammer/contrib/tcsh/sh.char.c#3 integrate .. //depot/projects/hammer/contrib/tcsh/sh.char.h#4 integrate .. //depot/projects/hammer/contrib/tcsh/sh.decls.h#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.dir.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.dol.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.err.c#4 integrate .. //depot/projects/hammer/contrib/tcsh/sh.exec.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.exp.c#4 integrate .. //depot/projects/hammer/contrib/tcsh/sh.file.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.func.c#6 integrate .. //depot/projects/hammer/contrib/tcsh/sh.glob.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.h#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.lex.c#8 integrate .. //depot/projects/hammer/contrib/tcsh/sh.proc.c#6 integrate .. //depot/projects/hammer/contrib/tcsh/sh.proc.h#4 integrate .. //depot/projects/hammer/contrib/tcsh/sh.sem.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/sh.set.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/snames.h#3 integrate .. //depot/projects/hammer/contrib/tcsh/tc.bind.c#4 integrate .. //depot/projects/hammer/contrib/tcsh/tc.const.c#7 integrate .. //depot/projects/hammer/contrib/tcsh/tc.decls.h#5 integrate .. //depot/projects/hammer/contrib/tcsh/tc.func.c#6 integrate .. //depot/projects/hammer/contrib/tcsh/tc.os.h#5 integrate .. //depot/projects/hammer/contrib/tcsh/tc.sig.h#4 integrate .. //depot/projects/hammer/contrib/tcsh/tc.str.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/tcsh.man#6 integrate .. //depot/projects/hammer/contrib/tcsh/tw.color.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/tw.comp.c#5 integrate .. //depot/projects/hammer/contrib/tcsh/tw.parse.c#5 integrate .. //depot/projects/hammer/contrib/top/display.c#6 integrate .. //depot/projects/hammer/crypto/openssh/FREEBSD-vendor#3 integrate .. //depot/projects/hammer/crypto/openssl/apps/md4.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/bftest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/bntest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/casttest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/destest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/dhtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/dsatest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/ecdhtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/ecdsatest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/ectest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/enginetest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/evp_test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/exptest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_aesavs.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_desmovs.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_dsatest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_dssvs.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_hmactest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_randtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_rngvs.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_rsagtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_rsastest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_rsavtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_shatest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/fips_test_suite.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/hmactest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/ideatest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/jpaketest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/md2test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/md4test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/md5test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/mdc2test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/randtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/rc2test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/rc4test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/rc5test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/rmdtest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/rsa_test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/sha1test.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/sha256t.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/sha512t.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/shatest.c#2 delete .. //depot/projects/hammer/crypto/openssl/test/ssltest.c#2 delete .. //depot/projects/hammer/etc/mtree/BSD.include.dist#57 integrate .. //depot/projects/hammer/etc/ntp.conf#2 integrate .. //depot/projects/hammer/etc/pam.d/Makefile#9 integrate .. //depot/projects/hammer/etc/pam.d/gdm#5 delete .. //depot/projects/hammer/etc/portsnap.conf#5 integrate .. //depot/projects/hammer/etc/rc.d/Makefile#67 integrate .. //depot/projects/hammer/etc/rc.d/hostid#7 integrate .. //depot/projects/hammer/etc/rc.d/hostid_save#1 branch .. //depot/projects/hammer/etc/rc.d/zfs#5 integrate .. //depot/projects/hammer/etc/rc.d/zvol#1 branch .. //depot/projects/hammer/games/fortune/datfiles/fortunes#88 integrate .. //depot/projects/hammer/games/fortune/datfiles/fortunes-o.real#11 integrate .. //depot/projects/hammer/gnu/lib/libdialog/Makefile#12 integrate .. //depot/projects/hammer/gnu/lib/libg2c/Makefile#11 integrate .. //depot/projects/hammer/gnu/lib/libgcc/Makefile#22 integrate .. //depot/projects/hammer/gnu/lib/libobjc/Makefile#20 integrate .. //depot/projects/hammer/gnu/lib/libreadline/Makefile.inc#13 integrate .. //depot/projects/hammer/gnu/lib/libregex/Makefile#13 integrate .. //depot/projects/hammer/gnu/lib/libssp/libssp_nonshared/Makefile#3 integrate .. //depot/projects/hammer/include/Makefile#81 integrate .. //depot/projects/hammer/include/dlfcn.h#6 integrate .. //depot/projects/hammer/include/unistd.h#31 integrate .. //depot/projects/hammer/lib/Makefile.inc#7 integrate .. //depot/projects/hammer/lib/libalias/libalias/Makefile#4 integrate .. //depot/projects/hammer/lib/libarchive/Makefile#55 integrate .. //depot/projects/hammer/lib/libarchive/archive_read_support_format_iso9660.c#22 integrate .. //depot/projects/hammer/lib/libautofs/Makefile#5 integrate .. //depot/projects/hammer/lib/libbegemot/Makefile#7 integrate .. //depot/projects/hammer/lib/libbluetooth/Makefile#9 integrate .. //depot/projects/hammer/lib/libbsm/Makefile#10 integrate .. //depot/projects/hammer/lib/libbsnmp/Makefile.inc#10 integrate .. //depot/projects/hammer/lib/libbz2/Makefile#8 integrate .. //depot/projects/hammer/lib/libc/Makefile#34 integrate .. //depot/projects/hammer/lib/libc/gen/Makefile.inc#41 integrate .. //depot/projects/hammer/lib/libc/gen/dlopen.3#6 integrate .. //depot/projects/hammer/lib/libc/gen/ftok.3#4 integrate .. //depot/projects/hammer/lib/libc/gen/msgctl.3#7 delete .. //depot/projects/hammer/lib/libc/gen/msgget.3#3 delete .. //depot/projects/hammer/lib/libc/gen/msgrcv.3#5 delete .. //depot/projects/hammer/lib/libc/gen/msgsnd.3#5 delete .. //depot/projects/hammer/lib/libc/gen/pw_scan.c#7 integrate .. //depot/projects/hammer/lib/libc/posix1e/Makefile.inc#15 integrate .. //depot/projects/hammer/lib/libc/posix1e/mac.3#9 integrate .. //depot/projects/hammer/lib/libc/posix1e/mac_free.3#5 integrate .. //depot/projects/hammer/lib/libc/posix1e/mac_get.3#8 integrate .. //depot/projects/hammer/lib/libc/posix1e/mac_set.3#6 integrate .. //depot/projects/hammer/lib/libc/posix1e/mac_text.3#9 integrate .. //depot/projects/hammer/lib/libc/posix1e/posix1e.3#7 integrate .. //depot/projects/hammer/lib/libc/stdio/fread.c#7 integrate .. //depot/projects/hammer/lib/libc/stdio/fwrite.c#5 integrate .. //depot/projects/hammer/lib/libc/sys/Makefile.inc#39 integrate .. //depot/projects/hammer/lib/libc/sys/Symbol.map#18 integrate .. //depot/projects/hammer/lib/libc/sys/link.2#7 integrate .. //depot/projects/hammer/lib/libc/sys/mmap.2#13 integrate .. //depot/projects/hammer/lib/libc/sys/msgctl.2#1 branch .. //depot/projects/hammer/lib/libc/sys/msgget.2#1 branch .. //depot/projects/hammer/lib/libc/sys/msgrcv.2#1 branch .. //depot/projects/hammer/lib/libc/sys/msgsnd.2#1 branch .. //depot/projects/hammer/lib/libc/sys/pathconf.2#10 integrate .. //depot/projects/hammer/lib/libc/sys/stack_protector.c#3 integrate .. //depot/projects/hammer/lib/libcam/Makefile#5 integrate .. //depot/projects/hammer/lib/libcrypt/Makefile#12 integrate .. //depot/projects/hammer/lib/libdevstat/Makefile#11 integrate .. //depot/projects/hammer/lib/libdwarf/Makefile#2 integrate .. //depot/projects/hammer/lib/libdwarf/dwarf_loc.c#2 integrate .. //depot/projects/hammer/lib/libedit/Makefile#9 integrate .. //depot/projects/hammer/lib/libexpat/Makefile#9 integrate .. //depot/projects/hammer/lib/libfetch/Makefile#19 integrate .. //depot/projects/hammer/lib/libftpio/Makefile#8 integrate .. //depot/projects/hammer/lib/libgpib/Makefile#8 integrate .. //depot/projects/hammer/lib/libipsec/Makefile#12 integrate .. //depot/projects/hammer/lib/libjail/jail.c#2 integrate .. //depot/projects/hammer/lib/libjail/jail.h#2 integrate .. //depot/projects/hammer/lib/libkiconv/Makefile#8 integrate .. //depot/projects/hammer/lib/libkse/Makefile#6 integrate .. //depot/projects/hammer/lib/libkvm/Makefile#7 integrate .. //depot/projects/hammer/lib/libkvm/kvm.c#14 integrate .. //depot/projects/hammer/lib/libkvm/kvm_private.h#9 integrate .. //depot/projects/hammer/lib/libkvm/kvm_proc.c#41 integrate .. //depot/projects/hammer/lib/libkvm/kvm_vnet.c#1 branch .. //depot/projects/hammer/lib/libmagic/Makefile#13 integrate .. //depot/projects/hammer/lib/libmemstat/Makefile#5 integrate .. //depot/projects/hammer/lib/libncp/Makefile#10 integrate .. //depot/projects/hammer/lib/libnetgraph/Makefile#8 integrate .. //depot/projects/hammer/lib/libngatm/Makefile#10 integrate .. //depot/projects/hammer/lib/libopie/Makefile#11 integrate .. //depot/projects/hammer/lib/libpam/Makefile.inc#13 integrate .. //depot/projects/hammer/lib/libpcap/Makefile#16 integrate .. //depot/projects/hammer/lib/libproc/Makefile#2 integrate .. //depot/projects/hammer/lib/libradius/Makefile#14 integrate .. //depot/projects/hammer/lib/libsdp/Makefile#8 integrate .. //depot/projects/hammer/lib/libsmb/Makefile#12 integrate .. //depot/projects/hammer/lib/libtacplus/Makefile#9 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_rtld.c#10 integrate .. //depot/projects/hammer/lib/libthr/thread/thr_rwlock.c#11 integrate .. //depot/projects/hammer/lib/libugidfw/Makefile#10 integrate .. //depot/projects/hammer/lib/libusb/Makefile#3 integrate .. //depot/projects/hammer/lib/libusb/libusb.3#5 integrate .. //depot/projects/hammer/lib/libusb/libusb.h#2 integrate .. //depot/projects/hammer/lib/libusb/libusb10.c#2 integrate .. //depot/projects/hammer/lib/libusb/libusb10.h#2 integrate .. //depot/projects/hammer/lib/libusb/libusb10_desc.c#2 integrate .. //depot/projects/hammer/lib/libusb/libusb10_io.c#2 integrate .. //depot/projects/hammer/lib/libusb/libusb20.3#2 integrate .. //depot/projects/hammer/lib/libusb/libusb20_compat01.c#3 integrate .. //depot/projects/hammer/lib/libusb/libusb20_int.h#4 integrate .. //depot/projects/hammer/lib/libusbhid/Makefile#10 integrate .. //depot/projects/hammer/lib/libutil/Makefile#23 integrate .. //depot/projects/hammer/lib/libvgl/Makefile#7 integrate .. //depot/projects/hammer/lib/libwrap/Makefile#14 integrate .. //depot/projects/hammer/lib/libypclnt/Makefile#11 integrate .. //depot/projects/hammer/lib/ncurses/ncurses/Makefile#11 integrate .. //depot/projects/hammer/libexec/rtld-elf/Makefile#23 integrate .. //depot/projects/hammer/libexec/rtld-elf/map_object.c#14 integrate .. //depot/projects/hammer/libexec/rtld-elf/rtld.c#48 integrate .. //depot/projects/hammer/release/Makefile#106 integrate .. //depot/projects/hammer/release/doc/en_US.ISO8859-1/relnotes/article.sgml#41 integrate .. //depot/projects/hammer/release/svnbranch.awk#1 branch .. //depot/projects/hammer/sbin/bsdlabel/bsdlabel.c#25 integrate .. //depot/projects/hammer/sbin/camcontrol/camcontrol.8#10 integrate .. //depot/projects/hammer/sbin/camcontrol/camcontrol.c#11 integrate .. //depot/projects/hammer/sbin/dhclient/dispatch.c#4 integrate .. //depot/projects/hammer/sbin/geom/class/part/geom_part.c#11 integrate .. //depot/projects/hammer/sbin/ifconfig/ifconfig.8#57 integrate .. //depot/projects/hammer/sbin/ifconfig/ifconfig.c#46 integrate .. //depot/projects/hammer/sbin/ifconfig/ifieee80211.c#42 integrate .. //depot/projects/hammer/sbin/ifconfig/ifmedia.c#15 integrate .. //depot/projects/hammer/sbin/mount_nfs/mount_nfs.8#18 integrate .. //depot/projects/hammer/sbin/umount/umount.8#8 integrate .. //depot/projects/hammer/secure/lib/libcrypto/Makefile#26 integrate .. //depot/projects/hammer/secure/lib/libssh/Makefile#25 integrate .. //depot/projects/hammer/secure/lib/libssl/Makefile#14 integrate .. //depot/projects/hammer/share/man/man4/Makefile#121 integrate .. //depot/projects/hammer/share/man/man4/aac.4#18 integrate .. //depot/projects/hammer/share/man/man4/ahci.4#1 branch .. //depot/projects/hammer/share/man/man4/altq.4#24 integrate .. //depot/projects/hammer/share/man/man4/asmc.4#3 integrate .. //depot/projects/hammer/share/man/man4/ath.4#39 integrate .. //depot/projects/hammer/share/man/man4/epair.4#2 integrate .. //depot/projects/hammer/share/man/man4/ieee80211.4#8 delete .. //depot/projects/hammer/share/man/man4/mfi.4#6 integrate .. //depot/projects/hammer/share/man/man4/mpt.4#12 integrate .. //depot/projects/hammer/share/man/man4/mwl.4#2 integrate .. //depot/projects/hammer/share/man/man4/mxge.4#6 integrate .. //depot/projects/hammer/share/man/man4/net80211.4#1 branch .. //depot/projects/hammer/share/man/man4/pcm.4#23 integrate .. //depot/projects/hammer/share/man/man4/polling.4#21 integrate .. //depot/projects/hammer/share/man/man4/ral.4#14 integrate .. //depot/projects/hammer/share/man/man4/siis.4#1 branch .. //depot/projects/hammer/share/man/man4/u3g.4#5 integrate .. //depot/projects/hammer/share/man/man4/urtw.4#3 integrate .. //depot/projects/hammer/share/man/man4/wlan.4#15 integrate .. //depot/projects/hammer/share/man/man5/procfs.5#9 integrate .. //depot/projects/hammer/share/man/man7/release.7#31 integrate .. //depot/projects/hammer/share/man/man9/Makefile#95 integrate .. //depot/projects/hammer/share/man/man9/ieee80211.9#5 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_amrr.9#1 branch .. //depot/projects/hammer/share/man/man9/ieee80211_beacon.9#1 branch .. //depot/projects/hammer/share/man/man9/ieee80211_bmiss.9#1 branch .. //depot/projects/hammer/share/man/man9/ieee80211_crypto.9#4 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_ddb.9#1 branch .. //depot/projects/hammer/share/man/man9/ieee80211_input.9#4 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_ioctl.9#6 delete .. //depot/projects/hammer/share/man/man9/ieee80211_node.9#5 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_output.9#4 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_proto.9#4 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_radiotap.9#5 integrate .. //depot/projects/hammer/share/man/man9/ieee80211_regdomain.9#1 branch .. //depot/projects/hammer/share/man/man9/ieee80211_scan.9#1 branch .. //depot/projects/hammer/share/man/man9/ieee80211_vap.9#1 branch .. //depot/projects/hammer/share/man/man9/netisr.9#2 integrate .. //depot/projects/hammer/share/man/man9/taskqueue.9#17 integrate .. //depot/projects/hammer/share/misc/committers-ports.dot#17 integrate .. //depot/projects/hammer/share/mk/bsd.lib.mk#36 integrate .. //depot/projects/hammer/sys/amd64/amd64/cpu_switch.S#53 integrate .. //depot/projects/hammer/sys/amd64/amd64/exception.S#55 integrate .. //depot/projects/hammer/sys/amd64/amd64/genassym.c#60 integrate .. //depot/projects/hammer/sys/amd64/amd64/initcpu.c#21 integrate .. //depot/projects/hammer/sys/amd64/amd64/io_apic.c#59 integrate .. //depot/projects/hammer/sys/amd64/amd64/local_apic.c#88 integrate .. //depot/projects/hammer/sys/amd64/amd64/machdep.c#177 integrate .. //depot/projects/hammer/sys/amd64/amd64/mp_machdep.c#140 integrate .. //depot/projects/hammer/sys/amd64/amd64/msi.c#9 integrate .. //depot/projects/hammer/sys/amd64/amd64/pmap.c#190 integrate .. //depot/projects/hammer/sys/amd64/amd64/sys_machdep.c#31 integrate .. //depot/projects/hammer/sys/amd64/amd64/trap.c#110 integrate .. //depot/projects/hammer/sys/amd64/amd64/vm_machdep.c#98 integrate .. //depot/projects/hammer/sys/amd64/conf/GENERIC#124 integrate .. //depot/projects/hammer/sys/amd64/conf/NOTES#121 integrate .. //depot/projects/hammer/sys/amd64/conf/XENHVM#3 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_exception.S#7 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_reg.c#12 integrate .. //depot/projects/hammer/sys/amd64/ia32/ia32_signal.c#30 integrate .. //depot/projects/hammer/sys/amd64/include/apicvar.h#52 integrate .. //depot/projects/hammer/sys/amd64/include/cpufunc.h#41 integrate .. //depot/projects/hammer/sys/amd64/include/md_var.h#46 integrate .. //depot/projects/hammer/sys/amd64/include/pcb.h#33 integrate .. //depot/projects/hammer/sys/amd64/include/pmap.h#72 integrate .. //depot/projects/hammer/sys/amd64/include/pmc_mdep.h#8 integrate .. //depot/projects/hammer/sys/amd64/include/smp.h#40 integrate .. //depot/projects/hammer/sys/amd64/include/vm.h#2 integrate .. //depot/projects/hammer/sys/amd64/linux32/linux32_sysvec.c#30 integrate .. //depot/projects/hammer/sys/amd64/pci/pci_bus.c#40 integrate .. //depot/projects/hammer/sys/arm/arm/busdma_machdep.c#33 integrate .. //depot/projects/hammer/sys/arm/arm/cpufunc.c#22 integrate .. //depot/projects/hammer/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/hammer/sys/arm/arm/pmap.c#58 integrate .. //depot/projects/hammer/sys/arm/arm/vm_machdep.c#33 integrate .. //depot/projects/hammer/sys/arm/at91/uart_dev_at91usart.c#14 integrate .. //depot/projects/hammer/sys/arm/conf/AVILA#20 integrate .. //depot/projects/hammer/sys/arm/conf/CAMBRIA#5 integrate .. //depot/projects/hammer/sys/arm/include/pmap.h#28 integrate .. //depot/projects/hammer/sys/arm/include/vm.h#2 integrate .. //depot/projects/hammer/sys/boot/forth/loader.conf#49 integrate .. //depot/projects/hammer/sys/boot/i386/gptboot/gptboot.c#5 integrate .. //depot/projects/hammer/sys/bsm/audit.h#15 integrate .. //depot/projects/hammer/sys/bsm/audit_kevents.h#16 integrate .. //depot/projects/hammer/sys/cam/ata/ata_all.c#1 branch .. //depot/projects/hammer/sys/cam/ata/ata_all.h#1 branch .. //depot/projects/hammer/sys/cam/ata/ata_da.c#1 branch .. //depot/projects/hammer/sys/cam/ata/ata_xpt.c#1 branch .. //depot/projects/hammer/sys/cam/cam.c#8 integrate .. //depot/projects/hammer/sys/cam/cam.h#4 integrate .. //depot/projects/hammer/sys/cam/cam_ccb.h#11 integrate .. //depot/projects/hammer/sys/cam/cam_periph.c#29 integrate .. //depot/projects/hammer/sys/cam/cam_xpt.c#44 integrate .. //depot/projects/hammer/sys/cam/cam_xpt.h#7 integrate .. //depot/projects/hammer/sys/cam/cam_xpt_internal.h#1 branch .. //depot/projects/hammer/sys/cam/cam_xpt_periph.h#5 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_all.c#18 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_cd.c#29 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_ch.c#15 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_da.c#51 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_pass.c#16 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_pt.c#14 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_sa.c#25 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_ses.c#20 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_sg.c#8 integrate .. //depot/projects/hammer/sys/cam/scsi/scsi_xpt.c#1 branch .. //depot/projects/hammer/sys/cddl/compat/opensolaris/kern/opensolaris.c#5 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/hammer/sys/cddl/compat/opensolaris/rpc/xdr.h#3 delete .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/taskq.h#3 delete .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 delete .. //depot/projects/hammer/sys/cddl/compat/opensolaris/sys/vnode.h#6 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#7 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#4 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#6 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#11 integrate .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/hammer/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/hammer/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/hammer/sys/cddl/dev/dtrace/i386/dtrace_subr.c#3 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_misc.c#68 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_proto.h#65 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscall.h#62 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_syscalls.c#62 integrate .. //depot/projects/hammer/sys/compat/freebsd32/freebsd32_sysent.c#63 integrate .. //depot/projects/hammer/sys/compat/freebsd32/syscalls.master#67 integrate .. //depot/projects/hammer/sys/compat/linprocfs/linprocfs.c#51 integrate .. //depot/projects/hammer/sys/compat/linux/linux_ioctl.c#41 integrate .. //depot/projects/hammer/sys/compat/linux/linux_mib.c#15 integrate .. //depot/projects/hammer/sys/compat/linux/linux_socket.c#38 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_sockio.c#14 integrate .. //depot/projects/hammer/sys/compat/svr4/svr4_stat.c#16 integrate .. //depot/projects/hammer/sys/conf/NOTES#162 integrate .. //depot/projects/hammer/sys/conf/files#200 integrate .. //depot/projects/hammer/sys/conf/newvers.sh#26 integrate .. //depot/projects/hammer/sys/conf/options#144 integrate .. //depot/projects/hammer/sys/conf/options.amd64#50 integrate .. //depot/projects/hammer/sys/conf/options.i386#56 integrate .. //depot/projects/hammer/sys/conf/options.pc98#50 integrate .. //depot/projects/hammer/sys/contrib/altq/altq/altq_subr.c#14 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslcompile.c#7 integrate .. //depot/projects/hammer/sys/contrib/dev/acpica/compiler/aslutils.c#8 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/fil.c#21 integrate .. //depot/projects/hammer/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#17 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf.c#45 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_if.c#18 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_ioctl.c#38 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pf_subr.c#8 integrate .. //depot/projects/hammer/sys/contrib/pf/net/pfvar.h#16 integrate .. //depot/projects/hammer/sys/contrib/rdma/rdma_cma.c#6 integrate .. //depot/projects/hammer/sys/ddb/db_expr.c#5 integrate .. //depot/projects/hammer/sys/ddb/db_sym.c#6 integrate .. //depot/projects/hammer/sys/ddb/db_variables.c#6 integrate .. //depot/projects/hammer/sys/ddb/db_variables.h#4 integrate .. //depot/projects/hammer/sys/ddb/ddb.h#18 integrate .. //depot/projects/hammer/sys/dev/aac/aac.c#52 integrate .. //depot/projects/hammer/sys/dev/aac/aac_disk.c#15 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi.c#91 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_battery.c#22 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_cpu.c#46 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_dock.c#7 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_pcib_acpi.c#27 integrate .. //depot/projects/hammer/sys/dev/acpica/acpi_thermal.c#36 integrate .. //depot/projects/hammer/sys/dev/adb/adb_bus.c#5 integrate .. //depot/projects/hammer/sys/dev/advansys/advansys.c#15 integrate .. //depot/projects/hammer/sys/dev/advansys/advlib.h#4 integrate .. //depot/projects/hammer/sys/dev/ahci/ahci.c#1 branch .. //depot/projects/hammer/sys/dev/ahci/ahci.h#1 branch .. //depot/projects/hammer/sys/dev/aic7xxx/aic79xx_osm.h#16 integrate .. //depot/projects/hammer/sys/dev/aic7xxx/aic7xxx_osm.h#19 integrate .. //depot/projects/hammer/sys/dev/alc/if_alc.c#2 integrate .. //depot/projects/hammer/sys/dev/amd/amd.h#3 integrate .. //depot/projects/hammer/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/hammer/sys/dev/amr/amr.c#43 integrate .. //depot/projects/hammer/sys/dev/ata/ata-all.c#75 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-cam.c#32 integrate .. //depot/projects/hammer/sys/dev/ata/atapi-cd.c#43 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-ahci.c#6 integrate .. //depot/projects/hammer/sys/dev/ata/chipsets/ata-marvell.c#6 integrate .. //depot/projects/hammer/sys/dev/ath/ah_osdep.c#8 integrate .. //depot/projects/hammer/sys/dev/ath/ah_osdep.h#7 integrate .. //depot/projects/hammer/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/hammer/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#6 integrate .. //depot/projects/hammer/sys/dev/ath/if_ath.c#73 integrate .. //depot/projects/hammer/sys/dev/ath/if_athvar.h#42 integrate .. //depot/projects/hammer/sys/dev/atkbdc/psm.c#18 integrate .. //depot/projects/hammer/sys/dev/bge/if_bge.c#91 integrate .. //depot/projects/hammer/sys/dev/bktr/bktr_os.c#22 integrate .. //depot/projects/hammer/sys/dev/ciss/ciss.c#55 integrate .. //depot/projects/hammer/sys/dev/ciss/cissvar.h#10 integrate .. //depot/projects/hammer/sys/dev/cxgb/cxgb_sge.c#31 integrate .. //depot/projects/hammer/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#8 integrate .. //depot/projects/hammer/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#18 integrate .. //depot/projects/hammer/sys/dev/drm/drm_drv.c#14 integrate .. //depot/projects/hammer/sys/dev/drm/drm_pciids.h#13 integrate .. //depot/projects/hammer/sys/dev/drm/r600_cp.c#3 integrate .. //depot/projects/hammer/sys/dev/drm/radeon_drv.h#18 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_82542.c#3 integrate .. //depot/projects/hammer/sys/dev/e1000/e1000_ich8lan.c#5 integrate .. //depot/projects/hammer/sys/dev/e1000/if_em.c#8 integrate .. //depot/projects/hammer/sys/dev/e1000/if_igb.c#8 integrate .. //depot/projects/hammer/sys/dev/hptrr/hptrr_config.c#3 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_core.c#4 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_piv.c#16 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_ppro.c#13 integrate .. //depot/projects/hammer/sys/dev/hwpmc/hwpmc_x86.c#12 integrate .. //depot/projects/hammer/sys/dev/if_ndis/if_ndis.c#74 integrate .. //depot/projects/hammer/sys/dev/ips/ips_pci.c#14 integrate .. //depot/projects/hammer/sys/dev/ipw/if_ipw.c#27 integrate .. //depot/projects/hammer/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/hammer/sys/dev/isp/isp.c#29 integrate .. //depot/projects/hammer/sys/dev/isp/isp_freebsd.c#35 integrate .. //depot/projects/hammer/sys/dev/isp/isp_freebsd.h#24 integrate .. //depot/projects/hammer/sys/dev/isp/isp_ioctl.h#13 integrate .. //depot/projects/hammer/sys/dev/isp/isp_library.c#8 integrate .. //depot/projects/hammer/sys/dev/isp/isp_library.h#6 integrate .. //depot/projects/hammer/sys/dev/isp/isp_pci.c#32 integrate .. //depot/projects/hammer/sys/dev/isp/isp_sbus.c#21 integrate .. //depot/projects/hammer/sys/dev/isp/isp_stds.h#3 integrate .. //depot/projects/hammer/sys/dev/isp/isp_target.c#17 integrate .. //depot/projects/hammer/sys/dev/isp/isp_target.h#11 integrate .. //depot/projects/hammer/sys/dev/isp/ispmbox.h#14 integrate .. //depot/projects/hammer/sys/dev/isp/ispreg.h#8 integrate .. //depot/projects/hammer/sys/dev/isp/ispvar.h#21 integrate .. //depot/projects/hammer/sys/dev/ispfw/asm_2300.h#10 integrate .. //depot/projects/hammer/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/hammer/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/hammer/sys/dev/ispfw/ispfw.c#12 integrate .. //depot/projects/hammer/sys/dev/iwi/if_iwi.c#33 integrate .. //depot/projects/hammer/sys/dev/iwn/if_iwn.c#8 integrate .. //depot/projects/hammer/sys/dev/ixgbe/ixgbe.c#8 integrate .. //depot/projects/hammer/sys/dev/mfi/mfi.c#22 integrate .. //depot/projects/hammer/sys/dev/mfi/mfi_ioctl.h#8 integrate .. //depot/projects/hammer/sys/dev/mfi/mfireg.h#9 integrate .. //depot/projects/hammer/sys/dev/mfi/mfivar.h#8 integrate .. //depot/projects/hammer/sys/dev/mii/e1000phy.c#17 integrate .. //depot/projects/hammer/sys/dev/mlx/mlx.c#16 integrate .. //depot/projects/hammer/sys/dev/mlx/mlxvar.h#7 integrate .. //depot/projects/hammer/sys/dev/mmc/mmc.c#9 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt.h#21 integrate .. //depot/projects/hammer/sys/dev/mpt/mpt_pci.c#25 integrate .. //depot/projects/hammer/sys/dev/mwl/if_mwl.c#3 integrate .. //depot/projects/hammer/sys/dev/mxge/if_mxge.c#22 integrate .. //depot/projects/hammer/sys/dev/pccbb/pccbb.c#54 integrate .. //depot/projects/hammer/sys/dev/pci/pci.c#75 integrate .. //depot/projects/hammer/sys/dev/ppbus/vpo.c#14 integrate .. //depot/projects/hammer/sys/dev/pst/pst-iop.c#8 integrate .. //depot/projects/hammer/sys/dev/ral/rt2560.c#19 integrate .. //depot/projects/hammer/sys/dev/ral/rt2661.c#17 integrate .. //depot/projects/hammer/sys/dev/re/if_re.c#72 integrate .. //depot/projects/hammer/sys/dev/rp/rp.c#26 integrate .. //depot/projects/hammer/sys/dev/siis/siis.c#1 branch .. //depot/projects/hammer/sys/dev/siis/siis.h#1 branch .. //depot/projects/hammer/sys/dev/sound/pci/hda/hdac.c#32 integrate .. //depot/projects/hammer/sys/dev/sound/pcm/feeder_rate.c#17 integrate .. //depot/projects/hammer/sys/dev/sound/usb/uaudio.c#22 integrate .. //depot/projects/hammer/sys/dev/trm/trm.h#5 integrate .. //depot/projects/hammer/sys/dev/twe/twe.c#14 integrate .. //depot/projects/hammer/sys/dev/uart/uart_cpu_powerpc.c#7 integrate .. //depot/projects/hammer/sys/dev/usb/controller/at91dci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/atmegadci.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/controller/avr32dci.c#3 integrate .. //depot/projects/hammer/sys/dev/usb/controller/ehci.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/controller/ehci_pci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/musb_otg.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/ohci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/ohci_pci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/uhci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/uhci_pci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/controller/usb_controller.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/controller/uss820dci.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/input/ukbd.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/input/ums.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/net/usb_ethernet.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/serial/u3g.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/serial/ulpt.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_busdma.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_compat_linux.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_compat_linux.h#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_controller.h#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_dev.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_dev.h#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_device.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_handle_request.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_hid.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_hub.c#6 integrate .. //depot/projects/hammer/sys/dev/usb/usb_parse.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_process.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_process.h#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_request.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usb_transfer.c#5 integrate .. //depot/projects/hammer/sys/dev/usb/usbdevs#121 integrate .. //depot/projects/hammer/sys/dev/usb/usbdi.h#20 integrate .. //depot/projects/hammer/sys/dev/usb/wlan/if_uath.c#4 integrate .. //depot/projects/hammer/sys/dev/usb/wlan/if_upgt.c#4 integrate .. //depot/projects/hammer/sys/dev/wpi/if_wpi.c#15 integrate .. //depot/projects/hammer/sys/dev/xen/blkback/blkback.c#3 integrate .. //depot/projects/hammer/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/hammer/sys/dev/xl/if_xl.c#6 integrate .. //depot/projects/hammer/sys/fs/fifofs/fifo_vnops.c#49 integrate .. //depot/projects/hammer/sys/fs/nfs/nfs_commonkrpc.c#3 integrate .. //depot/projects/hammer/sys/fs/nfs/nfs_var.h#2 integrate .. //depot/projects/hammer/sys/fs/nfs/nfsport.h#4 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clbio.c#4 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clrpcops.c#2 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clstate.c#4 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clvfsops.c#4 integrate .. //depot/projects/hammer/sys/fs/nfsclient/nfs_clvnops.c#4 integrate .. //depot/projects/hammer/sys/fs/nfsserver/nfs_nfsdport.c#4 integrate .. //depot/projects/hammer/sys/fs/procfs/procfs_map.c#18 integrate .. //depot/projects/hammer/sys/fs/unionfs/union_subr.c#37 integrate .. //depot/projects/hammer/sys/geom/geom_dev.c#42 integrate .. //depot/projects/hammer/sys/geom/part/g_part.c#22 integrate .. //depot/projects/hammer/sys/geom/part/g_part_gpt.c#15 integrate .. //depot/projects/hammer/sys/geom/part/g_part_if.m#6 integrate .. //depot/projects/hammer/sys/geom/vinum/geom_vinum.c#20 integrate .. //depot/projects/hammer/sys/i386/acpica/acpi_machdep.c#35 integrate .. //depot/projects/hammer/sys/i386/bios/smapi.c#12 integrate .. //depot/projects/hammer/sys/i386/bios/smbios.c#7 integrate .. //depot/projects/hammer/sys/i386/bios/vpd.c#7 integrate .. //depot/projects/hammer/sys/i386/conf/GENERIC#83 integrate .. //depot/projects/hammer/sys/i386/conf/NOTES#114 integrate .. //depot/projects/hammer/sys/i386/i386/initcpu.c#23 integrate .. //depot/projects/hammer/sys/i386/i386/io_apic.c#29 integrate .. //depot/projects/hammer/sys/i386/i386/local_apic.c#45 integrate .. //depot/projects/hammer/sys/i386/i386/machdep.c#94 integrate .. //depot/projects/hammer/sys/i386/i386/mp_machdep.c#83 integrate .. //depot/projects/hammer/sys/i386/i386/msi.c#9 integrate .. //depot/projects/hammer/sys/i386/i386/pmap.c#121 integrate .. //depot/projects/hammer/sys/i386/i386/trap.c#66 integrate .. //depot/projects/hammer/sys/i386/i386/vm_machdep.c#68 integrate .. //depot/projects/hammer/sys/i386/ibcs2/ibcs2_misc.c#23 integrate .. //depot/projects/hammer/sys/i386/include/apicvar.h#29 integrate .. //depot/projects/hammer/sys/i386/include/cpufunc.h#20 integrate .. //depot/projects/hammer/sys/i386/include/md_var.h#23 integrate .. //depot/projects/hammer/sys/i386/include/pmap.h#41 integrate .. //depot/projects/hammer/sys/i386/include/pmc_mdep.h#9 integrate .. //depot/projects/hammer/sys/i386/include/sf_buf.h#5 integrate .. //depot/projects/hammer/sys/i386/include/smp.h#23 integrate .. //depot/projects/hammer/sys/i386/include/vm.h#2 integrate .. //depot/projects/hammer/sys/i386/pci/pci_bus.c#29 integrate .. //depot/projects/hammer/sys/i386/xen/mp_machdep.c#9 integrate .. //depot/projects/hammer/sys/i386/xen/pmap.c#8 integrate .. //depot/projects/hammer/sys/ia64/ia64/genassym.c#12 integrate .. //depot/projects/hammer/sys/ia64/ia64/interrupt.c#33 integrate .. //depot/projects/hammer/sys/ia64/ia64/machdep.c#76 integrate .. //depot/projects/hammer/sys/ia64/ia64/mp_machdep.c#28 integrate .. //depot/projects/hammer/sys/ia64/ia64/pmap.c#71 integrate .. //depot/projects/hammer/sys/ia64/include/pmap.h#20 integrate .. //depot/projects/hammer/sys/ia64/include/smp.h#6 integrate .. //depot/projects/hammer/sys/ia64/include/vm.h#2 integrate .. //depot/projects/hammer/sys/kern/init_main.c#61 integrate .. //depot/projects/hammer/sys/kern/init_sysent.c#76 integrate .. //depot/projects/hammer/sys/kern/kern_exec.c#90 integrate .. //depot/projects/hammer/sys/kern/kern_exit.c#82 integrate .. //depot/projects/hammer/sys/kern/kern_fork.c#80 integrate .. //depot/projects/hammer/sys/kern/kern_jail.c#43 integrate .. //depot/projects/hammer/sys/kern/kern_linker.c#45 integrate .. //depot/projects/hammer/sys/kern/kern_lock.c#49 integrate .. //depot/projects/hammer/sys/kern/kern_mbuf.c#36 integrate .. //depot/projects/hammer/sys/kern/kern_mutex.c#58 integrate .. //depot/projects/hammer/sys/kern/kern_poll.c#29 integrate .. //depot/projects/hammer/sys/kern/kern_proc.c#85 integrate .. //depot/projects/hammer/sys/kern/kern_prot.c#38 integrate .. //depot/projects/hammer/sys/kern/kern_rwlock.c#24 integrate .. //depot/projects/hammer/sys/kern/kern_shutdown.c#61 integrate .. //depot/projects/hammer/sys/kern/kern_sig.c#98 integrate .. //depot/projects/hammer/sys/kern/kern_sx.c#27 integrate .. //depot/projects/hammer/sys/kern/kern_synch.c#73 integrate .. //depot/projects/hammer/sys/kern/kern_sysctl.c#42 integrate .. //depot/projects/hammer/sys/kern/kern_thread.c#114 integrate .. //depot/projects/hammer/sys/kern/kern_uuid.c#19 integrate .. //depot/projects/hammer/sys/kern/kern_vimage.c#5 delete .. //depot/projects/hammer/sys/kern/link_elf.c#38 integrate .. //depot/projects/hammer/sys/kern/link_elf_obj.c#63 integrate .. //depot/projects/hammer/sys/kern/subr_bus.c#69 integrate .. //depot/projects/hammer/sys/kern/subr_kdb.c#27 integrate .. //depot/projects/hammer/sys/kern/subr_param.c#24 integrate .. //depot/projects/hammer/sys/kern/subr_pcpu.c#11 integrate .. //depot/projects/hammer/sys/kern/subr_sleepqueue.c#37 integrate .. //depot/projects/hammer/sys/kern/subr_smp.c#42 integrate .. //depot/projects/hammer/sys/kern/subr_taskqueue.c#27 integrate .. //depot/projects/hammer/sys/kern/subr_trap.c#48 integrate .. //depot/projects/hammer/sys/kern/sys_pipe.c#44 integrate .. //depot/projects/hammer/sys/kern/sys_socket.c#28 integrate .. //depot/projects/hammer/sys/kern/syscalls.c#73 integrate .. //depot/projects/hammer/sys/kern/syscalls.master#75 integrate .. //depot/projects/hammer/sys/kern/systrace_args.c#19 integrate .. //depot/projects/hammer/sys/kern/tty.c#72 integrate .. //depot/projects/hammer/sys/kern/tty_pts.c#19 integrate .. //depot/projects/hammer/sys/kern/tty_pty.c#42 integrate .. //depot/projects/hammer/sys/kern/tty_ttydisc.c#7 integrate .. //depot/projects/hammer/sys/kern/uipc_domain.c#25 integrate .. //depot/projects/hammer/sys/kern/uipc_socket.c#95 integrate .. //depot/projects/hammer/sys/kern/uipc_syscalls.c#78 integrate .. //depot/projects/hammer/sys/kern/uipc_usrreq.c#65 integrate .. //depot/projects/hammer/sys/kern/vfs_bio.c#98 integrate .. //depot/projects/hammer/sys/kern/vfs_cache.c#42 integrate .. //depot/projects/hammer/sys/kern/vfs_lookup.c#46 integrate .. //depot/projects/hammer/sys/kern/vfs_mount.c#107 integrate .. //depot/projects/hammer/sys/kern/vfs_syscalls.c#92 integrate .. //depot/projects/hammer/sys/mips/include/pmap.h#5 integrate .. //depot/projects/hammer/sys/mips/include/smp.h#3 integrate .. //depot/projects/hammer/sys/mips/include/vm.h#2 integrate .. //depot/projects/hammer/sys/mips/mips/mp_machdep.c#5 integrate .. //depot/projects/hammer/sys/mips/mips/pmap.c#11 integrate .. //depot/projects/hammer/sys/modules/Makefile#143 integrate .. //depot/projects/hammer/sys/modules/ahci/Makefile#1 branch .. //depot/projects/hammer/sys/modules/cam/Makefile#12 integrate .. //depot/projects/hammer/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/hammer/sys/modules/ispfw/Makefile#4 integrate .. //depot/projects/hammer/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/hammer/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/hammer/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/hammer/sys/modules/siis/Makefile#1 branch .. //depot/projects/hammer/sys/modules/wlan/Makefile#15 integrate .. //depot/projects/hammer/sys/modules/zfs/Makefile#14 integrate .. //depot/projects/hammer/sys/net/bpf.c#72 integrate .. //depot/projects/hammer/sys/net/bpf_buffer.c#3 integrate .. //depot/projects/hammer/sys/net/bpf_zerocopy.c#6 integrate .. //depot/projects/hammer/sys/net/bpfdesc.h#21 integrate .. //depot/projects/hammer/sys/net/bridgestp.c#24 integrate .. //depot/projects/hammer/sys/net/flowtable.c#3 integrate .. //depot/projects/hammer/sys/net/flowtable.h#3 integrate .. //depot/projects/hammer/sys/net/if.c#91 integrate .. //depot/projects/hammer/sys/net/if_bridge.c#50 integrate .. //depot/projects/hammer/sys/net/if_clone.c#15 integrate .. //depot/projects/hammer/sys/net/if_clone.h#6 integrate .. //depot/projects/hammer/sys/net/if_ef.c#24 integrate .. //depot/projects/hammer/sys/net/if_enc.c#9 integrate .. //depot/projects/hammer/sys/net/if_epair.c#2 integrate .. //depot/projects/hammer/sys/net/if_ethersubr.c#82 integrate .. //depot/projects/hammer/sys/net/if_faith.c#29 integrate .. //depot/projects/hammer/sys/net/if_gif.c#38 integrate .. //depot/projects/hammer/sys/net/if_gif.h#16 integrate .. //depot/projects/hammer/sys/net/if_gre.c#44 integrate .. //depot/projects/hammer/sys/net/if_llatbl.c#4 integrate .. //depot/projects/hammer/sys/net/if_loop.c#46 integrate .. //depot/projects/hammer/sys/net/if_media.h#26 integrate .. //depot/projects/hammer/sys/net/if_mib.c#15 integrate .. //depot/projects/hammer/sys/net/if_spppsubr.c#34 integrate .. //depot/projects/hammer/sys/net/if_stf.c#36 integrate .. //depot/projects/hammer/sys/net/if_tun.c#42 integrate .. //depot/projects/hammer/sys/net/if_var.h#59 integrate .. //depot/projects/hammer/sys/net/if_vlan.c#51 integrate .. //depot/projects/hammer/sys/net/netisr.c#21 integrate .. //depot/projects/hammer/sys/net/netisr.h#13 integrate .. //depot/projects/hammer/sys/net/raw_cb.c#21 integrate .. //depot/projects/hammer/sys/net/raw_cb.h#8 integrate .. //depot/projects/hammer/sys/net/raw_usrreq.c#24 integrate .. //depot/projects/hammer/sys/net/route.c#46 integrate .. //depot/projects/hammer/sys/net/rtsock.c#49 integrate .. //depot/projects/hammer/sys/net/vnet.c#1 branch .. //depot/projects/hammer/sys/net/vnet.h#8 integrate .. //depot/projects/hammer/sys/net80211/_ieee80211.h#18 integrate .. //depot/projects/hammer/sys/net80211/ieee80211.c#43 integrate .. //depot/projects/hammer/sys/net80211/ieee80211.h#26 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_action.c#2 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_ageq.c#2 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_crypto.c#19 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_crypto.h#18 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_ddb.c#12 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_freebsd.c#25 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_freebsd.h#22 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_hwmp.c#1 branch .. //depot/projects/hammer/sys/net80211/ieee80211_input.c#52 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_input.h#4 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_ioctl.c#48 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_ioctl.h#28 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_mesh.c#1 branch .. //depot/projects/hammer/sys/net80211/ieee80211_mesh.h#1 branch .. //depot/projects/hammer/sys/net80211/ieee80211_node.c#56 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_node.h#36 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_output.c#47 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_proto.c#42 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_proto.h#28 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan.c#12 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan.h#9 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_scan_sta.c#17 integrate .. //depot/projects/hammer/sys/net80211/ieee80211_var.h#45 integrate .. //depot/projects/hammer/sys/netatalk/at_control.c#13 integrate .. //depot/projects/hammer/sys/netgraph/atm/ng_atm.c#20 integrate .. //depot/projects/hammer/sys/netgraph/bluetooth/socket/ng_btsocket.c#15 integrate .. //depot/projects/hammer/sys/netgraph/netgraph.h#42 integrate .. //depot/projects/hammer/sys/netgraph/ng_base.c#69 integrate .. //depot/projects/hammer/sys/netgraph/ng_bridge.c#19 integrate .. //depot/projects/hammer/sys/netgraph/ng_eiface.c#33 integrate .. //depot/projects/hammer/sys/netgraph/ng_ether.c#37 integrate .. //depot/projects/hammer/sys/netgraph/ng_gif.c#18 integrate .. //depot/projects/hammer/sys/netgraph/ng_iface.c#33 integrate .. //depot/projects/hammer/sys/netgraph/ng_pipe.c#3 integrate .. //depot/projects/hammer/sys/netgraph/ng_socket.c#31 integrate .. //depot/projects/hammer/sys/netgraph/ng_source.c#18 integrate .. //depot/projects/hammer/sys/netinet/icmp6.h#14 integrate .. //depot/projects/hammer/sys/netinet/icmp_var.h#9 integrate .. //depot/projects/hammer/sys/netinet/if_ether.c#59 integrate .. //depot/projects/hammer/sys/netinet/igmp.c#25 integrate .. //depot/projects/hammer/sys/netinet/in.c#41 integrate .. //depot/projects/hammer/sys/netinet/in_gif.c#28 integrate .. //depot/projects/hammer/sys/netinet/in_mcast.c#14 integrate .. //depot/projects/hammer/sys/netinet/in_pcb.c#72 integrate .. //depot/projects/hammer/sys/netinet/in_pcb.h#53 integrate .. //depot/projects/hammer/sys/netinet/in_proto.c#31 integrate .. //depot/projects/hammer/sys/netinet/in_rmx.c#26 integrate .. //depot/projects/hammer/sys/netinet/in_var.h#23 integrate .. //depot/projects/hammer/sys/netinet/ip_carp.c#35 integrate .. //depot/projects/hammer/sys/netinet/ip_divert.c#52 integrate .. //depot/projects/hammer/sys/netinet/ip_fastfwd.c#39 integrate .. //depot/projects/hammer/sys/netinet/ip_fw.h#43 integrate .. //depot/projects/hammer/sys/netinet/ip_icmp.c#48 integrate .. //depot/projects/hammer/sys/netinet/ip_input.c#84 integrate .. //depot/projects/hammer/sys/netinet/ip_ipsec.c#17 integrate .. //depot/projects/hammer/sys/netinet/ip_mroute.c#49 integrate .. //depot/projects/hammer/sys/netinet/ip_options.c#15 integrate .. //depot/projects/hammer/sys/netinet/ip_output.c#80 integrate .. //depot/projects/hammer/sys/netinet/ip_var.h#37 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw2.c#2 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw_nat.c#2 integrate .. //depot/projects/hammer/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/hammer/sys/netinet/raw_ip.c#66 integrate .. //depot/projects/hammer/sys/netinet/sctp_auth.c#15 integrate .. //depot/projects/hammer/sys/netinet/sctp_indata.c#30 integrate .. //depot/projects/hammer/sys/netinet/sctp_input.c#27 integrate .. //depot/projects/hammer/sys/netinet/sctp_os_bsd.h#24 integrate .. //depot/projects/hammer/sys/netinet/sctp_output.c#33 integrate .. //depot/projects/hammer/sys/netinet/sctp_pcb.c#31 integrate .. //depot/projects/hammer/sys/netinet/sctp_sysctl.c#18 integrate .. //depot/projects/hammer/sys/netinet/sctp_sysctl.h#15 integrate .. //depot/projects/hammer/sys/netinet/sctp_timer.c#23 integrate .. //depot/projects/hammer/sys/netinet/sctp_uio.h#20 integrate .. //depot/projects/hammer/sys/netinet/sctputil.c#37 integrate .. //depot/projects/hammer/sys/netinet/sctputil.h#19 integrate .. //depot/projects/hammer/sys/netinet/tcp_hostcache.c#22 integrate .. //depot/projects/hammer/sys/netinet/tcp_input.c#99 integrate .. //depot/projects/hammer/sys/netinet/tcp_offload.c#7 integrate .. //depot/projects/hammer/sys/netinet/tcp_offload.h#4 integrate .. //depot/projects/hammer/sys/netinet/tcp_output.c#59 integrate .. //depot/projects/hammer/sys/netinet/tcp_reass.c#10 integrate .. //depot/projects/hammer/sys/netinet/tcp_sack.c#35 integrate .. //depot/projects/hammer/sys/netinet/tcp_subr.c#96 integrate .. //depot/projects/hammer/sys/netinet/tcp_syncache.c#73 integrate .. //depot/projects/hammer/sys/netinet/tcp_syncache.h#8 integrate .. //depot/projects/hammer/sys/netinet/tcp_timer.c#41 integrate .. //depot/projects/hammer/sys/netinet/tcp_timewait.c#14 integrate .. //depot/projects/hammer/sys/netinet/tcp_usrreq.c#68 integrate .. //depot/projects/hammer/sys/netinet/tcp_var.h#62 integrate .. //depot/projects/hammer/sys/netinet/udp_usrreq.c#70 integrate .. //depot/projects/hammer/sys/netinet/udp_var.h#13 integrate .. //depot/projects/hammer/sys/netinet/vinet.h#9 delete .. //depot/projects/hammer/sys/netinet6/dest6.c#10 integrate .. //depot/projects/hammer/sys/netinet6/frag6.c#22 integrate .. //depot/projects/hammer/sys/netinet6/icmp6.c#46 integrate .. //depot/projects/hammer/sys/netinet6/in6.c#43 integrate .. //depot/projects/hammer/sys/netinet6/in6_gif.c#23 integrate .. //depot/projects/hammer/sys/netinet6/in6_ifattach.c#34 integrate .. //depot/projects/hammer/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/hammer/sys/netinet6/in6_pcb.c#49 integrate .. //depot/projects/hammer/sys/netinet6/in6_proto.c#30 integrate .. //depot/projects/hammer/sys/netinet6/in6_rmx.c#25 integrate .. //depot/projects/hammer/sys/netinet6/in6_src.c#38 integrate .. //depot/projects/hammer/sys/netinet6/in6_var.h#22 integrate .. //depot/projects/hammer/sys/netinet6/ip6_forward.c#27 integrate .. //depot/projects/hammer/sys/netinet6/ip6_input.c#46 integrate .. //depot/projects/hammer/sys/netinet6/ip6_ipsec.c#12 integrate .. //depot/projects/hammer/sys/netinet6/ip6_mroute.c#32 integrate .. //depot/projects/hammer/sys/netinet6/ip6_output.c#60 integrate .. //depot/projects/hammer/sys/netinet6/ip6_var.h#30 integrate .. //depot/projects/hammer/sys/netinet6/mld6.c#32 integrate .. //depot/projects/hammer/sys/netinet6/nd6.c#46 integrate .. //depot/projects/hammer/sys/netinet6/nd6.h#16 integrate .. //depot/projects/hammer/sys/netinet6/nd6_nbr.c#35 integrate .. //depot/projects/hammer/sys/netinet6/nd6_rtr.c#29 integrate .. //depot/projects/hammer/sys/netinet6/raw_ip6.c#48 integrate .. //depot/projects/hammer/sys/netinet6/raw_ip6.h#5 integrate .. //depot/projects/hammer/sys/netinet6/route6.c#15 integrate .. //depot/projects/hammer/sys/netinet6/scope6.c#18 integrate .. //depot/projects/hammer/sys/netinet6/tcp6_var.h#6 integrate .. //depot/projects/hammer/sys/netinet6/udp6_usrreq.c#51 integrate .. //depot/projects/hammer/sys/netinet6/vinet6.h#8 delete .. //depot/projects/hammer/sys/netipsec/ah_var.h#3 integrate .. //depot/projects/hammer/sys/netipsec/esp_var.h#3 integrate .. //depot/projects/hammer/sys/netipsec/ipcomp_var.h#3 integrate .. //depot/projects/hammer/sys/netipsec/ipip_var.h#4 integrate .. //depot/projects/hammer/sys/netipsec/ipsec.c#33 integrate .. //depot/projects/hammer/sys/netipsec/ipsec.h#22 integrate .. //depot/projects/hammer/sys/netipsec/ipsec6.h#9 integrate .. //depot/projects/hammer/sys/netipsec/ipsec_input.c#21 integrate .. //depot/projects/hammer/sys/netipsec/ipsec_mbuf.c#12 integrate .. //depot/projects/hammer/sys/netipsec/ipsec_output.c#21 integrate .. //depot/projects/hammer/sys/netipsec/key.c#32 integrate .. //depot/projects/hammer/sys/netipsec/key_debug.c#8 integrate .. //depot/projects/hammer/sys/netipsec/key_debug.h#4 integrate .. //depot/projects/hammer/sys/netipsec/keysock.c#24 integrate .. //depot/projects/hammer/sys/netipsec/keysock.h#5 integrate .. //depot/projects/hammer/sys/netipsec/vipsec.h#8 delete .. //depot/projects/hammer/sys/netipsec/xform_ah.c#19 integrate .. //depot/projects/hammer/sys/netipsec/xform_esp.c#20 integrate .. //depot/projects/hammer/sys/netipsec/xform_ipcomp.c#16 integrate .. //depot/projects/hammer/sys/netipsec/xform_ipip.c#23 integrate .. //depot/projects/hammer/sys/netipsec/xform_tcp.c#8 integrate .. //depot/projects/hammer/sys/nfs/nfs_common.c#11 integrate .. //depot/projects/hammer/sys/nfsclient/bootp_subr.c#29 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_bio.c#51 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_diskless.c#24 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_subs.c#41 integrate .. //depot/projects/hammer/sys/nfsclient/nfs_vnops.c#73 integrate .. //depot/projects/hammer/sys/nfsclient/nfsmount.h#16 integrate .. //depot/projects/hammer/sys/pc98/cbus/fdc.c#9 integrate .. //depot/projects/hammer/sys/pc98/conf/GENERIC#65 integrate .. //depot/projects/hammer/sys/pc98/conf/NOTES#73 integrate .. //depot/projects/hammer/sys/pci/if_rlreg.h#44 integrate .. //depot/projects/hammer/sys/powerpc/aim/mmu_oea64.c#3 integrate .. //depot/projects/hammer/sys/powerpc/booke/pmap.c#11 integrate .. //depot/projects/hammer/sys/powerpc/include/pmap.h#17 integrate .. //depot/projects/hammer/sys/powerpc/include/smp.h#6 integrate .. //depot/projects/hammer/sys/powerpc/include/vm.h#2 integrate .. //depot/projects/hammer/sys/powerpc/mpc85xx/lbc.h#3 integrate .. //depot/projects/hammer/sys/powerpc/powerpc/mp_machdep.c#14 integrate .. //depot/projects/hammer/sys/rpc/clnt_rc.c#9 integrate .. //depot/projects/hammer/sys/rpc/clnt_vc.c#8 integrate .. //depot/projects/hammer/sys/security/audit/audit.c#25 integrate .. //depot/projects/hammer/sys/security/audit/audit.h#17 integrate .. //depot/projects/hammer/sys/security/audit/audit_arg.c#20 integrate .. //depot/projects/hammer/sys/security/audit/audit_bsm.c#21 integrate .. //depot/projects/hammer/sys/security/audit/audit_bsm_errno.c#3 integrate .. //depot/projects/hammer/sys/security/audit/audit_bsm_klib.c#16 integrate .. //depot/projects/hammer/sys/security/audit/audit_bsm_token.c#14 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 20 08:33:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E88DC1065690; Thu, 20 Aug 2009 08:33:48 +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 A9F72106568B for ; Thu, 20 Aug 2009 08:33:48 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 968B98FC51 for ; Thu, 20 Aug 2009 08:33:48 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7K8XmGx095560 for ; Thu, 20 Aug 2009 08:33:48 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7K8XhjT095554 for perforce@freebsd.org; Thu, 20 Aug 2009 08:33:43 GMT (envelope-from stas@freebsd.org) Date: Thu, 20 Aug 2009 08:33:43 GMT Message-Id: <200908200833.n7K8XhjT095554@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167520 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: Thu, 20 Aug 2009 08:33:49 -0000 http://perforce.freebsd.org/chv.cgi?CH=167520 Change 167520 by stas@stas_deglitch on 2009/08/20 08:33:19 - Integrate valgrind. It builds but broken for now. Affected files ... .. //depot/projects/valgrind/ACKNOWLEDGEMENTS#3 delete .. //depot/projects/valgrind/AUTHORS#3 edit .. //depot/projects/valgrind/COPYING#2 edit .. //depot/projects/valgrind/COPYING.DOCS#2 edit .. //depot/projects/valgrind/INSTALL#2 delete .. //depot/projects/valgrind/Makefile.all.am#2 edit .. //depot/projects/valgrind/Makefile.am#11 edit .. //depot/projects/valgrind/Makefile.core.am#5 delete .. //depot/projects/valgrind/Makefile.flags.am#5 delete .. //depot/projects/valgrind/Makefile.install.am#6 delete .. //depot/projects/valgrind/Makefile.tool-flags.am#4 delete .. //depot/projects/valgrind/Makefile.tool-inplace.am#6 delete .. //depot/projects/valgrind/Makefile.tool-tests.am#1 add .. //depot/projects/valgrind/Makefile.tool.am#5 edit .. //depot/projects/valgrind/Makefile.vex.am#1 add .. //depot/projects/valgrind/NEWS#3 edit .. //depot/projects/valgrind/README#3 edit .. //depot/projects/valgrind/README_DEVELOPERS#3 edit .. //depot/projects/valgrind/README_FREEBSD#4 edit .. //depot/projects/valgrind/README_MISSING_SYSCALL_OR_IOCTL#3 edit .. //depot/projects/valgrind/README_PACKAGERS#3 edit .. //depot/projects/valgrind/VEX/HACKING.README#2 edit .. //depot/projects/valgrind/VEX/LICENSE.GPL#2 edit .. //depot/projects/valgrind/VEX/LICENSE.README#2 edit .. //depot/projects/valgrind/VEX/Makefile#4 delete .. //depot/projects/valgrind/VEX/Makefile-gcc#1 add .. //depot/projects/valgrind/VEX/Makefile-icc#2 edit .. //depot/projects/valgrind/VEX/TODO.txt#2 edit .. //depot/projects/valgrind/VEX/auxprogs/genoffsets.c#3 edit .. //depot/projects/valgrind/VEX/nanoarm.orig#2 edit .. //depot/projects/valgrind/VEX/newline.txt#2 edit .. //depot/projects/valgrind/VEX/orig_amd64/Compare.hs#2 edit .. //depot/projects/valgrind/VEX/orig_amd64/SortedToOrig.hs#2 edit .. //depot/projects/valgrind/VEX/orig_amd64/test1.orig#2 edit .. //depot/projects/valgrind/VEX/orig_amd64/test1.sorted#2 edit .. //depot/projects/valgrind/VEX/orig_amd64/test2.orig#2 edit .. //depot/projects/valgrind/VEX/orig_amd64/test2.sorted#2 edit .. //depot/projects/valgrind/VEX/orig_arm/nanoarm#2 edit .. //depot/projects/valgrind/VEX/orig_arm/nanoarm.orig#2 edit .. //depot/projects/valgrind/VEX/orig_ppc32/date.orig#2 edit .. //depot/projects/valgrind/VEX/orig_ppc32/loadsafp.orig#2 edit .. //depot/projects/valgrind/VEX/orig_ppc32/morefp.orig#2 edit .. //depot/projects/valgrind/VEX/orig_ppc32/return0.orig#2 edit .. //depot/projects/valgrind/VEX/orig_x86/exit42.orig#2 edit .. //depot/projects/valgrind/VEX/orig_x86/fpu_mmx_sse.orig#2 edit .. //depot/projects/valgrind/VEX/orig_x86/manyfp.orig#2 edit .. //depot/projects/valgrind/VEX/priv/guest-amd64/gdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/guest-amd64/ghelpers.c#4 delete .. //depot/projects/valgrind/VEX/priv/guest-amd64/toIR.c#4 delete .. //depot/projects/valgrind/VEX/priv/guest-arm/gdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/guest-arm/ghelpers.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest-arm/toIR.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest-generic/bb_to_IR.c#4 delete .. //depot/projects/valgrind/VEX/priv/guest-generic/bb_to_IR.h#3 delete .. //depot/projects/valgrind/VEX/priv/guest-generic/g_generic_x87.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest-generic/g_generic_x87.h#3 delete .. //depot/projects/valgrind/VEX/priv/guest-ppc/gdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/guest-ppc/ghelpers.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest-ppc/toIR.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest-x86/gdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/guest-x86/ghelpers.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest-x86/toIR.c#3 delete .. //depot/projects/valgrind/VEX/priv/guest_amd64_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/guest_amd64_helpers.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_amd64_toIR.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_arm_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/guest_arm_helpers.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_arm_toIR.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_generic_bb_to_IR.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_generic_bb_to_IR.h#1 add .. //depot/projects/valgrind/VEX/priv/guest_generic_x87.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_generic_x87.h#1 add .. //depot/projects/valgrind/VEX/priv/guest_ppc_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/guest_ppc_helpers.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_ppc_toIR.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_x86_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/guest_x86_helpers.c#1 add .. //depot/projects/valgrind/VEX/priv/guest_x86_toIR.c#1 add .. //depot/projects/valgrind/VEX/priv/host-amd64/hdefs.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-amd64/hdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/host-amd64/isel.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-arm/hdefs.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-arm/hdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/host-arm/isel.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_regs.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_regs.h#3 delete .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_simd64.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-generic/h_generic_simd64.h#3 delete .. //depot/projects/valgrind/VEX/priv/host-generic/reg_alloc2.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-ppc/hdefs.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-ppc/hdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/host-ppc/isel.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-x86/hdefs.c#3 delete .. //depot/projects/valgrind/VEX/priv/host-x86/hdefs.h#3 delete .. //depot/projects/valgrind/VEX/priv/host-x86/isel.c#3 delete .. //depot/projects/valgrind/VEX/priv/host_amd64_defs.c#1 add .. //depot/projects/valgrind/VEX/priv/host_amd64_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/host_amd64_isel.c#1 add .. //depot/projects/valgrind/VEX/priv/host_arm_defs.c#1 add .. //depot/projects/valgrind/VEX/priv/host_arm_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/host_arm_isel.c#1 add .. //depot/projects/valgrind/VEX/priv/host_generic_reg_alloc2.c#1 add .. //depot/projects/valgrind/VEX/priv/host_generic_regs.c#1 add .. //depot/projects/valgrind/VEX/priv/host_generic_regs.h#1 add .. //depot/projects/valgrind/VEX/priv/host_generic_simd64.c#1 add .. //depot/projects/valgrind/VEX/priv/host_generic_simd64.h#1 add .. //depot/projects/valgrind/VEX/priv/host_ppc_defs.c#1 add .. //depot/projects/valgrind/VEX/priv/host_ppc_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/host_ppc_isel.c#1 add .. //depot/projects/valgrind/VEX/priv/host_x86_defs.c#1 add .. //depot/projects/valgrind/VEX/priv/host_x86_defs.h#1 add .. //depot/projects/valgrind/VEX/priv/host_x86_isel.c#1 add .. //depot/projects/valgrind/VEX/priv/ir/irdefs.c#3 delete .. //depot/projects/valgrind/VEX/priv/ir/irmatch.c#3 delete .. //depot/projects/valgrind/VEX/priv/ir/irmatch.h#3 delete .. //depot/projects/valgrind/VEX/priv/ir/iropt.c#3 delete .. //depot/projects/valgrind/VEX/priv/ir/iropt.h#3 delete .. //depot/projects/valgrind/VEX/priv/ir_defs.c#1 add .. //depot/projects/valgrind/VEX/priv/ir_match.c#1 add .. //depot/projects/valgrind/VEX/priv/ir_match.h#1 add .. //depot/projects/valgrind/VEX/priv/ir_opt.c#1 add .. //depot/projects/valgrind/VEX/priv/ir_opt.h#1 add .. //depot/projects/valgrind/VEX/priv/main/vex_globals.c#3 delete .. //depot/projects/valgrind/VEX/priv/main/vex_globals.h#3 delete .. //depot/projects/valgrind/VEX/priv/main/vex_main.c#3 delete .. //depot/projects/valgrind/VEX/priv/main/vex_util.c#3 delete .. //depot/projects/valgrind/VEX/priv/main/vex_util.h#3 delete .. //depot/projects/valgrind/VEX/priv/main_globals.c#1 add .. //depot/projects/valgrind/VEX/priv/main_globals.h#1 add .. //depot/projects/valgrind/VEX/priv/main_main.c#1 add .. //depot/projects/valgrind/VEX/priv/main_util.c#1 add .. //depot/projects/valgrind/VEX/priv/main_util.h#1 add .. //depot/projects/valgrind/VEX/pub/libvex.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_basictypes.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_emwarn.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_guest_amd64.h#4 edit .. //depot/projects/valgrind/VEX/pub/libvex_guest_arm.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_guest_ppc32.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_guest_ppc64.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_guest_x86.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_ir.h#3 edit .. //depot/projects/valgrind/VEX/pub/libvex_trc_values.h#3 edit .. //depot/projects/valgrind/VEX/quote.txt#2 edit .. //depot/projects/valgrind/VEX/switchback/Makefile#2 edit .. //depot/projects/valgrind/VEX/switchback/binary_switchback.pl#2 edit .. //depot/projects/valgrind/VEX/switchback/linker.c#2 edit .. //depot/projects/valgrind/VEX/switchback/linker.h#2 edit .. //depot/projects/valgrind/VEX/switchback/switchback.c#2 edit .. //depot/projects/valgrind/VEX/switchback/test_bzip2.c#2 edit .. //depot/projects/valgrind/VEX/switchback/test_emfloat.c#2 edit .. //depot/projects/valgrind/VEX/switchback/test_hello.c#2 edit .. //depot/projects/valgrind/VEX/switchback/test_ppc_jm1.c#2 edit .. //depot/projects/valgrind/VEX/switchback/test_simple.c#2 edit .. //depot/projects/valgrind/VEX/test/fldenv.c#2 edit .. //depot/projects/valgrind/VEX/test/fp1.c#2 edit .. //depot/projects/valgrind/VEX/test/fp1.s#2 edit .. //depot/projects/valgrind/VEX/test/fpconst.c#2 edit .. //depot/projects/valgrind/VEX/test/fpgames.s#2 edit .. //depot/projects/valgrind/VEX/test/fpspeed.c#2 edit .. //depot/projects/valgrind/VEX/test/fpucw.c#2 edit .. //depot/projects/valgrind/VEX/test/frstor.c#2 edit .. //depot/projects/valgrind/VEX/test/fsave.c#2 edit .. //depot/projects/valgrind/VEX/test/fstenv.c#2 edit .. //depot/projects/valgrind/VEX/test/fxsave.c#3 edit .. //depot/projects/valgrind/VEX/test/mmxtest.c#2 edit .. //depot/projects/valgrind/VEX/test/mxcsr.c#2 edit .. //depot/projects/valgrind/VEX/test/rounderr.c#2 edit .. //depot/projects/valgrind/VEX/test/test-amd64-muldiv.h#2 edit .. //depot/projects/valgrind/VEX/test/test-amd64-shift.h#2 edit .. //depot/projects/valgrind/VEX/test/test-amd64.c#3 edit .. //depot/projects/valgrind/VEX/test/test-amd64.h#2 edit .. //depot/projects/valgrind/VEX/test/test-i386-muldiv.h#2 edit .. //depot/projects/valgrind/VEX/test/test-i386-shift.h#2 edit .. //depot/projects/valgrind/VEX/test/test-i386.c#3 edit .. //depot/projects/valgrind/VEX/test/test-i386.h#3 edit .. //depot/projects/valgrind/VEX/test/x87fxam.c#2 edit .. //depot/projects/valgrind/VEX/test/x87tst.c#2 edit .. //depot/projects/valgrind/VEX/test_main.c#3 edit .. //depot/projects/valgrind/VEX/test_main.h#2 edit .. //depot/projects/valgrind/VEX/test_main.h.base#2 edit .. //depot/projects/valgrind/VEX/unused/arena.h#2 edit .. //depot/projects/valgrind/VEX/unused/dispatch.c#2 edit .. //depot/projects/valgrind/VEX/unused/linker.c#2 edit .. //depot/projects/valgrind/VEX/useful/fp_80_64.c#2 edit .. //depot/projects/valgrind/VEX/useful/fpround.c#2 edit .. //depot/projects/valgrind/VEX/useful/fspill.c#2 edit .. //depot/projects/valgrind/VEX/useful/gradual_underflow.c#2 edit .. //depot/projects/valgrind/VEX/useful/hd_fpu.c#2 edit .. //depot/projects/valgrind/VEX/useful/show_fp_state.c#2 edit .. //depot/projects/valgrind/VEX/useful/x87_to_vex_and_back.c#2 edit .. //depot/projects/valgrind/aix5libc.supp#2 edit .. //depot/projects/valgrind/autogen.sh#7 edit .. //depot/projects/valgrind/auxprogs/DotToScc.hs#2 edit .. //depot/projects/valgrind/auxprogs/Makefile.am#3 edit .. //depot/projects/valgrind/auxprogs/Merge3Way.hs#2 edit .. //depot/projects/valgrind/auxprogs/aix5_VKI_info.c#2 edit .. //depot/projects/valgrind/auxprogs/aix5_proc_self_sysent.c#2 edit .. //depot/projects/valgrind/auxprogs/change-copyright-year#3 edit .. //depot/projects/valgrind/auxprogs/dump_insn_ppc.sh#2 edit .. //depot/projects/valgrind/auxprogs/gen-mdg#2 edit .. //depot/projects/valgrind/auxprogs/gsl16-badfree.patch#2 edit .. //depot/projects/valgrind/auxprogs/gsl16-wavelet.patch#2 edit .. //depot/projects/valgrind/auxprogs/gsl16test#2 edit .. //depot/projects/valgrind/auxprogs/gsl19test#2 edit .. //depot/projects/valgrind/auxprogs/libmpiwrap.c#3 delete .. //depot/projects/valgrind/auxprogs/libmpiwrap_aix5.exp#2 delete .. //depot/projects/valgrind/auxprogs/mpiwrap_type_test.c#3 delete .. //depot/projects/valgrind/auxprogs/posixtestsuite-1.5.1-diff-results#2 edit .. //depot/projects/valgrind/auxprogs/posixtestsuite-1.5.1-diff.txt#2 edit .. //depot/projects/valgrind/auxprogs/ppc64shifts.c#2 edit .. //depot/projects/valgrind/auxprogs/ppcfround.c#2 edit .. //depot/projects/valgrind/auxprogs/primes.c#2 edit .. //depot/projects/valgrind/auxprogs/valgrind-listener.c#3 edit .. //depot/projects/valgrind/cachegrind/Makefile.am#5 edit .. //depot/projects/valgrind/cachegrind/cg-amd64.c#3 delete .. //depot/projects/valgrind/cachegrind/cg-ppc32.c#3 edit .. //depot/projects/valgrind/cachegrind/cg-ppc64.c#3 edit .. //depot/projects/valgrind/cachegrind/cg-x86-amd64.c#1 add .. //depot/projects/valgrind/cachegrind/cg-x86.c#3 delete .. //depot/projects/valgrind/cachegrind/cg_annotate.in#3 edit .. //depot/projects/valgrind/cachegrind/cg_arch.h#3 edit .. //depot/projects/valgrind/cachegrind/cg_branchpred.c#2 edit .. //depot/projects/valgrind/cachegrind/cg_main.c#3 edit .. //depot/projects/valgrind/cachegrind/cg_merge.c#2 edit .. //depot/projects/valgrind/cachegrind/cg_sim.c#3 edit .. //depot/projects/valgrind/cachegrind/docs/Makefile.am#2 delete .. //depot/projects/valgrind/cachegrind/docs/cg-manual.xml#4 edit .. //depot/projects/valgrind/cachegrind/docs/cg_annotate-manpage.xml#1 add .. //depot/projects/valgrind/cachegrind/tests/Makefile.am#5 edit .. //depot/projects/valgrind/cachegrind/tests/amd64/Makefile.am#2 delete .. //depot/projects/valgrind/cachegrind/tests/chdir.c#2 edit .. //depot/projects/valgrind/cachegrind/tests/chdir.stderr.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/chdir.vgtest#2 edit .. //depot/projects/valgrind/cachegrind/tests/clreq.c#2 edit .. //depot/projects/valgrind/cachegrind/tests/clreq.stderr.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/clreq.vgtest#2 edit .. //depot/projects/valgrind/cachegrind/tests/dlclose.c#2 edit .. //depot/projects/valgrind/cachegrind/tests/dlclose.stderr.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/dlclose.stdout.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/dlclose.vgtest#2 edit .. //depot/projects/valgrind/cachegrind/tests/filter_cachesim_discards#2 edit .. //depot/projects/valgrind/cachegrind/tests/filter_stderr#3 edit .. //depot/projects/valgrind/cachegrind/tests/myprint.c#2 edit .. //depot/projects/valgrind/cachegrind/tests/notpower2.stderr.exp#1 add .. //depot/projects/valgrind/cachegrind/tests/notpower2.vgtest#1 add .. //depot/projects/valgrind/cachegrind/tests/ppc32/Makefile.am#2 delete .. //depot/projects/valgrind/cachegrind/tests/ppc64/Makefile.am#2 delete .. //depot/projects/valgrind/cachegrind/tests/wrap5.stderr.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/wrap5.stdout.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/wrap5.vgtest#2 edit .. //depot/projects/valgrind/cachegrind/tests/x86/Makefile.am#2 edit .. //depot/projects/valgrind/cachegrind/tests/x86/filter_stderr#2 edit .. //depot/projects/valgrind/cachegrind/tests/x86/fpu-28-108.S#2 edit .. //depot/projects/valgrind/cachegrind/tests/x86/fpu-28-108.stderr.exp#2 edit .. //depot/projects/valgrind/cachegrind/tests/x86/fpu-28-108.vgtest#2 edit .. //depot/projects/valgrind/cachegrind/tests/x86/insn_sse2.stdout.exp#2 edit .. //depot/projects/valgrind/callgrind/Makefile.am#4 edit .. //depot/projects/valgrind/callgrind/bb.c#3 edit .. //depot/projects/valgrind/callgrind/bbcc.c#3 edit .. //depot/projects/valgrind/callgrind/callgrind.h#3 edit .. //depot/projects/valgrind/callgrind/callgrind_annotate.in#3 edit .. //depot/projects/valgrind/callgrind/callgrind_control.in#3 edit .. //depot/projects/valgrind/callgrind/callstack.c#3 edit .. //depot/projects/valgrind/callgrind/clo.c#3 edit .. //depot/projects/valgrind/callgrind/command.c#3 edit .. //depot/projects/valgrind/callgrind/context.c#3 edit .. //depot/projects/valgrind/callgrind/costs.c#3 edit .. //depot/projects/valgrind/callgrind/costs.h#2 edit .. //depot/projects/valgrind/callgrind/debug.c#3 edit .. //depot/projects/valgrind/callgrind/docs/Makefile.am#2 delete .. //depot/projects/valgrind/callgrind/docs/callgrind_annotate-manpage.xml#1 add .. //depot/projects/valgrind/callgrind/docs/callgrind_control-manpage.xml#1 add .. //depot/projects/valgrind/callgrind/docs/cl-entities.xml#2 delete .. //depot/projects/valgrind/callgrind/docs/cl-format.xml#3 edit .. //depot/projects/valgrind/callgrind/docs/cl-manual.xml#4 edit .. //depot/projects/valgrind/callgrind/docs/index.xml#2 delete .. //depot/projects/valgrind/callgrind/docs/man-annotate.xml#3 delete .. //depot/projects/valgrind/callgrind/docs/man-callgrind.xml#3 delete .. //depot/projects/valgrind/callgrind/docs/man-control.xml#2 delete .. //depot/projects/valgrind/callgrind/dump.c#4 edit .. //depot/projects/valgrind/callgrind/events.c#3 edit .. //depot/projects/valgrind/callgrind/events.h#2 edit .. //depot/projects/valgrind/callgrind/fn.c#3 edit .. //depot/projects/valgrind/callgrind/global.h#3 edit .. //depot/projects/valgrind/callgrind/jumps.c#3 edit .. //depot/projects/valgrind/callgrind/main.c#3 edit .. //depot/projects/valgrind/callgrind/sim.c#3 edit .. //depot/projects/valgrind/callgrind/tests/Makefile.am#4 edit .. //depot/projects/valgrind/callgrind/tests/clreq.c#3 edit .. //depot/projects/valgrind/callgrind/tests/clreq.stderr.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/clreq.vgtest#2 edit .. //depot/projects/valgrind/callgrind/tests/filter_stderr#2 edit .. //depot/projects/valgrind/callgrind/tests/notpower2-hwpref.stderr.exp#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2-hwpref.vgtest#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2-use.stderr.exp#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2-use.vgtest#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2-wb.stderr.exp#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2-wb.vgtest#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2.stderr.exp#1 add .. //depot/projects/valgrind/callgrind/tests/notpower2.vgtest#1 add .. //depot/projects/valgrind/callgrind/tests/simwork.c#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork1.stderr.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork1.stdout.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork1.vgtest#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork2.stderr.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork2.stdout.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork2.vgtest#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork3.stderr.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork3.stdout.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/simwork3.vgtest#2 edit .. //depot/projects/valgrind/callgrind/tests/threads.c#2 edit .. //depot/projects/valgrind/callgrind/tests/threads.stderr.exp#2 edit .. //depot/projects/valgrind/callgrind/tests/threads.vgtest#2 edit .. //depot/projects/valgrind/callgrind/threads.c#3 edit .. //depot/projects/valgrind/configure.in#11 edit .. //depot/projects/valgrind/coregrind/Makefile.am#10 edit .. //depot/projects/valgrind/coregrind/launcher-aix5-bootblock.h#2 edit .. //depot/projects/valgrind/coregrind/launcher-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/launcher-darwin.c#1 add .. //depot/projects/valgrind/coregrind/launcher-freebsd.c#6 edit .. //depot/projects/valgrind/coregrind/launcher-linux.c#4 edit .. //depot/projects/valgrind/coregrind/m_aspacehl.c#1 add .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#4 edit .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-freebsd.c#15 delete .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#5 edit .. //depot/projects/valgrind/coregrind/m_aspacemgr/priv_aspacemgr.h#2 edit .. //depot/projects/valgrind/coregrind/m_clientstate.c#3 edit .. //depot/projects/valgrind/coregrind/m_commandline.c#3 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-amd64-freebsd.c#5 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-amd64-linux.c#3 delete .. //depot/projects/valgrind/coregrind/m_coredump/coredump-elf.c#6 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-macho.c#1 add .. //depot/projects/valgrind/coregrind/m_coredump/coredump-ppc32-aix5.c#2 delete .. //depot/projects/valgrind/coregrind/m_coredump/coredump-ppc32-linux.c#3 delete .. //depot/projects/valgrind/coregrind/m_coredump/coredump-ppc64-aix5.c#2 delete .. //depot/projects/valgrind/coregrind/m_coredump/coredump-ppc64-linux.c#3 delete .. //depot/projects/valgrind/coregrind/m_coredump/coredump-x86-freebsd.c#6 edit .. //depot/projects/valgrind/coregrind/m_coredump/coredump-x86-linux.c#3 delete .. //depot/projects/valgrind/coregrind/m_coredump/coredump-xcoff.c#1 add .. //depot/projects/valgrind/coregrind/m_coredump/priv_elf.h#4 delete .. //depot/projects/valgrind/coregrind/m_cpuid.S#3 edit .. //depot/projects/valgrind/coregrind/m_debugger.c#4 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/README.txt#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/UNUSED_STABS.txt#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/d3basics.c#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/debuginfo.c#8 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/misc.c#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_d3basics.h#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_misc.h#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readdwarf.h#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readdwarf3.h#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readelf.h#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readmacho.h#1 add .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readpdb.h#1 add .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readstabs.h#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_readxcoff.h#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_storage.h#4 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/priv_tytypes.h#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/readdwarf.c#4 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/readdwarf3.c#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/readelf.c#7 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/readmacho.c#1 add .. //depot/projects/valgrind/coregrind/m_debuginfo/readpdb.c#1 add .. //depot/projects/valgrind/coregrind/m_debuginfo/readstabs.c#3 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/readxcoff.c#2 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/storage.c#5 edit .. //depot/projects/valgrind/coregrind/m_debuginfo/tytypes.c#3 edit .. //depot/projects/valgrind/coregrind/m_debuglog.c#4 edit .. //depot/projects/valgrind/coregrind/m_demangle/ansidecl.h#3 edit .. //depot/projects/valgrind/coregrind/m_demangle/cp-demangle.c#4 edit .. //depot/projects/valgrind/coregrind/m_demangle/cp-demangle.h#2 edit .. //depot/projects/valgrind/coregrind/m_demangle/cplus-dem.c#4 edit .. //depot/projects/valgrind/coregrind/m_demangle/demangle.c#4 edit .. //depot/projects/valgrind/coregrind/m_demangle/demangle.h#4 edit .. //depot/projects/valgrind/coregrind/m_demangle/dyn-string.c#4 edit .. //depot/projects/valgrind/coregrind/m_demangle/dyn-string.h#3 edit .. //depot/projects/valgrind/coregrind/m_demangle/safe-ctype.c#3 edit .. //depot/projects/valgrind/coregrind/m_demangle/safe-ctype.h#3 edit .. //depot/projects/valgrind/coregrind/m_demangle/vg_libciface.h#2 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-amd64-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-amd64-freebsd.S#4 add .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-amd64-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-ppc32-aix5.S#2 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-ppc32-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-ppc64-aix5.S#2 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-ppc64-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-x86-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-x86-freebsd.S#4 add .. //depot/projects/valgrind/coregrind/m_dispatch/dispatch-x86-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_errormgr.c#4 edit .. //depot/projects/valgrind/coregrind/m_execontext.c#4 edit .. //depot/projects/valgrind/coregrind/m_hashtable.c#3 edit .. //depot/projects/valgrind/coregrind/m_initimg/initimg-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_initimg/initimg-darwin.c#1 add .. //depot/projects/valgrind/coregrind/m_initimg/initimg-freebsd.c#7 edit .. //depot/projects/valgrind/coregrind/m_initimg/initimg-linux.c#2 edit .. //depot/projects/valgrind/coregrind/m_initimg/initimg-pathscan.c#1 add .. //depot/projects/valgrind/coregrind/m_initimg/priv_initimg_pathscan.h#1 add .. //depot/projects/valgrind/coregrind/m_initimg/simple_huffman.c#2 edit .. //depot/projects/valgrind/coregrind/m_libcassert.c#4 edit .. //depot/projects/valgrind/coregrind/m_libcbase.c#6 edit .. //depot/projects/valgrind/coregrind/m_libcfile.c#8 edit .. //depot/projects/valgrind/coregrind/m_libcprint.c#3 edit .. //depot/projects/valgrind/coregrind/m_libcproc.c#8 edit .. //depot/projects/valgrind/coregrind/m_libcsignal.c#11 edit .. //depot/projects/valgrind/coregrind/m_mach/mach_basics.c#1 add .. //depot/projects/valgrind/coregrind/m_mach/mach_msg.c#1 add .. //depot/projects/valgrind/coregrind/m_mach/mach_traps-amd64-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_mach/mach_traps-x86-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_machine.c#6 edit .. //depot/projects/valgrind/coregrind/m_main.c#13 edit .. //depot/projects/valgrind/coregrind/m_mallocfree.c#3 edit .. //depot/projects/valgrind/coregrind/m_options.c#3 edit .. //depot/projects/valgrind/coregrind/m_oset.c#3 edit .. //depot/projects/valgrind/coregrind/m_redir.c#4 edit .. //depot/projects/valgrind/coregrind/m_replacemalloc/replacemalloc_core.c#3 edit .. //depot/projects/valgrind/coregrind/m_replacemalloc/vg_replace_malloc.c#4 edit .. //depot/projects/valgrind/coregrind/m_scheduler/priv_sema.h#3 edit .. //depot/projects/valgrind/coregrind/m_scheduler/scheduler.c#4 edit .. //depot/projects/valgrind/coregrind/m_scheduler/sema.c#3 edit .. //depot/projects/valgrind/coregrind/m_seqmatch.c#1 add .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-darwin.c#1 add .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-freebsd.c#5 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-amd64-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-ppc32-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-ppc32-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-ppc64-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-ppc64-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-x86-darwin.c#1 add .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-x86-freebsd.c#5 edit .. //depot/projects/valgrind/coregrind/m_sigframe/sigframe-x86-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_signals.c#11 edit .. //depot/projects/valgrind/coregrind/m_sparsewa.c#1 add .. //depot/projects/valgrind/coregrind/m_stacks.c#3 edit .. //depot/projects/valgrind/coregrind/m_stacktrace.c#5 edit .. //depot/projects/valgrind/coregrind/m_start-amd64-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_start-x86-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_syscall.c#10 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-aix5.h#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-darwin.h#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#17 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-generic.h#4 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-linux-variants.h#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-linux.h#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-main.h#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#9 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-freebsd.S#6 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-ppc32-aix5.S#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-ppc32-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-ppc64-aix5.S#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-ppc64-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-darwin.S#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-freebsd.S#8 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-x86-linux.S#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-darwin.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#10 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-linux.c#4 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-darwin.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd-variants.c#5 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#33 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#9 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-linux-variants.c#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#15 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-ppc32-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-ppc32-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-ppc64-aix5.c#2 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-ppc64-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-darwin.c#1 add .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-freebsd.c#16 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-x86-linux.c#3 edit .. //depot/projects/valgrind/coregrind/m_threadstate.c#3 edit .. //depot/projects/valgrind/coregrind/m_tooliface.c#3 edit .. //depot/projects/valgrind/coregrind/m_trampoline.S#7 edit .. //depot/projects/valgrind/coregrind/m_translate.c#3 edit .. //depot/projects/valgrind/coregrind/m_transtab.c#3 edit .. //depot/projects/valgrind/coregrind/m_ume.c#7 delete .. //depot/projects/valgrind/coregrind/m_ume/elf.c#1 add .. //depot/projects/valgrind/coregrind/m_ume/macho.c#1 add .. //depot/projects/valgrind/coregrind/m_ume/main.c#1 add .. //depot/projects/valgrind/coregrind/m_ume/priv_ume.h#1 add .. //depot/projects/valgrind/coregrind/m_ume/script.c#1 add .. //depot/projects/valgrind/coregrind/m_vki.c#2 edit .. //depot/projects/valgrind/coregrind/m_vkiscnums.c#2 edit .. //depot/projects/valgrind/coregrind/m_wordfm.c#2 edit .. //depot/projects/valgrind/coregrind/m_xarray.c#3 edit .. //depot/projects/valgrind/coregrind/no_op_client_for_valgrind.c#2 edit .. //depot/projects/valgrind/coregrind/pub_core_aspacehl.h#1 add .. //depot/projects/valgrind/coregrind/pub_core_aspacemgr.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_basics.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_basics_asm.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_clientstate.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_clreq.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_commandline.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_coredump.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_cpuid.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_debugger.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_debuginfo.h#5 edit .. //depot/projects/valgrind/coregrind/pub_core_debuglog.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_demangle.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_dispatch.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_dispatch_asm.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_errormgr.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_execontext.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_hashtable.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_initimg.h#4 edit .. //depot/projects/valgrind/coregrind/pub_core_libcassert.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_libcbase.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_libcfile.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_libcprint.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_libcproc.h#5 edit .. //depot/projects/valgrind/coregrind/pub_core_libcsignal.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_mach.h#1 add .. //depot/projects/valgrind/coregrind/pub_core_machine.h#4 edit .. //depot/projects/valgrind/coregrind/pub_core_mallocfree.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_options.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_oset.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_redir.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_replacemalloc.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_scheduler.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_seqmatch.h#1 add .. //depot/projects/valgrind/coregrind/pub_core_sigframe.h#4 edit .. //depot/projects/valgrind/coregrind/pub_core_signals.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_sparsewa.h#1 add .. //depot/projects/valgrind/coregrind/pub_core_stacks.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_stacktrace.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_syscall.h#5 edit .. //depot/projects/valgrind/coregrind/pub_core_syswrap.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_threadstate.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_tooliface.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_trampoline.h#4 edit .. //depot/projects/valgrind/coregrind/pub_core_translate.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_transtab.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_transtab_asm.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_ume.h#3 edit .. //depot/projects/valgrind/coregrind/pub_core_vki.h#2 edit .. //depot/projects/valgrind/coregrind/pub_core_vkiscnums.h#2 edit .. //depot/projects/valgrind/coregrind/pub_core_vkiscnums_asm.h#1 add .. //depot/projects/valgrind/coregrind/pub_core_wordfm.h#2 edit .. //depot/projects/valgrind/coregrind/pub_core_xarray.h#2 edit .. //depot/projects/valgrind/coregrind/vg_preloaded.c#4 edit .. //depot/projects/valgrind/darwin9-drd.supp#1 add .. //depot/projects/valgrind/darwin9.supp#1 add .. //depot/projects/valgrind/docs/Makefile.am#2 edit .. //depot/projects/valgrind/docs/README#3 edit .. //depot/projects/valgrind/docs/images/Makefile.am#2 delete .. //depot/projects/valgrind/docs/images/home.png#2 edit .. //depot/projects/valgrind/docs/images/massif-graph-sm.png#2 delete .. //depot/projects/valgrind/docs/images/massif-graph.png#2 delete .. //depot/projects/valgrind/docs/images/next.png#2 edit .. //depot/projects/valgrind/docs/images/prev.png#2 edit .. //depot/projects/valgrind/docs/images/up.png#2 edit .. //depot/projects/valgrind/docs/internals/3_0_BUGSTATUS.txt#2 edit .. //depot/projects/valgrind/docs/internals/3_1_BUGSTATUS.txt#3 edit .. //depot/projects/valgrind/docs/internals/3_2_BUGSTATUS.txt#2 edit .. //depot/projects/valgrind/docs/internals/3_3_BUGSTATUS.txt#3 edit .. //depot/projects/valgrind/docs/internals/3_4_BUGSTATUS.txt#1 add .. //depot/projects/valgrind/docs/internals/BIG_APP_NOTES.txt#2 edit .. //depot/projects/valgrind/docs/internals/Darwin-notes.txt#1 add .. //depot/projects/valgrind/docs/internals/Makefile.am#4 delete .. //depot/projects/valgrind/docs/internals/SPEC-notes.txt#2 edit .. //depot/projects/valgrind/docs/internals/darwin-notes.txt#2 delete .. //depot/projects/valgrind/docs/internals/darwin-syscalls.txt#2 delete .. //depot/projects/valgrind/docs/internals/directory-structure.txt#2 edit .. //depot/projects/valgrind/docs/internals/howto_BUILD_KDE42.txt#2 edit .. //depot/projects/valgrind/docs/internals/howto_oprofile.txt#2 edit .. //depot/projects/valgrind/docs/internals/m_replacemalloc.txt#2 edit .. //depot/projects/valgrind/docs/internals/m_syswrap.txt#2 edit .. //depot/projects/valgrind/docs/internals/module-structure.txt#2 edit .. //depot/projects/valgrind/docs/internals/mpi2entries.txt#2 edit .. //depot/projects/valgrind/docs/internals/multiple-architectures.txt#3 edit .. //depot/projects/valgrind/docs/internals/notes.txt#2 edit .. //depot/projects/valgrind/docs/internals/performance.txt#2 edit .. //depot/projects/valgrind/docs/internals/porting-HOWTO.txt#2 edit .. //depot/projects/valgrind/docs/internals/porting-to-ARM.txt#2 edit .. //depot/projects/valgrind/docs/internals/register-uses.txt#3 edit .. //depot/projects/valgrind/docs/internals/release-HOWTO.txt#3 edit .. //depot/projects/valgrind/docs/internals/roadmap.txt#3 delete .. //depot/projects/valgrind/docs/internals/segments-seginfos.txt#2 edit .. //depot/projects/valgrind/docs/internals/threads-syscalls-signals.txt#2 edit .. //depot/projects/valgrind/docs/internals/tm-mutexstates.dot#2 edit .. //depot/projects/valgrind/docs/internals/tm-threadstates.dot#2 edit .. //depot/projects/valgrind/docs/internals/tracking-fn-entry-exit.txt#2 edit .. //depot/projects/valgrind/docs/internals/why-no-libc.txt#1 add .. //depot/projects/valgrind/docs/internals/xml-output-protocol4.txt#1 add .. //depot/projects/valgrind/docs/internals/xml-output.txt#3 edit .. //depot/projects/valgrind/docs/lib/Makefile.am#2 delete .. //depot/projects/valgrind/docs/lib/line-wrap.xsl#2 edit .. //depot/projects/valgrind/docs/lib/vg-faq2txt.xsl#2 edit .. //depot/projects/valgrind/docs/lib/vg-fo.xsl#2 edit .. //depot/projects/valgrind/docs/lib/vg-html-chunk.xsl#2 edit .. //depot/projects/valgrind/docs/lib/vg-html-common.xsl#2 edit .. //depot/projects/valgrind/docs/lib/vg-html-website.xsl#2 edit .. //depot/projects/valgrind/docs/lib/vg_basic.css#2 edit .. //depot/projects/valgrind/docs/xml/FAQ.xml#3 edit .. //depot/projects/valgrind/docs/xml/Makefile.am#3 delete .. //depot/projects/valgrind/docs/xml/design-impl.xml#1 add .. //depot/projects/valgrind/docs/xml/dist-docs.xml#2 edit .. //depot/projects/valgrind/docs/xml/index.xml#3 edit .. //depot/projects/valgrind/docs/xml/licenses.xml#2 edit .. //depot/projects/valgrind/docs/xml/manpages-index.xml#1 add .. //depot/projects/valgrind/docs/xml/manual-core-adv.xml#2 edit .. //depot/projects/valgrind/docs/xml/manual-core.xml#4 edit .. //depot/projects/valgrind/docs/xml/manual-intro.xml#3 edit .. //depot/projects/valgrind/docs/xml/manual-writing-tools.xml#3 edit .. //depot/projects/valgrind/docs/xml/manual.xml#4 edit .. //depot/projects/valgrind/docs/xml/new-tech-docs.xml#2 delete .. //depot/projects/valgrind/docs/xml/quick-start-guide.xml#3 edit .. //depot/projects/valgrind/docs/xml/tech-docs.xml#3 edit .. //depot/projects/valgrind/docs/xml/valgrind-manpage.xml#4 edit .. //depot/projects/valgrind/docs/xml/vg-entities.xml#3 edit .. //depot/projects/valgrind/docs/xml/xml_help.txt#2 edit .. //depot/projects/valgrind/drd/Makefile.am#2 edit .. //depot/projects/valgrind/drd/TODO.txt#2 edit .. //depot/projects/valgrind/drd/Testing.txt#2 edit .. //depot/projects/valgrind/drd/docs/Makefile.am#2 delete .. //depot/projects/valgrind/drd/docs/drd-manual.xml#2 edit .. //depot/projects/valgrind/drd/drd.h#2 edit .. //depot/projects/valgrind/drd/drd_barrier.c#2 edit .. //depot/projects/valgrind/drd/drd_barrier.h#2 edit .. //depot/projects/valgrind/drd/drd_basics.h#1 add .. //depot/projects/valgrind/drd/drd_bitmap.c#2 edit .. //depot/projects/valgrind/drd/drd_bitmap.h#2 edit .. //depot/projects/valgrind/drd/drd_bitmap2_node.c#1 add .. //depot/projects/valgrind/drd/drd_clientobj.c#2 edit .. //depot/projects/valgrind/drd/drd_clientobj.h#2 edit .. //depot/projects/valgrind/drd/drd_clientreq.c#2 edit .. //depot/projects/valgrind/drd/drd_clientreq.h#2 edit .. //depot/projects/valgrind/drd/drd_cond.c#2 edit .. //depot/projects/valgrind/drd/drd_cond.h#2 edit .. //depot/projects/valgrind/drd/drd_error.c#2 edit .. //depot/projects/valgrind/drd/drd_error.h#2 edit .. //depot/projects/valgrind/drd/drd_gomp_intercepts.c#2 delete .. //depot/projects/valgrind/drd/drd_load_store.c#1 add .. //depot/projects/valgrind/drd/drd_load_store.h#1 add .. //depot/projects/valgrind/drd/drd_main.c#2 edit .. //depot/projects/valgrind/drd/drd_malloc_wrappers.c#2 edit .. //depot/projects/valgrind/drd/drd_malloc_wrappers.h#2 edit .. //depot/projects/valgrind/drd/drd_mutex.c#2 edit .. //depot/projects/valgrind/drd/drd_mutex.h#2 edit .. //depot/projects/valgrind/drd/drd_pthread_intercepts.c#2 edit .. //depot/projects/valgrind/drd/drd_qtcore_intercepts.c#2 edit .. //depot/projects/valgrind/drd/drd_rwlock.c#2 edit .. //depot/projects/valgrind/drd/drd_rwlock.h#2 edit .. //depot/projects/valgrind/drd/drd_segment.c#2 edit .. //depot/projects/valgrind/drd/drd_segment.h#2 edit .. //depot/projects/valgrind/drd/drd_semaphore.c#2 edit .. //depot/projects/valgrind/drd/drd_semaphore.h#2 edit .. //depot/projects/valgrind/drd/drd_strmem_intercepts.c#3 edit .. //depot/projects/valgrind/drd/drd_suppression.c#2 edit .. //depot/projects/valgrind/drd/drd_suppression.h#2 edit .. //depot/projects/valgrind/drd/drd_thread.c#2 edit .. //depot/projects/valgrind/drd/drd_thread.h#2 edit .. //depot/projects/valgrind/drd/drd_thread_bitmap.h#2 edit .. //depot/projects/valgrind/drd/drd_track.h#2 delete .. //depot/projects/valgrind/drd/drd_vc.c#2 edit .. //depot/projects/valgrind/drd/drd_vc.h#2 edit .. //depot/projects/valgrind/drd/pub_drd_bitmap.h#2 edit .. //depot/projects/valgrind/drd/scripts/add-libjemalloc-support#2 delete .. //depot/projects/valgrind/drd/scripts/download-and-build-firefox#2 edit .. //depot/projects/valgrind/drd/scripts/download-and-build-gcc#2 edit .. //depot/projects/valgrind/drd/scripts/download-and-build-splash2.in#2 edit .. //depot/projects/valgrind/drd/scripts/measurement-functions#2 edit .. //depot/projects/valgrind/drd/scripts/run-matinv#2 edit .. //depot/projects/valgrind/drd/scripts/run-splash2#2 edit .. //depot/projects/valgrind/drd/scripts/run-splash2-water-input#2 edit .. //depot/projects/valgrind/drd/tests/Makefile.am#2 edit .. //depot/projects/valgrind/drd/tests/annotate_ignore_read.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_ignore_read.vgtest#1 add .. //depot/projects/valgrind/drd/tests/annotate_order_1.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_order_1.vgtest#1 add .. //depot/projects/valgrind/drd/tests/annotate_order_2.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_order_2.vgtest#1 add .. //depot/projects/valgrind/drd/tests/annotate_order_3.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_order_3.vgtest#1 add .. //depot/projects/valgrind/drd/tests/annotate_rwlock.c#1 add .. //depot/projects/valgrind/drd/tests/annotate_rwlock.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_rwlock.vgtest#1 add .. //depot/projects/valgrind/drd/tests/annotate_spinlock.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_spinlock.vgtest#1 add .. //depot/projects/valgrind/drd/tests/annotate_trace_memory.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/annotate_trace_memory.vgtest#1 add .. //depot/projects/valgrind/drd/tests/atomic_var.c#2 edit .. //depot/projects/valgrind/drd/tests/atomic_var.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/atomic_var.stderr.exp-with-atomic-builtins#2 delete .. //depot/projects/valgrind/drd/tests/atomic_var.stderr.exp-without-atomic-builtins#2 delete .. //depot/projects/valgrind/drd/tests/atomic_var.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/bar_bad.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/bar_bad.vgtest#1 add .. //depot/projects/valgrind/drd/tests/bar_trivial.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/bar_trivial.stdout.exp#1 add .. //depot/projects/valgrind/drd/tests/bar_trivial.vgtest#1 add .. //depot/projects/valgrind/drd/tests/boost_thread.cpp#1 add .. //depot/projects/valgrind/drd/tests/boost_thread.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/boost_thread.vgtest#1 add .. //depot/projects/valgrind/drd/tests/circular_buffer.c#1 add .. //depot/projects/valgrind/drd/tests/circular_buffer.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/circular_buffer.vgtest#1 add .. //depot/projects/valgrind/drd/tests/custom_alloc.c#1 add .. //depot/projects/valgrind/drd/tests/custom_alloc.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/custom_alloc.vgtest#1 add .. //depot/projects/valgrind/drd/tests/drd_bitmap_test.c#2 delete .. //depot/projects/valgrind/drd/tests/drd_bitmap_test.stderr.exp#2 delete .. //depot/projects/valgrind/drd/tests/drd_bitmap_test.stdout.exp#2 delete .. //depot/projects/valgrind/drd/tests/drd_bitmap_test.vgtest#2 delete .. //depot/projects/valgrind/drd/tests/filter_cmdline0#2 delete .. //depot/projects/valgrind/drd/tests/filter_error_summary#2 edit .. //depot/projects/valgrind/drd/tests/filter_fdleak#2 delete .. //depot/projects/valgrind/drd/tests/filter_linenos#2 delete .. //depot/projects/valgrind/drd/tests/filter_none_discards#2 delete .. //depot/projects/valgrind/drd/tests/filter_stderr#2 edit .. //depot/projects/valgrind/drd/tests/filter_stderr_and_thread_no#1 add .. //depot/projects/valgrind/drd/tests/fp_race.c#2 edit .. //depot/projects/valgrind/drd/tests/fp_race.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/fp_race.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/fp_race2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/fp_race2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hg01_all_ok.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hg01_all_ok.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hg02_deadlock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hg02_deadlock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hg03_inherit.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hg03_inherit.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hg04_race.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hg04_race.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hg05_race2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hg05_race2.stderr.exp-powerpc#2 edit .. //depot/projects/valgrind/drd/tests/hg05_race2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hg06_readshared.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hg06_readshared.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hold_lock.c#2 edit .. //depot/projects/valgrind/drd/tests/hold_lock_1.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hold_lock_1.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/hold_lock_2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/hold_lock_2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/linuxthreads_det.c#2 edit .. //depot/projects/valgrind/drd/tests/linuxthreads_det.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/linuxthreads_det.stderr.exp-linuxthreads#2 edit .. //depot/projects/valgrind/drd/tests/linuxthreads_det.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/linuxthreads_det.stdout.exp-linuxthreads#2 edit .. //depot/projects/valgrind/drd/tests/linuxthreads_det.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/matinv.c#2 edit .. //depot/projects/valgrind/drd/tests/matinv.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/matinv.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/matinv.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/memory_allocation.c#2 edit .. //depot/projects/valgrind/drd/tests/memory_allocation.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/memory_allocation.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/monitor_example.cpp#2 edit .. //depot/projects/valgrind/drd/tests/monitor_example.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/monitor_example.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/new_delete.cpp#2 edit .. //depot/projects/valgrind/drd/tests/new_delete.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/new_delete.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv.c#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv_racy.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv_racy.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/omp_matinv_racy.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/omp_prime.c#2 edit .. //depot/projects/valgrind/drd/tests/omp_prime_racy.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/omp_prime_racy.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/omp_printf.c#2 edit .. //depot/projects/valgrind/drd/tests/omp_printf.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/omp_printf.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier3.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier3.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier_race.c#1 add .. //depot/projects/valgrind/drd/tests/pth_barrier_race.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/pth_barrier_race.vgtest#1 add .. //depot/projects/valgrind/drd/tests/pth_barrier_reinit.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier_reinit.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_barrier_reinit.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_broadcast.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_broadcast.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_broadcast.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_cancel_locked.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_cancel_locked.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_cancel_locked.stderr.exp-darwin#1 add .. //depot/projects/valgrind/drd/tests/pth_cancel_locked.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_cleanup_handler.c#1 add .. //depot/projects/valgrind/drd/tests/pth_cleanup_handler.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/pth_cleanup_handler.vgtest#1 add .. //depot/projects/valgrind/drd/tests/pth_cond_race.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_cond_race.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_cond_race.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_cond_race2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_cond_race2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_cond_race3.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_cond_race3.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_create_chain.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_create_chain.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_create_chain.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_create_glibc_2_0.c#1 add .. //depot/projects/valgrind/drd/tests/pth_create_glibc_2_0.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/pth_create_glibc_2_0.vgtest#1 add .. //depot/projects/valgrind/drd/tests/pth_detached.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached2.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached_sem.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached_sem.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached_sem.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_detached_sem.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.stderr.exp#2 delete .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.stderr.exp1#1 add .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.stderr.exp2#1 add .. //depot/projects/valgrind/drd/tests/pth_inconsistent_cond_wait.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/pth_mutex_reinit.c#1 add .. //depot/projects/valgrind/drd/tests/pth_mutex_reinit.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/pth_mutex_reinit.vgtest#1 add .. //depot/projects/valgrind/drd/tests/pth_once.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/pth_once.vgtest#1 add .. //depot/projects/valgrind/drd/tests/pth_process_shared_mutex.c#1 add .. //depot/projects/valgrind/drd/tests/pth_process_shared_mutex.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/pth_process_shared_mutex.vgtest#1 add .. //depot/projects/valgrind/drd/tests/pth_spinlock.c#2 edit .. //depot/projects/valgrind/drd/tests/pth_spinlock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/pth_spinlock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/qt4_mutex.cpp#2 edit .. //depot/projects/valgrind/drd/tests/qt4_mutex.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/qt4_mutex.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/qt4_rwlock.cpp#2 edit .. //depot/projects/valgrind/drd/tests/qt4_rwlock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/qt4_rwlock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/qt4_semaphore.cpp#2 edit .. //depot/projects/valgrind/drd/tests/qt4_semaphore.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/qt4_semaphore.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/recursive_mutex.c#2 edit .. //depot/projects/valgrind/drd/tests/recursive_mutex.stderr.exp#2 delete .. //depot/projects/valgrind/drd/tests/recursive_mutex.stderr.exp-darwin#1 add .. //depot/projects/valgrind/drd/tests/recursive_mutex.stderr.exp-linux#1 add .. //depot/projects/valgrind/drd/tests/recursive_mutex.stdout.exp#2 delete .. //depot/projects/valgrind/drd/tests/recursive_mutex.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/run_openmp_test#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_race.c#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_race.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_race.stderr.exp2#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_race.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_test.c#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_test.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_test.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/rwlock_type_checking.c#1 add .. //depot/projects/valgrind/drd/tests/rwlock_type_checking.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/rwlock_type_checking.vgtest#1 add .. //depot/projects/valgrind/drd/tests/sem_as_mutex.c#2 edit .. //depot/projects/valgrind/drd/tests/sem_as_mutex.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/sem_as_mutex.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/sem_as_mutex2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/sem_as_mutex2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/sem_as_mutex3.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/sem_as_mutex3.vgtest#1 add .. //depot/projects/valgrind/drd/tests/sem_open.c#1 add .. //depot/projects/valgrind/drd/tests/sem_open.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/sem_open.vgtest#1 add .. //depot/projects/valgrind/drd/tests/sem_open2.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/sem_open2.vgtest#1 add .. //depot/projects/valgrind/drd/tests/sem_open3.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/sem_open3.vgtest#1 add .. //depot/projects/valgrind/drd/tests/sem_open_traced.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/sem_open_traced.vgtest#1 add .. //depot/projects/valgrind/drd/tests/sigalrm.c#2 edit .. //depot/projects/valgrind/drd/tests/sigalrm.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/sigalrm.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/supported_libpthread#2 edit .. //depot/projects/valgrind/drd/tests/supported_sem_init#1 add .. //depot/projects/valgrind/drd/tests/tc01_simple_race.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc01_simple_race.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc02_simple_tls.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc02_simple_tls.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc03_re_excl.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc03_re_excl.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc04_free_lock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc04_free_lock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc05_simple_race.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc05_simple_race.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc06_two_races.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc06_two_races.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc07_hbl1.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc07_hbl1.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc07_hbl1.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc08_hbl2.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc08_hbl2.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc08_hbl2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc09_bad_unlock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8#2 edit .. //depot/projects/valgrind/drd/tests/tc09_bad_unlock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc10_rec_lock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc10_rec_lock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc11_XCHG.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc11_XCHG.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc11_XCHG.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc12_rwl_trivial.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc12_rwl_trivial.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc13_laog1.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc13_laog1.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc15_laog_lockdel.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc15_laog_lockdel.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc16_byterace.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc16_byterace.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc17_sembar.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc17_sembar.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc18_semabuse.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc18_semabuse.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc19_shadowmem.stderr.exp#2 delete .. //depot/projects/valgrind/drd/tests/tc19_shadowmem.stderr.exp-32bit#1 add .. //depot/projects/valgrind/drd/tests/tc19_shadowmem.stderr.exp-64bit#1 add .. //depot/projects/valgrind/drd/tests/tc19_shadowmem.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.3#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8#2 edit .. //depot/projects/valgrind/drd/tests/tc20_verifywrap2.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc21_pthonce.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc21_pthonce.stdout.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc21_pthonce.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc22_exit_w_lock.stderr.exp-32bit#2 edit .. //depot/projects/valgrind/drd/tests/tc22_exit_w_lock.stderr.exp-64bit#2 edit .. //depot/projects/valgrind/drd/tests/tc22_exit_w_lock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp#2 delete .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp-darwin#1 add .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp-linux-ppc#1 add .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.stderr.exp-linux-x86#1 add .. //depot/projects/valgrind/drd/tests/tc23_bogus_condwait.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tc24_nonzero_sem.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/tc24_nonzero_sem.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/thread_name.c#1 add .. //depot/projects/valgrind/drd/tests/thread_name.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/thread_name.vgtest#1 add .. //depot/projects/valgrind/drd/tests/trylock.c#2 edit .. //depot/projects/valgrind/drd/tests/trylock.stderr.exp#2 edit .. //depot/projects/valgrind/drd/tests/trylock.vgtest#2 edit .. //depot/projects/valgrind/drd/tests/tsan_thread_wrappers_pthread.h#1 add .. //depot/projects/valgrind/drd/tests/tsan_unittest.cpp#1 add .. //depot/projects/valgrind/drd/tests/unit_bitmap.c#1 add .. //depot/projects/valgrind/drd/tests/unit_bitmap.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/unit_bitmap.vgtest#1 add .. //depot/projects/valgrind/drd/tests/unit_vc.c#1 add .. //depot/projects/valgrind/drd/tests/unit_vc.stderr.exp#1 add .. //depot/projects/valgrind/drd/tests/unit_vc.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/Makefile.am#1 add .. //depot/projects/valgrind/exp-bbv/bbv_main.c#1 add .. //depot/projects/valgrind/exp-bbv/docs/bbv-manual.xml#1 add .. //depot/projects/valgrind/exp-bbv/tests/Makefile.am#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/Makefile.am#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/clone_test.S#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/clone_test.post.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/clone_test.stderr.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/clone_test.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/complex_rep.S#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/complex_rep.stderr.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/complex_rep.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/filter_stderr#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/fldcw_check.S#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/fldcw_check.stderr.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/fldcw_check.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/ll.S#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/ll.post.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/ll.stderr.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/ll.stdout.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/ll.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/million.S#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/million.post.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/million.stderr.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/million.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/rep_prefix.S#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/rep_prefix.stderr.exp#1 add .. //depot/projects/valgrind/exp-bbv/tests/amd64-linux/rep_prefix.vgtest#1 add .. //depot/projects/valgrind/exp-bbv/tests/filter_bb#1 add .. //depot/projects/valgrind/exp-bbv/tests/filter_stderr#1 add .. //depot/projects/valgrind/exp-bbv/tests/logo.include#1 add .. //depot/projects/valgrind/exp-bbv/tests/logo.lzss_new#1 add .. //depot/projects/valgrind/exp-bbv/tests/ppc32-linux/Makefile.am#1 add >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 20 09:19:39 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 50ACE106568E; Thu, 20 Aug 2009 09:19:39 +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 14C9F106568C for ; Thu, 20 Aug 2009 09:19:39 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DE7AD8FC5B for ; Thu, 20 Aug 2009 09:19:38 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7K9Jc4V010020 for ; Thu, 20 Aug 2009 09:19:38 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7K9Jcgk010018 for perforce@freebsd.org; Thu, 20 Aug 2009 09:19:38 GMT (envelope-from stas@freebsd.org) Date: Thu, 20 Aug 2009 09:19:38 GMT Message-Id: <200908200919.n7K9Jcgk010018@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167522 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: Thu, 20 Aug 2009 09:19:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=167522 Change 167522 by stas@stas_yandex on 2009/08/20 09:18:43 - It looks like we don't need SVN hack anymore. Affected files ... .. //depot/projects/valgrind/autogen.sh#8 edit Differences ... ==== //depot/projects/valgrind/autogen.sh#8 (text+kox) ==== @@ -19,4 +19,4 @@ run autoconf # hack for not running from svn. -echo '"export"' > VEX/priv/main/vex_svnversion.h +#echo '"export"' > VEX/priv/main/vex_svnversion.h From owner-p4-projects@FreeBSD.ORG Thu Aug 20 09:40:43 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D39231065692; Thu, 20 Aug 2009 09:40:42 +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 929D0106568F for ; Thu, 20 Aug 2009 09:40:42 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7FAB68FC68 for ; Thu, 20 Aug 2009 09:40:42 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7K9eg1C011604 for ; Thu, 20 Aug 2009 09:40:42 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7K9eEkx011561 for perforce@freebsd.org; Thu, 20 Aug 2009 09:40:14 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 09:40:14 GMT Message-Id: <200908200940.n7K9eEkx011561@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167523 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: Thu, 20 Aug 2009 09:40:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=167523 Change 167523 by bz@bz_dumpster on 2009/08/20 09:40:08 IFC @167517 (HEAD of ~ 8.0-BETA3 time) Affected files ... .. //depot/projects/s390/MAINTAINERS#17 integrate .. //depot/projects/s390/Makefile.inc1#29 integrate .. //depot/projects/s390/ObsoleteFiles.inc#9 integrate .. //depot/projects/s390/UPDATING#22 integrate .. //depot/projects/s390/bin/chflags/chflags.c#5 integrate .. //depot/projects/s390/bin/chmod/chmod.c#6 integrate .. //depot/projects/s390/bin/cp/Makefile#3 integrate .. //depot/projects/s390/bin/cp/utils.c#10 integrate .. //depot/projects/s390/bin/df/df.1#8 integrate .. //depot/projects/s390/bin/df/df.c#11 integrate .. //depot/projects/s390/bin/hostname/hostname.c#5 integrate .. //depot/projects/s390/bin/ln/ln.1#7 integrate .. //depot/projects/s390/bin/ln/ln.c#7 integrate .. //depot/projects/s390/bin/pkill/pkill.1#2 integrate .. //depot/projects/s390/bin/pkill/pkill.c#2 integrate .. //depot/projects/s390/bin/ps/print.c#13 integrate .. //depot/projects/s390/bin/ps/ps.1#10 integrate .. //depot/projects/s390/bin/ps/ps.c#9 integrate .. //depot/projects/s390/bin/ps/ps.h#6 integrate .. //depot/projects/s390/bin/rm/rm.c#8 integrate .. //depot/projects/s390/bin/sh/alias.c#7 integrate .. //depot/projects/s390/bin/sh/eval.c#10 integrate .. //depot/projects/s390/bin/sh/eval.h#5 integrate .. //depot/projects/s390/bin/sh/exec.c#9 integrate .. //depot/projects/s390/bin/sh/expand.c#11 integrate .. //depot/projects/s390/bin/sh/histedit.c#7 integrate .. //depot/projects/s390/bin/sh/input.c#6 integrate .. //depot/projects/s390/bin/sh/input.h#3 integrate .. //depot/projects/s390/bin/sh/main.c#6 integrate .. //depot/projects/s390/bin/sh/memalloc.c#8 integrate .. //depot/projects/s390/bin/sh/memalloc.h#4 integrate .. //depot/projects/s390/bin/sh/miscbltin.c#8 integrate .. //depot/projects/s390/bin/sh/mkinit.c#3 integrate .. //depot/projects/s390/bin/sh/mksyntax.c#6 integrate .. //depot/projects/s390/bin/sh/output.c#6 integrate .. //depot/projects/s390/bin/sh/parser.c#7 integrate .. //depot/projects/s390/bin/sh/redir.c#5 integrate .. //depot/projects/s390/bin/sh/sh.1#12 integrate .. //depot/projects/s390/bin/sh/trap.c#6 integrate .. //depot/projects/s390/bin/sh/trap.h#4 integrate .. //depot/projects/s390/bin/sh/var.c#9 integrate .. //depot/projects/s390/bin/test/TEST.sh#3 integrate .. //depot/projects/s390/bin/test/test.c#4 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/cmd/lockstat/lockstat.1#1 branch .. //depot/projects/s390/cddl/contrib/opensolaris/cmd/lockstat/lockstat.c#1 branch .. //depot/projects/s390/cddl/contrib/opensolaris/cmd/lockstat/sym.c#1 branch .. //depot/projects/s390/cddl/contrib/opensolaris/head/thread.h#3 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#3 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#3 integrate .. //depot/projects/s390/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#3 integrate .. //depot/projects/s390/cddl/lib/Makefile.inc#2 integrate .. //depot/projects/s390/cddl/lib/libctf/Makefile#2 integrate .. //depot/projects/s390/cddl/lib/libdtrace/Makefile#2 integrate .. //depot/projects/s390/cddl/lib/libnvpair/Makefile#2 integrate .. //depot/projects/s390/cddl/lib/libzpool/Makefile#5 integrate .. //depot/projects/s390/cddl/usr.sbin/Makefile#2 integrate .. //depot/projects/s390/cddl/usr.sbin/lockstat/Makefile#1 branch .. //depot/projects/s390/contrib/amd/amd/get_args.c#5 integrate .. //depot/projects/s390/contrib/bind9/CHANGES#6 integrate .. //depot/projects/s390/contrib/bind9/COPYRIGHT#4 integrate .. //depot/projects/s390/contrib/bind9/FAQ#5 integrate .. //depot/projects/s390/contrib/bind9/FAQ.xml#4 integrate .. //depot/projects/s390/contrib/bind9/KNOWN-DEFECTS#1 branch .. //depot/projects/s390/contrib/bind9/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/NSEC3-NOTES#1 branch .. //depot/projects/s390/contrib/bind9/README#5 integrate .. //depot/projects/s390/contrib/bind9/README.idnkit#2 integrate .. //depot/projects/s390/contrib/bind9/README.pkcs11#1 branch .. //depot/projects/s390/contrib/bind9/acconfig.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/check/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/check/check-tool.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/check-tool.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkconf.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkconf.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkconf.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkconf.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkzone.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkzone.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkzone.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/check/named-checkzone.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.1#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dig.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/dighost.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.1#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/host.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/include/dig/dig.h#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/nslookup.1#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/nslookup.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/nslookup.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dig/nslookup.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-dsfromkey.8#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-dsfromkey.c#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-dsfromkey.docbook#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-dsfromkey.html#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.8#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.c#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.docbook#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keyfromlabel.html#1 branch .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.8#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-keygen.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.8#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssec-signzone.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssectool.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/dnssec/dnssectool.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/bind9.xsl#1 branch .. //depot/projects/s390/contrib/bind9/bin/named/bind9.xsl.h#1 branch .. //depot/projects/s390/contrib/bind9/bin/named/builtin.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/client.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/config.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/control.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/controlconf.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/convertxsl.pl#1 branch .. //depot/projects/s390/contrib/bind9/bin/named/include/named/builtin.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/client.h#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/config.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/control.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/globals.h#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/interfacemgr.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/listenlist.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/log.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/logconf.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/lwaddr.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/lwdclient.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/lwresd.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/lwsearch.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/main.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/notify.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/ns_smf_globals.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/query.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/server.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/sortlist.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/statschannel.h#1 branch .. //depot/projects/s390/contrib/bind9/bin/named/include/named/tkeyconf.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/tsigconf.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/types.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/update.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/xfrout.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/include/named/zoneconf.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/interfacemgr.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/listenlist.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/log.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/logconf.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwaddr.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdclient.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwderror.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdgabn.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdgnba.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdgrbn.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwdnoop.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.8#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwresd.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/lwsearch.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/main.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.8#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.conf.5#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.conf.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.conf.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/named.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/notify.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/query.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/server.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/sortlist.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/statschannel.c#1 branch .. //depot/projects/s390/contrib/bind9/bin/named/tkeyconf.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/tsigconf.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/unix/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/named/unix/include/named/os.h#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/unix/os.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/update.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/named/xfrout.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/named/zoneconf.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.1#2 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/nsupdate/nsupdate.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/include/rndc/os.h#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc-confgen.8#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc-confgen.c#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc-confgen.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc-confgen.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.8#5 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.c#5 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.conf#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.conf.5#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.conf.docbook#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.conf.html#4 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.docbook#5 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/rndc.html#5 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/unix/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/unix/os.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/util.c#3 integrate .. //depot/projects/s390/contrib/bind9/bin/rndc/util.h#3 integrate .. //depot/projects/s390/contrib/bind9/config.guess#2 integrate .. //depot/projects/s390/contrib/bind9/config.h.in#2 integrate .. //depot/projects/s390/contrib/bind9/configure.in#5 integrate .. //depot/projects/s390/contrib/bind9/doc/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM-book.xml#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch01.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch02.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch03.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch04.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch05.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch06.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch07.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch08.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch09.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.ch10.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.html#5 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Bv9ARM.pdf#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.dig.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.dnssec-dsfromkey.html#1 branch .. //depot/projects/s390/contrib/bind9/doc/arm/man.dnssec-keyfromlabel.html#1 branch .. //depot/projects/s390/contrib/bind9/doc/arm/man.dnssec-keygen.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.dnssec-signzone.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.host.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.named-checkconf.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.named-checkzone.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.named.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.nsupdate.html#1 branch .. //depot/projects/s390/contrib/bind9/doc/arm/man.rndc-confgen.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.rndc.conf.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/arm/man.rndc.html#3 integrate .. //depot/projects/s390/contrib/bind9/doc/draft/draft-baba-dnsext-acl-reqts-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-daigle-napstr-04.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-danisch-dns-rr-smtp-03.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-dnsext-opcode-discover-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-durand-dnsop-dynreverse-00.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-2929bis-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-axfr-clarify-05.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dhcid-rr-12.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dns-name-p-s-00.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-2535typecode-change-06.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-bis-updates-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-experiments-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-online-signing-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-opt-in-07.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-rsasha256-00.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-dnssec-trans-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-ds-sha256-05.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-ecc-key-07.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-interop3597-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-keyrr-key-signing-flag-12.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-mdns-43.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-nsec3-04.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-nsid-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2536bis-dsa-06.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2538bis-04.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-rfc2539bis-dhk-06.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-signed-nonexistence-requirements-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-tkey-renewal-mode-05.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-threshold-00.txt#3 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-trustupdate-timers-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-tsig-sha-06.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsext-wcard-clarify-10.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-bad-dns-res-05.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-dnssec-operational-practices-08.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-inaddr-required-07.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-configuration-06.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-dns-issues-11.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-ipv6-transport-guidelines-01.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-key-rollover-requirements-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-respsize-02.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-dnsop-serverid-06.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-enum-e164-gstn-np-05.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-ipv6-node-requirements-08.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ietf-secsh-dns-05.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-ihren-dnsext-threshold-validation-00.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-kato-dnsop-local-zones-00.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/draft-park-ipv6-extensions-dns-pnp-00.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/draft/update#2 delete .. //depot/projects/s390/contrib/bind9/doc/misc/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/format-options.pl#4 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/ipv6#3 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/migration#4 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/options#5 integrate .. //depot/projects/s390/contrib/bind9/doc/misc/sort-options.pl#2 integrate .. //depot/projects/s390/contrib/bind9/doc/rfc/index#5 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1032.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1033.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1034.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1035.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1101.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1122.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1123.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1183.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1348.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1535.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1536.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1537.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1591.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1611.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1612.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1706.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1712.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1750.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1876.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1886.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1982.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1995.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc1996.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2052.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2104.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2119.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2133.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2136.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2137.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2163.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2168.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2181.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2230.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2308.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2317.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2373.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2374.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2375.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2418.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2535.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2536.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2537.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2538.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2539.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2540.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2541.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2553.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2671.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2672.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2673.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2782.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2825.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2826.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2845.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2874.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2915.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2929.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2930.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc2931.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3007.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3008.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3071.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3090.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3110.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3123.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3152.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3197.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3225.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3226.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3258.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3363.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3364.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3425.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3445.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3467.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3490.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3491.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3492.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3493.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3513.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3596.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3597.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3645.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3655.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3658.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3757.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3833.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3845.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc3901.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4025.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4033.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4034.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4035.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4074.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4159.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4193.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4255.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4343.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4367.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4398.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4408.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4431.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4470.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4634.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4641.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4648.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc4701.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc5155.txt#2 delete .. //depot/projects/s390/contrib/bind9/doc/rfc/rfc952.txt#2 delete .. //depot/projects/s390/contrib/bind9/isc-config.sh.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/README#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/aclocal.m4#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/api#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/daemon.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/ftruncate.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/gettimeofday.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/mktemp.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/putenv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/readv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/setenv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/setitimer.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strcasecmp.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strdup.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strerror.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strpbrk.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strsep.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/strtoul.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/utimes.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/bsd/writev.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/config.h.in#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/configure.in#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/dst_api.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/dst_internal.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/hmac_link.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/md5.h#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/md5_dgst.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/md5_locl.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/dst/support.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/arpa/inet.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/arpa/nameser.h#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/arpa/nameser_compat.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/fd_setsize.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/hesiod.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/irp.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/irs.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/assertions.h#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/ctl.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/dst.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/eventlib.h#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/heap.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/irpmarshall.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/list.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/logging.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/memcluster.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/misc.h#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/platform.h.in#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/isc/tree.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/netdb.h#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/netgroup.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/res_update.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/resolv.h#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/include/resolv_mt.h#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_addr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_cidr_ntop.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_cidr_pton.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_data.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_lnaof.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_makeaddr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_net_ntop.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_net_pton.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_neta.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_netof.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_network.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_ntoa.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_ntop.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/inet_pton.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/inet/nsap_addr.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_gr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_ho.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_nw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_pr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_pw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/dns_sv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gai_strerror.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_gr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_ho.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_ng.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_nw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_pr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_pw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gen_sv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getaddrinfo.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getgrent.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getgrent_r.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gethostent.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/gethostent_r.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnameinfo.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnetent.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnetent_r.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnetgrent.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getnetgrent_r.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getprotoent.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getprotoent_r.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getpwent.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getpwent_r.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getservent.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/getservent_r.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/hesiod.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/hesiod_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_gr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_ho.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_ng.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_nw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_pr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_pw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irp_sv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irpmarshall.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irs_data.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irs_data.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/irs_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_gr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_ho.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_ng.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_nw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_pr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_pw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/lcl_sv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_gr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_ho.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_ng.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_nw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_pr.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_pw.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nis_sv.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/nul_ng.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/pathnames.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/irs/util.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/assertions.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/assertions.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/base64.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/bitncmp.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/bitncmp.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ctl_clnt.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ctl_p.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ctl_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ctl_srvr.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ev_connects.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ev_files.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ev_streams.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ev_timers.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/ev_waits.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/eventlib.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/eventlib.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/eventlib_p.h#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/heap.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/heap.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/hex.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/logging.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/logging.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/logging_p.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/memcluster.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/memcluster.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/movefile.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/tree.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/isc/tree.mdoc#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/make/includes.in#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/make/mkdep.in#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/make/rules.in#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/mkinstalldirs#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/Makefile.in#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_date.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_name.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_netint.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_parse.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_print.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_samedomain.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_sign.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_ttl.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/nameser/ns_verify.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/port/Makefile.in#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/port/freebsd/Makefile.in#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/port/freebsd/include/Makefile.in#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/port/freebsd/include/sys/bitypes.h#2 delete .. //depot/projects/s390/contrib/bind9/lib/bind/port_after.h.in#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/port_before.h.in#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/Makefile.in#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/herror.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/mtctxres.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_comp.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_data.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_debug.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_debug.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_findzonecut.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_init.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_mkquery.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_mkupdate.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_mkupdate.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_private.h#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_query.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_send.c#5 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_sendsigned.c#4 delete .. //depot/projects/s390/contrib/bind9/lib/bind/resolv/res_update.c#3 delete .. //depot/projects/s390/contrib/bind9/lib/bind9/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/api#5 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/check.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/getaddresses.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/include/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/include/bind9/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/include/bind9/check.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/include/bind9/getaddresses.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/include/bind9/version.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/bind9/version.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/acache.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/acl.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/adb.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/api#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/byaddr.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/cache.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/callbacks.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/compress.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/db.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dbiterator.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dbtable.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/diff.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dispatch.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dlz.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dnssec.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/ds.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_api.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_internal.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_lib.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_openssl.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_parse.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_parse.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/dst_result.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/forward.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/gen-unix.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/gen.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/gssapi_link.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/gssapictx.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/hmac_link.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/acache.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/acl.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/adb.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/bit.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/byaddr.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/cache.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/callbacks.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/cert.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/compress.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/db.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/dbiterator.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/dbtable.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/diff.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/dispatch.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/dlz.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/dnssec.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/ds.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/events.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/fixedname.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/forward.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/iptable.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/journal.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/keyflags.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/keytable.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/keyvalues.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/lib.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/log.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/lookup.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/master.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/masterdump.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/message.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/name.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/ncache.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/nsec.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/nsec3.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/opcode.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/order.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/peer.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/portlist.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rbt.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rcode.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdata.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdataclass.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdatalist.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdataset.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdatasetiter.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdataslab.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rdatatype.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/request.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/resolver.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/result.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/rootns.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/sdb.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/sdlz.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/secalg.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/secproto.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/soa.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/ssu.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/stats.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/tcpmsg.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/time.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/timer.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/tkey.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/tsig.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/ttl.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/types.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/validator.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/version.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/view.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/xfrin.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/zone.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/zonekey.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dns/zt.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dst/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dst/dst.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dst/gssapi.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dst/lib.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/include/dst/result.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/iptable.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/journal.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/key.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/keytable.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/lib.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/log.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/lookup.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/master.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/masterdump.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/message.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/name.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/ncache.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/nsec.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/nsec3.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/openssl_link.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/openssldh_link.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/openssldsa_link.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/opensslrsa_link.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/order.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/peer.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/portlist.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbt.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbtdb.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbtdb.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbtdb64.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rbtdb64.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rcode.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/any_255/tsig_250.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/any_255/tsig_250.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/ch_3/a_1.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/ch_3/a_1.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/afsdb_18.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/afsdb_18.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/cert_37.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/cert_37.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/cname_5.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/cname_5.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/dlv_32769.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/dlv_32769.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/dname_39.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/dname_39.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/dnskey_48.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/dnskey_48.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ds_43.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ds_43.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/gpos_27.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/gpos_27.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/hinfo_13.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/hinfo_13.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ipseckey_45.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/isdn_20.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/isdn_20.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/key_25.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/key_25.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/loc_29.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/loc_29.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mb_7.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mb_7.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/md_3.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/md_3.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mf_4.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mf_4.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mg_8.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mg_8.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/minfo_14.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/minfo_14.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mr_9.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mr_9.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mx_15.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/mx_15.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ns_2.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ns_2.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec3_50.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec3_50.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec3param_51.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec3param_51.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec_47.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nsec_47.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/null_10.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/null_10.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nxt_30.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/nxt_30.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/opt_41.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/opt_41.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/proforma.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/proforma.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ptr_12.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/ptr_12.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/rp_17.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/rp_17.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/rrsig_46.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/rrsig_46.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/rt_21.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/rt_21.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/sig_24.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/sig_24.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/soa_6.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/soa_6.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/spf_99.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/spf_99.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/sshfp_44.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/sshfp_44.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/tkey_249.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/tkey_249.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/txt_16.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/txt_16.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/unspec_103.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/unspec_103.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/x25_19.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/generic/x25_19.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/hs_4/a_1.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/hs_4/a_1.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/a6_38.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/a6_38.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/a_1.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/a_1.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/aaaa_28.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/aaaa_28.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/apl_42.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/apl_42.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/dhcid_49.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/dhcid_49.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/kx_36.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/kx_36.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/naptr_35.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/naptr_35.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/nsap-ptr_23.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/nsap_22.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/nsap_22.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/px_26.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/px_26.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/srv_33.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/srv_33.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/wks_11.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/in_1/wks_11.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/rdatastructpre.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdata/rdatastructsuf.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdatalist.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdatalist_p.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdataset.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdatasetiter.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rdataslab.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/request.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/resolver.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/result.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/rootns.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/sdb.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/sdlz.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/soa.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/spnego.asn1#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/spnego.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/spnego.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/spnego_asn1.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/spnego_asn1.pl#1 branch .. //depot/projects/s390/contrib/bind9/lib/dns/ssu.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/stats.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/tcpmsg.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/time.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/timer.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/tkey.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/tsig.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/ttl.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/validator.c#6 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/version.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/view.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/xfrin.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/zone.c#5 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/zonekey.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/dns/zt.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/alpha/Makefile.in#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/alpha/include/Makefile.in#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/alpha/include/isc/Makefile.in#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/alpha/include/isc/atomic.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/api#5 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/assertions.c#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/base32.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/base64.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/bitstring.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/buffer.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/bufferlist.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/commandline.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/entropy.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/error.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/event.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/fsaccess.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/hash.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/heap.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/hex.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/hmacmd5.c#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/hmacsha.c#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/httpd.c#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/ia64/Makefile.in#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/ia64/include/Makefile.in#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/ia64/include/isc/Makefile.in#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/ia64/include/isc/atomic.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/Makefile.in#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/Makefile.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/app.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/assertions.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/base32.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/base64.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/bitstring.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/boolean.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/buffer.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/bufferlist.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/commandline.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/entropy.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/error.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/event.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/eventclass.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/file.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/formatcheck.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/fsaccess.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/hash.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/heap.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/hex.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/hmacmd5.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/hmacsha.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/httpd.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/interfaceiter.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/ipv6.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/iterated_hash.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/lang.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/lex.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/lfsr.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/lib.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/list.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/log.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/magic.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/md5.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/mem.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/msgcat.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/msgs.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/mutexblock.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/netaddr.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/netscope.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/ondestroy.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/os.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/parseint.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/platform.h.in#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/portset.h#2 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/print.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/quota.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/radix.h#1 branch .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/random.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/ratelimiter.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/refcount.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/region.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/resource.h#4 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/result.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/resultclass.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/rwlock.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/serial.h#3 integrate .. //depot/projects/s390/contrib/bind9/lib/isc/include/isc/sha1.h#3 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 20 10:22:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 040741065696; Thu, 20 Aug 2009 10:22:29 +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 BC802106568B for ; Thu, 20 Aug 2009 10:22:28 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9305C8FC7D for ; Thu, 20 Aug 2009 10:22:28 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KAMSr9015603 for ; Thu, 20 Aug 2009 10:22:28 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KAMSFT015601 for perforce@freebsd.org; Thu, 20 Aug 2009 10:22:28 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 10:22:28 GMT Message-Id: <200908201022.n7KAMSFT015601@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167526 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: Thu, 20 Aug 2009 10:22:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=167526 Change 167526 by bz@bz_dumpster on 2009/08/20 10:21:27 Add new file, copied from sparc64. Affected files ... .. //depot/projects/s390/sys/s390/include/vm.h#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 20 10:24:31 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 22039106568F; Thu, 20 Aug 2009 10:24:31 +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 D941C106568C for ; Thu, 20 Aug 2009 10:24:30 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C6EA08FC52 for ; Thu, 20 Aug 2009 10:24:30 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KAOUoS015717 for ; Thu, 20 Aug 2009 10:24:30 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KAOUEL015713 for perforce@freebsd.org; Thu, 20 Aug 2009 10:24:30 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 10:24:30 GMT Message-Id: <200908201024.n7KAOUEL015713@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167527 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: Thu, 20 Aug 2009 10:24:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=167527 Change 167527 by bz@bz_dumpster on 2009/08/20 10:24:04 IFC, re-integ -d Affected files ... .. //depot/projects/s390/contrib/file/magic2mime#5 branch .. //depot/projects/s390/crypto/openssl/test/testfipsssl#3 branch .. //depot/projects/s390/share/man/man4/bridge.4#5 branch .. //depot/projects/s390/sys/cddl/compat/opensolaris/rpc/xdr.h#2 integrate .. //depot/projects/s390/sys/cddl/compat/opensolaris/sys/acl.h#3 branch .. //depot/projects/s390/sys/dev/usb/usbdi.h#7 branch .. //depot/projects/s390/sys/dev/usb/usbdi_util.h#7 branch .. //depot/projects/s390/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#10 integrate .. //depot/projects/s390/sys/netgraph/bluetooth/drivers/ubt/ng_ubt_var.h#5 integrate .. //depot/projects/s390/sys/netgraph/bluetooth/drivers/ubtbcmfw/ubtbcmfw.c#5 integrate .. //depot/projects/s390/sys/sys/vimage.h#5 delete .. //depot/projects/s390/tools/build/options/WITH_BIND_LIBS#2 integrate .. //depot/projects/s390/usr.sbin/sysinstall/usb.c#3 branch Differences ... ==== //depot/projects/s390/sys/cddl/compat/opensolaris/rpc/xdr.h#2 (text+ko) ==== @@ -1,112 +1,70 @@ /* - * CDDL HEADER START + * Sun RPC is a product of Sun Microsystems, Inc. and is provided for + * unrestricted use provided that this legend is included on all tape + * media and as a part of the software program in whole or part. Users + * may copy or modify Sun RPC without charge, but are not authorized + * to license or distribute it to anyone else except as part of a product or + * program developed by the user. * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. + * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE + * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR + * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. + * Sun RPC is provided with no support and without any obligation on the + * part of Sun Microsystems, Inc. to assist in its use, correction, + * modification or enhancement. * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] + * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE + * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC + * OR ANY PART THEREOF. * - * CDDL HEADER END + * In no event will Sun Microsystems, Inc. be liable for any lost revenue + * or profits or other special, indirect and consequential damages, even if + * Sun has been advised of the possibility of such damages. * - * $FreeBSD: src/sys/cddl/compat/opensolaris/rpc/xdr.h,v 1.4 2008/04/22 07:42:59 jb Exp $ + * Sun Microsystems, Inc. + * 2550 Garcia Avenue + * Mountain View, California 94043 */ -/* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ -/* Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1989 AT&T */ -/* All Rights Reserved */ - -/* - * Portions of this source code were derived from Berkeley 4.3 BSD - * under license from the Regents of the University of California. - */ - #ifndef _OPENSOLARIS_RPC_XDR_H_ #define _OPENSOLARIS_RPC_XDR_H_ #include_next #ifndef _KERNEL -#include_next -/* - * Strangely, my glibc version (2.3.6) doesn't have xdr_control(), so - * we have to hack it in here (source taken from OpenSolaris). - * By the way, it is assumed the xdrmem implementation is used. - */ - -#undef xdr_control -#define xdr_control(a,b,c) xdrmem_control(a,b,c) +#include /* - * These are the request arguments to XDR_CONTROL. + * Taken from sys/xdr/xdr_mem.c. * - * XDR_PEEK - returns the contents of the next XDR unit on the XDR stream. - * XDR_SKIPBYTES - skips the next N bytes in the XDR stream. - * XDR_RDMAGET - for xdr implementation over RDMA, gets private flags from - * the XDR stream being moved over RDMA - * XDR_RDMANOCHUNK - for xdr implementaion over RDMA, sets private flags in - * the XDR stream moving over RDMA. + * FreeBSD's userland XDR doesn't implement control method (only the kernel), + * but OpenSolaris nvpair still depend on it, so we have to implement it here. */ -#define XDR_PEEK 2 -#define XDR_SKIPBYTES 3 -#define XDR_RDMAGET 4 -#define XDR_RDMASET 5 - -/* FIXME: probably doesn't work */ static __inline bool_t xdrmem_control(XDR *xdrs, int request, void *info) { xdr_bytesrec *xptr; - int32_t *int32p; - int len; switch (request) { - case XDR_GET_BYTES_AVAIL: xptr = (xdr_bytesrec *)info; xptr->xc_is_last_record = TRUE; xptr->xc_num_avail = xdrs->x_handy; return (TRUE); - - case XDR_PEEK: - /* - * Return the next 4 byte unit in the XDR stream. - */ - if (xdrs->x_handy < sizeof (int32_t)) - return (FALSE); - int32p = (int32_t *)info; - *int32p = (int32_t)ntohl((uint32_t) - (*((int32_t *)(xdrs->x_private)))); - return (TRUE); - - case XDR_SKIPBYTES: - /* - * Skip the next N bytes in the XDR stream. - */ - int32p = (int32_t *)info; - len = RNDUP((int)(*int32p)); - if ((xdrs->x_handy -= len) < 0) - return (FALSE); - xdrs->x_private += len; - return (TRUE); - + default: + assert(!"unexpected request"); } return (FALSE); } + +#undef XDR_CONTROL +#define XDR_CONTROL(xdrs, req, op) \ + (((xdrs)->x_ops->x_control == NULL) ? \ + xdrmem_control((xdrs), (req), (op)) : \ + (*(xdrs)->x_ops->x_control)(xdrs, req, op)) + #endif /* !_KERNEL */ #endif /* !_OPENSOLARIS_RPC_XDR_H_ */ ==== //depot/projects/s390/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c#10 (text+ko) ==== @@ -3,7 +3,7 @@ */ /*- - * Copyright (c) 2001-2002 Maksim Yevmenkin + * Copyright (c) 2001-2009 Maksim Yevmenkin * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,29 +27,102 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: ng_ubt.c,v 1.22 2005/10/31 17:57:44 max Exp $ - * $FreeBSD: src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c,v 1.36 2008/10/03 22:40:42 emax Exp $ + * $Id: ng_ubt.c,v 1.16 2003/10/10 19:15:06 max Exp $ + * $FreeBSD: src/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c,v 1.44 2009/06/23 06:00:31 thompsa Exp $ + */ + +/* + * NOTE: ng_ubt2 driver has a split personality. On one side it is + * a USB device driver and on the other it is a Netgraph node. This + * driver will *NOT* create traditional /dev/ enties, only Netgraph + * node. + * + * NOTE ON LOCKS USED: ng_ubt2 drives uses 2 locks (mutexes) + * + * 1) sc_if_mtx - lock for device's interface #0 and #1. This lock is used + * by USB for any USB request going over device's interface #0 and #1, + * i.e. interrupt, control, bulk and isoc. transfers. + * + * 2) sc_ng_mtx - this lock is used to protect shared (between USB, Netgraph + * and Taskqueue) data, such as outgoing mbuf queues, task flags and hook + * pointer. This lock *SHOULD NOT* be grabbed for a long time. In fact, + * think of it as a spin lock. + * + * NOTE ON LOCKING STRATEGY: ng_ubt2 driver operates in 3 different contexts. + * + * 1) USB context. This is where all the USB related stuff happens. All + * callbacks run in this context. All callbacks are called (by USB) with + * appropriate interface lock held. It is (generally) allowed to grab + * any additional locks. + * + * 2) Netgraph context. This is where all the Netgraph related stuff happens. + * Since we mark node as WRITER, the Netgraph node will be "locked" (from + * Netgraph point of view). Any variable that is only modified from the + * Netgraph context does not require any additonal locking. It is generally + * *NOT* allowed to grab *ANY* additional locks. Whatever you do, *DO NOT* + * grab any lock in the Netgraph context that could cause de-scheduling of + * the Netgraph thread for significant amount of time. In fact, the only + * lock that is allowed in the Netgraph context is the sc_ng_mtx lock. + * Also make sure that any code that is called from the Netgraph context + * follows the rule above. + * + * 3) Taskqueue context. This is where ubt_task runs. Since we are generally + * NOT allowed to grab any lock that could cause de-scheduling in the + * Netgraph context, and, USB requires us to grab interface lock before + * doing things with transfers, it is safer to transition from the Netgraph + * context to the Taskqueue context before we can call into USB subsystem. + * + * So, to put everything together, the rules are as follows. + * It is OK to call from the USB context or the Taskqueue context into + * the Netgraph context (i.e. call NG_SEND_xxx functions). In other words + * it is allowed to call into the Netgraph context with locks held. + * Is it *NOT* OK to call from the Netgraph context into the USB context, + * because USB requires us to grab interface locks, and, it is safer to + * avoid it. So, to make things safer we set task flags to indicate which + * actions we want to perform and schedule ubt_task which would run in the + * Taskqueue context. + * Is is OK to call from the Taskqueue context into the USB context, + * and, ubt_task does just that (i.e. grabs appropriate interface locks + * before calling into USB). + * Access to the outgoing queues, task flags and hook pointer is + * controlled by the sc_ng_mtx lock. It is an unavoidable evil. Again, + * sc_ng_mtx should really be a spin lock (and it is very likely to an + * equivalent of spin lock due to adaptive nature of FreeBSD mutexes). + * All USB callbacks accept softc pointer as a private data. USB ensures + * that this pointer is valid. */ +#include +#include #include +#include +#include #include +#include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include +#include +#include "usbdevs.h" #include #include #include -#include + +#define USB_DEBUG_VAR usb_debug +#include +#include + +#include +#include #include #include @@ -59,73 +132,17 @@ #include #include -#include "usbdevs.h" +static int ubt_modevent(module_t, int, void *); +static device_probe_t ubt_probe; +static device_attach_t ubt_attach; +static device_detach_t ubt_detach; -/* - * USB methods - */ +static void ubt_task_schedule(ubt_softc_p, int); +static task_fn_t ubt_task; -static device_probe_t ubt_match; -static device_attach_t ubt_attach; -static device_detach_t ubt_detach; +#define ubt_xfer_start(sc, i) usbd_transfer_start((sc)->sc_xfer[(i)]) -static device_method_t ubt_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, ubt_match), - DEVMETHOD(device_attach, ubt_attach), - DEVMETHOD(device_detach, ubt_detach), - - { 0, 0 } -}; - -static driver_t ubt_driver = { - "ubt", - ubt_methods, - sizeof(struct ubt_softc) -}; - -static devclass_t ubt_devclass; - -static int ubt_modevent (module_t, int, void *); - -static usbd_status ubt_request_start (ubt_softc_p); -static void ubt_request_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_request_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_intr_start (ubt_softc_p); -static void ubt_intr_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_intr_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_bulk_in_start (ubt_softc_p); -static void ubt_bulk_in_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_bulk_in_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_bulk_out_start (ubt_softc_p); -static void ubt_bulk_out_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_bulk_out_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_isoc_in_start_one (ubt_softc_p, int); -static usbd_status ubt_isoc_in_start (ubt_softc_p); -static void ubt_isoc_in_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_isoc_in_complete2 (node_p, hook_p, void *, int); - -static usbd_status ubt_isoc_out_start_one (ubt_softc_p, int); -static usbd_status ubt_isoc_out_start (ubt_softc_p); -static void ubt_isoc_out_complete (usbd_xfer_handle, - usbd_private_handle, usbd_status); -static void ubt_isoc_out_complete2 (node_p, hook_p, void *, int); - -static void ubt_reset (ubt_softc_p); - -/* - * Netgraph methods - */ - +/* Netgraph methods */ static ng_constructor_t ng_ubt_constructor; static ng_shutdown_t ng_ubt_shutdown; static ng_newhook_t ng_ubt_newhook; @@ -141,7 +158,8 @@ { "qlen", &ng_parse_int32_type, }, { NULL, } }; -static const struct ng_parse_type ng_ubt_node_qlen_type = { +static const struct ng_parse_type ng_ubt_node_qlen_type = +{ &ng_parse_struct_type, &ng_ubt_node_qlen_type_fields }; @@ -157,61 +175,64 @@ { "ierrors", &ng_parse_uint32_type, }, { NULL, } }; -static const struct ng_parse_type ng_ubt_node_stat_type = { +static const struct ng_parse_type ng_ubt_node_stat_type = +{ &ng_parse_struct_type, &ng_ubt_node_stat_type_fields }; /* Netgraph node command list */ -static const struct ng_cmdlist ng_ubt_cmdlist[] = { +static const struct ng_cmdlist ng_ubt_cmdlist[] = { - NGM_UBT_COOKIE, - NGM_UBT_NODE_SET_DEBUG, - "set_debug", - &ng_parse_uint16_type, - NULL -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_GET_DEBUG, - "get_debug", - NULL, - &ng_parse_uint16_type -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_SET_QLEN, - "set_qlen", - &ng_ubt_node_qlen_type, - NULL -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_GET_QLEN, - "get_qlen", - &ng_ubt_node_qlen_type, - &ng_ubt_node_qlen_type -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_GET_STAT, - "get_stat", - NULL, - &ng_ubt_node_stat_type -}, -{ - NGM_UBT_COOKIE, - NGM_UBT_NODE_RESET_STAT, - "reset_stat", - NULL, - NULL -}, -{ 0, } + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_SET_DEBUG, + "set_debug", + &ng_parse_uint16_type, + NULL + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_GET_DEBUG, + "get_debug", + NULL, + &ng_parse_uint16_type + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_SET_QLEN, + "set_qlen", + &ng_ubt_node_qlen_type, + NULL + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_GET_QLEN, + "get_qlen", + &ng_ubt_node_qlen_type, + &ng_ubt_node_qlen_type + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_GET_STAT, + "get_stat", + NULL, + &ng_ubt_node_stat_type + }, + { + NGM_UBT_COOKIE, + NGM_UBT_NODE_RESET_STAT, + "reset_stat", + NULL, + NULL + }, + { 0, } }; /* Netgraph node type */ -static struct ng_type typestruct = { - .version = NG_ABI_VERSION, +static struct ng_type typestruct = +{ + .version = NG_ABI_VERSION, .name = NG_UBT_NODE_TYPE, .constructor = ng_ubt_constructor, .rcvmsg = ng_ubt_rcvmsg, @@ -220,191 +241,250 @@ .connect = ng_ubt_connect, .rcvdata = ng_ubt_rcvdata, .disconnect = ng_ubt_disconnect, - .cmdlist = ng_ubt_cmdlist + .cmdlist = ng_ubt_cmdlist }; -/* - * Module - */ - -DRIVER_MODULE(ubt, uhub, ubt_driver, ubt_devclass, ubt_modevent, 0); -MODULE_VERSION(ng_ubt, NG_BLUETOOTH_VERSION); -MODULE_DEPEND(ng_ubt, netgraph, NG_ABI_VERSION, NG_ABI_VERSION, NG_ABI_VERSION); -MODULE_DEPEND(ubt, usb, 1, 1, 1); - - /**************************************************************************** **************************************************************************** ** USB specific **************************************************************************** ****************************************************************************/ +/* USB methods */ +static usb_callback_t ubt_ctrl_write_callback; +static usb_callback_t ubt_intr_read_callback; +static usb_callback_t ubt_bulk_read_callback; +static usb_callback_t ubt_bulk_write_callback; +static usb_callback_t ubt_isoc_read_callback; +static usb_callback_t ubt_isoc_write_callback; + +static int ubt_fwd_mbuf_up(ubt_softc_p, struct mbuf **); +static int ubt_isoc_read_one_frame(struct usb_xfer *, int); + /* - * Load/Unload the driver module + * USB config + * + * The following desribes usb transfers that could be submitted on USB device. + * + * Interface 0 on the USB device must present the following endpoints + * 1) Interrupt endpoint to receive HCI events + * 2) Bulk IN endpoint to receive ACL data + * 3) Bulk OUT endpoint to send ACL data + * + * Interface 1 on the USB device must present the following endpoints + * 1) Isochronous IN endpoint to receive SCO data + * 2) Isochronous OUT endpoint to send SCO data */ -static int -ubt_modevent(module_t mod, int event, void *data) +static const struct usb_config ubt_config[UBT_N_TRANSFER] = { - int error; + /* + * Interface #0 + */ + + /* Outgoing bulk transfer - ACL packets */ + [UBT_IF_0_BULK_DT_WR] = { + .type = UE_BULK, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_OUT, + .if_index = 0, + .bufsize = UBT_BULK_WRITE_BUFFER_SIZE, + .flags = { .pipe_bof = 1, .force_short_xfer = 1, }, + .callback = &ubt_bulk_write_callback, + }, + /* Incoming bulk transfer - ACL packets */ + [UBT_IF_0_BULK_DT_RD] = { + .type = UE_BULK, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 0, + .bufsize = UBT_BULK_READ_BUFFER_SIZE, + .flags = { .pipe_bof = 1, .short_xfer_ok = 1, }, + .callback = &ubt_bulk_read_callback, + }, + /* Incoming interrupt transfer - HCI events */ + [UBT_IF_0_INTR_DT_RD] = { + .type = UE_INTERRUPT, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 0, + .flags = { .pipe_bof = 1, .short_xfer_ok = 1, }, + .bufsize = UBT_INTR_BUFFER_SIZE, + .callback = &ubt_intr_read_callback, + }, + /* Outgoing control transfer - HCI commands */ + [UBT_IF_0_CTRL_DT_WR] = { + .type = UE_CONTROL, + .endpoint = 0x00, /* control pipe */ + .direction = UE_DIR_ANY, + .if_index = 0, + .bufsize = UBT_CTRL_BUFFER_SIZE, + .callback = &ubt_ctrl_write_callback, + .timeout = 5000, /* 5 seconds */ + }, + + /* + * Interface #1 + */ + + /* Incoming isochronous transfer #1 - SCO packets */ + [UBT_IF_1_ISOC_DT_RD1] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_read_callback, + }, + /* Incoming isochronous transfer #2 - SCO packets */ + [UBT_IF_1_ISOC_DT_RD2] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_IN, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_read_callback, + }, + /* Outgoing isochronous transfer #1 - SCO packets */ + [UBT_IF_1_ISOC_DT_WR1] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_OUT, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_write_callback, + }, + /* Outgoing isochronous transfer #2 - SCO packets */ + [UBT_IF_1_ISOC_DT_WR2] = { + .type = UE_ISOCHRONOUS, + .endpoint = UE_ADDR_ANY, + .direction = UE_DIR_OUT, + .if_index = 1, + .bufsize = 0, /* use "wMaxPacketSize * frames" */ + .frames = UBT_ISOC_NFRAMES, + .flags = { .short_xfer_ok = 1, }, + .callback = &ubt_isoc_write_callback, + }, +}; - switch (event) { - case MOD_LOAD: - error = ng_newtype(&typestruct); - if (error != 0) - printf( -"%s: Could not register Netgraph node type, error=%d\n", - NG_UBT_NODE_TYPE, error); - else - error = usbd_driver_load(mod, event, data); - break; +/* + * If for some reason device should not be attached then put + * VendorID/ProductID pair into the list below. The format is + * as follows: + * + * { USB_VPI(VENDOR_ID, PRODUCT_ID, 0) }, + * + * where VENDOR_ID and PRODUCT_ID are hex numbers. + */ - case MOD_UNLOAD: - error = ng_rmtype(&typestruct); - if (error == 0) - error = usbd_driver_load(mod, event, data); - break; +static const struct usb_device_id ubt_ignore_devs[] = +{ + /* AVM USB Bluetooth-Adapter BlueFritz! v1.0 */ + { USB_VPI(USB_VENDOR_AVM, 0x2200, 0) }, +}; - default: - error = EOPNOTSUPP; - break; - } +/* List of supported bluetooth devices */ +static const struct usb_device_id ubt_devs[] = +{ + /* Generic Bluetooth class devices */ + { USB_IFACE_CLASS(UDCLASS_WIRELESS), + USB_IFACE_SUBCLASS(UDSUBCLASS_RF), + USB_IFACE_PROTOCOL(UDPROTO_BLUETOOTH) }, - return (error); -} /* ubt_modevent */ + /* AVM USB Bluetooth-Adapter BlueFritz! v2.0 */ + { USB_VPI(USB_VENDOR_AVM, 0x3800, 0) }, +}; /* - * Probe for a USB Bluetooth device + * Probe for a USB Bluetooth device. + * USB context. */ static int -ubt_match(device_t self) +ubt_probe(device_t dev) { - /* - * If for some reason device should not be attached then put - * VendorID/ProductID pair into the list below. The format is - * as follows: - * - * { VENDOR_ID, PRODUCT_ID }, - * - * where VENDOR_ID and PRODUCT_ID are hex numbers. - */ + struct usb_attach_arg *uaa = device_get_ivars(dev); - static struct usb_devno const ubt_ignored_devices[] = { - { USB_VENDOR_AVM, 0x2200 }, /* AVM USB Bluetooth-Adapter BlueFritz! v1.0 */ - { 0, 0 } /* This should be the last item in the list */ - }; + if (uaa->usb_mode != USB_MODE_HOST) + return (ENXIO); - /* - * If device violates Bluetooth specification and has bDeviceClass, - * bDeviceSubClass and bDeviceProtocol set to wrong values then you - * could try to put VendorID/ProductID pair into the list below. - * Adding VendorID/ProductID pair into this list forces ng_ubt(4) - * to attach to the broken device. - */ + if (uaa->info.bIfaceIndex != 0) + return (ENXIO); - static struct usb_devno const ubt_broken_devices[] = { - { USB_VENDOR_AVM, 0x3800 }, /* AVM USB Bluetooth-Adapter BlueFritz! v2.0 */ - { 0, 0 } /* This should be the last item in the list */ - }; + if (uaa->use_generic == 0) + return (ENXIO); - struct usb_attach_arg *uaa = device_get_ivars(self); - usb_device_descriptor_t *dd = usbd_get_device_descriptor(uaa->device); + if (usbd_lookup_id_by_uaa(ubt_ignore_devs, + sizeof(ubt_ignore_devs), uaa) == 0) + return (ENXIO); - if (uaa->iface == NULL || - usb_lookup(ubt_ignored_devices, uaa->vendor, uaa->product)) - return (UMATCH_NONE); - - if (dd->bDeviceClass == UDCLASS_WIRELESS && - dd->bDeviceSubClass == UDSUBCLASS_RF && - dd->bDeviceProtocol == UDPROTO_BLUETOOTH) - return (UMATCH_DEVCLASS_DEVSUBCLASS); + return (usbd_lookup_id_by_uaa(ubt_devs, sizeof(ubt_devs), uaa)); +} /* ubt_probe */ - if (usb_lookup(ubt_broken_devices, uaa->vendor, uaa->product)) - return (UMATCH_VENDOR_PRODUCT); - - return (UMATCH_NONE); -} /* ubt_match */ - /* - * Attach the device + * Attach the device. + * USB context. */ static int -ubt_attach(device_t self) +ubt_attach(device_t dev) { - struct ubt_softc *sc = device_get_softc(self); - struct usb_attach_arg *uaa = device_get_ivars(self); - usb_config_descriptor_t *cd = NULL; - usb_interface_descriptor_t *id = NULL; - usb_endpoint_descriptor_t *ed = NULL; - usbd_status error; - int i, ai, alt_no, isoc_in, isoc_out, - isoc_isize, isoc_osize; + struct usb_attach_arg *uaa = device_get_ivars(dev); + struct ubt_softc *sc = device_get_softc(dev); + struct usb_endpoint_descriptor *ed; + struct usb_interface_descriptor *id; + uint16_t wMaxPacketSize; + uint8_t alt_index, i, j; + uint8_t iface_index[2] = { 0, 1 }; + + device_set_usb_desc(dev); - /* Get USB device info */ - sc->sc_dev = self; - sc->sc_udev = uaa->device; + sc->sc_dev = dev; + sc->sc_debug = NG_UBT_WARN_LEVEL; /* - * Initialize device softc structure + * Create Netgraph node */ - /* State */ - sc->sc_debug = NG_UBT_WARN_LEVEL; - sc->sc_flags = 0; - NG_UBT_STAT_RESET(sc->sc_stat); + if (ng_make_node_common(&typestruct, &sc->sc_node) != 0) { + UBT_ALERT(sc, "could not create Netgraph node\n"); + return (ENXIO); + } + + /* Name Netgraph node */ + if (ng_name_node(sc->sc_node, device_get_nameunit(dev)) != 0) { + UBT_ALERT(sc, "could not name Netgraph node\n"); + NG_NODE_UNREF(sc->sc_node); + return (ENXIO); + } + NG_NODE_SET_PRIVATE(sc->sc_node, sc); + NG_NODE_FORCE_WRITER(sc->sc_node); - /* Interfaces */ - sc->sc_iface0 = sc->sc_iface1 = NULL; + /* + * Initialize device softc structure + */ - /* Interrupt pipe */ - sc->sc_intr_ep = -1; - sc->sc_intr_pipe = NULL; - sc->sc_intr_xfer = NULL; - sc->sc_intr_buffer = NULL; + /* initialize locks */ + mtx_init(&sc->sc_ng_mtx, "ubt ng", NULL, MTX_DEF); + mtx_init(&sc->sc_if_mtx, "ubt if", NULL, MTX_DEF | MTX_RECURSE); - /* Control pipe */ - sc->sc_ctrl_xfer = NULL; - sc->sc_ctrl_buffer = NULL; + /* initialize packet queues */ NG_BT_MBUFQ_INIT(&sc->sc_cmdq, UBT_DEFAULT_QLEN); - - /* Bulk-in pipe */ - sc->sc_bulk_in_ep = -1; - sc->sc_bulk_in_pipe = NULL; - sc->sc_bulk_in_xfer = NULL; - sc->sc_bulk_in_buffer = NULL; - - /* Bulk-out pipe */ - sc->sc_bulk_out_ep = -1; - sc->sc_bulk_out_pipe = NULL; - sc->sc_bulk_out_xfer = NULL; - sc->sc_bulk_out_buffer = NULL; NG_BT_MBUFQ_INIT(&sc->sc_aclq, UBT_DEFAULT_QLEN); - - /* Isoc-in pipe */ - sc->sc_isoc_in_buffer = NULL; - sc->sc_isoc_in_ep = -1; - sc->sc_isoc_in_pipe = NULL; - bzero(&sc->sc_isoc_in, sizeof(sc->sc_isoc_in)); - - /* Isoc-out pipe */ - sc->sc_isoc_out_ep = -1; - sc->sc_isoc_out_pipe = NULL; - bzero(&sc->sc_isoc_out, sizeof(sc->sc_isoc_out)); - - sc->sc_isoc_size = -1; NG_BT_MBUFQ_INIT(&sc->sc_scoq, UBT_DEFAULT_QLEN); - /* Netgraph part */ - sc->sc_node = NULL; - sc->sc_hook = NULL; + /* initialize glue task */ + TASK_INIT(&sc->sc_task, 0, ubt_task, sc); /* - * XXX set configuration? - * - * Configure Bluetooth USB device. Discover all required USB interfaces - * and endpoints. + * Configure Bluetooth USB device. Discover all required USB + * interfaces and endpoints. * * USB device must present two interfaces: * 1) Interface 0 that has 3 endpoints @@ -416,1523 +496,835 @@ * 1) Isochronous IN endpoint to receive SCO data * 2) Isochronous OUT endpoint to send SCO data * - * Interface 1 (with isochronous endpoints) has several alternate + * Interface 1 (with isochronous endpoints) has several alternate * configurations with different packet size. */ /* - * Interface 0 + * For interface #1 search alternate settings, and find + * the descriptor with the largest wMaxPacketSize */ - error = usbd_device2interface_handle(sc->sc_udev, 0, &sc->sc_iface0); - if (error || sc->sc_iface0 == NULL) { - printf("%s: Could not get interface 0 handle. %s (%d), " \ - "handle=%p\n", device_get_nameunit(sc->sc_dev), - usbd_errstr(error), error, sc->sc_iface0); - goto bad; - } + wMaxPacketSize = 0; + alt_index = 0; + i = 0; + j = 0; + ed = NULL; - id = usbd_get_interface_descriptor(sc->sc_iface0); - if (id == NULL) { - printf("%s: Could not get interface 0 descriptor\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - for (i = 0; i < id->bNumEndpoints; i ++) { - ed = usbd_interface2endpoint_descriptor(sc->sc_iface0, i); - if (ed == NULL) { - printf("%s: Could not read endpoint descriptor for " \ - "interface 0, i=%d\n", device_get_nameunit(sc->sc_dev), - i); - goto bad; - } - - switch (UE_GET_XFERTYPE(ed->bmAttributes)) { - case UE_BULK: - if (UE_GET_DIR(ed->bEndpointAddress) == UE_DIR_IN) - sc->sc_bulk_in_ep = ed->bEndpointAddress; - else - sc->sc_bulk_out_ep = ed->bEndpointAddress; - break; - - case UE_INTERRUPT: - sc->sc_intr_ep = ed->bEndpointAddress; - break; - } - } - - /* Check if we got everything we wanted on Interface 0 */ - if (sc->sc_intr_ep == -1) { - printf("%s: Could not detect interrupt endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - if (sc->sc_bulk_in_ep == -1) { - printf("%s: Could not detect bulk-in endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - if (sc->sc_bulk_out_ep == -1) { - printf("%s: Could not detect bulk-out endpoint\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - printf("%s: Interface 0 endpoints: interrupt=%#x, bulk-in=%#x, " \ - "bulk-out=%#x\n", device_get_nameunit(sc->sc_dev), - sc->sc_intr_ep, sc->sc_bulk_in_ep, sc->sc_bulk_out_ep); - - /* - * Interface 1 + /* + * Search through all the descriptors looking for the largest + * packet size: */ + while ((ed = (struct usb_endpoint_descriptor *)usb_desc_foreach( + usbd_get_config_descriptor(uaa->device), + (struct usb_descriptor *)ed))) { - cd = usbd_get_config_descriptor(sc->sc_udev); - if (cd == NULL) { - printf("%s: Could not get device configuration descriptor\n", - device_get_nameunit(sc->sc_dev)); - goto bad; - } - - error = usbd_device2interface_handle(sc->sc_udev, 1, &sc->sc_iface1); - if (error || sc->sc_iface1 == NULL) { - printf("%s: Could not get interface 1 handle. %s (%d), " \ - "handle=%p\n", device_get_nameunit(sc->sc_dev), - usbd_errstr(error), error, sc->sc_iface1); - goto bad; - } - - id = usbd_get_interface_descriptor(sc->sc_iface1); - if (id == NULL) { - printf("%s: Could not get interface 1 descriptor\n", - device_get_nameunit(sc->sc_dev)); - goto bad; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 20 11:10:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 24F04106568F; Thu, 20 Aug 2009 11:10:21 +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 DD997106568D for ; Thu, 20 Aug 2009 11:10:20 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id CD6038FC57 for ; Thu, 20 Aug 2009 11:10:20 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KBAKY4020042 for ; Thu, 20 Aug 2009 11:10:20 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KBAKGo020040 for perforce@freebsd.org; Thu, 20 Aug 2009 11:10:20 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 11:10:20 GMT Message-Id: <200908201110.n7KBAKGo020040@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167528 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: Thu, 20 Aug 2009 11:10:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=167528 Change 167528 by bz@bz_dumpster on 2009/08/20 11:09:20 Adjust like SVN r194207 did for other archs. Found with help from: simon Affected files ... .. //depot/projects/s390/secure/lib/libcrypto/opensslconf-s390.h#4 edit .. //depot/projects/s390/secure/lib/libcrypto/opensslconf-s390x.h#4 edit Differences ... ==== //depot/projects/s390/secure/lib/libcrypto/opensslconf-s390.h#4 (text+ko) ==== @@ -9,6 +9,18 @@ #ifndef OPENSSL_NO_CAMELLIA # define OPENSSL_NO_CAMELLIA #endif +/* Disabled by default in OpenSSL 0.9.8. */ +#ifndef OPENSSL_NO_CMS +# define OPENSSL_NO_CMS +#endif +/* Disabled by default in OpenSSL 0.9.8. */ +#ifndef OPENSSL_NO_SEED +# define OPENSSL_NO_SEED +#endif +/* jpake is marked experimental in OpenSSL 0.9.8. */ +#ifndef OPENSSL_NO_JPAKE +# define OPENSSL_NO_JPAKE +#endif /* libgmp is not in the FreeBSD base system. */ #ifndef OPENSSL_NO_GMP # define OPENSSL_NO_GMP ==== //depot/projects/s390/secure/lib/libcrypto/opensslconf-s390x.h#4 (text+ko) ==== @@ -9,6 +9,18 @@ #ifndef OPENSSL_NO_CAMELLIA # define OPENSSL_NO_CAMELLIA #endif +/* Disabled by default in OpenSSL 0.9.8. */ +#ifndef OPENSSL_NO_CMS +# define OPENSSL_NO_CMS +#endif +/* Disabled by default in OpenSSL 0.9.8. */ +#ifndef OPENSSL_NO_SEED +# define OPENSSL_NO_SEED +#endif +/* jpake is marked experimental in OpenSSL 0.9.8. */ +#ifndef OPENSSL_NO_JPAKE +# define OPENSSL_NO_JPAKE +#endif /* libgmp is not in the FreeBSD base system. */ #ifndef OPENSSL_NO_GMP # define OPENSSL_NO_GMP From owner-p4-projects@FreeBSD.ORG Thu Aug 20 11:40:55 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4C95B1065691; Thu, 20 Aug 2009 11:40:55 +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 D025B106568D for ; Thu, 20 Aug 2009 11:40:54 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BDA8F8FC52 for ; Thu, 20 Aug 2009 11:40:54 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KBesL9022285 for ; Thu, 20 Aug 2009 11:40:54 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KBesjn022283 for perforce@freebsd.org; Thu, 20 Aug 2009 11:40:54 GMT (envelope-from mav@freebsd.org) Date: Thu, 20 Aug 2009 11:40:54 GMT Message-Id: <200908201140.n7KBesjn022283@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167530 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: Thu, 20 Aug 2009 11:40:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=167530 Change 167530 by mav@mav_mavbook on 2009/08/20 11:40:44 IFC Affected files ... .. //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#2 integrate .. //depot/projects/scottl-camlock/src/cddl/lib/libnvpair/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/contrib/top/display.c#3 integrate .. //depot/projects/scottl-camlock/src/etc/freebsd-update.conf#3 integrate .. //depot/projects/scottl-camlock/src/release/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 integrate .. //depot/projects/scottl-camlock/src/release/svnbranch.awk#1 branch .. //depot/projects/scottl-camlock/src/sbin/bsdlabel/bsdlabel.c#3 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/class/part/geom_part.c#3 integrate .. //depot/projects/scottl-camlock/src/sbin/umount/umount.8#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/mfi.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/mpt.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/polling.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man5/freebsd-update.conf.5#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man7/release.7#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/taskqueue.9#3 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/pmap.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/apicvar.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/pmc_mdep.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/at91/uart_dev_at91usart.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/boot/i386/gptboot/gptboot.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#33 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_ccb.h#27 integrate .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#97 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/taskq.h#3 delete .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#3 delete .. //depot/projects/scottl-camlock/src/sys/cddl/compat/opensolaris/sys/vnode.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#3 delete .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#4 delete .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/scottl-camlock/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options#30 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pf.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/pf/net/pfvar.h#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bge/if_bge.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/dev/e1000/if_em.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/e1000/if_igb.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_core.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_piv.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_ppro.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hwpmc/hwpmc_x86.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/iscsi/initiator/isc_cam.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mii/e1000phy.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ppbus/vpo.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_busdma.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_process.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_process.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/geom/part/g_part_gpt.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/local_apic.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/machdep.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/apicvar.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/pmc_mdep.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/i386/xen/mp_machdep.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/genassym.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/machdep.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/mp_machdep.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_lock.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_mutex.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_poll.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_rwlock.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_sx.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#28 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_taskqueue.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_pty.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/modules/zfs/Makefile#9 integrate .. //depot/projects/scottl-camlock/src/sys/net/flowtable.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/net/flowtable.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/net/if.c#34 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_var.h#24 integrate .. //depot/projects/scottl-camlock/src/sys/net/vnet.h#11 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_input.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_carp.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_output.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_indata.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_input.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_os_bsd.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_output.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_pcb.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_timer.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/sys/systm.h#21 integrate .. //depot/projects/scottl-camlock/src/sys/sys/taskqueue.h#7 integrate .. //depot/projects/scottl-camlock/src/usr.bin/calendar/calendars/calendar.freebsd#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/fstat/fstat.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/fstat/zfs.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/freebsd-update/freebsd-update.sh#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/iostat/iostat.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/mfiutil/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/mfiutil/README#2 delete .. //depot/projects/scottl-camlock/src/usr.sbin/mfiutil/mfiutil.1#2 delete .. //depot/projects/scottl-camlock/src/usr.sbin/mfiutil/mfiutil.8#1 branch .. //depot/projects/scottl-camlock/src/usr.sbin/mptutil/mptutil.8#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/pstat/pstat.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/media.c#4 integrate Differences ... ==== //depot/projects/scottl-camlock/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#2 (text+ko) ==== @@ -1126,7 +1126,7 @@ uint64_t originguid = 0; uint64_t stream_originguid = 0; uint64_t parent_fromsnap_guid, stream_parent_fromsnap_guid; - char *fsname, *stream_fsname; + char *fsname, *stream_fsname, *p1, *p2; nextfselem = nvlist_next_nvpair(local_nv, fselem); @@ -1295,10 +1295,11 @@ "parentfromsnap", &stream_parent_fromsnap_guid)); /* check for rename */ + p1 = strrchr(fsname, '/'); + p2 = strrchr(stream_fsname, '/'); if ((stream_parent_fromsnap_guid != 0 && stream_parent_fromsnap_guid != parent_fromsnap_guid) || - strcmp(strrchr(fsname, '/'), - strrchr(stream_fsname, '/')) != 0) { + (p1 != NULL && p2 != NULL && strcmp (p1, p2) != 0)) { nvlist_t *parent; char tryname[ZFS_MAXNAMELEN]; @@ -1317,7 +1318,7 @@ VERIFY(0 == nvlist_lookup_string(parent, "name", &pname)); (void) snprintf(tryname, sizeof (tryname), - "%s%s", pname, strrchr(stream_fsname, '/')); + "%s%s", pname, p2 != NULL ? p2 : ""); } else { tryname[0] = '\0'; if (flags.verbose) { ==== //depot/projects/scottl-camlock/src/cddl/lib/libnvpair/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.4 2008/03/27 23:21:23 jb Exp $ +# $FreeBSD: src/cddl/lib/libnvpair/Makefile,v 1.5 2009/08/17 08:03:02 pjd Exp $ .PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/lib/libnvpair .PATH: ${.CURDIR}/../../../sys/cddl/contrib/opensolaris/common/nvpair @@ -13,5 +13,6 @@ CFLAGS+= -I${.CURDIR}/../../../cddl/compat/opensolaris/include CFLAGS+= -I${.CURDIR}/../../../sys/cddl/compat/opensolaris CFLAGS+= -I${.CURDIR}/../../../sys/cddl/contrib/opensolaris/uts/common +CFLAGS+= -I${.CURDIR}/../../../sys .include ==== //depot/projects/scottl-camlock/src/contrib/top/display.c#3 (text+ko) ==== @@ -8,7 +8,7 @@ * Copyright (c) 1984, 1989, William LeFebvre, Rice University * Copyright (c) 1989, 1990, 1992, William LeFebvre, Northwestern University * - * $FreeBSD: src/contrib/top/display.c,v 1.10 2008/01/18 01:43:13 peter Exp $ + * $FreeBSD: src/contrib/top/display.c,v 1.11 2009/08/19 15:17:13 jhb Exp $ */ /* @@ -452,6 +452,7 @@ lastline++; /* now walk thru the names and print the line */ + Move_to(cpustates_column, y_cpustates + cpu); while ((thisname = *names++) != NULL) { if (*thisname != '\0') @@ -543,6 +544,7 @@ printf("\nCPU %d: ", cpu); lastline++; + Move_to(cpustates_column, y_cpustates + cpu); while ((thisname = *names++) != NULL) { if (*thisname != '\0') ==== //depot/projects/scottl-camlock/src/etc/freebsd-update.conf#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/freebsd-update.conf,v 1.6 2008/08/08 10:36:16 cperciva Exp $ +# $FreeBSD: src/etc/freebsd-update.conf,v 1.7 2009/08/19 20:47:31 simon Exp $ # Trusted keyprint. Changing this is a Bad Idea unless you've received # a PGP-signed email from telling you to @@ -63,3 +63,14 @@ # which *might* be installed of which FreeBSD Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no + +# When installing a new kernel perform a backup of the old one first +# so it is possible to boot the old kernel in case of problems. +# BackupKernel yes + +# If BackupKernel is enabled, the backup kernel is saved to this +# directory. +# BackupKernelDir /boot/kernel.old + +# When backing up a kernel also back up debug symbol files? +# BackupKernelSymbolFiles no ==== //depot/projects/scottl-camlock/src/release/Makefile#5 (text+ko) ==== @@ -1,7 +1,8 @@ -# $FreeBSD: src/release/Makefile,v 1.943 2009/06/28 08:59:46 blackend Exp $ +# $FreeBSD: src/release/Makefile,v 1.944 2009/08/14 20:35:42 jhb Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ -# [RELEASETAG=tag] +# [RELEASETAG=tag] [SVNROOT=svn://svn.freebsd.org/base] \ +# [SVNBRANCH=some/branch] # # Where "/some/dir" is the pathname of a directory on a some filesystem with # at least 1000MB of free space, "somename" is what you want the release to @@ -9,6 +10,11 @@ # which CVS "tag" name should be used when checking out the sources to build # the release (default is HEAD). # +# Please note the support for building from SVN is preliminary and there +# are still questions about things like how to handle updates of +# /usr/src on production systems (csup(1) replacement). It is a work +# in progress and may change as the other issues get worked out. +# # Please note: the md(4) driver must be present in the kernel # (either by being compiled in or available as a kld(4) module), # otherwise the target 'release.8' and possibly others will fail. @@ -49,12 +55,25 @@ # To add other options to the CVS command, set #CVSARGS="-lfq" # -# To prefix the cvs command +# To prefix the CVS command #CVSPREFIX="/usr/bin/time" # # Where the CVS repository is #CVSROOT="/home/ncvs" # +# To add other options to the Subversion subcommands (co,up), set +#SVNCMDARGS="-r '{ 01/01/2002 00:00:00 UTC }'" +# +# To prefix the Subversion command +#SVNPREFIX="/usr/bin/time" +# +# Where the Subversion repository is +#SVNROOT=svn://svn.freebsd.org/base +# +# Subversion branch to build for src. If this is not set then it is +# automatically computed from RELEASETAG. +#SVNBRANCH=stable/7 +# # Non-zero if ${RELEASETAG} is in the form "RELENG_ver_RELEASE"; we # are building an official release. Otherwise, we are building for # a branch. @@ -68,6 +87,16 @@ .endif .endif +# Determine the Subversion source branch that corresponds to the requested +# RELEASETAG. +.if !defined(SVNBRANCH) +.if defined(RELEASETAG) +SVNBRANCH!= echo "${RELEASETAG}" | awk -f ${.CURDIR}/svnbranch.awk +.else +SVNBRANCH= head +.endif +.endif + # If you want to pass flags to the world build such as -j X, use # WORLD_FLAGS. Similarly, you can specify make flags for kernel # builds via KERNEL_FLAGS. @@ -341,8 +370,17 @@ WORLDDIR?= ${.CURDIR}/.. release rerelease: -.if !defined(CHROOTDIR) || !defined(BUILDNAME) || !defined(CVSROOT) - @echo "To make a release you must set CHROOTDIR, BUILDNAME and CVSROOT" && false +.if !defined(CHROOTDIR) || !defined(BUILDNAME) + @echo "To make a release you must set CHROOTDIR and BUILDNAME" && false +.endif +.if !defined(NOPORTSATALL) && !defined(EXTPORTSDIR) && !defined(CVSROOT) + @echo "Building ports requires CVSROOT or EXTPORTSDIR" && false +.endif +.if !defined(NODOC) && !defined(EXTDOCDIR) && !defined(CVSROOT) + @echo "Building docs requires CVSROOT or EXTDOCDIR" && false +.endif +.if !defined(EXTSRCDIR) && !defined(CVSROOT) && !defined(SVNROOT) + @echo "The source tree requires SVNROOT, CVSROOT, or EXTSRCDIR" && false .endif .if defined(NOPORTSATALL) && !defined(NODOC) @echo "Ports are required for building the release docs. Either set NODOC or" @@ -387,6 +425,10 @@ .if defined(EXTSRCDIR) cd ${CHROOTDIR}/usr && \ cp -R -H ${EXTSRCDIR} src +.elif defined(SVNROOT) + cd ${CHROOTDIR}/usr && \ + ${SVNPREFIX} svn co ${SVNCMDARGS} ${SVNROOT}/${SVNBRANCH} \ + ${RELEASESRCMODULE} .else cd ${CHROOTDIR}/usr && \ ${CVSPREFIX} cvs -R ${CVSARGS} -d ${CVSROOT} \ @@ -432,7 +474,10 @@ .endif .if make(rerelease) .if !defined(RELEASENOUPDATE) && !defined(EXTSRCDIR) -.if !defined(RELEASETAG) +.if defined(SVNROOT) + cd ${CHROOTDIR}/usr/src && ${SVNPREFIX} svn switch ${SVNCMDARGS} \ + ${SVNROOT}/${SVNBRANCH} +.elif !defined(RELEASETAG) cd ${CHROOTDIR}/usr/src && ${CVSPREFIX} cvs -R ${CVSARGS} -q \ update ${CVSCMDARGS} -P -d -A .else ==== //depot/projects/scottl-camlock/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#6 (text+ko) ==== @@ -17,7 +17,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1101 2009/05/18 22:46:59 delphij Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1102 2009/08/19 03:52:15 edwin Exp $ 2000 @@ -411,6 +411,9 @@ &man.top.1; now supports a flag to provide per-CPU usage statistics. + &man.zdump.8; is now working properly on 64 bit architectures. + + &man.traceroute.8; now has the ability to print the AS number for each hop with the new switch; a new option allows selecting a particular @@ -468,8 +471,15 @@ 8.14.1 to 8.14.3. The timezone database has been updated from - the tzdata2008b release to - the tzdata2008h release. + the tzdata2008h release to + the tzdata2009j release. + + The stdtime part of libc, &man.zdump.8 and &man.zic.8 + have been updated from the tzcode2004a + release to the tzcode2009h release. + If you have upgraded from source or via the &man.freebsd-update.8, + then please run &man.tzsetup.8 to install a new /etc/localtime. + WPA Supplicant has been updated from 0.5.8 to 0.5.10. ==== //depot/projects/scottl-camlock/src/sbin/bsdlabel/bsdlabel.c#3 (text+ko) ==== @@ -53,7 +53,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/bsdlabel/bsdlabel.c,v 1.117 2008/09/30 11:46:14 lulf Exp $"); +__FBSDID("$FreeBSD: src/sbin/bsdlabel/bsdlabel.c,v 1.118 2009/08/19 16:29:20 marcel Exp $"); #include #include @@ -118,7 +118,7 @@ static int allfields; /* present all fields in edit */ static char const *xxboot; /* primary boot */ -static off_t mbroffset; +static uint32_t lba_offset; #ifndef LABELSECTOR #define LABELSECTOR -1 #endif @@ -403,7 +403,7 @@ readboot(); for (i = 0; i < lab.d_npartitions; i++) if (lab.d_partitions[i].p_size) - lab.d_partitions[i].p_offset += mbroffset; + lab.d_partitions[i].p_offset += lba_offset; bsd_disklabel_le_enc(bootarea + labeloffset + labelsoffset * secsize, lp); if (alphacksum) { @@ -479,10 +479,9 @@ static int readlabel(int flag) { + uint32_t lba; int f, i; int error; - struct gctl_req *grq; - char const *errstr; f = open(specname, O_RDONLY); if (f < 0) @@ -510,22 +509,28 @@ if (is_file) return(0); - grq = gctl_get_handle(); - gctl_ro_param(grq, "verb", -1, "read mbroffset"); - gctl_ro_param(grq, "class", -1, "BSD"); - gctl_ro_param(grq, "geom", -1, pname); - gctl_rw_param(grq, "mbroffset", sizeof(mbroffset), &mbroffset); - errstr = gctl_issue(grq); - if (errstr != NULL) { - mbroffset = 0; - gctl_free(grq); - return (error); + + /* + * Compensate for absolute block addressing by finding the + * smallest partition offset and if the offset of the 'c' + * partition is equal to that, subtract it from all offsets. + */ + lba = ~0; + for (i = 0; i < lab.d_npartitions; i++) { + if (lab.d_partitions[i].p_size) + lba = MIN(lba, lab.d_partitions[i].p_offset); } - mbroffset /= lab.d_secsize; - if (lab.d_partitions[RAW_PART].p_offset == mbroffset) - for (i = 0; i < lab.d_npartitions; i++) + if (lba != 0 && lab.d_partitions[RAW_PART].p_offset == lba) { + for (i = 0; i < lab.d_npartitions; i++) { if (lab.d_partitions[i].p_size) - lab.d_partitions[i].p_offset -= mbroffset; + lab.d_partitions[i].p_offset -= lba; + } + /* + * Save the offset so that we can write the label + * back with absolute block addresses. + */ + lba_offset = lba; + } return (error); } ==== //depot/projects/scottl-camlock/src/sbin/geom/class/part/geom_part.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sbin/geom/class/part/geom_part.c,v 1.20 2009/06/08 15:54:07 jhb Exp $"); +__FBSDID("$FreeBSD: src/sbin/geom/class/part/geom_part.c,v 1.21 2009/08/16 21:27:35 marcel Exp $"); #include @@ -274,8 +274,18 @@ error = geom_gettree(&mesh); if (error) return (error); - cp = find_class(&mesh, gctl_get_ascii(req, "class")); - gp = find_geom(cp, gctl_get_ascii(req, "geom")); + s = gctl_get_ascii(req, "class"); + if (s == NULL) + abort(); + cp = find_class(&mesh, s); + if (cp == NULL) + errx(EXIT_FAILURE, "Class %s not found.", s); + s = gctl_get_ascii(req, "geom"); + if (s == NULL) + abort(); + gp = find_geom(cp, s); + if (gp == NULL) + errx(EXIT_FAILURE, "No such geom: %s.", s); first = atoll(find_geomcfg(gp, "first")); last = atoll(find_geomcfg(gp, "last")); grade = ~0ULL; @@ -536,6 +546,8 @@ errx(EXIT_FAILURE, "Class %s not found.", s); } s = gctl_get_ascii(req, "geom"); + if (s == NULL) + abort(); gp = find_geom(classp, s); if (gp == NULL) errx(EXIT_FAILURE, "No such geom: %s.", s); ==== //depot/projects/scottl-camlock/src/sbin/umount/umount.8#2 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)umount.8 8.2 (Berkeley) 5/8/95 -.\" $FreeBSD: src/sbin/umount/umount.8,v 1.20 2004/04/09 19:58:40 markm Exp $ +.\" $FreeBSD: src/sbin/umount/umount.8,v 1.21 2009/08/17 07:38:47 pjd Exp $ .\" .Dd July 18, 2003 .Dt UMOUNT 8 @@ -57,7 +57,8 @@ or by the file system ID .Ar fsid as reported by -.Dq mount -v . +.Dq mount -v +when run by root. .Pp The options are as follows: .Bl -tag -width indent ==== //depot/projects/scottl-camlock/src/share/man/man4/mfi.4#3 (text) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mfi.4,v 1.7 2008/01/17 19:36:13 ambrisko Exp $ +.\" $FreeBSD: src/share/man/man4/mfi.4,v 1.8 2009/08/15 11:47:05 trasz Exp $ .\" -.Dd January 17, 2008 +.Dd August 15, 2009 .Dt MFI 4 .Os .Sh NAME @@ -102,6 +102,7 @@ An attempt was made to remove a mounted volume. .El .Sh SEE ALSO +.Xr mfiutil 1 , .Xr amr 4 , .Xr pci 4 .Sh HISTORY ==== //depot/projects/scottl-camlock/src/share/man/man4/mpt.4#4 (text+ko) ==== @@ -33,9 +33,9 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/mpt.4,v 1.16 2009/05/05 13:48:53 trasz Exp $ +.\" $FreeBSD: src/share/man/man4/mpt.4,v 1.17 2009/08/15 11:47:05 trasz Exp $ .\" -.Dd April 6, 2007 +.Dd August 15, 2009 .Dt MPT 4 .Os .Sh NAME @@ -155,6 +155,7 @@ .Xr sa 4 , .Xr scsi 4 , .Xr targ 4 , +.Xr mptutil 8 , .Xr gmultipath 8 .Rs .%T "LSI Logic Website" ==== //depot/projects/scottl-camlock/src/share/man/man4/polling.4#3 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/polling.4,v 1.27 2007/04/06 14:25:14 brueffer Exp $ +.\" $FreeBSD: src/share/man/man4/polling.4,v 1.28 2009/08/15 23:07:43 rwatson Exp $ .\" .Dd April 6, 2007 .Dt POLLING 4 @@ -87,6 +87,16 @@ It is turned on and off with help of .Xr ifconfig 8 command. +.Pp +The historic +.Va kern.polling.enable , +which enabled polling for all interfaces, can be replaced with the following +code: +.Bd -literal +for i in `ifconfig -l` ; + do ifconfig $i polling; # use -polling to disable +done +.Ed .Ss MIB Variables The operation of .Nm @@ -156,15 +166,6 @@ How many active devices have registered for .Nm . .Pp -.It Va kern.polling.enable -Legacy MIB, that was used to enable or disable polling globally. -Currently if set to 1, -.Nm -is enabled on all capable interfaces. -If set to 0, -.Nm -is disabled on all interfaces. -.Pp .It Va kern.polling.short_ticks .It Va kern.polling.lost_polls .It Va kern.polling.pending_polls ==== //depot/projects/scottl-camlock/src/share/man/man5/freebsd-update.conf.5#3 (text+ko) ==== @@ -23,9 +23,9 @@ .\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man5/freebsd-update.conf.5,v 1.4 2008/08/02 00:13:51 cperciva Exp $ +.\" $FreeBSD: src/share/man/man5/freebsd-update.conf.5,v 1.5 2009/08/19 20:47:31 simon Exp $ .\" -.Dd August 30, 2006 +.Dd August 19, 2009 .Dt FREEBSD-UPDATE.CONF 5 .Os FreeBSD .Sh NAME @@ -48,7 +48,7 @@ .Pp The possible options and their meanings are as follows: .Pp -.Bl -tag -width "KeepModifiedMetadata" +.Bl -tag -width ".Cm BackupKernelSymbolFiles" .It Cm KeyPrint The single parameter following this keyword is the SHA256 hash of the RSA key which will be trusted to sign updates. @@ -171,6 +171,54 @@ which might be installed, of which .Cm freebsd-update should identify which in fact are present ("no"). +.It Cm BackupKernel +The single parameter following this keyword must be +.Dq yes +or +.Dq no +and specifies whether +.Cm freebsd-update +will create a backup of the old kernel before installing a new kernel. +This backup kernel can be used to recover a system where the newly +installed kernel somehow did not work. +Note that the backup kernel is not reverted to its original state by +the +.Cm freebsd-update +rollback command. +.It Cm BackupKernelDir +This keyword sets the directory which is used to store a backup +kernel, if the BackupKernel feature is enabled. +If the directory already exist, and it was not created by +.Cm freebsd-update , +the directory is skipped. +In the case of the primary directory name not being usable, a number +starting with +.Sq 1 +is appended to the directory name. +Like with the primary directory name, the constructed directory name is +only used if the path name does not exist, or if the directory was +previously created by +.Cm freebsd-update . +If the constructed directory still exist the appended number is +incremented with 1 and the directory search process restarted. +Should the number increment go above 9, +.Cm freebsd-update +will abort. +.It Cm BackupKernelSymbolFiles +The single parameter following this keyword must be +.Dq yes +or +.Dq no +and specifies whether +.Cm freebsd-update +will also backup kernel symbol files, if they exist. +The kernel symbol files takes up a lot of disk space and are not +needed for recovery purposes. +If the symbol files are needed, after recovering a system using the +backup kernel, the +.Cm freebsd-update +rollback command will recreate the symbol files along with the old +kernel. .El .Sh FILES .Bl -tag -width "/etc/freebsd-update.conf" ==== //depot/projects/scottl-camlock/src/share/man/man7/release.7#2 (text+ko) ==== @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man7/release.7,v 1.58 2006/11/11 23:18:28 ru Exp $ +.\" $FreeBSD: src/share/man/man7/release.7,v 1.60 2009/08/18 12:24:27 trhodes Exp $ .\" -.Dd November 12, 2006 +.Dd August 17, 2009 .Dt RELEASE 7 .Os .Sh NAME @@ -332,6 +332,10 @@ A script that will be run in the .Xr chroot 8 environment immediately after any local patches are applied. +.It Va MAKE_DVD +If defined, build a bootable ISO DVD image in the CD-ROM +stage directory. +This option may not be available for all architectures. .It Va MAKE_ISOS If defined, bootable ISO CD-ROM images will be created from the contents of the CD-ROM stage directory. @@ -390,6 +394,35 @@ .It Va SEPARATE_LIVEFS Store the live file system on its own CD-ROM image rather than placing it on the first disc. +.It Va SVNCMDARGS +Additional arguments for svn +.Ic checkout +and +.Ic switch +commands. +.It Va SVNROOT +The location of the FreeBSD SVN source repository. +If this variable is set, +then the source tree will be extracted using Subversion rather than +CVS. +.It Va SVNBRANCH +The branch to check out from a SVN source repository. +It is specified as a path such as +.Pa head +or +.Pa stable/7 . +If this variable is not set, +then the branch that corresponds to the current value of +.Va RELEASETAG +will be used. +If neither +.Va SVNBRANCH +nor +.Va RELEASETAG +are set, +then the +.Pa head +branch will be used. .It Va TARGET_ARCH The target machine processor architecture. This is analogous to the @@ -474,6 +507,7 @@ .Xr install 1 , .Xr make 1 , .Xr patch 1 , +.Xr svn 1 Pq Pa ports/devel/subversion-freebsd , .Xr uname 1 , .Xr md 4 , .Xr make.conf 5 , @@ -511,7 +545,7 @@ into a shape where it could at least automate most of the tediousness of building a release in a sterile environment. .Pp -With its almost 1000 revisions spread over multiple branches, the +At near 1000 revisions spread over multiple branches, the .Xr cvs 1 log of .Pa src/release/Makefile ==== //depot/projects/scottl-camlock/src/share/man/man9/taskqueue.9#3 (text+ko) ==== @@ -26,9 +26,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/taskqueue.9,v 1.24 2008/06/13 19:45:12 gonzo Exp $ +.\" $FreeBSD: src/share/man/man9/taskqueue.9,v 1.27 2009/08/18 13:55:48 pjd Exp $ .\" -.Dd June 13, 2008 +.Dd August 18, 2009 .Dt TASKQUEUE 9 .Os .Sh NAME @@ -59,8 +59,6 @@ .Fn taskqueue_create_fast "const char *name" "int mflags" "taskqueue_enqueue_fn enqueue" "void *context" .Ft void .Fn taskqueue_free "struct taskqueue *queue" -.Ft struct taskqueue * -.Fn taskqueue_find "const char *name" .Ft int .Fn taskqueue_enqueue "struct taskqueue *queue" "struct task *task" .Ft int @@ -71,6 +69,8 @@ .Fn taskqueue_run_fast "struct taskqueue *queue" .Ft void .Fn taskqueue_drain "struct taskqueue *queue" "struct task *task" +.Ft int +.Fn taskqueue_member "struct taskqueue *queue" "struct thread *td" .Fn TASK_INIT "struct task *task" "int priority" "task_fn_t *func" "void *context" .Fn TASKQUEUE_DECLARE "name" .Fn TASKQUEUE_DEFINE "name" "taskqueue_enqueue_fn enqueue" "void *context" "init" @@ -113,16 +113,10 @@ .Pp The function .Fn taskqueue_free -should be used to remove the queue from the global list of queues -and free the memory used by the queue. +should be used to free the memory used by the queue. Any tasks that are on the queue will be executed at this time after which the thread servicing the queue will be signaled that it should exit. .Pp -The system maintains a list of all queues which can be searched using -.Fn taskqueue_find . -The first queue whose name matches is returned, otherwise -.Dv NULL . -.Pp To add a task to the list of tasks queued on a taskqueue, call .Fn taskqueue_enqueue with pointers to the queue and task. @@ -182,6 +176,18 @@ enqueued after call to .Fn taskqueue_drain . .Pp +The +.Fn taskqueue_member +function returns +.No 1 +if the given thread +.Fa td +is part of the given taskqeueue +.Fa queue +and +.No 0 +otherwise. +.Pp A convenience macro, .Fn TASK_INIT "task" "priority" "func" "context" is provided to initialise a ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#22 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.59 2009/08/13 17:09:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/local_apic.c,v 1.60 2009/08/14 21:05:08 jhb Exp $"); #include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" @@ -123,7 +123,7 @@ { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* LINT1: NMI */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_TIMER_INT }, /* Timer */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_ERROR_INT }, /* Error */ - { 1, 1, 0, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ + { 1, 1, 1, 1, APIC_LVT_DM_NMI, 0 }, /* PMC */ { 1, 1, 1, 1, APIC_LVT_DM_FIXED, APIC_THERMAL_INT }, /* Thermal */ }; @@ -305,11 +305,9 @@ lapic->lvt_lint0 = lvt_mode(la, LVT_LINT0, lapic->lvt_lint0); lapic->lvt_lint1 = lvt_mode(la, LVT_LINT1, lapic->lvt_lint1); -#ifdef HWPMC_HOOKS /* Program the PMC LVT entry if present. */ if (maxlvt >= LVT_PMC) lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); -#endif /* Program timer LVT and setup handler. */ lapic->lvt_timer = lvt_mode(la, LVT_TIMER, lapic->lvt_timer); @@ -332,6 +330,88 @@ intr_restore(eflags); } +void +lapic_reenable_pmc(void) +{ +#ifdef HWPMC_HOOKS + uint32_t value; + + value = lapic->lvt_pcint; + value &= ~APIC_LVT_M; + lapic->lvt_pcint = value; +#endif +} + +#ifdef HWPMC_HOOKS +static void +lapic_update_pmc(void *dummy) +{ + struct lapic *la; + + la = &lapics[lapic_id()]; + lapic->lvt_pcint = lvt_mode(la, LVT_PMC, lapic->lvt_pcint); +} +#endif + +int +lapic_enable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return (0); + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return (0); + + lvts[LVT_PMC].lvt_masked = 0; + +#ifdef SMP + /* + * If hwpmc was loaded at boot time then the APs may not be + * started yet. In that case, don't forward the request to + * them as they will program the lvt when they start. + */ + if (smp_started) + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); + else +#endif + lapic_update_pmc(NULL); + return (1); +#else + return (0); +#endif +} + +void +lapic_disable_pmc(void) +{ +#ifdef HWPMC_HOOKS + u_int32_t maxlvt; + + /* Fail if the local APIC is not present. */ + if (lapic == NULL) + return; + + /* Fail if the PMC LVT is not present. */ + maxlvt = (lapic->version & APIC_VER_MAXLVT) >> MAXLVTSHIFT; + if (maxlvt < LVT_PMC) + return; + + lvts[LVT_PMC].lvt_masked = 1; + +#ifdef SMP + /* The APs should always be started when hwpmc is unloaded. */ + KASSERT(mp_ncpus == 1 || smp_started, ("hwpmc unloaded too early")); +#endif + smp_rendezvous(NULL, lapic_update_pmc, NULL, NULL); +#endif +} + /* * Called by cpu_initclocks() on the BSP to setup the local APIC timer so * that it can drive hardclock, statclock, and profclock. This function ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#26 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.708 2009/08/19 20:39:33 ed Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -217,6 +217,7 @@ strncmp(sysenv, "MacBook3,1", 10) == 0 || strncmp(sysenv, "MacBookPro1,1", 13) == 0 || strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "MacBookPro3,1", 13) == 0 || strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/pmap.c#30 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.667 2009/07/24 13:50:29 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.668 2009/08/17 13:27:55 kib Exp $"); /* * Manages physical address maps. @@ -2261,6 +2261,8 @@ " in pmap %p", va, pmap); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Aug 20 12:19:37 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7191D1065691; Thu, 20 Aug 2009 12:19: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 1C73C106568C for ; Thu, 20 Aug 2009 12:19:37 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0B2348FC65 for ; Thu, 20 Aug 2009 12:19:37 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KCJa9O026019 for ; Thu, 20 Aug 2009 12:19:36 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KCJa2M026017 for perforce@freebsd.org; Thu, 20 Aug 2009 12:19:36 GMT (envelope-from stas@freebsd.org) Date: Thu, 20 Aug 2009 12:19:36 GMT Message-Id: <200908201219.n7KCJa2M026017@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167531 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: Thu, 20 Aug 2009 12:19:37 -0000 http://perforce.freebsd.org/chv.cgi?CH=167531 Change 167531 by stas@stas_yandex on 2009/08/20 12:19:11 - Fix syscalls on amd64. Affected files ... .. //depot/projects/valgrind/coregrind/m_libcfile.c#9 edit .. //depot/projects/valgrind/coregrind/m_syscall.c#11 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-freebsd.S#7 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#34 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#16 edit .. //depot/projects/valgrind/include/pub_tool_basics.h#5 edit .. //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#4 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_libcfile.c#9 (text+ko) ==== @@ -234,14 +234,13 @@ OffT VG_(lseek) ( Int fd, OffT offset, Int whence ) { -# if defined(VGO_linux) || defined(VGO_aix5) || defined(VGP_amd64_darwin) +# if defined(VGO_linux) || defined(VGO_aix5) || defined(VGP_amd64_darwin) || \ + defined(VGP_amd64_freebsd) SysRes res = VG_(do_syscall3)(__NR_lseek, fd, offset, whence); vg_assert(sizeof(OffT) == sizeof(Word)); -# elif defined(VGP_x86_darwin) +# elif defined(VGP_x86_darwin) || defined (VGP_x86_freebsd) SysRes res = VG_(do_syscall4)(__NR_lseek, fd, offset & 0xffffffff, offset >> 32, whence); -# elif defined(VGO_freebsd) - SysRes res = VG_(do_syscall4)(__NR_lseek, fd, 0, offset, whence); # else # error "Unknown plat" # endif ==== //depot/projects/valgrind/coregrind/m_syscall.c#11 (text+ko) ==== @@ -462,10 +462,6 @@ ); #elif defined(VGP_amd64_freebsd) -/* This is similar to amd64-linux, except that we have to deal with - 7 args potentially. (mmap takes 7) - */ -// AAA: fix 7th arg! extern UWord do_syscall_WRK ( UWord syscall_no, /* %rdi */ UWord a1, /* %rsi */ @@ -484,28 +480,32 @@ "do_syscall_WRK:\n" /* Convert function calling convention --> syscall calling convention */ +" pushq %rbp\n" +" movq %rsp, %rbp\n" " movq %rdi, %rax\n" /* syscall_no */ " movq %rsi, %rdi\n" /* a1 */ " movq %rdx, %rsi\n" /* a2 */ " movq %rcx, %rdx\n" /* a3 */ " movq %r8, %r10\n" /* a4 */ " movq %r9, %r8\n" /* a5 */ -" movq 8(%rsp), %r9\n" /* a6 last arg from stack */ -" movq 16(%rsp), %r11\n" /* a7 from stack */ -" movq 24(%rsp), %rcx\n" /* a8 from stack */ -" pushq %rcx\n" +" movq 16(%rbp), %r9\n" /* a6 last arg from stack, account for %rbp */ +" movq 24(%rbp), %r11\n" /* a7 from stack */ +" pushq %r11\n" +" movq 32(%rbp), %r11\n" /* a8 from stack */ " pushq %r11\n" " subq $8,%rsp\n" /* fake return addr */ " syscall\n" " jb 1f\n" -" addq $24,%rsp\n" -" movq 40(%rsp),%rsi\n" +" movq 48(%rbp),%rsi\n" " movq %rdx, (%rsi)\n" +" movq %rbp, %rsp\n" +" popq %rbp\n" " ret\n" "1:\n" -" addq $24,%rsp\n" -" movq 32(%rsp), %rsi\n" +" movq 40(%rbp), %rsi\n" " movl $1,(%rsi)\n" +" movq %rbp, %rsp\n" +" popq %rbp\n" " ret\n" ".previous\n" ); @@ -815,7 +815,7 @@ # elif defined(VGP_x86_freebsd) ULong val; - UInt err; + UInt err = 0; val = do_syscall_WRK(sysno, a1, a2, a3, a4, a5, a6, a7, a8, &err); return VG_(mk_SysRes_x86_freebsd)( (UInt)val, (UInt)(val>>32), err); @@ -823,10 +823,10 @@ # elif defined(VGP_amd64_freebsd) UWord val; UWord val2 = 0; - UInt err; + UInt err = 0; val = do_syscall_WRK(sysno, a1, a2, a3, a4, a5, a6, a7, a8, &err, &val2); - return VG_(mk_SysRes_amd64_freebsd)( val, val2, err); + return VG_(mk_SysRes_amd64_freebsd)( val, val2, err ? True : False); # elif defined(VGP_ppc32_linux) ULong ret = do_syscall_WRK(sysno,a1,a2,a3,a4,a5,a6); ==== //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-freebsd.S#7 (text+ko) ==== @@ -108,7 +108,7 @@ movq OFFSET_amd64_RDI(%r11), %rdi movq OFFSET_amd64_RSI(%r11), %rsi movq OFFSET_amd64_RDX(%r11), %rdx - movq OFFSET_amd64_RCX(%r11), %r10 /* rcx is passed in r10 instead */ + movq OFFSET_amd64_R10(%r11), %r10 movq OFFSET_amd64_R8(%r11), %r8 movq OFFSET_amd64_R9(%r11), %r9 /* 2 stack parameters plus return address (ignored by syscall) */ @@ -138,7 +138,7 @@ movq %rdx, OFFSET_amd64_RDX(%r11) /* save back to RDX */ /* save carry flag to VEX */ - xor %rax, %rax + xorq %rax, %rax movb 0(%rsp), %al movq %rax, %rdi /* arg1 = new flag */ movq %r11, %rsi /* arg2 = vex state */ ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#34 (text+ko) ==== @@ -3300,7 +3300,7 @@ BSDXY(__NR_getdirentries, sys_getdirentries), // 196 BSDX_(__NR_mmap, sys_mmap), // 197 // __syscall (handled specially) // 198 - BSDX_(__NR_lseek, sys_lseek), // 199 + BSDX_(__NR_lseek6, sys_lseek), // 199 BSDX_(__NR_truncate, sys_truncate), // 200 BSDX_(__NR_ftruncate, sys_ftruncate), // 201 @@ -3649,7 +3649,7 @@ BSDX_(__NR_pwrite7, sys_pwrite7), // 476 BSDX_(__NR_mmap7, sys_mmap7), // 477 - BSDX_(__NR_lseek7, sys_lseek7), // 478 + BSDX_(__NR_lseek, sys_lseek), // 478 BSDX_(__NR_truncate7, sys_truncate7), // 479 BSDX_(__NR_ftruncate7, sys_ftruncate7), // 480 ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#16 (text+ko) ==== @@ -77,7 +77,7 @@ DARWIN: x86 eax +4 +8 +12 +16 +20 +24 +28 +32 edx:eax, eflags.c - amd64 rax rdi rsi rdx rcx r8 r9 +8 +16 rdx:rax, rflags.c + amd64 rax rdi rsi rdx r10 r8 r9 +8 +16 rdx:rax, rflags.c For x86-darwin and x86-freebsd, "+N" denotes "in memory at N(%esp)"; ditto amd64-darwin/amd64-freebsd. Apparently 0(%esp) is some kind of return address @@ -529,7 +529,7 @@ canonical->arg1 = gst->guest_RDI; canonical->arg2 = gst->guest_RSI; canonical->arg3 = gst->guest_RDX; - canonical->arg4 = gst->guest_RCX; + canonical->arg4 = gst->guest_R10; canonical->arg5 = gst->guest_R8; canonical->arg6 = gst->guest_R9; canonical->arg7 = stack[1]; @@ -538,7 +538,7 @@ // stack[0] is return address canonical->arg1 = gst->guest_RSI; canonical->arg2 = gst->guest_RDX; - canonical->arg3 = gst->guest_RCX; + canonical->arg3 = gst->guest_R10; canonical->arg4 = gst->guest_R8; canonical->arg5 = gst->guest_R9; canonical->arg6 = stack[1]; @@ -778,7 +778,7 @@ gst->guest_RDI = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); gst->guest_RSI = canonical->arg1; gst->guest_RDX = canonical->arg2; - gst->guest_RCX = canonical->arg3; + gst->guest_R10 = canonical->arg3; gst->guest_R8 = canonical->arg4; gst->guest_R9 = canonical->arg5; stack[1] = canonical->arg6; @@ -790,7 +790,7 @@ gst->guest_RDI = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); gst->guest_RSI = canonical->arg1; gst->guest_RDX = canonical->arg2; - gst->guest_RCX = canonical->arg3; + gst->guest_R10 = canonical->arg3; gst->guest_R8 = canonical->arg4; gst->guest_R9 = canonical->arg5; stack[1] = canonical->arg6; @@ -802,7 +802,7 @@ gst->guest_RDI = canonical->arg1; gst->guest_RSI = canonical->arg2; gst->guest_RDX = canonical->arg3; - gst->guest_RCX = canonical->arg4; + gst->guest_R10 = canonical->arg4; gst->guest_R8 = canonical->arg5; gst->guest_R9 = canonical->arg6; stack[1] = canonical->arg7; @@ -1268,7 +1268,7 @@ layout->o_arg1 = OFFSET_amd64_RDI; layout->o_arg2 = OFFSET_amd64_RSI; layout->o_arg3 = OFFSET_amd64_RDX; - layout->o_arg4 = OFFSET_amd64_RCX; + layout->o_arg4 = OFFSET_amd64_R10; layout->o_arg5 = OFFSET_amd64_R8; layout->o_arg6 = OFFSET_amd64_R9; layout->s_arg7 = sizeof(UWord) * 1; ==== //depot/projects/valgrind/include/pub_tool_basics.h#5 (text+ko) ==== @@ -117,7 +117,7 @@ #if defined(VGO_linux) || defined(VGO_aix5) typedef Word OffT; // 32 64 #elif defined(VGO_freebsd) -typedef Word OffT; // 32 64 +typedef Long OffT; // 64 64 #elif defined(VGO_darwin) typedef Long OffT; // 64 64 #else ==== //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#4 (text+ko) ==== @@ -176,7 +176,7 @@ #define __NR_getdirentries 196 #define __NR_mmap 197 #define __NR___syscall 198 -#define __NR_lseek 199 +#define __NR_lseek6 199 #define __NR_truncate 200 #define __NR_ftruncate 201 #define __NR___sysctl 202 @@ -388,7 +388,7 @@ #define __NR_pread7 475 #define __NR_pwrite7 476 #define __NR_mmap7 477 -#define __NR_lseek7 478 +#define __NR_lseek 478 #define __NR_truncate7 479 #define __NR_ftruncate7 480 #define __NR_thr_kill2 481 From owner-p4-projects@FreeBSD.ORG Thu Aug 20 12:27:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7C7861065691; Thu, 20 Aug 2009 12:27:47 +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 412AB106568C for ; Thu, 20 Aug 2009 12:27:47 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 30BC18FC55 for ; Thu, 20 Aug 2009 12:27:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KCRjvo026647 for ; Thu, 20 Aug 2009 12:27:45 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KCRjPZ026645 for perforce@freebsd.org; Thu, 20 Aug 2009 12:27:45 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 12:27:45 GMT Message-Id: <200908201227.n7KCRjPZ026645@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167533 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: Thu, 20 Aug 2009 12:27:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167533 Change 167533 by bz@bz_dumpster on 2009/08/20 12:27:31 Yet another mandatory but w/o man page function; I wonder why each machine/pmap.h has to have it rather than vm/pmap.h which only has it as comment. Affected files ... .. //depot/projects/s390/sys/s390/s390/pmap_bz.c#2 edit Differences ... ==== //depot/projects/s390/sys/s390/s390/pmap_bz.c#2 (text+ko) ==== @@ -372,6 +372,17 @@ } /* + * Returns TRUE if the given page has a managed mapping. + * XXX no man page. + */ +boolean_t +pmap_page_is_mapped(vm_page_t m) +{ + + return (TRUE); +} + +/* * Clear the modified and write bits in the physical mappings of the * physical page m. * XXX no man page. From owner-p4-projects@FreeBSD.ORG Thu Aug 20 12:28:47 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89CF9106568D; Thu, 20 Aug 2009 12:28:47 +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 4E4E6106568B for ; Thu, 20 Aug 2009 12:28:47 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 240B98FC68 for ; Thu, 20 Aug 2009 12:28:47 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KCSlY5026708 for ; Thu, 20 Aug 2009 12:28:47 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KCSlfT026706 for perforce@freebsd.org; Thu, 20 Aug 2009 12:28:47 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 12:28:47 GMT Message-Id: <200908201228.n7KCSlfT026706@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167534 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: Thu, 20 Aug 2009 12:28:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=167534 Change 167534 by bz@bz_dumpster on 2009/08/20 12:28:16 mpsafe tty Submitted by: jhb Affected files ... .. //depot/projects/s390/sys/s390/s390/hmcsc.c#10 edit Differences ... ==== //depot/projects/s390/sys/s390/s390/hmcsc.c#10 (text+ko) ==== @@ -287,7 +287,7 @@ { struct tty *tp; - tp = tty_alloc(&hmcsc_class, NULL, NULL); + tp = tty_alloc(&hmcsc_class, NULL); tty_makedev(tp, NULL, "hmcsccons"); } From owner-p4-projects@FreeBSD.ORG Thu Aug 20 12:32:52 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 299231065692; Thu, 20 Aug 2009 12:32:52 +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 C96FA106568F for ; Thu, 20 Aug 2009 12:32:51 +0000 (UTC) (envelope-from bz@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AE3CC8FC68 for ; Thu, 20 Aug 2009 12:32:51 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KCWpQg027027 for ; Thu, 20 Aug 2009 12:32:51 GMT (envelope-from bz@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KCWpMn027025 for perforce@freebsd.org; Thu, 20 Aug 2009 12:32:51 GMT (envelope-from bz@freebsd.org) Date: Thu, 20 Aug 2009 12:32:51 GMT Message-Id: <200908201232.n7KCWpMn027025@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bz@freebsd.org using -f From: "Bjoern A. Zeeb" To: Perforce Change Reviews Cc: Subject: PERFORCE change 167535 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: Thu, 20 Aug 2009 12:32:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=167535 Change 167535 by bz@bz_dumpster on 2009/08/20 12:31:50 - Use mkdumpheader() rather than doing it on us own. - Use rmb(). - Add dummy cpu_flush_dcache(). - Add (dummy) definitions for the cooments from vm/pmap.h; still need to figure out if at least one could be moved upwards; lack of doucmentation(9) makes that harder. Affected files ... .. //depot/projects/s390/sys/s390/include/atomic.h#4 edit .. //depot/projects/s390/sys/s390/include/pmap.h#7 edit .. //depot/projects/s390/sys/s390/s390/dump_machdep.c#5 edit .. //depot/projects/s390/sys/s390/s390/genassym.c#7 edit .. //depot/projects/s390/sys/s390/s390/machdep.c#15 edit Differences ... ==== //depot/projects/s390/sys/s390/include/atomic.h#4 (text+ko) ==== @@ -18,6 +18,7 @@ #define SERIALIZATION __asm volatile (SOP ::: "memory") #define mb() SERIALIZATION +#define rmb() SERIALIZATION #define wmb() SERIALIZATION /* Not sure if serialization before load is really needed here. */ ==== //depot/projects/s390/sys/s390/include/pmap.h#7 (text+ko) ==== @@ -76,8 +76,6 @@ struct pmap_statistics pm_stats; /* pmap statistics */ }; -#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list)) - typedef struct pmap *pmap_t; #ifdef _KERNEL @@ -122,6 +120,10 @@ void *pmap_kenter_temporary(vm_paddr_t pa, int i); void pmap_kremove(vm_offset_t); +boolean_t pmap_page_is_mapped(vm_page_t); +#define pmap_page_get_memattr(m) VM_MEMATTR_DEFAULT +#define pmap_page_set_memattr(m, ma) (void)0 + #endif /* !LOCORE */ #endif /* !_MACHINE_PMAP_H_ */ ==== //depot/projects/s390/sys/s390/s390/dump_machdep.c#5 (text+ko) ==== @@ -62,18 +62,8 @@ printf("Dumping %ld MB\n", Maxmem / (1024*1024 / PAGE_SIZE)); /* Fill in the kernel dump header */ - strcpy(kdh.magic, KERNELDUMPMAGIC); - strcpy(kdh.architecture, MACHINE_ARCH); - kdh.version = htod32(KERNELDUMPVERSION); - kdh.architectureversion = htod32(KERNELDUMP_ESA_VERSION); - kdh.dumplength = htod64(Maxmem * (off_t)PAGE_SIZE); - kdh.dumptime = htod64(time_second); - kdh.blocksize = htod32(di->blocksize); - strncpy(kdh.hostname, hostname, sizeof(kdh.hostname)); - strncpy(kdh.versionstring, version, sizeof(kdh.versionstring)); - if (panicstr != NULL) - strncpy(kdh.panicstring, panicstr, sizeof kdh.panicstring); - kdh.parity = kerneldump_parity(&kdh); + mkdumpheader(&kdh, KERNELDUMPMAGIC, KERNELDUMP_ESA_VERSION, + htod64(Maxmem * (off_t)PAGE_SIZE), di->blocksize); dumplo = di->mediaoffset + di->mediasize - Maxmem * (off_t)PAGE_SIZE; dumplo -= sizeof(kdh) * 2; ==== //depot/projects/s390/sys/s390/s390/genassym.c#7 (text+ko) ==== @@ -15,12 +15,16 @@ #include #include #include +#include + #include #include #include #include + #include #include + #include #include #include ==== //depot/projects/s390/sys/s390/s390/machdep.c#15 (text+ko) ==== @@ -738,3 +738,12 @@ intr_restore(td->td_md.md_savecrit); } +/* + * Flush the D-cache for non-DMA I/O so that the I-cache can + * be made coherent later. + */ +void +cpu_flush_dcache(void *ptr, size_t len) +{ + /* Not applicable */ +} From owner-p4-projects@FreeBSD.ORG Thu Aug 20 14:01:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 323B71065691; Thu, 20 Aug 2009 14:01:29 +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 D2775106568E for ; Thu, 20 Aug 2009 14:01:28 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B7BFF8FC75 for ; Thu, 20 Aug 2009 14:01:28 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KE1SZ0044686 for ; Thu, 20 Aug 2009 14:01:28 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KE1SBb044684 for perforce@freebsd.org; Thu, 20 Aug 2009 14:01:28 GMT (envelope-from stas@freebsd.org) Date: Thu, 20 Aug 2009 14:01:28 GMT Message-Id: <200908201401.n7KE1SBb044684@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167537 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: Thu, 20 Aug 2009 14:01:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=167537 Change 167537 by stas@stas_yandex on 2009/08/20 14:00:39 - Fix ldscript generation. Affected files ... .. //depot/projects/valgrind/Makefile.tool.am#6 edit Differences ... ==== //depot/projects/valgrind/Makefile.tool.am#6 (text+ko) ==== @@ -143,42 +143,42 @@ $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \ -e '1,/^=====\+$$/d' \ -e '/^=====\+$$/,/.\*/d' \ - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ || rm -f $@ $(top_builddir)/valt_load_address_amd64_linux.lds: Makefile $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \ -e '1,/^=====\+$$/d' \ -e '/^=====\+$$/,/.\*/d' \ - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ || rm -f $@ $(top_builddir)/valt_load_address_x86_freebsd.lds: Makefile $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed -E \ -e '1,/^=====+$$/d' \ -e '/^=====+$$/,/.*/d' \ - -e '/. = (0x[0-9A-Fa-f]+|SEGMENT_START\("[^"]+", 0x[0-9A-Fa-f]+\)) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ + -e '/. = (0x[0-9A-Fa-f]+|SEGMENT_START\("[^"]+", 0x[0-9A-Fa-f]+\)) \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ $(top_builddir)/valt_load_address_amd64_freebsd.lds: Makefile $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed -E \ -e '1,/^=====+$$/d' \ -e '/^=====+$$/,/.*/d' \ - -e '/. = (0x[0-9A-Fa-f]+|SEGMENT_START\("[^"]+", 0x[0-9A-Fa-f]+\)) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ + -e '/\. = (0x[0-9A-Fa-f]+|SEGMENT_START\("[^"]+", 0x[0-9A-Fa-f]+\)) \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]+/valt_load_address/g' > $@ \ || rm -f $@ $(top_builddir)/valt_load_address_ppc32_linux.lds: Makefile $(CC) @FLAG_M32@ -Wl,--verbose -nostdlib 2>&1 | sed \ -e '1,/^=====\+$$/d' \ -e '/^=====\+$$/,/.\*/d' \ - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ || rm -f $@ $(top_builddir)/valt_load_address_ppc64_linux.lds: Makefile $(CC) -m64 -Wl,--verbose -nostdlib 2>&1 | sed \ -e '1,/^=====\+$$/d' \ -e '/^=====\+$$/,/.\*/d' \ - -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) + SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ + -e '/\. = \(0x[0-9A-Fa-f]\+\|SEGMENT_START("[^"]\+", 0x[0-9A-Fa-f]\+)\) \+ SIZEOF_HEADERS/s/0x[0-9A-Fa-f]\+/valt_load_address/g' > $@ \ || rm -f $@ #---------------------------------------------------------------------------- From owner-p4-projects@FreeBSD.ORG Thu Aug 20 14:01:29 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 739A4106579C; Thu, 20 Aug 2009 14:01:29 +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 10269106568C for ; Thu, 20 Aug 2009 14:01:29 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id DA3848FC78 for ; Thu, 20 Aug 2009 14:01:28 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KE1Stx044691 for ; Thu, 20 Aug 2009 14:01:28 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KE1SMd044689 for perforce@freebsd.org; Thu, 20 Aug 2009 14:01:28 GMT (envelope-from stas@freebsd.org) Date: Thu, 20 Aug 2009 14:01:28 GMT Message-Id: <200908201401.n7KE1SMd044689@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167538 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: Thu, 20 Aug 2009 14:01:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=167538 Change 167538 by stas@stas_yandex on 2009/08/20 14:00:57 - Use FreeBSD7 mmap. Affected files ... .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#5 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#35 edit .. //depot/projects/valgrind/coregrind/m_ume/elf.c#2 edit .. //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#5 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#5 (text+ko) ==== @@ -181,8 +181,8 @@ # elif defined(VGP_amd64_freebsd) if (flags & VKI_MAP_ANONYMOUS && fd == 0) fd = -1; - res = VG_(do_syscall7)(__NR_mmap, (UWord)start, length, - prot, flags, fd, 0, offset); + res = VG_(do_syscall6)(__NR_mmap, (UWord)start, length, + prot, flags, fd, offset); # else # error Unknown platform # endif ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#35 (text+ko) ==== @@ -3298,7 +3298,7 @@ GENX_(__NR_setrlimit, sys_setrlimit), // 195 BSDXY(__NR_getdirentries, sys_getdirentries), // 196 - BSDX_(__NR_mmap, sys_mmap), // 197 + BSDX_(__NR_mmap, sys_mmap7), // 197 // __syscall (handled specially) // 198 BSDX_(__NR_lseek6, sys_lseek), // 199 @@ -3648,7 +3648,7 @@ BSDXY(__NR_pread7, sys_pread7), // 475 BSDX_(__NR_pwrite7, sys_pwrite7), // 476 - BSDX_(__NR_mmap7, sys_mmap7), // 477 + BSDX_(__NR_mmap, sys_mmap7), // 477 BSDX_(__NR_lseek, sys_lseek), // 478 BSDX_(__NR_truncate7, sys_truncate7), // 479 ==== //depot/projects/valgrind/coregrind/m_ume/elf.c#2 (text+ko) ==== ==== //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#5 (text+ko) ==== @@ -174,7 +174,7 @@ #define __NR_getrlimit 194 #define __NR_setrlimit 195 #define __NR_getdirentries 196 -#define __NR_mmap 197 +#define __NR_mmap6 197 #define __NR___syscall 198 #define __NR_lseek6 199 #define __NR_truncate 200 @@ -387,7 +387,7 @@ #define __NR_sctp_generic_recvmsg 474 #define __NR_pread7 475 #define __NR_pwrite7 476 -#define __NR_mmap7 477 +#define __NR_mmap 477 #define __NR_lseek 478 #define __NR_truncate7 479 #define __NR_ftruncate7 480 From owner-p4-projects@FreeBSD.ORG Thu Aug 20 15:27:03 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 29FC7106568B; Thu, 20 Aug 2009 15:27:03 +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 C0529106564A for ; Thu, 20 Aug 2009 15:27:02 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id AF17A8FC51 for ; Thu, 20 Aug 2009 15:27:02 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KFR2bo052920 for ; Thu, 20 Aug 2009 15:27:02 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KFR2w8052918 for perforce@freebsd.org; Thu, 20 Aug 2009 15:27:02 GMT (envelope-from stas@freebsd.org) Date: Thu, 20 Aug 2009 15:27:02 GMT Message-Id: <200908201527.n7KFR2w8052918@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167541 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: Thu, 20 Aug 2009 15:27:03 -0000 http://perforce.freebsd.org/chv.cgi?CH=167541 Change 167541 by stas@stas_yandex on 2009/08/20 15:26:15 - Implement resolve_pathname. Affected files ... .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#6 edit .. //depot/projects/valgrind/include/vki/vki-freebsd.h#16 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-common.c#6 (text+ko) ==== @@ -332,6 +332,11 @@ return False; } +#if defined(VGO_freebsd) +#define M_FILEDESC_BUF 1000000 +static Char filedesc_buf[M_FILEDESC_BUF]; +#endif + Bool ML_(am_resolve_filename) ( Int fd, /*OUT*/HChar* buf, Int nbuf ) { #if defined(VGO_linux) @@ -345,9 +350,38 @@ return False; #elif defined(VGO_freebsd) - I_die_here; /* maybe just return False? */ - return False; + Int mib[4]; + SysRes sres; + vki_size_t len; + Int cnt; + Char *bp, *eb; + struct vki_kinfo_file *kf; + mib[0] = VKI_CTL_KERN; + mib[1] = VKI_KERN_PROC; + mib[2] = VKI_KERN_PROC_FILEDESC; + mib[3] = sr_Res(VG_(do_syscall0)(__NR_getpid)); + len = sizeof(filedesc_buf); + sres = VG_(do_syscall6)(__NR___sysctl, (UWord)mib, 4, (UWord)filedesc_buf, + (UWord)&len, 0, 0); + if (sr_isError(sres)) { + VG_(debugLog)(0, "sysctl(kern.proc.filedesc)", "%s\n", VG_(strerror)(sr_Err(sres))); + ML_(am_exit)(1); + } + /* Walk though the list. */ + bp = filedesc_buf; + eb = filedesc_buf + len; + while (bp < eb) { + kf = (struct vki_kinfo_file *)bp; + if (kf->kf_fd == fd) + break; + bp += kf->kf_structsize; + } + if (bp >= eb || *kf->kf_path == '\0') + return False; + VG_(strncpy)( buf, kf->kf_path, nbuf ); + VG_(debugLog)(0, "aspacem", "Valgrind: found %s for %d\n", kf->kf_path, fd); + return True; #elif defined(VGO_aix5) I_die_here; /* maybe just return False? */ return False; ==== //depot/projects/valgrind/include/vki/vki-freebsd.h#16 (text+ko) ==== @@ -1897,6 +1897,25 @@ int kve_ispare[3]; }; +struct vki_kinfo_file { + int kf_structsize; /* Variable size of record. */ + int kf_type; /* Descriptor type. */ + int kf_fd; /* Array index. */ + int kf_ref_count; /* Reference count. */ + int kf_flags; /* Flags. */ + int _kf_pad0; /* Round to 64 bit alignment */ + Off64T kf_offset; /* Seek location. */ + int kf_vnode_type; /* Vnode type. */ + int kf_sock_domain; /* Socket domain. */ + int kf_sock_type; /* Socket type. */ + int kf_sock_protocol; /* Socket protocol. */ + char kf_sa_local[128]; /* Socket address. */ + char kf_sa_peer[128]; /* Peer address. */ + int _kf_ispare[16]; /* Space for more stuff. */ + /* Truncated before copyout in sysctl */ + char kf_path[VKI_PATH_MAX]; /* Path to file, if any. */ +}; + #if defined(VGP_x86_freebsd) /* Special case.. adapt to what the 64 bit kernel gives us */ struct vki_kinfo_vmentry_32on64 { @@ -1927,6 +1946,7 @@ #define VKI_CTL_HW 6 #define VKI_KERN_PROC 14 #define VKI_KERN_PROC_VMMAP 13 +#define VKI_KERN_PROC_FILEDESC 33 #define VKI_HW_MACHINE 1 //---------------------------------------------------------------------- From owner-p4-projects@FreeBSD.ORG Thu Aug 20 16:06:46 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A44F41065691; Thu, 20 Aug 2009 16:06:46 +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 68A74106568E for ; Thu, 20 Aug 2009 16:06:46 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 579EF8FC43 for ; Thu, 20 Aug 2009 16:06:46 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KG6k42056709 for ; Thu, 20 Aug 2009 16:06:46 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KG6jko056707 for perforce@freebsd.org; Thu, 20 Aug 2009 16:06:46 GMT (envelope-from truncs@FreeBSD.org) Date: Thu, 20 Aug 2009 16:06:46 GMT Message-Id: <200908201606.n7KG6jko056707@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167542 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: Thu, 20 Aug 2009 16:06:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=167542 Change 167542 by truncs@aditya on 2009/08/20 16:05:51 Change IO_SYNC to B_SYNC. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#5 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#5 (text+ko) ==== @@ -152,7 +152,6 @@ } fs = oip->i_e2fs; osize = oip->i_size; - ext2_discard_prealloc(oip); /* * Lengthen the size of the file. We must ensure that the * last byte of the file is allocated. Since the smallest @@ -164,13 +163,13 @@ offset = blkoff(fs, length - 1); lbn = lblkno(fs, length - 1); aflags = B_CLRBUF; - if (flags & IO_SYNC) + if (flags & B_SYNC) aflags |= B_SYNC; - vnode_pager_setsize(ovp, length); if ((error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, aflags)) != 0) return (error); oip->i_size = length; + vnode_pager_setsize(ovp, length); if (aflags & IO_SYNC) bwrite(bp); else @@ -201,11 +200,12 @@ size = blksize(fs, oip, lbn); bzero((char *)bp->b_data + offset, (u_int)(size - offset)); allocbuf(bp, size); - if (aflags & IO_SYNC) + if (aflags & B_SYNC) bwrite(bp); else bawrite(bp); } + vnode_pager_setsize(ovp, length); /* * Calculate index into inode's block list of * last direct and indirect blocks (if any) @@ -470,7 +470,6 @@ struct thread *td = ap->a_td; int mode, error = 0; - ext2_discard_prealloc(ip); if (prtactive && vrefcnt(vp) != 0) vprint("ext2_inactive: pushing active", vp); From owner-p4-projects@FreeBSD.ORG Thu Aug 20 17:55:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8813B106568D; Thu, 20 Aug 2009 17:55:45 +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 4A806106568B for ; Thu, 20 Aug 2009 17:55:45 +0000 (UTC) (envelope-from tsel@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 381268FC3F for ; Thu, 20 Aug 2009 17:55:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KHtjOV075427 for ; Thu, 20 Aug 2009 17:55:45 GMT (envelope-from tsel@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KHtj6W075425 for perforce@freebsd.org; Thu, 20 Aug 2009 17:55:45 GMT (envelope-from tsel@FreeBSD.org) Date: Thu, 20 Aug 2009 17:55:45 GMT Message-Id: <200908201755.n7KHtj6W075425@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to tsel@FreeBSD.org using -f From: Tatsiana Elavaya To: Perforce Change Reviews Cc: Subject: PERFORCE change 167544 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: Thu, 20 Aug 2009 17:55:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=167544 Change 167544 by tsel@tsel_mz on 2009/08/20 17:54:49 Add ipfw.hll.8 man page Simplify language by removing if/cond tokens Fix anonymous conditions support bug Fix grammar conflicts Implement labels Affected files ... .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/Makefile#5 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.8#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.c#5 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.h#5 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/parse.y#5 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/subr.c#4 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/Makefile#4 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_dup_name1#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_dup_name2#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_dup_name3#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_dup_name3.err#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_man#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_man.output#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test0#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test1.err#3 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test10#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test10.output#1 add .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test2#3 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test3#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test4#4 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test5#3 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test6#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test7#3 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test8#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test9#2 edit .. //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/token.l#4 edit .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/Makefile#4 edit .. //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#13 edit Differences ... ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/Makefile#5 (text+ko) ==== @@ -1,5 +1,5 @@ PROG= ipfw.hll -NO_MAN= +MAN= ipfw.hll.8 SRCS= parse.y token.l ipfw.hll.c subr.c WARNS?= 2 @@ -11,7 +11,7 @@ DPADD= ${LIBL} LDADD= -ll -DEBUG_FLAGS+= -g -O0 -DIPFW_HLL_DEBUG +#DEBUG_FLAGS+= -g -O0 -DIPFW_HLL_DEBUG .PHONY: test test: ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.c#5 (text+ko) ==== @@ -188,7 +188,7 @@ static void usage(void) { - fprintf(stderr, "usage: ipfw.hll [-gh] [-n rulenum] [-i increment] file\n"); + fprintf(stderr, "usage: ipfw.hll [-gh] [-n rulenum] [-i increment] [file]\n"); exit(EX_USAGE); } ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/ipfw.hll.h#5 (text+ko) ==== @@ -74,12 +74,19 @@ }; struct var { - TAILQ_ENTRY(var) vars_entries; + TAILQ_ENTRY(var) var_entries; char *name; char *value; int lineno; }; +struct label { + TAILQ_ENTRY(label) label_entries; + char *name; + struct rule *rule; + int lineno; +}; + extern struct ruleset *toplevel_ruleset; void *safe_calloc(int size); @@ -100,4 +107,7 @@ struct var * var_alloc(void); struct var * var_lookup(char *name); void var_insert(struct var *var); +struct label * label_alloc(void); +struct label * label_lookup(char *name); +void label_insert(struct label *label); ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/parse.y#5 (text+ko) ==== @@ -54,21 +54,21 @@ %token STR %token ACTION +%token COLON %token DEFINE %token RULESET %token SET %token CALL %token SEMICOLON -%token IF %token THEN %token BLOCK_BEGIN %token BLOCK_END %type define_cond cond_body cond_list -%type cond cond_cmd_list -%type define_ruleset rule_body rule_list -%type rule rule_tail rule_action rule_action_list -%type cond_cmd cond_tail +%type cond +%type define_ruleset rule_body rule_list toprule_list +%type rule rule_action rule_action_list toprule label +%type cond_cmd %type id str %type define_var @@ -77,22 +77,32 @@ %% begin - : define_list rule_list + : space body + ; + +body + : define_list toprule_list { - if ($2 == NULL) - errx(EX_DATAERR, "%s:%d: top level ruleset is empty", yyfile, yyline); toplevel_ruleset = $2; } + | define_list + { + errx(EX_DATAERR, "%s:%d: top level ruleset is empty", yyfile, yyline); + } + ; + +space + : + | space SEMICOLON ; define_list : - | define_list define_block + | define_list define_block space ; define_block - : SEMICOLON - | define_var + : define_var | define_cond | define_ruleset ; @@ -108,9 +118,9 @@ } define_cond - : DEFINE id cond_body SEMICOLON + : DEFINE id space cond_body SEMICOLON { - $$ = $3; + $$ = $4; $$->lineno = $2.lineno; $$->name = $2.s; condsets_insert($$); @@ -118,9 +128,9 @@ ; define_ruleset - : RULESET id rule_body SEMICOLON + : RULESET id space rule_body SEMICOLON { - $$ = $3; + $$ = $4; $$->lineno = $2.lineno; $$->name = $2.s; rulesets_insert($$); @@ -130,78 +140,92 @@ cond_body : BLOCK_BEGIN cond_list BLOCK_END { $$ = $2; } + | BLOCK_BEGIN BLOCK_END + { $$ = condset_alloc(); } rule_body : BLOCK_BEGIN rule_list BLOCK_END { $$ = $2; } + | BLOCK_BEGIN BLOCK_END + { $$ = ruleset_alloc(); } cond_list - : - { $$ = NULL; } - | cond_list cond cond_tail SEMICOLON + : SEMICOLON + { + $$ = condset_alloc(); + } + | cond SEMICOLON + { + $$ = condset_alloc(); + if ($1 != NULL) { + TAILQ_INSERT_TAIL(&$$->conds, $1, cond_entries); + } + } + | cond_list SEMICOLON + { + $$ = $1; + } + | cond_list cond SEMICOLON { + $$ = $1; if ($2 != NULL) { - if ($1 == NULL) - $1 = condset_alloc(); - if ($3 != NULL) { - TAILQ_INSERT_TAIL(&$2->cmds, $3, cmd_entries); - } TAILQ_INSERT_TAIL(&$1->conds, $2, cond_entries); } - $$ = $1; } ; -rule_list - : - { $$ = NULL; } - | rule_list rule SEMICOLON +toprule_list + : toprule { - if ($2 != NULL) { - if ($1 == NULL) - $1 = ruleset_alloc(); - TAILQ_INSERT_TAIL(&$1->rules, $2, rule_entries); + $$ = ruleset_alloc(); + if ($1 != NULL) { + $$->lineno = $1->lineno; + TAILQ_INSERT_TAIL(&$$->rules, $1, rule_entries); } - $$ = $1; + } + | toprule_list toprule + { + if ($2 != NULL) + TAILQ_INSERT_TAIL(&$$->rules, $2, rule_entries); } - ; -cond - : - { $$ = NULL; } - | IF cond_cmd_list - { $$ = $2; } - ; +toprule + : label + { $$ = $1; } + | rule + { $$ = $1; } -cond_tail - : - { $$ = NULL; } - | cond_body - { - $$ = cmd_alloc(); - $$->cmd_condset = $1; +rule_list + : rule + { + $$ = ruleset_alloc(); + if ($1 != NULL) { + TAILQ_INSERT_TAIL(&$$->rules, $1, rule_entries); + } + } + | rule_list rule + { + $$ = $1; + if ($2 != NULL) { + TAILQ_INSERT_TAIL(&$$->rules, $2, rule_entries); + } } ; rule - : + : SEMICOLON { $$ = NULL; } - | rule_action - { $$ = $1; } - | cond THEN rule_tail + | THEN space rule_action SEMICOLON + { $$ = $3; } + | cond SEMICOLON { - $$ = $3; - $$->cond = $1; + $$ = NULL; + yyerror("rule action is not specified"); } - ; - -rule_tail - : rule_action - { $$ = $1; } - | rule_body + | cond THEN space rule_action SEMICOLON { - $$ = rule_alloc(); - $$->action_ruleset = $1; + $$ = $4; + $$->cond = $1; } ; @@ -218,6 +242,11 @@ { $$ = $1; } + | rule_body + { + $$ = rule_alloc(); + $$->action_ruleset = $1; + } ; rule_action_list @@ -254,16 +283,41 @@ } ; -cond_cmd_list - : { $$ = NULL; } - | cond_cmd_list cond_cmd +label + : id COLON SEMICOLON + { + struct label *label; + struct cmd *cmd; + char **p; + char *cmds[] = { + "alias", $1.s, + "count", "all", "from", "any", "to", "any", NULL + }; + + $$ = rule_alloc(); + $$->lineno = $1.lineno; + for (p = cmds; *p != NULL; p++) { + cmd = cmd_alloc(); + cmd->cmd = strdup(*p); + TAILQ_INSERT_TAIL(&$$->actions, cmd, cmd_entries); + } + label = label_alloc(); + label->lineno = $1.lineno; + label->rule = $$; + label->name = strdup($1.s); + label_insert(label); + } + +cond + : cond_cmd + { + $$ = cond_alloc(); + TAILQ_INSERT_TAIL(&$$->cmds, $1, cmd_entries); + } + | cond cond_cmd { - if ($1 == NULL) { - $1 = cond_alloc(); - } - - TAILQ_INSERT_TAIL(&$1->cmds, $2, cmd_entries); $$ = $1; + TAILQ_INSERT_TAIL(&$$->cmds, $2, cmd_entries); } ; @@ -278,9 +332,11 @@ } | cond_body { - $$ = cmd_alloc(); - $$->lineno = $1->lineno; - $$->cmd_condset = $1; + if ($1 != NULL) { + $$ = cmd_alloc(); + $$->lineno = $1->lineno; + $$->cmd_condset = $1; + } } | str { @@ -335,10 +391,19 @@ void yyerror(char *s) { - if (yytext) - warnx("%s:%d: '%s': %s", yyfile, yyline, yytext, s); +int line; +char *text; + + line = yyline; + text = yytext; + if (yytext && yytext[0] == '\n' && yytext[1] == '\0') { + line--; + text = NULL; + } + if (text) + warnx("%s:%d: '%s': %s", yyfile, line, text, s); else - warnx("%s:%d: %s", yyfile, yyline, s); + warnx("%s:%d: %s", yyfile, line, s); } ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/subr.c#4 (text+ko) ==== @@ -12,6 +12,7 @@ static TAILQ_HEAD(, ruleset) rulesets = TAILQ_HEAD_INITIALIZER(rulesets); static TAILQ_HEAD(, condset) condsets = TAILQ_HEAD_INITIALIZER(condsets); static TAILQ_HEAD(, var) vars = TAILQ_HEAD_INITIALIZER(vars); +static TAILQ_HEAD(, label) labels = TAILQ_HEAD_INITIALIZER(labels); void *safe_calloc(int size) { @@ -220,7 +221,7 @@ { struct var *r; - TAILQ_FOREACH(r, &vars, vars_entries) { + TAILQ_FOREACH(r, &vars, var_entries) { if (strcmp(r->name, name) == 0) return (r); } @@ -236,6 +237,39 @@ if (dup != NULL) errx(EX_DATAERR, "%s:%d: variable '%s' is already defined at line %d", yyfile, var->lineno, var->name, dup->lineno); - TAILQ_INSERT_TAIL(&vars, var, vars_entries); + TAILQ_INSERT_TAIL(&vars, var, var_entries); +} + +struct label * +label_alloc(void) +{ + struct label *r; + + r = safe_calloc(sizeof(struct label)); + return (r); +} + +struct label * +label_lookup(char *name) +{ + struct label *r; + + TAILQ_FOREACH(r, &labels, label_entries) { + if (strcmp(r->name, name) == 0) + return (r); + } + return (NULL); +} + +void +label_insert(struct label *label) +{ + struct label *dup; + + dup = label_lookup(label->name); + if (dup != NULL) + errx(EX_DATAERR, "%s:%d: label '%s' is already defined at line %d", + yyfile, label->lineno, label->name, dup->lineno); + TAILQ_INSERT_TAIL(&labels, label, label_entries); } ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/Makefile#4 (text+ko) ==== @@ -1,5 +1,6 @@ -TESTS+= test0 test1 test2 test3 test4 test5 test6 test7 test8 test9 -TESTS+= t_dup_name1 t_dup_name2 +TESTS+= test0 test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 +TESTS+= t_dup_name1 t_dup_name2 t_dup_name3 +TESTS+= t_man all: test ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_dup_name1#2 (text+ko) ==== @@ -1,16 +1,16 @@ define q { - cond q11 q12 - cond q21 q22 + q11 q12 + q21 q22 } define q { - cond w11 w12 - cond w21 w22 + w11 w12 + w21 w22 } define q { - cond w11 w12 - cond w21 w22 + w11 w12 + w21 w22 } -cond c1 c2 @q => allow +c1 c2 @q => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/t_dup_name2#2 (text+ko) ==== @@ -1,10 +1,10 @@ define q { - cond q11 q12 - cond q21 q22 + q11 q12 + q21 q22 } ruleset q { - allow + => allow } -cond c1 c2 @q => allow +c1 c2 @q => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test0#2 (text+ko) ==== @@ -1,7 +1,7 @@ # comment # comment 2 - cond c1 c2 => allow # comment + c1 c2 => allow # comment -cond c3 c4 => deny +c3 c4 => deny ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test1.err#3 (text+ko) ==== @@ -1,1 +1,1 @@ -ipfw.hll: :1: 'error': syntax error +ipfw.hll: :1: rule action is not specified ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test2#3 (text+ko) ==== @@ -1,9 +1,9 @@ # sdfsdf define c1 { - cond q1 q2 + q1 q2; }; ruleset r1 { - if c1 then drop + @c1 => drop; }; ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test3#2 (text+ko) ==== @@ -6,7 +6,7 @@ X = "nested bb ${var_a} cc ${var_a} nested" -cond ${var_a} c1 c2 => allow -cond c3 ${VAR2} c4 => allow -cond c5 c6 ${X} => allow +${var_a} c1 c2 => allow +c3 ${VAR2} c4 => allow +c5 c6 ${X} => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test4#4 (text+ko) ==== @@ -1,15 +1,15 @@ define q { - cond q11 q12 - cond q21 q22 + q11 q12 + q21 q22 } define w { - cond w11 w12 - cond w21 w22 + w11 w12 + w21 w22 } -cond c1 c2 @q => allow -cond c3 @q c4 => allow -cond c1 c2 c3 c4 @w => allow -cond c3 @w @q c4 => allow -cond @w c5 c6 @q => allow +c1 c2 @q => allow +c3 @q c4 => allow +c1 c2 c3 c4 @w => allow +c3 @w @q c4 => allow +@w c5 c6 @q => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test5#3 (text+ko) ==== @@ -1,22 +1,22 @@ ruleset r2 { - cond r2-c1 => allow - cond r2-c2 => deny + r2-c1 => allow + r2-c2 => deny } ruleset r1 { - cond r1-c1 => allow - cond r1-c2 => @r2 - cond r1-c3 => @r2 + r1-c1 => allow + r1-c2 => @r2 + r1-c3 => @r2 } ruleset r0 { - if c1 => { - if c1-1 c1-2 then allow - deny + c1 => { + c1-1 c1-2 => allow + => deny } - if c2 then deny - if c3 => @r1 + c2 => deny + c3 => @r1 } -@r0 +=> @r0 ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test6#2 (text+ko) ==== @@ -1,16 +1,16 @@ define e { - cond e11 e12 - cond e21 e22 + e11 e12 + e21 e22 } define w { - cond w11 @e w12 - cond @e w21 w22 + w11 @e w12 + @e w21 w22 } define q { - cond @w q11 q12 - cond q21 q22 @w + @w q11 q12 + q21 q22 @w } -cond c1 @q c2 => allow +c1 @q c2 => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test7#3 (text+ko) ==== @@ -1,34 +1,40 @@ # set of predicates = set of ipfw options containing no actions (allow, deny, ...) -define predicate_1 { - cond src-ip 1.2.3.4 dsp-ip 1.2.3.0/24 - cond src-ip 6.7.8.9 dst-ip 6.7.8.0/24 +define predicate_1 +{ + src-ip 1.2.3.4 dsp-ip 1.2.3.0/24 + src-ip 6.7.8.9 dst-ip 6.7.8.0/24 } -define predicate_2 { - cond proto tcp - cond proto udp +define predicate_2 +{ + proto tcp + proto udp } -define predicate_3 { - cond via bridge1 - cond via bridge2 +define predicate_3 +{ + via bridge1 + via bridge2 } -define predicate_4_nested { - cond @predicate_1 @predicate_2 - cond @predicate_3 tagged 1010 +define predicate_4_nested +{ + @predicate_1 @predicate_2 + @predicate_3 tagged 1010 } # ruleset = set of ipfw rules # rule is just like generic ipfw rule but can contain predicates -ruleset ruleset_1 { - if @predicate_1 => { - if proto tcp then allow - deny +ruleset ruleset_1 +{ + @predicate_1 => + { + proto tcp => allow + => deny } - if proto udp then deny + proto udp => deny } # unnamed = default ruleset -if @predicate_1 @predicate_2 @predicate_3 then allow -if @predicate_3 then @ruleset_1 +@predicate_1 @predicate_2 @predicate_3 => allow +@predicate_3 => @ruleset_1 ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test8#2 (text+ko) ==== @@ -1,1 +1,1 @@ -if c1 c2 c3 { cond w1; cond w2 } => allow +c1 c2 c3 { w1; w2 } => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/test/test9#2 (text+ko) ==== @@ -7,65 +7,65 @@ # RFC1918 nets define private_nets { - cond 10.0.0.0/8 - cond 172.16.0.0/12 - cond 192.168.0.0/16 + 10.0.0.0/8 + 172.16.0.0/12 + 192.168.0.0/16 } define reserved_nets { - cond 0.0.0.0/8 - cond 169.254.0.0/16 - cond 192.0.2.0/24 - cond 224.0.0.0/4 - cond 240.0.0.0/4 + 0.0.0.0/8 + 169.254.0.0/16 + 192.0.2.0/24 + 224.0.0.0/4 + 240.0.0.0/4 } define spoofed { - cond src-ip ${inet} in via ${oif} - cond src-ip ${onet} in via ${iif} + src-ip ${inet} in via ${oif} + src-ip ${onet} in via ${iif} } # Stop spoofing -if @spoofed => deny +@spoofed => deny # Stop RFC1918 nets on the outside interface -if dst-ip @private_nets via ${oif} => deny +dst-ip @private_nets via ${oif} => deny # Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1, # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E) # on the outside interface -if dst-ip @reserved_nets via ${oif} => deny +dst-ip @reserved_nets via ${oif} => deny # Stop RFC1918 nets on the outside interface -if src-ip @private_nets via ${oif} => deny +src-ip @private_nets via ${oif} => deny # Stop draft-manning-dsua-03.txt (1 May 2000) nets (includes RESERVED-1, # DHCP auto-configuration, NET-TEST, MULTICAST (class D), and class E) # on the outside interface -if src-ip @reserved_nets via ${oif} => deny +src-ip @reserved_nets via ${oif} => deny # Allow TCP through if setup succeeded -if tcp from any to any established => allow +tcp from any to any established => allow # Allow IP fragments to pass through -if all from any to any frag => pass +all from any to any frag => pass # Allow setup of incoming email, www, dns -if proto tcp dst-ip me setup dst-port { cond 25; cond 80; cond 53; } => allow +proto tcp dst-ip me setup dst-port { 25; 80; 53; } => allow # Allow access to our DNS -if proto tcp dst-ip me dst-port 53 setup => allow -if proto udp dst-ip me => { - cond src-port 53 => allow - cond dst-port 53 => allow +proto tcp dst-ip me dst-port 53 setup => allow +proto udp dst-ip me => { + src-port 53 => allow + dst-port 53 => allow } # Reject&Log all setup of incoming connections from the outside -if log proto tcp in via ${oif} setup => deny +log proto tcp in via ${oif} setup => deny # Allow setup of any other TCP connection -if proto tcp setup => allow +proto tcp setup => allow # Allow DNS queries out in the world -if proto udp src-ip me keep-state dst-port { cond 53; cond 123; } => allow +proto udp src-ip me keep-state dst-port { 53; 123; } => allow ==== //depot/projects/soc2009/tsel_ipfw/libexec/ipfw.hll/token.l#4 (text+ko) ==== @@ -81,10 +81,9 @@ [ \t]+ ; ";" { return SEMICOLON; } +":" { return COLON; } "@" { return CALL; } "=" { return SET; } -"if" { return IF; } -"cond" { return IF; } "then" { return THEN; } ">>" { return THEN; } "=>" { return THEN; } ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/Makefile#4 (text+ko) ==== @@ -5,6 +5,6 @@ WARNS?= 2 LDADD= -lutil MAN= ipfw.8 -DEBUG_FLAGS+= -g +DEBUG_FLAGS+= -g -I${.CURDIR}/../../sys .include ==== //depot/projects/soc2009/tsel_ipfw/sbin/ipfw/ipfw2.c#13 (text+ko) ==== @@ -2250,11 +2250,12 @@ optimization_filter_groups(struct insn_match_group_head *head) { struct insn_match_group *g, *g_tmp; + size_t sz; int labels_max, group_count; - group_count = sizeof(labels_max); + sz = sizeof(labels_max); if (sysctlbyname("net.inet.ip.fw.optimization_buf_max", &labels_max, - &group_count, NULL, 0) == -1) { + &sz, NULL, 0) == -1) { errx(EX_DATAERR, "optimization not supported"); } labels_max *= 8 / 2; /* 2 bits long per label. */ From owner-p4-projects@FreeBSD.ORG Thu Aug 20 18:13:04 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A4D1B1065698; Thu, 20 Aug 2009 18:13:04 +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 65CB71065696 for ; Thu, 20 Aug 2009 18:13:04 +0000 (UTC) (envelope-from marinosi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3B86D8FC43 for ; Thu, 20 Aug 2009 18:13:04 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KID4K0077678 for ; Thu, 20 Aug 2009 18:13:04 GMT (envelope-from marinosi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KID4rc077676 for perforce@freebsd.org; Thu, 20 Aug 2009 18:13:04 GMT (envelope-from marinosi@FreeBSD.org) Date: Thu, 20 Aug 2009 18:13:04 GMT Message-Id: <200908201813.n7KID4rc077676@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marinosi@FreeBSD.org using -f From: Ilias Marinos To: Perforce Change Reviews Cc: Subject: PERFORCE change 167545 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: Thu, 20 Aug 2009 18:13:04 -0000 http://perforce.freebsd.org/chv.cgi?CH=167545 Change 167545 by marinosi@marinosi_redrum on 2009/08/20 18:12:46 Added a userspace POC tool that can be used to manipulate slices. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/slicetool.c#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 20 19:04:00 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 924BC1065692; Thu, 20 Aug 2009 19:04: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 5695E1065690 for ; Thu, 20 Aug 2009 19:04:00 +0000 (UTC) (envelope-from marinosi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 104948FC68 for ; Thu, 20 Aug 2009 19:04:00 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7KJ3xYu082345 for ; Thu, 20 Aug 2009 19:03:59 GMT (envelope-from marinosi@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7KJ3xti082343 for perforce@freebsd.org; Thu, 20 Aug 2009 19:03:59 GMT (envelope-from marinosi@FreeBSD.org) Date: Thu, 20 Aug 2009 19:03:59 GMT Message-Id: <200908201903.n7KJ3xti082343@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marinosi@FreeBSD.org using -f From: Ilias Marinos To: Perforce Change Reviews Cc: Subject: PERFORCE change 167548 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: Thu, 20 Aug 2009 19:04:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=167548 Change 167548 by marinosi@marinosi_redrum on 2009/08/20 19:03:07 Remove a printf() leftover. Affected files ... .. //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_worker.c#13 edit Differences ... ==== //depot/projects/soc2009/marinosi_appaudit/src/sys/security/audit/audit_worker.c#13 (text) ==== @@ -321,7 +321,6 @@ if ((ar->k_ar_commit & AR_COMMIT_USER) && (ar->k_ar_commit & AR_PRESELECT_USER_TRAIL)) { AUDIT_WORKER_LOCK_ASSERT(as); - printf("audit_worker_process_record(): Ready to call audit_record_write().\n"); audit_record_write(as, ar->k_udata, ar->k_ulen); } From owner-p4-projects@FreeBSD.ORG Fri Aug 21 13:12:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CD895106568C; Fri, 21 Aug 2009 13:12: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 9188C1065672 for ; Fri, 21 Aug 2009 13:12:17 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7F7658FC52 for ; Fri, 21 Aug 2009 13:12:17 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LDCHcj032309 for ; Fri, 21 Aug 2009 13:12:17 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LDCHRd032307 for perforce@freebsd.org; Fri, 21 Aug 2009 13:12:17 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 21 Aug 2009 13:12:17 GMT Message-Id: <200908211312.n7LDCHRd032307@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Cc: Subject: PERFORCE change 167571 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: Fri, 21 Aug 2009 13:12:18 -0000 http://perforce.freebsd.org/chv.cgi?CH=167571 Change 167571 by hselasky@hselasky_laptop001 on 2009/08/21 13:11:26 IFC @ 167570 - catch up newbus locking change Affected files ... .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#25 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pf.c#15 integrate .. //depot/projects/usb/src/sys/contrib/pf/net/pfvar.h#6 integrate .. //depot/projects/usb/src/sys/dev/aac/aac.c#9 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#20 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#8 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#12 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_dock.c#7 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#9 integrate .. //depot/projects/usb/src/sys/dev/adb/adb_bus.c#5 integrate .. //depot/projects/usb/src/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/usb/src/sys/dev/amr/amr.c#10 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#19 integrate .. //depot/projects/usb/src/sys/dev/atkbdc/psm.c#12 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#20 integrate .. //depot/projects/usb/src/sys/dev/bktr/bktr_os.c#6 integrate .. //depot/projects/usb/src/sys/dev/drm/drm_drv.c#14 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_em.c#12 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_igb.c#13 integrate .. //depot/projects/usb/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 integrate .. //depot/projects/usb/src/sys/dev/ips/ips_pci.c#4 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfi.c#18 integrate .. //depot/projects/usb/src/sys/dev/mii/e1000phy.c#9 integrate .. //depot/projects/usb/src/sys/dev/mlx/mlx.c#8 integrate .. //depot/projects/usb/src/sys/dev/mmc/mmc.c#11 integrate .. //depot/projects/usb/src/sys/dev/pccbb/pccbb.c#14 integrate .. //depot/projects/usb/src/sys/dev/pst/pst-iop.c#4 integrate .. //depot/projects/usb/src/sys/dev/rp/rp.c#7 integrate .. //depot/projects/usb/src/sys/dev/sound/pci/hda/hdac.c#34 integrate .. //depot/projects/usb/src/sys/dev/twe/twe.c#4 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/usb_controller.c#30 edit .. //depot/projects/usb/src/sys/dev/usb/input/ukbd.c#31 edit .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#11 edit .. //depot/projects/usb/src/sys/dev/usb/usb_busdma.c#16 edit .. //depot/projects/usb/src/sys/dev/usb/usb_compat_linux.c#48 edit .. //depot/projects/usb/src/sys/dev/usb/usb_dev.c#36 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#50 edit .. //depot/projects/usb/src/sys/dev/usb/usb_handle_request.c#21 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#31 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_process.c#12 edit .. //depot/projects/usb/src/sys/dev/usb/wlan/if_upgt.c#15 integrate .. //depot/projects/usb/src/sys/dev/xen/blkback/blkback.c#4 integrate .. //depot/projects/usb/src/sys/dev/xen/netback/netback.c#4 integrate .. //depot/projects/usb/src/sys/i386/acpica/acpi_machdep.c#11 integrate .. //depot/projects/usb/src/sys/i386/bios/smapi.c#6 integrate .. //depot/projects/usb/src/sys/i386/bios/smbios.c#4 integrate .. //depot/projects/usb/src/sys/i386/bios/vpd.c#4 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#21 integrate .. //depot/projects/usb/src/sys/kern/subr_bus.c#27 integrate .. //depot/projects/usb/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/usb/src/sys/kern/tty_pty.c#10 integrate .. //depot/projects/usb/src/sys/net/flowtable.c#10 integrate .. //depot/projects/usb/src/sys/net/flowtable.h#7 integrate .. //depot/projects/usb/src/sys/netinet/ip_carp.c#19 integrate .. //depot/projects/usb/src/sys/netinet/ip_fw.h#19 integrate .. //depot/projects/usb/src/sys/netinet/ip_output.c#27 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw2.c#10 integrate .. //depot/projects/usb/src/sys/netinet/ipfw/ip_fw_pfil.c#4 integrate .. //depot/projects/usb/src/sys/netinet/sctp_output.c#22 integrate .. //depot/projects/usb/src/sys/netinet/sctputil.c#24 integrate .. //depot/projects/usb/src/sys/netinet/tcp_timewait.c#17 integrate .. //depot/projects/usb/src/sys/pc98/cbus/fdc.c#6 integrate .. //depot/projects/usb/src/sys/sys/bus.h#9 integrate .. //depot/projects/usb/src/sys/sys/sglist.h#2 integrate .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_probe.c#6 integrate Differences ... ==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#25 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.707 2009/08/02 11:26:23 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.709 2009/08/20 22:58:05 jkim Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -217,6 +217,7 @@ strncmp(sysenv, "MacBook3,1", 10) == 0 || strncmp(sysenv, "MacBookPro1,1", 13) == 0 || strncmp(sysenv, "MacBookPro1,2", 13) == 0 || + strncmp(sysenv, "MacBookPro3,1", 13) == 0 || strncmp(sysenv, "Macmini1,1", 10) == 0) { if (bootverbose) printf("Disabling LEGACY_USB_EN bit on " @@ -235,19 +236,21 @@ #ifdef PERFMON perfmon_init(); #endif + realmem = Maxmem; + + /* + * Display physical memory if SMBIOS reports reasonable amount. + */ + memsize = 0; sysenv = getenv("smbios.memory.enabled"); if (sysenv != NULL) { - memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10); + memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); - } else - memsize = 0; - if (memsize > 0) - printf("real memory = %ju (%ju MB)\n", memsize << 10, - memsize >> 10); - else - printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem), - ptoa((uintmax_t)Maxmem) / 1048576); - realmem = Maxmem; + } + if (memsize < ptoa((uintmax_t)cnt.v_free_count)) + memsize = ptoa((uintmax_t)Maxmem); + printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); + /* * Display any holes after the first chunk of extended memory. */ ==== //depot/projects/usb/src/sys/contrib/pf/net/pf.c#15 (text+ko) ==== @@ -41,7 +41,7 @@ #include "opt_inet6.h" #include -__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.69 2009/08/02 19:43:32 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/contrib/pf/net/pf.c,v 1.70 2009/08/19 00:10:10 mlaier Exp $"); #endif #ifdef __FreeBSD__ @@ -971,6 +971,9 @@ pf_purge_thread(void *v) { int nloops = 0, s; +#ifdef __FreeBSD__ + int locked; +#endif for (;;) { tsleep(pf_purge_thread, PWAIT, "pftm", 1 * hz); @@ -978,14 +981,19 @@ #ifdef __FreeBSD__ sx_slock(&pf_consistency_lock); PF_LOCK(); + locked = 0; if (pf_end_threads) { - pf_purge_expired_states(pf_status.states); + PF_UNLOCK(); + sx_sunlock(&pf_consistency_lock); + sx_xlock(&pf_consistency_lock); + PF_LOCK(); + pf_purge_expired_states(pf_status.states, 1); pf_purge_expired_fragments(); - pf_purge_expired_src_nodes(0); + pf_purge_expired_src_nodes(1); pf_end_threads++; - sx_sunlock(&pf_consistency_lock); + sx_xunlock(&pf_consistency_lock); PF_UNLOCK(); wakeup(pf_purge_thread); kproc_exit(0); @@ -994,20 +1002,44 @@ s = splsoftnet(); /* process a fraction of the state table every second */ +#ifdef __FreeBSD__ + if(!pf_purge_expired_states(1 + (pf_status.states + / pf_default_rule.timeout[PFTM_INTERVAL]), 0)) { + PF_UNLOCK(); + sx_sunlock(&pf_consistency_lock); + sx_xlock(&pf_consistency_lock); + PF_LOCK(); + locked = 1; + + pf_purge_expired_states(1 + (pf_status.states + / pf_default_rule.timeout[PFTM_INTERVAL]), 1); + } +#else pf_purge_expired_states(1 + (pf_status.states / pf_default_rule.timeout[PFTM_INTERVAL])); +#endif /* purge other expired types every PFTM_INTERVAL seconds */ if (++nloops >= pf_default_rule.timeout[PFTM_INTERVAL]) { pf_purge_expired_fragments(); - pf_purge_expired_src_nodes(0); + if (!pf_purge_expired_src_nodes(locked)) { + PF_UNLOCK(); + sx_sunlock(&pf_consistency_lock); + sx_xlock(&pf_consistency_lock); + PF_LOCK(); + locked = 1; + pf_purge_expired_src_nodes(1); + } nloops = 0; } splx(s); #ifdef __FreeBSD__ PF_UNLOCK(); - sx_sunlock(&pf_consistency_lock); + if (locked) + sx_xunlock(&pf_consistency_lock); + else + sx_sunlock(&pf_consistency_lock); #endif } } @@ -1056,8 +1088,13 @@ return (state->expire + timeout); } +#ifdef __FreeBSD__ +int +pf_purge_expired_src_nodes(int waslocked) +#else void pf_purge_expired_src_nodes(int waslocked) +#endif { struct pf_src_node *cur, *next; int locked = waslocked; @@ -1068,12 +1105,8 @@ if (cur->states <= 0 && cur->expire <= time_second) { if (! locked) { #ifdef __FreeBSD__ - if (!sx_try_upgrade(&pf_consistency_lock)) { - PF_UNLOCK(); - sx_sunlock(&pf_consistency_lock); - sx_xlock(&pf_consistency_lock); - PF_LOCK(); - } + if (!sx_try_upgrade(&pf_consistency_lock)) + return (0); #else rw_enter_write(&pf_consistency_lock); #endif @@ -1100,6 +1133,10 @@ #else rw_exit_write(&pf_consistency_lock); #endif + +#ifdef __FreeBSD__ + return (1); +#endif } void @@ -1202,12 +1239,21 @@ pf_status.states--; } +#ifdef __FreeBSD__ +int +pf_purge_expired_states(u_int32_t maxcheck, int waslocked) +#else void pf_purge_expired_states(u_int32_t maxcheck) +#endif { static struct pf_state *cur = NULL; struct pf_state *next; +#ifdef __FreeBSD__ + int locked = waslocked; +#else int locked = 0; +#endif while (maxcheck--) { /* wrap to start of list when we hit the end */ @@ -1224,12 +1270,8 @@ /* free unlinked state */ if (! locked) { #ifdef __FreeBSD__ - if (!sx_try_upgrade(&pf_consistency_lock)) { - PF_UNLOCK(); - sx_sunlock(&pf_consistency_lock); - sx_xlock(&pf_consistency_lock); - PF_LOCK(); - } + if (!sx_try_upgrade(&pf_consistency_lock)) + return (0); #else rw_enter_write(&pf_consistency_lock); #endif @@ -1241,12 +1283,8 @@ pf_unlink_state(cur); if (! locked) { #ifdef __FreeBSD__ - if (!sx_try_upgrade(&pf_consistency_lock)) { - PF_UNLOCK(); - sx_sunlock(&pf_consistency_lock); - sx_xlock(&pf_consistency_lock); - PF_LOCK(); - } + if (!sx_try_upgrade(&pf_consistency_lock)) + return (0); #else rw_enter_write(&pf_consistency_lock); #endif @@ -1257,10 +1295,13 @@ cur = next; } - if (locked) #ifdef __FreeBSD__ + if (!waslocked && locked) sx_downgrade(&pf_consistency_lock); + + return (1); #else + if (locked) rw_exit_write(&pf_consistency_lock); #endif } ==== //depot/projects/usb/src/sys/contrib/pf/net/pfvar.h#6 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.19 2009/07/14 22:48:30 rwatson Exp $ */ +/* $FreeBSD: src/sys/contrib/pf/net/pfvar.h,v 1.20 2009/08/19 00:10:10 mlaier Exp $ */ /* $OpenBSD: pfvar.h,v 1.244 2007/02/23 21:31:51 deraadt Exp $ */ /* @@ -1593,8 +1593,13 @@ extern struct pool pf_state_scrub_pl; #endif extern void pf_purge_thread(void *); +#ifdef __FreeBSD__ +extern int pf_purge_expired_src_nodes(int); +extern int pf_purge_expired_states(u_int32_t, int); +#else extern void pf_purge_expired_src_nodes(int); extern void pf_purge_expired_states(u_int32_t); +#endif extern void pf_unlink_state(struct pf_state *); extern void pf_free_state(struct pf_state *); extern int pf_insert_state(struct pfi_kif *, ==== //depot/projects/usb/src/sys/dev/aac/aac.c#9 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.143 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.144 2009/08/20 19:17:53 jhb Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -3270,10 +3270,10 @@ while (co != NULL) { if (co->co_found == 0) { mtx_unlock(&sc->aac_io_lock); - newbus_xlock(); + mtx_lock(&Giant); device_delete_child(sc->aac_dev, co->co_disk); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->aac_io_lock); co_next = TAILQ_NEXT(co, co_link); mtx_lock(&sc->aac_container_lock); @@ -3291,9 +3291,9 @@ /* Attach the newly created containers */ if (added) { mtx_unlock(&sc->aac_io_lock); - newbus_xlock(); + mtx_lock(&Giant); bus_generic_attach(sc->aac_dev); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->aac_io_lock); } ==== //depot/projects/usb/src/sys/dev/acpica/acpi.c#20 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.265 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.266 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -675,6 +675,8 @@ device_t child, *devlist; int error, i, numdevs, pstate; + GIANT_REQUIRED; + /* First give child devices a chance to suspend. */ error = bus_generic_suspend(dev); if (error) @@ -717,6 +719,8 @@ int i, numdevs, error; device_t child, *devlist; + GIANT_REQUIRED; + /* * Put all devices in D0 before resuming them. Call _S0D on each one * since some systems expect this. @@ -741,6 +745,8 @@ acpi_shutdown(device_t dev) { + GIANT_REQUIRED; + /* Allow children to shutdown first. */ bus_generic_shutdown(dev); @@ -2528,7 +2534,11 @@ thread_unlock(curthread); #endif - newbus_xlock(); + /* + * Be sure to hold Giant across DEVICE_SUSPEND/RESUME since non-MPSAFE + * drivers need this. + */ + mtx_lock(&Giant); slp_state = ACPI_SS_NONE; @@ -2601,7 +2611,7 @@ if (slp_state >= ACPI_SS_SLEPT) acpi_enable_fixed_events(sc); - newbus_xunlock(); + mtx_unlock(&Giant); #ifdef SMP thread_lock(curthread); ==== //depot/projects/usb/src/sys/dev/acpica/acpi_battery.c#8 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.29 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.30 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -329,7 +329,6 @@ dev = NULL; found_unit = 0; - newbus_slock(); batt_dc = devclass_find("battery"); maxunit = devclass_get_maxunit(batt_dc); for (i = 0; i < maxunit; i++) { @@ -341,7 +340,6 @@ found_unit++; dev = NULL; } - newbus_sunlock(); return (dev); } @@ -371,17 +369,13 @@ */ switch (cmd) { case ACPIIO_BATT_GET_UNITS: - newbus_slock(); *(int *)addr = acpi_battery_get_units(); - newbus_sunlock(); error = 0; break; case ACPIIO_BATT_GET_BATTINFO: if (dev != NULL || unit == ACPI_BATTERY_ALL_UNITS) { bzero(&ioctl_arg->battinfo, sizeof(ioctl_arg->battinfo)); - newbus_slock(); error = acpi_battery_get_battinfo(dev, &ioctl_arg->battinfo); - newbus_sunlock(); } break; case ACPIIO_BATT_GET_BIF: @@ -422,11 +416,6 @@ { int val, error; - /* - * Tolerate a race here because newbus lock can't be acquired before - * acpi_battery_get_battinfo() as it can create a LOR with the sysctl - * lock. - */ acpi_battery_get_battinfo(NULL, &acpi_battery_battinfo); val = *(u_int *)oidp->oid_arg1; error = sysctl_handle_int(oidp, &val, 0, req); @@ -438,10 +427,6 @@ { int count, error; - /* - * Tolerate a race here in order to avoid a LOR between sysctl lock - * and newbus lock. - */ count = acpi_battery_get_units(); error = sysctl_handle_int(oidp, &count, 0, req); return (error); ==== //depot/projects/usb/src/sys/dev/acpica/acpi_cpu.c#12 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.79 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.80 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -732,9 +732,7 @@ int i; /* Get set of CPU devices */ - newbus_slock(); devclass_get_devices(acpi_cpu_devclass, &cpu_devices, &cpu_ndevices); - newbus_sunlock(); /* * Setup any quirks that might necessary now that we have probed ==== //depot/projects/usb/src/sys/dev/acpica/acpi_dock.c#7 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.8 2009/08/02 14:28:40 attilio Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.9 2009/08/20 19:17:53 jhb Exp $ */ #include "opt_acpi.h" @@ -188,12 +188,12 @@ dev = (device_t)context; - newbus_xlock(); if (!device_is_enabled(dev)) device_enable(dev); + mtx_lock(&Giant); device_probe_and_attach(dev); - newbus_xunlock(); + mtx_unlock(&Giant); } static ACPI_STATUS @@ -299,11 +299,11 @@ "ejecting device for %s\n", acpi_name(handle)); dev = acpi_get_device(handle); - newbus_xlock(); if (dev != NULL && device_is_attached(dev)) { + mtx_lock(&Giant); device_detach(dev); + mtx_unlock(&Giant); } - newbus_xunlock(); acpi_SetInteger(handle, "_EJ0", 0); out: ==== //depot/projects/usb/src/sys/dev/acpica/acpi_thermal.c#9 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.72 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.73 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -936,8 +936,6 @@ sc = NULL; for (;;) { - newbus_slock(); - /* If the number of devices has changed, re-evaluate. */ if (devclass_get_count(acpi_tz_devclass) != devcount) { if (devs != NULL) { @@ -950,7 +948,6 @@ for (i = 0; i < devcount; i++) sc[i] = device_get_softc(devs[i]); } - newbus_sunlock(); /* Check for temperature events and act on them. */ for (i = 0; i < devcount; i++) { ==== //depot/projects/usb/src/sys/dev/adb/adb_bus.c#5 (text+ko) ==== @@ -22,7 +22,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/adb/adb_bus.c,v 1.5 2009/08/02 14:28:40 attilio Exp $ + * $FreeBSD: src/sys/dev/adb/adb_bus.c,v 1.6 2009/08/20 19:17:53 jhb Exp $ */ #include @@ -113,7 +113,6 @@ uint8_t i, next_free; uint16_t r3; - newbus_xlock(); sc->sc_dev = dev; sc->parent = device_get_parent(dev); @@ -188,7 +187,6 @@ } bus_generic_attach(dev); - newbus_xunlock(); config_intrhook_disestablish(&sc->enum_hook); } ==== //depot/projects/usb/src/sys/dev/amdtemp/amdtemp.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/amdtemp/amdtemp.c,v 1.4 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amdtemp/amdtemp.c,v 1.5 2009/08/20 19:17:53 jhb Exp $"); #include #include @@ -269,7 +269,6 @@ /* * dev.cpu.N.temperature. */ - newbus_xlock(); nexus = device_find_child(root_bus, "nexus", 0); acpi = device_find_child(nexus, "acpi", 0); @@ -286,7 +285,6 @@ "Max of sensor 0 / 1"); } } - newbus_xunlock(); config_intrhook_disestablish(&sc->sc_ich); } ==== //depot/projects/usb/src/sys/dev/amr/amr.c#10 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.90 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.91 2009/08/20 19:17:53 jhb Exp $"); /* * Driver for the AMI MegaRaid family of controllers. @@ -90,10 +90,6 @@ SYSCTL_NODE(_hw, OID_AUTO, amr, CTLFLAG_RD, 0, "AMR driver parameters"); -/* - * In order to get rid of Giant, amr_state should be protected by - * a proper softc lock for the cdev operations. - */ static d_open_t amr_open; static d_close_t amr_close; static d_ioctl_t amr_ioctl; @@ -316,11 +312,9 @@ config_intrhook_disestablish(&sc->amr_ich); sc->amr_ich.ich_func = NULL; - newbus_xlock(); /* get up-to-date drive information */ if (amr_query_controller(sc)) { device_printf(sc->amr_dev, "can't scan controller for drives\n"); - newbus_xunlock(); return; } @@ -353,7 +347,6 @@ /* interrupts will be enabled before we do anything more */ sc->amr_state |= AMR_STATE_INTEN; - newbus_xunlock(); /* * Start the timeout routine. @@ -441,12 +434,8 @@ amr_open(struct cdev *dev, int flags, int fmt, struct thread *td) { int unit = dev2unit(dev); - struct amr_softc *sc; + struct amr_softc *sc = devclass_get_softc(devclass_find("amr"), unit); - newbus_slock(); - sc = devclass_get_softc(devclass_find("amr"), unit); - newbus_sunlock(); - debug_called(1); sc->amr_state |= AMR_STATE_OPEN; @@ -501,11 +490,7 @@ amr_close(struct cdev *dev, int flags, int fmt, struct thread *td) { int unit = dev2unit(dev); - struct amr_softc *sc; - - newbus_slock(); - sc = devclass_get_softc(devclass_find("amr"), unit); - newbus_sunlock(); + struct amr_softc *sc = devclass_get_softc(devclass_find("amr"), unit); debug_called(1); @@ -522,7 +507,6 @@ struct amr_softc *sc = (struct amr_softc *)dev->si_drv1; int i, error = 0; - newbus_xlock(); sc->amr_state |= AMR_STATE_REMAP_LD; while (sc->amr_busyslots) { device_printf(sc->amr_dev, "idle controller\n"); @@ -546,7 +530,6 @@ sc->amr_drive[i].al_disk = 0; } } - newbus_xunlock(); shutdown_out: amr_startup(sc); @@ -822,9 +805,7 @@ struct amr_linux_ioctl ali; int adapter, error; - newbus_slock(); devclass = devclass_find("amr"); - newbus_sunlock(); if (devclass == NULL) return (ENOENT); ==== //depot/projects/usb/src/sys/dev/ata/ata-all.c#19 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.308 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.309 2009/08/20 19:17:53 jhb Exp $"); #include "opt_ata.h" #include @@ -54,6 +54,7 @@ static d_ioctl_t ata_ioctl; static struct cdevsw ata_cdevsw = { .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, /* we need this as newbus isn't mpsafe */ .d_ioctl = ata_ioctl, .d_name = "ata", }; @@ -203,9 +204,7 @@ { device_t dev = (device_t)context; - newbus_xlock(); ata_reinit(dev); - newbus_xunlock(); } int @@ -247,6 +246,7 @@ /* reinit the children and delete any that fails */ if (!device_get_children(dev, &children, &nchildren)) { + mtx_lock(&Giant); /* newbus suckage it needs Giant */ for (i = 0; i < nchildren; i++) { /* did any children go missing ? */ if (children[i] && device_is_attached(children[i]) && @@ -269,6 +269,7 @@ } } free(children, M_TEMP); + mtx_unlock(&Giant); /* newbus suckage dealt with, release Giant */ } /* if we still have a good request put it on the queue again */ @@ -394,7 +395,6 @@ int *value = (int *)data; int i, nchildren, error = ENOTTY; - newbus_xlock(); switch (cmd) { case IOCATAGMAXCHANNEL: /* In case we have channel 0..n this will return n+1. */ @@ -405,40 +405,32 @@ case IOCATAREINIT: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } error = ata_reinit(device); break; case IOCATAATTACH: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } error = DEVICE_ATTACH(device); break; case IOCATADETACH: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } error = DEVICE_DETACH(device); break; case IOCATADEVICES: if (devices->channel >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, devices->channel)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } bzero(devices->name[0], 32); bzero(&devices->params[0], sizeof(struct ata_params)); bzero(devices->name[1], 32); @@ -473,7 +465,6 @@ if (ata_raid_ioctl_func) error = ata_raid_ioctl_func(cmd, data); } - newbus_xunlock(); return error; } @@ -581,7 +572,7 @@ struct ata_channel *ch; int ctlr; - newbus_xlock(); + mtx_lock(&Giant); /* newbus suckage it needs Giant */ /* kick of probe and attach on all channels */ for (ctlr = 0; ctlr < devclass_get_maxunit(ata_devclass); ctlr++) { @@ -596,7 +587,8 @@ free(ata_delayed_attach, M_TEMP); ata_delayed_attach = NULL; } - newbus_xunlock(); + + mtx_unlock(&Giant); /* newbus suckage dealt with, release Giant */ } @@ -725,6 +717,7 @@ if (bootverbose) device_printf(dev, "Identifying devices: %08x\n", ch->devices); + mtx_lock(&Giant); /* Skip existing devices. */ if (!device_get_children(dev, &children, &nchildren)) { for (i = 0; i < nchildren; i++) { @@ -736,8 +729,10 @@ /* Create new devices. */ if (bootverbose) device_printf(dev, "New devices: %08x\n", n); - if (n == 0) + if (n == 0) { + mtx_unlock(&Giant); return (0); + } for (i = 0; i < ATA_PM; ++i) { if (n & (((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << i))) { int unit = -1; @@ -780,6 +775,7 @@ } bus_generic_probe(dev); bus_generic_attach(dev); + mtx_unlock(&Giant); return 0; } ==== //depot/projects/usb/src/sys/dev/atkbdc/psm.c#12 (text+ko) ==== @@ -59,7 +59,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/atkbdc/psm.c,v 1.104 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/atkbdc/psm.c,v 1.105 2009/08/20 19:17:53 jhb Exp $"); #include "opt_isa.h" #include "opt_psm.h" @@ -1488,9 +1488,7 @@ if (sc->state & PSM_OPEN) return (EBUSY); - newbus_xlock(); device_busy(devclass_get_device(psm_devclass, unit)); - newbus_xunlock(); /* Initialize state */ sc->mode.level = sc->dflt_mode.level; @@ -1645,9 +1643,7 @@ /* close is almost always successful */ sc->state &= ~PSM_OPEN; kbdc_lock(sc->kbdc, FALSE); - newbus_xlock(); device_unbusy(devclass_get_device(psm_devclass, unit)); - newbus_xunlock(); return (0); } ==== //depot/projects/usb/src/sys/dev/bge/if_bge.c#20 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.226 2009/06/26 11:45:06 rwatson Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bge/if_bge.c,v 1.227 2009/08/18 21:07:39 stas Exp $"); /* * Broadcom BCM570x family gigabit ethernet driver for FreeBSD. @@ -3055,12 +3055,14 @@ { struct ifnet *ifp; int rx_npkts = 0, stdcnt = 0, jumbocnt = 0; + uint16_t rx_prod, rx_cons; BGE_LOCK_ASSERT(sc); + rx_cons = sc->bge_rx_saved_considx; + rx_prod = sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx; /* Nothing to do. */ - if (sc->bge_rx_saved_considx == - sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx) + if (rx_cons == rx_prod) return (rx_npkts); ifp = sc->bge_ifp; @@ -3073,8 +3075,7 @@ bus_dmamap_sync(sc->bge_cdata.bge_rx_jumbo_ring_tag, sc->bge_cdata.bge_rx_jumbo_ring_map, BUS_DMASYNC_POSTREAD); - while (sc->bge_rx_saved_considx != - sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx) { + while (rx_cons != rx_prod) { struct bge_rx_bd *cur_rx; uint32_t rxidx; struct mbuf *m = NULL; @@ -3089,11 +3090,10 @@ } #endif - cur_rx = - &sc->bge_ldata.bge_rx_return_ring[sc->bge_rx_saved_considx]; + cur_rx = &sc->bge_ldata.bge_rx_return_ring[rx_cons]; rxidx = cur_rx->bge_idx; - BGE_INC(sc->bge_rx_saved_considx, sc->bge_return_ring_cnt); + BGE_INC(rx_cons, sc->bge_return_ring_cnt); if (ifp->if_capenable & IFCAP_VLAN_HWTAGGING && cur_rx->bge_flags & BGE_RXBDFLAG_VLAN_TAG) { >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Aug 21 15:37:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 84B38106568D; Fri, 21 Aug 2009 15:37:57 +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 E5E00106568C for ; Fri, 21 Aug 2009 15:37:56 +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 CA3248FC17 for ; Fri, 21 Aug 2009 15:37:56 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LFbuos045523 for ; Fri, 21 Aug 2009 15:37:56 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LFbuC4045521 for perforce@freebsd.org; Fri, 21 Aug 2009 15:37:56 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 21 Aug 2009 15:37:56 GMT Message-Id: <200908211537.n7LFbuC4045521@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 167574 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: Fri, 21 Aug 2009 15:37:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=167574 Change 167574 by pgj@beehive on 2009/08/21 15:37:03 IFC Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#36 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/basics/chapter.sgml#11 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#24 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/filesystems/chapter.sgml#10 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/multimedia/chapter.sgml#11 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml#13 integrate .. //depot/projects/docproj_hu/doc/share/pgpkeys/lulf.key#2 integrate .. //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#13 integrate .. //depot/projects/docproj_hu/www/en/releng/index.sgml#30 integrate .. //depot/projects/docproj_hu/www/hu/platforms/arm.sgml#10 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#14 edit .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#45 integrate .. //depot/projects/docproj_hu/www/share/sgml/events.xml#19 integrate Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#36 (text+ko) ==== @@ -1,7 +1,7 @@ + -uid Ulf Lilleengen -uid Ulf Lilleengen +pub 1024D/ADE1B837 2009-08-19 [expires: 2014-08-18] + Key fingerprint = 3822 B4E6 6D1C 6F71 4AA8 7A27 ADDF C400 ADE1 B837 +uid Ulf Lilleengen +uid Ulf Lilleengen uid Ulf Lilleengen -uid Ulf Lilleengen -uid Ulf Lilleengen uid Ulf Lilleengen -sub 1024g/CD5F3420 2003-12-21 +uid Ulf Lilleengen +sub 2048g/B5409122 2009-08-19 [expires: 2014-08-18] ]]> ==== //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#13 (text+ko) ==== @@ -17,7 +17,7 @@ The &os; Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1101 2009/05/18 22:46:59 delphij Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/article.sgml,v 1.1102 2009/08/19 03:52:15 edwin Exp $ 2000 @@ -411,6 +411,9 @@ &man.top.1; now supports a flag to provide per-CPU usage statistics. + &man.zdump.8; is now working properly on 64 bit architectures. + + &man.traceroute.8; now has the ability to print the AS number for each hop with the new switch; a new option allows selecting a particular @@ -468,8 +471,15 @@ 8.14.1 to 8.14.3. The timezone database has been updated from - the tzdata2008b release to - the tzdata2008h release. + the tzdata2008h release to + the tzdata2009j release. + + The stdtime part of libc, &man.zdump.8 and &man.zic.8 + have been updated from the tzcode2004a + release to the tzcode2009h release. + If you have upgraded from source or via the &man.freebsd-update.8, + then please run &man.tzsetup.8 to install a new /etc/localtime. + WPA Supplicant has been updated from 0.5.8 to 0.5.10. ==== //depot/projects/docproj_hu/www/en/releng/index.sgml#30 (text+ko) ==== @@ -1,6 +1,6 @@ - + @@ -54,9 +54,11 @@ - August 2009 + September 2009 FreeBSD 8.0 - Code Freeze since June 26th + Code Freeze since June 26th. A TODO list and a Release + status are available on the Wiki. ==== //depot/projects/docproj_hu/www/hu/platforms/arm.sgml#10 (text+ko) ==== @@ -1,7 +1,7 @@ - + ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#14 (text+ko) ==== @@ -17,7 +17,7 @@ - $FreeBSD: www/hu/share/sgml/events.xml,v 1.5 2009/06/18 02:23:38 pgj Exp $ + $FreeBSD: www/hu/share/sgml/events.xml,v 1.6 2009/08/16 20:39:07 pgj Exp $ ==== //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#45 (text+ko) ==== @@ -11,7 +11,7 @@ - $FreeBSD: www/hu/share/sgml/news.xml,v 1.17 2009/07/22 19:27:59 pgj Exp $ + $FreeBSD: www/hu/share/sgml/news.xml,v 1.18 2009/08/16 00:32:04 pgj Exp $ ==== //depot/projects/docproj_hu/www/share/sgml/events.xml#19 (text+ko) ==== @@ -10,7 +10,7 @@ - $FreeBSD: www/share/sgml/events.xml,v 1.74 2009/06/16 22:23:24 jkois Exp $ + $FreeBSD: www/share/sgml/events.xml,v 1.75 2009/08/20 19:57:47 kib Exp $ @@ -64,6 +64,27 @@ various projects. + + Kyiv BSD 2009 + http://kyivbsd.org.ua/ + + 2009 + 9 + 26 + + + 2009 + 9 + 26 + + + Ukraine + Kiev + + 26th September 2009 in Kiev, Ukraine will take place + first Ukrainian conference, dedicated to FreeBSD. + + IT Security Expo 2009 http://www.it-sa.de/en/ From owner-p4-projects@FreeBSD.ORG Fri Aug 21 16:05:27 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3A8BC1065690; Fri, 21 Aug 2009 16:05:27 +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 F348B106568E for ; Fri, 21 Aug 2009 16:05:26 +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 E266E8FC1A for ; Fri, 21 Aug 2009 16:05:26 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LG5QMj048484 for ; Fri, 21 Aug 2009 16:05:26 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LG5QeY048482 for perforce@freebsd.org; Fri, 21 Aug 2009 16:05:26 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 21 Aug 2009 16:05:26 GMT Message-Id: <200908211605.n7LG5QeY048482@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 167575 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: Fri, 21 Aug 2009 16:05:27 -0000 http://perforce.freebsd.org/chv.cgi?CH=167575 Change 167575 by pgj@beehive on 2009/08/21 16:04:51 MFen (www): 1.74 -> 1.75 hu/share/sgml/events.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#15 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#15 (text+ko) ==== @@ -11,7 +11,7 @@ @@ -78,6 +78,30 @@ bemutatósátrai. + + Kyiv BSD 2009 + http://kyivbsd.org.ua/ + + 2009 + 9 + 26 + + + 2009 + 9 + 26 + + + Ukrajna + Kiev + + + 2009. szeptember 26-án az ukrajnai Kiev + városában tartják az elsõ, + kizárólag &os;-nek szentelt + konferenciát. + + IT Security Expo 2009 http://www.it-sa.de/en/ From owner-p4-projects@FreeBSD.ORG Fri Aug 21 19:01:40 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A0FF106568E; Fri, 21 Aug 2009 19:01:40 +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 D137E106568C for ; Fri, 21 Aug 2009 19:01:39 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C02FF8FC0A for ; Fri, 21 Aug 2009 19:01:39 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LJ1d1I073491 for ; Fri, 21 Aug 2009 19:01:39 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LJ1dUe073489 for perforce@freebsd.org; Fri, 21 Aug 2009 19:01:39 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 19:01:39 GMT Message-Id: <200908211901.n7LJ1dUe073489@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167579 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: Fri, 21 Aug 2009 19:01:40 -0000 http://perforce.freebsd.org/chv.cgi?CH=167579 Change 167579 by stas@stas_yandex on 2009/08/21 19:00:55 - Correctly initialize registers on startup. Affected files ... .. //depot/projects/valgrind/coregrind/m_initimg/initimg-freebsd.c#8 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_initimg/initimg-freebsd.c#8 (text+ko) ==== @@ -874,7 +874,8 @@ VG_(memset)(&arch->vex_shadow2, 0, sizeof(VexGuestAMD64State)); /* Put essential stuff into the new state. */ - arch->vex.guest_RSP = iifii.initial_client_SP; + arch->vex.guest_RSP = ((iifii.initial_client_SP - 8) & ~0xFul) + 8; + arch->vex.guest_RDI = iifii.initial_client_SP; arch->vex.guest_RIP = iifii.initial_client_IP; # else From owner-p4-projects@FreeBSD.ORG Fri Aug 21 19:28:09 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 01CBA106568D; Fri, 21 Aug 2009 19:28: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 BA70F106568C for ; Fri, 21 Aug 2009 19:28:08 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A956D8FC12 for ; Fri, 21 Aug 2009 19:28:08 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LJS8ps076338 for ; Fri, 21 Aug 2009 19:28:08 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LJS8TD076336 for perforce@freebsd.org; Fri, 21 Aug 2009 19:28:08 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 19:28:08 GMT Message-Id: <200908211928.n7LJS8TD076336@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167580 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: Fri, 21 Aug 2009 19:28:09 -0000 http://perforce.freebsd.org/chv.cgi?CH=167580 Change 167580 by stas@stas_yandex on 2009/08/21 19:27:33 - Restore registers in syscall handler. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-freebsd.S#8 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/syscall-amd64-freebsd.S#8 (text+ko) ==== @@ -73,7 +73,7 @@ /* from vki_arch.h */ #define VKI_SIG_SETMASK 3 - + .globl ML_(do_syscall_for_client_WRK) ML_(do_syscall_for_client_WRK): /* save callee-saved regs */ @@ -102,7 +102,7 @@ jb 7f /* sigprocmask failed */ /* OK, that worked. Now do the syscall proper. */ - + /* 6 register parameters */ movq -16(%rbp), %r11 /* r11 = VexGuestAMD64State * */ movq OFFSET_amd64_RDI(%r11), %rdi @@ -150,7 +150,7 @@ movq $__NR_sigprocmask, %rax // syscall # movq $VKI_SIG_SETMASK, %rdi // how - movq %rcx, %rsi // postmask + movq -32(%rbp), %rsi // postmask xorq %rdx, %rdx // NULL syscall @@ -158,13 +158,23 @@ 5: /* now safe from signals */ - xor %rax,%rax + xorq %rax,%rax + movq -8(%rbp), %rdi + movq -16(%rbp), %rsi + movq -24(%rbp), %rdx + movq -32(%rbp), %rcx + movq -40(%rbp), %r8 movq %rbp, %rsp popq %rbp ret 7: /* failure: return 0x8000 | error code */ orq $0x8000, %rax + movq -8(%rbp), %rdi + movq -16(%rbp), %rsi + movq -24(%rbp), %rdx + movq -32(%rbp), %rcx + movq -40(%rbp), %r8 movq %rbp, %rsp popq %rbp ret From owner-p4-projects@FreeBSD.ORG Fri Aug 21 19:30:11 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 52A2E1065691; Fri, 21 Aug 2009 19:30: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 17800106568E for ; Fri, 21 Aug 2009 19:30:11 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 06AB98FC17 for ; Fri, 21 Aug 2009 19:30:11 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LJUAIO076490 for ; Fri, 21 Aug 2009 19:30:10 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LJUA0R076488 for perforce@freebsd.org; Fri, 21 Aug 2009 19:30:10 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 19:30:10 GMT Message-Id: <200908211930.n7LJUA0R076488@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167581 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: Fri, 21 Aug 2009 19:30:11 -0000 http://perforce.freebsd.org/chv.cgi?CH=167581 Change 167581 by stas@stas_yandex on 2009/08/21 19:29:47 - Remove local hacks that we don't probably need. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#10 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-generic.c#10 (text+ko) ==== @@ -2770,9 +2770,6 @@ { Addr brk_limit = VG_(brk_limit); Addr brk_new; -#ifdef VGP_x86_freebsd - ThreadState* tst; -#endif /* libc says: int brk(void *end_data_segment); kernel says: void* brk(void* end_data_segment); (more or less) @@ -2792,24 +2789,6 @@ PRINT("sys_brk ( %#lx )", ARG1); PRE_REG_READ1(unsigned long, "brk", unsigned long, end_data_segment); -#if defined(VGO_freebsd) -#if defined(VGP_x86_freebsd) - /* We have to preserve %edx across this call for libc/i386/brk.S */ - /* QQQ: only on 4.x? or 6.x as well? */ - tst = VG_(get_ThreadState)(tid); - brk_new = do_brk(ARG1); - SET_STATUS_Success2( brk_new, tst->arch.vex.guest_EDX ); -#elif defined(VGP_amd64_freebsd) - brk_new = do_brk(ARG1); - SET_STATUS_Success( brk_new ); -#else -#error "add your platform" -#endif -#else - brk_new = do_brk(ARG1); - SET_STATUS_Success( brk_new ); -#endif - brk_new = do_brk(ARG1); SET_STATUS_Success( brk_new ); From owner-p4-projects@FreeBSD.ORG Fri Aug 21 19:35:17 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 210811065692; Fri, 21 Aug 2009 19:35: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 D99FC106568F for ; Fri, 21 Aug 2009 19:35:16 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C79838FC22 for ; Fri, 21 Aug 2009 19:35:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LJZG9k076941 for ; Fri, 21 Aug 2009 19:35:16 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LJZGO9076939 for perforce@freebsd.org; Fri, 21 Aug 2009 19:35:16 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 19:35:16 GMT Message-Id: <200908211935.n7LJZGO9076939@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167582 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: Fri, 21 Aug 2009 19:35:17 -0000 http://perforce.freebsd.org/chv.cgi?CH=167582 Change 167582 by stas@stas_yandex on 2009/08/21 19:34:58 - Add addtional filed to SyscallArgs to store the syscall type instead of encoding it in high bits of syscall word as it breaks valgrind. Affected files ... .. //depot/projects/valgrind/coregrind/m_signals.c#12 edit .. //depot/projects/valgrind/coregrind/m_syscall.c#12 edit .. //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#10 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#11 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#17 edit .. //depot/projects/valgrind/coregrind/m_vkiscnums.c#3 edit .. //depot/projects/valgrind/include/pub_tool_basics.h#6 edit .. //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#6 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_signals.c#12 (text+ko) ==== @@ -507,7 +507,7 @@ # define VG_UCONTEXT_SYSCALL_SYSRES(uc) \ /* Convert the value in uc_mcontext.eax into a SysRes. */ \ VG_(mk_SysRes_x86_freebsd)( (uc)->uc_mcontext.eax, \ - (uc)->uc_mcontext.edx, (uc)->uc_mcontext.eflags ) + (uc)->uc_mcontext.edx, ((uc)->uc_mcontext.eflags & 1) != 0 ? True : False) # define VG_UCONTEXT_LINK_REG(uc) 0 /* What is an LR for anyway? */ #elif defined(VGP_amd64_freebsd) @@ -518,7 +518,7 @@ # define VG_UCONTEXT_SYSCALL_SYSRES(uc) \ /* Convert the value in uc_mcontext.rax into a SysRes. */ \ VG_(mk_SysRes_amd64_freebsd)( (uc)->uc_mcontext.rax, \ - (uc)->uc_mcontext.rdx, (uc)->uc_mcontext.rflags ) + (uc)->uc_mcontext.rdx, ((uc)->uc_mcontext.rflags & 1) != 0 ? True : False ) # define VG_UCONTEXT_LINK_REG(uc) 0 /* No LR on amd64 either */ #else # error Unknown platform ==== //depot/projects/valgrind/coregrind/m_syscall.c#12 (text+ko) ==== @@ -818,7 +818,7 @@ UInt err = 0; val = do_syscall_WRK(sysno, a1, a2, a3, a4, a5, a6, a7, a8, &err); - return VG_(mk_SysRes_x86_freebsd)( (UInt)val, (UInt)(val>>32), err); + return VG_(mk_SysRes_x86_freebsd)( (UInt)val, (UInt)(val>>32), (err & 1) != 0 ? True : False); # elif defined(VGP_amd64_freebsd) UWord val; @@ -826,7 +826,7 @@ UInt err = 0; val = do_syscall_WRK(sysno, a1, a2, a3, a4, a5, a6, a7, a8, &err, &val2); - return VG_(mk_SysRes_amd64_freebsd)( val, val2, err ? True : False); + return VG_(mk_SysRes_amd64_freebsd)( val, val2, (err & 1) != 0 ? True : False); # elif defined(VGP_ppc32_linux) ULong ret = do_syscall_WRK(sysno,a1,a2,a3,a4,a5,a6); ==== //depot/projects/valgrind/coregrind/m_syswrap/priv_types_n_macros.h#10 (text+ko) ==== @@ -50,6 +50,7 @@ /* Arguments for a syscall. */ typedef struct SyscallArgs { + Word class; Word sysno; UWord arg1; UWord arg2; @@ -291,11 +292,11 @@ # define GENX_(sysno, name) WRAPPER_ENTRY_X_(generic, sysno, name) # define GENXY(sysno, name) WRAPPER_ENTRY_XY(generic, sysno, name) #elif defined(VGO_freebsd) -# define GENX_(sysno, name) WRAPPER_ENTRY_X_(generic, VG_FREEBSD_SYSNO_INDEX(sysno), name) -# define GENXY(sysno, name) WRAPPER_ENTRY_XY(generic, VG_FREEBSD_SYSNO_INDEX(sysno), name) +# define GENX_(sysno, name) WRAPPER_ENTRY_X_(generic, sysno, name) +# define GENXY(sysno, name) WRAPPER_ENTRY_XY(generic, sysno, name) #elif defined(VGO_darwin) -# define GENX_(sysno, name) WRAPPER_ENTRY_X_(generic, VG_DARWIN_SYSNO_INDEX(sysno), name) -# define GENXY(sysno, name) WRAPPER_ENTRY_XY(generic, VG_DARWIN_SYSNO_INDEX(sysno), name) +# define GENX_(sysno, name) WRAPPER_ENTRY_X_(generic, sysno, name) +# define GENXY(sysno, name) WRAPPER_ENTRY_XY(generic, sysno, name) #else # error Unknown OS #endif ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-amd64-freebsd.c#11 (text+ko) ==== @@ -299,7 +299,7 @@ driver logic copies it back unchanged. Also, note %EAX is of the guest registers written by VG_(sigframe_destroy). */ rflags = LibVEX_GuestAMD64_get_rflags(&tst->arch.vex); - SET_STATUS_from_SysRes( VG_(mk_SysRes_amd64_freebsd)( tst->arch.vex.guest_RAX, tst->arch.vex.guest_RDX, rflags ) ); + SET_STATUS_from_SysRes( VG_(mk_SysRes_amd64_freebsd)( tst->arch.vex.guest_RAX, tst->arch.vex.guest_RDX, (rflags & 1) != 0 ? True : False) ); /* Check to see if some any signals arose as a result of this. */ *flags |= SfPollAfter; ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-main.c#17 (text+ko) ==== @@ -394,7 +394,6 @@ static Bool eq_SyscallStatus ( SyscallStatus* s1, SyscallStatus* s2 ) { - /* was: return s1->what == s2->what && sr_EQ( s1->sres, s2->sres ); */ if (s1->what == s2->what && sr_EQ( s1->sres, s2->sres )) return True; # if defined(VGO_darwin) @@ -484,15 +483,18 @@ // FreeBSD supports different calling conventions switch (gst->guest_EAX) { case __NR_syscall: - canonical->sysno = VG_FREEBSD_SYSCALL_CONSTRUCT(VG_FREEBSD_SYSCALL0, stack[1]); + canonical->class = VG_FREEBSD_SYSCALL0; + canonical->sysno = stack[1]; stack += 1; break; case __NR___syscall: - canonical->sysno = VG_FREEBSD_SYSCALL_CONSTRUCT(VG_FREEBSD_SYSCALL198, stack[1]); + canonical->class = VG_FREEBSD_SYSCALL198; + canonical->sysno = stack[1]; stack += 2; break; default: - canonical->sysno = VG_FREEBSD_SYSCALL_CONSTRUCT(0, gst->guest_EAX); + canonical->class = 0; + canonical->sysno = gst->guest_EAX; break; } // stack[0] is a (fake) return address @@ -512,15 +514,16 @@ // FreeBSD supports different calling conventions switch (gst->guest_RAX) { case __NR_syscall: - canonical->sysno = VG_FREEBSD_SYSCALL_CONSTRUCT(VG_FREEBSD_SYSCALL0, - gst->guest_RDI); + canonical->class = VG_FREEBSD_SYSCALL0; + canonical->sysno = gst->guest_RDI; break; case __NR___syscall: - canonical->sysno = VG_FREEBSD_SYSCALL_CONSTRUCT(VG_FREEBSD_SYSCALL198, - gst->guest_RDI); + canonical->class = VG_FREEBSD_SYSCALL198; + canonical->sysno = gst->guest_RDI; break; default: - canonical->sysno = VG_FREEBSD_SYSCALL_CONSTRUCT(0, gst->guest_RAX); + canonical->class = 0; + canonical->sysno = gst->guest_RAX; break; } // stack[0] is a (fake) return address @@ -743,19 +746,19 @@ UWord *stack = (UWord *)gst->guest_ESP; // stack[0] is a (fake) return address - switch (VG_FREEBSD_SYSNO_CLASS(canonical->sysno)) { + switch (canonical->class) { case VG_FREEBSD_SYSCALL0: gst->guest_EAX = __NR_syscall; - stack[1] = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); + stack[1] = canonical->sysno; stack++; break; case VG_FREEBSD_SYSCALL198: gst->guest_EAX = __NR___syscall; - stack[1] = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); + stack[1] = canonical->sysno; stack += 2; break; default: - gst->guest_EAX = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); + gst->guest_EAX = canonical->sysno; break; } stack[1] = canonical->arg1; @@ -772,10 +775,10 @@ UWord *stack = (UWord *)gst->guest_RSP; // stack[0] is a (fake) return address - switch (VG_FREEBSD_SYSNO_CLASS(canonical->sysno)) { + switch (canonical->class) { case VG_FREEBSD_SYSCALL0: gst->guest_RAX = __NR_syscall; - gst->guest_RDI = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); + gst->guest_RDI = canonical->sysno; gst->guest_RSI = canonical->arg1; gst->guest_RDX = canonical->arg2; gst->guest_R10 = canonical->arg3; @@ -787,7 +790,7 @@ break; case VG_FREEBSD_SYSCALL198: gst->guest_RAX = __NR___syscall; - gst->guest_RDI = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); + gst->guest_RDI = canonical->sysno; gst->guest_RSI = canonical->arg1; gst->guest_RDX = canonical->arg2; gst->guest_R10 = canonical->arg3; @@ -798,7 +801,7 @@ stack[3] = canonical->arg8; break; default: - gst->guest_RAX = VG_FREEBSD_SYSNO_INDEX(canonical->sysno); + gst->guest_RAX = canonical->sysno; gst->guest_RDI = canonical->arg1; gst->guest_RSI = canonical->arg2; gst->guest_RDX = canonical->arg3; @@ -907,7 +910,7 @@ UInt flags = LibVEX_GuestX86_get_eflags(gst); canonical->sres = VG_(mk_SysRes_x86_freebsd)(gst->guest_EAX, gst->guest_EDX, - flags); + (flags & 1) != 0 ? True : False); canonical->what = SsComplete; # elif defined(VGP_amd64_freebsd) @@ -915,7 +918,7 @@ VexGuestAMD64State* gst = (VexGuestAMD64State*)gst_vanilla; ULong flags = LibVEX_GuestAMD64_get_rflags(gst); canonical->sres = VG_(mk_SysRes_amd64_freebsd)(gst->guest_RAX, gst->guest_RDX, - flags); + (flags & 1) != 0 ? True : False); canonical->what = SsComplete; # elif defined(VGP_ppc32_aix5) ==== //depot/projects/valgrind/coregrind/m_vkiscnums.c#3 (text+ko) ==== @@ -76,7 +76,7 @@ Char* VG_(sysnum_string)(Word sysnum, SizeT n_buf, Char* buf) { - VG_(snprintf)(buf, n_buf, "%3ld", VG_FREEBSD_SYSNO_INDEX(sysnum)); + VG_(snprintf)(buf, n_buf, "%3ld", sysnum); return buf; } ==== //depot/projects/valgrind/include/pub_tool_basics.h#6 (text+ko) ==== @@ -253,10 +253,10 @@ return sr._isError ? sr._val : 0; } static inline Bool sr_EQ ( SysRes sr1, SysRes sr2 ) { - return sr1._val == sr2._val - && sr1._val2 == sr2._val2 - && ((sr1._isError && sr2._isError) - || (!sr1._isError && !sr2._isError)); + return sr_Res(sr1) == sr_Res(sr2) + && sr_ResHI(sr1) == sr_ResHI(sr2) + && ((sr_isError(sr1) && sr_isError(sr2)) + || (!sr_isError(sr1) && !sr_isError(sr2))); } #elif defined(VGO_aix5) ==== //depot/projects/valgrind/include/vki/vki-scnums-freebsd.h#6 (text+ko) ==== @@ -27,20 +27,10 @@ #ifndef __VKI_UNISTD_FREEBSD_H #define __VKI_UNISTD_FREEBSD_H -#define VG_FREEBSD_SYSCALL_CLASS_SHIFT 16 -#define VG_FREEBSD_SYSCALL_CLASS_MASK 0xFFFF -#define VG_FREEBSD_SYSCALL_NUMBER_MASK 0xFFFF - +#define VG_FREEBSD_SYSCALL_STD 0 #define VG_FREEBSD_SYSCALL0 1 #define VG_FREEBSD_SYSCALL198 2 -#define VG_FREEBSD_SYSCALL_CONSTRUCT(class, sysno) \ - ((class << VG_FREEBSD_SYSCALL_CLASS_SHIFT) | sysno ) - -#define VG_FREEBSD_SYSNO_INDEX(sysno) ((sysno) & VG_FREEBSD_SYSCALL_NUMBER_MASK) -#define VG_FREEBSD_SYSNO_CLASS(sysno) \ - (((sysno) >> VG_FREEBSD_SYSCALL_CLASS_SHIFT) & VG_FREEBSD_SYSCALL_CLASS_MASK) - // From sys/syscall.h #define __NR_syscall 0 From owner-p4-projects@FreeBSD.ORG Fri Aug 21 22:34:33 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 384FF106568F; Fri, 21 Aug 2009 22:34:33 +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 F1156106568E for ; Fri, 21 Aug 2009 22:34:32 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E0A4B8FC19 for ; Fri, 21 Aug 2009 22:34:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LMYWYa003050 for ; Fri, 21 Aug 2009 22:34:32 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LMYWMc003048 for perforce@freebsd.org; Fri, 21 Aug 2009 22:34:32 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 22:34:32 GMT Message-Id: <200908212234.n7LMYWMc003048@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167587 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: Fri, 21 Aug 2009 22:34:33 -0000 http://perforce.freebsd.org/chv.cgi?CH=167587 Change 167587 by stas@stas_orion on 2009/08/21 22:34:15 - Let FS segment overrided instructions work. TLS requires it. Affected files ... .. //depot/projects/valgrind/coregrind/m_translate.c#4 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_translate.c#4 (text+ko) ==== @@ -1425,6 +1425,9 @@ # if defined(VGP_amd64_linux) vex_abiinfo.guest_amd64_assume_fs_is_zero = True; # endif +# if defined(VGP_amd64_freebsd) + vex_abiinfo.guest_amd64_assume_fs_is_zero = True; +# endif # if defined(VGP_amd64_darwin) vex_abiinfo.guest_amd64_assume_gs_is_0x60 = True; # endif From owner-p4-projects@FreeBSD.ORG Fri Aug 21 22:35:34 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 70A78106568F; Fri, 21 Aug 2009 22:35:34 +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 35480106568C for ; Fri, 21 Aug 2009 22:35:34 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 249FF8FC0C for ; Fri, 21 Aug 2009 22:35:34 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LMZYmk003156 for ; Fri, 21 Aug 2009 22:35:34 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LMZYmS003154 for perforce@freebsd.org; Fri, 21 Aug 2009 22:35:34 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 22:35:34 GMT Message-Id: <200908212235.n7LMZYmS003154@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167588 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: Fri, 21 Aug 2009 22:35:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=167588 Change 167588 by stas@stas_orion on 2009/08/21 22:35:32 - Use lower addr of 64k instead of 64m. Otherwise valgrind fails to map heap area properly. Affected files ... .. //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#6 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_aspacemgr/aspacemgr-linux.c#6 (text+ko) ==== @@ -1610,7 +1610,7 @@ aspacem_minAddr = (Addr) 0x00010000; // 64K aspacem_maxAddr = VG_PGROUNDDN( sp_at_startup ) - 1; # else - aspacem_minAddr = (Addr) 0x04000000; // 64M + aspacem_minAddr = (Addr) 0x00010000; // 64k aspacem_maxAddr = (Addr) (Addr)0x800000000 - 1; // 32G # ifdef ENABLE_INNER { Addr cse = VG_PGROUNDDN( sp_at_startup ) - 1; From owner-p4-projects@FreeBSD.ORG Fri Aug 21 22:45:45 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C0A95106568E; Fri, 21 Aug 2009 22:45:45 +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 8568B106568B for ; Fri, 21 Aug 2009 22:45:45 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 74C4A8FC0A for ; Fri, 21 Aug 2009 22:45:45 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LMjjsT004056 for ; Fri, 21 Aug 2009 22:45:45 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LMjjIk004054 for perforce@freebsd.org; Fri, 21 Aug 2009 22:45:45 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 22:45:45 GMT Message-Id: <200908212245.n7LMjjIk004054@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167590 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: Fri, 21 Aug 2009 22:45:46 -0000 http://perforce.freebsd.org/chv.cgi?CH=167590 Change 167590 by stas@stas_orion on 2009/08/21 22:45:26 - FreeBSD may copy the last file page to the following section, so the size of mapping will be smaller than filesiz. Affected files ... .. //depot/projects/valgrind/coregrind/m_debuginfo/readelf.c#8 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_debuginfo/readelf.c#8 (text+ko) ==== @@ -1262,7 +1262,8 @@ else if (rw_svma_limit == 0 && phdr->p_offset >= di->rw_map_foff && phdr->p_offset < di->rw_map_foff + di->rw_map_size - && phdr->p_offset + phdr->p_filesz <= di->rw_map_foff + di->rw_map_size) { + && phdr->p_offset + (phdr->p_filesz & ~(VKI_PAGE_SIZE - 1)) + <= di->rw_map_foff + di->rw_map_size) { rw_svma_base = phdr->p_vaddr; rw_svma_limit = phdr->p_vaddr + phdr->p_memsz; rw_bias = di->rw_map_avma - di->rw_map_foff + phdr->p_offset - phdr->p_vaddr; From owner-p4-projects@FreeBSD.ORG Fri Aug 21 22:55:57 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 17840106568F; Fri, 21 Aug 2009 22:55:57 +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 D0161106568B for ; Fri, 21 Aug 2009 22:55:56 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BF9648FC0A for ; Fri, 21 Aug 2009 22:55:56 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LMtu1g004840 for ; Fri, 21 Aug 2009 22:55:56 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LMtuOD004838 for perforce@freebsd.org; Fri, 21 Aug 2009 22:55:56 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 22:55:56 GMT Message-Id: <200908212255.n7LMtuOD004838@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167592 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: Fri, 21 Aug 2009 22:55:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=167592 Change 167592 by stas@stas_orion on 2009/08/21 22:55:42 - Fix address rounddown. Affected files ... .. //depot/projects/valgrind/coregrind/m_debuginfo/readelf.c#9 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_debuginfo/readelf.c#9 (text+ko) ==== @@ -1262,7 +1262,7 @@ else if (rw_svma_limit == 0 && phdr->p_offset >= di->rw_map_foff && phdr->p_offset < di->rw_map_foff + di->rw_map_size - && phdr->p_offset + (phdr->p_filesz & ~(VKI_PAGE_SIZE - 1)) + && ((phdr->p_offset + phdr->p_filesz) & ~(VKI_PAGE_SIZE - 1)) <= di->rw_map_foff + di->rw_map_size) { rw_svma_base = phdr->p_vaddr; rw_svma_limit = phdr->p_vaddr + phdr->p_memsz; From owner-p4-projects@FreeBSD.ORG Fri Aug 21 22:56:58 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69AC41065690; Fri, 21 Aug 2009 22:56:58 +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 2D3C0106568D for ; Fri, 21 Aug 2009 22:56:58 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 033E58FC18 for ; Fri, 21 Aug 2009 22:56:58 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LMuvMi004898 for ; Fri, 21 Aug 2009 22:56:57 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LMuvGK004896 for perforce@freebsd.org; Fri, 21 Aug 2009 22:56:57 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 22:56:57 GMT Message-Id: <200908212256.n7LMuvGK004896@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167593 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: Fri, 21 Aug 2009 22:56:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=167593 Change 167593 by stas@stas_orion on 2009/08/21 22:56:07 - Implement fcntl wrapper. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#36 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#36 (text+ko) ==== @@ -3048,6 +3048,60 @@ POST_MEM_WRITE( ARG1, sizeof(struct vki_ucontext) ); } +PRE(sys_fcntl) +{ + switch (ARG2) { + // These ones ignore ARG3. + case VKI_F_GETFD: + case VKI_F_GETFL: + case VKI_F_GETOWN: + PRINT("sys_fcntl ( %ld, %ld )", ARG1,ARG2); + PRE_REG_READ2(long, "fcntl", unsigned int, fd, unsigned int, cmd); + break; + + // These ones use ARG3 as "arg". + case VKI_F_DUPFD: + case VKI_F_SETFD: + case VKI_F_SETFL: + case VKI_F_SETOWN: + PRINT("sys_fcntl[ARG3=='arg'] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "fcntl", + unsigned int, fd, unsigned int, cmd, unsigned long, arg); + break; + + // These ones use ARG3 as "lock". + case VKI_F_GETLK: + case VKI_F_SETLK: + case VKI_F_SETLKW: + PRINT("sys_fcntl[ARG3=='lock'] ( %ld, %ld, %#lx )", ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "fcntl", + unsigned int, fd, unsigned int, cmd, + struct flock64 *, lock); + break; + + default: + PRINT("sys_fcntl[UNKNOWN] ( %ld, %ld, %ld )", ARG1,ARG2,ARG3); + I_die_here; + break; + } + if (ARG2 == VKI_F_SETLKW) + *flags |= SfMayBlock; +} + +POST(sys_fcntl) +{ + vg_assert(SUCCESS); + if (ARG2 == VKI_F_DUPFD) { + if (!ML_(fd_allowed)(RES, "fcntl(DUPFD)", tid, True)) { + VG_(close)(RES); + SET_STATUS_Failure( VKI_EMFILE ); + } else { + if (VG_(clo_track_fds)) + ML_(record_fd_open_named)(tid, RES); + } + } +} + #undef PRE #undef POST @@ -3167,7 +3221,7 @@ GENXY(__NR_dup2, sys_dup2), // 90 // unimpl getdopt 91 -// GENXY(__NR_fcntl, sys_fcntl), // 92 + BSDXY(__NR_fcntl, sys_fcntl), // 92 GENX_(__NR_select, sys_select), // 93 // unimpl setdopt 94 GENX_(__NR_fsync, sys_fsync), // 95 From owner-p4-projects@FreeBSD.ORG Fri Aug 21 23:07:10 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 002B8106568F; Fri, 21 Aug 2009 23:07: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 B8E7E106568C for ; Fri, 21 Aug 2009 23:07:09 +0000 (UTC) (envelope-from stas@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8DF3F8FC0C for ; Fri, 21 Aug 2009 23:07:09 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7LN79ud006629 for ; Fri, 21 Aug 2009 23:07:09 GMT (envelope-from stas@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7LN79n6006627 for perforce@freebsd.org; Fri, 21 Aug 2009 23:07:09 GMT (envelope-from stas@freebsd.org) Date: Fri, 21 Aug 2009 23:07:09 GMT Message-Id: <200908212307.n7LN79n6006627@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to stas@freebsd.org using -f From: Stanislav Sedov To: Perforce Change Reviews Cc: Subject: PERFORCE change 167595 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: Fri, 21 Aug 2009 23:07:10 -0000 http://perforce.freebsd.org/chv.cgi?CH=167595 Change 167595 by stas@stas_orion on 2009/08/21 23:06:20 - Add a basic ioctl handler. With this chane the basic vlagrind on amd64 should be mostly functional. Affected files ... .. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#18 edit .. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#37 edit Differences ... ==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#18 (text+ko) ==== @@ -261,6 +261,8 @@ DECL_TEMPLATE(freebsd, sys_thr_new); DECL_TEMPLATE(freebsd, sys_thr_kill); DECL_TEMPLATE(freebsd, sys_thr_kill2); +DECL_TEMPLATE(freebsd, sys_fcntl); +DECL_TEMPLATE(freebsd, sys_ioctl); #endif // __PRIV_SYSWRAP_FREEBSD_H /*--------------------------------------------------------------------*/ ==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#37 (text+ko) ==== @@ -3102,6 +3102,58 @@ } } +PRE(sys_ioctl) +{ + UInt dir = _VKI_IOC_DIR(ARG2); + UInt size = _VKI_IOC_SIZE(ARG2); + *flags |= SfMayBlock; + PRINT("sys_ioctl ( %ld, 0x%lx, %#lx )",ARG1,ARG2,ARG3); + PRE_REG_READ3(long, "ioctl", + unsigned int, fd, unsigned int, request, unsigned long, arg); + +/* On FreeBSD, ALL ioctl's are IOR/IOW encoded. Just use the default decoder */ + if (VG_(strstr)(VG_(clo_sim_hints), "lax-ioctls") != NULL) { + /* + * Be very lax about ioctl handling; the only + * assumption is that the size is correct. Doesn't + * require the full buffer to be initialized when + * writing. Without this, using some device + * drivers with a large number of strange ioctl + * commands becomes very tiresome. + */ + } else if (/* size == 0 || */ dir == _VKI_IOC_NONE) { + static Int moans = 3; + if (moans > 0 && !VG_(clo_xml)) { + moans--; + VG_(message)(Vg_UserMsg, + "Warning: noted but unhandled ioctl 0x%lx" + " with no size/direction hints", + ARG2); + VG_(message)(Vg_UserMsg, + " This could cause spurious value errors" + " to appear."); + VG_(message)(Vg_UserMsg, + " See README_MISSING_SYSCALL_OR_IOCTL for " + "guidance on writing a proper wrapper." ); + } + } else { + if ((dir & _VKI_IOC_WRITE) && size > 0) + PRE_MEM_READ( "ioctl(generic)", ARG3, size); + if ((dir & _VKI_IOC_READ) && size > 0) + PRE_MEM_WRITE( "ioctl(generic)", ARG3, size); + } +} + +POST(sys_ioctl) +{ + UInt dir = _VKI_IOC_DIR(ARG2); + UInt size = _VKI_IOC_SIZE(ARG2); + vg_assert(SUCCESS); + if (size > 0 && (dir & _VKI_IOC_READ) + && RES == 0 && ARG3 != (Addr)NULL) + POST_MEM_WRITE(ARG3, size); +} + #undef PRE #undef POST @@ -3173,7 +3225,7 @@ // 4.3 sigpending 52 GENXY(__NR_sigaltstack, sys_sigaltstack), // 53 -// GENXY(__NR_ioctl, sys_ioctl), // 54 + BSDXY(__NR_ioctl, sys_ioctl), // 54 // BSDX_(__NR_reboot, sys_reboot), // 55 BSDX_(__NR_revoke, sys_revoke), // 56 From owner-p4-projects@FreeBSD.ORG Sat Aug 22 13:58:35 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3D5A6106568E; Sat, 22 Aug 2009 13:58:35 +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 F3AE9106568C for ; Sat, 22 Aug 2009 13:58:34 +0000 (UTC) (envelope-from antab@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E0BD88FC08 for ; Sat, 22 Aug 2009 13:58:34 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MDwY5P085096 for ; Sat, 22 Aug 2009 13:58:34 GMT (envelope-from antab@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MDwOjx085086 for perforce@freebsd.org; Sat, 22 Aug 2009 13:58:24 GMT (envelope-from antab@FreeBSD.org) Date: Sat, 22 Aug 2009 13:58:24 GMT Message-Id: <200908221358.n7MDwOjx085086@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to antab@FreeBSD.org using -f From: Arnar Mar Sig To: Perforce Change Reviews Cc: Subject: PERFORCE change 167613 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: Sat, 22 Aug 2009 13:58:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=167613 Change 167613 by antab@antab_farm on 2009/08/22 13:58:00 IFC @ 167570 Affected files ... .. //depot/projects/avr32/src/MAINTAINERS#4 integrate .. //depot/projects/avr32/src/Makefile.inc1#8 integrate .. //depot/projects/avr32/src/ObsoleteFiles.inc#10 integrate .. //depot/projects/avr32/src/UPDATING#12 integrate .. //depot/projects/avr32/src/bin/chmod/chmod.c#3 integrate .. //depot/projects/avr32/src/bin/ln/ln.1#2 integrate .. //depot/projects/avr32/src/bin/ln/ln.c#2 integrate .. //depot/projects/avr32/src/bin/ps/ps.1#3 integrate .. //depot/projects/avr32/src/bin/ps/ps.c#3 integrate .. //depot/projects/avr32/src/cddl/contrib/opensolaris/head/thread.h#2 integrate .. //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_sendrecv.c#2 integrate .. //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c#2 integrate .. //depot/projects/avr32/src/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h#3 integrate .. //depot/projects/avr32/src/cddl/lib/Makefile.inc#2 integrate .. //depot/projects/avr32/src/cddl/lib/libctf/Makefile#2 integrate .. //depot/projects/avr32/src/cddl/lib/libdtrace/Makefile#2 integrate .. //depot/projects/avr32/src/cddl/lib/libnvpair/Makefile#2 integrate .. //depot/projects/avr32/src/contrib/amd/amd/get_args.c#2 integrate .. //depot/projects/avr32/src/contrib/bind9/CHANGES#5 integrate .. //depot/projects/avr32/src/contrib/bind9/bin/named/update.c#3 integrate .. //depot/projects/avr32/src/contrib/bind9/version#5 integrate .. //depot/projects/avr32/src/contrib/bzip2/FREEBSD-vendor#2 integrate .. //depot/projects/avr32/src/contrib/file/magic2mime#1 branch .. //depot/projects/avr32/src/contrib/gcc/config/freebsd-spec.h#2 integrate .. //depot/projects/avr32/src/contrib/gcc/dwarf2out.c#2 integrate .. //depot/projects/avr32/src/contrib/less/LICENSE#3 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.aut#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.dsb#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.dsg#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.dsu#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.in#3 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.o2e#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.o9c#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.o9u#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.wnb#2 integrate .. //depot/projects/avr32/src/contrib/less/Makefile.wnm#2 integrate .. //depot/projects/avr32/src/contrib/less/NEWS#3 integrate .. //depot/projects/avr32/src/contrib/less/README#3 integrate .. //depot/projects/avr32/src/contrib/less/brac.c#3 integrate .. //depot/projects/avr32/src/contrib/less/ch.c#3 integrate .. //depot/projects/avr32/src/contrib/less/charset.c#3 integrate .. //depot/projects/avr32/src/contrib/less/charset.h#3 integrate .. //depot/projects/avr32/src/contrib/less/cmd.h#3 integrate .. //depot/projects/avr32/src/contrib/less/cmdbuf.c#3 integrate .. //depot/projects/avr32/src/contrib/less/command.c#3 integrate .. //depot/projects/avr32/src/contrib/less/configure.ac#3 integrate .. //depot/projects/avr32/src/contrib/less/cvt.c#1 branch .. //depot/projects/avr32/src/contrib/less/decode.c#3 integrate .. //depot/projects/avr32/src/contrib/less/defines.ds#3 integrate .. //depot/projects/avr32/src/contrib/less/defines.o2#3 integrate .. //depot/projects/avr32/src/contrib/less/defines.o9#3 integrate .. //depot/projects/avr32/src/contrib/less/defines.wn#3 integrate .. //depot/projects/avr32/src/contrib/less/edit.c#3 integrate .. //depot/projects/avr32/src/contrib/less/filename.c#3 integrate .. //depot/projects/avr32/src/contrib/less/forwback.c#3 integrate .. //depot/projects/avr32/src/contrib/less/funcs.h#3 integrate .. //depot/projects/avr32/src/contrib/less/ifile.c#3 integrate .. //depot/projects/avr32/src/contrib/less/input.c#3 integrate .. //depot/projects/avr32/src/contrib/less/jump.c#3 integrate .. //depot/projects/avr32/src/contrib/less/less.h#3 integrate .. //depot/projects/avr32/src/contrib/less/less.man#3 integrate .. //depot/projects/avr32/src/contrib/less/less.nro#3 integrate .. //depot/projects/avr32/src/contrib/less/lessecho.c#3 integrate .. //depot/projects/avr32/src/contrib/less/lessecho.man#3 integrate .. //depot/projects/avr32/src/contrib/less/lessecho.nro#3 integrate .. //depot/projects/avr32/src/contrib/less/lesskey.c#3 integrate .. //depot/projects/avr32/src/contrib/less/lesskey.h#3 integrate .. //depot/projects/avr32/src/contrib/less/lesskey.man#3 integrate .. //depot/projects/avr32/src/contrib/less/lesskey.nro#3 integrate .. //depot/projects/avr32/src/contrib/less/lglob.h#3 integrate .. //depot/projects/avr32/src/contrib/less/line.c#4 integrate .. //depot/projects/avr32/src/contrib/less/linenum.c#3 integrate .. //depot/projects/avr32/src/contrib/less/lsystem.c#3 integrate .. //depot/projects/avr32/src/contrib/less/main.c#3 integrate .. //depot/projects/avr32/src/contrib/less/mark.c#3 integrate .. //depot/projects/avr32/src/contrib/less/mkhelp.c#3 integrate .. //depot/projects/avr32/src/contrib/less/optfunc.c#3 integrate .. //depot/projects/avr32/src/contrib/less/option.c#3 integrate .. //depot/projects/avr32/src/contrib/less/option.h#3 integrate .. //depot/projects/avr32/src/contrib/less/opttbl.c#3 integrate .. //depot/projects/avr32/src/contrib/less/os.c#3 integrate .. //depot/projects/avr32/src/contrib/less/output.c#3 integrate .. //depot/projects/avr32/src/contrib/less/pattern.c#1 branch .. //depot/projects/avr32/src/contrib/less/pattern.h#1 branch .. //depot/projects/avr32/src/contrib/less/pckeys.h#3 integrate .. //depot/projects/avr32/src/contrib/less/position.c#3 integrate .. //depot/projects/avr32/src/contrib/less/position.h#3 integrate .. //depot/projects/avr32/src/contrib/less/prompt.c#3 integrate .. //depot/projects/avr32/src/contrib/less/screen.c#3 integrate .. //depot/projects/avr32/src/contrib/less/scrsize.c#3 integrate .. //depot/projects/avr32/src/contrib/less/search.c#3 integrate .. //depot/projects/avr32/src/contrib/less/signal.c#3 integrate .. //depot/projects/avr32/src/contrib/less/tags.c#3 integrate .. //depot/projects/avr32/src/contrib/less/ttyin.c#3 integrate .. //depot/projects/avr32/src/contrib/less/version.c#3 integrate .. //depot/projects/avr32/src/contrib/netcat/FREEBSD-vendor#2 integrate .. //depot/projects/avr32/src/contrib/netcat/nc.1#3 integrate .. //depot/projects/avr32/src/contrib/ntp/scripts/mkver.in#2 integrate .. //depot/projects/avr32/src/contrib/openbsm/NEWS#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/README#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/VERSION#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/config/config.h#3 integrate .. //depot/projects/avr32/src/contrib/openbsm/configure#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/configure.ac#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/etc/audit_event#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/libauditd/auditd_lib.c#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/libbsm/bsm_control.c#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/libbsm/bsm_errno.c#3 integrate .. //depot/projects/avr32/src/contrib/openbsm/libbsm/bsm_io.c#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/libbsm/bsm_token.c#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/man/audit_control.5#3 integrate .. //depot/projects/avr32/src/contrib/openbsm/sys/bsm/audit.h#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/sys/bsm/audit_kevents.h#4 integrate .. //depot/projects/avr32/src/contrib/openbsm/tools/audump.c#3 integrate .. //depot/projects/avr32/src/contrib/openpam/FREEBSD-vendor#2 integrate .. //depot/projects/avr32/src/contrib/sendmail/cf/sh/makeinfo.sh#2 integrate .. //depot/projects/avr32/src/contrib/tcpdump/ieee802_11.h#3 integrate .. //depot/projects/avr32/src/contrib/tcpdump/ieee802_11_radio.h#3 integrate .. //depot/projects/avr32/src/contrib/tcpdump/print-802_11.c#3 integrate .. //depot/projects/avr32/src/contrib/tcsh/Fixes#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/Imakefile#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/Makefile.ADMIN#2 delete .. //depot/projects/avr32/src/contrib/tcsh/Makefile.in#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/README#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/RELEASE-PROCEDURE#2 delete .. //depot/projects/avr32/src/contrib/tcsh/complete.tcsh#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/config.guess#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/config.h.in#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/config.rpath#1 branch .. //depot/projects/avr32/src/contrib/tcsh/config.sub#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/config_f.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/configure#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/configure.in#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.chared.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.decls.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.inputl.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.screen.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.term.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ed.xmap.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/glob.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/host.defs#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/ma.setp.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/patchlevel.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.char.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.char.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.decls.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.dir.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.dol.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.err.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.exec.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.exp.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.file.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.func.c#3 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.glob.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.lex.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.proc.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.proc.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.sem.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/sh.set.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/snames.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.bind.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.const.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.decls.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.func.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.os.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.sig.h#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tc.str.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tcsh.man#3 integrate .. //depot/projects/avr32/src/contrib/tcsh/tw.color.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tw.comp.c#2 integrate .. //depot/projects/avr32/src/contrib/tcsh/tw.parse.c#2 integrate .. //depot/projects/avr32/src/contrib/top/display.c#2 integrate .. //depot/projects/avr32/src/crypto/openssh/FREEBSD-vendor#2 integrate .. //depot/projects/avr32/src/crypto/openssl/apps/md4.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/bftest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/bntest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/casttest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/destest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/dhtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/dsatest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/ecdhtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/ecdsatest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/ectest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/enginetest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/evp_test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/exptest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_aesavs.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_desmovs.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_dsatest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_dssvs.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_hmactest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_randtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_rngvs.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_rsagtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_rsastest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_rsavtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_shatest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/fips_test_suite.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/hmactest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/ideatest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/jpaketest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/md2test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/md4test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/md5test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/mdc2test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/randtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/rc2test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/rc4test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/rc5test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/rmdtest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/rsa_test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/sha1test.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/sha256t.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/sha512t.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/shatest.c#2 delete .. //depot/projects/avr32/src/crypto/openssl/test/ssltest.c#2 delete .. //depot/projects/avr32/src/etc/freebsd-update.conf#2 integrate .. //depot/projects/avr32/src/etc/mtree/BSD.include.dist#5 integrate .. //depot/projects/avr32/src/etc/ntp.conf#2 integrate .. //depot/projects/avr32/src/etc/pam.d/Makefile#2 integrate .. //depot/projects/avr32/src/etc/pam.d/gdm#2 delete .. //depot/projects/avr32/src/etc/portsnap.conf#2 integrate .. //depot/projects/avr32/src/etc/rc.d/Makefile#4 integrate .. //depot/projects/avr32/src/etc/rc.d/hostid#2 integrate .. //depot/projects/avr32/src/etc/rc.d/hostid_save#1 branch .. //depot/projects/avr32/src/etc/rc.d/zfs#2 integrate .. //depot/projects/avr32/src/etc/rc.d/zvol#1 branch .. //depot/projects/avr32/src/games/fortune/datfiles/fortunes#4 integrate .. //depot/projects/avr32/src/games/fortune/datfiles/fortunes-o.real#3 integrate .. //depot/projects/avr32/src/gnu/lib/libdialog/Makefile#2 integrate .. //depot/projects/avr32/src/gnu/lib/libg2c/Makefile#2 integrate .. //depot/projects/avr32/src/gnu/lib/libgcc/Makefile#5 integrate .. //depot/projects/avr32/src/gnu/lib/libobjc/Makefile#2 integrate .. //depot/projects/avr32/src/gnu/lib/libreadline/Makefile.inc#2 integrate .. //depot/projects/avr32/src/gnu/lib/libregex/Makefile#2 integrate .. //depot/projects/avr32/src/gnu/lib/libssp/libssp_nonshared/Makefile#3 integrate .. //depot/projects/avr32/src/include/Makefile#4 integrate .. //depot/projects/avr32/src/include/dlfcn.h#3 integrate .. //depot/projects/avr32/src/include/unistd.h#4 integrate .. //depot/projects/avr32/src/lib/Makefile.inc#2 integrate .. //depot/projects/avr32/src/lib/libalias/libalias/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libarchive/Makefile#8 integrate .. //depot/projects/avr32/src/lib/libarchive/archive_read_support_format_iso9660.c#4 integrate .. //depot/projects/avr32/src/lib/libautofs/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libbegemot/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libbluetooth/Makefile#4 integrate .. //depot/projects/avr32/src/lib/libbsm/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libbsnmp/Makefile.inc#2 integrate .. //depot/projects/avr32/src/lib/libbz2/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libc/Makefile#5 integrate .. //depot/projects/avr32/src/lib/libc/gen/Makefile.inc#5 integrate .. //depot/projects/avr32/src/lib/libc/gen/dlopen.3#3 integrate .. //depot/projects/avr32/src/lib/libc/gen/ftok.3#2 integrate .. //depot/projects/avr32/src/lib/libc/gen/msgctl.3#3 delete .. //depot/projects/avr32/src/lib/libc/gen/msgget.3#2 delete .. //depot/projects/avr32/src/lib/libc/gen/msgrcv.3#2 delete .. //depot/projects/avr32/src/lib/libc/gen/msgsnd.3#2 delete .. //depot/projects/avr32/src/lib/libc/gen/pw_scan.c#2 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/Makefile.inc#4 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/mac.3#2 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/mac_free.3#2 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/mac_get.3#2 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/mac_set.3#2 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/mac_text.3#2 integrate .. //depot/projects/avr32/src/lib/libc/posix1e/posix1e.3#3 integrate .. //depot/projects/avr32/src/lib/libc/stdio/fread.c#2 integrate .. //depot/projects/avr32/src/lib/libc/stdio/fwrite.c#2 integrate .. //depot/projects/avr32/src/lib/libc/sys/Makefile.inc#5 integrate .. //depot/projects/avr32/src/lib/libc/sys/Symbol.map#6 integrate .. //depot/projects/avr32/src/lib/libc/sys/execve.2#2 integrate .. //depot/projects/avr32/src/lib/libc/sys/getsockopt.2#2 integrate .. //depot/projects/avr32/src/lib/libc/sys/link.2#2 integrate .. //depot/projects/avr32/src/lib/libc/sys/mmap.2#2 integrate .. //depot/projects/avr32/src/lib/libc/sys/msgctl.2#1 branch .. //depot/projects/avr32/src/lib/libc/sys/msgget.2#1 branch .. //depot/projects/avr32/src/lib/libc/sys/msgrcv.2#1 branch .. //depot/projects/avr32/src/lib/libc/sys/msgsnd.2#1 branch .. //depot/projects/avr32/src/lib/libc/sys/pathconf.2#3 integrate .. //depot/projects/avr32/src/lib/libc/sys/stack_protector.c#3 integrate .. //depot/projects/avr32/src/lib/libcam/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libcrypt/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libdevstat/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libdwarf/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libdwarf/dwarf_loc.c#2 integrate .. //depot/projects/avr32/src/lib/libedit/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libexpat/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libfetch/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libftpio/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libgpib/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libipsec/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libjail/jail.c#2 integrate .. //depot/projects/avr32/src/lib/libjail/jail.h#2 integrate .. //depot/projects/avr32/src/lib/libkiconv/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libkse/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libkvm/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libkvm/kvm.c#2 integrate .. //depot/projects/avr32/src/lib/libkvm/kvm_private.h#2 integrate .. //depot/projects/avr32/src/lib/libkvm/kvm_proc.c#3 integrate .. //depot/projects/avr32/src/lib/libkvm/kvm_vnet.c#1 branch .. //depot/projects/avr32/src/lib/libmagic/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libmemstat/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libncp/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libnetgraph/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libngatm/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libopie/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libpam/Makefile.inc#2 integrate .. //depot/projects/avr32/src/lib/libpcap/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libproc/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libradius/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libsdp/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libsmb/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libtacplus/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libthr/thread/thr_rtld.c#3 integrate .. //depot/projects/avr32/src/lib/libthr/thread/thr_rwlock.c#2 integrate .. //depot/projects/avr32/src/lib/libugidfw/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libusb/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libusb/libusb.3#7 integrate .. //depot/projects/avr32/src/lib/libusb/libusb.h#2 integrate .. //depot/projects/avr32/src/lib/libusb/libusb10.c#2 integrate .. //depot/projects/avr32/src/lib/libusb/libusb10.h#2 integrate .. //depot/projects/avr32/src/lib/libusb/libusb10_desc.c#2 integrate .. //depot/projects/avr32/src/lib/libusb/libusb10_io.c#2 integrate .. //depot/projects/avr32/src/lib/libusb/libusb20.3#2 integrate .. //depot/projects/avr32/src/lib/libusb/libusb20_compat01.c#3 integrate .. //depot/projects/avr32/src/lib/libusb/libusb20_int.h#4 integrate .. //depot/projects/avr32/src/lib/libusbhid/Makefile#3 integrate .. //depot/projects/avr32/src/lib/libutil/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libvgl/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libwrap/Makefile#2 integrate .. //depot/projects/avr32/src/lib/libypclnt/Makefile#2 integrate .. //depot/projects/avr32/src/lib/ncurses/ncurses/Makefile#2 integrate .. //depot/projects/avr32/src/libexec/rtld-elf/Makefile#4 integrate .. //depot/projects/avr32/src/libexec/rtld-elf/map_object.c#4 integrate .. //depot/projects/avr32/src/libexec/rtld-elf/rtld.c#6 integrate .. //depot/projects/avr32/src/release/Makefile#4 integrate .. //depot/projects/avr32/src/release/doc/en_US.ISO8859-1/relnotes/article.sgml#4 integrate .. //depot/projects/avr32/src/release/svnbranch.awk#1 branch .. //depot/projects/avr32/src/sbin/bsdlabel/bsdlabel.c#2 integrate .. //depot/projects/avr32/src/sbin/camcontrol/camcontrol.8#2 integrate .. //depot/projects/avr32/src/sbin/camcontrol/camcontrol.c#2 integrate .. //depot/projects/avr32/src/sbin/dhclient/dispatch.c#2 integrate .. //depot/projects/avr32/src/sbin/geom/class/part/geom_part.c#4 integrate .. //depot/projects/avr32/src/sbin/ifconfig/ifconfig.8#3 integrate .. //depot/projects/avr32/src/sbin/ifconfig/ifconfig.c#5 integrate .. //depot/projects/avr32/src/sbin/ifconfig/ifieee80211.c#6 integrate .. //depot/projects/avr32/src/sbin/ifconfig/ifmedia.c#3 integrate .. //depot/projects/avr32/src/sbin/mount_nfs/mount_nfs.8#3 integrate .. //depot/projects/avr32/src/sbin/umount/umount.8#2 integrate .. //depot/projects/avr32/src/secure/lib/libcrypto/Makefile#3 integrate .. //depot/projects/avr32/src/secure/lib/libssh/Makefile#4 integrate .. //depot/projects/avr32/src/secure/lib/libssl/Makefile#2 integrate .. //depot/projects/avr32/src/share/man/man4/Makefile#9 integrate .. //depot/projects/avr32/src/share/man/man4/aac.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/acpi_hp.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/acpi_wmi.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/ahci.4#1 branch .. //depot/projects/avr32/src/share/man/man4/altq.4#5 integrate .. //depot/projects/avr32/src/share/man/man4/asmc.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/ath.4#4 integrate .. //depot/projects/avr32/src/share/man/man4/cpuctl.4#3 integrate .. //depot/projects/avr32/src/share/man/man4/epair.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/ieee80211.4#2 delete .. //depot/projects/avr32/src/share/man/man4/mfi.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/mpt.4#3 integrate .. //depot/projects/avr32/src/share/man/man4/mwl.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/mxge.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/net80211.4#1 branch .. //depot/projects/avr32/src/share/man/man4/pcm.4#4 integrate .. //depot/projects/avr32/src/share/man/man4/polling.4#2 integrate .. //depot/projects/avr32/src/share/man/man4/ral.4#3 integrate .. //depot/projects/avr32/src/share/man/man4/siis.4#1 branch .. //depot/projects/avr32/src/share/man/man4/u3g.4#4 integrate .. //depot/projects/avr32/src/share/man/man4/urtw.4#3 integrate .. //depot/projects/avr32/src/share/man/man4/wlan.4#4 integrate .. //depot/projects/avr32/src/share/man/man5/freebsd-update.conf.5#2 integrate .. //depot/projects/avr32/src/share/man/man5/procfs.5#2 integrate .. //depot/projects/avr32/src/share/man/man7/release.7#2 integrate .. //depot/projects/avr32/src/share/man/man9/Makefile#9 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_amrr.9#1 branch .. //depot/projects/avr32/src/share/man/man9/ieee80211_beacon.9#1 branch .. //depot/projects/avr32/src/share/man/man9/ieee80211_bmiss.9#1 branch .. //depot/projects/avr32/src/share/man/man9/ieee80211_crypto.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_ddb.9#1 branch .. //depot/projects/avr32/src/share/man/man9/ieee80211_input.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_ioctl.9#2 delete .. //depot/projects/avr32/src/share/man/man9/ieee80211_node.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_output.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_proto.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_radiotap.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/ieee80211_regdomain.9#1 branch .. //depot/projects/avr32/src/share/man/man9/ieee80211_scan.9#1 branch .. //depot/projects/avr32/src/share/man/man9/ieee80211_vap.9#1 branch .. //depot/projects/avr32/src/share/man/man9/netisr.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/sglist.9#2 integrate .. //depot/projects/avr32/src/share/man/man9/taskqueue.9#2 integrate .. //depot/projects/avr32/src/share/misc/committers-ports.dot#7 integrate .. //depot/projects/avr32/src/share/mk/bsd.lib.mk#2 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/cpu_switch.S#5 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/exception.S#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/genassym.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/identcpu.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/initcpu.c#2 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/intr_machdep.c#3 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/io_apic.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/local_apic.c#6 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/machdep.c#8 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/mp_machdep.c#9 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/msi.c#5 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/pmap.c#7 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/sys_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/trap.c#5 integrate .. //depot/projects/avr32/src/sys/amd64/amd64/vm_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/amd64/conf/GENERIC#7 integrate .. //depot/projects/avr32/src/sys/amd64/conf/NOTES#6 integrate .. //depot/projects/avr32/src/sys/amd64/conf/XENHVM#3 integrate .. //depot/projects/avr32/src/sys/amd64/ia32/ia32_exception.S#3 integrate .. //depot/projects/avr32/src/sys/amd64/ia32/ia32_reg.c#3 integrate .. //depot/projects/avr32/src/sys/amd64/ia32/ia32_signal.c#5 integrate .. //depot/projects/avr32/src/sys/amd64/include/apicvar.h#5 integrate .. //depot/projects/avr32/src/sys/amd64/include/cpufunc.h#4 integrate .. //depot/projects/avr32/src/sys/amd64/include/intr_machdep.h#4 integrate .. //depot/projects/avr32/src/sys/amd64/include/md_var.h#3 integrate .. //depot/projects/avr32/src/sys/amd64/include/param.h#6 integrate .. //depot/projects/avr32/src/sys/amd64/include/pcb.h#4 integrate .. //depot/projects/avr32/src/sys/amd64/include/pmap.h#4 integrate .. //depot/projects/avr32/src/sys/amd64/include/pmc_mdep.h#2 integrate .. //depot/projects/avr32/src/sys/amd64/include/smp.h#5 integrate .. //depot/projects/avr32/src/sys/amd64/include/vm.h#2 integrate .. //depot/projects/avr32/src/sys/amd64/isa/atpic.c#2 integrate .. //depot/projects/avr32/src/sys/amd64/linux32/linux32_sysvec.c#6 integrate .. //depot/projects/avr32/src/sys/amd64/pci/pci_bus.c#3 integrate .. //depot/projects/avr32/src/sys/arm/arm/busdma_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/arm/arm/cpufunc.c#3 integrate .. //depot/projects/avr32/src/sys/arm/arm/minidump_machdep.c#2 integrate .. //depot/projects/avr32/src/sys/arm/arm/pmap.c#6 integrate .. //depot/projects/avr32/src/sys/arm/arm/vm_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/arm/at91/at91_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/arm/at91/uart_dev_at91usart.c#3 integrate .. //depot/projects/avr32/src/sys/arm/conf/AVILA#6 integrate .. //depot/projects/avr32/src/sys/arm/conf/CAMBRIA#5 integrate .. //depot/projects/avr32/src/sys/arm/include/param.h#4 integrate .. //depot/projects/avr32/src/sys/arm/include/pmap.h#4 integrate .. //depot/projects/avr32/src/sys/arm/include/vm.h#2 integrate .. //depot/projects/avr32/src/sys/arm/mv/mv_machdep.c#3 integrate .. //depot/projects/avr32/src/sys/arm/sa11x0/assabet_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/avr32/include/pmap.h#9 edit .. //depot/projects/avr32/src/sys/avr32/include/vm.h#2 edit .. //depot/projects/avr32/src/sys/boot/forth/loader.conf#7 integrate .. //depot/projects/avr32/src/sys/boot/i386/gptboot/gptboot.c#2 integrate .. //depot/projects/avr32/src/sys/bsm/audit.h#4 integrate .. //depot/projects/avr32/src/sys/bsm/audit_kevents.h#4 integrate .. //depot/projects/avr32/src/sys/cam/ata/ata_all.c#1 branch .. //depot/projects/avr32/src/sys/cam/ata/ata_all.h#1 branch .. //depot/projects/avr32/src/sys/cam/ata/ata_da.c#1 branch .. //depot/projects/avr32/src/sys/cam/ata/ata_xpt.c#1 branch .. //depot/projects/avr32/src/sys/cam/cam.c#3 integrate .. //depot/projects/avr32/src/sys/cam/cam.h#2 integrate .. //depot/projects/avr32/src/sys/cam/cam_ccb.h#2 integrate .. //depot/projects/avr32/src/sys/cam/cam_periph.c#5 integrate .. //depot/projects/avr32/src/sys/cam/cam_xpt.c#4 integrate .. //depot/projects/avr32/src/sys/cam/cam_xpt.h#2 integrate .. //depot/projects/avr32/src/sys/cam/cam_xpt_internal.h#1 branch .. //depot/projects/avr32/src/sys/cam/cam_xpt_periph.h#2 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_all.c#2 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_cd.c#3 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_ch.c#2 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_da.c#3 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_pass.c#4 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_pt.c#2 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_sa.c#3 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_ses.c#3 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_sg.c#3 integrate .. //depot/projects/avr32/src/sys/cam/scsi/scsi_xpt.c#1 branch .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/kern/opensolaris.c#5 integrate .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#1 branch .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/sys/sig.h#2 integrate .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/sys/taskq.h#2 delete .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/sys/taskq_impl.h#2 delete .. //depot/projects/avr32/src/sys/cddl/compat/opensolaris/sys/vnode.h#5 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c#2 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#4 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c#2 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h#2 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h#2 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h#2 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c#4 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c#5 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#7 integrate .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c#2 delete .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr.c#2 delete .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_array.c#2 delete .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/rpc/opensolaris_xdr_mem.c#2 delete .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/rpc/xdr.h#3 delete .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h#1 branch .. //depot/projects/avr32/src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h#3 integrate .. //depot/projects/avr32/src/sys/cddl/dev/dtrace/amd64/dtrace_subr.c#3 integrate .. //depot/projects/avr32/src/sys/cddl/dev/dtrace/i386/dtrace_subr.c#2 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_misc.c#6 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_proto.h#6 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_syscall.h#6 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_syscalls.c#6 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/freebsd32_sysent.c#6 integrate .. //depot/projects/avr32/src/sys/compat/freebsd32/syscalls.master#6 integrate .. //depot/projects/avr32/src/sys/compat/linprocfs/linprocfs.c#7 integrate .. //depot/projects/avr32/src/sys/compat/linux/linux_ioctl.c#7 integrate .. //depot/projects/avr32/src/sys/compat/linux/linux_mib.c#4 integrate .. //depot/projects/avr32/src/sys/compat/linux/linux_socket.c#5 integrate .. //depot/projects/avr32/src/sys/compat/svr4/svr4_sockio.c#5 integrate .. //depot/projects/avr32/src/sys/compat/svr4/svr4_stat.c#5 integrate .. //depot/projects/avr32/src/sys/conf/NOTES#11 integrate .. //depot/projects/avr32/src/sys/conf/files#14 integrate .. //depot/projects/avr32/src/sys/conf/newvers.sh#3 integrate .. //depot/projects/avr32/src/sys/conf/options#10 integrate .. //depot/projects/avr32/src/sys/conf/options.amd64#4 integrate .. //depot/projects/avr32/src/sys/conf/options.i386#3 integrate .. //depot/projects/avr32/src/sys/conf/options.pc98#3 integrate .. //depot/projects/avr32/src/sys/contrib/altq/altq/altq_subr.c#7 integrate .. //depot/projects/avr32/src/sys/contrib/dev/acpica/compiler/aslcompile.c#3 integrate .. //depot/projects/avr32/src/sys/contrib/dev/acpica/compiler/aslutils.c#3 integrate .. //depot/projects/avr32/src/sys/contrib/ipfilter/netinet/fil.c#2 integrate .. //depot/projects/avr32/src/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c#6 integrate .. //depot/projects/avr32/src/sys/contrib/pf/net/pf.c#5 integrate .. //depot/projects/avr32/src/sys/contrib/pf/net/pf_if.c#5 integrate .. //depot/projects/avr32/src/sys/contrib/pf/net/pf_ioctl.c#6 integrate .. //depot/projects/avr32/src/sys/contrib/pf/net/pf_subr.c#2 integrate .. //depot/projects/avr32/src/sys/contrib/pf/net/pfvar.h#2 integrate .. //depot/projects/avr32/src/sys/contrib/rdma/rdma_cma.c#3 integrate .. //depot/projects/avr32/src/sys/ddb/db_expr.c#3 integrate .. //depot/projects/avr32/src/sys/ddb/db_sym.c#2 integrate .. //depot/projects/avr32/src/sys/ddb/db_variables.c#2 integrate .. //depot/projects/avr32/src/sys/ddb/db_variables.h#2 integrate .. //depot/projects/avr32/src/sys/ddb/ddb.h#2 integrate .. //depot/projects/avr32/src/sys/dev/aac/aac.c#4 integrate .. //depot/projects/avr32/src/sys/dev/aac/aac_disk.c#2 integrate .. //depot/projects/avr32/src/sys/dev/acpi_support/acpi_hp.c#2 integrate .. //depot/projects/avr32/src/sys/dev/acpi_support/acpi_wmi.c#2 integrate .. //depot/projects/avr32/src/sys/dev/acpi_support/acpi_wmi_if.m#2 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi.c#6 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_battery.c#3 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_cpu.c#6 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_dock.c#3 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_pcib_acpi.c#4 integrate .. //depot/projects/avr32/src/sys/dev/acpica/acpi_thermal.c#3 integrate .. //depot/projects/avr32/src/sys/dev/adb/adb_bus.c#2 integrate .. //depot/projects/avr32/src/sys/dev/advansys/advansys.c#2 integrate .. //depot/projects/avr32/src/sys/dev/advansys/advlib.h#2 integrate .. //depot/projects/avr32/src/sys/dev/ahci/ahci.c#1 branch .. //depot/projects/avr32/src/sys/dev/ahci/ahci.h#1 branch .. //depot/projects/avr32/src/sys/dev/aic7xxx/aic79xx_osm.h#2 integrate .. //depot/projects/avr32/src/sys/dev/aic7xxx/aic7xxx_osm.h#2 integrate .. //depot/projects/avr32/src/sys/dev/alc/if_alc.c#3 integrate .. //depot/projects/avr32/src/sys/dev/amd/amd.h#2 integrate .. //depot/projects/avr32/src/sys/dev/amdtemp/amdtemp.c#2 integrate .. //depot/projects/avr32/src/sys/dev/amr/amr.c#3 integrate .. //depot/projects/avr32/src/sys/dev/ata/ata-all.c#5 integrate .. //depot/projects/avr32/src/sys/dev/ata/atapi-cam.c#5 integrate .. //depot/projects/avr32/src/sys/dev/ata/atapi-cd.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ata/chipsets/ata-ahci.c#6 integrate .. //depot/projects/avr32/src/sys/dev/ata/chipsets/ata-marvell.c#5 integrate .. //depot/projects/avr32/src/sys/dev/ata/chipsets/ata-nvidia.c#6 integrate .. //depot/projects/avr32/src/sys/dev/ath/ah_osdep.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ath/ah_osdep.h#3 integrate .. //depot/projects/avr32/src/sys/dev/ath/ath_hal/ar5212/ar5212_recv.c#3 integrate .. //depot/projects/avr32/src/sys/dev/ath/ath_hal/ar5416/ar5416_reset.c#6 integrate .. //depot/projects/avr32/src/sys/dev/ath/if_ath.c#10 integrate .. //depot/projects/avr32/src/sys/dev/ath/if_athvar.h#7 integrate .. //depot/projects/avr32/src/sys/dev/atkbdc/psm.c#3 integrate .. //depot/projects/avr32/src/sys/dev/bge/if_bge.c#8 integrate .. //depot/projects/avr32/src/sys/dev/bktr/bktr_os.c#3 integrate .. //depot/projects/avr32/src/sys/dev/ciss/ciss.c#4 integrate .. //depot/projects/avr32/src/sys/dev/ciss/cissvar.h#2 integrate .. //depot/projects/avr32/src/sys/dev/cpuctl/cpuctl.c#3 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/cxgb_sge.c#7 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb.c#5 integrate .. //depot/projects/avr32/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#5 integrate .. //depot/projects/avr32/src/sys/dev/drm/drm_drv.c#6 integrate .. //depot/projects/avr32/src/sys/dev/drm/drm_pciids.h#4 integrate .. //depot/projects/avr32/src/sys/dev/drm/r600_cp.c#3 integrate .. //depot/projects/avr32/src/sys/dev/drm/radeon_drv.h#4 integrate .. //depot/projects/avr32/src/sys/dev/e1000/e1000_82542.c#2 integrate .. //depot/projects/avr32/src/sys/dev/e1000/e1000_ich8lan.c#4 integrate .. //depot/projects/avr32/src/sys/dev/e1000/if_em.c#8 integrate .. //depot/projects/avr32/src/sys/dev/e1000/if_igb.c#7 integrate .. //depot/projects/avr32/src/sys/dev/hptrr/hptrr_config.c#2 integrate .. //depot/projects/avr32/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 integrate .. //depot/projects/avr32/src/sys/dev/hwpmc/hwpmc_core.c#3 integrate .. //depot/projects/avr32/src/sys/dev/hwpmc/hwpmc_piv.c#2 integrate .. //depot/projects/avr32/src/sys/dev/hwpmc/hwpmc_ppro.c#2 integrate .. //depot/projects/avr32/src/sys/dev/hwpmc/hwpmc_x86.c#2 integrate .. //depot/projects/avr32/src/sys/dev/if_ndis/if_ndis.c#10 integrate .. //depot/projects/avr32/src/sys/dev/ips/ips_pci.c#2 integrate .. //depot/projects/avr32/src/sys/dev/ipw/if_ipw.c#6 integrate .. //depot/projects/avr32/src/sys/dev/iscsi/initiator/isc_cam.c#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp.c#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_freebsd.c#3 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_freebsd.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_ioctl.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_library.c#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_library.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_pci.c#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_sbus.c#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_stds.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_target.c#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/isp_target.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/ispmbox.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/ispreg.h#2 integrate .. //depot/projects/avr32/src/sys/dev/isp/ispvar.h#2 integrate .. //depot/projects/avr32/src/sys/dev/ispfw/asm_2300.h#2 integrate .. //depot/projects/avr32/src/sys/dev/ispfw/asm_2400.h#2 integrate .. //depot/projects/avr32/src/sys/dev/ispfw/asm_2500.h#1 branch .. //depot/projects/avr32/src/sys/dev/ispfw/ispfw.c#2 integrate .. //depot/projects/avr32/src/sys/dev/iwi/if_iwi.c#5 integrate .. //depot/projects/avr32/src/sys/dev/iwn/if_iwn.c#7 integrate .. //depot/projects/avr32/src/sys/dev/ixgbe/ixgbe.c#4 integrate .. //depot/projects/avr32/src/sys/dev/mfi/mfi.c#4 integrate .. //depot/projects/avr32/src/sys/dev/mfi/mfi_ioctl.h#2 integrate .. //depot/projects/avr32/src/sys/dev/mfi/mfireg.h#2 integrate .. //depot/projects/avr32/src/sys/dev/mfi/mfivar.h#2 integrate .. //depot/projects/avr32/src/sys/dev/mii/e1000phy.c#4 integrate .. //depot/projects/avr32/src/sys/dev/mlx/mlx.c#3 integrate .. //depot/projects/avr32/src/sys/dev/mlx/mlxvar.h#2 integrate .. //depot/projects/avr32/src/sys/dev/mmc/mmc.c#7 integrate .. //depot/projects/avr32/src/sys/dev/mpt/mpt.h#2 integrate .. //depot/projects/avr32/src/sys/dev/mpt/mpt_cam.c#3 integrate .. //depot/projects/avr32/src/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/avr32/src/sys/dev/mwl/if_mwl.c#3 integrate .. //depot/projects/avr32/src/sys/dev/mwl/if_mwlvar.h#3 integrate .. //depot/projects/avr32/src/sys/dev/mxge/if_mxge.c#6 integrate .. //depot/projects/avr32/src/sys/dev/pccbb/pccbb.c#4 integrate .. //depot/projects/avr32/src/sys/dev/pci/pci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/ppbus/vpo.c#3 integrate .. //depot/projects/avr32/src/sys/dev/pst/pst-iop.c#2 integrate .. //depot/projects/avr32/src/sys/dev/ral/rt2560.c#5 integrate .. //depot/projects/avr32/src/sys/dev/ral/rt2661.c#4 integrate .. //depot/projects/avr32/src/sys/dev/re/if_re.c#7 integrate .. //depot/projects/avr32/src/sys/dev/rp/rp.c#4 integrate .. //depot/projects/avr32/src/sys/dev/siis/siis.c#1 branch .. //depot/projects/avr32/src/sys/dev/siis/siis.h#1 branch .. //depot/projects/avr32/src/sys/dev/sound/pci/hda/hdac.c#8 integrate .. //depot/projects/avr32/src/sys/dev/sound/pcm/feeder_rate.c#4 integrate .. //depot/projects/avr32/src/sys/dev/trm/trm.h#2 integrate .. //depot/projects/avr32/src/sys/dev/twe/twe.c#2 integrate .. //depot/projects/avr32/src/sys/dev/uart/uart_cpu_powerpc.c#3 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/at91dci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/atmegadci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/avr32dci.c#5 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ehci_pci.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/musb_otg.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ohci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/ohci_pci.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/uhci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/uhci_pci.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/usb_controller.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/controller/uss820dci.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/input/ukbd.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/input/ums.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/net/usb_ethernet.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/u3g.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/serial/ulpt.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_busdma.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_compat_linux.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_compat_linux.h#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_controller.h#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_dev.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_dev.h#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_device.c#10 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_handle_request.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_hid.c#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_hub.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_parse.c#6 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_process.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_process.h#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_request.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usb_transfer.c#9 integrate .. //depot/projects/avr32/src/sys/dev/usb/usbdevs#8 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_uath.c#7 integrate .. //depot/projects/avr32/src/sys/dev/usb/wlan/if_upgt.c#6 integrate .. //depot/projects/avr32/src/sys/dev/wpi/if_wpi.c#6 integrate .. //depot/projects/avr32/src/sys/dev/xen/blkback/blkback.c#3 integrate .. //depot/projects/avr32/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/avr32/src/sys/dev/xl/if_xl.c#6 integrate .. //depot/projects/avr32/src/sys/fs/cd9660/cd9660_lookup.c#4 integrate .. //depot/projects/avr32/src/sys/fs/fifofs/fifo_vnops.c#5 integrate .. //depot/projects/avr32/src/sys/fs/nfs/nfs_commonkrpc.c#3 integrate .. //depot/projects/avr32/src/sys/fs/nfs/nfs_var.h#3 integrate .. //depot/projects/avr32/src/sys/fs/nfs/nfsport.h#5 integrate .. //depot/projects/avr32/src/sys/fs/nfsclient/nfs_clbio.c#5 integrate .. //depot/projects/avr32/src/sys/fs/nfsclient/nfs_clrpcops.c#3 integrate .. //depot/projects/avr32/src/sys/fs/nfsclient/nfs_clstate.c#5 integrate .. //depot/projects/avr32/src/sys/fs/nfsclient/nfs_clsubs.c#2 integrate .. //depot/projects/avr32/src/sys/fs/nfsclient/nfs_clvfsops.c#5 integrate .. //depot/projects/avr32/src/sys/fs/nfsclient/nfs_clvnops.c#5 integrate .. //depot/projects/avr32/src/sys/fs/nfsserver/nfs_nfsdport.c#4 integrate .. //depot/projects/avr32/src/sys/fs/procfs/procfs_map.c#3 integrate .. //depot/projects/avr32/src/sys/fs/unionfs/union_subr.c#4 integrate .. //depot/projects/avr32/src/sys/geom/geom.h#5 integrate .. //depot/projects/avr32/src/sys/geom/geom_dev.c#3 integrate .. //depot/projects/avr32/src/sys/geom/geom_io.c#3 integrate .. //depot/projects/avr32/src/sys/geom/geom_subr.c#6 integrate .. //depot/projects/avr32/src/sys/geom/geom_vfs.c#2 integrate .. //depot/projects/avr32/src/sys/geom/journal/g_journal.c#4 integrate .. //depot/projects/avr32/src/sys/geom/part/g_part.c#6 integrate .. //depot/projects/avr32/src/sys/geom/part/g_part_gpt.c#4 integrate .. //depot/projects/avr32/src/sys/geom/part/g_part_if.m#4 integrate .. //depot/projects/avr32/src/sys/geom/vinum/geom_vinum.c#5 integrate .. //depot/projects/avr32/src/sys/i386/acpica/acpi_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/i386/bios/smapi.c#3 integrate .. //depot/projects/avr32/src/sys/i386/bios/smbios.c#2 integrate .. //depot/projects/avr32/src/sys/i386/bios/vpd.c#2 integrate .. //depot/projects/avr32/src/sys/i386/conf/GENERIC#6 integrate .. //depot/projects/avr32/src/sys/i386/conf/NOTES#7 integrate .. //depot/projects/avr32/src/sys/i386/i386/genassym.c#2 integrate .. //depot/projects/avr32/src/sys/i386/i386/initcpu.c#2 integrate .. //depot/projects/avr32/src/sys/i386/i386/intr_machdep.c#3 integrate .. //depot/projects/avr32/src/sys/i386/i386/io_apic.c#4 integrate .. //depot/projects/avr32/src/sys/i386/i386/local_apic.c#6 integrate .. //depot/projects/avr32/src/sys/i386/i386/machdep.c#7 integrate .. //depot/projects/avr32/src/sys/i386/i386/mp_machdep.c#8 integrate .. //depot/projects/avr32/src/sys/i386/i386/msi.c#5 integrate .. //depot/projects/avr32/src/sys/i386/i386/pmap.c#7 integrate .. //depot/projects/avr32/src/sys/i386/i386/trap.c#4 integrate .. //depot/projects/avr32/src/sys/i386/i386/vm_machdep.c#4 integrate .. //depot/projects/avr32/src/sys/i386/ibcs2/ibcs2_misc.c#4 integrate .. //depot/projects/avr32/src/sys/i386/include/apicvar.h#5 integrate .. //depot/projects/avr32/src/sys/i386/include/cpufunc.h#5 integrate .. //depot/projects/avr32/src/sys/i386/include/intr_machdep.h#4 integrate .. //depot/projects/avr32/src/sys/i386/include/md_var.h#2 integrate .. //depot/projects/avr32/src/sys/i386/include/param.h#5 integrate .. //depot/projects/avr32/src/sys/i386/include/pmap.h#5 integrate .. //depot/projects/avr32/src/sys/i386/include/pmc_mdep.h#2 integrate .. //depot/projects/avr32/src/sys/i386/include/sf_buf.h#2 integrate .. //depot/projects/avr32/src/sys/i386/include/smp.h#4 integrate .. //depot/projects/avr32/src/sys/i386/include/vm.h#2 integrate .. //depot/projects/avr32/src/sys/i386/isa/atpic.c#2 integrate .. //depot/projects/avr32/src/sys/i386/pci/pci_bus.c#3 integrate .. //depot/projects/avr32/src/sys/i386/xen/mp_machdep.c#9 integrate .. //depot/projects/avr32/src/sys/i386/xen/pmap.c#5 integrate .. //depot/projects/avr32/src/sys/ia64/conf/GENERIC#4 integrate .. //depot/projects/avr32/src/sys/ia64/ia64/genassym.c#2 integrate .. //depot/projects/avr32/src/sys/ia64/ia64/interrupt.c#2 integrate .. //depot/projects/avr32/src/sys/ia64/ia64/machdep.c#4 integrate .. //depot/projects/avr32/src/sys/ia64/ia64/mp_machdep.c#5 integrate .. //depot/projects/avr32/src/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/avr32/src/sys/ia64/include/param.h#4 integrate .. //depot/projects/avr32/src/sys/ia64/include/pmap.h#2 integrate .. //depot/projects/avr32/src/sys/ia64/include/smp.h#2 integrate .. //depot/projects/avr32/src/sys/ia64/include/vm.h#2 integrate .. //depot/projects/avr32/src/sys/kern/init_main.c#5 integrate .. //depot/projects/avr32/src/sys/kern/init_sysent.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_exec.c#6 integrate .. //depot/projects/avr32/src/sys/kern/kern_exit.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_fork.c#6 integrate .. //depot/projects/avr32/src/sys/kern/kern_intr.c#4 integrate .. //depot/projects/avr32/src/sys/kern/kern_jail.c#9 integrate .. //depot/projects/avr32/src/sys/kern/kern_linker.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_lock.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_mbuf.c#4 integrate .. //depot/projects/avr32/src/sys/kern/kern_mutex.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_poll.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_proc.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_prot.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_rwlock.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_shutdown.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_sig.c#5 integrate .. //depot/projects/avr32/src/sys/kern/kern_sx.c#6 integrate .. //depot/projects/avr32/src/sys/kern/kern_synch.c#3 integrate .. //depot/projects/avr32/src/sys/kern/kern_sysctl.c#7 integrate .. //depot/projects/avr32/src/sys/kern/kern_thread.c#3 integrate .. //depot/projects/avr32/src/sys/kern/kern_uuid.c#6 integrate .. //depot/projects/avr32/src/sys/kern/kern_vimage.c#7 delete .. //depot/projects/avr32/src/sys/kern/link_elf.c#6 integrate .. //depot/projects/avr32/src/sys/kern/link_elf_obj.c#6 integrate .. //depot/projects/avr32/src/sys/kern/subr_bus.c#6 integrate .. //depot/projects/avr32/src/sys/kern/subr_kdb.c#3 integrate .. //depot/projects/avr32/src/sys/kern/subr_param.c#3 integrate .. //depot/projects/avr32/src/sys/kern/subr_pcpu.c#4 integrate .. //depot/projects/avr32/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/avr32/src/sys/kern/subr_sleepqueue.c#2 integrate .. //depot/projects/avr32/src/sys/kern/subr_smp.c#5 integrate .. //depot/projects/avr32/src/sys/kern/subr_taskqueue.c#3 integrate .. //depot/projects/avr32/src/sys/kern/subr_trap.c#3 integrate .. //depot/projects/avr32/src/sys/kern/sys_generic.c#6 integrate .. //depot/projects/avr32/src/sys/kern/sys_pipe.c#4 integrate .. //depot/projects/avr32/src/sys/kern/sys_process.c#4 integrate .. //depot/projects/avr32/src/sys/kern/sys_socket.c#5 integrate .. //depot/projects/avr32/src/sys/kern/syscalls.c#5 integrate .. //depot/projects/avr32/src/sys/kern/syscalls.master#5 integrate .. //depot/projects/avr32/src/sys/kern/systrace_args.c#5 integrate .. //depot/projects/avr32/src/sys/kern/tty.c#11 integrate .. //depot/projects/avr32/src/sys/kern/tty_pts.c#8 integrate .. //depot/projects/avr32/src/sys/kern/tty_pty.c#4 integrate .. //depot/projects/avr32/src/sys/kern/tty_ttydisc.c#4 integrate .. //depot/projects/avr32/src/sys/kern/uipc_domain.c#4 integrate .. //depot/projects/avr32/src/sys/kern/uipc_socket.c#6 integrate .. //depot/projects/avr32/src/sys/kern/uipc_syscalls.c#6 integrate .. //depot/projects/avr32/src/sys/kern/uipc_usrreq.c#7 integrate .. //depot/projects/avr32/src/sys/kern/vfs_bio.c#9 integrate .. //depot/projects/avr32/src/sys/kern/vfs_cache.c#8 integrate .. //depot/projects/avr32/src/sys/kern/vfs_cluster.c#4 integrate .. //depot/projects/avr32/src/sys/kern/vfs_lookup.c#9 integrate .. //depot/projects/avr32/src/sys/kern/vfs_mount.c#9 integrate .. //depot/projects/avr32/src/sys/kern/vfs_subr.c#8 integrate .. //depot/projects/avr32/src/sys/kern/vfs_syscalls.c#8 integrate .. //depot/projects/avr32/src/sys/kern/vfs_vnops.c#8 integrate .. //depot/projects/avr32/src/sys/mips/include/param.h#4 integrate .. //depot/projects/avr32/src/sys/mips/include/pmap.h#4 integrate .. //depot/projects/avr32/src/sys/mips/include/smp.h#2 integrate .. //depot/projects/avr32/src/sys/mips/include/vm.h#2 integrate .. //depot/projects/avr32/src/sys/mips/mips/mp_machdep.c#3 integrate .. //depot/projects/avr32/src/sys/mips/mips/pmap.c#7 integrate .. //depot/projects/avr32/src/sys/modules/Makefile#10 integrate .. //depot/projects/avr32/src/sys/modules/ahci/Makefile#1 branch .. //depot/projects/avr32/src/sys/modules/cam/Makefile#2 integrate .. //depot/projects/avr32/src/sys/modules/geom/geom_label/Makefile#2 integrate .. //depot/projects/avr32/src/sys/modules/if_epair/Makefile#1 branch .. //depot/projects/avr32/src/sys/modules/ispfw/Makefile#2 integrate .. //depot/projects/avr32/src/sys/modules/ispfw/isp_2400_multi/Makefile#1 branch .. //depot/projects/avr32/src/sys/modules/ispfw/isp_2500/Makefile#1 branch .. //depot/projects/avr32/src/sys/modules/ispfw/isp_2500_multi/Makefile#1 branch .. //depot/projects/avr32/src/sys/modules/nfsclient/Makefile#5 integrate .. //depot/projects/avr32/src/sys/modules/nfsserver/Makefile#3 integrate .. //depot/projects/avr32/src/sys/modules/siis/Makefile#1 branch .. //depot/projects/avr32/src/sys/modules/wlan/Makefile#4 integrate .. //depot/projects/avr32/src/sys/modules/zfs/Makefile#5 integrate .. //depot/projects/avr32/src/sys/net/bpf.c#6 integrate .. //depot/projects/avr32/src/sys/net/bpf_buffer.c#2 integrate .. //depot/projects/avr32/src/sys/net/bpf_zerocopy.c#3 integrate .. //depot/projects/avr32/src/sys/net/bpfdesc.h#2 integrate .. //depot/projects/avr32/src/sys/net/bridgestp.c#6 integrate .. //depot/projects/avr32/src/sys/net/flowtable.c#5 integrate .. //depot/projects/avr32/src/sys/net/flowtable.h#4 integrate .. //depot/projects/avr32/src/sys/net/if.c#11 integrate .. //depot/projects/avr32/src/sys/net/if_bridge.c#7 integrate .. //depot/projects/avr32/src/sys/net/if_clone.c#4 integrate .. //depot/projects/avr32/src/sys/net/if_clone.h#2 integrate .. //depot/projects/avr32/src/sys/net/if_ef.c#6 integrate .. //depot/projects/avr32/src/sys/net/if_enc.c#4 integrate .. //depot/projects/avr32/src/sys/net/if_epair.c#2 integrate .. //depot/projects/avr32/src/sys/net/if_ethersubr.c#8 integrate .. //depot/projects/avr32/src/sys/net/if_faith.c#3 integrate .. //depot/projects/avr32/src/sys/net/if_gif.c#6 integrate .. //depot/projects/avr32/src/sys/net/if_gif.h#6 integrate .. //depot/projects/avr32/src/sys/net/if_gre.c#4 integrate .. //depot/projects/avr32/src/sys/net/if_llatbl.c#5 integrate .. //depot/projects/avr32/src/sys/net/if_loop.c#9 integrate .. //depot/projects/avr32/src/sys/net/if_media.h#3 integrate .. //depot/projects/avr32/src/sys/net/if_mib.c#6 integrate .. //depot/projects/avr32/src/sys/net/if_spppsubr.c#6 integrate .. //depot/projects/avr32/src/sys/net/if_stf.c#6 integrate .. //depot/projects/avr32/src/sys/net/if_tun.c#6 integrate .. //depot/projects/avr32/src/sys/net/if_var.h#9 integrate .. //depot/projects/avr32/src/sys/net/if_vlan.c#7 integrate .. //depot/projects/avr32/src/sys/net/netisr.c#6 integrate .. //depot/projects/avr32/src/sys/net/netisr.h#5 integrate .. //depot/projects/avr32/src/sys/net/raw_cb.c#5 integrate .. //depot/projects/avr32/src/sys/net/raw_cb.h#2 integrate .. //depot/projects/avr32/src/sys/net/raw_usrreq.c#5 integrate .. //depot/projects/avr32/src/sys/net/route.c#7 integrate .. //depot/projects/avr32/src/sys/net/rtsock.c#8 integrate .. //depot/projects/avr32/src/sys/net/vnet.c#1 branch .. //depot/projects/avr32/src/sys/net/vnet.h#10 integrate .. //depot/projects/avr32/src/sys/net80211/_ieee80211.h#4 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211.c#9 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211.h#7 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_action.c#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_action.h#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_adhoc.c#6 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_ageq.c#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_ageq.h#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_crypto.c#3 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_crypto.h#4 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_ddb.c#9 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_freebsd.c#6 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_freebsd.h#8 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_hostap.c#6 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_ht.c#5 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_ht.h#5 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_hwmp.c#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_input.c#5 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_input.h#3 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_ioctl.c#6 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_ioctl.h#5 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_mesh.c#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_mesh.h#1 branch .. //depot/projects/avr32/src/sys/net80211/ieee80211_node.c#8 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_node.h#7 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_output.c#9 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_proto.c#7 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_proto.h#7 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_scan.c#7 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_scan.h#6 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_scan_sta.c#7 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_sta.c#6 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_var.h#9 integrate .. //depot/projects/avr32/src/sys/net80211/ieee80211_wds.c#7 integrate .. //depot/projects/avr32/src/sys/netatalk/at_control.c#4 integrate .. //depot/projects/avr32/src/sys/netgraph/atm/ng_atm.c#5 integrate .. //depot/projects/avr32/src/sys/netgraph/bluetooth/socket/ng_btsocket.c#2 integrate .. //depot/projects/avr32/src/sys/netgraph/netgraph.h#4 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_base.c#4 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_bridge.c#2 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_eiface.c#6 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_ether.c#6 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_gif.c#4 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_iface.c#6 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_pipe.c#2 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_socket.c#2 integrate .. //depot/projects/avr32/src/sys/netgraph/ng_source.c#2 integrate .. //depot/projects/avr32/src/sys/netinet/icmp6.h#4 integrate .. //depot/projects/avr32/src/sys/netinet/icmp_var.h#3 integrate .. //depot/projects/avr32/src/sys/netinet/if_ether.c#9 integrate .. //depot/projects/avr32/src/sys/netinet/igmp.c#9 integrate .. //depot/projects/avr32/src/sys/netinet/in.c#8 integrate .. //depot/projects/avr32/src/sys/netinet/in_gif.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/in_mcast.c#8 integrate .. //depot/projects/avr32/src/sys/netinet/in_pcb.c#8 integrate .. //depot/projects/avr32/src/sys/netinet/in_pcb.h#9 integrate .. //depot/projects/avr32/src/sys/netinet/in_proto.c#5 integrate .. //depot/projects/avr32/src/sys/netinet/in_rmx.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/in_var.h#6 integrate .. //depot/projects/avr32/src/sys/netinet/ip_carp.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/ip_divert.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/ip_fastfwd.c#4 integrate .. //depot/projects/avr32/src/sys/netinet/ip_fw.h#7 integrate .. //depot/projects/avr32/src/sys/netinet/ip_icmp.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/ip_input.c#10 integrate .. //depot/projects/avr32/src/sys/netinet/ip_ipsec.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/ip_mroute.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/ip_options.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/ip_output.c#11 integrate .. //depot/projects/avr32/src/sys/netinet/ip_var.h#5 integrate .. //depot/projects/avr32/src/sys/netinet/ipfw/ip_fw2.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/ipfw/ip_fw_nat.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/ipfw/ip_fw_pfil.c#2 integrate .. //depot/projects/avr32/src/sys/netinet/raw_ip.c#9 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_auth.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_indata.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_input.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_os_bsd.h#7 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_output.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_pcb.c#5 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_sysctl.c#5 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_sysctl.h#4 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_timer.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/sctp_uio.h#6 integrate .. //depot/projects/avr32/src/sys/netinet/sctputil.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/sctputil.h#4 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_hostcache.c#6 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_input.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_offload.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_offload.h#2 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_output.c#4 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_reass.c#4 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_sack.c#3 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_subr.c#8 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_syncache.c#5 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_syncache.h#4 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_timer.c#5 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_timewait.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_usrreq.c#7 integrate .. //depot/projects/avr32/src/sys/netinet/tcp_var.h#6 integrate .. //depot/projects/avr32/src/sys/netinet/udp_usrreq.c#9 integrate .. //depot/projects/avr32/src/sys/netinet/udp_var.h#5 integrate .. //depot/projects/avr32/src/sys/netinet/vinet.h#9 delete .. //depot/projects/avr32/src/sys/netinet6/dest6.c#2 integrate .. //depot/projects/avr32/src/sys/netinet6/frag6.c#6 integrate .. //depot/projects/avr32/src/sys/netinet6/icmp6.c#9 integrate .. //depot/projects/avr32/src/sys/netinet6/in6.c#9 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_gif.c#5 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_ifattach.c#10 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_mcast.c#4 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_pcb.c#8 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_proto.c#5 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_rmx.c#7 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_src.c#5 integrate .. //depot/projects/avr32/src/sys/netinet6/in6_var.h#4 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_forward.c#3 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_input.c#9 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_ipsec.c#4 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_mroute.c#8 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_output.c#8 integrate .. //depot/projects/avr32/src/sys/netinet6/ip6_var.h#6 integrate .. //depot/projects/avr32/src/sys/netinet6/mld6.c#8 integrate .. //depot/projects/avr32/src/sys/netinet6/nd6.c#9 integrate .. //depot/projects/avr32/src/sys/netinet6/nd6.h#4 integrate >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 22 14:36:16 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9448D106568E; Sat, 22 Aug 2009 14:36:16 +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 4FA8A106568C for ; Sat, 22 Aug 2009 14:36:16 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3D5FA8FC19 for ; Sat, 22 Aug 2009 14:36:16 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MEaGos088833 for ; Sat, 22 Aug 2009 14:36:16 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MEaGfu088831 for perforce@freebsd.org; Sat, 22 Aug 2009 14:36:16 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 14:36:16 GMT Message-Id: <200908221436.n7MEaGfu088831@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167614 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: Sat, 22 Aug 2009 14:36:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=167614 Change 167614 by mav@mav_mavbook on 2009/08/22 14:35:45 IFC Affected files ... .. //depot/projects/scottl-camlock/src/share/man/man9/sglist.9#2 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/dev/aac/aac.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_battery.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_cpu.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_dock.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_thermal.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/adb/adb_bus.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/amdtemp/amdtemp.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/amr/amr.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/dev/atkbdc/psm.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bktr/bktr_os.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drm_drv.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ips/ips_pci.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mfi/mfi.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mlx/mlx.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mmc/mmc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pccbb/pccbb.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/dev/pst/pst-iop.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/rp/rp.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pci/hda/hdac.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/twe/twe.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/controller/usb_controller.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/input/ukbd.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/usb_ethernet.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_compat_linux.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_dev.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_handle_request.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usb_hub.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_upgt.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xen/blkback/blkback.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/dev/xen/netback/netback.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/i386/acpica/acpi_machdep.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/i386/bios/smapi.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/i386/bios/smbios.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/bios/vpd.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/machdep.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_bus.c#29 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_sglist.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/net/flowtable.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_fw.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw2.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw_pfil.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_timewait.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/fdc.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/sys/bus.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sglist.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/xen/xenbus/xenbus_probe.c#3 integrate .. //depot/projects/scottl-camlock/src/tools/tools/vimage/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/tools/tools/vimage/vimage.8#2 integrate .. //depot/projects/scottl-camlock/src/tools/tools/vimage/vimage.c#3 integrate Differences ... ==== //depot/projects/scottl-camlock/src/share/man/man9/sglist.9#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/share/man/man9/sglist.9,v 1.1 2009/06/01 20:35:53 jhb Exp $ +.\" $FreeBSD: src/share/man/man9/sglist.9,v 1.3 2009/08/21 02:59:07 jhb Exp $ .\" .Dd May 15, 2009 .Dt SGLIST 9 @@ -70,7 +70,7 @@ .Ft struct sglist * .Fn sglist_clone "struct sglist *sg" "int mflags" .Ft int -.Fn sglist_consume_uio "struct sglist *sg" "struct uio *uio" "int resid" +.Fn sglist_consume_uio "struct sglist *sg" "struct uio *uio" "size_t resid" .Ft int .Fn sglist_count "void *buf" "size_t len" .Ft void @@ -191,6 +191,8 @@ family of routines can be used to append the physical address ranges described by an object to the end of a scatter/gather list. All of these routines return 0 on success or an error on failure. +If a request to append an address range to a scatter/gather list fails, +the scatter/gather list will remain unchanged. .Pp The .Nm sglist_append @@ -445,6 +447,7 @@ to append the physical address ranges from .Fa second . .El +.Pp The .Nm sglist_slice function returns the following errors on failure: @@ -470,6 +473,7 @@ .Fa *slice to describe the requested physical address ranges. .El +.Pp The .Nm sglist_split function returns the following errors on failure: ==== //depot/projects/scottl-camlock/src/sys/amd64/amd64/machdep.c#27 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.708 2009/08/19 20:39:33 ed Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.709 2009/08/20 22:58:05 jkim Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -236,19 +236,21 @@ #ifdef PERFMON perfmon_init(); #endif + realmem = Maxmem; + + /* + * Display physical memory if SMBIOS reports reasonable amount. + */ + memsize = 0; sysenv = getenv("smbios.memory.enabled"); if (sysenv != NULL) { - memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10); + memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); - } else - memsize = 0; - if (memsize > 0) - printf("real memory = %ju (%ju MB)\n", memsize << 10, - memsize >> 10); - else - printf("real memory = %ju (%ju MB)\n", ptoa((uintmax_t)Maxmem), - ptoa((uintmax_t)Maxmem) / 1048576); - realmem = Maxmem; + } + if (memsize < ptoa((uintmax_t)cnt.v_free_count)) + memsize = ptoa((uintmax_t)Maxmem); + printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); + /* * Display any holes after the first chunk of extended memory. */ ==== //depot/projects/scottl-camlock/src/sys/dev/aac/aac.c#12 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.143 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/aac/aac.c,v 1.144 2009/08/20 19:17:53 jhb Exp $"); /* * Driver for the Adaptec 'FSA' family of PCI/SCSI RAID adapters. @@ -3270,10 +3270,10 @@ while (co != NULL) { if (co->co_found == 0) { mtx_unlock(&sc->aac_io_lock); - newbus_xlock(); + mtx_lock(&Giant); device_delete_child(sc->aac_dev, co->co_disk); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->aac_io_lock); co_next = TAILQ_NEXT(co, co_link); mtx_lock(&sc->aac_container_lock); @@ -3291,9 +3291,9 @@ /* Attach the newly created containers */ if (added) { mtx_unlock(&sc->aac_io_lock); - newbus_xlock(); + mtx_lock(&Giant); bus_generic_attach(sc->aac_dev); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->aac_io_lock); } ==== //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi.c#22 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.265 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi.c,v 1.266 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -675,6 +675,8 @@ device_t child, *devlist; int error, i, numdevs, pstate; + GIANT_REQUIRED; + /* First give child devices a chance to suspend. */ error = bus_generic_suspend(dev); if (error) @@ -717,6 +719,8 @@ int i, numdevs, error; device_t child, *devlist; + GIANT_REQUIRED; + /* * Put all devices in D0 before resuming them. Call _S0D on each one * since some systems expect this. @@ -741,6 +745,8 @@ acpi_shutdown(device_t dev) { + GIANT_REQUIRED; + /* Allow children to shutdown first. */ bus_generic_shutdown(dev); @@ -2528,7 +2534,11 @@ thread_unlock(curthread); #endif - newbus_xlock(); + /* + * Be sure to hold Giant across DEVICE_SUSPEND/RESUME since non-MPSAFE + * drivers need this. + */ + mtx_lock(&Giant); slp_state = ACPI_SS_NONE; @@ -2601,7 +2611,7 @@ if (slp_state >= ACPI_SS_SLEPT) acpi_enable_fixed_events(sc); - newbus_xunlock(); + mtx_unlock(&Giant); #ifdef SMP thread_lock(curthread); ==== //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_battery.c#12 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.29 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_battery.c,v 1.30 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -329,7 +329,6 @@ dev = NULL; found_unit = 0; - newbus_slock(); batt_dc = devclass_find("battery"); maxunit = devclass_get_maxunit(batt_dc); for (i = 0; i < maxunit; i++) { @@ -341,7 +340,6 @@ found_unit++; dev = NULL; } - newbus_sunlock(); return (dev); } @@ -371,17 +369,13 @@ */ switch (cmd) { case ACPIIO_BATT_GET_UNITS: - newbus_slock(); *(int *)addr = acpi_battery_get_units(); - newbus_sunlock(); error = 0; break; case ACPIIO_BATT_GET_BATTINFO: if (dev != NULL || unit == ACPI_BATTERY_ALL_UNITS) { bzero(&ioctl_arg->battinfo, sizeof(ioctl_arg->battinfo)); - newbus_slock(); error = acpi_battery_get_battinfo(dev, &ioctl_arg->battinfo); - newbus_sunlock(); } break; case ACPIIO_BATT_GET_BIF: @@ -422,11 +416,6 @@ { int val, error; - /* - * Tolerate a race here because newbus lock can't be acquired before - * acpi_battery_get_battinfo() as it can create a LOR with the sysctl - * lock. - */ acpi_battery_get_battinfo(NULL, &acpi_battery_battinfo); val = *(u_int *)oidp->oid_arg1; error = sysctl_handle_int(oidp, &val, 0, req); @@ -438,10 +427,6 @@ { int count, error; - /* - * Tolerate a race here in order to avoid a LOR between sysctl lock - * and newbus lock. - */ count = acpi_battery_get_units(); error = sysctl_handle_int(oidp, &count, 0, req); return (error); ==== //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_cpu.c#15 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.79 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_cpu.c,v 1.80 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -732,9 +732,7 @@ int i; /* Get set of CPU devices */ - newbus_slock(); devclass_get_devices(acpi_cpu_devclass, &cpu_devices, &cpu_ndevices); - newbus_sunlock(); /* * Setup any quirks that might necessary now that we have probed ==== //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_dock.c#8 (text) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.8 2009/08/02 14:28:40 attilio Exp $ + * $FreeBSD: src/sys/dev/acpica/acpi_dock.c,v 1.9 2009/08/20 19:17:53 jhb Exp $ */ #include "opt_acpi.h" @@ -188,12 +188,12 @@ dev = (device_t)context; - newbus_xlock(); if (!device_is_enabled(dev)) device_enable(dev); + mtx_lock(&Giant); device_probe_and_attach(dev); - newbus_xunlock(); + mtx_unlock(&Giant); } static ACPI_STATUS @@ -299,11 +299,11 @@ "ejecting device for %s\n", acpi_name(handle)); dev = acpi_get_device(handle); - newbus_xlock(); if (dev != NULL && device_is_attached(dev)) { + mtx_lock(&Giant); device_detach(dev); + mtx_unlock(&Giant); } - newbus_xunlock(); acpi_SetInteger(handle, "_EJ0", 0); out: ==== //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_thermal.c#13 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.72 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/acpica/acpi_thermal.c,v 1.73 2009/08/20 19:17:53 jhb Exp $"); #include "opt_acpi.h" #include @@ -936,8 +936,6 @@ sc = NULL; for (;;) { - newbus_slock(); - /* If the number of devices has changed, re-evaluate. */ if (devclass_get_count(acpi_tz_devclass) != devcount) { if (devs != NULL) { @@ -950,7 +948,6 @@ for (i = 0; i < devcount; i++) sc[i] = device_get_softc(devs[i]); } - newbus_sunlock(); /* Check for temperature events and act on them. */ for (i = 0; i < devcount; i++) { ==== //depot/projects/scottl-camlock/src/sys/dev/adb/adb_bus.c#3 (text+ko) ==== @@ -22,7 +22,7 @@ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/adb/adb_bus.c,v 1.5 2009/08/02 14:28:40 attilio Exp $ + * $FreeBSD: src/sys/dev/adb/adb_bus.c,v 1.6 2009/08/20 19:17:53 jhb Exp $ */ #include @@ -113,7 +113,6 @@ uint8_t i, next_free; uint16_t r3; - newbus_xlock(); sc->sc_dev = dev; sc->parent = device_get_parent(dev); @@ -188,7 +187,6 @@ } bus_generic_attach(dev); - newbus_xunlock(); config_intrhook_disestablish(&sc->enum_hook); } ==== //depot/projects/scottl-camlock/src/sys/dev/amdtemp/amdtemp.c#3 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/amdtemp/amdtemp.c,v 1.4 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amdtemp/amdtemp.c,v 1.5 2009/08/20 19:17:53 jhb Exp $"); #include #include @@ -269,7 +269,6 @@ /* * dev.cpu.N.temperature. */ - newbus_xlock(); nexus = device_find_child(root_bus, "nexus", 0); acpi = device_find_child(nexus, "acpi", 0); @@ -286,7 +285,6 @@ "Max of sensor 0 / 1"); } } - newbus_xunlock(); config_intrhook_disestablish(&sc->sc_ich); } ==== //depot/projects/scottl-camlock/src/sys/dev/amr/amr.c#15 (text+ko) ==== @@ -56,7 +56,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.90 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/amr/amr.c,v 1.91 2009/08/20 19:17:53 jhb Exp $"); /* * Driver for the AMI MegaRaid family of controllers. @@ -90,10 +90,6 @@ SYSCTL_NODE(_hw, OID_AUTO, amr, CTLFLAG_RD, 0, "AMR driver parameters"); -/* - * In order to get rid of Giant, amr_state should be protected by - * a proper softc lock for the cdev operations. - */ static d_open_t amr_open; static d_close_t amr_close; static d_ioctl_t amr_ioctl; @@ -316,11 +312,9 @@ config_intrhook_disestablish(&sc->amr_ich); sc->amr_ich.ich_func = NULL; - newbus_xlock(); /* get up-to-date drive information */ if (amr_query_controller(sc)) { device_printf(sc->amr_dev, "can't scan controller for drives\n"); - newbus_xunlock(); return; } @@ -353,7 +347,6 @@ /* interrupts will be enabled before we do anything more */ sc->amr_state |= AMR_STATE_INTEN; - newbus_xunlock(); /* * Start the timeout routine. @@ -441,12 +434,8 @@ amr_open(struct cdev *dev, int flags, int fmt, struct thread *td) { int unit = dev2unit(dev); - struct amr_softc *sc; + struct amr_softc *sc = devclass_get_softc(devclass_find("amr"), unit); - newbus_slock(); - sc = devclass_get_softc(devclass_find("amr"), unit); - newbus_sunlock(); - debug_called(1); sc->amr_state |= AMR_STATE_OPEN; @@ -501,11 +490,7 @@ amr_close(struct cdev *dev, int flags, int fmt, struct thread *td) { int unit = dev2unit(dev); - struct amr_softc *sc; - - newbus_slock(); - sc = devclass_get_softc(devclass_find("amr"), unit); - newbus_sunlock(); + struct amr_softc *sc = devclass_get_softc(devclass_find("amr"), unit); debug_called(1); @@ -522,7 +507,6 @@ struct amr_softc *sc = (struct amr_softc *)dev->si_drv1; int i, error = 0; - newbus_xlock(); sc->amr_state |= AMR_STATE_REMAP_LD; while (sc->amr_busyslots) { device_printf(sc->amr_dev, "idle controller\n"); @@ -546,7 +530,6 @@ sc->amr_drive[i].al_disk = 0; } } - newbus_xunlock(); shutdown_out: amr_startup(sc); @@ -822,9 +805,7 @@ struct amr_linux_ioctl ali; int adapter, error; - newbus_slock(); devclass = devclass_find("amr"); - newbus_sunlock(); if (devclass == NULL) return (ENOENT); ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#23 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.308 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ata/ata-all.c,v 1.309 2009/08/20 19:17:53 jhb Exp $"); #include "opt_ata.h" #include @@ -63,6 +63,7 @@ static d_ioctl_t ata_ioctl; static struct cdevsw ata_cdevsw = { .d_version = D_VERSION, + .d_flags = D_NEEDGIANT, /* we need this as newbus isn't mpsafe */ .d_ioctl = ata_ioctl, .d_name = "ata", }; @@ -276,9 +277,7 @@ { device_t dev = (device_t)context; - newbus_xlock(); ata_reinit(dev); - newbus_xunlock(); } int @@ -320,6 +319,7 @@ /* reinit the children and delete any that fails */ if (!device_get_children(dev, &children, &nchildren)) { + mtx_lock(&Giant); /* newbus suckage it needs Giant */ for (i = 0; i < nchildren; i++) { /* did any children go missing ? */ if (children[i] && device_is_attached(children[i]) && @@ -342,6 +342,7 @@ } } free(children, M_TEMP); + mtx_unlock(&Giant); /* newbus suckage dealt with, release Giant */ } /* if we still have a good request put it on the queue again */ @@ -472,7 +473,6 @@ int *value = (int *)data; int i, nchildren, error = ENOTTY; - newbus_xlock(); switch (cmd) { case IOCATAGMAXCHANNEL: /* In case we have channel 0..n this will return n+1. */ @@ -483,40 +483,32 @@ case IOCATAREINIT: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } error = ata_reinit(device); break; case IOCATAATTACH: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } error = DEVICE_ATTACH(device); break; case IOCATADETACH: if (*value >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, *value)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } error = DEVICE_DETACH(device); break; case IOCATADEVICES: if (devices->channel >= devclass_get_maxunit(ata_devclass) || !(device = devclass_get_device(ata_devclass, devices->channel)) || - !device_is_attached(device)) { - newbus_xunlock(); + !device_is_attached(device)) return ENXIO; - } bzero(devices->name[0], 32); bzero(&devices->params[0], sizeof(struct ata_params)); bzero(devices->name[1], 32); @@ -551,7 +543,6 @@ if (ata_raid_ioctl_func) error = ata_raid_ioctl_func(cmd, data); } - newbus_xunlock(); return error; } @@ -660,7 +651,7 @@ struct ata_channel *ch; int ctlr; - newbus_xlock(); + mtx_lock(&Giant); /* newbus suckage it needs Giant */ /* kick of probe and attach on all channels */ for (ctlr = 0; ctlr < devclass_get_maxunit(ata_devclass); ctlr++) { @@ -675,7 +666,8 @@ free(ata_delayed_attach, M_TEMP); ata_delayed_attach = NULL; } - newbus_xunlock(); + + mtx_unlock(&Giant); /* newbus suckage dealt with, release Giant */ } #endif @@ -804,6 +796,7 @@ if (bootverbose) device_printf(dev, "Identifying devices: %08x\n", ch->devices); + mtx_lock(&Giant); /* Skip existing devices. */ if (!device_get_children(dev, &children, &nchildren)) { for (i = 0; i < nchildren; i++) { @@ -815,8 +808,10 @@ /* Create new devices. */ if (bootverbose) device_printf(dev, "New devices: %08x\n", n); - if (n == 0) + if (n == 0) { + mtx_unlock(&Giant); return (0); + } for (i = 0; i < ATA_PM; ++i) { if (n & (((ATA_ATA_MASTER | ATA_ATAPI_MASTER) << i))) { int unit = -1; @@ -859,6 +854,7 @@ } bus_generic_probe(dev); bus_generic_attach(dev); + mtx_unlock(&Giant); return 0; } ==== //depot/projects/scottl-camlock/src/sys/dev/atkbdc/psm.c#11 (text+ko) ==== @@ -59,7 +59,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/atkbdc/psm.c,v 1.104 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/atkbdc/psm.c,v 1.105 2009/08/20 19:17:53 jhb Exp $"); #include "opt_isa.h" #include "opt_psm.h" @@ -1488,9 +1488,7 @@ if (sc->state & PSM_OPEN) return (EBUSY); - newbus_xlock(); device_busy(devclass_get_device(psm_devclass, unit)); - newbus_xunlock(); /* Initialize state */ sc->mode.level = sc->dflt_mode.level; @@ -1645,9 +1643,7 @@ /* close is almost always successful */ sc->state &= ~PSM_OPEN; kbdc_lock(sc->kbdc, FALSE); - newbus_xlock(); device_unbusy(devclass_get_device(psm_devclass, unit)); - newbus_xunlock(); return (0); } ==== //depot/projects/scottl-camlock/src/sys/dev/bktr/bktr_os.c#11 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.58 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/bktr/bktr_os.c,v 1.59 2009/08/20 19:17:53 jhb Exp $"); /* * This is part of the Driver for Video Capture Cards (Frame grabbers) @@ -597,9 +597,7 @@ return( ENXIO ); /* Record that the device is now busy */ - newbus_xlock(); device_busy(devclass_get_device(bktr_devclass, unit)); - newbus_xunlock(); if (bt848_card != -1) { @@ -670,11 +668,8 @@ } /* If there was an error opening the device, undo the busy status */ - if (result != 0) { - newbus_xlock(); + if (result != 0) device_unbusy(devclass_get_device(bktr_devclass, unit)); - newbus_xunlock(); - } return( result ); } @@ -694,7 +689,6 @@ /* Get the device data */ bktr = (struct bktr_softc*)devclass_get_softc(bktr_devclass, unit); if (bktr == NULL) { - /* the device is no longer valid/functioning */ return (ENXIO); } @@ -711,11 +705,10 @@ break; default: return (ENXIO); + break; } - newbus_xlock(); device_unbusy(devclass_get_device(bktr_devclass, unit)); - newbus_xunlock(); return( result ); } ==== //depot/projects/scottl-camlock/src/sys/dev/drm/drm_drv.c#9 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.28 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/drm/drm_drv.c,v 1.29 2009/08/20 19:17:53 jhb Exp $"); /** @file drm_drv.c * The catch-all file for DRM device support, including module setup/teardown, @@ -614,13 +614,11 @@ if (!retcode) { atomic_inc(&dev->counts[_DRM_STAT_OPENS]); - newbus_xlock(); DRM_LOCK(); device_busy(dev->device); if (!dev->open_count++) retcode = drm_firstopen(dev); DRM_UNLOCK(); - newbus_xunlock(); } return retcode; @@ -634,11 +632,6 @@ DRM_DEBUG("open_count = %d\n", dev->open_count); - /* - * We require to lock newbus here for handling device_unbusy() and - * avoid a LOR with DRM_LOCK. - */ - newbus_xlock(); DRM_LOCK(); if (dev->driver->preclose != NULL) @@ -715,7 +708,6 @@ } DRM_UNLOCK(); - newbus_xunlock(); } /* drm_ioctl is called whenever a process performs an ioctl on /dev/drm. ==== //depot/projects/scottl-camlock/src/sys/dev/hptrr/hptrr_osm_bsd.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/hptrr/hptrr_osm_bsd.c,v 1.4 2008/03/08 18:06:48 scottl Exp $ + * $FreeBSD: src/sys/dev/hptrr/hptrr_osm_bsd.c,v 1.5 2009/08/21 01:00:15 kensmith Exp $ */ #include /* $Id: osm_bsd.c,v 1.27 2007/11/22 07:35:49 gmm Exp $ @@ -814,6 +814,10 @@ strncpy(cpi->sim_vid, "FreeBSD", SIM_IDLEN); strncpy(cpi->hba_vid, "HPT ", HBA_IDLEN); strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN); + cpi->transport = XPORT_SPI; + cpi->transport_version = 2; + cpi->protocol = PROTO_SCSI; + cpi->protocol_version = SCSI_REV_2; cpi->ccb_h.status = CAM_REQ_CMP; break; } ==== //depot/projects/scottl-camlock/src/sys/dev/ips/ips_pci.c#7 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/ips/ips_pci.c,v 1.16 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/ips/ips_pci.c,v 1.17 2009/08/20 19:17:53 jhb Exp $"); #include #include @@ -173,12 +173,10 @@ struct ips_softc *sc = (struct ips_softc *)arg; config_intrhook_disestablish(&sc->ips_ich); - newbus_xlock(); if (ips_adapter_init(sc)) ips_pci_free(sc); else sc->configured = 1; - newbus_xunlock(); } static int ips_pci_free(ips_softc_t *sc) ==== //depot/projects/scottl-camlock/src/sys/dev/mfi/mfi.c#19 (text) ==== @@ -51,7 +51,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.51 2009/08/02 14:28:40 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/mfi/mfi.c,v 1.52 2009/08/20 19:17:53 jhb Exp $"); #include "opt_mfi.h" @@ -1327,11 +1327,11 @@ mfi_release_command(cm); mtx_unlock(&sc->mfi_io_lock); - newbus_xlock(); + mtx_lock(&Giant); if ((child = device_add_child(sc->mfi_dev, "mfid", -1)) == NULL) { device_printf(sc->mfi_dev, "Failed to add logical disk\n"); free(ld_info, M_MFIBUF); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->mfi_io_lock); return; } @@ -1339,7 +1339,7 @@ device_set_ivars(child, ld_info); device_set_desc(child, "MFI Logical Disk"); bus_generic_attach(sc->mfi_dev); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->mfi_io_lock); } @@ -1805,9 +1805,9 @@ KASSERT(ld != NULL, ("volume dissappeared")); if (cm->cm_frame->header.cmd_status == MFI_STAT_OK) { mtx_unlock(&sc->mfi_io_lock); - newbus_xlock(); + mtx_lock(&Giant); device_delete_child(sc->mfi_dev, ld->ld_dev); - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->mfi_io_lock); } else mfi_disk_enable(ld); @@ -1815,11 +1815,11 @@ case MFI_DCMD_CFG_CLEAR: if (cm->cm_frame->header.cmd_status == MFI_STAT_OK) { mtx_unlock(&sc->mfi_io_lock); - newbus_xlock(); + mtx_lock(&Giant); TAILQ_FOREACH_SAFE(ld, &sc->mfi_ld_tqh, ld_link, ldn) { device_delete_child(sc->mfi_dev, ld->ld_dev); } - newbus_xunlock(); + mtx_unlock(&Giant); mtx_lock(&sc->mfi_io_lock); } else { TAILQ_FOREACH(ld, &sc->mfi_ld_tqh, ld_link) @@ -1985,9 +1985,7 @@ adapter = ioc->mfi_adapter_no; if (device_get_unit(sc->mfi_dev) == 0 && adapter != 0) { - newbus_slock(); devclass = devclass_find("mfi"); - newbus_sunlock(); sc = devclass_get_softc(devclass, adapter); } mtx_lock(&sc->mfi_io_lock); @@ -2175,9 +2173,7 @@ struct mfi_linux_ioc_packet l_ioc; int adapter; - newbus_slock(); devclass = devclass_find("mfi"); - newbus_sunlock(); if (devclass == NULL) return (ENOENT); @@ -2198,9 +2194,7 @@ struct mfi_linux_ioc_aen l_aen; int adapter; - newbus_slock(); devclass = devclass_find("mfi"); - newbus_sunlock(); if (devclass == NULL) return (ENOENT); ==== //depot/projects/scottl-camlock/src/sys/dev/mlx/mlx.c#10 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/dev/mlx/mlx.c,v 1.59 2009/08/02 14:28:40 attilio Exp $ + * $FreeBSD: src/sys/dev/mlx/mlx.c,v 1.60 2009/08/20 19:17:53 jhb Exp $ */ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sat Aug 22 16:25:15 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A47281065695; Sat, 22 Aug 2009 16:25:15 +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 5ECDA1065691 for ; Sat, 22 Aug 2009 16:25:15 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4E3F28FC14 for ; Sat, 22 Aug 2009 16:25:15 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MGPFiE098750 for ; Sat, 22 Aug 2009 16:25:15 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MGPFYU098746 for perforce@freebsd.org; Sat, 22 Aug 2009 16:25:15 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 16:25:15 GMT Message-Id: <200908221625.n7MGPFYU098746@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167615 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: Sat, 22 Aug 2009 16:25:15 -0000 http://perforce.freebsd.org/chv.cgi?CH=167615 Change 167615 by mav@mav_mavbook on 2009/08/22 16:25:11 Report scbus number, to not confuse users with only relative bus ID. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#98 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#98 (text+ko) ==== @@ -1033,11 +1033,12 @@ * To ensure that this is printed in one piece, * mask out CAM interrupts. */ - printf("%s%d at %s%d bus %d target %d lun %d\n", + printf("%s%d at %s%d bus %d scbus%d target %d lun %d\n", periph->periph_name, periph->unit_number, path->bus->sim->sim_name, path->bus->sim->unit_number, path->bus->sim->bus_id, + path->bus->path_id, path->target->target_id, path->device->lun_id); printf("%s%d: ", periph->periph_name, periph->unit_number); @@ -4615,7 +4616,7 @@ work_ccb->ccb_h.func_code = XPT_PATH_INQ; xpt_action(work_ccb); if (work_ccb->ccb_h.status != CAM_REQ_CMP) { - printf("xptconfigfunc: CPI failed on bus %d " + printf("xptconfigfunc: CPI failed on scbus%d " "with status %d\n", bus->path_id, work_ccb->ccb_h.status); xpt_finishconfig(xpt_periph, work_ccb); From owner-p4-projects@FreeBSD.ORG Sat Aug 22 17:07:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DAC01065690; Sat, 22 Aug 2009 17:07:01 +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 617AF106568B for ; Sat, 22 Aug 2009 17:07:01 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 373F58FC08 for ; Sat, 22 Aug 2009 17:07:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MH70AI012820 for ; Sat, 22 Aug 2009 17:07:00 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MH70Yp012818 for perforce@freebsd.org; Sat, 22 Aug 2009 17:07:00 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 17:07:00 GMT Message-Id: <200908221707.n7MH70Yp012818@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167616 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: Sat, 22 Aug 2009 17:07:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=167616 Change 167616 by mav@mav_mavbook on 2009/08/22 17:06:53 Report extended capabilities register content from AHCI 1.2. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#48 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#17 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#48 (text+ko) ==== @@ -121,7 +121,7 @@ struct ahci_controller *ctlr = device_get_softc(dev); device_t child; int error, unit, speed; - u_int32_t version, caps; + u_int32_t version, caps, caps2; ctlr->dev = dev; /* if we have a memory BAR(5) we are likely on an AHCI part */ @@ -161,6 +161,7 @@ /* Announce HW capabilities. */ version = ATA_INL(ctlr->r_mem, AHCI_VS); caps = ATA_INL(ctlr->r_mem, AHCI_CAP); + caps2 = ATA_INL(ctlr->r_mem, AHCI_CAP2); speed = (caps & AHCI_CAP_ISS) >> AHCI_CAP_ISS_SHIFT; device_printf(dev, "AHCI v%x.%02x with %d %sGbps ports, Port Multiplier %s\n", @@ -195,6 +196,10 @@ (caps & AHCI_CAP_EMS) ? " EM":"", (caps & AHCI_CAP_SXS) ? " eSATA":"", (caps & AHCI_CAP_NPMASK) + 1); + device_printf(dev, "Caps2:%s%s%s\n", + (caps2 & AHCI_CAP2_APST) ? " APST":"", + (caps2 & AHCI_CAP2_NVMP) ? " NVMP":"", + (caps2 & AHCI_CAP2_BOH) ? " BOH":""); } /* Attach all channels on this controller */ for (unit = 0; unit < ctlr->channels; unit++) { @@ -524,6 +529,7 @@ ch->dev = dev; ch->unit = (intptr_t)device_get_ivars(dev); ch->caps = ATA_INL(ctlr->r_mem, AHCI_CAP); + ch->caps2 = ATA_INL(ctlr->r_mem, AHCI_CAP2); ch->numslots = ((ch->caps & AHCI_CAP_NCS) >> AHCI_CAP_NCS_SHIFT) + 1, resource_int_value(device_get_name(dev), device_get_unit(dev), "pm_level", &ch->pm_level); ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.h#17 (text+ko) ==== @@ -176,6 +176,11 @@ #define AHCI_PI 0x0c #define AHCI_VS 0x10 +#define AHCI_CAP2 0x24 +#define AHCI_CAP2_BOH 0x00000001 +#define AHCI_CAP2_NVMP 0x00000002 +#define AHCI_CAP2_APST 0x00000004 + #define AHCI_OFFSET 0x100 #define AHCI_STEP 0x80 @@ -336,6 +341,7 @@ struct cam_sim *sim; struct cam_path *path; uint32_t caps; /* Controller capabilities */ + uint32_t caps2; /* Controller capabilities */ int numslots; /* Number of present slots */ int pm_level; /* power management level */ int sata_rev; /* Maximum allowed SATA generation */ From owner-p4-projects@FreeBSD.ORG Sat Aug 22 17:35:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A0BA41065691; Sat, 22 Aug 2009 17:35:32 +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 63491106568F for ; Sat, 22 Aug 2009 17:35:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 52AB98FC08 for ; Sat, 22 Aug 2009 17:35:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MHZWVE015045 for ; Sat, 22 Aug 2009 17:35:32 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MHZW1F015043 for perforce@freebsd.org; Sat, 22 Aug 2009 17:35:32 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 17:35:32 GMT Message-Id: <200908221735.n7MHZW1F015043@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167617 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: Sat, 22 Aug 2009 17:35:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167617 Change 167617 by mav@mav_mavbook on 2009/08/22 17:34:58 Reduce reset time. Improve logging. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#49 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#49 (text+ko) ==== @@ -1599,7 +1599,7 @@ AHCI_P_IX_DP | AHCI_P_IX_UF | AHCI_P_IX_SDB | AHCI_P_IX_DS | AHCI_P_IX_PS | AHCI_P_IX_DHR)); if (bootverbose) - device_printf(dev, "AHCI reset done: devices=%08x\n", ch->devices); + device_printf(dev, "AHCI reset done: device found\n"); /* Tell the XPT about the event */ xpt_async(AC_BUS_RESET, ch->path, NULL); } @@ -1666,6 +1666,13 @@ ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) break; + if ((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_OFFLINE) { + if (bootverbose) { + device_printf(ch->dev, "SATA offline status=%08x\n", + status); + } + return (0); + } DELAY(1000); } if (timeout >= 100) { @@ -1709,11 +1716,11 @@ ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_RESET | val | ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER); - DELAY(50000); + DELAY(5000); ATA_OUTL(ch->r_mem, AHCI_P_SCTL, ATA_SC_DET_IDLE | val | ((ch->pm_level > 0) ? 0 : (ATA_SC_IPM_DIS_PARTIAL | ATA_SC_IPM_DIS_SLUMBER))); - DELAY(50000); + DELAY(5000); return (ahci_sata_connect(ch)); } From owner-p4-projects@FreeBSD.ORG Sat Aug 22 18:18:20 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D2FBA10656B5; Sat, 22 Aug 2009 18:18: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 7B5F2106568F for ; Sat, 22 Aug 2009 18:18:19 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6A2EA8FC16 for ; Sat, 22 Aug 2009 18:18:19 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MIIJZA020150 for ; Sat, 22 Aug 2009 18:18:19 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MIIJtZ020147 for perforce@freebsd.org; Sat, 22 Aug 2009 18:18:19 GMT (envelope-from truncs@FreeBSD.org) Date: Sat, 22 Aug 2009 18:18:19 GMT Message-Id: <200908221818.n7MIIJtZ020147@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167619 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: Sat, 22 Aug 2009 18:18:20 -0000 http://perforce.freebsd.org/chv.cgi?CH=167619 Change 167619 by truncs@aditya on 2009/08/22 18:18:13 A little cleanup and making it more consistent with UFS. Submitted by: Pedro Giffuni Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#6 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#18 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#6 (text+ko) ==== @@ -125,16 +125,16 @@ long count, nblocks, blocksreleased = 0; int aflags, error, i, allerror; off_t osize; -/* -printf("ext2_truncate called %d to %d\n", VTOI(ovp)->i_number, length); -*/ /* + + /* * negative file sizes will totally break the code below and * are not meaningful anyways. + * We should check the max file size here too. */ + oip = VTOI(ovp); if (length < 0) - return EFBIG; + return EINVAL; - oip = VTOI(ovp); if (ovp->v_type == VLNK && oip->i_size < ovp->v_mount->mnt_maxsymlinklen) { #ifdef DIAGNOSTIC @@ -155,7 +155,7 @@ /* * Lengthen the size of the file. We must ensure that the * last byte of the file is allocated. Since the smallest - * value of oszie is 0, length will be at least 1. + * value of osize is 0, length will be at least 1. */ if (osize < length) { if (length > oip->i_e2fs->e2fs_maxfilesize) @@ -163,14 +163,15 @@ offset = blkoff(fs, length - 1); lbn = lblkno(fs, length - 1); aflags = B_CLRBUF; - if (flags & B_SYNC) + if (flags & IO_SYNC) aflags |= B_SYNC; - if ((error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, - aflags)) != 0) + vnode_pager_setsize(ovp, length); + error = ext2_balloc(oip, lbn, offset + 1, cred, &bp, + aflags); + if(error) return (error); oip->i_size = length; - vnode_pager_setsize(ovp, length); - if (aflags & IO_SYNC) + if (aflags & B_SYNC) bwrite(bp); else bawrite(bp); @@ -200,12 +201,11 @@ size = blksize(fs, oip, lbn); bzero((char *)bp->b_data + offset, (u_int)(size - offset)); allocbuf(bp, size); - if (aflags & B_SYNC) + if (aflags & IO_SYNC) bwrite(bp); else bawrite(bp); } - vnode_pager_setsize(ovp, length); /* * Calculate index into inode's block list of * last direct and indirect blocks (if any) @@ -444,8 +444,9 @@ last = lastbn % factor; nb = bap[i]; if (nb != 0) { - if ((error = ext2_indirtrunc(ip, nlbn, fsbtodb(fs, nb), - last, level - 1, &blkcount)) != 0) + error = ext2_indirtrunc(ip, nlbn, fsbtodb(fs, nb), + last, level - 1, &blkcount) + if (error) allerror = error; blocksreleased += blkcount; } ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#18 (text+ko) ==== @@ -149,10 +149,7 @@ flags = WRITECLOSE; if (mp->mnt_flag & MNT_FORCE) flags |= FORCECLOSE; - if (vfs_busy(mp, MBF_NOWAIT)) - return (EBUSY); error = ext2_flushfiles(mp, flags, td); - vfs_unbusy(mp); if ( error == 0 && fs->e2fs_wasvalid && ext2_cgupdate(ump, MNT_WAIT) == 0) { fs->e2fs->e2fs_state |= E2FS_ISCLEAN; ext2_sbupdate(ump, MNT_WAIT); @@ -400,10 +397,9 @@ * Things to do to update the mount: * 1) invalidate all cached meta-data. * 2) re-read superblock from disk. - * 3) re-read summary information from disk. - * 4) invalidate all inactive vnodes. - * 5) invalidate all cached file data. - * 6) re-read inode data for all active vnodes. + * 3) (re-read summary information from disk). + * 4) invalidate all cached file data. + * 5) re-read inode data for all active vnodes. */ static int ext2_reload(struct mount *mp, struct thread *td) @@ -888,8 +884,8 @@ * still zero, it will be unlinked and returned to the free * list by vput(). */ + brelse(bp); vput(vp); - brelse(bp); *vpp = NULL; return (error); } @@ -915,7 +911,7 @@ /* ext2_print_inode(ip); */ - brelse(bp); + bqrelse(bp); /* * Initialize the vnode from the inode, check for aliases. From owner-p4-projects@FreeBSD.ORG Sat Aug 22 18:29:32 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 709E71065691; Sat, 22 Aug 2009 18:29:32 +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 35451106568C for ; Sat, 22 Aug 2009 18:29:32 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 248948FC0A for ; Sat, 22 Aug 2009 18:29:32 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MITVgp020967 for ; Sat, 22 Aug 2009 18:29:31 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MITVio020965 for perforce@freebsd.org; Sat, 22 Aug 2009 18:29:31 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 18:29:31 GMT Message-Id: <200908221829.n7MITVio020965@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167622 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: Sat, 22 Aug 2009 18:29:32 -0000 http://perforce.freebsd.org/chv.cgi?CH=167622 Change 167622 by mav@mav_mavbook on 2009/08/22 18:29:14 Improve error reporting in ATA_CAM wrapper. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#24 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#24 (text+ko) ==== @@ -1246,13 +1246,35 @@ //device_printf(dev, "%s\n", __func__); ccb->ccb_h.status &= ~CAM_STATUS_MASK; - if (request->result == 0) + if (request->flags & ATA_R_TIMEOUT) + ccb->ccb_h.status |= CAM_CMD_TIMEOUT; + else if (request->status & ATA_S_ERROR) { + if (ccb->ccb_h.func_code == XPT_ATA_IO) { + ccb->ccb_h.status |= CAM_ATA_STATUS_ERROR; + } else { + ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; + ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; + } + } else if (request->result != 0) + ccb->ccb_h.status |= CAM_REQ_CMP_ERR; + else ccb->ccb_h.status |= CAM_REQ_CMP; - else if (ccb->ccb_h.func_code == XPT_SCSI_IO) { - ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; - ccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; - } else - ccb->ccb_h.status |= CAM_REQ_CMP_ERR; + if (ccb->ccb_h.func_code == XPT_ATA_IO && + ((request->status & ATA_S_ERROR) || + (ccb->ataio.cmd.flags & CAM_ATAIO_NEEDRESULT))) { + struct ata_res *res = &ccb->ataio.res; + res->status = request->status; + res->error = request->error; + res->lba_low = request->u.ata.lba; + res->lba_mid = request->u.ata.lba >> 8; + res->lba_high = request->u.ata.lba >> 16; + res->device = request->u.ata.lba >> 24; + res->lba_low_exp = request->u.ata.lba >> 24; + res->lba_mid_exp = request->u.ata.lba >> 32; + res->lba_high_exp = request->u.ata.lba >> 40; + res->sector_count = request->u.ata.count; + res->sector_count_exp = request->u.ata.count >> 8; + } ata_free_request(request); xpt_done(ccb); } From owner-p4-projects@FreeBSD.ORG Sat Aug 22 18:56:01 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B481D106568E; Sat, 22 Aug 2009 18:56:01 +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 79206106568C for ; Sat, 22 Aug 2009 18:56:01 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4EE198FC12 for ; Sat, 22 Aug 2009 18:56:01 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MIu0o4022896 for ; Sat, 22 Aug 2009 18:56:00 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MIu0DZ022894 for perforce@freebsd.org; Sat, 22 Aug 2009 18:56:00 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 18:56:00 GMT Message-Id: <200908221856.n7MIu0DZ022894@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167624 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: Sat, 22 Aug 2009 18:56:01 -0000 http://perforce.freebsd.org/chv.cgi?CH=167624 Change 167624 by mav@mav_mavbook on 2009/08/22 18:55:14 Notify xpt about bus reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#25 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#25 (text+ko) ==== @@ -1381,6 +1381,7 @@ case XPT_RESET_BUS: /* Reset the specified SCSI bus */ case XPT_RESET_DEV: /* Bus Device Reset the specified SCSI device */ ATA_RESET(dev); + xpt_async(AC_BUS_RESET, ch->path, NULL); ccb->ccb_h.status = CAM_REQ_CMP; xpt_done(ccb); break; From owner-p4-projects@FreeBSD.ORG Sat Aug 22 22:33:59 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 72CE3106568B; Sat, 22 Aug 2009 22:33: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 3475D106564A for ; Sat, 22 Aug 2009 22:33:59 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 235448FC17 for ; Sat, 22 Aug 2009 22:33:59 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MMXxrU055046 for ; Sat, 22 Aug 2009 22:33:59 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MMXxv2055044 for perforce@freebsd.org; Sat, 22 Aug 2009 22:33:59 GMT (envelope-from truncs@FreeBSD.org) Date: Sat, 22 Aug 2009 22:33:59 GMT Message-Id: <200908222233.n7MMXxv2055044@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 167627 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: Sat, 22 Aug 2009 22:33:59 -0000 http://perforce.freebsd.org/chv.cgi?CH=167627 Change 167627 by truncs@aditya on 2009/08/22 22:33:08 Additional fixes. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#7 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_inode.c#7 (text+ko) ==== @@ -201,11 +201,12 @@ size = blksize(fs, oip, lbn); bzero((char *)bp->b_data + offset, (u_int)(size - offset)); allocbuf(bp, size); - if (aflags & IO_SYNC) + if (aflags & B_SYNC) bwrite(bp); else bawrite(bp); } + vnode_pager_setsize(ovp, length); /* * Calculate index into inode's block list of * last direct and indirect blocks (if any) From owner-p4-projects@FreeBSD.ORG Sat Aug 22 23:22:53 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CBD2D106568F; Sat, 22 Aug 2009 23:22:52 +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 7800E106568E for ; Sat, 22 Aug 2009 23:22:52 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 6640C8FC13 for ; Sat, 22 Aug 2009 23:22:52 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7MNMqQZ059598 for ; Sat, 22 Aug 2009 23:22:52 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7MNMquI059596 for perforce@freebsd.org; Sat, 22 Aug 2009 23:22:52 GMT (envelope-from mav@freebsd.org) Date: Sat, 22 Aug 2009 23:22:52 GMT Message-Id: <200908222322.n7MNMquI059596@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 167628 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: Sat, 22 Aug 2009 23:22:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=167628 Change 167628 by mav@mav_mavbook on 2009/08/22 23:22:05 Fix ATA_CAM wrapper polling locking. Fix ATA_CAM wrapper 36bit commands support. Tune ATA(4) DMA memory allocation. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#26 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#19 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-dma.c#13 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-sata.c#7 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-ahci.c#8 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#26 (text+ko) ==== @@ -80,6 +80,7 @@ static void bswap(int8_t *, int); static void btrim(int8_t *, int); static void bpack(int8_t *, int8_t *, int); +static void ata_interrupt_locked(void *data); /* global vars */ MALLOC_DEFINE(M_ATA, "ata_generic", "ATA driver generic layer"); @@ -418,10 +419,26 @@ void ata_interrupt(void *data) { +#ifdef ATA_CAM struct ata_channel *ch = (struct ata_channel *)data; + + mtx_lock(&ch->state_mtx); +#endif + ata_interrupt_locked(data); +#ifdef ATA_CAM + mtx_unlock(&ch->state_mtx); +#endif +} + +static void +ata_interrupt_locked(void *data) +{ + struct ata_channel *ch = (struct ata_channel *)data; struct ata_request *request; +#ifndef ATA_CAM mtx_lock(&ch->state_mtx); +#endif do { /* ignore interrupt if its not for us */ if (ch->hw.status && !ch->hw.status(ch->dev)) @@ -449,16 +466,17 @@ ch->state = ATA_IDLE; #ifdef ATA_CAM ata_cam_end_transaction(ch->dev, request); -#endif +#else mtx_unlock(&ch->state_mtx); -#ifndef ATA_CAM ATA_LOCKING(ch->dev, ATA_LF_UNLOCK); ata_finish(request); #endif return; } } while (0); +#ifndef ATA_CAM mtx_unlock(&ch->state_mtx); +#endif } /* @@ -1170,7 +1188,6 @@ struct ata_channel *ch = device_get_softc(dev); struct ata_request *request; -//device_printf(dev, "%s\n", __func__); if (!(request = ata_alloc_request())) { device_printf(dev, "FAILURE - out of memory in start\n"); ccb->ccb_h.status = CAM_REQ_INVALID; @@ -1191,14 +1208,19 @@ (uint16_t)ccb->ataio.cmd.features; request->u.ata.count = ((uint16_t)ccb->ataio.cmd.sector_count_exp << 8) | (uint16_t)ccb->ataio.cmd.sector_count; - request->u.ata.lba = ((uint64_t)ccb->ataio.cmd.lba_high_exp << 40) | + if (ccb->ataio.cmd.flags & CAM_ATAIO_48BIT) { + request->flags |= ATA_R_48BIT; + request->u.ata.lba = + ((uint64_t)ccb->ataio.cmd.lba_high_exp << 40) | ((uint64_t)ccb->ataio.cmd.lba_mid_exp << 32) | - ((uint64_t)ccb->ataio.cmd.lba_low_exp << 24) | - ((uint64_t)ccb->ataio.cmd.lba_high << 16) | - ((uint64_t)ccb->ataio.cmd.lba_mid << 8) | - (uint64_t)ccb->ataio.cmd.lba_low; - if (ccb->ataio.cmd.flags & CAM_ATAIO_48BIT) - request->flags |= ATA_R_48BIT; + ((uint64_t)ccb->ataio.cmd.lba_low_exp << 24); + } else { + request->u.ata.lba = + ((uint64_t)(ccb->ataio.cmd.device & 0x0f) << 24); + } + request->u.ata.lba |= ((uint64_t)ccb->ataio.cmd.lba_high << 16) | + ((uint64_t)ccb->ataio.cmd.lba_mid << 8) | + (uint64_t)ccb->ataio.cmd.lba_low; if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE && ccb->ataio.cmd.flags & CAM_ATAIO_DMA) request->flags |= ATA_R_DMA; @@ -1244,7 +1266,6 @@ // struct ata_channel *ch = device_get_softc(dev); union ccb *ccb = request->ccb; -//device_printf(dev, "%s\n", __func__); ccb->ccb_h.status &= ~CAM_STATUS_MASK; if (request->flags & ATA_R_TIMEOUT) ccb->ccb_h.status |= CAM_CMD_TIMEOUT; @@ -1429,7 +1450,7 @@ { struct ata_channel *ch = (struct ata_channel *)cam_sim_softc(sim); - ata_interrupt(ch); + ata_interrupt_locked(ch); } #endif ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.h#19 (text+ko) ==== @@ -246,7 +246,7 @@ #define ATA_AHCI_CL_OFFSET 0 #define ATA_AHCI_FB_OFFSET (ATA_AHCI_CL_SIZE * 32) #define ATA_AHCI_CT_OFFSET (ATA_AHCI_FB_OFFSET + 4096) -#define ATA_AHCI_CT_SIZE (1024 + 128) +#define ATA_AHCI_CT_SIZE (2176 + 128) struct ata_ahci_dma_prd { u_int64_t dba; @@ -260,7 +260,7 @@ u_int8_t cfis[64]; u_int8_t acmd[32]; u_int8_t reserved[32]; -#define ATA_AHCI_DMA_ENTRIES 64 +#define ATA_AHCI_DMA_ENTRIES 129 struct ata_ahci_dma_prd prd_tab[ATA_AHCI_DMA_ENTRIES]; } __packed; @@ -481,7 +481,7 @@ u_int8_t *work; /* workspace */ bus_addr_t work_bus; /* bus address of dmatab */ -#define ATA_DMA_SLOTS 32 +#define ATA_DMA_SLOTS 1 int dma_slots; /* DMA slots allocated */ struct ata_dmaslot slot[ATA_DMA_SLOTS]; u_int32_t alignment; /* DMA SG list alignment */ ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-dma.c#13 (text+ko) ==== @@ -78,7 +78,7 @@ ch->dma.segsize = 65536; ch->dma.max_iosize = 128 * DEV_BSIZE; ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT; - ch->dma.dma_slots = 6; + ch->dma.dma_slots = 1; if (bus_dma_tag_create(bus_get_dma_tag(dev), ch->dma.alignment, 0, ch->dma.max_address, BUS_SPACE_MAXADDR, @@ -284,8 +284,8 @@ return EIO; } - /* set our slot, unit for simplicity XXX SOS NCQ will change that */ - request->dma = &ch->dma.slot[request->unit]; + /* set our slot. XXX SOS NCQ will change that */ + request->dma = &ch->dma.slot[0]; if (addr) dspa.dmatab = addr; ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-sata.c#7 (text+ko) ==== @@ -337,9 +337,6 @@ pm_chipid, pm_revision, pm_ports); } - /* realloc space for needed DMA slots */ - ch->dma.dma_slots = pm_ports; - /* reset all ports and register if anything connected */ for (port=0; port < pm_ports; port++) { u_int32_t signature; ==== //depot/projects/scottl-camlock/src/sys/dev/ata/chipsets/ata-ahci.c#8 (text+ko) ==== @@ -396,7 +396,7 @@ /* get a piece of the workspace for this request */ ctp = (struct ata_ahci_cmd_tab *) - (ch->dma.work + ATA_AHCI_CT_OFFSET + (ATA_AHCI_CT_SIZE*request->tag)); + (ch->dma.work + ATA_AHCI_CT_OFFSET); /* setup the FIS for this request */ if (!(fis_size = ata_ahci_setup_fis(ctp, request))) { @@ -416,7 +416,7 @@ /* setup the command list entry */ clp = (struct ata_ahci_cmd_list *) - (ch->dma.work + ATA_AHCI_CL_OFFSET + (ATA_AHCI_CL_SIZE*request->tag)); + (ch->dma.work + ATA_AHCI_CL_OFFSET); clp->prd_length = entries; clp->cmd_flags = (request->flags & ATA_R_WRITE ? ATA_AHCI_CMD_WRITE : 0) | @@ -425,13 +425,8 @@ (fis_size / sizeof(u_int32_t)) | (port << 12); clp->bytecount = 0; - clp->cmd_table_phys = htole64(ch->dma.work_bus + ATA_AHCI_CT_OFFSET + - (ATA_AHCI_CT_SIZE * request->tag)); + clp->cmd_table_phys = htole64(ch->dma.work_bus + ATA_AHCI_CT_OFFSET); - /* clear eventual ACTIVE bit */ - ATA_IDX_OUTL(ch, ATA_SACTIVE, - ATA_IDX_INL(ch, ATA_SACTIVE) & (1 << request->tag)); - /* set command type bit */ if (request->flags & ATA_R_ATAPI) ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CMD + offset, @@ -443,7 +438,7 @@ ~ATA_AHCI_P_CMD_ATAPI); /* issue command to controller */ - ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CI + offset, (1 << request->tag)); + ATA_OUTL(ctlr->r_res2, ATA_AHCI_P_CI + offset, 1); if (!(request->flags & ATA_R_ATAPI)) { /* device reset doesn't interrupt */ @@ -509,7 +504,7 @@ /* record how much data we actually moved */ clp = (struct ata_ahci_cmd_list *) - (ch->dma.work + ATA_AHCI_CL_OFFSET + (ATA_AHCI_CL_SIZE*request->tag)); + (ch->dma.work + ATA_AHCI_CL_OFFSET); request->donecount = clp->bytecount; /* release SG list etc */