From owner-p4-projects@FreeBSD.ORG Sun Jan 17 01:27:53 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1E85106568B; Sun, 17 Jan 2010 01:27: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 8AC80106566C for ; Sun, 17 Jan 2010 01:27:52 +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 78F328FC1B for ; Sun, 17 Jan 2010 01:27: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 o0H1RqJ2054768 for ; Sun, 17 Jan 2010 01:27:52 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0H1RqPe054766 for perforce@freebsd.org; Sun, 17 Jan 2010 01:27:52 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 17 Jan 2010 01:27:52 GMT Message-Id: <201001170127.o0H1RqPe054766@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 Precedence: bulk Cc: Subject: PERFORCE change 173232 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 01:27:53 -0000 http://p4web.freebsd.org/chv.cgi?CH=173232 Change 173232 by pgj@Binturong on 2010/01/17 01:27:13 IFC Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml#25 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/share/sgml/trademarks.ent#14 integrate .. //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/hardware/article.sgml#17 integrate .. //depot/projects/docproj_hu/www/en/news/status/report-2009-10-2009-12.xml#1 branch .. //depot/projects/docproj_hu/www/en/platforms/sparc.sgml#6 integrate Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/x11/chapter.sgml#25 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -113,10 +113,15 @@
  • Blade 2500
  • Fire 280R
  • Fire V210
  • +
  • Fire V215 (elõször a 7.3-RELEASE kiadásban + jelent meg támogatás)
  • Fire V250
  • Fire V440 (az integrált hálózati kártyák támogatása megjelent a 8.0-RELEASE kiadásban)
  • +
  • Fire V480 (egyelõre csak az 501-6780 és 501-6790 + lapokkal, elõször a 7.3-RELEASE kiadásban jelent + meg támogatás)
  • Fire V880
  • Netra 20/Netra T4
  • @@ -128,6 +133,8 @@
    • Fire V125
    • Fire V240
    • +
    • Fire V245 (elõször a 7.3-RELEASE kiadásban + jelent meg támogatás)

    Ha itt nem szereplõ rendszerrel rendelkezünk, From owner-p4-projects@FreeBSD.ORG Sun Jan 17 03:49:16 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 33E241065679; Sun, 17 Jan 2010 03:49: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 C98F91065672 for ; Sun, 17 Jan 2010 03:49:15 +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 B58408FC08 for ; Sun, 17 Jan 2010 03:49: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 o0H3nFIr067166 for ; Sun, 17 Jan 2010 03:49:15 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0H3nF4l067164 for perforce@freebsd.org; Sun, 17 Jan 2010 03:49:15 GMT (envelope-from pgj@FreeBSD.org) Date: Sun, 17 Jan 2010 03:49:15 GMT Message-Id: <201001170349.o0H3nF4l067164@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 Precedence: bulk Cc: Subject: PERFORCE change 173241 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 03:49:16 -0000 http://p4web.freebsd.org/chv.cgi?CH=173241 Change 173241 by pgj@Binturong on 2010/01/17 03:48:17 MFen (doc): 1.425 -> 1.426 hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml 1.245 -> 1.246 hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml 1.334 -> 1.335 hu_HU.ISO8859-2/books/handbook/security/chapter.sgml Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#37 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#27 edit .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#21 edit Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#37 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -2855,8 +2855,46 @@ kapcsolódni hozzá a ban leírtak szerint. + + + + + A vezetékes és vezeték + nélküli hálózatok együttes + használata - + A vezetékes hálózatok + általában jobb teljesítményt + nyújtanak és megbízhatóbbak, + miközben a vezeték nélküli + hálózatok pedig nagyobb rugalmasságot + és mozgásteret szolgáltatnak. Ezért + a hordozható számítógépek + tulajdonosaiban felmerülhet az igény, hogy egyszerre + mind a kettõt használva, tetszõlegesen + és problémamentesen válthassanak a + hálózatok között. + + &os; rendszereken ún. + hibatûrõ módon két vagy + akár több hálózati interfészt + össze tudunk vonni. Ennek köszönhetõen az + aktív hálózati kapcsolat + megszünésekor rendszerünk + önállóan igyekszik mindig a fennmaradó + elérhetõ hálózatok közül a + leginkább preferáltabbra váltani. + + A hálózati összeköttetések + összefûzésével és a + hibatûrés konkrét + megvalósításával az ban foglalkozunk, ahol a ban + láthatjuk is a vezetékes és vezeték + nélküli kapcsolatok együttes + használatának + beállítását. @@ -4752,6 +4790,119 @@ kapcsolat az elsõdleges felületen, akkor újra az lesz aktív link. + + + Hibatûrés beállítása + vezetékes és vezeték nélküli + hálózatok között + + Hordozható számítógépek + használata esetén általában + érdemesebb a vezeték nélküli + kapcsolatot másodlagos interfészként + beállítani, így csak akkor + használja a rendszer, ha vezetékes + hálózat nem érhetõ el. A + &man.lagg.4; segítségével egyetlen + IP-címmel tudjuk használni mind a két + interfészt: a teljesítmény és + biztonságosság miatt elsõsorban a + vezetékes hálózatot használjuk, + miközben megmarad a lehetõség az adatok + továbbítására a vezeték + nélküli kapcsolaton keresztül is. + + A beállítás során a + vezeték nélküli interfész + MAC-címét úgy kell + módosítanunk, hogy megegyezzen a &man.lagg.4; + címével. A &man.lagg.4; interfész a + saját MAC-címét az + elsõdleges interfésztõl örökli, + amely jelen esetünkben a vezetékes + interfész lesz. + + A most következõ példában a + vezetékes hálózatunk lesz az + elsõdleges interfész + (bge0), míg a vezeték + nélküli (wlan0) a + másodlagos. A wlan0 + interfészt az iwn0 + interfészbõl hoztuk létre, és a + vezetékes kapcsolat + MAC-címét + állítjuk be neki. Elsõ + lépésként tehát le kell + kérdeznünk a vezetékes interfész + MAC-címét: + + &prompt.root; ifconfig bge0 +bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4> + ether 00:21:70:da:ae:37 + inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2 + nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> + media: Ethernet autoselect (1000baseT <full-duplex>) + status: active + + A bge0 helyett + természetesen a saját vezetékes + hálózati interfészünket kell + megadni, és az ether kezdetû + sorban is saját kártyánk + MAC-címe fog megjelenni. + Ezután már meg is tudjuk változtatni az + iwn0 címét: + + &prompt.root; ifconfig iwn0 ether 00:21:70:da:ae:37 + + Aktiváljuk a vezeték nélküli + interfészt, de ne állítsunk be neki + semmilyen IP-címet: + + &prompt.root; ifconfig create wlan0 wlandev iwn0 ssid wlan_hálózat up + + Hozzuk létre a &man.lagg.4; interfészt a + bge0 mint elsõdleges + interfész megadásával, valamint a + wlan0 legyen a szükség + esetén használható + tartalék: + + &prompt.root; ifconfig lagg0 create +&prompt.root; ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0 + + Az így létrehozott interfész + nagyjából így fog megjelenni, egyedüli + fontosabb eltérések a + MAC-címek és az + eszközök nevei: + + &prompt.root; ifconfig lagg0 +lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 + options=8<VLAN_MTU> + ether 00:21:70:da:ae:37 + media: Ethernet autoselect + status: active + laggproto failover + laggport: wlan0 flags=0<> + laggport: bge0 flags=5<MASTER,ACTIVE> + + Hogy ne kelljen a rendszer minden egyes + indítása után ezt a mûveletet + megismételni, vegyük fel a következõ + sorokat az /etc/rc.conf + állományba: + + ifconfig_bge0="up" +ifconfig_iwn0="ether 00:21:70:da:ae:37" +wlans_iwn0="wlan0" +ifconfig_wlan0="WPA" +cloned_interfaces="lagg0" +ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP" + + ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#27 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -225,12 +225,12 @@ A konfigurációs állományok - Elõfordulhat, hogy változtatni akarunk valamin - a frissítési folyamatban és ezért - szeretnénk módosítani a programhoz - tartozó konfigurációs - állományt. Az opciók részletes - ismertetéssel rendelkeznek, habár + Ha változtatnénk szeretnénk a + frissítési folyamaton, ekkor a programhoz + tartozó, /etc/freebsd-update.conf + nevû konfigurációs állományt + kell módosítanunk. Az opciók + részletes ismertetéssel rendelkeznek, habár némelyiknél még további magyarázat kellhet: ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#21 (text+ko) ==== @@ -7,7 +7,7 @@ @@ -741,9 +741,10 @@ rendszergazdai jogokkal történik. Az ilyen binárisok többsége, mint például az rlogin, a - /bin és /sbin, - /usr/bin vagy - /usr/sbin könyvtárakban + /bin és /sbin, /usr/bin vagy /usr/sbin könyvtárakban található meg. Habár semmi sem biztonságos 100%-ig, a rendszerben alapértelmezetten suid és sgid engedéllyel @@ -995,8 +996,9 @@ állítjuk be mindegyik rendszerszintû állományra az schg állományjelzõt. Másik - lehetõség még a / - és /usr partíciók + lehetõség még a / és /usr partíciók írásvédett csatlakoztatása. Ne felejtsük el azonban, hogy ha túlságosan szigorúak vagyunk magunkhoz, akkor azzal egyúttal @@ -1018,7 +1020,8 @@ a foga fehérjét. Például, ha a chflags paranccsal beállítjuk az schg állományjelzõt a - / és /usr + / és /usr állományrendszereken található legtöbb állományra, akkor az minden bizonnyal csökkenti a hatékonyságunkat, hiszen az @@ -1087,9 +1090,10 @@ tartott kliensek állományait naponta legalább egyszer érdemes ellenõrizni md5-tel, valamint még ennél gyakrabban is tesztelni az - /etc és - /usr/local/etc könyvtárakban - található konfigurációs és + /etc és /usr/local/etc + könyvtárakban található + konfigurációs és vezérlõállományokat. Ha valamilyen eltérést tapasztal az ellenõrzést végzõ szerverünk és a rajta levõ @@ -1097,8 +1101,9 @@ értesítenie kell a rendszergazdát. Egy jó védelmi szkript képes megkeresni az oda nem illõ suid binárisokat, valamint az új - vagy törölt állományokat a - / és a /usr + vagy törölt állományokat a / és a /usr partíciókon. A védelmi szkriptek megírása valamivel @@ -2463,9 +2468,10 @@ gyõzõdjünk meg róla, hogy semmilyen korábbi Kerberos adatbázis nem található a gépen. Váltsunk az - /etc/kerberosIV könyvtárra - és ellenõrizzük a következõ - állományok meglétét: + /etc/kerberosIV + könyvtárra és ellenõrizzük a + következõ állományok + meglétét: &prompt.root; cd /etc/kerberosIV &prompt.root; ls @@ -2694,7 +2700,7 @@ állományt, amelyet biztonságos eszközökkel át kell másolni vagy át kell mozgatni az egyes Kerberos kliensek - /etc könyvtárába. Ennek + /etc könyvtárába. Ennek az állománynak egyaránt jelent kell lennie a szerveren és a kliensen is, nélküle a Kerberos mûködésképtelen. @@ -2723,9 +2729,10 @@ adathordozóra és megbízható módon jutassuk el. Ne felejtsük el az állományt srvtab néven - átrakni a kliens /etc - könyvtárába és az engedélyeit - 600-ra állítani: + átrakni a kliens /etc könyvtárába + és az engedélyeit 600-ra + állítani: &prompt.root; mv grumble-new-srvtab srvtab &prompt.root; chmod 600 srvtab @@ -2783,8 +2790,8 @@ magától lezajlik. Ezt csak a Kerberos szerveren kell megcsinálni. A Kerberos kliensei maguktól összeszedik a mûködésükhöz - szükséges adatokat az - /etc/kerberosIV + szükséges adatokat az /etc/kerberosIV könyvtárból. &prompt.root; kerberos & @@ -3894,13 +3901,13 @@ mérvadó. Vigyázzunk az elérési utakkal: az MIT port magát alapértelmezés szerint a - /usr/local könyvtárba - telepíti, ezért az általuk kiváltani - kívánt normális - rendszerprogramokat esetleg hamarabb találja meg a - rendszer, ha nem jól állítottuk be a - PATH környezeti - változónkat. + /usr/local + könyvtárba telepíti, ezért az + általuk kiváltani kívánt + normális rendszerprogramokat esetleg + hamarabb találja meg a rendszer, ha nem jól + állítottuk be a PATH + környezeti változónkat. Ha nem értjük, hogy miért @@ -3980,8 +3987,9 @@ Kerberos már nem annyira biztonságos. Ez azért mondható el, mert a jegyeket a mindenki által olvasható - /tmp könyvtárban - tárolja. Ha az adott felhasználó + /tmp + könyvtárban tárolja. Ha az adott + felhasználó számítógépét egyszerre több emberrel is megosztja (tehát többfelhasználós), akkor a @@ -5194,8 +5202,9 @@ Az OpenSSH démon és kliens rendszerszintû konfigurációs - állományai az /etc/ssh - könyvtárban találhatóak. + állományai az /etc/ssh könyvtárban + találhatóak. Az ssh_config tartalmazza a kliens beállításait, miközben az @@ -5741,12 +5750,12 @@ drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html Láthatjuk, hogy a - könyvtár1, - könyvtár2 és - könyvtár3 + könyvtár1, + könyvtár2 és + könyvtár3 könyvtárakhoz tartoznak ACL típusú engedélyek, míg a - public_html könyvtárhoz + public_html könyvtárhoz nem. @@ -6083,10 +6092,10 @@ állományokra, akkor megtudhatjuk a pontos revíziójukat. A portoknál a verziószám a port neve után szerepel a - /var/db/pkg könyvtárban. - Ha a rendszerünket nem frissítettük - CVS-rõl és fordítottuk - újra, akkor nagy a + /var/db/pkg + könyvtárban. Ha a rendszerünket nem + frissítettük CVS-rõl + és fordítottuk újra, akkor nagy a valószínûsége, hogy a sebezhetõség minket is érint. From owner-p4-projects@FreeBSD.ORG Sun Jan 17 08:51:23 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2DE001065672; Sun, 17 Jan 2010 08:51:23 +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 E5C40106566B for ; Sun, 17 Jan 2010 08:51:22 +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 D41D98FC12 for ; Sun, 17 Jan 2010 08:51: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 o0H8pMlO017549 for ; Sun, 17 Jan 2010 08:51:22 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0H8pM1e017547 for perforce@freebsd.org; Sun, 17 Jan 2010 08:51:22 GMT (envelope-from mav@freebsd.org) Date: Sun, 17 Jan 2010 08:51:22 GMT Message-Id: <201001170851.o0H8pM1e017547@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 Precedence: bulk Cc: Subject: PERFORCE change 173252 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 08:51:23 -0000 http://p4web.freebsd.org/chv.cgi?CH=173252 Change 173252 by mav@mav_mavtest on 2010/01/17 08:50:39 Return scan status in status field, leaving ppriv_field1 untouched. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#70 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#70 (text+ko) ==== @@ -964,8 +964,7 @@ xpt_release_ccb(done_ccb); done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); TAILQ_REMOVE(&softc->request_ccbs, &done_ccb->ccb_h, periph_links.tqe); - done_ccb->ccb_h.status = CAM_REQ_CMP; - done_ccb->ccb_h.ppriv_field1 = found; + done_ccb->ccb_h.status = found ? CAM_REQ_CMP : CAM_REQ_CMP_ERR; xpt_done(done_ccb); if (TAILQ_FIRST(&softc->request_ccbs) == NULL) { cam_release_devq(periph->path, @@ -1097,7 +1096,7 @@ /* If there is PMP... */ if ((scan_info->cpi->hba_inquiry & PI_SATAPM) && (scan_info->counter == scan_info->cpi->max_target)) { - if (work_ccb->ccb_h.ppriv_field1 != 0) { + if (work_ccb->ccb_h.status == CAM_REQ_CMP) { /* everything else willbe probed by it */ goto done; } else { From owner-p4-projects@FreeBSD.ORG Sun Jan 17 10:03:35 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F3081065676; Sun, 17 Jan 2010 10:03: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 43CDA106566B for ; Sun, 17 Jan 2010 10:03:35 +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 31DAE8FC16 for ; Sun, 17 Jan 2010 10:03:35 +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 o0HA3Zq9025930 for ; Sun, 17 Jan 2010 10:03:35 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0HA3ZcC025928 for perforce@freebsd.org; Sun, 17 Jan 2010 10:03:35 GMT (envelope-from mav@freebsd.org) Date: Sun, 17 Jan 2010 10:03:35 GMT Message-Id: <201001171003.o0HA3ZcC025928@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 Precedence: bulk Cc: Subject: PERFORCE change 173254 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 10:03:35 -0000 http://p4web.freebsd.org/chv.cgi?CH=173254 Change 173254 by mav@mav_mavtest on 2010/01/17 10:02:55 Delay boot while PMP scan completes. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#27 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#137 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#20 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#27 (text+ko) ==== @@ -303,9 +303,10 @@ if (code == AC_SCSI_AEN && softc->state != PMP_STATE_NORMAL && softc->state != PMP_STATE_SCAN) break; - if (softc->state != PMP_STATE_SCAN) + if (softc->state != PMP_STATE_SCAN) { + xpt_hold_boot(); pmpfreeze(periph, softc->found); - else + } else pmpfreeze(periph, softc->found & ~(1 << softc->pm_step)); if (code == AC_SENT_BDR || code == AC_BUS_RESET) softc->found = 0; /* We have to reset everything. */ @@ -410,6 +411,7 @@ * the end of probe. */ (void)cam_periph_acquire(periph); + xpt_hold_boot(); xpt_schedule(periph, CAM_PRIORITY_DEV); return(CAM_REQ_CMP); @@ -759,7 +761,7 @@ done_ccb->ccb_h.func_code = XPT_SCAN_LUN; done_ccb->ccb_h.cbfcnp = pmpdone; done_ccb->crcn.flags = done_ccb->crcn.flags; - xpt_action(done_ccb); + xpt_rescan_direct(done_ccb, 1); pmprelease(periph, 1 << softc->pm_step); return; default: @@ -769,6 +771,7 @@ xpt_release_ccb(done_ccb); done1: softc->state = PMP_STATE_NORMAL; + xpt_release_boot(); pmprelease(periph, -1); cam_periph_release_locked(periph); } ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#137 (text+ko) ==== @@ -812,21 +812,6 @@ xpt_rescan_done(struct cam_periph *periph, union ccb *done_ccb) { - xpt_lock_buses(); - xsoftc.buses_to_config--; - if (xsoftc.buses_to_config == 0 && xsoftc.buses_config_done == 0) { - struct xpt_task *task; - - xsoftc.buses_config_done = 1; - xpt_unlock_buses(); - /* Call manually because we don't have any busses */ - task = malloc(sizeof(struct xpt_task), M_CAMXPT, M_NOWAIT); - if (task != NULL) { - TASK_INIT(&task->task, 0, xpt_finishconfig_task, task); - taskqueue_enqueue(taskqueue_thread, &task->task); - } - } else - xpt_unlock_buses(); if (done_ccb->ccb_h.ppriv_ptr1 == NULL) { xpt_free_path(done_ccb->ccb_h.path); xpt_free_ccb(done_ccb); @@ -834,6 +819,7 @@ done_ccb->ccb_h.cbfcnp = done_ccb->ccb_h.ppriv_ptr1; (*done_ccb->ccb_h.cbfcnp)(periph, done_ccb); } + xpt_release_boot(); } /* thread to handle bus rescans */ @@ -854,13 +840,6 @@ sim = ccb->ccb_h.path->bus->sim; CAM_SIM_LOCK(sim); - if( ccb->ccb_h.path->target->target_id == CAM_TARGET_WILDCARD ) - ccb->ccb_h.func_code = XPT_SCAN_BUS; - else - ccb->ccb_h.func_code = XPT_SCAN_LUN; - ccb->ccb_h.ppriv_ptr1 = ccb->ccb_h.cbfcnp; - ccb->ccb_h.cbfcnp = xpt_rescan_done; - xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, CAM_PRIORITY_XPT); xpt_action(ccb); CAM_SIM_UNLOCK(sim); @@ -872,13 +851,32 @@ void xpt_rescan(union ccb *ccb) { + + xpt_rescan_direct(ccb, 0); +} + +void +xpt_rescan_direct(union ccb *ccb, int direct) +{ struct ccb_hdr *hdr; - /* - * Don't make duplicate entries for the same paths. - */ + /* Prepare request */ + if(ccb->ccb_h.path->target->target_id == CAM_TARGET_WILDCARD) + ccb->ccb_h.func_code = XPT_SCAN_BUS; + else + ccb->ccb_h.func_code = XPT_SCAN_LUN; + ccb->ccb_h.ppriv_ptr1 = ccb->ccb_h.cbfcnp; + ccb->ccb_h.cbfcnp = xpt_rescan_done; + xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, CAM_PRIORITY_XPT); + /* Execute directly if requested. */ + if (direct) { + xpt_hold_boot(); + xpt_action(ccb); + return; + } + /* Don't make duplicate entries for the same paths. */ xpt_lock_buses(); - if (ccb->ccb_h.cbfcnp == NULL) { + if (ccb->ccb_h.ppriv_ptr1 == NULL) { TAILQ_FOREACH(hdr, &xsoftc.ccb_scanq, sim_links.tqe) { if (xpt_path_comp(hdr->path, ccb->ccb_h.path) == 0) { wakeup(&xsoftc.ccb_scanq); @@ -4706,7 +4704,27 @@ #endif /* CAMDEBUG */ periphdriver_init(1); + xpt_hold_boot(); + xpt_release_boot(); + /* Fire up rescan thread. */ + if (kproc_create(xpt_scanner_thread, NULL, NULL, 0, 0, "xpt_thrd")) { + printf("xpt_init: failed to create rescan thread\n"); + } +} + +void +xpt_hold_boot(void) +{ xpt_lock_buses(); + xsoftc.buses_to_config++; + xpt_unlock_buses(); +} + +void +xpt_release_boot(void) +{ + xpt_lock_buses(); + xsoftc.buses_to_config--; if (xsoftc.buses_to_config == 0 && xsoftc.buses_config_done == 0) { struct xpt_task *task; @@ -4718,13 +4736,8 @@ TASK_INIT(&task->task, 0, xpt_finishconfig_task, task); taskqueue_enqueue(taskqueue_thread, &task->task); } - } else { + } else xpt_unlock_buses(); - } - /* Fire up rescan thread. */ - if (kproc_create(xpt_scanner_thread, NULL, NULL, 0, 0, "xpt_thrd")) { - printf("xpt_init: failed to create rescan thread\n"); - } } /* ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#20 (text+ko) ==== @@ -114,7 +114,10 @@ struct cam_periph *xpt_path_periph(struct cam_path *path); void xpt_async(u_int32_t async_code, struct cam_path *path, void *async_arg); +void xpt_rescan_direct(union ccb *ccb, int direct); void xpt_rescan(union ccb *ccb); +void xpt_hold_boot(void); +void xpt_release_boot(void); void xpt_lock_buses(void); void xpt_unlock_buses(void); cam_status xpt_register_async(int event, ac_callback_t *cbfunc, From owner-p4-projects@FreeBSD.ORG Sun Jan 17 14:44:17 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C41FC1065672; Sun, 17 Jan 2010 14:44: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 87646106566B for ; Sun, 17 Jan 2010 14:44:17 +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 731568FC17 for ; Sun, 17 Jan 2010 14:44: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 o0HEiHsM063895 for ; Sun, 17 Jan 2010 14:44:17 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0HEiHm2063893 for perforce@freebsd.org; Sun, 17 Jan 2010 14:44:17 GMT (envelope-from mav@freebsd.org) Date: Sun, 17 Jan 2010 14:44:17 GMT Message-Id: <201001171444.o0HEiHm2063893@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 Precedence: bulk Cc: Subject: PERFORCE change 173269 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 14:44:18 -0000 http://p4web.freebsd.org/chv.cgi?CH=173269 Change 173269 by mav@mav_mavtest on 2010/01/17 14:43:23 Remove unneeded now bus scans and unify the reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#21 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_periph.h#13 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_low.c#19 edit .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#93 edit .. //depot/projects/scottl-camlock/src/sys/dev/asr/asr.c#16 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-cam.c#22 edit .. //depot/projects/scottl-camlock/src/sys/dev/ciss/ciss.c#25 edit .. //depot/projects/scottl-camlock/src/sys/dev/hptiop/hptiop.c#6 edit .. //depot/projects/scottl-camlock/src/sys/dev/hptrr/hptrr_osm_bsd.c#4 edit .. //depot/projects/scottl-camlock/src/sys/dev/hptrr/os_bsd.h#2 edit .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp_freebsd.h#22 edit .. //depot/projects/scottl-camlock/src/sys/dev/mly/mly.c#15 edit .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.h#7 edit .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_raid.c#19 edit .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#33 edit .. //depot/projects/scottl-camlock/src/sys/dev/trm/trm.c#15 edit .. //depot/projects/scottl-camlock/src/sys/dev/twa/tw_osl_cam.c#11 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#21 (text+ko) ==== @@ -87,6 +87,9 @@ void xpt_action(union ccb *new_ccb); void xpt_action_default(union ccb *new_ccb); +union ccb *xpt_alloc_ccb(void); +union ccb *xpt_alloc_ccb_nowait(void); +void xpt_free_ccb(union ccb *free_ccb); void xpt_setup_ccb(struct ccb_hdr *ccb_h, struct cam_path *path, u_int32_t priority); ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt_periph.h#13 (text+ko) ==== @@ -39,9 +39,6 @@ /* Functions accessed by the peripheral drivers */ #ifdef _KERNEL void xpt_polled_action(union ccb *ccb); -union ccb *xpt_alloc_ccb(void); -union ccb *xpt_alloc_ccb_nowait(void); -void xpt_free_ccb(union ccb *free_ccb); void xpt_release_ccb(union ccb *released_ccb); void xpt_schedule(struct cam_periph *perph, u_int32_t new_priority); int32_t xpt_add_periph(struct cam_periph *periph); ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_low.c#19 (text+ko) ==== @@ -895,8 +895,6 @@ #define SCSI_LOW_ALLOC_CCB(flags) scsi_low_get_ccb() static void scsi_low_poll_cam(struct cam_sim *); -static void scsi_low_cam_rescan_callback(struct cam_periph *, union ccb *); -static void scsi_low_rescan_bus_cam(struct scsi_low_softc *); void scsi_low_scsi_action_cam(struct cam_sim *, union ccb *); static int scsi_low_attach_cam(struct scsi_low_softc *); @@ -954,38 +952,6 @@ } } -static void -scsi_low_cam_rescan_callback(periph, ccb) - struct cam_periph *periph; - union ccb *ccb; -{ - - xpt_free_path(ccb->ccb_h.path); - xpt_free_ccb(ccb); -} - -static void -scsi_low_rescan_bus_cam(slp) - struct scsi_low_softc *slp; -{ - struct cam_path *path; - union ccb *ccb; - cam_status status; - - status = xpt_create_path(&path, xpt_periph, - cam_sim_path(slp->sl_si.sim), -1, 0); - if (status != CAM_REQ_CMP) - return; - - ccb = xpt_alloc_ccb(); - bzero(ccb, sizeof(union ccb)); - xpt_setup_ccb(&ccb->ccb_h, path, CAM_PRIORITY_XPT); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = scsi_low_cam_rescan_callback; - ccb->crcn.flags = CAM_FLAG_NONE; - xpt_action(ccb); -} - void scsi_low_scsi_action_cam(sim, ccb) struct cam_sim *sim; @@ -1376,8 +1342,6 @@ struct scsi_low_softc *slp; { - if (!cold) - scsi_low_rescan_bus_cam(slp); return 0; } ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#93 (text+ko) ==== @@ -52,7 +52,6 @@ #include #include #include -#include #include /* local prototypes */ ==== //depot/projects/scottl-camlock/src/sys/dev/asr/asr.c#16 (text+ko) ==== @@ -130,7 +130,6 @@ #include #include #include -#include #include #include ==== //depot/projects/scottl-camlock/src/sys/dev/ata/atapi-cam.c#22 (text+ko) ==== @@ -48,7 +48,6 @@ #include #include #include -#include #include #include @@ -109,7 +108,6 @@ /* internal functions */ static void reinit_bus(struct atapi_xpt_softc *scp, enum reinit_reason reason); static void setup_async_cb(struct atapi_xpt_softc *, uint32_t); -static void cam_rescan_callback(struct cam_periph *, union ccb *); static void cam_rescan(struct cam_sim *); static void free_hcb_and_ccb_done(struct atapi_hcb *, u_int32_t); static struct atapi_hcb *allocate_hcb(struct atapi_xpt_softc *, int, int, union ccb *); @@ -821,41 +819,20 @@ } static void -cam_rescan_callback(struct cam_periph *periph, union ccb *ccb) -{ - if (ccb->ccb_h.status != CAM_REQ_CMP) { - CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("Rescan failed, 0x%04x\n", ccb->ccb_h.status)); - } else { - CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("Rescan succeeded\n")); - } - xpt_free_path(ccb->ccb_h.path); - xpt_free_ccb(ccb); -} - -static void cam_rescan(struct cam_sim *sim) { - struct cam_path *path; union ccb *ccb; ccb = xpt_alloc_ccb_nowait(); if (ccb == NULL) return; - - if (xpt_create_path(&path, xpt_periph, cam_sim_path(sim), + if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(sim), CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { xpt_free_ccb(ccb); return; } - - CAM_DEBUG(path, CAM_DEBUG_TRACE, ("Rescanning ATAPI bus.\n")); - xpt_setup_ccb(&ccb->ccb_h, path, 5/*priority (low)*/); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = cam_rescan_callback; - ccb->crcn.flags = CAM_FLAG_NONE; - xpt_action(ccb); + CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("Rescanning ATAPI bus.\n")); + xpt_rescan(ccb); /* scan is in progress now */ } ==== //depot/projects/scottl-camlock/src/sys/dev/ciss/ciss.c#25 (text+ko) ==== @@ -173,8 +173,6 @@ static int ciss_cam_init(struct ciss_softc *sc); static void ciss_cam_rescan_target(struct ciss_softc *sc, int bus, int target); -static void ciss_cam_rescan_all(struct ciss_softc *sc); -static void ciss_cam_rescan_callback(struct cam_periph *periph, union ccb *ccb); static void ciss_cam_action(struct cam_sim *sim, union ccb *ccb); static int ciss_cam_action_io(struct cam_sim *sim, struct ccb_scsiio *csio); static int ciss_cam_emulate(struct ciss_softc *sc, struct ccb_scsiio *csio); @@ -2863,13 +2861,6 @@ mtx_unlock(&sc->ciss_mtx); } - /* - * Initiate a rescan of the bus. - */ - mtx_lock(&sc->ciss_mtx); - ciss_cam_rescan_all(sc); - mtx_unlock(&sc->ciss_mtx); - return(0); } @@ -2879,53 +2870,26 @@ static void ciss_cam_rescan_target(struct ciss_softc *sc, int bus, int target) { - struct cam_path *path; union ccb *ccb; debug_called(1); - if ((ccb = malloc(sizeof(union ccb), CISS_MALLOC_CLASS, M_NOWAIT | M_ZERO)) == NULL) { + if ((ccb = xpt_alloc_ccb_nowait()) == NULL) { ciss_printf(sc, "rescan failed (can't allocate CCB)\n"); return; } - if (xpt_create_path(&path, xpt_periph, cam_sim_path(sc->ciss_cam_sim[bus]), - target, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, + cam_sim_path(sc->ciss_cam_sim[bus]), + target, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { ciss_printf(sc, "rescan failed (can't create path)\n"); - free(ccb, CISS_MALLOC_CLASS); + xpt_free_ccb(ccb); return; } - - xpt_setup_ccb(&ccb->ccb_h, path, 5/*priority (low)*/); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = ciss_cam_rescan_callback; - ccb->crcn.flags = CAM_FLAG_NONE; - xpt_action(ccb); - + xpt_rescan(ccb); /* scan is now in progress */ } -static void -ciss_cam_rescan_all(struct ciss_softc *sc) -{ - int i; - - /* Rescan the logical buses */ - for (i = 0; i < sc->ciss_max_logical_bus; i++) - ciss_cam_rescan_target(sc, i, CAM_TARGET_WILDCARD); - /* Rescan the physical buses */ - for (i = CISS_PHYSICAL_BASE; i < sc->ciss_max_physical_bus + - CISS_PHYSICAL_BASE; i++) - ciss_cam_rescan_target(sc, i, CAM_TARGET_WILDCARD); -} - -static void -ciss_cam_rescan_callback(struct cam_periph *periph, union ccb *ccb) -{ - xpt_free_path(ccb->ccb_h.path); - free(ccb, CISS_MALLOC_CLASS); -} - /************************************************************************ * Handle requests coming from CAM */ ==== //depot/projects/scottl-camlock/src/sys/dev/hptiop/hptiop.c#6 (text+ko) ==== @@ -79,7 +79,6 @@ #include #include #include -#include #include #include #include @@ -105,7 +104,6 @@ struct hpt_iop_ioctl_param *pParams); static int hptiop_do_ioctl_mv(struct hpt_iop_hba *hba, struct hpt_iop_ioctl_param *pParams); -static void hptiop_bus_scan_cb(struct cam_periph *periph, union ccb *ccb); static int hptiop_rescan_bus(struct hpt_iop_hba *hba); static int hptiop_alloc_pci_res_itl(struct hpt_iop_hba *hba); static int hptiop_alloc_pci_res_mv(struct hpt_iop_hba *hba); @@ -1035,28 +1033,19 @@ static int hptiop_rescan_bus(struct hpt_iop_hba * hba) { - struct cam_path *path; union ccb *ccb; - if (xpt_create_path(&path, xpt_periph, cam_sim_path(hba->sim), - CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) + + if ((ccb = xpt_alloc_ccb()) == NULL) + return(ENOMEM); + if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(hba->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + xpt_free_ccb(ccb); return(EIO); - if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK)) == NULL) - return(ENOMEM); - bzero(ccb, sizeof(union ccb)); - xpt_setup_ccb(&ccb->ccb_h, path, 5); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = hptiop_bus_scan_cb; - ccb->crcn.flags = CAM_FLAG_NONE; - xpt_action(ccb); + } + xpt_rescan(ccb); return(0); } -static void hptiop_bus_scan_cb(struct cam_periph *periph, union ccb *ccb) -{ - xpt_free_path(ccb->ccb_h.path); - free(ccb, M_TEMP); -} - static bus_dmamap_callback_t hptiop_map_srb; static bus_dmamap_callback_t hptiop_post_scsi_command; static bus_dmamap_callback_t hptiop_mv_map_ctlcfg; ==== //depot/projects/scottl-camlock/src/sys/dev/hptrr/hptrr_osm_bsd.c#4 (text+ko) ==== @@ -989,7 +989,6 @@ static d_open_t hpt_open; static d_close_t hpt_close; static d_ioctl_t hpt_ioctl; -static void hpt_bus_scan_cb(struct cam_periph *periph, union ccb *ccb); static int hpt_rescan_bus(void); static struct cdevsw hpt_cdevsw = { @@ -1381,7 +1380,6 @@ static int hpt_rescan_bus(void) { - struct cam_path *path; union ccb *ccb; PVBUS vbus; PVBUS_EXT vbus_ext; @@ -1391,17 +1389,15 @@ #endif ldm_for_each_vbus(vbus, vbus_ext) { - if (xpt_create_path(&path, xpt_periph, cam_sim_path(vbus_ext->sim), - CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) + if ((ccb = xpt_alloc_ccb()) == NULL) + return(ENOMEM); + if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, + cam_sim_path(vbus_ext->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + xpt_free_ccb(ccb); return(EIO); - if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK)) == NULL) - return(ENOMEM); - bzero(ccb, sizeof(union ccb)); - xpt_setup_ccb(&ccb->ccb_h, path, 5); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = hpt_bus_scan_cb; - ccb->crcn.flags = CAM_FLAG_NONE; - xpt_action(ccb); + } + xpt_rescan(ccb); } #if (__FreeBSD_version >= 500000) @@ -1410,15 +1406,3 @@ return(0); } - -static void hpt_bus_scan_cb(struct cam_periph *periph, union ccb *ccb) -{ - if (ccb->ccb_h.status != CAM_REQ_CMP) - KdPrint(("cam_scan_callback: failure status = %x",ccb->ccb_h.status)); - else - KdPrint(("Scan bus successfully!")); - - xpt_free_path(ccb->ccb_h.path); - free(ccb, M_TEMP); - return; -} ==== //depot/projects/scottl-camlock/src/sys/dev/hptrr/os_bsd.h#2 (text+ko) ==== @@ -91,7 +91,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/scottl-camlock/src/sys/dev/isp/isp_freebsd.h#22 (text+ko) ==== ==== //depot/projects/scottl-camlock/src/sys/dev/mly/mly.c#15 (text+ko) ==== @@ -101,7 +101,6 @@ static int mly_cam_attach(struct mly_softc *sc); static void mly_cam_detach(struct mly_softc *sc); static void mly_cam_rescan_btl(struct mly_softc *sc, int bus, int target); -static void mly_cam_rescan_callback(struct cam_periph *periph, union ccb *ccb); static void mly_cam_action(struct cam_sim *sim, union ccb *ccb); static int mly_cam_action_io(struct cam_sim *sim, struct ccb_scsiio *csio); static void mly_cam_poll(struct cam_sim *sim); @@ -2017,29 +2016,18 @@ debug_called(1); - if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO)) == NULL) { + if ((ccb = xpt_alloc_ccb()) == NULL) { mly_printf(sc, "rescan failed (can't allocate CCB)\n"); return; } - - if (xpt_create_path(&sc->mly_cam_path, xpt_periph, - cam_sim_path(sc->mly_cam_sim[bus]), target, 0) != CAM_REQ_CMP) { + if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, + cam_sim_path(sc->mly_cam_sim[bus]), target, 0) != CAM_REQ_CMP) { mly_printf(sc, "rescan failed (can't create path)\n"); - free(ccb, M_TEMP); + xpt_free_ccb(ccb); return; } - xpt_setup_ccb(&ccb->ccb_h, sc->mly_cam_path, 5/*priority (low)*/); - ccb->ccb_h.func_code = XPT_SCAN_LUN; - ccb->ccb_h.cbfcnp = mly_cam_rescan_callback; - ccb->crcn.flags = CAM_FLAG_NONE; debug(1, "rescan target %d:%d", bus, target); - xpt_action(ccb); -} - -static void -mly_cam_rescan_callback(struct cam_periph *periph, union ccb *ccb) -{ - free(ccb, M_TEMP); + xpt_rescan(ccb); } /******************************************************************************** ==== //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.h#7 (text+ko) ==== @@ -102,7 +102,6 @@ #include #include #include -#include #include #include #include ==== //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_raid.c#19 (text+ko) ==== @@ -52,7 +52,6 @@ #include #include #include -#include #include #if __FreeBSD_version < 500000 @@ -656,14 +655,6 @@ } static void -mpt_cam_rescan_callback(struct cam_periph *periph, union ccb *ccb) -{ - - xpt_free_path(ccb->ccb_h.path); - xpt_free_ccb(ccb); -} - -static void mpt_raid_thread(void *arg) { struct mpt_softc *mpt; @@ -715,13 +706,7 @@ xpt_free_ccb(ccb); mpt_prt(mpt, "Unable to rescan RAID Bus!\n"); } else { - xpt_setup_ccb(&ccb->ccb_h, path, 5); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = mpt_cam_rescan_callback; - ccb->crcn.flags = CAM_FLAG_NONE; - MPTLOCK_2_CAMLOCK(mpt); - xpt_action(ccb); - CAMLOCK_2_MPTLOCK(mpt); + xpt_rescan(ccb); } } } ==== //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#33 (text+ko) ==== @@ -52,7 +52,6 @@ #include #include #include -#include #include /* local prototypes */ ==== //depot/projects/scottl-camlock/src/sys/dev/trm/trm.c#15 (text+ko) ==== @@ -810,15 +810,6 @@ xpt_done(pccb); break; /* - * Scan Logical Unit - */ - case XPT_SCAN_LUN: - TRM_DPRINTF(" XPT_SCAN_LUN \n"); - pccb->ccb_h.status = CAM_REQ_INVALID; - xpt_done(pccb); - break; - - /* * Get/Set transfer rate/width/disconnection/tag queueing * settings * (GET) default/user transfer settings for the target ==== //depot/projects/scottl-camlock/src/sys/dev/twa/tw_osl_cam.c#11 (text+ko) ==== @@ -56,7 +56,6 @@ static TW_VOID twa_action(struct cam_sim *sim, union ccb *ccb); static TW_VOID twa_poll(struct cam_sim *sim); static TW_VOID twa_timeout(TW_VOID *arg); -static TW_VOID twa_bus_scan_cb(struct cam_periph *periph, union ccb *ccb); static TW_INT32 tw_osli_execute_scsi(struct tw_osli_req_context *req, union ccb *ccb); @@ -76,7 +75,6 @@ tw_osli_cam_attach(struct twa_softc *sc) { struct cam_devq *devq; - TW_INT32 error; tw_osli_dbg_dprintf(3, sc, "entered"); @@ -149,23 +147,8 @@ mtx_unlock(sc->sim_lock); return(ENXIO); } - - tw_osli_dbg_dprintf(3, sc, "Calling xpt_setup_ccb"); mtx_unlock(sc->sim_lock); - tw_osli_dbg_dprintf(3, sc, "Calling tw_osli_request_bus_scan"); - /* - * Request a bus scan, so that CAM gets to know of - * the logical units that we control. - */ - if ((error = tw_osli_request_bus_scan(sc))) - tw_osli_printf(sc, "error = %d", - TW_CL_SEVERITY_ERROR_STRING, - TW_CL_MESSAGE_SOURCE_FREEBSD_DRIVER, - 0x2104, - "Bus scan request to CAM failed", - error); - tw_osli_dbg_dprintf(3, sc, "exiting"); return(0); } @@ -561,7 +544,6 @@ TW_INT32 tw_osli_request_bus_scan(struct twa_softc *sc) { - struct cam_path *path; union ccb *ccb; tw_osli_dbg_dprintf(3, sc, "entering"); @@ -569,13 +551,12 @@ /* If we get here before sc->sim is initialized, return an error. */ if (!(sc->sim)) return(ENXIO); - if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK)) == NULL) + if ((ccb = xpt_alloc_ccb()) == NULL) return(ENOMEM); - bzero(ccb, sizeof(union ccb)); mtx_lock(sc->sim_lock); - if (xpt_create_path(&path, xpt_periph, cam_sim_path(sc->sim), - CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { - free(ccb, M_TEMP); + if (xpt_create_path(&ccb->ccb_h.path, xpt_periph, cam_sim_path(sc->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + xpt_free_ccb(ccb); mtx_unlock(sc->sim_lock); return(EIO); } @@ -586,11 +567,7 @@ sc->state &= ~TW_OSLI_CTLR_STATE_SIMQ_FROZEN; } - xpt_setup_ccb(&ccb->ccb_h, path, 5); - ccb->ccb_h.func_code = XPT_SCAN_BUS; - ccb->ccb_h.cbfcnp = twa_bus_scan_cb; - ccb->crcn.flags = CAM_FLAG_NONE; - xpt_action(ccb); + xpt_rescan(ccb); mtx_unlock(sc->sim_lock); return(0); } @@ -598,32 +575,6 @@ /* - * Function name: twa_bus_scan_cb - * Description: Callback from CAM on a bus scan request. - * - * Input: periph -- we don't use this - * ccb -- bus scan request ccb that we sent to CAM - * Output: None - * Return value: None - */ -static TW_VOID -twa_bus_scan_cb(struct cam_periph *periph, union ccb *ccb) -{ - tw_osli_dbg_printf(3, "entering"); - - if (ccb->ccb_h.status != CAM_REQ_CMP) - printf("cam_scan_callback: failure status = %x\n", - ccb->ccb_h.status); - else - tw_osli_dbg_printf(3, "success"); - - xpt_free_path(ccb->ccb_h.path); - free(ccb, M_TEMP); -} - - - -/* * Function name: tw_osli_allow_new_requests * Description: Sets the appropriate status bits in a ccb such that, * when the ccb is completed by a call to xpt_done, From owner-p4-projects@FreeBSD.ORG Sun Jan 17 16:31:05 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 11C23106568B; Sun, 17 Jan 2010 16:31: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 B24861065670 for ; Sun, 17 Jan 2010 16:31:04 +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 9764A8FC08 for ; Sun, 17 Jan 2010 16:31: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 o0HGV45k075411 for ; Sun, 17 Jan 2010 16:31:04 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0HGV4cp075409 for perforce@freebsd.org; Sun, 17 Jan 2010 16:31:04 GMT (envelope-from mav@freebsd.org) Date: Sun, 17 Jan 2010 16:31:04 GMT Message-Id: <201001171631.o0HGV4cp075409@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 Precedence: bulk Cc: Subject: PERFORCE change 173273 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 16:31:05 -0000 http://p4web.freebsd.org/chv.cgi?CH=173273 Change 173273 by mav@mav_mavtest on 2010/01/17 16:30:57 Make ahci, siis and ata initiate bus rescan on SATA physical events. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#94 edit .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#47 edit .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#34 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#94 (text+ko) ==== @@ -1117,6 +1117,8 @@ if ((serr & ATA_SE_PHY_CHANGED) && (ch->pm_level == 0)) { u_int32_t status = ATA_INL(ch->r_mem, AHCI_P_SSTS); + union ccb *ccb; + if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) { @@ -1128,6 +1130,15 @@ device_printf(dev, "DISCONNECT requested\n"); ch->devices = 0; } + if ((ccb = xpt_alloc_ccb_nowait()) == NULL) + return; + if (xpt_create_path(&ccb->ccb_h.path, NULL, + cam_sim_path(ch->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + xpt_free_ccb(ccb); + return; + } + xpt_rescan(ccb); } } ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#47 (text+ko) ==== @@ -55,7 +55,6 @@ #include #include #include -#include #include #endif @@ -289,12 +288,26 @@ static void ata_conn_event(void *context, int dummy) { - device_t dev = (device_t)context; - struct ata_channel *ch = device_get_softc(dev); + device_t dev = (device_t)context; + struct ata_channel *ch = device_get_softc(dev); +#ifdef ATA_CAM + union ccb *ccb; +#endif - mtx_lock(&ch->state_mtx); - ata_reinit(dev); - mtx_unlock(&ch->state_mtx); + mtx_lock(&ch->state_mtx); + ata_reinit(dev); + mtx_unlock(&ch->state_mtx); +#ifdef ATA_CAM + if ((ccb = xpt_alloc_ccb()) == NULL) + return; + if (xpt_create_path(&ccb->ccb_h.path, NULL, + cam_sim_path(ch->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + xpt_free_ccb(ccb); + return; + } + xpt_rescan(ccb); +#endif } int ==== //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#34 (text+ko) ==== @@ -739,6 +739,8 @@ /* If we have a connection event, deal with it */ if (ch->pm_level == 0) { u_int32_t status = ATA_INL(ch->r_mem, SIIS_P_SSTS); + union ccb *ccb; + if (((status & ATA_SS_DET_MASK) == ATA_SS_DET_PHY_ONLINE) && ((status & ATA_SS_SPD_MASK) != ATA_SS_SPD_NO_SPEED) && ((status & ATA_SS_IPM_MASK) == ATA_SS_IPM_ACTIVE)) { @@ -750,6 +752,15 @@ device_printf(dev, "DISCONNECT requested\n"); ch->devices = 0; } + if ((ccb = xpt_alloc_ccb_nowait()) == NULL) + return; + if (xpt_create_path(&ccb->ccb_h.path, NULL, + cam_sim_path(ch->sim), + CAM_TARGET_WILDCARD, CAM_LUN_WILDCARD) != CAM_REQ_CMP) { + xpt_free_ccb(ccb); + return; + } + xpt_rescan(ccb); } } From owner-p4-projects@FreeBSD.ORG Sun Jan 17 17:04:38 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA8DD106568D; Sun, 17 Jan 2010 17:04:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6ED3A1065672 for ; Sun, 17 Jan 2010 17:04:38 +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 5CDE78FC17 for ; Sun, 17 Jan 2010 17:04: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 o0HH4cYD089500 for ; Sun, 17 Jan 2010 17:04:38 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0HH4cFg089498 for perforce@freebsd.org; Sun, 17 Jan 2010 17:04:38 GMT (envelope-from mav@freebsd.org) Date: Sun, 17 Jan 2010 17:04:38 GMT Message-Id: <201001171704.o0HH4cFg089498@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 Precedence: bulk Cc: Subject: PERFORCE change 173275 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Jan 2010 17:04:38 -0000 http://p4web.freebsd.org/chv.cgi?CH=173275 Change 173275 by mav@mav_mavtest on 2010/01/17 17:04:24 To not fetch number of ports on reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#28 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#28 (text+ko) ==== @@ -311,7 +311,7 @@ if (code == AC_SENT_BDR || code == AC_BUS_RESET) softc->found = 0; /* We have to reset everything. */ if (softc->state == PMP_STATE_NORMAL) { - softc->state = PMP_STATE_PORTS; + softc->state = PMP_STATE_PRECONFIG; cam_periph_acquire(periph); xpt_schedule(periph, CAM_PRIORITY_DEV); } else From owner-p4-projects@FreeBSD.ORG Mon Jan 18 00:14:52 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7E8BD106568D; Mon, 18 Jan 2010 00:14: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 2A727106566C for ; Mon, 18 Jan 2010 00:14:52 +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 165718FC14 for ; Mon, 18 Jan 2010 00:14: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 o0I0EqgI042738 for ; Mon, 18 Jan 2010 00:14:52 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0I0Ep79042736 for perforce@freebsd.org; Mon, 18 Jan 2010 00:14:51 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 18 Jan 2010 00:14:51 GMT Message-Id: <201001180014.o0I0Ep79042736@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 Precedence: bulk Cc: Subject: PERFORCE change 173299 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 00:14:52 -0000 http://p4web.freebsd.org/chv.cgi?CH=173299 Change 173299 by pgj@Binturong on 2010/01/18 00:14:38 IFC Affected files ... .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#38 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/cutting-edge/chapter.sgml#28 integrate .. //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/security/chapter.sgml#22 integrate .. //depot/projects/docproj_hu/www/en/news/status/Makefile#8 integrate .. //depot/projects/docproj_hu/www/en/news/status/report-2009-10-2009-12.xml#2 integrate .. //depot/projects/docproj_hu/www/en/news/status/status.sgml#9 integrate .. //depot/projects/docproj_hu/www/hu/platforms/sparc.sgml#17 integrate .. //depot/projects/docproj_hu/www/share/sgml/news.xml#80 integrate Differences ... ==== //depot/projects/docproj_hu/doc/hu_HU.ISO8859-2/books/handbook/advanced-networking/chapter.sgml#38 (text+ko) ==== @@ -1,7 +1,7 @@ + October-December @@ -14,9 +14,9 @@ Introduction

    This report covers &os; related projects between October and - December 2009. Obviously, this is the last report in 2009, - which has shown to be very important for the &os; Project. Besides - other remarkable things, a new major version of &os;, 8.0-RELEASE, has been + December 2009. This is the last of the four reports covering 2009, + which has shown to be a very important year for the &os; Project. Besides + other notable things, a new major version of &os;, 8.0-RELEASE, has been released, while the release process for 7.3-RELEASE is soon to begin.

    Thanks to all the reporters for the excellent work! We hope you @@ -109,12 +109,12 @@ - SVN - repository - Official Announcement + + SVN + repository @@ -207,8 +207,8 @@

    Existing ata(4) infrastructure, which has been around many years, - has various problems and limitations with compared to modern - controllers/devices support. Although the CAM subsystem (used for SCSI) + has various problems and limitations when compared to modern + controllers/device support. Although the CAM subsystem (used for SCSI) is almost as old as ata(4), it is more eligible to solve the current problems. To reduce code duplication and better support border cases such as ATAPI and SAS, we have started to develop a new CAM based @@ -229,7 +229,7 @@ making controller driver API stricter.

    Command queuing support gives new ATA implementation up to - double performance benefit on some workloads, whereas 20-30% is + double performance benefit on some workloads, with 20-30% improvement quite usual.

    SATA Port Multiplier support makes it easy to build fast and @@ -294,9 +294,9 @@ - Fix sporadic rendering freezes + Fix sporadic rendering freezes. - Fix JavaScript interpreter, v8, on i386 architecture + Fix JavaScript interpreter, v8, on i386 architecture. @@ -769,10 +769,10 @@

    This work allows Linux applications using V4L video calls to work with existing &os; video drivers that provide V4L interfaces. It is tested and working with the net/skype port and also with - browser-based Flash applications that access webcams. It is tested on - &os;-8.0/amd64 and &os;-7.2/i386. An early version has been + browser-based Flash applications that access webcams. An early version has been committed to 9.0-CURRENT and work is in progress to commit the latest - version and then MFC.

    + version and then MFC. It is also tested on &os;-8.0/amd64 and + &os;-7.2/i386.

    Note: to be clear, this does not add V4L support to all webcams. The &os; camera driver must already offer V4L support itself in @@ -1008,7 +1008,7 @@ been used extensively by the developers. The primary author of this port is Oleksandr Tymoshenko (gonzo@FreeBSD.org). -

  • A new port to the sibyte BCM1250 SoC on the BCM91250 +
  • A new port to the SiByte BCM1250 SoC on the BCM91250 evaluation board (aka SWARM). This port is reported to be stable, but this hardware is a little old and not widely available. The primary author of this port is Neel Natu (neel@FreeBSD.org). Only @@ -1050,7 +1050,7 @@ but experimental.
  • Work on SMP is underway to support multicore processors like - the sibyte, Octeon and XLR processors.
  • + the SiByte, Octeon and XLR processors.

    The development branch had been updated incorrectly several times over the @@ -1098,7 +1098,7 @@

    The purpose of this project is to provide &os; with support for the Flattened Device Tree (FDT) technology, the mechanism for describing computer hardware resources, which cannot be probed or self enumerated, in - a uniform and portable way. The primary consumer of this technology are + a uniform and portable way. The primary consumers of this technology are embedded &os; platforms (ARM, AVR32, MIPS, PowerPC), where a lot of designs are based on similar chips but have different assignment of pins, memory layout, addresses bindings, interrupts routing and other resources.

    @@ -1264,8 +1264,8 @@ -

    Important changes regarding &os; TDM Framework since last Status - Report:

    +

    Important changes regarding &os; TDM Framework since the last status + report:

    • Fully functional TDM controller driver for Marvell Kirkwood and @@ -1316,13 +1316,13 @@ NetBSD's implementation - OpenSolaris's implementation + OpenSolaris' implementation

      On January 13, I removed the utmp user accounting database and - replaced it with POSIX utmpx. Unfortunately, the upgrade path is a bit - bumpy, because the utmp interface provided almost no library + replaced it with a new POSIX utmpx implementation. Unfortunately, the upgrade path is a bit + complex, because the utmp interface provided almost no library interface to interact with the database files.

      This change may have caused some regressions. Some ports may fail @@ -1358,8 +1358,8 @@

      Good compatibility has been ensured and there are only few pending - items which have to be reviewed/enhanced. Recently, an enhancement - has been completed which makes it possible to accomplish better + items that have to be reviewed/enhanced. Recently, an enhancement + has been completed, which makes it possible to accomplish better transliteration, just like in the GNU version. An initial testing patch is expected at the beginning of February.

      @@ -1426,7 +1426,7 @@

      NVIDIA has released the first BETA version of its graphics drivers for &os;/amd64. Note that this driver will work on &os; - versions 7.3 or 8.0 and later. It also works on very recent + versions 7.3-RELEASE or 8.0-RELEASE and later. It also works on very recent versions of 7.2-STABLE. More details are provided in the official release announcement.

      @@ -1488,7 +1488,7 @@

      The list of PRs recommended for committer evaluation by the Bugbusting Team continues to receive new additions; however, it has not yet achieved high visibility. (This list contains PRs, - mostly with patches, that the Bugbusting Team feel are probably + mostly with patches, that the Bugbusting Team consider potentially ready to be committed as-is, or are probably trivially resolved in the hands of a committer with knowledge of the particular subsystem.) One of the suggestions at the Cambridge devsummit @@ -1505,9 +1505,9 @@ been converted, and we are keeping up as new ones come in. We hope that this is making it easier to browse the PR database.

      -

      The overall PR count jumped to over 6200 during the 8.0 release - cycle, but seems to have stabilized at around 6100. As in the - past, we have a fairly good clearance rate for ports PRs, but +

      The overall PR count jumped to over 6,200 during the 8.0-RELEASE release + cycle but seems to have stabilized at around 6,100. As in the + past, we have a fairly good clearance rate for ports PRs but much less so for other PRs. (Partly this is due to the concept of individual ports having 'maintainers'.)

      @@ -1533,10 +1533,10 @@

      Work continues on our ia64 port. Many recent commits to - help improve stability have been made to -CURRENT and MFCed + help improve stability have been made to 9.0-CURRENT and MFCed to 8-STABLE.

      -

      Due to interest from one very motivated user, package builds +

      Due to interest from a very motivated user, package builds have been restarted for ia64-8. This is primarily intended as a QA step to discover and fix bugs on ia64, rather than to create packages for upload.

      @@ -1563,7 +1563,7 @@ Configure a fourth machine that has been made available to us. - Figure out the problems with the latest gcc port on + Figure out the problems with the latest GCC port on ia64. We can use some help with reviewing the ia64 platform pages @@ -1594,28 +1594,31 @@ reasons:

        -
      • Uses latest v4 firmware image instead of using v3 which is - enough old one so we could have benefits supporting N-PHYs or - fixes various firmware bugs.
      • +
      • Uses latest v4 firmware image instead of using the much older v3 + firmware. In this way, we have some great benefits, such as + support for N-PHYs and the fixes of various earlier firmware bugs.
      • -
      • Supports PIO mode that as you might Broadcom Wireless Driver - is created by reverse-engineering so AFAIK some H/W does not +
      • Supports PIO mode. This is important because — as you might + know — the Broadcom Wireless Driver is created by + reverse-engineering so some pieces of hardware might not work with DMA operations.
      • Supports 64 bit DMA operations.
      • Separates bwi(4) driver into two parts; siba(4) driver and - bwn(4) driver. AFAIK many Broadcom wirelesses or NIC devices - are based on Silicon Sonics Backplane and bwi(4) was one of - them but in a case of bwi(4) it had implemented siba(4) - driver internally so other drivers which were willing to use - the SIBA APIs had to implement their own routines. In bwn(4) - I wanted to avoid it.
      • + bwn(4) driver. Many Broadcom wireless and NIC devices + are based on Silicon Sonics Backplane, such as bwi(4), which + implemented the SIBA operations internally. This resulted in + code duplication as other drivers had to implement their + own routines to deal with SIBA. In the case of bwn(4), + these two parts have been separated and implemented in their + own kernel modules to avoid this problem and help further + development by providing a standalone siba(4) driver.
      -

      Currently it is tested on big/little endian machines and 32/64 - bits DMA operation with STA mode. A major patch for siba(4) - is being reviewed before committing into HEAD.

      +

      Currently, it is tested on big/little endian machines and 32/64-bit + DMA operation with STA mode. A major patch for siba(4) + is being reviewed before committing into 9.0-CURRENT.

      @@ -1650,7 +1653,7 @@

      The Release Engineering Team would like to thank George Neville-Neil (gnn@) for his service on the team. George continues to work with the &os; Project but has stepped down - from the Release Engineering Team to focus on those other + from the Release Engineering Team to focus on other activities.

      @@ -1677,25 +1680,25 @@ identified:

        -
      • problems with the IPcomp packet handling in IPsec.
      • +
      • Problems with the IPcomp packet handling in IPsec.
      • opencrypto compression handling and deflate implementation limitations. These were debugged using DTrace SDT probes.
      • -
      • problems due to an outdated version of zlib used in some +
      • Problems due to an outdated version of zlib used in some parts of the network stack and by the opencrypto - framework
      • + framework.

      Patches for all but the zlib support have been committed to - HEAD and merged to all supported stable branches including - RELENG_6. Special thanks to Eugene Grosbein for helping with + 9.0-RELEASE and merged to all supported stable branches including + 6-STABLE. Special thanks to Eugene Grosbein for helping with testing.

      - Fix ng_deflate so that we could make use of Kip Macy's work + Fix ng_deflate so that we can make use of Kip Macy's work on an up-to-date unified zlib version in the kernel, which would also fix the last occasional IPcomp hiccups. @@ -1721,10 +1724,10 @@

      Despite a difficult economy, we more than doubled our number - of donors, we raised $269k towards our goal of $300k, and with + of donors, we raised $269K towards our goal of $300K, and with an improved economy hope to surpass that this year.

      -

      We funded two new projects. One is the Flattened Device Tree by +

      We have funded two new projects. One is the Flattened Device Tree by Rafal Jaworowski. And, the second one is Highly Available Storage by Pawel Jakub Dawidek. We continued supporting the New Console Driver by Ed Schouten and Improvements to the &os; TCP Stack by @@ -1790,10 +1793,10 @@ -

      VirtualBox 3.1.2 has been committed to the Ports tree.

      +

      VirtualBox 3.1.2 has been committed to the ports tree.

      Several changes to the port have been performed with this - update which include:

      + update including:

      • Port has been renamed to virtualbox-ose to reflect that we @@ -1810,22 +1813,22 @@
      • Procfs is not required anymore because vbox uses sysctl(3) now.
      • -
      • Nox@'s &os; host networking patches have been added. They +
      • Juergen Lock's &os; host networking patches have been added. They are now also in the upstream vbox SVN (modulo vbox variable naming style adjustments).
      • Allow direct tap networking again (for users that need the best network performance and/or need more complex network setups, like when they want to use routing instead of bridging - to e.g. protect guests from messing with the lan's arp tables; + to e.g. protect guests from messing with the lan's ARP tables; a tap + routing + proxy arp example is in the above freebsd-emulation@ posting.)
      • -
      • Enable vbox' shared mac feature when using bridged mode on - a wifi interface, together with the virtualbox-ose-kmod - change this should fix bridged mode for wifi users.
      • +
      • Enable vbox's shared MAC feature when using bridged mode on + a Wifi interface, together with the virtualbox-ose-kmod + change this should fix bridged mode for Wifi users.
      • -
      • We would like to say thanks to all the people who helped us +
      • We would like to say thanks to all the people that helped us by reporting bugs and submitting fixes. We also thank the VirtualBox developers for their help with the ongoing effort to port VirtualBox to &os;
      • @@ -1841,12 +1844,12 @@ BSDCan Information - info@bsdcan.org + info@BSDCan.org - + @@ -1857,7 +1860,7 @@ appeals to a wide range of people from extreme novices to advanced developers.

        -

        BSDCan 2010 will be held on 13-14 May 2010 at University of +

        BSDCan 2010 will be held on 13-14 May 2010 at the University of Ottawa, and will be preceded by two days of Tutorials on 11-12 May 2010.

        @@ -1876,12 +1879,12 @@ AsiaBSDCon Information - secretary@asiabsdcon.org + secretary@AsiaBSDCon.org - + @@ -1894,7 +1897,7 @@ systems based on FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Darwin and MacOS X.

        -

        The next conference will be held at Tokyo University of +

        The next conference will be held at the Tokyo University of Science, Tokyo, Japan, on 11th to 14th March, 2010.

        For more detailed information, please check the conference @@ -1903,7 +1906,7 @@ - meetBSD 2010 -- The BSD Conference + meetBSD 2010 — The BSD Conference @@ -1911,28 +1914,26 @@ meetBSD Information - info@meetbsd.org + info@meetBSD.org - +

        The meetBSD conference is an annual event gathering users and - developers of the BSD operating system family, mostly FreeBSD, + developers of the BSD operating system family, mostly &os;, NetBSD and OpenBSD. Afer the special California edition, meetBSD Wintercamp in Livigno, this year we are back to Krakow, Poland.

        -

        In 2010, meetBSD will be held on 2-3 July at Jagiellonian +

        In 2010, meetBSD will be held on 2-3 July at the Jagiellonian University.

        See the conference main web site for more details.

        - - @@ -1978,24 +1979,24 @@

        We are again able to build bootable i386/amd64 kernel. Nathan - Whitehorn commited a fix to &os; which enabled LLVM/clang to + Whitehorn committed a fix to &os;, which enabled LLVM/clang to work mostly fine on PowerPC. There is some preliminary testing of LLVM/clang on ARM and MIPS being done. We have some ideas about sparc64 support which are currently being investigated. You are welcome to contact us if you want to help.

        -

        Since the last report a lot has happened mostly in the area of - C++, clang is currently able to build working groff, gperf and - devd, ie. all of the C++ apps we have in base. Unfortunatelly, +

        Since the last report, a lot has happened mostly in the area of + C++; clang is currently able to build working groff, gperf and + devd, i.e. all of the C++ apps we have in base. Unfortunately, it still cannot build any of the C++ libraries — two of them are missing builtins and libstdc++ is broken for other reasons.

        -

        Not much happened in the clangbsd branch as we cannot upgrade +

        Not much happened in the clangbsd branch as we cannot upgrade the clang/llvm there because we are blocked by a bug that requires using newer assembler than we can ship. This might be solved by either fixing this (short term) or using - llvm-mc instead of gnu as for assembling (longer term).

        + llvm-mc instead of GNU as for assembling (longer term).

        @@ -2020,17 +2021,13 @@ - -

        Preliminary Hardware Performance Counter support for Intel - XScale ARM processors was committed to FreeBSD 9.0-CURRENT + XScale ARM processors was committed to &os; 9.0-CURRENT in December. This adds another supported architecture to hwpmc(9). The system works for basic performance counter usage but more advanced usage scenarios, namely callchain support, are not yet implemented.

        - -
        ==== //depot/projects/docproj_hu/www/en/news/status/status.sgml#9 (text+ko) ==== @@ -1,6 +1,6 @@ - + ]> @@ -8,7 +8,7 @@ &header; -

        Next submissions due: January 15, 2010

        +

        Next submissions due: April 15th, 2010

        Use the xml generator or download and edit the @@ -42,6 +42,8 @@

        2009

          +
        • October, 2009 - + December, 2009
        • April, 2009 - September, 2009
        • January, 2009 - ==== //depot/projects/docproj_hu/www/hu/platforms/sparc.sgml#17 (text+ko) ==== @@ -1,6 +1,6 @@ - + ==== //depot/projects/docproj_hu/www/share/sgml/news.xml#80 (text+ko) ==== @@ -25,11 +25,31 @@ - $FreeBSD: www/share/sgml/news.xml,v 1.283 2009/12/22 15:48:47 ryusuke Exp $ + $FreeBSD: www/share/sgml/news.xml,v 1.284 2010/01/17 17:34:02 danger Exp $ + 2010 + + + 1 + + + 17 + + + October-December, 2009 Status Report + +

          The October-December, 2009 Status Report is now + available with 38 entries.

          + + + + + + 2009 From owner-p4-projects@FreeBSD.ORG Mon Jan 18 00:16:54 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AEA521065692; Mon, 18 Jan 2010 00:16: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 733A0106566C for ; Mon, 18 Jan 2010 00:16: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 612358FC17 for ; Mon, 18 Jan 2010 00:16: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 o0I0GsYW042938 for ; Mon, 18 Jan 2010 00:16:54 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0I0GsLr042936 for perforce@freebsd.org; Mon, 18 Jan 2010 00:16:54 GMT (envelope-from pgj@FreeBSD.org) Date: Mon, 18 Jan 2010 00:16:54 GMT Message-Id: <201001180016.o0I0GsLr042936@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 Precedence: bulk Cc: Subject: PERFORCE change 173300 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 00:16:54 -0000 http://p4web.freebsd.org/chv.cgi?CH=173300 Change 173300 by pgj@Binturong on 2010/01/18 00:15:56 MFen (www): 1.283 -> 1.284 hu/share/sgml/news.xml Affected files ... .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#75 edit Differences ... ==== //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#75 (text+ko) ==== @@ -5,7 +5,7 @@ @@ -16,6 +16,29 @@ + 2010 + + + 1 + + + 17 + + + Negyedéves helyzetjelentés: 2009 + október — december + +

          A 2009 októberétõl decemberéig + tartó idõszakot összefoglaló, 38 + bejegyzést tartalmazó negyedéves + helyzetjelentés immáron elérhetõ.

          +
          +
          +
          +
          + + 2009 From owner-p4-projects@FreeBSD.ORG Mon Jan 18 14:49:29 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2970C1065672; Mon, 18 Jan 2010 14:49: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 D723C106566C for ; Mon, 18 Jan 2010 14:49:28 +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 C50678FC15 for ; Mon, 18 Jan 2010 14:49: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 o0IEnS2f071552 for ; Mon, 18 Jan 2010 14:49:28 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0IEnSQY071550 for perforce@freebsd.org; Mon, 18 Jan 2010 14:49:28 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 14:49:28 GMT Message-Id: <201001181449.o0IEnSQY071550@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 Precedence: bulk Cc: Subject: PERFORCE change 173319 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 14:49:29 -0000 http://p4web.freebsd.org/chv.cgi?CH=173319 Change 173319 by mav@mav_mavtest on 2010/01/18 14:48:32 Do not refetch number of ports on initalization restart. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#29 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#29 (text+ko) ==== @@ -431,7 +431,7 @@ if (softc->restart) { softc->restart = 0; - softc->state = PMP_STATE_PORTS; + softc->state = min(softc->state, PMP_STATE_PRECONFIG); } /* Fetch user wanted device speed. */ if (softc->state == PMP_STATE_RESET || @@ -577,7 +577,7 @@ xpt_free_ccb(done_ccb); } else xpt_release_ccb(done_ccb); - softc->state = PMP_STATE_PORTS; + softc->state = min(softc->state, PMP_STATE_PRECONFIG); xpt_schedule(periph, priority); return; } From owner-p4-projects@FreeBSD.ORG Mon Jan 18 15:40:20 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 23FB710656CA; Mon, 18 Jan 2010 15:40:20 +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 DD28B10656C9 for ; Mon, 18 Jan 2010 15:40:19 +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 CA7F88FC1E for ; Mon, 18 Jan 2010 15:40: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 o0IFeJxs076220 for ; Mon, 18 Jan 2010 15:40:19 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0IFeJhK076218 for perforce@freebsd.org; Mon, 18 Jan 2010 15:40:19 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 15:40:19 GMT Message-Id: <201001181540.o0IFeJhK076218@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 Precedence: bulk Cc: Subject: PERFORCE change 173321 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 15:40:20 -0000 http://p4web.freebsd.org/chv.cgi?CH=173321 Change 173321 by mav@mav_mavtest on 2010/01/18 15:39:43 Freeze simq while doing reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#95 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ahci/ahci.c#95 (text+ko) ==== @@ -1949,6 +1949,7 @@ struct ahci_controller *ctlr = device_get_softc(device_get_parent(dev)); int i; + xpt_freeze_simq(ch->sim, 1); if (bootverbose) device_printf(dev, "AHCI reset...\n"); /* Requeue freezed command. */ @@ -1991,6 +1992,7 @@ /* Enable wanted port interrupts */ ATA_OUTL(ch->r_mem, AHCI_P_IE, (AHCI_P_IX_CPD | AHCI_P_IX_PRC | AHCI_P_IX_PC)); + xpt_release_simq(ch->sim, TRUE); return; } /* Wait for clearing busy status. */ @@ -2009,6 +2011,7 @@ AHCI_P_IX_DS | AHCI_P_IX_PS | (ctlr->ccc ? 0 : AHCI_P_IX_DHR))); if (bootverbose) device_printf(dev, "AHCI reset done: device found\n"); + xpt_release_simq(ch->sim, TRUE); } static int From owner-p4-projects@FreeBSD.ORG Mon Jan 18 15:42:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E275106568B; Mon, 18 Jan 2010 15:42: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 128E0106566C for ; Mon, 18 Jan 2010 15:42:22 +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 0004F8FC19 for ; Mon, 18 Jan 2010 15:42: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 o0IFgLK2076375 for ; Mon, 18 Jan 2010 15:42:21 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0IFgLhi076373 for perforce@freebsd.org; Mon, 18 Jan 2010 15:42:21 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 15:42:21 GMT Message-Id: <201001181542.o0IFgLhi076373@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 Precedence: bulk Cc: Subject: PERFORCE change 173322 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 15:42:22 -0000 http://p4web.freebsd.org/chv.cgi?CH=173322 Change 173322 by mav@mav_mavtest on 2010/01/18 15:42:10 Freeze simq while doing reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#35 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/siis/siis.c#35 (text+ko) ==== @@ -1411,6 +1411,7 @@ int i, retry = 0, sata_rev; uint32_t val; + xpt_freeze_simq(ch->sim, 1); if (bootverbose) device_printf(dev, "SIIS reset...\n"); if (!ch->readlog && !ch->recovery) @@ -1476,6 +1477,7 @@ "SIIS reset done: phy reset found no device\n"); /* Tell the XPT about the event */ xpt_async(AC_BUS_RESET, ch->path, NULL); + xpt_release_simq(ch->sim, TRUE); return; } /* Wait for clearing busy status. */ @@ -1506,6 +1508,7 @@ device_printf(dev, "SIIS reset done: devices=%08x\n", ch->devices); /* Tell the XPT about the event */ xpt_async(AC_BUS_RESET, ch->path, NULL); + xpt_release_simq(ch->sim, TRUE); } static int From owner-p4-projects@FreeBSD.ORG Mon Jan 18 15:46:26 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 7F3A71065694; Mon, 18 Jan 2010 15:46: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 4347B106568B for ; Mon, 18 Jan 2010 15:46:26 +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 30C738FC12 for ; Mon, 18 Jan 2010 15:46: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 o0IFkQMN076685 for ; Mon, 18 Jan 2010 15:46:26 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0IFkQ8w076683 for perforce@freebsd.org; Mon, 18 Jan 2010 15:46:26 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 15:46:26 GMT Message-Id: <201001181546.o0IFkQ8w076683@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 Precedence: bulk Cc: Subject: PERFORCE change 173323 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 15:46:26 -0000 http://p4web.freebsd.org/chv.cgi?CH=173323 Change 173323 by mav@mav_mavtest on 2010/01/18 15:45:55 Freeze simq while doing reset. Affected files ... .. //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#48 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/dev/ata/ata-all.c#48 (text+ko) ==== @@ -403,6 +403,7 @@ /* kick off requests on the queue */ ata_start(dev); #else + xpt_freeze_simq(ch->sim, 1); if ((request = ch->running)) { ch->running = NULL; if (ch->state == ATA_ACTIVE) @@ -417,6 +418,7 @@ ATA_RESET(dev); /* Tell the XPT about the event */ xpt_async(AC_BUS_RESET, ch->path, NULL); + xpt_release_simq(ch->sim, TRUE); #endif return(0); } From owner-p4-projects@FreeBSD.ORG Mon Jan 18 16:01:42 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1F241065692; Mon, 18 Jan 2010 16:01: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 B63681065676 for ; Mon, 18 Jan 2010 16:01:41 +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 89F578FC13 for ; Mon, 18 Jan 2010 16:01:41 +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 o0IG1fn5077806 for ; Mon, 18 Jan 2010 16:01:41 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0IG1fjk077804 for perforce@freebsd.org; Mon, 18 Jan 2010 16:01:41 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 16:01:41 GMT Message-Id: <201001181601.o0IG1fjk077804@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 Precedence: bulk Cc: Subject: PERFORCE change 173324 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 16:01:42 -0000 http://p4web.freebsd.org/chv.cgi?CH=173324 Change 173324 by mav@mav_mavtest on 2010/01/18 16:01:07 Move settle time waiting after bus reset from common code to SCSI XPT. It is not needed on ATA. Same time, ATA needs devices to be reprobed after reset to renegotiate transfer parameters. Do it. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#71 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#47 edit .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#28 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#71 (text+ko) ==== @@ -231,14 +231,6 @@ if (status != CAM_REQ_CMP) { return (status); } - - /* - * Ensure we've waited at least a bus settle - * delay before attempting to probe the device. - * For HBAs that don't do bus resets, this won't make a difference. - */ - cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset, - scsi_delay); /* * Ensure nobody slip in until probe finish. */ @@ -1166,8 +1158,7 @@ struct cam_path *new_path; struct cam_periph *old_periph; - CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("xpt_scan_lun\n")); + CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_scan_lun\n")); xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE); cpi.ccb_h.func_code = XPT_PATH_INQ; @@ -1575,6 +1566,10 @@ */ ata_scan_lun(newpath.periph, &newpath, CAM_EXPECT_INQ_CHANGE, NULL); + } else { + /* We need to reinitialize device after reset. */ + ata_scan_lun(newpath.periph, &newpath, + 0, NULL); } xpt_release_path(&newpath); } else if (async_code == AC_LOST_DEVICE && ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#47 (text+ko) ==== @@ -1249,12 +1249,6 @@ case AC_LOST_DEVICE: cam_periph_invalidate(periph); break; - case AC_SENT_BDR: - case AC_BUS_RESET: - { - cam_periph_bus_settle(periph, scsi_delay); - break; - } default: break; } ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_xpt.c#28 (text+ko) ==== @@ -1783,8 +1783,7 @@ struct cam_path *new_path; struct cam_periph *old_periph; - CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE, - ("scsi_scan_lun\n")); + CAM_DEBUG(path, CAM_DEBUG_TRACE, ("scsi_scan_lun\n")); xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE); cpi.ccb_h.func_code = XPT_PATH_INQ; @@ -2377,11 +2376,18 @@ /* * Allow transfer negotiation to occur in a - * tag free environment. + * tag free environment and after settle delay. */ if (async_code == AC_SENT_BDR - || async_code == AC_BUS_RESET) + || async_code == AC_BUS_RESET) { + cam_freeze_devq(&newpath); + cam_release_devq(&newpath, + RELSIM_RELEASE_AFTER_TIMEOUT, + /*reduction*/0, + /*timeout*/scsi_delay, + /*getcount_only*/0); scsi_toggle_tags(&newpath); + } if (async_code == AC_INQ_CHANGED) { /* From owner-p4-projects@FreeBSD.ORG Mon Jan 18 20:57:38 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B259B106568F; Mon, 18 Jan 2010 20:57:38 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 76CE11065672 for ; Mon, 18 Jan 2010 20:57:38 +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 659CE8FC16 for ; Mon, 18 Jan 2010 20:57: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 o0IKvcv1025855 for ; Mon, 18 Jan 2010 20:57:38 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0IKvcwq025853 for perforce@freebsd.org; Mon, 18 Jan 2010 20:57:38 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 20:57:38 GMT Message-Id: <201001182057.o0IKvcwq025853@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 Precedence: bulk Cc: Subject: PERFORCE change 173335 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 20:57:39 -0000 http://p4web.freebsd.org/chv.cgi?CH=173335 Change 173335 by mav@mav_mavtest on 2010/01/18 20:57:25 Do not touch dev_openings when it should not be touched. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_queue.h#8 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_queue.h#8 (text+ko) ==== @@ -197,7 +197,6 @@ camq_insert(&ccbq->queue, &new_ccb->ccb_h.pinfo); if (ccbq->queue.qfrozen_cnt[CAM_PRIORITY_TO_RL( new_ccb->ccb_h.pinfo.priority)] > 0) { - ccbq->dev_openings++; ccbq->devq_openings++; ccbq->held++; return (1); @@ -211,7 +210,6 @@ camq_remove(&ccbq->queue, ccb->ccb_h.pinfo.index); if (ccbq->queue.qfrozen_cnt[CAM_PRIORITY_TO_RL( ccb->ccb_h.pinfo.priority)] > 0) { - ccbq->dev_openings--; ccbq->devq_openings--; ccbq->held--; return (1); @@ -273,7 +271,6 @@ continue; if (rrl >= p) break; - ccbq->dev_openings++; ccbq->devq_openings++; ccbq->held++; frozen++; @@ -304,7 +301,6 @@ continue; if (rrl >= n) break; - ccbq->dev_openings--; ccbq->devq_openings--; ccbq->held--; released++; From owner-p4-projects@FreeBSD.ORG Mon Jan 18 21:13:55 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3EDE7106568F; Mon, 18 Jan 2010 21:13: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 029561065696 for ; Mon, 18 Jan 2010 21:13:55 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id E3BBE8FC1C for ; Mon, 18 Jan 2010 21:13: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 o0ILDs9C028128 for ; Mon, 18 Jan 2010 21:13:54 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0ILDsKX028126 for perforce@freebsd.org; Mon, 18 Jan 2010 21:13:54 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 18 Jan 2010 21:13:54 GMT Message-Id: <201001182113.o0ILDsKX028126@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 173337 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 21:13:55 -0000 http://p4web.freebsd.org/chv.cgi?CH=173337 Change 173337 by rene@rene_self on 2010/01/18 21:13:05 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/building-products/article.sgml#2 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#45 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/book.sgml#5 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#8 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#42 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml#13 integrate .. //depot/projects/docproj_nl/www/en/news/status/Makefile#8 integrate .. //depot/projects/docproj_nl/www/en/news/status/report-2009-10-2009-12.xml#3 integrate .. //depot/projects/docproj_nl/www/en/news/status/status.sgml#9 integrate .. //depot/projects/docproj_nl/www/en/platforms/sparc.sgml#5 integrate .. //depot/projects/docproj_nl/www/share/sgml/news.xml#62 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/building-products/article.sgml#2 (text+ko) ==== @@ -17,7 +17,7 @@ - $FreeBSD: doc/en_US.ISO8859-1/articles/building-products/article.sgml,v 1.7 2006/10/16 11:59:08 keramida Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/building-products/article.sgml,v 1.8 2010/01/15 07:52:25 jkoshy Exp $ &tm-attrib.freebsd; @@ -69,6 +69,17 @@ of collaboration with the project and the pitfalls that need to be avoided while doing so. + + Caveat Reader + The author believes that the characteristics of the FreeBSD + Project listed in this article were substantially true at the + time the article was conceived and written (2005). However, the + reader should keep in mind that the practices and processes used + by open-source communities can change over time, and that the information + in this article should therefore be taken as indicative rather + than normative. + + Target Audience This document would be of interest to the following broad ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#45 (text+ko) ==== @@ -1,4 +1,4 @@ - + 2007 2008 2009 + 2010 The FreeBSD Documentation Project ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#8 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -1567,6 +1567,39 @@ to force the write speed, use the parameter. For more information, read the &man.growisofs.1; manual page. + + + In order to have working files larger than 4.38GB in + your compilation, an UDF/ISO-9660 hybrid filesystem must be + created by passing additional parameter to &man.mkisofs.8; and all related + programs (i.e., &man.growisofs.1;). This is required only + when creating an ISO image file, or writing files directly + to a disk. Disk created this way must be mounted as an UDF + filesystem with &man.mount.udf.8; utility, so it will be + usable only on an UDF aware Operating System,otherwise it + will look as if it contains corrupted files. + + To create a such ISO file: + + &prompt.user; mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data + + To burn files directly to a disk: + + &prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data + + When you have an ISO image containing large files + already inside, no additional options are required for + &man.growisofs.1; to burn that image on a disk. + + Also, be sure that you have an up-to-date version of + sysutils/cdrtools (which + contain &man.mkisofs.8;), as the older ones does not + contain large files support. If you experience troubles + please move to the development package, i.e., sysutils/cdrtools-devel and read + &man.mkisofs.8; manual page. + ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#42 (text+ko) ==== @@ -1,7 +1,7 @@ + October-December @@ -14,16 +14,16 @@ Introduction

          This report covers &os; related projects between October and - December 2009. Obviously, this is the last report in the year 2009, - which has shown to be very important for the &os; Project. Besides - other remarkable things, a new major version of &os;, 8.0, has been - released, while the release process for 7.3 is soon to begin.

          + December 2009. This is the last of the four reports covering 2009, + which has shown to be a very important year for the &os; Project. Besides + other notable things, a new major version of &os;, 8.0-RELEASE, has been + released, while the release process for 7.3-RELEASE is soon to begin.

          Thanks to all the reporters for the excellent work! We hope you - enjoy the reading. Let us also use this opportunity to wish you all - happy and successfull new year 2010.

          + enjoy reading. Let us also take this opportunity to wish you all a + happy and successful new year for 2010.

          -

          Please note that the next deadline for submissions covering the +

          Please note that the deadline for submissions covering the period between January and March 2010 is April 15th, 2010.

          @@ -109,16 +109,16 @@ - SVN - repository - Official Announcement + + SVN + repository -

          A module for DAHDI support for &os; has been created in the +

          A DAHDI support module for &os; has been created in the official Asterisk SVN repository.

          The following drivers are currently ported:

          @@ -166,21 +166,17 @@ - -

          The port for dahdi_dynamic_eth and dahdi_dynamic_ethmf is - under way.

          -
          + The port for dahdi_dynamic_eth and dahdi_dynamic_ethmf is + underway. - -

          More HW drivers need to be ported.

          + More HW drivers need to be ported. -

          Please let me know if you can provide remote access with - serial console to the box with ISDN/T1/E1 HW not currently + Please let me know if you can provide remote access with + serial console to any box with ISDN/T1/E1 HW not currently supported by DAHDI for &os; but supported by DAHDI for Linux. I - am also interested in porting drivers for FXO/FXS cards: please + am also interested in porting drivers for FXO/FXS cards. Please let me know if you can provide a remote access or donate a - card.

          -
          + card.
          @@ -210,66 +206,55 @@ -

          Existing ata(4) infrastructure which has been around many years - has number of problems and limitations, in respect to modern - controllers/devices support. A CAM subsystem (used for SCSI), which - is around for almost the same time, implements many of required - algorithms solving many problems in a better way. To reduce code - duplication and better support border cases such as ATAPI and SAS, - new CAM based ATA implementation has been started in order to use - its benefits.

          +

          Existing ata(4) infrastructure, which has been around many years, + has various problems and limitations when compared to modern + controllers/device support. Although the CAM subsystem (used for SCSI) + is almost as old as ata(4), it is more eligible to solve the current + problems. To reduce code duplication and better support border cases + such as ATAPI and SAS, we have started to develop a new CAM based + ATA implementation.

          -

          As such, CAM infrastructure was extended to support different - transports. New transport was implemented to support PATA/SATA - buses. To support ATA disks, new CAM driver ada was written. ATAPI +

          As such, CAM infrastructure has been extended to support different + transports. New transport has been implemented to support PATA/SATA + buses. To support ATA disks, a new CAM driver (ada) has been written. ATAPI devices are supported by existing SCSI drivers cd, da, sa, etc. To - support SATA port-multipliers new CAM driver pmp was written. To + support SATA port-multipliers another new CAM driver (pmp) has been written. To support most featured and widespread SATA controllers, new drivers - ahci(4) and siis(4) were developed.

          + ahci(4) and siis(4) have been developed.

          -

          To support legacy ATA controllers, kernel option ATA_CAM was +

          To support legacy ATA controllers, a kernel option ATA_CAM has been added. When used, it makes all ata(4) controllers directly - available to CAM, deprecating ata(4) periperal drivers and external - APIs. To make it possible, ata(4) code was heavily refactored, - making controller driver API more strict.

          + available to CAM, deprecating ata(4) peripheral drivers and external + APIs. To make this possible, ata(4) code has been heavily refactored, + making controller driver API stricter.

          Command queuing support gives new ATA implementation up to - double performance benefit on some workloads, whereas 20-30% is + double performance benefit on some workloads, with 20-30% improvement quite usual.

          -

          SATA Port Multipliers support makes it easy to build fast and - cheap storages with huge capacities, by using dozens of SATA drives +

          SATA Port Multiplier support makes it easy to build fast and + cheap storage with huge capacities, by using dozens of SATA drives in one system or external enclosures,

          -

          Some of that code was presented in &os; 8.0-RELEASE, but - 8-STABLE includes much improved version now.

          +

          Some of that code has been presented in the recently released &os; 8.0-RELEASE but + 8-STABLE now includes a much improved version.

          - -

          Improve timeouts and transport errors recovery.

          -
          + Improve timeout and transport error recovery. - -

          Improve hot-plug support.

          -
          + Improve hot-plug support. - -

          Search and fix any show stoppers for legacy ata(4) - deprecation.

          -
          + Find and fix any show stoppers for legacy ata(4) + deprecation. - -

          Write new, more featured driver for Marvell SATA controllers - (specs wanted).

          -
          + Write a new, more featured driver for Marvell SATA controllers + (specifications desired). - -

          Write SAS-specific transport and drivers for SAS HBAs (specs - wanted). SAS controllers can support SATA devices and + Write SAS-specific transport and drivers for SAS HBAs (specifications + desired). SAS controllers can support SATA devices and multipliers, so it should fit nicely into the new - infrastructure.

          -
          + infrastructure.
          @@ -298,25 +283,25 @@

          Chromium is a Webkit-based web browser that is largely BSD - licensed. We ported it from linux to &os; in October and have been - posting patches and test builds periodically ever since. Chromium - works well on &os; — it is very fast and stable, but there + licensed. It has been ported from Linux to &os; in October and we have been + posting patches and test builds periodically since then. Chromium + works well on &os; — it is very fast and stable but there are a handful of rough edges that need to be polished up. Two remaining bugs should probably be fixed before releasing a chromium-devel port. We are looking for volunteers to test and - maintain this port, to make this BSD browser a viable option on the - &os; desktop.

          + maintain this port to make this BSD browser a viable option on + &os; desktop systems.

          - Fix sporadic rendering freezes + Fix sporadic rendering freezes. - Fix javascript interpreter, v8, on i386 architecture + Fix JavaScript interpreter, v8, on i386 architecture. - SUJ: Journaled Softupdates + SUJ — Journaled SoftUpdates @@ -326,7 +311,7 @@ Roberson - jeff@freebsd.org + jeff@FreeBSD.org @@ -335,24 +320,24 @@ -

          I have been adding a small intent log to softupdates to +

          I have been adding a small intent log to SoftUpdates to eliminate the requirement for fsck after an unclean shutdown. This work has been funded by Yahoo!, iXsystems, and Juniper. Kirk McKusick has been aiding me with design critiques and helping me - better understand softupdates.

          + better understand SoftUpdates.

          Extensive testing by myself and Peter Holm has yielded a stable patch. Current users are encouraged to follow the instructions - posted to current@ to verify stability in your own workloads. - Updates are forthcoming and it is expected to be merged with - current before the end of January. Ports to older versions of &os; + posted to the current@FreeBSD.org mailing list to verify stability in your own workloads. + Updates are forthcoming and it is expected to be merged to + 9.0-CURRENT before the end of January. Ports to older versions of &os; will be available in SVN under alternate branches. Official - backports will be decided by re@ when current is stable.

          + backports will be decided by re@ when 9.0-CURRENT is stable.

          The changes are fully backwards and forwards compatible as there are very few metadata changes to the filesystem. The journal may be - enabled or disabled on existing ffs filesystems using tunefs(8). - The log consumes 64 megabytes of space at maximum and fsck time is + enabled or disabled on existing FFS filesystems using tunefs(8). + The log consumes 64 MB of space at maximum and fsck time is bounded by the size of the log rather than the size of the filesystem. Other details are available in my technical journal.

          @@ -375,17 +360,17 @@ - The &os; Ports + The &os; Ports Collection + href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributing-ports/"> Contributing to the &os; Ports Collection &os; ports monitoring system - The &os; + The &os; Ports Management Team marcuscom @@ -393,17 +378,17 @@ -

          Most of the recent activity was dealing with the 8.0 release - process. As an experiment, we tried to decouple the ports QA +

          Most of the recent activity has been dealing with the 8.0-RELEASE + process. As an experiment, we have tried to decouple the ports QA timeline as much as possible from the src QA timeline. Although this meant that the impact on people actively maintaining and using - ports was much less than in previous releases, it still has not - solved the problem of the release going out with an stale set of + ports has been much less than in previous releases, it still has not + solved the problem of the release going out with a stale set of packages. We are still trying to come up with a better solution for the problem.

          The ports count is over 21,000. The PR count jumped to over - 1000, but is now back to around 950.

          + 1,000 but is now back to around 950.

          We are currently building packages for amd64-6, amd64-7, amd64-8, i386-6, i386-7, i386-8, i386-9, ia64-8, sparc64-7, and @@ -411,8 +396,8 @@ the last report.

          There has been some discussion of when to drop regular package - builds for 6.x, but no decision has been made yet. The cluster, and - the portmgrs, are struggling to keep up with so many branches being + builds for 6.X but no decision has been made yet. The cluster and + the port managers are struggling to keep up with so many branches being active all at the same time.

          Mark Linimon continues to make progress on the cluster nodes. @@ -424,20 +409,20 @@ build cluster. The question has been asked of us, "what would it take to speed up package builds?" There is no one simple answer. It is not merely a matter of having a larger number of package - building machines -- before asking for funding we first need to + building machines, so before asking for funding we first need to identify the current bottlenecks. While we are starting to understand the problems on the nodes, the problems on the dispatch machine itself are much harder. Complicating the matter is that there are several periodic processes (ZFS backup, ZFS expiration, and errorlog compression, among others) that can combine to slow - that machine significantly. The interaction of all these - simultaneously is proving difficult to quantify.

          + that machine significantly. The simultaneous interaction of all these + is proving difficult to quantify.

          -

          Between pav and miwi, many more experimental ports runs have +

          Between Pav Lucistnik and Martin Wilke, many more experimental ports runs have been completed and committed.

          We have added 3 new committers since the last report, and 1 - older one has rejoined.

          + older one has rejoined us.

          @@ -450,8 +435,8 @@ to get the ports in the shape they really need to be in. Although we have added many maintainers, we still have more - than 4,700 unmaintained ports (see, for instance, the list on - portsmon). (The percentage remains steady at just over 22%.) We are + than 4,700 unmaintained ports. (See, for instance, the list on + portsmon. The percentage remains steady at just over 22%.) We are always looking for dedicated volunteers to adopt at least a few unmaintained ports. As well, the packages on amd64 and especially sparc64 lag behind i386, and we need more testers for those. @@ -477,25 +462,25 @@

          The main thing that has taken place since the last Status Report is that I have gotten to the bottom of the remaining PCI problems with Sun Fire V215/V245 and support for these has been completed - and since r202023 now is part of HEAD. With some luck it will also + and since r202023 now is part of 9.0-CURRENT. With some luck it will also be part of the upcoming 7.3-RELEASE.

          -

          In other news:

          +

          Some other news:

            -
          • Two bugs in the NFS server causing unaligned accesses and +
          • Two bugs in the NFS server causing unaligned access and thus panics on sparc64 and all other architectures with strict - alignment requirements (basically all Tier 2 ones) have been + alignment requirements (basically all Tier-2 ones) have been fixed. There likely will be a 8.0-RELEASE Erratum Notice released for these.
          • &os; has been adopted to the changed firmware of newer Sun - Fire V480 (those equipped with version 7 Schizo bridges) and was + Fire V480 (those equipped with version 7 Schizo bridges) and has been reported to now run fine on these. The necessary change will be part of 7.3-RELEASE. Unfortunately, using the on-board NICs in older models of Sun Fire V480 (at least those equipped with version 4 Schizo bridges) under &os; still leads to the firmware - issuing a FATAL RESET due to what appears to be a CPU bug which + issuing a FATAL RESET due to what appears to be a CPU bug, which needs to be worked around.
          • Work on supporting Sun Fire V1280 has been started but still @@ -524,18 +509,18 @@ -

            Recently a bunch of new device IDs have been added for the - u3g(4) cellular wireless driver, the list should be comparable with +

            Recently, a bunch of new device IDs have been added for the + u3g(4) cellular wireless driver; the list should be comparable now with other operating systems around. A lot of these devices have a - feature where the unit first attaches as a disk or cdrom that - contains the Win/Mac drivers, this state should be detected by the + feature where the unit first attaches as a disk or CD-ROM that + contains the Win/Mac drivers. This state should be detected by the u3g driver and the usb device is sent a command to switch to modem - mode. This has been working for quite some time but as its + mode. This has been working for quite some time but as it is implemented differently for each vendor I am looking for feedback on any units where the auto switchover is not working (or the init is not recognized at all). Please ensure you are running an up to - date kernel from head r201681 or later, or stable/8 if r201681 has - been merged by the time of publication.

            + date kernel, like r201681 or later from 9.0-CURRENT, or 8-STABLE + after the future merge of this revision.

            @@ -581,17 +566,17 @@

            We are happy to announce that Benedict Reuschling is now free - from mentorship and can commit to the doc-tree on his own.

            + from mentorship and can commit to the documentation tree on his own.

            Since the last status report, the German Documentation Team has - chased updates to various sections of the &os; handbook, FAQ and - the german website. Many handbook pages were updated to the latest + chased updates to various sections of the &os; Handbook, FAQ and + the German website. Many handbook pages have been updated to the latest version, including chapters about configuration, disks, kernel configuration, printing, multimedia and virtualization.

            -

            We require help from volunteers who are willing to contribute +

            We require help from volunteers that are willing to contribute bug fixes or translations. The following documents need active - maintainership and are a good training-ground for those willing to + maintainership and are a good training ground for those willing to join the translation team:

              @@ -620,7 +605,7 @@ - The FreeBSD Spanish Documentation Project + The &os; Spanish Documentation Project @@ -633,30 +618,30 @@ - http://www.freebsd.org/doc/es/articles/fdp-es/ + Introduction to the Spanish Documentation Project - https://listas.es.freebsd.org/mailman/listinfo/doc + Translators' Mailing List

              There is one article translation pending review. Apart from this, - neither translation nor maintainance work has been done. We need + neither translations nor maintainance work have been done. We need more volunteers, mostly translators but we are glad to have more reviewers, as well. One can join by simply subscribing to - the translators' mailing list, where all the work is done.

              + the translators' mailing list where all the work is done.

              - Update Handbook translation + Update Handbook translation. - Update webpage translation + Update webpage translation. - Add more article translations + Add more article translations.
              - The FreeBSD Hungarian Documentation Project + The &os; Hungarian Documentation Project @@ -677,30 +662,30 @@ - Hungarian Web Page for FreeBSD + Hungarian Web Page for &os; - Hungarian Documentation - for FreeBSD + Hungarian Documentation + for &os; The - FreeBSD Hungarian Documentation Project's Wiki Page + &os; Hungarian Documentation Project's Wiki Page - Perforce - Depot for the FreeBSD Hungarian Documentation Project + Perforce + Depot for the &os; Hungarian Documentation Project

              In the last months, no new translation has been added. - Lacking human resources, we can only manage the existing - documentation and web page translations. If you are interested + Lacking human resources, we can only manage to keep the existing + documentation and web page translations up to date. If you are interested in helping us, please contact us via the the email addresses noted above.

              - Translate release notes + Translate release notes. - Add more article translations + Add more article translations.
              @@ -730,14 +715,14 @@ - + -

              Since the last report we have seen a growth of 2000 users on our - Forums resulting in ca. 10.000 registered users at this time. The - posts count is about to reach 60.000 soon, which are contained in - almost 9000 threads.

              +

              Since the last report we have seen a growth of 2,000 users on our + forums resulting in approximately 10,000 registered users at this time. The + posts count is about to reach 60,000 soon, which are contained in + almost 9,000 threads.

              The sign-up rate still hovers between 50-100 each week. The total number of visitors (including 'guests') is currently hard to @@ -745,13 +730,13 @@ userbase.

              New topics and posts are actively 'pushed out' to search - engines. This in turn makes the Forums show up in search results + engines. This in turn makes the forums show up in search results more and more often, making it a valuable and very accessible source of information for the &os; community.

              -

              One of the contributing factors to the Forums' success is their +

              One of the contributing factors to the forums' success is their 'BSD-style' approach when it comes to administration and - moderation. The Forums have a strong and unified identity and are + moderation. The forums have a strong and unified identity and are very actively moderated, spam-free, and with a core group of very active and helpful members, dispensing many combined decades' worth of knowledge to starting, intermediate and professional users of @@ -784,14 +769,14 @@

              This work allows Linux applications using V4L video calls to work with existing &os; video drivers that provide V4L interfaces. It is tested and working with the net/skype port and also with - browser-based Flash apps that access webcams. It is tested on - &os;-8.0/amd64 and &os;-7.2/i386. An early version has been - committed to head and work is in progress to commit the latest - version and then MFC.

              + browser-based Flash applications that access webcams. An early version has been + committed to 9.0-CURRENT and work is in progress to commit the latest + version and then MFC. It is also tested on &os;-8.0/amd64 and + &os;-7.2/i386.

              Note: to be clear, this does not add V4L support to all webcams. The &os; camera driver must already offer V4L support itself in - order for a Linux app to be able to use that camera. The + order for a Linux application to be able to use that camera. The multimedia/pwcbsd port provides the pwc(4) driver that already has V4L support. If your camera is supported by a different driver, you will need to enhance that driver to add V4L support.

              @@ -799,7 +784,7 @@ - webcamd + The webcamd deamon @@ -820,7 +805,7 @@

              The webcamd daemon enables hundreds of different USB based webcam devices to be used under the &os;-8/9 operating system. The - webcam daemon is basically an application which is a port of + webcam daemon is basically an application, which is a port of Video4Linux USB webcam drivers into userspace on &os;. The daemon currently depends on libc, pthreads, libusb and the VIDEO4BSD kernel module.

              @@ -843,31 +828,26 @@ Brooks Davis - brooks@freebsd.org + brooks@FreeBSD.org
              - - -

              Historically, FreeBSD has limited the number of supplemental +

              Historically, &os; has limited the number of supplemental groups per process to 15 (NGROUPS_MAX was incorrectly declared to be - 16). In FreeBSD 8.0 we raised the limit to 1023, which should be + 16). In &os; 8.0-RELEASE we raised the limit to 1023, which should be sufficient for most users and will be acceptably efficient for incorrectly written applications that statically allocate NGROUPS_MAX + 1 entries.

              Because some systems such as Linux 2.6 support a larger - group limit, we have further relaxed this restriction in -CURRENT and + group limit, we have further relaxed this restriction in 9.0-CURRENT and made kern.ngroups a tunable value, which supports values between 1023 and INT_MAX - 1. We plan to merge this to 8-STABLE before 8.1-RELEASE.

              - -
              - Syncing pf(4) with OpenBSD 4.5 @@ -884,10 +864,10 @@ - + Viewing the changes. - The + The actual repo to build from. @@ -895,10 +875,10 @@

              This import is based on OpenBSD 4.5 state of pf(4). It includes many improvements over the code currently present in &os;. The actual new feature present in pf45 repository is support for - divert(4) which should allow tools like snort_inline to work with + divert(4), which should allow tools like snort_inline to work with pf(4) too.

              -

              Currently the pf(4) import is considered stable with normal +

              Currently, the pf(4) import is considered stable with normal kernel, as well as VIMAGE enabled kernels.

              @@ -910,7 +890,7 @@
              - + NFSv4 ACL support @@ -926,12 +906,12 @@ - + -

              Native NFSv4 ACL support in ZFS and UFS was merged into HEAD. It - is expected to be MFCed in order to make it into FreeBSD 8.1.

              +

              Native NFSv4 ACL support in ZFS and UFS has been committed into 9.0-CURRENT. It + is expected to be MFCed in order to make it into &os; 8.1-RELEASE.

              @@ -957,7 +937,7 @@ - + Announcement on the &os; Forums @@ -971,11 +951,12 @@ Solve USB_TIMEOUT problem when sending beacons, and/or - confirm which chipsets supports AP mode if all of them don't + confirm which chipsets supports AP mode if all of them do not support it. Read TX stats for AMRR on AP mode, and/or confirm which - chipsets supports AP mode if all of them don't support it. + chipsets supports AP mode if all of them do not support + it. Maintain the code. @@ -1005,13 +986,13 @@ - + - + -

              The base/projects/mips branch has been merged into base/head. +

              The base/projects/mips branch has been merged into 9.0-CURRENT. The merge is complete and the sanity tests have passed. The code has booted on both a Ubiquiti RouterStation (big endian) as well as in gxemul (little endian).

              @@ -1027,7 +1008,7 @@ been used extensively by the developers. The primary author of this port is Oleksandr Tymoshenko (gonzo@FreeBSD.org). -
            • A new port to the sibyte BCM1250 SoC on the BCM91250 +
            • A new port to the SiByte BCM1250 SoC on the BCM91250 evaluation board (aka SWARM). This port is reported to be stable, but this hardware is a little old and not widely available. The primary author of this port is Neel Natu (neel@FreeBSD.org). Only @@ -1041,7 +1022,7 @@ code into the tree.
            • A port, donated by RMI, to their XLR series of SoCs. This - port is single core only as well. The code reaches multi-user but + port is single core only, as well. The code reaches multi-user but should be considered beta quality for the moment. Randal Stewart (rrs@FreeBSD.org) has been driving the efforts to integrate this into the tree.
            • @@ -1069,21 +1050,18 @@ but experimental.
            • Work on SMP is underway to support multicore processors like - the sibyte, Octeon and XLR processors.
            • + the SiByte, Octeon and XLR processors.
            -

            I am sure there are minor items I have forgotten. If so, please - forgive any omission on my part...

            - -

            he branch had been updated incorrectly several times over the - past year, and the damage was too much to repair. We've retired the - branch and will do further mips development in "head" for the time +

            The development branch had been updated incorrectly several times over the + past year, and the damage was too much to repair. We have retired the + branch and will do further mips development in 9.0-CURRENT for the time being. If you have a checked out tree, the suggested way to update the projects/mips tree you have is to do a "svn switch - svn://svn.freebsd.org/base/head" in that tree.

            + svn://svn.FreeBSD.org/base/head" in that tree.

            I would like to thank everybody that has contributed time, code - or hardware to make FreeBSD/mips better.

            + or hardware to make &os;/mips better.

            As development proceeds, I will keep posting updates. In addition, I hope to have some mini "how-to" wiki pages done for @@ -1092,13 +1070,13 @@ We are still investigating how feasible merging all this work - into stable/8 will be, as it represents a huge leap forward in code + into 8-STABLE will be, as it represents a huge leap forward in code stability and quality. - Flattened Device Tree for embedded FreeBSD + Flattened Device Tree for embedded &os; @@ -1111,51 +1089,51 @@ - Project wiki pages + Project wiki pages - Project P4 branch + Project P4 branch -

            The purpose of this project is to provide FreeBSD with support for the +

            The purpose of this project is to provide &os; with support for the Flattened Device Tree (FDT) technology, the mechanism for describing computer hardware resources, which cannot be probed or self enumerated, in - a uniform and portable way. The primary consumer of this technology are - embedded FreeBSD platforms (ARM, AVR32, MIPS, PowerPC), where a lot of - designs are based on similar chips, but have different assignment of pins, + a uniform and portable way. The primary consumers of this technology are + embedded &os; platforms (ARM, AVR32, MIPS, PowerPC), where a lot of + designs are based on similar chips but have different assignment of pins, memory layout, addresses bindings, interrupts routing and other resources.

            Current state highlights:

              -
            • Environment, support tools
            • +
            • Environment, supported tools
              • >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jan 18 21:15:57 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66F9C106568D; Mon, 18 Jan 2010 21:15: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 2B913106568B for ; Mon, 18 Jan 2010 21:15:57 +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 1A5878FC15 for ; Mon, 18 Jan 2010 21:15: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 o0ILFugD028298 for ; Mon, 18 Jan 2010 21:15:56 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0ILFueq028296 for perforce@freebsd.org; Mon, 18 Jan 2010 21:15:56 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 21:15:56 GMT Message-Id: <201001182115.o0ILFueq028296@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 Precedence: bulk Cc: Subject: PERFORCE change 173338 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 21:15:57 -0000 http://p4web.freebsd.org/chv.cgi?CH=173338 Change 173338 by mav@mav_mavtest on 2010/01/18 21:15:18 When periph priority rizing, it may get permission to run. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#138 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#138 (text+ko) ==== @@ -3158,6 +3158,7 @@ camq_change_priority(&device->drvq, perph->pinfo.index, new_priority); + runq = xpt_schedule_dev_allocq(perph->path->bus, device); } } else { /* New entry on the queue */ From owner-p4-projects@FreeBSD.ORG Mon Jan 18 21:25:07 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5452C1065698; Mon, 18 Jan 2010 21:25:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 178A7106568B for ; Mon, 18 Jan 2010 21:25:07 +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 0422F8FC19 for ; Mon, 18 Jan 2010 21:25:07 +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 o0ILP6Oo028977 for ; Mon, 18 Jan 2010 21:25:06 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0ILP6dS028973 for perforce@freebsd.org; Mon, 18 Jan 2010 21:25:06 GMT (envelope-from mav@freebsd.org) Date: Mon, 18 Jan 2010 21:25:06 GMT Message-Id: <201001182125.o0ILP6dS028973@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 Precedence: bulk Cc: Subject: PERFORCE change 173339 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 21:25:07 -0000 http://p4web.freebsd.org/chv.cgi?CH=173339 Change 173339 by mav@mav_mavbook on 2010/01/18 21:25:05 IFC Affected files ... .. //depot/projects/scottl-camlock/src/Makefile.inc1#13 integrate .. //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#23 integrate .. //depot/projects/scottl-camlock/src/UPDATING#27 integrate .. //depot/projects/scottl-camlock/src/bin/cp/cp.1#3 integrate .. //depot/projects/scottl-camlock/src/bin/cp/cp.c#3 integrate .. //depot/projects/scottl-camlock/src/bin/cp/utils.c#5 integrate .. //depot/projects/scottl-camlock/src/bin/csh/config.h#3 integrate .. //depot/projects/scottl-camlock/src/bin/csh/config_p.h#3 integrate .. //depot/projects/scottl-camlock/src/bin/date/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/bin/date/date.c#4 integrate .. //depot/projects/scottl-camlock/src/bin/pax/gen_subs.c#2 integrate .. //depot/projects/scottl-camlock/src/bin/pkill/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/font/devutf8/R.proto#3 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/tmac/an-old.tmac#2 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc-common#3 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc-old.tmac#2 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc-syms#4 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc.tmac#2 integrate .. //depot/projects/scottl-camlock/src/contrib/groff/tmac/groff_mdoc.man#3 integrate .. //depot/projects/scottl-camlock/src/contrib/telnet/telnetd/sys_term.c#4 integrate .. //depot/projects/scottl-camlock/src/contrib/telnet/telnetd/telnetd.c#3 integrate .. //depot/projects/scottl-camlock/src/crypto/openssh/config.h#5 integrate .. //depot/projects/scottl-camlock/src/crypto/openssh/defines.h#4 integrate .. //depot/projects/scottl-camlock/src/crypto/openssh/loginrec.c#3 integrate .. //depot/projects/scottl-camlock/src/crypto/openssh/sshd.c#5 integrate .. //depot/projects/scottl-camlock/src/etc/defaults/rc.conf#14 integrate .. //depot/projects/scottl-camlock/src/etc/mtree/BSD.include.dist#7 integrate .. //depot/projects/scottl-camlock/src/etc/namedb/named.conf#4 integrate .. //depot/projects/scottl-camlock/src/etc/newsyslog.conf#3 integrate .. //depot/projects/scottl-camlock/src/etc/periodic/monthly/200.accounting#2 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/cleanvar#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.d/var#4 integrate .. //depot/projects/scottl-camlock/src/etc/rc.firewall#8 integrate .. //depot/projects/scottl-camlock/src/gnu/usr.bin/groff/tmac/mdoc.local#6 integrate .. //depot/projects/scottl-camlock/src/include/Makefile#10 integrate .. //depot/projects/scottl-camlock/src/include/unistd.h#5 integrate .. //depot/projects/scottl-camlock/src/include/utmp.h#3 integrate .. //depot/projects/scottl-camlock/src/include/utmpx.h#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/gen/Makefile.inc#9 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/Symbol.map#10 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/getttyent.3#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/getutxent.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/gen/getutxent.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/gen/opendir.c#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/pututxline.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/gen/scandir.c#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/sem_new.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/ttyname.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/ttyslot.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/uname.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/utxdb.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/gen/utxdb.h#1 branch .. //depot/projects/scottl-camlock/src/lib/libgeom/geom_util.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libgeom/geom_xml2tree.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libgeom/libgeom.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libgeom/libgeom.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libopie/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/lib/libopie/config.h#2 integrate .. //depot/projects/scottl-camlock/src/lib/libpam/modules/pam_krb5/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/lib/libpam/modules/pam_lastlog/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/lib/libpam/modules/pam_lastlog/pam_lastlog.c#6 integrate .. //depot/projects/scottl-camlock/src/lib/libstand/bzipfs.c#4 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/Symbol.map#3 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/ulog.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_getutxent.3#2 delete .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_getutxent.c#3 delete .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_internal.h#2 delete .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_login.3#2 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_login.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_login_pseudo.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_pututxline.c#3 delete .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_setutxfile.3#3 delete .. //depot/projects/scottl-camlock/src/lib/libulog/ulog_util.c#2 delete .. //depot/projects/scottl-camlock/src/lib/libulog/utempter.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libulog/utempter_add_record.3#2 integrate .. //depot/projects/scottl-camlock/src/lib/libutil/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/lib/libutil/libutil.h#4 integrate .. //depot/projects/scottl-camlock/src/lib/libutil/login.3#2 delete .. //depot/projects/scottl-camlock/src/lib/libutil/login.c#2 delete .. //depot/projects/scottl-camlock/src/lib/libutil/login_tty.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libutil/logout.3#2 delete .. //depot/projects/scottl-camlock/src/lib/libutil/logout.c#2 delete .. //depot/projects/scottl-camlock/src/lib/libutil/logwtmp.3#2 delete .. //depot/projects/scottl-camlock/src/lib/libutil/logwtmp.c#3 delete .. //depot/projects/scottl-camlock/src/libexec/comsat/comsat.c#4 integrate .. //depot/projects/scottl-camlock/src/libexec/ftpd/ftpd.c#3 integrate .. //depot/projects/scottl-camlock/src/libexec/ftpd/logwtmp.c#2 integrate .. //depot/projects/scottl-camlock/src/libexec/getty/ttys.5#3 integrate .. //depot/projects/scottl-camlock/src/libexec/rlogind/rlogind.c#2 integrate .. //depot/projects/scottl-camlock/src/libexec/rpc.rusersd/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/libexec/rpc.rusersd/rusers_proc.c#3 integrate .. //depot/projects/scottl-camlock/src/libexec/talkd/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/libexec/talkd/process.c#4 integrate .. //depot/projects/scottl-camlock/src/release/doc/en_US.ISO8859-1/hardware/article.sgml#5 integrate .. //depot/projects/scottl-camlock/src/sbin/adjkerntz/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/class/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/class/mountver/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sbin/geom/class/mountver/geom_mountver.c#1 branch .. //depot/projects/scottl-camlock/src/sbin/geom/class/mountver/gmountver.8#1 branch .. //depot/projects/scottl-camlock/src/sbin/geom/core/geom.8#4 integrate .. //depot/projects/scottl-camlock/src/sbin/geom/core/geom.c#5 integrate .. //depot/projects/scottl-camlock/src/sbin/ifconfig/Makefile#7 integrate .. //depot/projects/scottl-camlock/src/sbin/ifconfig/af_inet.c#4 integrate .. //depot/projects/scottl-camlock/src/sbin/init/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/sbin/init/init.c#5 integrate .. //depot/projects/scottl-camlock/src/sbin/kldconfig/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/kldload/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/kldstat/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/mdconfig/mdconfig.c#3 integrate .. //depot/projects/scottl-camlock/src/sbin/natd/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/sbin/natd/natd.c#4 integrate .. //depot/projects/scottl-camlock/src/sbin/newfs/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/reboot/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/sbin/reboot/reboot.c#6 integrate .. //depot/projects/scottl-camlock/src/sbin/setkey/setkey.8#3 integrate .. //depot/projects/scottl-camlock/src/sbin/swapon/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/sbin/tunefs/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/Makefile#19 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/acpi.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/acpi_asus.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/aue.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/axe.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/cdce.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/dc.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/epair.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/gif.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/hme.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ipwfw.4#1 branch .. //depot/projects/scottl-camlock/src/share/man/man4/iwifw.4#1 branch .. //depot/projects/scottl-camlock/src/share/man/man4/lge.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/mac.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/man4.i386/vpd.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/man4.sparc64/ebus.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/mpt.4#5 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ndis.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/nge.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/pcm.4#9 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/pcn.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/psm.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/pts.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ral.4#5 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/re.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/rl.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/rue.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/rum.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/sf.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/siba.4#1 branch .. //depot/projects/scottl-camlock/src/share/man/man4/sis.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/sk.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/smbus.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/snd_uaudio.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ste.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/sysmouse.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/targ.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/udav.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/uhso.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/ural.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/urio.4#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/urtw.4#5 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/vr.4#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/wi.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/wlan.4#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man5/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man5/src.conf.5#5 integrate .. //depot/projects/scottl-camlock/src/share/man/man5/utmp.5#2 delete .. //depot/projects/scottl-camlock/src/share/man/man7/release.7#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/Makefile#14 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/ifnet.9#4 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/mac.9#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/namei.9#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/pci.9#3 integrate .. //depot/projects/scottl-camlock/src/share/man/man9/sysctl.9#3 integrate .. //depot/projects/scottl-camlock/src/share/mk/bsd.dep.mk#3 integrate .. //depot/projects/scottl-camlock/src/share/mk/bsd.own.mk#5 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/local_apic.c#25 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/conf/XENHVM#4 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/apicvar.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/isa/clock.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/busdma_machdep.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/boot/forth/loader.conf#23 integrate .. //depot/projects/scottl-camlock/src/sys/boot/ia64/efi/main.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/boot/ia64/efi/version#4 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_ioctl.c#23 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_misc.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_uid16.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#62 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files.pc98#19 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options.i386#12 integrate .. //depot/projects/scottl-camlock/src/sys/conf/options.pc98#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/acpica/acpi_ec.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bge/if_bge.c#34 integrate .. //depot/projects/scottl-camlock/src/sys/dev/bge/if_bgereg.h#22 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cs/if_cs.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cs/if_csreg.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/isp/isp.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mii/brgphy.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mii/miidevs#16 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/sndstat.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/dev/sound/pcm/sndstat.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/net/uhso.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdevs#40 integrate .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_alloc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_balloc.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_bmap.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_dinode.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_dir.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_extern.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_inode.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_inode_cnv.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_lookup.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_mount.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_readwrite.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_subr.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_vfsops.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2_vnops.c#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/ext2fs.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/fs.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/ext2fs/inode.h#1 branch .. //depot/projects/scottl-camlock/src/sys/fs/tmpfs/tmpfs.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/fs/tmpfs/tmpfs_vfsops.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/geom/geom_dump.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/geom/mountver/g_mountver.c#1 branch .. //depot/projects/scottl-camlock/src/sys/geom/mountver/g_mountver.h#1 branch .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/COPYRIGHT.INFO#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_alloc.c#3 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_balloc.c#3 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_bitops.h#4 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_bmap.c#3 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_extern.h#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_fs.h#4 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_fs_sb.h#4 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_inode.c#5 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_inode_cnv.c#3 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_linux_balloc.c#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#4 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_lookup.c#7 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_mount.h#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_subr.c#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#11 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/ext2_vnops.c#11 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/fs.h#4 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/i386-bitops.h#2 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/ext2fs/inode.h#3 delete .. //depot/projects/scottl-camlock/src/sys/gnu/fs/reiserfs/reiserfs_fs.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/local_apic.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/i386/ibcs2/ibcs2_misc.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/apicvar.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/i386/isa/clock.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/efi.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/ia64/iodev_machdep.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/include/efi.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/ia64/include/iodev.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_jail.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_prot.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_inq.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/kern/tty_pts.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/kern/vfs_subr.c#30 integrate .. //depot/projects/scottl-camlock/src/sys/modules/Makefile#41 integrate .. //depot/projects/scottl-camlock/src/sys/modules/ext2fs/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sys/modules/geom/Makefile#10 integrate .. //depot/projects/scottl-camlock/src/sys/modules/geom/geom_mountver/Makefile#1 branch .. //depot/projects/scottl-camlock/src/sys/net/if.c#41 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_bridge.c#28 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_lagg.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_var.h#31 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_vlan.c#26 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_mesh.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_eiface.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_ether.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netgraph/ng_fec.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_pcb.c#29 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_fw2.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_auth.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_auth.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_constants.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_header.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_indata.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_indata.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_input.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_os_bsd.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_output.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_pcb.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_structs.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_sysctl.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_uio.h#16 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctp_usrreq.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/sctputil.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/tcp_var.h#27 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_proto.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_src.c#22 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/cbus/clock.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/pc98/conf/DEFAULTS#12 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/conf/NOTES#13 integrate .. //depot/projects/scottl-camlock/src/sys/sys/jail.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/sys/param.h#39 integrate .. //depot/projects/scottl-camlock/src/sys/sys/vnode.h#24 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vm_pageout.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/vm/vnode_pager.c#16 integrate .. //depot/projects/scottl-camlock/src/tools/build/mk/OptionalObsoleteFiles.inc#6 integrate .. //depot/projects/scottl-camlock/src/usr.bin/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/brandelf/brandelf.1#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/chpass/chpass.1#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/elfdump/elfdump.1#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/finger/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/finger/finger.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/finger/lprint.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/finger/net.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/finger/sprint.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/finger/util.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/getent/getent.1#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/getent/getent.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/last/last.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/locale/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/systat/Makefile#6 integrate .. //depot/projects/scottl-camlock/src/usr.bin/systat/vmstat.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/users/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/users/users.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/w/Makefile#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/w/w.c#7 integrate .. //depot/projects/scottl-camlock/src/usr.bin/wall/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/wall/wall.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/who/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/who/who.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.bin/whois/whois.1#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/whois/whois.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/write/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/write/write.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/wtmpcvt/Makefile#1 branch .. //depot/projects/scottl-camlock/src/usr.bin/wtmpcvt/wtmpcvt.1#1 branch .. //depot/projects/scottl-camlock/src/usr.bin/wtmpcvt/wtmpcvt.c#1 branch .. //depot/projects/scottl-camlock/src/usr.sbin/ac/ac.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/adduser/adduser.sh#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/bsnmpd/modules/snmp_hostres/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_scalars.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/faithd/faithd.8#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/jail/jail.8#10 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/lastlogin/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/lastlogin/lastlogin.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/mergemaster/mergemaster.8#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/mergemaster/mergemaster.sh#7 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ppp/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ppp/id.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ppp/id.h#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ppp/physical.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ppp/physical.h#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/rwhod/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/rwhod/rwhod.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/smbmsg/smbmsg.8#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/syslogd/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/syslogd/syslogd.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/timed/timed/master.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/timed/timed/slave.c#3 integrate Differences ... ==== //depot/projects/scottl-camlock/src/Makefile.inc1#13 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile.inc1,v 1.636 2009/12/31 00:07:26 ed Exp $ +# $FreeBSD: src/Makefile.inc1,v 1.637 2010/01/14 23:27:23 jilles Exp $ # # Make command line options: # -DNO_CLEANDIR run ${MAKE} clean, instead of ${MAKE} cleandir @@ -1266,7 +1266,7 @@ fi; \ done # Remove catpages without corresponding manpages. - @3<&0; \ + @exec 3<&0; \ find ${DESTDIR}/usr/share/man/cat* ! -type d | \ sed -ep -e's:${DESTDIR}/usr/share/man/cat:${DESTDIR}/usr/share/man/man:' | \ while read catpage; do \ ==== //depot/projects/scottl-camlock/src/ObsoleteFiles.inc#23 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/ObsoleteFiles.inc,v 1.218 2010/01/05 02:37:59 davidxu Exp $ +# $FreeBSD: src/ObsoleteFiles.inc,v 1.222 2010/01/14 05:35:32 ed Exp $ # # This file lists old files (OLD_FILES), libraries (OLD_LIBS) and # directories (OLD_DIRS) which should get removed at an update. Recently @@ -14,6 +14,23 @@ # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last. # +# 20100114: removal of ttyslot(3) +OLD_FILES+=usr/share/man/man3/ttyslot.3.gz +# 20100113: remove utmp.h, replace it by utmpx.h +OLD_FILES+=usr/share/man/man3/login.3.gz +OLD_FILES+=usr/share/man/man3/logout.3.gz +OLD_FILES+=usr/share/man/man3/logwtmp.3.gz +OLD_FILES+=usr/share/man/man3/ulog_endutxent.3.gz +OLD_FILES+=usr/share/man/man3/ulog_getutxent.3.gz +OLD_FILES+=usr/share/man/man3/ulog_getutxline.3.gz +OLD_FILES+=usr/share/man/man3/ulog_getutxuser.3.gz +OLD_FILES+=usr/share/man/man3/ulog_pututxline.3.gz +OLD_FILES+=usr/share/man/man3/ulog_setutxent.3.gz +OLD_FILES+=usr/share/man/man3/ulog_setutxfile.3.gz +OLD_FILES+=usr/share/man/man5/lastlog.5.gz +OLD_FILES+=usr/share/man/man5/utmp.5.gz +OLD_FILES+=usr/share/man/man5/wtmp.5.gz +OLD_LIBS+=lib/libutil.so.8 # 20100105: new userland semaphore implementation OLD_FILES+=usr/include/sys/semaphore.h # 20100103: ntptrace(8) removed ==== //depot/projects/scottl-camlock/src/UPDATING#27 (text+ko) ==== @@ -22,6 +22,25 @@ machines to maximize performance. (To disable malloc debugging, run ln -s aj /etc/malloc.conf.) +20100113: + The utmp user accounting database has been replaced with utmpx, + the user accounting interface standardized by POSIX. + Unfortunately the semantics of utmp and utmpx don't match, + making it practically impossible to support both interfaces. + The user accounting database is used by tools like finger(1), + last(1), talk(1), w(1) and ac(8). + + All applications in the base system use utmpx. This means only + local binaries (e.g. from the ports tree) may still use these + utmp database files. These applications must be rebuilt to make + use of utmpx. + + After the system has been upgraded, it is safe to remove the old + log files (/var/run/utmp, /var/log/lastlog and /var/log/wtmp*), + assuming their contents is of no importance anymore. Old wtmp + databases can only be used by last(1) and ac(8) after they have + been converted to the new format using wtmpcvt(1). + 20100108: Introduce the kernel thread "deadlock resolver" (which can be enabled via the DEADLKRES option, see NOTES for more details) and the @@ -1094,4 +1113,4 @@ Contact Warner Losh if you have any questions about your use of this document. -$FreeBSD: src/UPDATING,v 1.651 2010/01/09 01:46:38 attilio Exp $ +$FreeBSD: src/UPDATING,v 1.653 2010/01/14 20:58:45 ed Exp $ ==== //depot/projects/scottl-camlock/src/bin/cp/cp.1#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)cp.1 8.3 (Berkeley) 4/18/94 -.\" $FreeBSD: src/bin/cp/cp.1,v 1.40 2008/03/10 19:58:41 jhb Exp $ +.\" $FreeBSD: src/bin/cp/cp.1,v 1.41 2010/01/17 09:37:31 gavin Exp $ .\" -.Dd October 27, 2006 +.Dd January 17, 2010 .Dt CP 1 .Os .Sh NAME @@ -45,7 +45,7 @@ .Op Fl H | Fl L | Fl P .Oc .Op Fl f | i | n -.Op Fl alpv +.Op Fl alpvx .Ar source_file target_file .Nm .Oo @@ -53,7 +53,7 @@ .Op Fl H | Fl L | Fl P .Oc .Op Fl f | i | n -.Op Fl alpv +.Op Fl alpvx .Ar source_file ... target_directory .Sh DESCRIPTION In the first synopsis form, the @@ -183,6 +183,8 @@ Cause .Nm to be verbose, showing files as they are copied. +.It Fl x +File system mount points are not traversed. .El .Pp For each destination file that already exists, its contents are ==== //depot/projects/scottl-camlock/src/bin/cp/cp.c#3 (text+ko) ==== @@ -42,7 +42,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/bin/cp/cp.c,v 1.60 2008/03/10 19:58:41 jhb Exp $"); +__FBSDID("$FreeBSD: src/bin/cp/cp.c,v 1.61 2010/01/17 09:37:31 gavin Exp $"); /* * Cp copies source files to target files. @@ -101,8 +101,9 @@ int Hflag, Lflag, Pflag, ch, fts_options, r, have_trailing_slash; char *target; + fts_options = FTS_NOCHDIR | FTS_PHYSICAL; Hflag = Lflag = Pflag = 0; - while ((ch = getopt(argc, argv, "HLPRafilnprv")) != -1) + while ((ch = getopt(argc, argv, "HLPRafilnprvx")) != -1) switch (ch) { case 'H': Hflag = 1; @@ -150,6 +151,9 @@ case 'v': vflag = 1; break; + case 'x': + fts_options |= FTS_XDEV; + break; default: usage(); break; @@ -160,7 +164,6 @@ if (argc < 2) usage(); - fts_options = FTS_NOCHDIR | FTS_PHYSICAL; if (Rflag && rflag) errx(1, "the -R and -r options may not be specified together"); if (rflag) ==== //depot/projects/scottl-camlock/src/bin/cp/utils.c#5 (text+ko) ==== @@ -33,7 +33,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/cp/utils.c,v 1.59 2009/09/02 08:08:57 trasz Exp $"); +__FBSDID("$FreeBSD: src/bin/cp/utils.c,v 1.60 2010/01/17 09:37:31 gavin Exp $"); #include #include @@ -518,8 +518,8 @@ { (void)fprintf(stderr, "%s\n%s\n", -"usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpv] source_file target_file", -" cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpv] source_file ... " +"usage: cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file target_file", +" cp [-R [-H | -L | -P]] [-f | -i | -n] [-alpvx] source_file ... " "target_directory"); exit(EX_USAGE); } ==== //depot/projects/scottl-camlock/src/bin/csh/config.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/bin/csh/config.h,v 1.15 2007/05/16 21:22:38 mp Exp $ */ +/* $FreeBSD: src/bin/csh/config.h,v 1.16 2010/01/13 17:49:35 ed Exp $ */ /* config.h. Generated by configure. */ /* config.h.in. Generated from configure.in by autoheader. */ @@ -54,7 +54,7 @@ #define HAVE_GETPWENT 1 /* Define to 1 if you have the `getutent' function. */ -/* #undef HAVE_GETUTENT */ +#define HAVE_GETUTENT 1 /* Define if you have the iconv() function. */ /* #undef HAVE_ICONV */ @@ -130,10 +130,10 @@ #define HAVE_STRUCT_UTMP_UT_HOST 1 /* Define to 1 if `ut_tv' is member of `struct utmp'. */ -/* #undef HAVE_STRUCT_UTMP_UT_TV */ +#define HAVE_STRUCT_UTMP_UT_TV 1 /* Define to 1 if `ut_user' is member of `struct utmp'. */ -/* #undef HAVE_STRUCT_UTMP_UT_USER */ +#define HAVE_STRUCT_UTMP_UT_USER 1 /* Define to 1 if `ut_xtime' is member of `struct utmp'. */ /* #undef HAVE_STRUCT_UTMP_UT_XTIME */ @@ -159,10 +159,10 @@ #define HAVE_UNISTD_H 1 /* Define to 1 if you have the header file. */ -/* #undef HAVE_UTMPX_H */ +#define HAVE_UTMPX_H 1 /* Define to 1 if you have the header file. */ -#define HAVE_UTMP_H 1 +/* #undef HAVE_UTMP_H */ /* Define to 1 if you have the header file. */ #define HAVE_WCHAR_H 1 ==== //depot/projects/scottl-camlock/src/bin/csh/config_p.h#3 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/bin/csh/config_p.h,v 1.14 2007/05/16 21:22:38 mp Exp $ */ +/* $FreeBSD: src/bin/csh/config_p.h,v 1.15 2010/01/13 17:49:35 ed Exp $ */ /* * config.h -- configure various defines for tcsh * @@ -85,6 +85,7 @@ /* Use LC_MESSAGES locale category to open the message catalog */ #define MCLoadBySet NL_CAT_LOCALE #define BUFSIZE 8192 +#define UTMPX_FILE "/var/run/utx.active" #endif #if defined(__bsdi__) ==== //depot/projects/scottl-camlock/src/bin/date/Makefile#3 (text+ko) ==== @@ -1,9 +1,7 @@ # @(#)Makefile 8.1 (Berkeley) 5/31/93 -# $FreeBSD: src/bin/date/Makefile,v 1.12 2009/12/05 20:09:50 ed Exp $ +# $FreeBSD: src/bin/date/Makefile,v 1.13 2010/01/13 17:56:54 ed Exp $ PROG= date SRCS= date.c netdate.c vary.c -DPADD= ${LIBULOG} -LDADD= -lulog .include ==== //depot/projects/scottl-camlock/src/bin/date/date.c#4 (text+ko) ==== @@ -40,7 +40,7 @@ #endif #include -__FBSDID("$FreeBSD: src/bin/date/date.c,v 1.49 2009/12/05 20:09:50 ed Exp $"); +__FBSDID("$FreeBSD: src/bin/date/date.c,v 1.50 2010/01/13 17:56:54 ed Exp $"); #include #include @@ -52,9 +52,8 @@ #include #include #include -#define _ULOG_POSIX_NAMES -#include #include +#include #include "extern.h" #include "vary.h" ==== //depot/projects/scottl-camlock/src/bin/pax/gen_subs.c#2 (text+ko) ==== @@ -37,7 +37,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/pax/gen_subs.c,v 1.23 2004/04/06 20:06:48 markm Exp $"); +__FBSDID("$FreeBSD: src/bin/pax/gen_subs.c,v 1.24 2010/01/13 17:56:54 ed Exp $"); #include #include @@ -45,7 +45,6 @@ #include #include #include -#include #include #include #include @@ -66,10 +65,6 @@ #define OLDFRMTM "%b %e %Y" #define CURFRMTD "%e %b %H:%M" #define OLDFRMTD "%e %b %Y" -#ifndef UT_NAMESIZE -#define UT_NAMESIZE 8 -#endif -#define UT_GRPSIZE 6 static int d_first = -1; @@ -116,9 +111,8 @@ */ if (strftime(f_date,DATELEN,timefrmt,localtime(&(sbp->st_mtime))) == 0) f_date[0] = '\0'; - (void)fprintf(fp, "%s%2u %-*s %-*s ", f_mode, sbp->st_nlink, - UT_NAMESIZE, name_uid(sbp->st_uid, 1), UT_GRPSIZE, - name_gid(sbp->st_gid, 1)); + (void)fprintf(fp, "%s%2u %-12s %-12s ", f_mode, sbp->st_nlink, + name_uid(sbp->st_uid, 1), name_gid(sbp->st_gid, 1)); /* * print device id's for devices, or sizes for other nodes ==== //depot/projects/scottl-camlock/src/bin/pkill/Makefile#2 (text+ko) ==== @@ -1,8 +1,7 @@ # $NetBSD: Makefile,v 1.1 2002/03/01 11:21:58 ad Exp $ -# $FreeBSD: src/bin/pkill/Makefile,v 1.1 2008/08/31 14:27:59 yar Exp $ +# $FreeBSD: src/bin/pkill/Makefile,v 1.2 2010/01/17 21:56:27 ed Exp $ PROG= pkill -WARNS?= 5 DPADD= ${LIBKVM} LDADD= -lkvm ==== //depot/projects/scottl-camlock/src/contrib/groff/font/devutf8/R.proto#3 (text+ko) ==== @@ -726,7 +726,7 @@ product 24 0 0x220F coproduct 24 0 0x2210 sum 24 0 0x2211 -\- 24 0 0x002D +\- 24 0 0x2212 mi " -+ 24 0 0x2213 ** 24 0 0x2217 ==== //depot/projects/scottl-camlock/src/contrib/groff/tmac/an-old.tmac#2 (text+ko) ==== @@ -630,6 +630,18 @@ . hy \n[HY] .\} . +.\" For UTF-8, map some characters conservatively for the sake +.\" of easy cut and paste. +. +.if '\*[.T]'utf8' \{\ +. rchar \- - ' ` +. +. char \- \N'45' +. char - \N'45' +. char ' \N'39' +. char ` \N'96' +.\} +. .\" Load local modifications. .mso man.local . ==== //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc-common#3 (text+ko) ==== @@ -46,6 +46,7 @@ .nr %Q 1 .nr %R 1 .nr %T 1 +.nr %U 1 .nr %V 1 .nr Ac 3 .nr Ad 12n @@ -77,6 +78,7 @@ .nr Dq 12n .nr Ds 6n\" many manpages still use this as a -width value .nr Dv 12n +.nr Dx 1 .nr Ec 3 .nr Ef 8n\" ? .nr Ek 8n\" ? @@ -219,6 +221,7 @@ .\" NS doc-document-title .\" NS doc-section .\" NS doc-volume +.\" NS doc-command-name .\" NS .\" NS local variables: .\" NS doc-volume-as-XXX @@ -319,6 +322,7 @@ . ds doc-document-title UNTITLED . ds doc-volume LOCAL . ds doc-section Null +. ds doc-command-name . . if !"\$1"" \ . ds doc-document-title "\$1 @@ -357,6 +361,12 @@ . if !"\$3"" \ . if "\*[doc-volume]"LOCAL" \ . ds doc-volume \$3 +. +. if !\n[cR] \ +. if \n[nl] \{\ + . doc-setup-header +. bp +. \} .. . . @@ -379,6 +389,7 @@ .\" NS .\" NS modifies: .\" NS doc-operating-system +.\" NS doc-command-name .\" NS .\" NS local variables: .\" NS doc-operating-system-XXX-XXX @@ -435,9 +446,14 @@ .ds doc-operating-system-NetBSD-2.0 2.0 .ds doc-operating-system-NetBSD-2.0.1 2.0.1 .ds doc-operating-system-NetBSD-2.0.2 2.0.2 +.ds doc-operating-system-NetBSD-2.0.3 2.0.3 .ds doc-operating-system-NetBSD-2.1 2.1 .ds doc-operating-system-NetBSD-3.0 3.0 +.ds doc-operating-system-NetBSD-3.0.1 3.0.1 +.ds doc-operating-system-NetBSD-3.0.2 3.0.2 +.ds doc-operating-system-NetBSD-3.1 3.1 .ds doc-operating-system-NetBSD-4.0 4.0 +.ds doc-operating-system-NetBSD-4.0.1 4.0.1 . .ds doc-operating-system-FreeBSD-1.0 1.0 .ds doc-operating-system-FreeBSD-1.1 1.1 @@ -486,23 +502,48 @@ .ds doc-operating-system-FreeBSD-6.0 6.0 .ds doc-operating-system-FreeBSD-6.1 6.1 .ds doc-operating-system-FreeBSD-6.2 6.2 +.ds doc-operating-system-FreeBSD-6.3 6.3 +.ds doc-operating-system-FreeBSD-6.4 6.4 .ds doc-operating-system-FreeBSD-7.0 7.0 +.ds doc-operating-system-FreeBSD-7.1 7.1 . -.ds doc-operating-system-Darwin-8.0.0 8.0.0 -.ds doc-operating-system-Darwin-8.1.0 8.1.0 -.ds doc-operating-system-Darwin-8.2.0 8.2.0 -.ds doc-operating-system-Darwin-8.3.0 8.3.0 -.ds doc-operating-system-Darwin-8.4.0 8.4.0 -.ds doc-operating-system-Darwin-8.5.0 8.5.0 +.ds doc-operating-system-Darwin-8.0.0 8.0.0 +.ds doc-operating-system-Darwin-8.1.0 8.1.0 +.ds doc-operating-system-Darwin-8.2.0 8.2.0 +.ds doc-operating-system-Darwin-8.3.0 8.3.0 +.ds doc-operating-system-Darwin-8.4.0 8.4.0 +.ds doc-operating-system-Darwin-8.5.0 8.5.0 +.ds doc-operating-system-Darwin-8.6.0 8.6.0 +.ds doc-operating-system-Darwin-8.7.0 8.7.0 +.ds doc-operating-system-Darwin-8.8.0 8.8.0 +.ds doc-operating-system-Darwin-8.9.0 8.9.0 +.ds doc-operating-system-Darwin-8.10.0 8.10.0 +.ds doc-operating-system-Darwin-8.11.0 8.11.0 +.ds doc-operating-system-Darwin-9.0.0 9.0.0 +.ds doc-operating-system-Darwin-9.1.0 9.1.0 +.ds doc-operating-system-Darwin-9.2.0 9.2.0 +.ds doc-operating-system-Darwin-9.3.0 9.3.0 +.ds doc-operating-system-Darwin-9.4.0 9.4.0 +.ds doc-operating-system-Darwin-9.5.0 9.5.0 +.ds doc-operating-system-Darwin-9.6.0 9.6.0 . -.ds doc-operating-system-DragonFly-1.0 1.0 -.ds doc-operating-system-DragonFly-1.1 1.1 -.ds doc-operating-system-DragonFly-1.2 1.2 -.ds doc-operating-system-DragonFly-1.3 1.3 -.ds doc-operating-system-DragonFly-1.4 1.4 -.ds doc-operating-system-DragonFly-1.5 1.5 +.ds doc-operating-system-DragonFly-1.0 1.0 +.ds doc-operating-system-DragonFly-1.1 1.1 +.ds doc-operating-system-DragonFly-1.2 1.2 +.ds doc-operating-system-DragonFly-1.3 1.3 +.ds doc-operating-system-DragonFly-1.4 1.4 +.ds doc-operating-system-DragonFly-1.5 1.5 +.ds doc-operating-system-DragonFly-1.6 1.6 +.ds doc-operating-system-DragonFly-1.8 1.8 +.ds doc-operating-system-DragonFly-1.8.1 1.8.1 +.ds doc-operating-system-DragonFly-1.10 1.10 +.ds doc-operating-system-DragonFly-1.12 1.12 +.ds doc-operating-system-DragonFly-1.12.2 1.12.2 +.ds doc-operating-system-DragonFly-2.0 2.0 . .de Os +. ds doc-command-name +. . ie "\$1"" \ . ds doc-operating-system "\*[doc-default-operating-system] . el \{ .ie "\$1"ATT" \{\ @@ -563,6 +604,7 @@ .\" NS .\" NS modifies: .\" NS doc-date-string +.\" NS doc-command-name .\" NS .\" NS local variables: .\" NS doc-date-XXX @@ -583,6 +625,8 @@ .ds doc-date-12 December . .de Dd +. ds doc-command-name +. . ie \n[.$] \{\ . ie (\n[.$] == 3) \ . ds doc-date-string \$1\~\$2 \$3 @@ -1128,6 +1172,8 @@ . tm doc-reference-title-count == \n[doc-reference-title-count] . tm doc-reference-title-name == `\*[doc-reference-title-name]' . tm doc-reference-title-name-for-book == `\*[doc-reference-title-name-for-book]' +. tm doc-url-count == \n[doc-url-count] +. tm doc-url-name == `\*[doc-url-name]' . tm doc-volume-count == \n[doc-volume-count] . tm doc-volume-name == `\*[doc-volume-name]' . tm doc-have-author == \n[doc-have-author] ==== //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc-old.tmac#2 (text+ko) ==== @@ -40,7 +40,7 @@ .ds aD \fI .\" Argument Reference Style .ds aR \f(CO -.\" Interactive Comand Modifier (flag) +.\" Interactive Command Modifier (flag) .ds cM \f(CB .\" Emphasis (in the English sense - usually italics) .ds eM \fI ==== //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc-syms#4 (text+ko) ==== @@ -651,6 +651,8 @@ .\" X/Open .ds doc-str-St--susv2 Version\~2 of the Single \*[doc-Tn-font-size]UNIX\*[doc-str-St] Specification .as doc-str-St--susv2 " (\*[Lq]\*[doc-Tn-font-size]SUSv2\*[doc-str-St]\*[Rq]) +.ds doc-str-St--susv3 Version\~3 of the Single \*[doc-Tn-font-size]UNIX\*[doc-str-St] Specification +.as doc-str-St--susv3 " (\*[Lq]\*[doc-Tn-font-size]SUSv3\*[doc-str-St]\*[Rq]) .ds doc-str-St--svid4 System\~V Interface Definition, Fourth Edition .as doc-str-St--svid4 " (\*[Lq]\*[doc-Tn-font-size]SVID\*[doc-str-St]\^4\*[Rq]) .ds doc-str-St--xbd5 \*[doc-Tn-font-size]X/Open\*[doc-str-St] System Interface Definitions Issue\~5 @@ -777,7 +779,6 @@ .ds doc-str-Lb-librt \*[Px] \*[doc-str-Lb]Real-time Library (librt, \-lrt) .ds doc-str-Lb-libtermcap Termcap Access Library (libtermcap, \-ltermcap) .ds doc-str-Lb-libusbhid USB Human Interface Devices Library (libusbhid, \-lusbhid) -.ds doc-str-Lb-libulog User Login Record Library (libulog, \-lulog) .ds doc-str-Lb-libutil System Utilities Library (libutil, \-lutil) .ds doc-str-Lb-libx86_64 x86_64 Architecture Library (libx86_64, \-lx86_64) .ds doc-str-Lb-libz Compression Library (libz, \-lz) ==== //depot/projects/scottl-camlock/src/contrib/groff/tmac/doc.tmac#2 (text+ko) ==== @@ -356,10 +356,10 @@ . ds doc-macro-name Fl . doc-parse-args \$@ . -. if !\n[.$] \{\ -. \" no arguments +. \" no arguments +. if !\n[.$] \ . nop \|\-\|\f[]\s[0] -. \}\} +. \} . . if !\n[doc-arg-limit] \ . return @@ -481,8 +481,8 @@ . el \{\ . nr doc-reg-dpr \n[doc-arg-ptr] . +. \" the `\%' prevents hyphenation on a dash (`-') . ie (\n[doc-reg-dpr1] == 2) \ -. \" the `\%' prevents hyphenation on a dash (`-') . nop \%\*[doc-str-dpr]\&\c . el \{\ . \" punctuation character @@ -595,10 +595,10 @@ . ds doc-macro-name Ar . doc-parse-args \$@ . -. if !\n[.$] \{\ -. \" no argument +. \" no argument +. if !\n[.$] \ . nop \)\*[doc-str-Ar-default]\&\f[]\s[0] -. \}\} +. \} . . if !\n[doc-arg-limit] \ . return @@ -1034,10 +1034,10 @@ . ds doc-macro-name Pa . doc-parse-args \$@ . -. if !\n[.$] \{\ -. \" default value +. \" default value +. if !\n[.$] \ . nop \*[doc-Pa-font]~\f[]\s[0] -. \}\} +. \} . . if !\n[doc-arg-limit] \ . return @@ -3430,6 +3430,8 @@ . nr doc-reference-title-count-saved \n[doc-reference-title-count] . ds doc-reference-title-name-saved "\*[doc-reference-title-name] . ds doc-reference-title-name-for-book-saved "\*[doc-reference-title-name-for-book] +. nr doc-url-count-saved \n[doc-url-count] +. ds doc-url-name-saved "\*[doc-url-name] . nr doc-volume-count-saved \n[doc-volume-count] . ds doc-volume-name-saved "\*[doc-volume-name] . nr doc-have-author-saved \n[doc-have-author] @@ -3570,6 +3572,8 @@ . nr doc-reference-title-count \n[doc-reference-title-count-saved] >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Jan 18 21:37:20 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1A0811065692; Mon, 18 Jan 2010 21:37:20 +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 BA4A4106566B for ; Mon, 18 Jan 2010 21:37:19 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A8E448FC13 for ; Mon, 18 Jan 2010 21:37: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 o0ILbJT6029941 for ; Mon, 18 Jan 2010 21:37:19 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0ILbJ9c029939 for perforce@freebsd.org; Mon, 18 Jan 2010 21:37:19 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 18 Jan 2010 21:37:19 GMT Message-Id: <201001182137.o0ILbJ9c029939@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 173341 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 18 Jan 2010 21:37:20 -0000 http://p4web.freebsd.org/chv.cgi?CH=173341 Change 173341 by rene@rene_self on 2010/01/18 21:36:59 MFen handbook: * book.sgml 1.175 -> 1.176 * disks 1.292 -> 2.293 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/book.sgml#13 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#14 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/book.sgml#13 (text+ko) ==== @@ -1,9 +1,8 @@ @@ -82,6 +81,7 @@ 2007 2008 2009 + 2010 The &os; Dutch Documentation Project ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#14 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml,v 1.14 2009/09/25 19:25:40 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.sgml - %SRCID% 1.292 + %SRCID% 1.293 --> @@ -1785,6 +1785,40 @@ station. Om de schrijfsnelheid te forceren, dient de parameter gebruikt te worden. Meer informatie staat in de hulppagina &man.growisofs.1;. + + + Om bestanden groter dan 4,38GB in de compilatie op te nemen dient + een UDF/ISO-9660 hybride bestandssysteem aangemaakt te worden door de + aanvullende parameter aan + &man.mkisofs.8; en alle gerelateerde programma's (i.e. + &man.growisofs.1;) door te geven. Dit is alleen nodig als een ISO + beeldbestand wordt aangemaakt, of als bestanden direct naar een schijf + worden geschreven. Schijven die op deze manier zijn aangemaakt moeten + als een UDF-bestandssysteem worden aangekoppeld met het hulpmiddel + &man.mount.udf.8;, zodat het alleen bruikbaar is op een + besturingssysteem dat zich van UDF bewust is, anders zal het lijken of + er corrupte bestanden op staan. + + Om zo'n ISO-bestand aan te maken: + + &prompt.user; mkisofs -R -J -udf -iso-level 3 -o beeldbestand.iso /pad/naar/gegevens + + Om de bestanden direct naar een schijf te schrijven: + + &prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /pad/naar/gegevens + + Wanneer u een ISO-beeld heeft dat al grote bestanden bevat, zijn + er geen extra opties nodig om met &man.growisofs.1; het beeld naar een + schijf te schrijven. + + Zorg er ook voor dat u een actuele versie van sysutils/cdrtools heeft (welke + &man.mkisofs.8; bevat), aangezien oudere versies geen ondersteuning + voor grote bestanden bieden. Als u problemen tegenkomt, gebruik dan + de ontwikkelversie, sysutils/cdrtools-devel en lees de + handleidingpagina &man.mkisofs.8;. + From owner-p4-projects@FreeBSD.ORG Tue Jan 19 07:12:57 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B6D731065670; Tue, 19 Jan 2010 07:12: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 7B361106566B for ; Tue, 19 Jan 2010 07:12:57 +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 3521F8FC08 for ; Tue, 19 Jan 2010 07:12: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 o0J7CvrN005948 for ; Tue, 19 Jan 2010 07:12:57 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0J7CvXM005946 for perforce@freebsd.org; Tue, 19 Jan 2010 07:12:57 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 07:12:57 GMT Message-Id: <201001190712.o0J7CvXM005946@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 Precedence: bulk Cc: Subject: PERFORCE change 173356 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 07:12:58 -0000 http://p4web.freebsd.org/chv.cgi?CH=173356 Change 173356 by mav@mav_mavtest on 2010/01/19 07:12:23 Add compatibility for RL-unaware code. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#139 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#139 (text+ko) ==== @@ -2485,6 +2485,9 @@ CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("xpt_action\n")); start_ccb->ccb_h.status = CAM_REQ_INPROG; + /* Compatibility for RL-unaware code. */ + if (CAM_PRIORITY_TO_RL(start_ccb->ccb_h.pinfo.priority) == 0) + start_ccb->ccb_h.pinfo.priority += CAM_PRIORITY_NORMAL - 1; (*(start_ccb->ccb_h.path->bus->xport->action))(start_ccb); } From owner-p4-projects@FreeBSD.ORG Tue Jan 19 08:48:33 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 17DB61065696; Tue, 19 Jan 2010 08:48: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 CE162106568D for ; Tue, 19 Jan 2010 08:48: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 B3C8C8FC08 for ; Tue, 19 Jan 2010 08:48: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 o0J8mWFd024293 for ; Tue, 19 Jan 2010 08:48:32 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0J8mWCZ024291 for perforce@freebsd.org; Tue, 19 Jan 2010 08:48:32 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 08:48:32 GMT Message-Id: <201001190848.o0J8mWCZ024291@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 Precedence: bulk Cc: Subject: PERFORCE change 173357 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 08:48:33 -0000 http://p4web.freebsd.org/chv.cgi?CH=173357 Change 173357 by mav@mav_mavtest on 2010/01/19 08:47:50 As ATA XPT now handles reprobe on reset, is it possible to simplify probe logic in PMP code. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#30 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#140 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#22 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_pmp.c#30 (text+ko) ==== @@ -98,6 +98,9 @@ int reset; int frozen; int restart; + int events; +#define PMP_EV_RESET 1 +#define PMP_EV_RESCAN 2 union ccb saved_ccb; struct task sysctl_task; struct sysctl_ctx_list sysctl_ctx; @@ -300,14 +303,14 @@ case AC_BUS_RESET: softc = (struct pmp_softc *)periph->softc; cam_periph_async(periph, code, path, arg); - if (code == AC_SCSI_AEN && softc->state != PMP_STATE_NORMAL && - softc->state != PMP_STATE_SCAN) + if (code == AC_SCSI_AEN) + softc->events |= PMP_EV_RESCAN; + else + softc->events |= PMP_EV_RESET; + if (code == AC_SCSI_AEN && softc->state != PMP_STATE_NORMAL) break; - if (softc->state != PMP_STATE_SCAN) { - xpt_hold_boot(); - pmpfreeze(periph, softc->found); - } else - pmpfreeze(periph, softc->found & ~(1 << softc->pm_step)); + xpt_hold_boot(); + pmpfreeze(periph, softc->found); if (code == AC_SENT_BDR || code == AC_BUS_RESET) softc->found = 0; /* We have to reset everything. */ if (softc->state == PMP_STATE_NORMAL) { @@ -356,7 +359,6 @@ pmpregister(struct cam_periph *periph, void *arg) { struct pmp_softc *softc; - struct ccb_pathinq cpi; struct ccb_getdev *cgd; cgd = (struct ccb_getdev *)arg; @@ -380,16 +382,8 @@ } periph->softc = softc; - softc->state = PMP_STATE_PORTS; softc->pm_pid = ((uint32_t *)&cgd->ident_data)[0]; softc->pm_prv = ((uint32_t *)&cgd->ident_data)[1]; - - /* Check if the SIM does not want queued commands */ - bzero(&cpi, sizeof(cpi)); - xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); - TASK_INIT(&softc->sysctl_task, 0, pmpsysctlinit, periph); xpt_announce_periph(periph, NULL); @@ -412,6 +406,8 @@ */ (void)cam_periph_acquire(periph); xpt_hold_boot(); + softc->state = PMP_STATE_PORTS; + softc->events = PMP_EV_RESCAN; xpt_schedule(periph, CAM_PRIORITY_DEV); return(CAM_REQ_CMP); @@ -545,6 +541,7 @@ struct ccb_ataio *ataio; struct cam_path *path, *dpath; u_int32_t priority, res; + int i; softc = (struct pmp_softc *)periph->softc; ataio = &done_ccb->ataio; @@ -570,13 +567,7 @@ if (softc->restart) { softc->restart = 0; - if (softc->state == PMP_STATE_SCAN) { - pmpfreeze(periph, 1 << softc->pm_step); - /* Free the current request path- we're done with it. */ - xpt_free_path(done_ccb->ccb_h.path); - xpt_free_ccb(done_ccb); - } else - xpt_release_ccb(done_ccb); + xpt_release_ccb(done_ccb); softc->state = min(softc->state, PMP_STATE_PRECONFIG); xpt_schedule(periph, priority); return; @@ -726,51 +717,42 @@ xpt_schedule(periph, priority); return; case PMP_STATE_CONFIG: - if (softc->found) { - softc->pm_step = 0; - softc->state = PMP_STATE_SCAN; - xpt_release_ccb(done_ccb); - done_ccb = xpt_alloc_ccb_nowait(); - if (done_ccb == NULL) - goto done1; - goto do_scan; + for (i = 0; i < softc->pm_ports; i++) { + union ccb *ccb; + + if ((softc->found & (1 << i)) == 0) + continue; + if (xpt_create_path(&dpath, periph, + xpt_path_path_id(periph->path), + i, 0) != CAM_REQ_CMP) { + printf("pmpdone: xpt_create_path failed" + ", bus scan halted\n"); + xpt_free_ccb(done_ccb); + goto done; + } + /* If we did hard reset to this device, inform XPT. */ + if ((softc->reset & softc->found & (1 << i)) != 0) + xpt_async(AC_SENT_BDR, dpath, NULL); + /* If rescan requested, scan this device. */ + if (softc->events & PMP_EV_RESCAN) { + ccb = xpt_alloc_ccb_nowait(); + if (ccb == NULL) { + xpt_free_path(dpath); + goto done; + } + xpt_setup_ccb(&ccb->ccb_h, dpath, CAM_PRIORITY_XPT); + xpt_rescan(ccb); + } else + xpt_free_path(dpath); } break; - case PMP_STATE_SCAN: - /* Free the current request path- we're done with it. */ - xpt_free_path(done_ccb->ccb_h.path); - softc->pm_step++; -do_scan: - while (softc->pm_step < softc->pm_ports && - (softc->found & (1 << softc->pm_step)) == 0) { - softc->pm_step++; - } - if (softc->pm_step >= softc->pm_ports) { - xpt_free_ccb(done_ccb); - goto done1; - } - if (xpt_create_path(&dpath, periph, - xpt_path_path_id(periph->path), - softc->pm_step, 0) != CAM_REQ_CMP) { - printf("pmpdone: xpt_create_path failed" - ", bus scan halted\n"); - xpt_free_ccb(done_ccb); - goto done1; - } - xpt_setup_ccb(&done_ccb->ccb_h, dpath, CAM_PRIORITY_XPT); - done_ccb->ccb_h.func_code = XPT_SCAN_LUN; - done_ccb->ccb_h.cbfcnp = pmpdone; - done_ccb->crcn.flags = done_ccb->crcn.flags; - xpt_rescan_direct(done_ccb, 1); - pmprelease(periph, 1 << softc->pm_step); - return; default: break; } done: xpt_release_ccb(done_ccb); -done1: softc->state = PMP_STATE_NORMAL; + softc->events = 0; xpt_release_boot(); pmprelease(periph, -1); cam_periph_release_locked(periph); ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#140 (text+ko) ==== @@ -851,13 +851,6 @@ void xpt_rescan(union ccb *ccb) { - - xpt_rescan_direct(ccb, 0); -} - -void -xpt_rescan_direct(union ccb *ccb, int direct) -{ struct ccb_hdr *hdr; /* Prepare request */ @@ -868,12 +861,6 @@ ccb->ccb_h.ppriv_ptr1 = ccb->ccb_h.cbfcnp; ccb->ccb_h.cbfcnp = xpt_rescan_done; xpt_setup_ccb(&ccb->ccb_h, ccb->ccb_h.path, CAM_PRIORITY_XPT); - /* Execute directly if requested. */ - if (direct) { - xpt_hold_boot(); - xpt_action(ccb); - return; - } /* Don't make duplicate entries for the same paths. */ xpt_lock_buses(); if (ccb->ccb_h.ppriv_ptr1 == NULL) { ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.h#22 (text+ko) ==== @@ -117,7 +117,6 @@ struct cam_periph *xpt_path_periph(struct cam_path *path); void xpt_async(u_int32_t async_code, struct cam_path *path, void *async_arg); -void xpt_rescan_direct(union ccb *ccb, int direct); void xpt_rescan(union ccb *ccb); void xpt_hold_boot(void); void xpt_release_boot(void); From owner-p4-projects@FreeBSD.ORG Tue Jan 19 11:29:14 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F37811065679; Tue, 19 Jan 2010 11:29:13 +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 B80BD1065672 for ; Tue, 19 Jan 2010 11:29:13 +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 579208FC12 for ; Tue, 19 Jan 2010 11:29:13 +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 o0JBTDqo039614 for ; Tue, 19 Jan 2010 11:29:13 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JBTDEQ039612 for perforce@freebsd.org; Tue, 19 Jan 2010 11:29:13 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 11:29:13 GMT Message-Id: <201001191129.o0JBTDEQ039612@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 Precedence: bulk Cc: Subject: PERFORCE change 173359 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 11:29:14 -0000 http://p4web.freebsd.org/chv.cgi?CH=173359 Change 173359 by mav@mav_mavtest on 2010/01/19 11:28:57 Make aprobe restart on new probe request ASAP. It allows to avoid duplicate probes. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#72 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/ata/ata_xpt.c#72 (text+ko) ==== @@ -130,6 +130,7 @@ u_int8_t digest[16]; uint32_t pm_pid; uint32_t pm_prv; + int restart; struct cam_periph *periph; } probe_softc; @@ -243,17 +244,12 @@ static void probeschedule(struct cam_periph *periph) { - struct ccb_pathinq cpi; union ccb *ccb; probe_softc *softc; softc = (probe_softc *)periph->softc; ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); - xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NONE); - cpi.ccb_h.func_code = XPT_PATH_INQ; - xpt_action((union ccb *)&cpi); - if ((periph->path->device->flags & CAM_DEV_UNCONFIGURED) || periph->path->device->protocol == PROTO_SATAPM) PROBE_SET_ACTION(softc, PROBE_RESET); @@ -286,6 +282,14 @@ csio = &start_ccb->csio; ident_buf = &periph->path->device->ident_data; + if (softc->restart) { + softc->restart = 0; + if ((path->device->flags & CAM_DEV_UNCONFIGURED) || + path->device->protocol == PROTO_SATAPM) + softc->action = PROBE_RESET; + else + softc->action = PROBE_IDENTIFY; + } switch (softc->action) { case PROBE_RESET: cam_fill_ataio(ataio, @@ -953,19 +957,23 @@ break; } done: + if (softc->restart) { + softc->restart = 0; + xpt_release_ccb(done_ccb); + probeschedule(periph); + return; + } xpt_release_ccb(done_ccb); - done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs); - TAILQ_REMOVE(&softc->request_ccbs, &done_ccb->ccb_h, periph_links.tqe); - done_ccb->ccb_h.status = found ? CAM_REQ_CMP : CAM_REQ_CMP_ERR; - xpt_done(done_ccb); - if (TAILQ_FIRST(&softc->request_ccbs) == NULL) { - cam_release_devq(periph->path, - RELSIM_RELEASE_RUNLEVEL, 0, CAM_RL_XPT + 1, FALSE); - cam_periph_invalidate(periph); - cam_periph_release_locked(periph); - } else { - probeschedule(periph); + while ((done_ccb = (union ccb *)TAILQ_FIRST(&softc->request_ccbs))) { + TAILQ_REMOVE(&softc->request_ccbs, + &done_ccb->ccb_h, periph_links.tqe); + done_ccb->ccb_h.status = found ? CAM_REQ_CMP : CAM_REQ_CMP_ERR; + xpt_done(done_ccb); } + cam_release_devq(periph->path, + RELSIM_RELEASE_RUNLEVEL, 0, CAM_RL_XPT + 1, FALSE); + cam_periph_invalidate(periph); + cam_periph_release_locked(periph); } static void @@ -1210,6 +1218,7 @@ softc = (probe_softc *)old_periph->softc; TAILQ_INSERT_TAIL(&softc->request_ccbs, &request_ccb->ccb_h, periph_links.tqe); + softc->restart = 1; } else { status = cam_periph_alloc(proberegister, NULL, probecleanup, probestart, "aprobe", From owner-p4-projects@FreeBSD.ORG Tue Jan 19 12:13:58 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 903CE106568B; Tue, 19 Jan 2010 12:13: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 54F08106566B for ; Tue, 19 Jan 2010 12:13:58 +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 42E478FC12 for ; Tue, 19 Jan 2010 12:13: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 o0JCDw2R043862 for ; Tue, 19 Jan 2010 12:13:58 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JCDwTn043860 for perforce@freebsd.org; Tue, 19 Jan 2010 12:13:58 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 12:13:58 GMT Message-Id: <201001191213.o0JCDwTn043860@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 Precedence: bulk Cc: Subject: PERFORCE change 173361 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 12:13:58 -0000 http://p4web.freebsd.org/chv.cgi?CH=173361 Change 173361 by mav@mav_mavtest on 2010/01/19 12:13:44 Add kern.cam.boot_delay tunable, to control time, which CAM will wait for late SIMs (like umass) registration. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#141 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#141 (text+ko) ==== @@ -111,6 +111,9 @@ struct intr_config_hook *xpt_config_hook; + int boot_delay; + struct callout boot_callout; + struct mtx xpt_topo_lock; struct mtx xpt_lock; }; @@ -147,6 +150,10 @@ /* Transport layer configuration information */ static struct xpt_softc xsoftc; +TUNABLE_INT("kern.cam.boot_delay", &xsoftc.boot_delay); +SYSCTL_INT(_kern_cam, OID_AUTO, boot_delay, CTLFLAG_RDTUN, + &xsoftc.boot_delay, 0, "Bus registration wait time"); + /* Queues for our software interrupt handler */ typedef TAILQ_HEAD(cam_isrq, ccb_hdr) cam_isrq_t; typedef TAILQ_HEAD(cam_simq, cam_sim) cam_simq_t; @@ -4659,6 +4666,13 @@ } static void +xpt_boot_delay(void *arg) +{ + + xpt_release_boot(); +} + +static void xpt_config(void *arg) { /* @@ -4696,7 +4710,9 @@ periphdriver_init(1); xpt_hold_boot(); - xpt_release_boot(); + callout_init(&xsoftc.boot_callout, 1); + callout_reset(&xsoftc.boot_callout, hz * xsoftc.boot_delay / 1000, + xpt_boot_delay, NULL); /* Fire up rescan thread. */ if (kproc_create(xpt_scanner_thread, NULL, NULL, 0, 0, "xpt_thrd")) { printf("xpt_init: failed to create rescan thread\n"); From owner-p4-projects@FreeBSD.ORG Tue Jan 19 12:33:18 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 456451065697; Tue, 19 Jan 2010 12:33:18 +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 0A11A1065695 for ; Tue, 19 Jan 2010 12:33:18 +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 EC1788FC14 for ; Tue, 19 Jan 2010 12:33: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 o0JCXHHA045242 for ; Tue, 19 Jan 2010 12:33:17 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JCXHAt045240 for perforce@freebsd.org; Tue, 19 Jan 2010 12:33:17 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 12:33:17 GMT Message-Id: <201001191233.o0JCXHAt045240@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 Precedence: bulk Cc: Subject: PERFORCE change 173362 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 12:33:18 -0000 http://p4web.freebsd.org/chv.cgi?CH=173362 Change 173362 by mav@mav_mavtest on 2010/01/19 12:32:25 Reserve some CCBs, to not allocate in case of error recovery. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_sim.c#13 edit .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#142 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_sim.c#13 (text+ko) ==== @@ -69,7 +69,7 @@ return (NULL); sim = (struct cam_sim *)malloc(sizeof(struct cam_sim), - M_CAMSIM, M_NOWAIT); + M_CAMSIM, M_ZERO | M_NOWAIT); if (sim == NULL) return (NULL); @@ -86,6 +86,7 @@ sim->flags = 0; sim->refcount = 1; sim->devq = queue; + sim->max_ccbs = 8; /* Reserve for management purposes. */ sim->mtx = mtx; if (mtx == &Giant) { sim->flags |= 0; ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#142 (text+ko) ==== @@ -926,8 +926,6 @@ if (xpt_sim == NULL) return (ENOMEM); - xpt_sim->max_ccbs = 16; - mtx_lock(&xsoftc.xpt_lock); if ((status = xpt_bus_register(xpt_sim, NULL, 0)) != CAM_SUCCESS) { mtx_unlock(&xsoftc.xpt_lock); @@ -4435,7 +4433,7 @@ device->mintags = 1; device->maxtags = 1; - bus->sim->max_ccbs = device->ccbq.devq_openings; + bus->sim->max_ccbs += device->ccbq.devq_openings; cur_device = TAILQ_FIRST(&target->ed_entries); while (cur_device != NULL && cur_device->lun_id < lun_id) cur_device = TAILQ_NEXT(cur_device, links); From owner-p4-projects@FreeBSD.ORG Tue Jan 19 12:38:23 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A6FF61065693; Tue, 19 Jan 2010 12:38:23 +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 52C9F106568F for ; Tue, 19 Jan 2010 12:38:23 +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 3F90A8FC18 for ; Tue, 19 Jan 2010 12:38:23 +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 o0JCcN2q045609 for ; Tue, 19 Jan 2010 12:38:23 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JCcMho045607 for perforce@freebsd.org; Tue, 19 Jan 2010 12:38:22 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 12:38:22 GMT Message-Id: <201001191238.o0JCcMho045607@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 Precedence: bulk Cc: Subject: PERFORCE change 173363 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 12:38:23 -0000 http://p4web.freebsd.org/chv.cgi?CH=173363 Change 173363 by mav@mav_mavbook on 2010/01/19 12:38:02 IFC Affected files ... .. //depot/projects/scottl-camlock/src/etc/devd/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/etc/devd/uath.conf#1 branch .. //depot/projects/scottl-camlock/src/lib/libfetch/Makefile#4 integrate .. //depot/projects/scottl-camlock/src/lib/libfetch/http.c#3 integrate .. //depot/projects/scottl-camlock/src/libexec/ftpd/ftpd.c#4 integrate .. //depot/projects/scottl-camlock/src/libexec/ftpd/logwtmp.c#3 integrate .. //depot/projects/scottl-camlock/src/share/examples/kld/cdev/test/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/share/examples/kld/cdev/test/testcdev.c#2 integrate .. //depot/projects/scottl-camlock/src/share/examples/kld/firmware/fwconsumer/fw_consumer.c#2 integrate .. //depot/projects/scottl-camlock/src/share/examples/kld/syscall/test/Makefile#2 integrate .. //depot/projects/scottl-camlock/src/share/examples/kld/syscall/test/call.c#2 integrate .. //depot/projects/scottl-camlock/src/share/mk/bsd.sys.mk#6 integrate .. //depot/projects/scottl-camlock/src/share/zoneinfo/asia#12 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_ioctl.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_ioctl.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/conf/kern.mk#11 integrate .. //depot/projects/scottl-camlock/src/sys/contrib/dev/uath/ar5523.bin.uu#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/usbdevs#41 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_uath.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_vlan.c#27 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_freebsd.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/net80211/ieee80211_var.h#20 integrate Differences ... ==== //depot/projects/scottl-camlock/src/etc/devd/Makefile#2 (text+ko) ==== @@ -1,6 +1,6 @@ -# $FreeBSD: src/etc/devd/Makefile,v 1.3 2009/01/16 20:42:43 sam Exp $ +# $FreeBSD: src/etc/devd/Makefile,v 1.4 2010/01/19 01:33:56 weongyo Exp $ -FILES= asus.conf +FILES= asus.conf uath.conf NO_OBJ= FILESDIR= /etc/devd ==== //depot/projects/scottl-camlock/src/lib/libfetch/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libfetch/Makefile,v 1.52 2009/07/19 17:25:24 kensmith Exp $ +# $FreeBSD: src/lib/libfetch/Makefile,v 1.53 2010/01/19 10:19:55 des Exp $ .include @@ -17,7 +17,9 @@ .if ${MK_OPENSSL} != "no" CFLAGS+= -DWITH_SSL DPADD= ${LIBSSL} ${LIBCRYPTO} -LDADD= -lssl -lcrypto +LDADD= -lssl -lcrypto -lmd +.else +LDADD= -lmd .endif CFLAGS+= -DFTP_COMBINE_CWDS ==== //depot/projects/scottl-camlock/src/lib/libfetch/http.c#3 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libfetch/http.c,v 1.86 2008/12/15 08:27:44 murray Exp $"); +__FBSDID("$FreeBSD: src/lib/libfetch/http.c,v 1.87 2010/01/19 10:19:55 des Exp $"); /* * The following copyright applies to the base64 code: @@ -76,6 +76,7 @@ #include #include #include +#include #include #include @@ -343,7 +344,8 @@ hdr_last_modified, hdr_location, hdr_transfer_encoding, - hdr_www_authenticate + hdr_www_authenticate, + hdr_proxy_authenticate, } hdr_t; /* Names of interesting headers */ @@ -357,6 +359,7 @@ { hdr_location, "Location" }, { hdr_transfer_encoding, "Transfer-Encoding" }, { hdr_www_authenticate, "WWW-Authenticate" }, + { hdr_proxy_authenticate, "Proxy-Authenticate" }, { hdr_unknown, NULL }, }; @@ -446,21 +449,114 @@ return (hdr); } + /* - * Get the next header and return the appropriate symbolic code. + * Get the next header and return the appropriate symbolic code. We + * need to read one line ahead for checking for a continuation line + * belonging to the current header (continuation lines start with + * white space). + * + * We get called with a fresh line already in the conn buffer, either + * from the previous http_next_header() invocation, or, the first + * time, from a fetch_getln() performed by our caller. + * + * This stops when we encounter an empty line (we dont read beyond the header + * area). + * + * Note that the "headerbuf" is just a place to return the result. Its + * contents are not used for the next call. This means that no cleanup + * is needed when ie doing another connection, just call the cleanup when + * fully done to deallocate memory. */ -static hdr_t -http_next_header(conn_t *conn, const char **p) + +/* Limit the max number of continuation lines to some reasonable value */ +#define HTTP_MAX_CONT_LINES 10 + +/* Place into which to build a header from one or several lines */ +typedef struct { + char *buf; /* buffer */ + size_t bufsize; /* buffer size */ + size_t buflen; /* length of buffer contents */ +} http_headerbuf_t; + +static void +init_http_headerbuf(http_headerbuf_t *buf) +{ + buf->buf = NULL; + buf->bufsize = 0; + buf->buflen = 0; +} + +static void +clean_http_headerbuf(http_headerbuf_t *buf) { - int i; + if (buf->buf) + free(buf->buf); + init_http_headerbuf(buf); +} - if (fetch_getln(conn) == -1) - return (hdr_syserror); - while (conn->buflen && isspace((unsigned char)conn->buf[conn->buflen - 1])) +/* Remove whitespace at the end of the buffer */ +static void +http_conn_trimright(conn_t *conn) +{ + while (conn->buflen && + isspace((unsigned char)conn->buf[conn->buflen - 1])) conn->buflen--; conn->buf[conn->buflen] = '\0'; +} + +static hdr_t +http_next_header(conn_t *conn, http_headerbuf_t *hbuf, const char **p) +{ + int i, len; + + /* + * Have to do the stripping here because of the first line. So + * it's done twice for the subsequent lines. No big deal + */ + http_conn_trimright(conn); if (conn->buflen == 0) return (hdr_end); + + /* Copy the line to the headerbuf */ + if (hbuf->bufsize < conn->buflen + 1) { + if ((hbuf->buf = realloc(hbuf->buf, conn->buflen + 1)) == NULL) + return (hdr_syserror); + hbuf->bufsize = conn->buflen + 1; + } + strcpy(hbuf->buf, conn->buf); + hbuf->buflen = conn->buflen; + + /* + * Fetch possible continuation lines. Stop at 1st non-continuation + * and leave it in the conn buffer + */ + for (i = 0; i < HTTP_MAX_CONT_LINES; i++) { + if (fetch_getln(conn) == -1) + return (hdr_syserror); + + /* + * Note: we carry on the idea from the previous version + * that a pure whitespace line is equivalent to an empty + * one (so it's not continuation and will be handled when + * we are called next) + */ + http_conn_trimright(conn); + if (conn->buf[0] != ' ' && conn->buf[0] != "\t"[0]) + break; + + /* Got a continuation line. Concatenate to previous */ + len = hbuf->buflen + conn->buflen; + if (hbuf->bufsize < len + 1) { + len *= 2; + if ((hbuf->buf = realloc(hbuf->buf, len + 1)) == NULL) + return (hdr_syserror); + hbuf->bufsize = len + 1; + } + strcpy(hbuf->buf + hbuf->buflen, conn->buf); + hbuf->buflen += conn->buflen; + } + /* * We could check for malformed headers but we don't really care. * A valid header starts with a token immediately followed by a @@ -468,11 +564,290 @@ * characters except "()<>@,;:\\\"{}". */ for (i = 0; hdr_names[i].num != hdr_unknown; i++) - if ((*p = http_match(hdr_names[i].name, conn->buf)) != NULL) + if ((*p = http_match(hdr_names[i].name, hbuf->buf)) != NULL) return (hdr_names[i].num); + return (hdr_unknown); } +/************************** + * [Proxy-]Authenticate header parsing + */ + +/* + * Read doublequote-delimited string into output buffer obuf (allocated + * by caller, whose responsibility it is to ensure that it's big enough) + * cp points to the first char after the initial '"' + * Handles \ quoting + * Returns pointer to the first char after the terminating double quote, or + * NULL for error. + */ +static const char * +http_parse_headerstring(const char *cp, char *obuf) +{ + for (;;) { + switch (*cp) { + case 0: /* Unterminated string */ + *obuf = 0; + return (NULL); + case '"': /* Ending quote */ + *obuf = 0; + return (++cp); + case '\\': + if (*++cp == 0) { + *obuf = 0; + return (NULL); + } + /* FALLTHROUGH */ + default: + *obuf++ = *cp++; + } + } +} + +/* Http auth challenge schemes */ +typedef enum {HTTPAS_UNKNOWN, HTTPAS_BASIC,HTTPAS_DIGEST} http_auth_schemes_t; + +/* Data holder for a Basic or Digest challenge. */ +typedef struct { + http_auth_schemes_t scheme; + char *realm; + char *qop; + char *nonce; + char *opaque; + char *algo; + int stale; + int nc; /* Nonce count */ +} http_auth_challenge_t; + +static void +init_http_auth_challenge(http_auth_challenge_t *b) +{ + b->scheme = HTTPAS_UNKNOWN; + b->realm = b->qop = b->nonce = b->opaque = b->algo = NULL; + b->stale = b->nc = 0; +} + +static void +clean_http_auth_challenge(http_auth_challenge_t *b) +{ + if (b->realm) + free(b->realm); + if (b->qop) + free(b->qop); + if (b->nonce) + free(b->nonce); + if (b->opaque) + free(b->opaque); + if (b->algo) + free(b->algo); + init_http_auth_challenge(b); +} + +/* Data holder for an array of challenges offered in an http response. */ +#define MAX_CHALLENGES 10 +typedef struct { + http_auth_challenge_t *challenges[MAX_CHALLENGES]; + int count; /* Number of parsed challenges in the array */ + int valid; /* We did parse an authenticate header */ +} http_auth_challenges_t; + +static void +init_http_auth_challenges(http_auth_challenges_t *cs) +{ + int i; + for (i = 0; i < MAX_CHALLENGES; i++) + cs->challenges[i] = NULL; + cs->count = cs->valid = 0; +} + +static void +clean_http_auth_challenges(http_auth_challenges_t *cs) +{ + int i; + /* We rely on non-zero pointers being allocated, not on the count */ + for (i = 0; i < MAX_CHALLENGES; i++) { + if (cs->challenges[i] != NULL) { + clean_http_auth_challenge(cs->challenges[i]); + free(cs->challenges[i]); + } + } + init_http_auth_challenges(cs); +} + +/* + * Enumeration for lexical elements. Separators will be returned as their own + * ascii value + */ +typedef enum {HTTPHL_WORD=256, HTTPHL_STRING=257, HTTPHL_END=258, + HTTPHL_ERROR = 259} http_header_lex_t; + +/* + * Determine what kind of token comes next and return possible value + * in buf, which is supposed to have been allocated big enough by + * caller. Advance input pointer and return element type. + */ +static int +http_header_lex(const char **cpp, char *buf) +{ + size_t l; + /* Eat initial whitespace */ + *cpp += strspn(*cpp, " \t"); + if (**cpp == 0) + return (HTTPHL_END); + + /* Separator ? */ + if (**cpp == ',' || **cpp == '=') + return (*((*cpp)++)); + + /* String ? */ + if (**cpp == '"') { + *cpp = http_parse_headerstring(++*cpp, buf); + if (*cpp == NULL) + return (HTTPHL_ERROR); + return (HTTPHL_STRING); + } + + /* Read other token, until separator or whitespace */ + l = strcspn(*cpp, " \t,="); + memcpy(buf, *cpp, l); + buf[l] = 0; + *cpp += l; + return (HTTPHL_WORD); +} + +/* + * Read challenges from http xxx-authenticate header and accumulate them + * in the challenges list structure. + * + * Headers with multiple challenges are specified by rfc2617, but + * servers (ie: squid) often send them in separate headers instead, + * which in turn is forbidden by the http spec (multiple headers with + * the same name are only allowed for pure comma-separated lists, see + * rfc2616 sec 4.2). + * + * We support both approaches anyway + */ +static int +http_parse_authenticate(const char *cp, http_auth_challenges_t *cs) +{ + int ret = -1; + http_header_lex_t lex; + char *key = malloc(strlen(cp) + 1); + char *value = malloc(strlen(cp) + 1); + char *buf = malloc(strlen(cp) + 1); + + if (key == NULL || value == NULL || buf == NULL) { + fetch_syserr(); + goto out; + } + + /* In any case we've seen the header and we set the valid bit */ + cs->valid = 1; + + /* Need word first */ + lex = http_header_lex(&cp, key); + if (lex != HTTPHL_WORD) + goto out; + + /* Loop on challenges */ + for (; cs->count < MAX_CHALLENGES; cs->count++) { + cs->challenges[cs->count] = + malloc(sizeof(http_auth_challenge_t)); + if (cs->challenges[cs->count] == NULL) { + fetch_syserr(); + goto out; + } + init_http_auth_challenge(cs->challenges[cs->count]); + if (!strcasecmp(key, "basic")) { + cs->challenges[cs->count]->scheme = HTTPAS_BASIC; + } else if (!strcasecmp(key, "digest")) { + cs->challenges[cs->count]->scheme = HTTPAS_DIGEST; + } else { + cs->challenges[cs->count]->scheme = HTTPAS_UNKNOWN; + /* + * Continue parsing as basic or digest may + * follow, and the syntax is the same for + * all. We'll just ignore this one when + * looking at the list + */ + } + + /* Loop on attributes */ + for (;;) { + /* Key */ + lex = http_header_lex(&cp, key); + if (lex != HTTPHL_WORD) + goto out; + + /* Equal sign */ + lex = http_header_lex(&cp, buf); + if (lex != '=') + goto out; + + /* Value */ + lex = http_header_lex(&cp, value); + if (lex != HTTPHL_WORD && lex != HTTPHL_STRING) + goto out; + + if (!strcasecmp(key, "realm")) + cs->challenges[cs->count]->realm = + strdup(value); + else if (!strcasecmp(key, "qop")) + cs->challenges[cs->count]->qop = + strdup(value); + else if (!strcasecmp(key, "nonce")) + cs->challenges[cs->count]->nonce = + strdup(value); + else if (!strcasecmp(key, "opaque")) + cs->challenges[cs->count]->opaque = + strdup(value); + else if (!strcasecmp(key, "algorithm")) + cs->challenges[cs->count]->algo = + strdup(value); + else if (!strcasecmp(key, "stale")) + cs->challenges[cs->count]->stale = + strcasecmp(value, "no"); + /* Else ignore unknown attributes */ + + /* Comma or Next challenge or End */ + lex = http_header_lex(&cp, key); + /* + * If we get a word here, this is the beginning of the + * next challenge. Break the attributes loop + */ + if (lex == HTTPHL_WORD) + break; + + if (lex == HTTPHL_END) { + /* End while looking for ',' is normal exit */ + cs->count++; + ret = 0; + goto out; + } + /* Anything else is an error */ + if (lex != ',') + goto out; + + } /* End attributes loop */ + } /* End challenge loop */ + + /* + * Challenges max count exceeded. This really can't happen + * with normal data, something's fishy -> error + */ + +out: + if (key) + free(key); + if (value) + free(value); + if (buf) + free(buf); + return (ret); +} + + /* * Parse a last-modified header */ @@ -618,6 +993,291 @@ return (str); } + +/* + * Extract authorization parameters from environment value. + * The value is like scheme:realm:user:pass + */ +typedef struct { + char *scheme; + char *realm; + char *user; + char *password; +} http_auth_params_t; + +static void +init_http_auth_params(http_auth_params_t *s) +{ + s->scheme = s->realm = s->user = s->password = 0; +} + +static void +clean_http_auth_params(http_auth_params_t *s) +{ + if (s->scheme) + free(s->scheme); + if (s->realm) + free(s->realm); + if (s->user) + free(s->user); + if (s->password) + free(s->password); + init_http_auth_params(s); +} + +static int +http_authfromenv(const char *p, http_auth_params_t *parms) +{ + int ret = -1; + char *v, *ve; + char *str = strdup(p); + + if (str == NULL) { + fetch_syserr(); + return (-1); + } + v = str; + + if ((ve = strchr(v, ':')) == NULL) + goto out; + + *ve = 0; + if ((parms->scheme = strdup(v)) == NULL) { + fetch_syserr(); + goto out; + } + v = ve + 1; + + if ((ve = strchr(v, ':')) == NULL) + goto out; + + *ve = 0; + if ((parms->realm = strdup(v)) == NULL) { + fetch_syserr(); + goto out; + } + v = ve + 1; + + if ((ve = strchr(v, ':')) == NULL) + goto out; + + *ve = 0; + if ((parms->user = strdup(v)) == NULL) { + fetch_syserr(); + goto out; + } + v = ve + 1; + + + if ((parms->password = strdup(v)) == NULL) { + fetch_syserr(); + goto out; + } + ret = 0; +out: + if (ret == -1) + clean_http_auth_params(parms); + if (str) + free(str); + return (ret); +} + + +/* + * Digest response: the code to compute the digest is taken from the + * sample implementation in RFC2616 + */ +#define IN +#define OUT + +#define HASHLEN 16 +typedef char HASH[HASHLEN]; +#define HASHHEXLEN 32 +typedef char HASHHEX[HASHHEXLEN+1]; + +static const char *hexchars = "0123456789abcdef"; +static void +CvtHex(IN HASH Bin, OUT HASHHEX Hex) +{ + unsigned short i; + unsigned char j; + + for (i = 0; i < HASHLEN; i++) { + j = (Bin[i] >> 4) & 0xf; + Hex[i*2] = hexchars[j]; + j = Bin[i] & 0xf; + Hex[i*2+1] = hexchars[j]; + }; + Hex[HASHHEXLEN] = '\0'; +}; + +/* calculate H(A1) as per spec */ +static void +DigestCalcHA1( + IN char * pszAlg, + IN char * pszUserName, + IN char * pszRealm, + IN char * pszPassword, + IN char * pszNonce, + IN char * pszCNonce, + OUT HASHHEX SessionKey + ) +{ + MD5_CTX Md5Ctx; + HASH HA1; + + MD5Init(&Md5Ctx); + MD5Update(&Md5Ctx, pszUserName, strlen(pszUserName)); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszRealm, strlen(pszRealm)); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszPassword, strlen(pszPassword)); + MD5Final(HA1, &Md5Ctx); + if (strcasecmp(pszAlg, "md5-sess") == 0) { + + MD5Init(&Md5Ctx); + MD5Update(&Md5Ctx, HA1, HASHLEN); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); + MD5Final(HA1, &Md5Ctx); + }; + CvtHex(HA1, SessionKey); +} + +/* calculate request-digest/response-digest as per HTTP Digest spec */ +static void +DigestCalcResponse( + IN HASHHEX HA1, /* H(A1) */ + IN char * pszNonce, /* nonce from server */ + IN char * pszNonceCount, /* 8 hex digits */ + IN char * pszCNonce, /* client nonce */ + IN char * pszQop, /* qop-value: "", "auth", "auth-int" */ + IN char * pszMethod, /* method from the request */ + IN char * pszDigestUri, /* requested URL */ + IN HASHHEX HEntity, /* H(entity body) if qop="auth-int" */ + OUT HASHHEX Response /* request-digest or response-digest */ + ) +{ +/* DEBUG(fprintf(stderr, + "Calc: HA1[%s] Nonce[%s] qop[%s] method[%s] URI[%s]\n", + HA1, pszNonce, pszQop, pszMethod, pszDigestUri));*/ + MD5_CTX Md5Ctx; + HASH HA2; + HASH RespHash; + HASHHEX HA2Hex; + + // calculate H(A2) + MD5Init(&Md5Ctx); + MD5Update(&Md5Ctx, pszMethod, strlen(pszMethod)); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszDigestUri, strlen(pszDigestUri)); + if (strcasecmp(pszQop, "auth-int") == 0) { + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, HEntity, HASHHEXLEN); + }; + MD5Final(HA2, &Md5Ctx); + CvtHex(HA2, HA2Hex); + + // calculate response + MD5Init(&Md5Ctx); + MD5Update(&Md5Ctx, HA1, HASHHEXLEN); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszNonce, strlen(pszNonce)); + MD5Update(&Md5Ctx, ":", 1); + if (*pszQop) { + MD5Update(&Md5Ctx, pszNonceCount, strlen(pszNonceCount)); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszCNonce, strlen(pszCNonce)); + MD5Update(&Md5Ctx, ":", 1); + MD5Update(&Md5Ctx, pszQop, strlen(pszQop)); + MD5Update(&Md5Ctx, ":", 1); + }; + MD5Update(&Md5Ctx, HA2Hex, HASHHEXLEN); + MD5Final(RespHash, &Md5Ctx); + CvtHex(RespHash, Response); +} + +/* + * Generate/Send a Digest authorization header + * This looks like: [Proxy-]Authorization: credentials + * + * credentials = "Digest" digest-response + * digest-response = 1#( username | realm | nonce | digest-uri + * | response | [ algorithm ] | [cnonce] | + * [opaque] | [message-qop] | + * [nonce-count] | [auth-param] ) + * username = "username" "=" username-value + * username-value = quoted-string + * digest-uri = "uri" "=" digest-uri-value + * digest-uri-value = request-uri ; As specified by HTTP/1.1 + * message-qop = "qop" "=" qop-value + * cnonce = "cnonce" "=" cnonce-value + * cnonce-value = nonce-value + * nonce-count = "nc" "=" nc-value + * nc-value = 8LHEX + * response = "response" "=" request-digest + * request-digest = <"> 32LHEX <"> + */ +static int +http_digest_auth(conn_t *conn, const char *hdr, http_auth_challenge_t *c, + http_auth_params_t *parms, struct url *url) +{ + int r; + char noncecount[10]; + char cnonce[40]; + char *options = 0; + + if (!c->realm || !c->nonce) { + DEBUG(fprintf(stderr, "realm/nonce not set in challenge\n")); + return(-1); + } + if (!c->algo) + c->algo = strdup(""); + + if (asprintf(&options, "%s%s%s%s", + *c->algo? ",algorithm=" : "", c->algo, + c->opaque? ",opaque=" : "", c->opaque?c->opaque:"")== -1) + return (-1); + + if (!c->qop) { + c->qop = strdup(""); + *noncecount = 0; + *cnonce = 0; + } else { + c->nc++; + sprintf(noncecount, "%08x", c->nc); + /* We don't try very hard with the cnonce ... */ + sprintf(cnonce, "%x%lx", getpid(), (unsigned long)time(0)); + } + + HASHHEX HA1; + DigestCalcHA1(c->algo, parms->user, c->realm, + parms->password, c->nonce, cnonce, HA1); + DEBUG(fprintf(stderr, "HA1: [%s]\n", HA1)); + HASHHEX digest; + DigestCalcResponse(HA1, c->nonce, noncecount, cnonce, c->qop, + "GET", url->doc, "", digest); + + if (c->qop[0]) { + r = http_cmd(conn, "%s: Digest username=\"%s\",realm=\"%s\"," + "nonce=\"%s\",uri=\"%s\",response=\"%s\"," + "qop=\"auth\", cnonce=\"%s\", nc=%s%s", + hdr, parms->user, c->realm, + c->nonce, url->doc, digest, + cnonce, noncecount, options); + } else { + r = http_cmd(conn, "%s: Digest username=\"%s\",realm=\"%s\"," + "nonce=\"%s\",uri=\"%s\",response=\"%s\"%s", + hdr, parms->user, c->realm, + c->nonce, url->doc, digest, options); + } + if (options) + free(options); + return (r); +} + /* * Encode username and password */ @@ -627,8 +1287,8 @@ char *upw, *auth; int r; - DEBUG(fprintf(stderr, "usr: [%s]\n", usr)); - DEBUG(fprintf(stderr, "pwd: [%s]\n", pwd)); + DEBUG(fprintf(stderr, "basic: usr: [%s]\n", usr)); + DEBUG(fprintf(stderr, "basic: pwd: [%s]\n", pwd)); if (asprintf(&upw, "%s:%s", usr, pwd) == -1) return (-1); auth = http_base64(upw); @@ -641,34 +1301,50 @@ } /* - * Send an authorization header + * Chose the challenge to answer and call the appropriate routine to + * produce the header. */ static int -http_authorize(conn_t *conn, const char *hdr, const char *p) +http_authorize(conn_t *conn, const char *hdr, http_auth_challenges_t *cs, + http_auth_params_t *parms, struct url *url) { - /* basic authorization */ - if (strncasecmp(p, "basic:", 6) == 0) { - char *user, *pwd, *str; - int r; + http_auth_challenge_t *basic = NULL; + http_auth_challenge_t *digest = NULL; + int i; + + /* If user or pass are null we're not happy */ + if (!parms->user || !parms->password) { + DEBUG(fprintf(stderr, "NULL usr or pass\n")); + return (-1); + } + + /* Look for a Digest and a Basic challenge */ + for (i = 0; i < cs->count; i++) { + if (cs->challenges[i]->scheme == HTTPAS_BASIC) + basic = cs->challenges[i]; + if (cs->challenges[i]->scheme == HTTPAS_DIGEST) + digest = cs->challenges[i]; + } - /* skip realm */ - for (p += 6; *p && *p != ':'; ++p) - /* nothing */ ; - if (!*p || strchr(++p, ':') == NULL) - return (-1); - if ((str = strdup(p)) == NULL) - return (-1); /* XXX */ - user = str; - pwd = strchr(str, ':'); - *pwd++ = '\0'; - r = http_basic_auth(conn, hdr, user, pwd); - free(str); - return (r); + /* Error if "Digest" was specified and there is no Digest challenge */ + if (!digest && (parms->scheme && + !strcasecmp(parms->scheme, "digest"))) { + DEBUG(fprintf(stderr, + "Digest auth in env, not supported by peer\n")); + return (-1); } - return (-1); + /* + * If "basic" was specified in the environment, or there is no Digest + * challenge, do the basic thing. Don't need a challenge for this, + * so no need to check basic!=NULL + */ + if (!digest || (parms->scheme && !strcasecmp(parms->scheme,"basic"))) + return (http_basic_auth(conn,hdr,parms->user,parms->password)); + + /* Else, prefer digest. We just checked that it's not NULL */ + return (http_digest_auth(conn, hdr, digest, parms, url)); } - /***************************************************************************** * Helper functions for connecting to a server or proxy */ @@ -797,13 +1473,13 @@ */ FILE * http_request(struct url *URL, const char *op, struct url_stat *us, - struct url *purl, const char *flags) + struct url *purl, const char *flags) { char timebuf[80]; char hbuf[MAXHOSTNAMELEN + 7], *host; conn_t *conn; struct url *url, *new; - int chunked, direct, ims, need_auth, noredirect, verbose; + int chunked, direct, ims, noredirect, verbose; int e, i, n, val; off_t offset, clength, length, size; time_t mtime; @@ -811,6 +1487,14 @@ FILE *f; hdr_t h; struct tm *timestruct; + http_headerbuf_t headerbuf; + http_auth_challenges_t server_challenges; + http_auth_challenges_t proxy_challenges; + + /* The following calls don't allocate anything */ + init_http_headerbuf(&headerbuf); + init_http_auth_challenges(&server_challenges); + init_http_auth_challenges(&proxy_challenges); direct = CHECK_FLAG('d'); noredirect = CHECK_FLAG('A'); @@ -830,7 +1514,6 @@ i = 0; e = HTTP_PROTOCOL_ERROR; - need_auth = 0; do { new = NULL; chunked = 0; @@ -895,27 +1578,67 @@ /* virtual host */ http_cmd(conn, "Host: %s", host); - /* proxy authorization */ - if (purl) { - if (*purl->user || *purl->pwd) - http_basic_auth(conn, "Proxy-Authorization", - purl->user, purl->pwd); - else if ((p = getenv("HTTP_PROXY_AUTH")) != NULL && *p != '\0') - http_authorize(conn, "Proxy-Authorization", p); + /* + * Proxy authorization: we only send auth after we received + * a 407 error. We do not first try basic anyway (changed + * when support was added for digest-auth) + */ + if (purl && proxy_challenges.valid) { + http_auth_params_t aparams; + init_http_auth_params(&aparams); + if (*purl->user || *purl->pwd) { + aparams.user = purl->user ? + strdup(purl->user) : strdup(""); + aparams.password = purl->pwd? + strdup(purl->pwd) : strdup(""); + } else if ((p = getenv("HTTP_PROXY_AUTH")) != NULL && + *p != '\0') { + if (http_authfromenv(p, &aparams) < 0) { + http_seterr(HTTP_NEED_PROXY_AUTH); + goto ouch; + } + } + http_authorize(conn, "Proxy-Authorization", + &proxy_challenges, &aparams, url); + clean_http_auth_params(&aparams); } - /* server authorization */ - if (need_auth || *url->user || *url->pwd) { - if (*url->user || *url->pwd) - http_basic_auth(conn, "Authorization", url->user, url->pwd); - else if ((p = getenv("HTTP_AUTH")) != NULL && *p != '\0') - http_authorize(conn, "Authorization", p); - else if (fetchAuthMethod && fetchAuthMethod(url) == 0) { - http_basic_auth(conn, "Authorization", url->user, url->pwd); + /* + * Server authorization: we never send "a priori" + * Basic auth, which used to be done if user/pass were + * set in the url. This would be weird because we'd send the + * password in the clear even if Digest is finally to be + * used (it would have made more sense for the + * pre-digest version to do this when Basic was specified + * in the environment) + */ + if (server_challenges.valid) { + http_auth_params_t aparams; + init_http_auth_params(&aparams); + if (*url->user || *url->pwd) { + aparams.user = url->user ? + strdup(url->user) : strdup(""); + aparams.password = url->pwd ? + strdup(url->pwd) : strdup(""); + } else if ((p = getenv("HTTP_AUTH")) != NULL && + *p != '\0') { + if (http_authfromenv(p, &aparams) < 0) { + http_seterr(HTTP_NEED_AUTH); + goto ouch; + } + } else if (fetchAuthMethod && + fetchAuthMethod(url) == 0) { + aparams.user = url->user ? + strdup(url->user) : strdup(""); >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Tue Jan 19 14:45:31 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3AE0F1065694; Tue, 19 Jan 2010 14:45: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 E9AD1106568D for ; Tue, 19 Jan 2010 14:45:30 +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 D84528FC0C for ; Tue, 19 Jan 2010 14:45: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 o0JEjU1C068306 for ; Tue, 19 Jan 2010 14:45:30 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JEjUxS068304 for perforce@freebsd.org; Tue, 19 Jan 2010 14:45:30 GMT (envelope-from mav@freebsd.org) Date: Tue, 19 Jan 2010 14:45:30 GMT Message-Id: <201001191445.o0JEjUxS068304@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 Precedence: bulk Cc: Subject: PERFORCE change 173369 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 14:45:31 -0000 http://p4web.freebsd.org/chv.cgi?CH=173369 Change 173369 by mav@mav_mavtest on 2010/01/19 14:44:49 Clear CAM_DEV_QFRZN after it was handled. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#48 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_periph.c#48 (text+ko) ==== @@ -934,12 +934,14 @@ } while (error == ERESTART); - if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) + if ((ccb->ccb_h.status & CAM_DEV_QFRZN) != 0) { cam_release_devq(ccb->ccb_h.path, /* relsim_flags */0, /* openings */0, /* timeout */0, /* getcount_only */ FALSE); + ccb->ccb_h.status &= ~CAM_DEV_QFRZN; + } if (ds != NULL) { if (ccb->ccb_h.func_code == XPT_SCSI_IO) { From owner-p4-projects@FreeBSD.ORG Tue Jan 19 15:35:21 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5148F1065696; Tue, 19 Jan 2010 15:35: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 156151065694 for ; Tue, 19 Jan 2010 15:35:21 +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 039F18FC12 for ; Tue, 19 Jan 2010 15:35: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 o0JFZKdP072926 for ; Tue, 19 Jan 2010 15:35:20 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JFZKEO072924 for perforce@freebsd.org; Tue, 19 Jan 2010 15:35:20 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 19 Jan 2010 15:35:20 GMT Message-Id: <201001191535.o0JFZKEO072924@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 Precedence: bulk Cc: Subject: PERFORCE change 173371 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 15:35:21 -0000 http://p4web.freebsd.org/chv.cgi?CH=173371 Change 173371 by hselasky@hselasky_laptop001 on 2010/01/19 15:35:18 USB quirk: - add another quirk PR: usb/142957 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#17 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#100 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#17 (text+ko) ==== @@ -175,6 +175,7 @@ UQ_MSC_FORCE_PROTO_SCSI), USB_QUIRK(DMI, CFSM_RW, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN), + USB_QUIRK(DMI, DISK, 0x000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(EPSON, STYLUS_875DC, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY), USB_QUIRK(EPSON, STYLUS_895, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#100 (text+ko) ==== @@ -1336,6 +1336,7 @@ /* DMI products */ product DMI CFSM_RW 0xa109 CF/SM Reader/Writer +product DMI DISK 0x2bcf Generic Disk /* DrayTek products */ product DRAYTEK VIGOR550 0x0550 Vigor550 @@ -3102,4 +3103,4 @@ product ZYXEL M202 0x340a M-202 product ZYXEL G220V2 0x340f G-220 v2 product ZYXEL G202 0x3410 G-202 -product ZYXEL RT2870_1 0x3416 RT2870+product ZYXEL RT2870_1 0x3416 RT2870 From owner-p4-projects@FreeBSD.ORG Wed Jan 20 13:49:38 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2002E1065676; Wed, 20 Jan 2010 13:49:38 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D8AB1106566B for ; Wed, 20 Jan 2010 13:49:37 +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 C5F748FC08 for ; Wed, 20 Jan 2010 13:49: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 o0KDnb4B058512 for ; Wed, 20 Jan 2010 13:49:37 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0KDnbUK058510 for perforce@freebsd.org; Wed, 20 Jan 2010 13:49:37 GMT (envelope-from pgj@FreeBSD.org) Date: Wed, 20 Jan 2010 13:49:37 GMT Message-Id: <201001201349.o0KDnbUK058510@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 Precedence: bulk Cc: Subject: PERFORCE change 173407 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jan 2010 13:49:38 -0000 http://p4web.freebsd.org/chv.cgi?CH=173407 Change 173407 by pgj@Binturong on 2010/01/20 13:49:31 IFC Affected files ... .. //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/hardware/article.sgml#18 integrate .. //depot/projects/docproj_hu/src_7/release/doc/en_US.ISO8859-1/hardware/article.sgml#8 integrate .. //depot/projects/docproj_hu/www/en/events/Makefile#4 integrate .. //depot/projects/docproj_hu/www/en/projects/mips/index.sgml#2 integrate .. //depot/projects/docproj_hu/www/hu/share/sgml/news.xml#76 integrate Differences ... ==== //depot/projects/docproj_hu/src/release/doc/en_US.ISO8859-1/hardware/article.sgml#18 (text+ko) ==== @@ -17,7 +17,7 @@ The &os; Documentation Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/article.sgml,v 1.357 2010/01/16 20:51:33 marius Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/article.sgml,v 1.358 2010/01/19 22:44:29 brueffer Exp $ 2000 @@ -979,138 +979,6 @@ &hwlist.cm; - - ISDN Interfaces - - [&arch.i386;] AcerISDN P10 ISA PnP (experimental) - - [&arch.i386;] Asuscom ISDNlink 128K ISA - - [&arch.i386;] ASUSCOM P-IN100-ST-D (and other Winbond - W6692-based cards) - - [&arch.i386;] AVM - - - - A1 - - - - B1 ISA (tested with V2.0) - - - - B1 PCI (tested with V4.0) - - - - Fritz!Card classic - - - - Fritz!Card PnP - - - - Fritz!Card PCI - - - - Fritz!Card PCI, Version 2 - - - - T1 - - - - [&arch.i386;] Creatix - - - - ISDN-S0 - - - - ISDN-S0 P&P - - - - [&arch.i386;] Compaq Microcom 610 ISDN (Compaq series - PSB2222I) ISA PnP - - [&arch.i386;] Dr. Neuhaus Niccy Go@ and compatibles - - [&arch.i386;] Dynalink IS64PPH and IS64PPH+ - - [&arch.i386;] Eicon Diehl DIVA 2.0 and 2.02 - - [&arch.i386;] ELSA - - - - ELSA PCC-16 - - - - QuickStep 1000pro ISA - - - - MicroLink ISDN/PCI - - - - QuickStep 1000pro PCI - - - - [&arch.i386;] ITK ix1 Micro ( < V.3, non-PnP version - ) - - [&arch.i386;] Sedlbauer Win Speed - - [&arch.i386;] Siemens I-Surf 2.0 - - [&arch.i386;] TELEINT ISDN SPEED No.1 - (experimental) - - [&arch.i386;] Teles - - - - S0/8 - - - - S0/16 - - - - S0/16.3 - - - - S0/16.3 PnP - - - - 16.3c ISA PnP (experimental) - - - - Teles PCI-TJ - - - - [&arch.i386;] Traverse Technologies NETjet-S PCI - - [&arch.i386;] USRobotics Sportster ISDN TA intern - - [&arch.i386;] Winbond W6692 based PCI cards - - Serial Interfaces ==== //depot/projects/docproj_hu/src_7/release/doc/en_US.ISO8859-1/hardware/article.sgml#8 (text+ko) ==== @@ -18,7 +18,7 @@ The &os; Documentation Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/article.sgml,v 1.326.2.9 2009/09/20 12:19:21 marius Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/article.sgml,v 1.326.2.11 2010/01/19 22:09:45 marius Exp $ 2000 @@ -464,13 +464,27 @@ &sun.blade; 2000 + &sun.blade; 2500 + + &sun.fire; 280R &sun.fire; V210 - &sun.fire; V440 (except for the on-board NICs) + &sun.fire; V215 (support first appeared in 7.3-RELEASE) + + + &sun.fire; V250 + + + &sun.fire; V440 (support for the on-board NICs first + appeared in 7.3-RELEASE and 8.0-RELEASE) + + + &sun.fire; V480 (501-6780 and 501-6790 centerplanes only, for + which support first appeared in 7.3-RELEASE) &sun.fire; V880 @@ -490,6 +504,9 @@ &sun.fire; V240 + + &sun.fire; V245 (support first appeared in 7.3-RELEASE) + ==== //depot/projects/docproj_hu/www/en/events/Makefile#4 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: www/en/events/Makefile,v 1.17 2008/12/15 02:50:38 murray Exp $ +# $FreeBSD: www/en/events/Makefile,v 1.18 2010/01/19 20:29:00 hrs Exp $ .if exists(../Makefile.conf) .include "../Makefile.conf" @@ -11,9 +11,9 @@ SUBDIR+= 2003 # The year the top level events.html file starts from: -YEARSTART= 2008 +YEARSTART= 2009 # Years to generate past events pages for and link from top level: -PASTYEARS= 2003 2004 2005 2006 2007 +PASTYEARS= 2009 2008 2007 2006 2005 2004 2003 DATA= events.css INDEXLINK= events.html @@ -27,7 +27,7 @@ XMLDOCS+= events${year}:${XSL_EVENTS_PAST}:${XML_EVENTS_EVENTS}: PARAMS.events${year}= --param year ${year} PARAMS.events${year}+= --stringparam pastyears '${PASTYEARS}' -DEPENDSET.events${year}= events${year} +DEPENDSET.events${year}= events .endfor XMLDOCS+= events_ics:${XSL_EVENTS_ICS}:${XML_EVENTS_EVENTS}:events.ics ==== //depot/projects/docproj_hu/www/en/projects/mips/index.sgml#2 (text+ko) ==== @@ -1,13 +1,11 @@ - + %developers; - - @@ -31,35 +29,17 @@ Project Goal -

                The FreeBSD/MIPS Project aims to port FreeBSD to - MIPS R4000 and newer processors, with support for both desktop - platforms (e.g. SGI MIPS) and embedded systems. The ideal is for - it to be as clean of a port as possible, with as few historical - mistakes as are required, and to provide ports to major platforms - where it makes sense for FreeBSD to maintain them, while providing - a good "working base" for any third-party vendors to build their - own platforms on top of FreeBSD/MIPS.

                +

                The FreeBSD/MIPS Project is responsible for the + maintenance and development of FreeBSD on platforms using MIPS + processors. The port currently runs multi-user on a number of + platforms and a wide variety of processors.

                - Project Plan - -

                Initially, development is being done in the FreeBSD - Perforce repository, but once the port has reached a relatively - working state, it will be merged into the FreeBSD CURRENT branch. - Changes made which are not MIPS specific but which are required - for the port should be merged in gradually over time.

                - How to Contribute -

                The project is always looking for additional contributors. If you - wish to participate, the best way to find out what is happening - is to subscribe to the freebsd-mips - mailing list. If you are working on a specific task - relating to the project, you should contact - jmallett@FreeBSD.org with a - description of the task so that your task can be listed - below.

                +

                If you have code that you are interested in comitting, + you can send it for review to the freebsd-mips + mailing list.

                Resources and Links @@ -87,68 +67,33 @@ - Update contrib bits for toolchain. - &a.jmallett; - 08 November 2002 + Commit the port to Subversion. + &a.imp; + 13 April 2008 &status.done; - Add toolchain glue for FreeBSD/MIPS. - &a.jmallett; - 08 November 2002 - &status.done; + Commit support and infrastructure for a multiprocessor port. + &a.imp; / &a.rrs; + ??? + &status.wip; - Merge ARCBIOS kernel driver from NetBSD. - &a.jwojdacki; - 08 November 2002 - &status.done; + n32 and n64 ABI support. + &a.imp; + ??? + &status.wip; - Write a GEOM module for SGI fx-labelled disks. - &a.jmallett; - 08 February 2003 - &status.done; - - - - Fill in stub kernel headers. - &a.jmallett; - 13 February 2003 - &status.done; - - - - Fill in stubs for all MD functions. - &a.jmallett; - 14 February 2003 - &status.done; - - - - Get a kernel booting on real hardware. - &a.jmallett; - 14 February 2003 + Commit support and infrastructure for a 64-bit port. + &a.imp; + ??? &status.wip; - - Merge FreeBSD/MIPS configuration into FSF GCC tree. - - 08 November 2002 - &status.new; - - - - Flesh out loader(8)'s ARC support. - - 08 November 2002 - &status.new; - - @@ -34,7 +34,6 @@ @@ -52,11 +51,6 @@
              -

              Hardverlista

              - -

              A támogatott processzorok listája a &os;/i386 Hardverjegyzékében található.

              -

              Kapcsolódó linkek

                ==== //depot/projects/docproj_hu/www/hu/share/sgml/events.xml#25 (text+ko) ==== @@ -11,7 +11,7 @@ @@ -196,6 +196,30 @@ egyaránt. + + OpenExpo 2010 + http://www.openexpo.ch/ + + 2010 + 3 + 24 + + + 2010 + 3 + 25 + + + Svájc + Bern + + Az OpenExpo célja a nyílt + forráskódú szoftverek hirdetése + üzleti felhasználásban. Több más + név mellett a &os; is képviselteti magát ezen + a rendezvényen. + + Solutions Linux 2010 http://www.solutionslinux.fr/ @@ -257,6 +281,34 @@ népszerûsítését. + + SCALE: Southern California Linux Expo 2010 + http://www.socallinuxexpo.org/ + + 2010 + 2 + 19 + + + 2010 + 2 + 21 + + + Egyesült Államok + Kalifornia + Los Angeles + Westin Los Angeles reptér + + Az idén februárjában + nyolcadjára megrendezésre kerülõ + Délkelet-Kaliforniai Linux Expon a &os; Projekt is + résztvesz. Ennek keretében többek közt + Dru Lavigne tart egy rövid elõadást a + BSD-rõl Linux felhasználók + számára. + + FOSDEM '10 http://fosdem.org/2010/ ==== //depot/projects/docproj_hu/www/hu/where.sgml#20 (text+ko) ==== @@ -8,7 +8,7 @@ @@ -118,64 +118,46 @@ &os; &rel2.current;-RELEASE - [Megtekint] - [Megtekint] - [Megtekint] - [Megtekint] - - - - alpha - [Disztribúció] - [ISO] - [Megtekint] - [Megtekint] - [Megtekint] + [Megtekint] + [Megtekint] + [Megtekint] + [Megtekint] amd64 [Disztribúció] [ISO] - [Megtekint] - [Megtekint] - [Megtekint] - + i386 - [Disztribúció] + [Disztribúció] [ISO] - [Megtekint] - [Megtekint] - [Megtekint] ia64 [Disztribúció] [ISO] - [Megtekint] - [Megtekint] - [Megtekint] pc98 [Disztribúció] [ISO] - [Megtekint] - [Megtekint] - [Megtekint] + + + + powerpc + [Disztribúció] + [ISO] sparc64 [Disztribúció] [ISO] - [Megtekint] - [Megtekint] - [Megtekint] From owner-p4-projects@FreeBSD.ORG Fri Jan 22 17:27:56 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 352261065698; Fri, 22 Jan 2010 17:27: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 EDA131065692 for ; Fri, 22 Jan 2010 17:27:55 +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 DAD5E8FC1D for ; Fri, 22 Jan 2010 17:27: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 o0MHRtUp087581 for ; Fri, 22 Jan 2010 17:27:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MHRtoI087579 for perforce@freebsd.org; Fri, 22 Jan 2010 17:27:55 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 22 Jan 2010 17:27:55 GMT Message-Id: <201001221727.o0MHRtoI087579@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 Precedence: bulk Cc: Subject: PERFORCE change 173522 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 17:27:56 -0000 http://p4web.freebsd.org/chv.cgi?CH=173522 Change 173522 by hselasky@hselasky_laptop001 on 2010/01/22 17:27:00 USB quirks: - add missing NULL pointer check. - fixes some panics. - patch by HPS Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#18 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#18 (text+ko) ==== @@ -681,6 +681,8 @@ mtx_lock(&usb_quirk_mtx); pqe = usb_quirk_get_entry(pgq->vid, pgq->pid, pgq->bcdDeviceLow, pgq->bcdDeviceHigh, 1); + if (pqe == NULL) + return (EINVAL); for (x = 0; x != USB_SUB_QUIRKS_MAX; x++) { if (pqe->quirks[x] == UQ_NONE) { pqe->quirks[x] = y; @@ -715,6 +717,8 @@ mtx_lock(&usb_quirk_mtx); pqe = usb_quirk_get_entry(pgq->vid, pgq->pid, pgq->bcdDeviceLow, pgq->bcdDeviceHigh, 0); + if (pqe == NULL) + return (EINVAL); for (x = 0; x != USB_SUB_QUIRKS_MAX; x++) { if (pqe->quirks[x] == y) { pqe->quirks[x] = UQ_NONE; From owner-p4-projects@FreeBSD.ORG Fri Jan 22 17:38:06 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 96DE01065698; Fri, 22 Jan 2010 17:38: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 5AE00106568B for ; Fri, 22 Jan 2010 17:38:06 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 469A08FC08 for ; Fri, 22 Jan 2010 17:38: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 o0MHc6EN088406 for ; Fri, 22 Jan 2010 17:38:06 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MHc6xe088404 for perforce@freebsd.org; Fri, 22 Jan 2010 17:38:06 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 22 Jan 2010 17:38:06 GMT Message-Id: <201001221738.o0MHc6xe088404@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 173524 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 17:38:06 -0000 http://p4web.freebsd.org/chv.cgi?CH=173524 Change 173524 by jona@jona-capsicum-kent64 on 2010/01/22 17:37:50 namei() / lookup() changes, take 2 Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_descrip.c#32 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#28 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_lookup.c#14 edit .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_syscalls.c#25 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#28 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/file.h#16 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/filedesc.h#6 edit .. //depot/projects/trustedbsd/capabilities/src/sys/sys/namei.h#7 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/kern_descrip.c#32 (text+ko) ==== @@ -1544,30 +1544,44 @@ int falloc(struct thread *td, struct file **resultfp, int *resultfd) { - return _falloc(td, resultfp, resultfd, 1); + struct file *fp; + int error; + + error = falloc_noinstall(td, &fp); + if (error) return (error); /* no reference held on error */ + + error = finstall(td, fp, resultfd); + if (error) { + fdrop(fp, td); /* one reference (fp only) */ + return (error); + } + + if (resultfp) *resultfp = fp; /* copy out result */ + else fdrop(fp, td); /* release local reference */ + + return (0); } /* - * Create a new open file structure and, optionally, allocate a file decriptor - * for the process that refers to it. + * Create a new open file structure without allocating a file decriptor. */ int -_falloc(struct thread *td, struct file **resultfp, int *resultfd, - int addfd) +falloc_noinstall(struct thread *td, struct file **resultfp) { - struct proc *p = td->td_proc; struct file *fp; - int error, i = -1; + int error; int maxuserfiles = maxfiles - (maxfiles / 20); static struct timeval lastfail; static int curfail; /* - * Cowardly refuse to create a referenceless file: if we're not adding - * the file to the process descriptor array, then the calling code + * Cowardly refuse to create a referenceless file; the calling code * MUST expect a pointer to be returned. */ - if (!addfd && !resultfp) return (error = EINVAL); + if (!resultfp) + return (error = EINVAL); + + atomic_add_int(&openfiles, 1); fp = uma_zalloc(file_zone, M_WAITOK | M_ZERO); if ((openfiles >= maxuserfiles && @@ -1580,18 +1594,8 @@ uma_zfree(file_zone, fp); return (ENFILE); } - if (addfd) - atomic_add_int(&openfiles, 1); - /* - * If addfd: - * If the process has file descriptor zero open, add the new file - * descriptor to the list of open files at that point, otherwise - * put it at the front of the list of open files. - */ - refcount_init(&fp->f_count, (addfd > 0)); - if (resultfp) - fhold(fp); + refcount_init(&fp->f_count, 1); fp->f_cred = crhold(td->td_ucred); fp->f_ops = &badfileops; fp->f_data = NULL; @@ -1599,23 +1603,33 @@ LIST_INIT(&fp->f_caps); fp->f_capcount = 0; - if (addfd) { - FILEDESC_XLOCK(p->p_fd); - if ((error = fdalloc(td, 0, &i))) { - FILEDESC_XUNLOCK(p->p_fd); - fdrop(fp, td); - if (resultfp) - fdrop(fp, td); - return (error); - } - p->p_fd->fd_ofiles[i] = fp; - FILEDESC_XUNLOCK(p->p_fd); + *resultfp = fp; + + return (0); +} + + +/* + * Install a file in the file descriptor table. + */ +int +finstall(struct thread *td, struct file *fp, int *fd) +{ + struct filedesc *fdp = td->td_proc->p_fd; + int error; + + FILEDESC_XLOCK(fdp); + + if ((error = fdalloc(td, 0, fd))) { + FILEDESC_XUNLOCK(fdp); + return (error); } - if (resultfp) - *resultfp = fp; - if (resultfd) - *resultfd = i; + fhold(fp); + fdp->fd_ofiles[*fd] = fp; + + FILEDESC_XUNLOCK(fdp); + return (0); } @@ -2247,7 +2261,8 @@ #define FGET_GETCAP 0x00000001 static __inline int _fget(struct thread *td, int fd, struct file **fpp, int flags, - cap_rights_t rights, u_char *maxprotp, int fget_flags) + cap_rights_t needrights, cap_rights_t *haverights, + u_char *maxprotp, int fget_flags) { struct filedesc *fdp; struct file *fp; @@ -2270,6 +2285,14 @@ } #ifdef CAPABILITIES + /* If this is a capability, what rights does it have? */ + if (haverights) { + if (fp->f_type == DTYPE_CAPABILITY) + *haverights = cap_rights(fp); + else + *haverights = -1; + } + /* * If a capability has been requested, return the capability * directly. Otherwise, check capability rights, extract the @@ -2286,10 +2309,10 @@ * capability and find the underlying object. */ if (maxprotp != NULL) - error = cap_fextract_mmap(fp, rights, maxprotp, + error = cap_fextract_mmap(fp, needrights, maxprotp, &fp_fromcap); else - error = cap_fextract(fp, rights, &fp_fromcap); + error = cap_fextract(fp, needrights, &fp_fromcap); if (error) { fdrop(fp, td); return (error); @@ -2328,7 +2351,7 @@ fget(struct thread *td, int fd, cap_rights_t rights, struct file **fpp) { - return(_fget(td, fd, fpp, 0, rights, NULL, 0)); + return(_fget(td, fd, fpp, 0, rights, NULL, NULL, 0)); } int @@ -2336,21 +2359,21 @@ struct file **fpp) { - return (_fget(td, fd, fpp, 0, rights, maxprotp, 0)); + return (_fget(td, fd, fpp, 0, rights, NULL, maxprotp, 0)); } int fget_read(struct thread *td, int fd, cap_rights_t rights, struct file **fpp) { - return(_fget(td, fd, fpp, FREAD, rights, NULL, 0)); + return(_fget(td, fd, fpp, FREAD, rights, NULL, NULL, 0)); } int fget_write(struct thread *td, int fd, cap_rights_t rights, struct file **fpp) { - return(_fget(td, fd, fpp, FWRITE, rights, NULL, 0)); + return(_fget(td, fd, fpp, FWRITE, rights, NULL, NULL, 0)); } /* @@ -2362,7 +2385,7 @@ fgetcap(struct thread *td, int fd, struct file **fpp) { - return (_fget(td, fd, fpp, 0, 0, NULL, FGET_GETCAP)); + return (_fget(td, fd, fpp, 0, 0, NULL, NULL, FGET_GETCAP)); } /* @@ -2373,14 +2396,15 @@ * XXX: what about the unused flags ? */ static __inline int -_fgetvp(struct thread *td, int fd, int flags, cap_rights_t rights, - struct vnode **vpp) +_fgetvp(struct thread *td, int fd, int flags, + cap_rights_t needrights, cap_rights_t *haverights, struct vnode **vpp) { struct file *fp; int error; *vpp = NULL; - if ((error = _fget(td, fd, &fp, flags, rights, NULL, 0)) != 0) + if ((error = _fget(td, fd, &fp, flags, needrights, haverights, NULL, 0)) + != 0) return (error); if (fp->f_vnode == NULL) { error = EINVAL; @@ -2397,7 +2421,14 @@ fgetvp(struct thread *td, int fd, cap_rights_t rights, struct vnode **vpp) { - return (_fgetvp(td, fd, 0, rights, vpp)); + return (_fgetvp(td, fd, 0, rights, NULL, vpp)); +} + +int +fgetvp_rights(struct thread *td, int fd, cap_rights_t need, cap_rights_t *have, + struct vnode **vpp) +{ + return (_fgetvp(td, fd, 0, need, have, vpp)); } int @@ -2405,7 +2436,7 @@ struct vnode **vpp) { - return (_fgetvp(td, fd, FREAD, rights, vpp)); + return (_fgetvp(td, fd, FREAD, rights, NULL, vpp)); } #ifdef notyet @@ -2414,7 +2445,7 @@ struct vnode **vpp) { - return (_fgetvp(td, fd, FWRITE, rights, vpp)); + return (_fgetvp(td, fd, FWRITE, rights, NULL, vpp)); } #endif @@ -2439,7 +2470,7 @@ *spp = NULL; if (fflagp != NULL) *fflagp = 0; - if ((error = _fget(td, fd, &fp, 0, rights, NULL, 0)) != 0) + if ((error = _fget(td, fd, &fp, 0, rights, NULL, NULL, 0)) != 0) return (error); if (fp->f_type != DTYPE_SOCKET) { error = ENOTSOCK; ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#28 (text+ko) ==== @@ -50,7 +50,7 @@ #include "opt_capabilities.h" #include -__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#27 $"); +__FBSDID("$P4: //depot/projects/trustedbsd/capabilities/src/sys/kern/sys_capability.c#28 $"); #include #include @@ -153,8 +153,11 @@ cap_check(struct capability *c, cap_rights_t rights) { - if ((c->cap_rights | rights) != c->cap_rights) + if ((c->cap_rights | rights) != c->cap_rights) { + printf("ENOTCAPABLE: %016x < %016x\n", + (unsigned int) c->cap_rights, (unsigned int) rights); return (ENOTCAPABLE); + } return (0); } ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_lookup.c#14 (text+ko) ==== @@ -37,6 +37,7 @@ #include __FBSDID("$FreeBSD: src/sys/kern/vfs_lookup.c,v 1.133 2009/11/10 11:50:37 kib Exp $"); +#include "opt_capabilities.h" #include "opt_kdb.h" #include "opt_kdtrace.h" #include "opt_ktrace.h" @@ -139,16 +140,6 @@ struct proc *p = td->td_proc; int vfslocked; -#ifdef KDB - if ((td->td_ucred->cr_flags & CRED_FLAG_CAPMODE) - && (ndp->ni_dirfd == AT_FDCWD)) - { - printf("namei: pid %d proc %s performed namei in capability " - "mode (and it's not *at())\n", p->p_pid, p->p_comm); - kdb_backtrace(); - } -#endif - KASSERT((cnp->cn_flags & MPSAFE) != 0 || mtx_owned(&Giant) != 0, ("NOT MPSAFE and Giant not held")); ndp->ni_cnd.cn_cred = ndp->ni_cnd.cn_thread->td_ucred; @@ -206,6 +197,7 @@ ktrnamei(cnp->cn_pnbuf); } #endif + /* * Get starting point for the translation. */ @@ -214,7 +206,18 @@ ndp->ni_topdir = fdp->fd_jdir; dp = NULL; +#ifdef CAPABILITIES + /* + * in capability mode, lookups must be performed relative to a real file + * descriptor, not the pseudo-descriptor AT_FDCWD + */ + if (IN_CAPABILITY_MODE(td) && (ndp->ni_dirfd == AT_FDCWD)) { + error = EOPNOTSUPP; + } else { +#else /* !CAPABILITIES */ + /* this optimisation doesn't apply if we have capabilities */ if (cnp->cn_pnbuf[0] != '/') { +#endif if (ndp->ni_startdir != NULL) { dp = ndp->ni_startdir; error = 0; @@ -223,26 +226,39 @@ AUDIT_ARG_ATFD1(ndp->ni_dirfd); if (cnp->cn_flags & AUDITVNODE2) AUDIT_ARG_ATFD2(ndp->ni_dirfd); - error = fgetvp(td, ndp->ni_dirfd, CAP_LOOKUP, &dp); + error = fgetvp_rights(td, ndp->ni_dirfd, + ndp->ni_rightsneeded | CAP_LOOKUP, + &(ndp->ni_baserights), &dp); + +#ifdef CAPABILITIES + /* + * only set ni_basedir if base was a capability or we are + * in capability mode + */ + if ((ndp->ni_baserights != -1) || (IN_CAPABILITY_MODE(td))) + ndp->ni_basedir = dp; +#endif } - if (error != 0 || dp != NULL) { - FILEDESC_SUNLOCK(fdp); - if (error == 0 && dp->v_type != VDIR) { - vfslocked = VFS_LOCK_GIANT(dp->v_mount); - vrele(dp); - VFS_UNLOCK_GIANT(vfslocked); - error = ENOTDIR; - } + } + if (error != 0 || dp != NULL) { + FILEDESC_SUNLOCK(fdp); + if (error == 0 && dp->v_type != VDIR) { + vfslocked = VFS_LOCK_GIANT(dp->v_mount); + vrele(dp); + VFS_UNLOCK_GIANT(vfslocked); + error = ENOTDIR; } - if (error) { - uma_zfree(namei_zone, cnp->cn_pnbuf); + } + + if (error) { + uma_zfree(namei_zone, cnp->cn_pnbuf); #ifdef DIAGNOSTIC - cnp->cn_pnbuf = NULL; - cnp->cn_nameptr = NULL; + cnp->cn_pnbuf = NULL; + cnp->cn_nameptr = NULL; #endif - return (error); - } + return (error); } + if (dp == NULL) { dp = fdp->fd_cdir; VREF(dp); @@ -260,6 +276,8 @@ /* * Check if root directory should replace current directory. * Done at start of translation and after symbolic link. + * This is illegal if looking up relative to a capability unless + * that capability is for '/' and has CAP_ABSOLUTEPATH. */ cnp->cn_nameptr = cnp->cn_pnbuf; if (*(cnp->cn_nameptr) == '/') { @@ -269,6 +287,21 @@ cnp->cn_nameptr++; ndp->ni_pathlen--; } +#ifdef CAPABILITIES + if (ndp->ni_basedir) + printf("ABSOLUTE namei(); " + "basedir: %016lx, rootdir: %016lx" + ", baserights: %016lx\n", + (unsigned long) ndp->ni_basedir, + (unsigned long) ndp->ni_rootdir, + (unsigned long) ndp->ni_baserights); + + if (ndp->ni_basedir + && !((ndp->ni_basedir == ndp->ni_rootdir) + && (ndp->ni_baserights & CAP_ABSOLUTEPATH))) + return (ENOTCAPABLE); +#endif + dp = ndp->ni_rootdir; vfslocked = VFS_LOCK_GIANT(dp->v_mount); VREF(dp); @@ -480,8 +513,7 @@ int dvfslocked; /* VFS Giant state for parent */ int tvfslocked; int lkflags_save; - int insidebasedir = 0; /* we're under the *at() base */ - + /* * Setup: break out flag bits into variables. */ @@ -508,10 +540,6 @@ else cnp->cn_lkflags = LK_EXCLUSIVE; - /* we do not allow absolute lookups in capability mode */ - if(ndp->ni_basedir && (ndp->ni_startdir == ndp->ni_rootdir)) - return (error = EPERM); - dp = ndp->ni_startdir; ndp->ni_startdir = NULLVP; vn_lock(dp, @@ -580,11 +608,6 @@ goto bad; } - - /* Check to see if we're at the *at directory */ - if(dp == ndp->ni_basedir) insidebasedir = 1; - - /* * Check for degenerate name (e.g. / or "") * which is a way of talking about a directory, @@ -619,17 +642,18 @@ } /* - * Handle "..": four special cases. + * Handle "..": five special cases. * 1. Return an error if this is the last component of * the name and the operation is DELETE or RENAME. - * 2. If at root directory (e.g. after chroot) + * 2. If at the base of a capability *at call, return ENOTCAPABLE. + * 3. If at root directory (e.g. after chroot) * or at absolute root directory * then ignore it so can't get out. - * 3. If this vnode is the root of a mounted + * 4. If this vnode is the root of a mounted * filesystem, then replace it with the * vnode which was mounted on so we take the * .. in the other filesystem. - * 4. If the vnode is the top directory of + * 5. If the vnode is the top directory of * the jail or chroot, don't let them out. */ if (cnp->cn_flags & ISDOTDOT) { @@ -639,13 +663,17 @@ goto bad; } for (;;) { - /* attempting to wander out of the *at root */ - if(dp == ndp->ni_basedir) - { - error = EPERM; +#ifdef CAPABILITIES + /* + * Attempting to wander out of the *at root; whether or + * not this is allowed is a capability option on the + * '/' capability. + */ + if (dp == ndp->ni_basedir) { + error = ENOTCAPABLE; goto bad; } - +#endif for (pr = cnp->cn_cred->cr_prison; pr != NULL; pr = pr->pr_parent) if (dp == pr->pr_root) @@ -906,16 +934,6 @@ VOP_UNLOCK(dp, 0); success: /* - * If we're in capability mode and the syscall was *at(), ensure - * that the *at() base was part of the path - */ - if(ndp->ni_basedir && !insidebasedir) - { - error = EPERM; - goto bad; - } - - /* * Because of lookup_shared we may have the vnode shared locked, but * the caller may want it to be exclusively locked. */ ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_syscalls.c#25 (text+ko) ==== @@ -159,42 +159,6 @@ return (0); } -#ifdef CAPABILITIES -/*- - * Get the "base" vnode defined by a user file descriptor. - * - * Several *at() system calls are now supported in capability mode. This - * function finds out what their "*at base" vnode, which is needed by - * namei(), should be: - * - * 1. In non-capability (and thus unconstrained) mode, *base = NULL. - * 2. In capability mode, base is the vnode given by the fd parameter, - * subject to the condition that the supplied 'rights' parameter (OR'ed - * with CAP_LOOKUP and CAP_ATBASE) is satisfied. The vnode is returned - * with a shared lock. - */ -int -fgetbase(struct thread *td, int fd, cap_rights_t rights, struct vnode **base) -{ - - if (!(td->td_ucred->cr_flags & CRED_FLAG_CAPMODE)) - *base = NULL; - else { - int error; - - error = fgetvp(td, fd, rights | CAP_LOOKUP | CAP_ATBASE, base); - if (error) - return (error); - - if ((error = vn_lock(*base, LK_SHARED))) { - vrele(*base); - return (error); - } - } - return (0); -} -#endif - /* * Sync each mounted filesystem. */ @@ -1128,7 +1092,7 @@ struct proc *p = td->td_proc; struct filedesc *fdp = p->p_fd; struct file *fp; - struct vnode *vp, *base = NULL; + struct vnode *vp; struct vattr vat; struct mount *mp; int cmode; @@ -1137,7 +1101,7 @@ struct flock lf; struct nameidata nd; int vfslocked; - cap_rights_t baserights = -1; + cap_rights_t baserights = CAP_ATBASE; AUDIT_ARG_FFLAGS(flags); AUDIT_ARG_MODE(mode); @@ -1147,6 +1111,7 @@ * be specified. */ if (flags & O_EXEC) { + baserights |= CAP_FEXECVE; if (flags & O_ACCMODE) return (EINVAL); } else if ((flags & O_ACCMODE) == O_ACCMODE) @@ -1155,65 +1120,24 @@ flags = FFLAGS(flags); #ifdef CAPABILITIES - /* get capability info of base FD */ - if (fd >= 0) { - struct file *f; - const cap_rights_t LOOKUP_RIGHTS = CAP_LOOKUP | CAP_ATBASE; - - FILEDESC_SLOCK(fdp); - - error = fgetcap(td, fd, &f); - if (error == 0) { - /* FD is a capability; get rights and unwrap */ - struct file *real_fp = NULL; - - baserights = cap_rights(f); - error = cap_fextract(f, LOOKUP_RIGHTS, &real_fp); - - /* hold the underlying file, not the capability */ - if (error == 0) - fhold(real_fp); - fdrop(f, td); - - f = real_fp; - } else if (error == EINVAL) - /* not a capability; get the real file pointer */ - error = fget(td, fd, LOOKUP_RIGHTS, &f); - - /* if in capability mode, get base vnode (for namei) */ - if (!error && (td->td_ucred->cr_flags & CRED_FLAG_CAPMODE)) { - base = f->f_vnode; - vref(base); - } - - /* don't need to hold the base any more */ - if (f != NULL) - fdrop(f, td); - - if (error) { - FILEDESC_SUNLOCK(fdp); - return (error); - } else - FILEDESC_SUNLOCK(fdp); - } + if (flags & FREAD) baserights |= CAP_READ; + if (flags & FWRITE) baserights |= CAP_WRITE; #endif /* - * allocate the file descriptor, but only add it to the descriptor - * array if fd isn't a capability (in which case we'll add the - * capability instead, later) + * allocate the file descriptor, but don't install a descriptor yet */ - error = _falloc(td, &nfp, &indx, (baserights == -1)); + error = falloc_noinstall(td, &nfp); if (error) return (error); - /* An extra reference on `nfp' has been held for us by _falloc(). */ + /* An extra reference on `nfp' has been held for us by falloc(). */ fp = nfp; /* Set the flags early so the finit in devfs can pick them up. */ fp->f_flag = flags & FMASK; cmode = ((mode &~ fdp->fd_cmask) & ALLPERMS) &~ S_ISTXT; - NDINIT_ATBASE(&nd, LOOKUP, FOLLOW | AUDITVNODE1 | MPSAFE, pathseg, - path, fd, base, td); + NDINIT_ATRIGHTS(&nd, LOOKUP, FOLLOW | AUDITVNODE1 | MPSAFE, pathseg, + path, fd, baserights, td); td->td_dupfd = -1; /* XXX check for fdopen */ error = vn_open(&nd, &flags, cmode, fp); if (error) { @@ -1229,8 +1153,12 @@ * handle special fdopen() case. bleh. dupfdopen() is * responsible for dropping the old contents of ofiles[indx] * if it succeeds. + * + * Don't do this for relative (capability) lookups; we don't + * understand exactly what would happen, and we don't think that + * it ever should. */ - if ((error == ENODEV || error == ENXIO) && + if (!nd.ni_basedir && (error == ENODEV || error == ENXIO) && td->td_dupfd >= 0 && /* XXX from fdopen */ (error = dupfdopen(td, fdp, indx, td->td_dupfd, flags, error)) == 0) @@ -1240,10 +1168,6 @@ * Clean up the descriptor, but only if another thread hadn't * replaced or closed it. */ -#ifdef CAPABILITIES - if (base) - vrele(base); -#endif fdclose(fdp, fp, indx, td); fdrop(fp, td); @@ -1304,34 +1228,29 @@ success: #ifdef CAPABILITIES - if (baserights != -1) { + if (nd.ni_baserights != -1) { /* wrap the result in a capability */ struct file *cap; - error = kern_capwrap(td, fp, baserights, &cap, &indx); + error = kern_capwrap(td, fp, nd.ni_baserights, &cap, &indx); if (error) goto bad_unlocked; } + else #endif + if ((error = finstall(td, fp, &indx)) != 0) + goto bad_unlocked; /* * Release our private reference, leaving the one associated with * the descriptor table intact. */ -#ifdef CAPABILITIES - if (base) - vrele(base); -#endif fdrop(fp, td); td->td_retval[0] = indx; return (0); bad: VFS_UNLOCK_GIANT(vfslocked); -#ifdef CAPABILITIES bad_unlocked: - if (base) - vrele(base); -#endif fdclose(fdp, fp, indx, td); fdrop(fp, td); return (error); @@ -2264,7 +2183,7 @@ int flags, int mode) { struct ucred *cred, *tmpcred; - struct vnode *vp, *base = NULL; + struct vnode *vp; struct nameidata nd; int vfslocked; int error; @@ -2284,14 +2203,8 @@ cred = tmpcred = td->td_ucred; AUDIT_ARG_VALUE(mode); -#ifdef CAPABILITIES - /* get *at base vnode for namei() */ - if ((error = fgetbase(td, fd, CAP_FSTAT, &base))) - return (error); -#endif - - NDINIT_ATBASE(&nd, LOOKUP, FOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE | - AUDITVNODE1, pathseg, path, fd, base, td); + NDINIT_ATRIGHTS(&nd, LOOKUP, FOLLOW | LOCKSHARED | LOCKLEAF | MPSAFE | + AUDITVNODE1, pathseg, path, fd, CAP_FSTAT, td); if ((error = namei(&nd)) != 0) goto out1; vfslocked = NDHASGIANT(&nd); @@ -2306,10 +2219,6 @@ td->td_ucred = cred; crfree(tmpcred); } -#ifdef CAPABILITIES - if (base) - vput(base); -#endif return (error); } @@ -3058,22 +2967,13 @@ struct nameidata nd; int vfslocked; int follow; - struct vnode *base = NULL; AUDIT_ARG_MODE(mode); follow = (flag & AT_SYMLINK_NOFOLLOW) ? NOFOLLOW : FOLLOW; -#ifdef CAPABILITIES - if ((error = fgetbase(td, fd, CAP_FCHMOD, &base))) - return (error); -#endif - NDINIT_ATBASE(&nd, LOOKUP, follow | MPSAFE | AUDITVNODE1, pathseg, - path, fd, base, td); + NDINIT_ATRIGHTS(&nd, LOOKUP, follow | MPSAFE | AUDITVNODE1, pathseg, + path, fd, CAP_FCHMOD, td); error = namei(&nd); -#ifdef CAPABILITIES - if (base) - vput(base); -#endif if (error) return (error); ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#28 (text+ko) ==== @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#27 $ + * $P4: //depot/projects/trustedbsd/capabilities/src/sys/sys/capability.h#28 $ */ /* @@ -97,7 +97,8 @@ #define CAP_FCHDIR 0x0002000000000000ULL /* fchdir(2) */ #define CAP_FSCK 0x0004000000000000ULL /* sysctl_ffs_fsck */ #define CAP_ATBASE 0x0008000000000000ULL /* openat(2), etc. */ -#define CAP_MASK_VALID 0x000fffffffffffffULL +#define CAP_ABSOLUTEPATH 0x0010000000000000ULL /* abs. lookup from '/' */ +#define CAP_MASK_VALID 0x001fffffffffffffULL /* * Notes: @@ -141,6 +142,9 @@ struct file; struct thread; +#define IN_CAPABILITY_MODE(td) (td->td_ucred->cr_flags & CRED_FLAG_CAPMODE) + + /* * Create a capability to wrap a file object. */ ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/file.h#16 (text+ko) ==== @@ -206,6 +206,8 @@ void finit(struct file *, u_int, short, void *, struct fileops *); int fgetvp(struct thread *td, int fd, cap_rights_t rights, struct vnode **vpp); +int fgetvp_rights(struct thread *td, int fd, cap_rights_t need, cap_rights_t *have, + struct vnode **vpp); int fgetvp_read(struct thread *td, int fd, cap_rights_t rights, struct vnode **vpp); int fgetvp_write(struct thread *td, int fd, cap_rights_t rights, ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/filedesc.h#6 (text+ko) ==== @@ -112,8 +112,8 @@ int dupfdopen(struct thread *td, struct filedesc *fdp, int indx, int dfd, int mode, int error); int falloc(struct thread *td, struct file **resultfp, int *resultfd); -int _falloc(struct thread *td, struct file **resultfp, int *resultfd, - int addfd); +int falloc_noinstall(struct thread *td, struct file **resultfp); +int finstall(struct thread *td, struct file *fp, int *resultfp); int fdalloc(struct thread *td, int minfd, int *result); int fdavail(struct thread *td, int n); int fdcheckstd(struct thread *td); ==== //depot/projects/trustedbsd/capabilities/src/sys/sys/namei.h#7 (text+ko) ==== @@ -63,6 +63,7 @@ */ const char *ni_dirp; /* pathname pointer */ enum uio_seg ni_segflg; /* location of pathname */ + cap_rights_t ni_rightsneeded; /* rights required to look up vnode */ /* * Arguments to lookup. */ @@ -72,6 +73,10 @@ int ni_dirfd; /* starting directory for *at functions */ struct vnode *ni_basedir; /* root for capability-mode *at */ /* + * Results: returned from namei + */ + cap_rights_t ni_baserights; /* rights that the *at base has (or -1) */ + /* * Results: returned from/manipulated by lookup */ struct vnode *ni_vp; /* vnode of result */ @@ -152,13 +157,13 @@ * Initialization of a nameidata structure. */ #define NDINIT(ndp, op, flags, segflg, namep, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, NULL, td) + NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, NULL, 0, td) #define NDINIT_AT(ndp, op, flags, segflg, namep, dirfd, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, NULL, td) -#define NDINIT_ATBASE(ndp, op, flags, segflg, namep, dirfd, base, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, base, td) + NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, NULL, 0, td) +#define NDINIT_ATRIGHTS(ndp, op, flags, segflg, namep, dirfd, rights, td) \ + NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, NULL, rights, td) #define NDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, NULL, td) + NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, NULL, 0, td) static __inline void NDINIT_ALL(struct nameidata *ndp, @@ -168,6 +173,7 @@ int dirfd, struct vnode *startdir, struct vnode *basedir, + cap_rights_t rights, struct thread *td) { ndp->ni_cnd.cn_nameiop = op; @@ -177,6 +183,8 @@ ndp->ni_dirfd = dirfd; ndp->ni_startdir = startdir; ndp->ni_basedir = basedir; + ndp->ni_rightsneeded = rights; + ndp->ni_baserights = -1; ndp->ni_cnd.cn_thread = td; } From owner-p4-projects@FreeBSD.ORG Fri Jan 22 18:15:44 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8F39D1065693; Fri, 22 Jan 2010 18:15: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 52F89106568B for ; Fri, 22 Jan 2010 18:15:44 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 4007E8FC16 for ; Fri, 22 Jan 2010 18:15:44 +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 o0MIFiHb092129 for ; Fri, 22 Jan 2010 18:15:44 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MIFiuV092127 for perforce@freebsd.org; Fri, 22 Jan 2010 18:15:44 GMT (envelope-from jona@FreeBSD.org) Date: Fri, 22 Jan 2010 18:15:44 GMT Message-Id: <201001221815.o0MIFiuV092127@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 173527 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 18:15:44 -0000 http://p4web.freebsd.org/chv.cgi?CH=173527 Change 173527 by jona@jona-capsicum-kent64 on 2010/01/22 18:15:41 This printf shouldn't be here any more Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_lookup.c#15 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/kern/vfs_lookup.c#15 (text+ko) ==== @@ -288,14 +288,6 @@ ndp->ni_pathlen--; } #ifdef CAPABILITIES - if (ndp->ni_basedir) - printf("ABSOLUTE namei(); " - "basedir: %016lx, rootdir: %016lx" - ", baserights: %016lx\n", - (unsigned long) ndp->ni_basedir, - (unsigned long) ndp->ni_rootdir, - (unsigned long) ndp->ni_baserights); - if (ndp->ni_basedir && !((ndp->ni_basedir == ndp->ni_rootdir) && (ndp->ni_baserights & CAP_ABSOLUTEPATH))) From owner-p4-projects@FreeBSD.ORG Fri Jan 22 18:53:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D1E7B1065672; Fri, 22 Jan 2010 18:53: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 9588B106566B for ; Fri, 22 Jan 2010 18:53:22 +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 820C58FC14 for ; Fri, 22 Jan 2010 18:53: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 o0MIrMEk094870 for ; Fri, 22 Jan 2010 18:53:22 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MIrMOm094868 for perforce@freebsd.org; Fri, 22 Jan 2010 18:53:22 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 22 Jan 2010 18:53:22 GMT Message-Id: <201001221853.o0MIrMOm094868@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 Precedence: bulk Cc: Subject: PERFORCE change 173532 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 18:53:23 -0000 http://p4web.freebsd.org/chv.cgi?CH=173532 Change 173532 by hselasky@hselasky_laptop001 on 2010/01/22 18:52:27 USB quirk: - add missing mutex unlocks after last patch. - patch by: HPS Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#19 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#19 (text+ko) ==== @@ -681,8 +681,10 @@ mtx_lock(&usb_quirk_mtx); pqe = usb_quirk_get_entry(pgq->vid, pgq->pid, pgq->bcdDeviceLow, pgq->bcdDeviceHigh, 1); - if (pqe == NULL) + if (pqe == NULL) { + mtx_unlock(&usb_quirk_mtx); return (EINVAL); + } for (x = 0; x != USB_SUB_QUIRKS_MAX; x++) { if (pqe->quirks[x] == UQ_NONE) { pqe->quirks[x] = y; @@ -717,8 +719,10 @@ mtx_lock(&usb_quirk_mtx); pqe = usb_quirk_get_entry(pgq->vid, pgq->pid, pgq->bcdDeviceLow, pgq->bcdDeviceHigh, 0); - if (pqe == NULL) + if (pqe == NULL) { + mtx_unlock(&usb_quirk_mtx); return (EINVAL); + } for (x = 0; x != USB_SUB_QUIRKS_MAX; x++) { if (pqe->quirks[x] == y) { pqe->quirks[x] = UQ_NONE; From owner-p4-projects@FreeBSD.ORG Fri Jan 22 19:35:01 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 57B70106568D; Fri, 22 Jan 2010 19:35: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 1ABE3106566B for ; Fri, 22 Jan 2010 19:35:01 +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 05C168FC1B for ; Fri, 22 Jan 2010 19:35: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 o0MJZ1Dk098986 for ; Fri, 22 Jan 2010 19:35:01 GMT (envelope-from gabor@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MJY3kq098905 for perforce@freebsd.org; Fri, 22 Jan 2010 19:34:03 GMT (envelope-from gabor@freebsd.org) Date: Fri, 22 Jan 2010 19:34:03 GMT Message-Id: <201001221934.o0MJY3kq098905@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 Precedence: bulk Cc: Subject: PERFORCE change 173533 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 19:35:01 -0000 http://p4web.freebsd.org/chv.cgi?CH=173533 Change 173533 by gabor@gabor_aspire on 2010/01/22 19:33:14 MFHg: LIBRARY ===================================================================== - Support GNU-style alias listing via iconvlist(), while providing the existing interfaces for unsorted listings - Fix a corrupted alias entry - Improved transliteration for the following encodings: HP-ROMAN8 RISCOS-LATIN1 TCVN5712-1 TDS565 KZ-1048 MULELAO-1 NEXTSTEP GEORGIAN-ACADEMY GEORGIAN-PS CP1256 CP1257 CP1258 CP1046 CP1124 CP1125 CP1129 CP1133 CP1161 CP1162 CP1163 CP1250 CP1252 CP1254 CP1255 CP864 CP865 CP869 CP874 CP922 CP856 CP857 CP858 CP860 CP861 CP862 CP863 CP437 CP737 CP775 CP850 CP852 CP853 CP855 JIS_X0201 JIS_X0208-1990 ATARIST KOI8-T - Fix //IGNORE implementation, which is actually the same as __ICONV_F_HIDE_INVALID BIN ===================================================================== - iconv: add long options - iconv: track file position with GNU hooks - iconv: use GNU-style listing and fallbacks instead of __iconv() so that it can be compiled with the GNU library - iconv: add template for substitution options, which have not been implemented yet - iconv: partial style(9) - iconv.h: provide more alternative libiconv*() names for GNU compatibility - iconv.h: swap the aliasing order so that programs can be compiled with this header for GNU libiconv; this might be handy for ports - iconv.h: increase iconv_allocation_t size to cover the space needed for GNU libiconv DOCS ===================================================================== - Document __iconv.3 - Document iconv_open_into.3 - Add MLINKS for __iconv.3 - Add MLINKS for iconv_open_into.3 REGRESSION-TES ===================================================================== - gnu/posix: show error codes on fail - tablegen: add -i and -t switches to control //IGNORE and //TRANSLIT - tablegen: simplify code and provide niced output - tablegen: add support for generating tables between any two encodings - tablegen: improve cmp.sh output Affected files ... .. //depot/projects/soc2009/gabor_iconv/extracted/include/iconv.h#4 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#9 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb.c#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_none.c#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.c#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.h#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_template.h#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.3#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.c#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#9 edit .. //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#7 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gnu/gnu.c#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/posix/posix.c#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ASCII#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ASCII-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ATARIST#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ATARIST-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-2003#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-2003-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-HKSCS#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-HKSCS-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/BIG5-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/C99#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/C99-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1046#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1046-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1124#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1124-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1125#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1125-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1129#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1129-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1131#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1131-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1133#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1133-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1161#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1161-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1162#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1162-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1163#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1163-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1250#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1250-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1251#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1251-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1252#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1252-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1253#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1253-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1254#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1254-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1255#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1255-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1256#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1256-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1257#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1257-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1258#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP1258-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP437#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP437-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP737#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP737-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP775#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP775-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP850#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP850-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP852#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP852-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP853#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP853-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP855#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP855-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP856#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP856-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP857#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP857-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP858#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP858-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP860#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP860-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP861#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP861-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP862#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP862-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP863#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP863-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP864#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP864-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP865#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP865-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP866#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP866-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP869#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP869-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP874#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP874-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP922#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP922-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP932#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP932-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP936#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP936-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP943#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP943-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP949#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP949-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP950#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/CP950-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/DEC-HANYU#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/DEC-HANYU-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-CN#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-CN-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JIS-2004#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JIS-2004-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JP#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-JP-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-KR#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-KR-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-TW#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/EUC-TW-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB18030#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB18030-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB2312#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GB2312-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GBK#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GBK-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-ACADEMY#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-ACADEMY-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-PS#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/GEORGIAN-PS-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HP-ROMAN8#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HP-ROMAN8-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HZ#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/HZ-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN-EXT#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN-EXT-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-CN-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-1#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-1-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2004#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-2004-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-JP-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-KR#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-2022-KR-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-14#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-14-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-165#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-165-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-57#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO-IR-57-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-1#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-1-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-10#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-10-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-11#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-11-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-13#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-13-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-14#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-14-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-15#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-15-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-16#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-16-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-2#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-2-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-3#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-3-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-4#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-4-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-5#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-5-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-6#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-6-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-7#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-7-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-8#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-8-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-9#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ISO8859-9-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JAVA#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JAVA-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0201#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0201-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0208-1990#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JIS_X0208-1990-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JOHAB#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/JOHAB-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-R#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-R-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-RU#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-RU-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-T#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-T-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-U#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KOI8-U-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KZ-1048#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/KZ-1048-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/MULELAO-1#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/MULELAO-1-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/NEXTSTEP#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/NEXTSTEP-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/PT154#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/PT154-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/RISCOS-LATIN1#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/RISCOS-LATIN1-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/SHIFT_JIS#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/SHIFT_JIS-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TCVN5712-1#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TCVN5712-1-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TDS565#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/TDS565-rev#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/VISCII#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/VISCII-rev#3 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/cmp.sh#2 edit .. //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/tablegen/tablegen.c#5 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/iconv.1#8 edit .. //depot/projects/soc2009/gabor_iconv/extracted/usr.bin/iconv/iconv.c#8 edit Differences ... ==== //depot/projects/soc2009/gabor_iconv/extracted/include/iconv.h#4 (text+ko) ==== @@ -37,6 +37,11 @@ #include #include +#define iconv_open libiconv_open +#define iconv_close libiconv_close +#define iconv libiconv +#define iconv_t libiconv_t + #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ @@ -63,19 +68,16 @@ /* * GNU interfaces for iconv */ +#define iconv_open_into libiconv_open_into +#define iconvctl libiconvctl +#define iconvlist libiconvlist -/* Historical versions */ -#define libiconv_open iconv_open -#define libiconv_open_into iconv_open_into -#define libiconv_close iconv_close -#define libiconv iconv - /* We have iconvctl() */ #define _LIBICONV_VERSION 0x0108 extern int _libiconv_version; typedef struct { - void *spaceholder[8]; + void *spaceholder[64]; } iconv_allocation_t; int iconv_open_into(const char *, const char *, iconv_allocation_t *); ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/Makefile#9 (text+ko) ==== @@ -8,7 +8,9 @@ iconvlist.3 \ __iconv_get_list.3 MLINKS= iconv.3 iconv_open.3 \ + iconv.3 iconv_open_into.3 \ iconv.3 iconv_close.3 \ + iconv.3 __iconv.3 \ __iconv_get_list.3 __iconv_free_list.3 SRCS= citrus_bcs.c \ citrus_bcs_strtol.c \ ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_esdb.c#7 (text+ko) ==== @@ -255,7 +255,7 @@ * get esdb entries. */ int -_citrus_esdb_get_list(char ***rlist, size_t *rnum, bool l) +_citrus_esdb_get_list(char ***rlist, size_t *rnum, bool sorted) { int ret; struct _region key, data; @@ -292,17 +292,19 @@ /* get alias entries */ while ((ret = _lookup_seq_next(cla, &key, &data)) == 0) { - if (!l) - snprintf(buf, sizeof(buf), "%.*s", - (int)_region_size(&key), - (const char *)_region_head(&key)); - else + if (sorted) snprintf(buf, sizeof(buf), "%.*s/%.*s", (int)_region_size(&data), (const char *)_region_head(&data), (int)_region_size(&key), (const char *)_region_head(&key)); - _bcs_convert_to_lower(buf); + else + snprintf(buf, sizeof(buf), "%.*s/%.*s", + (int)_region_size(&data), + (const char *)_region_head(&data), + (int)_region_size(&key), + (const char *)_region_head(&key)); + _bcs_convert_to_upper(buf); list[num] = strdup(buf); if (list[num] == NULL) { ret = errno; @@ -314,12 +316,12 @@ goto quit3; /* get dir entries */ while ((ret = _lookup_seq_next(cld, &key, &data)) == 0) { - /* check duplicated entry */ - if (!l) + if (!sorted) { snprintf(buf, sizeof(buf), "%.*s", - (int)_region_size(&key), - (const char *)_region_head(&key)); - else { + (int)_region_size(&key), + (const char *)_region_head(&key)); + } else { + /* check duplicated entry */ char buf1[PATH_MAX]; char *p; @@ -335,7 +337,7 @@ (int)_region_size(&key), (const char *)_region_head(&key)); } - _bcs_convert_to_lower(buf); + _bcs_convert_to_upper(buf); ret = _lookup_seq_lookup(cla, buf, NULL); if (ret) { if (ret != ENOENT) @@ -353,6 +355,8 @@ goto quit3; ret = 0; + /* XXX: why reallocing the list space posteriorly? + shouldn't be done earlier? */ q = realloc(list, num * sizeof(char *)); if (!q) { ret = ENOMEM; ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_none.c#7 (text+ko) ==== @@ -169,7 +169,6 @@ return (0); uc_to_mb_fail: -/* XXX: currently unused if ((fbs != NULL) && (fbs->uc_to_mb_fallback != NULL)) { struct uc_to_mb_data convdata; @@ -180,7 +179,6 @@ fbs->uc_to_mb_fallback((unsigned int)idx, uc_to_mb_replacement, (void *)&convdata, fbs->data); } -*/ return (ret); } @@ -243,7 +241,6 @@ return (0); wc_to_mb_fail: -/* XXX: currently unused if ((fbs != NULL) && (fbs->wc_to_mb_fallback != NULL)) { struct wc_to_mb_data convdata; char *ss = s; @@ -258,7 +255,6 @@ fbs->wc_to_mb_fallback(wc, wc_to_mb_replacement, (void *)&convdata, fbs->data); } -*/ return (ret); } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.c#2 (text+ko) ==== @@ -30,8 +30,6 @@ #include "citrus_stdenc_fallbacks.h" -/* XXX: these actually never used in latest GNU iconv but they might be - a future development option. void wc_to_mb_replacement(const char *buf __unused, size_t len __unused, void *cb_arg __unused) { @@ -73,7 +71,6 @@ *convdata->outbytesleft -= len; *convdata->err = 0; } -*/ void mb_to_uc_replacement(const unsigned int *buf __unused, size_t len __unused, void *cb_arg __unused) ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_fallbacks.h#2 (text+ko) ==== @@ -35,13 +35,9 @@ #include "citrus_stdenc.h" #include "citrus_stdenc_local.h" -/* XXX: these actually never used in latest GNU iconv but they might be - a future development option. void wc_to_mb_replacement(const char *, size_t, void *); void mb_to_wc_replacement(const wchar_t *, size_t, void *); void uc_to_mb_replacement(const char *, size_t, void *); -*/ - void mb_to_uc_replacement(const unsigned int *, size_t, void *); struct mb_to_uc_data { @@ -53,8 +49,6 @@ _citrus_stdenc_mbtocs_t mbtouc; }; -/* XXX: these actually never used in latest GNU iconv but they might be - a future development option. struct uc_to_mb_data { char **outbuf; size_t *outbytesleft; @@ -75,5 +69,4 @@ size_t *outbytesleft; int *err; }; -*/ #endif ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/citrus_stdenc_template.h#7 (text+ko) ==== @@ -166,7 +166,6 @@ if (ret == 0) ret = _FUNCNAME(wcrtomb_priv)(_CE_TO_EI(ce), s, n, wc, _TO_STATE(ps), nresult); -/* XXX: currently unused if (ret != 0) if ((fbs != NULL) && (fbs->uc_to_mb_fallback != NULL)) { struct uc_to_mb_data convdata; @@ -178,7 +177,6 @@ fbs->uc_to_mb_fallback((unsigned int)idx, uc_to_mb_replacement, (void *)&convdata, fbs->data); } -*/ return (ret); } @@ -194,7 +192,6 @@ ret = _FUNCNAME(mbrtowc_priv)(_CE_TO_EI(ce), wc, s, n, _TO_STATE(ps), nresult); -/* XXX: currently unused if (ret != 0) { if ((fbs != NULL) && (fbs->mb_to_wc_fallback != NULL)) { struct mb_to_wc_data convdata; @@ -208,7 +205,6 @@ (void *)&convdata, fbs->data); } } else -*/ if ((hooks != NULL) && (hooks->wc_hook != NULL)) hooks->wc_hook(*wc, hooks->data); return (ret); @@ -225,7 +221,6 @@ ret = _FUNCNAME(wcrtomb_priv)(_CE_TO_EI(ce), s, n, wc, _TO_STATE(ps), nresult); -/* XXX: currently unused if (ret != 0) if ((fbs != NULL) && (fbs->wc_to_mb_fallback != NULL)) { struct wc_to_mb_data convdata; @@ -241,7 +236,6 @@ fbs->wc_to_mb_fallback(wc, wc_to_mb_replacement, (void *)&convdata, fbs->data); } -*/ return (ret); } ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.3#7 (text+ko) ==== @@ -1,6 +1,7 @@ .\" $NetBSD: iconv.3,v 1.12 2004/08/02 13:38:21 tshiozak Exp $ .\" -.\" Copyright (c)2003 Citrus Project, +.\" Copyright (c) 2003 Citrus Project, +.\" Copyright (c) 2009, 2010 Gabor Kovesdan , .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -24,11 +25,12 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 1, 2004 +.Dd January 18, 2010 .Dt ICONV 3 .Os .Sh NAME .Nm iconv_open , +.Nm iconv_open_into , .Nm iconv_close , .Nm iconv .Nd codeset conversion functions @@ -39,9 +41,13 @@ .Ft iconv_t .Fn iconv_open "const char *dstname" "const char *srcname" .Ft int +.Fn iconv_open_into "const char *dstname" "const char *srcname" "iconv_allocation_t *ptr" +.Ft int .Fn iconv_close "iconv_t cd" .Ft size_t .Fn iconv "iconv_t cd" "const char ** restrict src" "size_t * restrict srcleft" "char ** restrict dst" "size_t * restrict dstleft" +.Ft size_t +.Fn __iconv "iconv_t cd" "const char ** restrict src" "size_t * restrict srcleft" "char ** restrict dst" "size_t * restrict dstleft" "uint32_t flags" "size_t invalids" .Sh DESCRIPTION The .Fn iconv_open @@ -52,6 +58,24 @@ and returns its descriptor. .Pp The +.Fn iconv_open_into +creates a conversion descriptor on a preallocated space. +The +.Ft iconv_allocation_t +is used as a spaceholder type when allocating such space. +The +.Fa dstname +and +.Fa srcname +arguments are the same as in the case of +.Fn iconv_open . +The +.Fa ptr +argument is a pointer of +.Ft iconv_allocation_t +to the preallocated space. +.Pp +The .Fn iconv_close function closes the specified converter .Fa cd . @@ -118,7 +142,6 @@ .Fn iconv : .Bl -tag -width 0123 .It "src == NULL || *src == NULL" -.\" If the source and/or destination codesets are stateful, .Fn iconv places these into their initial state. @@ -147,6 +170,25 @@ .Dv NULL . In this case, the shift sequence for the destination switching to the initial state is discarded. +.Pp +.El +The +.Fn __iconv +function works just like +.Fn iconv +but if +.Fn iconv +fails, the invalid character count is lost there. +This is a not bug rather a limitation of +.St -p1003.1-2008 , +so +.Fn __iconv +is provided as an alternative but non-standard interface. +It also has a flags argument, where currently the following +flags can be passed: +.Bl -tag -width 0123 +.It __ICONV_F_HIDE_INVALID +Skip invalid characters, instead of returning with an error. .El .Sh RETURN VALUES Upon successful completion of @@ -157,6 +199,13 @@ returns (iconv_t)\-1 and sets errno to indicate the error. .Pp Upon successful completion of +.Fn iconv_open_into , +it returns 0. +Otherwise, +.Fn iconv_open_into +returns \-1, and sets errno to indicate the error. +.Pp +Upon successful completion of .Fn iconv_close , it returns 0. Otherwise, @@ -184,6 +233,16 @@ and .Fa dstname . .El +The +.Fn iconv_open_into +function may cause an error in the following cases: +.Bl -tag -width Er +.It Bq Er EINVAL +There is no converter specified by +.Fa srcname +and +.Fa dstname . +.El .Pp The .Fn iconv_close @@ -222,16 +281,19 @@ .Xr mkcsmapper 1 , .Xr mkesdb 1 .Sh STANDARDS +The .Fn iconv_open , .Fn iconv_close , and .Fn iconv -conform to -.St -p1003.1-2001 . -.Sh BUGS -If -.Fn iconv -is aborted due to the occurrence of some error, -the -.Dq invalid conversion -count mentioned above is unfortunately lost. +functions conform to +.St -p1003.1-2008 . +.Pp +The +.Fn iconv_open_into +function is a GNU-specific extension and it is not part of any standard, +thus its use may break portability. +The +.Fn __iconv +function is an own extension and it is not part of any standard, +thus its use may break portability. ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv/iconv.c#2 (text+ko) ==== @@ -40,9 +40,9 @@ #include "netbsdism.h" #ifdef __weak_alias -__weak_alias(iconv, _iconv) -__weak_alias(iconv_open, _iconv_open) -__weak_alias(iconv_close, _iconv_close) +__weak_alias(libiconv, _iconv) +__weak_alias(libiconv_open, _iconv_open) +__weak_alias(libiconv_close, _iconv_close) #endif #include @@ -108,13 +108,13 @@ } iconv_t -iconv_open(const char *out, const char *in) +libiconv_open(const char *out, const char *in) { return _iconv_open(out, in, NULL); } int -iconv_open_into(const char *out, const char *in, iconv_allocation_t *ptr) +libiconv_open_into(const char *out, const char *in, iconv_allocation_t *ptr) { struct _citrus_iconv *handle = (struct _citrus_iconv *)ptr; @@ -122,7 +122,7 @@ } int -iconv_close(iconv_t handle) +libiconv_close(iconv_t handle) { if (ISBADF(handle)) { errno = EBADF; @@ -135,7 +135,7 @@ } size_t -iconv(iconv_t handle, const char **in, size_t *szin, char **out, size_t *szout) +libiconv(iconv_t handle, const char **in, size_t *szin, char **out, size_t *szout) { int err; size_t ret; @@ -182,11 +182,11 @@ } int -__iconv_get_list(char ***rlist, size_t *rsz, bool l) +__iconv_get_list(char ***rlist, size_t *rsz, bool sorted) { int ret; - ret = _citrus_esdb_get_list(rlist, rsz, l); + ret = _citrus_esdb_get_list(rlist, rsz, sorted); if (ret) { errno = ret; return -1; @@ -204,19 +204,57 @@ /* * GNU-compatibile non-standard interfaces. */ +static int +qsort_helper(const void *first, const void *second) +{ + const char * const *s1 = (const char * const *)first; + const char * const *s2 = (const char * const *)second; + + return (strcmp(*s1, *s2)); +} + void -iconvlist(int (*do_one) (unsigned int, const char * const *, +libiconvlist(int (*do_one) (unsigned int, const char * const *, void *), void *data) { char **list; + char *curkey, *curitem, *slashpos; + char **names; size_t sz; + unsigned int i = 0, j; + const char * const *np; if (__iconv_get_list(&list, &sz, true)) list = NULL; - - const char * const * names = (const char * const *)list; - unsigned int i = sz; - do_one(i, names, data); + qsort((void *)list, sz, sizeof(char *), qsort_helper); + while (i < sz) { + j = 0; + slashpos = strchr(list[i], '/'); + curkey = (char *)malloc(slashpos - list[i] + 2); + names = (char **)malloc(sz * sizeof(char *)); + if ((curkey == NULL) || (names == NULL)) { + __iconv_free_list(list, sz); + return; + } + strlcpy(curkey, list[i], slashpos - list[i] + 1); + names[j++] = strdup(curkey); + for (; (i < sz) && (memcmp(curkey, list[i], strlen(curkey)) == 0); i++) { + slashpos = strchr(list[i], '/'); + curitem = (char *)malloc(strlen(slashpos) + 1); + if (curitem == NULL) { + __iconv_free_list(list, sz); + return; + } + strlcpy(curitem, &slashpos[1], strlen(slashpos) + 1); + if (strcmp(curkey, curitem) == 0) { + continue; + } + names[j++] = strdup(curitem); + } + np = (const char * const *)names; + do_one(j, np, data); + free(names); + } __iconv_free_list(list, sz); } @@ -228,7 +266,7 @@ } int -iconvctl(iconv_t cd, int request, void *argument) +libiconvctl(iconv_t cd, int request, void *argument) { int *i = (int *)argument; struct iconv_hooks *hooks = (struct iconv_hooks *)argument; ==== //depot/projects/soc2009/gabor_iconv/extracted/lib/libiconv_modules/iconv_std/citrus_iconv_std.c#9 (text+ko) ==== @@ -304,8 +304,7 @@ static int /*ARGSUSED*/ do_conv(const struct _citrus_iconv_std_shared *is, - _csid_t *csid, _index_t *idx, - bool discard_ilseq) + _csid_t *csid, _index_t *idx) { _index_t tmpidx; int ret; @@ -327,8 +326,6 @@ case _MAPPER_CONVERT_SRC_MORE: /*FALLTHROUGH*/ case _MAPPER_CONVERT_DST_MORE: - if (discard_ilseq) - continue; case _MAPPER_CONVERT_ILSEQ: return EILSEQ; case _MAPPER_CONVERT_FATAL: @@ -543,12 +540,13 @@ goto err; } /* convert the character */ - ret = do_conv(is, &csid, &idx, cv->cv_shared->ci_discard_ilseq); + ret = do_conv(is, &csid, &idx); if (ret) { if (ret == E_NO_CORRESPONDING_CHAR) { inval++; szrout = 0; - if ((flags&_CITRUS_ICONV_F_HIDE_INVALID)==0 && + if ((((flags & _CITRUS_ICONV_F_HIDE_INVALID) == 0) + && !cv->cv_shared->ci_discard_ilseq) && is->is_use_invalid) { ret = wctombx(&sc->sc_dst_encoding, *out, *outbytes, ==== //depot/projects/soc2009/gabor_iconv/extracted/share/i18n/esdb/Makefile.part#8 (text+ko) ==== @@ -54,7 +54,7 @@ echo "# ${CODE}" > $@ .for i in ${PART:S/:/@/} .for j in ${${CODE}_$i_aliases} - printf "%-32s%s\n" "$j" "${EPREFIX}${i:S/@/:/}" >> $@ + printf "%-48s%s\n" "$j" "${EPREFIX}${i:S/@/:/}" >> $@ .endfor .endfor echo >> $@ ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/Makefile#7 (text+ko) ==== @@ -142,10 +142,10 @@ .endif -GEN_FWD?= ${.CURDIR}/tablegen/tablegen -GEN_REV?= ${.CURDIR}/tablegen/tablegen -r -REF_FWD?= ${.CURDIR}/refgen/refgen -REF_REV?= ${.CURDIR}/refgen/refgen -r +GEN_FWD?= ${.CURDIR}/tablegen/tablegen -t +GEN_REV?= ${.CURDIR}/tablegen/tablegen -tr +REF_FWD?= ${.CURDIR}/refgen/refgen -t +REF_REV?= ${.CURDIR}/refgen/refgen -tr CMP?= ${.CURDIR}/tablegen/cmp.sh make-ref: refgen ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/gnu/gnu.c#3 (text+ko) ==== @@ -271,7 +271,7 @@ { struct iconv_hooks hooks; iconv_t cd; - const char *s = "dwef23fwe"; + const char *s = "Hello World!"; const char **inptr = &s; size_t inbytesleft, outbytesleft = 40; char *outbuf; @@ -284,7 +284,7 @@ outptr = &outbuf; inbytesleft = sizeof(s); - cd = iconv_open("Shift_JIS", "UTF-8"); + cd = iconv_open("SHIFT_JIS", "ASCII"); if (cd == (iconv_t)-1) return (-1); if (iconvctl(cd, ICONV_SET_HOOKS, (void *)&hooks) != 0) @@ -408,8 +408,10 @@ static void test(int (tester) (void), const char * label) { - if (tester()) - printf("%s failed\n", label); + int ret; + + if (ret = tester()) + printf("%s failed (%d)\n", label, ret); else printf("%s succeeded\n", label); } ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/posix/posix.c#3 (text+ko) ==== @@ -244,8 +244,10 @@ static void test(int (tester) (void), const char * label) { - if (tester()) - printf("%s failed\n", label); + int ret; + + if (ret = tester()) + printf("%s failed (%d)\n", label, ret); else printf("%s succeeded\n", label); } ==== //depot/projects/soc2009/gabor_iconv/extracted/tools/test/iconv/ref/ARMSCII-8#2 (text+ko) ==== @@ -1,254 +1,254 @@ -0x00 = 0x00000000 -0x01 = 0x00000001 -0x02 = 0x00000002 -0x03 = 0x00000003 -0x04 = 0x00000004 -0x05 = 0x00000005 -0x06 = 0x00000006 -0x07 = 0x00000007 -0x08 = 0x00000008 -0x09 = 0x00000009 -0x0A = 0x0000000A -0x0B = 0x0000000B -0x0C = 0x0000000C -0x0D = 0x0000000D -0x0E = 0x0000000E -0x0F = 0x0000000F -0x10 = 0x00000010 -0x11 = 0x00000011 -0x12 = 0x00000012 -0x13 = 0x00000013 -0x14 = 0x00000014 -0x15 = 0x00000015 -0x16 = 0x00000016 -0x17 = 0x00000017 -0x18 = 0x00000018 -0x19 = 0x00000019 -0x1A = 0x0000001A -0x1B = 0x0000001B -0x1C = 0x0000001C -0x1D = 0x0000001D -0x1E = 0x0000001E -0x1F = 0x0000001F -0x20 = 0x00000020 -0x21 = 0x00000021 -0x22 = 0x00000022 -0x23 = 0x00000023 >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Fri Jan 22 21:28:56 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5C0AB1065697; Fri, 22 Jan 2010 21:28: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 20AC81065693 for ; Fri, 22 Jan 2010 21:28:56 +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 0DEC68FC14 for ; Fri, 22 Jan 2010 21:28: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 o0MLStlL020381 for ; Fri, 22 Jan 2010 21:28:55 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MLSt8d020379 for perforce@freebsd.org; Fri, 22 Jan 2010 21:28:55 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 22 Jan 2010 21:28:55 GMT Message-Id: <201001222128.o0MLSt8d020379@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 Precedence: bulk Cc: Subject: PERFORCE change 173542 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 21:28:56 -0000 http://p4web.freebsd.org/chv.cgi?CH=173542 Change 173542 by hselasky@hselasky_laptop001 on 2010/01/22 21:28:24 USB quirks: - fix bad Mitsumi quirk. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#20 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#20 (text+ko) ==== @@ -260,8 +260,7 @@ UQ_MSC_FORCE_PROTO_SCSI), USB_QUIRK(MITSUMI, CDRRW, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI | UQ_MSC_FORCE_PROTO_ATAPI), - USB_QUIRK(MITSUMI, FDD, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, - UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN), + USB_QUIRK(MITSUMI, FDD, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN), USB_QUIRK(MOTOROLA2, E398, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_INQUIRY_EVPD, UQ_MSC_NO_GETMAXLUN), From owner-p4-projects@FreeBSD.ORG Fri Jan 22 21:38:05 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D13AB1065692; Fri, 22 Jan 2010 21:38: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 7D303106566B for ; Fri, 22 Jan 2010 21:38:05 +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 6A2628FC23 for ; Fri, 22 Jan 2010 21:38: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 o0MLc5iC021368 for ; Fri, 22 Jan 2010 21:38:05 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0MLc5Qm021366 for perforce@freebsd.org; Fri, 22 Jan 2010 21:38:05 GMT (envelope-from hselasky@FreeBSD.org) Date: Fri, 22 Jan 2010 21:38:05 GMT Message-Id: <201001222138.o0MLc5Qm021366@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 Precedence: bulk Cc: Subject: PERFORCE change 173543 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 22 Jan 2010 21:38:06 -0000 http://p4web.freebsd.org/chv.cgi?CH=173543 Change 173543 by hselasky@hselasky_laptop001 on 2010/01/22 21:37:32 USB storage: - make CBI mode more fault tolerant. - patch by HPS. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#45 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/storage/umass.c#45 (text+ko) ==== @@ -673,7 +673,7 @@ .type = UE_INTERRUPT, .endpoint = UE_ADDR_ANY, .direction = UE_DIR_IN, - .flags = {.short_xfer_ok = 1,}, + .flags = {.short_xfer_ok = 1,.no_pipe_ok = 1,}, .bufsize = sizeof(umass_cbi_sbl_t), .callback = &umass_t_cbi_status_callback, .timeout = 5000, /* ms */ @@ -986,9 +986,7 @@ err = usbd_transfer_setup(uaa->device, &uaa->info.bIfaceIndex, sc->sc_xfer, umass_cbi_config, - (sc->sc_proto & UMASS_PROTO_CBI_I) ? - UMASS_T_CBI_MAX : (UMASS_T_CBI_MAX - 2), sc, - &sc->sc_mtx); + UMASS_T_CBI_MAX, sc, &sc->sc_mtx); /* skip reset first time */ sc->sc_last_xfer_index = UMASS_T_CBI_COMMAND; @@ -1678,7 +1676,7 @@ switch (USB_GET_STATE(xfer)) { case USB_ST_TRANSFERRED: umass_transfer_start(sc, UMASS_T_CBI_RESET2); - return; + break; case USB_ST_SETUP: /* @@ -1725,11 +1723,14 @@ usbd_xfer_set_frame_len(xfer, 1, sizeof(buf)); usbd_xfer_set_frames(xfer, 2); usbd_transfer_submit(xfer); - return; + break; default: /* Error */ - umass_tr_error(xfer, error); - return; + if (error == USB_ERR_CANCELLED) + umass_tr_error(xfer, error); + else + umass_transfer_start(sc, UMASS_T_CBI_RESET2); + break; } } @@ -1774,17 +1775,17 @@ } else { umass_transfer_start(sc, next_xfer); } - return; + break; case USB_ST_SETUP: if (usbd_clear_stall_callback(xfer, sc->sc_xfer[stall_xfer])) { goto tr_transferred; /* should not happen */ } - return; + break; default: /* Error */ umass_tr_error(xfer, error); - return; + break; } } @@ -1807,7 +1808,7 @@ (sc, (sc->sc_transfer.dir == DIR_IN) ? UMASS_T_CBI_DATA_READ : UMASS_T_CBI_DATA_WRITE); } - return; + break; case USB_ST_SETUP: @@ -1846,12 +1847,13 @@ usbd_transfer_submit(xfer); } - return; + break; default: /* Error */ umass_tr_error(xfer, error); - return; - + /* skip reset */ + sc->sc_last_xfer_index = UMASS_T_CBI_COMMAND; + break; } } @@ -1887,7 +1889,7 @@ if (sc->sc_transfer.data_rem == 0) { umass_cbi_start_status(sc); - return; + break; } if (max_bulk > sc->sc_transfer.data_rem) { max_bulk = sc->sc_transfer.data_rem; @@ -1901,7 +1903,7 @@ usbd_xfer_set_frame_len(xfer, 0, max_bulk); #endif usbd_transfer_submit(xfer); - return; + break; default: /* Error */ if ((error == USB_ERR_CANCELLED) || @@ -1910,7 +1912,7 @@ } else { umass_transfer_start(sc, UMASS_T_CBI_DATA_RD_CS); } - return; + break; } } @@ -1950,7 +1952,7 @@ if (sc->sc_transfer.data_rem == 0) { umass_cbi_start_status(sc); - return; + break; } if (max_bulk > sc->sc_transfer.data_rem) { max_bulk = sc->sc_transfer.data_rem; @@ -1967,7 +1969,7 @@ #endif usbd_transfer_submit(xfer); - return; + break; default: /* Error */ if ((error == USB_ERR_CANCELLED) || @@ -1976,7 +1978,7 @@ } else { umass_transfer_start(sc, UMASS_T_CBI_DATA_WR_CS); } - return; + break; } } @@ -2037,7 +2039,7 @@ (sc->sc_transfer.callback) (sc, ccb, residue, status); - return; + break; } else { @@ -2062,7 +2064,7 @@ (sc->sc_transfer.callback) (sc, ccb, residue, status); - return; + break; } } @@ -2072,13 +2074,13 @@ tr_setup: usbd_xfer_set_frame_len(xfer, 0, usbd_xfer_max_len(xfer)); usbd_transfer_submit(xfer); - return; + break; default: /* Error */ DPRINTF(sc, UDMASS_CBI, "Failed to read CSW: %s\n", usbd_errstr(error)); umass_tr_error(xfer, error); - return; + break; } } From owner-p4-projects@FreeBSD.ORG Sat Jan 23 11:09:40 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4D4811065670; Sat, 23 Jan 2010 11:09: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 11C3F106566B for ; Sat, 23 Jan 2010 11:09:39 +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 BD0C88FC1F for ; Sat, 23 Jan 2010 11:09: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 o0NB9dvC035705 for ; Sat, 23 Jan 2010 11:09:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0NB9dlO035703 for perforce@freebsd.org; Sat, 23 Jan 2010 11:09:39 GMT (envelope-from hselasky@FreeBSD.org) Date: Sat, 23 Jan 2010 11:09:39 GMT Message-Id: <201001231109.o0NB9dlO035703@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 Precedence: bulk Cc: Subject: PERFORCE change 173571 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jan 2010 11:09:40 -0000 http://p4web.freebsd.org/chv.cgi?CH=173571 Change 173571 by hselasky@hselasky_laptop001 on 2010/01/23 11:09:05 USB storage: - patch from mav @ to fix Mitsumi floppy drives. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#21 edit .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#46 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#21 (text+ko) ==== @@ -260,7 +260,6 @@ UQ_MSC_FORCE_PROTO_SCSI), USB_QUIRK(MITSUMI, CDRRW, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI | UQ_MSC_FORCE_PROTO_ATAPI), - USB_QUIRK(MITSUMI, FDD, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN), USB_QUIRK(MOTOROLA2, E398, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_INQUIRY_EVPD, UQ_MSC_NO_GETMAXLUN), ==== //depot/projects/usb/src/sys/dev/usb/storage/umass.c#46 (text+ko) ==== @@ -2671,11 +2671,19 @@ default: /* - * the wire protocol failed and will have recovered - * (hopefully). We return an error to CAM and let CAM retry - * the command if necessary. + * The wire protocol failed and will hopefully have + * recovered. We return an error to CAM and let CAM + * retry the command if necessary. In case of SCSI IO + * commands we ask the CAM layer to check the + * condition first. This is a quick hack to make + * certain devices work. */ - ccb->ccb_h.status = CAM_REQ_CMP_ERR; + 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; + } xpt_done(ccb); break; } From owner-p4-projects@FreeBSD.ORG Sat Jan 23 12:04:35 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5524A106568B; Sat, 23 Jan 2010 12:04: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 16D961065679 for ; Sat, 23 Jan 2010 12:04:35 +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 DE8628FC0A for ; Sat, 23 Jan 2010 12:04: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 o0NC4Ytk040867 for ; Sat, 23 Jan 2010 12:04:34 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0NC4Y0H040865 for perforce@freebsd.org; Sat, 23 Jan 2010 12:04:34 GMT (envelope-from mav@freebsd.org) Date: Sat, 23 Jan 2010 12:04:34 GMT Message-Id: <201001231204.o0NC4Y0H040865@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 Precedence: bulk Cc: Subject: PERFORCE change 173574 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jan 2010 12:04:35 -0000 http://p4web.freebsd.org/chv.cgi?CH=173574 Change 173574 by mav@mav_mavtest on 2010/01/23 12:04:14 Fix wrong #ifdef. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_all.c#14 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/scsi/scsi_all.c#14 (text+ko) ==== @@ -2880,7 +2880,7 @@ } } } -#ifdef KERNEL +#ifdef _KERNEL if (bootverbose) sense_flags |= SF_PRINT_ALWAYS; #endif From owner-p4-projects@FreeBSD.ORG Sat Jan 23 12:21:54 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E12B71065692; Sat, 23 Jan 2010 12:21: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 A5C9B106568D for ; Sat, 23 Jan 2010 12:21:53 +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 930BD8FC1D for ; Sat, 23 Jan 2010 12:21:53 +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 o0NCLqIw042151 for ; Sat, 23 Jan 2010 12:21:52 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0NCLqxJ042149 for perforce@freebsd.org; Sat, 23 Jan 2010 12:21:52 GMT (envelope-from mav@freebsd.org) Date: Sat, 23 Jan 2010 12:21:52 GMT Message-Id: <201001231221.o0NCLqxJ042149@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 Precedence: bulk Cc: Subject: PERFORCE change 173575 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jan 2010 12:21:54 -0000 http://p4web.freebsd.org/chv.cgi?CH=173575 Change 173575 by mav@mav_mavtest on 2010/01/23 12:21:11 Turn KASSERTs into printfs. It is not so bad to crash system there. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#143 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#143 (text+ko) ==== @@ -4187,10 +4187,11 @@ xpt_release_devq_device(struct cam_ed *dev, cam_rl rl, u_int count, int run_queue) { - KASSERT(count <= dev->ccbq.queue.qfrozen_cnt[rl], - ("xpt_release_devq: requested %u > present %u\n", - count, dev->ccbq.queue.qfrozen_cnt[rl])); - count = min(count, dev->ccbq.queue.qfrozen_cnt[rl]); + if (count > dev->ccbq.queue.qfrozen_cnt[rl]) { + printf("xpt_release_devq(%d): requested %u > present %u\n", + rl, count, dev->ccbq.queue.qfrozen_cnt[rl]); + count = dev->ccbq.queue.qfrozen_cnt[rl]; + } dev->sim->devq->alloc_openings -= cam_ccbq_release(&dev->ccbq, rl, count); if (cam_ccbq_frozen(&dev->ccbq, CAM_PRIORITY_TO_RL( @@ -4231,10 +4232,10 @@ mtx_assert(sim->mtx, MA_OWNED); sendq = &(sim->devq->send_queue); - KASSERT(sendq->qfrozen_cnt[0] > 0, - ("xpt_release_simq: requested 1 > present %u\n", - sendq->qfrozen_cnt[0])); - if (sendq->qfrozen_cnt[0] > 0) + if (sendq->qfrozen_cnt[0] <= 0) { + printf("xpt_release_simq: requested 1 > present %u\n", + sendq->qfrozen_cnt[0]); + } else sendq->qfrozen_cnt[0]--; if (sendq->qfrozen_cnt[0] == 0) { /* From owner-p4-projects@FreeBSD.ORG Sat Jan 23 21:19:11 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4ED091065670; Sat, 23 Jan 2010 21:19: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 EF632106566C for ; Sat, 23 Jan 2010 21:19:10 +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 DCDD08FC0A for ; Sat, 23 Jan 2010 21:19: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 o0NLJArt024724 for ; Sat, 23 Jan 2010 21:19:10 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0NLJAoR024722 for perforce@freebsd.org; Sat, 23 Jan 2010 21:19:10 GMT (envelope-from mav@freebsd.org) Date: Sat, 23 Jan 2010 21:19:10 GMT Message-Id: <201001232119.o0NLJAoR024722@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 Precedence: bulk Cc: Subject: PERFORCE change 173593 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jan 2010 21:19:11 -0000 http://p4web.freebsd.org/chv.cgi?CH=173593 Change 173593 by mav@mav_mavtest on 2010/01/23 21:18:38 More fixes to freeze/scheduling code. Affected files ... .. //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#144 edit Differences ... ==== //depot/projects/scottl-camlock/src/sys/cam/cam_xpt.c#144 (text+ko) ==== @@ -3202,8 +3202,9 @@ CAM_DEBUG_PRINT(CAM_DEBUG_XPT, ("changed priority to %d\n", new_priority)); - } - retval = 0; + retval = 1; + } else + retval = 0; } else { /* New entry on the queue */ if (new_priority < old_priority) @@ -3247,15 +3248,6 @@ qinfo = (struct cam_ed_qinfo *)camq_remove(&devq->alloc_queue, CAMQ_HEAD); device = qinfo->device; - - /* - * If the device has been "frozen", don't attempt - * to run it. - */ - if (cam_ccbq_frozen(&device->ccbq, - CAM_PRIORITY_TO_RL(qinfo->pinfo.priority)) > 0) - continue; - CAM_DEBUG_PRINT(CAM_DEBUG_XPT, ("running device %p\n", device)); @@ -3316,14 +3308,6 @@ qinfo = (struct cam_ed_qinfo *)camq_remove(&devq->send_queue, CAMQ_HEAD); device = qinfo->device; - - /* - * If the device has been "frozen", don't attempt - * to run it. - */ - if (cam_ccbq_frozen_top(&device->ccbq) > 0) - continue; - CAM_DEBUG_PRINT(CAM_DEBUG_XPT, ("running device %p\n", device)); @@ -4134,11 +4118,25 @@ u_int32_t xpt_freeze_devq_rl(struct cam_path *path, cam_rl rl, u_int count) { + struct cam_ed *dev = path->device; mtx_assert(path->bus->sim->mtx, MA_OWNED); - path->device->sim->devq->alloc_openings += - cam_ccbq_freeze(&path->device->ccbq, rl, count); - return (path->device->ccbq.queue.qfrozen_cnt[rl]); + dev->sim->devq->alloc_openings += + cam_ccbq_freeze(&dev->ccbq, rl, count); + /* Remove frozen device from allocq. */ + if (device_is_alloc_queued(dev) && + cam_ccbq_frozen(&dev->ccbq, CAM_PRIORITY_TO_RL( + CAMQ_GET_PRIO(&dev->drvq)))) { + camq_remove(&dev->sim->devq->alloc_queue, + dev->alloc_ccb_entry.pinfo.index); + } + /* Remove frozen device from sendq. */ + if (device_is_send_queued(dev) && + cam_ccbq_frozen_top(&dev->ccbq)) { + camq_remove(&dev->sim->devq->send_queue, + dev->send_ccb_entry.pinfo.index); + } + return (dev->ccbq.queue.qfrozen_cnt[rl]); } u_int32_t @@ -4196,8 +4194,8 @@ cam_ccbq_release(&dev->ccbq, rl, count); if (cam_ccbq_frozen(&dev->ccbq, CAM_PRIORITY_TO_RL( CAMQ_GET_PRIO(&dev->drvq))) == 0) { - xpt_schedule_dev_allocq(dev->target->bus, dev); - xpt_run_dev_allocq(dev->target->bus); + if (xpt_schedule_dev_allocq(dev->target->bus, dev)) + xpt_run_dev_allocq(dev->target->bus); } if (cam_ccbq_frozen_top(&dev->ccbq) == 0) { /* @@ -4960,21 +4958,19 @@ cam_ccbq_ccb_done(&dev->ccbq, (union ccb *)ccb_h); ccb_h->path->bus->sim->devq->send_active--; ccb_h->path->bus->sim->devq->send_openings++; + runq = TRUE; if (((dev->flags & CAM_DEV_REL_ON_COMPLETE) != 0 && (ccb_h->status&CAM_STATUS_MASK) != CAM_REQUEUE_REQ) || ((dev->flags & CAM_DEV_REL_ON_QUEUE_EMPTY) != 0 && (dev->ccbq.dev_active == 0))) { - xpt_release_devq(ccb_h->path, /*count*/1, - /*run_queue*/TRUE); + /*run_queue*/FALSE); } if ((dev->flags & CAM_DEV_TAG_AFTER_COUNT) != 0 && (--dev->tag_delay_count == 0)) xpt_start_tags(ccb_h->path); - - runq = xpt_schedule_dev_sendq(ccb_h->path->bus, dev); } if (ccb_h->status & CAM_RELEASE_SIMQ) { From owner-p4-projects@FreeBSD.ORG Sat Jan 23 22:25:17 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B18361065672; Sat, 23 Jan 2010 22:25: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 75D3A106566C for ; Sat, 23 Jan 2010 22:25:17 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 621B28FC16 for ; Sat, 23 Jan 2010 22:25: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 o0NMPHOJ031054 for ; Sat, 23 Jan 2010 22:25:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0NMPHaE031052 for perforce@freebsd.org; Sat, 23 Jan 2010 22:25:17 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sat, 23 Jan 2010 22:25:17 GMT Message-Id: <201001232225.o0NMPHaE031052@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 173596 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jan 2010 22:25:17 -0000 http://p4web.freebsd.org/chv.cgi?CH=173596 Change 173596 by rwatson@rwatson_cinnamon on 2010/01/23 22:25:15 Don't allow VOP_SETATTR() on fdescfs -- we could build up a capability rights mask for the operations it represents, but it actually isn't very coherent conceptually. For example, you can chmod /dev/fd/X if that fd refers to a file, but if you stat() you don't see the file's mode. Affected files ... .. //depot/projects/trustedbsd/capabilities/src/sys/fs/fdescfs/fdesc_vnops.c#8 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/sys/fs/fdescfs/fdesc_vnops.c#8 (text+ko) ==== @@ -391,6 +391,8 @@ struct ucred *a_cred; } */ *ap; { + +#if 0 struct vnode *vp = ap->a_vp; struct vattr *vap = ap->a_vap; @@ -430,6 +432,9 @@ vp->v_type = vap->va_type; return (0); +#else + return (EOPNOTSUPP); +#endif } static int From owner-p4-projects@FreeBSD.ORG Sat Jan 23 23:46:39 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A5630106568D; Sat, 23 Jan 2010 23:46: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 69F3E1065679 for ; Sat, 23 Jan 2010 23:46:39 +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 572248FC13 for ; Sat, 23 Jan 2010 23:46: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 o0NNkdEe038036 for ; Sat, 23 Jan 2010 23:46:39 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0NNkdc0038034 for perforce@freebsd.org; Sat, 23 Jan 2010 23:46:39 GMT (envelope-from hselasky@FreeBSD.org) Date: Sat, 23 Jan 2010 23:46:39 GMT Message-Id: <201001232346.o0NNkdc0038034@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 Precedence: bulk Cc: Subject: PERFORCE change 173601 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 23 Jan 2010 23:46:39 -0000 http://p4web.freebsd.org/chv.cgi?CH=173601 Change 173601 by hselasky@hselasky_laptop001 on 2010/01/23 23:46:26 USB quirk: - add new quirk PR: usb/143139 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#22 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#101 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#22 (text+ko) ==== @@ -169,6 +169,7 @@ USB_QUIRK(CENTURY, EX35QUAT, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_FORCE_SHORT_INQ, UQ_MSC_NO_START_STOP, UQ_MSC_IGNORE_RESIDUE), + USB_QUIRK(CENTURY, EX35SW4_SB4, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(CYPRESS, XX6830XX, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(DESKNOTE, UCR_61S2B, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#101 (text+ko) ==== @@ -1117,6 +1117,7 @@ /* Century products */ product CENTURY EX35QUAT 0x011e Century USB Disk Enclosure +product CENTURY EX35SW4_SB4 0x011f Century USB Disk Enclosure /* Cherry products */ product CHERRY MY3000KBD 0x0001 My3000 keyboard