From owner-p4-projects@FreeBSD.ORG Sun Apr 11 00:06:05 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 18EFB106566C; Sun, 11 Apr 2010 00:06:05 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id D1387106564A
for ; Sun, 11 Apr 2010 00:06:04 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id BFB088FC08
for ; Sun, 11 Apr 2010 00:06:04 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3B0647Z031468
for ; Sun, 11 Apr 2010 00:06:04 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3B064Nb031466
for perforce@freebsd.org; Sun, 11 Apr 2010 00:06:04 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 00:06:04 GMT
Message-Id: <201004110006.o3B064Nb031466@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176770 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, 11 Apr 2010 00:06:05 -0000
http://p4web.freebsd.org/@@176770?ac=10
Change 176770 by gcooper@gcooper-bayonetta on 2010/04/11 00:05:25
Yank an out-of-place sentence.
Insert a note commenting about operation precedence with mtree files and @owner/@group .
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/functional_spec#2 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/functional_spec#2 (text+ko) ====
@@ -1,10 +1,11 @@
BASIC FLOW
- - Packaging metadata is specified by a package list, as far as what
- the payload will be, and the properties of the payloads contents, as
- well as certain actions that will be acted upon at install time and
- removal time.
- All packages will install the appropriate files with the appropriate
- permissions and ownership.
+ permissions and ownership, as defined by the package list metadata
+ and the mtree files. The mtree files take precedence over the
+ ownership and mode specified in the package list.
+
+ XXX (gcooper): seems like the mtree vs ownership items are backwards.
+
- If the package contains a pre-install script, it will be run prior to
the install.
- If the package contains a post-install script, it will be run after
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 00:53:54 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id D94D7106566C; Sun, 11 Apr 2010 00:53:53 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 9DA16106564A
for ; Sun, 11 Apr 2010 00:53:53 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 55D988FC0A
for ; Sun, 11 Apr 2010 00:53:53 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3B0rr85045641
for ; Sun, 11 Apr 2010 00:53:53 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3B0rri6045639
for perforce@freebsd.org; Sun, 11 Apr 2010 00:53:53 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 00:53:53 GMT
Message-Id: <201004110053.o3B0rri6045639@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176771 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, 11 Apr 2010 00:53:54 -0000
http://p4web.freebsd.org/@@176771?ac=10
Change 176771 by gcooper@gcooper-bayonetta on 2010/04/11 00:53:15
Fix backwards precedence noted so that it reflects reality.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/functional_spec#3 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/functional_spec#3 (text+ko) ====
@@ -1,8 +1,8 @@
BASIC FLOW
- All packages will install the appropriate files with the appropriate
permissions and ownership, as defined by the package list metadata
- and the mtree files. The mtree files take precedence over the
- ownership and mode specified in the package list.
+ and the mtree files. The the mode and ownership data in the package
+ list take precedence over the mtree files.
XXX (gcooper): seems like the mtree vs ownership items are backwards.
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 06:03:03 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id D2C11106566C; Sun, 11 Apr 2010 06:03:02 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 975DF106564A
for ; Sun, 11 Apr 2010 06:03:02 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 852868FC15
for ; Sun, 11 Apr 2010 06:03:02 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3B632dw084887
for ; Sun, 11 Apr 2010 06:03:02 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3B632kY084806
for perforce@freebsd.org; Sun, 11 Apr 2010 06:03:02 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 06:03:02 GMT
Message-Id: <201004110603.o3B632kY084806@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176775 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, 11 Apr 2010 06:03:03 -0000
http://p4web.freebsd.org/@@176775?ac=10
Change 176775 by gcooper@gcooper-bayonetta on 2010/04/11 06:02:43
Remove broken -C [chroot] functionality. See bin/109334 for more details.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/futil.c#5 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/main.c#6 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#3 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/pkg_add.1#2 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/futil.c#5 (text+ko) ====
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/main.c#6 (text+ko) ====
@@ -31,7 +31,6 @@
char *Prefix = NULL;
Boolean PrefixRecursive = FALSE;
-char *Chroot = NULL;
Boolean NoInstall = FALSE;
Boolean NoRecord = FALSE;
Boolean Remote = FALSE;
@@ -59,7 +58,6 @@
static char opts[] = "hviIRfFnrp:P:SMt:C:K";
static struct option longopts[] = {
- { "chroot", required_argument, NULL, 'C' },
{ "dry-run", no_argument, NULL, 'n' },
{ "force", no_argument, NULL, 'f' },
{ "help", no_argument, NULL, 'h' },
@@ -151,10 +149,6 @@
AddMode = MASTER;
break;
- case 'C':
- Chroot = optarg;
- break;
-
case 'i':
IgnoreDeps = TRUE;
break;
@@ -232,11 +226,6 @@
warnx("only one package name may be specified with master mode");
usage();
}
- /* Perform chroot if requested */
- if (Chroot != NULL) {
- if (chroot(Chroot))
- errx(1, "chroot to %s failed", Chroot);
- }
/* Make sure the sub-execs we invoke get found */
setenv("PATH",
"/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin",
@@ -309,7 +298,7 @@
usage(void)
{
fprintf(stderr, "%s\n%s\n",
- "usage: pkg_add [-viInfFrRMSK] [-t template] [-p prefix] [-P prefix] [-C chrootdir]",
+ "usage: pkg_add [-viInfFrRMSK] [-t template] [-p prefix] [-P prefix]",
" pkg-name [pkg-name ...]");
exit(1);
}
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#3 (text+ko) ====
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/pkg_add.1#2 (text+ko) ====
@@ -27,7 +27,6 @@
.Op Fl t Ar template
.Op Fl p Ar prefix
.Op Fl P Ar prefix
-.Op Fl C Ar chrootdir
.Ar pkg-name Op Ar pkg-name ...
.Sh DESCRIPTION
The
@@ -223,32 +222,6 @@
from stdin.
The complete packing list is also read from stdin,
and the contents then acted on as normal.
-.It Fl C , -chroot Ar chrootdir
-Before doing any operations,
-.Xr chroot 2
-to the
-.Ar chrootdir
-directory so that all package files, and the package database, are
-installed to
-.Ar chrootdir .
-Note that
-.Ar chrootdir
-needs to be a fairly complete file system, including everything normally
-needed by
-.Nm
-to run.
-This flag was added to help support operations done by
-.Xr sysinstall 8
-and is not expected to be useful for much else.
-Be careful that
-.Ar chrootdir
-is properly configured and cannot be modified by normal users,
-versions of commands like
-.Xr fetch 1
-may be run inside
-.Ar chrootdir
-as a side effect.
-.El
.Pp
One or more
.Ar pkg-name
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 09:44:44 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 70DBC1065675; Sun, 11 Apr 2010 09:44: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 35046106564A
for ; Sun, 11 Apr 2010 09:44:44 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 205198FC19
for ; Sun, 11 Apr 2010 09:44:44 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3B9iiZU014931
for ; Sun, 11 Apr 2010 09:44:44 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3B9ih4Y014929
for perforce@freebsd.org; Sun, 11 Apr 2010 09:44:43 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 09:44:43 GMT
Message-Id: <201004110944.o3B9ih4Y014929@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176778 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, 11 Apr 2010 09:44:44 -0000
http://p4web.freebsd.org/@@176778?ac=10
Change 176778 by gcooper@gcooper-bayonetta on 2010/04/11 09:43:48
Commit modified copy of bapt's patch to enable archive(3) support with pkg_install in unpack. Need to test.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/Makefile#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/create/Makefile#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/delete/Makefile#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/info/Makefile#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/Makefile#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#6 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/updating/Makefile#2 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/version/Makefile#2 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/Makefile#2 (text+ko) ====
@@ -8,7 +8,7 @@
WARNS?= 3
WFORMAT?= 1
-DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
-LDADD= ${LIBINSTALL} -lfetch -lmd
+DPADD= ${LIBINSTALL} ${LIBARCHIVE} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -larchive -lfetch -lmd
.include
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/create/Makefile#2 (text+ko) ====
@@ -8,7 +8,7 @@
WARNS?= 3
WFORMAT?= 1
-DPADD= ${LIBINSTALL} ${LIBMD}
-LDADD= ${LIBINSTALL} -lmd
+DPADD= ${LIBINSTALL} ${LIBARCHIVE} ${LIBMD}
+LDADD= ${LIBINSTALL} -larchive -lmd
.include
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/delete/Makefile#2 (text+ko) ====
@@ -7,7 +7,7 @@
WFORMAT?= 1
-DPADD= ${LIBINSTALL} ${LIBMD}
-LDADD= ${LIBINSTALL} -lmd
+DPADD= ${LIBINSTALL} ${LIBARCHIVE} ${LIBMD}
+LDADD= ${LIBINSTALL} -larchive -lmd
.include
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/info/Makefile#2 (text+ko) ====
@@ -7,7 +7,7 @@
WFORMAT?= 1
-DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
-LDADD= ${LIBINSTALL} -lfetch -lmd
+DPADD= ${LIBINSTALL} ${LIBARCHIVE} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -larchive -lfetch -lmd
.include
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/Makefile#2 (text+ko) ====
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#6 (text+ko) ====
@@ -22,7 +22,10 @@
__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/lib/file.c,v 1.70 2010/04/01 14:27:29 flz Exp $");
#include "lib.h"
+#include
+#include
#include
+#include
#include
#include
#include
@@ -334,37 +337,71 @@
}
}
+#define EXTRACT_ARCHIVE_FLAGS (ARCHIVE_EXTRACT_OWNER | ARCHIVE_EXTRACT_PERM | ARCHIVE_EXTRACT_TIME)
+
/* Unpack a tar file */
int
-unpack(const char *pkg, const char *flist)
+unpack(const char *pkg, const char *file_expr)
{
- const char *comp, *cp;
- char suff[80];
+ struct archive *archive;
+ struct archive_entry *archive_entry;
+ Boolean extract_whole_archive = FALSE;
+ const char *error = NULL;
+ const char *pkg_name_humanized;
+ int fn_ret = 0, r;
+
+ if (file_expr == NULL || strcmp("*", file_expr) == 0)
+ extract_whole_archive = TRUE;
+
+ pkg_name_humanized = strcmp(pkg, "-") == 0 ? "(stdin)" : pkg;
+
+ archive_read_support_compression_all(archive);
+ archive_read_support_format_tar(archive);
+
+ /* The initial open failed */
+ if (archive_read_open_filename(archive, pkg,
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) {
+
+ error = archive_error_string(archive);
+ warnx("%s: unable to open the package from %s: %s",
+ __func__, pkg_name_humanized, error);
- comp = "";
- /*
- * Figure out by a crude heuristic whether this or not this is probably
- * compressed and whichever compression utility was used (gzip or bzip2).
- */
- if (strcmp(pkg, "-")) {
- cp = strrchr(pkg, '.');
- if (cp) {
- strcpy(suff, cp + 1);
- if (strchr(suff, 'z') || strchr(suff, 'Z')) {
- if (strchr(suff, 'b'))
- comp = "-j";
- else
- comp = "-z";
- }
}
- }
- else
- comp = "-j";
- if (vsystem("/usr/bin/tar -xp %s -f '%s' %s", comp, pkg, flist ? flist : "")) {
- warnx("tar extract of %s failed!", pkg);
- return 1;
- }
- return 0;
+ else
+ while (error == NULL &&
+ (r = archive_read_next_header(archive, &archive_entry)) ==
+ ARCHIVE_OK) {
+
+ /* Let's extract the whole archive, or just a file. */
+ if (extract_whole_archive == TRUE ||
+ (fn_ret = fnmatch(file_expr,
+ archive_entry_pathname(archive_entry),
+ FNM_PATHNAME) == 0)) {
+
+ r = archive_read_extract(archive, archive_entry,
+ EXTRACT_ARCHIVE_FLAGS);
+ if (r != ARCHIVE_OK) {
+ error = archive_error_string(archive);
+ warnx("%s: extraction for %s failed: "
+ "%s", __func__, pkg_name_humanized,
+ error);
+ }
+
+ }
+
+ /*
+ * Else let's skip the entry because we still haven't
+ * found what we're looking for.
+ */
+ else if (fn_ret == FNM_NOMATCH)
+ archive_read_data_skip(archive);
+
+ }
+
+ archive_read_finish(archive);
+
+ return (error == NULL ? 0 : 1);
+
}
/*
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/updating/Makefile#2 (text+ko) ====
@@ -7,7 +7,7 @@
WFORMAT?= 1
-DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
-LDADD= ${LIBINSTALL} -lfetch -lmd
+DPADD= ${LIBINSTALL} ${LIBARCHIVE} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -larchive -lfetch -lmd
.include
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/version/Makefile#2 (text+ko) ====
@@ -7,8 +7,8 @@
WFORMAT?= 1
-DPADD= ${LIBINSTALL} ${LIBFETCH} ${LIBMD}
-LDADD= ${LIBINSTALL} -lfetch -lmd
+DPADD= ${LIBINSTALL} ${LIBARCHIVE} ${LIBFETCH} ${LIBMD}
+LDADD= ${LIBINSTALL} -larchive -lfetch -lmd
test:
sh ${.CURDIR}/test-pkg_version.sh
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 10:22:22 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 5D24C1065673; Sun, 11 Apr 2010 10:22:22 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id F24BD1065670
for ; Sun, 11 Apr 2010 10:22:21 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id DCC608FC12
for ; Sun, 11 Apr 2010 10:22:21 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BAMLR5018675
for ; Sun, 11 Apr 2010 10:22:21 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BAMLDF018673
for perforce@freebsd.org; Sun, 11 Apr 2010 10:22:21 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 10:22:21 GMT
Message-Id: <201004111022.o3BAMLDF018673@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176779 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, 11 Apr 2010 10:22:22 -0000
http://p4web.freebsd.org/@@176779?ac=10
Change 176779 by gcooper@gcooper-bayonetta on 2010/04/11 10:21:45
Checkpoint testplan.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/testplan#2 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/testplan#2 (text+ko) ====
@@ -1,40 +1,145 @@
-REQUIREMENTS:
+Basic package installation.
+
+ Local package install:
+ - Type: Positive
+ - Setup: Create basic package (no special metadata in package list).
+ - Test: Install predefined package.
+ - PF Criteria: The contents of the package must be installed in the
+ defined prefix and the permissions and the mode must match the
+ created package.
+
+ Remote package install (FTP, absolute):
+ - Type: Positive
+ - Setup: Create basic package (no special metadata in package list).
+ Host said package on ftp server.
+ - Test: Install predefined package via fully qualified URI.
+ - PF Criteria: The package must be fetched. The contents of the
+ package must be installed in the defined prefix and the permissions
+ and the mode must match the created package. The package will be
+ deleted after the installation is complete.
+
+ Remote package install (HTTP, absolute):
+ - Type: Positive
+ - Setup: Create basic package (no special metadata in package list).
+ Host said package on webserver.
+ - Test: Install predefined package via fully qualified URI.
+ - PF Criteria: The package must be fetched. The contents of the
+ package must be installed in the defined prefix and the permissions
+ and the mode must match the created package. The package will be
+ deleted after the installation is complete.
+
+ Remote package install (FTP, package name):
+ - Type: Positive
+ - Setup: Create basic package (no special metadata in package list).
+ Host said package on webserver.
+ - Test: Install predefined package.
+ - PF Criteria: The package must be fetched. The contents of the
+ package must be installed in the defined prefix and the permissions
+ and the mode must match the created package. The package will be
+ deleted after the installation is complete.
+
+ Remote package install (HTTP, package name):
+ - Type: Positive
+ - Setup: Create basic package (no special metadata in package list).
+ Host said package on webserver.
+ - Test: Install predefined package.
+ - PF Criteria: The package must be fetched. The contents of the
+ package must be installed in the defined prefix and the permissions
+ and the mode must match the created package. The package will be
+ deleted after the installation is complete.
+
+ Remote package install (pre-existing package):
+ - Type: Positive
+ - Setup: Create basic package (no special metadata in package list).
+ - Test: Install pre-existing package.
+ - PF Criteria: The package will not be fetched. The contents of the
+ package must be installed in the defined prefix and the permissions
+ and the mode must match the created package. The package will be
+ deleted after the installation is complete.
+
+ Remote package install (lacking space):
+ - Type: Negative
+ - Setup: Create a large package (or a small memory disk).
+ - Test: Attempt to install package.
+ - PF Criteria: The package will be partially fetched and fail. Thus,
+ the installation will fail as well. The package will be deleted.
+
+ Remote package install (unsupported URI scheme):
+ - Type: Negative
+ - Setup: n/a
+ - Test: Attempt to install package via non-fetch(3) supported URI
+ (say, gopher:// ?) scheme.
+ - PF Criteria: The package fetch will fail and the install will fail
+ with the utility claiming that the URI isn't supported, or something
+ of the like.
+
+ Already Installed package:
+ - Type: Negative
+ - Setup: Install a package.
+ - Test: Attempt to reinstall package.
+ - PF Criteria: The package will not be installed.
+
+ Already Installed package:
+ - Type: Positive
+ - Setup: Install a package.
+ - Test: Attempt to reinstall package with force option.
+ - PF Criteria: The package will be installed.
+
+ Local package install (package missing metadata):
+ - Type: Negative
+ - Setup: Create tarball missing required pieces (+CONTENTS, etc).
+ - Test: Attempt to install predefined package.
+ - PF Criteria: The payload contained in the package will not be
+ installed as the metadata is missing.
+
+ Missing package:
+ - Type: Negative
+ - Setup: n/a
+ - Test: Attempt to install a non-existent package.
+ - PF Criteria: The installation will fail.
+
+ Missing dependency:
+ - Type: Negative
+ - Setup: Create package A, dependent on missing package B
+ - Test: Attempt to install package A.
+ - PF Criteria: The installation will fail because of the unfulfilled
+ dependency requirement via package B.
-Package List
- - Packaging metadata is specified by a package list. It will contain
- all of the details that at first glance describe a package, such as
- what the payload will be and the properties of the payloads
- contents (ownership, mode). Other pieces describing the install
- process will exist outside of the package manifest.
+ Conflicting package:
+ - Type: Negative
+ - Setup: Create package A and package B, s.t. package A conflicts with
+ package B.
+ - Test: Install package B. Attempt to install package A.
+ - PF Criteria: package B will successfully install, but package A will
+ be rejected due to the conflict between package A and package B
+ noted in package A.
-Installing packages (basic end-to-end) flow.
- - Packaging metadata is specified by a package list, as far as what
- the payload will be, and the properties of the payloads contents, as
- well as certain actions that will be acted upon at install time and
- removal time.
- - All packages will install the appropriate files with the appropriate
- permissions and ownership.
- - If the package contains a pre-install script, it will be run prior to
- the install.
- - If the package contains a post-install script, it will be run after
- the install.
- - If the package is malformed, does not exist, or is incomplete, i.e.
- i. missing metadata.
- ii. has an incomplete or improperly specified packing list.
- iii. is a corrupt archive.
- iv. does not match the package checksum recorded .
- it will not be installed.
+Tertiary functionality
-Tertiary functionality:
+ Keep remote package...
+ - Precondition: the specified package has a valid libfetch supported
+ URI (ftp://, http://), or a package origin / basename is specified
+ with remote fetch requested.
-Fetching remote packages:
+ ... package exists:
+ - Setup: Create basic package (no special metadata in package list).
+ Host said package on webserver.
+ - Test: Install package; request that it be retained after the install.
+ - PF Criteria: package will be installed; package will be retained
+ after installation is complete.
- If the specified package has a valid libfetch supported URI (ftp://,
- http://), or a package origin / basename is specified with remote fetch
- requested, then the package will be fetched remotely.
+ ... missing package on remote endpoint:
+ - Setup: n/a
+ - Test: Install package from non-existent URI.
+ - PF Criteria: package will not be installed; package will not exist
+ on the disk.
- - If the package exists, it will be installed as dictated above.
- - If the package doesn't exist or is installed, it .
+ ... unsupported URI scheme:
+ - Type: Negative
+ - Setup: n/a
+ - Test: Attempt to install package via non-fetch(3) supported URI
+ (say, gopher:// ?) scheme.
+ - PF Criteria: The package fetch will fail and the install will fail
+ with the utility claiming that the URI isn't supported, or something
+ of the like. Package will not exist on the disk.
- Keep package:
- - If the package
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 11:25:35 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 53C6D1065670; Sun, 11 Apr 2010 11:25:35 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 186DA106566B
for ; Sun, 11 Apr 2010 11:25:35 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id DE4F48FC18
for ; Sun, 11 Apr 2010 11:25:34 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BBPY9e024365
for ; Sun, 11 Apr 2010 11:25:34 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BBPYN8024362
for perforce@freebsd.org; Sun, 11 Apr 2010 11:25:34 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 11:25:34 GMT
Message-Id: <201004111125.o3BBPYN8024362@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176786 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, 11 Apr 2010 11:25:35 -0000
http://p4web.freebsd.org/@@176786?ac=10
Change 176786 by gcooper@gcooper-bayonetta on 2010/04/11 11:24:37
Checkpoint one more time for tonight.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/testplan#3 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/tools/regression/usr.sbin/pkg_install/add/testplan#3 (text+ko) ====
@@ -114,8 +114,41 @@
be rejected due to the conflict between package A and package B
noted in package A.
+ Incomplete payload:
+ - Type: Negative
+ - Setup: Create package, but modify +CONTENTS to add more entries than
+ are actually present in the package.
+ - Test: Attempt to install package.
+ - PF Criteria: package will fail to install because of missing payload
+ entries. All of the files staged or installed will be rolled back.
+
+ Corrupt payload:
+ - Type: Negative
+ - Setup: Create package. Flip some bits in one of the files,
+ effectively changing the unique signature. Repackage.
+ - Test: Attempt to install package.
+ - PF Criteria: package will fail to install because of a checksum
+ mismatch. All of the files staged or installed will be rolled back.
+
Tertiary functionality
+ Install into prefix...
+ - Precondition: the user must request that the package be installed in
+ a non-standard location.
+
+ ... package exists:
+ - Setup: Create package which would install in /usr/local by default.
+ Create a directory called /tmp/package .
+ - Test: Install package in /tmp/package .
+ - PF Criteria: package contents will be installed in a path rooted at
+ /tmp/package
+
+ ... non-existent prefix:
+ - Setup: Create package which would install in /usr/local by default.
+ - Test: Attempt to install package in /i/dont/exist .
+ - PF Criteria: package will fail to install because /i/dont/exist
+ doesn't exist :).
+
Keep remote package...
- Precondition: the specified package has a valid libfetch supported
URI (ftp://, http://), or a package origin / basename is specified
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 18:05:24 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 1E8F31065678; Sun, 11 Apr 2010 18:05:24 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id C95EA106566C
for ; Sun, 11 Apr 2010 18:05:23 +0000 (UTC)
(envelope-from rene@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id B56558FC1B
for ; Sun, 11 Apr 2010 18:05:23 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BI5NZc082454
for ; Sun, 11 Apr 2010 18:05:23 GMT
(envelope-from rene@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BI5Nit082452
for perforce@freebsd.org; Sun, 11 Apr 2010 18:05:23 GMT
(envelope-from rene@FreeBSD.org)
Date: Sun, 11 Apr 2010 18:05:23 GMT
Message-Id: <201004111805.o3BI5Nit082452@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
rene@FreeBSD.org using -f
From: Rene Ladan
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176805 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, 11 Apr 2010 18:05:24 -0000
http://p4web.freebsd.org/@@176805?ac=10
Change 176805 by rene@rene_eee on 2010/04/11 18:05:02
IFC
Affected files ...
.. //depot/projects/docproj_nl/share/sgml/mirrors.xml#15 integrate
.. //depot/projects/docproj_nl/www/en/administration.sgml#13 integrate
.. //depot/projects/docproj_nl/www/en/developers.sgml#33 integrate
.. //depot/projects/docproj_nl/www/en/donations/donors.sgml#29 integrate
.. //depot/projects/docproj_nl/www/en/portmgr/index.sgml#2 integrate
.. //depot/projects/docproj_nl/www/en/projects/ideas/ideas.xml#11 integrate
.. //depot/projects/docproj_nl/www/en/projects/summerofcode-2008.sgml#3 integrate
.. //depot/projects/docproj_nl/www/en/projects/summerofcode.xsl#6 integrate
.. //depot/projects/docproj_nl/www/share/sgml/libcommon.xsl#8 integrate
.. //depot/projects/docproj_nl/www/share/sgml/news.xml#74 integrate
Differences ...
==== //depot/projects/docproj_nl/share/sgml/mirrors.xml#15 (text+ko) ====
@@ -2,7 +2,7 @@
- $FreeBSD: doc/share/sgml/mirrors.xml,v 1.106 2010/03/21 21:12:37 pav Exp $
+ $FreeBSD: doc/share/sgml/mirrors.xml,v 1.107 2010/04/08 21:00:28 pgj Exp $
@@ -1789,7 +1789,7 @@
- cvsup3.se.FreeBSD.org
+ cvsup2.se.FreeBSD.org
hostmaster@se.FreeBSD.org
==== //depot/projects/docproj_nl/www/en/administration.sgml#13 (text+ko) ====
@@ -1,5 +1,5 @@
+
%developers;
@@ -429,6 +429,7 @@
machines should be directed to the cluster administrators.
+ &a.brd; <brd@FreeBSD.org >
&a.billf; <billf@FreeBSD.org >
&a.simon; <simon@FreeBSD.org >
&a.ps; <ps@FreeBSD.org >
==== //depot/projects/docproj_nl/www/en/developers.sgml#33 (text+ko) ====
@@ -6,7 +6,7 @@
us to update author names, or the representation of those names (such
as adding email addresses), by just editing a single file.
-$FreeBSD: www/en/developers.sgml,v 1.244 2010/04/05 17:13:23 jacula Exp $
+$FreeBSD: www/en/developers.sgml,v 1.246 2010/04/11 17:19:14 sahil Exp $
-->
@@ -487,6 +487,7 @@
+
@@ -609,7 +610,6 @@
-
==== //depot/projects/docproj_nl/www/en/donations/donors.sgml#29 (text+ko) ====
@@ -1,6 +1,6 @@
-
+
%developers;
@@ -2715,6 +2715,12 @@
Received
+
+ Raymond Vetter
+ Sun Ultra 5
+ gahr
+ Received
+
==== //depot/projects/docproj_nl/www/en/portmgr/index.sgml#2 (text+ko) ====
@@ -1,6 +1,6 @@
-
+
@@ -51,7 +51,7 @@
portmgr@FreeBSD.org :
&a.portmgr;
-Secretary: &a.erwin; (Secretary: &a.tabthorpe; ( portmgr-secretary@FreeBSD.org )
Resources Of Interest To FreeBSD Contributors and Developers
==== //depot/projects/docproj_nl/www/en/projects/ideas/ideas.xml#11 (text+ko) ====
@@ -15,7 +15,7 @@
- $FreeBSD: www/en/projects/ideas/ideas.xml,v 1.162 2010/04/02 09:28:32 pav Exp $
+ $FreeBSD: www/en/projects/ideas/ideas.xml,v 1.164 2010/04/09 20:05:38 jkois Exp $
@@ -205,6 +205,16 @@
+
+ Port Darwin's NTFS implementation
+
+
+ The Kernel
+ part of NTFS implementation on Mac OS X is dual licensed under both a
+ 3-clause BSD and GPL license, and supports writing.
+
+
+
Port NetBSD's UDF implementation
@@ -1958,7 +1968,7 @@
Technical info: : on J.R. Oldroyd's
- Unicode Support on
+ Unicode Support on
FreeBSD page
Many base system utilities grew multibyte support in 2004. It would be
nice to continue this trend by teaching vi(1) to display and edit
==== //depot/projects/docproj_nl/www/en/projects/summerofcode-2008.sgml#3 (text+ko) ====
@@ -1,6 +1,6 @@
-
+
%developers;
@@ -43,7 +43,7 @@
MPLS is a networking protocol used for routing information
quickly and efficiently. It is used extensively in the
internet's backbone networks. Over the course of the program,
- code has been ported to FreeBSD from the OpendBSD/NetBSD
+ code has been ported to FreeBSD from the OpenBSD/NetBSD
operating systems. Basic functionality of sending and receiving
packets was the main goal of the project, but unfortunately this
was not acheived. It is very close to having this functionality,
==== //depot/projects/docproj_nl/www/en/projects/summerofcode.xsl#6 (text+ko) ====
@@ -7,7 +7,7 @@
%developers;
]>
-
+
@@ -95,6 +95,8 @@
For a complete list of student projects from previous years,
visit:
- For FreeBSD Security Advisories, please refer to the
- Security Information page.
+ For FreeBSD security information and a list of available
+ Security Advisories, please refer to the
+ Security Information page.
==== //depot/projects/docproj_nl/www/share/sgml/news.xml#74 (text+ko) ====
@@ -25,7 +25,7 @@
- $FreeBSD: www/share/sgml/news.xml,v 1.308 2010/04/05 17:13:23 jacula Exp $
+ $FreeBSD: www/share/sgml/news.xml,v 1.309 2010/04/11 17:19:14 sahil Exp $
@@ -36,6 +36,15 @@
4
+ 11
+
+
+ New committer: Sahil Tandon (ports)
+
+
+
+
+
5
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 18:16:35 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id B313F1065670; Sun, 11 Apr 2010 18:16:35 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 5E889106566B
for ; Sun, 11 Apr 2010 18:16:35 +0000 (UTC)
(envelope-from rene@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 4BD818FC0C
for ; Sun, 11 Apr 2010 18:16:35 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BIGZsG083328
for ; Sun, 11 Apr 2010 18:16:35 GMT
(envelope-from rene@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BIGZdn083326
for perforce@freebsd.org; Sun, 11 Apr 2010 18:16:35 GMT
(envelope-from rene@FreeBSD.org)
Date: Sun, 11 Apr 2010 18:16:35 GMT
Message-Id: <201004111816.o3BIGZdn083326@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
rene@FreeBSD.org using -f
From: Rene Ladan
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176807 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, 11 Apr 2010 18:16:35 -0000
http://p4web.freebsd.org/@@176807?ac=10
Change 176807 by rene@rene_eee on 2010/04/11 18:16:28
[website]
MFen share/sgml/libcommon.sgml 1.30 -> 1.31
Affected files ...
.. //depot/projects/docproj_nl/www/nl/share/sgml/libcommon.xsl#13 edit
Differences ...
==== //depot/projects/docproj_nl/www/nl/share/sgml/libcommon.xsl#13 (text+ko) ====
@@ -3,19 +3,19 @@
"http://www.FreeBSD.org/XML/www/share/sgml/xslt10-freebsd.dtd">
+ select="'%Y-%M-%D'" />
+ select="'%Y %M'" />
+ select="'%D %M'" />
+ select="'%W, %D %m %Y 00:00:00 CET'" />
De wijdverbreide populariteit van &os; heeft tot een aantal
@@ -103,13 +103,14 @@
GNOME op &os;
- Zie voor een gedetailleerde beschrijving van vroegere, huidige en
- toekomstige uitgaven de pagina Uitgave-informatie .
+ Een gedetailleerde beschrijving van vroegere, huidige en toekomstige
+ uitgaven staat op de pagina Uitgave-informatie .
Bekijk alstublieft de pagina Beveiligingsinformatie voor
- beveiligingsadviezen voor &os;.
+ href="&enbase;/security/">Beveiligingsinformatie voor
+ beveiligingsinformatie voor &os; en een lijst van beschikbare
+ Beveiligingsadviezen.
@@ -245,7 +246,7 @@
generate title for the security advisories rdf -->
+ xmlns="http://my.netscape.com/rdf/simple/0.9/">
&os; beveiligingsadviezen
http://www.FreeBSD.org/security/
@@ -257,7 +258,7 @@
pulls in the 10 most recent security advisories -->
+ xmlns:atom="http://www.w3.org/2005/Atom">
&os; beveiligingsadviezen
@@ -287,7 +288,7 @@
pulls in the 10 most recent errata notices -->
+ xmlns:atom="http://www.w3.org/2005/Atom">
&os; erratamededelingen
@@ -328,8 +329,8 @@
+ (not(country/@role) or country/@role != 'primary') and
+ host[@type = 'www']/url[@proto = 'httpv6']]">
@@ -348,8 +349,8 @@
+ (not(country/@role) or country/@role != 'primary') and
+ host[@type = 'www']/url[@proto = 'http']]">
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 18:45:04 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 68CF51065679; Sun, 11 Apr 2010 18:45: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 2D8401065676
for ; Sun, 11 Apr 2010 18:45:04 +0000 (UTC)
(envelope-from rene@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 04D888FC15
for ; Sun, 11 Apr 2010 18:45:04 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BIj3ib085527
for ; Sun, 11 Apr 2010 18:45:03 GMT
(envelope-from rene@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BIj3Kh085525
for perforce@freebsd.org; Sun, 11 Apr 2010 18:45:03 GMT
(envelope-from rene@FreeBSD.org)
Date: Sun, 11 Apr 2010 18:45:03 GMT
Message-Id: <201004111845.o3BIj3Kh085525@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
rene@FreeBSD.org using -f
From: Rene Ladan
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176809 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, 11 Apr 2010 18:45:04 -0000
http://p4web.freebsd.org/@@176809?ac=10
Change 176809 by rene@rene_eee on 2010/04/11 18:44:17
Announce my ports commit bit
MFP4 after: approval from tabthorpe (mentor)
Affected files ...
.. //depot/projects/docproj_nl/www/share/sgml/news.xml#75 edit
Differences ...
==== //depot/projects/docproj_nl/www/share/sgml/news.xml#75 (text+ko) ====
@@ -38,6 +38,12 @@
11
+
+ Enhanced commit privileges: René Ladan
+ (doc-nl, ports)
+
+
New committer: Sahil Tandon (ports)
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 20:57:17 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id B38CA1065672; Sun, 11 Apr 2010 20:57:17 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 781F8106564A
for ; Sun, 11 Apr 2010 20:57:17 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 2F7DC8FC15
for ; Sun, 11 Apr 2010 20:57:17 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BKvH2T007860
for ; Sun, 11 Apr 2010 20:57:17 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BKvH02007856
for perforce@freebsd.org; Sun, 11 Apr 2010 20:57:17 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 20:57:17 GMT
Message-Id: <201004112057.o3BKvH02007856@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176817 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, 11 Apr 2010 20:57:18 -0000
http://p4web.freebsd.org/@@176817?ac=10
Change 176817 by gcooper@gcooper-bayonetta on 2010/04/11 20:57:00
Simplify code a bit.
- archive_read_data_skip call is unneeded because we're doing an in-order
traversal of the archive anyhow.
- Thus, there's no reason why we should save the value of fnmatch(3) because
we're not reusing it anywhere else.
- Fix indentation on multiline branch statement.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#7 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#7 (text+ko) ====
@@ -348,7 +348,7 @@
Boolean extract_whole_archive = FALSE;
const char *error = NULL;
const char *pkg_name_humanized;
- int fn_ret = 0, r;
+ int r;
if (file_expr == NULL || strcmp("*", file_expr) == 0)
extract_whole_archive = TRUE;
@@ -374,8 +374,8 @@
/* Let's extract the whole archive, or just a file. */
if (extract_whole_archive == TRUE ||
- (fn_ret = fnmatch(file_expr,
- archive_entry_pathname(archive_entry),
+ (fnmatch(file_expr,
+ archive_entry_pathname(archive_entry),
FNM_PATHNAME) == 0)) {
r = archive_read_extract(archive, archive_entry,
@@ -389,13 +389,6 @@
}
- /*
- * Else let's skip the entry because we still haven't
- * found what we're looking for.
- */
- else if (fn_ret == FNM_NOMATCH)
- archive_read_data_skip(archive);
-
}
archive_read_finish(archive);
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 21:06:27 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id D84E11065670; Sun, 11 Apr 2010 21:06: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 84DB0106564A
for ; Sun, 11 Apr 2010 21:06:26 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 725EF8FC16
for ; Sun, 11 Apr 2010 21:06:26 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BL6QOh009600
for ; Sun, 11 Apr 2010 21:06:26 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BL6QQ3009598
for perforce@freebsd.org; Sun, 11 Apr 2010 21:06:26 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 21:06:26 GMT
Message-Id: <201004112106.o3BL6QQ3009598@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176818 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, 11 Apr 2010 21:06:27 -0000
http://p4web.freebsd.org/@@176818?ac=10
Change 176818 by gcooper@gcooper-bayonetta on 2010/04/11 21:06:17
We're no longer calling tar(1) from unpack on the command line, so there's no reason why the glob should be quoted.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/info/perform.c#2 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/info/perform.c#2 (text+ko) ====
@@ -137,7 +137,7 @@
goto bail;
}
make_playpen(PlayPen, sb.st_size / 2);
- if (unpack(fname, "'+*'")) {
+ if (unpack(fname, "+*")) {
warnx("error during unpacking, no info for '%s' available", pkg);
code = 1;
goto bail;
From owner-p4-projects@FreeBSD.ORG Sun Apr 11 21:25:46 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 354701065672; Sun, 11 Apr 2010 21:25:46 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id EE17B106564A
for ; Sun, 11 Apr 2010 21:25:45 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id DB6238FC1D
for ; Sun, 11 Apr 2010 21:25:45 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3BLPjig011080
for ; Sun, 11 Apr 2010 21:25:45 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3BLPj7S011078
for perforce@freebsd.org; Sun, 11 Apr 2010 21:25:45 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Sun, 11 Apr 2010 21:25:45 GMT
Message-Id: <201004112125.o3BLPj7S011078@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176819 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, 11 Apr 2010 21:25:46 -0000
http://p4web.freebsd.org/@@176819?ac=10
Change 176819 by gcooper@gcooper-bayonetta on 2010/04/11 21:24:55
tar -p also preserves ACLS, fflags, and xattrs; add the appropriate options to the archive(3) call.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#8 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#8 (text+ko) ====
@@ -337,7 +337,9 @@
}
}
-#define EXTRACT_ARCHIVE_FLAGS (ARCHIVE_EXTRACT_OWNER | ARCHIVE_EXTRACT_PERM | ARCHIVE_EXTRACT_TIME)
+#define EXTRACT_ARCHIVE_FLAGS (ARCHIVE_EXTRACT_OWNER |ARCHIVE_EXTRACT_PERM| \
+ ARCHIVE_EXTRACT_TIME |ARCHIVE_EXTRACT_ACL | \
+ ARCHIVE_EXTRACT_FFLAGS|ARCHIVE_EXTRACT_XATTR)
/* Unpack a tar file */
int
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 09:54:16 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id D52F91065673; Mon, 12 Apr 2010 09:54: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 99FC0106564A
for ; Mon, 12 Apr 2010 09:54:15 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 6CEDC8FC0C
for ; Mon, 12 Apr 2010 09:54:15 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3C9sFjb014871
for ; Mon, 12 Apr 2010 09:54:15 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3C9sFnl014869
for perforce@freebsd.org; Mon, 12 Apr 2010 09:54:15 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Mon, 12 Apr 2010 09:54:15 GMT
Message-Id: <201004120954.o3C9sFnl014869@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176827 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, 12 Apr 2010 09:54:16 -0000
http://p4web.freebsd.org/@@176827?ac=10
Change 176827 by gcooper@gcooper-bayonetta on 2010/04/12 09:53:17
Fix two bugs and add debug code in unpack.
1. Forgot to add archive_read(3).
2. Didn't delete leftover arguments from previous tar(1) invocation.
3. Add psuedo-tar(1)-like printouts for determining what was extracted (X) and what was skipped (S).
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#4 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#9 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#4 (text+ko) ====
@@ -63,7 +63,6 @@
Package Plist;
char pkg_fullname[FILENAME_MAX];
char playpen[FILENAME_MAX];
- char extract_contents[FILENAME_MAX];
char *extract;
const char *where_to;
FILE *cfile;
@@ -129,8 +128,7 @@
warnx("can't stat package file '%s'", pkg_fullname);
goto bomb;
}
- sprintf(extract_contents, "--fast-read %s", CONTENTS_FNAME);
- extract = extract_contents;
+ extract = CONTENTS_FNAME;
}
else {
extract = NULL;
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#9 (text+ko) ====
@@ -355,8 +355,17 @@
if (file_expr == NULL || strcmp("*", file_expr) == 0)
extract_whole_archive = TRUE;
+ if (Verbose) {
+ if (extract_whole_archive)
+ printf("%s: will extract whole archive\n", __func__);
+ else
+ printf("%s: will extract files that match: %s\n",
+ __func__, file_expr);
+ }
+
pkg_name_humanized = strcmp(pkg, "-") == 0 ? "(stdin)" : pkg;
+ archive = archive_read_new();
archive_read_support_compression_all(archive);
archive_read_support_format_tar(archive);
@@ -388,7 +397,14 @@
"%s", __func__, pkg_name_humanized,
error);
}
+ if (Verbose) {
+ printf("X - %s\n",
+ archive_entry_pathname(archive_entry));
+ }
+ } else if (Verbose) {
+ printf("S - %s\n",
+ archive_entry_pathname(archive_entry));
}
}
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 10:26:48 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 91DC3106568F; Mon, 12 Apr 2010 10:26: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 3D94D1065687
for ; Mon, 12 Apr 2010 10:26:48 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 2A8F18FC2D
for ; Mon, 12 Apr 2010 10:26:48 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CAQm0B018256
for ; Mon, 12 Apr 2010 10:26:48 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3CAQliR018254
for perforce@freebsd.org; Mon, 12 Apr 2010 10:26:47 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Mon, 12 Apr 2010 10:26:47 GMT
Message-Id: <201004121026.o3CAQliR018254@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176828 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, 12 Apr 2010 10:26:48 -0000
http://p4web.freebsd.org/@@176828?ac=10
Change 176828 by gcooper@gcooper-bayonetta on 2010/04/12 10:26:28
Convert fetch(3) call over to piped read via unpack and fix potential bug in interrupted or HUPed call during unpack where the file wasn't being deleted in the event of a failure. More signals need to be added to the signal handler.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#10 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/url.c#4 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#10 (text+ko) ====
@@ -363,7 +363,10 @@
__func__, file_expr);
}
- pkg_name_humanized = strcmp(pkg, "-") == 0 ? "(stdin)" : pkg;
+ if (pkg == NULL || strcmp(pkg, "-") == 0)
+ pkg_name_humanized = "(stdin)";
+ else
+ pkg_name_humanized = pkg;
archive = archive_read_new();
archive_read_support_compression_all(archive);
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/url.c#4 (text+ko) ====
@@ -22,11 +22,21 @@
__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/lib/url.c,v 1.13 2010/04/01 14:27:29 flz Exp $");
#include "lib.h"
+#include
#include
#include
#include
-#include
#include
+#include
+
+static char pkg[FILENAME_MAX];
+
+static void
+fetch_cleanup(int sig)
+{
+ unlink(pkg);
+ cleanup(sig);
+}
/*
* Try and fetch a file by URL, returning the directory name for where
@@ -39,7 +49,6 @@
char *cp, *tmp;
char fname[FILENAME_MAX];
char pen[FILENAME_MAX];
- char pkg[FILENAME_MAX];
char buf[8192];
FILE *ftp;
pid_t tpid;
@@ -128,31 +137,40 @@
cleanup(0);
exit(2);
}
- if ((tpid = fork()) == -1) {
- warn("pipe()");
+ switch((tpid = fork())) {
+ case -1:
+ warn("fork() failed");
cleanup(0);
- exit(2);
- }
- if (!tpid) {
+ exit(EXIT_FAILURE);
+ break;
+ case 0:
+ /* Let the parent deal with the signals. */
+ signal(SIGHUP, SIG_DFL);
+ signal(SIGINT, SIG_DFL);
dup2(pfd[0], 0);
for (fd = getdtablesize() - 1; fd >= 3; --fd)
- close(fd);
- execl("/usr/bin/tar", "tar",
- Verbose ? "-xpjvf" : "-xpjf",
- "-", (char *)0);
- _exit(2);
- }
- close(pfd[0]);
- for (;;) {
- if ((r = fread(buf, 1, sizeof buf, ftp)) < 1)
- break;
- if ((w = write(pfd[1], buf, r)) != r)
- break;
- if (keep_package) {
- if ((w = write(pkgfd, buf, r)) != r)
+ close(fd);
+ _exit(unpack(NULL, NULL));
+ break;
+ default:
+ signal(SIGHUP, fetch_cleanup);
+ signal(SIGINT, fetch_cleanup);
+ close(pfd[0]);
+ for (;;) {
+ if ((r = fread(buf, 1, sizeof(buf), ftp)) < 1)
+ break;
+ if ((w = write(pfd[1], buf, r)) != r)
break;
- }
+ if (keep_package) {
+ if ((w = write(pkgfd, buf, r)) != r)
+ break;
+ }
+
+ }
+ signal(SIGHUP, cleanup);
+ signal(SIGINT, cleanup);
}
+
if (ferror(ftp))
warn("warning: error reading from server");
fclose(ftp);
@@ -164,7 +182,7 @@
warn("warning: error writing to tar");
tpid = waitpid(tpid, &pstat, 0);
if (Verbose)
- printf("tar command returns %d status\n", WEXITSTATUS(pstat));
+ printf("unpack returned status: %d\n", WEXITSTATUS(pstat));
if (rp && (isatty(0) || Verbose))
printf(" Done.\n");
return rp;
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 11:18:40 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id AF4B31065672; Mon, 12 Apr 2010 11:18: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 73488106566B
for ; Mon, 12 Apr 2010 11:18:40 +0000 (UTC)
(envelope-from zec@fer.hr)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 5F9028FC14
for ; Mon, 12 Apr 2010 11:18:40 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CBIeY2022952
for ; Mon, 12 Apr 2010 11:18:40 GMT
(envelope-from zec@fer.hr)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3CBIdZs022950
for perforce@freebsd.org; Mon, 12 Apr 2010 11:18:39 GMT
(envelope-from zec@fer.hr)
Date: Mon, 12 Apr 2010 11:18:39 GMT
Message-Id: <201004121118.o3CBIdZs022950@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
zec@fer.hr using -f
From: Marko Zec
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176829 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, 12 Apr 2010 11:18:40 -0000
http://p4web.freebsd.org/@@176829?ac=10
Change 176829 by zec@zec_tpx32 on 2010/04/12 11:18:05
Remove a crude hack which once upon the time allowed one to
directly connect a bpf tap to an ifnet in a remote vnet, but
which stopped working a year ago due to some strange locking
issues related to jail-vnet integration.
This was never intended to be commited to head, and a patch
has been commited to IMUNES which alows us to run wireshark
in a remote vnet without this crap, so there's no point in
keeping this dead code here any longer.
Moreover, back out now obsolete V_irtualization patches
for dummynet that anchie@ originally started developing back
in September, but which were never fully completed, and which
now collide with the new version of dummynet in the main tree.
Affected files ...
.. //depot/projects/vimage/src/sys/net/bpf.c#45 edit
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dummynet.c#6 edit
Differences ...
==== //depot/projects/vimage/src/sys/net/bpf.c#45 (text+ko) ====
@@ -35,7 +35,7 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/net/bpf.c,v 1.219 2010/02/20 00:19:21 jkim Exp $");
+__FBSDID("$FreeBSD: head/sys/net/bpf.c 205858 2010-03-29 20:24:03Z jkim $");
#include "opt_bpf.h"
#include "opt_netgraph.h"
@@ -44,7 +44,6 @@
#include
#include
#include
-#include
#include
#include
#include
@@ -615,6 +614,7 @@
mac_bpfdesc_destroy(d);
#endif /* MAC */
knlist_destroy(&d->bd_sel.si_note);
+ callout_drain(&d->bd_callout);
bpf_freed(d);
free(d, M_BPF);
}
@@ -652,7 +652,7 @@
mac_bpfdesc_create(td->td_ucred, d);
#endif
mtx_init(&d->bd_mtx, devtoname(dev), "bpf cdev lock", MTX_DEF);
- callout_init(&d->bd_callout, CALLOUT_MPSAFE);
+ callout_init_mtx(&d->bd_callout, &d->bd_mtx, 0);
knlist_init_mtx(&d->bd_sel.si_note, &d->bd_mtx);
return (0);
@@ -808,13 +808,15 @@
{
struct bpf_d *d = (struct bpf_d *)arg;
- BPFD_LOCK(d);
+ BPFD_LOCK_ASSERT(d);
+
+ if (callout_pending(&d->bd_callout) || !callout_active(&d->bd_callout))
+ return;
if (d->bd_state == BPF_WAITING) {
d->bd_state = BPF_TIMED_OUT;
if (d->bd_slen != 0)
bpf_wakeup(d);
}
- BPFD_UNLOCK(d);
}
static int
@@ -1448,34 +1450,9 @@
struct bpf_if *bp;
struct ifnet *theywant;
-#define XVNET_BPF_SNOOPING
-#if defined(VIMAGE) && defined(XVNET_BPF_SNOOPING)
- struct vnet *target_vnet = curvnet;
- char *c;
-
- /* Attempt to attach to an ifnet in a foreign vnet, specified as @ */
- c = rindex(ifr->ifr_name, '@');
- if ( c != NULL ) {
- struct prison *target_pr;
-
- *c++ = 0;
- if (!isascii(*c) && !isdigit(*c))
- return ENXIO;
- target_pr = prison_find_name(curthread->td_ucred->cr_prison, c);
- if (target_pr == NULL)
- return ENXIO;
- target_vnet = target_pr->pr_vnet;
- }
- CURVNET_SET_QUIET(target_vnet);
-#endif
-
theywant = ifunit(ifr->ifr_name);
- if (theywant == NULL || theywant->if_bpf == NULL) {
-#if defined(VIMAGE) && defined(XVNET_BPF_SNOOPING)
- CURVNET_RESTORE();
-#endif
+ if (theywant == NULL || theywant->if_bpf == NULL)
return (ENXIO);
- }
bp = theywant->if_bpf;
@@ -1515,9 +1492,6 @@
BPFD_LOCK(d);
reset_d(d);
BPFD_UNLOCK(d);
-#if defined(VIMAGE) && defined(XVNET_BPF_SNOOPING)
- CURVNET_RESTORE();
-#endif
return (0);
}
@@ -1606,8 +1580,7 @@
kn->kn_data = d->bd_slen;
if (d->bd_hbuf)
kn->kn_data += d->bd_hlen;
- }
- else if (d->bd_rtout > 0 && d->bd_state == BPF_IDLE) {
+ } else if (d->bd_rtout > 0 && d->bd_state == BPF_IDLE) {
callout_reset(&d->bd_callout, d->bd_rtout,
bpf_timed_out, d);
d->bd_state = BPF_WAITING;
@@ -1894,13 +1867,14 @@
* free.
*/
bpf_free(d);
- if (d->bd_rfilter) {
+ if (d->bd_rfilter != NULL) {
free((caddr_t)d->bd_rfilter, M_BPF);
#ifdef BPF_JITTER
- bpf_destroy_jit_filter(d->bd_bfilter);
+ if (d->bd_bfilter != NULL)
+ bpf_destroy_jit_filter(d->bd_bfilter);
#endif
}
- if (d->bd_wfilter)
+ if (d->bd_wfilter != NULL)
free((caddr_t)d->bd_wfilter, M_BPF);
mtx_destroy(&d->bd_mtx);
}
==== //depot/projects/vimage/src/sys/netinet/ipfw/ip_dummynet.c#6 (text+ko) ====
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 1998-2002 Luigi Rizzo, Universita` di Pisa
+ * Copyright (c) 1998-2002,2010 Luigi Rizzo, Universita` di Pisa
* Portions Copyright (c) 2000 Akamba Corp.
* All rights reserved
*
@@ -26,36 +26,14 @@
*/
#include
-__FBSDID("$FreeBSD: src/sys/netinet/ipfw/ip_dummynet.c,v 1.5 2009/06/24 22:57:07 oleg Exp $");
+__FBSDID("$FreeBSD: head/sys/netinet/ipfw/ip_dummynet.c 206428 2010-04-09 18:02:19Z luigi $");
-#define DUMMYNET_DEBUG
+/*
+ * Configuration and internal object management for dummynet.
+ */
#include "opt_inet6.h"
-/*
- * This module implements IP dummynet, a bandwidth limiter/delay emulator
- * used in conjunction with the ipfw package.
- * Description of the data structures used is in ip_dummynet.h
- * Here you mainly find the following blocks of code:
- * + variable declarations;
- * + heap management functions;
- * + scheduler and dummynet functions;
- * + configuration and initialization.
- *
- * NOTA BENE: critical sections are protected by the "dummynet lock".
- *
- * Most important Changes:
- *
- * 011004: KLDable
- * 010124: Fixed WF2Q behaviour
- * 010122: Fixed spl protection.
- * 000601: WF2Q support
- * 000106: large rewrite, use heaps to handle very many pipes.
- * 980513: initial release
- *
- * include files marked with XXX are probably not needed
- */
-
#include
#include
#include
@@ -69,2258 +47,2147 @@
#include
#include
#include
-#include
#include
#include /* IFNAMSIZ, struct ifaddr, ifq head, lock.h mutex.h */
-#include
-#include
#include
-#include /* ip_len, ip_off */
+#include /* ip_output(), IP_FORWARDING */
#include
+#include
+#include
#include
-#include /* ip_output(), IP_FORWARDING */
+#include
+#include
-#include /* various ether_* routines */
+/* which objects to copy */
+#define DN_C_LINK 0x01
+#define DN_C_SCH 0x02
+#define DN_C_FLOW 0x04
+#define DN_C_FS 0x08
+#define DN_C_QUEUE 0x10
-#include /* for ip6_input, ip6_output prototypes */
-#include
+/* we use this argument in case of a schk_new */
+struct schk_new_arg {
+ struct dn_alg *fp;
+ struct dn_sch *sch;
+};
-/*
- * We keep a private variable for the simulation time, but we could
- * probably use an existing one ("softticks" in sys/kern/kern_timeout.c)
- */
-static VNET_DEFINE(dn_key, curr_time) = 0 ; /* current simulation time */
-#define V_curr_time VNET(curr_time)
+/*---- callout hooks. ----*/
+static struct callout dn_timeout;
+static struct task dn_task;
+static struct taskqueue *dn_tq = NULL;
-static VNET_DEFINE(int, dn_hash_size) = 64 ; /* default hash size */
-#define V_dn_hash_size VNET(dn_hash_size)
+static void
+dummynet(void * __unused unused)
+{
-/* statistics on number of queue searches and search steps */
-static VNET_DEFINE(long, searches);
-static VNET_DEFINE(long, search_steps);
-static VNET_DEFINE(int, pipe_expire) = 1 ; /* expire queue if empty */
-static VNET_DEFINE(int, dn_max_ratio) = 16 ; /* max queues/buckets ratio */
-#define V_searches VNET(searches)
-#define V_search_steps VNET(search_steps)
-#define V_pipe_expire VNET(pipe_expire)
-#define V_dn_max_ratio VNET(dn_max_ratio)
+ taskqueue_enqueue(dn_tq, &dn_task);
+}
-static VNET_DEFINE(long, pipe_slot_limit) = 100; /* Foot shooting limit for pipe queues. */
-static VNET_DEFINE(long, pipe_byte_limit) = 1024 * 1024;
-#define V_pipe_slot_limit VNET(pipe_slot_limit)
-#define V_pipe_byte_limit VNET(pipe_byte_limit)
+void
+dn_reschedule(void)
+{
+ callout_reset(&dn_timeout, 1, dummynet, NULL);
+}
+/*----- end of callout hooks -----*/
-static VNET_DEFINE(int, red_lookup_depth) = 256; /* RED - default lookup table depth */
-static VNET_DEFINE(int, red_avg_pkt_size) = 512; /* RED - default medium packet size */
-static VNET_DEFINE(int, red_max_pkt_size) = 1500; /* RED - default max packet size */
-#define V_red_lookup_depth VNET(red_lookup_depth)
-#define V_red_avg_pkt_size VNET(red_avg_pkt_size)
-#define V_red_max_pkt_size VNET(red_max_pkt_size)
+/* Return a scheduler descriptor given the type or name. */
+static struct dn_alg *
+find_sched_type(int type, char *name)
+{
+ struct dn_alg *d;
-static VNET_DEFINE(struct timeval, prev_t);
-static VNET_DEFINE(struct timeval, t);
-static VNET_DEFINE(long, tick_last); /* Last tick duration (usec). */
-static VNET_DEFINE(long, tick_delta); /* Last vs standard tick diff (usec). */
-static VNET_DEFINE(long, tick_delta_sum); /* Accumulated tick difference (usec).*/
-static VNET_DEFINE(long, tick_adjustment); /* Tick adjustments done. */
-static VNET_DEFINE(long, tick_lost); /* Lost(coalesced) ticks number. */
-/* Adjusted vs non-adjusted curr_time difference (ticks). */
-static VNET_DEFINE(long, tick_diff);
-#define V_prev_t VNET(prev_t)
-#define V_t VNET(t)
-#define V_tick_last VNET(tick_last)
-#define V_tick_delta VNET(tick_delta)
-#define V_tick_delta_sum VNET(tick_delta_sum)
-#define V_tick_adjustment VNET(tick_adjustment)
-#define V_tick_lost VNET(tick_lost)
-#define V_tick_diff VNET(tick_diff)
+ SLIST_FOREACH(d, &dn_cfg.schedlist, next) {
+ if (d->type == type || (name && !strcmp(d->name, name)))
+ return d;
+ }
+ return NULL; /* not found */
+}
-static VNET_DEFINE(int, io_fast);
-static VNET_DEFINE(unsigned long, io_pkt);
-static VNET_DEFINE(unsigned long, io_pkt_fast);
-static VNET_DEFINE(long, io_pkt_drop);
-#define V_io_fast VNET(io_fast)
-#define V_io_pkt VNET(io_pkt)
-#define V_io_pkt_fast VNET(io_pkt_fast)
-#define V_io_pkt_drop VNET(io_pkt_drop)
+int
+ipdn_bound_var(int *v, int dflt, int lo, int hi, const char *msg)
+{
+ int oldv = *v;
+ const char *op = NULL;
+ if (oldv < lo) {
+ *v = dflt;
+ op = "Bump";
+ } else if (oldv > hi) {
+ *v = hi;
+ op = "Clamp";
+ } else
+ return *v;
+ if (op && msg)
+ printf("%s %s to %d (was %d)\n", op, msg, *v, oldv);
+ return *v;
+}
+/*---- flow_id mask, hash and compare functions ---*/
/*
- * Three heaps contain queues and pipes that the scheduler handles:
- *
- * ready_heap contains all dn_flow_queue related to fixed-rate pipes.
- *
- * wfq_ready_heap contains the pipes associated with WF2Q flows
- *
- * extract_heap contains pipes associated with delay lines.
- *
+ * The flow_id includes the 5-tuple, the queue/pipe number
+ * which we store in the extra area in host order,
+ * and for ipv6 also the flow_id6.
+ * XXX see if we want the tos byte (can store in 'flags')
*/
+static struct ipfw_flow_id *
+flow_id_mask(struct ipfw_flow_id *mask, struct ipfw_flow_id *id)
+{
+ int is_v6 = IS_IP6_FLOW_ID(id);
-MALLOC_DEFINE(M_DUMMYNET, "dummynet", "dummynet heap");
+ id->dst_port &= mask->dst_port;
+ id->src_port &= mask->src_port;
+ id->proto &= mask->proto;
+ id->extra &= mask->extra;
+ if (is_v6) {
+ APPLY_MASK(&id->dst_ip6, &mask->dst_ip6);
+ APPLY_MASK(&id->src_ip6, &mask->src_ip6);
+ id->flow_id6 &= mask->flow_id6;
+ } else {
+ id->dst_ip &= mask->dst_ip;
+ id->src_ip &= mask->src_ip;
+ }
+ return id;
+}
-static VNET_DEFINE(struct dn_heap, ready_heap);
-static VNET_DEFINE(struct dn_heap, extract_heap);
-static VNET_DEFINE(struct dn_heap, wfq_ready_heap);
+/* computes an OR of two masks, result in dst and also returned */
+static struct ipfw_flow_id *
+flow_id_or(struct ipfw_flow_id *src, struct ipfw_flow_id *dst)
+{
+ int is_v6 = IS_IP6_FLOW_ID(dst);
-static int heap_init(struct dn_heap *h, int size);
-static int heap_insert (struct dn_heap *h, dn_key key1, void *p);
-static void heap_extract(struct dn_heap *h, void *obj);
-static void transmit_event(struct dn_pipe *pipe, struct mbuf **head,
- struct mbuf **tail);
-static void ready_event(struct dn_flow_queue *q, struct mbuf **head,
- struct mbuf **tail);
-static void ready_event_wfq(struct dn_pipe *p, struct mbuf **head,
- struct mbuf **tail);
+ dst->dst_port |= src->dst_port;
+ dst->src_port |= src->src_port;
+ dst->proto |= src->proto;
+ dst->extra |= src->extra;
+ if (is_v6) {
+#define OR_MASK(_d, _s) \
+ (_d)->__u6_addr.__u6_addr32[0] |= (_s)->__u6_addr.__u6_addr32[0]; \
+ (_d)->__u6_addr.__u6_addr32[1] |= (_s)->__u6_addr.__u6_addr32[1]; \
+ (_d)->__u6_addr.__u6_addr32[2] |= (_s)->__u6_addr.__u6_addr32[2]; \
+ (_d)->__u6_addr.__u6_addr32[3] |= (_s)->__u6_addr.__u6_addr32[3];
+ OR_MASK(&dst->dst_ip6, &src->dst_ip6);
+ OR_MASK(&dst->src_ip6, &src->src_ip6);
+#undef OR_MASK
+ dst->flow_id6 |= src->flow_id6;
+ } else {
+ dst->dst_ip |= src->dst_ip;
+ dst->src_ip |= src->src_ip;
+ }
+ return dst;
+}
-#define HASHSIZE 16
-#define HASH(num) ((((num) >> 8) ^ ((num) >> 4) ^ (num)) & 0x0f)
-static VNET_DEFINE(struct dn_pipe_head, pipehash[HASHSIZE]); /* all pipes */
-static VNET_DEFINE(struct dn_flow_set_head, flowsethash[HASHSIZE]); /* all flowsets */
+static int
+nonzero_mask(struct ipfw_flow_id *m)
+{
+ if (m->dst_port || m->src_port || m->proto || m->extra)
+ return 1;
+ if (IS_IP6_FLOW_ID(m)) {
+ return
+ m->dst_ip6.__u6_addr.__u6_addr32[0] ||
+ m->dst_ip6.__u6_addr.__u6_addr32[1] ||
+ m->dst_ip6.__u6_addr.__u6_addr32[2] ||
+ m->dst_ip6.__u6_addr.__u6_addr32[3] ||
+ m->src_ip6.__u6_addr.__u6_addr32[0] ||
+ m->src_ip6.__u6_addr.__u6_addr32[1] ||
+ m->src_ip6.__u6_addr.__u6_addr32[2] ||
+ m->src_ip6.__u6_addr.__u6_addr32[3] ||
+ m->flow_id6;
+ } else {
+ return m->dst_ip || m->src_ip;
+ }
+}
-static VNET_DEFINE(struct callout, dn_timeout);
+/* XXX we may want a better hash function */
+static uint32_t
+flow_id_hash(struct ipfw_flow_id *id)
+{
+ uint32_t i;
-extern void (*bridge_dn_p)(struct mbuf *, struct ifnet *);
+ if (IS_IP6_FLOW_ID(id)) {
+ uint32_t *d = (uint32_t *)&id->dst_ip6;
+ uint32_t *s = (uint32_t *)&id->src_ip6;
+ i = (d[0] ) ^ (d[1]) ^
+ (d[2] ) ^ (d[3]) ^
+ (d[0] >> 15) ^ (d[1] >> 15) ^
+ (d[2] >> 15) ^ (d[3] >> 15) ^
+ (s[0] << 1) ^ (s[1] << 1) ^
+ (s[2] << 1) ^ (s[3] << 1) ^
+ (s[0] << 16) ^ (s[1] << 16) ^
+ (s[2] << 16) ^ (s[3] << 16) ^
+ (id->dst_port << 1) ^ (id->src_port) ^
+ (id->extra) ^
+ (id->proto ) ^ (id->flow_id6);
+ } else {
+ i = (id->dst_ip) ^ (id->dst_ip >> 15) ^
+ (id->src_ip << 1) ^ (id->src_ip >> 16) ^
+ (id->extra) ^
+ (id->dst_port << 1) ^ (id->src_port) ^ (id->proto);
+ }
+ return i;
+}
-#ifdef SYSCTL_NODE
-SYSCTL_DECL(_net_inet);
-SYSCTL_DECL(_net_inet_ip);
+/* Like bcmp, returns 0 if ids match, 1 otherwise. */
+static int
+flow_id_cmp(struct ipfw_flow_id *id1, struct ipfw_flow_id *id2)
+{
+ int is_v6 = IS_IP6_FLOW_ID(id1);
-SYSCTL_NODE(_net_inet_ip, OID_AUTO, dummynet, CTLFLAG_RW, 0, "Dummynet");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, hash_size,
- CTLFLAG_RW, &VNET_NAME(dn_hash_size), 0, "Default hash table size");
-#if 0 /* curr_time is 64 bit */
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, curr_time,
- CTLFLAG_RD, &VNET_NAME(curr_time), 0, "Current tick");
-#endif
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, ready_heap,
- CTLFLAG_RD, &VNET_NAME(ready_heap).size, 0, "Size of ready heap");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, extract_heap,
- CTLFLAG_RD, &VNET_NAME(extract_heap).size, 0, "Size of extract heap");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, searches,
- CTLFLAG_RD, &VNET_NAME(searches), 0, "Number of queue searches");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, search_steps,
- CTLFLAG_RD, &VNET_NAME(search_steps), 0, "Number of queue search steps");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, expire,
- CTLFLAG_RW, &VNET_NAME(pipe_expire), 0, "Expire queue if empty");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, max_chain_len,
- CTLFLAG_RW, &VNET_NAME(dn_max_ratio), 0,
- "Max ratio between dynamic queues and buckets");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, red_lookup_depth,
- CTLFLAG_RD, &VNET_NAME(red_lookup_depth), 0, "Depth of RED lookup table");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, red_avg_pkt_size,
- CTLFLAG_RD, &VNET_NAME(red_avg_pkt_size), 0, "RED Medium packet size");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, red_max_pkt_size,
- CTLFLAG_RD, &VNET_NAME(red_max_pkt_size), 0, "RED Max packet size");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_delta,
- CTLFLAG_RD, &VNET_NAME(tick_delta), 0, "Last vs standard tick difference (usec).");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_delta_sum,
- CTLFLAG_RD, &VNET_NAME(tick_delta_sum), 0, "Accumulated tick difference (usec).");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_adjustment,
- CTLFLAG_RD, &VNET_NAME(tick_adjustment), 0, "Tick adjustments done.");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_diff,
- CTLFLAG_RD, &VNET_NAME(tick_diff), 0,
- "Adjusted vs non-adjusted curr_time difference (ticks).");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, tick_lost,
- CTLFLAG_RD, &VNET_NAME(tick_lost), 0,
- "Number of ticks coalesced by dummynet taskqueue.");
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, io_fast,
- CTLFLAG_RW, &VNET_NAME(io_fast), 0, "Enable fast dummynet io.");
-SYSCTL_VNET_ULONG(_net_inet_ip_dummynet, OID_AUTO, io_pkt,
- CTLFLAG_RD, &VNET_NAME(io_pkt), 0,
- "Number of packets passed to dummynet.");
-SYSCTL_VNET_ULONG(_net_inet_ip_dummynet, OID_AUTO, io_pkt_fast,
- CTLFLAG_RD, &VNET_NAME(io_pkt_fast), 0,
- "Number of packets bypassed dummynet scheduler.");
-SYSCTL_VNET_ULONG(_net_inet_ip_dummynet, OID_AUTO, io_pkt_drop,
- CTLFLAG_RD, &VNET_NAME(io_pkt_drop), 0,
- "Number of packets dropped by dummynet.");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, pipe_slot_limit,
- CTLFLAG_RW, &VNET_NAME(pipe_slot_limit), 0, "Upper limit in slots for pipe queue.");
-SYSCTL_VNET_LONG(_net_inet_ip_dummynet, OID_AUTO, pipe_byte_limit,
- CTLFLAG_RW, &VNET_NAME(pipe_byte_limit), 0, "Upper limit in bytes for pipe queue.");
-#endif
+ if (!is_v6) {
+ if (IS_IP6_FLOW_ID(id2))
+ return 1; /* different address families */
-#ifdef DUMMYNET_DEBUG
-VNET_DEFINE(int, dummynet_debug) = 0;
-#ifdef SYSCTL_NODE
-SYSCTL_VNET_INT(_net_inet_ip_dummynet, OID_AUTO, debug, CTLFLAG_RW, &VNET_NAME(dummynet_debug),
- 0, "control debugging printfs");
-#endif
-#define DPRINTF(X) if (V_dummynet_debug) printf X
-#else
-#define DPRINTF(X)
-#endif
+ return (id1->dst_ip == id2->dst_ip &&
+ id1->src_ip == id2->src_ip &&
+ id1->dst_port == id2->dst_port &&
+ id1->src_port == id2->src_port &&
+ id1->proto == id2->proto &&
+ id1->extra == id2->extra) ? 0 : 1;
+ }
+ /* the ipv6 case */
+ return (
+ !bcmp(&id1->dst_ip6,&id2->dst_ip6, sizeof(id1->dst_ip6)) &&
+ !bcmp(&id1->src_ip6,&id2->src_ip6, sizeof(id1->src_ip6)) &&
+ id1->dst_port == id2->dst_port &&
+ id1->src_port == id2->src_port &&
+ id1->proto == id2->proto &&
+ id1->extra == id2->extra &&
+ id1->flow_id6 == id2->flow_id6) ? 0 : 1;
+}
+/*--------- end of flow-id mask, hash and compare ---------*/
-static VNET_DEFINE(struct task, dn_task);
-static VNET_DEFINE(struct taskqueue *, dn_tq) = NULL;
-static void dummynet_task(void *, int);
+/*--- support functions for the qht hashtable ----
+ * Entries are hashed by flow-id
+ */
+static uint32_t
+q_hash(uintptr_t key, int flags, void *arg)
+{
+ /* compute the hash slot from the flow id */
+ struct ipfw_flow_id *id = (flags & DNHT_KEY_IS_OBJ) ?
+ &((struct dn_queue *)key)->ni.fid :
+ (struct ipfw_flow_id *)key;
-static struct mtx dummynet_mtx;
-#define DUMMYNET_LOCK_INIT() \
- mtx_init(&dummynet_mtx, "dummynet", NULL, MTX_DEF)
-#define DUMMYNET_LOCK_DESTROY() mtx_destroy(&dummynet_mtx)
-#define DUMMYNET_LOCK() mtx_lock(&dummynet_mtx)
-#define DUMMYNET_UNLOCK() mtx_unlock(&dummynet_mtx)
-#define DUMMYNET_LOCK_ASSERT() mtx_assert(&dummynet_mtx, MA_OWNED)
+ return flow_id_hash(id);
+}
-static int config_pipe(struct dn_pipe *p);
-static int ip_dn_ctl(struct sockopt *sopt);
+static int
+q_match(void *obj, uintptr_t key, int flags, void *arg)
+{
+ struct dn_queue *o = (struct dn_queue *)obj;
+ struct ipfw_flow_id *id2;
-static void dummynet(void *);
-static void dummynet_flush(void);
-static void dummynet_send(struct mbuf *);
-void dummynet_drain(void);
-static int dummynet_io(struct mbuf **, int , struct ip_fw_args *);
+ if (flags & DNHT_KEY_IS_OBJ) {
+ /* compare pointers */
+ id2 = &((struct dn_queue *)key)->ni.fid;
+ } else {
+ id2 = (struct ipfw_flow_id *)key;
+ }
+ return (0 == flow_id_cmp(&o->ni.fid, id2));
+}
/*
- * Heap management functions.
- *
- * In the heap, first node is element 0. Children of i are 2i+1 and 2i+2.
- * Some macros help finding parent/children so we can optimize them.
- *
- * heap_init() is called to expand the heap when needed.
- * Increment size in blocks of 16 entries.
- * XXX failure to allocate a new element is a pretty bad failure
- * as we basically stall a whole queue forever!!
- * Returns 1 on error, 0 on success
+ * create a new queue instance for the given 'key'.
*/
-#define HEAP_FATHER(x) ( ( (x) - 1 ) / 2 )
-#define HEAP_LEFT(x) ( 2*(x) + 1 )
-#define HEAP_IS_LEFT(x) ( (x) & 1 )
-#define HEAP_RIGHT(x) ( 2*(x) + 2 )
-#define HEAP_SWAP(a, b, buffer) { buffer = a ; a = b ; b = buffer ; }
-#define HEAP_INCREMENT 15
+static void *
+q_new(uintptr_t key, int flags, void *arg)
+{
+ struct dn_queue *q, *template = arg;
+ struct dn_fsk *fs = template->fs;
+ int size = sizeof(*q) + fs->sched->fp->q_datalen;
+
+ q = malloc(size, M_DUMMYNET, M_NOWAIT | M_ZERO);
+ if (q == NULL) {
+ D("no memory for new queue");
+ return NULL;
+ }
-static int
-heap_init(struct dn_heap *h, int new_size)
-{
- struct dn_heap_entry *p;
+ set_oid(&q->ni.oid, DN_QUEUE, size);
+ if (fs->fs.flags & DN_QHT_HASH)
+ q->ni.fid = *(struct ipfw_flow_id *)key;
+ q->fs = fs;
+ q->_si = template->_si;
+ q->_si->q_count++;
- if (h->size >= new_size ) {
- printf("dummynet: %s, Bogus call, have %d want %d\n", __func__,
- h->size, new_size);
- return 0 ;
- }
- new_size = (new_size + HEAP_INCREMENT ) & ~HEAP_INCREMENT ;
- p = malloc(new_size * sizeof(*p), M_DUMMYNET, M_NOWAIT);
- if (p == NULL) {
- printf("dummynet: %s, resize %d failed\n", __func__, new_size );
- return 1 ; /* error */
- }
- if (h->size > 0) {
- bcopy(h->p, p, h->size * sizeof(*p) );
- free(h->p, M_DUMMYNET);
- }
- h->p = p ;
- h->size = new_size ;
- return 0 ;
+ if (fs->sched->fp->new_queue)
+ fs->sched->fp->new_queue(q);
+ dn_cfg.queue_count++;
+ return q;
}
/*
- * Insert element in heap. Normally, p != NULL, we insert p in
- * a new position and bubble up. If p == NULL, then the element is
- * already in place, and key is the position where to start the
- * bubble-up.
- * Returns 1 on failure (cannot allocate new heap entry)
- *
- * If offset > 0 the position (index, int) of the element in the heap is
- * also stored in the element itself at the given offset in bytes.
+ * Notify schedulers that a queue is going away.
+ * If (flags & DN_DESTROY), also free the packets.
+ * The version for callbacks is called q_delete_cb().
*/
-#define SET_OFFSET(heap, node) \
- if (heap->offset > 0) \
- *((int *)((char *)(heap->p[node].object) + heap->offset)) = node ;
-/*
- * RESET_OFFSET is used for sanity checks. It sets offset to an invalid value.
- */
-#define RESET_OFFSET(heap, node) \
- if (heap->offset > 0) \
- *((int *)((char *)(heap->p[node].object) + heap->offset)) = -1 ;
-static int
-heap_insert(struct dn_heap *h, dn_key key1, void *p)
+static void
+dn_delete_queue(struct dn_queue *q, int flags)
{
- int son = h->elements ;
+ struct dn_fsk *fs = q->fs;
- if (p == NULL) /* data already there, set starting point */
- son = key1 ;
- else { /* insert new element at the end, possibly resize */
- son = h->elements ;
- if (son == h->size) /* need resize... */
- if (heap_init(h, h->elements+1) )
- return 1 ; /* failure... */
- h->p[son].object = p ;
- h->p[son].key = key1 ;
- h->elements++ ;
- }
- while (son > 0) { /* bubble up */
- int father = HEAP_FATHER(son) ;
- struct dn_heap_entry tmp ;
+ // D("fs %p si %p\n", fs, q->_si);
+ /* notify the parent scheduler that the queue is going away */
+ if (fs && fs->sched->fp->free_queue)
+ fs->sched->fp->free_queue(q);
+ q->_si->q_count--;
+ q->_si = NULL;
+ if (flags & DN_DESTROY) {
+ if (q->mq.head)
+ dn_free_pkts(q->mq.head);
+ bzero(q, sizeof(*q)); // safety
+ free(q, M_DUMMYNET);
+ dn_cfg.queue_count--;
+ }
+}
- if (DN_KEY_LT( h->p[father].key, h->p[son].key ) )
- break ; /* found right position */
- /* son smaller than father, swap and repeat */
- HEAP_SWAP(h->p[son], h->p[father], tmp) ;
- SET_OFFSET(h, son);
- son = father ;
- }
- SET_OFFSET(h, son);
- return 0 ;
+static int
+q_delete_cb(void *q, void *arg)
+{
+ int flags = (int)(uintptr_t)arg;
+ dn_delete_queue(q, flags);
+ return (flags & DN_DESTROY) ? DNHT_SCAN_DEL : 0;
}
/*
- * remove top element from heap, or obj if obj != NULL
+ * calls dn_delete_queue/q_delete_cb on all queues,
+ * which notifies the parent scheduler and possibly drains packets.
+ * flags & DN_DESTROY: drains queues and destroy qht;
*/
static void
-heap_extract(struct dn_heap *h, void *obj)
+qht_delete(struct dn_fsk *fs, int flags)
{
- int child, father, max = h->elements - 1 ;
-
- if (max < 0) {
- printf("dummynet: warning, extract from empty heap 0x%p\n", h);
- return ;
- }
- father = 0 ; /* default: move up smallest child */
- if (obj != NULL) { /* extract specific element, index is at offset */
- if (h->offset <= 0)
- panic("dummynet: heap_extract from middle not supported on this heap!!!\n");
- father = *((int *)((char *)obj + h->offset)) ;
- if (father < 0 || father >= h->elements) {
- printf("dummynet: heap_extract, father %d out of bound 0..%d\n",
- father, h->elements);
- panic("dummynet: heap_extract");
+ ND("fs %d start flags %d qht %p",
+ fs->fs.fs_nr, flags, fs->qht);
+ if (!fs->qht)
+ return;
+ if (fs->fs.flags & DN_QHT_HASH) {
+ dn_ht_scan(fs->qht, q_delete_cb, (void *)(uintptr_t)flags);
+ if (flags & DN_DESTROY) {
+ dn_ht_free(fs->qht, 0);
+ fs->qht = NULL;
+ }
+ } else {
+ dn_delete_queue((struct dn_queue *)(fs->qht), flags);
+ if (flags & DN_DESTROY)
+ fs->qht = NULL;
}
- }
- RESET_OFFSET(h, father);
- child = HEAP_LEFT(father) ; /* left child */
- while (child <= max) { /* valid entry */
- if (child != max && DN_KEY_LT(h->p[child+1].key, h->p[child].key) )
- child = child+1 ; /* take right child, otherwise left */
- h->p[father] = h->p[child] ;
- SET_OFFSET(h, father);
- father = child ;
- child = HEAP_LEFT(child) ; /* left child for next loop */
- }
- h->elements-- ;
- if (father != max) {
- /*
- * Fill hole with last entry and bubble up, reusing the insert code
- */
- h->p[father] = h->p[max] ;
- heap_insert(h, father, NULL); /* this one cannot fail */
- }
}
-#if 0
/*
- * change object position and update references
- * XXX this one is never used!
+ * Find and possibly create the queue for a MULTIQUEUE scheduler.
+ * We never call it for !MULTIQUEUE (the queue is in the sch_inst).
*/
-static void
-heap_move(struct dn_heap *h, dn_key new_key, void *object)
+struct dn_queue *
+ipdn_q_find(struct dn_fsk *fs, struct dn_sch_inst *si,
+ struct ipfw_flow_id *id)
{
- int temp;
- int i ;
- int max = h->elements-1 ;
- struct dn_heap_entry buf ;
+ struct dn_queue template;
- if (h->offset <= 0)
- panic("cannot move items on this heap");
+ template._si = si;
+ template.fs = fs;
- i = *((int *)((char *)object + h->offset));
- if (DN_KEY_LT(new_key, h->p[i].key) ) { /* must move up */
- h->p[i].key = new_key ;
- for (; i>0 && DN_KEY_LT(new_key, h->p[(temp = HEAP_FATHER(i))].key) ;
- i = temp ) { /* bubble up */
- HEAP_SWAP(h->p[i], h->p[temp], buf) ;
- SET_OFFSET(h, i);
- }
- } else { /* must move down */
- h->p[i].key = new_key ;
- while ( (temp = HEAP_LEFT(i)) <= max ) { /* found left child */
- if ((temp != max) && DN_KEY_GT(h->p[temp].key, h->p[temp+1].key))
- temp++ ; /* select child with min key */
- if (DN_KEY_GT(new_key, h->p[temp].key)) { /* go down */
- HEAP_SWAP(h->p[i], h->p[temp], buf) ;
- SET_OFFSET(h, i);
- } else
- break ;
- i = temp ;
+ if (fs->fs.flags & DN_QHT_HASH) {
+ struct ipfw_flow_id masked_id;
+ if (fs->qht == NULL) {
+ fs->qht = dn_ht_init(NULL, fs->fs.buckets,
+ offsetof(struct dn_queue, q_next),
+ q_hash, q_match, q_new);
+ if (fs->qht == NULL)
+ return NULL;
+ }
+ masked_id = *id;
+ flow_id_mask(&fs->fsk_mask, &masked_id);
+ return dn_ht_find(fs->qht, (uintptr_t)&masked_id,
+ DNHT_INSERT, &template);
+ } else {
+ if (fs->qht == NULL)
+ fs->qht = q_new(0, 0, &template);
+ return (struct dn_queue *)fs->qht;
}
- }
- SET_OFFSET(h, i);
}
-#endif /* heap_move, unused */
+/*--- end of queue hash table ---*/
-/*
- * heapify() will reorganize data inside an array to maintain the
- * heap property. It is needed when we delete a bunch of entries.
+/*--- support functions for the sch_inst hashtable ----
+ *
+ * These are hashed by flow-id
*/
-static void
-heapify(struct dn_heap *h)
+static uint32_t
+si_hash(uintptr_t key, int flags, void *arg)
{
- int i ;
+ /* compute the hash slot from the flow id */
+ struct ipfw_flow_id *id = (flags & DNHT_KEY_IS_OBJ) ?
+ &((struct dn_sch_inst *)key)->ni.fid :
+ (struct ipfw_flow_id *)key;
- for (i = 0 ; i < h->elements ; i++ )
- heap_insert(h, i , NULL) ;
+ return flow_id_hash(id);
}
-/*
- * cleanup the heap and free data structure
- */
-static void
-heap_free(struct dn_heap *h)
+static int
+si_match(void *obj, uintptr_t key, int flags, void *arg)
{
- if (h->size >0 )
- free(h->p, M_DUMMYNET);
- bzero(h, sizeof(*h) );
-}
+ struct dn_sch_inst *o = obj;
+ struct ipfw_flow_id *id2;
-/*
- * --- end of heap management functions ---
- */
-
-/*
- * Return the mbuf tag holding the dummynet state. As an optimization
- * this is assumed to be the first tag on the list. If this turns out
- * wrong we'll need to search the list.
- */
-static struct dn_pkt_tag *
-dn_tag_get(struct mbuf *m)
-{
- struct m_tag *mtag = m_tag_first(m);
- KASSERT(mtag != NULL &&
- mtag->m_tag_cookie == MTAG_ABI_COMPAT &&
- mtag->m_tag_id == PACKET_TAG_DUMMYNET,
- ("packet on dummynet queue w/o dummynet tag!"));
- return (struct dn_pkt_tag *)(mtag+1);
+ id2 = (flags & DNHT_KEY_IS_OBJ) ?
+ &((struct dn_sch_inst *)key)->ni.fid :
+ (struct ipfw_flow_id *)key;
+ return flow_id_cmp(&o->ni.fid, id2) == 0;
}
/*
- * Scheduler functions:
- *
- * transmit_event() is called when the delay-line needs to enter
- * the scheduler, either because of existing pkts getting ready,
- * or new packets entering the queue. The event handled is the delivery
- * time of the packet.
- *
- * ready_event() does something similar with fixed-rate queues, and the
- * event handled is the finish time of the head pkt.
- *
- * wfq_ready_event() does something similar with WF2Q queues, and the
- * event handled is the start time of the head pkt.
- *
- * In all cases, we make sure that the data structures are consistent
- * before passing pkts out, because this might trigger recursive
- * invocations of the procedures.
+ * create a new instance for the given 'key'
+ * Allocate memory for instance, delay line and scheduler private data.
*/
-static void
-transmit_event(struct dn_pipe *pipe, struct mbuf **head, struct mbuf **tail)
+static void *
+si_new(uintptr_t key, int flags, void *arg)
{
- struct mbuf *m;
- struct dn_pkt_tag *pkt;
+ struct dn_schk *s = arg;
+ struct dn_sch_inst *si;
+ int l = sizeof(*si) + s->fp->si_datalen;
- DUMMYNET_LOCK_ASSERT();
+ si = malloc(l, M_DUMMYNET, M_NOWAIT | M_ZERO);
+ if (si == NULL)
+ goto error;
+ /* Set length only for the part passed up to userland. */
+ set_oid(&si->ni.oid, DN_SCH_I, sizeof(struct dn_flow));
+ set_oid(&(si->dline.oid), DN_DELAY_LINE,
+ sizeof(struct delay_line));
+ /* mark si and dline as outside the event queue */
+ si->ni.oid.id = si->dline.oid.id = -1;
- while ((m = pipe->head) != NULL) {
- pkt = dn_tag_get(m);
- if (!DN_KEY_LEQ(pkt->output_time, V_curr_time))
- break;
+ si->sched = s;
+ si->dline.si = si;
- pipe->head = m->m_nextpkt;
- if (*tail != NULL)
- (*tail)->m_nextpkt = m;
- else
>>> TRUNCATED FOR MAIL (1000 lines) <<<
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 12:02:27 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id CEBDA1065672; Mon, 12 Apr 2010 12:02: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 9185B106566B
for ; Mon, 12 Apr 2010 12:02:26 +0000 (UTC)
(envelope-from zec@fer.hr)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 7D64D8FC1C
for ; Mon, 12 Apr 2010 12:02:26 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CC2QQV026080
for ; Mon, 12 Apr 2010 12:02:26 GMT
(envelope-from zec@fer.hr)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3CC2Oex026078
for perforce@freebsd.org; Mon, 12 Apr 2010 12:02:24 GMT
(envelope-from zec@fer.hr)
Date: Mon, 12 Apr 2010 12:02:24 GMT
Message-Id: <201004121202.o3CC2Oex026078@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
zec@fer.hr using -f
From: Marko Zec
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176830 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, 12 Apr 2010 12:02:27 -0000
http://p4web.freebsd.org/@@176830?ac=10
Change 176830 by zec@zec_tpx32 on 2010/04/12 12:01:50
IFC @ 176826
Affected files ...
.. //depot/projects/vimage/src/share/man/man3/pthread_affinity_np.3#2 integrate
.. //depot/projects/vimage/src/share/man/man4/acpi.4#4 integrate
.. //depot/projects/vimage/src/share/man/man4/acpi_wmi.4#4 integrate
.. //depot/projects/vimage/src/share/man/man4/altq.4#9 integrate
.. //depot/projects/vimage/src/share/man/man4/amdtemp.4#2 integrate
.. //depot/projects/vimage/src/share/man/man4/ath.4#7 integrate
.. //depot/projects/vimage/src/share/man/man4/cxgb.4#2 integrate
.. //depot/projects/vimage/src/share/man/man4/ddb.4#2 integrate
.. //depot/projects/vimage/src/share/man/man4/iscsi_initiator.4#2 integrate
.. //depot/projects/vimage/src/share/man/man4/ndis.4#4 integrate
.. //depot/projects/vimage/src/share/man/man4/splash.4#2 integrate
.. //depot/projects/vimage/src/share/man/man4/sysmouse.4#4 integrate
.. //depot/projects/vimage/src/share/man/man4/textdump.4#5 integrate
.. //depot/projects/vimage/src/share/man/man4/uart.4#3 integrate
.. //depot/projects/vimage/src/share/man/man4/ufm.4#2 integrate
.. //depot/projects/vimage/src/share/man/man4/urio.4#3 integrate
.. //depot/projects/vimage/src/share/man/man5/nsswitch.conf.5#3 integrate
.. //depot/projects/vimage/src/share/man/man5/rc.conf.5#12 integrate
.. //depot/projects/vimage/src/share/man/man5/services.5#2 integrate
.. //depot/projects/vimage/src/share/man/man5/src.conf.5#6 integrate
.. //depot/projects/vimage/src/share/man/man7/build.7#5 integrate
.. //depot/projects/vimage/src/share/man/man9/fail.9#3 integrate
.. //depot/projects/vimage/src/share/man/man9/ieee80211.9#4 integrate
.. //depot/projects/vimage/src/share/man/man9/ieee80211_crypto.9#4 integrate
.. //depot/projects/vimage/src/share/man/man9/ieee80211_node.9#4 integrate
.. //depot/projects/vimage/src/share/man/man9/ieee80211_output.9#4 integrate
.. //depot/projects/vimage/src/share/man/man9/ieee80211_scan.9#3 integrate
.. //depot/projects/vimage/src/share/man/man9/stack.9#3 integrate
.. //depot/projects/vimage/src/share/man/man9/uio.9#2 integrate
.. //depot/projects/vimage/src/share/man/man9/vfs_mount.9#2 integrate
.. //depot/projects/vimage/src/sys/amd64/acpica/acpi_machdep.c#6 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/apic_vector.S#5 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/db_trace.c#7 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/exception.S#13 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/identcpu.c#20 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/local_apic.c#25 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/machdep.c#25 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/mca.c#3 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/pmap.c#37 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/trap.c#18 integrate
.. //depot/projects/vimage/src/sys/amd64/amd64/vm_machdep.c#13 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/GENERIC#37 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/NOTES#23 integrate
.. //depot/projects/vimage/src/sys/amd64/conf/XENHVM#6 integrate
.. //depot/projects/vimage/src/sys/amd64/ia32/ia32_signal.c#10 integrate
.. //depot/projects/vimage/src/sys/amd64/include/apicvar.h#11 integrate
.. //depot/projects/vimage/src/sys/amd64/include/elf.h#5 integrate
.. //depot/projects/vimage/src/sys/amd64/include/mca.h#3 integrate
.. //depot/projects/vimage/src/sys/amd64/include/md_var.h#10 integrate
.. //depot/projects/vimage/src/sys/amd64/include/pmc_mdep.h#8 integrate
.. //depot/projects/vimage/src/sys/amd64/include/reg.h#3 integrate
.. //depot/projects/vimage/src/sys/amd64/include/specialreg.h#18 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux.h#16 integrate
.. //depot/projects/vimage/src/sys/amd64/linux32/linux32_sysvec.c#22 integrate
.. //depot/projects/vimage/src/sys/arm/arm/busdma_machdep.c#19 integrate
.. //depot/projects/vimage/src/sys/arm/arm/identcpu.c#8 integrate
.. //depot/projects/vimage/src/sys/arm/arm/machdep.c#9 integrate
.. //depot/projects/vimage/src/sys/arm/arm/pmap.c#25 integrate
.. //depot/projects/vimage/src/sys/arm/arm/vm_machdep.c#15 integrate
.. //depot/projects/vimage/src/sys/arm/conf/BWCT.hints#3 integrate
.. //depot/projects/vimage/src/sys/arm/conf/KB920X#14 integrate
.. //depot/projects/vimage/src/sys/arm/conf/LN2410SBC#1 branch
.. //depot/projects/vimage/src/sys/arm/include/bus.h#3 integrate
.. //depot/projects/vimage/src/sys/arm/mv/common.c#7 integrate
.. //depot/projects/vimage/src/sys/arm/mv/kirkwood/kirkwood.c#6 integrate
.. //depot/projects/vimage/src/sys/arm/mv/mv_sata.c#3 integrate
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/board_ln2410sbc.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/files.s3c2xx0#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2410reg.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2410var.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2440reg.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c24x0.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c24x0_clk.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c24x0_machdep.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c24x0reg.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c24x0var.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2xx0_space.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2xx0board.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2xx0reg.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/s3c2xx0var.h#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/std.ln2410sbc#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/std.s3c2410#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/uart_bus_s3c2410.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/uart_cpu_s3c2410.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/uart_dev_s3c2410.c#1 branch
.. //depot/projects/vimage/src/sys/arm/s3c2xx0/uart_dev_s3c2410.h#1 branch
.. //depot/projects/vimage/src/sys/arm/xscale/ixp425/cambria_fled.c#3 integrate
.. //depot/projects/vimage/src/sys/boot/arm/at91/boot2/bwct_board.c#3 integrate
.. //depot/projects/vimage/src/sys/boot/arm/at91/libat91/at91rm9200_lowlevel.c#4 integrate
.. //depot/projects/vimage/src/sys/boot/i386/boot2/boot2.c#6 integrate
.. //depot/projects/vimage/src/sys/boot/i386/efi/Makefile#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/autoload.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/bootinfo.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/conf.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/devicename.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/efimd.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/elf32_freebsd.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/exec.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/i386_copy.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/ldscript.amd64#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/ldscript.i386#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/main.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/reloc.c#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/start.S#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/efi/version#1 branch
.. //depot/projects/vimage/src/sys/boot/i386/gptboot/gptboot.c#6 integrate
.. //depot/projects/vimage/src/sys/boot/i386/zfsboot/zfsboot.c#5 integrate
.. //depot/projects/vimage/src/sys/cam/cam_xpt.c#24 integrate
.. //depot/projects/vimage/src/sys/cam/scsi/scsi_all.h#6 integrate
.. //depot/projects/vimage/src/sys/cam/scsi/scsi_da.c#21 integrate
.. //depot/projects/vimage/src/sys/cam/scsi/scsi_sg.c#8 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c#9 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c#3 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c#5 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h#3 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c#6 integrate
.. //depot/projects/vimage/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c#5 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32.h#5 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_ipc.h#3 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_misc.c#27 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_proto.h#27 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscall.h#26 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_syscalls.c#26 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_sysent.c#27 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/freebsd32_util.h#3 integrate
.. //depot/projects/vimage/src/sys/compat/freebsd32/syscalls.master#27 integrate
.. //depot/projects/vimage/src/sys/compat/ia32/ia32_reg.h#2 integrate
.. //depot/projects/vimage/src/sys/compat/ia32/ia32_signal.h#3 integrate
.. //depot/projects/vimage/src/sys/compat/ia32/ia32_sysvec.c#13 integrate
.. //depot/projects/vimage/src/sys/compat/linprocfs/linprocfs.c#42 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_file.c#17 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_ioctl.c#30 integrate
.. //depot/projects/vimage/src/sys/compat/linux/linux_stats.c#15 integrate
.. //depot/projects/vimage/src/sys/compat/svr4/svr4_stat.c#11 integrate
.. //depot/projects/vimage/src/sys/compat/x86bios/x86bios.c#2 integrate
.. //depot/projects/vimage/src/sys/conf/NOTES#64 integrate
.. //depot/projects/vimage/src/sys/conf/files#81 integrate
.. //depot/projects/vimage/src/sys/conf/files.amd64#28 integrate
.. //depot/projects/vimage/src/sys/conf/files.i386#36 integrate
.. //depot/projects/vimage/src/sys/conf/files.ia64#13 integrate
.. //depot/projects/vimage/src/sys/conf/files.pc98#23 integrate
.. //depot/projects/vimage/src/sys/conf/files.sparc64#20 integrate
.. //depot/projects/vimage/src/sys/conf/kern.mk#10 integrate
.. //depot/projects/vimage/src/sys/conf/kern.post.mk#9 integrate
.. //depot/projects/vimage/src/sys/conf/kern.pre.mk#17 integrate
.. //depot/projects/vimage/src/sys/conf/kmod.mk#13 integrate
.. //depot/projects/vimage/src/sys/conf/ldscript.mips.octeon1.32#2 integrate
.. //depot/projects/vimage/src/sys/conf/ldscript.mips.octeon1.64#2 integrate
.. //depot/projects/vimage/src/sys/conf/ldscript.mips.octeon1.n32#2 integrate
.. //depot/projects/vimage/src/sys/conf/newvers.sh#13 integrate
.. //depot/projects/vimage/src/sys/conf/options#60 integrate
.. //depot/projects/vimage/src/sys/conf/options.amd64#10 integrate
.. //depot/projects/vimage/src/sys/conf/options.i386#11 integrate
.. //depot/projects/vimage/src/sys/conf/options.ia64#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/changes.txt#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmextern.c#2 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmtable.c#5 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmtbdump.c#5 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/common/dmtbinfo.c#5 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslanalyze.c#5 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslcompiler.h#6 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslglobal.h#6 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslmain.c#6 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslmap.c#6 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslpredef.c#1 branch
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/aslstubs.c#6 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/compiler/asltypes.h#6 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/debugger/dbdisply.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsfield.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsmethod.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsmthdat.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsobject.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dsopcode.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dswexec.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/dispatcher/dswstate.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evevent.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evgpe.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evgpeblk.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evmisc.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evxface.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/events/evxfevnt.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exconvrt.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/excreate.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exdebug.c#1 branch
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exfield.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exfldio.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exmisc.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exmutex.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exnames.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg1.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg2.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg3.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exoparg6.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exprep.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exregion.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exresnte.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exresolv.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exresop.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exstore.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/executer/exsystem.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwregs.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwsleep.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/hardware/hwvalid.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acdisasm.h#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acevents.h#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acexcep.h#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acglobal.h#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acinterp.h#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/aclocal.h#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acoutput.h#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/acpixf.h#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actables.h#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actbl2.h#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/actypes.h#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/include/platform/acfreebsd.h#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsaccess.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsdump.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsnames.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nssearch.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/namespace/nsutils.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psargs.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psloop.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/parser/psxface.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rscreate.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rslist.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/resources/rsmisc.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbfadt.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbutils.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbxface.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/tables/tbxfroot.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utalloc.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utdelete.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/uteval.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utglobal.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utmisc.c#4 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utmutex.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/utobject.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/acpica/utilities/uttrack.c#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/iwn/LICENSE#3 integrate
.. //depot/projects/vimage/src/sys/contrib/dev/iwn/iwlwifi-6000-9.176.4.1.fw.uu#2 delete
.. //depot/projects/vimage/src/sys/contrib/dev/iwn/iwlwifi-6000-9.193.4.1.fw.uu#1 branch
.. //depot/projects/vimage/src/sys/contrib/x86emu/x86emu.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/aac/aac.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi.c#27 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi_button.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi_ec.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi_lid.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpi_video.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/acpica/acpivar.h#13 integrate
.. //depot/projects/vimage/src/sys/dev/agp/agp_i810.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/ahci/ahci.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-all.h#18 integrate
.. //depot/projects/vimage/src/sys/dev/ata/ata-raid.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5416/ar9285_attach.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#46 integrate
.. //depot/projects/vimage/src/sys/dev/bce/if_bce.c#27 integrate
.. //depot/projects/vimage/src/sys/dev/bce/if_bcefw.h#10 integrate
.. //depot/projects/vimage/src/sys/dev/bce/if_bcereg.h#18 integrate
.. //depot/projects/vimage/src/sys/dev/bge/if_bge.c#26 integrate
.. //depot/projects/vimage/src/sys/dev/bktr/ioctl_bt848.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/bktr/ioctl_meteor.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/bwi/if_bwi.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/bwi/if_bwivar.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/bwn/if_bwn.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/bwn/if_bwnvar.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/common/cxgb_ael1002.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/common/cxgb_common.h#14 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/common/cxgb_t3_hw.c#17 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_adapter.h#21 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_main.c#32 integrate
.. //depot/projects/vimage/src/sys/dev/cxgb/cxgb_sge.c#30 integrate
.. //depot/projects/vimage/src/sys/dev/drm/drm_pciids.h#13 integrate
.. //depot/projects/vimage/src/sys/dev/drm/i915_drv.h#10 integrate
.. //depot/projects/vimage/src/sys/dev/drm/i915_reg.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_80003es2lan.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_82571.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_82575.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_82575.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_defines.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_hw.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_ich8lan.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_ich8lan.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_mac.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_manage.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_phy.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/e1000_regs.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_em.c#19 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_em.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_igb.c#16 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_igb.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_lem.c#1 branch
.. //depot/projects/vimage/src/sys/dev/e1000/if_lem.h#1 branch
.. //depot/projects/vimage/src/sys/dev/fb/vesa.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/fb/vga.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/firewire/sbp.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_core.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_core.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_intel.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_logging.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_mod.c#16 integrate
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_uncore.c#1 branch
.. //depot/projects/vimage/src/sys/dev/hwpmc/hwpmc_uncore.h#1 branch
.. //depot/projects/vimage/src/sys/dev/hwpmc/pmc_events.h#11 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.c#18 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_freebsd.h#11 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_library.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_pci.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/isp/isp_sbus.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/isp/ispvar.h#8 integrate
.. //depot/projects/vimage/src/sys/dev/iwn/if_iwn.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/iwn/if_iwnreg.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/iwn/if_iwnvar.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/LICENSE#4 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe.h#10 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_82598.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_82599.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_api.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_api.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_common.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_phy.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_phy.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/ixgbe/ixgbe_type.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/malo/if_malo.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/mii/brgphy.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/mii/brgphyreg.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/mii/mii.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/mii/miidevs#22 integrate
.. //depot/projects/vimage/src/sys/dev/mpt/mpt_cam.c#17 integrate
.. //depot/projects/vimage/src/sys/dev/msk/if_msk.c#23 integrate
.. //depot/projects/vimage/src/sys/dev/msk/if_mskreg.h#13 integrate
.. //depot/projects/vimage/src/sys/dev/mxge/if_mxge.c#21 integrate
.. //depot/projects/vimage/src/sys/dev/ofw/ofw_standard.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/pci/vga_pci.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/ppc/ppc_pci.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2560.c#21 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2560var.h#8 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2661.c#18 integrate
.. //depot/projects/vimage/src/sys/dev/ral/rt2661var.h#7 integrate
.. //depot/projects/vimage/src/sys/dev/re/if_re.c#31 integrate
.. //depot/projects/vimage/src/sys/dev/siba/siba.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/siba/siba_bwn.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/siba/siba_cc.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/siba/siba_core.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/siba/siba_pcib.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/siba/sibavar.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/siis/siis.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/envy24.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/envy24.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/envy24ht.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/envy24ht.h#4 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/es137x.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/es137x.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/hda/hdac.c#41 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/spicds.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pci/spicds.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/sound/pcm/dsp.c#12 integrate
.. //depot/projects/vimage/src/sys/dev/syscons/logo/beastie.c#1 branch
.. //depot/projects/vimage/src/sys/dev/syscons/logo/logo.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/syscons/logo/logo_saver.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/syscons/scvgarndr.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/syscons/scvidctl.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/syscons/syscons.c#19 integrate
.. //depot/projects/vimage/src/sys/dev/uart/uart.h#5 integrate
.. //depot/projects/vimage/src/sys/dev/uart/uart_cpu_sparc64.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/ubsec/ubsec.c#5 integrate
.. //depot/projects/vimage/src/sys/dev/usb/controller/ehci_pci.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/controller/ohci_pci.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/controller/ohci_s3c24x0.c#1 branch
.. //depot/projects/vimage/src/sys/dev/usb/controller/usb_controller.c#15 integrate
.. //depot/projects/vimage/src/sys/dev/usb/controller/uss820dci.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/usb/input/ukbd.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/usb/quirk/usb_quirk.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/serial/uftdi.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/usb/serial/uvisor.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/usb/template/usb_template.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/template/usb_template.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/usb/template/usb_template_mtp.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_compat_linux.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_device.c#19 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_device.h#16 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_generic.c#14 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usb_transfer.c#17 integrate
.. //depot/projects/vimage/src/sys/dev/usb/usbdevs#56 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_rum.c#13 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_rumvar.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_run.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_runreg.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_runvar.h#2 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_ural.c#13 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_uralvar.h#9 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_urtw.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_zyd.c#17 integrate
.. //depot/projects/vimage/src/sys/dev/usb/wlan/if_zydreg.h#8 integrate
.. //depot/projects/vimage/src/sys/dev/wpi/if_wpi.c#16 integrate
.. //depot/projects/vimage/src/sys/dev/wpi/if_wpivar.h#6 integrate
.. //depot/projects/vimage/src/sys/dev/xen/netback/netback.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/coda/cnode.h#4 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_subr.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_subr.h#3 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_venus.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_venus.h#4 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_vfsops.c#8 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_vfsops.h#3 integrate
.. //depot/projects/vimage/src/sys/fs/coda/coda_vnops.c#8 integrate
.. //depot/projects/vimage/src/sys/fs/deadfs/dead_vnops.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/fdescfs/fdesc_vnops.c#13 integrate
.. //depot/projects/vimage/src/sys/fs/msdosfs/msdosfs_vfsops.c#21 integrate
.. //depot/projects/vimage/src/sys/fs/nfs/nfs_commonport.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/nfs/nfs_commonsubs.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/nfs/nfs_var.h#6 integrate
.. //depot/projects/vimage/src/sys/fs/nfs/nfsport.h#9 integrate
.. //depot/projects/vimage/src/sys/fs/nfs/nfsrvstate.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/nfsserver/nfs_nfsdport.c#8 integrate
.. //depot/projects/vimage/src/sys/fs/nfsserver/nfs_nfsdserv.c#6 integrate
.. //depot/projects/vimage/src/sys/fs/nfsserver/nfs_nfsdstate.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_io.c#6 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_ioctl.c#2 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_mount.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_node.c#7 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_node.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_subr.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_subr.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_vfsops.c#6 integrate
.. //depot/projects/vimage/src/sys/fs/nwfs/nwfs_vnops.c#8 integrate
.. //depot/projects/vimage/src/sys/fs/procfs/procfs_dbregs.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/procfs/procfs_fpregs.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/procfs/procfs_ioctl.c#5 integrate
.. //depot/projects/vimage/src/sys/fs/procfs/procfs_map.c#12 integrate
.. //depot/projects/vimage/src/sys/fs/procfs/procfs_regs.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs.h#3 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_io.c#10 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_node.c#10 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_node.h#3 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_smb.c#4 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_subr.c#2 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_subr.h#2 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_vfsops.c#9 integrate
.. //depot/projects/vimage/src/sys/fs/smbfs/smbfs_vnops.c#9 integrate
.. //depot/projects/vimage/src/sys/geom/gate/g_gate.c#3 integrate
.. //depot/projects/vimage/src/sys/geom/geom_dump.c#3 integrate
.. //depot/projects/vimage/src/sys/geom/geom_io.c#11 integrate
.. //depot/projects/vimage/src/sys/geom/geom_vfs.c#7 integrate
.. //depot/projects/vimage/src/sys/geom/multipath/g_multipath.c#5 integrate
.. //depot/projects/vimage/src/sys/geom/vinum/geom_vinum.c#10 integrate
.. //depot/projects/vimage/src/sys/i386/acpica/acpi_machdep.c#15 integrate
.. //depot/projects/vimage/src/sys/i386/conf/GENERIC#40 integrate
.. //depot/projects/vimage/src/sys/i386/conf/NOTES#36 integrate
.. //depot/projects/vimage/src/sys/i386/conf/XEN#10 integrate
.. //depot/projects/vimage/src/sys/i386/i386/apic_vector.s#4 integrate
.. //depot/projects/vimage/src/sys/i386/i386/identcpu.c#21 integrate
.. //depot/projects/vimage/src/sys/i386/i386/local_apic.c#25 integrate
.. //depot/projects/vimage/src/sys/i386/i386/machdep.c#28 integrate
.. //depot/projects/vimage/src/sys/i386/i386/mca.c#3 integrate
.. //depot/projects/vimage/src/sys/i386/i386/mp_machdep.c#25 integrate
.. //depot/projects/vimage/src/sys/i386/i386/mpboot.s#2 integrate
.. //depot/projects/vimage/src/sys/i386/i386/pmap.c#35 integrate
.. //depot/projects/vimage/src/sys/i386/i386/trap.c#19 integrate
.. //depot/projects/vimage/src/sys/i386/ibcs2/ibcs2_stat.c#2 integrate
.. //depot/projects/vimage/src/sys/i386/include/apicvar.h#14 integrate
.. //depot/projects/vimage/src/sys/i386/include/bootinfo.h#3 integrate
.. //depot/projects/vimage/src/sys/i386/include/mca.h#3 integrate
.. //depot/projects/vimage/src/sys/i386/include/md_var.h#5 integrate
.. //depot/projects/vimage/src/sys/i386/include/pmc_mdep.h#7 integrate
.. //depot/projects/vimage/src/sys/i386/include/specialreg.h#18 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux.h#14 integrate
.. //depot/projects/vimage/src/sys/i386/linux/linux_sysvec.c#17 integrate
.. //depot/projects/vimage/src/sys/i386/xen/mp_machdep.c#16 integrate
.. //depot/projects/vimage/src/sys/ia64/conf/GENERIC#17 integrate
.. //depot/projects/vimage/src/sys/ia64/conf/NOTES#4 integrate
.. //depot/projects/vimage/src/sys/ia64/ia32/ia32_signal.c#2 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/autoconf.c#2 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/clock.c#6 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/db_machdep.c#7 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/exception.S#8 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/genassym.c#4 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/highfp.c#2 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/interrupt.c#12 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/locore.S#5 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/machdep.c#19 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/mp_machdep.c#13 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/nexus.c#7 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/pmap.c#17 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/sal.c#4 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/sapic.c#5 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/trap.c#7 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/vm_machdep.c#6 integrate
.. //depot/projects/vimage/src/sys/ia64/include/acpica_machdep.h#3 integrate
.. //depot/projects/vimage/src/sys/ia64/include/clock.h#4 integrate
.. //depot/projects/vimage/src/sys/ia64/include/cpufunc.h#4 integrate
.. //depot/projects/vimage/src/sys/ia64/include/elf.h#5 integrate
.. //depot/projects/vimage/src/sys/ia64/include/frame.h#2 integrate
.. //depot/projects/vimage/src/sys/ia64/include/intr.h#5 integrate
.. //depot/projects/vimage/src/sys/ia64/include/intrcnt.h#2 integrate
.. //depot/projects/vimage/src/sys/ia64/include/nexusvar.h#2 delete
.. //depot/projects/vimage/src/sys/ia64/include/pcb.h#2 integrate
.. //depot/projects/vimage/src/sys/ia64/include/pcpu.h#6 integrate
.. //depot/projects/vimage/src/sys/ia64/include/reg.h#2 integrate
.. //depot/projects/vimage/src/sys/ia64/include/smp.h#4 integrate
.. //depot/projects/vimage/src/sys/ia64/pci/pci_cfgreg.c#3 integrate
.. //depot/projects/vimage/src/sys/kern/imgact_elf.c#17 integrate
.. //depot/projects/vimage/src/sys/kern/init_main.c#32 integrate
.. //depot/projects/vimage/src/sys/kern/kern_alq.c#11 integrate
.. //depot/projects/vimage/src/sys/kern/kern_clock.c#23 integrate
.. //depot/projects/vimage/src/sys/kern/kern_event.c#15 integrate
.. //depot/projects/vimage/src/sys/kern/kern_exec.c#28 integrate
.. //depot/projects/vimage/src/sys/kern/kern_jail.c#39 integrate
.. //depot/projects/vimage/src/sys/kern/kern_ktr.c#2 integrate
.. //depot/projects/vimage/src/sys/kern/kern_module.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/kern_rwlock.c#21 integrate
.. //depot/projects/vimage/src/sys/kern/kern_sig.c#24 integrate
.. //depot/projects/vimage/src/sys/kern/kern_syscalls.c#3 integrate
.. //depot/projects/vimage/src/sys/kern/kern_thr.c#20 integrate
.. //depot/projects/vimage/src/sys/kern/kern_umtx.c#14 integrate
.. //depot/projects/vimage/src/sys/kern/subr_eventhandler.c#4 integrate
.. //depot/projects/vimage/src/sys/kern/subr_firmware.c#8 integrate
.. //depot/projects/vimage/src/sys/kern/sys_generic.c#19 integrate
.. //depot/projects/vimage/src/sys/kern/sys_pipe.c#15 integrate
.. //depot/projects/vimage/src/sys/kern/sys_process.c#15 integrate
.. //depot/projects/vimage/src/sys/kern/sysv_ipc.c#6 integrate
.. //depot/projects/vimage/src/sys/kern/sysv_msg.c#10 integrate
.. //depot/projects/vimage/src/sys/kern/sysv_sem.c#11 integrate
.. //depot/projects/vimage/src/sys/kern/sysv_shm.c#12 integrate
.. //depot/projects/vimage/src/sys/kern/tty_pts.c#23 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_mqueue.c#16 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_sem.c#11 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_shm.c#9 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_socket.c#46 integrate
.. //depot/projects/vimage/src/sys/kern/uipc_syscalls.c#34 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_aio.c#13 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_bio.c#28 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_default.c#15 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_lookup.c#33 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_subr.c#36 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_syscalls.c#35 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_vnops.c#31 integrate
.. //depot/projects/vimage/src/sys/libkern/iconv.c#4 integrate
.. //depot/projects/vimage/src/sys/libkern/iconv_converter_if.m#3 integrate
.. //depot/projects/vimage/src/sys/libkern/iconv_xlat.c#2 integrate
.. //depot/projects/vimage/src/sys/libkern/strcasecmp.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/atheros/if_arge.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/cavium/dev/rgmii/octeon_rgmx.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/cavium/octeon_ebt3000_cf.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/cavium/octeon_machdep.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/cavium/octeon_pcmap_regs.h#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/AR71XX#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/OCTEON1#2 integrate
.. //depot/projects/vimage/src/sys/mips/conf/OCTEON1-32#2 integrate
.. //depot/projects/vimage/src/sys/mips/include/bus.h#4 integrate
.. //depot/projects/vimage/src/sys/mips/include/clock.h#2 integrate
.. //depot/projects/vimage/src/sys/mips/include/cpu.h#3 integrate
.. //depot/projects/vimage/src/sys/mips/include/cpufunc.h#3 integrate
.. //depot/projects/vimage/src/sys/mips/include/cpuregs.h#3 integrate
.. //depot/projects/vimage/src/sys/mips/include/db_machdep.h#3 integrate
.. //depot/projects/vimage/src/sys/mips/include/kdb.h#3 integrate
.. //depot/projects/vimage/src/sys/mips/include/param.h#7 integrate
.. //depot/projects/vimage/src/sys/mips/include/pmap.h#7 integrate
.. //depot/projects/vimage/src/sys/mips/include/smp.h#5 integrate
.. //depot/projects/vimage/src/sys/mips/include/trap.h#3 integrate
.. //depot/projects/vimage/src/sys/mips/mips/busdma_machdep.c#6 integrate
.. //depot/projects/vimage/src/sys/mips/mips/db_trace.c#3 integrate
.. //depot/projects/vimage/src/sys/mips/mips/exception.S#3 integrate
.. //depot/projects/vimage/src/sys/mips/mips/mp_machdep.c#7 integrate
.. //depot/projects/vimage/src/sys/mips/mips/nexus.c#4 integrate
.. //depot/projects/vimage/src/sys/mips/mips/pm_machdep.c#4 integrate
.. //depot/projects/vimage/src/sys/mips/mips/pmap.c#17 integrate
.. //depot/projects/vimage/src/sys/mips/mips/support.S#4 integrate
.. //depot/projects/vimage/src/sys/mips/mips/swtch.S#3 integrate
.. //depot/projects/vimage/src/sys/mips/mips/tick.c#4 integrate
.. //depot/projects/vimage/src/sys/mips/mips/trap.c#5 integrate
.. //depot/projects/vimage/src/sys/mips/mips/vm_machdep.c#3 integrate
.. //depot/projects/vimage/src/sys/mips/sibyte/sb_asm.S#2 integrate
.. //depot/projects/vimage/src/sys/mips/sibyte/sb_machdep.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/sibyte/sb_scd.c#2 integrate
.. //depot/projects/vimage/src/sys/mips/sibyte/sb_scd.h#2 integrate
.. //depot/projects/vimage/src/sys/modules/Makefile#57 integrate
.. //depot/projects/vimage/src/sys/modules/acpi/acpi/Makefile#10 integrate
.. //depot/projects/vimage/src/sys/modules/alq/Makefile#1 branch
.. //depot/projects/vimage/src/sys/modules/dummynet/Makefile#3 integrate
.. //depot/projects/vimage/src/sys/modules/em/Makefile#7 integrate
.. //depot/projects/vimage/src/sys/modules/hwpmc/Makefile#5 integrate
.. //depot/projects/vimage/src/sys/modules/iwnfw/iwn6000/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/ixgbe/Makefile#7 integrate
.. //depot/projects/vimage/src/sys/modules/linux/Makefile#9 integrate
.. //depot/projects/vimage/src/sys/modules/procfs/Makefile#3 integrate
.. //depot/projects/vimage/src/sys/modules/syscons/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/modules/syscons/beastie/Makefile#1 branch
.. //depot/projects/vimage/src/sys/modules/wlan/Makefile#12 integrate
.. //depot/projects/vimage/src/sys/modules/zfs/Makefile#12 integrate
.. //depot/projects/vimage/src/sys/net/bpf.c#46 integrate
.. //depot/projects/vimage/src/sys/net/flowtable.c#11 integrate
.. //depot/projects/vimage/src/sys/net/flowtable.h#9 integrate
.. //depot/projects/vimage/src/sys/net/if.c#95 integrate
.. //depot/projects/vimage/src/sys/net/if.h#15 integrate
.. //depot/projects/vimage/src/sys/net/if_clone.c#19 integrate
.. //depot/projects/vimage/src/sys/net/if_epair.c#11 integrate
.. //depot/projects/vimage/src/sys/net/if_lagg.c#24 integrate
.. //depot/projects/vimage/src/sys/net/if_llatbl.c#12 integrate
.. //depot/projects/vimage/src/sys/net/if_llatbl.h#7 integrate
.. //depot/projects/vimage/src/sys/net/if_media.h#10 integrate
.. //depot/projects/vimage/src/sys/net/if_tap.c#16 integrate
.. //depot/projects/vimage/src/sys/net/if_tun.c#23 integrate
.. //depot/projects/vimage/src/sys/net/if_var.h#49 integrate
.. //depot/projects/vimage/src/sys/net/if_vlan.c#26 integrate
.. //depot/projects/vimage/src/sys/net/radix.c#6 integrate
.. //depot/projects/vimage/src/sys/net/radix.h#5 integrate
.. //depot/projects/vimage/src/sys/net/radix_mpath.c#7 integrate
.. //depot/projects/vimage/src/sys/net/route.c#59 integrate
.. //depot/projects/vimage/src/sys/net/route.h#14 integrate
.. //depot/projects/vimage/src/sys/net/vnet.c#7 integrate
.. //depot/projects/vimage/src/sys/net/vnet.h#34 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211.c#43 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_adhoc.c#15 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_amrr.c#5 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_amrr.h#3 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto_ccmp.c#9 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_crypto_tkip.c#10 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_freebsd.h#21 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_hostap.c#18 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ht.c#19 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_input.c#23 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ioctl.c#31 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_mesh.c#4 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#28 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_node.h#20 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_proto.c#22 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ratectl.c#1 branch
.. //depot/projects/vimage/src/sys/net80211/ieee80211_ratectl.h#1 branch
.. //depot/projects/vimage/src/sys/net80211/ieee80211_rssadapt.c#2 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_rssadapt.h#2 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_sta.c#19 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_tdma.c#9 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_var.h#35 integrate
.. //depot/projects/vimage/src/sys/netgraph/netflow/ng_netflow.c#8 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_deflate.c#4 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_ksocket.c#7 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_l2tp.c#10 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_mppc.c#8 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_pipe.c#12 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_pipe.h#5 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_ppp.c#12 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_pptpgre.c#5 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_socket.c#8 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_socketvar.h#2 integrate
.. //depot/projects/vimage/src/sys/netgraph/ng_tcpmss.c#4 integrate
.. //depot/projects/vimage/src/sys/netinet/if_ether.c#52 integrate
.. //depot/projects/vimage/src/sys/netinet/in.c#45 integrate
.. //depot/projects/vimage/src/sys/netinet/in.h#14 integrate
.. //depot/projects/vimage/src/sys/netinet/in_mcast.c#36 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.c#66 integrate
.. //depot/projects/vimage/src/sys/netinet/in_pcb.h#38 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_divert.c#41 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_fw.h#40 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_input.c#66 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_ipsec.c#28 integrate
.. //depot/projects/vimage/src/sys/netinet/ip_output.c#47 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/dn_heap.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/dn_heap.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/dn_sched.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/dn_sched_prio.c#1 branch
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dn_glue.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dn_io.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dn_private.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_dummynet.c#7 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw2.c#12 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_dynamic.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_log.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_private.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_sockopt.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/ip_fw_table.c#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/test/Makefile#2 integrate
.. //depot/projects/vimage/src/sys/netinet/ipfw/test/dn_test.h#2 integrate
.. //depot/projects/vimage/src/sys/netinet/raw_ip.c#55 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_asconf.c#23 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_constants.h#30 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_crc32.c#15 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_crc32.h#7 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#39 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.h#11 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_input.c#38 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_output.c#44 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_output.h#17 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_pcb.c#42 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_pcb.h#25 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_structs.h#24 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_sysctl.c#21 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_uio.h#28 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_usrreq.c#39 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_var.h#24 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.c#43 integrate
.. //depot/projects/vimage/src/sys/netinet/sctputil.h#23 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_input.c#61 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_reass.c#18 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_subr.c#91 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_timer.c#32 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_timewait.c#38 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_usrreq.c#41 integrate
.. //depot/projects/vimage/src/sys/netinet/tcp_var.h#41 integrate
.. //depot/projects/vimage/src/sys/netinet/udp_usrreq.c#61 integrate
.. //depot/projects/vimage/src/sys/netinet6/in6.c#48 integrate
.. //depot/projects/vimage/src/sys/netinet6/ip6_output.c#37 integrate
.. //depot/projects/vimage/src/sys/netinet6/mld6.c#34 integrate
.. //depot/projects/vimage/src/sys/netinet6/nd6.c#61 integrate
.. //depot/projects/vimage/src/sys/netinet6/sctp6_usrreq.c#32 integrate
.. //depot/projects/vimage/src/sys/netipsec/ipsec.c#53 integrate
.. //depot/projects/vimage/src/sys/netipsec/key.c#50 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_conn.c#6 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_conn.h#3 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_file.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_lib.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_login.c#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_ncp.c#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_ncp.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_nls.c#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_nls.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_rcfile.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_rq.c#4 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_rq.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_sock.c#7 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_sock.h#3 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_subr.c#3 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_subr.h#2 integrate
.. //depot/projects/vimage/src/sys/netncp/ncp_user.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/netbios.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_conn.c#4 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_conn.h#4 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_dev.c#8 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_dev.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_iod.c#5 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_rq.c#4 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_rq.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_smb.c#3 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_subr.c#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_subr.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_tran.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_trantcp.c#7 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_trantcp.h#2 integrate
.. //depot/projects/vimage/src/sys/netsmb/smb_usr.c#2 integrate
.. //depot/projects/vimage/src/sys/nfsserver/nfs_srvsubs.c#20 integrate
.. //depot/projects/vimage/src/sys/pc98/cbus/clock.c#11 integrate
.. //depot/projects/vimage/src/sys/pc98/conf/GENERIC#25 integrate
.. //depot/projects/vimage/src/sys/pc98/pc98/machdep.c#16 integrate
.. //depot/projects/vimage/src/sys/pci/if_rlreg.h#24 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/interrupt.c#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/machdep.c#16 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/mmu_oea64.c#6 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/nexus.c#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/ofw_machdep.c#8 integrate
.. //depot/projects/vimage/src/sys/powerpc/booke/interrupt.c#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/booke/machdep.c#12 integrate
.. //depot/projects/vimage/src/sys/powerpc/booke/trap_subr.S#5 integrate
.. //depot/projects/vimage/src/sys/powerpc/conf/GENERIC#29 integrate
.. //depot/projects/vimage/src/sys/powerpc/mpc85xx/ocpbus.c#8 integrate
.. //depot/projects/vimage/src/sys/powerpc/mpc85xx/ocpbus.h#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/mpc85xx/pci_ocp.c#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/ofw/ofw_real.c#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/ofw/ofw_syscons.c#8 integrate
.. //depot/projects/vimage/src/sys/powerpc/powermac/cuda.c#6 integrate
.. //depot/projects/vimage/src/sys/powerpc/powermac/cudavar.h#4 integrate
.. //depot/projects/vimage/src/sys/powerpc/powermac/pmu.c#6 integrate
.. //depot/projects/vimage/src/sys/powerpc/powermac/smu.c#3 integrate
.. //depot/projects/vimage/src/sys/powerpc/powermac/uninorth.c#8 integrate
.. //depot/projects/vimage/src/sys/powerpc/powerpc/cpu.c#14 integrate
.. //depot/projects/vimage/src/sys/rpc/svc.c#6 integrate
.. //depot/projects/vimage/src/sys/sparc64/conf/GENERIC#28 integrate
.. //depot/projects/vimage/src/sys/sparc64/conf/NOTES#5 integrate
.. //depot/projects/vimage/src/sys/sparc64/fhc/fhc.c#9 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/dcr.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/lsu.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/tlb.h#5 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/tte.h#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/ver.h#5 integrate
.. //depot/projects/vimage/src/sys/sparc64/include/wstate.h#2 integrate
.. //depot/projects/vimage/src/sys/sparc64/pci/apb.c#7 integrate
.. //depot/projects/vimage/src/sys/sparc64/pci/psycho.c#18 integrate
.. //depot/projects/vimage/src/sys/sparc64/pci/sbbc.c#1 branch
.. //depot/projects/vimage/src/sys/sparc64/pci/schizo.c#8 integrate
.. //depot/projects/vimage/src/sys/sparc64/pci/schizovar.h#4 integrate
.. //depot/projects/vimage/src/sys/sparc64/sbus/sbus.c#12 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/cheetah.c#7 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/exception.S#7 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/genassym.c#9 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/locore.S#6 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/machdep.c#20 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/ofw_machdep.c#5 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/pmap.c#17 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/support.S#7 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/swtch.S#6 integrate
.. //depot/projects/vimage/src/sys/sparc64/sparc64/trap.c#12 integrate
.. //depot/projects/vimage/src/sys/sun4v/conf/GENERIC#22 integrate
.. //depot/projects/vimage/src/sys/sun4v/sun4v/machdep.c#12 integrate
.. //depot/projects/vimage/src/sys/sys/_timespec.h#2 integrate
.. //depot/projects/vimage/src/sys/sys/eventhandler.h#10 integrate
.. //depot/projects/vimage/src/sys/sys/iconv.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/imgact.h#6 integrate
.. //depot/projects/vimage/src/sys/sys/ioccom.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/mchain.h#2 integrate
.. //depot/projects/vimage/src/sys/sys/param.h#64 integrate
.. //depot/projects/vimage/src/sys/sys/pcpu.h#16 integrate
.. //depot/projects/vimage/src/sys/sys/pioctl.h#2 integrate
.. //depot/projects/vimage/src/sys/sys/pmc.h#12 integrate
.. //depot/projects/vimage/src/sys/sys/proc.h#40 integrate
.. //depot/projects/vimage/src/sys/sys/ptrace.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/stat.h#5 integrate
.. //depot/projects/vimage/src/sys/sys/sysent.h#12 integrate
.. //depot/projects/vimage/src/sys/sys/timeb.h#3 integrate
.. //depot/projects/vimage/src/sys/sys/timespec.h#2 integrate
.. //depot/projects/vimage/src/sys/sys/vnode.h#28 integrate
.. //depot/projects/vimage/src/sys/sys/vtoc.h#3 integrate
.. //depot/projects/vimage/src/sys/teken/teken.c#4 integrate
.. //depot/projects/vimage/src/sys/ufs/ffs/ffs_vfsops.c#26 integrate
.. //depot/projects/vimage/src/sys/vm/memguard.c#3 integrate
.. //depot/projects/vimage/src/sys/vm/memguard.h#2 integrate
.. //depot/projects/vimage/src/sys/vm/uma_int.h#5 integrate
.. //depot/projects/vimage/src/sys/vm/vm_contig.c#14 integrate
.. //depot/projects/vimage/src/sys/vm/vm_extern.h#11 integrate
.. //depot/projects/vimage/src/sys/vm/vm_fault.c#22 integrate
.. //depot/projects/vimage/src/sys/vm/vm_glue.c#14 integrate
.. //depot/projects/vimage/src/sys/vm/vm_map.c#23 integrate
.. //depot/projects/vimage/src/sys/vm/vm_map.h#11 integrate
.. //depot/projects/vimage/src/sys/vm/vm_mmap.c#24 integrate
.. //depot/projects/vimage/src/sys/vm/vm_page.c#27 integrate
.. //depot/projects/vimage/src/sys/vm/vm_pageout.c#21 integrate
.. //depot/projects/vimage/src/sys/x86/isa/clock.c#2 integrate
.. //depot/projects/vimage/src/usr.bin/kdump/kdump.c#5 integrate
Differences ...
==== //depot/projects/vimage/src/share/man/man3/pthread_affinity_np.3#2 (text+ko) ====
@@ -23,9 +23,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man3/pthread_affinity_np.3,v 1.2 2010/01/12 18:07:12 brueffer Exp $
+.\" $FreeBSD: src/share/man/man3/pthread_affinity_np.3,v 1.3 2010/03/23 18:00:50 delphij Exp $
.\"
-.Dd January 12, 2010
+.Dd March 23, 2010
.Dt PTHREAD_AFFINITY_NP 3
.Os
.Sh NAME
@@ -125,8 +125,8 @@
.Xr cpuset_setid 2 ,
.Xr CPU_SET 3 ,
.Xr pthread 3 ,
-.Xr pthread_attr_get_affinity_np 3 ,
-.Xr pthread_attr_set_affinity_np 3
+.Xr pthread_attr_getaffinity_np 3 ,
+.Xr pthread_attr_setaffinity_np 3
.Sh STANDARDS
The
.Nm pthread_getaffinity_np
==== //depot/projects/vimage/src/share/man/man4/acpi.4#4 (text+ko) ====
@@ -23,9 +23,9 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.63 2010/01/15 16:01:22 ru Exp $
+.\" $FreeBSD: src/share/man/man4/acpi.4,v 1.64 2010/03/09 19:19:07 jkim Exp $
.\"
-.Dd June 8, 2009
+.Dd March 9, 2010
.Dt ACPI 4
.Os
.Sh NAME
@@ -62,6 +62,10 @@
.Nm
behavior.
.Bl -tag -width indent
+.It Va debug.acpi.enable_debug_objects
+Enable dumping Debug objects without
+.Cd "options ACPI_DEBUG" .
+Default is 0, ignore Debug objects.
.It Va hw.acpi.acline
AC line state (1 means online, 0 means on battery power).
.It Va hw.acpi.cpu.cx_usage
@@ -197,6 +201,9 @@
Name of the DSDT table to load, if loading is enabled.
.It Va debug.acpi.disabled
Selectively disables portions of ACPI for debugging purposes.
+.It Va debug.acpi.interpreter_slack
+Enable less strict ACPI implementations.
+Default is 1, ignore common BIOS mistakes.
.It Va debug.acpi.max_threads
Specify the number of task threads that are started on boot.
Limiting this to 1 may help work around various BIOSes that cannot
==== //depot/projects/vimage/src/share/man/man4/acpi_wmi.4#4 (text+ko) ====
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/share/man/man4/acpi_wmi.4,v 1.5 2010/02/08 21:01:41 gavin Exp $
+.\" $FreeBSD: src/share/man/man4/acpi_wmi.4,v 1.6 2010/03/12 10:01:06 uqs Exp $
.\"
.Dd February 8, 2010
.Dt ACPI_WMI 4
@@ -57,7 +57,7 @@
WMI status device.
.El
.Sh EXAMPLES
-.Bd Literal
+.Bd -literal
# cat /dev/wmistat
GUID INST EXPE METH STR EVENT OID
{5FB7F034-2C63-45E9-BE91-3D44E2C707E4} 1 NO WMAA NO NO AA
==== //depot/projects/vimage/src/share/man/man4/altq.4#9 (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/man4/altq.4,v 1.42 2009/07/26 12:20:07 bz Exp $
+.\" $FreeBSD: src/share/man/man4/altq.4,v 1.43 2010/03/12 10:01:06 uqs Exp $
.\"
.Dd July 26, 2009
.Dt ALTQ 4
@@ -121,7 +121,7 @@
.Xr an 4 ,
.Xr ath 4 ,
.Xr aue 4 ,
-.Xt axe 4 ,
+.Xr axe 4 ,
.Xr bce 4 ,
.Xr bfe 4 ,
.Xr bge 4 ,
==== //depot/projects/vimage/src/share/man/man4/amdtemp.4#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/man4/amdtemp.4,v 1.1 2009/03/13 16:42:24 rpaulo Exp $
+.\" $FreeBSD: src/share/man/man4/amdtemp.4,v 1.2 2010/03/12 10:01:06 uqs Exp $
.\"
.Dd April 8, 2008
.Dt AMDTEMP 4
@@ -75,6 +75,5 @@
driver first appeared in
.Fx 7.1 .
.Sh AUTHORS
-.An
.An Rui Paulo Aq rpaulo@FreeBSD.org
.An Norikatsu Shigemura Aq nork@FreeBSD.org
==== //depot/projects/vimage/src/share/man/man4/ath.4#7 (text+ko) ====
@@ -26,9 +26,9 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
.\" THE POSSIBILITY OF SUCH DAMAGES.
.\"
-.\" $FreeBSD: src/share/man/man4/ath.4,v 1.51 2010/01/12 17:59:58 gavin Exp $
+.\" $FreeBSD: src/share/man/man4/ath.4,v 1.52 2010/03/21 17:53:54 sam Exp $
.\"/
-.Dd July 8, 2009
+.Dd March 21, 2010
.Dt ATH 4
.Os
.Sh NAME
@@ -145,15 +145,6 @@
A list of cards that are supported can be found at
.Pa http://customerproducts.atheros.com/customerproducts/default.asp .
.Sh EXAMPLES
-Join an existing BSS network (ie: connect to an access point):
-.Pp
-.Dl "ifconfig ath0 inet 192.168.0.20 netmask 0xffffff00"
-.Pp
-Join a specific BSS network with network name
-.Dq Li my_net :
-.Pp
-.Dl "ifconfig ath0 inet 192.168.0.20 netmask 0xffffff00 ssid my_net"
-.Pp
Join a specific BSS network with WEP encryption:
.Bd -literal -offset indent
ifconfig wlan0 create wlandev ath0
==== //depot/projects/vimage/src/share/man/man4/cxgb.4#2 (text+ko) ====
@@ -29,7 +29,7 @@
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
-.\" $FreeBSD: src/share/man/man4/cxgb.4,v 1.9 2008/12/12 05:45:39 kmacy Exp $
+.\" $FreeBSD: src/share/man/man4/cxgb.4,v 1.10 2010/03/12 10:01:06 uqs Exp $
>>> TRUNCATED FOR MAIL (1000 lines) <<<
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 12:30:55 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 7D5551065674; Mon, 12 Apr 2010 12:30:55 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 291261065670
for ; Mon, 12 Apr 2010 12:30:55 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 155FA8FC13
for ; Mon, 12 Apr 2010 12:30:55 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CCUsru029148
for ; Mon, 12 Apr 2010 12:30:54 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3CCUsIX029146
for perforce@freebsd.org; Mon, 12 Apr 2010 12:30:54 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Mon, 12 Apr 2010 12:30:54 GMT
Message-Id: <201004121230.o3CCUsIX029146@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176831 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, 12 Apr 2010 12:30:55 -0000
http://p4web.freebsd.org/@@176831?ac=10
Change 176831 by gcooper@gcooper-bayonetta on 2010/04/12 12:30:36
Introducing ... unpack_file_to_fd!
A shortcut from the atypical unpack operation as extracting a single file from the beginning of a large tarfile is really braindead, so let's extract the file to disk and return a file descriptor instead :) (can't seem to find a file descriptor returning analog with libarchive... hrmmm...).
Overall it could potentially stand to be aligned with the exit code convention from unpack, but for now it works just fine.
bde@-ify headers and fields while I'm at it so things are properly ordered and aligned in memory a tad bit better.
Sidenote: we'll need to implement similar logic with info/perform.c with a small user-defined loop of all potential metadata files so we don't get killed off performance-wise when reading large tarballs like we are today with unpack.
Suggested-by: kientzle
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#5 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#11 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/lib.h#5 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#5 (text+ko) ====
@@ -60,23 +60,23 @@
static int
pkg_do(char *pkg)
{
+ struct stat sb;
Package Plist;
+ PackingList p;
char pkg_fullname[FILENAME_MAX];
char playpen[FILENAME_MAX];
+ char pre_script[FILENAME_MAX] = INSTALL_FNAME;
+ char post_script[FILENAME_MAX];
+ char pre_arg[FILENAME_MAX], post_arg[FILENAME_MAX];
+ char *conflict[2];
+ char **matched;
char *extract;
const char *where_to;
FILE *cfile;
int code;
- PackingList p;
- struct stat sb;
int inPlace, conflictsfound, errcode;
/* support for separate pre/post install scripts */
int new_m = 0;
- char pre_script[FILENAME_MAX] = INSTALL_FNAME;
- char post_script[FILENAME_MAX];
- char pre_arg[FILENAME_MAX], post_arg[FILENAME_MAX];
- char *conflict[2];
- char **matched;
int fd;
conflictsfound = 0;
@@ -107,7 +107,6 @@
warnx("unable to fetch '%s' by URL", pkg);
return 1;
}
- strcpy(pkg_fullname, pkg);
cfile = fopen(CONTENTS_FNAME, "r");
if (!cfile) {
warnx(
@@ -119,33 +118,38 @@
fclose(cfile);
}
else {
- strcpy(pkg_fullname, pkg); /*
- * Copy for sanity's sake,
- * could remove pkg_fullname
- */
- if (strcmp(pkg, "-")) {
- if (stat(pkg_fullname, &sb) == FAIL) {
- warnx("can't stat package file '%s'", pkg_fullname);
+
+ /*
+ * If TRUE: We have to extract the whole thing to disk because
+ * this could be our one and only shot to do so...
+ */
+ Boolean extract_whole_archive_from_stdin = FALSE;
+
+ if (strcmp(pkg, "-") == 0) {
+ extract_whole_archive_from_stdin = TRUE;
+ sb.st_size = 100000; /* Make up a plausible average size */
+ } else {
+ if (stat(pkg, &sb) == FAIL) {
+ warnx("can't stat package file '%s'", pkg);
goto bomb;
}
- extract = CONTENTS_FNAME;
- }
- else {
- extract = NULL;
- sb.st_size = 100000; /* Make up a plausible average size */
}
if (!(where_to = make_playpen(playpen, sb.st_size * 4)))
errx(1, "unable to make playpen for %lld bytes", (long long)sb.st_size * 4);
/* Since we can call ourselves recursively, keep notes on where we came from */
if (!getenv("_TOP"))
setenv("_TOP", where_to, 1);
- if (unpack(pkg_fullname, extract)) {
- warnx(
- "unable to extract table of contents file from '%s' - not a package?",
- pkg_fullname);
- goto bomb;
- }
- cfile = fopen(CONTENTS_FNAME, "r");
+ if (extract_whole_archive_from_stdin == TRUE) {
+ if (unpack(NULL, NULL) == 0)
+ cfile = fopen(CONTENTS_FNAME, "r");
+ else {
+ warnx("unable to extract table of contents file from '%s' "
+ "- not a package?", pkg);
+ goto bomb;
+ }
+ } else
+ cfile = unpack_file_to_fd(pkg, CONTENTS_FNAME);
+
if (!cfile) {
warnx(
"unable to open table of contents file '%s' - not a package?",
@@ -158,7 +162,7 @@
/* Extract directly rather than moving? Oh goodie! */
if (find_plist_option(&Plist, "extract-in-place")) {
if (Verbose)
- printf("Doing in-place extraction for %s\n", pkg_fullname);
+ printf("Doing in-place extraction for %s\n", pkg);
p = find_plist(&Plist, PLIST_CWD);
if (p) {
if (!isdir(p->name) && !Fake) {
@@ -174,9 +178,8 @@
inPlace = 1;
}
else {
- warnx(
- "no prefix specified in '%s' - this is a bad package!",
- pkg_fullname);
+ warnx("no prefix specified in '%s' - this is a bad "
+ "package!", pkg);
goto bomb;
}
}
@@ -192,7 +195,7 @@
"Please set your PKG_TMPDIR variable to point to a location with more\n"
"free space and try again", (long long)sb.st_size * 4);
warnx("not extracting %s\ninto %s, sorry!",
- pkg_fullname, where_to);
+ pkg, where_to);
goto bomb;
}
@@ -202,8 +205,8 @@
/* Finally unpack the whole mess. If extract is null we
already + did so so don't bother doing it again. */
- if (extract && unpack(pkg_fullname, NULL)) {
- warnx("unable to extract '%s'!", pkg_fullname);
+ if (extract && unpack(pkg, NULL)) {
+ warnx("unable to extract '%s'!", pkg);
goto bomb;
}
}
@@ -370,13 +373,13 @@
else if ((cp = fileGetURL(pkg, p->name, KeepPackage)) != NULL) {
if (Verbose)
printf("Finished loading %s via a URL\n", p->name);
- if (!fexists("+CONTENTS")) {
- warnx("autoloaded package %s has no +CONTENTS file?",
- p->name);
+ if (!fexists(CONTENTS_FNAME)) {
+ warnx("autoloaded package %s has no %s file?",
+ p->name, CONTENTS_FNAME);
if (!Force)
++code;
}
- else if (vsystem("(pwd; /bin/cat +CONTENTS) | %s %s %s %s -S", PkgAddCmd, Verbose ? "-v" : "", PrefixRecursive ? prefixArg : "", KeepPackage ? "-K" : "")) {
+ else if (vsystem("(pwd; /bin/cat " CONTENTS_FNAME ") | %s %s %s %s -S", PkgAddCmd, Verbose ? "-v" : "", PrefixRecursive ? prefixArg : "", KeepPackage ? "-K" : "")) {
warnx("pkg_add of dependency '%s' failed%s",
p->name, Force ? " (proceeding anyway)" : "!");
if (!Force)
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#11 (text+ko) ====
@@ -22,13 +22,13 @@
__FBSDID("$FreeBSD: src/usr.sbin/pkg_install/lib/file.c,v 1.70 2010/04/01 14:27:29 flz Exp $");
#include "lib.h"
+#include
#include
#include
#include
#include
#include
#include
-#include
/* Quick check to see if a file exists */
Boolean
@@ -341,13 +341,116 @@
ARCHIVE_EXTRACT_TIME |ARCHIVE_EXTRACT_ACL | \
ARCHIVE_EXTRACT_FFLAGS|ARCHIVE_EXTRACT_XATTR)
-/* Unpack a tar file */
+/*
+ * Unpack a single file from a tar-file to a file descriptor; this is written
+ * like so as an optimization to abbreviate the extract to *open step, as well
+ * as to reduce the number of required steps needed when unpacking a tarball on
+ * disk, as the previous method employed with tar(1) used -q // --fast-read .
+ *
+ * Return NULL on failure, and non-NULL on success
+ *
+ * XXX (gcooper): this is currently implemented with FILE* / fopen(3) due to
+ * legacy issues that need to be sorted out over the next couple of weeks for
+ * 1) locking to function properly, and to gain the potential performance boost
+ * by using mmap(2), and read(2) (ugh).
+ *
+ * But first things first, we need a working solution with minimal changes;
+ * then we move on from there.
+ *
+ * [The return code info will eventually be...]
+ *
+ * Return -1 on failure, a value greater than 0 on success [in accordance with
+ * open(2)].
+ */
+FILE*
+unpack_file_to_fd(const char *pkg, const char *file)
+{
+ struct archive *archive;
+ struct archive_entry *archive_entry;
+ Boolean found_match = FALSE;
+
+ const char *entry_pathname = NULL;
+ const char *error = NULL;
+ const char *pkg_name_humanized;
+
+ FILE *fd = NULL;
+ /* int fd = -1; */
+ int r;
+
+ if (Verbose)
+ printf("%s: will extract %s from %s\n", __func__, file, pkg);
+
+ archive = archive_read_new();
+ archive_read_support_compression_all(archive);
+ archive_read_support_format_tar(archive);
+
+ /* The initial open failed */
+ if (archive_read_open_filename(archive, pkg,
+ ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) {
+
+ error = archive_error_string(archive);
+ warnx("%s: unable to open the package from %s: %s",
+ __func__, pkg_name_humanized, error);
+
+ }
+ else
+ while (error == NULL && found_match == FALSE &&
+ (r = archive_read_next_header(archive, &archive_entry)) ==
+ ARCHIVE_OK) {
+
+ entry_pathname = archive_entry_pathname(archive_entry);
+
+ if (strncmp(file, entry_pathname, PATH_MAX) == 0) {
+
+ /*
+ * Regardless of whether or not extract passes,
+ * we found our target file so let's exit
+ * quickly because the underlying issue is most
+ * likely unrecoverable.
+ */
+ found_match = TRUE;
+
+ r = archive_read_extract(archive, archive_entry,
+ EXTRACT_ARCHIVE_FLAGS);
+ if (r == ARCHIVE_OK) {
+ if (Verbose)
+ printf("X - %s\n",
+ entry_pathname);
+ fd = fopen(entry_pathname, "r");
+ } else {
+ error = archive_error_string(archive);
+ warnx("%s: extraction for %s failed: "
+ "%s", __func__, pkg_name_humanized,
+ error);
+ }
+
+ } else
+ if (Verbose)
+ printf("S - %s\n", entry_pathname);
+
+ }
+
+ archive_read_finish(archive);
+
+ return fd;
+
+}
+
+/*
+ * Unpack a tar file, or a subset of the contents.
+ *
+ * Return 0 on success, 1 on failure
+ *
+ * NOTE: the exit code is 0 / 1 so that this can be fed directly into exit
+ * when doing piped tar commands for copying hierarchies *hint*, *hint*.
+ */
int
unpack(const char *pkg, const char *file_expr)
{
struct archive *archive;
struct archive_entry *archive_entry;
Boolean extract_whole_archive = FALSE;
+ const char *entry_pathname = NULL;
const char *error = NULL;
const char *pkg_name_humanized;
int r;
@@ -355,19 +458,21 @@
if (file_expr == NULL || strcmp("*", file_expr) == 0)
extract_whole_archive = TRUE;
+ if (pkg == NULL || strcmp(pkg, "-") == 0)
+ pkg_name_humanized = "(stdin)";
+ else
+ pkg_name_humanized = pkg;
+
if (Verbose) {
if (extract_whole_archive)
- printf("%s: will extract whole archive\n", __func__);
+ printf("%s: %s - will extract whole archive\n",
+ pkg_name_humanized, __func__);
else
- printf("%s: will extract files that match: %s\n",
- __func__, file_expr);
+ printf("%s: %s - will extract files that match "
+ "expression: %s\n",
+ pkg_name_humanized, __func__, file_expr);
}
- if (pkg == NULL || strcmp(pkg, "-") == 0)
- pkg_name_humanized = "(stdin)";
- else
- pkg_name_humanized = pkg;
-
archive = archive_read_new();
archive_read_support_compression_all(archive);
archive_read_support_format_tar(archive);
@@ -386,29 +491,29 @@
(r = archive_read_next_header(archive, &archive_entry)) ==
ARCHIVE_OK) {
+ entry_pathname = archive_entry_pathname(archive_entry);
+
/* Let's extract the whole archive, or just a file. */
if (extract_whole_archive == TRUE ||
- (fnmatch(file_expr,
- archive_entry_pathname(archive_entry),
- FNM_PATHNAME) == 0)) {
+ (fnmatch(file_expr, entry_pathname,
+ FNM_PATHNAME)) == 0) {
r = archive_read_extract(archive, archive_entry,
EXTRACT_ARCHIVE_FLAGS);
- if (r != ARCHIVE_OK) {
+ if (r == ARCHIVE_OK) {
+ if (Verbose)
+ printf("X - %s\n",
+ entry_pathname);
+ } else {
error = archive_error_string(archive);
warnx("%s: extraction for %s failed: "
"%s", __func__, pkg_name_humanized,
error);
}
- if (Verbose) {
- printf("X - %s\n",
- archive_entry_pathname(archive_entry));
- }
- } else if (Verbose) {
- printf("S - %s\n",
- archive_entry_pathname(archive_entry));
- }
+ } else
+ if (Verbose)
+ printf("S - %s\n", entry_pathname);
}
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/lib.h#5 (text+ko) ====
@@ -188,6 +188,7 @@
void copy_hierarchy(const char *, const char *, Boolean);
int delete_hierarchy(const char *, Boolean, Boolean);
int unpack(const char *, const char *);
+FILE* unpack_file_to_fd(const char*, const char *);
void format_cmd(char *, int, const char *, const char *, const char *);
/* Msg */
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 13:14:39 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 5D8AD1065672; Mon, 12 Apr 2010 13:14:39 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 22301106566B
for ; Mon, 12 Apr 2010 13:14:39 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 0FF628FC0A
for ; Mon, 12 Apr 2010 13:14:39 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CDEcBh043983
for ; Mon, 12 Apr 2010 13:14:38 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3CDEcrG043981
for perforce@freebsd.org; Mon, 12 Apr 2010 13:14:38 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Mon, 12 Apr 2010 13:14:38 GMT
Message-Id: <201004121314.o3CDEcrG043981@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176833 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, 12 Apr 2010 13:14:39 -0000
http://p4web.freebsd.org/@@176833?ac=10
Change 176833 by gcooper@gcooper-bayonetta on 2010/04/12 13:13:57
Remove all leftover references to pkg_fullname; there's no reason why we need another copy of pkg hanging around.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#6 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/add/perform.c#6 (text+ko) ====
@@ -63,7 +63,6 @@
struct stat sb;
Package Plist;
PackingList p;
- char pkg_fullname[FILENAME_MAX];
char playpen[FILENAME_MAX];
char pre_script[FILENAME_MAX] = INSTALL_FNAME;
char post_script[FILENAME_MAX];
@@ -345,7 +344,7 @@
if (!isURL(pkg) && !getenv("PKG_ADD_BASE")) {
const char *ext;
- ext = strrchr(pkg_fullname, '.');
+ ext = strrchr(pkg, '.');
if (ext == NULL)
ext = ".tbz";
snprintf(path, FILENAME_MAX, "%s/%s%s", getenv("_TOP"), p->name, ext);
@@ -417,7 +416,7 @@
if (Verbose)
printf("Running requirements file first for %s..\n", Plist.name);
if (!Fake && vsystem("./%s %s INSTALL", REQUIRE_FNAME, Plist.name)) {
- warnx("package %s fails requirements %s", pkg_fullname,
+ warnx("package %s fails requirements %s", pkg,
Force ? "installing anyway" : "- not installed");
if (!Force) {
code = 1;
From owner-p4-projects@FreeBSD.ORG Mon Apr 12 13:38:03 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id DED6C1065679; Mon, 12 Apr 2010 13:38:02 +0000 (UTC)
Delivered-To: perforce@FreeBSD.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id A30F91065677
for ; Mon, 12 Apr 2010 13:38:02 +0000 (UTC)
(envelope-from gcooper@FreeBSD.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id 912B38FC15
for ; Mon, 12 Apr 2010 13:38:02 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3CDc2VF045878
for ; Mon, 12 Apr 2010 13:38:02 GMT
(envelope-from gcooper@FreeBSD.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3CDc2Rr045876
for perforce@freebsd.org; Mon, 12 Apr 2010 13:38:02 GMT
(envelope-from gcooper@FreeBSD.org)
Date: Mon, 12 Apr 2010 13:38:02 GMT
Message-Id: <201004121338.o3CDc2Rr045876@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
gcooper@FreeBSD.org using -f
From: Garrett Cooper
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176834 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, 12 Apr 2010 13:38:03 -0000
http://p4web.freebsd.org/@@176834?ac=10
Change 176834 by gcooper@gcooper-bayonetta on 2010/04/12 13:37:24
Avoid a potential segfault because of uninitialized data.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#12 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/usr.sbin/pkg_install/lib/file.c#12 (text+ko) ====
@@ -377,8 +377,14 @@
/* int fd = -1; */
int r;
+ if (pkg == NULL || strcmp(pkg, "-") == 0)
+ pkg_name_humanized = "(stdin)";
+ else
+ pkg_name_humanized = pkg;
+
if (Verbose)
- printf("%s: will extract %s from %s\n", __func__, file, pkg);
+ printf("%s: will extract %s from %s\n",
+ __func__, file, pkg_name_humanized);
archive = archive_read_new();
archive_read_support_compression_all(archive);
From owner-p4-projects@FreeBSD.ORG Tue Apr 13 04:36:13 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 452341065676; Tue, 13 Apr 2010 04:36:13 +0000 (UTC)
Delivered-To: perforce@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 043D81065670
for ; Tue, 13 Apr 2010 04:36:13 +0000 (UTC)
(envelope-from kientzle@freebsd.org)
Received: from monday.kientzle.com (kientzle.com [66.166.149.50])
by mx1.freebsd.org (Postfix) with ESMTP id CA2B48FC13
for ; Tue, 13 Apr 2010 04:36:12 +0000 (UTC)
Received: (from root@localhost)
by monday.kientzle.com (8.14.3/8.14.3) id o3D3uR9k029367;
Tue, 13 Apr 2010 03:56:27 GMT (envelope-from kientzle@freebsd.org)
Received: from horton.x.kientzle.com (fw2.kientzle.com [10.123.1.2])
by kientzle.com with SMTP id aexbfvexqniv4v8aj4wwe42iqs;
Tue, 13 Apr 2010 03:56:27 +0000 (UTC)
(envelope-from kientzle@freebsd.org)
Message-ID: <4BC3EB5B.5070801@freebsd.org>
Date: Mon, 12 Apr 2010 20:56:11 -0700
From: Tim Kientzle
User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US;
rv:1.8.1.23) Gecko/20100314 SeaMonkey/1.1.18
MIME-Version: 1.0
To: Garrett Cooper
References: <201004121230.o3CCUsIX029146@repoman.freebsd.org>
In-Reply-To: <201004121230.o3CCUsIX029146@repoman.freebsd.org>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: Perforce Change Reviews
Subject: Re: PERFORCE change 176831 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Tue, 13 Apr 2010 04:36:13 -0000
Garrett Cooper wrote:
> +FILE*
> +unpack_file_to_fd(const char *pkg, const char *file)
> +{
....
> + r = archive_read_extract(archive, archive_entry,
> + EXTRACT_ARCHIVE_FLAGS);
> + if (r == ARCHIVE_OK) {
> + if (Verbose)
> + printf("X - %s\n",
> + entry_pathname);
> + fd = fopen(entry_pathname, "r");
This is potentially race-prone. I would suggest instead that
you:
int fd = open(entry_pathname, O_RDWR | O_CREAT, ...)
archive_read_data_into_fd(a, fd);
Then rewind the fd and return it. archive_read_extract()
is handy but it's way overkill for this kind of simple
operation. I would also put in a simple verification
that the entry you found is a regular entry:
archive_entry_filetype(entry) == AE_IFREG
> + * NOTE: the exit code is 0 / 1 so that this can be fed directly into exit
> + * when doing piped tar commands for copying hierarchies *hint*, *hint*.
Why do you want to copy hierarchies?
Seems a waste of disk bandwidth. *hint* *hint* ;-)
> int
> unpack(const char *pkg, const char *file_expr)
> {
Since this is only called with file_expr=="*" and file_expr=="+*",
I don't think you need fnmatch(). You can get away with
a simple
int unpack(const char *pkg, int metadata_only)
and then use
if (!metadata_only || entry_pathname[0] == '+')
> + (fnmatch(file_expr, entry_pathname,
> + FNM_PATHNAME)) == 0) {
>
You might also consider passing in an fd to unpack and
using archive_read_open_fd() to attach an archive
handle to it instead of archive_read_open_filename().
(It doesn't make any performance difference, but it
does avoid races and opens the door to other interesting
games in the future.)
From owner-p4-projects@FreeBSD.ORG Tue Apr 13 05:49:54 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 88E081065674; Tue, 13 Apr 2010 05:49: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 4CC24106564A;
Tue, 13 Apr 2010 05:49:54 +0000 (UTC)
(envelope-from yanegomi@gmail.com)
Received: from mail-yw0-f193.google.com (mail-yw0-f193.google.com
[209.85.211.193])
by mx1.freebsd.org (Postfix) with ESMTP id E4A3E8FC0C;
Tue, 13 Apr 2010 05:49:53 +0000 (UTC)
Received: by ywh31 with SMTP id 31so1801261ywh.3
for ; Mon, 12 Apr 2010 22:49:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
h=domainkey-signature:mime-version:sender:received:in-reply-to
:references:date:x-google-sender-auth:received:message-id:subject
:from:to:cc:content-type:content-transfer-encoding;
bh=hTAQ2+x9bm3eMM3kFIuPC+rOCXmCp5s1DGsvTBKasBM=;
b=aL2R7L+q9Go7V0Y6UubmfRfRDHXDEmsby5JoSNuRZoKRfTzhxcj/3qYayAfYjJ0EKU
O4SQL+qwIEz+EkaUmm97oV/2SHe/pdZd/YOEmocqAsx2wYi5uJg3q0cpsZ6T+v7DS3Bx
TpDPDL0PQvwdxbe6WxKMVrTKPSox5XmDOjqK8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
h=mime-version:sender:in-reply-to:references:date
:x-google-sender-auth:message-id:subject:from:to:cc:content-type
:content-transfer-encoding;
b=WTwP1cR1mZvv/Z/p8zIG82za0A2Adczb9D27MojyeHZ4+5Tq7z8CknxRnFcq9cRcw2
VIAs9yp/Wy3EiTf8G4m93oMnFU3c2TxBoaGK8MkkrMarmCM+6ktaLf6Hrs+Rolaicbmr
CwLVR4FSd/VOweXHWuMQB8ivMqIAUezauUPv8=
MIME-Version: 1.0
Sender: yanegomi@gmail.com
Received: by 10.231.183.17 with HTTP; Mon, 12 Apr 2010 22:49:52 -0700 (PDT)
In-Reply-To: <4BC3EB5B.5070801@freebsd.org>
References: <201004121230.o3CCUsIX029146@repoman.freebsd.org>
<4BC3EB5B.5070801@freebsd.org>
Date: Mon, 12 Apr 2010 22:49:52 -0700
X-Google-Sender-Auth: 12f8679d5ba78e1c
Received: by 10.101.152.22 with SMTP id e22mr8944675ano.89.1271137792805; Mon,
12 Apr 2010 22:49:52 -0700 (PDT)
Message-ID:
From: Garrett Cooper
To: Tim Kientzle
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: Perforce Change Reviews
Subject: Re: PERFORCE change 176831 for review
X-BeenThere: p4-projects@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: p4 projects tree changes
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
X-List-Received-Date: Tue, 13 Apr 2010 05:49:55 -0000
On Mon, Apr 12, 2010 at 8:56 PM, Tim Kientzle wrote:
> Garrett Cooper wrote:
>>
>> +FILE*
>> +unpack_file_to_fd(const char *pkg, const char *file)
>> +{
>
> ....
>>
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 r =3D arch=
ive_read_extract(archive,
>> archive_entry,
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 EX=
TRACT_ARCHIVE_FLAGS);
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (r =3D=
=3D ARCHIVE_OK) {
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 if (Verbose)
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 printf("X - %s\n",
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 entry_pathname);
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 fd =3D fopen(entry_pathname, "r");
>
> This is potentially race-prone. =A0I would suggest instead that
> you:
>
> =A0 int fd =3D open(entry_pathname, O_RDWR | O_CREAT, ...)
> =A0 archive_read_data_into_fd(a, fd);
>
> Then rewind the fd and return it. =A0archive_read_extract()
> is handy but it's way overkill for this kind of simple
> operation. =A0I would also put in a simple verification
> that the entry you found is a regular entry:
> =A0 archive_entry_filetype(entry) =3D=3D AE_IFREG
Ok. What does a regular entry correspond to (I assume not a regular file)?
>> + * NOTE: the exit code is 0 / 1 so that this can be fed directly into
>> exit
>> + * when doing piped tar commands for copying hierarchies *hint*, *hint*=
From owner-p4-projects@FreeBSD.ORG Tue Apr 13 15:14:50 2010
Return-Path:
Delivered-To: p4-projects@freebsd.org
Received: by hub.freebsd.org (Postfix, from userid 32767)
id 4AA7C1065670; Tue, 13 Apr 2010 15:14:50 +0000 (UTC)
Delivered-To: perforce@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
by hub.freebsd.org (Postfix) with ESMTP id 079E2106564A
for ; Tue, 13 Apr 2010 15:14:50 +0000 (UTC)
(envelope-from raj@freebsd.org)
Received: from repoman.freebsd.org (repoman.freebsd.org
[IPv6:2001:4f8:fff6::29])
by mx1.freebsd.org (Postfix) with ESMTP id E904A8FC13
for ; Tue, 13 Apr 2010 15:14:49 +0000 (UTC)
Received: from repoman.freebsd.org (localhost [127.0.0.1])
by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o3DFEnIr050807
for ; Tue, 13 Apr 2010 15:14:49 GMT
(envelope-from raj@freebsd.org)
Received: (from perforce@localhost)
by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o3DFEntv050805
for perforce@freebsd.org; Tue, 13 Apr 2010 15:14:49 GMT
(envelope-from raj@freebsd.org)
Date: Tue, 13 Apr 2010 15:14:49 GMT
Message-Id: <201004131514.o3DFEntv050805@repoman.freebsd.org>
X-Authentication-Warning: repoman.freebsd.org: perforce set sender to
raj@freebsd.org using -f
From: Rafal Jaworowski
To: Perforce Change Reviews
Precedence: bulk
Cc:
Subject: PERFORCE change 176862 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, 13 Apr 2010 15:14:50 -0000
http://p4web.freebsd.org/@@176862?ac=10
Change 176862 by raj@raj_fdt on 2010/04/13 15:13:54
Clean up.
Affected files ...
.. //depot/projects/fdt/sys/arm/include/fdt.h#5 edit
.. //depot/projects/fdt/sys/arm/mv/bus_space.c#2 edit
.. //depot/projects/fdt/sys/arm/mv/discovery/discovery.c#4 edit
.. //depot/projects/fdt/sys/arm/mv/kirkwood/kirkwood.c#10 edit
.. //depot/projects/fdt/sys/arm/mv/mv_pci.c#3 edit
.. //depot/projects/fdt/sys/arm/mv/mvvar.h#8 edit
.. //depot/projects/fdt/sys/arm/mv/orion/orion.c#5 edit
Differences ...
==== //depot/projects/fdt/sys/arm/include/fdt.h#5 (text+ko) ====
@@ -55,7 +55,7 @@
/*
* Bus space tag. XXX endianess info needs to be derived from the blob.
*/
-#define fdtbus_bs_tag obio_tag
+extern bus_space_tag_t fdtbus_bs_tag;
struct mem_region {
vm_offset_t mr_start;
==== //depot/projects/fdt/sys/arm/mv/bus_space.c#2 (text+ko) ====
@@ -49,7 +49,7 @@
bs_protos(generic_armv4);
/*
- * The obio bus space tag. This is constant for all instances, so
+ * The bus space tag. This is constant for all instances, so
* we never have to explicitly "create" it.
*/
static struct bus_space _base_tag = {
@@ -159,4 +159,4 @@
NULL
};
-bus_space_tag_t obio_tag = &_base_tag;
+bus_space_tag_t fdtbus_bs_tag = &_base_tag;
==== //depot/projects/fdt/sys/arm/mv/discovery/discovery.c#4 (text+ko) ====
@@ -37,86 +37,12 @@
#include
#include