Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 May 2004 12:25:10 -0700 (PDT)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 53070 for review
Message-ID:  <200405191925.i4JJPADe041709@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=53070

Change 53070 by marcel@marcel_nfs on 2004/05/19 12:24:11

	IFC @53068

Affected files ...

.. //depot/projects/gdb/contrib/cvs/src/server.c#4 integrate
.. //depot/projects/gdb/etc/defaults/periodic.conf#3 integrate
.. //depot/projects/gdb/etc/periodic/weekly/400.status-pkg#2 integrate
.. //depot/projects/gdb/lib/libarchive/archive_read_support_format_tar.c#11 integrate
.. //depot/projects/gdb/lib/libarchive/tar.5#4 integrate
.. //depot/projects/gdb/lib/libc/gmon/Makefile.inc#2 integrate
.. //depot/projects/gdb/lib/libc/sys/mlock.2#2 integrate
.. //depot/projects/gdb/lib/libkvm/kvm_amd64.c#2 integrate
.. //depot/projects/gdb/lib/libutil/pw_util.c#2 integrate
.. //depot/projects/gdb/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#8 integrate
.. //depot/projects/gdb/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#19 integrate
.. //depot/projects/gdb/sbin/fsck_ffs/fsutil.c#3 integrate
.. //depot/projects/gdb/sbin/ipfw/ipfw2.c#6 integrate
.. //depot/projects/gdb/sbin/sconfig/sconfig.8#3 integrate
.. //depot/projects/gdb/share/man/man4/ng_hole.4#2 integrate
.. //depot/projects/gdb/share/man/man7/security.7#3 integrate
.. //depot/projects/gdb/share/man/man9/g_access.9#3 integrate
.. //depot/projects/gdb/share/man/man9/g_attach.9#4 integrate
.. //depot/projects/gdb/share/man/man9/g_bio.9#3 integrate
.. //depot/projects/gdb/share/man/man9/g_consumer.9#4 integrate
.. //depot/projects/gdb/share/man/man9/g_data.9#3 integrate
.. //depot/projects/gdb/share/man/man9/g_event.9#3 integrate
.. //depot/projects/gdb/share/man/man9/g_geom.9#4 integrate
.. //depot/projects/gdb/share/man/man9/g_provider.9#4 integrate
.. //depot/projects/gdb/share/man/man9/g_provider_by_name.9#3 integrate
.. //depot/projects/gdb/share/man/man9/g_wither_geom.9#3 integrate
.. //depot/projects/gdb/sys/alpha/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/alpha/include/profile.h#2 integrate
.. //depot/projects/gdb/sys/amd64/amd64/machdep.c#10 integrate
.. //depot/projects/gdb/sys/amd64/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/amd64/include/profile.h#3 integrate
.. //depot/projects/gdb/sys/arm/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/arm/include/profile.h#2 integrate
.. //depot/projects/gdb/sys/conf/files.pc98#11 integrate
.. //depot/projects/gdb/sys/conf/options.pc98#4 integrate
.. //depot/projects/gdb/sys/dev/acpica/acpivar.h#11 integrate
.. //depot/projects/gdb/sys/dev/iir/iir.c#2 integrate
.. //depot/projects/gdb/sys/dev/iir/iir.h#5 integrate
.. //depot/projects/gdb/sys/dev/iir/iir_ctrl.c#4 integrate
.. //depot/projects/gdb/sys/dev/md/md.c#9 integrate
.. //depot/projects/gdb/sys/i386/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/i386/include/profile.h#4 integrate
.. //depot/projects/gdb/sys/ia64/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/ia64/include/profile.h#2 integrate
.. //depot/projects/gdb/sys/kern/link_elf.c#3 integrate
.. //depot/projects/gdb/sys/kern/link_elf_obj.c#3 integrate
.. //depot/projects/gdb/sys/kern/uipc_socket2.c#6 integrate
.. //depot/projects/gdb/sys/netgraph/ng_hole.c#2 integrate
.. //depot/projects/gdb/sys/netgraph/ng_hole.h#2 integrate
.. //depot/projects/gdb/sys/pc98/conf/NOTES#11 integrate
.. //depot/projects/gdb/sys/pci/agp_sis.c#3 integrate
.. //depot/projects/gdb/sys/pci/if_sk.c#6 integrate
.. //depot/projects/gdb/sys/powerpc/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/powerpc/include/profile.h#2 integrate
.. //depot/projects/gdb/sys/powerpc/powerpc/trap.c#3 integrate
.. //depot/projects/gdb/sys/sparc64/include/_stdint.h#2 integrate
.. //depot/projects/gdb/sys/sparc64/include/profile.h#2 integrate
.. //depot/projects/gdb/sys/sys/gmon.h#3 integrate
.. //depot/projects/gdb/sys/sys/mbuf.h#7 integrate
.. //depot/projects/gdb/sys/ufs/ffs/ffs_alloc.c#5 integrate
.. //depot/projects/gdb/usr.bin/Makefile#8 integrate
.. //depot/projects/gdb/usr.bin/bluetooth/bthost/bthost.1#2 integrate
.. //depot/projects/gdb/usr.bin/bluetooth/btsockstat/btsockstat.1#2 integrate
.. //depot/projects/gdb/usr.bin/colldef/colldef.1#2 integrate
.. //depot/projects/gdb/usr.bin/env/env.1#3 integrate
.. //depot/projects/gdb/usr.bin/fetch/fetch.1#4 integrate
.. //depot/projects/gdb/usr.bin/fetch/fetch.c#4 integrate
.. //depot/projects/gdb/usr.bin/find/find.1#6 integrate
.. //depot/projects/gdb/usr.bin/gprof/amd64.c#1 branch
.. //depot/projects/gdb/usr.bin/gprof/amd64.h#1 branch
.. //depot/projects/gdb/usr.bin/gprof/gprof.h#3 integrate
.. //depot/projects/gdb/usr.bin/id/id.1#3 integrate
.. //depot/projects/gdb/usr.bin/indent/indent.1#3 integrate
.. //depot/projects/gdb/usr.bin/ipcs/ipcs.1#3 integrate
.. //depot/projects/gdb/usr.bin/kdump/kdump.1#2 integrate
.. //depot/projects/gdb/usr.bin/killall/killall.1#4 integrate
.. //depot/projects/gdb/usr.bin/locale/locale.1#2 integrate
.. //depot/projects/gdb/usr.bin/m4/gnum4.c#2 integrate
.. //depot/projects/gdb/usr.bin/mail/mail.1#4 integrate
.. //depot/projects/gdb/usr.bin/make/make.1#4 integrate
.. //depot/projects/gdb/usr.bin/netstat/netstat.1#3 integrate
.. //depot/projects/gdb/usr.bin/pkill/pkill.1#2 integrate
.. //depot/projects/gdb/usr.bin/script/script.1#3 integrate
.. //depot/projects/gdb/usr.bin/su/su.1#2 integrate
.. //depot/projects/gdb/usr.bin/tar/bsdtar.c#9 integrate
.. //depot/projects/gdb/usr.bin/tar/write.c#11 integrate
.. //depot/projects/gdb/usr.bin/tftp/tftp.1#2 integrate
.. //depot/projects/gdb/usr.bin/vmstat/vmstat.8#3 integrate
.. //depot/projects/gdb/usr.sbin/sysinstall/menus.c#4 integrate

