PERFORCE change 53070 for review
Marcel Moolenaar
marcel at FreeBSD.org
Wed May 19 12:25:28 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=53070
Change 53070 by marcel at 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) <<<
More information about the p4-projects
mailing list