PERFORCE change 54975 for review
Peter Wemm
peter at FreeBSD.org
Tue Jun 15 01:41:29 GMT 2004
http://perforce.freebsd.org/chv.cgi?CH=54975
Change 54975 by peter at peter_daintree on 2004/06/15 01:40:33
IFC @54974
Affected files ...
.. //depot/projects/hammer/lib/libc/sys/read.2#5 integrate
.. //depot/projects/hammer/libexec/talkd/talkd.c#4 integrate
.. //depot/projects/hammer/sbin/routed/table.c#5 integrate
.. //depot/projects/hammer/share/man/man4/Makefile#41 integrate
.. //depot/projects/hammer/share/man/man4/ip.4#9 integrate
.. //depot/projects/hammer/share/misc/pci_vendors#9 integrate
.. //depot/projects/hammer/sys/kern/link_elf_obj.c#40 integrate
.. //depot/projects/hammer/sys/vm/vm_contig.c#17 integrate
.. //depot/projects/hammer/usr.bin/tar/bsdtar.c#11 integrate
Differences ...
==== //depot/projects/hammer/lib/libc/sys/read.2#5 (text+ko) ====
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)read.2 8.4 (Berkeley) 2/26/94
-.\" $FreeBSD: src/lib/libc/sys/read.2,v 1.22 2004/01/25 06:24:08 ache Exp $
+.\" $FreeBSD: src/lib/libc/sys/read.2,v 1.23 2004/06/15 01:24:41 kbyanc Exp $
.\"
.Dd February 26, 1994
.Dt READ 2
@@ -189,7 +189,8 @@
The
.Fa iovcnt
argument
-was less than or equal to 0, or greater than 16.
+was less than or equal to 0, or greater than
+.Li IOV_MAX .
.It Bq Er EINVAL
One of the
.Fa iov_len
==== //depot/projects/hammer/libexec/talkd/talkd.c#4 (text+ko) ====
@@ -42,7 +42,7 @@
static char sccsid[] = "@(#)talkd.c 8.1 (Berkeley) 6/4/93";
#endif
static const char rcsid[] =
- "$FreeBSD: src/libexec/talkd/talkd.c,v 1.15 2003/09/28 09:16:09 tjr Exp $";
+ "$FreeBSD: src/libexec/talkd/talkd.c,v 1.17 2004/06/14 22:44:13 bms Exp $";
#endif /* not lint */
/*
@@ -72,11 +72,10 @@
CTL_MSG request;
CTL_RESPONSE response;
-int sockt;
int debug = 0;
long lastmsgtime;
-char hostname[MAXHOSTNAMELEN];
+char hostname[MAXHOSTNAMELEN];
#define TIMEOUT 30
#define MAXIDLE 120
@@ -110,7 +109,7 @@
signal(SIGALRM, timeout);
alarm(TIMEOUT);
for (;;) {
- cc = recv(0, (char *)mp, sizeof (*mp), 0);
+ cc = recv(0, (char *)mp, sizeof(*mp), 0);
if (cc != sizeof (*mp)) {
if (cc < 0 && errno != EINTR)
syslog(LOG_WARNING, "recv: %m");
@@ -122,8 +121,8 @@
ctl_addr.sa_len = sizeof(ctl_addr);
process_request(mp, &response);
/* can block here, is this what I want? */
- cc = sendto(sockt, (char *)&response, sizeof (response), 0,
- &ctl_addr, sizeof (ctl_addr));
+ cc = sendto(STDIN_FILENO, (char *)&response,
+ sizeof(response), 0, &ctl_addr, sizeof(ctl_addr));
if (cc != sizeof (response))
syslog(LOG_WARNING, "sendto: %m");
}
==== //depot/projects/hammer/sbin/routed/table.c#5 (text+ko) ====
@@ -26,7 +26,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sbin/routed/table.c,v 1.19 2004/04/09 19:58:37 markm Exp $
+ * $FreeBSD: src/sbin/routed/table.c,v 1.20 2004/06/15 00:23:26 bms Exp $
*/
#include "defs.h"
@@ -34,12 +34,12 @@
#ifdef __NetBSD__
__RCSID("$NetBSD$");
#elif defined(__FreeBSD__)
-__RCSID("$FreeBSD: src/sbin/routed/table.c,v 1.19 2004/04/09 19:58:37 markm Exp $");
+__RCSID("$FreeBSD: src/sbin/routed/table.c,v 1.20 2004/06/15 00:23:26 bms Exp $");
#else
__RCSID("$Revision: 2.27 $");
#ident "$Revision: 2.27 $"
#endif
-#ident "$FreeBSD: src/sbin/routed/table.c,v 1.19 2004/04/09 19:58:37 markm Exp $"
+#ident "$FreeBSD: src/sbin/routed/table.c,v 1.20 2004/06/15 00:23:26 bms Exp $"
static struct rt_spare *rts_better(struct rt_entry *);
static struct rt_spare rts_empty = {0,0,0,HOPCNT_INFINITY,0,0,0};
@@ -1110,10 +1110,10 @@
if (rtm->rtm_flags & RTF_LLINFO)
continue;
-#if defined(RTF_CLONED) && defined(__bsdi__)
+#if defined(RTF_WASCLONED) && defined(__FreeBSD__)
/* ignore cloned routes
*/
- if (rtm->rtm_flags & RTF_CLONED)
+ if (rtm->rtm_flags & RTF_WASCLONED)
continue;
#endif
@@ -1267,8 +1267,8 @@
continue;
}
-#if defined(RTF_CLONED) && defined(__bsdi__)
- if (m.r.rtm.rtm_flags & RTF_CLONED) {
+#if defined(RTF_WASCLONED) && defined(__FreeBSD__)
+ if (m.r.rtm.rtm_flags & RTF_WASCLONED) {
trace_act("ignore cloned %s", str);
continue;
}
==== //depot/projects/hammer/share/man/man4/Makefile#41 (text+ko) ====
@@ -1,5 +1,5 @@
# @(#)Makefile 8.1 (Berkeley) 6/18/93
-# $FreeBSD: src/share/man/man4/Makefile,v 1.269 2004/06/14 10:55:03 dfr Exp $
+# $FreeBSD: src/share/man/man4/Makefile,v 1.270 2004/06/15 01:18:56 bms Exp $
MAN= aac.4 \
acpi.4 \
@@ -368,6 +368,7 @@
MLINKS+=ipfirewall.4 ipaccounting.4 \
ipfirewall.4 ipacct.4 \
ipfirewall.4 ipfw.4
+MLINKS+=ip.4 rawip.4
MLINKS+=kue.4 if_kue.4
MLINKS+=lge.4 if_lge.4
MLINKS+=lo.4 loop.4
==== //depot/projects/hammer/share/man/man4/ip.4#9 (text+ko) ====
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" @(#)ip.4 8.2 (Berkeley) 11/30/93
-.\" $FreeBSD: src/share/man/man4/ip.4,v 1.35 2004/04/22 08:49:51 silby Exp $
+.\" $FreeBSD: src/share/man/man4/ip.4,v 1.36 2004/06/15 01:08:09 bms Exp $
.\"
-.Dd March 3, 2001
+.Dd June 14, 2004
.Dt IP 4
.Os
.Sh NAME
@@ -529,6 +529,14 @@
ip->ip_off = offset;
.Ed
.Pp
+The ip_len and ip_off fields
+.Em must be provided in host byte order .
+All other fields must be provided in network byte order.
+See
+.Xr byteorder 4
+for more information on network byte order.
+If the ip_id field is set to 0, then the kernel will choose an
+appopriate value.
If the header source address is set to
.Dv INADDR_ANY ,
the kernel will choose an appropriate address.
@@ -568,10 +576,24 @@
an option field was shorter than the minimum value
or longer than the option buffer provided.
.El
+.Pp
+The following errors may occur when attempting to send
+.Tn IP
+datagrams via a
+.Dq raw socket
+with the
+.Em IP_HDRINCL
+option set:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The user-supplied ip_len field was not equal to the length of the datagram
+written to the socket.
+.El
.Sh SEE ALSO
.Xr getsockopt 2 ,
.Xr recv 2 ,
.Xr send 2 ,
+.Xr byteorder 4 ,
.Xr icmp 4 ,
.Xr inet 4 ,
.Xr intro 4
==== //depot/projects/hammer/share/misc/pci_vendors#9 (text+ko) ====
@@ -1,4 +1,4 @@
-; $FreeBSD: src/share/misc/pci_vendors,v 1.26 2003/10/29 11:14:58 sheldonh Exp $
+; $FreeBSD: src/share/misc/pci_vendors,v 1.28 2004/06/15 00:38:12 bms Exp $
;
; Automatically generated by src/tools/tools/pciid/mk_pci_vendors.pl
; (with the -l option), using the following source lists:
@@ -291,6 +291,7 @@
5655 Mach 64 VT3
5656 Mach64 VT4 PCI (PQFP Package)
5964 Radeon 9200 Series
+ 5941 Radeon 9200 Series - Secondary
5D44 Radeon 9200 Series - Secondary
700F A3/U1 PCI to AGP Bridge
7010 RS200 PCI to AGP Bridge
@@ -976,6 +977,7 @@
8026 TSB43AB21 1394a-2000 OHCI PHY/link-layer Controller
8027 PCI4451 OHCI-Lynx IEEE-1394 FireWire Adapter
8400 802.11b+ 22Mbps Wireless Adapter
+ 9066 TNETW1130 802.11g+ 54/108 Mbps Wireless Adapter
A001 TDC1570 64-Bit PCI ATM Interface
A100 TDC1561 32-Bit PCI ATM Interface
A102 TNETA1575 HyperSAR Plus w/PCI Host interface & UTOPIA Interface
==== //depot/projects/hammer/sys/kern/link_elf_obj.c#40 (text+ko) ====
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/link_elf_obj.c,v 1.81 2004/05/18 05:15:43 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/link_elf_obj.c,v 1.83 2004/06/15 01:35:57 peter Exp $");
#include "opt_ddb.h"
#include "opt_mac.h"
==== //depot/projects/hammer/sys/vm/vm_contig.c#17 (text+ko) ====
@@ -60,7 +60,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.34 2004/04/06 20:15:36 imp Exp $");
+__FBSDID("$FreeBSD: src/sys/vm/vm_contig.c,v 1.35 2004/06/15 01:02:00 green Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -119,7 +119,7 @@
} else if (object->type == OBJT_SWAP ||
object->type == OBJT_DEFAULT) {
m_tmp = m;
- vm_pageout_flush(&m_tmp, 1, 0);
+ vm_pageout_flush(&m_tmp, 1, VM_PAGER_PUT_SYNC);
VM_OBJECT_UNLOCK(object);
return (TRUE);
}
@@ -152,6 +152,7 @@
vm_object_t object;
vm_offset_t addr, tmp_addr;
int pass, pqtype;
+ int inactl, actl, inactmax, actmax;
vm_page_t pga = vm_page_array;
size = round_page(size);
@@ -163,7 +164,7 @@
panic("contigmalloc1: boundary must be a power of 2");
start = 0;
- for (pass = 0; pass <= 1; pass++) {
+ for (pass = 2; pass >= 0; pass--) {
vm_page_lock_queues();
again0:
mtx_lock_spin(&vm_page_queue_free_mtx);
@@ -188,11 +189,29 @@
if ((i == cnt.v_page_count) ||
((VM_PAGE_TO_PHYS(&pga[i]) + size) > high)) {
mtx_unlock_spin(&vm_page_queue_free_mtx);
+ /*
+ * Instead of racing to empty the inactive/active
+ * queues, give up, even with more left to free,
+ * if we try more than the initial amount of pages.
+ *
+ * There's no point attempting this on the last pass.
+ */
+ if (pass > 0) {
+ inactl = actl = 0;
+ inactmax = vm_page_queues[PQ_INACTIVE].lcnt;
+ actmax = vm_page_queues[PQ_ACTIVE].lcnt;
again1:
- if (vm_contig_launder(PQ_INACTIVE))
- goto again1;
- if (vm_contig_launder(PQ_ACTIVE))
- goto again1;
+ if (inactl < inactmax &&
+ vm_contig_launder(PQ_INACTIVE)) {
+ inactl++;
+ goto again1;
+ }
+ if (actl < actmax &&
+ vm_contig_launder(PQ_ACTIVE)) {
+ actl++;
+ goto again1;
+ }
+ }
vm_page_unlock_queues();
continue;
}
==== //depot/projects/hammer/usr.bin/tar/bsdtar.c#11 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include "bsdtar_platform.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/bsdtar.c,v 1.24 2004/06/11 01:35:56 kientzle Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/tar/bsdtar.c,v 1.26 2004/06/15 00:28:34 kientzle Exp $");
#include <sys/param.h>
#include <sys/stat.h>
@@ -75,6 +75,7 @@
#define OPTION_NODUMP 3
#define OPTION_HELP 4
#define OPTION_INCLUDE 5
+#define OPTION_ONE_FILE_SYSTEM 5
const struct option tar_longopts[] = {
{ "absolute-paths", no_argument, NULL, 'P' },
@@ -104,6 +105,7 @@
{ "nodump", no_argument, NULL, OPTION_NODUMP },
{ "norecurse", no_argument, NULL, 'n' },
{ "no-same-owner", no_argument, NULL, 'o' },
+ { "one-file-system", no_argument, NULL, OPTION_ONE_FILE_SYSTEM },
{ "preserve-permissions", no_argument, NULL, 'p' },
{ "read-full-blocks", no_argument, NULL, 'B' },
{ "same-permissions", no_argument, NULL, 'p' },
@@ -228,6 +230,7 @@
#ifdef HAVE_GETOPT_LONG
case OPTION_HELP:
long_help(bsdtar);
+ exit(0);
break;
#endif
#ifdef HAVE_GETOPT_LONG
@@ -248,7 +251,7 @@
case 'L': /* BSD convention */
bsdtar->symlink_mode = 'L';
break;
- case 'l': /* SUSv2 */
+ case 'l': /* SUSv2; note that GNU -l conflicts */
bsdtar->option_warn_links = 1;
break;
case 'm': /* SUSv2 */
@@ -265,9 +268,14 @@
case 'O': /* GNU tar */
bsdtar->option_stdout = 1;
break;
- case 'o': /* SUSv2 */
+ case 'o': /* SUSv2; note that GNU -o conflicts */
bsdtar->extract_flags &= ~ARCHIVE_EXTRACT_OWNER;
break;
+#if HAVE_GETOPT_LONG
+ case OPTION_ONE_FILE_SYSTEM: /* -l in GNU tar */
+ bsdtar->option_dont_traverse_mounts = 1;
+ break;
+#endif
#if 0
/*
* The common BSD -P option is not necessary, since
@@ -321,9 +329,6 @@
case 'w': /* SUSv2 */
bsdtar->option_interactive = 1;
break;
- case 'X': /* -l in GNU tar */
- bsdtar->option_dont_traverse_mounts = 1;
- break;
case 'x': /* SUSv2 */
if (mode != '\0')
bsdtar_errc(bsdtar, 1, 0,
@@ -362,7 +367,7 @@
*/
if (mode == '\0' && possible_help_request) {
long_help(bsdtar);
- exit(1);
+ exit(0);
}
if (mode == '\0')
@@ -519,14 +524,14 @@
p = bsdtar->progname;
- printf("Basic Usage:\n");
- printf(" List: %s -tf [archive-filename]\n", p);
- printf(" Extract: %s -xf [archive-filename]\n", p);
- printf(" Create: %s -cf [archive-filename] [filenames...]\n", p);
+ fprintf(stderr, "Usage:\n");
+ fprintf(stderr, " List: %s -tf <archive-filename>\n", p);
+ fprintf(stderr, " Extract: %s -xf <archive-filename>\n", p);
+ fprintf(stderr, " Create: %s -cf <archive-filename> [filenames...]\n", p);
#ifdef HAVE_GETOPT_LONG
- printf(" Help: %s --help\n", p);
+ fprintf(stderr, " Help: %s --help\n", p);
#else
- printf(" Help: %s -h\n", p);
+ fprintf(stderr, " Help: %s -h\n", p);
#endif
exit(1);
}
@@ -543,7 +548,9 @@
" <file>, <dir> add these items to archive\n",
" -z, -j Compress archive with gzip/bzip2\n",
" -F {ustar|pax|cpio|shar} Select archive format\n",
+#ifdef HAVE_GETOPT_LONG
" --exclude <pattern> Skip files that match pattern\n",
+#endif
" C=<dir> Change to <dir> before processing remaining files\n",
" @<archive> Add entries from <archive> to output\n",
"List: %p -t [options] [<patterns>]\n",
@@ -558,6 +565,16 @@
};
+/*
+ * Note that the word 'bsdtar' will always appear in the first line
+ * of output.
+ *
+ * In particular, /bin/sh scripts that need to test for the presence
+ * of bsdtar can use the following template:
+ *
+ * if (tar --help 2>&1 | grep bsdtar >/dev/null 2>&1 ) then \
+ * echo bsdtar; else echo not bsdtar; fi
+ */
static void
long_help(struct bsdtar *bsdtar)
{
@@ -567,7 +584,13 @@
prog = bsdtar->progname;
- printf("%s: manipulate archive files\n", prog);
+ fflush(stderr);
+ if (strcmp(prog,"bsdtar")!=0)
+ p = "(bsdtar)";
+ else
+ p = "";
+
+ fprintf(stderr, "%s%s: manipulate archive files\n", prog, p);
for (msg = long_help_msg; *msg != NULL; msg++) {
for (p = *msg; p != NULL; p++) {
@@ -575,7 +598,7 @@
break;
else if (*p == '%') {
if (p[1] == 'p') {
- fputs(prog, stdout);
+ fputs(prog, stderr);
p++;
} else
putchar('%');
@@ -583,4 +606,5 @@
putchar(*p);
}
}
+ fflush(stderr);
}
More information about the p4-projects
mailing list