Differences ...

==== //depot/projects/gdb/contrib/cvs/src/server.c#4 (text+ko) ====

@@ -9,7 +9,7 @@
    GNU General Public License for more details.  */
 
 /*
- * $FreeBSD: src/contrib/cvs/src/server.c,v 1.21 2004/04/15 01:17:27 peter Exp $
+ * $FreeBSD: src/contrib/cvs/src/server.c,v 1.22 2004/05/19 06:17:52 des Exp $
  */
 
 #include <assert.h>
@@ -1645,7 +1645,7 @@
 	    && strncmp (arg, name, cp - name) == 0)
 	{
 	    timefield = strchr (cp + 1, '/') + 1;
-	    if (*timefield != '=')
+	    if (*timefield == '/')
 	    {
 		cp = timefield + strlen (timefield);
 		cp[1] = '\0';
@@ -1689,7 +1689,7 @@
 	    && strncmp (arg, name, cp - name) == 0)
 	{
 	    timefield = strchr (cp + 1, '/') + 1;
-	    if (!(timefield[0] == 'M' && timefield[1] == '/'))
+	    if (*timefield == '/')
 	    {
 		cp = timefield + strlen (timefield);
 		cp[1] = '\0';

==== //depot/projects/gdb/etc/defaults/periodic.conf#3 (text+ko) ====

@@ -10,7 +10,7 @@
 # values set in this file.  This eases the upgrade path when defaults
 # are changed and new features are added.
 #
-# $FreeBSD: src/etc/defaults/periodic.conf,v 1.28 2004/04/20 13:44:57 darrenr Exp $
+# $FreeBSD: src/etc/defaults/periodic.conf,v 1.29 2004/05/19 09:18:07 joe Exp $
 #
 
 # What files override these defaults ?
@@ -204,6 +204,7 @@
 # 400.status-pkg
 weekly_status_pkg_enable="NO"				# Find out-of-date pkgs
 pkg_version=pkg_version					# Use this program
+pkg_version_index=/usr/ports/INDEX-5			# Use this index file
 
 # 999.local
 weekly_local="/etc/weekly.local"			# Local scripts

==== //depot/projects/gdb/etc/periodic/weekly/400.status-pkg#2 (text+ko) ====

@@ -1,6 +1,6 @@
 #!/bin/sh -
 #
-# $FreeBSD: src/etc/periodic/weekly/400.status-pkg,v 1.8 2002/09/25 03:01:42 brian Exp $
+# $FreeBSD: src/etc/periodic/weekly/400.status-pkg,v 1.9 2004/05/19 09:18:08 joe Exp $
 #
 
 # If there is a global system configuration file, suck it in.
@@ -16,7 +16,7 @@
 	echo ""
 	echo "Check for out of date packages:"
 
-	rc=$(${pkg_version:-pkg_version} -v |
+	rc=$(${pkg_version:-pkg_version} -v ${pkg_version_index} |
 	    sed -n -e 's/^\([^ ]*\)  *<  */  \1 /p' \
 		-e '/^[^ ]*-\([^ ]*\)  *\* *multiple versions.*[ ,]\1[,)].*/d' \
 		-e 's/^\([^ ]*\)  *\* *multiple versions.*\((.*\)/  \1 needs updating \2/p' \

==== //depot/projects/gdb/lib/libarchive/archive_read_support_format_tar.c#11 (text+ko) ====

@@ -25,7 +25,7 @@
  */
 
 #include "archive_platform.h"
-__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_tar.c,v 1.11 2004/04/26 23:37:54 kientzle Exp $");
+__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_tar.c,v 1.14 2004/05/19 17:09:24 kientzle Exp $");
 
 #include <sys/stat.h>
 #include <errno.h>
@@ -209,12 +209,12 @@
 
 	header = h;
 
-	/* This distinguishes POSIX formats from GNU tar formats. */
+	/* Recognize POSIX formats. */
 	if ((memcmp(header->magic, "ustar\0", 6) == 0)
 	    &&(memcmp(header->version, "00", 2)==0))
 		bid += 56;
 
-	/* Recognize GNU tar format as well. */
+	/* Recognize GNU tar format. */
 	if ((memcmp(header->magic, "ustar ", 6) == 0)
 	    &&(memcmp(header->version, " \0", 2)==0))
 		bid += 56;
@@ -593,6 +593,33 @@
 		 */
 		if (st->st_size > 0)
 			st->st_mode |= S_IFREG;
+
+		/*
+		 * A tricky point: Traditionally, tar readers have
+		 * ignored the size field when reading hardlink
+		 * entries, and some writers put non-zero sizes even
+		 * though the body is empty.  POSIX.1-2001 broke with
+		 * this tradition by permitting hardlink entries to
+		 * store valid bodies in pax interchange format, but
+		 * not in ustar format.  Since there is no hard and
+		 * fast way to distinguish pax interchange from
+		 * earlier archives (the 'x' and 'g' entries are
+		 * optional, after all), we need a heuristic.  Here, I
+		 * use the bid function to test whether or not there's
+		 * a valid header following.  Of course, if we know
+		 * this is pax interchange format, then we must obey
+		 * the size.
+		 *
+		 * This heuristic will only fail for a pax interchange
+		 * archive that is storing hardlink bodies, no pax
+		 * extended attribute entries have yet occurred, and
+		 * we encounter a hardlink entry for a file that is
+		 * itself an uncompressed tar archive.
+		 */
+		if (st->st_size > 0  &&
+		    a->archive_format != ARCHIVE_FORMAT_TAR_PAX_INTERCHANGE  &&
+		    archive_read_format_tar_bid(a) > 50)
+			st->st_size = 0;
 		break;
 	case '2': /* Symlink */
 		st->st_mode |= S_IFLNK;
@@ -737,21 +764,21 @@
     struct stat *st, const void *h)
 {
 	const struct archive_entry_header_ustar	*header;
+	struct archive_string *as;
 
 	header = h;
 
 	/* Copy name into an internal buffer to ensure null-termination. */
+	as = &(tar->entry_name);
 	if (header->prefix[0]) {
-		archive_strncpy(&(tar->entry_name), header->prefix,
-		    sizeof(header->prefix));
-		archive_strappend_char(&(tar->entry_name), '/');
-		archive_strncat(&(tar->entry_name), header->name,
-		    sizeof(header->name));
+		archive_strncpy(as, header->prefix, sizeof(header->prefix));
+		if (as->s[archive_strlen(as) - 1] != '/')
+			archive_strappend_char(as, '/');
+		archive_strncat(as, header->name, sizeof(header->name));
 	} else
-		archive_strncpy(&(tar->entry_name), header->name,
-		    sizeof(header->name));
+		archive_strncpy(as, header->name, sizeof(header->name));
 
-	archive_entry_set_pathname(entry, tar->entry_name.s);
+	archive_entry_set_pathname(entry, as->s);
 
 	/* Handle rest of common fields. */
 	header_common(a, tar, entry, st, h);

==== //depot/projects/gdb/lib/libarchive/tar.5#4 (text+ko) ====

@@ -22,9 +22,9 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libarchive/tar.5,v 1.3 2004/03/23 03:14:01 kientzle Exp $
+.\" $FreeBSD: src/lib/libarchive/tar.5,v 1.4 2004/05/19 06:38:38 kientzle Exp $
 .\"
-.Dd October 1, 2003
+.Dd May 20, 2004
 .Dt TAR 5
 .Os
 .Sh NAME
@@ -68,10 +68,8 @@
 The original tar archive format has been extended many times to
 include additional information that various implementors found
 necessary.
-This section describes a variant that is compatible with
-most historic
-.Nm
-implementations.
+This section describes the variant implemented by the tar command
+included in Seventh Edition Unix.
 .Pp
 The header record for an old-style
 .Nm
@@ -85,22 +83,30 @@
 char size[12];
 char mtime[12];
 char checksum[8];
+char linkflag[1];
+char linkname[100];
 };
 .Ed
-The remaining bytes in the header record are filled with nulls.
+All unused bytes in the header record are filled with nulls.
 .Bl -tag -width indent
 .It Va name
 Pathname, stored as a null-terminated string.
-Some very early implementations only supported regular files.
-However, a common early convention added
+The Unix V7 tar command only stored regular files (including
+hardlinks to those files).
+One common early convention added
 a trailing "/" character to indicate a directory name, allowing
 directory permissions and owner information to be archived and restored.
 .It Va mode
 File mode, stored as an octal number in ASCII.
 .It Va uid , Va gid
-User id and group id of owner, as octal number in ASCII.
+User id and group id of owner, as octal numbers in ASCII.
 .It Va size
 Size of file, as octal number in ASCII.
+For regular files only, this indicates the amount of data
+that follows the header.
+In particular, this field was ignored by early tar implementations
+when extracting hardlinks.
+Modern writers should always store a zero length for hardlink entries.
 .It Va mtime
 Modification time of file, as an octal number in ASCII.
 This indicates the number of seconds since the start of the epoch,
@@ -113,72 +119,41 @@
 then sum all bytes in the header using unsigned arithmetic.
 This field should be stored as six octal digits followed by a null and a space
 character.
-Note that for many years, Sun tar used signed arithmetic
+Note that many early implementations of tar used signed arithmetic
 for the checksum field, which can cause interoperability problems
 when transferring archives between systems.
-This error was propagated to other implementations that used Sun
-tar as a reference.
 Modern robust readers compute the checksum both ways and accept the
 header if either computation matches.
+.It Va linkflag , Va linkname
+In order to preserve hardlinks and conserve tape, a file
+with multiple links is only written to the archive the first
+time it is encountered.
+The next time it is encountered, the
+.Va linkflag
+is set to an ASCII
+.Sq 1
+and the
+.Va linkname
+field holds the first name under which this file appears.
+(Note that regular files have a null value in the
+.Va linkflag
+field.)
 .El
 .Pp
 Early implementations of
 .Nm
 varied in how they terminated these fields.
-Early BSD documentation specified the following: the pathname must
-be null-terminated; the mode, uid, and gid fields must end in a space and a
-null byte; the size and mtime fields must end in a space; the checksum is
-terminated by a null and a space.
+The
+.Nm
+command in Seventh Edition Unix used the following conventions
+(this is also documented in early BSD manpages):
+the pathname must be null-terminated;
+the mode, uid, and gid fields must end in a space and a null byte;
+the size and mtime fields must end in a space;
+the checksum is terminated by a null and a space.
 For best portability, writers of
 .Nm
 archives should fill the numeric fields with leading zeros.
-.Ss Early Extensions
-Very early
-.Nm
-implementations only supported regular files.
-Two early extensions added support for directories, hard links, and
-symbolic links.
-.Pp
-Early
-.Nm
-archives indicated directories by adding a trailing
-.Pa /
-to the name.
-The size field was often used to indicate the total size of all files
-in the directory.
-This was intended to facilitate extraction on systems that pre-allocated
-directory storage; most modern readers should simply ignore the
-size field for directories.
-.Pp
-To support hard links and symbolic links,
-.Va linktype
-and
-.Va linkname
-fields were added:
-.Bd -literal -offset indent
-struct tarfile_entry_common {
-char name[100];
-char mode[8];
-char uid[8];
-char gid[8];
-char size[12];
-char mtime[12];
-char checksum[8];
-char linktype[1];
-char linkname[100];
-};
-.Ed
-.Pp
-The
-.Va linktype
-field indicates the type of entry.
-For backwards compatibility, a NULL
-character here indicates a regular file or directory.
-An ASCII "1" here indicates a hard link entry, ASCII "2" indicates
-a symbolic link.
-The
-.Va linkname
-field holds the name of the file linked to.
 .Ss POSIX Standard Archives
 POSIX 1003.1 defines a standard
 .Nm
@@ -216,12 +191,13 @@
 .Ed
 .Bl -tag -width indent
 .It Va typeflag
-Type of entry.  POSIX adopted the BSD
-.Va linktype
-field and extended it with several new type values:
+Type of entry.  POSIX extended the earlier
+.Va linkflag
+field with several new type values:
 .Bl -tag -width indent -compact
 .It Dq 0
-Regular file. NULL should be treated as a synonym, for compatibility purposes.
+Regular file.
+NULL should be treated as a synonym, for compatibility purposes.
 .It Dq 1
 Hard link.
 .It Dq 2
@@ -245,6 +221,16 @@
 Uppercase letters "A" through "Z" are reserved for custom extensions.
 Note that sockets and whiteout entries are not archivable.
 .El
+It is worth noting that the
+.Va size
+field, in particular, has different meanings depending on the type.
+For regular files, of course, it indicates the amount of data
+following the header.
+For directories, it may be used to indicate the total size of all
+files in the directory, for use by operating systems that pre-allocate
+directory space.
+For all other types, it should be set to zero by writers and ignored
+by readers.
 .It Va magic
 Contains the magic value
 .Dq ustar
@@ -407,15 +393,28 @@
 The
 .Cm g
 entry is not widely used.
+.Pp
+Besides the new
+.Cm x
+and
+.Cm g
+entries, the pax interchange format has a few other minor variations
+from the earlier ustar format.
+The most troubling one is that hardlinks are permitted to have
+data following them.
+This allows readers to restore any hardlink to a file without
+having to rewind the archive to find an earlier entry.
+However, it creates complications for robust readers, as it is
+no longer clear whether or not they should ignore the size
+field for hardlink entries.
 .Ss GNU Tar Archives
-The GNU tar program added new features by starting with an early draft
-of POSIX and using three different extension mechanisms:  They added
-new fields to the empty space in the header (some of which was later
+The GNU tar program has used a variety of different extension
+mechanisms over the years:
+They added new fields to the empty space in the header (some of which was later
 used by POSIX for conflicting purposes);
-they allowed the header to
-be continued over multiple records;
-and they defined new entries
-that modify following entries (similar in principle to the
+they allowed the header to be continued over multiple records;
+and they defined new entries that modify following entries
+(similar in principle to the
 .Cm x
 entry described above, but each GNU special entry is single-purpose,
 unlike the general-purpose
@@ -456,7 +455,8 @@
 .Ed
 .Bl -tag -width indent
 .It Va typeflag
-GNU tar uses the following special entry types.
+GNU tar uses the following special entry types, in addition to
+those defined by POSIX:
 .Bl -tag -width indent
 .It "7"
 GNU tar treats type "7" records identically to type "0" records,
@@ -634,8 +634,10 @@
 .Sh STANDARDS
 The
 .Nm tar
-utility is no longer a part of any official standard.
-It last appeared in SUSv2.
+utility is no longer a part of POSIX or the Single Unix Standard.
+It last appeared in
+.St -p 1003.1-1997
+(SUSv2).
 It has been supplanted in subsequent standards by
 .Xr pax 1 .
 The ustar format is defined in
@@ -648,7 +650,7 @@
 .Sh HISTORY
 A
 .Nm tar
-command appeared in Sixth Edition Unix.
+command appeared in Seventh Edition Unix, which was released in January, 1979.
 John Gilmore's
 .Nm pdtar
 public-domain implementation (circa 1987) was highly influential

==== //depot/projects/gdb/lib/libc/gmon/Makefile.inc#2 (text+ko) ====

@@ -1,5 +1,5 @@
 #	from @(#)Makefile.inc	8.1 (Berkeley) 6/4/93
-# $FreeBSD: src/lib/libc/gmon/Makefile.inc,v 1.9 2002/11/18 09:50:55 ru Exp $
+# $FreeBSD: src/lib/libc/gmon/Makefile.inc,v 1.10 2004/05/18 22:49:15 peter Exp $
 
 # gmon sources
 .PATH: ${.CURDIR}/gmon
@@ -10,6 +10,12 @@
 
 MLINKS+=moncontrol.3 monstartup.3
 
+.if ${MACHINE_ARCH} == amd64
+# mcount needs to be compiled with frame pointers and without profiling
+mcount.po: mcount.c
+	${CC} ${CFLAGS} -fno-omit-frame-pointer -c ${.IMPSRC} -o ${.TARGET}
+.else
 # mcount cannot be compiled with profiling
 mcount.po: mcount.o
 	cp mcount.o mcount.po
+.endif

==== //depot/projects/gdb/lib/libc/sys/mlock.2#2 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)mlock.2	8.2 (Berkeley) 12/11/93
-.\" $FreeBSD: src/lib/libc/sys/mlock.2,v 1.14 2002/12/19 09:40:25 ru Exp $
+.\" $FreeBSD: src/lib/libc/sys/mlock.2,v 1.15 2004/05/19 03:25:17 alc Exp $
 .\"
 .Dd June 2, 1993
 .Dt MLOCK 2
@@ -148,16 +148,6 @@
 .Xr setrlimit 2 ,
 .Xr getpagesize 3
 .Sh BUGS
-Unlike The Sun implementation, multiple
-.Fn mlock
-calls on the same address range require the corresponding number of
-.Fn munlock
-calls to actually unlock the pages, i.e.\&
-.Fn mlock
-nests.
-This should be considered a consequence of the implementation
-and not a feature.
-.Pp
 The per-process resource limit is a limit on the amount of virtual
 memory locked, while the system-wide limit is for the number of locked
 physical pages.

==== //depot/projects/gdb/lib/libkvm/kvm_amd64.c#2 (text+ko) ====

@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/lib/libkvm/kvm_amd64.c,v 1.16 2003/04/30 21:05:33 peter Exp $");
+__FBSDID("$FreeBSD: src/lib/libkvm/kvm_amd64.c,v 1.17 2004/05/19 18:24:13 peter Exp $");
 
 #if defined(LIBC_SCCS) && !defined(lint)
 #if 0
@@ -71,15 +71,15 @@
 #endif
 
 struct vmstate {
-	pd_entry_t	*PTD;
+	pml4_entry_t	*PML4;
 };
 
 void
 _kvm_freevtop(kvm_t *kd)
 {
 	if (kd->vmst != 0) {
-		if (kd->vmst->PTD) {
-			free(kd->vmst->PTD);
+		if (kd->vmst->PML4) {
+			free(kd->vmst->PML4);
 		}
 		free(kd->vmst);
 	}
@@ -92,7 +92,7 @@
 	struct nlist nlist[2];
 	u_long pa;
 	u_long kernbase;
-	pd_entry_t	*PTD;
+	pml4_entry_t	*PML4;
 
 	vm = (struct vmstate *)_kvm_malloc(kd, sizeof(*vm));
 	if (vm == 0) {
@@ -100,34 +100,35 @@
 		return (-1);
 	}
 	kd->vmst = vm;
-	vm->PTD = 0;
+	vm->PML4 = 0;
 
 	nlist[0].n_name = "kernbase";
 	nlist[1].n_name = 0;
 
-	if (kvm_nlist(kd, nlist) != 0)
-		kernbase = KERNBASE;	/* for old kernels */
-	else
-		kernbase = nlist[0].n_value;
+	if (kvm_nlist(kd, nlist) != 0) {
+		_kvm_err(kd, kd->program, "bad namelist - no kernbase");
+		return (-1);
+	}
+	kernbase = nlist[0].n_value;
 
-	nlist[0].n_name = "IdlePTD";
+	nlist[0].n_name = "KPML4phys";
 	nlist[1].n_name = 0;
 
 	if (kvm_nlist(kd, nlist) != 0) {
-		_kvm_err(kd, kd->program, "bad namelist");
+		_kvm_err(kd, kd->program, "bad namelist - no KPML4phys");
 		return (-1);
 	}
 	if (kvm_read(kd, (nlist[0].n_value - kernbase), &pa, sizeof(pa)) !=
 	    sizeof(pa)) {
-		_kvm_err(kd, kd->program, "cannot read IdlePTD");
+		_kvm_err(kd, kd->program, "cannot read KPML4phys");
 		return (-1);
 	}
-	PTD = _kvm_malloc(kd, PAGE_SIZE);
-	if (kvm_read(kd, pa, PTD, PAGE_SIZE) != PAGE_SIZE) {
-		_kvm_err(kd, kd->program, "cannot read PTD");
+	PML4 = _kvm_malloc(kd, PAGE_SIZE);
+	if (kvm_read(kd, pa, PML4, PAGE_SIZE) != PAGE_SIZE) {
+		_kvm_err(kd, kd->program, "cannot read KPML4phys");
 		return (-1);
 	}
-	vm->PTD = PTD;
+	vm->PML4 = PML4;
 	return (0);
 }
 
@@ -136,15 +137,21 @@
 {
 	struct vmstate *vm;
 	u_long offset;
+	u_long pdpe_pa;
+	u_long pde_pa;
 	u_long pte_pa;
+	pml4_entry_t pml4e;
+	pdp_entry_t pdpe;
 	pd_entry_t pde;
 	pt_entry_t pte;
+	u_long pml4eindex;
+	u_long pdpeindex;
 	u_long pdeindex;
 	u_long pteindex;
 	int i;
 
 	if (ISALIVE(kd)) {
-		_kvm_err(kd, 0, "vatop called in live kernel!");
+		_kvm_err(kd, 0, "kvm_vatop called in live kernel!");
 		return((off_t)0);
 	}
 
@@ -155,27 +162,55 @@
 	 * If we are initializing (kernel page table descriptor pointer
 	 * not yet set) then return pa == va to avoid infinite recursion.
 	 */
-	if (vm->PTD == 0) {
+	if (vm->PML4 == 0) {
 		*pa = va;
 		return (PAGE_SIZE - offset);
 	}
 
-	pdeindex = va >> PDRSHIFT;
-	pde = vm->PTD[pdeindex];
+	pml4eindex = (va >> PML4SHIFT) & (NPML4EPG - 1);
+	pml4e = vm->PML4[pml4eindex];
+	if (((u_long)pml4e & PG_V) == 0)
+		goto invalid;
+
+	pdpeindex = (va >> PDPSHIFT) & (NPDPEPG-1);
+	pdpe_pa = ((u_long)pml4e & PG_FRAME) + (pdpeindex * sizeof(pdp_entry_t));
+
+	/* XXX This has to be a physical address read, kvm_read is virtual */
+	if (lseek(kd->pmfd, pdpe_pa, 0) == -1) {
+		_kvm_syserr(kd, kd->program, "_kvm_vatop: lseek pdpe_pa");
+		goto invalid;
+	}
+	if (read(kd->pmfd, &pdpe, sizeof pdpe) != sizeof pdpe) {
+		_kvm_syserr(kd, kd->program, "_kvm_vatop: read pdpe");
+		goto invalid;
+	}
+	if (((u_long)pdpe & PG_V) == 0)
+		goto invalid;
+
+
+	pdeindex = (va >> PDRSHIFT) & (NPDEPG-1);
+	pde_pa = ((u_long)pdpe & PG_FRAME) + (pdeindex * sizeof(pd_entry_t));
+
+	/* XXX This has to be a physical address read, kvm_read is virtual */
+	if (lseek(kd->pmfd, pde_pa, 0) == -1) {
+		_kvm_syserr(kd, kd->program, "_kvm_vatop: lseek pde_pa");
+		goto invalid;
+	}
+	if (read(kd->pmfd, &pde, sizeof pde) != sizeof pde) {
+		_kvm_syserr(kd, kd->program, "_kvm_vatop: read pde");
+		goto invalid;
+	}
 	if (((u_long)pde & PG_V) == 0)
 		goto invalid;
 
 	if ((u_long)pde & PG_PS) {
 	      /*
-	       * No second-level page table; ptd describes one 4MB page.
-	       * (We assume that the kernel wouldn't set PG_PS without enabling
-	       * it cr0, and that the kernel doesn't support 36-bit physical
-	       * addresses).
+	       * No final-level page table; ptd describes one 2MB page.
 	       */
-#define	PAGE4M_MASK	(NBPDR - 1)
-#define	PG_FRAME4M	(~PAGE4M_MASK)
-		*pa = ((u_long)pde & PG_FRAME4M) + (va & PAGE4M_MASK);
-		return (NBPDR - (va & PAGE4M_MASK));
+#define	PAGE2M_MASK	(NBPDR - 1)
+#define	PG_FRAME2M	(~PAGE2M_MASK)
+		*pa = ((u_long)pde & PG_FRAME2M) + (va & PAGE2M_MASK);
+		return (NBPDR - (va & PAGE2M_MASK));
 	}
 
 	pteindex = (va >> PAGE_SHIFT) & (NPTEPG-1);

==== //depot/projects/gdb/lib/libutil/pw_util.c#2 (text+ko) ====

@@ -43,7 +43,7 @@
 static const char sccsid[] = "@(#)pw_util.c	8.3 (Berkeley) 4/2/94";
 #endif
 static const char rcsid[] =
-  "$FreeBSD: src/lib/libutil/pw_util.c,v 1.34 2003/10/18 10:04:16 markm Exp $";
+  "$FreeBSD: src/lib/libutil/pw_util.c,v 1.35 2004/05/18 15:53:58 stefanf Exp $";
 #endif /* not lint */
 
 /*
@@ -266,10 +266,11 @@
 		/* child */
 		if (user == NULL)
 			execl(_PATH_PWD_MKDB, "pwd_mkdb", "-p",
-			    "-d", passwd_dir, tempname, NULL);
+			    "-d", passwd_dir, tempname, (char *)NULL);
 		else
 			execl(_PATH_PWD_MKDB, "pwd_mkdb", "-p",
-			    "-d", passwd_dir, "-u", user, tempname, NULL);
+			    "-d", passwd_dir, "-u", user, tempname,
+			    (char *)NULL);
 		_exit(1);
 		/* NOTREACHED */
 	default:
@@ -321,7 +322,7 @@
 			(void)setuid(getuid());
 		}
 		errno = 0;
-		execlp(editor, basename(editor), tempname, NULL);
+		execlp(editor, basename(editor), tempname, (char *)NULL);
 		_exit(errno);
 	default:
 		/* parent */

==== //depot/projects/gdb/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml#8 (text+ko) ====

@@ -29,7 +29,7 @@
 
 <sect1 id="support">
   <sect1info>
-    <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.218 2004/05/09 21:27:15 simon Exp $</pubdate>
+    <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.221 2004/05/18 12:02:38 nyan Exp $</pubdate>
   </sect1info>
 
   <title>Supported Devices</title>
@@ -86,7 +86,7 @@
 
     <para arch="i386,amd64">Adaptec FSA family RAID controllers (&man.aac.4; driver)</para>
 
-    <para arch="pc98">NEC PC-9801-55, 92 and their compatible C-Bus SCSI interfaces (ct driver)
+    <para arch="pc98">NEC PC-9801-55, 92 and their compatible C-Bus SCSI interfaces (&man.ct.4; driver)
       <itemizedlist>
         <listitem>
           <para>NEC PC-9801-55, 92 and their compatibles</para>
@@ -895,6 +895,27 @@
       </itemizedlist>
     </para>
 
+    <para arch="i386,pc98">Cronyx Tau-PCI synchronous serial adapters for PCI bus
+      (&man.cp.4; driver)
+      <itemizedlist>
+        <listitem>
+	  <para>Cronyx Tau-PCI (dual RS-232/V.35) and Cronyx Tau-PCI/R (dual RS-530(RS-449)/X.21)</para>
+	</listitem>
+        <listitem>
+	  <para>Cronyx Tau-PCI/E1 (dual fractional E1) and Cronyx Tau-PCI/G703 (dual unframed E1)</para>
+	</listitem>
+        <listitem>
+	  <para>Cronyx Tau-PCI/2E1 (dual fractional/unframed E1)</para>
+	</listitem>
+        <listitem>
+	  <para>Cronyx Tau-PCI/4E1 (four fractional/unframed E1)</para>
+	</listitem>
+        <listitem>
+	  <para>Cronyx Tau-PCI/E3 (one E3)</para>
+	</listitem>
+      </itemizedlist>
+    </para>
+
     <para arch="i386">Cronyx Tau synchronous serial adapters for ISA bus
       (&man.ctau.4; driver)
       <itemizedlist>

==== //depot/projects/gdb/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#19 (text+ko) ====

@@ -3,7 +3,7 @@
 
   <corpauthor>The FreeBSD Project</corpauthor>
 
-  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.728 2004/05/17 17:55:19 yar Exp $</pubdate>
+  <pubdate>$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.731 2004/05/18 12:02:39 nyan Exp $</pubdate>
 
   <copyright>
     <year>2000</year>
@@ -207,7 +207,7 @@
       control display switching and backlight brightness using the
       ACPI Video Extensions.</para>
 
-    <para arch="i386">The &man.ctau.4; driver has been added for Cronyx-Tau
+    <para arch="i386">The &man.ctau.4; driver has been added for Cronyx Tau
       synchronous serial adapters. This driver was known for a long time as
       <quote>ct</quote> in its previous life outside the &os; source tree. &merged;
 
@@ -217,6 +217,10 @@
       </note>
     </para>
 
+    <para arch="i386,pc98">The &man.cp.4; driver has been added for Cronyx Tau-PCI
+      synchronous serial adapters.
+    </para>
+
     <para>&man.devfs.5; path rules now work correctly on
       directories.</para>
 
@@ -381,6 +385,10 @@
         a simple packet distribution that acts like an Ethernet hub
         has been added.  &merged;</para>
 
+      <para>The &man.ng.sppp.4; Netgraph node type, which is a &man.netgraph.4
+	interface to the original &man.sppp.4 network module for synchronous
+	lines has been added.</para>
+
       <para>The &man.ng.vlan.4; Netgraph node type, which supports
         IEEE 802.1Q VLAN tagging has been added.  &merged;</para>
 

==== //depot/projects/gdb/sbin/fsck_ffs/fsutil.c#3 (text+ko) ====

@@ -33,7 +33,7 @@
 #endif /* not lint */
 #endif
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sbin/fsck_ffs/fsutil.c,v 1.23 2004/04/09 19:58:28 markm Exp $");
+__FBSDID("$FreeBSD: src/sbin/fsck_ffs/fsutil.c,v 1.24 2004/05/18 19:51:41 scottl Exp $");
 
 #include <sys/param.h>
 #include <sys/time.h>
@@ -478,10 +478,9 @@
 slowio_start()
 {
 
-	/* Delay one in every 8 operations by 16 times the average IO delay */
+	/* Delay one in every 8 operations */
 	slowio_pollcnt = (slowio_pollcnt + 1) & 7;
 	if (slowio_pollcnt == 0) {
-		usleep(slowio_delay_usec * 16);
 		gettimeofday(&slowio_starttime, NULL);
 	}
 }
@@ -501,9 +500,12 @@
 	    (tv.tv_usec - slowio_starttime.tv_usec);
 	if (delay_usec < 64)
 		delay_usec = 64;
-	if (delay_usec > 1000000)
-		delay_usec = 1000000;
+	if (delay_usec > 2500000)
+		delay_usec = 2500000;
 	slowio_delay_usec = (slowio_delay_usec * 63 + delay_usec) >> 6;
+	/* delay by 8 times the average IO delay */
+	if (slowio_delay_usec > 64)
+		usleep(slowio_delay_usec * 8);
 }
 
 /*

==== //depot/projects/gdb/sbin/ipfw/ipfw2.c#6 (text+ko) ====

@@ -17,7 +17,7 @@
  *
  * NEW command line interface for IP firewall facility
  *
- * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.48 2004/05/09 01:53:31 csjp Exp $
+ * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.49 2004/05/18 13:57:37 stefanf Exp $
  */
 
 #include <sys/param.h>
@@ -360,7 +360,7 @@
 
 	bcopy (pll, &ret, sizeof(ret));
 	return ret;
-};
+}
 
 /*
  * conditionally runs the command.
@@ -402,7 +402,7 @@
 		if (strlen(pt->s) == i && !bcmp(string, pt->s, i))
 			return pt->x;
 	return -1;
-};
+}
 
 /**
  * match_value takes a table and a value, returns the string associated

==== //depot/projects/gdb/sbin/sconfig/sconfig.8#3 (text+ko) ====

@@ -1,14 +1,14 @@
-.\" $FreeBSD: src/sbin/sconfig/sconfig.8,v 1.3 2004/01/21 13:24:38 ru Exp $
+.\" $FreeBSD: src/sbin/sconfig/sconfig.8,v 1.4 2004/05/18 07:23:37 ru Exp $
 .Dd November 21, 2003
 .Dt SCONFIG 8 i386
-.Os FreeBSD
+.Os
 .Sh NAME
 .Nm sconfig
 .Nd channel configuration utility for Cronyx adapters
 .Sh SYNOPSIS
 .Nm
 .Op Fl aimsxeftuc
-.Op Ar device name
+.Op Ar device
 .Op Ar data rate options
 .Op Ar protocol options ...
 .Op Ar interface options ...
@@ -16,14 +16,15 @@
 The
 .Nm
 utility is used for configuring the channel options of the Cronyx
-adapters. In asynchronous mode all the parameters should be set by standard
+adapters.
+In asynchronous mode all the parameters should be set by standard
 .Xr stty 1
 utility, with
 .Nm
 you could set only few of them (see below).
 .Pp
 Some of the options could be set only on free channels, that is the
-corresponding network interface in 
+corresponding network interface in
 .Ar down
 state in the synchronous mode, and in the asynchronous mode the asynchronous
 terminal device
@@ -31,8 +32,7 @@
 closed.
 .Pp
 Other channel options could be changed
-.Do on the fly
-.Dc .
+.Dq "on the fly" .
 Generally, the channel options are set up during the operating system startup,
 for example from the
 .Pa /etc/rc
@@ -42,259 +42,359 @@
 case, and an attempt to set some of them can hang up the channel or
 the whole adapter.
 .\"--------------------------------------------------------------
-.Ss "Information options"

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405191925.i4JJPADe041709>