From owner-p4-projects@FreeBSD.ORG Wed May 19 12:25:28 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9DD6216A4D1; Wed, 19 May 2004 12:25:27 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5D66D16A4CE for ; Wed, 19 May 2004 12:25:27 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 552EE43D41 for ; Wed, 19 May 2004 12:25:27 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i4JJPBQu041712 for ; Wed, 19 May 2004 12:25:11 -0700 (PDT) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i4JJPADe041709 for perforce@freebsd.org; Wed, 19 May 2004 12:25:10 -0700 (PDT) (envelope-from marcel@freebsd.org) Date: Wed, 19 May 2004 12:25:10 -0700 (PDT) Message-Id: <200405191925.i4JJPADe041709@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 53070 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2004 19:25:28 -0000 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 @@ -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 #include @@ -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 -__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 @@ - $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.218 2004/05/09 21:27:15 simon Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/hardware/common/dev.sgml,v 1.221 2004/05/18 12:02:38 nyan Exp $ Supported Devices @@ -86,7 +86,7 @@ Adaptec FSA family RAID controllers (&man.aac.4; driver) - NEC PC-9801-55, 92 and their compatible C-Bus SCSI interfaces (ct driver) + NEC PC-9801-55, 92 and their compatible C-Bus SCSI interfaces (&man.ct.4; driver) NEC PC-9801-55, 92 and their compatibles @@ -895,6 +895,27 @@ + Cronyx Tau-PCI synchronous serial adapters for PCI bus + (&man.cp.4; driver) + + + Cronyx Tau-PCI (dual RS-232/V.35) and Cronyx Tau-PCI/R (dual RS-530(RS-449)/X.21) + + + Cronyx Tau-PCI/E1 (dual fractional E1) and Cronyx Tau-PCI/G703 (dual unframed E1) + + + Cronyx Tau-PCI/2E1 (dual fractional/unframed E1) + + + Cronyx Tau-PCI/4E1 (four fractional/unframed E1) + + + Cronyx Tau-PCI/E3 (one E3) + + + + Cronyx Tau synchronous serial adapters for ISA bus (&man.ctau.4; driver) ==== //depot/projects/gdb/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml#19 (text+ko) ==== @@ -3,7 +3,7 @@ The FreeBSD Project - $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.728 2004/05/17 17:55:19 yar Exp $ + $FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.731 2004/05/18 12:02:39 nyan Exp $ 2000 @@ -207,7 +207,7 @@ control display switching and backlight brightness using the ACPI Video Extensions. - The &man.ctau.4; driver has been added for Cronyx-Tau + The &man.ctau.4; driver has been added for Cronyx Tau synchronous serial adapters. This driver was known for a long time as ct in its previous life outside the &os; source tree. &merged; @@ -217,6 +217,10 @@ + The &man.cp.4; driver has been added for Cronyx Tau-PCI + synchronous serial adapters. + + &man.devfs.5; path rules now work correctly on directories. @@ -381,6 +385,10 @@ a simple packet distribution that acts like an Ethernet hub has been added. &merged; + 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. + The &man.ng.vlan.4; Netgraph node type, which supports IEEE 802.1Q VLAN tagging has been added. &merged; ==== //depot/projects/gdb/sbin/fsck_ffs/fsutil.c#3 (text+ko) ==== @@ -33,7 +33,7 @@ #endif /* not lint */ #endif #include -__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 #include @@ -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 @@ -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) <<<