From owner-p4-projects@FreeBSD.ORG Sun Oct 31 12:29:41 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C5291065679; Sun, 31 Oct 2010 12:29: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 469F3106566C for ; Sun, 31 Oct 2010 12:29:41 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 332ED8FC08 for ; Sun, 31 Oct 2010 12:29:41 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o9VCTfLL007714 for ; Sun, 31 Oct 2010 12:29:41 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o9VCTerD007711 for perforce@freebsd.org; Sun, 31 Oct 2010 12:29:40 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 31 Oct 2010 12:29:40 GMT Message-Id: <201010311229.o9VCTerD007711@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185266 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, 31 Oct 2010 12:29:41 -0000 http://p4web.freebsd.org/@@185266?ac=10 Change 185266 by rene@rene_acer on 2010/10/31 12:29:26 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#17 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/mailing-lists.ent#14 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml#14 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/eresources/chapter.sgml#17 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -539,6 +539,11 @@ + &a.toolchain.name; + Maintenance of &os;'s integrated toolchain + + + &a.usb.name; Discussing &os; support for USB @@ -1646,6 +1651,21 @@ + &a.toolchain.name; + + + Maintenance of FreeBSD's integrated + toolchain + + This is the mailing list for discussions related to + the maintenance of the toolchain shipped with &os;. This + could include the state of Clang and GCC, but also pieces + of software such as assemblers, linkers and + debuggers. + + + + &a.usb.name; ==== //depot/projects/docproj_nl/en_US.ISO8859-1/share/sgml/mailing-lists.ent#14 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -475,6 +475,10 @@ FreeBSD tokenring mailing list"> freebsd-tokenring"> + +FreeBSD integrated toolchain mailing list"> +freebsd-toolchain"> + FreeBSD USB mailing list"> freebsd-usb"> ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml#14 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -653,6 +653,12 @@ + &a.toolchain.name; + + Onderhoud van de ingebouwde toolchain van &os; + + + &a.usb.name; Discussie over &os;-ondersteuning voor USB @@ -1870,6 +1876,19 @@ + &a.toolchain.name; + + + Onderhoud van de ingebouwde toolchain van &os; + + Dit is de mailinglijst bedoeld voor discussies over het + onderhoud van de toolchain die met &os; wordt geleverd. Dit zou + de toestand van Clang en GCC kunnen omvatten, maar ook software + als assemblers, linkers en debuggers. + + + + &a.usb.name; ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent#20 (text+ko) ==== @@ -5,89 +5,89 @@ Vertaald door: Siebrand Mazeland %SOURCE% en_US.ISO8859-1/share/sgml/mailing-lists.ent - %SRCID% 1.70 + %SRCID% 1.71 --> -FreeBSD lijstserver"> +&os; nlijstserver"> &a.mailman.listinfo;"> -FreeBSD ACPI mailinglijst"> +&os; ACPI mailinglijst"> freebsd-acpi"> -FreeBSD steun mailinglijst"> +&os; steun mailinglijst"> freebsd-advocacy"> -FreeBSD AFS porting mailinglijst"> +&os; AFS porting mailinglijst"> freebsd-afs"> -FreeBSD Adaptec AIC7xxx discussies mailinglijst"> +&os; Adaptec AIC7xxx discussies mailinglijst"> freebsd-aic7xxx"> -FreeBSD Alpha porting mailinglijst"> +&os; Alpha porting mailinglijst"> freebsd-alpha"> -FreeBSD porten naar AMD64 systemen"> +&os; porten naar AMD64 systemen"> freebsd-amd64"> -FreeBSD aankondigingen mailinglijst"> +&os; aankondigingen mailinglijst"> freebsd-announce"> -FreeBSD Apache mailinglijst"> +&os; Apache mailinglijst"> freebsd-apache"> -FreeBSD architectuur en ontwerp mailinglijst"> +&os; architectuur en ontwerp mailinglijst"> freebsd-arch"> -FreeBSD ARM porting mailinglijst"> +&os; ARM porting mailinglijst"> freebsd-arm"> -FreeBSD ATM netwerken mailinglijst"> +&os; ATM netwerken mailinglijst"> freebsd-atm"> -FreeBSD broncode audit mailinglijst"> +&os; broncode audit mailinglijst"> freebsd-audit"> -FreeBSD binair updatesysteem systeem mailinglijst"> +&os; binair updatesysteem systeem mailinglijst"> freebsd-binup"> -FreeBSD Bluetooth mailinglijst"> +&os; Bluetooth mailinglijst"> freebsd-bluetooth"> -FreeBSD bugbusters mailinglijst"> +&os; bugbusters mailinglijst"> freebsd-bugbusters"> -FreeBSD problem reports mailinglijst"> +&os; problem reports mailinglijst"> freebsd-bugs"> -FreeBSD babbel mailinglijst"> +&os; babbel mailinglijst"> freebsd-chat"> -FreeBSD clustering mailinglijst"> +&os; clustering mailinglijst"> freebsd-cluster"> - + - + @@ -115,160 +115,160 @@ ctm-users"> -FreeBSD CVS commitberichten mailinglijst"> +&os; CVS commitberichten mailinglijst"> cvs-all"> -FreeBSD CVS doc commitlijst"> +&os; CVS doc commitlijst"> cvs-doc"> -FreeBSD CVS ports commitlijst"> +&os; CVS ports commitlijst"> cvs-ports"> -FreeBSD CVS projecten commitlijst"> +&os; CVS projecten commitlijst"> cvs-projects"> -FreeBSD CVS src commitlijst"> +&os; CVS src commitlijst"> cvs-src"> -FreeBSD CVSweb beheer mailinglijst"> +&os; CVSweb beheer mailinglijst"> freebsd-cvsweb"> -FreeBSD gebaseerde Databases mailinglijst"> +&os; gebaseerde Databases mailinglijst"> freebsd-database"> - + -FreeBSD documentatieproject mailinglijst"> +&os; documentatieproject mailinglijst"> freebsd-doc"> - + - + -Apparaatstuurprogramma's schrijven voor FreeBSD"> +Apparaatstuurprogramma's schrijven voor &os;"> freebsd-drivers"> -FreeBSD gebruikers van Eclipse IDE, hulpprogramma's, clientapplicaties en ports"> +&os; gebruikers van Eclipse IDE, hulpprogramma's, clientapplicaties en ports"> freebsd-eclipse"> -FreeBSD-embedded mailinglijst"> +&os;-embedded mailinglijst"> freebsd-embedded"> -FreeBSD-emulatie mailinglijst"> +&os;-emulatie mailinglijst"> freebsd-emulation"> -FreeBSD-eol mailinglijst"> +&os;-eol mailinglijst"> freebsd-eol"> -FreeBSD FireWire (IEEE 1394) discussion mailinglijst"> +&os; FireWire (IEEE 1394) discussion mailinglijst"> freebsd-firewire"> -FreeBSD bestandssysteem project mailinglijst"> +&os; bestandssysteem project mailinglijst"> freebsd-fs"> -FreeBSD gecko mailinglijst"> +&os; gecko mailinglijst"> freebsd-gecko"> -FreeBSD GEOM mailinglijst"> +&os; GEOM mailinglijst"> freebsd-geom"> -FreeBSD GNOME and GNOME applications mailinglijst"> +&os; GNOME and GNOME applications mailinglijst"> freebsd-gnome"> -FreeBSD technische discussie mailinglijst"> +&os; technische discussie mailinglijst"> freebsd-hackers"> -FreeBSD hardware and apparatuur mailinglijst"> +&os; hardware and apparatuur mailinglijst"> freebsd-hardware"> -FreeBSD mirror sites mailinglijsts"> +&os; mirror sites mailinglijsts"> freebsd-hubs"> -FreeBSD internationalisatie mailinglijst"> +&os; internationalisatie mailinglijst"> freebsd-i18n"> -FreeBSD i386-specifieke onderwerpen mailinglijst"> +&os; i386-specifieke onderwerpen mailinglijst"> freebsd-i386"> -FreeBSD IA32 porting mailinglijst"> +&os; IA32 porting mailinglijst"> freebsd-ia32"> -FreeBSD IA64 porting mailinglijst"> +&os; IA64 porting mailinglijst"> freebsd-ia64"> -FreeBSD IPFW code mailinglijst"> +&os; IPFW code mailinglijst"> freebsd-ipfw"> -FreeBSD ISDN mailinglijst"> +&os; ISDN mailinglijst"> freebsd-isdn"> -FreeBSD Internet service provider mailinglijst"> +&os; Internet service provider mailinglijst"> freebsd-isp"> -FreeBSD jails mailinglijst"> +&os; jails mailinglijst"> freebsd-jail"> -FreeBSD Java Language mailinglijst"> +&os; Java Language mailinglijst"> freebsd-java"> -FreeBSD gerelateerd werk mailinglijst"> +&os; gerelateerd werk mailinglijst"> freebsd-jobs"> -FreeBSD KDE/Qt en KDE applicaties mailinglijst"> +&os; KDE/Qt en KDE applicaties mailinglijst"> freebsd-kde"> -FreeBSD LFS porting mailinglijst"> +&os; LFS porting mailinglijst"> freebsd-lfs"> -FreeBSD libh installatie and packagingsysteem mailinglijst"> +&os; libh installatie and packagingsysteem mailinglijst"> freebsd-libh"> -FreeBSD MIPS porting mailinglijst"> +&os; MIPS porting mailinglijst"> freebsd-mips"> -FreeBSD mirrorsite beheerders"> +&os; mirrorsite beheerders"> mirror-announce"> -FreeBSD laptop computer mailinglijst"> +&os; laptop computer mailinglijst"> freebsd-mobile"> @@ -276,123 +276,123 @@ freebsd-mono"> -FreeBSD port van de Mozilla browser mailinglijst"> +&os; port van de Mozilla browser mailinglijst"> freebsd-mozilla"> -FreeBSD multimedia mailinglijst"> +&os; multimedia mailinglijst"> freebsd-multimedia"> -FreeBSD netwerken mailinglijst"> +&os; netwerken mailinglijst"> freebsd-net"> -FreeBSD nieuwe gebruikers mailinglijst"> +&os; nieuwe gebruikers mailinglijst"> freebsd-newbies"> -FreeBSD new-bus mailinglijst"> +&os; new-bus mailinglijst"> freebsd-new-bus"> -FreeBSD OpenOffice mailinglijst"> +&os; OpenOffice mailinglijst"> freebsd-openoffice"> -FreeBSD prestaties mailinglijst"> +&os; prestaties mailinglijst"> freebsd-performance"> -FreeBSD Perl mailinglijst"> +&os; Perl mailinglijst"> freebsd-perl"> -FreeBSD pakketfilter mailinglijst"> +&os; pakketfilter mailinglijst"> freebsd-pf"> -FreeBSD niet-Intel platformen porting mailinglijst"> +&os; niet-Intel platformen porting mailinglijst"> freebsd-platforms"> -FreeBSD core team beleidsbeslissingen mailinglijst"> +&os; core team beleidsbeslissingen mailinglijst"> freebsd-policy"> -FreeBSD ports mailinglijst"> +&os; ports mailinglijst"> freebsd-ports"> -FreeBSD ports bugs mailinglijst"> +&os; ports bugs mailinglijst"> freebsd-ports-bugs"> - + - + -FreeBSD PowerPC porting mailinglijst"> +&os; PowerPC porting mailinglijst"> freebsd-ppc"> -Technische discussie over FreeBSD op HP ProLiant serverplatforms"> +Technische discussie over &os; op HP ProLiant serverplatforms"> freebsd-proliant"> -FreeBSD Python mailinglijst"> +&os; Python mailinglijst"> freebsd-python"> -FreeBSD Quality Assurance mailinglijst"> +&os; Quality Assurance mailinglijst"> freebsd-qa"> -FreeBSD algemene vragen mailinglijst"> +&os; algemene vragen mailinglijst"> freebsd-questions"> -FreeBSD boot script system mailinglijst"> +&os; boot script system mailinglijst"> freebsd-rc"> -FreeBSD realtime extensions mailinglijst"> +&os; realtime extensions mailinglijst"> freebsd-realtime"> -FreeBSD Ruby mailinglijst"> +&os; Ruby mailinglijst"> freebsd-ruby"> -FreeBSD SCSI subsysteem mailinglijst"> +&os; SCSI subsysteem mailinglijst"> freebsd-scsi"> -FreeBSD beveiliging mailinglijst"> +&os; beveiliging mailinglijst"> freebsd-security"> -FreeBSD beveiligingswaarschuwingen mailinglijst"> +&os; beveiligingswaarschuwingen mailinglijst"> freebsd-security-notifications"> -FreeBSD-small mailinglijst"> +&os;-small mailinglijst"> freebsd-small"> -FreeBSD symmetric multiprocessing mailinglijst"> +&os; symmetric multiprocessing mailinglijst"> freebsd-smp"> -FreeBSD SPARC porting mailinglijst"> +&os; SPARC porting mailinglijst"> freebsd-sparc64"> - + - + @@ -400,11 +400,11 @@ freebsd-stable"> -FreeBSD C99 en POSIX compliance mailinglijst"> +&os; C99 en POSIX compliance mailinglijst"> freebsd-standards"> -FreeBSD sun4v porting mailinglijst"> +&os; sun4v porting mailinglijst"> freebsd-sun4v"> @@ -464,35 +464,39 @@ freebsd-sysinstall"> -FreeBSD test mailinglijst"> +&os; test mailinglijst"> freebsd-test"> -FreeBSD prestaties en stabiliteit test mailinglijst"> +&os; prestaties en stabiliteit test mailinglijst"> freebsd-testing"> -FreeBSD threads mailinglijst"> +&os; threads mailinglijst"> freebsd-threads"> -FreeBSD tokenring mailinglijst"> +&os; tokenring mailinglijst"> freebsd-tokenring"> + +&os; geïntegreerde toolchain mailinglijst"> +freebsd-toolchain"> + -FreeBSD USB mailinglijst"> +&os; USB mailinglijst"> freebsd-usb"> -FreeBSD gebruikersgroep coördinatie mailinglijst"> +&os; gebruikersgroep coördinatie mailinglijst"> freebsd-user-groups"> -FreeBSD wederverkopers pre-release coördinatie mailinglijst"> +&os; wederverkopers pre-release coördinatie mailinglijst"> freebsd-vendors"> -Discussies over verscheidene virtualizatietechnieken ondersteund door FreeBSD"> +Discussies over verscheidene virtualizatietechnieken ondersteund door &os;"> freebsd-virtualization"> @@ -500,19 +504,19 @@ freebsd-vuxml"> -FreeBSD Werk-In-Uitvoering Status"> +&os; Werk-In-Uitvoering Status"> freebsd-wip-status"> -FreeBSD Webmaster mailinglijst"> +&os; Webmaster mailinglijst"> freebsd-www"> -FreeBSD X11 mailinglijst"> +&os; X11 mailinglijst"> freebsd-x11"> -FreeBSD port naar Xen mailinglijst"> +&os; port naar Xen mailinglijst"> freebsd-xen"> From owner-p4-projects@FreeBSD.ORG Sun Oct 31 16:33:15 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6647C1065672; Sun, 31 Oct 2010 16:33:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C6CD106566C for ; Sun, 31 Oct 2010 16:33:15 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 077AF8FC12 for ; Sun, 31 Oct 2010 16:33:15 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o9VGXFBg059015 for ; Sun, 31 Oct 2010 16:33:15 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o9VGXEWM059012 for perforce@freebsd.org; Sun, 31 Oct 2010 16:33:14 GMT (envelope-from dforsyth@FreeBSD.org) Date: Sun, 31 Oct 2010 16:33:14 GMT Message-Id: <201010311633.o9VGXEWM059012@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185272 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, 31 Oct 2010 16:33:15 -0000 http://p4web.freebsd.org/@@185272?ac=10 Change 185272 by dforsyth@skunk on 2010/10/31 16:32:24 Put conflicts back in. Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/Makefile#8 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.c#1 add .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/conflict.h#1 add .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#8 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#8 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_plist.c#7 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_plist.h#6 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#11 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#9 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_internal.h#8 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#3 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#7 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/Makefile#8 (text+ko) ==== @@ -17,7 +17,8 @@ util.c \ file.c \ depend.c \ - reqby.c + reqby.c \ + conflict.c CFLAGS+= -std=c99 ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#8 (text+ko) ==== @@ -60,9 +60,10 @@ }; #define CONTENTS 0x00000001 -#define DESCRIPTION 0x00000002 -#define COMMENT 0x00000004 -#define DISPLAY 0x00000008 +#define DESCRIPTION 0x00000002 +#define COMMENT 0x00000004 +#define DISPLAY 0x00000008 +#define REQUIRED_BY 0x00000008 static struct pkg_info { uint32_t info_mask; @@ -73,6 +74,7 @@ { DESCRIPTION, FBSD_METANAME_DESCRIPTION, "+DESC" }, { COMMENT, FBSD_METANAME_COMMENT, "+COMMENT" }, { DISPLAY, FBSD_METANAME_DISPLAY, "+DISPLAY" }, + { REQUIRED_BY, FBSD_METANAME_REQUIRED_BY, "+REQUIRED_BY" }, { 0, NULL, NULL }, }; @@ -80,17 +82,25 @@ struct pkg *, uint32_t); int fbsd_directorydb_finish(struct pkg_db *, struct pkg *); -static char *read_file(const char *); -static int _read_plist_cmp(struct _read_plist *, +static char *read_file(const char *); +static int _read_plist_cmp(struct _read_plist *, struct _read_plist *); -static int dselect(const struct dirent *); -static void fbsd_directorydb_pkg_setup(struct pkg_db *, +static int dselect(const struct dirent *); +static void fbsd_directorydb_pkg_setup(struct pkg_db *, struct pkg *, const char *); static int fbsd_directorydb_read_name(struct pkg *); static int fbsd_directorydb_read_origin(struct pkg *); +static int fbsd_directorydb_read_format_revision(struct pkg *); + +static int fbsd_directorydb_read_conflicts(struct pkg *); +static int fbsd_directorydb_read_depends(struct pkg *); +static int fbsd_directorydb_read_files(struct pkg *); + +static int fbsd_directorydb_read_reqbys(struct pkg *); + static int fbsd_directorydb_read_comment(struct pkg *); -static int fbsd_directorydb_read_format_revision(struct pkg *); + static int fbsd_directorydb_read_description(struct pkg *); RB_GENERATE_STATIC(plist_head, _read_plist, entry, _read_plist_cmp); @@ -213,18 +223,26 @@ pkg->read_name = fbsd_directorydb_read_name; pkg->read_origin = fbsd_directorydb_read_origin; pkg->read_format_revision = fbsd_directorydb_read_format_revision; + + pkg->read_conflicts = fbsd_directorydb_read_conflicts; + pkg->read_depends = fbsd_directorydb_read_depends; + pkg->read_files = fbsd_directorydb_read_files; + pkg->read_reqbys = fbsd_directorydb_read_reqbys; + pkg->read_comment = fbsd_directorydb_read_comment; pkg->read_description = fbsd_directorydb_read_description; - pkg->add_file = fbsd_directorydb_add_file; - pkg->files = malloc(sizeof(*pkg->files)); - TAILQ_INIT(pkg->files); + pkg->conflicts = NULL; + pkg->depends = NULL; + pkg->files = NULL; + + pkg->reqbys = NULL; - pkg->depends = malloc(sizeof(*pkg->depends)); - TAILQ_INIT(pkg->depends); + pkg->add_conflict = fbsd_directorydb_add_conflict; + pkg->add_file = fbsd_directorydb_add_file; } struct pkg_list * @@ -237,7 +255,9 @@ struct pkg_list *list; d = db->internal; - + + /* XXX: Since I'm only doing this in _add, go back to fts for the speed. + * */ c = scandir(d->path, &ents, dselect, alphasort); if (c < 0) { return (NULL); @@ -268,6 +288,16 @@ return (NULL); } +struct pkg_conflict * +fbsd_directorydb_add_conflict(struct pkg *pkg, const char *expr, + const char *version) +{ + (void)pkg; + (void)expr; + (void)version; + return (NULL); +} + int fbsd_directorydb_contains(struct pkg_db *db, const char *key) { @@ -352,7 +382,14 @@ READ_FUNCTION(fbsd_directorydb_read_name, CONTENTS); READ_FUNCTION(fbsd_directorydb_read_origin, CONTENTS); READ_FUNCTION(fbsd_directorydb_read_format_revision, CONTENTS); +READ_FUNCTION(fbsd_directorydb_read_files, CONTENTS); +READ_FUNCTION(fbsd_directorydb_read_conflicts, CONTENTS); +READ_FUNCTION(fbsd_directorydb_read_depends, CONTENTS); + +READ_FUNCTION(fbsd_directorydb_read_reqbys, REQUIRED_BY); + READ_FUNCTION(fbsd_directorydb_read_comment, COMMENT); + READ_FUNCTION(fbsd_directorydb_read_description, DESCRIPTION); static int @@ -399,9 +436,8 @@ data[sb.st_size] = '\0'; /* We don't like the trailing new line we get * from some files. */ - if (data[sb.st_size - 1] == '\n') { + if (data[sb.st_size - 1] == '\n') data[sb.st_size - 1] = '\0'; - } } } close(fd); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.h#8 (text+ko) ==== @@ -35,6 +35,9 @@ struct pkg_file *fbsd_directorydb_add_file(struct pkg *, const char *, const char *); +struct pkg_conflict *fbsd_directorydb_add_conflict(struct pkg *, + const char *, const char *); + /* Returns a pkg_file_list of all files in a package. */ struct pkg_file_list *fbsd_directorydb_files(struct pkg *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_plist.c#7 (text+ko) ==== @@ -19,8 +19,10 @@ #include "pkg_internal.h" #include "freebsd_plist.h" +#include "conflict.h" #include "file.h" #include "depend.h" +#include "reqby.h" #include "util.h" @@ -115,6 +117,7 @@ struct pkg *pkg; struct pkg_file *current_file; struct pkg_depend *current_dep; + struct pkg_conflict *current_conflict; }; /* CONTENTS parsers functions. */ @@ -180,11 +183,6 @@ return (PKG_NOT_OK); } -#define PLDICT_GET_OR_CREATE_LIST_PROPERTY(root, new, pname) \ -if ((new = pkg_property_dict_get_property(root, pname)) == NULL) { \ - new = pkg_property_list_create(root, pname); \ -} \ - /* Initialize a parse state structure and property list for parsing CONTENTS. * We take care of creating the different lists in here so that we don't have to * check for them everytime we want to add a property. */ @@ -194,6 +192,7 @@ { ps->current_file = NULL; ps->current_dep = NULL; + ps->current_conflict = NULL; ps->ignore = 0; ps->line_number = 0; @@ -201,6 +200,15 @@ ps->pkg = pkg; strcpy(ps->cwd, CWD_DEFAULT); + + /* Ready the pkg. */ + pkg->conflicts = calloc(1, sizeof(*pkg->conflicts)); + pkg->depends = calloc(1, sizeof(*pkg->depends)); + pkg->files = calloc(1, sizeof(*pkg->files)); + + TAILQ_INIT(pkg->depends); + TAILQ_INIT(pkg->files); + TAILQ_INIT(pkg->conflicts); } static int @@ -238,9 +246,7 @@ while (*cmdp) { if (isspace(*cmdp)) { *cmdp = '\0'; - while (isspace(*arg)) { - ++arg; - } + while (isspace(*arg)) ++arg; break; } ++cmdp; ++arg; @@ -249,9 +255,8 @@ switch (cmd[0]) { case (CMD_PREFIX): if (_fbsd_plist_parse_contents_command(ps->pkg, ps, - cmd + 1, arg) != PKG_OK) { + cmd + 1, arg) != PKG_OK) return (PKG_NOT_OK); - } break; default: ps->current_file = pkg_file_alloc(); @@ -291,12 +296,13 @@ pkg, ps, argument)); else if (strcmp(command, CMD_CONFLICTS) == 0) { /* @conflicts */ - #if 0 ps->current_conflict = pkg_conflict_alloc(); - _pkg_conflict_set_expr(conflict, argument); - _pkg_append_conflict(pkg, conflict); + + _pkg_conflict_set_expr(ps->current_conflict, argument); + _pkg_append_conflict(pkg, ps->current_conflict); + ps->last = PLIST_CONFLICT; - #endif + return (PKG_OK); } break; @@ -311,66 +317,42 @@ } break; case ('d'): - switch (command[1]) { - case ('i'): - if (strcmp(command, CMD_DIRRM) == 0) - /* @dirrm */ - return (PKG_OK); - else if (strcmp(command, CMD_DISPLAY) == 0) { - /* @display */ - /* UNIMPLEMENTED */ - warnx("@display parse not implemented"); - return (PKG_OK); - } - break; - default: - break; + if (strcmp(command, CMD_DIRRM) == 0) + /* @dirrm */ + return (PKG_OK); + else if (strcmp(command, CMD_DISPLAY) == 0) { + /* @display */ + /* UNIMPLEMENTED */ + warnx("@display parse not implemented"); + return (PKG_OK); } break; case ('e'): - switch (command[1]) { - case ('x'): - if (strcmp(command, CMD_EXEC) == 0) { - /* @exec */ - #if 0 - ADD_SET_DICT_PROPERTY(ps->exec_list, - ps->current_p, FBSD_EXECS); - ADD_SET_STRING_PROPERTY(ps->current_p, nn, - FBSD_COMMAND, argument); - #endif - return (PKG_OK); - } - break; - default: - break; + if (strcmp(command, CMD_EXEC) == 0) { + /* @exec */ + #if 0 + ADD_SET_DICT_PROPERTY(ps->exec_list, + ps->current_p, FBSD_EXECS); + ADD_SET_STRING_PROPERTY(ps->current_p, nn, + FBSD_COMMAND, argument); + #endif + return (PKG_OK); } break; case ('g'): - switch (command[1]) { - case ('r'): - if (strcmp(command, CMD_GROUP) == 0) - /* @group */ - /* DROP SUPPORT. */ - return (PKG_OK); - break; - default: - break; - } + if (strcmp(command, CMD_GROUP) == 0) + /* @group */ + /* DROP SUPPORT. */ + return (PKG_OK); break; case ('i'): - switch (command[1]) { - case ('g'): - if (strcmp(command, CMD_IGNORE) == 0) { - /* @ignore */ - ps->ignore = 1; - return (PKG_OK); - } else if (strcmp(command, CMD_IGNORE_INST) == 0) { - /* @ignore_inst */ - } - break; - default: - break; - } + if (strcmp(command, CMD_IGNORE) == 0) { + /* @ignore */ + ps->ignore = 1; + return (PKG_OK); + } else if (strcmp(command, CMD_IGNORE_INST) == 0) + /* @ignore_inst */ + return (PKG_OK); break; case ('m'): switch (command[1]) { @@ -430,40 +412,28 @@ } break; case ('p'): - switch (command[1]) { - case ('k'): - if (strcmp(command, CMD_PKGDEP) == 0) { - /* @pkgdep */ - - ps->current_dep = pkg_depend_alloc(); + if (strcmp(command, CMD_PKGDEP) == 0) { + /* @pkgdep */ + + ps->current_dep = pkg_depend_alloc(); - _pkg_depend_set_name(ps->current_dep, argument); - _pkg_append_depend(pkg, ps->current_dep); - ps->last = PLIST_DEPENDENCY; - return (PKG_OK); - } else if (strcmp(command, CMD_PKGVERSION) == 0) { - /* @pkgversion */ - /* UNUSED. */ - return (PKG_OK); - } - break; - default: - break; - } + _pkg_depend_set_name(ps->current_dep, argument); + _pkg_append_depend(pkg, ps->current_dep); + ps->last = PLIST_DEPENDENCY; + + return (PKG_OK); + } else if (strcmp(command, CMD_PKGVERSION) == 0) + /* @pkgversion */ + /* UNUSED. */ + return (PKG_OK); break; case ('s'): - switch (command[1]) { - case ('r'): - if (strcmp(command, CMD_SRCDIR) == 0) { - /* @srcdir */ - - _pkg_set_srcdir(pkg, argument); + if (strcmp(command, CMD_SRCDIR) == 0) { + /* @srcdir */ + + _pkg_set_srcdir(pkg, argument); - return (PKG_OK); - } - break; - default: - break; + return (PKG_OK); } break; case ('u'): @@ -499,38 +469,38 @@ switch (comment[0]) { case ('D'): if (strncmp(comment, CMT_DEPORIGIN, 10) == 0) { - if (ps->last == PLIST_DEPENDENCY) { + if (ps->last == PLIST_DEPENDENCY) _pkg_depend_set_origin(ps->current_dep, comment + 10); - } else { + else { /* It would be great to be able to set an error * string here, rather than warning straight * up... */ /* XXX: NOT A CLIENT_WARNING, keep it clean. */ warnx("Plist: Misplaced DEPORIGIN meta comment" - " [line %ld: %s]", ps->line_number, comment); + " [line %ld: %s]", ps->line_number, + comment); return (PKG_NOT_OK); } } break; case ('O'): - if (strncmp(comment, CMT_ORIGIN, 7) == 0) { + if (strncmp(comment, CMT_ORIGIN, 7) == 0) _pkg_set_origin(pkg, comment + 7); - } break; case ('P'): - if (strncmp(comment, CMT_PKG_FORMAT_REVISION, 20) == 0) { + if (strncmp(comment, CMT_PKG_FORMAT_REVISION, 20) == 0) _pkg_set_format_revision(pkg, comment + 20); - } break; case ('M'): if (strncmp(comment, CMT_MD5, 4) == 0) { - if (ps->last == PLIST_FILE) { + if (ps->last == PLIST_FILE) _pkg_file_set_hash(ps->current_file, comment + 4); - } else { + else { warnx("Plist: Misplaced MD5 meta comment" - " [line %ld: %s]", ps->line_number, comment); + " [line %ld: %s]", ps->line_number, + comment); return (PKG_NOT_OK); } } @@ -556,28 +526,33 @@ static int _fbsd_plist_required_by_parse(struct pkg *pkg, char *text) { - (void)pkg; - (void)text; + char *line; + struct pkg_reqby *reqby; + + pkg->reqbys = calloc(1, sizeof(*pkg->reqbys)); + + while ((line = strsep(&text, "\n")) != NULL) { + if (strlen(line) == 0) continue; + + reqby = pkg_reqby_alloc(); + if (reqby == NULL) return (PKG_NOT_OK); - PKG_CLIENT_CRASH(__func__, "Not implemented."); + _pkg_reqby_set_name(reqby, line); + _pkg_append_reqby(pkg, reqby); + } - return (PKG_NOT_OK); + return (PKG_OK); } static int _fbsd_plist_generic_parse(struct pkg *pkg, char *text, const char *metaname) { - (void)pkg; - (void)text; - (void)metaname; - if (strncmp(metaname, FBSD_METANAME_COMMENT, - strlen(FBSD_METANAME_COMMENT)) == 0) { + if (strcmp(metaname, FBSD_METANAME_COMMENT) == 0) _pkg_set_comment(pkg, text); - } else if (strncmp(metaname, FBSD_METANAME_DESCRIPTION, - strlen(FBSD_METANAME_DESCRIPTION)) == 0) { + else if (strcmp(metaname, FBSD_METANAME_DESCRIPTION) == 0) _pkg_set_description(pkg, text); - } + return (PKG_OK); } ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_plist.h#6 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.c#11 (text+ko) ==== @@ -97,7 +97,7 @@ void _pkg_set_format_revision(struct pkg *pkg, const char *fmtrev) { - strncpy(pkg->format_revision, fmtrev, 256); + strncpy(pkg->format_revision, fmtrev, 8); } void @@ -157,13 +157,11 @@ return (pkg->reqbys); } -#if 0 struct pkg_conflict_list * pkg_conflicts(struct pkg *pkg) { return (pkg->conflicts); } -#endif struct pkg_file * pkg_add_file(struct pkg *pkg, const char *prefix, const char *pathname, @@ -192,11 +190,10 @@ TAILQ_INSERT_TAIL(pkg->depends, depend, next); } -#if 0 struct pkg_conflict * -pkg_add_conflict(struct pkg *pkg, const char *conflict, const char *reason) +pkg_add_conflict(struct pkg *pkg, const char *expr, const char *reason) { - return (pkg->add_conflict(pkg, conflict, reason)); + return (pkg->add_conflict(pkg, expr, reason)); } void @@ -204,7 +201,6 @@ { TAILQ_INSERT_TAIL(pkg->conflicts, conflict, next); } -#endif struct pkg_reqby * pkg_add_reqby(struct pkg *pkg, const char *name, const char *version) @@ -212,6 +208,12 @@ return (pkg->add_reqby(pkg, name, version)); } +void +_pkg_append_reqby(struct pkg *pkg, struct pkg_reqby *reqby) +{ + TAILQ_INSERT_TAIL(pkg->reqbys, reqby, next); +} + int pkg_remove_reqby(struct pkg *pkg, struct pkg_reqby *reqby) { ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#9 (text+ko) ==== @@ -137,10 +137,10 @@ const char *pkg_depend_version(struct pkg_depend *); -const char *pkg_conflict_expr(struct pkg_conflict *); +const char *pkg_conflict_expr(struct pkg_conflict *); /* Don't remember what this is for... */ -const char *pkg_conflict_version(struct pkg_conflict *); +const char *pkg_conflict_reason(struct pkg_conflict *); const char *pkg_reqby_name(struct pkg_reqby *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_internal.h#8 (text+ko) ==== @@ -88,27 +88,29 @@ #include "pkg_types.h" -struct pkg *_pkg_create(uint32_t, void *); +struct pkg *_pkg_create(uint32_t, void *); + +struct pkg *pkg_alloc(void); +void pkg_release(struct pkg *); + +void _pkg_set_name(struct pkg *, const char *); -struct pkg *pkg_alloc(void); -void pkg_release(struct pkg *); +void _pkg_set_srcdir(struct pkg *, const char *); -void _pkg_set_name(struct pkg *, const char *); +void _pkg_set_origin(struct pkg *, const char *); -void _pkg_set_srcdir(struct pkg *, const char *); +void _pkg_set_format_revision(struct pkg *, const char *); -void _pkg_set_origin(struct pkg *, const char *); +void _pkg_set_comment(struct pkg *, const char *); -void _pkg_set_format_revision(struct pkg *, const char *); +void _pkg_set_description(struct pkg *, const char *); -void _pkg_set_comment(struct pkg *, const char *); +void _pkg_append_file(struct pkg *, struct pkg_file *); -void _pkg_set_description(struct pkg *, const char *); +void _pkg_append_conflict(struct pkg *, struct pkg_conflict *); -void _pkg_append_file(struct pkg *, - struct pkg_file *); +void _pkg_append_depend(struct pkg *, struct pkg_depend *); -void _pkg_append_depend(struct pkg *, - struct pkg_depend *); +void _pkg_append_reqby(struct pkg *, struct pkg_reqby *); #endif ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#3 (text+ko) ==== @@ -24,7 +24,7 @@ char srcdir[PATH_MAX]; int (*read_format_revision) (struct pkg *); - char format_revision[256]; + char format_revision[8]; int (*read_comment) (struct pkg *); /* This is 128 for now, I'd like it down at 80. */ @@ -78,6 +78,15 @@ TAILQ_HEAD(pkg_list, pkg); +struct pkg_conflict { + char expr[PATH_MAX]; + char reason[PATH_MAX]; + + TAILQ_ENTRY(pkg_conflict) next; +}; + +TAILQ_HEAD(pkg_conflict_list, pkg_conflict); + struct pkg_depend { char name[PATH_MAX]; char version[256]; ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_info/pkg_info.c#7 (text+ko) ==== @@ -184,7 +184,7 @@ c.show_flags |= SHOW_PKG_NAME; // c.show_flags |= SHOW_DISPLAY; c.show_flags |= SHOW_DEPEND; - // c.show_flags |= SHOW_CONFLICTS; + c.show_flags |= SHOW_CONFLICTS; // c.show_flags |= SHOW_DIRRM; c.show_flags |= SHOW_ORIGIN; c.show_flags |= SHOW_OPTIONS; @@ -543,11 +543,11 @@ const char *prefix; const char *last_prefix; - // struct pkg_conflict_list *conflicts; + struct pkg_conflict_list *conflicts; struct pkg_depend_list *depends; struct pkg_file_list *files; - // struct pkg_conflict *conflict; + struct pkg_conflict *conflict; struct pkg_depend *depend; struct pkg_file *file; @@ -570,14 +570,15 @@ print_chunk(pkg_comment(pkg), "Comment:\n", _c); if (_c->show_flags & SHOW_CONFLICTS) { - if (!_c->quiet) {} -#if 0 + if (!_c->quiet) + printf("%sConflicts:\n", _c->info_prefix); + + conflicts = pkg_conflicts(pkg); TAILQ_FOREACH(conflict, conflicts, next) { printf((_c->quiet ? "@conflicts: %s\n" : "Conflicts %s\n"), pkg_conflict_expr(conflict)); } -#endif } if (_c->show_flags & SHOW_DEPEND) { From owner-p4-projects@FreeBSD.ORG Mon Nov 1 03:10:40 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4E099106566C; Mon, 1 Nov 2010 03:10: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 04267106564A for ; Mon, 1 Nov 2010 03:10:40 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id E34BA8FC0A for ; Mon, 1 Nov 2010 03:10:39 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA13Adct089637 for ; Mon, 1 Nov 2010 03:10:39 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA13Adpx089632 for perforce@freebsd.org; Mon, 1 Nov 2010 03:10:39 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 1 Nov 2010 03:10:39 GMT Message-Id: <201011010310.oA13Adpx089632@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185291 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, 01 Nov 2010 03:10:40 -0000 http://p4web.freebsd.org/@@185291?ac=10 Change 185291 by dforsyth@skunk on 2010/11/01 03:10:07 Drop add and validate from the build. Add needs to be completely rewritten and validate needs to be deleted all together. Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#10 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/Makefile#3 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_add/pkg_add.c#5 edit .. //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_validate/validate.c#3 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#10 (text+ko) ==== @@ -19,6 +19,7 @@ #define PKG_FATAL (-2) #include "pkg_types.h" +#include struct pkg_db; @@ -65,10 +66,9 @@ int pkg_db_remove(struct pkg_db *, struct pkg *); /* - * When you're done with a package, release its resources using pkg_finish. The - * db argument is the database in which this package exists. + * When you're done with a package, release its resources using pkg_finish. */ -int pkg_finish(struct pkg_db *, struct pkg *); +int pkg_finish(struct pkg *); /* * Retrieve the name of a package. @@ -153,13 +153,19 @@ struct pkg *pkg_archive_open(struct pkg_archive *, const char *); -struct pkg_repo *pkg_repo_create(void); +struct pkg_repo *pkg_repo_create(void); + +int pkg_repo_open(struct pkg_repo *, const char *); + +FILE *pkg_repo_fetch(struct pkg_repo *, const char *, + uint32_t *); + +int pkg_repo_close(struct pkg_repo *); -int pkg_repo_open(struct pkg_repo *, - const char *); +int pkg_repo_finish(struct pkg_repo *); /* I hope to make this disappear. */ -int pkg_parse(struct pkg *, char *, - const char *); +int pkg_parse(struct pkg *, char *, + const char *); #endif ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/Makefile#3 (text+ko) ==== @@ -3,5 +3,5 @@ # See LICENSE file for license details. # -SUBDIR= pkg_dump pkg_info pkg_delete pkg_add pkg_validate +SUBDIR= pkg_dump pkg_info pkg_delete .include ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_add/pkg_add.c#5 (text+ko) ==== @@ -34,10 +34,7 @@ #define HAVE_URL 0x10000000 const char *prefix; -const char *ad; /* Archive directory. */ -struct pkg_database *db; -struct pkg_repository *rp; uint32_t flags; struct pkg_target { @@ -106,12 +103,13 @@ NULL }; -static void parse_arguments(int, char **); -static int pkg_add(struct pkg_repository *, struct pkg_database *, - struct target_queue *, const char *, uint32_t, - void (*) (const char *, size_t, size_t)); -static void clean_up(int); -static void usage(void); +static void parse_arguments(int, char **); +static int pkg_add(struct pkg_repo *, struct pkg_db *, + struct target_queue *, const char *, uint32_t, + void (*) (const char *, size_t, size_t)); +static void clean_up(int); +static void usage(void); +static void show_progress(const char *, size_t, size_t); static void usage(void) @@ -191,28 +189,23 @@ } static int -check_installed(struct pkg_database *_db, struct pkg *p, const char *name) +check_installed(struct pkg_db *db, const char *name) { - pkg_database_rewind(_db); + struct pkg *pkg; printf("check: %s\n", name); - /* XXX: Fix skips. */ - while (pkg_database_get_next_pkg(_db, p, 0) == PKG_OK) { - if (strcmp(pkg_freebsd_get_name(p), name) == 0) { - return (1); - } + + pkg = pkg_db_get(db, name); + if (pkg != NULL) { + pkg_finish(pkg); + return (1); } - struct add_artifact *t; - LIST_FOREACH(t, &test_added, next) { - if (strcmp(t->name, name) == 0) { - return (1); - } - } + return (0); } static void -progress(const char *name, size_t fetched, size_t total) +show_progress(const char *name, size_t fetched, size_t total) { printf("\r%s: %lu/%lu bytes", name, (long unsigned)fetched, (long unsigned)total); @@ -223,15 +216,15 @@ main(int argc, char **argv) { int r; + struct pkg_db *db; + struct pkg_repo *rp; parse_arguments(argc, argv); - ad = "pkgdl"; + db = pkg_db_create(); + rp = pkg_repo_create(); - db = pkg_freebsd_database_create(); - rp = pkg_freebsd_repository_create(); - - r = pkg_add(rp, db, &targets, ad, flags, progress); + r = pkg_add(rp, db, &targets, "stage", flags, show_progress); clean_up(r); /* NOT REACHED. */ @@ -244,6 +237,10 @@ add_package(const char *_pkg, struct pkg_repository *_rp, struct pkg_database *_db, const char *_ad, uint32_t _flags, void (*_progress) (const char *, size_t, size_t)) +static int +add_package(const char *name, struct pkg_repo *rp, struct pkg_db *db, + const char *stage, uint32_t flags, + void (*progress) (const char *, size_t, size_t)); { struct archive *ar; struct archive_entry *ae; @@ -387,7 +384,7 @@ if (buf == NULL) { return (-1); } - bufsz = archive_entry_size(ae); + bufsz = archive_entry_size(ae); } r = archive_read_data(ar, buf, archive_entry_size(ae)); r = pkg_parse(p, buf, archive_entry_pathname(ae)); @@ -436,9 +433,9 @@ */ static int -pkg_add(struct pkg_repository *_rp, struct pkg_database *_db, - struct target_queue *_tq, const char *_ad, uint32_t _flags, - void (*_progress) (const char *, size_t, size_t)) +pkg_add(struct pkg_repo *rp, struct pkg_db *db, struct target_queue *tq, + const char *stage, uint32_t flags, + void (*progress) (const char *, size_t, size_t)) { int r; struct pkg_target *t; @@ -447,84 +444,51 @@ const char *repo_sub; const char *repo_arch; + const char *dbloc; + const char *rploc; + /* * XXX: To be clear: We could stream right to archive_open_FILE(), but * we want a bit of insurance against a lost connection. So we pull * down the entire archive (even when we don't have keep set). */ - /* TODO: Dummy repo. */ + /* Open the pkg_db. */ + dbloc = getenv("PKGDB_DIR"); + if (dbloc == NULL) dbloc = "/var/db/pkg"; + + rploc = getenv("PACKAGEROOT") + if (rploc == NULL) rploc = "ftp://ftp.freebsd.FreeBSD.org"; - if (FLAGGED(_flags, ADD_REMOTE)) { - repo_sub = get_repo_sub_path(); - repo_arch = get_repo_arch(); - if (repo_sub == NULL) { - errx(1, "Can't figure out relver"); - } - /* XXX: We're lying for testing. */ - repo_sub = "/packages-8.1-release"; - rp = pkg_freebsd_repository_create(); - r = 0; - for (int i = 0; repos[i] != NULL; ++i) { - /* O.O */ - strcpy(repo_site, repos[i]); - strcat(repo_site, "/"); - strcat(repo_site, repo_arch); - strcat(repo_site, "/"); - strcat(repo_site, repo_sub); - strcat(repo_site, "/"); + if (pkg_db_open(db, dbloc) != PKG_OK) return (-1); - r = pkg_repository_open(_rp, repo_site, 0); - if (r == PKG_OK) { - break; - } - } -#if 0 - "ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.1-release/Latest/", - 0); -#endif - } else { - /* - * This is the 'dummy repo' situation. Just set a path and use - * the repository interface to fetch packages. - */ - rp = NULL; - r = 0; -#if 0 - rp = pkg_freebsd_repository_path_create(); - r = 0; -#endif - } -#if 0 - /* XXX: Something I want to play with. */ - else if (FLAGGED(_a->flags, ADD_LOCAL_REPO)){ - rp = pkg_freebsd_repository_local_create(); - r = pkg_repository_open(rp, packages, 0); - } + repo_sub = get_repo_sub_path(); + if (repo_sub == NULL) errx(1, "Can't figure out relver"); + + repo_arch = get_repo_arch(); + if (repo_arch == NULL) errx(1, "Can't figure out arch"); -#endif - if (r != PKG_OK) { - errx(1, "Could not open repository.\n"); - } + STAILQ_FOREACH(t, tq, next) { + /* TODO(dforsyth): Give this some output. */ + if (check_installed(db, t->target)) + if (flags & FORCE) continue; + + if (flags & ADD_REMOTE) { + /* XXX: We cheat for testing. */ + repo_sub = "/packages-8.1-release"; + + sprintf(rploc, "%s/%s/%s", rploc, repo_arch, + repo_sub); + + if (pkg_repo_open(rp, rploc) != PKG_OK) + continue; - pkg_database_open(db, "/var/db/pkg", 0); - STAILQ_FOREACH(t, _tq, next) { -#if 0 - if (check_installed(db, p, t->target)) { - /* TODO: Act on installed. */ - continue; + /* add_package. */ } -#endif - strcpy(name, "Latest/"); - strcat(name, t->name); - if (add_package(name, _rp, _db, _ad, _flags, _progress) < 0) { - warnx("error adding %s", t->name); - break; - } } - pkg_repository_close(rp); - pkg_repository_release(rp); + pkg_db_close(db); + pkg_db_finish(db); return (0); } ==== //depot/projects/soc2010/dforsyth_libpkg/pkg_install/pkg_validate/validate.c#3 (text+ko) ==== @@ -4,7 +4,6 @@ #include #include -#include int main(int argc, char **argv) From owner-p4-projects@FreeBSD.ORG Mon Nov 1 07:16:25 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6020A1065679; Mon, 1 Nov 2010 07:16:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 004C61065674 for ; Mon, 1 Nov 2010 07:16:24 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C59618FC14 for ; Mon, 1 Nov 2010 07:16:24 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA17GO4P046118 for ; Mon, 1 Nov 2010 07:16:24 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA17GOwx046115 for perforce@freebsd.org; Mon, 1 Nov 2010 07:16:24 GMT (envelope-from dforsyth@FreeBSD.org) Date: Mon, 1 Nov 2010 07:16:24 GMT Message-Id: <201011010716.oA17GOwx046115@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185294 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, 01 Nov 2010 07:16:25 -0000 http://p4web.freebsd.org/@@185294?ac=10 Change 185294 by dforsyth@skunk on 2010/11/01 07:15:25 Simplify the repo and ftp repo. Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/Makefile#9 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_repository_ftp.c#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_repository_ftp.h#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#11 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/repository.c#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/repository.h#4 edit .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/repository_internal.h#4 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/Makefile#9 (text+ko) ==== @@ -14,6 +14,8 @@ database.c \ freebsd_plist.c \ freebsd_database_directorydb.c \ + repository.c \ + freebsd_repository_ftp.c \ util.c \ file.c \ depend.c \ ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_repository_ftp.c#4 (text+ko) ==== @@ -12,11 +12,11 @@ #include #include -#include "internal.h" +#include "repository.h" #include "freebsd_repository_ftp.h" -#define PKG_EXTENSION ".tbz" -#define URLBUF_LEN MAXHOSTNAMELEN + PATH_MAX +#define PKG_EXT ".tbz" +#define URL_MAX MAXHOSTNAMELEN + PATH_MAX /* * The FreeBSD FTP repository isn't terribly complex. Simply pass in the name @@ -24,119 +24,56 @@ * a file stream for the client. */ -static int _pkg_repository_ftp_open(struct pkg_repository *, const char *, - u_int); -static int _pkg_repository_ftp_close(struct pkg_repository *); -static FILE *_pkg_repository_ftp_fetch_pkg(struct pkg_repository *, - const char *, char **, size_t *, u_int); - -struct _freebsd_ftp { - /* Seems long enough... */ - char base[MAXHOSTNAMELEN]; - /* Book keeping. */ - int flags; +struct ftprepo { + char path[MAXHOSTNAMELEN]; }; -static struct pkg_repository_vtable _vt = { - .open = _pkg_repository_ftp_open, - .close = _pkg_repository_ftp_close, - .fetch_pkg = _pkg_repository_ftp_fetch_pkg -}; - -struct pkg_repository_vtable * -pkg_repository_ftp_vtable(void) +int +fbsd_ftprepo_open(struct pkg_repo *repo, const char *path) { - return (&_vt); -} + struct ftprepo *f; -void -pkg_repository_ftp_init(struct pkg_repository *rp) -{ - _pkg_repository_set_vtable(rp, &_vt); -} + f = calloc(1, sizeof(*f)); + if (f == NULL) return (PKG_NOT_OK); + + if (strncmp(path, "ftp://", 6) != 0) strcpy(f->path, "ftp://"); -static int -_pkg_repository_ftp_open(struct pkg_repository *rp, const char *base, - u_int flags) -{ - struct _freebsd_ftp *ftp; - struct url_stat st; - (void)st; + strcat(f->path, path); - /* Allocate and initialize. */ - ftp = calloc(1, sizeof(*ftp)); - if (ftp == NULL) { - return (PKG_NOT_OK); - } - strcpy(ftp->base, ""); - /* We need the ftp:// prefix for a valid url. */ - if (strncmp(base, "ftp://", 6) != 0) { - strcat(ftp->base, "ftp://"); - } - strcat(ftp->base, base); - ftp->flags = flags; + repo->internal = f; - /* Check to make sure the repository actually exists. */ - if (fetchStatURL(ftp->base, &st, NULL) < 0) { - free(ftp); - return (PKG_NOT_OK); - } - - /* Set the __internal pointer. */ - rp->internal = ftp; - return (PKG_OK); } -static int -_pkg_repository_ftp_close(struct pkg_repository *rp) +int +fbsd_ftprepo_close(struct pkg_repo *repo) { - struct _freebsd_ftp *ftp; + struct ftprepo *f; + + f = repo->internal; + + free(f); - ftp = rp->internal; - free(ftp); return (PKG_OK); } -static FILE * -_pkg_repository_ftp_fetch_pkg(struct pkg_repository *rp, - const char *name, char **fname, size_t *size, u_int flags) +FILE * +fbsd_ftprepo_fetch(struct pkg_repo *repo, const char *name) { - struct _freebsd_ftp *ftp; - char url[MAXHOSTNAMELEN + PATH_MAX]; /* *shrug* */ - const char *base; - struct url_stat st; FILE *fp; - - (void)flags; + char url[URL_MAX]; + struct ftprepo *f; + + f = repo->internal; - ftp = rp->internal; - - /* Build the entire URL for the fetch. */ - strcpy(url, ftp->base); - strcat(url, "/"); + strcpy(url, f->path); strcat(url, name); - strcat(url, PKG_EXTENSION); - - base = basename(url); - printf("%s\n", url); - - fp = fetchXGetURL(url, &st, NULL); - if (fp == NULL) { - /* XXX: I should really set up an error system in the library. - */ - warnx("freebsd_ftp fetch failed -> %s", fetchLastErrString); - return (NULL); - } + if (strcmp((name + strlen(name) - strlen(PKG_EXT)), PKG_EXT) != 0) + strcat(url, PKG_EXT); - base = basename(url); - *fname = strdup(base); + fp = fetchGetURL(url, NULL); - /* Optional. */ - if (size != NULL) { - *size = st.size; - } - return (fp); -} +} + ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_repository_ftp.h#4 (text+ko) ==== @@ -5,8 +5,10 @@ #ifndef __PKGRP_FREEBSD_FTP_H__ #define __PKGRP_FREEBSD_FTP_H__ -#include "internal.h" +int fbsd_ftprepo_open(struct pkg_repo *, const char *); + +int fbsd_ftprepo_close(struct pkg_repo *); -struct pkg_repository_vtable *pkg_repository_ftp_vtable(void); +FILE *fbsd_ftprepo_fetch(struct pkg_repo *, const char *); #endif ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg.h#11 (text+ko) ==== @@ -157,8 +157,7 @@ int pkg_repo_open(struct pkg_repo *, const char *); -FILE *pkg_repo_fetch(struct pkg_repo *, const char *, - uint32_t *); +FILE *pkg_repo_fetch(struct pkg_repo *, const char *); int pkg_repo_close(struct pkg_repo *); ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/pkg_types.h#4 (text+ko) ==== ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/repository.c#4 (text+ko) ==== @@ -3,99 +3,61 @@ * See LICENSE file for license details. */ +#include #include #include -#include "internal.h" +#include "repository.h" +#include "freebsd_repository_ftp.h" -#define MAGIC 0x00000000 - -static void _pkg_repository_check_magic(struct pkg_repository *, const char *); - -static void -_pkg_repository_check_magic(struct pkg_repository *rp, const char *func) +struct pkg_repo * +pkg_repo_create(void) { - if (rp->magic != MAGIC) { - PKG_CLIENT_CRASH(func, "repository magic number mismatch"); - } -} + struct pkg_repo *repo; -void -_pkg_repository_set_vtable(struct pkg_repository *rp, - struct pkg_repository_vtable *vt) -{ - rp->vtable = vt; -} + repo = calloc(1, sizeof(*repo)); + if (repo == NULL) return (NULL); -struct pkg_repository * -pkg_repository_create(void) -{ - struct pkg_repository *rp; + repo->internal = NULL; + repo->open = fbsd_ftprepo_open; + repo->close = fbsd_ftprepo_close; + repo->fetch = fbsd_ftprepo_fetch; - rp = calloc(1, sizeof(*rp)); - if (rp == NULL) { - return (NULL); - } - - rp->internal = NULL; - rp->vtable = NULL; - rp->magic = MAGIC; - - return (rp); + return (repo); } int -pkg_repository_open(struct pkg_repository *rp, const char *location, - u_int flags) +pkg_repo_finish(struct pkg_repo *repo) { int r; - _pkg_repository_check_magic(rp, __func__); + if (repo->internal != NULL) { + r = pkg_repo_close(repo); + if (r != PKG_OK) return (r); + } - r = rp->vtable->open(rp, location, flags); - - return (r); + free(repo); + + return (PKG_OK); } -FILE * -pkg_repository_fetch_pkg(struct pkg_repository *rp, const char *name, - char **fname, size_t *size, u_int flags) +int +pkg_repo_open(struct pkg_repo *repo, const char *path) { - FILE *f; - - _pkg_repository_check_magic(rp, __func__); - - f = rp->vtable->fetch_pkg(rp, name, fname, size, flags); - if (f == NULL) { - return (NULL); - } - return (f); + assert(repo->internal == NULL); + return (repo->open(repo, path)); } int -pkg_repository_close(struct pkg_repository *rp) +pkg_repo_close(struct pkg_repo *repo) { - int r; - - _pkg_repository_check_magic(rp, __func__); - - r = rp->vtable->close(rp); - if (r != PKG_OK) { - return (r); - } - - rp->status = CLOSED; - - return (PKG_OK); + if (repo->internal == NULL) return (PKG_OK); + return (repo->close(repo)); } -void -pkg_repository_release(struct pkg_repository *rp) +FILE * +pkg_repo_fetch(struct pkg_repo *repo, const char *name) { - _pkg_repository_check_magic(rp, __func__); - - if (rp->status == OPEN) { - rp->vtable->close(rp); - } - free(rp); + assert(repo->internal != NULL); + return (repo->fetch(repo, name)); } ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/repository.h#4 (text+ko) ==== @@ -11,18 +11,12 @@ #include "pkg.h" -/* XXX: Init's for repository types. */ -void pkg_repository_ftp_init(struct pkg_repository *); +struct pkg_repo { + void *internal; -struct pkg_repository *pkg_repository_create(void); - -void pkg_repository_release(struct pkg_repository *); - -int pkg_repository_open(struct pkg_repository *, const char *, u_int); - -FILE *pkg_repository_fetch_pkg(struct pkg_repository *, const char *, char **, - size_t *, u_int); - -int pkg_repository_close(struct pkg_repository *); + int (*open) (struct pkg_repo *, const char *); + int (*close) (struct pkg_repo *); + FILE *(*fetch) (struct pkg_repo *, const char *); +}; #endif ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/repository_internal.h#4 (text+ko) ==== @@ -8,21 +8,4 @@ #include "repository.h" -struct pkg_repository_vtable { - int (*open) (struct pkg_repository *, const char *, u_int); - FILE *(*fetch_pkg) (struct pkg_repository *, const char *, char **, - size_t *, u_int); - int (*close) (struct pkg_repository *); -}; - -struct pkg_repository { - void *internal; - unsigned int magic; - status_t status; - struct pkg_repository_vtable *vtable; -}; - -void _pkg_repository_set_vtable(struct pkg_repository *, - struct pkg_repository_vtable *); - #endif From owner-p4-projects@FreeBSD.ORG Mon Nov 1 08:42:27 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 08B531065674; Mon, 1 Nov 2010 08:42:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6B03106566B for ; Mon, 1 Nov 2010 08:42:26 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A363E8FC15 for ; Mon, 1 Nov 2010 08:42:26 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA18gQa3067242 for ; Mon, 1 Nov 2010 08:42:26 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA18gQBK067239 for perforce@freebsd.org; Mon, 1 Nov 2010 08:42:26 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 1 Nov 2010 08:42:26 GMT Message-Id: <201011010842.oA18gQBK067239@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.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 185296 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, 01 Nov 2010 08:42:27 -0000 http://p4web.freebsd.org/@@185296?ac=10 Change 185296 by hselasky@hselasky_laptop001 on 2010/11/01 08:41:32 LibUSB documentation. PR: usb/151851 Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb.3#27 edit Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb.3#27 (text+ko) ==== @@ -380,10 +380,14 @@ .Pp .Ft int .Fn libusb_control_transfer "libusb_device_handle *devh" "uint8_t bmRequestType" "uint8_t bRequest" "uint16_t wValue" "uint16_t wIndex" "unsigned char *data" "uint16_t wLength" "unsigned int timeout" -Perform a USB control transfer. Returns 0 on success, LIBUSB_ERROR_TIMEOUT -if the transfer timeout, LIBUSB_ERROR_PIPE if the control request was not -supported, LIBUSB_ERROR_NO_DEVICE if the device has been disconnected and -LIBUSB_ERROR code on other failure. +Perform a USB control transfer. Returns the actual number of bytes +transferred on success in the range from and including zero until and +including +.Xa wLength . +On error a libusb error code is returned, for example +LIBUSB_ERROR_TIMEOUT if the transfer timeout, LIBUSB_ERROR_PIPE if the +control request was not supported, LIBUSB_ERROR_NO_DEVICE if the +device has been disconnected or LIBUSB_ERROR code on other failure. . .Pp .Ft int From owner-p4-projects@FreeBSD.ORG Tue Nov 2 03:25:51 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3935B106566C; Tue, 2 Nov 2010 03:25:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E525A106564A for ; Tue, 2 Nov 2010 03:25:50 +0000 (UTC) (envelope-from dforsyth@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id B71CF8FC12 for ; Tue, 2 Nov 2010 03:25:50 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA23Pocu002985 for ; Tue, 2 Nov 2010 03:25:50 GMT (envelope-from dforsyth@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA23Po8u002982 for perforce@freebsd.org; Tue, 2 Nov 2010 03:25:50 GMT (envelope-from dforsyth@FreeBSD.org) Date: Tue, 2 Nov 2010 03:25:50 GMT Message-Id: <201011020325.oA23Po8u002982@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to dforsyth@FreeBSD.org using -f From: David Forsythe To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185318 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, 02 Nov 2010 03:25:51 -0000 http://p4web.freebsd.org/@@185318?ac=10 Change 185318 by dforsyth@skunk on 2010/11/02 03:25:39 Use FTS in the directorydb _all function. Affected files ... .. //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#9 edit Differences ... ==== //depot/projects/soc2010/dforsyth_libpkg/libpkg/freebsd_database_directorydb.c#9 (text+ko) ==== @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -85,7 +86,6 @@ static char *read_file(const char *); static int _read_plist_cmp(struct _read_plist *, struct _read_plist *); -static int dselect(const struct dirent *); static void fbsd_directorydb_pkg_setup(struct pkg_db *, struct pkg *, const char *); @@ -135,12 +135,6 @@ return (strcmp(a->key, b->key)); } -static int -dselect(const struct dirent *ent) -{ - return (ent->d_name[0] != '.' && ent->d_type == DT_DIR); -} - /* Close a "connection" to a directorydb. */ int fbsd_directorydb_close(struct pkg_db *db) @@ -245,35 +239,52 @@ pkg->add_file = fbsd_directorydb_add_file; } +static int +ftsentcmp(const FTSENT *const *ent1, const FTSENT *const *ent2) +{ + const FTSENT *e1; + const FTSENT *e2; + + e1 = *ent1; + e2 = *ent2; + + return (strcmp(e1->fts_name, e2->fts_name)); +} + struct pkg_list * fbsd_directorydb_all(struct pkg_db *db) { - int c; struct _directorydb *d; - struct dirent **ents; + FTS *ftsp; + FTSENT *ftsent; + char *paths[2]; struct pkg *pkg; struct pkg_list *list; - + d = db->internal; - /* XXX: Since I'm only doing this in _add, go back to fts for the speed. - * */ - c = scandir(d->path, &ents, dselect, alphasort); - if (c < 0) { - return (NULL); - } - + /* XXX: Not seeing the kind of speed up I would have liked from this + * loop... */ + + paths[0] = strdup(d->path); + paths[1] = NULL; + + ftsp = fts_open(paths, FTS_LOGICAL | FTS_NOCHDIR | FTS_NOSTAT, + ftsentcmp); + assert(ftsp != NULL); + list = malloc(sizeof(*list)); TAILQ_INIT(list); - for (int i = 0; i < c; ++i) { + while ((ftsent = fts_read(ftsp)) != NULL) { + if (ftsent->fts_info != FTS_D || ftsent->fts_level != 1) + continue; + fts_set(ftsp, ftsent, FTS_SKIP); + pkg = pkg_alloc(); - /* XXX: I should just do a get here. */ - fbsd_directorydb_pkg_setup(db, pkg, ents[i]->d_name); - + fbsd_directorydb_pkg_setup(db, pkg, ftsent->fts_name); TAILQ_INSERT_TAIL(list, pkg, next); - free(ents[i]); } - free(ents); + fts_close(ftsp); return (list); } From owner-p4-projects@FreeBSD.ORG Tue Nov 2 16:46:15 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 27A251065672; Tue, 2 Nov 2010 16:46:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CFB91106564A for ; Tue, 2 Nov 2010 16:46:14 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id B29918FC1D for ; Tue, 2 Nov 2010 16:46:14 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA2GkEqJ069392 for ; Tue, 2 Nov 2010 16:46:14 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA2GkEfm069389 for perforce@freebsd.org; Tue, 2 Nov 2010 16:46:14 GMT (envelope-from jhb@freebsd.org) Date: Tue, 2 Nov 2010 16:46:14 GMT Message-Id: <201011021646.oA2GkEfm069389@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185332 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, 02 Nov 2010 16:46:15 -0000 http://p4web.freebsd.org/@@185332?ac=10 Change 185332 by jhb@jhb_jhbbsd on 2010/11/02 16:45:24 Revert, Jeff did this differently. Affected files ... .. //depot/projects/smpng/sys/kern/kern_intr.c#106 edit .. //depot/projects/smpng/sys/sys/interrupt.h#32 edit Differences ... ==== //depot/projects/smpng/sys/kern/kern_intr.c#106 (text+ko) ==== @@ -720,57 +720,6 @@ } /* - * If an interrupt handler is currently running, wait for it to finish - * executing. - */ -void -intr_handler_drain(void *cookie) -{ - struct intr_handler *ih; - struct intr_event *ie; - struct intr_thread *it; - - ih = (struct intr_handler *)cookie; - if (ih == NULL || cold) - return; - ie = ih->ih_event; - KASSERT(ie != NULL, - ("interrupt handler \"%s\" has a NULL interrupt event", - ih->ih_name)); - - /* XXX: Punt on handlers that only have a filter for now. */ - if (ih->ih_handler == NULL) - return; - -#ifdef INTR_FILTER - if (ih->ih_thread) - it = ih->ih_thread; - else -#endif - it = ie->ie_thread; - - mtx_lock(&ie->ie_lock); - thread_lock(it->it_thread); - - /* If the thread is idle, then the interrupt handler is not running. */ - if (!TD_AWAITING_INTR(it->it_thread)) { - ih->ih_flags |= IH_DRAINING; - - /* - * Ensure the thread will process the handler list - * again if it has already passed this handler. - */ - it->it_need = 1; - thread_unlock(it->it_thread); - - while (ih->ih_flags & IH_DRAINING) - msleep(ih, &ie->ie_lock, 0, "idrain", 0); - } else - thread_unlock(it->it_thread); - mtx_unlock(&ie->ie_lock); -} - -/* * Return the ie_source field from the intr_event an intr_handler is * associated with. */ @@ -1203,7 +1152,7 @@ if (ih->ih_flags & IH_DEAD) { mtx_lock(&ie->ie_lock); TAILQ_REMOVE(&ie->ie_handlers, ih, ih_next); - ih->ih_flags &= ~(IH_DEAD | IH_DRAINING); + ih->ih_flags &= ~IH_DEAD; wakeup(ih); mtx_unlock(&ie->ie_lock); return; @@ -1219,13 +1168,6 @@ ih->ih_handler(ih->ih_argument); if (!(ih->ih_flags & IH_MPSAFE)) mtx_unlock(&Giant); - - if (ih->ih_flags & IH_DRAINING) { - mtx_lock(&ie->ie_lock); - ih->ih_flags &= ~IH_DRAINING; - wakeup(ih); - mtx_unlock(&ie->ie_lock); - } } #endif @@ -1246,7 +1188,7 @@ if (ih->ih_flags & IH_DEAD) { mtx_lock(&ie->ie_lock); TAILQ_REMOVE(&ie->ie_handlers, ih, ih_next); - ih->ih_flags &= ~(IH_DEAD | IH_DRAINING); + ih->ih_flags &= ~IH_DEAD; wakeup(ih); mtx_unlock(&ie->ie_lock); continue; @@ -1278,13 +1220,6 @@ ih->ih_handler(ih->ih_argument); if (!(ih->ih_flags & IH_MPSAFE)) mtx_unlock(&Giant); - - if (ih->ih_flags & IH_DRAINING) { - mtx_lock(&ie->ie_lock); - ih->ih_flags &= ~IH_DRAINING; - wakeup(ih); - mtx_unlock(&ie->ie_lock); - } } } @@ -1749,7 +1684,7 @@ db_printsym((uintptr_t)ih->ih_handler, DB_STGY_PROC); db_printf("(%p)", ih->ih_argument); if (ih->ih_need || - (ih->ih_flags & (IH_EXCLUSIVE | IH_ENTROPY | IH_DEAD | IH_DRAINING | + (ih->ih_flags & (IH_EXCLUSIVE | IH_ENTROPY | IH_DEAD | IH_MPSAFE)) != 0) { db_printf(" {"); comma = 0; @@ -1771,12 +1706,6 @@ db_printf("DEAD"); comma = 1; } - if (ih->ih_flags & IH_DRAINING) { - if (comma) - db_printf(", "); - db_printf("DRAINING"); - comma = 1; - } if (ih->ih_flags & IH_MPSAFE) { if (comma) db_printf(", "); ==== //depot/projects/smpng/sys/sys/interrupt.h#32 (text+ko) ==== @@ -59,7 +59,6 @@ #define IH_EXCLUSIVE 0x00000002 /* Exclusive interrupt. */ #define IH_ENTROPY 0x00000004 /* Device is a good entropy source. */ #define IH_DEAD 0x00000008 /* Handler should be removed. */ -#define IH_DRAINING 0x00000010 /* Has waiting drainer. */ #define IH_MPSAFE 0x80000000 /* Handler does not need Giant. */ /* @@ -176,7 +175,6 @@ int intr_event_handle(struct intr_event *ie, struct trapframe *frame); int intr_event_remove_handler(void *cookie); int intr_getaffinity(int irq, void *mask); -void intr_handler_drain(void *cookie); void *intr_handler_source(void *cookie); int intr_setaffinity(int irq, void *mask); int swi_add(struct intr_event **eventp, const char *name, From owner-p4-projects@FreeBSD.ORG Thu Nov 4 10:56:15 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B544D1065670; Thu, 4 Nov 2010 10:56:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40713106566B for ; Thu, 4 Nov 2010 10:56:15 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 2A1BB8FC1B for ; Thu, 4 Nov 2010 10:56:15 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA4AuFq2000405 for ; Thu, 4 Nov 2010 10:56:15 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA4AuEWQ000402 for perforce@freebsd.org; Thu, 4 Nov 2010 10:56:14 GMT (envelope-from rene@FreeBSD.org) Date: Thu, 4 Nov 2010 10:56:14 GMT Message-Id: <201011041056.oA4AuEWQ000402@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185370 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: Thu, 04 Nov 2010 10:56:16 -0000 http://p4web.freebsd.org/@@185370?ac=10 Change 185370 by rene@rene_acer on 2010/11/04 10:55:25 - IFC - Porters' Handbook: - Merge proposed section on INSTALL_LIB from sunpoet@ - Update Clang section, it will be in 9.0 and later Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/portbuild/article.sgml#28 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#90 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#29 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/share/sgml/mailing-lists.ent#21 integrate .. //depot/projects/docproj_nl/www/en/administration.sgml#15 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.hardware.xml#7 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.software.xml#9 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/portbuild/article.sgml#28 (text+ko) ==== @@ -11,7 +11,7 @@ The &os; Ports Management Team - $FreeBSD: doc/en_US.ISO8859-1/articles/portbuild/article.sgml,v 1.61 2010/10/09 16:13:15 linimon Exp $ + $FreeBSD: doc/en_US.ISO8859-1/articles/portbuild/article.sgml,v 1.62 2010/10/31 20:29:21 erwin Exp $ 2003 @@ -1906,7 +1906,7 @@ Populate /var/portbuild/scripts/ by something like - /var/portbuild/dosetupnode arch major latest hostname. + /var/portbuild/scripts/dosetupnode arch major latest hostname. Verify that you now have files in that directory. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#90 (text+ko) ==== @@ -1,7 +1,7 @@ + INSTALL_LIB is a command to install + shared libraries. + + + INSTALL_KLD is a command to install kernel loadable modules. Some architectures don't like it when the modules are stripped, therefor use this command instead @@ -4129,18 +4134,19 @@ - Stripping Binaries + Stripping binaries and shared libraries Do not strip binaries manually unless you have to. All binaries - should be stripped, but the INSTALL_PROGRAM + should be stripped, but the INSTALL_PROGRAM macro will install and strip a binary at the same time (see the next - section). + section). The INSTALL_LIB macro does the same thing + to shared libraries. - If you need to strip a file, but do not wish to use the - INSTALL_PROGRAM macro, - ${STRIP_CMD} will strip your program. This is - typically done within the post-install - target. For example: + If you need to strip a file, but do not wish to use either + INSTALL_PROGRAM or INSTALL_LIB + macros, ${STRIP_CMD} will strip your program or + shared library. This is typically done within the + post-install target. For example: post-install: ${STRIP_CMD} ${PREFIX}/bin/xdl @@ -13555,6 +13561,13 @@ 8.1-STABLE after 8.1-RELEASE. + 801501 + November 3, 2010 + 8.1-STABLE after KBI change in struct sysentvec, + and implementation of PL_FLAG_SCE/SCX/EXEC/SI and + pl_siginfo for ptrace(PT_LWPINFO) . + + 900000 August 22, 2009 9.0-CURRENT. @@ -13860,9 +13873,9 @@ Clang: new C/C++ compiler - A future version of &os; will have the Clang C/C++ - compiler as its base compiler. Some modifications to the - Ports Collection are necessary. In general, these involve + As of version 9.0, &os; will have the Clang C/C++ compiler as + its base compiler, next to GCC. Some modifications to the + Ports Collection are necessary for Clang. In general, these involve generalizing the port and making the source code portable. More specifically: ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/eresources/chapter.sgml#29 (text+ko) ==== @@ -1,7 +1,7 @@ + - $FreeBSD: www/share/sgml/commercial.hardware.xml,v 1.19 2010/07/21 22:38:39 jkois Exp $ + $FreeBSD: www/share/sgml/commercial.hardware.xml,v 1.20 2010/11/03 20:07:59 jkois Exp $ @@ -21,6 +21,41 @@ href="http://www.abmx.com/">http://www.abmx.com/. + + + Acnodes Corporation + http://www.acnodes.com/ + +

Acnodes Corporation provides FreeBSD and Linux-based computer + for customers in the industrial control, automation industries + and the military. Our rack mount computers, embedded systems + and Panel PCs are fully configurable and support FreeBSD, Linux + or any other operating system.

+ +

Our product line includes Rackmount + computers (1U to 4U rack-mount ready computers, standard ATX + or SBC systems), Panel PCs (panel + mount ready touch screen computer), + Embedded system boxes (fan less all-in-one computer integrated + into a rugged metal compact-size micro box), Monitor + keyboard drawers (space-saving 1U/2U control console, optional + for Cat6, IP KVM switch) and Rackmount + LCD monitors (rack-mount ready LCD monitors up to 20-inch).

+ +

Our product line configurations are illustrated on our website. However, most of the + commercial and industrial computers are custom built to your + exact requirements. Contact + us via e-mail or telephone to discover how we can provide you + with the equipment you need for your specific needs.

+
+
ActiveWire Inc. ==== //depot/projects/docproj_nl/www/share/sgml/commercial.software.xml#9 (text+ko) ==== @@ -1,12 +1,12 @@ - + - $FreeBSD: www/share/sgml/commercial.software.xml,v 1.30 2010/10/28 21:16:14 jkois Exp $ + $FreeBSD: www/share/sgml/commercial.software.xml,v 1.36 2010/11/04 09:42:44 jkois Exp $ @@ -16,7 +16,9 @@ E-Commerce Solutions and Tools Electronic Mail Software Miscellaneous + Network Systems and Applications Scientific and Language Tools Security @@ -523,30 +525,6 @@ - - Infoflex, Inc. - http://www.infoflex.com/ - - Infoflex, Inc. products include: 1) SQLflex, an SQL - client/server clone of Informix ESQL/C and Informix Standard - engine, 2) Infoflex-4GL, a 4GL - language syntactically similar to Informix and database - compatible, 3) Queryflex, a point and - shoot report writer enabling novice users to develop their own - reports.4) AccountFlex, a - full featured accounting system for Order Entry, Inventory, Job Cost, - Bill of Materials, Purchasing, A/R, A/P, G/L, and Payroll. All - Infoflex products are supported on UNIX, DOS, NT, and VMS. For more - information on Infoflex products, please visit our web site or email us at - info@infoflex.com. - - - Inlab Software GmbH http://www.munich.net/inlab/scheme/ @@ -658,24 +636,6 @@ - - KX Systems - http://www.kx.com/ - - KX Systems presents Kdb, an RDBMS that provides both transaction - processing and decision support capabilities for large amounts of - data. Kdb extracts data from ODBC, flat files, ASCII, and binary - storage formats. Kdb connects with Excel, Visual Basic, C, Java and - HTML, enabling users with Web browsers to access and analyze data - from any location. Data formats include relational, multidimensional, - time series, and object. Queries are written in SQL and KSQL, an - extended, more powerful query language. Application deployment is - client/server. High-end processing is parallel. Kdb supports FreeBSD, - Linux, UNIX, and NT. For more information, call Kx Systems at +1 305 - 642 5242 or visit www.kx.com. - - - Lone Star Software Corp http://www.LONE-TAR.com/ @@ -1007,28 +967,6 @@ - - RealNetworks, Inc. - http://www.real.com/ - - RealNetworks, Inc. offers its RealPlayer, - RealServer, and - RealEncoder - software for FreeBSD. The FREE RealPlayer allows you to play live - and on-demand audio over 14.4Kbps and faster connections. All you - have to do is click on a RealAudio link from your Web browser and - audio begins playing instantly. Check out The RealMedia Guide to access - thousands of sites, offering music, news, live radio stations, live - events, etc. The RealServer allows your web site to deliver live and - on-demand audio, video, and animation over the Internet or your - company network. A FREE version of the RealServer, called the Basic - Server, is available. - - - REBOL http://www.rebol.com/ @@ -1091,19 +1029,6 @@ - - Sababeach - http://www.sababeach.net/ - - We manufacture software Tools for use in the distribution - industry. The Tools automate a business in performing the - traditional functions of Order Entry, Invoicing, Accounts - Receivable, Purchasing, Accounts Payable, and Inventory Control. - This automation is provided using open source software operating - over an intranet (LAN) and/or the Internet (WAN). - - - Sane Solutions, LLC http://www.sane.com/ @@ -1159,13 +1084,15 @@ - - Sleepycat Software - http://www.sleepycat.com + + Oracle + http://www.oracle.com - Sleepycat Software distributes Berkeley DB, an embeddable database - system with full source. Berkeley DB runs on a wide variety of Unix - systems and on Windows 95 and NT. It offers high-end data management + Oracle distributes Berkeley DB, an embeddable database system with + full source. Oracle Berkeley DB is tested and certified + to compile and run on all modern operating systems including Solaris, + Windows, Linux, Android, Mac OS/X, BSD, iPhone OS, VxWorks, and QNX + to name a few. It offers high-end data management services, including full transaction support, disaster recovery, hot backup, very large databases, and the ability to handle large numbers of users concurrently. Keys and records can be arbitrarily long, and @@ -1174,9 +1101,9 @@ and can be called from C, C++, Java, or Perl. Berkeley DB is easy to install and manage, so your customers can use your application without learning how to be database administrators. For more - information, please visit www.sleepycat.com or send us - email at db@sleepycat.com. + information visit the + Berkeley DB website. @@ -1625,7 +1552,7 @@ - + Anthemion Software Ltd. http://www.anthemion.co.uk From owner-p4-projects@FreeBSD.ORG Thu Nov 4 12:33:51 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 15E381065670; Thu, 4 Nov 2010 12:33:51 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CC6391065695 for ; Thu, 4 Nov 2010 12:33:50 +0000 (UTC) (envelope-from afiveg@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id B74298FC18 for ; Thu, 4 Nov 2010 12:33:50 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA4CXoge021263 for ; Thu, 4 Nov 2010 12:33:50 GMT (envelope-from afiveg@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA4CXomF021260 for perforce@freebsd.org; Thu, 4 Nov 2010 12:33:50 GMT (envelope-from afiveg@FreeBSD.org) Date: Thu, 4 Nov 2010 12:33:50 GMT Message-Id: <201011041233.oA4CXomF021260@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to afiveg@FreeBSD.org using -f From: Alexandre Fiveg To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185371 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: Thu, 04 Nov 2010 12:33:51 -0000 http://p4web.freebsd.org/@@185371?ac=10 Change 185371 by afiveg@cottonmouth on 2010/11/04 12:33:13 Changes in the libppcap: - the new data structure pcap_ringmap inserted into pcap structure. All variables that are related to ringmap are now members of pcap_ringmap. - include "ringmap.h" is moved into pcap-int.h Affected files ... .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#20 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#20 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#24 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap/pcap.h#4 edit .. //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#37 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#53 edit .. //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#52 edit .. //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#35 edit .. //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#36 edit .. //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#30 edit Differences ... ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-bpf.c#20 (text+ko) ==== @@ -163,7 +163,6 @@ #ifdef RINGMAP #include -#include "../../sys/net/ringmap.h" extern void uninit_mmapped_capturing(pcap_t *); #endif @@ -1142,7 +1141,7 @@ #endif #ifdef RINGMAP - if (p->ringmap_flags == 1){ + if (p->rp.status == 1) { uninit_mmapped_capturing(p); } #endif ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap-int.h#20 (text+ko) ==== @@ -56,6 +56,10 @@ #include #endif +#ifdef RINGMAP +#include "../../sys/net/ringmap.h" +#endif + #if (defined(_MSC_VER) && (_MSC_VER <= 1200)) /* we are compiling with Visual Studio 6, that doesn't support the LL suffix*/ /* @@ -333,8 +337,9 @@ struct pcap_pkthdr pcap_header; /* This is needed for the pcap_next_ex() to work */ #ifdef RINGMAP - int ringmap_flags; - struct ring *ring; + struct pcap_ringmap rp; +// int ringmap_flags; +// struct ring *ring; #endif }; ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap.c#24 (text+ko) ==== @@ -72,11 +72,10 @@ #endif #ifdef RINGMAP -#include "../../sys/net/ringmap.h" #include extern int init_mmapped_capturing(const char *device, pcap_t *); -extern void ringmap_setfilter(struct bpf_program *); +extern void ringmap_setfilter(struct bpf_program *, pcap_t *); extern int pcap_read_ringmap(pcap_t *, int , pcap_handler , u_char *); #endif @@ -280,10 +279,10 @@ * requires the modification of these application. Thats why I set * ringmap_flags staticaly here */ - p->ringmap_flags = set_ringmap_flags(1); + p->rp.status = set_ringmap_status(1, p); /* Replace 1 with RINGMAP_ACTIVE macro */ - if (p->ringmap_flags == 1){ + if (p->rp.status == 1) { if (init_mmapped_capturing(source, p) < 0) goto fail; p->read_op = pcap_read_ringmap; @@ -1022,9 +1021,9 @@ #ifdef RINGMAP int err = p->setfilter_op(p, fp); - if (p->ringmap_flags == 1){ + if (p->rp.status == 1) { if (err == 0) - ringmap_setfilter(fp); + ringmap_setfilter(fp, p); } return (err); ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/pcap/pcap.h#4 (text+ko) ==== @@ -340,7 +340,7 @@ void bpf_dump(struct bpf_program *, int); #ifdef RINGMAP -int set_ringmap_flags(int val); +int set_ringmap_status(int val, pcap_t *p); #endif #if defined(WIN32) ==== //depot/projects/soc2010/ringmap/current/contrib/libpcap/ringmap_pcap.c#37 (text+ko) ==== @@ -22,38 +22,25 @@ #include "pcap.h" #include "pcap-int.h" -#include "../../sys/net/ringmap.h" - - -/* TODO: That's dirty! Place the next into the pcap structure */ -/* File descriptor of /dev/iface */ -int ringmap_cdev_fd = -1; -int ringmap_active_status = 0; - -/*** F U N C T I O N S ***/ int init_mmapped_capturing(const char *device, pcap_t *); void uninit_mmapped_capturing(pcap_t *); int pcap_read_ringmap(pcap_t *, int , pcap_handler , u_char *); -void ringmap_setfilter(struct bpf_program *); +void ringmap_setfilter(struct bpf_program *, pcap_t *); - - - int -set_ringmap_flags(int val) +set_ringmap_status(int val, pcap_t *p) { /* If active status already set do nothing */ - if (ringmap_active_status == 0) - ringmap_active_status = val; - - return (ringmap_active_status); + if (p->rp.status == 0) + p->rp.status = val; + return (p->rp.status); } -/******************************************************** +/* * Open (/dev/iface) device to communicate with - * kernel. Map buffers by calling mmap (/dev/mem, ...) + * kernel. Map buffers by calling mmap(/dev/mem, ...) * in space of our user process. - ********************************************************/ + */ int init_mmapped_capturing(const char *device, pcap_t *p) { @@ -68,39 +55,41 @@ sprintf(dev_path, "/dev/%s", device); /* Open /dev/ device for communication with our driver */ - if ((ringmap_cdev_fd = open(dev_path, O_RDWR)) == -1) { + if ((p->rp.cdev_fd = open(dev_path, O_RDWR)) == -1) { printf("[%s] Error by opening %s \n", __func__, dev_path); perror("/dev/" RINGMAP_DEVICE); - return(-1); + return (-1); } + /* Set queue number we want to attach to our thread */ + queue_num = DEFAULT_QUEUE; + + /* Associate our thread with the queue_num */ + ioctl(p->rp.cdev_fd, IOCTL_ATTACH_RING, &queue_num); + /* * Open mem device for mmaping of kernel memory regions into space of our * process */ - if ((devmem_fd = open("/dev/mem", O_RDWR)) == -1){ + if ((devmem_fd = open("/dev/mem", O_RDWR)) == -1) { perror("/dev/mem"); return (-1); } /** - ** Here we map the ring structure into the - ** memory space of current process. + ** Get the physical address of the ring **/ - if (read(ringmap_cdev_fd, &ring, sizeof(vm_paddr_t)) == -1) { - RINGMAP_ERROR(Can not read phys addr of ring from kernel); + if (read(p->rp.cdev_fd, &ring, sizeof(vm_paddr_t)) == -1) { + RINGMAP_ERROR(Can not get phys addr of ring!); return (-1); } - /* TODO: extend this for multiple queue case */ - queue_num = DEFAULT_QUEUE; - /* Attach and init the ring to our thread */ - ioctl(ringmap_cdev_fd, IOCTL_ATTACH_RING, &queue_num); #if (__RINGMAP_DEB) printf("[%s] Phys addr of ring 0x%X\n", __func__, ring); #endif + /* Map ring into our address space */ tmp_addr = mmap(0, /* Kernel gives us the address */ sizeof(struct ring), /* Number of bytes we are mapping */ PROT_WRITE|PROT_READ, /* We want both read and write */ @@ -112,31 +101,30 @@ return (-1); } - p->ring = (struct ring *)tmp_addr; - if (p->ring->size != SLOTS_NUMBER){ + p->rp.ring = (struct ring *)tmp_addr; + if (p->rp.ring->size != SLOTS_NUMBER) { RINGMAP_ERROR("Wrong size of ring buffer!"); - return -1; + return (-1); } #if (__RINGMAP_DEB) - printf("Virtual address of ring is 0x%X\n", p->ring); - printf("Ring Size = %d \n", p->ring->size); + printf("Virtual address of ring is 0x%X\n", p->rp.ring); + printf("Ring Size = %d \n", p->rp.ring->size); - for(i=0 ;i < SLOTS_NUMBER; i++){ - PRINT_PACKET_ADDR(p->ring, i); + for (i=0 ;i < SLOTS_NUMBER; i++) { + PACKET_ADDR_DEB(p->rp.ring, i); } - PRINT_RING_PTRS(p->ring); + PRINT_RING_PTRS(p->rp.ring); #endif /* * Mapping mbufs and packet buffers from kern into userspace. */ for (i = 0; i < SLOTS_NUMBER; i++) { - /* Map mbuf */ - memoffset = (off_t)p->ring->slot[i].mbuf.phys; - tmp_addr = mmap (0, /* System will choose the addrress */ + memoffset = (off_t)p->rp.ring->slot[i].mbuf.phys; + tmp_addr = mmap(0, /* System will choose the addrress */ sizeof(struct mbuf), /* Size of mapped region (mbuf) */ PROT_WRITE|PROT_READ, /* protection: write & read */ MAP_SHARED, /* shared maping */ @@ -146,12 +134,12 @@ if (tmp_addr == MAP_FAILED) { printf(ERR_PREFIX"[%s] Mapping of mbuf %d failed!\n", __func__, i); - return -1; + return (-1); } - p->ring->slot[i].mbuf.user = (vm_offset_t)tmp_addr; + U_MBUF(p->rp.ring, i) = (vm_offset_t)tmp_addr; /* Map packet data */ - memoffset = (off_t)p->ring->slot[i].packet.phys; + memoffset = (off_t)p->rp.ring->slot[i].packet.phys; tmp_addr = mmap( 0, MCLBYTES, @@ -159,20 +147,18 @@ MAP_SHARED, devmem_fd, memoffset); - if (tmp_addr == MAP_FAILED){ + if (tmp_addr == MAP_FAILED) { printf(ERR_PREFIX"[%s] Mapping of packets buffer %d failed!\n", __func__, i); - return -1; + return (-1); } - p->ring->slot[i].packet.user = (vm_offset_t)tmp_addr; + U_PACKET(p->rp.ring, i) = (vm_offset_t)tmp_addr; -#if (__RINGMAP_DEB) - PRINT_PACKET_ADDR(p->ring, i); -#endif + PACKET_ADDR_DEB(p->rp.ring, i); } /* Close memory device */ - if (close(devmem_fd) == -1){ + if (close(devmem_fd) == -1) { perror("close()"); } @@ -197,35 +183,37 @@ goto out; } - if (p->ring == NULL) { + if (p->rp.ring == NULL) { RINGMAP_FUNC_DEBUG(NULL pointer to ringstructure); goto out; } + p->rp.status = 0; + /* Unmap slots */ - for (i = 0; i < SLOTS_NUMBER; i++){ - tmp_res = munmap((void *)p->ring->slot[i].mbuf.user, + for (i = 0; i < SLOTS_NUMBER; i++) { + tmp_res = munmap((void *)U_MBUF(p->rp.ring, i), sizeof(struct mbuf)); if (tmp_res == -1) printf(ERR_PREFIX"[%s] Error by unmapping of mbuf %d\n", __func__, i); - tmp_res = munmap((void *)p->ring->slot[i].packet.user, MCLBYTES); + tmp_res = munmap((void *)U_PACKET(p->rp.ring, i), MCLBYTES); if (tmp_res == -1) printf(ERR_PREFIX"[%s] Error by unmapping of packet buffer %d\n", __func__, i); } /* Unmap ring */ - tmp_res = munmap(p->ring, sizeof(struct ring)); + tmp_res = munmap(p->rp.ring, sizeof(struct ring)); if (tmp_res == -1) { RINGMAP_ERROR(Unmaping the ring pointer); } out: - if (ringmap_cdev_fd >= 0){ - if ( close(ringmap_cdev_fd) == -1 ) + if (p->rp.cdev_fd >= 0) { + if (close(p->rp.cdev_fd) == -1) perror("close()"); } @@ -233,9 +221,9 @@ } void -ringmap_setfilter(struct bpf_program *fp) +ringmap_setfilter(struct bpf_program *fp, pcap_t *p) { - if (ioctl(ringmap_cdev_fd, IOCTL_SETFILTER, (caddr_t)fp) == 0) { + if (ioctl(p->rp.cdev_fd, IOCTL_SETFILTER, (caddr_t)fp) == 0) { RINGMAP_FUNC_DEBUG(Filter is set); } else { RINGMAP_WARN(Filter is not set!); @@ -261,22 +249,21 @@ return (-2); } - if (p->ring == NULL){ + if (p->rp.ring == NULL) { RINGMAP_ERROR(Ring is not allocated); exit (1); } - ring = p->ring; + ring = p->rp.ring; - /* stay here as long as the ring is empty */ + /* stay here while the ring is empty */ while (RING_IS_EMPTY(ring)) { -#if (__RINGMAP_DEB) - PRINT_RING_PTRS(ring); + RING_PTRS_DEB(ring); RINGMAP_FUNC_DEBUG(Ring is empty. Sleep...); -#endif + /* Sleep and wait for new incoming packets */ - err_sleep = ioctl(ringmap_cdev_fd, IOCTL_SLEEP_WAIT); + err_sleep = ioctl(p->rp.cdev_fd, IOCTL_SLEEP_WAIT); /* catching signals */ if (err_sleep) { @@ -288,16 +275,13 @@ } /* Ok, if we are here the ring shouldn't be empty, let's capture */ -#if (__RINGMAP_DEB) - RINGMAP_FUNC_DEBUG(Ring is NOT empty:); - PRINT_RING_PTRS(ring); -#endif + RINGMAP_FUNC_DEBUG(Ring is NOT empty:); + RING_PTRS_DEB(ring); - if ( (cnt == -1) || (cnt == 0) ) - cnt = SW_TAIL_TO_HEAD_DIST(p->ring); + if ((cnt == -1) || (cnt == 0)) + cnt = SW_TAIL_TO_HEAD_DIST(p->rp.ring); - for (ws = cnt ; ( (ws) && (RING_NOT_EMPTY(p->ring)) ) ; ) - { + for (ws = cnt; ((ws) && (RING_NOT_EMPTY(p->rp.ring)));) { if (p->break_loop) { p->break_loop = 0; if (!(cnt - ws)) @@ -307,7 +291,8 @@ } /* Slot we want to check */ - curr_slot = R_MODULO( SW_TAIL(ring) + 1 ); + curr_slot = R_MODULO(SW_TAIL(ring) + 1); + /* * ringmap-Driver tell us whether the slot contains * a good packet @@ -343,19 +328,15 @@ ring->pkt_counter++; --ws; -#if (__RINGMAP_DEB) - PRINT_PKT_BYTES(datap, curr_slot); -#endif + PKT_BYTES_DEB(datap, curr_slot); /* callback function */ (*callback)(user, &pkthdr, datap); -#if (__RINGMAP_DEB) - PRINT_SLOT(ring, curr_slot); -#endif + PRINT_SLOT_DEB(ring, curr_slot); out: - SW_INCR_TAIL(ring); + INCR_TAIL(ring); ring->slot[curr_slot].filtered = 0; ring->slot[curr_slot].is_ok = 0; @@ -375,11 +356,11 @@ { int err = 0; - if (p->ring == NULL) + if (p->rp.ring == NULL) return (-1); - printf("HEAD Pointer (kern) = %d\n", SW_HEAD(p->ring)); - printf("TAIL Pointer (user) = %d\n", SW_TAIL(p->ring)); + printf("HEAD Pointer (kern) = %d\n", SW_HEAD(p->rp.ring)); + printf("TAIL Pointer (user) = %d\n", SW_TAIL(p->rp.ring)); return (err); } @@ -390,17 +371,15 @@ { int err = 0; - if (p->ring == NULL){ + if (p->rp.ring == NULL) { RINGMAP_ERROR(Ring is not allocated!); return (-1); } - printf("Ring-Full counter: %llu\n", p->ring->kern_wait_user); - printf("Ring-Empty counter: %llu\n", p->ring->user_wait_kern); - printf("Interrupt counter: %llu\n", p->ring->intr_num); - printf("Pkts per interrupt: %llu\n", - (p->ring->pkt_counter / p->ring->intr_num)); + printf("Ring-Full counter: %llu\n", p->rp.ring->kern_wait_user); + printf("Ring-Empty counter: %llu\n", p->rp.ring->user_wait_kern); + printf("Interrupt counter: %llu\n", p->rp.ring->intr_num); return (err); } ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.c#53 (text+ko) ==== @@ -33,7 +33,7 @@ #include #include -#include /* For pci_get macros! */ +#include #include #include "ringmap.h" @@ -54,7 +54,6 @@ d_close_t ringmap_close; d_ioctl_t ringmap_ioctl; d_read_t ringmap_read; -d_mmap_single_t ringmap_mmap_single; static struct cdevsw ringmap_devsw = { .d_version = D_VERSION, @@ -62,7 +61,6 @@ .d_close = ringmap_close, .d_ioctl = ringmap_ioctl, .d_read = ringmap_read, /* Tell to user ring physical addr */ - .d_mmap_single = ringmap_mmap_single, /* Doesn't work yet */ .d_name = "ringmap_cdev" }; @@ -72,7 +70,7 @@ /* * The function should be called from the attach function of generic network - * driver. Here the ringmap structure is allocated and the character special + * driver. Here the ringmap structure is allocated and the character special * device for the communication with user is created. Also default ringmap * functions are set. */ @@ -116,11 +114,11 @@ /* * Initialize the list of capturing objects. Each object represents the - * thread that capture traffic and its ring. + * thread that capture traffic and its ring. The objects werden created + * by open(2): see ringmap_open() further. */ SLIST_INIT(&rm->object_list); - /* Insert ringmap structure into the list */ SLIST_INSERT_HEAD(&ringmap_list_head, rm, entries); /* Init the mutex for protecting our data */ @@ -165,6 +163,7 @@ return (-1); } +again: /* Remove all capturing objects associated with ringmap */ while (!SLIST_EMPTY(&rm->object_list)) { co = SLIST_FIRST(&rm->object_list); @@ -172,9 +171,11 @@ } RINGMAP_LOCK(rm); - /* To be sure */ + /* To be sure . This is dirty:(. TODO: do in other way */ if (!SLIST_EMPTY(&rm->object_list)) { RINGMAP_WARN(There are still active capturing objects); + RINGMAP_UNLOCK(rm); + goto again; } /* Destroy char device associated with ringmap */ if (rm->cdev != NULL) @@ -212,7 +213,7 @@ printf(RINGMAP_PREFIX"[%s] pid = %d\n", __func__, td->td_proc->p_pid); #endif rm = cdev2ringmap(cdev); - if ( rm == NULL ) { + if (rm == NULL) { RINGMAP_ERROR(Could not get the pointer to ringmap structure); return (EIO); } @@ -222,7 +223,8 @@ /* TODO: set max number of threads in the ringmap struct as a member */ if (rm->open_cnt == RINGMAP_MAX_THREADS) { RINGMAP_ERROR(Can not open device!); - err = EIO; goto out; + err = EIO; + goto out; } /* First stop receive and interupts while we allocate our data */ @@ -234,7 +236,8 @@ SLIST_FOREACH(co, &rm->object_list, objects) { if (co->td == td) { RINGMAP_ERROR(Device is opened!); - err = EIO; goto out; + err = EIO; + goto out; } } @@ -246,7 +249,8 @@ M_DEVBUF, M_ZERO, 0, -1L, PAGE_SIZE, 0); if (ring == NULL) { RINGMAP_ERROR(Can not allocate space for ring); - err = EIO; goto out; + err = EIO; + goto out; } ring->size = SLOTS_NUMBER; @@ -267,7 +271,7 @@ SLIST_INSERT_HEAD(&rm->object_list, co, objects); /* - * Store capturing object as private data. So we can access our capturing + * Store capturing object as private data. So we can access it * object in other syscalls, e.g. read, close, etc... */ if (devfs_set_cdevpriv((void *)co, clear_capt_object)) { @@ -284,7 +288,9 @@ rm->funcs->receive_enable(rm); RINGMAP_UNLOCK(rm); + RINGMAP_FUNC_DEBUG(end); + return (err); } @@ -341,53 +347,6 @@ } -/* doesn't work yet */ -int -ringmap_mmap_single(struct cdev *cdev, vm_ooffset_t *offset, - vm_size_t size, struct vm_object **object, int nprot) -{ - struct ringmap *rm = NULL; - struct capt_object *co = NULL; - vm_object_t obj; - vm_map_entry_t entry; - vm_pindex_t pindex; - vm_prot_t prot; - boolean_t wired; - - rm = cdev2ringmap(cdev); - if ( rm == NULL ) { - RINGMAP_ERROR(Null pointer to ringmap structure); - - return (EIO); - } - - SLIST_FOREACH(co, &rm->object_list, objects) { - if (co->td == curthread) { - break; - } - } - - if ((co == NULL) || (co->ring == NULL)) { - RINGMAP_ERROR(Null pointer); - return (EIO); - } - - vm_map_lookup(&kmem_map, (vm_offset_t)co->ring, VM_PROT_ALL, - &entry, &obj, &pindex, &prot, &wired); - vm_map_lookup_done(kmem_map, entry); - - if (obj == kmem_object) { - RINGMAP_ERROR(Got kmem_object); - } else { - RINGMAP_FUNC_DEBUG(Got other obj); - } - - object = &obj; - - return (0); -} - - /* * Tells usre the physical addres of ring. User process will * use this addres in order to map the buffer in its address @@ -539,9 +498,7 @@ err = EINVAL; goto xxx; } -#if (__RINGMAP_DEB) - PRINT_SLOT(co->ring, i); -#endif + PRINT_SLOT_DEB(co->ring, i); } xxx: rm->funcs->intr_enable(rm); ==== //depot/projects/soc2010/ringmap/current/sys/net/ringmap.h#52 (text+ko) ==== @@ -28,6 +28,11 @@ */ #define RINGMAP_MAX_THREADS 8 +/* + * TODO: + * Somehow I don't like this addres stuff. We can get by whithout it. + * I am looking how to eliminate it. + */ struct address { vm_paddr_t volatile phys; vm_offset_t volatile kern; @@ -35,13 +40,11 @@ }; /* - * This structure represents the ring slot. Each slot contains two entities: - * mbuf and packet. Mbuf represents the kernel view of packet. The packet - * represents the buffer where the packet data is placed. - * - * Each entity is of type 'struct address'. Struct 'address' contains - * three addresses: physical-, kernel- and user-address. We need to store - * the physical addresses to be able to do memory mapping. + * This structure represents the ring slot. "mbuf" represents the kernel view + * of packet. The "packet" represents the buffer where the packet data is + * placed. Both are of type 'struct address'. Struct 'address' contains three + * addresses: physical-, kernel- and user-address. We need to store the + * physical addresses to be able to do memory mapping. */ struct ring_slot { @@ -54,10 +57,6 @@ /* 1 if accepted by driver and contains no errors */ int volatile is_ok; - /* - * Next fields are for statistics: - */ - /* Time stamp of packet stored in this slot */ struct timeval ts; @@ -130,6 +129,13 @@ struct ring_slot volatile slot[SLOTS_NUMBER]; }; +/* For libpcap. To be set in the pcap structure */ +struct pcap_ringmap { + int cdev_fd; + int status; + int flags; + struct ring *ring; +}; /* ************************************* * IOCTL ' s system calls * @@ -211,7 +217,7 @@ ((SW_TAIL(ringp) == SW_HEAD(ringp)) ? SLOTS_NUMBER : \ R_DISTANCE(SW_TAIL(ringp), SW_HEAD(ringp))) -#define SW_INCR_TAIL(ringp) \ +#define INCR_TAIL(ringp) \ (SW_TAIL(ringp)) = R_MODULO(SW_TAIL(ringp) + 1); #define RING_IS_EMPTY(ringp) \ @@ -294,13 +300,13 @@ printf("=+= [%s] SOME BYTES FROM PKT: %hhu %hhu %hhu %hhu %hhu %hhu %hhu\n", \ __func__, pktp[0], pktp[1], pktp[2], pktp[30], pktp[31], pktp[32], pktp[33]); -#define PRINT_PACKET_ADDR(ring, i) \ - do { \ +#define PACKET_ADDR_DEB(ring, i) \ + if (__RINGMAP_DEB) { \ printf("=+= packet.user=0x%X, packet.phys=0x%X, packet.kern=0x%X\n",\ (unsigned int)ring->slot[i].packet.user, \ (unsigned int)ring->slot[i].packet.phys, \ (unsigned int)ring->slot[i].packet.kern); \ - } while (0); + }; #define PRINT_MBUF_ADDR(ring, i) \ do { \ @@ -311,7 +317,7 @@ } while (0); #define PRINT_SLOT(ring, i) \ - if (((ring) != NULL) && ((i) < SLOTS_NUMBER)){ \ + if ((ring) != NULL) { \ printf("\n=+= ==================================\n"); \ printf("=+= Slot Number: %d \n", (i)); \ printf("=+= Intrr num: %llu\n", (ring)->slot[(i)].intr_num); \ @@ -321,27 +327,34 @@ printf("=+= Accepted: %d\n", (ring)->slot[(i)].is_ok); \ printf("=+= -------------------------\n"); \ PRINT_MBUF_ADDR(ring, i); \ - PRINT_PACKET_ADDR(ring, i); \ + PACKET_ADDR_DEB(ring, i); \ printf("=+= -------------------------\n"); \ printf("=+= ==================================\n\n"); \ - } else { \ - RINGMAP_ERROR(Print failed!); \ - } - -#define PRINT_SLOT_DEB(ring, i) \ - if (__RINGMAP_DEB) { \ - PRINT_SLOT((ring), (i)) \ }; - #define PRINT_TAIL(ring) \ printf("=+= [%s] tail = %d\n", __func__, SW_TAIL(ring)); #define PRINT_HEAD(ring) \ printf("=+= [%s] head = %d\n", __func__, SW_HEAD(ring)); +#define PRINT_SLOT_DEB(ring, i) \ + if (__RINGMAP_DEB) { \ + PRINT_SLOT((ring), (i)) \ + }; + #define PRINT_RING_PTRS(ring) \ do { \ PRINT_TAIL(ring) \ PRINT_HEAD(ring) \ } while (0); + +#define RING_PTRS_DEB(ring) \ +if (__RINGMAP_DEB) { \ + PRINT_RING_PTRS(ring) \ +}; + +#define PKT_BYTES_DEB(pktp, i) \ +if (__RINGMAP_DEB) { \ + PRINT_PKT_BYTES(pktp, i); \ +}; ==== //depot/projects/soc2010/ringmap/scripts/build_ringmap.sh#35 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/scripts/set_ringmap.sh#36 (text+ko) ==== ==== //depot/projects/soc2010/ringmap/scripts/tailf_ringmap_msgs.sh#30 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Thu Nov 4 17:28:04 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4F65B1065674; Thu, 4 Nov 2010 17:28:04 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 10EAC106564A for ; Thu, 4 Nov 2010 17:28:04 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id EFB108FC0A for ; Thu, 4 Nov 2010 17:28:03 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA4HS3mn081404 for ; Thu, 4 Nov 2010 17:28:03 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA4HS2qO081401 for perforce@freebsd.org; Thu, 4 Nov 2010 17:28:02 GMT (envelope-from hselasky@FreeBSD.org) Date: Thu, 4 Nov 2010 17:28:02 GMT Message-Id: <201011041728.oA4HS2qO081401@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.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 185374 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: Thu, 04 Nov 2010 17:28:04 -0000 http://p4web.freebsd.org/@@185374?ac=10 Change 185374 by hselasky@hselasky_laptop001 on 2010/11/04 17:27:55 IFC @ 185373 Affected files ... .. //depot/projects/usb/src/lib/libusbhid/Makefile#6 integrate .. //depot/projects/usb/src/lib/libusbhid/descr.c#10 integrate .. //depot/projects/usb/src/lib/libusbhid/usbvar.h#6 integrate .. //depot/projects/usb/src/sys/amd64/acpica/acpi_wakeup.c#10 integrate .. //depot/projects/usb/src/sys/amd64/acpica/madt.c#10 integrate .. //depot/projects/usb/src/sys/amd64/amd64/amd64_mem.c#7 integrate .. //depot/projects/usb/src/sys/amd64/amd64/apic_vector.S#8 integrate .. //depot/projects/usb/src/sys/amd64/amd64/dump_machdep.c#6 delete .. //depot/projects/usb/src/sys/amd64/amd64/fpu.c#9 integrate .. //depot/projects/usb/src/sys/amd64/amd64/genassym.c#16 integrate .. //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#15 integrate .. //depot/projects/usb/src/sys/amd64/amd64/machdep.c#36 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#30 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mp_watchdog.c#4 integrate .. //depot/projects/usb/src/sys/amd64/amd64/mptable.c#5 delete .. //depot/projects/usb/src/sys/amd64/amd64/mptable_pci.c#5 delete .. //depot/projects/usb/src/sys/amd64/amd64/nexus.c#11 delete .. //depot/projects/usb/src/sys/amd64/amd64/pmap.c#42 integrate .. //depot/projects/usb/src/sys/amd64/amd64/trap.c#27 integrate .. //depot/projects/usb/src/sys/amd64/include/apicreg.h#4 delete .. //depot/projects/usb/src/sys/amd64/include/mca.h#5 delete .. //depot/projects/usb/src/sys/amd64/include/pmap.h#14 integrate .. //depot/projects/usb/src/sys/amd64/include/profile.h#3 integrate .. //depot/projects/usb/src/sys/arm/arm/elf_trampoline.c#14 integrate .. //depot/projects/usb/src/sys/arm/at91/if_ate.c#21 integrate .. //depot/projects/usb/src/sys/arm/at91/if_macb.c#3 integrate .. //depot/projects/usb/src/sys/arm/econa/if_ece.c#2 integrate .. //depot/projects/usb/src/sys/arm/mv/mv_sata.c#6 integrate .. //depot/projects/usb/src/sys/arm/xscale/ixp425/if_npe.c#15 integrate .. //depot/projects/usb/src/sys/boot/common/gpt.c#2 integrate .. //depot/projects/usb/src/sys/boot/i386/boot2/boot2.c#8 integrate .. //depot/projects/usb/src/sys/boot/ofw/common/main.c#4 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/ofw_memory.c#2 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/ofw_net.c#3 integrate .. //depot/projects/usb/src/sys/boot/ofw/libofw/openfirm.c#4 integrate .. //depot/projects/usb/src/sys/boot/pc98/boot2/boot2.c#3 integrate .. //depot/projects/usb/src/sys/boot/sparc64/loader/main.c#12 integrate .. //depot/projects/usb/src/sys/cam/ata/ata_da.c#15 integrate .. //depot/projects/usb/src/sys/cam/cam_xpt.c#33 integrate .. //depot/projects/usb/src/sys/cam/scsi/scsi_da.c#23 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#9 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#24 integrate .. //depot/projects/usb/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c#8 integrate .. //depot/projects/usb/src/sys/conf/files#102 integrate .. //depot/projects/usb/src/sys/conf/files.amd64#33 integrate .. //depot/projects/usb/src/sys/conf/files.i386#37 integrate .. //depot/projects/usb/src/sys/conf/files.pc98#25 integrate .. //depot/projects/usb/src/sys/conf/files.powerpc#33 integrate .. //depot/projects/usb/src/sys/conf/kern.post.mk#13 integrate .. //depot/projects/usb/src/sys/conf/kmod.mk#20 integrate .. //depot/projects/usb/src/sys/conf/options.amd64#13 integrate .. //depot/projects/usb/src/sys/conf/options.powerpc#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi.c#32 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_if.m#4 integrate .. //depot/projects/usb/src/sys/dev/acpica/acpi_pci.c#6 integrate .. //depot/projects/usb/src/sys/dev/ae/if_ae.c#11 integrate .. //depot/projects/usb/src/sys/dev/ae/if_aevar.h#2 integrate .. //depot/projects/usb/src/sys/dev/age/if_age.c#16 integrate .. //depot/projects/usb/src/sys/dev/agp/agp.c#13 integrate .. //depot/projects/usb/src/sys/dev/agp/agp_apple.c#1 branch .. //depot/projects/usb/src/sys/dev/ahci/ahci.c#18 integrate .. //depot/projects/usb/src/sys/dev/alc/if_alc.c#12 integrate .. //depot/projects/usb/src/sys/dev/ale/if_ale.c#11 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.c#28 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-all.h#22 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-pci.c#21 integrate .. //depot/projects/usb/src/sys/dev/ata/ata-sata.c#9 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-ahci.c#16 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-intel.c#14 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-marvell.c#14 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-nvidia.c#12 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-promise.c#12 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-siliconimage.c#14 integrate .. //depot/projects/usb/src/sys/dev/ata/chipsets/ata-via.c#10 integrate .. //depot/projects/usb/src/sys/dev/bce/if_bce.c#31 integrate .. //depot/projects/usb/src/sys/dev/bfe/if_bfe.c#11 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bge.c#35 integrate .. //depot/projects/usb/src/sys/dev/bge/if_bgereg.h#20 integrate .. //depot/projects/usb/src/sys/dev/bm/if_bm.c#8 integrate .. //depot/projects/usb/src/sys/dev/cas/if_cas.c#6 integrate .. //depot/projects/usb/src/sys/dev/cas/if_casvar.h#3 integrate .. //depot/projects/usb/src/sys/dev/dc/dcphy.c#8 integrate .. //depot/projects/usb/src/sys/dev/dc/if_dc.c#15 integrate .. //depot/projects/usb/src/sys/dev/dc/pnphy.c#7 integrate .. //depot/projects/usb/src/sys/dev/e1000/e1000_82571.c#9 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_em.c#24 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_em.h#11 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_lem.c#6 integrate .. //depot/projects/usb/src/sys/dev/e1000/if_lem.h#4 integrate .. //depot/projects/usb/src/sys/dev/ed/if_ed_pccard.c#12 integrate .. //depot/projects/usb/src/sys/dev/et/if_et.c#7 integrate .. //depot/projects/usb/src/sys/dev/firewire/fwohci.c#8 integrate .. //depot/projects/usb/src/sys/dev/fxp/if_fxp.c#20 integrate .. //depot/projects/usb/src/sys/dev/gem/if_gem.c#15 integrate .. //depot/projects/usb/src/sys/dev/gem/if_gemvar.h#8 integrate .. //depot/projects/usb/src/sys/dev/hme/if_hme.c#8 integrate .. //depot/projects/usb/src/sys/dev/if_ndis/if_ndis.c#38 integrate .. //depot/projects/usb/src/sys/dev/iicbus/ds1775.c#1 branch .. //depot/projects/usb/src/sys/dev/iicbus/max6690.c#1 branch .. //depot/projects/usb/src/sys/dev/iwi/if_iwi.c#18 integrate .. //depot/projects/usb/src/sys/dev/jme/if_jme.c#13 integrate .. //depot/projects/usb/src/sys/dev/lge/if_lge.c#9 integrate .. //depot/projects/usb/src/sys/dev/md/md.c#18 integrate .. //depot/projects/usb/src/sys/dev/mfi/mfireg.h#9 integrate .. //depot/projects/usb/src/sys/dev/mge/if_mge.c#12 integrate .. //depot/projects/usb/src/sys/dev/mge/if_mgevar.h#4 integrate .. //depot/projects/usb/src/sys/dev/mii/acphy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/amphy.c#8 integrate .. //depot/projects/usb/src/sys/dev/mii/atphy.c#5 integrate .. //depot/projects/usb/src/sys/dev/mii/axphy.c#4 integrate .. //depot/projects/usb/src/sys/dev/mii/bmtphy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/brgphy.c#18 integrate .. //depot/projects/usb/src/sys/dev/mii/ciphy.c#9 integrate .. //depot/projects/usb/src/sys/dev/mii/e1000phy.c#15 integrate .. //depot/projects/usb/src/sys/dev/mii/exphy.c#5 integrate .. //depot/projects/usb/src/sys/dev/mii/gentbi.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/icsphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/inphy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/ip1000phy.c#7 integrate .. //depot/projects/usb/src/sys/dev/mii/jmphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/lxtphy.c#7 integrate .. //depot/projects/usb/src/sys/dev/mii/mii.c#9 integrate .. //depot/projects/usb/src/sys/dev/mii/mii_physubr.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/miidevs#21 integrate .. //depot/projects/usb/src/sys/dev/mii/miivar.h#5 integrate .. //depot/projects/usb/src/sys/dev/mii/mlphy.c#7 integrate .. //depot/projects/usb/src/sys/dev/mii/nsgphy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/nsphy.c#8 integrate .. //depot/projects/usb/src/sys/dev/mii/nsphyter.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/pnaphy.c#5 integrate .. //depot/projects/usb/src/sys/dev/mii/qsphy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/rgephy.c#9 integrate .. //depot/projects/usb/src/sys/dev/mii/rlphy.c#9 integrate .. //depot/projects/usb/src/sys/dev/mii/rlswitch.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/ruephy.c#6 integrate .. //depot/projects/usb/src/sys/dev/mii/smcphy.c#3 integrate .. //depot/projects/usb/src/sys/dev/mii/tdkphy.c#8 integrate .. //depot/projects/usb/src/sys/dev/mii/tlphy.c#8 integrate .. //depot/projects/usb/src/sys/dev/mii/truephy.c#5 integrate .. //depot/projects/usb/src/sys/dev/mii/ukphy.c#5 integrate .. //depot/projects/usb/src/sys/dev/mii/xmphy.c#5 integrate .. //depot/projects/usb/src/sys/dev/mps/mps.c#3 integrate .. //depot/projects/usb/src/sys/dev/mps/mps_user.c#3 integrate .. //depot/projects/usb/src/sys/dev/msk/if_msk.c#24 integrate .. //depot/projects/usb/src/sys/dev/mvs/mvs.c#5 integrate .. //depot/projects/usb/src/sys/dev/mvs/mvs_pci.c#3 integrate .. //depot/projects/usb/src/sys/dev/mvs/mvs_soc.c#3 integrate .. //depot/projects/usb/src/sys/dev/nfe/if_nfe.c#14 integrate .. //depot/projects/usb/src/sys/dev/nge/if_nge.c#10 integrate .. //depot/projects/usb/src/sys/dev/nve/if_nve.c#12 integrate .. //depot/projects/usb/src/sys/dev/pci/pci.c#38 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_pci.c#13 integrate .. //depot/projects/usb/src/sys/dev/pci/pci_private.h#9 integrate .. //depot/projects/usb/src/sys/dev/pci/pcireg.h#19 integrate .. //depot/projects/usb/src/sys/dev/pci/pcivar.h#14 integrate .. //depot/projects/usb/src/sys/dev/pcn/if_pcn.c#6 integrate .. //depot/projects/usb/src/sys/dev/re/if_re.c#29 integrate .. //depot/projects/usb/src/sys/dev/sf/if_sf.c#5 integrate .. //depot/projects/usb/src/sys/dev/sge/if_sge.c#6 integrate .. //depot/projects/usb/src/sys/dev/siis/siis.c#16 integrate .. //depot/projects/usb/src/sys/dev/sis/if_sis.c#10 integrate .. //depot/projects/usb/src/sys/dev/sk/if_sk.c#13 integrate .. //depot/projects/usb/src/sys/dev/smc/if_smc.c#6 integrate .. //depot/projects/usb/src/sys/dev/sound/pcm/channel.c#10 integrate .. //depot/projects/usb/src/sys/dev/ste/if_ste.c#9 integrate .. //depot/projects/usb/src/sys/dev/stge/if_stge.c#12 integrate .. //depot/projects/usb/src/sys/dev/tl/if_tl.c#5 integrate .. //depot/projects/usb/src/sys/dev/tl/if_tlreg.h#3 integrate .. //depot/projects/usb/src/sys/dev/tsec/if_tsec.c#9 integrate .. //depot/projects/usb/src/sys/dev/tx/if_tx.c#7 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#63 integrate .. //depot/projects/usb/src/sys/dev/usb/controller/ehcireg.h#6 integrate .. //depot/projects/usb/src/sys/dev/usb/net/usb_ethernet.c#15 integrate .. //depot/projects/usb/src/sys/dev/usb/storage/umass.c#58 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_device.c#82 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_freebsd.h#3 integrate .. //depot/projects/usb/src/sys/dev/usb/usb_hub.c#61 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdevs#143 integrate .. //depot/projects/usb/src/sys/dev/usb/usbdi.h#24 integrate .. //depot/projects/usb/src/sys/dev/vge/if_vge.c#15 integrate .. //depot/projects/usb/src/sys/dev/vr/if_vr.c#8 integrate .. //depot/projects/usb/src/sys/dev/vr/if_vrreg.h#3 integrate .. //depot/projects/usb/src/sys/dev/wb/if_wb.c#5 integrate .. //depot/projects/usb/src/sys/dev/xen/balloon/balloon.c#4 integrate .. //depot/projects/usb/src/sys/dev/xen/blkback/blkback.c#5 integrate .. //depot/projects/usb/src/sys/dev/xen/blkfront/blkfront.c#10 integrate .. //depot/projects/usb/src/sys/dev/xen/blkfront/block.h#4 integrate .. //depot/projects/usb/src/sys/dev/xen/control/control.c#1 branch .. //depot/projects/usb/src/sys/dev/xen/netfront/netfront.c#17 integrate .. //depot/projects/usb/src/sys/dev/xen/xenpci/evtchn.c#2 integrate .. //depot/projects/usb/src/sys/dev/xen/xenpci/xenpci.c#2 integrate .. //depot/projects/usb/src/sys/dev/xl/if_xl.c#10 integrate .. //depot/projects/usb/src/sys/fs/msdosfs/msdosfs_lookup.c#5 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfs_var.h#12 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfsclstate.h#3 integrate .. //depot/projects/usb/src/sys/fs/nfs/nfsdport.h#4 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clnode.c#8 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clstate.c#13 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvfsops.c#10 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfs_clvnops.c#19 integrate .. //depot/projects/usb/src/sys/fs/nfsclient/nfsmount.h#4 integrate .. //depot/projects/usb/src/sys/fs/nfsserver/nfs_nfsdport.c#13 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli.c#13 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli.h#7 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli_ctl.c#7 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli_integrity.c#3 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli_key.c#5 integrate .. //depot/projects/usb/src/sys/geom/eli/g_eli_privacy.c#3 integrate .. //depot/projects/usb/src/sys/geom/geom_dev.c#15 integrate .. //depot/projects/usb/src/sys/geom/part/g_part.c#29 integrate .. //depot/projects/usb/src/sys/geom/part/g_part.h#11 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_gpt.c#23 integrate .. //depot/projects/usb/src/sys/geom/part/g_part_if.m#8 integrate .. //depot/projects/usb/src/sys/i386/acpica/acpi_wakeup.c#8 integrate .. //depot/projects/usb/src/sys/i386/acpica/madt.c#11 integrate .. //depot/projects/usb/src/sys/i386/i386/apic_vector.s#6 integrate .. //depot/projects/usb/src/sys/i386/i386/dump_machdep.c#7 delete .. //depot/projects/usb/src/sys/i386/i386/elan-mmcr.c#6 integrate .. //depot/projects/usb/src/sys/i386/i386/genassym.c#11 integrate .. //depot/projects/usb/src/sys/i386/i386/identcpu.c#22 integrate .. //depot/projects/usb/src/sys/i386/i386/initcpu.c#13 integrate .. //depot/projects/usb/src/sys/i386/i386/intr_machdep.c#15 integrate .. //depot/projects/usb/src/sys/i386/i386/longrun.c#3 integrate .. //depot/projects/usb/src/sys/i386/i386/machdep.c#32 integrate .. //depot/projects/usb/src/sys/i386/i386/mp_machdep.c#25 integrate .. //depot/projects/usb/src/sys/i386/i386/mp_watchdog.c#4 integrate .. //depot/projects/usb/src/sys/i386/i386/mpboot.s#3 integrate .. //depot/projects/usb/src/sys/i386/i386/mptable.c#5 delete .. //depot/projects/usb/src/sys/i386/i386/mptable_pci.c#5 delete .. //depot/projects/usb/src/sys/i386/i386/nexus.c#10 delete .. //depot/projects/usb/src/sys/i386/i386/perfmon.c#2 integrate .. //depot/projects/usb/src/sys/i386/i386/trap.c#22 integrate .. //depot/projects/usb/src/sys/i386/include/apicreg.h#4 delete .. //depot/projects/usb/src/sys/i386/include/mca.h#5 delete .. //depot/projects/usb/src/sys/i386/include/profile.h#4 integrate .. //depot/projects/usb/src/sys/i386/isa/npx.c#13 integrate .. //depot/projects/usb/src/sys/i386/xen/mp_machdep.c#16 integrate .. //depot/projects/usb/src/sys/i386/xen/mptable.c#3 integrate .. //depot/projects/usb/src/sys/i386/xen/xen_machdep.c#12 integrate .. //depot/projects/usb/src/sys/kern/init_main.c#21 integrate .. //depot/projects/usb/src/sys/kern/kern_clock.c#14 integrate .. //depot/projects/usb/src/sys/kern/kern_cpuset.c#10 integrate .. //depot/projects/usb/src/sys/kern/kern_exec.c#29 integrate .. //depot/projects/usb/src/sys/kern/kern_exit.c#29 integrate .. //depot/projects/usb/src/sys/kern/kern_fork.c#24 integrate .. //depot/projects/usb/src/sys/kern/kern_kthread.c#13 integrate .. //depot/projects/usb/src/sys/kern/kern_ktrace.c#15 integrate .. //depot/projects/usb/src/sys/kern/kern_resource.c#16 integrate .. //depot/projects/usb/src/sys/kern/kern_shutdown.c#20 integrate .. //depot/projects/usb/src/sys/kern/kern_syscalls.c#6 integrate .. //depot/projects/usb/src/sys/kern/kern_thr.c#20 integrate .. //depot/projects/usb/src/sys/kern/kern_thread.c#21 integrate .. //depot/projects/usb/src/sys/kern/kern_timeout.c#16 integrate .. //depot/projects/usb/src/sys/kern/sched_ule.c#29 integrate .. //depot/projects/usb/src/sys/kern/subr_acl_nfs4.c#9 integrate .. //depot/projects/usb/src/sys/kern/subr_clock.c#6 integrate .. //depot/projects/usb/src/sys/kern/vfs_bio.c#31 integrate .. //depot/projects/usb/src/sys/kern/vfs_cache.c#30 integrate .. //depot/projects/usb/src/sys/kern/vfs_mount.c#39 integrate .. //depot/projects/usb/src/sys/kern/vfs_mountroot.c#2 integrate .. //depot/projects/usb/src/sys/mips/atheros/if_arge.c#6 integrate .. //depot/projects/usb/src/sys/mips/cavium/octe/octe.c#4 integrate .. //depot/projects/usb/src/sys/mips/cavium/octeon_ebt3000_cf.c#5 integrate .. //depot/projects/usb/src/sys/mips/idt/if_kr.c#5 integrate .. //depot/projects/usb/src/sys/mips/rmi/board.c#7 integrate .. //depot/projects/usb/src/sys/mips/rmi/dev/nlge/if_nlge.c#4 integrate .. //depot/projects/usb/src/sys/mips/rmi/xlr_machdep.c#8 integrate .. //depot/projects/usb/src/sys/modules/Makefile#56 integrate .. //depot/projects/usb/src/sys/modules/acpi/acpi/Makefile#17 integrate .. //depot/projects/usb/src/sys/modules/agp/Makefile#7 integrate .. //depot/projects/usb/src/sys/modules/mii/Makefile#9 integrate .. //depot/projects/usb/src/sys/modules/mps/Makefile#2 integrate .. //depot/projects/usb/src/sys/modules/wlan/Makefile#14 integrate .. //depot/projects/usb/src/sys/net/bpf.h#10 integrate .. //depot/projects/usb/src/sys/net/if.c#52 integrate .. //depot/projects/usb/src/sys/net/if.h#18 integrate .. //depot/projects/usb/src/sys/net/if_debug.c#1 branch .. //depot/projects/usb/src/sys/net/if_llatbl.c#12 integrate .. //depot/projects/usb/src/sys/net/if_llatbl.h#7 integrate .. //depot/projects/usb/src/sys/net/rtsock.c#37 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ratectl.c#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ratectl.h#2 integrate .. //depot/projects/usb/src/sys/net80211/ieee80211_ratectl_none.c#1 branch .. //depot/projects/usb/src/sys/netinet/if_ether.c#38 integrate .. //depot/projects/usb/src/sys/netinet/in.c#48 integrate .. //depot/projects/usb/src/sys/netinet/in_debug.c#1 branch .. //depot/projects/usb/src/sys/netinet/ip_ipsec.c#20 integrate .. //depot/projects/usb/src/sys/netinet/libalias/libalias.3#4 integrate .. //depot/projects/usb/src/sys/netinet/tcp_reass.c#16 integrate .. //depot/projects/usb/src/sys/netinet6/ip6_ipsec.c#13 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec.c#26 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_input.c#16 integrate .. //depot/projects/usb/src/sys/netipsec/ipsec_output.c#15 integrate .. //depot/projects/usb/src/sys/netipsec/key.c#30 integrate .. //depot/projects/usb/src/sys/netipsec/keydb.h#4 integrate .. //depot/projects/usb/src/sys/nfs/nfs_lock.c#2 integrate .. //depot/projects/usb/src/sys/nfs/nfs_lock.h#2 integrate .. //depot/projects/usb/src/sys/nfs/nfs_mountcommon.h#1 branch .. //depot/projects/usb/src/sys/nfsclient/nfs.h#14 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_bio.c#24 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_nfsiod.c#9 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_node.c#13 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vfsops.c#26 integrate .. //depot/projects/usb/src/sys/nfsclient/nfs_vnops.c#37 integrate .. //depot/projects/usb/src/sys/nfsclient/nfsmount.h#9 integrate .. //depot/projects/usb/src/sys/nfsclient/nfsnode.h#12 integrate .. //depot/projects/usb/src/sys/nfsserver/nfs_serv.c#20 integrate .. //depot/projects/usb/src/sys/nlm/nlm_advlock.c#9 integrate .. //depot/projects/usb/src/sys/nlm/nlm_prot_impl.c#11 integrate .. //depot/projects/usb/src/sys/pc98/include/apicreg.h#2 delete .. //depot/projects/usb/src/sys/pc98/include/bus.h#4 integrate .. //depot/projects/usb/src/sys/pc98/include/mca.h#2 delete .. //depot/projects/usb/src/sys/pc98/pc98/busiosubr.c#4 integrate .. //depot/projects/usb/src/sys/pc98/pc98/machdep.c#22 integrate .. //depot/projects/usb/src/sys/pci/if_rl.c#18 integrate .. //depot/projects/usb/src/sys/powerpc/aim/copyinout.c#5 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea.c#18 integrate .. //depot/projects/usb/src/sys/powerpc/aim/mmu_oea64.c#18 integrate .. //depot/projects/usb/src/sys/powerpc/aim/slb.c#3 integrate .. //depot/projects/usb/src/sys/powerpc/aim/swtch32.S#2 integrate .. //depot/projects/usb/src/sys/powerpc/aim/swtch64.S#2 integrate .. //depot/projects/usb/src/sys/powerpc/aim/trap.c#12 integrate .. //depot/projects/usb/src/sys/powerpc/aim/trap_subr32.S#2 integrate .. //depot/projects/usb/src/sys/powerpc/aim/trap_subr64.S#3 integrate .. //depot/projects/usb/src/sys/powerpc/aim/vm_machdep.c#9 integrate .. //depot/projects/usb/src/sys/powerpc/conf/GENERIC#32 integrate .. //depot/projects/usb/src/sys/powerpc/conf/GENERIC64#3 integrate .. //depot/projects/usb/src/sys/powerpc/conf/NOTES#17 integrate .. //depot/projects/usb/src/sys/powerpc/include/pcb.h#9 integrate .. //depot/projects/usb/src/sys/powerpc/include/slb.h#2 integrate .. //depot/projects/usb/src/sys/powerpc/include/sr.h#5 integrate .. //depot/projects/usb/src/sys/powerpc/mambo/mambo_console.c#2 integrate .. //depot/projects/usb/src/sys/powerpc/powermac/cpcht.c#4 integrate .. //depot/projects/usb/src/sys/powerpc/powermac/fcu.c#1 branch .. //depot/projects/usb/src/sys/powerpc/powerpc/exec_machdep.c#3 integrate .. //depot/projects/usb/src/sys/powerpc/powerpc/genassym.c#11 integrate .. //depot/projects/usb/src/sys/security/mac/mac_vfs.c#11 integrate .. //depot/projects/usb/src/sys/sparc64/include/tick.h#6 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/mp_machdep.c#17 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/pmap.c#21 integrate .. //depot/projects/usb/src/sys/sparc64/sparc64/tick.c#8 integrate .. //depot/projects/usb/src/sys/sys/ktrace.h#7 integrate .. //depot/projects/usb/src/sys/sys/proc.h#32 integrate .. //depot/projects/usb/src/sys/sys/sockio.h#9 integrate .. //depot/projects/usb/src/sys/sys/systm.h#27 integrate .. //depot/projects/usb/src/sys/ufs/ufs/ufs_dirhash.c#13 integrate .. //depot/projects/usb/src/sys/vm/swap_pager.c#22 integrate .. //depot/projects/usb/src/sys/vm/uma.h#9 integrate .. //depot/projects/usb/src/sys/vm/uma_core.c#17 integrate .. //depot/projects/usb/src/sys/vm/vm_map.c#30 integrate .. //depot/projects/usb/src/sys/vm/vm_map.h#14 integrate .. //depot/projects/usb/src/sys/vm/vm_phys.c#10 integrate .. //depot/projects/usb/src/sys/vm/vm_reserv.c#4 integrate .. //depot/projects/usb/src/sys/x86/include/apicreg.h#1 branch .. //depot/projects/usb/src/sys/x86/include/mca.h#1 branch .. //depot/projects/usb/src/sys/x86/isa/atrtc.c#3 integrate .. //depot/projects/usb/src/sys/x86/x86/dump_machdep.c#1 branch .. //depot/projects/usb/src/sys/x86/x86/io_apic.c#2 integrate .. //depot/projects/usb/src/sys/x86/x86/local_apic.c#4 integrate .. //depot/projects/usb/src/sys/x86/x86/mca.c#2 integrate .. //depot/projects/usb/src/sys/x86/x86/mptable.c#1 branch .. //depot/projects/usb/src/sys/x86/x86/mptable_pci.c#1 branch .. //depot/projects/usb/src/sys/x86/x86/msi.c#2 integrate .. //depot/projects/usb/src/sys/x86/x86/nexus.c#1 branch .. //depot/projects/usb/src/sys/xen/blkif.h#1 branch .. //depot/projects/usb/src/sys/xen/evtchn/evtchn.c#9 integrate .. //depot/projects/usb/src/sys/xen/gnttab.c#8 integrate .. //depot/projects/usb/src/sys/xen/gnttab.h#7 integrate .. //depot/projects/usb/src/sys/xen/interface/grant_table.h#4 integrate .. //depot/projects/usb/src/sys/xen/interface/hvm/params.h#4 integrate .. //depot/projects/usb/src/sys/xen/interface/io/blkif.h#3 integrate .. //depot/projects/usb/src/sys/xen/interface/io/protocols.h#3 integrate .. //depot/projects/usb/src/sys/xen/interface/io/ring.h#3 integrate .. //depot/projects/usb/src/sys/xen/interface/io/xenbus.h#3 integrate .. //depot/projects/usb/src/sys/xen/reboot.c#3 delete .. //depot/projects/usb/src/sys/xen/xen_intr.h#3 integrate .. //depot/projects/usb/src/sys/xen/xenbus/init.txt#2 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus.c#1 branch .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_client.c#4 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_comms.c#4 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_comms.h#4 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_dev.c#4 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_if.m#2 integrate .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_probe.c#8 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_probe_backend.c#4 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbus_xs.c#7 delete .. //depot/projects/usb/src/sys/xen/xenbus/xenbusb.c#1 branch .. //depot/projects/usb/src/sys/xen/xenbus/xenbusb.h#1 branch .. //depot/projects/usb/src/sys/xen/xenbus/xenbusb_back.c#1 branch .. //depot/projects/usb/src/sys/xen/xenbus/xenbusb_front.c#1 branch .. //depot/projects/usb/src/sys/xen/xenbus/xenbusb_if.m#1 branch .. //depot/projects/usb/src/sys/xen/xenbus/xenbusvar.h#3 integrate .. //depot/projects/usb/src/sys/xen/xenstore/xenstore.c#1 branch .. //depot/projects/usb/src/sys/xen/xenstore/xenstore_dev.c#1 branch .. //depot/projects/usb/src/sys/xen/xenstore/xenstore_internal.h#1 branch .. //depot/projects/usb/src/sys/xen/xenstore/xenstorevar.h#1 branch .. //depot/projects/usb/src/usr.sbin/usbconfig/usbconfig.c#23 integrate Differences ... ==== //depot/projects/usb/src/lib/libusbhid/Makefile#6 (text+ko) ==== @@ -1,5 +1,5 @@ # $NetBSD: Makefile,v 1.5 1999/07/23 09:44:38 mrg Exp $ -# $FreeBSD: src/lib/libusbhid/Makefile,v 1.13 2009/07/19 17:25:24 kensmith Exp $ +# $FreeBSD: src/lib/libusbhid/Makefile,v 1.14 2010/10/16 11:20:53 hselasky Exp $ LIB= usbhid MAN= usbhid.3 @@ -19,4 +19,8 @@ INCS= usbhid.h +.if defined(COMPAT_32BIT) +CFLAGS+= -DCOMPAT_32BIT +.endif + .include ==== //depot/projects/usb/src/lib/libusbhid/descr.c#10 (text+ko) ==== @@ -27,7 +27,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libusbhid/descr.c,v 1.13 2010/03/27 08:00:16 kaiw Exp $"); +__FBSDID("$FreeBSD: src/lib/libusbhid/descr.c,v 1.14 2010/10/16 11:20:53 hselasky Exp $"); #include @@ -103,7 +103,7 @@ memset(&ugd, 0, sizeof(ugd)); /* get actual length first */ - ugd.ugd_data = NULL; + ugd.ugd_data = hid_pass_ptr(NULL); ugd.ugd_maxlen = 65535; if (ioctl(fd, USB_GET_REPORT_DESC, &ugd) < 0) { #ifdef HID_COMPAT7 @@ -124,7 +124,7 @@ return (NULL); /* fetch actual descriptor */ - ugd.ugd_data = data; + ugd.ugd_data = hid_pass_ptr(data); ugd.ugd_maxlen = ugd.ugd_actlen; if (ioctl(fd, USB_GET_REPORT_DESC, &ugd) < 0) { /* could not read descriptor */ @@ -132,8 +132,15 @@ return (NULL); } + /* sanity check */ + if (ugd.ugd_actlen < 1) { + /* invalid report descriptor */ + free(data); + return (NULL); + } + /* check END_COLLECTION */ - if (((unsigned char *)ugd.ugd_data)[ugd.ugd_actlen -1] != 0xC0) { + if (((unsigned char *)data)[ugd.ugd_actlen -1] != 0xC0) { /* invalid end byte */ free(data); return (NULL); ==== //depot/projects/usb/src/lib/libusbhid/usbvar.h#6 (text+ko) ==== @@ -25,10 +25,13 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/lib/libusbhid/usbvar.h,v 1.5 2010/03/27 08:00:16 kaiw Exp $ + * $FreeBSD: src/lib/libusbhid/usbvar.h,v 1.6 2010/10/16 11:20:53 hselasky Exp $ * */ +#ifndef _USBVAR_H_ +#define _USBVAR_H_ + struct report_desc { uint32_t size; uint8_t data[1]; @@ -41,3 +44,11 @@ int hid_get_report_id_compat7(int fd); report_desc_t hid_get_report_desc_compat7(int fd); #endif + +#ifdef COMPAT_32BIT +#define hid_pass_ptr(ptr) ((uint64_t)(uintptr_t)(ptr)) +#else +#define hid_pass_ptr(ptr) (ptr) +#endif + +#endif /* _USBVAR_H_ */ ==== //depot/projects/usb/src/sys/amd64/acpica/acpi_wakeup.c#10 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.37 2010/08/13 22:08:42 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/acpi_wakeup.c,v 1.39 2010/11/01 18:18:46 jhb Exp $"); #include #include @@ -41,13 +41,13 @@ #include #include -#include +#include #include #include #include #ifdef SMP -#include +#include #include #include #endif ==== //depot/projects/usb/src/sys/amd64/acpica/madt.c#10 (text+ko) ==== @@ -28,7 +28,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.30 2010/06/11 18:46:34 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/acpica/madt.c,v 1.31 2010/11/01 18:18:46 jhb Exp $"); #include #include @@ -39,7 +39,7 @@ #include #include -#include +#include #include #include ==== //depot/projects/usb/src/sys/amd64/amd64/amd64_mem.c#7 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.33 2010/02/02 01:20:33 rnoland Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/amd64_mem.c,v 1.34 2010/10/27 16:46:37 alc Exp $"); #include #include @@ -35,6 +35,10 @@ #include #include +#include +#include +#include + #include #include #include @@ -527,9 +531,9 @@ amd64_mrset(struct mem_range_softc *sc, struct mem_range_desc *mrd, int *arg) { struct mem_range_desc *targ; - int error = 0; + int error, i; - switch(*arg) { + switch (*arg) { case MEMRANGE_SET_UPDATE: /* * Make sure that what's being asked for is even @@ -568,6 +572,21 @@ return (EOPNOTSUPP); } + /* + * Ensure that the direct map region does not contain any mappings + * that span MTRRs of different types. However, the fixed MTRRs can + * be ignored, because a large page mapping the first 1 MB of physical + * memory is a special case that the processor handles. The entire + * TLB will be invalidated by amd64_mrstore(), so pmap_demote_DMAP() + * needn't do it. + */ + i = (sc->mr_cap & MR686_FIXMTRR) ? MTRR_N64K + MTRR_N16K + MTRR_N4K : 0; + mrd = sc->mr_desc + i; + for (; i < sc->mr_ndesc; i++, mrd++) { + if (mrd->mr_flags & MDF_ACTIVE) + pmap_demote_DMAP(mrd->mr_base, mrd->mr_len, FALSE); + } + /* Update the hardware. */ amd64_mrstore(sc); @@ -657,6 +676,21 @@ if (mrd->mr_flags & MDF_ACTIVE) mrd->mr_flags |= MDF_FIRMWARE; } + + /* + * Ensure that the direct map region does not contain any mappings + * that span MTRRs of different types. However, the fixed MTRRs can + * be ignored, because a large page mapping the first 1 MB of physical + * memory is a special case that the processor handles. Invalidate + * any old TLB entries that might hold inconsistent memory type + * information. + */ + i = (sc->mr_cap & MR686_FIXMTRR) ? MTRR_N64K + MTRR_N16K + MTRR_N4K : 0; + mrd = sc->mr_desc + i; + for (; i < sc->mr_ndesc; i++, mrd++) { + if (mrd->mr_flags & MDF_ACTIVE) + pmap_demote_DMAP(mrd->mr_base, mrd->mr_len, TRUE); + } } /* ==== //depot/projects/usb/src/sys/amd64/amd64/apic_vector.S#8 (text+ko) ==== @@ -28,7 +28,7 @@ * SUCH DAMAGE. * * from: vector.s, 386BSD 0.1 unknown origin - * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.117 2010/06/17 11:54:49 mav Exp $ + * $FreeBSD: src/sys/amd64/amd64/apic_vector.S,v 1.118 2010/11/01 18:18:46 jhb Exp $ */ /* @@ -39,7 +39,7 @@ #include "opt_smp.h" #include -#include +#include #include "assym.s" ==== //depot/projects/usb/src/sys/amd64/amd64/fpu.c#9 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.173 2010/07/26 23:20:55 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/fpu.c,v 1.174 2010/10/25 15:31:13 jhb Exp $"); #include #include @@ -113,14 +113,14 @@ void fpuinit(void) { - register_t savecrit; + register_t saveintr; u_int mxcsr; u_short control; /* * It is too early for critical_enter() to work on AP. */ - savecrit = intr_disable(); + saveintr = intr_disable(); stop_emulating(); fninit(); control = __INITIAL_FPUCW__; @@ -137,7 +137,7 @@ bzero(fpu_initialstate.sv_xmm, sizeof(fpu_initialstate.sv_xmm)); } start_emulating(); - intr_restore(savecrit); + intr_restore(saveintr); } /* ==== //depot/projects/usb/src/sys/amd64/amd64/genassym.c#16 (text+ko) ==== @@ -33,7 +33,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.181 2010/08/02 18:12:30 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/genassym.c,v 1.182 2010/11/01 18:18:46 jhb Exp $"); #include "opt_compat.h" #include "opt_hwpmc_hooks.h" @@ -66,7 +66,7 @@ #include #include #include -#include +#include #include #include #include ==== //depot/projects/usb/src/sys/amd64/amd64/intr_machdep.c#15 (text+ko) ==== @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.51 2010/07/02 17:22:15 mav Exp $ + * $FreeBSD: src/sys/amd64/amd64/intr_machdep.c,v 1.52 2010/10/28 13:44:19 jhb Exp $ */ /* @@ -458,7 +458,7 @@ /* Leave all interrupts on the BSP during boot. */ if (!assign_cpu) - return (cpu_apic_ids[0]); + return (PCPU_GET(apic_id)); mtx_lock_spin(&icu_lock); apic_id = cpu_apic_ids[current_cpu]; ==== //depot/projects/usb/src/sys/amd64/amd64/machdep.c#36 (text+ko) ==== @@ -39,7 +39,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.726 2010/10/12 20:53:12 jkim Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/machdep.c,v 1.727 2010/11/01 17:40:35 jhb Exp $"); #include "opt_atalk.h" #include "opt_atpic.h" @@ -112,7 +112,7 @@ #include #include #include -#include +#include #include #include #include ==== //depot/projects/usb/src/sys/amd64/amd64/mp_machdep.c#30 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.333 2010/10/01 10:32:54 avg Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/mp_machdep.c,v 1.335 2010/11/01 18:18:46 jhb Exp $"); #include "opt_cpu.h" #include "opt_kstack_pages.h" @@ -57,11 +57,11 @@ #include #include -#include +#include #include #include #include -#include +#include #include #include #include ==== //depot/projects/usb/src/sys/amd64/amd64/mp_watchdog.c#4 (text+ko) ==== @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/amd64/amd64/mp_watchdog.c,v 1.6 2007/12/25 17:51:55 rwatson Exp $ + * $FreeBSD: src/sys/amd64/amd64/mp_watchdog.c,v 1.7 2010/11/01 18:18:46 jhb Exp $ */ #include "opt_mp_watchdog.h" @@ -44,7 +44,7 @@ #include #include -#include +#include #include #include ==== //depot/projects/usb/src/sys/amd64/amd64/pmap.c#42 (text+ko) ==== @@ -77,7 +77,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.711 2010/08/17 12:17:24 gahr Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/pmap.c,v 1.715 2010/10/30 23:49:37 alc Exp $"); /* * Manages physical address maps. @@ -462,7 +462,7 @@ if (ndmpdp < 4) /* Minimum 4GB of dirmap */ ndmpdp = 4; DMPDPphys = allocpages(firstaddr, NDMPML4E); - if (TRUE || (amd_feature & AMDID_PAGE1GB) == 0) + if ((amd_feature & AMDID_PAGE1GB) == 0) DMPDphys = allocpages(firstaddr, ndmpdp); dmaplimit = (vm_paddr_t)ndmpdp << PDPSHIFT; @@ -494,11 +494,16 @@ ((pdp_entry_t *)KPDPphys)[i + KPDPI] |= PG_RW | PG_V | PG_U; } - /* Now set up the direct map space using either 2MB or 1GB pages */ - /* Preset PG_M and PG_A because demotion expects it */ - if (TRUE || (amd_feature & AMDID_PAGE1GB) == 0) { + /* + * Now, set up the direct map region using either 2MB or 1GB pages. + * Later, if pmap_mapdev{_attr}() uses the direct map for non-write- + * back memory, pmap_change_attr() will demote any 2MB or 1GB page + * mappings that are partially used. + */ + if ((amd_feature & AMDID_PAGE1GB) == 0) { for (i = 0; i < NPDEPG * ndmpdp; i++) { ((pd_entry_t *)DMPDphys)[i] = (vm_paddr_t)i << PDRSHIFT; + /* Preset PG_M and PG_A because demotion expects it. */ ((pd_entry_t *)DMPDphys)[i] |= PG_RW | PG_V | PG_PS | PG_G | PG_M | PG_A; } @@ -512,6 +517,7 @@ for (i = 0; i < ndmpdp; i++) { ((pdp_entry_t *)DMPDPphys)[i] = (vm_paddr_t)i << PDPSHIFT; + /* Preset PG_M and PG_A because demotion expects it. */ ((pdp_entry_t *)DMPDPphys)[i] |= PG_RW | PG_V | PG_PS | PG_G | PG_M | PG_A; } @@ -1163,26 +1169,33 @@ vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va) { - vm_paddr_t rtval; + pdp_entry_t *pdpe; + pd_entry_t *pde; pt_entry_t *pte; - pd_entry_t pde, *pdep; + vm_paddr_t pa; - rtval = 0; + pa = 0; PMAP_LOCK(pmap); - pdep = pmap_pde(pmap, va); - if (pdep != NULL) { - pde = *pdep; - if (pde) { - if ((pde & PG_PS) != 0) - rtval = (pde & PG_PS_FRAME) | (va & PDRMASK); - else { - pte = pmap_pde_to_pte(pdep, va); - rtval = (*pte & PG_FRAME) | (va & PAGE_MASK); + pdpe = pmap_pdpe(pmap, va); + if (pdpe != NULL && (*pdpe & PG_V) != 0) { + if ((*pdpe & PG_PS) != 0) + pa = (*pdpe & PG_PS_FRAME) | (va & PDPMASK); + else { + pde = pmap_pdpe_to_pde(pdpe, va); + if ((*pde & PG_V) != 0) { + if ((*pde & PG_PS) != 0) { + pa = (*pde & PG_PS_FRAME) | + (va & PDRMASK); + } else { + pte = pmap_pde_to_pte(pde, va); + pa = (*pte & PG_FRAME) | + (va & PAGE_MASK); + } } } } PMAP_UNLOCK(pmap); - return (rtval); + return (pa); } /* @@ -4941,6 +4954,54 @@ } /* + * Demotes any mapping within the direct map region that covers more than the + * specified range of physical addresses. This range's size must be a power + * of two and its starting address must be a multiple of its size. Since the + * demotion does not change any attributes of the mapping, a TLB invalidation + * is not mandatory. The caller may, however, request a TLB invalidation. + */ +void +pmap_demote_DMAP(vm_paddr_t base, vm_size_t len, boolean_t invalidate) +{ + pdp_entry_t *pdpe; + pd_entry_t *pde; + vm_offset_t va; + boolean_t changed; + + if (len == 0) + return; + KASSERT(powerof2(len), ("pmap_demote_DMAP: len is not a power of 2")); + KASSERT((base & (len - 1)) == 0, + ("pmap_demote_DMAP: base is not a multiple of len")); + if (len < NBPDP && base < dmaplimit) { + va = PHYS_TO_DMAP(base); + changed = FALSE; + PMAP_LOCK(kernel_pmap); + pdpe = pmap_pdpe(kernel_pmap, va); + if ((*pdpe & PG_V) == 0) + panic("pmap_demote_DMAP: invalid PDPE"); + if ((*pdpe & PG_PS) != 0) { + if (!pmap_demote_pdpe(kernel_pmap, pdpe, va)) + panic("pmap_demote_DMAP: PDPE failed"); + changed = TRUE; + } + if (len < NBPDR) { + pde = pmap_pdpe_to_pde(pdpe, va); + if ((*pde & PG_V) == 0) + panic("pmap_demote_DMAP: invalid PDE"); + if ((*pde & PG_PS) != 0) { + if (!pmap_demote_pde(kernel_pmap, pde, va)) + panic("pmap_demote_DMAP: PDE failed"); + changed = TRUE; + } + } + if (changed && invalidate) + pmap_invalidate_page(kernel_pmap, va); + PMAP_UNLOCK(kernel_pmap); + } +} + +/* * perform the pmap work for mincore */ int ==== //depot/projects/usb/src/sys/amd64/amd64/trap.c#27 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.348 2010/08/25 09:10:32 rpaulo Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.349 2010/11/01 17:40:35 jhb Exp $"); /* * AMD64 Trap and System call handling @@ -83,7 +83,7 @@ #include #include -#include +#include #include #include #ifdef SMP ==== //depot/projects/usb/src/sys/amd64/include/pmap.h#14 (text+ko) ==== @@ -39,7 +39,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.154 2010/07/09 20:05:56 kib Exp $ + * $FreeBSD: src/sys/amd64/include/pmap.h,v 1.155 2010/10/27 16:46:37 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -307,6 +307,7 @@ void pmap_bootstrap(vm_paddr_t *); int pmap_change_attr(vm_offset_t, vm_size_t, int); +void pmap_demote_DMAP(vm_paddr_t base, vm_size_t len, boolean_t invalidate); void pmap_init_pat(void); void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void *pmap_kenter_temporary(vm_paddr_t pa, int i); ==== //depot/projects/usb/src/sys/amd64/include/profile.h#3 (text+ko) ==== @@ -27,7 +27,7 @@ * SUCH DAMAGE. * * @(#)profile.h 8.1 (Berkeley) 6/11/93 - * $FreeBSD: src/sys/amd64/include/profile.h,v 1.48 2006/10/28 13:12:06 bde Exp $ + * $FreeBSD: src/sys/amd64/include/profile.h,v 1.49 2010/10/25 15:28:03 jhb Exp $ >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Nov 4 18:32:36 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6CCAD106567A; Thu, 4 Nov 2010 18:32:36 +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 2E050106566C for ; Thu, 4 Nov 2010 18:32:36 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 18CB08FC0A for ; Thu, 4 Nov 2010 18:32:36 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA4IWZIk095946 for ; Thu, 4 Nov 2010 18:32:35 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA4IWXoU095943 for perforce@freebsd.org; Thu, 4 Nov 2010 18:32:33 GMT (envelope-from jhb@freebsd.org) Date: Thu, 4 Nov 2010 18:32:33 GMT Message-Id: <201011041832.oA4IWXoU095943@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185376 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: Thu, 04 Nov 2010 18:32:36 -0000 http://p4web.freebsd.org/@@185376?ac=10 Change 185376 by jhb@jhb_jhbbsd on 2010/11/04 18:31:34 IFC @185373 Affected files ... .. //depot/projects/smpng/share/man/man9/DB_COMMAND.9#2 integrate .. //depot/projects/smpng/share/man/man9/MD5.9#2 integrate .. //depot/projects/smpng/share/man/man9/Makefile#19 integrate .. //depot/projects/smpng/share/man/man9/VOP_GETPAGES.9#3 integrate .. //depot/projects/smpng/share/man/man9/VOP_READDIR.9#3 integrate .. //depot/projects/smpng/share/man/man9/fail.9#5 integrate .. //depot/projects/smpng/share/man/man9/ieee80211_ddb.9#3 integrate .. //depot/projects/smpng/share/man/man9/ieee80211_radiotap.9#4 integrate .. //depot/projects/smpng/share/man/man9/make_dev.9#7 integrate .. //depot/projects/smpng/share/man/man9/mbuf.9#3 integrate .. //depot/projects/smpng/share/man/man9/style.9#3 integrate .. //depot/projects/smpng/share/man/man9/sysctl_add_oid.9#2 integrate .. //depot/projects/smpng/share/man/man9/sysctl_ctx_init.9#2 integrate .. //depot/projects/smpng/share/man/man9/taskqueue.9#4 integrate .. //depot/projects/smpng/share/man/man9/timeout.9#4 integrate .. //depot/projects/smpng/share/man/man9/uio.9#5 integrate .. //depot/projects/smpng/share/man/man9/vm_page_io.9#2 integrate .. //depot/projects/smpng/share/man/man9/vm_page_sleep_busy.9#2 delete .. //depot/projects/smpng/share/man/man9/vm_page_sleep_if_busy.9#1 branch .. //depot/projects/smpng/share/man/man9/vm_page_wakeup.9#2 integrate .. //depot/projects/smpng/share/man/man9/vput.9#3 delete .. //depot/projects/smpng/share/man/man9/vrele.9#3 integrate .. //depot/projects/smpng/share/man/man9/zone.9#2 integrate .. //depot/projects/smpng/sys/amd64/acpica/acpi_wakeup.c#17 integrate .. //depot/projects/smpng/sys/amd64/acpica/madt.c#21 integrate .. //depot/projects/smpng/sys/amd64/amd64/amd64_mem.c#12 integrate .. //depot/projects/smpng/sys/amd64/amd64/apic_vector.S#21 integrate .. //depot/projects/smpng/sys/amd64/amd64/busdma_machdep.c#34 integrate .. //depot/projects/smpng/sys/amd64/amd64/dump_machdep.c#10 delete .. //depot/projects/smpng/sys/amd64/amd64/fpu.c#19 integrate .. //depot/projects/smpng/sys/amd64/amd64/genassym.c#31 integrate .. //depot/projects/smpng/sys/amd64/amd64/identcpu.c#41 integrate .. //depot/projects/smpng/sys/amd64/amd64/intr_machdep.c#41 integrate .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#98 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_machdep.c#72 integrate .. //depot/projects/smpng/sys/amd64/amd64/mp_watchdog.c#5 integrate .. //depot/projects/smpng/sys/amd64/amd64/mptable.c#14 delete .. //depot/projects/smpng/sys/amd64/amd64/mptable_pci.c#10 delete .. //depot/projects/smpng/sys/amd64/amd64/nexus.c#33 delete .. //depot/projects/smpng/sys/amd64/amd64/pmap.c#112 integrate .. //depot/projects/smpng/sys/amd64/amd64/trap.c#79 integrate .. //depot/projects/smpng/sys/amd64/include/apicreg.h#7 delete .. //depot/projects/smpng/sys/amd64/include/mca.h#6 delete .. //depot/projects/smpng/sys/amd64/include/pmap.h#36 integrate .. //depot/projects/smpng/sys/amd64/include/profile.h#12 integrate .. //depot/projects/smpng/sys/amd64/include/specialreg.h#28 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_proto.h#29 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_syscall.h#28 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysent.c#30 integrate .. //depot/projects/smpng/sys/amd64/linux32/linux32_sysvec.c#47 integrate .. //depot/projects/smpng/sys/amd64/linux32/syscalls.master#32 integrate .. //depot/projects/smpng/sys/arm/arm/elf_trampoline.c#24 integrate .. //depot/projects/smpng/sys/arm/at91/at91.c#21 integrate .. //depot/projects/smpng/sys/arm/at91/at91_machdep.c#6 integrate .. //depot/projects/smpng/sys/arm/at91/at91_mci.c#14 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pio.c#8 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pio_rm9200.h#2 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pio_sam9.h#2 delete .. //depot/projects/smpng/sys/arm/at91/at91_pio_sam9g20.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_pioreg.h#4 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pit.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pmc.c#10 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pmcreg.h#4 integrate .. //depot/projects/smpng/sys/arm/at91/at91_pmcvar.h#3 integrate .. //depot/projects/smpng/sys/arm/at91/at91_reset.S#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_rst.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_rstreg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_twi.c#16 integrate .. //depot/projects/smpng/sys/arm/at91/at91_twireg.h#5 integrate .. //depot/projects/smpng/sys/arm/at91/at91_wdt.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91_wdtreg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91reg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91rm9200.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91rm92reg.h#8 integrate .. //depot/projects/smpng/sys/arm/at91/at91sam9.c#2 delete .. //depot/projects/smpng/sys/arm/at91/at91sam9260.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91sam9260reg.h#1 branch .. //depot/projects/smpng/sys/arm/at91/at91sam9_machdep.c#2 delete .. //depot/projects/smpng/sys/arm/at91/at91sam9g20.c#1 branch .. //depot/projects/smpng/sys/arm/at91/at91sam9g20reg.h#2 integrate .. //depot/projects/smpng/sys/arm/at91/at91var.h#4 integrate .. //depot/projects/smpng/sys/arm/at91/board_hl201.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/board_kb920x.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/board_qila9g20.c#1 branch .. //depot/projects/smpng/sys/arm/at91/board_sam9g20ek.c#1 branch .. //depot/projects/smpng/sys/arm/at91/files.at91#10 integrate .. //depot/projects/smpng/sys/arm/at91/files.at91sam9#2 integrate .. //depot/projects/smpng/sys/arm/at91/if_ate.c#27 integrate .. //depot/projects/smpng/sys/arm/at91/if_atereg.h#5 integrate .. //depot/projects/smpng/sys/arm/at91/if_macb.c#2 integrate .. //depot/projects/smpng/sys/arm/at91/std.at91sam9#2 integrate .. //depot/projects/smpng/sys/arm/at91/std.kb920x#6 integrate .. //depot/projects/smpng/sys/arm/at91/std.qila9g20#1 branch .. //depot/projects/smpng/sys/arm/at91/std.sam9g20ek#1 branch .. //depot/projects/smpng/sys/arm/at91/uart_cpu_at91rm9200usart.c#7 integrate .. //depot/projects/smpng/sys/arm/at91/uart_dev_at91usart.c#20 integrate .. //depot/projects/smpng/sys/arm/conf/QILA9G20#1 branch .. //depot/projects/smpng/sys/arm/conf/QILA9G20.hints#1 branch .. //depot/projects/smpng/sys/arm/conf/SAM9G20EK#1 branch .. //depot/projects/smpng/sys/arm/conf/SAM9G20EK.hints#1 branch .. //depot/projects/smpng/sys/arm/econa/if_ece.c#2 integrate .. //depot/projects/smpng/sys/arm/mv/mv_sata.c#5 integrate .. //depot/projects/smpng/sys/arm/xscale/ixp425/if_npe.c#17 integrate .. //depot/projects/smpng/sys/boot/common/gpt.c#2 integrate .. //depot/projects/smpng/sys/boot/common/loader.8#50 integrate .. //depot/projects/smpng/sys/boot/i386/boot2/boot2.c#37 integrate .. //depot/projects/smpng/sys/boot/i386/gptboot/Makefile#4 integrate .. //depot/projects/smpng/sys/boot/ofw/common/main.c#10 integrate .. //depot/projects/smpng/sys/boot/ofw/libofw/ofw_memory.c#8 integrate .. //depot/projects/smpng/sys/boot/ofw/libofw/ofw_net.c#11 integrate .. //depot/projects/smpng/sys/boot/ofw/libofw/openfirm.c#14 integrate .. //depot/projects/smpng/sys/boot/pc98/boot2/boot2.c#3 integrate .. //depot/projects/smpng/sys/boot/sparc64/loader/main.c#32 integrate .. //depot/projects/smpng/sys/cam/ata/ata_da.c#10 integrate .. //depot/projects/smpng/sys/cam/cam_xpt.c#70 integrate .. //depot/projects/smpng/sys/cam/scsi/scsi_da.c#95 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c#2 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris_kmem.c#4 integrate .. //depot/projects/smpng/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c#3 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c#10 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c#6 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#24 integrate .. //depot/projects/smpng/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c#8 integrate .. //depot/projects/smpng/sys/compat/linprocfs/linprocfs.c#87 integrate .. //depot/projects/smpng/sys/compat/linux/linux_futex.c#15 integrate .. //depot/projects/smpng/sys/compat/linux/linux_util.h#20 integrate .. //depot/projects/smpng/sys/compat/ndis/subr_ntoskrnl.c#51 integrate .. //depot/projects/smpng/sys/compat/svr4/svr4_sysvec.c#32 integrate .. //depot/projects/smpng/sys/compat/x86bios/x86bios.c#10 integrate .. //depot/projects/smpng/sys/conf/NOTES#188 integrate .. //depot/projects/smpng/sys/conf/files#267 integrate .. //depot/projects/smpng/sys/conf/files.amd64#81 integrate .. //depot/projects/smpng/sys/conf/files.i386#141 integrate .. //depot/projects/smpng/sys/conf/files.pc98#106 integrate .. //depot/projects/smpng/sys/conf/files.powerpc#62 integrate .. //depot/projects/smpng/sys/conf/kern.post.mk#68 integrate .. //depot/projects/smpng/sys/conf/kmod.mk#81 integrate .. //depot/projects/smpng/sys/conf/options#185 integrate .. //depot/projects/smpng/sys/conf/options.amd64#30 integrate .. //depot/projects/smpng/sys/conf/options.arm#26 integrate .. //depot/projects/smpng/sys/conf/options.powerpc#14 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/acpica_prep.sh#15 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/changes.txt#10 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/common/adisasm.c#16 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslanalyze.c#12 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcodegen.c#8 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcompile.c#13 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslcompiler.h#14 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asldefine.h#8 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslmain.c#13 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslmessages.h#1 branch .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslresource.c#8 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype1.c#9 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype1i.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype2d.c#3 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype2e.c#3 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype2q.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslrestype2w.c#3 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/asltypes.h#14 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/aslutils.c#11 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/dtcompile.c#3 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/compiler/dttemplate.c#2 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/events/evxfregn.c#4 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acapps.h#4 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/include/aclocal.h#10 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/include/acpixf.h#10 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/include/platform/acenv.h#4 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/osunixxf.c#14 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utglobal.c#9 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utids.c#3 integrate .. //depot/projects/smpng/sys/contrib/dev/acpica/utilities/utosi.c#2 integrate .. //depot/projects/smpng/sys/contrib/ipfilter/netinet/mlfk_ipl.c#13 integrate .. //depot/projects/smpng/sys/contrib/ngatm/netnatm/api/cc_conn.c#5 integrate .. //depot/projects/smpng/sys/contrib/ngatm/netnatm/msg/privmsg.c#3 integrate .. //depot/projects/smpng/sys/contrib/ngatm/netnatm/msg/uni_ie.c#5 integrate .. //depot/projects/smpng/sys/contrib/ngatm/netnatm/sig/sig_call.c#4 integrate .. //depot/projects/smpng/sys/contrib/ngatm/netnatm/sig/sig_reset.c#4 integrate .. //depot/projects/smpng/sys/contrib/octeon-sdk/cvmx-helper-board.c#3 integrate .. //depot/projects/smpng/sys/contrib/pf/netinet/in4_cksum.c#4 integrate .. //depot/projects/smpng/sys/crypto/aesni/aeskeys_i386.S#2 integrate .. //depot/projects/smpng/sys/dev/aac/aac.c#74 integrate .. //depot/projects/smpng/sys/dev/aac/aac_cam.c#29 integrate .. //depot/projects/smpng/sys/dev/aac/aacreg.h#26 integrate .. //depot/projects/smpng/sys/dev/aac/aacvar.h#36 integrate .. //depot/projects/smpng/sys/dev/acpica/Osd/OsdHardware.c#27 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi.c#127 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_ec.c#54 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_hpet.c#18 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_if.m#11 integrate .. //depot/projects/smpng/sys/dev/acpica/acpi_pci.c#25 integrate .. //depot/projects/smpng/sys/dev/ae/if_ae.c#10 integrate .. //depot/projects/smpng/sys/dev/ae/if_aevar.h#2 integrate .. //depot/projects/smpng/sys/dev/age/if_age.c#13 integrate .. //depot/projects/smpng/sys/dev/agp/agp.c#12 integrate .. //depot/projects/smpng/sys/dev/agp/agp_apple.c#1 branch .. //depot/projects/smpng/sys/dev/ahci/ahci.c#12 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l#8 integrate .. //depot/projects/smpng/sys/dev/aic7xxx/aicasm/aicasm_scan.l#12 integrate .. //depot/projects/smpng/sys/dev/alc/if_alc.c#11 integrate .. //depot/projects/smpng/sys/dev/ale/if_ale.c#8 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.c#106 integrate .. //depot/projects/smpng/sys/dev/ata/ata-all.h#72 integrate .. //depot/projects/smpng/sys/dev/ata/ata-pci.c#79 integrate .. //depot/projects/smpng/sys/dev/ata/ata-sata.c#8 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-ahci.c#14 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-intel.c#13 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-marvell.c#13 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-nvidia.c#10 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-promise.c#12 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-siliconimage.c#13 integrate .. //depot/projects/smpng/sys/dev/ata/chipsets/ata-via.c#9 integrate .. //depot/projects/smpng/sys/dev/bce/if_bce.c#39 integrate .. //depot/projects/smpng/sys/dev/bce/if_bcereg.h#24 integrate .. //depot/projects/smpng/sys/dev/bfe/if_bfe.c#33 integrate .. //depot/projects/smpng/sys/dev/bge/if_bge.c#119 integrate .. //depot/projects/smpng/sys/dev/bge/if_bgereg.h#67 integrate .. //depot/projects/smpng/sys/dev/bm/if_bm.c#7 integrate .. //depot/projects/smpng/sys/dev/bwn/if_bwn.c#8 integrate .. //depot/projects/smpng/sys/dev/cas/if_cas.c#8 integrate .. //depot/projects/smpng/sys/dev/cas/if_casvar.h#3 integrate .. //depot/projects/smpng/sys/dev/ce/if_ce.c#17 integrate .. //depot/projects/smpng/sys/dev/ciss/ciss.c#68 integrate .. //depot/projects/smpng/sys/dev/cp/if_cp.c#28 integrate .. //depot/projects/smpng/sys/dev/dc/dcphy.c#8 integrate .. //depot/projects/smpng/sys/dev/dc/if_dc.c#25 integrate .. //depot/projects/smpng/sys/dev/dc/if_dcreg.h#12 integrate .. //depot/projects/smpng/sys/dev/dc/pnphy.c#6 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82571.c#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82571.h#2 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82575.c#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_82575.h#9 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_api.c#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_api.h#6 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_defines.h#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_hw.h#9 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_ich8lan.c#9 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_ich8lan.h#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_mac.c#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_nvm.c#4 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_nvm.h#3 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_phy.c#8 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_phy.h#7 integrate .. //depot/projects/smpng/sys/dev/e1000/e1000_regs.h#9 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.c#22 integrate .. //depot/projects/smpng/sys/dev/e1000/if_em.h#10 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.c#27 integrate .. //depot/projects/smpng/sys/dev/e1000/if_igb.h#11 integrate .. //depot/projects/smpng/sys/dev/e1000/if_lem.c#6 integrate .. //depot/projects/smpng/sys/dev/e1000/if_lem.h#3 integrate .. //depot/projects/smpng/sys/dev/ed/if_ed_pccard.c#50 integrate .. //depot/projects/smpng/sys/dev/et/if_et.c#6 integrate .. //depot/projects/smpng/sys/dev/firewire/fwohci.c#43 integrate .. //depot/projects/smpng/sys/dev/fxp/if_fxp.c#97 integrate .. //depot/projects/smpng/sys/dev/gem/if_gem.c#44 integrate .. //depot/projects/smpng/sys/dev/gem/if_gemvar.h#19 integrate .. //depot/projects/smpng/sys/dev/gpio/gpio_if.m#1 branch .. //depot/projects/smpng/sys/dev/gpio/gpiobus.c#1 branch .. //depot/projects/smpng/sys/dev/gpio/gpiobus_if.m#1 branch .. //depot/projects/smpng/sys/dev/gpio/gpiobusvar.h#1 branch .. //depot/projects/smpng/sys/dev/gpio/gpioc.c#1 branch .. //depot/projects/smpng/sys/dev/gpio/gpioiic.c#1 branch .. //depot/projects/smpng/sys/dev/gpio/gpioled.c#1 branch .. //depot/projects/smpng/sys/dev/hme/if_hme.c#38 integrate .. //depot/projects/smpng/sys/dev/hptrr/hptrr_osm_bsd.c#7 integrate .. //depot/projects/smpng/sys/dev/hwpmc/pmc_events.h#11 integrate .. //depot/projects/smpng/sys/dev/if_ndis/if_ndis.c#67 integrate .. //depot/projects/smpng/sys/dev/iicbus/ds1775.c#1 branch .. //depot/projects/smpng/sys/dev/iicbus/max6690.c#1 branch .. //depot/projects/smpng/sys/dev/iwi/if_iwi.c#36 integrate .. //depot/projects/smpng/sys/dev/iwi/if_iwivar.h#14 integrate .. //depot/projects/smpng/sys/dev/jme/if_jme.c#10 integrate .. //depot/projects/smpng/sys/dev/kbd/kbd.c#24 integrate .. //depot/projects/smpng/sys/dev/kbdmux/kbdmux.c#15 integrate .. //depot/projects/smpng/sys/dev/lge/if_lge.c#43 integrate .. //depot/projects/smpng/sys/dev/md/md.c#96 integrate .. //depot/projects/smpng/sys/dev/mfi/mfireg.h#12 integrate .. //depot/projects/smpng/sys/dev/mge/if_mge.c#10 integrate .. //depot/projects/smpng/sys/dev/mge/if_mgevar.h#4 integrate .. //depot/projects/smpng/sys/dev/mii/acphy.c#18 integrate .. //depot/projects/smpng/sys/dev/mii/amphy.c#18 integrate .. //depot/projects/smpng/sys/dev/mii/atphy.c#5 integrate .. //depot/projects/smpng/sys/dev/mii/axphy.c#2 integrate .. //depot/projects/smpng/sys/dev/mii/axphyreg.h#2 delete .. //depot/projects/smpng/sys/dev/mii/bmtphy.c#12 integrate .. //depot/projects/smpng/sys/dev/mii/brgphy.c#53 integrate .. //depot/projects/smpng/sys/dev/mii/ciphy.c#12 integrate .. //depot/projects/smpng/sys/dev/mii/e1000phy.c#26 integrate .. //depot/projects/smpng/sys/dev/mii/exphy.c#17 integrate .. //depot/projects/smpng/sys/dev/mii/gentbi.c#6 integrate .. //depot/projects/smpng/sys/dev/mii/icsphy.c#3 integrate .. //depot/projects/smpng/sys/dev/mii/inphy.c#11 integrate .. //depot/projects/smpng/sys/dev/mii/ip1000phy.c#6 integrate .. //depot/projects/smpng/sys/dev/mii/jmphy.c#2 integrate .. //depot/projects/smpng/sys/dev/mii/lxtphy.c#19 integrate .. //depot/projects/smpng/sys/dev/mii/mii.c#21 integrate .. //depot/projects/smpng/sys/dev/mii/mii.h#5 integrate .. //depot/projects/smpng/sys/dev/mii/mii_physubr.c#18 integrate .. //depot/projects/smpng/sys/dev/mii/miidevs#43 integrate .. //depot/projects/smpng/sys/dev/mii/miivar.h#11 integrate .. //depot/projects/smpng/sys/dev/mii/mlphy.c#14 integrate .. //depot/projects/smpng/sys/dev/mii/nsgphy.c#19 integrate .. //depot/projects/smpng/sys/dev/mii/nsphy.c#19 integrate .. //depot/projects/smpng/sys/dev/mii/nsphyter.c#3 integrate .. //depot/projects/smpng/sys/dev/mii/pnaphy.c#16 integrate .. //depot/projects/smpng/sys/dev/mii/qsphy.c#17 integrate .. //depot/projects/smpng/sys/dev/mii/rgephy.c#16 integrate .. //depot/projects/smpng/sys/dev/mii/rlphy.c#24 integrate .. //depot/projects/smpng/sys/dev/mii/rlswitch.c#2 integrate .. //depot/projects/smpng/sys/dev/mii/ruephy.c#7 integrate .. //depot/projects/smpng/sys/dev/mii/smcphy.c#2 integrate .. //depot/projects/smpng/sys/dev/mii/tdkphy.c#20 integrate .. //depot/projects/smpng/sys/dev/mii/tlphy.c#19 integrate .. //depot/projects/smpng/sys/dev/mii/truephy.c#4 integrate .. //depot/projects/smpng/sys/dev/mii/ukphy.c#15 integrate .. //depot/projects/smpng/sys/dev/mii/ukphy_subr.c#9 integrate .. //depot/projects/smpng/sys/dev/mii/xmphy.c#17 integrate .. //depot/projects/smpng/sys/dev/mps/mps.c#2 integrate .. //depot/projects/smpng/sys/dev/mps/mps_ioctl.h#2 integrate .. //depot/projects/smpng/sys/dev/mps/mps_sas.c#2 integrate .. //depot/projects/smpng/sys/dev/mps/mps_user.c#2 integrate .. //depot/projects/smpng/sys/dev/mps/mpsvar.h#2 integrate .. //depot/projects/smpng/sys/dev/msk/if_msk.c#28 integrate .. //depot/projects/smpng/sys/dev/mvs/mvs.c#5 integrate .. //depot/projects/smpng/sys/dev/mvs/mvs_pci.c#2 integrate .. //depot/projects/smpng/sys/dev/mvs/mvs_soc.c#2 integrate .. //depot/projects/smpng/sys/dev/nfe/if_nfe.c#21 integrate .. //depot/projects/smpng/sys/dev/nge/if_nge.c#58 integrate .. //depot/projects/smpng/sys/dev/nve/if_nve.c#23 integrate .. //depot/projects/smpng/sys/dev/pci/pci.c#121 integrate .. //depot/projects/smpng/sys/dev/pci/pci_pci.c#43 integrate .. //depot/projects/smpng/sys/dev/pci/pci_private.h#27 integrate .. //depot/projects/smpng/sys/dev/pci/pcireg.h#37 integrate .. //depot/projects/smpng/sys/dev/pci/pcivar.h#34 integrate .. //depot/projects/smpng/sys/dev/pcn/if_pcn.c#6 integrate .. //depot/projects/smpng/sys/dev/ral/rt2560.c#21 integrate .. //depot/projects/smpng/sys/dev/re/if_re.c#83 integrate .. //depot/projects/smpng/sys/dev/sf/if_sf.c#5 integrate .. //depot/projects/smpng/sys/dev/sge/if_sge.c#5 integrate .. //depot/projects/smpng/sys/dev/siis/siis.c#12 integrate .. //depot/projects/smpng/sys/dev/sis/if_sis.c#9 integrate .. //depot/projects/smpng/sys/dev/sk/if_sk.c#20 integrate .. //depot/projects/smpng/sys/dev/smc/if_smc.c#5 integrate .. //depot/projects/smpng/sys/dev/sound/pci/envy24ht.c#14 integrate .. //depot/projects/smpng/sys/dev/sound/pci/spicds.c#7 integrate .. //depot/projects/smpng/sys/dev/sound/pcm/channel.c#45 integrate .. //depot/projects/smpng/sys/dev/ste/if_ste.c#8 integrate .. //depot/projects/smpng/sys/dev/stge/if_stge.c#16 integrate .. //depot/projects/smpng/sys/dev/syscons/syscons.c#78 integrate .. //depot/projects/smpng/sys/dev/tl/if_tl.c#5 integrate .. //depot/projects/smpng/sys/dev/tl/if_tlreg.h#3 integrate .. //depot/projects/smpng/sys/dev/tsec/if_tsec.c#9 integrate .. //depot/projects/smpng/sys/dev/tx/if_tx.c#33 integrate .. //depot/projects/smpng/sys/dev/usb/controller/at91dci.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/controller/atmegadci.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/controller/avr32dci.c#9 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci.h#11 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehci_pci.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ehcireg.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/controller/musb_otg.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/controller/ohci.c#16 integrate .. //depot/projects/smpng/sys/dev/usb/controller/usb_controller.c#18 integrate .. //depot/projects/smpng/sys/dev/usb/controller/uss820dci.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/controller/xhci.c#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/xhci.h#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/xhci_pci.c#1 branch .. //depot/projects/smpng/sys/dev/usb/controller/xhcireg.h#1 branch .. //depot/projects/smpng/sys/dev/usb/net/if_axe.c#16 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_axereg.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_cdce.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_cdcereg.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/net/if_ipheth.c#1 branch .. //depot/projects/smpng/sys/dev/usb/net/if_iphethvar.h#1 branch .. //depot/projects/smpng/sys/dev/usb/net/uhso.c#5 integrate .. //depot/projects/smpng/sys/dev/usb/net/usb_ethernet.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/quirk/usb_quirk.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/serial/u3g.c#20 integrate .. //depot/projects/smpng/sys/dev/usb/serial/uftdi.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/serial/usb_serial.c#11 integrate .. //depot/projects/smpng/sys/dev/usb/storage/umass.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/usb.h#24 integrate .. //depot/projects/smpng/sys/dev/usb/usb_cdc.h#5 integrate .. //depot/projects/smpng/sys/dev/usb/usb_controller.h#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_dev.c#20 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.c#24 integrate .. //depot/projects/smpng/sys/dev/usb/usb_device.h#18 integrate .. //depot/projects/smpng/sys/dev/usb/usb_freebsd.h#3 integrate .. //depot/projects/smpng/sys/dev/usb/usb_generic.c#17 integrate .. //depot/projects/smpng/sys/dev/usb/usb_handle_request.c#15 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hub.c#19 integrate .. //depot/projects/smpng/sys/dev/usb/usb_hub.h#8 integrate .. //depot/projects/smpng/sys/dev/usb/usb_ioctl.h#7 integrate .. //depot/projects/smpng/sys/dev/usb/usb_msctest.c#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb_msctest.h#6 integrate .. //depot/projects/smpng/sys/dev/usb/usb_parse.c#7 integrate .. //depot/projects/smpng/sys/dev/usb/usb_request.c#14 integrate .. //depot/projects/smpng/sys/dev/usb/usb_request.h#10 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.c#21 integrate .. //depot/projects/smpng/sys/dev/usb/usb_transfer.h#11 integrate .. //depot/projects/smpng/sys/dev/usb/usbdevs#160 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi.h#31 integrate .. //depot/projects/smpng/sys/dev/usb/usbdi_util.h#14 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_rum.c#18 integrate .. //depot/projects/smpng/sys/dev/usb/wlan/if_upgt.c#15 integrate .. //depot/projects/smpng/sys/dev/vge/if_vge.c#30 integrate .. //depot/projects/smpng/sys/dev/vr/if_vr.c#8 integrate .. //depot/projects/smpng/sys/dev/vr/if_vrreg.h#3 integrate .. //depot/projects/smpng/sys/dev/wb/if_wb.c#5 integrate .. //depot/projects/smpng/sys/dev/xen/balloon/balloon.c#4 integrate .. //depot/projects/smpng/sys/dev/xen/blkback/blkback.c#6 integrate .. //depot/projects/smpng/sys/dev/xen/blkfront/blkfront.c#10 integrate .. //depot/projects/smpng/sys/dev/xen/blkfront/block.h#4 integrate .. //depot/projects/smpng/sys/dev/xen/control/control.c#1 branch .. //depot/projects/smpng/sys/dev/xen/netfront/netfront.c#16 integrate .. //depot/projects/smpng/sys/dev/xen/xenpci/evtchn.c#2 integrate .. //depot/projects/smpng/sys/dev/xen/xenpci/xenpci.c#2 integrate .. //depot/projects/smpng/sys/dev/xl/if_xl.c#9 integrate .. //depot/projects/smpng/sys/fs/cd9660/cd9660_mount.h#2 integrate .. //depot/projects/smpng/sys/fs/cd9660/cd9660_vfsops.c#15 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs.h#27 integrate .. //depot/projects/smpng/sys/fs/devfs/devfs_int.h#9 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfs_vfsops.c#41 integrate .. //depot/projects/smpng/sys/fs/hpfs/hpfsmount.h#2 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_denode.c#35 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_lookup.c#16 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vfsops.c#66 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfs_vnops.c#52 integrate .. //depot/projects/smpng/sys/fs/msdosfs/msdosfsmount.h#17 integrate .. //depot/projects/smpng/sys/fs/nfs/nfs_var.h#12 integrate .. //depot/projects/smpng/sys/fs/nfs/nfsclstate.h#3 integrate .. //depot/projects/smpng/sys/fs/nfs/nfsdport.h#4 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clnode.c#8 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clstate.c#13 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvfsops.c#10 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfs_clvnops.c#18 integrate .. //depot/projects/smpng/sys/fs/nfsclient/nfsmount.h#3 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdport.c#14 integrate .. //depot/projects/smpng/sys/fs/nfsserver/nfs_nfsdstate.c#11 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfs_vfsops.c#42 integrate .. //depot/projects/smpng/sys/fs/ntfs/ntfsmount.h#4 integrate .. //depot/projects/smpng/sys/fs/nwfs/nwfs_vfsops.c#30 integrate .. //depot/projects/smpng/sys/fs/smbfs/smbfs_vfsops.c#44 integrate .. //depot/projects/smpng/sys/fs/tmpfs/tmpfs_vnops.c#18 integrate .. //depot/projects/smpng/sys/gdb/gdb_cons.c#4 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.c#30 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli.h#12 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_ctl.c#12 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_integrity.c#4 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_key.c#6 integrate .. //depot/projects/smpng/sys/geom/eli/g_eli_privacy.c#3 integrate .. //depot/projects/smpng/sys/geom/geom_dev.c#56 integrate .. //depot/projects/smpng/sys/geom/part/g_part.c#31 integrate .. //depot/projects/smpng/sys/geom/part/g_part.h#11 integrate .. //depot/projects/smpng/sys/geom/part/g_part_ebr.c#10 integrate .. //depot/projects/smpng/sys/geom/part/g_part_gpt.c#18 integrate .. //depot/projects/smpng/sys/geom/part/g_part_if.m#7 integrate .. //depot/projects/smpng/sys/geom/part/g_part_mbr.c#11 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_move.c#6 integrate .. //depot/projects/smpng/sys/geom/vinum/geom_vinum_rename.c#6 integrate .. //depot/projects/smpng/sys/geom/virstor/g_virstor.c#4 integrate .. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_mount.h#2 integrate .. //depot/projects/smpng/sys/gnu/fs/reiserfs/reiserfs_vfsops.c#13 integrate .. //depot/projects/smpng/sys/i386/acpica/acpi_wakeup.c#41 integrate .. //depot/projects/smpng/sys/i386/acpica/madt.c#28 integrate .. //depot/projects/smpng/sys/i386/i386/apic_vector.s#28 integrate .. //depot/projects/smpng/sys/i386/i386/busdma_machdep.c#52 integrate .. //depot/projects/smpng/sys/i386/i386/dump_machdep.c#15 delete .. //depot/projects/smpng/sys/i386/i386/elan-mmcr.c#28 integrate .. //depot/projects/smpng/sys/i386/i386/genassym.c#42 integrate .. //depot/projects/smpng/sys/i386/i386/identcpu.c#72 integrate .. //depot/projects/smpng/sys/i386/i386/initcpu.c#39 integrate .. //depot/projects/smpng/sys/i386/i386/intr_machdep.c#41 integrate .. //depot/projects/smpng/sys/i386/i386/locore.s#32 integrate .. //depot/projects/smpng/sys/i386/i386/longrun.c#6 integrate .. //depot/projects/smpng/sys/i386/i386/machdep.c#163 integrate .. //depot/projects/smpng/sys/i386/i386/mp_machdep.c#133 integrate .. //depot/projects/smpng/sys/i386/i386/mp_watchdog.c#5 integrate .. //depot/projects/smpng/sys/i386/i386/mpboot.s#7 integrate .. //depot/projects/smpng/sys/i386/i386/mptable.c#22 delete .. //depot/projects/smpng/sys/i386/i386/mptable_pci.c#10 delete .. //depot/projects/smpng/sys/i386/i386/nexus.c#34 delete .. //depot/projects/smpng/sys/i386/i386/perfmon.c#16 integrate .. //depot/projects/smpng/sys/i386/i386/pmap.c#151 integrate .. //depot/projects/smpng/sys/i386/i386/support.s#28 integrate .. //depot/projects/smpng/sys/i386/i386/trap.c#128 integrate .. //depot/projects/smpng/sys/i386/ibcs2/ibcs2_sysvec.c#14 integrate .. //depot/projects/smpng/sys/i386/include/apicreg.h#7 delete .. //depot/projects/smpng/sys/i386/include/mca.h#6 delete .. //depot/projects/smpng/sys/i386/include/pmap.h#53 integrate .. //depot/projects/smpng/sys/i386/include/profile.h#18 integrate .. //depot/projects/smpng/sys/i386/include/specialreg.h#32 integrate .. //depot/projects/smpng/sys/i386/isa/npx.c#72 integrate .. //depot/projects/smpng/sys/i386/linux/linux_sysvec.c#75 integrate .. //depot/projects/smpng/sys/i386/xen/mp_machdep.c#18 integrate .. //depot/projects/smpng/sys/i386/xen/mptable.c#3 integrate .. //depot/projects/smpng/sys/i386/xen/xen_machdep.c#12 integrate .. //depot/projects/smpng/sys/ia64/ia64/busdma_machdep.c#34 integrate .. //depot/projects/smpng/sys/kern/Makefile#8 integrate .. //depot/projects/smpng/sys/kern/init_main.c#89 integrate .. //depot/projects/smpng/sys/kern/kern_clock.c#69 integrate .. //depot/projects/smpng/sys/kern/kern_conf.c#67 integrate .. //depot/projects/smpng/sys/kern/kern_cpuset.c#10 integrate .. //depot/projects/smpng/sys/kern/kern_exec.c#134 integrate .. //depot/projects/smpng/sys/kern/kern_exit.c#151 integrate .. //depot/projects/smpng/sys/kern/kern_fork.c#128 integrate .. //depot/projects/smpng/sys/kern/kern_kthread.c#26 integrate .. //depot/projects/smpng/sys/kern/kern_ktrace.c#77 integrate .. //depot/projects/smpng/sys/kern/kern_malloc.c#61 integrate .. //depot/projects/smpng/sys/kern/kern_ntptime.c#25 integrate .. //depot/projects/smpng/sys/kern/kern_proc.c#117 integrate .. //depot/projects/smpng/sys/kern/kern_resource.c#86 integrate .. //depot/projects/smpng/sys/kern/kern_shutdown.c#84 integrate .. //depot/projects/smpng/sys/kern/kern_sig.c#160 integrate .. //depot/projects/smpng/sys/kern/kern_syscalls.c#10 integrate .. //depot/projects/smpng/sys/kern/kern_thr.c#58 integrate .. //depot/projects/smpng/sys/kern/kern_thread.c#119 integrate .. //depot/projects/smpng/sys/kern/kern_time.c#58 integrate .. //depot/projects/smpng/sys/kern/kern_timeout.c#50 integrate .. //depot/projects/smpng/sys/kern/kern_umtx.c#42 integrate .. //depot/projects/smpng/sys/kern/link_elf.c#53 integrate .. //depot/projects/smpng/sys/kern/link_elf_obj.c#30 integrate .. //depot/projects/smpng/sys/kern/p1003_1b.c#5 integrate .. //depot/projects/smpng/sys/kern/sched_ule.c#109 integrate .. //depot/projects/smpng/sys/kern/subr_acl_nfs4.c#7 integrate .. //depot/projects/smpng/sys/kern/subr_clock.c#11 integrate .. //depot/projects/smpng/sys/kern/subr_kdb.c#27 integrate .. //depot/projects/smpng/sys/kern/subr_smp.c#64 integrate .. //depot/projects/smpng/sys/kern/subr_taskqueue.c#48 integrate .. //depot/projects/smpng/sys/kern/subr_trap.c#99 integrate .. //depot/projects/smpng/sys/kern/sys_process.c#73 integrate .. //depot/projects/smpng/sys/kern/uipc_mqueue.c#27 integrate .. //depot/projects/smpng/sys/kern/vfs_aio.c#89 integrate .. //depot/projects/smpng/sys/kern/vfs_bio.c#134 integrate .. //depot/projects/smpng/sys/kern/vfs_cache.c#63 integrate .. //depot/projects/smpng/sys/kern/vfs_mount.c#104 integrate .. //depot/projects/smpng/sys/kern/vfs_mountroot.c#1 branch .. //depot/projects/smpng/sys/mips/atheros/ar71xx_gpio.c#1 branch .. //depot/projects/smpng/sys/mips/atheros/ar71xx_gpiovar.h#1 branch .. //depot/projects/smpng/sys/mips/atheros/ar71xxreg.h#6 integrate .. //depot/projects/smpng/sys/mips/atheros/files.ar71xx#3 integrate .. //depot/projects/smpng/sys/mips/atheros/if_arge.c#6 integrate .. //depot/projects/smpng/sys/mips/cavium/files.octeon1#5 integrate .. //depot/projects/smpng/sys/mips/cavium/octe/cavium-ethernet.h#3 integrate .. //depot/projects/smpng/sys/mips/cavium/octe/ethernet-common.c#2 integrate .. //depot/projects/smpng/sys/mips/cavium/octe/ethernet-headers.h#2 integrate .. //depot/projects/smpng/sys/mips/cavium/octe/ethernet-mdio.c#2 integrate .. //depot/projects/smpng/sys/mips/cavium/octe/ethernet-mv88e61xx.c#1 branch .. //depot/projects/smpng/sys/mips/cavium/octe/ethernet-mv88e61xx.h#1 branch .. //depot/projects/smpng/sys/mips/cavium/octe/ethernet.c#3 integrate .. //depot/projects/smpng/sys/mips/cavium/octe/mv88e61xxphy.c#1 branch .. //depot/projects/smpng/sys/mips/cavium/octe/mv88e61xxphyreg.h#1 branch .. //depot/projects/smpng/sys/mips/cavium/octe/octe.c#3 integrate .. //depot/projects/smpng/sys/mips/cavium/octeon_ebt3000_cf.c#3 integrate .. //depot/projects/smpng/sys/mips/cavium/octopci.c#4 integrate .. //depot/projects/smpng/sys/mips/cavium/std.octeon1#3 integrate .. //depot/projects/smpng/sys/mips/cavium/uart_bus_octeonusart.c#3 integrate .. //depot/projects/smpng/sys/mips/cavium/uart_cpu_octeonusart.c#3 integrate .. //depot/projects/smpng/sys/mips/cavium/uart_dev_oct16550.c#4 integrate .. //depot/projects/smpng/sys/mips/conf/AR71XX#5 integrate .. //depot/projects/smpng/sys/mips/conf/AR71XX.hints#2 integrate .. //depot/projects/smpng/sys/mips/conf/OCTEON1#5 integrate .. //depot/projects/smpng/sys/mips/idt/if_kr.c#5 integrate .. //depot/projects/smpng/sys/mips/mips/locore.S#8 integrate .. //depot/projects/smpng/sys/mips/rmi/board.c#5 integrate .. //depot/projects/smpng/sys/mips/rmi/board.h#6 integrate .. //depot/projects/smpng/sys/mips/rmi/dev/nlge/if_nlge.c#2 integrate .. //depot/projects/smpng/sys/mips/rmi/dev/nlge/if_nlge.h#2 integrate .. //depot/projects/smpng/sys/mips/rmi/dev/xlr/rge.c#7 integrate .. //depot/projects/smpng/sys/mips/rmi/fmn.c#2 integrate .. //depot/projects/smpng/sys/mips/rmi/msgring.h#3 integrate .. //depot/projects/smpng/sys/mips/rmi/rmi_mips_exts.h#3 integrate .. //depot/projects/smpng/sys/mips/rmi/xlr_machdep.c#7 integrate .. //depot/projects/smpng/sys/mips/rmi/xlr_pci.c#6 integrate .. //depot/projects/smpng/sys/modules/Makefile#179 integrate .. //depot/projects/smpng/sys/modules/acpi/acpi/Makefile#27 integrate .. //depot/projects/smpng/sys/modules/agp/Makefile#17 integrate .. //depot/projects/smpng/sys/modules/cryptodev/Makefile#3 integrate .. //depot/projects/smpng/sys/modules/mem/Makefile#7 integrate .. //depot/projects/smpng/sys/modules/mii/Makefile#15 integrate .. //depot/projects/smpng/sys/modules/mps/Makefile#2 integrate .. //depot/projects/smpng/sys/modules/sysvipc/sysvmsg/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/sysvipc/sysvsem/Makefile#4 integrate .. //depot/projects/smpng/sys/modules/usb/Makefile#23 integrate .. //depot/projects/smpng/sys/modules/usb/ipheth/Makefile#1 branch .. //depot/projects/smpng/sys/modules/usb/xhci/Makefile#1 branch .. //depot/projects/smpng/sys/modules/wlan/Makefile#17 integrate .. //depot/projects/smpng/sys/net/bpf.h#28 integrate .. //depot/projects/smpng/sys/net/if.c#138 integrate .. //depot/projects/smpng/sys/net/if.h#46 integrate .. //depot/projects/smpng/sys/net/if_debug.c#1 branch .. //depot/projects/smpng/sys/net/if_llatbl.c#13 integrate .. //depot/projects/smpng/sys/net/if_llatbl.h#7 integrate .. //depot/projects/smpng/sys/net/if_tun.c#70 integrate .. //depot/projects/smpng/sys/net/rtsock.c#83 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ratectl.c#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ratectl.h#2 integrate .. //depot/projects/smpng/sys/net80211/ieee80211_ratectl_none.c#1 branch .. //depot/projects/smpng/sys/net80211/ieee80211_scan_sta.c#18 integrate .. //depot/projects/smpng/sys/netgraph/ng_UI.c#8 integrate .. //depot/projects/smpng/sys/netgraph/ng_async.c#9 integrate .. //depot/projects/smpng/sys/netgraph/ng_frame_relay.c#9 integrate .. //depot/projects/smpng/sys/netgraph/ng_gif_demux.c#9 integrate .. //depot/projects/smpng/sys/netgraph/ng_iface.c#42 integrate .. //depot/projects/smpng/sys/netgraph/ng_rfc1490.c#10 integrate .. //depot/projects/smpng/sys/netgraph/ng_socket.c#51 integrate .. //depot/projects/smpng/sys/netgraph/ng_tty.c#25 integrate .. //depot/projects/smpng/sys/netinet/if_ether.c#85 integrate .. //depot/projects/smpng/sys/netinet/igmp.c#39 integrate .. //depot/projects/smpng/sys/netinet/in.c#70 integrate .. //depot/projects/smpng/sys/netinet/in_debug.c#1 branch .. //depot/projects/smpng/sys/netinet/ip_ipsec.c#21 integrate .. //depot/projects/smpng/sys/netinet/ip_options.c#20 integrate .. //depot/projects/smpng/sys/netinet/ipfw/dn_sched.h#4 integrate .. //depot/projects/smpng/sys/netinet/ipfw/dn_sched_qfq.c#2 integrate .. //depot/projects/smpng/sys/netinet/ipfw/dn_sched_wf2q.c#3 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dn_glue.c#3 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dn_io.c#4 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dn_private.h#5 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_dummynet.c#11 integrate .. //depot/projects/smpng/sys/netinet/ipfw/ip_fw_pfil.c#11 integrate .. //depot/projects/smpng/sys/netinet/libalias/libalias.3#5 integrate .. //depot/projects/smpng/sys/netinet/tcp_reass.c#15 integrate .. //depot/projects/smpng/sys/netinet6/in6_cksum.c#14 integrate .. //depot/projects/smpng/sys/netinet6/ip6_ipsec.c#11 integrate .. //depot/projects/smpng/sys/netipsec/ipsec.c#42 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_input.c#25 integrate .. //depot/projects/smpng/sys/netipsec/ipsec_output.c#22 integrate .. //depot/projects/smpng/sys/netipsec/key.c#48 integrate .. //depot/projects/smpng/sys/netipsec/keydb.h#9 integrate .. //depot/projects/smpng/sys/nfs/nfs_lock.c#7 integrate .. //depot/projects/smpng/sys/nfs/nfs_lock.h#4 integrate .. //depot/projects/smpng/sys/nfs/nfs_mountcommon.h#1 branch .. //depot/projects/smpng/sys/nfsclient/nfs.h#41 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_bio.c#66 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_nfsiod.c#26 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_node.c#37 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vfsops.c#80 integrate .. //depot/projects/smpng/sys/nfsclient/nfs_vnops.c#103 integrate .. //depot/projects/smpng/sys/nfsclient/nfsmount.h#20 integrate .. //depot/projects/smpng/sys/nfsclient/nfsnode.h#28 integrate .. //depot/projects/smpng/sys/nfsserver/nfs_serv.c#71 integrate .. //depot/projects/smpng/sys/nlm/nlm_advlock.c#8 integrate .. //depot/projects/smpng/sys/nlm/nlm_prot_impl.c#10 integrate .. //depot/projects/smpng/sys/pc98/include/apicreg.h#2 delete .. //depot/projects/smpng/sys/pc98/include/bus.h#8 integrate .. //depot/projects/smpng/sys/pc98/include/mca.h#2 delete .. //depot/projects/smpng/sys/pc98/pc98/busiosubr.c#4 integrate .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#44 integrate .. //depot/projects/smpng/sys/pci/if_rl.c#82 integrate .. //depot/projects/smpng/sys/powerpc/aim/copyinout.c#5 integrate .. //depot/projects/smpng/sys/powerpc/aim/machdep.c#23 integrate .. //depot/projects/smpng/sys/powerpc/aim/mmu_oea.c#16 integrate .. //depot/projects/smpng/sys/powerpc/aim/mmu_oea64.c#14 integrate .. //depot/projects/smpng/sys/powerpc/aim/slb.c#4 integrate .. //depot/projects/smpng/sys/powerpc/aim/swtch32.S#2 integrate .. //depot/projects/smpng/sys/powerpc/aim/swtch64.S#2 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap.c#13 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap_subr32.S#2 integrate .. //depot/projects/smpng/sys/powerpc/aim/trap_subr64.S#3 integrate .. //depot/projects/smpng/sys/powerpc/aim/vm_machdep.c#10 integrate .. //depot/projects/smpng/sys/powerpc/conf/GENERIC#71 integrate .. //depot/projects/smpng/sys/powerpc/conf/GENERIC64#5 integrate .. //depot/projects/smpng/sys/powerpc/conf/NOTES#20 integrate .. //depot/projects/smpng/sys/powerpc/include/altivec.h#2 integrate .. //depot/projects/smpng/sys/powerpc/include/memdev.h#3 integrate .. //depot/projects/smpng/sys/powerpc/include/pcb.h#14 integrate .. //depot/projects/smpng/sys/powerpc/include/pmap.h#31 integrate .. //depot/projects/smpng/sys/powerpc/include/slb.h#3 integrate .. //depot/projects/smpng/sys/powerpc/include/sr.h#8 integrate .. //depot/projects/smpng/sys/powerpc/include/trap_aim.h#4 integrate .. //depot/projects/smpng/sys/powerpc/include/vm.h#3 integrate .. //depot/projects/smpng/sys/powerpc/mambo/mambo_console.c#2 integrate .. //depot/projects/smpng/sys/powerpc/ofw/ofw_syscons.c#18 integrate .. //depot/projects/smpng/sys/powerpc/powermac/cpcht.c#4 integrate .. //depot/projects/smpng/sys/powerpc/powermac/fcu.c#1 branch .. //depot/projects/smpng/sys/powerpc/powerpc/bus_machdep.c#6 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/busdma_machdep.c#24 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/exec_machdep.c#3 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/genassym.c#36 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/mem.c#6 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/mmu_if.m#13 integrate .. //depot/projects/smpng/sys/powerpc/powerpc/pmap_dispatch.c#18 integrate .. //depot/projects/smpng/sys/rpc/clnt_dg.c#9 integrate .. //depot/projects/smpng/sys/rpc/clnt_vc.c#10 integrate .. //depot/projects/smpng/sys/rpc/rpc_generic.c#5 integrate .. //depot/projects/smpng/sys/security/mac/mac_vfs.c#25 integrate .. //depot/projects/smpng/sys/sparc64/include/endian.h#16 integrate .. //depot/projects/smpng/sys/sparc64/include/tick.h#9 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/bus_machdep.c#35 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#106 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/mp_machdep.c#46 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/pmap.c#91 integrate .. //depot/projects/smpng/sys/sparc64/sparc64/tick.c#27 integrate .. //depot/projects/smpng/sys/sun4v/include/endian.h#3 integrate .. //depot/projects/smpng/sys/sys/_task.h#10 integrate .. //depot/projects/smpng/sys/sys/conf.h#67 integrate .. //depot/projects/smpng/sys/sys/exec.h#8 integrate .. //depot/projects/smpng/sys/sys/gpio.h#1 branch .. //depot/projects/smpng/sys/sys/ktrace.h#20 integrate .. //depot/projects/smpng/sys/sys/module.h#13 integrate .. //depot/projects/smpng/sys/sys/mount.h#81 integrate .. //depot/projects/smpng/sys/sys/mutex.h#78 integrate .. //depot/projects/smpng/sys/sys/param.h#166 integrate .. //depot/projects/smpng/sys/sys/proc.h#212 integrate .. //depot/projects/smpng/sys/sys/sched.h#35 integrate .. //depot/projects/smpng/sys/sys/signalvar.h#37 integrate .. //depot/projects/smpng/sys/sys/sockio.h#19 integrate .. //depot/projects/smpng/sys/sys/systm.h#103 integrate .. //depot/projects/smpng/sys/sys/taskqueue.h#18 integrate .. //depot/projects/smpng/sys/sys/time.h#32 integrate .. //depot/projects/smpng/sys/sys/user.h#40 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_softdep.c#83 integrate .. //depot/projects/smpng/sys/ufs/ffs/ffs_vfsops.c#122 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufs_dirhash.c#36 integrate .. //depot/projects/smpng/sys/ufs/ufs/ufsmount.h#20 integrate .. //depot/projects/smpng/sys/vm/swap_pager.c#85 integrate .. //depot/projects/smpng/sys/vm/uma.h#27 integrate .. //depot/projects/smpng/sys/vm/uma_core.c#83 integrate .. //depot/projects/smpng/sys/vm/vm_map.c#110 integrate .. //depot/projects/smpng/sys/vm/vm_map.h#49 integrate .. //depot/projects/smpng/sys/vm/vm_phys.c#12 integrate .. //depot/projects/smpng/sys/vm/vm_reserv.c#5 integrate .. //depot/projects/smpng/sys/x86/include/apicreg.h#1 branch .. //depot/projects/smpng/sys/x86/include/mca.h#1 branch .. //depot/projects/smpng/sys/x86/isa/atrtc.c#4 integrate .. //depot/projects/smpng/sys/x86/x86/dump_machdep.c#1 branch .. //depot/projects/smpng/sys/x86/x86/io_apic.c#2 integrate .. //depot/projects/smpng/sys/x86/x86/local_apic.c#7 integrate .. //depot/projects/smpng/sys/x86/x86/mca.c#4 integrate .. //depot/projects/smpng/sys/x86/x86/mptable.c#1 branch .. //depot/projects/smpng/sys/x86/x86/mptable_pci.c#1 branch .. //depot/projects/smpng/sys/x86/x86/msi.c#3 integrate .. //depot/projects/smpng/sys/x86/x86/nexus.c#1 branch .. //depot/projects/smpng/sys/xen/blkif.h#1 branch .. //depot/projects/smpng/sys/xen/evtchn/evtchn.c#9 integrate .. //depot/projects/smpng/sys/xen/gnttab.c#7 integrate .. //depot/projects/smpng/sys/xen/gnttab.h#6 integrate .. //depot/projects/smpng/sys/xen/interface/grant_table.h#3 integrate .. //depot/projects/smpng/sys/xen/interface/hvm/params.h#4 integrate .. //depot/projects/smpng/sys/xen/interface/io/blkif.h#3 integrate .. //depot/projects/smpng/sys/xen/interface/io/protocols.h#3 integrate .. //depot/projects/smpng/sys/xen/interface/io/ring.h#3 integrate .. //depot/projects/smpng/sys/xen/interface/io/xenbus.h#3 integrate .. //depot/projects/smpng/sys/xen/reboot.c#3 delete .. //depot/projects/smpng/sys/xen/xen_intr.h#3 integrate .. //depot/projects/smpng/sys/xen/xenbus/init.txt#2 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus.c#1 branch .. //depot/projects/smpng/sys/xen/xenbus/xenbus_client.c#4 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus_comms.c#4 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus_comms.h#4 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus_dev.c#4 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus_if.m#2 integrate .. //depot/projects/smpng/sys/xen/xenbus/xenbus_probe.c#8 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus_probe_backend.c#4 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbus_xs.c#7 delete .. //depot/projects/smpng/sys/xen/xenbus/xenbusb.c#1 branch .. //depot/projects/smpng/sys/xen/xenbus/xenbusb.h#1 branch .. //depot/projects/smpng/sys/xen/xenbus/xenbusb_back.c#1 branch .. //depot/projects/smpng/sys/xen/xenbus/xenbusb_front.c#1 branch .. //depot/projects/smpng/sys/xen/xenbus/xenbusb_if.m#1 branch .. //depot/projects/smpng/sys/xen/xenbus/xenbusvar.h#3 integrate .. //depot/projects/smpng/sys/xen/xenstore/xenstore.c#1 branch .. //depot/projects/smpng/sys/xen/xenstore/xenstore_dev.c#1 branch .. //depot/projects/smpng/sys/xen/xenstore/xenstore_internal.h#1 branch .. //depot/projects/smpng/sys/xen/xenstore/xenstorevar.h#1 branch Differences ... ==== //depot/projects/smpng/share/man/man9/DB_COMMAND.9#2 (text+ko) ==== @@ -23,7 +23,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/DB_COMMAND.9,v 1.1 2008/09/15 23:13:29 sam Exp $ +.\" $FreeBSD: src/share/man/man9/DB_COMMAND.9,v 1.2 2010/10/08 12:40:16 uqs Exp $ .\" .Dd August 27, 2008 .Dt DB_COMMAND 9 @@ -88,7 +88,6 @@ .El .Sh EXAMPLE In your module, the command is declared as: -.Pp .Bd -literal DB_COMMAND(mycmd, my_cmd_func) { @@ -98,7 +97,6 @@ .Ed .Pp Then, when in ddb: -.Pp .Bd -literal .Bf Sy db> mycmd 0x1000 ==== //depot/projects/smpng/share/man/man9/MD5.9#2 (text+ko) ==== @@ -28,7 +28,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/MD5.9,v 1.10 2004/07/03 18:29:23 ru Exp $ +.\" $FreeBSD: src/share/man/man9/MD5.9,v 1.11 2010/10/08 12:40:16 uqs Exp $ .\" .Dd April 17, 1996 .Dt MD5 9 @@ -51,7 +51,6 @@ module implements the RSA Data Security, Inc.\& MD5 Message-Digest Algorithm (MD5). It produces 128-bit MD5 Digest of data. -.Pp .Bl -hang -width MD5Transformxxx .It Pa MD5Init must be called just before ==== //depot/projects/smpng/share/man/man9/Makefile#19 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/share/man/man9/Makefile,v 1.375 2010/09/10 16:42:16 mdf Exp $ +# $FreeBSD: src/share/man/man9/Makefile,v 1.379 2010/10/24 15:56:21 jh Exp $ MAN= accept_filter.9 \ accf_data.9 \ @@ -324,7 +324,7 @@ vm_page_lookup.9 \ vm_page_protect.9 \ vm_page_rename.9 \ - vm_page_sleep_busy.9 \ + vm_page_sleep_if_busy.9 \ vm_page_wakeup.9 \ vm_page_wire.9 \ vm_page_zero_fill.9 \ @@ -364,7 +364,6 @@ VOP_STRATEGY.9 \ VOP_VPTOCNP.9 \ VOP_VPTOFH.9 \ - vput.9 \ vref.9 \ vrefcnt.9 \ vrele.9 \ @@ -776,7 +775,8 @@ make_dev.9 dev_depends.9 \ make_dev.9 make_dev_alias.9 \ make_dev.9 make_dev_cred.9 \ - make_dev.9 make_dev_credf.9 + make_dev.9 make_dev_credf.9 \ + make_dev.9 make_dev_p.9 MLINKS+=malloc.9 free.9 \ malloc.9 MALLOC_DECLARE.9 \ malloc.9 MALLOC_DEFINE.9 \ @@ -1213,11 +1213,17 @@ sysctl_ctx_init.9 sysctl_ctx_free.9 MLINKS+=taskqueue.9 TASK_INIT.9 \ taskqueue.9 taskqueue_create.9 \ + taskqueue.9 taskqueue_create_fast.9 \ taskqueue.9 TASKQUEUE_DECLARE.9 \ taskqueue.9 TASKQUEUE_DEFINE.9 \ + taskqueue.9 TASKQUEUE_DEFINE_THREAD.9 \ + taskqueue.9 taskqueue_drain.9 \ taskqueue.9 taskqueue_enqueue.9 \ - taskqueue.9 taskqueue_find.9 \ + taskqueue.9 taskqueue_enqueue_fast.9 \ + taskqueue.9 TASKQUEUE_FAST_DEFINE.9 \ + taskqueue.9 TASKQUEUE_FAST_DEFINE_THREAD.9 \ taskqueue.9 taskqueue_free.9 \ + taskqueue.9 taskqueue_member.9 \ taskqueue.9 taskqueue_run.9 MLINKS+=time.9 boottime.9 \ time.9 time_second.9 \ @@ -1366,6 +1372,8 @@ VOP_RDWR.9 VOP_WRITE.9 MLINKS+=VOP_REMOVE.9 VOP_RMDIR.9 MLINKS+=vref.9 VREF.9 +MLINKS+=vrele.9 vput.9 \ + vrele.9 vunref.9 MLINKS+=vslock.9 vsunlock.9 MLINKS+=zero_copy.9 zero_copy_sockets.9 MLINKS+=zone.9 uma.9 \ ==== //depot/projects/smpng/share/man/man9/VOP_GETPAGES.9#3 (text+ko) ==== @@ -27,7 +27,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/VOP_GETPAGES.9,v 1.13 2010/04/14 19:08:06 uqs Exp $ +.\" $FreeBSD: src/share/man/man9/VOP_GETPAGES.9,v 1.14 2010/10/20 05:57:54 avg Exp $ .\" .Dd September 27, 2003 .Dt VOP_GETPAGES 9 @@ -41,9 +41,9 @@ .In sys/vnode.h .In vm/vm.h .Ft int -.Fn VOP_GETPAGES "struct vnode *vp" "vm_page_t *m" "int count" "int reqpage" "vm_ooffset_t offset" +.Fn VOP_GETPAGES "struct vnode *vp" "vm_page_t *ma" "int count" "int reqpage" "vm_ooffset_t offset" .Ft int -.Fn VOP_PUTPAGES "struct vnode *vp" "vm_page_t *m" "int count" "int sync" "int *rtvals" "vm_ooffset_t offset" +.Fn VOP_PUTPAGES "struct vnode *vp" "vm_page_t *ma" "int count" "int sync" "int *rtvals" "vm_ooffset_t offset" .Sh DESCRIPTION The .Fn VOP_GETPAGES @@ -66,11 +66,11 @@ .Bl -tag -width reqpage .It Fa vp The file to access. -.It Fa m -Pointer to the first element of an array of contiguous pages representing a +.It Fa ma +Pointer to the first element of an array of pages representing a contiguous region of the file to be read or written. .It Fa count -The number of pages in the array. +The number of bytes that should be read into the pages of the array. .It Fa sync .Dv VM_PAGER_PUT_SYNC if the write should be synchronous. @@ -123,22 +123,27 @@ The .Fn VOP_GETPAGES method is expected to release any pages in -.Fa m +.Fa ma that it does not successfully handle, by calling .Xr vm_page_free 9 . When it succeeds, .Fn VOP_GETPAGES -must set the valid bits appropriately, clear the dirty bit -(using -.Xr vm_page_undirty 9 ) , -either activate the page (if its wanted bit is set) +must set the valid bits appropriately. +.Fn VOP_GETPAGES +must keep +.Fa reqpage +busy. +It must unbusy all other successfully handled pages and put them +on appropriate page queue(s). +For example, +.Fn VOP_GETPAGES +may either activate a page (if its wanted bit is set) or deactivate it (otherwise), and finally call .Xr vm_page_wakeup 9 -to arouse any threads currently waiting for the page to be faulted in, -for each page read. +to arouse any threads currently waiting for the page to be faulted in. .Sh RETURN VALUES If it successfully reads -.Fa m[reqpage] , +.Fa ma[reqpage] , .Fn VOP_GETPAGES returns .Dv VM_PAGER_OK ; ==== //depot/projects/smpng/share/man/man9/VOP_READDIR.9#3 (text+ko) ==== @@ -26,7 +26,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/VOP_READDIR.9,v 1.16 2010/04/14 19:08:06 uqs Exp $ +.\" $FreeBSD: src/share/man/man9/VOP_READDIR.9,v 1.17 2010/10/08 12:40:16 uqs Exp $ .\" .Dd July 24, 1996 .Dt VOP_READDIR 9 @@ -89,7 +89,6 @@ the cookie should be the offset within the directory where the on-disc version of the appropriate directory entry starts. Memory for the cookies should be allocated using: -.Pp .Bd -literal ...; *ncookies = number of entries read; ==== //depot/projects/smpng/share/man/man9/fail.9#5 (text+ko) ==== @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH .\" DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/fail.9,v 1.5 2010/05/13 12:07:55 uqs Exp $ +.\" $FreeBSD: src/share/man/man9/fail.9,v 1.6 2010/10/08 12:40:16 uqs Exp $ .\" .Dd May 10, 2009 .Dt FAIL 9 @@ -108,7 +108,6 @@ .Sy DEBUG_FP ) . .Pp The sysctl variable may be set using the following grammar: -.Pp .Bd -literal :: ( "->" )* >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Thu Nov 4 21:27:01 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 877D91065675; Thu, 4 Nov 2010 21:27: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 11DBC1065672 for ; Thu, 4 Nov 2010 21:27:01 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id D80A38FC16 for ; Thu, 4 Nov 2010 21:27:00 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA4LR0o2032155 for ; Thu, 4 Nov 2010 21:27:00 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA4LR0cm032152 for perforce@freebsd.org; Thu, 4 Nov 2010 21:27:00 GMT (envelope-from trasz@freebsd.org) Date: Thu, 4 Nov 2010 21:27:00 GMT Message-Id: <201011042127.oA4LR0cm032152@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185382 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: Thu, 04 Nov 2010 21:27:01 -0000 http://p4web.freebsd.org/@@185382?ac=10 Change 185382 by trasz@trasz_victim on 2010/11/04 21:26:30 Add wallclock time accounting. Along with appropriate limit, this might be useful for killing idle processes. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#30 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#95 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_proc.c#17 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#49 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#13 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#30 (text+ko) ==== @@ -75,6 +75,7 @@ switch (resource) { case RUSAGE_CPU: case RUSAGE_CORE: + case RUSAGE_WALLCLOCK: return (0); default: return (1); @@ -91,6 +92,7 @@ case RUSAGE_MEMLOCK: case RUSAGE_NPROC: case RUSAGE_NTHR: + case RUSAGE_WALLCLOCK: return (0); default: return (1); @@ -103,6 +105,7 @@ switch (resource) { case RUSAGE_RSS: + case RUSAGE_WALLCLOCK: return (0); default: return (1); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#95 (text+ko) ==== @@ -111,6 +111,7 @@ { "nsemop", RUSAGE_NSEMOP }, { "nshm", RUSAGE_NSHM }, { "shmsize", RUSAGE_SHMSIZE }, + { "wallclock", RUSAGE_WALLCLOCK }, { NULL, -1 }}; static struct dict actionnames[] = { ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_proc.c#17 (text+ko) ==== ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#49 (text+ko) ==== @@ -628,6 +628,7 @@ { struct thread *td; struct proc *p; + struct timeval wallclock; sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { @@ -637,6 +638,9 @@ } PROC_SUNLOCK(p); rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime)); + microuptime(&wallclock); + timevalsub(&wallclock, &p->p_stats->p_start); + rusage_set(p, RUSAGE_WALLCLOCK, wallclock.tv_sec * 1000000 + wallclock.tv_usec); } sx_sunlock(&allproc_lock); ==== //depot/projects/soc2009/trasz_limits/sys/sys/container.h#13 (text+ko) ==== @@ -75,7 +75,8 @@ #define RUSAGE_NSEMOP 20 #define RUSAGE_NSHM 21 #define RUSAGE_SHMSIZE 22 -#define RUSAGE_MAX RUSAGE_SHMSIZE +#define RUSAGE_WALLCLOCK 23 +#define RUSAGE_MAX RUSAGE_WALLCLOCK /* * 'container' defines resource consumption for a particular From owner-p4-projects@FreeBSD.ORG Thu Nov 4 23:43:05 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DCFBA1065675; Thu, 4 Nov 2010 23:43:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DD151065673 for ; Thu, 4 Nov 2010 23:43:04 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 8A43F8FC14 for ; Thu, 4 Nov 2010 23:43:04 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA4Nh45k060746 for ; Thu, 4 Nov 2010 23:43:04 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA4Nh4ac060743 for perforce@freebsd.org; Thu, 4 Nov 2010 23:43:04 GMT (envelope-from trasz@freebsd.org) Date: Thu, 4 Nov 2010 23:43:04 GMT Message-Id: <201011042343.oA4Nh4ac060743@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185387 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: Thu, 04 Nov 2010 23:43:05 -0000 http://p4web.freebsd.org/@@185387?ac=10 Change 185387 by trasz@trasz_victim on 2010/11/04 23:42:00 Remove unneeded conditional. There should be no functional change. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_proc.c#18 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_proc.c#18 (text+ko) ==== @@ -778,18 +778,16 @@ rufetch(p, &kp->ki_rusage); kp->ki_runtime = cputick2usec(p->p_rux.rux_runtime); PROC_SUNLOCK(p); - if ((p->p_flag & P_INMEM) && p->p_stats != NULL) { - kp->ki_start = p->p_stats->p_start; - timevaladd(&kp->ki_start, &boottime); - PROC_SLOCK(p); - calcru(p, &kp->ki_rusage.ru_utime, &kp->ki_rusage.ru_stime); - PROC_SUNLOCK(p); - calccru(p, &kp->ki_childutime, &kp->ki_childstime); + kp->ki_start = p->p_stats->p_start; + timevaladd(&kp->ki_start, &boottime); + PROC_SLOCK(p); + calcru(p, &kp->ki_rusage.ru_utime, &kp->ki_rusage.ru_stime); + PROC_SUNLOCK(p); + calccru(p, &kp->ki_childutime, &kp->ki_childstime); - /* Some callers want child-times in a single value */ - kp->ki_childtime = kp->ki_childstime; - timevaladd(&kp->ki_childtime, &kp->ki_childutime); - } + /* Some callers want child-times in a single value */ + kp->ki_childtime = kp->ki_childstime; + timevaladd(&kp->ki_childtime, &kp->ki_childutime); tp = NULL; if (p->p_pgrp) { kp->ki_pgid = p->p_pgrp->pg_id; From owner-p4-projects@FreeBSD.ORG Fri Nov 5 13:14:48 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C585D10656CC; Fri, 5 Nov 2010 13:14:48 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F70510656C1 for ; Fri, 5 Nov 2010 13:14:48 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 52A3E8FC12 for ; Fri, 5 Nov 2010 13:14:48 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5DEmNL025048 for ; Fri, 5 Nov 2010 13:14:48 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5DEmHV025045 for perforce@freebsd.org; Fri, 5 Nov 2010 13:14:48 GMT (envelope-from jhb@freebsd.org) Date: Fri, 5 Nov 2010 13:14:48 GMT Message-Id: <201011051314.oA5DEmHV025045@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185395 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, 05 Nov 2010 13:14:49 -0000 http://p4web.freebsd.org/@@185395?ac=10 Change 185395 by jhb@jhb_jhbbsd on 2010/11/05 13:13:52 Bah. Affected files ... .. //depot/projects/smpng/sys/amd64/amd64/machdep.c#99 edit .. //depot/projects/smpng/sys/arm/arm/machdep.c#33 edit .. //depot/projects/smpng/sys/i386/i386/machdep.c#164 edit .. //depot/projects/smpng/sys/ia64/ia64/machdep.c#127 edit .. //depot/projects/smpng/sys/mips/mips/machdep.c#18 edit .. //depot/projects/smpng/sys/pc98/pc98/machdep.c#45 edit .. //depot/projects/smpng/sys/powerpc/aim/machdep.c#24 edit .. //depot/projects/smpng/sys/powerpc/booke/machdep.c#20 edit .. //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#107 edit .. //depot/projects/smpng/sys/sun4v/sun4v/machdep.c#17 edit Differences ... ==== //depot/projects/smpng/sys/amd64/amd64/machdep.c#99 (text+ko) ==== @@ -1767,7 +1767,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { flags = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_flags = flags; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/arm/arm/machdep.c#33 (text+ko) ==== @@ -498,7 +498,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { cspr = disable_interrupts(I32_bit | F32_bit); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_cspr = cspr; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/i386/i386/machdep.c#164 (text+ko) ==== @@ -3002,7 +3002,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { flags = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_flags = flags; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/ia64/ia64/machdep.c#127 (text+ko) ==== @@ -518,7 +518,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { intr = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_intr = intr; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/mips/mips/machdep.c#18 (text+ko) ==== @@ -455,7 +455,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { intr = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_intr = intr; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/pc98/pc98/machdep.c#45 (text+ko) ==== @@ -2345,7 +2345,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { flags = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_flags = flags; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/powerpc/aim/machdep.c#24 (text+ko) ==== @@ -756,7 +756,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { msr = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_msr = msr; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/powerpc/booke/machdep.c#20 (text+ko) ==== @@ -521,7 +521,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { msr = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_msr = msr; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/sparc64/sparc64/machdep.c#107 (text+ko) ==== @@ -224,7 +224,7 @@ if (td->td_md.md_spinlock_count == 0) { pil = rdpr(pil); wrpr(pil, 0, PIL_TICK); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_pil = pil; } else td->td_md.md_spinlock_count++; ==== //depot/projects/smpng/sys/sun4v/sun4v/machdep.c#17 (text+ko) ==== @@ -269,7 +269,7 @@ td = curthread; if (td->td_md.md_spinlock_count == 0) { pil = intr_disable(); - td->td_md.md_spinlock_count == 1; + td->td_md.md_spinlock_count = 1; td->td_md.md_saved_pil = pil; } else td->td_md.md_spinlock_count++; From owner-p4-projects@FreeBSD.ORG Fri Nov 5 17:46:45 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CDF101065670; Fri, 5 Nov 2010 17:46:44 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 905FB106564A for ; Fri, 5 Nov 2010 17:46:44 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 7C4BD8FC0A for ; Fri, 5 Nov 2010 17:46:44 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5HkiMm080395 for ; Fri, 5 Nov 2010 17:46:44 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5Hkii7080392 for perforce@freebsd.org; Fri, 5 Nov 2010 17:46:44 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 5 Nov 2010 17:46:44 GMT Message-Id: <201011051746.oA5Hkii7080392@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185403 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, 05 Nov 2010 17:46:45 -0000 http://p4web.freebsd.org/@@185403?ac=10 Change 185403 by rene@rene_acer on 2010/11/05 17:45:53 Refer to INDEX-8 instead of INDEX-6 Affected files ... .. //depot/projects/docproj_nl/www/share/mk/web.site.mk#2 edit Differences ... ==== //depot/projects/docproj_nl/www/share/mk/web.site.mk#2 (text+ko) ==== @@ -114,7 +114,7 @@ # # URL where INDEX can be found (define NOPORTSNET to disable) # -INDEXURI?= http://www.FreeBSD.org/ports/INDEX-6 +INDEXURI?= http://www.FreeBSD.org/ports/INDEX-8 # # Instruct bsd.subdir.mk to NOT to process SUBDIR directive. It is not From owner-p4-projects@FreeBSD.ORG Fri Nov 5 17:51:06 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9AE361065670; Fri, 5 Nov 2010 17:51: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 44FC8106566B for ; Fri, 5 Nov 2010 17:51:06 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 3099B8FC0A for ; Fri, 5 Nov 2010 17:51:06 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5Hp67D082198 for ; Fri, 5 Nov 2010 17:51:06 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5Hp6sr082194 for perforce@freebsd.org; Fri, 5 Nov 2010 17:51:06 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 5 Nov 2010 17:51:06 GMT Message-Id: <201011051751.oA5Hp6sr082194@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185404 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, 05 Nov 2010 17:51:06 -0000 http://p4web.freebsd.org/@@185404?ac=10 Change 185404 by rene@rene_acer on 2010/11/05 17:50:03 Remove 6.X and Alpha in current text, leave historial text alone Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#12 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#15 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#12 (text+ko) ==== @@ -119,21 +119,6 @@ - &os;/&arch.alpha; - - Alpha - - Support for the Alpha was removed beginning with - &os; 7.0. The - &os; 6.X series of - releases is the last containing support for this - architecture. Please check the Release - Information page of the &os; web site for more - information. - - - &os;/&arch.amd64; There are two classes of processors capable of running @@ -4924,8 +4909,8 @@ If you have problems, logging can be directed to the screen using the command set log local .... - If a hard-wired connection to another FreeBSD (2.0-R or - later) machine is available, you might also consider installing + If a hard-wired connection to another FreeBSD + machine is available, you might also consider installing over a laplink parallel port cable. The data rate over the parallel port is much higher than what is typically possible over a serial line (up to 50 kbytes/sec), thus resulting ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#15 (text+ko) ==== @@ -56,7 +56,7 @@ 4.4BSD-Lite &os; is a 4.4BSD-Lite based operating system for - Intel (x86 and &itanium;), AMD64, Alpha, Sun + Intel (x86 and &itanium;), AMD64, Sun &ultrasparc; computers. Ports to other architectures are also underway. You can also read about the history of &os;, @@ -112,7 +112,7 @@ &os; is a 32-bit operating - system (64-bit on the Alpha, &itanium;, + system (64-bit on the &itanium;, AMD64, and &ultrasparc;) and was designed as such from the ground up. @@ -931,7 +931,7 @@ &pentium; II, &pentium; III, &pentium; 4 (or compatible), - &xeon;, DEC Alpha + &xeon;, and Sun &ultrasparc; based computer systems. It is based primarily on software from U.C. Berkeley's CSRG group, with some enhancements from NetBSD, OpenBSD, 386BSD, and From owner-p4-projects@FreeBSD.ORG Fri Nov 5 19:36:26 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B4E2C1065694; Fri, 5 Nov 2010 19:36: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 77774106567A for ; Fri, 5 Nov 2010 19:36:26 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 48BB48FC14 for ; Fri, 5 Nov 2010 19:36:26 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5JaQ0M003492 for ; Fri, 5 Nov 2010 19:36:26 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5JaQuk003489 for perforce@freebsd.org; Fri, 5 Nov 2010 19:36:26 GMT (envelope-from trasz@freebsd.org) Date: Fri, 5 Nov 2010 19:36:26 GMT Message-Id: <201011051936.oA5JaQuk003489@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185409 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, 05 Nov 2010 19:36:26 -0000 http://p4web.freebsd.org/@@185409?ac=10 Change 185409 by trasz@trasz_victim on 2010/11/05 19:36:20 Add cpu percentage accounting. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#31 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#96 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#50 edit .. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#14 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#31 (text+ko) ==== @@ -93,6 +93,7 @@ case RUSAGE_NPROC: case RUSAGE_NTHR: case RUSAGE_WALLCLOCK: + case RUSAGE_PCTCPU: return (0); default: return (1); @@ -106,6 +107,7 @@ switch (resource) { case RUSAGE_RSS: case RUSAGE_WALLCLOCK: + case RUSAGE_PCTCPU: return (0); default: return (1); @@ -578,6 +580,7 @@ /* * XXX: Free this some other way. */ + rusage_set(p, RUSAGE_PCTCPU, 0); rusage_set(p, RUSAGE_FSIZE, 0); rusage_set(p, RUSAGE_NPTS, 0); rusage_set(p, RUSAGE_NTHR, 0); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#96 (text+ko) ==== @@ -112,6 +112,7 @@ { "nshm", RUSAGE_NSHM }, { "shmsize", RUSAGE_SHMSIZE }, { "wallclock", RUSAGE_WALLCLOCK }, + { "pctcpu", RUSAGE_PCTCPU }, { NULL, -1 }}; static struct dict actionnames[] = { ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#50 (text+ko) ==== @@ -626,6 +626,7 @@ static void rusage_cpu_task_fn(void *arg, int pending) { + int pctcpu; struct thread *td; struct proc *p; struct timeval wallclock; @@ -633,14 +634,20 @@ sx_slock(&allproc_lock); FOREACH_PROC_IN_SYSTEM(p) { PROC_SLOCK(p); + pctcpu = 0; FOREACH_THREAD_IN_PROC(p, td) { ruxagg(p, td); + thread_lock(td); + pctcpu += sched_pctcpu(td); + thread_unlock(td); } PROC_SUNLOCK(p); rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime)); microuptime(&wallclock); timevalsub(&wallclock, &p->p_stats->p_start); rusage_set(p, RUSAGE_WALLCLOCK, wallclock.tv_sec * 1000000 + wallclock.tv_usec); + pctcpu = ((pctcpu * 10000 + FSCALE / 2) >> FSHIFT) / 100; + rusage_set(p, RUSAGE_PCTCPU, pctcpu); } sx_sunlock(&allproc_lock); ==== //depot/projects/soc2009/trasz_limits/sys/sys/container.h#14 (text+ko) ==== @@ -76,7 +76,8 @@ #define RUSAGE_NSHM 21 #define RUSAGE_SHMSIZE 22 #define RUSAGE_WALLCLOCK 23 -#define RUSAGE_MAX RUSAGE_WALLCLOCK +#define RUSAGE_PCTCPU 24 +#define RUSAGE_MAX RUSAGE_PCTCPU /* * 'container' defines resource consumption for a particular From owner-p4-projects@FreeBSD.ORG Fri Nov 5 21:14:07 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ADD2B1065675; Fri, 5 Nov 2010 21:14: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 584541065693 for ; Fri, 5 Nov 2010 21:14:07 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 3C8298FC15 for ; Fri, 5 Nov 2010 21:14:07 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5LE7Xp024416 for ; Fri, 5 Nov 2010 21:14:07 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5LE7sf024413 for perforce@freebsd.org; Fri, 5 Nov 2010 21:14:07 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 5 Nov 2010 21:14:07 GMT Message-Id: <201011052114.oA5LE7sf024413@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185414 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, 05 Nov 2010 21:14:07 -0000 http://p4web.freebsd.org/@@185414?ac=10 Change 185414 by rene@rene_acer on 2010/11/05 21:13:18 Pre-6.X cleanup of Handbook: - note that 6.X is the last release to support Alpha in the Introduction - remove a pre-5.2 argument in Basics - upgrade an example from 5.4 to 8.1 - trim csup description (port is gone) and remove md5 as checksum algorithm while here (bsd.port.mk r1.652) Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#7 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#16 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/ports/chapter.sgml#11 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/basics/chapter.sgml#7 (text+ko) ==== @@ -1750,8 +1750,8 @@ Mount the file system read-only. This is identical - to using the ( - for &os; versions older than 5.2) argument to the + to using the + argument to the option.
==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/introduction/chapter.sgml#16 (text+ko) ==== @@ -650,7 +650,8 @@ 6.0-RELEASE, the first release of the 6.X branch, was released in November 2005. The most recent 6.4-RELEASE came out in November 2008. There will be no additional releases from the - RELENG_6 branch. + RELENG_6 branch. This branch is the last branch to support the + architecture. The RELENG_7 branch was created in October 2007. The first release of this branch was 7.0-RELEASE, which came ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/ports/chapter.sgml#11 (text+ko) ==== @@ -462,14 +462,14 @@ the version of the package that was built with your release. It is possible to change this behavior by overriding PACKAGESITE. - For example, if you run a &os; 5.4-RELEASE + For example, if you run a &os; 8.1-RELEASE system, by default &man.pkg.add.1; will try to fetch packages from - ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. + ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/. If you want to force &man.pkg.add.1; to download - &os; 5-STABLE packages, set PACKAGESITE + &os; 8-STABLE packages, set PACKAGESITE to - ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. + ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/. @@ -642,9 +642,7 @@ The implementation of CVSup protocol included with the &os; system is called - csup. It first appeared in &os; 6.2. - Users of older &os; releases can install it via the net/csup port/package. + csup. Make sure /usr/ports @@ -824,7 +822,7 @@ A distinfo file. This file contains information about the files that must be downloaded to build the port, and their checksums - (using &man.md5.1; and &man.sha256.1;), to + (using &man.sha256.1;), to verify that files have not been corrupted during the download. From owner-p4-projects@FreeBSD.ORG Fri Nov 5 21:33:55 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EE8FC1065670; Fri, 5 Nov 2010 21:33: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 B16B2106564A for ; Fri, 5 Nov 2010 21:33:54 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 839CA8FC15 for ; Fri, 5 Nov 2010 21:33:54 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5LXsMw028312 for ; Fri, 5 Nov 2010 21:33:54 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5LXstP028309 for perforce@freebsd.org; Fri, 5 Nov 2010 21:33:54 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 5 Nov 2010 21:33:54 GMT Message-Id: <201011052133.oA5LXstP028309@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185417 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, 05 Nov 2010 21:33:55 -0000 http://p4web.freebsd.org/@@185417?ac=10 Change 185417 by rene@rene_acer on 2010/11/05 21:33:46 Remove XFree86 as a supported window system, it hasn't been since 5.3R. Also axe the paragraph after it. Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#17 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#17 (text+ko) ==== @@ -27,27 +27,15 @@ FreeBSD uses X11 to provide users with a powerful graphical user interface. X11 is a freely available version of the X Window System that - is implemented in both &xorg; and - &xfree86; (and other software - packages not discussed here). &os; versions up to and - including &os; 5.2.1-RELEASE - will find the default installation to be - &xfree86;, the X11 server released by - The &xfree86; Project, Inc. As of &os; 5.3-RELEASE, the - default and official flavor of X11 was changed to + is implemented in &xorg; + (and other software + packages not discussed here). + The + default and official flavor of X11 in &os; is &xorg;, the X11 server developed by the X.Org Foundation under a license very similar to the one used by &os;. Commercial X servers for &os; are also available. - This chapter will cover the installation and configuration - of X11 with emphasis on &xorg; &xorg.version; release. For - information about configuring &xfree86; - (i.e. on older releases of &os; where - &xfree86; was the default X11 - distribution) or previous releases of &xorg;, it is always possible to refer to archived versions - of the &os; Handbook at . - For more information on the video hardware that X11 supports, check the &xorg; web site. From owner-p4-projects@FreeBSD.ORG Fri Nov 5 22:23:20 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 283921065675; Fri, 5 Nov 2010 22:23: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 DED87106564A for ; Fri, 5 Nov 2010 22:23:19 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id CAA9D8FC19 for ; Fri, 5 Nov 2010 22:23:19 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5MNJvR038731 for ; Fri, 5 Nov 2010 22:23:19 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5MNJFt038728 for perforce@freebsd.org; Fri, 5 Nov 2010 22:23:19 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 5 Nov 2010 22:23:19 GMT Message-Id: <201011052223.oA5MNJFt038728@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185419 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, 05 Nov 2010 22:23:20 -0000 http://p4web.freebsd.org/@@185419?ac=10 Change 185419 by rene@rene_acer on 2010/11/05 22:22:34 Pre-7.X cleanup: - remove Alpha references from the kernelconig chapter - Add COMPAT_FREEBSD6 and COMPAT_FREEBSD7 to the kernelconfig chapter - 8.0 has been released :) - devfs is obligatory, also for the multimedia chapter - no more XFree86 Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#10 edit .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#8 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml#10 (text+ko) ==== @@ -276,7 +276,7 @@ will edit your custom kernel configuration, and compile, which is the staging area where your kernel will be built. arch represents - one of i386, alpha, + one of i386, amd64, ia64, powerpc, sparc64, or pc98 (an alternative development branch of PC @@ -469,7 +469,7 @@ Joel Dahl - Updated for &os; 6.X by + Updated by @@ -497,7 +497,7 @@ architecture independent options, see /usr/src/sys/conf/NOTES. - As of &os; 5.0, a new include directive is + An include directive is available for use in configuration files. This allows another configuration file to be logically included in the current one, making it easy to maintain small changes relative to an existing file. For @@ -552,7 +552,7 @@ machine i386 This is the machine architecture. It must be either - alpha, amd64, + amd64, i386, ia64, pc98, powerpc, or sparc64. @@ -726,7 +726,7 @@ options PSEUDOFS # Pseudo-filesystem framework - 6.X kernels making use of PROCFS must also + Kernels making use of PROCFS must also include support for PSEUDOFS. options GEOM_GPT # GUID Partition Tables. @@ -741,19 +741,31 @@ options COMPAT_FREEBSD4 # Compatible with &os;4 - This option is required on &os; 5.X &i386; and Alpha systems + This option is required to support applications compiled on older versions of &os; that use older system call interfaces. It is recommended that - this option be used on all &i386; and Alpha systems that may + this option be used on all &i386; systems that may run older applications; platforms that gained support only in 5.X, such as ia64 and &sparc64;, do not require this option. options COMPAT_FREEBSD5 # Compatible with &os;5 - This option is required on &os; 6.X and above to + This option is required to support applications compiled on &os; 5.X versions that use &os; 5.X system call interfaces. + options COMPAT_FREEBSD6 # Compatible with &os;6 + + This option is required to + support applications compiled on &os; 6.X versions that use + &os; 6.X system call interfaces. + + options COMPAT_FREEBSD7 # Compatible with &os;7 + + This option is required on &os; 8 and above to + support applications compiled on &os; 7.X versions that use + &os; 7.X system call interfaces. + options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI This causes the kernel to pause for 5 seconds before probing @@ -817,7 +829,7 @@ leave this in. - Note that on &os; 8.0-CURRENT and later versions, all mutexes are + Note that on &os; 8.0-RELEASE and later versions, all mutexes are adaptive by default, unless explicitly set to non-adaptive by compiling with the NO_ADAPTIVE_MUTEXES option. As a result, Giant is adaptive by default now, and the ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#8 (text+ko) ==== @@ -120,7 +120,7 @@ Marc Fonvieille - Enhanced for &os; 5.X by + Enhanced by @@ -399,12 +399,8 @@ device, such as music players or sound daemons. - If you are not using &man.devfs.5;, you will have to point - your applications at - /dev/dsp0.x, - where x is 0 to 3 if - dev.pcm.0.rec.vchans is set to 4 as in the - above example. On a system using &man.devfs.5;, the above will + + The above will automatically be allocated transparently to a program that requests /dev/dsp0. @@ -687,7 +683,7 @@ it did with sound. Before you begin, you should know the model of the video - card you have and the chip it uses. While &xorg; and &xfree86; support a + card you have and the chip it uses. While &xorg; supports a wide variety of video cards, fewer give good playback performance. To obtain a list of extensions supported by the X server using your card use the command &man.xdpyinfo.1; while @@ -735,7 +731,7 @@ method described below will have varying quality across different hardware. Secondly, the rendering of video in X11 is a topic receiving a lot of attention lately, and with each - version of &xorg;, or of &xfree86;, there may be significant improvement. + version of &xorg;, there may be significant improvement. A list of common video interfaces: @@ -761,7 +757,7 @@ XVideo - &xorg; and &xfree86; 4.X have an extension called + &xorg; has an extension called XVideo (aka Xvideo, aka Xv, aka xv) which allows video to be directly displayed in drawable objects through a special acceleration. This extension provides very From owner-p4-projects@FreeBSD.ORG Fri Nov 5 23:44:36 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 896131065670; Fri, 5 Nov 2010 23:44:36 +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 4C28D106566B for ; Fri, 5 Nov 2010 23:44:36 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 098CB8FC1C for ; Fri, 5 Nov 2010 23:44:36 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA5NiZdf054827 for ; Fri, 5 Nov 2010 23:44:35 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA5NiZx4054824 for perforce@freebsd.org; Fri, 5 Nov 2010 23:44:35 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 5 Nov 2010 23:44:35 GMT Message-Id: <201011052344.oA5NiZx4054824@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185421 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, 05 Nov 2010 23:44:36 -0000 http://p4web.freebsd.org/@@185421?ac=10 Change 185421 by rene@rene_acer on 2010/11/05 23:43:56 Modernized up to Part II of the Handbook. Unfortunately, the SAP R/3 section was too old, so it has been commented out for now. Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#8 edit Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml#8 (text+ko) ==== @@ -529,8 +529,6 @@ directories loaded automatically by adding them to your xorg.conf file. - For &xfree86; servers, - the configuration file is XF86Config. fonts If you do not already have a directory @@ -1202,6 +1200,10 @@ + @@ -3218,6 +3220,7 @@ +]]> Advanced Topics From owner-p4-projects@FreeBSD.ORG Sat Nov 6 11:51:26 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DC9331065672; Sat, 6 Nov 2010 11:51:25 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F92B106564A for ; Sat, 6 Nov 2010 11:51:25 +0000 (UTC) (envelope-from aman@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 8AF488FC0A for ; Sat, 6 Nov 2010 11:51:25 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id oA6BpPsJ006459 for ; Sat, 6 Nov 2010 11:51:25 GMT (envelope-from aman@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id oA6BpP5P006453 for perforce@freebsd.org; Sat, 6 Nov 2010 11:51:25 GMT (envelope-from aman@freebsd.org) Date: Sat, 6 Nov 2010 11:51:25 GMT Message-Id: <201011061151.oA6BpP5P006453@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to aman@freebsd.org using -f From: Aman Jassal To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 185431 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, 06 Nov 2010 11:51:26 -0000 http://p4web.freebsd.org/@@185431?ac=10 Change 185431 by aman@src on 2010/11/06 11:50:50 After quite some time, adding some sysctl support for the routing tables in libnetstat. The support is still in somewhat experimental state though : it cannot export masks associated to a subnet because of kernel page faults and the size of struct rttable_perfib_header should be reviewed as well to make sure it is a power of 2. Submitted by: aman Reviewed by: pgj Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#69 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_route.c#9 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/route.h#6 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/rtsock.c#7 edit .. //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#50 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#69 (text+ko) ==== @@ -682,6 +682,8 @@ struct netisr_work *_netstat_nw_allocate(struct netisr_work_list *); struct routeaddr_type *extract_address(void *, void *, int); +struct routeaddr_type *extract_saddress(void *, void *, int); + const char *resolve_val2str_name(int, const struct val2str *); /* XXX: merge these into a common address resolution routine. */ const char *routename(in_addr_t in, int numeric); ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_route.c#9 (text+ko) ==== @@ -33,10 +33,12 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -64,6 +66,7 @@ static void process_tree(kvm_t *, struct route_type_list *, struct radix_node *, int, int); static void extract_rtentry_data(struct rtentry *, struct route_type *); +static void extract_srtentry_data(struct rttable_perfib_data *, struct route_type *, int); static void extract_node(struct radix_node *, struct routenode_type *, int); int @@ -307,11 +310,76 @@ int route_tree_sysctl(struct route_type_list *list, __unused int fib, - __unused int domain, __unused int flags) + int domain, __unused int flags) { - /* XXX: unsupported */ - list->rtl_error = NETSTAT_ERROR_UNSUPPORTED; - return (-1); + /* + * AJ : Adding sysctl routing tables support, after + * quite some time... + */ + char *mibvar_rttables; + char *buffer_rtdata, *p; + size_t rtdata_len; + struct rttable_stream_header *rshp; + struct rttable_perfib_header *rphp; + struct rttable_perfib_data *rpdp; + struct route_type *rtp; + uint32_t i, j; + + if (domain == AF_INET) + mibvar_rttables = "net.route.inet_dump"; + else if (domain == AF_INET6) + mibvar_rttables = "net.route.inet6_dump"; + else + mibvar_rttables = NULL; + + if (sysctlbyname(mibvar_rttables, 0, &rtdata_len, 0, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: mibvar estimate"); + goto end; + } + if ((buffer_rtdata = malloc(rtdata_len)) == 0) { + warnx("malloc %lu bytes", (u_long)rtdata_len); + goto end; + } + if (sysctlbyname(mibvar_rttables, buffer_rtdata, &rtdata_len, 0, 0) < 0) { + warn("sysctl: mibvar retrieval"); + goto out_rtdata; + } + if (rtdata_len < sizeof(*rshp)) { + list->rtl_error = NETSTAT_ERROR_VERSION; + goto out_rtdata; + } + + p = buffer_rtdata; + rshp = (struct rttable_stream_header *)p; + p += sizeof(*rshp); + + if (rshp->rsh_version != RTTABLE_STREAM_VERSION) { + list->rtl_error = NETSTAT_ERROR_VERSION; + goto out_rtdata; + } + + for (i = 0; i < rshp->rsh_count; i++) { + /* + * Decapsulate per-fib header. + */ + rphp = (struct rttable_perfib_header *)p; + p += sizeof(*rphp); + + for (j = 0; j < rphp->rph_count; j++) { + rpdp = (struct rttable_perfib_data *)p; + p += sizeof(*rpdp); + + rtp = _netstat_rt_allocate(list); + extract_srtentry_data(rpdp, rtp, domain); + } + + } + +out_rtdata: + free(buffer_rtdata); +end: + return (0); } #define CNV_FLAG(X, Y) \ @@ -363,10 +431,64 @@ } } rtp->rt_mtu = rte->rt_rmx.rmx_mtu; - rtp->rt_fib = rte->rt_fibnum; +} +#undef CNV_FLAG + +#define CNV_FLAG(X, Y) \ + if (rpdp->rpd_flags & (X)) \ + rpdp->rpd_flags |= (Y) + +void +extract_srtentry_data(struct rttable_perfib_data *rpdp, struct route_type *rtp, int domain) +{ + time_t expire_time; + struct timespec uptime; + struct sockaddr_storage *sa, *mk; + + CNV_FLAG(RTF_UP, NETSTAT_RT_UP); + CNV_FLAG(RTF_GATEWAY, NETSTAT_RT_GATEWAY); + CNV_FLAG(RTF_HOST, NETSTAT_RT_HOST); + CNV_FLAG(RTF_REJECT, NETSTAT_RT_REJECT); + CNV_FLAG(RTF_DYNAMIC, NETSTAT_RT_DYNAMIC); + CNV_FLAG(RTF_MODIFIED, NETSTAT_RT_MODIFIED); + CNV_FLAG(RTF_DONE, NETSTAT_RT_DONE); + CNV_FLAG(RTF_XRESOLVE, NETSTAT_RT_XRESOLVE); + CNV_FLAG(RTF_LLINFO, NETSTAT_RT_LLINFO); + CNV_FLAG(RTF_STATIC, NETSTAT_RT_STATIC); + CNV_FLAG(RTF_PROTO1, NETSTAT_RT_PROTO1); + CNV_FLAG(RTF_PROTO2, NETSTAT_RT_PROTO2); + CNV_FLAG(RTF_PROTO3, NETSTAT_RT_PROTO3); + CNV_FLAG(RTF_BLACKHOLE, NETSTAT_RT_BLACKHOLE); + CNV_FLAG(RTF_BROADCAST, NETSTAT_RT_BROADCAST); + + rtp->rt_fib = rpdp->rpd_fib; + rtp->rt_family = (rpdp->rpd_dst).ss_family; + sa = &rpdp->rpd_dst; + mk = &rpdp->rpd_mask; + rtp->rt_destination = extract_saddress(sa, mk, rpdp->rpd_flags); + sa = &rpdp->rpd_gw; + rtp->rt_gateway = extract_saddress(sa, NULL, RTF_HOST); + rtp->rt_refs = rpdp->rpd_refs; + rtp->rt_used = rpdp->rpd_used; + if (rpdp->rpd_interface_name != NULL) + rtp->rt_interface = strdup(rpdp->rpd_interface_name); + else + rtp->rt_interface = strdup("---"); + if (rpdp->rpd_expire > 0) { + if (clock_gettime(CLOCK_UPTIME, &uptime) < 0) { + warn("netstat_route: clock_gettime() failed"); + } + expire_time = rpdp->rpd_expire - uptime.tv_sec; + if (expire_time > 0) { + rtp->rt_flags |= NETSTAT_RT_EXPIRES; + rtp->rt_expire = expire_time; + } + } + rtp->rt_mtu = rpdp->rpd_mtu; } #undef CNV_FLAG + struct routeaddr_type * extract_address(void *saddr, void *maddr, int flags) { @@ -523,6 +645,163 @@ return (rap); } + +struct routeaddr_type * +extract_saddress(void *saddr, void *maddr, int flags) +{ + struct routeaddr_type *rap; + struct sockaddr *sa, *mask; + struct sockaddr_in *sa_in, *mk_in; +#ifdef INET6 + struct sockaddr_in6 *sa_in6, *mk_in6; + struct in6_addr *in6; +#endif + struct sockaddr_dl *sa_dl; + char *cp, *cq, *cqlim, *p; + int n; + char workbuf[128]; + u_char *s, *slim; + + if (saddr == NULL) + return (NULL); + + sa = (struct sockaddr *)saddr; + mask = (struct sockaddr *)maddr; + sa_in = (struct sockaddr_in *)sa; + mk_in = (struct sockaddr_in *)mask; +#ifdef INET6 + sa_in6 = (struct sockaddr_in6 *)sa; + in6 = &sa_in6->sin6_addr; + mk_in6 = (struct sockaddr_in6 *)mask; +#endif + sa_dl = (struct sockaddr_dl *)sa; + + rap = _netstat_rat_allocate(sa->sa_family, sa, sizeof(struct sockaddr)); + if (rap == NULL) + return (NULL); + + switch (sa->sa_family) { + case PF_INET: + if ((sa_in->sin_addr.s_addr == INADDR_ANY) && + (mask != NULL) && + (ntohl(mk_in->sin_addr.s_addr) == 0L)) { + rap->rat_address = strdup("default"); + strlcpy(rap->rat_ni_address, "default", + sizeof(rap->rat_ni_address)); + } else if (flags & RTF_HOST) { + inet_ntop(PF_INET, &sa_in->sin_addr, + rap->rat_ni_address, sizeof(rap->rat_ni_address)); + rap->rat_address = + strdup(routename(sa_in->sin_addr.s_addr, 0)); + } else if (mask != NULL) { + strlcpy(rap->rat_ni_address, + netname(sa_in->sin_addr.s_addr, + ntohl(mk_in->sin_addr.s_addr), 1), + sizeof(rap->rat_ni_address)); + rap->rat_address = + strdup(netname(sa_in->sin_addr.s_addr, + ntohl(mk_in->sin_addr.s_addr), 0)); + } else { + rap->rat_address = + strdup(netname(sa_in->sin_addr.s_addr, + 0L, 0)); + strlcpy(rap->rat_ni_address, rap->rat_address, + sizeof(rap->rat_ni_address)); + } + rap->rat_data = malloc(sizeof(struct sockaddr_in)); + if (rap->rat_data != NULL) { + rap->rat_data_len = sizeof(struct sockaddr_in); + memcpy(rap->rat_data, sa_in, rap->rat_data_len); + } + break; +#ifdef INET6 + case PF_INET6: + /* + * XXX: This is a special workaround for KAME kernels. + * sin6_scope_id field of SA should be set in the future. + */ + if (IN6_IS_ADDR_LINKLOCAL(in6) || + IN6_IS_ADDR_MC_LINKLOCAL(in6)) { + sa_in6->sin6_scope_id = + (u_int32_t)ntohs(*(u_short *)&in6->s6_addr[2]); + *(u_short *)&in6->s6_addr[2] = 0; + } + if (flags & RTF_HOST) { + rap->rat_address = strdup(routename6(sa_in6, 0)); + strlcpy(rap->rat_ni_address, routename6(sa_in6, 1), + sizeof(rap->rat_ni_address)); + } + else if (mask != NULL) { + rap->rat_address = strdup(netname6(sa_in6, + &mk_in6->sin6_addr, 0)); + strlcpy(rap->rat_ni_address, + netname6(sa_in6, &mk_in6->sin6_addr, 1), + sizeof(rap->rat_ni_address)); + } else { + rap->rat_address = strdup(netname6(sa_in6, 0L, 0)); + strlcpy(rap->rat_ni_address, rap->rat_address, + sizeof(rap->rat_ni_address)); + } + rap->rat_data = malloc(sizeof(struct sockaddr_in6)); + if (rap->rat_data != NULL) { + rap->rat_data_len = sizeof(struct sockaddr_in6); + memcpy(rap->rat_data, sa_in6, rap->rat_data_len); + } + break; +#endif + case PF_IPX: + break; + case PF_APPLETALK: + break; + case PF_NETGRAPH: + break; + case PF_LINK: + if (sa_dl->sdl_nlen == 0 && sa_dl->sdl_alen == 0 && + sa_dl->sdl_slen == 0) { + sprintf(rap->rat_ni_address, "", + sa_dl->sdl_index); + } else { + cp = (char *)LLADDR(sa_dl); + n = sa_dl->sdl_alen; + p = rap->rat_address; + while (--n >= 0) { + sprintf(p, "%02x%s", *cp++ & 0xff, + n > 0 ? ":" : ""); + p += 3; + } + } + rap->rat_address = strdup(rap->rat_ni_address); + rap->rat_data = malloc(sizeof(struct sockaddr_dl)); + if (rap->rat_data != NULL) { + rap->rat_data_len = sizeof(struct sockaddr_dl); + memcpy(rap->rat_data, sa_dl, rap->rat_data_len); + } + break; + default: + s = (u_char *)sa->sa_data; + cq = workbuf; + slim = sa->sa_len + (u_char *)sa; + cqlim = cq + sizeof(workbuf) - 6; + cq += sprintf(cq, "(%d)", sa->sa_family); + while (s < slim && cq < cqlim) { + cq += sprintf(cq, " %02x", *s++); + if (s < slim) + cq += sprintf(cq, "%02x", *s++); + } + rap->rat_address = strdup(workbuf); + strlcpy(rap->rat_ni_address, workbuf, + sizeof(rap->rat_ni_address)); + rap->rat_data = malloc(sizeof(struct sockaddr)); + if (rap->rat_data != NULL) { + rap->rat_data_len = sizeof(struct sockaddr); + memcpy(rap->rat_data, sa, rap->rat_data_len); + } + break; + } + + return (rap); +} + void extract_node(struct radix_node *rn, struct routenode_type *rnp, int mkcnt) { ==== //depot/projects/soc2009/pgj_libstat/src/sys/net/route.h#6 (text+ko) ==== @@ -309,6 +309,46 @@ }; /* + * Statistics structures to be used by user space monitoring tools. + */ +#define RID_MAX_NAME 16 +#define RTTABLE_STREAM_VERSION 0x00000001 + +struct rttable_stream_header { + uint32_t rsh_version; /* Stream format version */ + uint32_t rsh_count; /* Number of fibs */ + uint32_t rsh_family; /* Address family */ + uint32_t _rsh_pad; /* Padding/Reserved field for future use. */ +}; + +struct rttable_perfib_header { + uint32_t rph_fib; /* Fib instance */ + uint32_t rph_count; /* Number of nodes for the given fib */ + uint32_t _rph_pad[2]; /* Padding/Reserved field for future use. */ +}; + +struct rttable_perfib_data { + /* + * Struct sockaddr_storage to store the sockets' information. + */ + struct sockaddr_storage rpd_dst; // Destination subnet + struct sockaddr_storage rpd_mask; // Destination subnet's netmask + struct sockaddr_storage rpd_gw; // Gateway + + /* + * Remaining struct rtentry fields + */ + uint32_t rpd_fib; + uint32_t rpd_flags; + uint64_t rpd_refs; + uint64_t rpd_used; + char rpd_interface_name[RID_MAX_NAME]; + uint64_t rpd_expire; + uint32_t rpd_mtu; + uint8_t _rpid_pad[16]; +}; + +/* * This macro returns the size of a struct sockaddr when passed * through a routing socket. Basically we round up sa_len to * a multiple of sizeof(long), with a minimum of sizeof(long). ==== //depot/projects/soc2009/pgj_libstat/src/sys/net/rtsock.c#7 (text+ko) ==== @@ -46,6 +46,7 @@ #include #include #include +#include #include #include #include @@ -1666,6 +1667,211 @@ SYSCTL_NODE(_net, PF_ROUTE, routetable, CTLFLAG_RD, sysctl_rtsock, ""); +static int +sysctl_export_rttable(SYSCTL_HANDLER_ARGS) +{ + int af, buflen, error, fib_instance, rt_entry_counter_total, i; + int rt_entry_counter[RT_NUMFIBS]; + char *buffer; + struct sbuf sbuf; + struct rttable_stream_header rsh; + struct rttable_perfib_header rph; + struct rttable_perfib_data rpd; + struct radix_node_head *rt_table = NULL; + struct radix_node *base, *next; + register struct radix_node *rn; + struct rtentry *rtp; + + for (i = 0; i < RT_NUMFIBS; i++) + rt_entry_counter[i] = 0; + rt_entry_counter_total = 0; + error = 0; + buflen = 0; + + switch ((intptr_t)arg1) { + case AF_INET: + af = AF_INET; + break; + case AF_INET6: + af = AF_INET6; + break; + default: + error = EAFNOSUPPORT; + return(0); + } + + for (fib_instance = 0; fib_instance < RT_NUMFIBS; fib_instance++) { + + rt_table = rt_tables_get_rnh(fib_instance, af); + + RADIX_NODE_HEAD_RLOCK(rt_table); + rn = rt_table->rnh_treetop; + + while (rn->rn_bit >= 0) + rn = rn->rn_left; + for (;;) { + base = rn; + /* If at right child go back up, otherwise, go right */ + while (rn->rn_parent->rn_right == rn + && (rn->rn_flags & RNF_ROOT) == 0) + rn = rn->rn_parent; + + /* Find the next *leaf* since next node might vanish, too */ + for (rn = rn->rn_parent->rn_right; rn->rn_bit >= 0;) + rn = rn->rn_left; + next = rn; + + /* Process leaves */ + while ((rn = base)) { + base = rn->rn_dupedkey; + if (!(rn->rn_flags & RNF_ROOT)) { + rt_entry_counter[fib_instance]++; + rt_entry_counter_total++; + } + } + + rn = next; + if (rn->rn_flags & RNF_ROOT) + break; + } + + RADIX_NODE_HEAD_RUNLOCK(rt_table); + } + + buflen = sizeof(rsh) + RT_NUMFIBS * sizeof(rph) + rt_entry_counter_total * sizeof(rpd) + 1; + buffer = malloc(buflen, M_TEMP, M_WAITOK | M_ZERO); + + sbuf_new(&sbuf, buffer, buflen, SBUF_FIXEDLEN); + + /* + * Insert stream header. + */ + bzero(&rsh, sizeof(rsh)); + rsh.rsh_version = RTTABLE_STREAM_VERSION; + rsh.rsh_count = RT_NUMFIBS; + rsh.rsh_family = af; + + if (sbuf_bcat(&sbuf, &rsh, sizeof(rsh)) < 0) { + error = ENOMEM; + goto out; + } + + for (fib_instance = 0; fib_instance < RT_NUMFIBS; fib_instance++) { + + i = 0; + rt_table = rt_tables_get_rnh(fib_instance, af); + + /* + * Insert headers per-fib. + * The second header indicates the number of routing + * entries in the routing table, the counting was performed + * earlier in rt_entry_counter. + */ + bzero(&rph, sizeof(rph)); + rph.rph_fib = fib_instance; + rph.rph_count = rt_entry_counter[fib_instance]; + + if (sbuf_bcat(&sbuf, &rph, sizeof(rph)) < 0) { + error = ENOMEM; + goto out; + } + + /* + * AJ : The radix tree is protected by a rwlock. + * Since we only need to go through the + * radix tree and read all the nodes, holding + * the rwlock in read mode should be enough. + * + * Here, we fill all the rttable_perfib_data + * structures and build up the data stream. + * If we reach the maximum number of entries + * initially allocated, we stop processing the + * radix tree and go on to the next one. + * The aim here is to make a quick snapshot of + * the routing table. + */ + RADIX_NODE_HEAD_RLOCK(rt_table); + rn = rt_table->rnh_treetop; + + while (rn->rn_bit >= 0) + rn = rn->rn_left; + + for (;;) { + base = rn; + /* If at right child go back up, otherwise, go right */ + while (rn->rn_parent->rn_right == rn + && (rn->rn_flags & RNF_ROOT) == 0) + rn = rn->rn_parent; + + /* Find the next *leaf* since next node might vanish, too */ + for (rn = rn->rn_parent->rn_right; rn->rn_bit >= 0;) + rn = rn->rn_left; + next = rn; + + /* Process leaves */ + while ((rn = base)) { + base = rn->rn_dupedkey; + if (!(rn->rn_flags & RNF_ROOT)) { + rtp = (struct rtentry *)rn; + + rpd.rpd_fib = rtp->rt_fibnum; + rpd.rpd_flags = rtp->rt_flags; + rpd.rpd_refs = rtp->rt_refcnt; + rpd.rpd_used = rtp->rt_rmx.rmx_pksent; + bcopy(rtp->rt_ifp->if_xname, rpd.rpd_interface_name, RID_MAX_NAME); + rpd.rpd_expire = rtp->rt_rmx.rmx_expire; + rpd.rpd_mtu = rtp->rt_rmx.rmx_mtu; + + rpd.rpd_dst = *((struct sockaddr_storage *)rt_key(rtp)); + rpd.rpd_gw = *((struct sockaddr_storage *)rtp->rt_gateway); + + /* + * AJ : For some reason, calling rt_mask() ALWAYS ends up + * in a kernel page fault, this is seriously irritating + * because without the netmask, handling the subnet + * is meaningless. + */ + //rpd.rpd_mask = *((struct sockaddr_storage *)rt_mask(rtp)); + + if (sbuf_bcat(&sbuf, &rpd, sizeof(rpd)) < 0) { + RADIX_NODE_HEAD_RUNLOCK(rt_table); + error = ENOMEM; + goto out; + } + + if (af == AF_INET && i < rph.rph_count) + i++; + else if (af == AF_INET6 && i < rph.rph_count) + i++; + else + goto rt_out; + } + } + + rn = next; + if (rn->rn_flags & RNF_ROOT) + break; + } +rt_out: + RADIX_NODE_HEAD_RUNLOCK(rt_table); + } + + sbuf_finish(&sbuf); + error = SYSCTL_OUT(req, sbuf_data(&sbuf), sbuf_len(&sbuf)); +out: + sbuf_delete(&sbuf); + free(buffer, M_TEMP); + return(error); +} + +SYSCTL_PROC(_net_route, OID_AUTO, inet_dump, CTLFLAG_RD|CTLTYPE_STRUCT, + (caddr_t)(long)AF_INET, 0, sysctl_export_rttable, "s, struct rttable_perfib_header", + "Inet Routing Tables (stream)"); + +SYSCTL_PROC(_net_route, OID_AUTO, inet6_dump, CTLFLAG_RD|CTLTYPE_STRUCT, + (caddr_t)(long)AF_INET6, 0, sysctl_export_rttable, "s, struct rttable_perfib_header", + "Inet6 Routing Tables (stream)"); + /* * Definitions of protocols supported in the ROUTE domain. */ ==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/netstat/main.c#50 (text+ko) ==== @@ -477,7 +477,8 @@ netstat_session_free(session); } else { - kread(0, NULL, 0); + if (!live) + kread(0, NULL, 0); session = netstat_session_new(kvmd); routepr(session, af); netstat_session_free(session);